]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
Adjust gcc/testsuite/ChangeLog
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
53febcba
ILT
12011-05-25 Ian Lance Taylor <iant@google.com>
2
3 * godump.c (go_format_type): Output the first field with a usable
4 Go type, if any.
5
dbbc4d4c
ILT
62011-05-25 Ian Lance Taylor <iant@google.com>
7
8 * godump.c (go_format_type): Check for invalid type names, pointer
9 target types, and struct field types.
10
f03a5402
JM
112011-05-25 Jason Merrill <jason@redhat.com>
12
13 * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
14
c497c412
UB
152011-05-25 Uros Bizjak <ubizjak@gmail.com>
16
17 * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
18
e470affe
L
192011-05-25 H.J. Lu <hongjiu.lu@intel.com>
20
21 * config/i386/i386.md (*movqi_extv_1)): Put back
22 "register_operand" check in "type" calculation.
23 (*movqi_extzv_2): Likewise.
24
6c81b2bc
L
252011-05-25 H.J. Lu <hongjiu.lu@intel.com>
26
c497c412 27 * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
6c81b2bc 28
0c007eb2
BS
292011-05-25 Bernd Schmidt <bernds@codesourcery.com>
30
31 PR bootstrap/49160
32 * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
33 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
34 __divxc3, __divtc3): Wrap definitions in #ifndef.
35
521ca78e
L
362011-05-25 H.J. Lu <hongjiu.lu@intel.com>
37
38 PR target/49142
39 * config/i386/i386.md (*movqi_extv_1_rex64): Remove
40 "register_operand" check and replace q_regs_operand with
41 QIreg_operand in "type" calculation.
42 (*movqi_extv_1): Likewise.
43 (*movqi_extzv_2_rex64): Likewise.
44 (*movqi_extzv_2): Likewise.
45
46 * config/i386/predicates.md (QIreg_operand): New.
47
29f8b844
RG
482011-05-25 Richard Guenther <rguenther@suse.de>
49
50 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
51 type-based offset disambiguation, streamline MEM_REF and
52 TARGET_MEM_REF handling.
53
74838de3
L
542011-05-25 H.J. Lu <hongjiu.lu@intel.com>
55
56 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
57 (bdesc_special_args): Add pause intrinsic.
58
59 * config/i386/i386.md (UNSPEC_PAUSE): New.
60 (pause): Likewise.
61 (*pause): Likewise.
62 * config/i386/ia32intrin.h (__pause): Likewise.
63
64 * doc/extend.texi (X86 Built-in Functions): Add documentation for
65 pause intrinsic.
66
d24ad7d6
BS
672011-05-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
68
69 PR tree-optimization/46728
70 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
71 (execute_cse_sincos): Add switch case for BUILT_IN_POW.
c497c412 72
d9f8303f
NF
732011-05-25 Nathan Froyd <froydnj@codesourcery.com>
74
75 * tree.h (struct tree_exp): Inherit from struct tree_typed.
76 * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
77 instead of TS_COMMON.
78
cdbf4541
BS
792011-05-25 Bernd Schmidt <bernds@codesourcery.com>
80
81 * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
82 LIBGCC2_GNU_PREFIX is defined.
83 (__N): New macro.
84 (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
85 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
86 __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
87 __clz_tab): Define using __N.
88 (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
89 COMPAT_SIMODE_TRAPPING_ARITHMETIC.
90 * target.def (libfunc_gnu_prefix): New hook.
91 * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
92 (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
93 * doc/tm.texi: Regenerate.
94 * system.h (LIBGCC2_GNU_PREFIX): Poison.
95 * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
96 account.
97 (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
98 (init_optabs): Likewise for the bswap libfuncs.
99 * tree.c (build_common_builtin_nodes): Likewise for complex multiply
100 and divide.
101 * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
102 * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
103 * libgcc-std.ver: Remove.
104 * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
105 * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
106 libgcc-std.ver.
107 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
108 * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
109 * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
110 * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
111 * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
112 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
113 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
114 * config/fixed-bit.h (FIXED_OP): Define differently depending on
115 LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
116 (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
117
f242c0a5
JH
1182011-05-25 Jan Hubicka <jh@suse.cz>
119
120 * lto-streamer-out.c (output_record_start): Use lto_output_enum
121 (lto_output_tree): Use output_record_start.
122 * lto-streamer-in.c (input_record_start): Use lto_input_enum
123 (lto_get_pickled_tree): Use input_record_start.
124 * lto-section-in.c (lto_section_overrun): Turn into fatal error.
125 (lto_value_range_error): New function.
126 * lto-streamer.h (lto_value_range_error): Declare.
127 (lto_output_int_in_range, lto_input_int_in_range): New functions.
128 (lto_output_enum, lto_input_enum): New macros.
129
a11e0df4
EB
1302011-05-25 Eric Botcazou <ebotcazou@adacore.com>
131
132 * common.opt (flag_stack_usage_info): New variable.
133 (-Wstack-usage): New option.
134 * doc/invoke.texi (Warning options): Document -Wstack-usage.
135 * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
136 <OPT_fstack_usage>: Likewise.
137 * toplev.c (output_stack_usage): Handle -Wstack-usage.
138 * calls.c (expand_call): Test flag_stack_usage_info variable instead
139 of flag_stack_usage.
140 (emit_library_call_value_1): Likewise.
141 * explow.c (allocate_dynamic_stack_space): Likewise.
142 * function.c (instantiate_virtual_regs ): Likewise.
143 (prepare_function_start): Likewise.
144 (rest_of_handle_thread_prologue_and_epilogue): Likewise.
145 * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
146 * config/arm/arm.c (arm_expand_prologue): Likewise.
147 (thumb1_expand_prologue): Likewise.
148 * config/avr/avr.c (expand_prologue): Likewise.
149 * config/i386/i386.c (ix86_expand_prologue): Likewise.
150 * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
151 * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
152 * config/mips/mips.c (mips_expand_prologue): Likewise.
153 * config/pa/pa.c (hppa_expand_prologue): Likewise.
154 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
155 * config/s390/s390.c (s390_emit_prologue): Likewise.
156 * config/sh/sh.c (sh_expand_prologue): Likewise.
157 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
158 * config/spu/spu.c (spu_expand_prologue): Likewise.
159
e7cfe241
RG
1602011-05-25 Richard Guenther <rguenther@suse.de>
161
162 * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
163 (gimple_canonical_types_compatible_p): Likewise.
164
c5235f4c
JH
1652011-05-25 Jan Hubicka <jh@suse.cz>
166
167 PR middle-end/49062
168 * ipa.c (function_and_variable_visibility): Only add to same
169 comdat group list if DECL_ONE_ONLY.
170
8242a0f6
AB
1712011-05-25 Andrey Belevantsev <abel@ispras.ru>
172
173 PR rtl-optimization/49014
174 * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
175
642a011d
JJ
1762011-05-25 Jakub Jelinek <jakub@redhat.com>
177
178 PR target/49128
179 * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
180
30a435d8
VM
1812011-05-24 Vladimir Makarov <vmakarov@redhat.com>
182
183 PR rtl-optimization/48757
184 * ira-build.c (loop_with_eh_edge_p): Rename to
185 loop_with_complex_edge_p, check edges on complexity, make function
186 conditional.
187 (mark_loops_for_removal): Make call of loop_with_complex_edge_p
188 conditional.
189
24d1bbc7
EB
1902011-05-24 Eric Botcazou <ebotcazou@adacore.com>
191
192 * config/sparc/sparc.c (sparc_option_override): If not set by the user,
193 force flag_ira_share_save_slots to 0.
194
65773087
EB
1952011-05-24 Eric Botcazou <ebotcazou@adacore.com>
196
197 * var-tracking.c (compute_cfa_pointer): Adjust head comment.
198 (vt_initialize): Set PROLOGUE_BB unconditionally.
199 Add block comment about CFA_BASE_RTX machinery.
200 Reset FP_CFA_OFFSET to -1 on all invalid paths.
201 Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
202
4e26ba90
NP
2032011-05-24 Nicola Pero <nicola.pero@meta-innovation.com>
204
205 PR objc/48187
206 * c-parser.c (c_parser_objc_class_instance_variables): More robust
207 parsing of syntax error in ObjC instance variable lists. In
208 particular, avoid an infinite loop if there is a stray ']'.
209 Updated error message.
210
936fd13c
ILT
2112011-05-24 Ian Lance Taylor <iant@google.com>
212
213 * godump.c (go_define): Don't accept a string immediately after
214 another operand.
215
f17333e3
ILT
2162011-05-24 Ian Lance Taylor <iant@google.com>
217
218 * godump.c (struct godump_container): Add invalid_hash field.
219 (go_format_type): Return false if type is found in invalid_hash.
220 (go_output_typedef): Add invalid type to invalid_hash.
221 (go_finish): Create and delete invalid_hash.
222
d24ad7d6 2232011-05-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
c497c412 224
78be79d5
BS
225 PR tree-optimization/46728
226 * tree-ssa-math-opts.c (powi_table): New.
227 (powi_lookup_cost): New.
228 (powi_cost): New.
229 (powi_as_mults_1): New.
230 (powi_as_mults): New.
231 (gimple_expand_builtin_powi): New.
232 (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
233 (gate_cse_sincos): Remove sincos/cexp restriction.
f17333e3 234
caee412b
RO
2352011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
236
237 PR target/3746
238 * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
239 mips-tdump native.
240 * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
241 * mips-tdump.c: Likewise.
242
5eed4f27
L
2432011-05-24 H.J. Lu <hongjiu.lu@intel.com>
244
245 PR target/49128
246 * config/i386/driver-i386.c (host_detect_local_cpu): Always
247 add -mno-XXX. Handle FMA.
248
8c5fdaae
VM
2492011-05-24 Vladimir Makarov <vmakarov@redhat.com>
250
251 PR rtl-optimization/48633
252 * ira-build.c (loop_with_eh_edge_p): New function.
253 (mark_loops_for_removal): Use it.
254
2552011-05-24 Vladimir Makarov <vmakarov@redhat.com>
113a5be6
VM
256
257 PR rtl-optimization/48971
258 * ira.c (setup_pressure_classes): Don't check register move cost
259 for classes with one registers. Don't add pressure class if there
260 is a pressure class with the same available hard registers.
261 Check contains_reg_of_mode. Fix a typo in collecting
262 temp_hard_regset. Ignore hard registers not belonging to a class.
263
df1f7315
UB
2642011-05-24 Uros Bizjak <ubizjak@gmail.com>
265
266 PR target/49133
267 * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
268
ee0cb37c
EB
2692011-05-24 Eric Botcazou <ebotcazou@adacore.com>
270 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
271
272 PR gcov-profile/48845
273 * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
274
6a20ce76
RG
2752011-05-24 Richard Guenther <rguenther@suse.de>
276
277 * gimple.c (compare_type_names_p): Remove for_completion_p arg.
278 (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
279 (gimple_types_compatible_p_1): Adjust.
280 (iterative_hash_canonical_type): Do not bother about complete vs.
281 incomplete types.
282 (gimple_canonical_types_compatible_p): Likewise.
283
2fcb858c
RO
2842011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
285
286 * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
287
96d91dcf
RG
2882011-05-24 Richard Guenther <rguenther@suse.de>
289
290 PR bootstrap/49078
291 * gimple.c (gimple_register_canonical_type): Revert
292 previous change.
293 * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
294 does not for a tree for the case where it matters. Cache
295 pointer-type alias-sets.
296
1ed1641d
JM
2972011-05-24 Joseph Myers <joseph@codesourcery.com>
298
299 * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
300 (OBJS): Remove options.o, opts-common.o and prefix.o.
301 (OBJS-libcommon-target): New.
302 (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
303 (BACKEND): Include libcommon-target.a.
304 (MOSTLYCLEANFILES): Include libcommon-target.a.
305 (libcommon-target.a): New.
306 (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
307 prefix.o.
308
57dfdff0
JM
3092011-05-23 Joseph Myers <joseph@codesourcery.com>
310
311 * optc-save-gen.awk: New. Based on optc-gen.awk. Don't generate
312 parts of output shared with the driver.
313 * optc-gen.awk: Don't generate parts of output not shared with the
314 driver.
315 * opth-gen.awk: Remove GCC_DRIVER conditionals.
316 * doc/options.texi (SourcerInclude): Mention options-save.c.
317 * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
318 (OBJS): Add options-save.o.
319 (options-save.c, options-save.o): New.
320 (options.o): Update dependencies.
321 (gcc-options.o): Remove.
322 (mostlyclean): Remove options-save.c.
323
0e0d82a7
JJ
3242011-05-23 Jakub Jelinek <jakub@redhat.com>
325
9166988f
JJ
326 PR debug/49032
327 * dbxout.c: Include cgraph.h.
328 (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
329 and without value expr, return NULL if no varpool node exists for
330 it or if it is not needed.
331 * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
332
0e0d82a7
JJ
333 PR c/49120
334 * c-decl.c (start_decl): Convert expr to void_type_node.
335
65712d5c
RS
3362011-05-23 Richard Sandiford <rdsandiford@googlemail.com>
337
338 PR rtl-optimization/48826
339 * emit-rtl.c (try_split): When splitting a call that is followed
340 by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
341
9025085e
JJ
3422011-05-23 Jakub Jelinek <jakub@redhat.com>
343
344 * cfgexpand.c (expand_debug_expr): For unused non-addressable
345 parameters passed in memory prefer using DECL_INCOMING_RTL over
346 the pseudos it will be copied into.
347
34a061be
L
3482011-05-23 H.J. Lu <hongjiu.lu@intel.com>
349
350 PR target/47315
351 * config/i386/i386.c (ix86_option_override_internal): Save the
352 initial options after checking vzeroupper.
353
c375a3a4
DL
3542011-05-23 David Li <davidxl@google.com>
355
356 PR tree-optimization/48988
357 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
358 Initialize has_valid_pred for each pred chain.
359
e1caba18
RG
3602011-05-23 Richard Guenther <rguenther@suse.de>
361
362 * gimple.c (gimple_types_compatible_p_1): Always compare type names.
363 (iterative_hash_gimple_type): Always hash type names.
364
dde05067
NF
3652011-05-23 Nathan Froyd <froydnj@codesourcery.com>
366
367 * c-typeck.c (build_function_call_vec): Tweak call to
368 check_function_arguments.
369
094f6ab3
RG
3702011-05-23 Richard Guenther <rguenther@suse.de>
371
372 PR tree-optimization/49115
373 * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
374 is not necessarily carried out, do not claim it kills the ref.
375 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
376
9a9822e1
RG
3772011-05-23 Richard Guenther <rguenther@suse.de>
378
379 PR middle-end/15419
380 * builtins.c (fold_builtin_memory_op): Be less restrictive about
381 what pointer types we accept for folding.
382
c8028650
RO
3832011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
384
385 * gthr-gnat.c: Remove.
386 * gthr-gnat.h: Remove.
387 * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
388 * config/t-freebsd (LIB2ADDEH): Likewise.
389 * config/t-linux (LIB2ADDEH): Likewise.
390 * config/t-sol2 (LIB2ADDEH): Likewise.
391 * config/ia64/t-vms (LIB2ADDEH): Likewise.
392 * configure.ac (target_thread_file): Remove gnat handling.
393 * configure: Regenerate.
394 * doc/install.texi (Configuration, --enable-threads): Remove gnat.
395
15882fe9
TG
3962011-05-23 Tristan Gingold <gingold@adacore.com>
397 Eric Botcazou <ebotcazou@adacore.com>
398
399 * gcov.c (create_file_names): If no object directory is specified,
400 keep the directory of the file.
401
da90c957
RO
4022011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
403
404 * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
405 * configure: Regenerate.
406
7bba408b
JJ
4072011-05-23 Jakub Jelinek <jakub@redhat.com>
408
409 PR middle-end/48973
410 * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
411 failed and the comparison has a single bit signed type, use
412 constm1_rtx instead of const1_rtx for true value.
413 (do_store_flag): If ops->type is single bit signed type, disable
414 signel bit test optimization and pass -1 instead of 1 as last
415 parameter to emit_store_flag_force.
416
bc69f7ff
TV
4172011-05-23 Tom de Vries <tom@codesourcery.com>
418
419 PR target/45098
420 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
421 function.
422 (infer_loop_bounds_from_undefined): Use new function.
423
29cedf8e
RS
4242011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
425
426 * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
427 (ASM_SPEC): Add a -O* option here. Pass -O0 for -noasmopt,
428 -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
429 and -O0 otherwise.
430 (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
431
afe8b6ec
EB
4322011-05-22 Eric Botcazou <ebotcazou@adacore.com>
433
434 * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
435 (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
436 returns true.
437
872dab53
RS
4382011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
439
440 * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
441
145f6c5b
EB
4422011-05-22 Eric Botcazou <ebotcazou@adacore.com>
443
444 * config/sparc/sparc.c (sparc_delegitimize_address): Handle
445 UNSPEC_MOVE_PIC pattern.
446
8ac79835
EB
4472011-05-22 Eric Botcazou <ebotcazou@adacore.com>
448
449 * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
450 (sparc-*-rtems*): Likewise.
451 (sparc64-*-elf*): Likewise.
452 (sparc64-*-rtems*): Likewise.
453 (sparc*-*-solaris2*): Likewise. Remove crti.o crtn.o extra parts.
454 * config/sparc/t-crtin: New file.
455 * config/sparc/t-sol2 (crti.o): Delete rule.
456 (crtn.o): Likewise.
457 * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
458 * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
459 * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
460 (ENDFILE_SPEC): Add crtn.o.
461
5fb43dd8
TV
4622011-05-22 Tom de Vries <tom@codesourcery.com>
463
464 PR middle-end/48689
465 * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
466 CODE_CONTAINS_STRUCT (TS_COMMON).
467
ccb1b17b
JJ
4682011-05-22 Jakub Jelinek <jakub@redhat.com>
469
470 PR middle-end/49029
471 * expmed.c (extract_fixed_bit_field): Test whether target can be used
472 only after deciding which mode to use.
473
50ad7db2
TV
4742011-05-22 Tom de Vries <tom@codesourcery.com>
475
476 PR target/45098
dc0a3366 477 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
50ad7db2
TV
478 for call to get_shiftadd_cost.
479
ef230b38
UB
4802011-05-22 Uros Bizjak <ubizjak@gmail.com>
481
482 PR target/49104
483 * config/i386/cpuid.h (bit_MMXEXT): New define.
484
15f072f9
NC
4852011-05-22 Nick Clifton <nickc@redhat.com>
486
487 * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
488 initialisation of non-existant args[2] element. Use args[] array
489 not arg[] array to pass arguments to build_function_type_list.
490
e38fdc94
IR
4912011-05-22 Ira Rosen <ira.rosen@linaro.org>
492
493 PR tree-optimization/49087
ef230b38 494 * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
e38fdc94 495
5b018c65
JM
4962011-05-21 Jason Merrill <jason@redhat.com>
497
498 PR c++/49092
499 * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
500 static storage duration.
501
abd9a770
EB
5022011-05-21 Eric Botcazou <ebotcazou@adacore.com>
503
504 * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
505 frame pointer.
506
bd9a3248
EB
5072011-05-21 Eric Botcazou <ebotcazou@adacore.com>
508
509 * config/sparc/sparc.c (eligible_for_return_delay): Do not return
510 false if there are call-saved registers here...
511 (sparc_can_use_return_insn_p): ...but here instead.
512 (save_or_restore_regs): Fix thinko.
513 (sparc_expand_prologue): Use current_function_is_leaf.
514 (sparc_frame_pointer_required): Likewise.
515
a5dfec9a
NC
5162011-05-21 Nick Clifton <nickc@redhat.com>
517
518 PR target/49098
519 * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
520
555c3771
NP
5212011-05-21 Nicola Pero <nicola.pero@meta-innovation.com>
522
523 * gengtype.c (walk_type): Implemented "atomic" GTY option.
524 * doc/gty.texi (GTY Options): Document "atomic" GTY option.
525
86fa5de4
JM
5262011-05-21 Joseph Myers <joseph@codesourcery.com>
527
528 * opt-read.awk: New. Split out of optc-gen.awk and opth-gen.awk.
529 * optc-gen.awk: Move common code to opt-read.awk.
530 * opth-gen.awk: Likewise.
ef230b38 531 * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
86fa5de4 532
bce33ab2
NF
5332011-05-20 Nathan Froyd <froydnj@codesourcery.com>
534
535 * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
536
e6450c11
TV
5372011-05-20 Tom de Vries <tom@codesourcery.com>
538
539 PR target/45098
540 * tree-ssa-loop-ivopts.c: Include expmed.h.
541 (get_shiftadd_cost): New function.
542 (force_expr_to_var_cost): Declare forward. Use get_shiftadd_cost.
543
0e8b84ec
JJ
5442011-05-20 Jakub Jelinek <jakub@redhat.com>
545
546 PR bootstrap/49086
547 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
548 for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
549
946bdf67
JM
5502011-05-20 Joseph Myers <joseph@codesourcery.com>
551
552 * Makefile.in: Update comment referring to $(OBJS-common).
553
c53aafdf
ILT
5542011-05-20 Ian Lance Taylor <iant@google.com>
555
556 * godump.c (go_output_typedef): Put enum constants in the macro
557 hash table to avoid duplicate Go const definitions.
558
2691e6d7
JM
5592011-05-20 Joseph Myers <joseph@codesourcery.com>
560
561 * Makefile.in (LIBDEPS): Add libcommon.a.
562 (LIBS): Likewise.
563 (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
564 (OBJS-common): Remove diagnostic.o, input.o, intl.o,
565 pretty-print.o and version.o.
566 (OBJS-libcommon): New.
567 (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
568 (BACKEND): Add libcommon.a.
569 (MOSTLYCLEANFILES): Likewise.
570 (libcommon.a): New.
571 (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
572 (cpp$(exeext)): Likewise.
573 (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
574 pretty-print.o and input.o.
575 (lto-wrapper$(exeext)): Don't explicitly use intl.o.
576 (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
577 (errors.o): Remove.
578 (mips-tfile): Don't explicitly use version.o.
579 (mips-tdump): Likewise.
580 (gcov.o): Depend on $(DIAGNOSTIC_H).
581 (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
582 (GCOV_OBJS): Remove intl.o, version.o and errors.o.
583 (GCOV_DUMP_OBJS): Remove version.o and errors.o.
584 * gcov-dump.c: Include intl.h and diagnostic.h.
585 (main): Initialize diagnostics.
586 * gcov.c: Include diagnostic.h.
587 (fnotice): Remove.
588 (main): Initialize diagnostics.
589 * lto-wrapper.c: Include diagnostic.h.
590 (main): Initialize diagnostics.
591
252b3e8c
MM
5922011-05-20 Michael Matz <matz@suse.de>
593
594 * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
595
2ee36ba6
MM
5962011-05-20 Michael Matz <matz@suse.de>
597 Richard Guenther <rguenther@suse.de>
598
599 * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
600 use lto_streamer_cache_append directly instead of returning a VEC.
601 (preload_common_node): Remove.
602 (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
603 track seen nodes.
604 (lto_streamer_cache_create): Call lto_preload_common_nodes.
605
90ff582f
RG
6062011-05-20 Richard Guenther <rguenther@suse.de>
607
608 PR tree-optimization/49079
609 * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
610 MEM_REFs correctly for the trailing array access detection.
611 Special case constants the same way as decls for overall size
612 constraining.
613
3cda91d8
UB
6142011-05-20 Uros Bizjak <ubizjak@gmail.com>
615
616 * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
617 argument expansion.
618
6c66f733
JJ
6192011-05-20 Jakub Jelinek <jakub@redhat.com>
620
621 PR tree-optimization/49073
3cda91d8
UB
622 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
623 PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
6c66f733
JJ
624 * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
625
0ea80a16
RG
6262011-05-20 Richard Guenther <rguenther@suse.de>
627
628 PR middle-end/48849
629 * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
630 of pointer types the same way the middle-end does.
631
fb291a1e
RG
6322011-05-20 Richard Guenther <rguenther@suse.de>
633
3cda91d8
UB
634 * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
635 or pointer-to chains. Delay all fixup to uniquify_nodes.
fb291a1e 636
37cb25ed
QN
6372011-05-19 Quentin Neill <quentin.neill@amd.com>
638
639 * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
640 (fma4_fmaddsub): Likewise
641
a30726a4
JH
6422011-05-19 Jan Hubicka <jh@suse.cz>
643
644 * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
645 (GIMPLE_TYPE_PAIR_SIZE): New macro.
646 (type_pair_cache): New static var.
647 (lookup_type_pair): Use fixed sized custom hash; make inline.
648 (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
649 calls of lookup_type_pair.
650 (print_gimple_types_stats): Remove cache stats.
651 (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
652 and gtc_ob.
653
0955cf61
UB
6542011-05-19 Uros Bizjak <ubizjak@gmail.com>
655
656 * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
657 when TARGET_RDRND is active.
658 (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
659 Generate dummy SImode target register when target is NULL.
660
12d844c8
JM
6612011-05-19 Joseph Myers <joseph@codesourcery.com>
662
663 * config/arm/arm-fpus.def: New.
664 * config/arm/genopt.sh: Generate Enum and EnumValue entries from
665 arm-fpus.def.
666 * config/arm/arm-tables.opt: Regenerate.
667 * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
668 (arm_option_override): Don't decode FPU name to string here.
669 * config/arm/arm.opt (mfpu=): Use Enum.
670 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
671 Update dependencies.
672
9e350e99
JM
6732011-05-19 Joseph Myers <joseph@codesourcery.com>
674
675 * collect2.c: Include diagnostic.h.
676 (fatal_perror, fatal, error, fancy_abort): Remove.
677 (main): Set progname. Call xmalloc_set_program_name and
678 diagnostic_initialize.
679 (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
680 scan_libraries, resolve_lib_name): Call fatal_error instead of
681 fatal and fatal_perror.
682 * collect2.h (error, fatal, fatal_perror): Don't declare.
683 * tlink.c: Include diagnostic-core.h.
684 (recompile_files): Call fatal_error instead of fatal_perror.
685 * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
686 pretty-print.o and input.o.
687 (collect2.o, tlink.o): Update dependencies.
688
86ff4081
RO
6892011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
690
691 * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
692
2ca48caa
RO
6932011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
694
695 PR target/40483
696 * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
697 COMDAT group syntax, both SPARC and x86 variants.
698 (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
699 * configure: Regenerate.
700 * config/sol2.h (TARGET_SOLARIS): Define.
701 (PUSHSECTION_FORMAT): Remove.
702 (SECTION_NAME_FORMAT): Define.
703 * config/sol2.c: Include hashtab.h.
704 (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
705 expansion, using SECTION_NAME_FORMAT.
706 (solaris_comdat_htab): New variable.
707 (struct comdat_entry): Define.
708 (comdat_hash): New function.
709 (comdat_eq): New function.
710 (solaris_elf_asm_comdat_section): New function.
711 (solaris_define_comdat_signature): New function.
712 (solaris_code_end): New function.
713 * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
714 (solaris_code_end): Declare.
715 * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
716 * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
717 solaris_code_end.
718 (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
719 Remove ATTRIBUTE_UNUSED.
720 [!USE_GAS]: Call solaris_elf_asm_comdat_section for
721 SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
0955cf61 722 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
2ca48caa
RO
723 * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
724 * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
725 * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
726 (PUSHSECTION_FORMAT): Remove.
727 (SECTION_NAME_FORMAT): Redefine.
728
da5fb469
KT
7292011-05-19 Kai Tietz <ktietz@redhat.com>
730
731 * tree-cfg.c (verify_gimple_assign_binary): Barf on
732 TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
733 (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
734
0967b228
AS
7352011-05-19 Anatoly Sokolov <aesok@post.ru>
736 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
737
738 * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
739
e497b9bd
RG
7402011-05-19 Richard Guenther <rguenther@suse.de>
741
742 PR middle-end/48985
743 * tree-object-size.c (addr_object_size): If the pointed-to
744 variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
745
31b3ca64
RG
7462011-05-19 Richard Guenther <rguenther@suse.de>
747
748 * gimple.c (gimple_types_compatible_p_1): Compare names of
749 the types themselves.
750 (iterative_hash_gimple_type): And hash them that way.
751 (gimple_register_type_1): If we register a main variant properly
752 initialize the leader to ourselves.
753
bb8d292d
TV
7542011-05-19 Tom de Vries <tom@codesourcery.com>
755
756 PR target/45098
757 * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
758 get_loop_invariant_expr_id.
759 (get_loop_invariant_expr_id): Use get_expr_id.
760 (parm_decl_cost): New function.
761 (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
762 Improve bound cost estimation. Use different inv_expr_id for elim and
763 express cases.
764
a53c5024
TV
7652011-05-19 Tom de Vries <tom@codesourcery.com>
766
767 PR target/45098
768 * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
769 cost_base.cost == 0.
770
31f9eb59
L
7712011-05-18 H.J. Lu <hongjiu.lu@intel.com>
772
773 PR target/49002
774 * config/i386/sse.md (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>):
775 Properly handle load cast.
776
681056ae
JJ
7772011-05-18 Jakub Jelinek <jakub@redhat.com>
778
779 PR tree-optimization/49039
780 * tree-vrp.c (extract_range_from_binary_expr): For
781 MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
782 return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
783
b5ee6752
TV
7842011-05-18 Tom de Vries <tom@codesourcery.com>
785
786 PR target/45098
787 * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
788
0bda47a3
UB
7892011-05-18 Uros Bizjak <ubizjak@gmail.com>
790
791 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
792 (*tls_global_dynamic_64): Ditto.
793 (*tls_local_dynamic_base_32_gnu): Ditto.
794 (*tls_local_dynamic_base_64): Ditto.
795 (tls_initial_exec_64_sun): Ditto.
796
033b0805
SH
7972011-05-18 Stuart Henderson <shenders@gcc.gnu.org>
798
799 * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
800 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
801 bf592-none.
802 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
803 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
804 * config/bfin/bfin.c (bfin_cpus): Add bf592.
805 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
0bda47a3 806 __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
033b0805
SH
807 * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
808 * config/bfin/elf.h (LIB_SPEC): Add bf592.
809
ba163417
JM
8102011-05-18 Joseph Myers <joseph@codesourcery.com>
811
812 * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
0bda47a3 813 arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
ba163417
JM
814 * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
815 target_thread_pointer, arm_structure_size_boundary, struct
816 float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
817 struct abi_name, arm_all_abis): Remove.
0bda47a3
UB
818 (arm_option_override) Don't process most enumerated option values here.
819 Don't process target_fpe_name here. Work with integer not string for
820 structure size boundary; use separate diagnostics for each case.
ba163417
JM
821 * config/arm/arm.h (enum float_abi_type, enum
822 arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
823 to arm-opts.h.
824 (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
825 arm_structure_size_boundary): Remove.
826 * config/arm/arm.opt (mabi=): Use Enum and Init.
827 (arm_abi_type): New Enum and EnumValue entries.
828 (mfloat-abi=): Use Enum and Init.
829 (float_abi_type): New Enum and EnumValue entries.
0bda47a3 830 (mfp=, mfpe=): Replace by separate Alias entries for each argument.
ba163417
JM
831 (mfp16-format=): Use Enum and Init.
832 (arm_fp16_format_type): New Enum and EnumValue entries.
833 (mstructure-size-boundary=): Use UInteger and Init.
834 (mtp=): Use Enum and Init.
835 (arm_tp_type): New Enum and EnumValue entries.
836
179184e3
RG
8372011-05-18 Richard Guenther <rguenther@suse.de>
838
839 PR tree-optimization/49018
840 * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
841 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
842 gimple_has_side_effects.
843
93b2a207
RG
8442011-05-18 Richard Guenther <rguenther@suse.de>
845
846 * gimple.c (gimple_register_type_1): New function, split out from ...
847 (gimple_register_type): ... here. Avoid infinite recursion.
848
b010117a
IR
8492011-05-18 Ira Rosen <ira.rosen@linaro.org>
850
851 PR tree-optimization/41881
852 * tree-vectorizer.h (struct _loop_vec_info): Add new field
853 reduction_chains along with a macro for its access.
854 * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
855 (destroy_loop_vec_info): Free reduction chains.
856 (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
857 (vect_is_slp_reduction): New function.
858 (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
859 (vect_create_epilog_for_reduction): Support SLP reduction chains.
860 * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
861 definition types for reduction chains.
862 (vect_supported_load_permutation_p): Don't allow permutations for
863 reduction chains.
864 (vect_analyze_slp_instance): Support reduction chains.
865 (vect_analyze_slp): Try to build SLP instance from reduction chains.
866 (vect_get_constant_vectors): Handle reduction chains.
867 (vect_schedule_slp_instance): Mark the first statement of the
868 reduction chain as reduction.
869
e14c1050
IR
8702011-05-18 Ira Rosen <ira.rosen@linaro.org>
871
872 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
873 names for group elements access.
874 * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
875 reduction chains as well. Remove data reference and interleaving
876 related words from the fields names.
877 * tree-vect-loop.c (vect_transform_loop): Use new names for group
878 elements access.
879 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
880 vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
881 vect_update_interleaving_chain, vect_same_range_drs,
882 vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
883 vect_verify_datarefs_alignment, vector_alignment_reachable_p,
884 vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
885 vect_analyze_group_access, vect_analyze_data_ref_access,
886 vect_create_data_ref_ptr, vect_transform_strided_load,
887 vect_record_strided_load_vectors): Likewise.
888 * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
889 vect_model_load_cost, vectorizable_store, vectorizable_load,
890 vect_remove_stores, new_stmt_vec_info): Likewise.
891 * tree-vect-slp.c (vect_build_slp_tree,
892 vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
893
51c213f7
RG
8942011-05-18 Richard Guenther <rguenther@suse.de>
895
896 PR middle-end/48989
897 * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
898 operand verification.
899 (verify_gimple_assign_binary): Likewise.
900 * tree-ssa.c (useless_type_conversion_p): Preserve conversions
901 to non-1-precision BOOLEAN_TYPEs.
902
8f5e5434
TV
9032011-05-18 Tom de Vries <tom@codesourcery.com>
904
905 PR target/45098
906 * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
907
116bc3a4
JJ
9082011-05-18 Jakub Jelinek <jakub@redhat.com>
909
910 PR tree-optimization/49000
911 * tree-ssa.c (execute_update_addresses_taken): Call
912 maybe_rewrite_mem_ref_base on debug stmt value. If it couldn't
913 be rewritten and decl has been marked for renaming, reset
914 the debug stmt.
915
26a8964c
JM
9162011-05-17 Joseph Myers <joseph@codesourcery.com>
917
918 * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
919 enum_opts_set when testing if attributes have set -mfpmath=.
920
82bd45d7
RS
9212011-05-17 Richard Sandiford <rdsandiford@googlemail.com>
922
923 * config/mips/mips.c (mips_handle_option): Remove unused variable.
924
267ffce3
UB
9252011-05-17 Uros Bizjak <ubizjak@gmail.com>
926
927 * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
928 info->entry with 0
929 * tree-inline.c (maybe_inline_call_in_expr): Initialize
930 id.transform_lang_insert_block with NULL.
931
9322011-05-17 Uros Bizjak <ubizjak@gmail.com>
d9403b0d
UB
933
934 * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
935 (output_fp_compare): Change args 3 and 4 to bool.
936 (ix86_expand_call): Change arg 6 to bool.
937 (ix86_attr_length_immediate_default): Change arg 2 to bool.
938 (ix86_attr_length_vex_default): Change arg 3 to bool.
939 * config/i386/i386.md: Update all uses.
940 * config/i386/i386.c: Ditto.
941 (ix86_flags_dependent): Change return type to bool.
942
5beaf664
RG
9432011-05-17 Richard Guenther <rguenther@suse.de>
944
945 * gimple.c (type_hash_pair_compare): Fix comparison.
946
008bad7a
RG
9472011-05-17 Richard Guenther <rguenther@suse.de>
948
949 * gimple.c (iterative_hash_gimple_type): Simplify singleton
950 case some more, fix final hash value of the non-singleton case.
951
36461340
RG
9522011-05-17 Richard Guenther <rguenther@suse.de>
953
954 PR bootstrap/49013
955 Revert
956 2011-05-16 Richard Guenther <rguenther@suse.de>
957
958 * gimple.c (gimple_types_compatible_p_1): Use names of the
959 type itself, not its main variant.
960 (iterative_hash_gimple_type): Likewise.
961
6b6a59f3
RG
9622011-05-17 Richard Guenther <rguenther@suse.de>
963
964 * gimple.c (gimple_register_canonical_type): Use the main-variant
965 leader for computing the canonical type.
966
4ffc4134
NC
9672011-05-17 Nick Clifton <nickc@redhat.com>
968
a1d8754e
NC
969 * config/rx/rx.c (rx_memory_move_cost): Include cost of register
970 moves.
971
4ffc4134
NC
972 * config/rx/rx.md: Add peephole to remove redundant extensions
973 after loads.
39960f7a
NC
974 (bitset_in_memory): Use rx_restricted_mem_operand.
975 (bitinvert_in_memory): Likewise.
976 (bitclr_in_memory): Likewise.
4ffc4134 977
b3db92ac
KI
9782011-05-17 Kazuhio Inaoka <kazuhiro.inaoka.ud@renesas.com>
979 Nick Clifton <nickc@redhat.com>
980
981 * config/rx/rx.md: Add peepholes to match a register move followed
982 by a comparison of the moved register. Replace these with an
983 addition of zero that does both actions in one instruction.
984
8637e32a
JJ
9852011-05-17 Jakub Jelinek <jakub@redhat.com>
986
987 PR target/48986
988 * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
989 predicate to allow CONST_INT.
990 (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
991
8023568e
JM
9922011-05-16 Joseph Myers <joseph@codesourcery.com>
993
994 * opts-common.c (opt_enum_arg_to_value): New.
995 * opts.h (opt_enum_arg_to_value): Declare.
996 * config/i386/i386.opt (fpmath): Remove.
997 (mfpmath=): Use Enum, Init and Save.
998 (fpmath_unit): New Enum and EnumValue entries.
999 * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
1000 name for function fpmath state.
1001 * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
1002 * config/i386/i386.c: Include diagnostic.h.
1003 (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
d9403b0d 1004 (ix86_target_string): Take enum fpmath_unit value instead of string.
8023568e 1005 (ix86_debug_options): Update call to ix86_target_string.
d9403b0d 1006 (ix86_option_override_internal): Don't process fpmath strings here.
8023568e
JM
1007 (x86_function_specific_save, ix86_function_specific_restore):
1008 Don't handle fpmath state specially.
1009 (ix86_function_specific_print): Pass fpmath state to
1010 ix86_target_string instead of printing in this function.
1011 (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
1012 Handle enum attributes.
1013 (IX86_ATTR_ENUM, ix86_opt_enum): New.
1014 (ix86_valid_target_attribute_tree): Update option_strings
1015 handling. Handle fpmath as enum option.
1016 (ix86_can_inline_p): Update field names for function fpmath state.
1017 (ix86_expand_builtin): Update call to ix86_target_string.
1018 * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
1019 (ix86_fpmath): Remove.
1020 * config/i386/t-i386 (i386.o): Update dependencies.
1021
9e8d926e
JM
10222011-05-16 Joseph Myers <joseph@codesourcery.com>
1023
1024 PR preprocessor/48677
1025 * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
1026 from decoded_options[0], not from itself.
1027
f6449011
UB
10282011-05-16 Uros Bizjak <ubizjak@gmail.com>
1029
1030 * config/i386/constraints.md (z): New constraint.
1031 * config/i386/i386.c (c): New mode attribute.
1032 (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
1033 *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
1034 constraint for operand 0.
1035 (*call_vzeroupper): Ditto.
1036 (*call_rex64_ms_sysv): Ditto. Use "rzm" constraint for operand 0.
1037 (*call_rex64_ms_sysv_vzeroupper): Ditto.
1038 (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
1039 Use "lzm" constraint for operand 0.
1040 (*call_pop_vzeroupper): Ditto.
1041 (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
1042 *sibcall_1_rex64 patterns using "P" mode iterator. Use "Uz"
1043 constraint for operand 0.
1044 (*sibcall_vzeroupper): Ditto.
1045 (*sibcall_rex64_ms_sysv): Ditto.
1046 (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
1047 (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
1048 *sibcall_pop_1. Use "Uz" constraint for operand 0.
1049 (*sibcall_pop_vzeroupper): Ditto.
1050 (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
1051 *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
1052 mode iterator. Use "<c>zm" constraint for operand 1.
1053 (*call_value_vzeroupper): Ditto.
1054 (*call_value_rex64_ms_sysv): Ditto. Use "rzm" constraint
d9403b0d 1055 for operand 1.
f6449011
UB
1056 (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
1057 (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
1058 *call_value_pop_1. Use "lzm" constraint for operand 1.
1059 (*call_value_pop_vzeroupper): Ditto.
1060 (*sibcall_value): Merge insn pattern from *sibcall_value_0,
1061 *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
1062 mode iterator. Use "Uz" constraint for operand 1.
1063 (*sibcall_value_vzeroupper): Ditto.
1064 (*sibcall_value_rex64_ms_sysv): Ditto.
1065 (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
1066 (*sibcall_value_pop): Rename from *sibcall_pop_1. Use "Uz"
1067 constraint for operand 1.
1068 (*sibcall_value_pop_vzeroupper): Ditto.
1069 (*tls_global_dynamic_64): Use constant_call_address_operand predicate
1070 and "z" constraint for operand 2.
1071 (*tls_global_dynamic_32_gnu): Ditto.
1072 (*tls_local_dynamic_base_32_gnu): Ditto.
1073 (*tls_local_dynamic_base_64): Ditto.
1074 (*tls_local_dynamic_32_once): Ditto.
1075 * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
1076 Update all callers.
1077 * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
1078
c11b6902
RG
10792011-05-16 Richard Guenther <rguenther@suse.de>
1080
1081 * gimple.c (gimple_types_compatible_p_1): Use names of the
1082 type itself, not its main variant.
1083 (iterative_hash_gimple_type): Likewise.
1084
1e83b5f1
RG
10852011-05-16 Richard Guenther <rguenther@suse.de>
1086
f6449011
UB
1087 * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
1088 always visit pointer target and function result and argument types.
1e83b5f1 1089
62e36382
JM
10902011-05-16 Jason Merrill <jason@redhat.com>
1091
1092 PR c++/48999
1093 * tree-inline.c (copy_statement_list): Put back recursion.
1094
687027a4
GJL
10952011-05-16 Georg-Johann Lay <avr@gjlay.de>
1096
1097 PR target/27663
1098 PR target/41076
1099 * config/avr/predicates.md (const_8_16_24_operand): New predicate.
1100 * config/avr/avr.md ("*ior<mode>qi.byte0",
1101 "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
1102
f24a5190
GJL
11032011-05-16 Georg-Johann Lay <avr@gjlay.de>
1104
1105 PR target/45099
1106 * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
1107 register is needed for a function argument.
1108
3066f593
RG
11092011-05-16 Richard Guenther <rguenther@suse.de>
1110
1111 * gimple.c (struct type_hash_pair): New type.
1112 (type_hash_pair_compare): New function.
f6449011 1113 (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
3066f593 1114
b2ab2cf4
RE
11152011-05-16 Revital Eres <revital.eres@linaro.org>
1116
f6449011 1117 * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
b2ab2cf4 1118
dfb737fc
UB
11192011-05-15 Uros Bizjak <ubizjak@gmail.com>
1120
1121 * config/i386/i386.md (floating point move splitters): Fix
1122 usage of standard_80387_constant_p.
f6449011 1123 * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
dfb737fc 1124
8caa1de0
UB
11252011-05-15 Uros Bizjak <ubizjak@gmail.com>
1126
1127 * config/i386/i386.md (*movdf_internal): Simplify insn condition.
1128
8a519095
EB
11292011-05-14 Eric Botcazou <ebotcazou@adacore.com>
1130
1131 * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
1132 (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
1133 (tree_ssa_lim_finalize): Likewise.
1134
479fecd3
UB
11352011-05-14 Uros Bizjak <ubizjak@gmail.com>
1136
1137 * config/i386/constraint.md (Yd, Yx): New register constraints.
1138 * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger. Use
1139 Yd conditional register constraint.
1140 (*movtf_internal): Use standard_sse_constant_opcode.
1141 (*movxf_internal): Merge with *movxf_internal_nointeger. Use
1142 Yx conditional register constraint.
1143 (*movdf_internal): Merge with *movdf_internal_nointeger. Use
1144 Yd conditional register constraint. Use standard_sse_constant_p to
1145 check for valid SSE constants and call standard_sse_constant_opcode to
1146 output SSE insn.
1147 (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
1148 constants and call standard_sse_constant_opcode to output SSE insn.
1149 * config/i386/i386.c (ix86_option_ovverride_internal): Set
1150 TARGET_INTEGER_DFMODE_MOVES for 64bit targets. Clear it when
1151 optimize_size is set.
1152 (standard_sse_constant_opcode): Output conditional AVX insn templates.
1153
2d8c9ad5
TB
11542011-05-14 Tobias Burnus <burnus@net-b.de>
1155
1156 * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
1157
411a20d6
MJ
11582011-05-13 Martin Jambor <mjambor@suse.cz>
1159
1160 * ipa-prop.c (ipa_cst_from_jfunc): New function.
1161 * ipa-prop.h (ipa_cst_from_jfunc): Declare.
1162 * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
1163 (evaluate_conditions_for_ipcp_clone): Removed.
1164 (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
1165 * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
1166 * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
1167
dc764d10
EB
11682011-05-13 Eric Botcazou <ebotcazou@adacore.com>
1169
1170 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
1171 * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
1172 lieu of MAY_HAVE_DEBUG_STMTS.
1173 * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
1174 debug statements if !MAY_HAVE_DEBUG_STMTS.
1175
9f47a24e
MT
11762011-05-13 Martin Thuresson <martint@google.com>
1177
1178 PR gcov-profile/47793
1179 * libgcov.c (gcov_exit): Support relative profile paths.
1180 * doc/invoke.texi (-fprofile-dir): Update for above change.
1181
b8a71aed
RG
11822011-05-13 Richard Guenther <rguenther@suse.de>
1183
1184 * gimple.c (gimple_canonical_types_compatible_p): Do not use
1185 type-pair caching, do not compare hashes.
1186
eb9f9259
NF
11872011-05-13 Nathan Froyd <froydnj@codesourcery.com>
1188
1189 PR middle-end/48965
1190 * tree-cfg.c (edge_to_cases_cleanup): Return true.
1191 (verify_expr) [CASE_LABEL_EXPR]: Add checking.
1192
3c6cbf7a
KT
11932011-05-13 Kai Tietz <ktietz@redhat.com>
1194
1195 * gimplify.c (gimplify_expr): Make sure operand is boolified.
1196 * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
1197 compatible type for TRUTH_NOT_EXPR.
1198
2e7f5dc0
L
11992011-05-13 H.J. Lu <hongjiu.lu@intel.com>
1200
dc764d10 1201 * config/i386/i386.c (ix86_save_reg): Change return type to bool.
2e7f5dc0
L
1202 (ix86_hard_regno_mode_ok): Change return value to bool. Use
1203 can_create_pseudo_p ().
1204
e834e95c
RG
12052011-05-13 Richard Guenther <rguenther@suse.de>
1206
1207 PR lto/48978
1208 * gimple.c (iterative_hash_gimple_type): Revert change in
1209 pointer target and function result and argument hashing.
1210
34203483
UB
12112011-05-13 Uros Bizjak <ubizjak@gmail.com>
1212
1213 * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
1214 (*movxf_internal_nointeger): Ditto.
1215 (*movdf_internal_rex64): Ditto.
1216 (*movdf_internal): Ditto.
1217 (*movdf_internal_nointeger): Ditto.
1218 (*movsf_internal): Ditto.
1219 (sincos splitters): Use can_create_pseudo ().
1220
7eb68c06
JM
12212011-05-13 Joseph Myers <joseph@codesourcery.com>
1222
1223 * config/i386/i386-opts.h: New.
1224 * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
1225 ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
1226 ix86_section_threshold): Remove.
1227 (ix86_handle_option): Move MAX_CODE_ALIGN define here. Handle
1228 OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
1229 OPT_mbranch_cost_.
1230 (ix86_option_override_internal): Don't decode strings for options
1231 other than -march=, -mtune= and -mfpmath=. Don't allow for
1232 __attribute__ uses in remaining diagnostics for options with
34203483 1233 string arguments. Don't check for integer arguments being negative.
7eb68c06 1234 * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
34203483 1235 enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
7eb68c06
JM
1236 (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
1237 ix86_branch_cost, ix86_section_threshold): Remove.
1238 * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
1239 HeaderInclude.
1240 (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
1241 but not Var.
1242 (masm=): Use Enum and Init.
1243 (asm_dialect): New Enum and EnumValue entries.
1244 (mbranch-cost=): Use UInteger.
1245 (mlarge-data-threshold=): Use UInteger and Init.
1246 (mcmodel=): Use Enum and Init.
1247 (cmodel): New Enum and EnumValue entries.
1248 (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
1249 (mpreferred-stack-boundary=, mincoming-stack-boundary=,
1250 mregparm=): Use UInteger.
1251 (mstringop-strategy=): Use Enum and Init.
1252 (stringop_alg): New Enum and EnumValue entries.
1253 (mtls-dialect=): Use Enum and Init.
1254 (tls_dialect): New Enum and EnumValue entries.
1255 (mabi=): Use Enum and Init.
1256 (calling_abi): New Enum and EnumValue entries.
1257 (mveclibabi=): Use Enum and Init.
1258 (ix86_veclibabi): New Enum and EnumValue entries.
1259
f67e203c
NC
12602011-05-13 Nick Clifton <nickc@redhat.com>
1261
34203483
UB
1262 * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
1263 * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
f67e203c 1264
221df0b6
KT
12652011-05-13 Kai Tietz <ktietz@redhat.com>
1266
1267 PR middle-end/48984
1268 * gimplify.c (gimplify_expr): Check for boolean_type_node instead
1269 for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
1270 (gimple_boolify): Check for cast for boolean_type_node instead for
1271 BOOLEAN_TYPE.
1272
208cb8cb
RG
12732011-05-13 Richard Guenther <rguenther@suse.de>
1274
1275 PR tree-optimization/48172
1276 * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
1277 multiplying by number of iterations for equal step.
1278 (vect_create_cond_for_alias_checks): Likewise.
1279
b88ecf55
AS
12802011-05-13 Andreas Schwab <schwab@redhat.com>
1281
1282 * configure.ac: Use AS_HELP_STRING throughout.
1283 * configure: Regenerate.
1284
569b527e
L
12852011-05-12 H.J. Lu <hongjiu.lu@intel.com>
1286
34203483 1287 * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
569b527e
L
1288 (ix86_emit_restore_regs_using_mov): Likewise.
1289 (ix86_emit_restore_sse_regs_using_mov): Likewise.
1290
8b9a1428
AS
12912011-05-12 Anatoly Sokolov <aesok@post.ru>
1292
1293 * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
1294 SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
1295 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
1296 * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
1297 RTX_OK_FOR_OLO10_P): ...here.
1298 (sparc_mode_dependent_address_p): Use symbolic_operand instead of
1299 SYMBOLIC_CONST.
1300
1d15f620
KT
13012011-05-12 Kai Tietz <ktietz@redhat.com>
1302
1303 * gimplify.c (gimple_boolify): Re-boolify expression
1304 arguments even if expression type is of kind BOOLEAN_TYPE.
1305 (gimplify_boolean_expr): Removed.
1306 (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
1307 and XOR. Additional take care that we keep expression's type.
1308 * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
1309 of TRUTH_AND|OR|XOR_EXPR.
1310
c2b5fc8d
JJ
13112011-05-12 Jakub Jelinek <jakub@redhat.com>
1312
1313 PR tree-optimization/48975
1314 * tree-if-conv.c (combine_blocks): Call free_bb_predicate
1315 on all bbs here and free and clear ifc_bbs at the end.
1316
61332f77
RG
13172011-05-12 Richard Guenther <rguenther@suse.de>
1318
1319 * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
1320 NULLPTR_TYPE similar to VOID_TYPE. Defer type-leader lookup
1321 until after simple checks.
1322 (gimple_types_compatible_p): Likewise.
1323 (iterative_hash_gimple_type): Always hash pointer targets
1324 and function return and argument types.
1325 (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
1326 hash TYPE_ALIGN. Do not hash TYPE_MIN/MAX_VALUE.
1327 (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
1328 handle NULLPTR_TYPE similar to VOID_TYPE. Handle non-aggregates
1329 completely in the simple compare section.
1330 (gimple_register_canonical_type): Query the cache again after
1331 registering.
1332
e2a3a5f1
RG
13332011-05-12 Richard Guenther <rguenther@suse.de>
1334
1335 PR tree-optimization/48172
1336 * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
1337 the number of iterations from the segment size calculation.
1338 (vect_create_cond_for_alias_checks): Adjust.
1339
2c703f3a
JJ
13402011-05-12 Jakub Jelinek <jakub@redhat.com>
1341
1342 PR debug/48967
1343 * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
1344 if validate_subreg fails.
1345
13462011-05-12 Hariharan Sandanagobalane <hariharan@picochip.com>
b27981e0
HS
1347
1348 * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
1349 accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
1350 early.
1351
87e91fca
DD
13522011-05-12 DJ Delorie <dj@redhat.com>
1353
d53903d6 1354 * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
87e91fca
DD
1355 (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
1356 created builtin into rx_builtins array.
1357 (rx_builtin_decl): New function.
34203483 1358 (TARGET_BUITLIN_DECL): Define. Include gt-rx.h.
87e91fca 1359
5f2f13fd
DD
13602011-05-12 DJ Delorie <dj@redhat.com>
1361 Nick Clifton <nickc@redhat.com>
1362
1363 * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
1364 * config/rx/rx.c (CC_FLAG_FP): Fix comment.
1365 (rx_is_legitimate_address): Add pre-decrement and post-increment
1366 addressing in HImode and QImode. Fix test for out of range
1367 REG+INT addressing.
87e91fca 1368 (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
34203483 1369 (rx_align_for_label): Test label before extracting its usage count.
5f2f13fd 1370 (rx_adjust_insn_lengths): Fix selection of insn codes.
87e91fca 1371 (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
5f2f13fd 1372
57421f45
JM
13732011-05-11 Jason Merrill <jason@redhat.com>
1374
1375 * tree.c (type_hash_canon): Use struct tree_type_non_common.
1376
898c90c0
EB
13772011-05-11 Eric Botcazou <ebotcazou@adacore.com>
1378
1379 * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
1380 reindent the subsequent block.
1381
79bec923
ST
13822011-05-11 Satoru Takabayashi <satorux@google.com>
1383 Paul Pluzhnikov <ppluzhnikov@google.com>
1384
34203483 1385 * doc/install.texi (Configuration): Document --with-linker-hash-style.
e77e2cbb
PP
1386 * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
1387 * config.in: Add LINKER_HASH_STYLE.
1388 * configure.ac: Add --with-linker-hash-style.
1389 * configure: Regenerate.
79bec923 1390
d0340959
RG
13912011-05-11 Richard Guenther <rguenther@suse.de>
1392
1393 PR middle-end/48964
1394 * gimple.c (iterative_hash_canonical_type): Fix typo.
1395
cb032fee
UB
13962011-05-11 Uros Bizjak <ubizjak@gmail.com>
1397
1398 * config/i386/i386.c (legitimize_tls_address)
479fecd3 1399 <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
cb032fee
UB
1400 expanders directly for TARGET_GNU2_TLS. Determine pic and
1401 __tls_get_addr symbol reference here. Update call to
1402 gen_tls_global_dynamic_{32,64} for added arguments.
479fecd3 1403 <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
cb032fee
UB
1404 expanders directly for TARGET_GNU2_TLS. Determine
1405 __tls_get_addr symbol reference here. Update call to
1406 gen_tls_local_dynamic_base_{32,64} for added arguments. Attach
1407 unique UNSPEC REG_EQUIV to libcall block.
1408 (ix86_tls_get_addr): Declare static.
1409 * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
1410 * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
1411 Do not determine pic and __tls_get_addr symbol reference here. Do not
1412 call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
1413 (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
1414 (tls_global_dynamic_64): Add operand 2. Do not determine
1415 __tls_get_addr symbol reference here. Do not call
1416 gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
1417 (tls_local_dynamic_base64): Ditto for operand 1.
1418
6d3cc8f0
EB
14192011-05-11 Eric Botcazou <ebotcazou@adacore.com>
1420
1421 * function.c (expand_function_start): Initialize stack_check_probe_note
1422 only if the generic stack checking mechanism is used.
1423
51e020fc
RG
14242011-05-11 Richard Guenther <rguenther@suse.de>
1425
1426 PR tree-optimization/15256
1427 * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
1428 (A & B) | C, combine (A op CST1) op CST2.
1429 (tree_ssa_forward_propagate_single_use_vars): Only bother to
1430 visit assigns that have uses.
1431
51545682
NF
14322011-05-11 Nathan Froyd <froydnj@codesourcery.com>
1433
cb032fee 1434 * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
51545682
NF
1435 * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
1436 (unpack_ts_type_common_value_fields): ...this. Update comment.
1437 (unpack_value_fields): Adjust for renaming.
1438 (lto_input_ts_type_tree_pointers): Split into...
1439 (lto_input_ts_type_common_tree_pointer): ...this and...
1440 (lto_input_ts_type_non_common_tree_pointers): ...this.
1441 (lto_input_tree_pointers): Adjust for above split.
1442 * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
1443 (pack_ts_type_common_value_fields): ...this. Update comment.
1444 (lto_output_ts_type_tree_pointers): Split into...
1445 (lto_output_ts_type_common_tree_pointers): ...this and...
1446 (lto_output_ts_type_non_common_tree_pointers): ...this.
1447 (lto_output_tree_pointers): Adjust for above split.
1448 * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
1449 TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
1450 * stor-layout.c (vector_type_mode): Adjust location of mode field.
1451 * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
1452 Define.
1453 (struct tree_type): Split into...
1454 (struct tree_type_common: ...this and...
1455 (struct tree_type_with_lang_specific): ...this and...
1456 (struct tree_type_non_common): ...this. Adjust accessor macros
1457 accordingly.
1458 (TYPE_VALUES_RAW): Define.
1459 (union tree_node): Update for above changes.
1460 * tree.c (tree_node_structure_for_code) [tcc_type]: Return
1461 TS_TYPE_NON_COMMON.
1462 (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
1463 Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
1464 (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
1465 * treestructu.def (TS_TYPE): Remove.
1466 (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
1467 Define.
1468
b03c3082
JJ
14692011-05-11 Jakub Jelinek <jakub@redhat.com>
1470
1471 PR debug/48159
1472 * tree-ssa.c (reset_debug_uses): New function.
1473 * tree-flow.h (reset_debug_uses): New prototype.
1474 * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
1475 * tree-loop-distribution.c (generate_loops_for_partition): Call
1476 reset_debug_uses on the stmts that will be removed. Keep around
1477 all debug stmts, don't count them as bits in partition bitmap.
1478 (generate_builtin): Don't count debug stmts or labels as bits in
1479 partition bitmap.
1480
b5e04de5
RG
14812011-05-11 Richard Guenther <rguenther@suse.de>
1482
1483 * gimple.c (gimple_type_hash_1): Merge with ...
1484 (gimple_type_hash): ... this.
1485 (gtc_visit): Remove mode parameter and simplify accordingly.
1486 (gimple_types_compatible_p_1): Likewise.
1487 (gimple_types_compatible_p): Likewise.
1488 (iterative_hash_gimple_type): Likewise.
1489 (visit): Likewise.
1490 (gimple_type_eq): Adjust.
1491
fc6970e4
RE
14922011-05-11 Revital Eres <revital.eres@linaro.org>
1493
1494 * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
1495 enters the branch create an anti edge in the opposite direction
1496 to prevent the creation of reg-moves.
1497 * modulo-sched.c: Adjust comment to reflect the fact we are
1498 scheduling closing branch.
1499 (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
1500 (stage_count): New field in struct partial_schedule.
1501 (calculate_stage_count): New function.
1502 (normalize_sched_times): Rename to reset_sched_times and handle
1503 incrementing the sched time of the nodes by a constant value
1504 passed as parameter.
1505 (duplicate_insns_of_cycles): Skip closing branch.
1506 (sms_schedule_by_order): Schedule closing branch.
1507 (ps_insn_find_column): Handle closing branch.
1508 (sms_schedule): Call reset_sched_times and adjust the code to
1509 support scheduling of the closing branch.
1510 (ps_insert_empty_row): Update calls to normalize_sched_times
1511 and rotate_partial_schedule functions.
1512
41a58a92
RG
15132011-05-11 Richard Guenther <rguenther@suse.de>
1514
1515 PR middle-end/48953
1516 * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
1517
e9f8dcf9
JM
15182011-05-11 Joseph Myers <joseph@codesourcery.com>
1519
cb032fee
UB
1520 * opts.c (finish_options): Move warning settings from process_options.
1521 * toplev.c (process_options): Move warning settings to finish_options.
e9f8dcf9 1522
10c224a9
RG
15232011-05-11 Richard Guenther <rguenther@suse.de>
1524
1525 PR tree-optimization/18041
1526 * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
1527 (simplify_bitwise_binary): ... this. Handle operand conversions
1528 by applying them to the result instead.
1529 (tree_ssa_forward_propagate_single_use_vars): Adjust. CSE tree code.
1530
825b27de
RG
15312011-05-11 Richard Guenther <rguenther@suse.de>
1532
1533 * gimple.c (gimple_canonical_types_compatible_p): Split out
1534 from gimple_types_compatible_p and friends. Do not recurse
1535 to pointed-to types.
1536 (gimple_canonical_type_eq): Use it.
1537 (iterative_hash_canonical_type): Split out from
1538 iterative_hash_gimple_type and friends. Do not recurse
1539 to pointed-to types.
1540 (gimple_canonical_type_hash): Use it, allocate the hash here.
1541
ca756625
RE
15422011-05-11 Revital Eres <revital.eres@linaro.org>
1543
1544 * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
1545 recognizing doloop.
1546
b8abece3
RE
15472011-05-11 Revital Eres <revital.eres@linaro.org>
1548
1549 * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
1550 instead of PREV_INSN.
1551
ce7b3761
RE
15522011-05-11 Revital Eres <revital.eres@linaro.org>
1553
1554 * modulo-sched.c (sms_schedule): Support new form of doloop pattern
1555 * loop-doloop.c (doloop_condition_get): Likewise.
1556 * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
1557 (doloop_end): New.
1558 * config/arm/arm.md (*addsi3_compare0): Remove "*".
1559
a9dc9d37
NF
15602011-05-10 Nathan Froyd <froydnj@codesourcery.com>
1561
1562 * tree.def (CASE_LABEL_EXPR): Add an operand.
1563 * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
1564
96703596
JM
15652011-05-10 Joseph Myers <joseph@codesourcery.com>
1566
1567 * c-decl.c (c_override_global_bindings_to_false): Remove.
1568 (global_bindings_p): Don't check
1569 c_override_global_bindings_to_false.
1570 * c-tree.h (c_override_global_bindings_to_false): Remove.
1571 * c-typeck.c (composite_type): Don't set
1572 c_override_global_bindings_to_false.
1573
dbcc9f08
MM
15742011-05-10 Michael Meissner <meissner@linux.vnet.ibm.com>
1575
1576 PR target/48857, 48495
1577 * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
1578 (VSX_MODE): Ditto.
1579 (VSX_MOVE_MODE): Ditto.
1580 (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
1581 VSX vector types. Add V2DImode.
1582 (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
1583 ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
1584 (MODES_TIEABLE_P): Ditto.
1585
1586 * config/rs6000/rs6000.c (rs6000_emit_move): Use
1587 ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
1588 VSX_VECTOR_MODE.
1589 (init_cumulative_args): Ditto.
1590 (rs6000_function_arg_boundary): Ditto.
1591 (rs6000_function_arg_advance_1): Ditto.
1592 (rs6000_function_arg): Ditto.
1593 (rs6000_function_ok_for_sibcall): Ditto.
1594 (emit_frame_save): Ditto.
1595 (rs6000_function_value): Ditto.
1596 (rs6000_libcall_value): Ditto.
1597
4a68b4ca
JM
15982011-05-10 Joseph Myers <joseph@codesourcery.com>
1599
1600 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
1601 i386/darwin-lib.h to $libgcc_tm_file.
1602 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
1603
bcb521e9
JM
16042011-05-10 Joseph Myers <joseph@codesourcery.com>
1605
1606 * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
1607
f10d3ac9
JM
16082011-05-10 Joseph Myers <joseph@codesourcery.com>
1609
cb032fee 1610 * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
f10d3ac9
JM
1611 * config/rs6000/rs6000-tables.opt: New file (generated).
1612 * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
1613 rs6000/rs6000-tables.opt to extra_options.
1614 * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
1615 * config/rs6000/rs6000.c (rs6000_select): Remove.
1616 (processor_target_table): Move contents to rs6000-cpus.def.
1617 (darwin_rs6000_override_options): Check
1618 global_options_set.x_rs6000_cpu_index instead of
1619 rs6000_select[1].string.
1620 (rs6000_option_override_internal): Likewise.
1621 (rs6000_handle_option): Don't assert that global structures are in
1622 use. Don't handle OPT_mcpu_ and OPT_mtune_ here.
1623 (rs6000_default_cpu): New variable.
1624 (rs6000_file_start): Set it instead of local default_cpu. Check
1625 rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
1626 global_options_set.x_rs6000_tune_index instead of rs6000_select.
1627 (rs6000_darwin_file_start): Check rs6000_default_cpu and
1628 global_options_set.x_rs6000_cpu_index instead of rs6000_select.
1629 * config/rs6000/rs6000.h (struct rs6000_cpu_select,
1630 rs6000_select): Remove.
1631 * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
1632 Remove.
1633 (mcpu=, mtune=): Use Var, Init, Enum and Save.
1634 * config/rs6000/t-rs6000
1635 ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
1636 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
1637 global_options_set.x_rs6000_cpu_index instead of
1638 rs6000_select[1].string.
1639 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
1640 global_options_set.x_rs6000_cpu_index instead of
1641 rs6000_select[1].string.
1642
80cf2e08
JM
16432011-05-10 Joseph Myers <joseph@codesourcery.com>
1644
1645 * config.gcc (libgcc_tm_file): Define instead of including files
1646 from ../../libgcc/config/ in tm_file.
cb032fee 1647 * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
80cf2e08
JM
1648 * configure: Regenerate.
1649 * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
1650 libgcc_tm.h, cs-libgcc_tm.h): New.
1651 (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
1652 (clean): Remove libgcc_tm.h.
1653 * config/arm/symbian.h (RENAME_LIBRARY): Remove.
1654 * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
1655 * system.h (DECLARE_LIBRARY_RENAMES): Poison.
1656
fd01a351
GJL
16572011-05-10 Georg-Johann Lay <avr@gjlay.de>
1658
1659 PR target/48896
1660 * config/avr/avr.c (avr_ret_register): Return unsigned int
1661 instead of int.
1662 (avr_function_value): Mark fn_decl_or_type as unused, don't pass
1663 it to avr_libcall_value.
1664 avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
1665 expand_expr.
1666 (avr_expand_binop_builtin): Ditto.
1667 (avr_expand_unop_builtin): Ditto.
1668
34cc3c86
DD
16692011-05-10 DJ Delorie <dj@redhat.com>
1670
1671 * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
1672 (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
1673 * config/rx/rx.c (rx_align_for_label): Add label and
1674 uses_threshold parameters. Do not align when the label is not
1675 used enough.
1676 * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
1677
be173289
RG
16782011-05-10 Richard Guenther <rguenther@suse.de>
1679
1680 * tree-ssa-forwprop.c (combine_conversions): Pattern-match
1681 a series of conversions and apply foldings similar to what
1682 fold-const does.
1683 (tree_ssa_forward_propagate_single_use_vars): Call it.
1684
e7f78021
JJ
16852011-05-10 Jakub Jelinek <jakub@redhat.com>
1686
6ae70ea2
JJ
1687 PR tree-optimization/48611
1688 PR tree-optimization/48794
1689 * tree-eh.c (remove_unreachable_handlers): Don't remove regions
1690 referenced from RESX or EH_DISPATCH arguments.
1691
e7f78021
JJ
1692 PR debug/48928
1693 * dfp.c (decimal_to_decnumber): Handle conversion from
1694 dconst{1,2,m1,half}.
1695
fca132b9
UB
16962011-05-09 Uros Bizjak <ubizjak@gmail.com>
1697
1698 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
1699 for !flag_prefer_avx128.
1700 (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
1701
e4c03378
EB
17022011-05-09 Eric Botcazou <ebotcazou@adacore.com>
1703
1704 * fold-const.c (fold_range_test): Pass LOC to build_range_check.
1705 (fold_ternary_loc): Use expr_location_or.
1706
805d6a75
L
17072011-05-09 H.J. Lu <hongjiu.lu@intel.com>
1708
1709 PR debug/48853
1710 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
1711 POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
1712 Pmode and mem_mode is not VOIDmode.
1713
e4c03378 17142011-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
b5da71d4 1715
e4c03378
EB
1716 * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
1717 TYPE_QUAL_RESTRICT): Convert to enum.
b5da71d4 1718
51e7f377
UB
17192011-05-09 Uros Bizjak <ubizjak@gmail.com>
1720
1721 * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
1722 (const_pow2_1_to_8_operand): Ditto.
1723 (const_pow2_1_to_128_operand): Ditto.
1724 (const_pow2_1_to_32768_operand): Ditto.
1725 * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
1726 const_pow2_1_to_8_operand for operand 3 predicate. Use exact_log2
1727 in insn constraint to check integer value of operand 3.
1728 * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
1729
1730 (PINSR_MODE): New mode iterator.
1731 (sse2p4_1): New mode attribute.
1732 (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
1733 sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
1734 iterator. Use const_int_operand instead of
1735 const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate. Use
1736 exact_log2 in insn constraint to check integer value of operand 3.
1737
17382011-05-09 Uros Bizjak <ubizjak@gmail.com>
1739
1740 * config/i386/sse.md (blendbits): Remove mode attribute.
1741 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
1742 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
1743 Check integer value of operand 3 in insn constraint.
1744
0ca8de87
RG
17452011-05-09 Richard Guenther <rguenther@suse.de>
1746
1747 * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
1748 for diagnostics.
1749 (lto_symtab_merge): Likewise. Do not register types here.
1750 (lto_symtab_merge_decls_2): Likewise.
1751 (lto_symtab_merge_decls_1): Likewise.
1752 * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
1753 * gimple.c (enum gtc_mode): Declare.
1754 (gimple_types_compatible_p): Make static.
1755
a9e6994a
AK
17562011-05-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1757
1758 * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
1759 temporary register to match Pmode.
1760
fb55d62e
UB
17612011-05-09 Uros Bizjak <ubizjak@gmail.com>
1762
1763 * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
1764 and *vec_concatv4si_1_avx.
1765
eb1485a6
UB
17662011-05-09 Uros Bizjak <ubizjak@gmail.com>
1767
1768 PR rtl-optimization/48927
1769 * ira-conflicts.c (commutative_constraint_p): Use
1770 recog_data.alternative_enabled_p to disable alternatives where
1771 "enabled" attribute is false.
1772 (get_dup_num): Ditto.
1773 * ira-lives.c (single_reg_class): Ditto.
1774 (ira_implicitly_set_insn_hard_regs): Ditto.
1775
c46d001a
EB
17762011-05-09 Eric Botcazou <ebotcazou@adacore.com>
1777
1778 * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
1779 (dataflow_set_preserve_mem_locs): Likewise.
1780
17812011-05-09 Philipp Thomas <pth@suse.de>
1782
6d9e7c41
PT
1783 * config/mep/mep.c (mep_validate_vliw): Syntax description
1784 should not be translated.
1785
d371df6f
JM
17862011-05-09 Joseph Myers <joseph@codesourcery.com>
1787
1788 * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
1789 * config/mips/mips-tables.opt: New file (generated).
eb1485a6 1790 * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
d371df6f
JM
1791 * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
1792 MIPS_ARCH_OPTION_NATIVE): Define.
1793 * config/mips/mips.c (mips_cpu_info_table): Move contents to
1794 mips-cpus.def.
1795 (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
1796 mips_parse_cpu): Remove.
1797 (mips_cpu_info_from_opt, mips_default_arch): New.
1798 (mips_handle_option): Don't assert that global structures are in
1799 use. Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
1800 (mips_option_override): Use new variables and functions to set
eb1485a6 1801 state of these options. Use strcmp to check for individual CPU names.
d371df6f
JM
1802 * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
1803 definition.
1804 * config/mips/mips.opt (march=): Use ToLower and Enum.
1805 (mips): Use ToLower, Enum and Var.
1806 (mtune=): Use ToLower and Enum.
1807 * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
1808
4fc07af9
JH
18092011-05-08 Jan Hubicka <jh@suse.cz>
1810
1811 * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
1812 Arrange type pairs to be UID ordered.
1813 (gimple_lookup_type_leader): Make inline.
1814
2cf320a8
NC
18152011-05-09 Nick Clifton <nickc@redhat.com>
1816
61d6def5
NC
1817 PR target/48899
1818 * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
1819 PROCESSOR_DEFAULT.
1820
2cf320a8
NC
1821 PR target/48897
1822 * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
1823 variable 's'.
1824
4f82319d
CLT
18252011-05-08 Chung-Lin Tang <cltang@codesourcery.com>
1826
1827 * combine.c (simplify_comparison): Abstract out parts into...
1828 (simplify_compare_const): ... new function.
1829 (try_combine): Generalize parallel arithmetic/compare combining
1830 to call simplify_compare_const() and CANONICALIZE_COMPARE().
1831
74605a11
JH
18322011-05-08 Jan Hubicka <jh@suse.cz>
1833
1834 * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
eb1485a6
UB
1835 (cgraph_create_virtual_clone): Call hooks once virtual clone
1836 is finished.
74605a11 1837 * cgraph.h (cgraph_clone_node): Update prototype.
eb1485a6
UB
1838 * ipa-cp.c (ipcp_estimate_growth): Use
1839 estimate_ipcp_clone_size_and_time.
74605a11
JH
1840 * ipa-inline-transform.c (clone_inlined_nodes): Update.
1841 * lto-cgraph.c (input_node): Update.
1842 * ipa-inline.c (recursive_inlining): Update.
1843 * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
1844 (evaluate_conditions_for_known_args): Break out from ...
1845 (evaluate_conditions_for_edge): ... here.
1846 (evaluate_conditions_for_ipcp_clone): New function.
1847 (inline_node_duplication_hook): Update clone summary based
1848 on parameter map.
1849 (estimate_callee_size_and_time): Rename to ...
1850 (estimate_node_size_and_time): take NODE instead of EDGE;
1851 take POSSIBLE_TRUTHS as argument.
1852 (estimate_callee_size_and_time): Update.
1853 (estimate_ipcp_clone_size_and_time): New function.
1854 (do_estimate_edge_time): Update.
1855
5c049507
RG
18562011-05-08 Richard Guenther <rguenther@suse.de>
1857
1858 PR middle-end/48908
1859 PR middle-end/48905
1860 * expmed.c (expand_shift_1): Compute adjusted constant shift
1861 amount manually.
1862
f64c36ba
EB
18632011-05-08 Eric Botcazou <ebotcazou@adacore.com>
1864
1865 * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
1866
c461a957
EB
18672011-05-08 Eric Botcazou <ebotcazou@adacore.com>
1868
1869 * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
1870
7c74e556
JW
18712011-05-08 Jonathan Wakely <jwakely.gcc@gmail.com>
1872
1873 * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
1874
b4c0a884
JH
18752011-05-07 Jan Hubicka <jh@suse.cz>
1876
a9bcb3f0
EB
1877 * ipa-inline-transform.c (inline_call): Account when program size
1878 decreases.
b4c0a884 1879 * ipa-inline.c (relative_time_benefit): New function.
a9bcb3f0
EB
1880 (edge_badness): Reorganize to be power 2 based; fix thinko when
1881 computing badness for negative growth; update comments to match
1882 reality; better dumps.
b4c0a884 1883
c99c0026
EB
18842011-05-07 Eric Botcazou <ebotcazou@adacore.com>
1885
1886 * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
1887 type to bool and adjust comment.
1888 * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
1889 (fold_mathfn_compare): Remove calls to global_bindings_p.
1890 (fold_inf_compare): Likewise.
1891 * stor-layout.c (variable_size): Adjust call to global_bindings_p.
1892 * c-tree.h (global_bindings_p): Adjust prototype.
1893 * c-decl.c (global_bindings_p): Return bool and simplify.
1894
1400c8e5
ZD
18952011-05-07 Zdenek Dvorak <ook@ucw.cz>
1896
1897 PR tree-optimization/48837
1898 * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
1899 when accumulator transformation is performed.
1900
5d0878e7
JH
19012011-05-06 Jan Hubicka <jh@suse.cz>
1902
a9bcb3f0
EB
1903 * i386.h (ix86_tune_indices): Add
1904 X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
eb1485a6 1905 (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
a9bcb3f0
EB
1906 * i386.c (initial_ix86_tune_features): Add
1907 X86_SOFTARE_PREFETCHING_BENEFICIAL.
5d0878e7
JH
1908 (software_prefetching_beneficial_p): Remove predicate.
1909 (ix86_option_override_internal): Use new macro.
1910
58696ce5
JH
19112011-05-06 Jan Hubicka <jh@suse.cz>
1912
1913 * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
1914
c47d0034
JH
19152011-05-06 Jan Hubicka <jh@suse.cz>
1916
1917 * cgraph.c (cgraph_add_thunk): Create real function node instead
1918 of alias node; finalize it and mark needed/reachale; arrange visibility
1919 to be right and add it into the corresponding same comdat group list.
1920 (dump_cgraph_node): Dump thunks.
1921 * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
a9bcb3f0
EB
1922 cgraph_function_with_gimple_body_p,
1923 cgraph_first_function_with_gimple_body,
c47d0034
JH
1924 cgraph_next_function_with_gimple_body): New functions.
1925 (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
1926 New macros.
1927 * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
1928 (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
1929 * cgraphunit.c (cgraph_finalize_function): Only look into possible
1930 devirtualization when optimizing.
1931 (verify_cgraph_node): Verify thunks.
1932 (cgraph_analyze_function): Analyze thunks.
1933 (cgraph_mark_functions_to_output): Output thunks only in combination
1934 with function they are assigned to.
1935 (assemble_thunk): Turn thunk into non-thunk; don't try to turn
1936 alias into normal node.
1937 (assemble_thunks): New functoin.
1938 (cgraph_expand_function): Use it.
1939 * lto-cgraph.c (lto_output_node): Stream thunks.
1940 (input_overwrite_node): Stream in thunks.
1941 * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
1942 * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
1943 * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
1944 * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
1945 (inline_analyze_function): Do not care about thunk jump functions.
1946 (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
a9bcb3f0
EB
1947 * ipa-prop.c (ipa_prop_write_jump_functions): Use
1948 cgraph_function_with_gimple_body_p.
1949 * passes.c (do_per_function_toporder): Use
1950 cgraph_function_with_gimple_body_p.
c47d0034
JH
1951 (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
1952 (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
1953 (function_called_by_processed_nodes_p): Likewise.
1954
d8f426ec
JM
19552011-05-06 Joseph Myers <joseph@codesourcery.com>
1956
1957 * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
1958 rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
1959 entries.
1960 (mabi=): Replace with separate entries for mabi=altivec,
1961 mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
1962 mabi=ieeelongdouble and mabi=ibmlongdouble.
1963 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
1964 check for -mabi=spe without SPE ABI support here.
1965 (rs6000_handle_option): Replace OPT_mabi_ handling with
1966 OPT_mabi_altivec and OPT_mabi_spe handling.
1967
80bde45b
CC
19682011-05-06 Cary Coutant <ccoutant@google.com>
1969
1970 * dwarf2out.c (contains_subprogram_definition): New function.
1971 (should_move_die_to_comdat): Call it.
1972
a91926b9
JL
19732011-05-06 Jeff Law <law@redhat.com>
1974
1975 * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
1976 remove_ctrl_stmt_and_useless_edges.
1977 (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
1978 (fixup_template_block, thread_single_edge): Likewise.
1979 (mark_threaded_blocks): Use THREAD_TARGET.
1980
1fc1b66d
AM
19812011-05-06 Alan Modra <amodra@gmail.com>
1982
1983 PR target/48900
1984 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
1985 const0_rtx as the arg to the dummy __tls_get_addr libcall.
1986
e194de64
UB
19872011-05-06 Uros Bizjak <ubizjak@gmail.com>
1988
1989 * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
1990 constraint modifier to "r".
1991
d740dc9e
JM
19922011-05-06 Joseph Myers <joseph@codesourcery.com>
1993
1994 * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
1995 fall through for OPT_mcmodel_.
1996
cab78b15
AK
19972011-05-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1998
1999 * config/s390/s390.c (s390_asm_trampoline_template): Comment
2000 instruction sizes.
e194de64 2001 (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
cab78b15 2002
ee6824ae
RR
20032011-05-06 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
2004
eb1485a6
UB
2005 PR target/47930
2006 * config/arm/arm.opt (marm): Document it.
2007 (mthumb): Reject negative variant.
ee6824ae 2008
9ef58464
UB
20092011-05-06 Uros Bizjak <ubizjak@gmail.com>
2010
2011 PR target/48898
2012 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
2013 Fix typo in "ccvt" variable name.
2014
155b6176
TG
20152011-05-06 Tristan Gingold <gingold@adacore.com>
2016
2017 PR target/48895
2018 * config/vms/vms-ar.c (main): Remove cwd variable.
2019
3becc47b
JJ
20202011-05-06 Jakub Jelinek <jakub@redhat.com>
2021
2022 PR debug/48902
2023 * var-tracking.c (prepare_call_arguments): Move else before #endif.
2024
3d528853
NF
20252011-05-05 Nathan Froyd <froydnj@codesourcery.com>
2026
2027 * except.c (sjlj_emit_dispatch_table): Call build_case_label.
2028 * gimplify.c (gimplify_switch_expr): Likewise.
2029 * omp-low.c (expand_omp_sections): Likewise.
2030 * tree-eh.c (lower_try_finally_switch): Likewise.
2031 (lower_eh_dispatch): Likewise.
2032 * tree.h (build_case_label): Declare.
2033 * tree.c (build_case_label): Define.
2034
deb5046b
JM
20352011-05-05 Jason Merrill <jason@redhat.com>
2036
2037 PR c++/40975
2038 * tree-inline.c (copy_tree_r): Use copy_statement_list.
2039 (copy_statement_list): Don't recurse.
2040 * stor-layout.c (copy_self_referential_tree_r): Don't allow
2041 STATEMENT_LIST.
2042
013c0411
JM
20432011-05-05 Joseph Myers <joseph@codesourcery.com>
2044
2045 * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
2046 through from -mfpu= handling.
2047 * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
2048
a0905f8b
BS
20492011-05-05 Bernd Schmidt <bernds@codesourcery.com>
2050
2051 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
2052 POST_MODIFY.
2053
fc4538e4
SE
20542011-05-05 Steve Ellcey <sje@cup.hp.com>
2055
2056 * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
2057 for 11.31.
2058 (hppa[12]*-*-hpux11*): Ditto.
2059 (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
2060 * config/ia64/hpux-unix2003.h: New.
2061 * config/pa/pa-hpux1131.opt: New.
2062 * config/pa/pa-hpux1131.h: New.
2063 * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
2064 * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
4eec64ff 2065 * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
fc4538e4 2066
1e30c578
JJ
20672011-05-05 Jakub Jelinek <jakub@redhat.com>
2068
2069 PR debug/48853
2070 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
2071 instead of mode as 3rd argument to recursive call.
2072 (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
2073 emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
2074 VOIDmode.
2075 (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
2076 don't give up if mode is Pmode and mem_mode is not VOIDmode.
2077 (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
2078 use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
2079
d19eb620
JB
20802011-05-05 Julian Brown <julian@codesourcery.com>
2081
2082 * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
2083 parenthesis in D-register case.
2084
c860fe8c
JM
20852011-05-05 Joseph Myers <joseph@codesourcery.com>
2086
2087 * opt-functions.awk (var_type_struct): Handle Enum options.
2088 * optc-gen.awk: Don't check range of variables of character type.
2089 * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
2090 rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
2091 rs6000_sdata_name, rs6000_explicit_options): Remove.
2092 (rs6000_option_override_internal): Check for -malign-power here.
2093 Use global_options_set instead of rs6000_explicit_options.
2094 (rs6000_parse_fpu_option): Remove.
2095 (rs6000_handle_option): Access variables via opts and opts_set
2096 pointers. Use error_at and warning_at. Add fall-through
2097 comments. Don't handle OPT_mcmodel_, OPT_maix_struct_return,
2098 OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
2099 OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
2100 OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
2101 here. Don't use rs6000_parse_fpu_option.
2102 * config/rs6000/rs6000.h (fpu_type): Remove declaration.
2103 * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
2104 rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
2105 (mrecip=): Use Var.
2106 (mspe): Use Var and Save.
2107 (mtraceback=): Use Enum and Var.
2108 (rs6000_traceback_type): New Enum and EnumValue entries.
2109 (mfloat-gprs=): Use Enum, Var and Save.
2110 (rs6000_float_gprs): New Enum and EnumValue entries.
2111 (mlong-double-): use Var and Save.
2112 (msched-costly-dep=, minsert-sched-nops=): Use Var.
2113 (malign-): Use Enum and Var.
2114 (rs6000_alignment_flags): New Enum and EnumValue entries.
2115 (mfpu=): Use Enum.
2116 (fpu_type_t): New Enum and EnumValue entries.
2117 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2118 global_options_set instead of rs6000_explicit_options.
2119 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2120 global_options_set instead of rs6000_explicit_options.
2121 * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2122 global_options_set instead of rs6000_explicit_options.
2123 * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2124 global_options_set instead of rs6000_explicit_options.
2125 * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
2126 global_options_set instead of rs6000_explicit_options.
2127 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
2128 global_options_set instead of rs6000_explicit_options.
2129 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
2130 definition.
2131 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
2132 global_options_set instead of rs6000_explicit_options.
2133 * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
2134 (rs6000_cmodel): New Enum and EnumValue entries.
2135 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
2136 global_options_set instead of rs6000_explicit_options.
2137 * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
2138 (mtls-size=): Use Enum and Var.
2139 (rs6000_tls_size): New Enum and EnumValue entries.
2140
0691dde9
MM
21412011-05-05 Michael Matz <matz@suse.de>
2142
2143 * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
2144 * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
2145 * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
2146 * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
2147 * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
2148 * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
2149 * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
2150 * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
2151 * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
2152 * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
2153 * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
2154 * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
2155 * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
2156 * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
2157 * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
2158 * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
2159
86529a49
RG
21602011-05-05 Richard Guenther <rguenther@suse.de>
2161
2162 * expmed.c (expand_variable_shift): Rename to ...
2163 (expand_shift_1): ... this. Take an expanded shift amount.
2164 For rotates recurse directly not building trees for the shift amount.
2165 (expand_variable_shift): Wrap around expand_shift_1.
2166 (expand_shift): Adjust.
2167
d0228c2e
JJ
21682011-05-05 Jakub Jelinek <jakub@redhat.com>
2169
2170 * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
2171
907a08d9
EB
21722011-05-05 Eric Botcazou <ebotcazou@adacore.com>
2173
2174 * tree.h (get_pending_sizes): Remove prototype.
2175 (put_pending_size): Likewise.
2176 (put_pending_sizes): Likewise.
2177 * stor-layout.c (pending_sizes): Delete.
2178 (get_pending_sizes): Likewise.
2179 (put_pending_size): Likewise.
2180 (put_pending_sizes): Likewise.
2181 (variable_size): Do not call put_pending_size and tidy up.
2182 * function.h (struct function): Remove dont_save_pending_sizes_p.
2183 * lto-streamer-in.c (input_function): Do not stream it.
2184 * lto-streamer-out.c (output_function): Likewise.
2185 * tree-inline.c (initialize_cfun): Do not copy it.
2186 * c-decl.c (store_parm_decls): Do not set it.
2187 * omp-low.c (create_task_copyfn): Likewise.
2188 * tree-optimize.c (tree_rest_of_compilation): Likewise.
2189
386d9c57
UB
21902011-05-05 Uros Bizjak <ubizjak@gmail.com>
2191
2192 * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
2193 conditions.
2194 (*movdf_internal): Ditto.
2195 (*movdf_internal_nointeger): Ditto.
2196 (*movsf_internal): Ditto.
2197
a04a722b
JM
21982011-05-05 Joseph Myers <joseph@codesourcery.com>
2199
2200 * c-decl.c (finish_decl): Don't call get_pending_sizes.
2201 (grokparm): Add parameter expr. Pass it to grokdeclarator.
2202 (push_parm_decl): Add parameter expr. Pass it to grokdeclarator.
2203 (c_variable_size): Remove.
2204 (grokdeclarator): Use save_expr instead of c_variable_size. Don't
2205 call put_pending_sizes.
2206 (get_parm_info): Add parameter expr. Use it to set
2207 arg_info->pending_sizes.
2208 (store_parm_decls): Use arg_info->pending_sizes instead or calling
2209 get_pending_sizes.
2210 * c-parser.c (c_parser_parms_declarator): Update call to
2211 c_parser_parms_list_declarator.
2212 (c_parser_parms_list_declarator): Take parameter expr. Update
2213 call to push_parm_decl. Update recursive call. Don't call
2214 get_pending_sizes. Update calls to get_parm_info.
2215 (c_parser_objc_method_definition): Update calls to
2216 c_parser_objc_method_decl and objc_start_method_definition.
386d9c57 2217 (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
a04a722b
JM
2218 (c_parser_objc_method_decl): Add parameter expr. Update call to
2219 grokparm.
386d9c57 2220 (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
a04a722b
JM
2221 * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
2222 (get_parm_info, grokparm, push_parm_decl): Update prototypes.
2223
c92a6f97
MH
22242011-05-05 Michael Hope <michael.hope@linaro.org>
2225
386d9c57
UB
2226 PR pch/45979
2227 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
2228 __ARM_EABI__ hosts.
c92a6f97 2229
07ea0048
UW
22302011-05-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2231
2232 * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
2233 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
2234 (spu_output_mi_thunk): New function.
2235
d634bfa1
RO
22362011-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2237
2238 * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
2239 targetm.asm_out.print_operand.
2240 * config/sol2.c: Include target.h.
2241
40fda55b
JH
22422011-05-04 Jan Hubicka <jh@suse.cz>
2243
2244 * ipa-inline.c (reset_edge_caches): New function.
2245 (update_caller_keys): Add check_inlinablity_for; do not
2246 reset edge caches; remove now unnecesary loop.
386d9c57 2247 (update_callee_keys): Add comments; reset node_growth_cache of callee.
40fda55b
JH
2248 (update_all_callee_keys): Likewise.
2249 (inline_small_functions): Sanity check cache; update code
2250 recomputing it.
2251
0360f70d
BS
22522011-05-04 Bernd Schmidt <bernds@codesourcery.com>
2253
2254 PR rtl-optimization/47612
2255 * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
2256 as the last insn of the sequence to be moved.
2257
7a994646
TB
22582011-05-04 Tobias Burnus <burnus@net-b.de>
2259
2260 PR fortran/48864
2261 * doc/invoke.texi (Ofast): Document that it
2262 enables Fortran's -fno-protect-parens.
2263
7a2f7208
UB
22642011-05-04 Uros Bizjak <ubizjak@gmail.com>
2265
2266 * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
2267
a2d42931
EB
22682011-05-04 Eric Botcazou <ebotcazou@adacore.com>
2269
2270 * stor-layout.c (variable_size): Do not issue errors.
2271
f81b1a3d
RG
22722011-05-04 Richard Guenther <rguenther@suse.de>
2273
2274 * coverage.c (tree_coverage_counter_ref): Use integer_type_node
2275 for array-ref indices.
2276 (tree_coverage_counter_addr): Likewise.
2277 (build_fn_info_type): Use size_int for index types.
2278 (build_gcov_info): Likewise.
2279
c62c040f
RG
22802011-05-04 Richard Guenther <rguenther@suse.de>
2281
2282 * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
2283 to build_int_cst.
2284 * c-typeck.c (really_start_incremental_init): Use bitsize_int
2285 for constructor indices.
2286 (push_init_level): Likewise.
2287
1e3287d0
RG
22882011-05-04 Richard Guenther <rguenther@suse.de>
2289
2290 * explow.c (promote_mode): Move variable declarations before code.
2291
6c32445b
NF
22922011-05-04 Nathan Froyd <froydnj@codesourcery.com>
2293
2294 * tree.h (build_function_type_array): Declare.
2295 (build_varargs_function_type_array): Declare.
2296 (build_function_type_vec, build_varargs_function_type_vec): Define.
2297 * tree.c (build_function_type_array_1): New function.
2298 (build_function_type_array): New function.
2299 (build_varargs_function_type_array): New function.
2300
fdabf269
RS
23012011-05-04 Richard Sandiford <richard.sandiford@linaro.org>
2302
2303 * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
2304 before setting STMT_VINFO_TYPE.
2305
a207915a
UW
23062011-05-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2307
2308 * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
2309 instead of spu_pass_by_reference.
2310
5e617be8
AK
23112011-05-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2312
2313 * calls.c (emit_library_call_value_1): Invoke
2314 promote_function_mode hook on libcall arguments.
2315 * explow.c (promote_function_mode, promote_mode): Handle TYPE
2316 argument being NULL.
2317 * targhooks.c (default_promote_function_mode): Lisewise.
2318 * config/s390/s390.c (s390_promote_function_mode): Likewise.
2319 * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
2320
2321 * doc/tm.texi: Document that TYPE argument might be NULL.
2322
486d04be
SH
23232011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
2324
2325 * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
2326
9b19b026
SH
23272011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
2328
2329 From Bernd Schmidt
2330 * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
2331
502bc3df
RO
23322011-05-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2333
2334 * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
2335 (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
2336 Move ...
2337 * mips-tfile.c: ... here.
2338 Don't include coretypes.h, tm.h, filenames.h.
2339 (saber_stop): Remove definition and all calls.
2340 [__SABER__]: Remove.
2341 (__LINE__): Remove default.
2342 (Size_t, Ptrdiff_t): Remove definitions.
2343 Replace by size_t, ptrdiff_t.
2344 [!MIPS_DEBUGGING_INFO]: Remove.
2345 (SHASH_SIZE, THASH_SIZE): Remove defaults.
2346 (progname): Add const.
2347 (STATIC): Remove.
2348 Replace all uses by static.
2349 (ALIGN_SYMTABLE_OFFSET): Remove default.
2350 * mips-tdump.c: Don't include coretypes.h, tm.h.
2351 Remove !MIPS_IS_STAB guard.
2352 * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
2353 $(TM_H), filenames.h dependencies.
2354 (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
2355
991eb6ef
SH
23562011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
2357
2358 From Jie Zhang
2359 *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
2360 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
2361
420ccc84
SH
23622011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
2363
2364 From Bernd Schmidt
2365 * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
2366 account and save/restore RETS.
2367 (PROFILE_BEFORE_PROLOGUE): Define.
2368 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character. Correct
2369 the push insn to use predecrement.
2370
9f8d69ee
SH
23712011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
2372
2373 From Jie Zhang
2374 * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
2375
662c03f4
NC
23762011-05-04 Nick Clifton <nickc@redhat.com>
2377
2378 * config/mn10300/mn10300.c: Include cfgloop.h.
2379 (DUMP): New macro.
2380 (mn10300_insert_setlb_lcc): New function. Inserts a SETLB and a
2381 Lcc or a FLcc insn into the instruction stream.
2382 (mn10300_block_contains_call): New function. Returns true if the
2383 given basic block contains a CALL insn.
2384 (mn10300_loop_contains_call_insn): New function. Returns true if
2385 the given loop contains a CALL insn.
2386 (mn10300_scan_for_setlb_lcc): New function. Finds opportunities
2387 to use the SETLB and Lcc or FLcc insns.
2388 (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
2389 (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
2390 * config/mn10300/mn10300.opt (msetlb): New option. Used to
2391 disable the SETLB optimization.
2392 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
2393 __SETLB__ or __NO_SETLB__.
2394 * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
2395 (movsf_internal): Handle MDR register.
2396 (cmpsi): Make visible.
2397 (setlb): New pattern.
2398 (Lcc): New pattern.
2399 (FLcc): New pattern.
2400
843b6915
UB
24012011-05-04 Uros Bizjak <ubizjak@gmail.com>
2402
2403 PR target/48860
2404 * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
2405 for reg<->xmm moves.
2406 * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
2407 (vec_concatv2di_rex64_sse): Ditto.
2408 (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
2409 (*vec_extractv2di_1_rex64): Ditto.
2410
2411 Revert:
2412 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
2413
2414 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
2415 reg<->xmm moves.
2416 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
2417
d35936ab
RG
24182011-05-04 Richard Guenther <rguenther@suse.de>
2419
2420 * tree.h (int_const_binop): Remove notrunc argument.
2421 * fold-const.c (int_const_binop): Remove notrunc argument. Always
2422 create integer constants that are properly truncated.
2423 (extract_muldiv_1): Expand one notrunc int_const_binop caller.
2424 (const_binop): Remove zero notrunc argument to int_const_binop.
2425 (size_binop_loc): Likewise.
2426 (fold_div_compare): Likewise.
2427 (maybe_canonicalize_comparison_1): Likewise.
2428 (fold_comparison): Likewise.
2429 (fold_binary_loc): Likewise.
2430 (multiple_of_p): Likewise.
2431 * expr.c (store_constructor): Likewise.
2432 * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
2433 (maybe_fold_stmt_addition): Likewise.
2434 * ipa-prop.c (ipa_modify_call_arguments): Likewise.
2435 * stor-layout.c (layout_type): Likewise.
2436 * tree-data-ref.c (tree_fold_divides_p): Likewise.
2437 * tree-sra.c (build_ref_for_offset): Likewise.
2438 (build_user_friendly_ref_for_offset): Likewise.
2439 * tree-ssa-address.c (maybe_fold_tmr): Likewise.
2440 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
2441 * tree-ssa-loop-niter.c (inverse): Likewise.
2442 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
2443 * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
2444 * tree-switch-conversion.c (check_range): Likewise.
2445 (build_constructors): Likewise.
2446 * tree-vect-generic.c (expand_vector_piecewise): Likewise.
2447 * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
2448 (extract_range_from_assert): Likewise.
2449 (vrp_int_const_binop): Likewise.
2450 (extract_range_from_binary_expr): Likewise.
2451 (extract_range_from_unary_expr): Likewise.
2452 (check_array_ref): Likewise.
2453 (find_case_label_range): Likewise.
2454 (simplify_div_or_mod_using_ranges): Likewise.
2455 * tree-cfg.c (group_case_labels_stmt): Use double-ints for
2456 comparing case labels for merging.
2457
8992c063
MW
24582011-05-03 Mark Wielaard <mjw@redhat.com>
2459
2460 * dwarf2out.c (debug_str_hash_forced): Removed.
2461 (gen_label_for_indirect_string): Removed.
2462 (get_debug_string_label): Removed.
2463 (AT_string_form): Generate label directly.
2464 (output_indirect_string): Test indirect_string_node for
2465 DW_FORM_strp instead of checking label and refcount.
2466 (prune_indirect_string): Removed.
2467 (prune_unused_types): Don't check debug_str_hash_forced or
2468 call prune_indirect_string.
2469
4868e6ea
AO
24702011-05-04 Alexandre Oliva <aoliva@redhat.com>
2471
2472 PR other/48093
2473 * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
2474
01a5c0ab
AO
24752011-05-04 Alexandre Oliva <aoliva@redhat.com>
2476
2477 PR debug/47994
2478 PR debug/47919
2479 * combine.c (try_combine): Skip debug insns at m_split tests.
2480
6ac00218
MW
24812011-04-26 Mark Wielaard <mjw@redhat.com>
2482
2483 PR42288
2484 * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
2485 when info_section_emitted.
2486
3af42a7b
JM
24872011-05-03 Joseph Myers <joseph@codesourcery.com>
2488
2489 * config/mips/mips-opts.h: New.
2490 * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
2491 to mips-opts.h.
2492 (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
2493 (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
2494 or OPT_mr10k_cache_barrier_ here. Access mips_cache_flush_func
2495 via opts pointer.
2496 * config/mips/mips.h (enum mips_code_readable_setting): Move to
2497 mips-opts.h.
2498 (mips_abi, mips_code_readable): Don't declare.
843b6915 2499 * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
3af42a7b
JM
2500 (mabi=): Use Enum and Var.
2501 (mips_abi): New Enum and EnumValue entries.
2502 (mcode-readable=): Use Enum and Var.
2503 (mips_code_readable_setting): New Enum and EnumValue entries.
2504 (mr10k-cache-barrier=): Use Enum and Var.
2505 (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
2506
1cb1a99f
JH
25072011-05-03 Jan Hubicka <jh@suse.cz>
2508
2509 * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
2510 replace hash by pointer map.
2511 (cgraph_node_set_element_def, cgraph_node_set_element,
2512 const_cgraph_node_set_element, varpool_node_set_element_def,
2513 varpool_node_set_element, const_varpool_node_set_element): Remove.
2514 (free_cgraph_node_set, free_varpool_node_set): New function.
2515 (cgraph_node_set_size, varpool_node_set_size): Use vector size.
2516 * tree-emutls.c: Free varpool node set.
2517 * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
2518 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
2519 debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
2520 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
2521 dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
2522 Move here from ipa.c; implement using pointer_map
2523 * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
2524 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
2525 debug_cgraph_node_set, varpool_node_set_new,
2526 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
2527 dump_varpool_node_set, debug_varpool_node_set):
2528 Move to ipa-uitls.c.
2529 * passes.c (ipa_write_summaries): Update.
2530
7f31f4db
SH
25312011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
2532
7a2f7208
UB
2533 From Mike Frysinger:
2534 * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
2535 bf542/bf544/bf547/bf548/bf549.
7f31f4db 2536
b70fce6d
UB
25372011-05-03 Uros Bizjak <ubizjak@gmail.com>
2538
2539 * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
2540
265b1d82
SH
25412011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
2542
2543 From Bernd Schmidt:
2544 * config/bfin/bfin.md (MOVCC): New mode_macro.
2545 (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
2546 movsicc_insn1, movsicc_insn2 and movsicc and macroized. Remove
2547 comments from generated assembly.
2548
f0b568f3
SH
25492011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
2550
2551 From Bernd Schmidt
2552 * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
2553 * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
2554 * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
2555 * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
2556 * config/bfin/lib1funcs.asm (___muldi3): New function.
2557
2c67cf6e
NF
25582011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2559
2560 * config/stormy16/stormy16 (xstormy16_init_builtins): Call
2561 build_function_type_list instead of build_function_type.
2562 Rearrange initialization of `args' to do so.
2563
f9ac28ad
NF
25642011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2565
2566 * config/i386/i386.c (ix86_code_end): Call build_function_type_list
2567 instead of build_function_type.
2568
22b8798c
NF
25692011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2570
2571 * config/rs6000/rs6000.c (spe_init_builtins): Call
2572 build_function_type_list instead of build_function_type.
2573 (paired_init_builtins, altivec_init_builtins): Likewise.
2574 (builtin_function_type): Likewise.
2575
4cb44528
NF
25762011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2577
2578 * config/sh/sh.c (sh_media_init_builtins): Call
2579 build_function_type_list instead of build_function_type.
2580
4c203a6a
NF
25812011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2582
2583 * config/sparc/sparc.c (sparc_file_end): Call
2584 build_function_type_list instead of build_function_type.
2585
d6a3d62b
NF
25862011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2587
2588 * config/alpha/alpha.c (alpha_init_builtins): Call
2589 build_function_type_list instead of build_function_type.
2590
de530b86
NF
25912011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2592
2593 * config/xtensa/xtensa.c (xtensa_init_builtins): Call
2594 build_function_type_list instead of build_function_type.
2595
baeec5f2
NF
25962011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2597
2598 * config/iq2000/i2000.c (iq2000_init_builtins): Call
2599 build_function_type_list instead of build_function_type.
2600 Delete `endlink' variable.
2601
c19afe52
NF
26022011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2603
2604 * config/avr/avr.c (avr_init_builtins): Call
2605 build_function_type_list instead of build_function_type.
2606
a341df0a
NF
26072011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2608
2609 * config/picochip/picochip.c (picochip_init_builtins): Call
2610 build_function_type_list instead of build_function_type.
2611 Delete `endlink' variable.
2612
2102b1e1
NF
26132011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2614
2615 * config/bfin/bfin.c (bfin_init_builtins): Call
2616 build_function_type_list instead of build_function_type.
2617
9f111209
SH
26182011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
2619
2620 From Bernd Schmidt
2621 * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
2622 that's not CONST_INT. Seemingly redundant check is due to PR39768.
2623
7071d064
SH
26242011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
2625
2626 From Jie Zhang:
2627 * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
2628 libbffastfp overrides libgcc when -mfast-fp.
2629
748f7574 26302011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
44fb48ef
SH
2631
2632 Originally from Bernd Schmidt
2633 * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
2634 * config/bfin/bfin.c (override_options): Test it and error if
2635 TARGET_FDPIC.
2636
1a3a9152
SH
26372011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
2638
2639 Originally From Bernd Schmidt
2640 * config/bfin/bfin.c (override_options): Disable -fstack-limit for
2641 FD-PIC.
2642
7134c090
JL
26432011-05-03 Jeff Law <law@redhat.com>
2644
2645 * tree-ssa-threadupdate.c (THREAD_TARGET): define.
2646 (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
2647 (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
b70fce6d
UB
2648 than accessing AUX field directly. Free the AUX field before
2649 clearing it.
7134c090
JL
2650 (thread_block, thread_through_loop_header): Likewise.
2651 (thread_single_edge, mark_threaded_blocks): Likewise.
2652 (redirect_edges): Delay clearing the AUX field. Free the AUX field.
2653 (register_jump_thread): Do not attempt to thread to a NULL edge.
b70fce6d 2654
2c7eebae
BS
26552011-05-03 Bernd Schmidt <bernds@codesourcery.com>
2656
2657 * function.c (init_function_start): Call decide_function_section.
2658 * varasm.c (decide_function_section): New function.
2659 (assemble_start_function): When not using
2660 flag_reorder_blocks_and_partition, don't compute in_cold_section_p
2661 or first_function_block_is_cold.
2662 * rtl.h (decide_function_section): Declare.
2663
17038fcf
JJ
26642011-05-03 Uros Bizjak <ubizjak@gmail.com>
2665 Jakub Jelinek <jakub@redhat.com>
2666
2667 PR target/48774
2668 * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
2669 only succeed if req_mode is the same as set_mode.
2670
3810076b
BS
26712011-05-03 Bernd Schmidt <bernds@codesourcery.com>
2672
2673 * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
2674 * genemit.c (gen_exp): Handle RETURN.
2675 * emit-rtl.c (verify_rtx_sharing): Likewise.
2676 (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
2677 * rtl.c (copy_rtx): RETURN is shared.
2678 * rtl.h (enum global_rtl_index): Add GR_RETURN.
2679 (ret_rtx): New.
2680 * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
2681 * config/s390/s390.c (s390_emit_epilogue): Likewise.
2682 * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
2683 * config/cris/cris.c (cris_expand_return): Likewise.
2684 * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
2685 * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
2686 rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
2687 * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
2688 * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
2689 Likewise.
2690 * config/v850/v850.c (expand_epilogue): Likewise.
2691 * config/bfin/bfin.c (bfin_expand_call): Likewise.
2692 * config/arm/arm.md (epilogue): Likewise.
2693 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
2694 * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
2695 variable to ret_reg.
2696
9efdb4ad
RG
26972011-05-03 Richard Guenther <rguenther@suse.de>
2698
2699 PR lto/48846
2700 * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
2701 Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
2702 * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
2703
60a45536
RG
27042011-05-03 Richard Guenther <rguenther@suse.de>
2705
2706 * c-decl.c (grokdeclarator): Instead of looking at
2707 TREE_OVERFLOW check if the constant fits in the index type.
2708
3188ed59
RS
27092011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
2710
2711 * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
2712 (vec_store_lanes<mode><mode>): Likewise.
2713
272c6793
RS
27142011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
2715
2716 * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
2717 * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
2718 convert_optab_index values.
2719 (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
2720 * genopinit.c (optabs): Initialize the new optabs.
2721 * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
2722 * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
2723 (expand_STORE_LANES): New functions.
2724 * tree.h (build_array_type_nelts): Declare.
2725 * tree.c (build_array_type_nelts): New function.
2726 * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
2727 (vect_model_load_cost): Likewise.
2728 (vect_store_lanes_supported, vect_load_lanes_supported)
2729 (vect_record_strided_load_vectors): Declare.
2730 * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
2731 (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
2732 (vect_transform_strided_load): Split out statement recording into...
2733 (vect_record_strided_load_vectors): ...this new function.
2734 * tree-vect-stmts.c (create_vector_array, read_vector_array)
2735 (write_vector_array, create_array_ref): New functions.
2736 (vect_model_store_cost): Add store_lanes_p argument.
2737 (vect_model_load_cost): Add load_lanes_p argument.
2738 (vectorizable_store): Try to use store-lanes functions for
2739 interleaved stores.
2740 (vectorizable_load): Likewise load-lanes and loads.
2741 * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
2742 to vect_model_store_cost.
2743 (vect_build_slp_tree): Likewise vect_model_load_cost.
2744
0f6d54f7
RS
27452011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
2746
2747 * hooks.h (hook_bool_mode_uhwi_false): Declare.
2748 * hooks.c (hook_bool_mode_uhwi_false): New function.
2749 * target.def (array_mode_supported_p): New hook.
2750 * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
2751 * doc/tm.texi: Regenerate.
2752 * stor-layout.c (mode_for_array): New function.
2753 (layout_type): Use it.
2754 * config/arm/arm.c (arm_array_mode_supported_p): New function.
2755 (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
2756
b15eacc7
EB
27572011-05-03 Eric Botcazou <ebotcazou@adacore.com>
2758
2759 PR target/48723
2760 * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
2761 for -fstack-check if the size to allocate is negative.
2762
575bfb00
LC
27632011-05-02 Lawrence Crowl <crowl@google.com>
2764
2765 * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
2766 (timevar_cond_start): New for starting a timer only when it is not
2767 already running.
2768 (timevar_cond_stop): New for stopping a timer when it was not already
2769 running.
2770
2771 * timevar.c (timevar_stop): Enable start/stop timers to start again.
2772 (timevar_cond_start): New as above.
2773 (timevar_cond_stop): New as above.
2774
2775 * timevar.def: Add start/stop timers for compiler phases,
2776 TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
2777 TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
2778 and TV_PHASE_FINALIZE.
2779 Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
2780 Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
2781 TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
2782 Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
2783 Make unused TV_OVERLOAD into a start/stop timer.
2784
2785 Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
2786 Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
2787 to indicate that they are start/stop timers.
2788
2789 * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
2790 Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
2791 Move initialization to do_compile.
2792 (do_compile): Add initialization from above.
2793 Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
2794
2795 * c-decl.c (c_write_global_declarations): Add start/stop of
2796 TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
2797
2798 * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
2799 or TV_PARSE_INLINE, as appropriate.
2800 (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
2801 (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
2802
3533b943
JM
28032011-05-02 Jason Merrill <jason@redhat.com>
2804
2805 PR c++/40975
2806 * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
2807
2609a0ce
SM
28082011-05-02 Simon Martin <simartin@users.sourceforge.net>
2809
2810 PR c/35445
2811 * c-decl.c (finish_decl): Only create a composite if the types are
2812 compatible.
2813
6b0e4cbb
JM
28142011-05-02 Joseph Myers <joseph@codesourcery.com>
2815
2816 * config/fr30/fr30-protos.h (Mmode): Don't define.
2817 * config/m32r/m32r-protos.h (Mmode): Don't define. Expand
2818 definition where used.
2819 * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
2820 define. Expand definitions where used.
2821 * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
2822 Expand definitions where used.
2823 * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
2824 rx_function_arg, rx_function_arg_advance,
2825 rx_function_arg_boundary): Expand definitions of those macros.
2826 * config/v850/v850-protos.h (Mmode): Don't define. Expand
2827 definition where used.
2828
4e938ce6
UB
28292011-05-02 Uros Bizjak <ubizjak@gmail.com>
2830
2831 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
2832 reg<->xmm moves.
2833 (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
2834 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves. Merge
2835 with *movv2sf_internal_rex64_avx.
2836 (*movv2sf_internal): Merge with *movv2sf_internal_avx.
2837 * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
2838 Use %v prefix in insn mnemonic to handle TARGET_AVX.
2839 (*movdi_internal): Add "isa" attribute. Use "maybe_vex" instead of
2840 "vex" in "prefix" attribute calculation.
2841 (*movdf_internal): Output AVX mnemonics. Add "prefix" attribute.
2842
36019c19
SH
28432011-05-02 Stuart Henderson <shenders@gcc.gnu.org>
2844
7a2f7208
UB
2845 PR target/47951
2846 * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
2847 inputs match the output.
36019c19 2848
f69ea688
AS
28492011-05-02 Andreas Schwab <schwab@linux-m68k.org>
2850
2851 PR target/47955
2852 * config/m68k/m68k.c (m68k_expand_prologue): Set
2853 current_function_static_stack_size.
2854
c33406f5
JH
28552011-05-02 Jan Hubicka <jh@suse.cz>
2856
2857 * lto-streamer.c (lto_streamer_cache_insert_1,
2858 lto_streamer_cache_lookup, lto_streamer_cache_create,
2859 lto_streamer_cache_delete): Use pointer map instead of hashtable.
2860 * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
2861
47c94d21
JM
28622011-05-02 Joseph Myers <joseph@codesourcery.com>
2863
2864 * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
2865 config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
2866 config/m68k/t-opts: New files.
2867 * config/m68k/m68k-tables.opt: New file (generated).
2868 * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
2869 extra_options and m68k/t-opts to tmake_file.
2870 * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
2871 (all_isas): Initialize using m68k-isas.def.
2872 (all_microarchs): Initialize using m68k-microarchs.def.
2873 (m68k_find_selection): Remove.
2874 (m68k_handle_option): Don't assert that global structures are in
2875 use. Use error_at. Access variables via opts pointer. Don't
2876 handle -march=, -mcpu= and -mtune= here. Set gcc_options fields
2877 directly for -m68020-40 and -m68020-60.
2878 (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
2879 m68k_tune_entry here.
2880 * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
2881 to m68k-opts.h.
2882 (m68k_library_id_string): Remove declaration.
4e938ce6 2883 * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
47c94d21
JM
2884 (m68k_library_id_string): New Variable.
2885 (march=, mcpu=, mtune=): Use Enum and Var.
2886
e562bf36
RG
28872011-05-02 Richard Guenther <rguenther@suse.de>
2888
2889 * varasm.c (output_constructor_regular_field): Compute zero-based
2890 index with double-ints. Make sure to ICE instead of producing
2891 wrong code.
2892 * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
2893 in asserts. Properly use a signed type.
2894
6bec6c98
UB
28952011-05-02 Uros Bizjak <ubizjak@gmail.com>
2896
2897 * config/i386/sse.md (V): New mode iterator.
2898 (V_128): Rename from SSEMODE. Make V2DF mode conditional on
2899 TARGET_SSE2.
2900 (V_256): Rename from AVX256MODE.
2901 (VF): Make V4SF mode unconditional. Add TARGET_SSE instruction
2902 condition to all users.
2903 (VF1): Ditto.
2904 (VF2): Make V2DF mode unconditional. Add TARGET_SSE2 instruction
2905 condition to all users.
2906 (VF_128): Make V4SF mode unconditional.
2907 (VF_256): Rename from AVX256MODEF2P.
2908 (VI4F_128): Rename from SSEMODE4S.
2909 (VI8F_128): Rename from SSEMODE2D.
2910 (VI4F_256): Rename from AVX256MODE8P.
2911 (VI8F_256): Rename from AVX256MODE4P.
2912 (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
2913 (ssescalarmodesuffix): Remove SF and DF modes.
2914 (SSEMODE124): Remove.
2915 (SSEMODE1248): Ditto.
2916 (SSEMODEF2P): Ditto.
2917 (AVXMODEF2P): Ditto.
2918 (AVXMODEFDP): Ditto.
2919 (AVXMODEFSP): Ditto.
2920 (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
2921 unconditional.
2922 (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO. Make V4SF mode
2923 unconditional.
2924 (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
2925 xop_pcmov_<mode>256. Use V mode iterator.
2926
2927 Adjust RTX patterns globally for renamed mode attributes.
2928
2dfdcb4b
UW
29292011-05-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2930
2931 * haifa-sched.c (sched_emit_insn): Emit insn before first
2932 non-scheduled insn. Inform back-end about new insn. Add
2933 new insn to scheduled_insns list.
2934
90bc4623
RG
29352011-05-02 Richard Guenther <rguenther@suse.de>
2936
2937 PR tree-optimization/48822
2938 * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
2939 (process_scc): Indicate which iteration we start.
2940
bc0fe8cb
JH
29412011-05-02 Jan Hubicka <jh@suse.cz>
2942
2943 * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
2944 (lto_section_overrun): New.
2945 * lto-section-out.c (append_block): Rename to ...
2946 (lto_append_block): ... this one; export.
2947 (lto_output_1_stream): Move lto lto-streamer.h
2948 (lto_output_data_stream): Update.
2949 * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
2950 (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
2951 functions.
2952
f070a9d1
RG
29532011-05-02 Richard Guenther <rguenther@suse.de>
2954
2955 * tree.c (tree_code_counts): New global array.
2956 (record_node_allocation_statistics): Count individual tree codes.
2957 (dump_tree_statistics): Dump individual code stats.
2958
09dfe187
JH
29592011-05-01 Jan Hubicka <jh@suse.cz>
2960
2961 * ipa-inline.c (caller_growth_limits): Fix thinko when
2962 looking for largest stack frame.
2963 * ipa-inline.h (dump_inline_summary): Declare.
2964 * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
2965 on stack usage.
2966 (dump_inline_summary): Export.
2967 (debug_inline_summary): Declare as DEBUG_FUNCTION.
2968
6f76a878
AS
29692011-05-01 Anatoly Sokolov <aesok@post.ru>
2970
2971 * reginfo.c (memory_move_cost): Change rclass argument type form
2972 'enum reg_class' to reg_class_t.
2973 * reload.h (memory_move_cost): Update prototype.
2974 * postreload.c reload_cse_simplify_set): Change type dclass var to
2975 reg_class_t.
2976 * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
2977 Update prototype.
2978 (ira_allocate_and_set_costs): Change aclass argument type form
2979 'enum reg_class' to reg_class_t.
6bec6c98 2980 * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
6f76a878
AS
2981 Change aclass argument type to reg_class_t.
2982 (update_conflict_hard_reg_costs): Change type aclass and pref vars
2983 to reg_class_t.
2984 * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
2985 memory_move_cost call.
2986
2987 * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
2988 'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
2989 Change type tmp var to reg_class_t.
2990
9a4ac625
JH
29912011-04-30 Jan Hubicka <jh@suse.cz>
2992
2993 * ipa-inline.c (can_inline_edge_p): Disregard limits when
2994 inlining into function with flatten attribute.
2995 (want_inline_small_function_p): Be more realistic about inlining
2996 cold calls where callee size grows.
2997
dd8352ee
JH
29982011-04-30 Jan Hubicka <jh@suse.cz>
2999
3000 * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
3001 flags.
3002
46e43d2b
AS
30032011-04-30 Anatoly Sokolov <aesok@post.ru>
3004
3005 * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
3006 PRINT_OPERAND_PUNCT_VALID_P): Remove.
3007 * config/sparc/sparc-protos.h (print_operand): Remove declaration.
3008 * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
3009 TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
3010 (print_operand): Rename to...
3011 (sparc_print_operand): ...this. Make static. Adjust
3012 sparc_print_operand function call.
3013 (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
3014 functions.
3015
ecb62563
JH
30162011-04-30 Jan Hubicka <jh@suse.cz>
3017
6bec6c98 3018 PR middle-end/48752
ecb62563
JH
3019 * ipa-inline.c (early_inliner): Disable when doing late
3020 addition of function.
3021
edb9b69e
JJ
30222011-04-30 Jakub Jelinek <jakub@redhat.com>
3023
be80a87e
JJ
3024 * dwarf2out.c (get_address_mode): New inline.
3025 (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
3026 if not dwarf_strict emit
3027 DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
3028 desirable. Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
3029 UNSIGNED_FLOAT, FIX and UNSIGNED_FIX. Just return NULL for
3030 FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
3031 (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
3032 dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
3033 mem_loc_descriptor callers.
3034 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
3035 output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
3036 Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
3037 DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
3038 (base_types): New variable.
3039 (get_base_type_offset, calc_base_type_die_sizes,
3040 base_type_for_mode, mark_base_types, base_type_cmp,
3041 move_marked_base_types): New functions.
3042 (calc_die_sizes): Assert that die_offset is 0 or equal to
3043 next_die_offset.
3044 (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
3045 others defer to mem_loc_descriptor. Adjust mem_loc_descriptor
3046 callers. If not dwarf_strict, call mem_loc_descriptor even for
3047 non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
3048 (gen_subprogram_die): Don't give up on call site parameters
3049 with non-integral or large integral modes. Adjust
3050 mem_loc_descriptor callers.
3051 (prune_unused_types): Call prune_unused_types_mark on base_types
3052 vector entries.
3053 (resolve_addr): Call mark_base_types.
3054 (dwarf2out_finish): Call move_marked_base_types.
3055
edb9b69e
JJ
3056 PR tree-optimization/48809
3057 * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
3058 type.
3059 (gen_inbound_check): Don't compute index_expr - range_min in utype
3060 again, instead reuse SSA_NAME initialized in build_arrays.
3061 Remove two useless gsi_for_stmt calls.
3062
a6545a3d
JL
30632011-04-29 Jeff Law <law@redhat.com>
3064
3065 * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
3066
af8bca3c
MJ
30672011-04-29 Martin Jambor <mjambor@suse.cz>
3068
3069 * cgraph.h (cgraph_postorder): Remove declaration.
3070 * ipa-utils.h (ipa_free_postorder_info): Declare.
3071 (ipa_reverse_postorder): Likewise.
3072 * cgraphunit.c: Include ipa-utils.h.
3073 (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
3074 * ipa-inline.c: Include ipa-utils.h.
3075 (ipa_inline): Update call to ipa_reverse_postorder.
3076 * ipa-pure-const.c (propagate_pure_const): Update call to
3077 ipa_reduced_postorder and ipa_print_order. Call
3078 ipa_free_postorder_info to clean up.
3079 (propagate_nothrow): Likewise.
3080 * ipa-reference.c (propagate): Removed a useless call to
3081 ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
3082 and ipa_print_order. Call ipa_free_postorder_info to clean up.
3083 * ipa.c: Include ipa-utils.h.
3084 (ipa_profile): Update call to ipa_reverse_postorder.
3085 (cgraph_postorder): Moved to...
3086 * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
3087 (ipa_utils_print_order): Renamed to ipa_print_order.
3088 (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
3089 comments.
3090 (ipa_free_postorder_info): New function.
3091 * passes.c: Include ipa-utils.h.
3092 (do_per_function_toporder): Update call to ipa_reverse_postorder.
3093 (ipa_write_summaries): Likewise.
3094 * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
3095 (cgraphunit.o): Likewise.
3096 (ipa.o): Likewise.
3097 (ipa-inline.o): Likewise.
3098
b15c64ee
JH
30992011-04-29 Jan Hubicka <jh@suse.cz>
3100
3101 * gcc.dg/tree-ssa/inline-10.c: New testcase.
3102 * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
3103 * ipa-inline.h (clause_t): Turn into unsigned int.
3104 * ipa-inline-analysis.c (add_clause): Do more simplification.
3105 (and_predicates): Shortcut more cases.
3106 (predicates_equal_p): Move forward; check that clauses are properly
3107 ordered.
3108 (or_predicates): Shortcut more cases.
3109 (edge_execution_predicate): Rewrite as...
3110 (set_cond_stmt_execution_predicate): ... this function; handle
3111 __builtin_constant_p.
3112 (set_switch_stmt_execution_predicate): New .
3113 (compute_bb_predicates): New.
3114 (will_be_nonconstant_predicate): Update TODO.
3115 (estimate_function_body_sizes): Use compute_bb_predicates
3116 and free them later, always try to estimate if stmt is constant.
3117 (estimate_time_after_inlining, estimate_size_after_inlining):
3118 Gracefully handle optimized out edges.
3119 (read_predicate): Fix off by one error.
3120
a88fdc2a
NP
31212011-04-29 Nicola Pero <nicola.pero@meta-innovation.com>
3122
3123 * Makefile.in (ENABLE_MAINTAINER_RULES): New.
3124
d984c8ef
XDL
31252011-04-27 Xinliang David Li <davidxl@google.com>
3126
3127 * tree-profile.c (init_ic_make_global_vars): Set
3128 tls attribute on ic vars.
3129 * coverage.c (coverage_end_function): Initialize
3130 function_list with zero.
3131
45a2c477
RG
31322011-04-29 Richard Guenther <rguenther@suse.de>
3133
3134 * builtins.c (fold_builtin_classify_type): Use integer_type_node
3135 for the type of the result.
3136 (fold_builtin_isascii): Likewise.
3137 (fold_builtin_toascii): Use integer_type_node where appropriate.
3138 (fold_builtin_logb): Likewise.
3139 (fold_builtin_frexp): Likewise.
3140 (fold_builtin_strstr): Likewise.
3141 (fold_builtin_strpbrk): Likewise.
3142 (fold_builtin_fputs): Likewise.
3143 (fold_builtin_sprintf): Likewise.
3144 (fold_builtin_snprintf): Likewise.
3145 (fold_builtin_printf): Likewise.
3146 (do_mpfr_remquo): Use a proper type for the assigned constant.
3147 (do_mpfr_lgamma_r): Likewise.
3148 * dwarf2out.c (resolve_one_addr): Use size_int.
3149 * except.c (init_eh): Likewise.
3150 (assign_filter_values): Use integer_type_node for filter values.
3151 (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
3152 indices.
3153 * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
3154 for EH region numbers.
3155 * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
3156 for the shift amount.
3157
eb6c3df1
RG
31582011-04-29 Richard Guenther <rguenther@suse.de>
3159
3160 * expr.h (expand_shift): Rename to ...
3161 (expand_variable_shift): ... this.
3162 (expand_shift): Take a constant shift amount.
3163 * expmed.c (expand_shift): Rename to ...
3164 (expand_variable_shift): ... this.
3165 (expand_shift): New wrapper around expand_variable_shift.
3166 * expr.c (convert_move, emit_group_load_1, emit_group_store,
3167 optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
3168 expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
3169 * expmed.c (store_fixed_bit_field, extract_bit_field_1,
3170 extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
3171 expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
3172 extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
3173 emit_store_flag_1, emit_store_flag): Likewise.
3174 * builtins.c (expand_builtin_signbit): Likewise.
3175 * calls.c (load_register_parameters): Likewise.
3176 * function.c (assign_parm_setup_block): Likewise.
3177 * lower-subreg.c (resolve_shift_zext): Likewise.
3178 * optabs.c (widen_bswap, expand_abs_nojump,
3179 expand_one_cmpl_abs_nojump, expand_float): Likewise.
3180 * spu/spu.c (spu_expand_extv): Likewise.
3181 * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
3182
9f616812
RG
31832011-04-29 Richard Guenther <rguenther@suse.de>
3184
3185 * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
3186 for the remapped region number.
3187 * predict.c (build_predict_expr): Use integer_type_node for the
3188 predict kind.
3189 * fold-const.c (fold_binary_loc): Use integer_type_node for
3190 the shift amount. Use a proper type for the PLUS_EXPR operand.
3191
b823cdfe
MM
31922011-04-29 Michael Matz <matz@suse.de>
3193
3194 * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
3195 other trees that just builtins.
3196 (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
3197
413581ba
RG
31982011-04-29 Richard Guenther <rguenther@suse.de>
3199
3200 * tree-nested.c (get_trampoline_type): Use size_int.
3201 (get_nl_goto_field): Likewise.
3202 * tree-eh.c (lower_try_finally_switch): Use integer_type_node
3203 for all indexes.
3204 (lower_eh_constructs_2): Likewise.
3205 (lower_resx): Likewise.
3206 (lower_eh_dispatch): Likewise.
3207 * tree-mudflap.c (mf_build_string): Use size_int.
3208 (mudflap_register_call): Use integer_type_node for the flag.
3209 (mudflap_enqueue_constant): Use size_int.
3210 * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
3211 instead of rebuilding it.
3212
5c04e9f4
RG
32132011-04-29 Richard Guenther <rguenther@suse.de>
3214
3215 * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
3216 Handle OBJ_TYPE_REF.
3217 (find_func_aliases_for_call): Use it more consistently.
3218
5c24671b
AO
32192011-04-29 Alexandre Oliva <aoliva@redhat.com>
3220
3221 * haifa-sched.c (last_nondebug_scheduled_insn): New.
3222 (rank_for_schedule): Use it.
3223 (schedule_block): Set it.
3224
10adac51
XDL
32252011-04-28 David Li <davidxl@google.com>
3226
3227 * tree.c (crc32_string): Use crc32_byte.
3228 (crc32_byte): New function.
3229 * tree.h (crc32_byte): New function.
3230 * gcov.c (read_graph_file): Handle new cfg_cksum.
3231 (read_count_file): Ditto.
3232 * profile.c (instrument_values): Ditto.
3233 (get_exec_counts): Ditto.
3234 (read_profile_edge_counts): Ditto.
3235 (compute_branch_probabilities): Ditto.
3236 (compute_value_histograms): Ditto.
3237 (branch_prob): Ditto.
3238 (end_branch_prob): Ditto.
3239 * coverage.c (read_counts_file): Ditto.
3240 (get_coverage_counts): Ditto.
3241 (tree_coverage_counter_addr): Ditto.
3242 (coverage_checksum_string): Ditto.
3243 (coverage_begin_output): Ditto.
3244 (coverage_end_function): Ditto.
3245 (build_fn_info_type): Ditto.
3246 (build_fn_info_value): Ditto.
3247 * libgcov.c (gcov_exit): Ditto.
3248 * gcov-dump.c (tag_function): Ditto.
3249 (compute_checksum): Remove.
3250
5d6358a5
AM
32512011-04-29 Alan Modra <amodra@gmail.com>
3252
3253 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
3254 unspec plus offset. Tidy macho code.
3255
85ad2ef5
MJ
32562011-04-29 Martin Jambor <mjambor@suse.cz>
3257
3258 * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
3259 node instead of a decl. Update all callers.
3260 * cgraph.h: Update declaration.
3261
437f4a00
IR
32622011-04-28 Ira Rosen <ira.rosen@linaro.org>
3263
3264 PR tree-optimization/48765
3265 * tree-vectorizer.h (vect_make_slp_decision): Return bool.
3266 * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
3267 to indicate if loop aware SLP is being used. Scan the statements
3268 and update the vectorization factor according to the type of
3269 vectorization before statement analysis.
3270 (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
3271 pass it to vect_analyze_loop_operations.
3272 (vectorizable_reduction): Set number of copies to 1 in case of pure
3273 SLP statement.
3274 * tree-vect-stmts.c (vectorizable_conversion,
3275 vectorizable_assignment, vectorizable_shift,
3276 vectorizable_operation, vectorizable_type_demotion,
3277 vectorizable_type_promotion, vectorizable_store, vectorizable_load):
3278 Likewise.
3279 (vectorizable_condition): Move the check that it is not SLP
3280 vectorization before the number of copies check.
3281 * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
3282 to vectorize the loop using SLP.
3283
c6fc44f3
JJ
32842011-04-28 Jakub Jelinek <jakub@redhat.com>
3285
3286 PR middle-end/48597
3287 * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
3288 inline asm.
3289
6c0170ea
JM
32902011-04-28 Joseph Myers <joseph@codesourcery.com>
3291
3292 * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
3293 *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
3294 (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
3295 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
3296 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
3297 linux*.h headers.
6bec6c98 3298 * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
6c0170ea
JM
3299 * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
3300 * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
3301 * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6bec6c98 3302 * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6c0170ea
JM
3303 * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
3304 REG_NAME.
3305 * config/i386/linux.h (REG_NAME): Don't define.
3306 * config/i386/linux64.h (REG_NAME): Don't define.
3307 * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
3308 Undefine before defining.
3309
970dabbd
JH
33102011-04-28 Jan Hubicka <jh@suse.cz>
3311
6bec6c98
UB
3312 * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
3313 nonconstant_names array.
970dabbd
JH
3314 (estimate_function_body_sizes): Build nonconstant_names array; handle
3315 BUILT_IN_CONSTANT_P.
3316
8d3e3924
RG
33172011-04-28 Richard Guenther <rguenther@suse.de>
3318
3319 PR bootstrap/48804
3320 Revert
3321 2011-04-28 Richard Guenther <rguenther@suse.de>
3322
3323 * tree-ssa-structalias.c (solve_constraints): Build succ graph
3324 as late as possible.
6bec6c98 3325
8576f20a
RG
33262011-04-28 Richard Guenther <rguenther@suse.de>
3327
3328 * tree-ssa-structalias.c (dump_constraint): Don't end the line.
3329 (debug_constraint): Do it here.
3330 (dump_constraints): And here.
3331 (rewrite_constraints): And here.
3332 (dump_constraint_edge): Remove.
3333 (dump_constraint_graph): Rewrite to produce DOT output.
3334 (solve_constraints): Build succ graph as late as possible.
3335 Dump constraint graphs before and after solving.
3336
e38811ce
RG
33372011-04-28 Richard Guenther <rguenther@suse.de>
3338
3339 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
3340 New function split out from ...
3341 (find_func_aliases): ... here. Call it.
3342 (find_func_aliases_for_call): Likewise.
3343
fbaf0d0c
GDR
33442011-04-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
3345
3346 * internal-fn.h (internal_fn_name_array): Declare.
3347 (internal_fn_flags_array): Likewise.
3348
cbb734aa
UB
33492011-04-27 Uros Bizjak <ubizjak@gmail.com>
3350
3351 * config/i386/i386.md (ssemodesuffix): Merge with ssevecsize,
3352 ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
3353 Move from sse.md.
3354 (ssemodefsuffix): Remove.
3355 (ssevecmodesuffix): New mode attribute.
3356 (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
3357 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
3358 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
3359 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
3360 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
3361 *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
3362 *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
3363 ssemodesuffix mode attribute.
3364 (float splitters): Use ssevecmodesuffix mode attribute.
3365 * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
3366 (sseinsmode): Rename from avxvecmode.
3367 (avxsizesuffix): Rename from avxmodesuffix.
3368 (sseintvecmode): Rename from avxpermvecmode.
3369 (ssedoublevecmode): Rename from ssedoublesizemode.
3370 (ssehalfvecmode): Rename from avxhalfvecmode.
3371 (ssescalarmode): Rename from avxscalarmode.
3372 (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
3373 templates for ssemodesuffix mode attribute.
3374 (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
3375 mode attribute.
3376
3377 Adjust RTX patterns globally for renamed mode attributes.
3378
991278ab
JH
33792011-04-27 Jan Hubcika <jh@suse.cz>
3380
3381 * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
3382 * ipa-inline-analysis.c: Include alloc-pool.h.
3383 (edge_predicate_pool): New.
3384 (trye_predicate_p): New function
3385 (false_predicate_p): New function.
3386 (add_clause): Sanity check that false clauses are "optimized";
3387 never add clauses to predicate that is already known to be false.
3388 (and_predicate): Use flase_predicate_p.
3389 (evaulate_predicate): Rename to ...
3390 (evaluate_predicate): ... this one; update all callers; assert
3391 that false is not listed among possible truths.
3392 (dump_predicate): Use true_predicate_p.
3393 (account_size_time): Use false_predicate_p.
3394 (evaulate_conditions_for_edge): Rename to ...
3395 (evaluate_conditions_for_edge) ... this one.
3396 (edge_set_predicate): New function.
3397 (inline_edge_duplication_hook): Duplicate edge predicates.
3398 (inline_edge_removal_hook): Free edge predicates.
cbb734aa 3399 (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
991278ab
JH
3400 (dump_inline_summary): Update.
3401 (estimate_function_body_sizes): Set edge predicates.
3402 (estimate_calls_size_and_time): Handle predicates.
3403 (estimate_callee_size_and_time): Update.
3404 (remap_predicate): Add toplev_predicate; update comment.
3405 (remap_edge_predicates): New function.
3406 (inline_merge_summary): Compute toplev predicate; update.
3407 (read_predicate): New function.
3408 (read_inline_edge_summary): Use it.
3409 (inline_read_section): Likewise.
3410 (write_predicate): New function.
3411 (write_inline_edge_summary): Use it.
3412 (inline_write_summary): Likewise.
3413 (inline_free_summary): Free alloc pool and edge summary vec.
3414
648b5f85
RG
34152011-04-27 Richard Guenther <rguenther@suse.de>
3416
3417 * tree-ssa-structalias.c (changed_count): Remove.
3418 (changed): Use a bitmap.
3419 (unify_nodes): Adjust.
3420 (do_sd_constraint): Likewise.
3421 (do_ds_constraint): Likewise.
3422 (do_complex_constraint): Likewise.
3423 (solve_graph): Likewise.
3424
4d5dcfb2
JH
34252011-04-27 Jan Hubicka <jh@suse.cz>
3426
3427 * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
3428
200eb7d2
UB
34292011-04-27 Uros Bizjak <ubizjak@gmail.com>
3430
3431 * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
3432 (avx_vperm2f128_*_operand): Ditto.
3433 * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
3434 Use avx_vpermilp_parallel in insn condition.
3435 (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
3436 Use avx_vperm2f128_parallel in insn condition.
3437
7d6e2521
RG
34382011-04-27 Richard Guenther <rguenther@suse.de>
3439
3440 * Makefile.in (tree-ssa-structalias.o): Remove
3441 gt-tree-ssa-structalias.h dependency.
3442 (GTFILES): Remove tree-ssa-structalias.c.
3443 * tree.c (allocate_decl_uid): New function.
3444 (make_node_stat): Use it.
3445 (copy_node_stat): Likewise.
3446 * tree.h (allocate_decl_uid): Declare.
3447 * tree-ssa-alias.h (delete_alias_heapvars): Remove.
3448 * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
3449 * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
200eb7d2 3450 * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
7d6e2521
RG
3451 * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
3452 (struct heapvar_map): Likewise.
3453 (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
3454 heapvar_insert): Likewise.
3455 (make_heapvar_for): Rename to ...
3456 (make_heapvar): ... this. Simplify.
3457 (fake_var_decl_obstack): New global var.
3458 (build_fake_var_decl): New function.
3459 (make_constraint_from_heapvar): Adjust.
3460 (handle_lhs_call): Likewise.
3461 (create_function_info_for): Likewise.
3462 (intra_create_variable_infos): Likewise.
3463 (init_alias_vars): Allocate fake_var_decl_obstack.
3464 (init_alias_heapvars, delete_alias_heapvars): Remove.
3465 (compute_points_to_sets): Do not call init_alias_heapvars.
3466 (ipa_pta_execute): Likewise.
3467 (delete_points_to_sets): Free fake_var_decl_obstack.
3468
526ed6c2
UW
34692011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3470
3471 * config/spu/divmovti4.c (union qword_UTItype): New data type.
3472 (si_from_UTItype, si_to_UTItype): New functions.
3473 (__udivmodti4): Use them to implement type-punning.
3474 * config/spu/multi3.c (union qword_TItype): New data type.
3475 (si_from_TItype, si_to_TItype): New functions.
3476 (__multi3): Use them to implement type-punning.
3477
c187d33c
UW
34782011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3479
3480 * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
3481
40982661
JH
34822011-04-27 Jan Hubicka <jh@suse.cz>
3483
3484 * ipa-prop.c (function_insertion_hook_holder): New holder.
3485 (ipa_add_new_function): New function.
200eb7d2
UB
3486 (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
3487 Register/deregister holder.
40982661 3488
9aef53ee
RG
34892011-04-27 Richard Guenther <rguenther@suse.de>
3490
3491 PR tree-optimization/48772
200eb7d2 3492 * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
9aef53ee 3493
f63d806d
RG
34942011-04-27 Richard Guenther <rguenther@suse.de>
3495
3496 * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
3497 TARGET_MEM_REF handling.
3498
e1ea7451
NC
34992011-04-27 Nick Clifton <nickc@redhat.com>
3500
9b5db25d
NC
3501 * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
3502 ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
3503 (REG_CLASS_NAMES): Likewise.
3504 (REG_CLASS_CONTENTS): Likewise.
3505 (EVEN_ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
3506 (ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
3507 (FEVEN_REGS): New macro. Alias for QUAD_ACC_REGS.
3508 (FPR_REGS): New macro. Alias for QUAD_ACC_REGS.
3509 (EVEN_REGS): New macro. Alias for QUAD_REGS.
3510 * config/frv/frv.c (frv_secondary_reload_class): Remove use of
3511 duplicate register classes.
97d20907 3512 (frv_class_likely_spilled_p): Likewise.
9b5db25d
NC
3513 (frv_register_move_cost): Likewise.
3514
e1ea7451
NC
3515 * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
3516 end of the regno_reg_class array.
3517
5c2f94b4
JJ
35182011-04-27 Jakub Jelinek <jakub@redhat.com>
3519
3520 PR c/48742
3521 * c-typeck.c (build_binary_op): Don't wrap arguments if
3522 int_operands is true.
3523
57a944d7
KK
35242011-04-26 Kaz Kojima <kkojima@gcc.gnu.org>
3525
3526 PR target/48767
3527 * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
3528 targetm.calls.must_pass_in_stack for void type.
3529
898b8927
JH
35302011-04-26 Jan Hubicka <jh@suse.cz>
3531
3532 * cgraphbuild.c (build_cgraph_edges): Update call
3533 of cgraph_create_edge and cgraph_create_indirect_edge.
3534 * cgraph.c (cgraph_create_edge_including_clones,
3535 cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
3536 cgraph_update_edges_for_call_stmt_node): Do not take nest
3537 argument; do not initialize call_stmt_size/time.
3538 (dump_cgraph_node): Do not dump nest.
3539 (cgraph_clone_edge): Do not take loop_nest argument;
3540 do not propagate it; do not clone call_stmt_size/time.
3541 (cgraph_clone_node): Likewise.
3542 (cgraph_create_virtual_clone): Update.
3543 * cgraph.h (struct cgraph_edge): Remove
3544 call_stmt_size/call_stmt_time/loop_nest.
3545 (cgraph_create_edge, cgraph_create_indirect_edge,
3546 cgraph_create_edge_including_clones, cgraph_clone_node): Update
3547 prototype.
3548 * tree-emutls.c (gen_emutls_addr): Update.
3549 * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
3550 loop_nest; handle indirect calls, too.
3551 (clone_inlined_nodes): Do not care about updating inline summaries.
3552 * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
3553 * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
3554 stream call_stmt_size/call_stmt_time/loop_nest.
3555 * ipa-inline.c (edge_badness): Update.
3556 (ipa_inline): dump summaries after inlining.
3557 * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
200eb7d2 3558 New.
898b8927
JH
3559 (inline_edge_summary): New function.
3560 * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
3561 (inline_edge_removal_hook): Handle edge summaries.
3562 (inline_edge_duplication_hook): New hook.
3563 (inline_summary_alloc): Alloc hooks.
3564 (initialize_growth_caches): Do not register removal hooks.
3565 (free_growth_caches); Do not free removal hook.
3566 (dump_inline_edge_summary): New function.
3567 (dump_inline_summary): Use it.
3568 (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
3569 (inline_update_callee_summaries): New function.
3570 (inline_merge_summary): Use it.
3571 (do_estimate_edge_time, do_estimate_edge_growth): Update.
3572 (read_inline_edge_summary): New function.
3573 (inline_read_section): Use it.
3574 (write_inline_edge_summary): New function.
3575 (inline_write_summary): Use it.
3576 (inline_free_summary): Free edge new holders.
3577 * tree-inline.c (copy_bb): Update.
3578
ffa03772
JM
35792011-04-26 Jason Merrill <jason@redhat.com>
3580
3581 * tree-eh.c (lower_try_finally_switch): Create the label along with
3582 the CASE_LABEL_EXPR.
3583
6d7b45ad
DM
35842011-04-26 David S. Miller <davem@davemloft.net>
3585 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3586
3587 * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
3588 * configure: Regenerate.
3589
df10b6d4
MM
35902011-04-26 Michael Meissner <meissner@linux.vnet.ibm.com>
3591
3592 PR target/48258
3593 * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
3594 reduction.
3595 (VEC_reduc): New code iterator and splitters for vector reduction.
3596 (VEC_reduc_name): Ditto.
3597 (VEC_reduc_rtx): Ditto.
3598 (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
3599 (reduc_<VEC_reduc_name>_v4sf): Ditto.
3600
3601 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
3602 support for extracting SF on VSX.
3603
3604 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
3605 generating xscvspdp.
3606 (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
3607 (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
3608 double add, minimum, maximum vector reduction.
3609 (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
3610 (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
3611 optimize double vector reduction.
3612 (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
3613
35a5db04
JM
36142011-04-26 Joseph Myers <joseph@codesourcery.com>
3615
3616 * config/fr30/fr30.h (inhibit_libc): Don't define.
3617 * config/m32r/m32r-protos.h: Correct comment.
3618 * config/v850/v850.h (GHS_default_section_names,
3619 GHS_current_section_names): Use tree, not union tree_node *.
3620
2f964ad6
XDL
36212011-04-26 Xinliang David Li <davidxl@google.com>
3622
200eb7d2 3623 * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
2f964ad6
XDL
3624 * c-family/c-opts.c (c_common_handle_option): Set
3625 warn_maybe_uninitialized.
3626 * opts.c (common_handle_option): Ditto.
3627 * common.opt: New option.
3628 * tree-ssa.c (warn_uninit): Add one more parameter.
3629 (warn_uninitialized_var): Pass warning code.
3630 * tree-flow.h: Interface change.
3631
3632
9c7bd91a
RO
36332011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3634
200eb7d2 3635 * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
9c7bd91a
RO
3636 (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
3637 (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
3638
c2f36e21
RO
36392011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3640
3641 * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
3642 * config/mips/mips.opt (mmips-tfile): Remove.
3643
3644 * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
3645 mips-tdump reference to ...
200eb7d2 3646 (Specific, alpha*-dec-osf5.1): ... here. Adapt for Tru64 UNIX.
c2f36e21
RO
3647 * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
3648 reference by Tru64 UNIX.
3649
2c9da85b
JJ
36502011-04-26 Jakub Jelinek <jakub@redhat.com>
3651
0c5f6539
JJ
3652 PR debug/48768
3653 * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
3654 is error_mark_node, set value to NULL.
3655
2c9da85b
JJ
3656 PR tree-optimization/48734
3657 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
3658 if return value from maybe_fold_*_comparsions isn't something
3659 the code is prepared to handle.
3660
77fa1d54
UB
36612011-04-26 Uros Bizjak <ubizjak@gmail.com>
3662
3663 * config/i386/predicates.md (ext_QIreg_operand): Remove extra
3664 mode check.
3665 (ext_QIreg_nomode_operands): Remove.
3666 * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
3667 (*andsi_1): Ditto.
3668 (*andhi_1): Ditto.
3669
0e2a6c2b
AS
36702011-04-26 Andrew Stubbs <ams@codesourcery.com>
3671
3672 * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
3673
961562d8
RB
36742011-04-26 Richard Guenther <rguenther@suse.de>
3675
3676 * c-typeck.c (build_unary_op): Do not expand array-refs via
3677 pointer arithmetic. Only adjust qualifiers for function types.
3678
36792011-04-26 Richard Guenther <rguenther@suse.de>
3680
3681 PR middle-end/48694
3682 * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
3683 * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
77fa1d54
UB
3684 compare the operands with OEP_CONSTANT_ADDRESS_OF. Treat trees
3685 with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
961562d8 3686
a0d260fc
PC
36872011-04-25 Paolo Carlini <paolo.carlini@oracle.com>
3688
6bec6c98 3689 * doc/extend.texi: Document __underlying_type.
a0d260fc 3690
4d583bb9
SB
36912011-04-25 Segher Boessenkool <segher@kernel.crashing.org>
3692
3693 * config/rs6000/titan.md (automata_option "progress"): Remove.
3694
1f3fcdc3
JL
36952011-04-25 Jeff Law <law@redhat.com>
3696
3697 * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
3698
e5b0dad8
JK
36992011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com>
3700
3701 * system.h (ENUM_BITFIELD): Remove.
3702
5157a881 37032011-04-25 Maxim Kuvyrkov <maxim@codesourcery.com>
b15eacc7 3704 Eric Botcazou <ebotcazou@adacore.com>
5157a881
MK
3705
3706 * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
3707 for STORE_FLAG_VALUE==-1 case.
3708
ed4c109e
RS
37092011-04-24 Richard Sandiford <richard.sandiford@linaro.org>
3710
3711 PR target/43804
3712 * config/m68k/constraints.md (T): Allow PIC operands that satisfy
3713 LEGITIMATE_PIC_OPERAND_P.
3714
f3181aa2
JH
37152011-04-24 Jan Hubicka <jh@suse.cz>
3716
3717 * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
3718 WPA hack.
77fa1d54
UB
3719 * ipa-prop.h (ipa_get_param, ipa_is_param_used,
3720 ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
3721 ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
f3181aa2
JH
3722 * ipa-inline-analysis.c (add_clause): Fix clause ordering.
3723 (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
3724 Sanity check predicate length.
3725 (remap_predicate): Likewise; sanity check jump functions.
3726 (inline_read_section, inline_write_summary): Sanity check
3727 predicate length.
3728
5307cbaa
PC
37292011-04-24 Paolo Carlini <paolo.carlini@oracle.com>
3730
3731 PR other/48748
3732 * doc/extend.texi (Type Traits): Document __is_standard_layout,
3733 __is_literal_type, and __is_trivial; update throughout about
3734 possibly cv-qualified void types.
3735
bebd5f99
GP
37362011-04-24 Gerald Pfeifer <gerald@pfeifer.com>
3737
3738 * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
3739 testsuite and make it version agnostic.
3740
7ee28a74
JH
37412011-04-22 Jan Hubicka <jh@suse.cz>
3742
3743 * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
3744
16997bc0
JJ
37452011-04-23 Jakub Jelinek <jakub@redhat.com>
3746
3747 PR c/48685
3748 * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
3749 to VOID_TYPE even around MODIFY_EXPR.
3750
f94d4ab1
MS
37512011-04-22 Mike Stump <mikestump@comcast.net>
3752
1a84c183 3753 * gensupport.c (read_md_rtx): Fix typo in comment.
f94d4ab1
MS
3754 * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
3755 comment.
3756
632b4f8e
JH
37572011-04-22 Jan Hubicka <jh@suse.cz>
3758
3759 * gengtype.c (open_base_files): Add ipa-inline.h include.
77fa1d54
UB
3760 * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
3761 ipa-prop.c; update all uses.
632b4f8e 3762 * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
77fa1d54
UB
3763 * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
3764 merge summary of inlined function into former caller.
632b4f8e
JH
3765 * ipa-inline.c (max_benefit): Remove.
3766 (edge_badness): Compensate for removal of benefits.
77fa1d54
UB
3767 (update_caller_keys): Use
3768 reset_node_growth_cache/reset_edge_growth_cache.
632b4f8e
JH
3769 (update_callee_keys): Likewise.
3770 (update_all_callee_keys): Likewise.
77fa1d54
UB
3771 (inline_small_functions): Do not collect max_benefit; do not reset
3772 estimated_growth; call free_growth_caches and initialize_growth_caches.
3773 * ipa-inline.h (struct condition, type clause_t, struct predicate,
3774 struct size_time_entry): New structures.
632b4f8e 3775 (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
77fa1d54
UB
3776 (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
3777 and estimated_growth.
632b4f8e
JH
3778 (edge_growth_cache_entry): New structure.
3779 (node_growth_cache, edge_growth_cache): New global vars.
3780 (estimate_growth): Turn into inline.
3781 (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
3782 initialize_growth_caches, free_growth_caches): Declare.
3783 (estimate_edge_growth): Rewrite.
3784 (estimate_edge_time): Implement as inline cache lookup.
77fa1d54
UB
3785 (reset_node_growth_cache, reset_edge_growth_cache): New inline
3786 functions.
632b4f8e
JH
3787 (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
3788 (NUM_CONDITIONS): New constant.
3789 (predicate_conditions): New enum.
3790 (IS_NOT_CONSTANT): New constant.
3791 (edge_removal_hook_holder): New var.
3792 (node_growth_cache, edge_growth_cache): New global vars.
77fa1d54
UB
3793 (true_predicate, single_cond_predicate, false_predicate,
3794 not_inlined_predicate, add_condition, add_clause, and_predicates,
3795 or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
3796 dump_clause, dump_predicate, account_size_time,
632b4f8e
JH
3797 evaulate_conditions_for_edge): New functions.
3798 (inline_summary_alloc): Move to heap.
3799 (inline_node_removal_hook): Clear condition and entry vectors.
3800 (inline_edge_removal_hook): New function.
3801 (initialize_growth_caches, free_growth_caches): New function.
3802 (dump_inline_summary): Update.
3803 (edge_execution_predicate): New function.
3804 (will_be_nonconstant_predicate): New function.
3805 (estimate_function_body_sizes): Compute BB and constantness predicates.
3806 (compute_inline_parameters): Do not clear estimated_growth.
3807 (estimate_edge_size_and_time): New function.
3808 (estimate_calls_size_and_time): New function.
3809 (estimate_callee_size_and_time): New function.
3810 (remap_predicate): New function.
3811 (inline_merge_summary): New function.
3812 (do_estimate_edge_time): New function based on...
3813 (estimate_edge_time): ... this one.
3814 (do_estimate_edge_growth): New function.
3815 (do_estimate_growth): New function based on....
3816 (estimate_growth): ... this one.
3817 (inline_analyze_function): Analyze after deciding on jump functions.
3818 (inline_read_section): New function.
3819 (inline_read_summary): Use it.
3820 (inline_write_summary): Write all the new data.
3821 * ipa-prop.c (ipa_get_param_decl_index): Export.
3822 (ipa_lattice_from_jfunc): Move here from ipa-cp.c
77fa1d54
UB
3823 * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
3824 Declare.
3825 (ipa_get_lattice): Move here from ipa-cp.c
632b4f8e
JH
3826 * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
3827 * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
3828 * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
3829 cgraph_edge_inlinable_p): Remove.
3830 * cgraphunit.c: Include ipainline.h
77fa1d54
UB
3831 (cgraph_process_new_functions): Update call of
3832 compute_inline_parameters.
632b4f8e 3833
1df5b0db
RG
38342011-04-22 Richard Guenther <rguenther@suse.de>
3835
3836 * tree.c (build_int_cst): Properly create canonicalized integer
3837 constants.
3838 (build_int_cst_type): Remove scary comments.
3839
ae01169c
XDL
38402011-04-22 Xinliang David Li <davidxl@google.com>
3841
3842 * toplev.c (process_options): Enable -Werror=coverage-mismatch
3843 by default when -Wno-error is not specified.
3844 * opts-global.c (decode_options): Remove call to
3845 control_warning_options.
3846
93dfac24
JJ
38472011-04-22 Jakub Jelinek <jakub@redhat.com>
3848
3849 PR tree-optimization/48717
3850 * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
3851 ~A + A optimizations use build_int_cst_type instead of build_int_cst.
3852
1b5f5069
JM
38532011-04-22 Joseph Myers <joseph@codesourcery.com>
3854
3855 * config/bfin/bfin-protos.h (Mmode): Don't define. Expand
3856 definition where used.
3857
144f4153
JJ
38582011-04-22 Jakub Jelinek <jakub@redhat.com>
3859
3860 PR c/48716
3861 * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
3862 TREE_STATIC variables declared inside of some OpenMP construct.
3863
f9fd305b
MJ
38642011-04-22 Martin Jambor <mjambor@suse.cz>
3865
3866 PR middle-end/48585
1d284ec5 3867 * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
f9fd305b 3868
49819fef
AM
38692011-04-22 Alexander Monakov <amonakov@ispras.ru>
3870
3871 PR c/36750
3872 * c-typeck.c (pop_init_level): Do not warn about initializing
3873 with ` = {0}'.
3874
401f6699
AM
38752011-04-22 Alan Modra <amodra@gmail.com>
3876
3877 * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
3878 when returning call_cookie.
3879 (rs6000_function_ok_for_sibcall): Allow sibcalls via function
3880 pointers, to functions with no more vector args than the current
3881 function, and some non-local calls for ABI_V4.
3882 * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
3883 sibcall_nonlocal_aix64): Combine to ..
3884 (sibcall_nonlocal_aix<mode>): ..this. Handle function pointer calls.
3885 (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
3886 (sibcall_value_nonlocal_aix<mode>): ..likewise.
3887 (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
3888 (sibcall_value_nonlocal_sysv<mode>): Likewise. Correct call cookie
3889 operand.
3890 * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
3891 sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
3892 sibcall_value_symbolic_64): Delete.
3893
903d1e67
XDL
38942011-04-21 Xinliang David Li <davidxl@google.com>
3895
3896 * cgraph.h: Remove pid.
3897 * cgraph.c: Remove pid.
3898 * value-prof.c (init_node_map): New function.
3899 (del_node_map): New function.
3900 (find_func_by_funcdef_no): New function.
3901 (gimple_ic_transform): Call new function.
3902 * cgraphunit.c (cgraph_finalize_function): Remove pid.
3903 * function.c (get_last_funcdef_no): New function.
3904 * function.h (get_last_funcdef_no): New function.
3905 * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
3906 to libgcov function.
3907 (tree-profiling): Call node map init and delete function.
3908
7378e95f
ILT
39092011-04-21 Ian Lance Taylor <iant@google.com>
3910
3911 * godump.c (go_format_type): Use exported Go name for anonymous
3912 field name.
3913
e84a6fcf
NF
39142011-04-21 Nathan Froyd <froydnj@codesourcery.com>
3915
3916 * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
3917 Call builtin_function_type_list instead of builtin_function_type.
3918 (UNARY, BINARY, TRINARY, QUAD): Likewise.
3919
4fe058e2
NF
39202011-04-21 Nathan Froyd <froydnj@codesourcery.com>
3921
3922 * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
3923 build_function_type_list instead of build_function_type.
3924 Delete variable `endlink'.
3925
1ba0a2d2
NF
39262011-04-21 Nathan Froyd <froydnj@codesourcery.com>
3927
3928 * config/s390/s390.c (s390_init_builtins): Call
3929 build_function_type_list instead of build_function_type.
3930
c0676219
NF
39312011-04-21 Nathan Froyd <froydnj@codesourcery.com>
3932
3933 * config/ia64/ia64.c (ia64_init_builtins): Call
3934 build_function_type_list instead of builtin_function_type.
3935
6ddfda8a
ER
39362011-04-21 Easwaran Raman <eraman@google.com>
3937
3a6448ea 3938 * cfgexpand.c (stack_var): Remove OFFSET...
6ddfda8a
ER
3939 (add_stack_var): ...and its reference here...
3940 (expand_stack_vars): ...and here.
3941 (stack_var_cmp): Sort by descending order of size.
3942 (partition_stack_vars): Change heuristic.
1d284ec5 3943 (union_stack_vars): Fix to reflect changes in partition_stack_vars.
6ddfda8a
ER
3944 (dump_stack_var_partition): Add newline after each partition.
3945
23756963
DA
39462011-04-21 Dimitrios Apostolou <jimis@gmx.net>
3947 Jeff Law <law@redhat.com>
3948
77fa1d54 3949 * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
23756963
DA
3950 * gengtype.c (matching_file_name_substitute): Likewise.
3951
aa2a43d2
RG
39522011-04-21 Richard Guenther <rguenther@suse.de>
3953
3954 PR lto/48703
1d284ec5 3955 * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
aa2a43d2 3956
4d931f41
EB
39572011-04-21 Eric Botcazou <ebotcazou@adacore.com>
3958
3959 * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
3960
f103fa7a
RG
39612011-04-21 Richard Guenther <rguenther@suse.de>
3962
3963 * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
3964 file name.
3965
e19f6650
RG
39662011-04-21 Richard Guenther <rguenther@suse.de>
3967
3968 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
3969 MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
3970 Use DECL_P, not SSA_VAR_P.
3971 (ptr_derefs_may_alias_p): Likewise.
3972 (ptr_deref_may_alias_ref_p_1): Likewise.
3973 (decl_refs_may_alias_p): Likewise.
3974 (refs_may_alias_p_1): Likewise.
3975 (ref_maybe_used_by_call_p_1): Likewise.
3976 (call_may_clobber_ref_p_1): Likewise.
3977 (indirect_ref_may_alias_decl_p): Assume indirect refrences
3978 are either MEM_REF or TARGET_MEM_REF.
3979 (indirect_refs_may_alias_p): Likewise.
3980 * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
3981 for MEM_EXPR of indirect calls.
3982
9d1831bb
TG
39832011-04-21 Tristan Gingold <gingold@adacore.com>
3984
3985 * vmsdbgout.c (write_srccorr): Compute file length from the string.
3986 (dst_file_info_struct): Remove flen field.
3987 (lookup_filename): Remove code that set flen field.
3988
f199c029
TG
39892011-04-21 Tristan Gingold <gingold@adacore.com>
3990
3991 * config/ia64/ia64.c (ia64_start_function): Add a guard.
3992
2894086e
UB
39932011-04-21 Uros Bizjak <ubizjak@gmail.com>
3994
3995 PR target/48708
3996 * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
3997 vec_extract and vec_concat for non-SSE4_1 targets.
3998
53f94a5c
RG
39992011-04-21 Richard Guenther <rguenther@suse.de>
4000
4001 * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
4002 return statements.
4003
f0dca5ba
JM
40042011-04-21 Joseph Myers <joseph@codesourcery.com>
4005
4006 * config/i386/cygming.h (union tree_node, TREE): Don't define or
4007 undefine.
4008 (FILE): Don't undefine.
4009
984514ac
JM
40102011-04-21 Joseph Myers <joseph@codesourcery.com>
4011
4012 * config/alpha/alpha.c (struct machine_function): Use rtx, not
4013 struct rtx_def *.
4014 * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
4015 struct rtx_def *.
4016 * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
2894086e 4017 * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
984514ac
JM
4018 * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
4019 rtx_def *.
4020 * config/m32c/m32c-protos.h (MM, UINT): Don't define. Expand
4021 definitions where used.
4022 * config/microblaze/microblaze.h (struct microblaze_args): Use
4023 rtx, not struct rtx_def *.
4024 * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
4025 rtx_def *.
2894086e
UB
4026 * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
4027 * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
984514ac
JM
4028 * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
4029 not struct rtx_def *.
4030 * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
4031 struct rtx_def *.
4032 * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
4033 rtx_def *.
2894086e 4034 * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
984514ac 4035
0b5a2724
RS
40362011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
4037
4038 * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
4039 operand_equal_p to compare DR_BASE_ADDRESSes.
4040 (vect_check_interleaving): Likewise.
4041
4b18d683
RS
40422011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
4043
4044 PR target/46329
4045 * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
4046 for all Neon struct constants.
4047
1a627b35
RS
40482011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
4049
4050 * target.def (legitimate_constant_p): New hook.
4051 * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
4052 (TARGET_LEGITIMATE_CONSTANT_P): ...this.
4053 * doc/tm.texi: Regenerate.
4054 * hooks.h (hook_bool_mode_rtx_true): Declare.
4055 * hooks.c (hook_bool_mode_rtx_true): Define.
4056 * system.h (LEGITIMATE_CONSTANT_P): Poison.
4057 * calls.c (precompute_register_parameters): Replace uses of
4058 LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
4059 (emit_library_call_value_1): Likewise.
4060 * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
4061 (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
4062 * ira-costs.c (scan_one_insn): Likewise.
4063 * recog.c (general_operand, immediate_operand): Likewise.
4064 * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
4065 * reload1.c (init_eliminable_invariants): Likewise.
4066
4067 * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
4068 mode argument.
4069 * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
4070 * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
4071 argument.
4072 (TARGET_LEGITIMATE_CONSTANT_P): Define.
4073 * config/alpha/predicates.md (input_operand): Update call to
4074 alpha_legitimate_constant_p.
4075
4076 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
4077 * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
4078 (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
4079 * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4080 (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
4081 (arm_legitimate_constant_p): New functions.
4082 (arm_cannot_force_const_mem): Make static.
4083
4084 * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
4085
4086 * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
4087 * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
4088 * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
4089 instead of bfin_legitimate_constant_p.
4090 (bfin_legitimate_constant_p): Make static. Add a mode argument.
4091 (TARGET_LEGITIMATE_CONSTANT_P): Define.
4092
4093 * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
4094
4095 * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
4096
4097 * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
4098 * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
4099 * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4100 (frv_legitimate_constant_p): Make static. Add a mode argument.
4101
4102 * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
4103 * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
4104 * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
4105
4106 * config/i386/i386-protos.h (legitimate_constant_p): Delete.
4107 * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
4108 * config/i386/i386.c (legitimate_constant_p): Rename to...
4109 (ix86_legitimate_constant_p): ...this. Make static. Add a mode
4110 argument.
4111 (ix86_cannot_force_const_mem): Update accordingly.
4112 (ix86_legitimate_address_p): Likewise.
4113 (TARGET_LEGITIMATE_CONSTANT_P): Define.
4114 * config/i386/i386.md: Update commentary.
4115
4116 * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
4117 * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
4118 * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4119 (ia64_legitimate_constant_p): Make static. Add a mode argument.
4120
4121 * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
4122
4123 * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
4124 * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
4125 * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4126 (lm32_legitimate_constant_p): Make static. Add a mode argument.
4127
4128 * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
4129 * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
4130 * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
4131
4132 * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
4133 * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4134 (m32r_legitimate_constant_p): New function.
4135
4136 * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
4137 * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
4138 LEGITIMATE_CONSTANT_P.
4139 (LEGITIMATE_CONSTANT_P): Delete.
4140 * config/m68k/m68k.c (m68k_expand_prologue): Call
4141 m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
4142 (m68k_legitimate_constant_p): New function.
4143 * config/m68k/m68k.md: Update comments.
4144
4145 * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
4146 * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4147 (mcore_legitimate_constant_p): New function.
4148
4149 * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
4150 * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
4151 * config/mep/mep.c (mep_legitimate_constant_p): Make static.
4152 Add a mode argument.
4153 (mep_legitimate_address): Update accordingly.
4154 (TARGET_LEGITIMATE_CONSTANT_P): Define.
4155
4156 * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
4157 Delete.
4158 * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
4159 * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
4160 static. Check OP's mode for VOIDmode.
4161 (microblaze_legitimate_constant_p): New function.
4162 (TARGET_LEGITIMATE_CONSTANT_P): Define.
4163
4164 * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
4165 * config/mips/mips.c (mips_legitimate_constant_p): New function.
4166 (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
4167 (TARGET_LEGITIMATE_CONSTANT_P): Define.
4168 * config/mips/predicates.md: Update comments.
4169
4170 * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
4171 * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
4172 * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4173 (mmix_legitimate_constant_p): Make static, return a bool, and take
4174 a mode argument.
4175 (mmix_print_operand_address): Update accordingly.
4176
4177 * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
4178 Delete.
4179 * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
2894086e
UB
4180 * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
4181 static. Add a mode argument.
1a627b35
RS
4182 (TARGET_LEGITIMATE_CONSTANT_P): Define.
4183
4184 * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
4185
4186 * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
4187 * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4188 (pa_legitimate_constant_p): New function.
4189
4190 * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
4191
4192 * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
4193 * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4194 (pdp11_legitimate_constant_p): New function.
4195
4196 * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
4197 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4198 (rs6000_legitimate_constant_p): New function.
4199
4200 * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
4201 (rx_legitimate_constant_p): ...this.
4202 * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
4203 * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
4204 (rx_legitimate_constant_p): ...this.
4205 (TARGET_LEGITIMATE_CONSTANT_P): Define.
4206 * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
4207
4208 * config/s390/s390-protos.h (legitimate_constant_p): Delete.
4209 * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
4210 * config/s390/s390.c (legitimate_constant_p): Rename to...
4211 (s390_legitimate_constant_p): ...this. Make static, return a bool,
4212 and add a mode argument.
4213 (TARGET_LEGITIMATE_CONSTANT_P): Define.
4214
4215 * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
4216
4217 * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
4218 * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4219 (sh_legitimate_constant_p): New function.
4220
4221 * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
4222 * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
4223 * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4224 (legitimate_constant_p): Rename to...
4225 (sparc_legitimate_constant_p): ...this. Make static. Add a mode
4226 argument.
4227 (constant_address_p): Update accordingly.
4228
4229 * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
4230 argument and return a bool.
4231 * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
4232 * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4233 (spu_legitimate_constant_p): Add a mode argument and return a bool.
4234 (spu_rtx_costs): Update accordingly.
4235 * config/spu/predicates.md (vec_imm_operand): Likewise.
4236
4237 * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
4238
4239 * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
4240 * config/v850/v850.c (v850_legitimate_constant_p): New function.
4241 (TARGET_LEGITIMATE_CONSTANT_P): Define.
4242
4243 * config/vax/vax-protos.h (legitimate_constant_p): Delete.
4244 * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
4245 * config/vax/vax.c (legitimate_constant_p): Likewise.
4246
4247 * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
4248 * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4249 (xtensa_legitimate_constant_p): New function.
4250
fbbf66e7
RS
42512011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
4252
4253 * target.def (cannot_force_const_mem): Add a mode argument.
4254 * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
4255 * doc/tm.texi: Regenerate.
4256 * hooks.h (hook_bool_mode_rtx_false): Declare.
4257 * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
4258 (hook_bool_mode_const_rtx_true): Likewise.
4259 (hook_bool_mode_rtx_false): New function.
4260 * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
4261 to be non-VOID. Update call to cannot_force_const_mem.
4262 (find_reloads): Update accordingly.
4263 * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
4264 * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
4265 argument.
4266 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
4267 * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
4268 * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
4269 * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
4270 * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
4271 * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
4272 * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
4273 * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
4274 (m68k_cannot_force_const_mem): ...this new function.
4275 * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
4276 argument.
4277 (mips_const_insns, mips_legitimize_const_move): Update calls.
4278 (mips_secondary_reload_class): Likewise.
4279 * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
4280 (pa_cannot_force_const_mem): ...this new function.
2894086e 4281 * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
fbbf66e7
RS
4282 (rs6000_cannot_force_const_mem): ...this new function.
4283 * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
4284 argument.
4285 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
4286 * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
4287 to...
4288 (xtensa_cannot_force_const_mem): ...this new function.
4289
b861891b
NF
42902011-04-20 Nathan Froyd <froydnj@codesourcery.com>
4291
4292 * config/mips/mips.c (mips16_build_function_stub): Call
4293 build_function_type_list instead of build_function_type.
4294 (mips16_build_call_stub): Likewise.
4295
34149ed5
NF
42962011-04-20 Nathan Froyd <froydnj@codesourcery.com>
4297
4298 * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
4299 instead of build_function_type.
4300
12526412
NF
43012011-04-20 Nathan Froyd <froydnj@codesourcery.com>
4302
4303 * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
4304 instead of build_function_type.
4305
3b84d61f
UB
43062011-04-20 Uros Bizjak <ubizjak@gmail.com>
4307
4308 PR target/48678
4309 * config/i386/i386.md (insv): Change operand 0 constraint to
4310 "register_operand". Change operand 1 and 2 constraint to
4311 "const_int_operand". Expand to pinsr{b,w,d,q} * when appropriate.
4312 * config/i386/sse.md (sse4_1_pinsrb): Export.
4313 (sse2_pinsrw): Ditto.
4314 (sse4_1_pinsrd): Ditto.
4315 (sse4_1_pinsrq): Ditto.
4316 * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
4317 * config/i386/i386.c (ix86_expand_pinsr): New.
4318
4a25752b
ER
43192011-04-20 Easwaran Raman <eraman@google.com>
4320
4321 * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
4322 containing union type only with -fstrict-aliasing.
4323
04695783
JM
43242011-04-20 Jim Meyering <meyering@redhat.com>
4325
4326 Remove useless if-before-free tests.
4327 * calls.c (expand_call, save_area): Likewise.
4328 * cfgcleanup.c (try_forward_edges): Likewise.
4329 * collect2.c (collect_execute): Likewise.
4330 * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
4331 * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
4332 * coverage.c (coverage_checksum_string): Likewise.
4333 * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
4334 * cselib.c (cselib_init): Likewise.
4335 * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
4336 (df_set_clean_cfg): Likewise.
4337 * function.c (free_after_compilation): Likewise.
4338 * gcc.c (do_spec_1, main): Likewise.
4339 * gcov.c (create_file_names): Likewise.
4340 * gensupport.c (identify_predicable_attribute): Likewise.
4341 * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
4342 * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
4343 * haifa-sched.c (haifa_finish_h_i_d): Likewise.
4344 * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
4345 * ipa-pure-const.c (local_pure_const): Likewise.
4346 * ipa-reference.c (propagate): Likewise.
4347 * ira-costs.c (free_ira_costs): Likewise.
4348 * ira.c (free_register_move_costs, build_insn_chain): Likewise.
4349 * matrix-reorg.c (mat_free): Likewise.
4350 * prefix.c (get_key_value): Likewise.
4351 * profile.c (compute_value_histograms): Likewise.
4352 * reload1.c (free_reg_equiv): Likewise.
4353 * sched-deps.c (free_deps): Likewise.
4354 * sel-sched-ir.c (fence_clear): Likewise.
4355 * sese.c (set_rename, if_region_set_false_region): Likewise.
4356 * tree-data-ref.c (free_rdg): Likewise.
4357 * tree-eh.c (lower_try_finally): Likewise.
4358 * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
4359 * tree-ssa-live.c (delete_var_map): Likewise.
4360 * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
4361 * tree-ssa-pre.c (phi_trans_add): Likewise.
4362
6788475a
JJ
43632011-04-20 Jakub Jelinek <jakub@redhat.com>
4364
4365 PR tree-optimization/48611
4366 * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
4367 beyond ERT_MUST_NOT_THROW region.
4368
0eda4033
CM
43692011-04-20 Catherine Moore <clm@codesourcery.com>
4370
4371 * config/mips/mips.opt (mfix-24k): New.
4372 * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
4373 * config/mips/mips.md (length): Increase by 4 for stores if
4374 fixing 24K errata.
4375 * config/mips/mips.c (mips_reorg_process_insns): Do not allow
4376 all noreorder if fixing 24K errata.
4377 * doc/invoke.texi: Document mfix-24k.
4378
01475747
CLT
43792011-04-20 Chung-Lin Tang <cltang@codesourcery.com>
4380
4381 * config/arm/arm.c (arm_legitimize_reload_address): For NEON
2894086e 4382 quad-word modes, reduce to 9-bit index range when above 1016 limit.
01475747 4383
bc2c1a60
AS
43842011-04-20 Andrew Stubbs <ams@codesourcery.com>
4385
4386 * config/arm/arm.c (arm_gen_constant): Move movw support ....
4387 (const_ok_for_op): ... to here.
4388
583722ee
KT
43892011-04-20 Kai Tietz <ktietz@redhat.com>
4390
2894086e
UB
4391 * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
4392 and (X && !Y) | (!X && Y) optimization to (X ^ Y).
583722ee 4393
422c0989
AS
43942011-04-20 Andrew Stubbs <ams@codesourcery.com>
4395
4396 * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
4397
d7978bff
RG
43982011-04-20 Richard Guenther <rguenther@suse.de>
4399
4400 PR tree-optimization/47892
4401 * tree-if-conv.c (if_convertible_stmt_p): Const builtins
4402 are if-convertible.
4403
818412ba
EB
44042011-04-20 Eric Botcazou <ebotcazou@adacore.com>
4405
4406 * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
4407
b501ce4e
TG
44082011-04-20 Tristan Gingold <gingold@adacore.com>
4409
4410 * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
4411
516edfdd
GJL
44122011-04-20 Georg-Johann Lay <avr@gjlay.de>
4413
4414 PR target/18145
4415
4416 * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
4417 (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
4418 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
4419 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
4420 (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
4421
4422 * config/avr/avr-protos.h (avr_asm_output_aligned_common):
4423 New prototype.
4424
4425 * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
4426 (avr_asm_named_section, avr_asm_output_aligned_common,
4427 avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
4428 New functions to update...
4429 (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
4430 (avr_asm_init_sections): Overwrite section callbacks for
4431 data_section, bss_section.
4432 (avr_file_start): Move output of __do_copy_data, __do_clear_bss
4433 from here to...
4434 (avr_file_end): ...here.
4435
dafc9511
RG
44362011-04-20 Richard Guenther <rguenther@suse.de>
4437
4438 PR middle-end/48695
4439 * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
2894086e 4440 objects and types here. Adjust for their offset before comparing.
dafc9511 4441
1da0876c
RS
44422011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
4443
4444 * tree-vect-stmts.c (vectorizable_store): Only chain one related
4445 statement per copy.
4446
25583c4f
RS
44472011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
4448
4449 * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
4450 (GIMPLE_H): Include $(INTERNAL_FN_H).
4451 (OBJS-common): Add internal-fn.o.
4452 (internal-fn.o): New rule.
4453 * internal-fn.def: New file.
4454 * internal-fn.h: Likewise.
4455 * internal-fn.c: Likewise.
4456 * gimple.h: Include internal-fn.h.
4457 (GF_CALL_INTERNAL): New gf_mask.
4458 (gimple_statement_call): Put fntype into a union with a new
4459 internal_fn field.
4460 (gimple_build_call_internal): Declare.
4461 (gimple_build_call_internal_vec): Likewise.
4462 (gimple_call_same_target_p): Likewise.
4463 (gimple_call_internal_p): New function.
4464 (gimple_call_internal_fn): Likewise.
4465 (gimple_call_fntype): Return null for internal calls.
4466 (gimple_call_set_fntype): Assert that the function is not internal.
4467 (gimple_call_set_fn): Likewise.
4468 (gimple_call_set_fndecl): Likewise.
4469 (gimple_call_set_internal_fn): New function.
4470 (gimple_call_addr_fndecl): Handle null functions.
4471 (gimple_call_return_type): Likewise null types.
4472 * gimple.c (gimple_build_call_internal_1): New function.
4473 (gimple_build_call_internal): Likewise.
4474 (gimple_build_call_internal_vec): Likewise.
4475 (gimple_call_same_target_p): Likewise.
4476 (gimple_call_flags): Handle calls to internal functions.
4477 (gimple_call_fnspec): New function.
4478 (gimple_call_arg_flags, gimple_call_return_flags): Use it.
4479 (gimple_has_side_effects): Handle null functions.
4480 (gimple_rhs_has_side_effects): Likewise.
4481 (gimple_call_copy_skip_args): Handle calls to internal functions.
4482 * cfgexpand.c (expand_call_stmt): Likewise.
4483 * expr.c (expand_expr_real_1): Assert that the call isn't internal.
4484 * gimple-fold.c (gimple_fold_call): Handle null functions.
4485 (gimple_fold_stmt_to_constant_1): Don't fold
4486 calls to internal functions.
4487 * gimple-low.c (gimple_check_call_args): Handle calls to internal
4488 functions.
4489 * gimple-pretty-print.c (dump_gimple_call): Likewise.
4490 * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
4491 * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
4492 (do_warn_unused_result): Likewise.
4493 * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
4494 * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
4495 * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
4496 the target of a call.
4497 (initialize_hash_element): Update accordingly.
4498 (hashable_expr_equal_p): Use gimple_call_same_target_p.
4499 (iterative_hash_hashable_expr): Handle calls to internal functions.
4500 (print_expr_hash_elt): Likewise.
4501 * tree-ssa-pre.c (can_value_number_call): Likewise.
4502 (eliminate): Handle null functions.
4503 * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
4504 * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
4505 (find_func_aliases): Likewise.
4506 * value-prof.c (gimple_ic_transform): Likewise.
4507 (gimple_indirect_call_to_profile): Likewise.
4508 * lto-streamer-in.c (input_gimple_stmt): Likewise.
4509 * lto-streamer-out.c (output_gimple_stmt): Likewise.
4510
1a3118e9
JH
45112011-04-19 Jan Hubicka <jh@suse.cz>
4512
4513 * ipa-inline-transform.c (save_inline_function_body): Add comments.
9d12f71a
EB
4514 * ipa-inline.c (inline_small_functions): Compute summaries first,
4515 populate heap later.
1a3118e9 4516
fee8b6da
JH
45172011-04-19 Jan Hubicka <jh@suse.cz>
4518
4519 * cgraph.h (save_inline_function_body): Remove.
4520 * ipa-inline-transform.c: New file, broke out of...
4521 * ipa-inline.c: ... this one; Update toplevel comment.
4522 (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
4523 make global.
4524 (update_noncloned_frequencies): Move to ipa-inline-transform.c
4525 (cgraph_mark_inline_edge): Rename to inline_call; move to
4526 ipa-inline-transform.c.
4527 (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
4528 move to ipa-inline-transform.c
4529 (recursive_inlining, inline_small_functions, flatten_function,
4530 ipa_inline, inline_always_inline_functions,
4531 early_inline_small_functions): Update.
4532 (inline_transform): Move to ipa-inline-transform.c.
4533 * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
4534 Declare.
4535 * Makefile.in (ipa-inline-transform.o): New file.
4536 * cgraphunit.c (save_inline_function_body): Move to
4537 ipa-inline-transform.c
4538
f0679612
DD
45392011-04-19 DJ Delorie <dj@redhat.com>
4540
4541 * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
4542 registers if we already know there aren't any.
4543 (m32c_emit_epilogue): Don't emit a barrier here.
4544 (m32c_emit_eh_epilogue): Likewise.
4545 * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
4546 operands at expand time.
4547 * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
4548 int" wchar type.
4549 (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
4550 duplicates. Provide aliases instead.
4551 * config/m32c/prologue.md (eh_return): Emit a barrier here.
4552 (eh_epilogue): Add a "(return)" here as a hint to other parts of
4553 the compiler.
4554
32257ddc
AS
45552011-04-19 Anatoly Sokolov <aesok@post.ru>
4556
4557 * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
4558 * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
4559 (general_or_i64_p, sparc_register_move_cost): New function.
4560
60bea929
RO
45612011-04-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4562
4563 * doc/install.texi (Configuration, --enable-threads): Remove mach.
3b84d61f 4564 Add lynx, mipssde. Sort table.
60bea929 4565
444b3995 45662011-04-19 Xinliang David Li <davidxl@google.com>
3b84d61f 4567
9d12f71a
EB
4568 * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
4569 not negative.
444b3995 4570
d708ce50
JJ
45712011-04-19 Jakub Jelinek <jakub@redhat.com>
4572
4573 PR target/48678
4574 * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
4575 is a SUBREG with non-MODE_INT mode inside of it.
4576
49c471e3
MJ
45772011-04-19 Martin Jambor <mjambor@suse.cz>
4578
4579 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
4580 also according to actual contants.
4581 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
4582 (gimple_fold_call): Use it.
4583 * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
4584
0004f992
MJ
45852011-04-19 Martin Jambor <mjambor@suse.cz>
4586
4587 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
4588 non-pointer assignments.
4589
40591473
MJ
45902011-04-19 Martin Jambor <mjambor@suse.cz>
4591
4592 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
4593 account anc_offset and otr_type from the indirect edge info.
4594 * ipa-prop.c (get_ancestor_addr_info): New function.
4595 (compute_complex_ancestor_jump_func): Assignment analysis moved to
4596 get_ancestor_addr_info, call it.
4597 (ipa_note_param_call): Do not initialize information about polymorphic
4598 calls, return the indirect call graph edge. Remove the last
4599 parameter, adjust all callers.
4600 (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
4601 parameters. Initialize polymorphic information in the indirect edge.
4602
abe36b81
EB
46032011-04-19 Eric Botcazou <ebotcazou@adacore.com>
4604
4605 PR lto/48148
4606 * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
4607 the types if they have different enumeration identifiers.
4608
e6416b30
JH
46092011-04-19 Jan Hubicka <jh@suse.cz>
4610
4611 * cgraph.h (cgraph_optimize_for_size_p): Declare.
4612 * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
4613 * predict.c (cgraph_optimize_for_size_p): Break out from ...
4614 (optimize_function_for_size_p) ... here.
4615
d39132ea
RG
46162011-04-19 Richard Guenther <rguenther@suse.de>
4617
4618 PR lto/48207
4619 * tree.c (free_lang_data): Do not reset the decl-assembler-name
4620 langhook.
4621
ff7037dc
EB
46222011-04-19 Eric Botcazou <ebotcazou@adacore.com>
4623
4624 * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
4625 if DECL_NO_INLINE_WARNING_P is set on the function.
4626
c1ee2892
BS
46272011-04-19 Bernd Schmidt <bernds@codesourcery.com>
4628
4629 PR fortran/47976
4630 * reload1.c (inc_for_reload): Return void. All callers changed.
4631 (emit_input_reload_insns): Don't try to delete previous output
4632 reloads to a register, or record spill_reg_store for autoincs.
fbb20b29
BS
4633
46342011-04-19 Basile Starynkevitch <basile@starynkevitch.net>
4635
4636 * gengtype.h: Updated copyright year.
4637 (struct input_file_st): Add inpisplugin field.
4638 (type_fileloc): New function.
4639 * gengtype.c
4640 (write_typed_struct_alloc_def): Add gcc_assert.
4641 (write_typed_alloc_defns): Ditto. Don't output for plugin files.
4642 (write_typed_alloc_defns): Don't output for plugin files.
4643 (input_file_by_name): Clear inpisplugin field.
4644 (main): Set inpisplugin field for plugin files.
4645
897e0a89
NP
46462011-04-19 Nicola Pero <nicola.pero@meta-innovation.com>
4647
4648 * gengtype-state.c (string_eq): New.
4649 (read_state): Use string_eq instead of strcmp when creating the
4650 state_ident_tab.
4651
363ee90e
WG
46522011-04-19 Wei Guozhi <carrot@google.com>
4653
4654 PR target/47855
4655 * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
4656 * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
4657 linkage.
4658 * config/arm/constraints.md (Uu): New constraint.
4659 * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
4660
18a24fed
TG
46612011-04-19 Tristan Gingold <gingold@adacore.com>
4662
4663 * config.gcc (-*-*-*vms): Added.
4664 (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
4665 definitions moved.
4666 * config/vms/vms-ld.c: New file.
4667 * config/vms/vms-ar.c: New file.
4668 * config/vms/t-vmsnative: New file.
4669
1c13f168
XDL
46702011-04-18 Xinliang David Li <davidxl@google.com>
4671
4672 * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
4673
84825707
JJ
46742011-04-18 Jakub Jelinek <jakub@redhat.com>
4675
4676 PR middle-end/48661
4677 * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
4678 if TREE_TYPE (v) is non-NULL.
4679
4680 * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
4681 gimple_get_virt_mehtod_for_binfo.
4682 * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
4683 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
4684 callers.
4685 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
4686
7d4f8d02 46872011-04-18 Michael Matz <matz@suse.de>
7254cb57
MM
4688 Steve Ellcey <sje@cup.hp.com>
4689
7d4f8d02
EB
4690 * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
4691 use its mode as source mode if it isn't VOIDmode.
7254cb57 4692
474e8e70
DCR
46932011-04-18 Dennis, CHENG Renquan <crquan@fedoraproject.org>
4694
4695 * doc/passes.texi: Fill crossref nodes.
4696
cff41484
JM
46972011-04-18 Jim Meyering <meyering@redhat.com>
4698
7d4f8d02 4699 Fix doubled-word typos in comments and strings
cff41484
JM
4700 * config/alpha/vms-unwind.h: s/for for/for/
4701 * config/arm/unwind-arm.h: Likewise.
4702 * config/microblaze/microblaze.c: Likewise.
4703 * config/sh/constraints.md: s/in in/in/
4704 * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
4705
f60c2554
UB
47062011-04-18 Uros Bizjak <ubizjak@gmail.com>
4707
4708 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
4709 (AVX_FLOAT_MODE_P): Ditto.
4710 (AVX128_VEC_FLOAT_MODE_P): Ditto.
4711 (AVX256_VEC_FLOAT_MODE_P): Ditto.
4712 (AVX_VEC_FLOAT_MODE_P): Ditto.
4713 * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
4714 (UNSPEC_MASKSTORE): Ditto.
4715 * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
4716 Merge from <sse>_movmsk<ssemodesuffix> and
4717 avx_movmsk<ssemodesuffix>256. Use VF mode iterator.
4718 (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64. Use P mode
4719 iterator.
4720 (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
4721 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
4722 (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
4723
09a2806f
JH
47242011-04-18 Jan Hubicka <jh@suse.cz>
4725
8a8dccb2
JH
4726 * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
4727
09a2806f
JH
4728 * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
4729 (want_inline_function_called_once_p): Break out the logic from
4730 ipa_inline.
4731 (edge_badness): Ensure that profile is not misupdated.
4732 (lookup_recursive_calls): Prioritize by call frequencies.
4733 (inline_small_functions): Move program size estimates here;
4734 actually process whole queue even when unit growth has been
4735 met. (to properly compute inline_failed reasons and for the
f60c2554 4736 case unit size decrease.) Revisit comments on recursive inlining.
09a2806f
JH
4737 (ipa_inline): Remove unit summary code; first inline hot calls
4738 of functions called once, cold calls next.
4739 (order, nnodes): Remove unused variables.
4740 * Makefile.in (ipa-inline.o): No longer depent on ggc files.
4741 (GTFILES): Remove ipa-inline.c
4742 * sel-sched.c (fill_insns): Silence uninitialized var warning.
4743
3eea52ef
EB
47442011-04-18 Eric Botcazou <ebotcazou@adacore.com>
4745
4746 * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
4747
229a1c59 47482011-04-18 Jie Zhang <jie@codesourcery.com>
3eea52ef 4749 Richard Earnshaw <rearnsha@arm.com>
229a1c59
JZ
4750
4751 * arm.c (neon_builtin_type_bits): Remove.
4752 (typedef enum neon_builtin_mode): New.
4753 (T_MAX): Don't define.
4754 (typedef enum neon_builtin_datum): Remove bits, codes[],
4755 num_vars and base_fcode. Add mode, code and fcode.
4756 (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
4757 VAR10): Change accordingly.
4758 (neon_builtin_data[]): Change accordingly
4759 (arm_init_neon_builtins): Change accordingly.
4760 (neon_builtin_compare): Remove.
4761 (locate_neon_builtin_icode): Remove.
4762 (arm_expand_neon_builtin): Change accordingly.
4763
4764 * arm.h (enum arm_builtins): Move to ...
4765 * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
4766
4767 * arm.c (arm_builtin_decl): Declare.
4768 (TARGET_BUILTIN_DECL): Define.
4769 (enum arm_builtins): Correct ARM_BUILTIN_MAX.
4770 (arm_builtin_decls[]): New.
4771 (arm_init_neon_builtins): Store builtin declarations in
4772 arm_builtin_decls[].
4773 (arm_init_tls_builtins): Likewise.
4774 (arm_init_iwmmxt_builtins): Likewise. Refactor initialization code.
4775 (arm_builtin_decl): New.
4776
75e802cc
RG
47772011-04-18 Richard Guenther <rguenther@suse.de>
4778
4779 * tree.c (upper_bound_in_type): Build properly canonicalized
4780 INTEGER_CSTs.
4781 (lower_bound_in_type): Likewise.
4782
3b45a007
RG
47832011-04-18 Richard Guenther <rguenther@suse.de>
4784
4785 * gimple.h (gimple_call_addr_fndecl): New function.
4786 (gimple_call_fndecl): Use it.
4787 * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
4788 for direct calls.
4789 * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
4790 * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
4791
d25a79ea
RG
47922011-04-18 Richard Guenther <rguenther@suse.de>
4793
4794 PR middle-end/48650
4795 * tree.c (build_string): STRING_CST is now derived from tree_typed.
4796
7d5fc814
EB
47972011-04-18 Eric Botcazou <ebotcazou@adacore.com>
4798
4799 PR lto/48492
4800 * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
4801 DECL_IN_CONSTANT_POOL without RTL.
4802
7e7cfcf6
UW
48032011-04-18 Ulrich Weigand <ulrich.weigand@linaro.org>
4804 Ira Rosen <ira.rosen@linaro.org>
4805
4806 PR target/48252
4807 * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
4808 to match neon_vzip/vuzp/vtrn_internal.
4809 * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
4810 outputs explicitly dependent on both inputs.
4811 (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
4812
49eab32e
JJ
48132011-04-18 Jakub Jelinek <jakub@redhat.com>
4814
4815 PR tree-optimization/48616
4816 * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
4817 whether the shift is by scalar or vector based on whether all SLP
4818 scalar stmts have the same rhs.
4819
e54170f4
CLT
48202011-04-17 Chung-Lin Tang <cltang@codesourcery.com>
4821
4822 * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
4823 memory operands.
4824
b14ee6c9
RS
48252011-04-17 Richard Sandiford <rdsandiford@googlemail.com>
4826
4827 * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
4828 registers.
4829
10158cd3
JH
48302011-04-17 Jan Hubicka <jh@suse.cz>
4831
4832 * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
7d5fc814
EB
4833 * cgrpahunit.c (cgraph_finalize_function): Do not set
4834 finalized_by_frontend.
10158cd3
JH
4835 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
4836 finalized_by_frontend.
4837
2e9bb6ba
JH
48382011-04-17 Jan Hubicka <jh@suse.cz>
4839
4840 * cgraph.c (cgraph_clone_node): Do not handle vtable_method
4841 * cgraph.h (struct cgraph_local_info): Drop vtable_method.
4842 * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
7d5fc814
EB
4843 * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
4844 method.
2e9bb6ba
JH
4845 * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
4846 gimple-fold.c
4847 * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
4848
beb628e1
EB
48492011-04-17 Eric Botcazou <ebotcazou@adacore.com>
4850
4851 PR lto/48538
4852 * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
4853 is non-null before accessing it.
4854 (input_cgraph): Remove trailing spaces.
4855
3e2fdd24
RE
48562011-04-17 Revital Eres <revital.eres@linaro.org>
4857
4858 * params.def (sms-min-sc): New param flag.
4859 * modulo-sched.c (sms_schedule): Use it.
4860 * doc/invoke.texi (sms-min-sc): Document it.
4861
4c0f7679
JH
48622011-04-17 Jan Hubicka <jh@suse.cz>
4863
4864 * lto-symtab.c (lto_cgraph_replace_node): When call statement is
4865 present, also set gimple_call_set_cannot_inline.
4866 * ipa-inline.c: Update toplevel comment.
4867 (MAX_TIME): Remove.
4868 (cgraph_clone_inlined_nodes): Fix linebreaks.
4869 (cgraph_check_inline_limits): Restructure to ...
4870 (caller_growth_limits): ... this one; be more tolerant
4871 on growth in nested inline chains; add explanatory comment;
4872 fix stack accounting thinko introduced by previous patch.
4873 (cgraph_default_inline_p): Remove.
4874 (report_inline_failed_reason): New function.
4875 (can_inline_edge_p): New function.
4876 (can_early_inline_edge_p): New function.
4877 (leaf_node_p): Move upwards in file.
4878 (want_early_inline_function_p): New function.
4879 (want_inline_small_function_p): New function.
4880 (want_inline_self_recursive_call_p): New function.
4881 (cgraph_edge_badness): Rename to ...
4882 (edge_badness) ... this one; fix linebreaks.
4883 (update_edge_key): Update call of edge_baddness; add
4884 detailed dump about queue updates.
4885 (update_caller_keys): Use can_inline_edge_p and
4886 want_inline_small_function_p.
4887 (cgraph_decide_recursive_inlining): Rename to...
4888 (recursive_inlining): Use can_inline_edge_p and
f60c2554
UB
4889 want_inline_self_recursive_call_p; simplify and remove no longer
4890 valid FIXME.
4c0f7679
JH
4891 (cgraph_set_inline_failed): Remove.
4892 (add_new_edges_to_heap): Use can_inline_edge_p and
4893 want_inline_small_function_p.
4894 (cgraph_decide_inlining_of_small_functions): Rename to ...
4895 (inline_small_functions): ... this one; cleanup; use
f60c2554
UB
4896 can/want predicates; cleanup debug ouput; work edges till fibheap
4897 is exhausted and do not stop once unit growth is reached; remove
4898 later loop processing remaining edges.
4c0f7679
JH
4899 (cgraph_flatten): Rename to ...
4900 (flatten_function): ... this one; use can_inline_edge_p
4901 and can_early_inline_edge_p predicates.
4902 (cgraph_decide_inlining): Rename to ...
4903 (ipa_inline): ... this one; remove unreachable nodes before
4904 inlining functions called once; simplify the pass.
4905 (cgraph_perform_always_inlining): Rename to ...
4906 (inline_always_inline_functions): ... this one; use
f60c2554 4907 DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
4c0f7679
JH
4908 (cgraph_decide_inlining_incrementally): Rename to ...
4909 (early_inline_small_functions): ... this one; simplify
4910 using new predicates; cleanup; make dumps prettier.
4911 (cgraph_early_inlining): Rename to ...
4912 (early_inliner): newer inline regular functions into always-inlines;
4913 fix updating of call stmt summaries.
4914 (pass_early_inline): Update for new names.
4915 (inline_transform): Fix formating.
4916 (gate_cgraph_decide_inlining): Rename to ...
4917 (pass_ipa_inline): ... this one.
4918 * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
4919 * ipa-inline-analysis.c (dump_inline_summary): Update.
4920 (compute_inline_parameters): Do not compute disregard_inline_limits;
4921 look for mismatching arguments.
4922 (estimate_growth): Fix handlig of non-trivial self recursion.
4923 (inline_read_summary): Do not read info->disregard_inline_limits.
4924 (inline_write_summary): Do not write info->disregard_inline_limits.
beb628e1
EB
4925 * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
4926 and move all checks into can_inline_edge_p predicate; re-enable code
4927 comparing optimization levels.
4c0f7679
JH
4928 (expand_call_inline): Do not test inline_forbidden_into_p.
4929 * Makefile.in (ipa-inline.o): Update arguments.
4930
54333b7c
RE
49312011-04-17 Revital Eres <revital.eres@linaro.org>
4932
4933 * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
4934
42c2bf92
RE
49352011-04-17 Revital Eres <revital.eres@linaro.org>
4936
4937 * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
4938
b183e9e0
MM
49392011-04-17 Michael Matz <matz@suse.de>
4940
4941 PR tree-optimization/48622
4942 PR lto/48645
4943 * ipa-inline-analysis.c (inline_read_summary): Read size/time
4944 in same order as they're written.
4945
b8a17fa2
JDA
49462011-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4947
4948 * config/pa/predicates.md: Reorganize and simplify predicates.
4949 Eliminate duplicate code checks.
4950 (arith_operand): Rename to arith14_operand
4951 (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
4952 * config/pa/pa.md: Use renamed operands.
4953 * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
4954 (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
4955 arith11_operand, adddi3_operand, indexed_memory_operand,
4956 symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
4957 arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
4958 borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
4959 move_dest_operand, move_src_operand, prefetch_cc_operand,
4960 prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
4961 uint32_operand, reg_before_reload_operand, reg_or_0_operand,
4962 reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
4963 div_operand, int5_operand, movb_comparison_operator,
4964 ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
4965 arith_double_operand, ireg_operand, lhs_lshift_operand,
4966 pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
4967 integer_store_memory_operand): Likewise.
4968 * config/pa/pa.c (adddi3_operand): Move to predicates.md.
4969 (integer_store_memory_operand, read_only_operand,
4970 function_label_operand, borx_reg_operand,
4971 non_hard_reg_operand): Likewise.
4972 (eq_neq_comparison_operator): Delete unused operator.
4973 (legitimize_pic_address): Use VOIDmode for mode argument in calls to
4974 function_label_operand.
4975 (emit_move_sequence): Likewise.
4976
8dfb9f16
UB
49772011-04-16 Uros Bizjak <ubizjak@gmail.com>
4978
4979 * config/i386/sse.md (sseunpackmode): New mode attribute.
4980 (ssepackmode): Ditto.
4981 (vec_pack_trunc_<mode>): Macroize expander from
4982 vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
4983 (vec_unpacks_lo_<mode>): Macroize expander from
4984 vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
4985 (vec_unpacks_hi_<mode>): Macroize expander from
4986 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
4987 (vec_unpacku_lo_<mode>): Macroize expander from
4988 vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
4989 (vec_unpacku_hi_<mode>): Macroize expander from
4990 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
4991 * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
4992 ix86_expand_sse4_unpack.
4993 * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
4994
e7f23018
JH
49952011-04-16 Jan Hubicka <jh@suse.cz>
4996
4997 * cgraphbuild.c: Include ipa-inline.h.
4998 (reset_inline_failed): Use initialize_inline_failed.
4999 * cgraph.c: Include ipa-inline.h.
5000 (cgraph_create_node_1): Do not initialize estimated_growth.
5001 (initialize_inline_failed): More to ipa-inline-analysis.c
5002 (dump_cgraph_node): Do not dump inline flags.
5003 * cgraph.h (cgraph_local_info): Remove inlineable, versionable
5004 and disregard_inline_limits flags.
5005 (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
5006 time, size, estimated_growth.
8dfb9f16
UB
5007 * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
5008 Update.
e7f23018
JH
5009 * cgraphunit.c (cgraph_decide_is_function_needed): Use
5010 DECL_DISREGARD_INLINE_LIMITS.
5011 (cgraph_analyze_function): Do not initialize
5012 node->local.disregard_inline_limits.
5013 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
5014 inlinable, versionable and disregard_inline_limits.
5015 * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
8dfb9f16
UB
5016 cgraph_check_inline_limits, cgraph_default_inline_p,
5017 cgraph_edge_badness, update_caller_keys, update_callee_keys,
5018 add_new_edges_to_heap): Update.
5019 (cgraph_decide_inlining_of_small_function): Update; set
5020 CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
e7f23018
JH
5021 (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
5022 cgraph_decide_inlining_incrementally): Update.
8dfb9f16
UB
5023 * ipa-inline.h (inline_summary): Add inlinable, versionable,
5024 disregard_inline_limits, estimated_stack_size, stack_frame_offset,
5025 time, size and estimated_growth parameters.
e7f23018
JH
5026 (estimate_edge_growth): Update.
5027 (initialize_inline_failed): Declare.
5028 * ipa-split.c: Include ipa-inline.h
5029 (execute_split_functions): Update.
5030 * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
5031 (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
5032 (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
5033 * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
5034 estimated_growth to INT_MIN.
5035 (inline_node_duplication_hook): Likewise.
5036 (dump_inline_summary): Dump new fields.
5037 (compute_inline_parameters): Update.
5038 (estimate_edge_time, estimate_time_after_inlining,
5039 estimate_size_after_inlining, estimate_growth, inline_read_summary,
5040 inline_write_summary):
5041 (initialize_inline_failed): Move here from cgraph.c.
5042 * tree-sra.c: Include ipa-inline.h.
5043 (ipa_sra_preliminary_function_checks): Update.
f60c2554
UB
5044 * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
5045 ipa-inline.h.
e7f23018 5046
e81b8564
UB
50472011-04-16 Uros Bizjak <ubizjak@gmail.com>
5048
5049 * config/i386/sse.md (V16): New mode iterator.
5050 (VI1, VI8): Ditto.
5051 (AVXMODEQI, AVXMODEDI): Remove.
5052 (sse2, sse3): New mode attribute.
5053 (mov<mode>): Use V16 mode iterator.
5054 (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
5055 (push<mode>1): Use V16 mode iterator.
5056 (movmisalign<mode>): Ditto.
5057 (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
5058 <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
5059 (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
5060 *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
5061 (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
5062 avx_movdqu<avxmodesuffix>.
5063 (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
5064 *avx_movdqu<avxmodesuffix>.
5065 (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
5066 avx_lddqu<avxmodesuffix>.
5067 (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
5068 (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
5069 avx_movnt<AVXMODEDI:mode>.
5070 * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
5071 renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
5072
4743d438
BS
50732011-04-16 Bernd Schmidt <bernds@codesourcery.com>
5074
5075 PR target/48629
5076 * haifa-sched.c (prune_ready_list, schedule_block): Use
5077 sched_pressure_p rather than flag_sched_pressure.
5078
748f7574 50792011-04-15 Pat Haugen <pthaugen@us.ibm.com>
eb229cf4
PH
5080
5081 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
5082 cgraph_get_node instead of cgraph_get_create_node.
5083
2ba172e0
JJ
50842011-04-15 Jakub Jelinek <jakub@redhat.com>
5085
5086 * cfgexpand.c (expand_debug_expr): Use
5087 simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
5088
63d2a353
MM
50892011-04-15 Michael Matz <matz@suse.de>
5090
5091 * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
5092 * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
5093 * function.c (gimplify_parameters): Ditto.
5094 * gimplify.c (gimplify_vla_decl): Ditto.
5095
5096 * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
5097 (gimple_call_set_alloca_for_var): New inline function.
5098 (gimple_call_alloca_for_var_p): Ditto.
e81b8564
UB
5099 * gimple.c (gimple_build_call_from_tree): Remember
5100 CALL_ALLOCA_FOR_VAR_P state.
63d2a353
MM
5101 * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
5102
5103 * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
5104 calls if they were for VLA objects.
5105
dee74c34
MJ
51062011-04-15 Martin Jambor <mjambor@suse.cz>
5107
5108 * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
5109 of ADR_EXPRs.
5110
8e5837bc
MJ
51112011-04-15 Martin Jambor <mjambor@suse.cz>
5112
5113 PR middle-end/48601
5114 * tree-emutls.c (lower_emutls_function_body): Call
5115 cgraph_get_create_node instead of cgraph_get_node. Do not assert the
5116 result is non-NULL.
5117
0dc33c3c
NP
51182011-04-15 Nicola Pero <nicola.pero@meta-innovation.com>
5119
5120 * c-decl.c (detect_field_duplicates): Call
5121 objc_detect_field_duplicates instead of objc_get_interface_ivars.
5122
edcdea5b
NF
51232011-04-15 Nathan Froyd <froydnj@codesourcery.com>
5124
5125 * gimple.h (gimple_asm_clobbers_memory_p): Declare.
5126 * gimple.c (gimple_asm_clobbers_memory_p): Define.
5127 * ipa-pure-const.c (check_stmt): Call it.
5128 * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
5129
8456558d
RG
51302011-04-15 Richard Guenther <rguenther@suse.de>
5131
5132 PR tree-optimization/48290
5133 * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
5134 Properly decide inhibiting propagation based on the valueized
5135 operand. Do loop-closed SSA form preserving here ...
5136 (init_copy_prop): ... not here.
5137
266446be
L
51382011-04-15 H.J. Lu <hongjiu.lu@intel.com>
5139
5140 PR target/48612
5141 * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
5142 (*ieee_smax<mode>3): Likewise.
5143
17465c6e
AK
51442011-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5145
5146 * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
5147 Replace match_operand with match_dup for the third operand in
5148 these expanders.
5149
bce204e5
MK
51502011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
5151
5152 * combine.c (subst, combine_simlify_rtx): Add new argument, use it
5153 to track processing of conditionals. Update all callers.
5154 (try_combine, simplify_if_then_else): Update.
5155
3162fdf4
MK
51562011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
5157
5158 * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
5159 -fsched-pressure.
5160
79002a57 51612011-04-15 Georg-Johann Lay <avr@gjlay.de>
e81b8564 5162
79002a57
GJL
5163 * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
5164 instead of match_operand for operand 3.
5165
4fd3a105
RS
51662011-04-15 Richard Sandiford <richard.sandiford@linaro.org>
5167
5168 * recog.h (insn_operand_data): Add an "allows_mem" field.
5169 * genoutput.c (output_operand_data): Initialize it.
5170 * optabs.c (maybe_legitimize_operand_same_code): New function.
5171 (maybe_legitimize_operand): Use it when matching the original
5172 op->value.
5173
ad19c4be
EB
51742011-04-15 Eric Botcazou <ebotcazou@adacore.com>
5175
5176 * gimplify.c: Fix issues in comments throughout.
5177 (voidify_wrapper_expr): Fix long line.
5178 (build_stack_save_restore): Likewise.
5179 (gimplify_loop_expr): Likewise.
5180 (gimplify_compound_lval): Likewise.
5181 (gimplify_init_ctor_eval): Likewise.
5182 (gimplify_modify_expr_rhs): Likewise.
5183 (omp_notice_threadprivate_variable): Likewise.
5184
b25aa0e8 51852011-04-15 Eric Botcazou <ebotcazou@adacore.com>
e7925582 5186
b25aa0e8
EB
5187 * cfgexpand.c (expand_call_stmt): Convert the function type to the
5188 original one if this is not a builtin function.
e7925582 5189
09db7afe
JJ
51902011-04-14 Jakub Jelinek <jakub@redhat.com>
5191
5192 PR target/48605
5193 * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
5194 offset it as needed based on top 2 bits in operands[3], change
5195 MEM mode to SFmode and mask those 2 bits away from operands[3].
5196
c59633d9
NP
51972011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
5198
5199 * c-parser.c (c_parser_objc_protocol_definition): Updated for
5200 change from objc_declare_protocols() to objc_declare_protocol().
5201
5e60198b
UB
52022011-04-14 Uros Bizjak <ubizjak@gmail.com>
5203
5204 * config/i386/sse.md (sse4_1): New mode attribute.
5205 (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
5206 avx_blend<ssemodesuffix><avxmodesuffix> and
5207 sse4_1_blend<ssemodesuffix> using VF mode iterator.
5208 (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
5209 avx_blendv<ssemodesuffix><avxmodesuffix> and
5210 sse4_1_blendv<ssemodesuffix> using VF mode iterator.
5211 (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
5212 avx_dp<ssemodesuffix><avxmodesuffix> and
5213 sse4_1_dp<ssemodesuffix> using VF mode iterator.
5214 (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
5215 (sse4_1_packusdw): Merge with *avx_packusdw.
5216 (sse4_1_pblendvb): Merge with *avx_pblendvb.
5217 (sse4_1_pblendw): Merge with *avx_pblendw.
5218 (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
5219 (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
5220 avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
5221 VF mode iterator.
5222 (sse4_1_round<ssescalarmodesuffix>): Merge with
5223 *avx_round<ssescalarmodesuffix>.
5224 (aesenc): Merge with *avx_aesenc.
5225 (aesenclast): Merge with *avx_aesenclast.
5226 (aesdec): Merge with *avx_aesdec.
5227 (aesdeclast): Merge with *avx_aesdeclast.
5228 (pclmulqdq): Merge with *pclmulqdq.
5229 * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
5230 New predicate.
5231 (nonimm_not_xmm0_operand_maybe_avx): Ditto.
5232
6f197850
L
52332011-04-14 H.J. Lu <hongjiu.lu@intel.com>
5234
5235 PR middle-end/48608
5236 * cfgexpand.c (get_decl_align_unit): Renamed to ...
5237 (align_local_variable): This. Update DECL_ALIGN.
5238 (add_stack_var): Updated.
5239 (expand_one_stack_var): Likewise.
5240
4a5ba3ed
RG
52412011-04-14 Richard Guenther <rguenther@suse.de>
5242
5243 * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
5244 Remove.
5245 (dse_initialize_block_local_data, dse_leave_block,
5246 record_voperand_set, get_stmt_uid): Likewise.
5247 (dse_possible_dead_store_p): Allow any kind of killing stmt.
5248 (dse_optimize_stmt): Remove voperand set handling code.
5249 Simplify and improve to handle any kind of killing stmt.
5250 (dse_record_phi): Remove.
5251 (dse_enter_block): Simplify.
5252 (tree_ssa_dse): Likewise.
5253 * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
5254
10a5dd5d
JH
52552011-04-14 Jan Hubicka <jh@suse.cz>
5256
5257 * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
5258 * cgraph.h (struct inline_summary): Move to ipa-inline.h
5259 (cgraph_local_info): Remove inline_summary.
5260 * ipa-cp.c: Include ipa-inline.h.
5261 (ipcp_cloning_candidate_p, ipcp_estimate_growth,
5262 ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
5263 accesor.
5264 * lto-cgraph.c (lto_output_node): Do not stream inline summary.
5265 (input_overwrite_node): Do not set inline summary.
5266 (input_node): Do not stream inline summary.
5267 * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
5268 (cgraph_decide_inlining_incrementally): Do not try to estimate overall
5269 growth; we do not have inline parameters computed for that anyway.
5270 (cgraph_early_inlining): After inlining compute call_stmt_sizes.
5271 * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
5272 (inline_summary_t): New type and VECtor.
5273 (debug_inline_summary, dump_inline_summaries): Declare.
5274 (inline_summary): Use VOCtor.
5275 (estimate_edge_growth): Kill hack computing call stmt size directly.
5276 * lto-section-in.c (lto_section_name): Add inline section.
5277 * ipa-inline-analysis.c: Include lto-streamer.h
5278 (node_removal_hook_holder, node_duplication_hook_holder): New holders
5279 (inline_node_removal_hook, inline_node_duplication_hook): New functions.
5280 (inline_summary_vec): Define.
5281 (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
5282 dump_inline_summaries): New functions.
5e60198b
UB
5283 (estimate_function_body_sizes): Properly compute size/time of outgoing
5284 calls.
5285 (compute_inline_parameters): Alloc inline_summary; do not compute
5286 size/time of incomming calls.
10a5dd5d
JH
5287 (estimate_edge_time): Avoid missing time summary hack.
5288 (inline_read_summary): Read inline summary info.
5289 (inline_write_summary): Write inline summary info.
5290 (inline_free_summary): Free all hooks and inline summary vector.
5291 * lto-streamer.h: Add LTO_section_inline_summary section.
5292 * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
5293 * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
5294
b602d918
RS
52952011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
5296
5297 * tree-vectorizer.h (vect_strided_store_supported): Add a
5298 HOST_WIDE_INT argument.
5299 (vect_strided_load_supported): Likewise.
5300 (vect_permute_store_chain): Return void.
5301 (vect_transform_strided_load): Likewise.
5302 (vect_permute_load_chain): Delete.
5303 * tree-vect-data-refs.c (vect_strided_store_supported): Take a
5304 count argument. Check that the count is a power of two.
5305 (vect_strided_load_supported): Likewise.
5306 (vect_permute_store_chain): Return void. Update after above changes.
5307 Assert that the access is supported.
5308 (vect_permute_load_chain): Likewise.
5309 (vect_transform_strided_load): Return void.
5310 * tree-vect-stmts.c (vectorizable_store): Update calls after
5311 above interface changes.
5312 (vectorizable_load): Likewise.
5313 (vect_analyze_stmt): Don't check for strided powers of two here.
5314
ab4472fa
RG
53152011-04-14 Richard Guenther <rguenther@suse.de>
5316
5317 PR tree-optimization/48590
5318 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
5319 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
5320 (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
5321 BUILT_IN_STACK_SAVE.
5322 * tree-ssa-dce.c (propagate_necessity): Handle
5323 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
5324
32dabdaf
NP
53252011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
5326
5327 * c-parser.c (c_parser_objc_class_declaration): Updated call to
5328 objc_declare_class.
5329
daade206
RG
53302011-04-14 Richard Guenther <rguenther@suse.de>
5331
5332 * tree.h (get_object_alignment_1): Declare.
5333 * builtins.c (get_object_alignment_1): Split out worker from ...
5334 (get_object_alignment): ... here.
5335 * fold-const.c (get_pointer_modulus_and_residue): Use
5336 get_object_alignment_1.
5337
920e8172
RS
53382011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
5339
5340 * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
5341 type parameter.
5342 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
5343 parameter. Generalise code to handle arrays as well as vectors.
5344 (vect_setup_realignment): Update accordingly.
5345 * tree-vect-stmts.c (vectorizable_store): Likewise.
5346 (vectorizable_load): Likewise.
5347
5ce1ee7f
RS
53482011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
5349
5350 * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
5351 within the per-copy loop.
5352
6438fe33 53532011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
0ea25ecd
RS
5354
5355 * tree-vect-stmts.c (vectorizable_load): Print the number of copies
5356 in the dump file.
5357
6438fe33 53582011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
77b10485
RS
5359
5360 * doc/options.texi (Negative): Explicitly mention that the
5361 Negative chain must be circular.
5362
61e46a7d
NF
53632011-04-14 Nathan Froyd <froydnj@codesourcery.com>
5364
5365 * function.h (block_chainon): Declare.
5366 * function.c (block_chainon): Define.
5367
43ea6502 53682011-04-14 Anatoly Sokolov <aesok@post.ru>
5e60198b 5369 Eric Weddington <eric.weddington@atmel.com>
748f7574 5370 Georg-Johann Lay <avr@gjlay.de>
5e60198b 5371
f60c2554 5372 * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
43ea6502
AS
5373 New Includes
5374 (avr_init_builtins, avr_expand_builtin,
5375 avr_expand_delay_cycles, avr_expand_unop_builtin,
5376 avr_expand_binop_builtin ): New functions.
5377 (avr_builtin_id): New enum
5378 (struct avr_builtin_description): New struct
5379 (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
5380 (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
5e60198b 5381
43ea6502 5382 * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
5e60198b 5383 UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
43ea6502
AS
5384 UNSPECV_DELAY_CYCLES): new enumeration values
5385 (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
5386 ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
5387 ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
5388 ("*rotlqi3_4"): rename insn to "rotlqi3_4"
5389 ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
5390 "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
5391 "fmulsu"): New insns
5e60198b 5392
43ea6502
AS
5393 * config/avr/avr-c.c: fix line endings
5394 (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
5395 __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
5396 __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
5397 __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
5398 __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
5e60198b 5399
43ea6502
AS
5400 * doc/extend.texi (AVR Built-in Functions): New node
5401 (Target Builtins): Add documentation of AVR
5402 built-in functions.
5403
8a9b55f3
GJL
54042011-04-14 Georg-Johann Lay <avr@gjlay.de>
5405
5406 PR target/44643
5407 * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
5408 alone. Error if non-const data has attribute progmem.
5409
94bd1825
NF
54102011-04-13 Nathan Froyd <froydnj@codesourcery.com>
5411
5412 * tree.h (struct tree_constructor): Include tree_typed instead of
5413 tree_common.
5414 * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
5415 TS_TYPED instead of TS_COMMON.
5416
5e60198b 54172011-04-13 Uros Bizjak <ubizjak@gmail.com>
81b1e7eb
UB
5418
5419 * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
5420 (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
5421 (sse2_psadbw): Merge with *avx_psadbw.
5422 (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
5423 (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
5424 (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
5425 (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
5426 (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
5427 (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
5428 (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
5429 (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
5430 (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
5431 (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
5432 (ssse3_palignrti): Merge with *avx_palignrti.
5433
4b1a4694
NF
54342011-04-13 Nathan Froyd <froydnj@codesourcery.com>
5435
5436 * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
5437 * tree-ssanames.c (fini_ssanames): VEC_free it.
5438 (make_ssa_name_fn): Update for VECness of free_ssanames.
5439 (release_ssa_name, release_dead_ssa_names): Likewise.
5440 * tree.h (struct tree_ssa_name): Include tree_typed instead of
5441 tree_common.
5442 * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
5443 TS_TYPED instead of TS_COMMON.
5444
4da3b811
NF
54452011-04-13 Nathan Froyd <froydnj@codesourcery.com>
5446
5447 * postreload-gcse.c (gcse_after_reload_main): Add calls to
5448 statistics_counter_event.
5449 * tree-ssa-copyrename.c (stats): Define.
5450 (rename_ssa_copies): Count coalesced SSA_NAMEs. Add call to
5451 statistics_counter_event.
5452 * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
5453 (bswap_stats, widen_mul_stats): Define.
5454 (insert_reciprocals): Increment rdivs_inserted.
5455 (execute_cse_reciprocals): Zeroize reciprocal_stats. Increment
5456 rfuncs_inserted. Add calls to statistics_counter_event.
5457 (execute_cse_sincos_1): Increment inserted.
5458 (execute_cse_sincos): Zeroize sincos_stats. Add call to
5459 statistics_counter_event.
5460 (execute_optimize_bswap): Zeroize bswap_stats. Increment fields
5461 of bswap_stats. Add calls to statistics_counter_event.
5462 (convert_mult_to_widen): Increment widen_mults_inserted.
5463 (convert_plusminus_to_widen): Increment maccs_inserted.
5464 (convert_mult_to_fma): Increment fmas_inserted.
5465 (execute_optimize_widening_mul): Zeroize widen_mul_stats. Add
5466 calls to statistics_counter_event.
5467
89fa552a
VM
54682011-04-13 Vladimir Makarov <vmakarov@redhat.com>
5469
5470 PR rtl-optimization/48455
5471 * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
5472 `temp_costs->mem_cost'.
5473
03dfc36d
JH
54742011-04-13 Jan Hubicka <jh@suse.cz>
5475
5476 * ipa-inline.h: New file.
5477 * ipa-inline-analysis.c: New file. Broken out of ...
5478 * ipa-inline.c: ... this file; update toplevel comment;
5479 include ipa-inline.h
5480 (inline_summary): Move to ipa-inline.h
5481 (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
5482 ipa-inline-analysis.c.
7d4f8d02
EB
5483 (cgraph_estimate_time_after_inlining): Rename to
5484 estiamte_time_after_inlining; move to ipa-inline-analysis.c
03dfc36d
JH
5485 (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
5486 to estimate_edge_growth.
5487 (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
5488 rename to estimate_size_after_inlining.
5489 (cgraph_mark_inline_edge): Update for new naming convention.
5490 (cgraph_check_inline_limits): Likewise.
5491 (cgraph_edge_badness): Likewise.
5492 (cgraph_decide_recursive_inlining): Likewise.
5493 (cgraph_decide_inlining_of_small_functions): Likewise.
5494 (cgraph_decide_inlining_incrementally): Likewise.
7d4f8d02
EB
5495 (cgraph_estimate_growth): Rename to estimate_growth; move to
5496 ipa-inline-analysis.c.
03dfc36d
JH
5497 (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
5498 (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
5499 (compute_inline_parameters): Likewise.
5500 (compute_inline_parameters_for_current): Likewise.
5501 (pass_inline_parameters): Likewise.
5502 (inline_indirect_intraprocedural_analysis): Likewise.
5503 (analyze_function): Rename to inline_analyze_function; likewise.
5504 (add_new_function): Move to ipa-inline-analysis.c.
5505 (inline_generate_summary): Likewise.
5506 (inline_read_summary): Likewise.
5507 (inline_write_summary): Likewise.
5508 * Makefile.in (ipa-inline-analysis.c): New file.
5509
7673c962
RO
55102011-04-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5511
5512 * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
5513 * configure: Regenerate.
5514
9698252f
NF
55152011-04-13 Nathan Froyd <froydnj@codesourcery.com>
5516
5517 * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
5518 instead of tree_common.
5519 (struct tree_fixed_cst, struct tree_string, struct tree_complex):
5520 Likewise.
5521 * tree.c (initialize_tree_contains_struct): Mark such nodes as being
5522 TS_TYPED rather than TS_COMMON.
5523 * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
5524
3a7bfdd5
GJL
55252011-04-01 Georg-Johann Lay <avr@gjlay.de>
5526
5527 PR target/45263
86d83530
GJL
5528 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
5529 r20 around calls of __tablejump_elpm__
3a7bfdd5 5530
20790697
JJ
55312011-04-13 Jakub Jelinek <jakub@redhat.com>
5532
5533 PR middle-end/48591
5534 * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
5535 NULL.
5536 (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
5537
094d7661
BS
55382011-04-13 Bernd Schmidt <bernds@codesourcery.com>
5539
5540 * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
5541 (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
5542 (cfi_vec): New typedef.
5543 (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
5544 dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
5545 (cie_cfi_vec): New static variable.
5546 (cie_cfi_head): Delete.
5547 (add_cfi): Accept a cfi_vec * as first argument. All callers and
5548 declaration changed. Use vector rather than list operations.
5549 (new_cfi): Don't initialize the dw_cfi_next field.
5550 (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
5551 rather than list operations.
5552 (lookup_cfa): Use vector rather than list operations.
5553 (output_cfis): New argument upto. Accept a cfi_vec rather than
5554 a dw_cfi_ref list head as argument. All callers changed.
5555 Iterate over the vector using upto as a maximum index.
5556 (output_all_cfis): New static function.
5557 (output_fde): Use vector rather than list operations. Use the
5558 new upto argument for output_cfis rather than manipulating a
5559 list.
5560 (dwarf2out_begin_prologue): Change initializations to match
5561 new struct members.
5562 (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
5563 from the vector length rather than searching for the end of a list.
5564 Use output_all_cfis.
5565 (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
5566
673a5740
NC
55672011-04-13 Nick Clifton <nickc@redhat.com>
5568
5569 * config/rx/rx.md (movmemsi): Do not use this pattern when
5570 volatile pointers are involved.
5571
1ee8b298
UB
55722011-04-13 Uros Bizjak <ubizjak@gmail.com>
5573
5574 * config/i386/sse.md (pinsrbits): Remove.
5575 (sse2_packsswb): Merge with *avx_packsswb.
5576 (sse2_packssdw): Merge with *avx_packssdw.
5577 (sse2_packuswb): Merge with *avx_packuswb.
5578 (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
5579 (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
5580 (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
5581 (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
5582 (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
5583 (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
5584 (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
5585 (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
5586 (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
5587 (*sse4_1_pinsrq): Merge with *avx_pinsrq.
5588 (sse2_loadld): Merge with *avx_loadld.
5589 (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
5590 (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
5591 (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
5592 (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
5593 (vec_concatv2di): Merge with *vec_concatv2di_avx.
5594
81f653d6
NF
55952011-04-12 Nathan Froyd <froydnj@codesourcery.com>
5596
5597 * c-decl.c (union lang_tree_node): Check for TS_COMMON before
5598 calling TREE_CHAIN.
5599 * print-tree.c (print_node): Likewise.
5600 * tree-inline.c (copy_tree_r): Likewise.
5601 * c-lang.c (LANG_HOOKS_INIT_TS): Define.
5602 * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
5603 instead of TS_COMMON.
5604 * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
5605 * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
5606 (copy_node_stat): Zero TREE_CHAIN only if necessary.
5607 (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
5608 (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
5609 ...and these...
5610 (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
5611 * tree.h: ...here.
5612 (TREE_CHAIN): Check for a TS_COMMON structure.
5613 (TREE_TYPE): Check for a TS_TYPED structure.
5614
748f7574 56152011-04-12 Pat Haugen <pthaugen@us.ibm.com>
ed940a4a
PH
5616
5617 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
5618 cgraph_get_create_node instead of cgraph_node.
5619
eb345401
NP
56202011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
5621
5622 * c-parser.c (c_parser_initelt): Updated call to
5623 objc_build_message_expr.
5624 (c_parser_postfix_expression): Likewise.
5625
a6c46762
KT
56262011-04-12 Kai Tietz <ktietz@redhat.com>
5627
5628 * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
5629 MASK_MS_BITFIELD_LAYOUT bit.
5630
b4ccfed9
JJ
56312011-04-12 Jakub Jelinek <jakub@redhat.com>
5632
5633 * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
5634 assert it is always true.
5635 (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
5636 moves.
5637
0d8a2528
NP
56382011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
5639
5640 * c-parser.c (c_lex_one_token): Rewritten conditional used when
5641 compiling Objective-C to be more efficient.
5642
06bd234a
AF
56432011-04-12 Axel Freyn <axel-freyn@gmx.de>
5644
5645 * opts-common.c (decode_cmdline_options_to_array): Remove variable
5646 argv_copied.
5647
28569ac3
RS
56482011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
5649
5650 * recog.h, genoutput.c, optabs.c: Revert last patch.
5651
ae59e00d
RR
56522011-04-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
5653
81b1e7eb
UB
5654 PR target/48090
5655 * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
ae59e00d 5656
cff1b7e0
RS
56572011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
5658
5659 * recog.h (insn_operand_data): Add an "allows_mem" field.
5660 * genoutput.c (output_operand_data): Initialize it.
5661 * optabs.c (maybe_legitimize_operand_same_code): New function.
5662 (maybe_legitimize_operand): Use it when matching the original
5663 op->value.
5664
77059241
RS
56652011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
5666
5667 * genpreds.c (process_define_predicate): Move most processing
5668 to gensupport.c. Continue to validate the expression.
5669 * genrecog.c (did_you_mean_codes, compute_predicate_codes)
5670 (process_define_predicate): Move processing to gensupport.c.
5671 (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
5672 * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
5673 (compute_predicate_codes): Moved from genrecog.c. Add lineno
5674 argument.
5675 (valid_predicate_name_p): New function, split out from old
5676 genpreds.c:process_define_predicate.
5677 (process_define_predicate): New function, combining code from
5678 old genpreds.c and genrecog.c functions.
5679 (process_rtx): Call it for DEFINE_PREDICATE and
5680 DEFINE_SPECIAL_PREDICATE.
5681
6308e208
RS
56822011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
5683
5684 * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
5685 size of a '%A' memory reference.
5686 (T_DREG, T_QREG): New neon_builtin_type_bits.
5687 (arm_init_neon_builtins): Assert that the load and store operands
5688 are neon_struct_operands.
5689 (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
5690 (NEON_ARG_MEMORY): New builtin_arg.
5691 (neon_dereference_pointer): New function.
5692 (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
5693 Handle NEON_ARG_MEMORY.
5694 (arm_expand_neon_builtin): Update after above interface changes.
5695 Use NEON_ARG_MEMORY for loads and stores.
5696 * config/arm/predicates.md (neon_struct_operand): New predicate.
5697 * config/arm/iterators.md (V_two_elem): Tweak formatting.
5698 (V_three_elem): Use BLKmode for accesses that have no associated mode.
5699 (V_four_elem): Tweak formatting.
5700 * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
5701 (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
5702 (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
5703 (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
5704 (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
5705 (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
5706 (neon_vst4<mode>): Replace pointer operand with a memory operand.
5707 Use %A in the output template.
5708 (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
5709 (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
5710 (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
5711 the width of the memory access. Remove post-increment.
5712 * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
5713
e5db8f2f
NC
57142011-04-12 Nick Clifton <nickc@redhat.com>
5715
5716 * config/v850/v850.c (expand_prologue): Do not use the CALLT
5717 instruction for interrupt handlers if the target is the basic V850
5718 architecture.
5719 (expand_epilogue): Likewise.
5720
74f091d6
JJ
57212011-04-12 Jakub Jelinek <jakub@redhat.com>
5722
5723 PR rtl-optimization/48549
5724 * combine.c (propagate_for_debug): Also stop after BB_END of
5725 this_basic_block. Process LAST and just stop processing after it.
5726 (combine_instructions): If last_combined_insn has been deleted,
5727 set last_combined_insn to its PREV_INSN.
5728
f20ca725
RG
57292011-04-12 Richard Guenther <rguenther@suse.de>
5730
5731 PR tree-optimization/46076
5732 * gimple.h (struct gimple_statement_call): Add fntype field.
5733 (gimple_call_fntype): Adjust.
5734 (gimple_call_set_fntype): New function.
5735 * gimple.c (gimple_build_call_1): Set the call function type.
5736 * gimplify.c (gimplify_call_expr): Preserve the function
5737 type the frontend used for the call.
5738 (gimplify_modify_expr): Likewise.
5739 * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
5740 function type.
5741 * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
5742 function type.
5743 * tree-ssa.c (useless_type_conversion_p): Function pointer
5744 conversions are useless.
5745
a358e188
MJ
57462011-04-12 Martin Jambor <mjambor@suse.cz>
5747
5748 * cgraph.h (cgraph_node): Remove function declaration.
5749 (cgraph_create_node): Declare.
5750 (cgraph_get_create_node): Likewise.
5751 * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
5752 Updated all callers.
5753 (cgraph_node): Renamed to cgraph_create_node, assert that a node for
5754 the decl does not already exist. Call cgraph_get_create_node instead
5755 of cgraph_node.
5756 (cgraph_get_create_node): New function.
5757 (cgraph_same_body_alias): Update comment.
5758 (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
5759 assert it does not return NULL.
5760 (cgraph_update_edges_for_call_stmt): Likewise.
5761 (cgraph_clone_edge): Likewise.
5762 (cgraph_create_virtual_clone): Likewise.
5763 (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
5764 instead of cgraph_node.
5765 (cgraph_add_new_function): Call cgraph_create_node or
5766 cgraph_get_create_node instead of cgraph_node.
5767 * cgraphbuild.c (record_reference): Call cgraph_get_create_node
5768 instead of cgraph_node.
5769 (record_eh_tables): Likewise.
5770 (mark_address): Likewise.
5771 (mark_load): Likewise.
5772 (build_cgraph_edges): Call cgraph_get_create_node instead
5773 of cgraph_node.
5774 (rebuild_cgraph_edges): Likewise.
5775 * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
5776 instead of cgraph_node.
5777 (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
5778 cgraph_node.
5779 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
5780 cgraph_create_node instead of cgraph_node.
5781 * c-decl.c (finish_function): Call cgraph_get_create_node instead
5782 of cgraph_node.
5783 * lto-cgraph.c (input_node): Likewise.
5784 * lto-streamer-in.c (input_function): Likewise.
5785 * varasm.c (mark_decl_referenced): Likewise.
5786 (assemble_alias): Likewise.
5787
fe660d7b
MJ
57882011-04-12 Martin Jambor <mjambor@suse.cz>
5789
5790 * tree-inline.c (tree_function_versioning): Call cgraph_get_node
5791 instead of cgraph_node and assert it does not return NULL.
5792 * lto-streamer-in.c (lto_read_body): Likewise.
5793 * omp-low.c (new_omp_context): Likewise.
5794 (create_task_copyfn): Likewise.
5795 * tree-emutls.c (lower_emutls_function_body): Likewise.
5796 * matrix-reorg.c (transform_allocation_sites): Likewise.
5797
bae5cddf
JJ
57982011-04-12 Jakub Jelinek <jakub@redhat.com>
5799
5800 PR c/48552
5801 * c-typeck.c (build_asm_expr): Error out on attempts to use
5802 void type outputs or inputs for constraints that allow reg or
5803 don't allow memory.
5804
06eb52ca
CLT
58052011-04-11 Chung-Lin Tang <cltang@codesourcery.com>
5806 Richard Earnshaw <rearnsha@arm.com>
5807
5808 PR target/48250
5809 * config/arm/arm.c (arm_legitimize_reload_address): Update cases
5810 to use sign-magnitude offsets. Reject unsupported unaligned
5811 cases. Add detailed description in comments.
5812 * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
5813 condition from TARGET_32BIT to TARGET_ARM.
5814
648a616b
NF
58152011-04-11 Nathan Froyd <froydnj@codesourcery.com>
5816
5817 * tree.h (struct typed_tree): New.
5818 (struct tree_common): Include it instead of tree_base.
5819 (TREE_TYPE): Update for new location of type field.
5820 (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
5821 (DECL_USER_ALIGN, DECL_PACKED): Likewise.
5822 (union tree_node): Add typed field.
5823 * treestruct.def (TS_TYPED): New.
5824 * lto-streamer.c (check_handled_ts_structures): Handle it.
5825 * tree.c (MARK_TS_TYPED): New macro.
5826 (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
5827
1e6d1da0
EB
58282011-04-11 Eric Botcazou <ebotcazou@adacore.com>
5829
5830 * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
5831 (force_nonfallthru): Do not alter the loop nest if no basic block
5832 was created.
5833
58342011-04-11 Uros Bizjak <ubizjak@gmail.com>
d8700b1c
UB
5835
5836 * config/i386/sse.md (VI): New mode iterator.
5837 (SSEMODEI): Remove.
5838 (AVX256MODEI): Ditto.
5839 (AVXMODEF4P): Ditto.
5840 (avxvecpsmode): Ditto.
5841 (one_cmpl<mode>2): Enable for TARGET_SSE. Use VI mode iterator.
5842 (sse2_andnot<mode>3): New expander.
5843 (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
5844 *avx_andnot<mode>3. Enable for TARGET_SSE. Use VI mode iterator.
5845 (<any_logic:code><mode>3): Use VI mode iterator.
5846 (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
5847 and *avx_<any_logic:code><mode>3. Use VI mode iterator.
5848 (*andnottf3): Handle AVX three-operand constraints.
5849 (*<any_logic:code>tf3): Handle AVX three-operand constraints.
5850
b1372d5d 58512011-04-11 Joseph Myers <joseph@codesourcery.com>
d8700b1c 5852 Robert Millan <rmh@gnu.org>
b1372d5d
JM
5853
5854 * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
5855 * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
5856 GNU_USER_DYNAMIC_LINKER64): Define.
5857 (REG_NAME): Don't undefine.
5858 (MD_UNWIND_SUPPORT): Undefine.
5859 * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
5860 (REG_NAME): Don't undefine.
5861 (MD_UNWIND_SUPPORT): Undefine.
d8700b1c 5862 * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
b1372d5d 5863
761c0c6e
JM
58642011-04-11 Joseph Myers <joseph@codesourcery.com>
5865
5866 * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
5867 (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
5868
26e0228f
XDL
58692011-04-11 Xinliang David Li <davidxl@google.com>
5870
5871 * value-profile.c (check_ic_target): New function.
5872 (gimple_ic_transform): Sanity check indirect call target.
5873 * gimple-low.c (gimple_check_call_args): Interface change.
5874 (gimple_check_call_matching_types): New function.
5875 * tree-inline.c (tree_can_inline_p): Call new function.
6075765d
BS
5876
58772011-04-11 Basile Starynkevitch <basile@starynkevitch.net>
5878
5879 * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
5880 tree-pretty-print.h & realmpfr.h.
5881
a58dfa49
VM
58822011-04-11 Vladimir Makarov <vmakarov@redhat.com>
5883
5884 PR middle-end/48464
5885 * ira.c (setup_pressure_classes): Fix typo in loop condition.
5886 (setup_allocno_and_important_classes): Ditto.
5887
107fd1c1
JM
58882011-04-11 Joseph Myers <joseph@codesourcery.com>
5889
5890 * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
5891 GNU_USER_DYNAMIC_LINKER.
5892 * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
5893 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5894 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
5895 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
5896 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
5897 GNU_USER_TARGET_OS_CPP_BUILTINS.
5898 * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
5899 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5900 * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
5901 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5902 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
5903 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
5904 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
5905 GNU_USER_TARGET_OS_CPP_BUILTINS.
5906 * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5907 GNU_USER_DYNAMIC_LINKER.
5908 * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
5909 GNU_USER_TARGET_OS_CPP_BUILTINS.
5910 * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
5911 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5912 * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
5913 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5914 * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
5915 * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
5916 GNU_USER_DYNAMIC_LINKER64): Remove.
5917 * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
5918 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5919 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5920 GNU_USER_DYNAMIC_LINKER.
5921 * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
5922 GNU_USER_TARGET_OS_CPP_BUILTINS.
5923 * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
5924 GNU_USER_TARGET_OS_CPP_BUILTINS.
5925 * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
5926 to GNU_USER_TARGET_OS_CPP_BUILTINS.
5927 * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
5928 GNU_USER_TARGET_OS_CPP_BUILTINS.
5929 (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
5930 (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
5931 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
5932 * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
5933 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5934 * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5935 GNU_USER_DYNAMIC_LINKER.
5936 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
5937 GNU_USER_TARGET_OS_CPP_BUILTINS.
5938 * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
5939 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5940 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5941 GNU_USER_DYNAMIC_LINKER.
5942 * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
5943 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5944 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
5945 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5946 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5947 GNU_USER_DYNAMIC_LINKER.
5948 * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
5949 GNU_USER_DYNAMIC_LINKERN32.
5950 (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
5951 GNU_USER_DYNAMIC_LINKERN32. Change LINUX_DYNAMIC_LINKER64 to
5952 GNU_USER_DYNAMIC_LINKER64. Change LINUX_DYNAMIC_LINKER32 to
5953 GNU_USER_DYNAMIC_LINKER32.
5954 * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
5955 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5956 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5957 GNU_USER_DYNAMIC_LINKER.
5958 * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
5959 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5960 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
5961 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
d8700b1c 5962 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
107fd1c1
JM
5963 * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
5964 GNU_USER_DYNAMIC_LINKER32.
5965 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
5966 * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
5967 GNU_USER_DYNAMIC_LINKER.
5968 * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
5969 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5970 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
5971 GNU_USER_DYNAMIC_LINKER32. Change LINUX_DYNAMIC_LINKER64 to
5972 GNU_USER_DYNAMIC_LINKER64.
5973 * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
5974 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5975 (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5976 GNU_USER_DYNAMIC_LINKER.
5977 * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
5978 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5979 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5980 GNU_USER_DYNAMIC_LINKER.
5981 * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
5982 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5983 (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
5984 GNU_USER_DYNAMIC_LINKER32.
5985 (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
5986 GNU_USER_DYNAMIC_LINKER64.
5987 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
5988 GNU_USER_DYNAMIC_LINKER64.
5989 * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
5990 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5991 * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
5992 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
d8700b1c 5993 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
107fd1c1 5994
e24609cf
JM
59952011-04-11 Joseph Myers <joseph@codesourcery.com>
5996
5997 * config/i386/gnu-user.h: Copy from linux.h. Update comments.
5998 (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
5999 (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
6000 GNU_USER_DYNAMIC_LINKER.
6001 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
6002 * config/i386/gnu-user64.h: Copy from linux64.h. Update comments.
6003 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
6004 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
6005 GNU_USER_DYNAMIC_LINKER64.
6006 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
6007 * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
6008 GNU_USER_LINK_EMULATION.
6009 * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
6010 DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
6011 ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
6012 MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
6013 PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
6014 CPP_SPEC, CC1_SPEC): Remove.
6015 (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
6016 (GNU_USER_DYNAMIC_LINKER): Define.
6017 (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
6018 ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
6019 ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
6020 LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
6021 TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
6022 STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
6023 TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
6024 * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
6025 CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
6026 TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
6027 LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
6028 LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
6029 (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
6030 (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
6031 TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
6032 TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
6033 * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
6034 GNU_USER_DYNAMIC_LINKER.
6035 * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
6036 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
6037 * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
6038 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
6039 * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
6040 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
6041 * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
6042 i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
6043 i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
d8700b1c 6044 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
e24609cf 6045
b8ce4e94
KT
60462011-04-11 Kai Tietz <ktietz@redhat.com>
6047
6048 PR target/9601
6049 PR target/11772
6050 * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
6051 * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
6052 comment.
6053 (ix86_is_msabi_thiscall): Removed.
6054 (ix86_is_type_thiscall): Likewise.
6055 (ix86_get_callcvt): New function.
6056 (ix86_comp_type_attributes): Simplify check.
6057 (ix86_function_regparm): Use ix86_get_callcvt for calling
6058 convention attribute checks.
6059 (ix86_return_pops_args): Likewise.
6060 (ix86_static_chain): Likewise.
6061 (x86_this_parameter): Likewise.
6062 (x86_output_mi_thunk): Likewise.
6063 (ix86_function_type_abi): Optimize check for types without attributes.
6064 * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
6065 IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
6066 IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
6067 by flag-values.
6068 (IX86_BASE_CALLCVT): Helper macro.
6069 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
6070 Use ix86_get_callcvt for calling convention attribute checks and avoid
6071 symbol-decoration for stdcall in TARGET_RTD case.
6072 * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
6073 Likewise.
6074 (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
6075 for declaration.
6076
798dd0ba
UB
60772011-04-11 Uros Bizjak <ubizjak@gmail.com>
6078
6079 * config/i386/sse.md (VI_128): New mode iterator.
6080 (VI12_128): Rename from SSEMODE12.
6081 (VI14_128): Rename from SSEMODE14.
6082 (VI124_128): New mode iterator.
6083 (VI24_128): Rename from SSEMODE248.
6084 (VI248_128): Rename from SSEMODE248.
6085 (SSEMODE124C8): Remove.
6086 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
6087 (*sse2_<plusminus_insn><mode>3): Merge with
6088 *avx_<plusminus_insn><mode>3.
6089 (*mulv8hi3): Merge with *avx_mulv8hi3.
6090 (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
6091 (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
6092 (*sse2_pmaddwd): Merge with *avx_pmaddwd.
6093 (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
6094 (ashr<mode>3): Merge with *avx_ashr<mode>3.
6095 (lshr<mode>3): Merge with *avx_lshr<mode>3.
6096 (ashl<mode>3): Merge with *avx_ashl<mode>3.
6097 (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
6098 (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
6099 (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
6100 (*<smaxmin:code>v8hi3): Ditto.
6101 (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
6102 (*<smaxmin:code>v16qi3): Ditto.
6103 (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
6104 (*sse2_eq<mode>3): Ditto.
6105 (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
6106 (*sse2_gt<mode>3): Ditto.
6107 (vcondv2di): Split out of vcond<mode>.
6108 (vconduv2di): Split out of vcondu<mode>.
6109
956011be
RG
61102011-04-11 Richard Guenther <rguenther@suse.de>
6111
6112 * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
6113 before calling tree_low_cst.
6114
e6313a78
RG
61152011-04-11 Richard Guenther <rguenther@suse.de>
6116
6117 * stor-layout.c (layout_type): Compute all array index size operations
6118 in the original type.
6119 (initialize_sizetypes): Add comment.
6120 (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
6121
e69d7376
JM
61222011-04-11 Joseph Myers <joseph@codesourcery.com>
6123
6124 * common.opt (Tbss=, Tdata=, Ttext=): New options.
6125
9f9ebcdf
MJ
61262011-04-11 Martin Jambor <mjambor@suse.cz>
6127
6128 * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
6129 of cgraph_node, handle NULL return value.
6130 (cgraph_global_info): Likewise.
6131 (cgraph_rtl_info): Likewise.
6132 * tree-inline.c (estimate_num_insns): Likewise.
6133 * gimplify.c (unshare_body): Likewise.
6134 (unvisit_body): Likewise.
6135 (gimplify_body): Likewise.
6136 * predict.c (optimize_function_for_size_p): Likewise.
6137 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
6138 (call_may_clobber_ref_p_1): Likewise.
6139 * varasm.c (function_section_1): Likewise.
6140 (assemble_start_function): Likewise.
6141
581985d7
MJ
61422011-04-11 Martin Jambor <mjambor@suse.cz>
6143
6144 * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
6145 of cgraph_node.
6146 * final.c (rest_of_clean_state): Likewise.
6147 * gimple-iterator.c (update_call_edge_frequencies): Likewise.
6148 * passes.c (pass_init_dump_file): Likewise.
6149 (execute_all_ipa_transforms): Likewise.
6150 (function_called_by_processed_nodes_p): Likewise.
6151 * predict.c (maybe_hot_frequency_p): Likewise.
6152 (probably_never_executed_bb_p): Likewise.
6153 (compute_function_frequency): Likewise.
6154 * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
6155 (unnest_nesting_tree_1): Likewise.
6156 (lower_nested_functions): Likewise.
6157 * tree-optimize.c (execute_fixup_cfg): Likewise.
6158 (tree_rest_of_compilation): Likewise.
6159 * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
6160 * tree-sra.c (ipa_early_sra): Likewise.
6161 * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
6162 * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
6163 * ipa.c (record_cdtor_fn): Likewise.
6164 * ipa-inline.c (cgraph_early_inlining): Likewise.
6165 (compute_inline_parameters_for_current): Likewise.
6166 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
6167 * ipa-pure-const.c (local_pure_const): Likewise.
6168 * ipa-split.c (split_function): Likewise.
6169 (execute_split_functions): Likewise.
6170 * cgraphbuild.c (build_cgraph_edges): Likewise.
6171 (rebuild_cgraph_edges): Likewise.
6172 (cgraph_rebuild_references): Likewise.
6173 (remove_cgraph_callee_edges): Likewise.
6174 * cgraphunit.c (cgraph_mark_if_needed): Likewise.
6175 (verify_cgraph_node): Likewise.
6176 (cgraph_analyze_functions): Likewise.
6177 (cgraph_preserve_function_body_p): Likewise.
6178 (save_inline_function_body): Likewise.
6179 (save_inline_function_body): Likewise.
6180 * tree-inline.c (copy_bb): Likewise.
6181 (optimize_inline_calls): Likewise.
6182
57dbdc5a
MJ
61832011-04-11 Martin Jambor <mjambor@suse.cz>
6184
6185 PR tree-optimization/48195
6186 * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
6187 ipa_check_create_edge_args.
6188 (ipcp_generate_summary): Do not call ipa_check_create_node_params and
6189 ipa_check_create_edge_args.
6190 * ipa-inline.c (inline_generate_summary): Do not call
6191 ipa_check_create_node_params and ipa_check_create_edge_args.
6192 * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
6193 ipa_check_create_edge_args.
6194
d108e679
AS
61952011-04-09 Anatoly Sokolov <aesok@post.ru>
6196
6197 * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
6198 instead of loop.
6199 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
6200 * function.c (record_hard_reg_sets): Likewise.
6201 * ira.c (compute_regs_asm_clobbered): Likewise.
6202 * sched-deps.c (sched_analyze_1): Likewise.
6203 * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
6204
3411bc59
XDL
62052011-04-09 Xinliang David Li <davidxl@google.com>
6206
6207 PR tree-optimization/PR48484
6208 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
6209 has_valid_pred lazily
6210
b365495a
DS
62112011-04-09 Duncan Sands <baldrick@free.fr>
6212
6213 * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
6214
68bc509a
EB
62152011-04-08 Eric Botcazou <ebotcazou@adacore.com>
6216
6217 * combine.c (combine_validate_cost): Adjust comments. Set registered
6218 cost of I0 to zero at the end, if any.
6219
041e059f
XDL
62202011-04-08 Xinliang David Li <davidxl@google.com>
6221
68bc509a
EB
6222 * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
6223 to insane profile data.
041e059f 6224
444b3995
XDL
62252011-04-08 Xinliang David Li <davidxl@google.com>
6226
6227 * ipa-cp.c (ipcp_update_profiling): Correct
6228 negative scale factor due to insane profile data.
6229
6a801cf2
XDL
62302011-04-08 Xinliang David Li <davidxl@google.com>
6231
6232 * final.c (dump_basic_block_info): New function.
6233 (final): Dump basic block.
6234 (final_scan_insn): Remove old dump.
6235
d5f3624e
SK
62362011-04-08 Steven G. Kargl <kargl@gcc.gnu.org>
6237
68bc509a
EB
6238 PR target/47829
6239 * config.gcc (i386-*-freebsd): Disable unwind table generation for
6240 crtbegin/crtend.
d5f3624e 6241
42821aff
MM
62422011-04-08 Michael Matz <matz@suse.de>
6243
6244 PR middle-end/48389
6245 * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
6246 functions.
6247 (rebuild_jump_labels): Call rebuild_jump_labels_1.
6248 * rtl.h (rebuild_jump_labels_chain): Declare.
6249 * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
6250 insns inserted on edges.
6251
ad7be009
JM
62522011-04-08 Joseph Myers <joseph@codesourcery.com>
6253
6254 * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
6255 * config/arm/arm-arches.def: New.
6256 * config/arm/arm-opts.h: New.
6257 * config/arm/genopt.sh: New.
6258 * config/arm/arm-tables.opt: New (generated).
6259 * config/arm/arm.c (arm_handle_option, arm_target_help,
6260 TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
6261 (all_architectures): Get most table contents from arm-arches.def.
6262 (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
6263 arm_selected_tune here.
6264 * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
6265 * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
6266 (march=, mcpu=, mtune=): Use Enum and Var.
6267 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
6268 (arm.o): Update dependencies.
ecbb6fb7 6269
42821aff 62702011-04-08 Basile Starynkevitch <basile@starynkevitch.net>
ecbb6fb7
BS
6271
6272 * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
6273 of header_file.
6274 (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
6275 (write_typed_alloc_defns): Likewise.
6276 (main): Calls write_typed_alloc_defns with output_header.
6277
8d189b3f
VM
62782011-04-08 Vladimir Makarov <vmakarov@redhat.com>
6279
68bc509a 6280 PR inline-asm/48435
8d189b3f
VM
6281 * ira-color.c (setup_profitable_hard_regs): Add comments.
6282 Don't take prohibited hard regs into account.
6283 (setup_conflict_profitable_regs): Rename to
6284 get_conflict_profitable_regs.
6285 (check_hard_reg_p): Check prohibited hard regs.
6286
44f370bf
NF
62872011-04-08 Nathan Froyd <froydnj@codesourcery.com>
6288
6289 * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
6290 * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
6291 * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
6292
483d7ad3
JDA
62932011-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6294
6295 PR target/48366
6296 * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
b8a17fa2 6297 move from floating point to shift amount register.
483d7ad3
JDA
6298 (emit_move_sequence): Remove secondary reload support for floating
6299 point to shift amount amount register copies.
6300 (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
6301 amount register copies.
6302 * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
6303 register, return false if mode isn't a scalar integer mode.
6304 * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
6305
97e03fa1
RG
63062011-04-08 Richard Guenther <rguenther@suse.de>
6307
6308 * gimple.c (gimple_call_flags): Remove kludge.
6309
9d40778b
AM
63102011-04-08 Alexander Monakov <amonakov@ispras.ru>
6311
6312 * sel-sched.c (sel_region_init): Move call to
6313 sel_setup_region_sched_flags after setup_current_loop_nest.
6314
19ac7892
AB
63152011-04-08 Andrey Belevantsev <abel@ispras.ru>
6316
6317 PR rtl-optimization/48272
19ac7892
AB
6318 * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
6319 init_insn_reg_pressure_info. Adjust a caller.
6320 * sched-int.h (init_insn_reg_pressure_info): Declare.
6321 * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
6322 when sched-pressure is enabled.
6323
0f8c63cc
RG
63242011-04-08 Richard Guenther <rguenther@suse.de>
6325
6326 * gimple.c (gimple_set_modified): Do not queue calls to
6327 MODIFIED_NORETURN_CALLS here ...
6328 * tree-ssa-operands.c (update_stmt_operands): ... but here.
6329
5e5a425e
RG
63302011-04-08 Richard Guenther <rguenther@suse.de>
6331
6332 PR lto/48467
6333 * toplev.c (lang_dependent_init): Do not open asm_out_file
6334 in WPA mode, nor perform debug machinery initialization.
6335 (finalize): Do not unlink asm_out_file in WPA mode.
6336
9bfc434b
RG
63372011-04-08 Richard Guenther <rguenther@suse.de>
6338
6339 * gimple.h (gimple_call_fntype): New function.
6340 (gimple_call_return_type): Use it.
6341 * expr.c (expand_expr_real_1): Use gimple_call_fntype.
6342 * gimple-low.c (gimple_check_call_args): Likewise.
6343 * gimple.c (gimple_call_flags): Likewise.
6344 (gimple_call_arg_flags): Likewise.
6345 (gimple_call_return_flags): Likewise.
6346 * tree-cfg.c (verify_gimple_call): Likewise.
6347 (do_warn_unused_result): Likewise.
6348 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
6349 * value-prof.c (gimple_ic_transform): Fix fndecl check.
6350
7c1f0b40
DM
63512011-04-08 Dmitry Melnik <dm@ispras.ru>
6352
6353 PR rtl-optimization/48235
6354 * sel-sched.c (code_motion_process_successors): Recompute the last
6355 insn in basic block if control flow changed.
6356 (code_motion_path_driver): Ditto. Recompute the first insn as well.
6357 Update condition for ilist_remove.
6358
ea4d630f
AM
63592011-04-08 Alexander Monakov <amonakov@ispras.ru>
6360
6361 PR rtl-optimization/48302
6362 * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
6363 * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument. Use
6364 it to record added preheader blocks.
6365 * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument. Pass it
6366 on to sel_add_loop_preheaders.
6367 (sel_region_init): Move call to setup_current_loop_nest after
6368 sel_init_bbs.
6369
07643d76
AM
63702011-04-08 Alexander Monakov <amonakov@ispras.ru>
6371
6372 PR target/48273
6373 * cfgloop.h (loop_has_exit_edges): New helper.
6374 * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
6375 non-clonable.
6376 * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
6377 that have no exit edges.
6378
1f3b2b4e
AM
63792011-04-08 Alexander Monakov <amonakov@ispras.ru>
6380
6381 PR rtl-optimization/48442
6382 * sel-sched.c (init_seqno): Remove number_of_insns argument. Update
6383 all callers. Adjust assert.
6384
554f1948
JJ
63852011-04-08 Jakub Jelinek <jakub@redhat.com>
6386
6387 PR tree-optimization/48377
6388 * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
6389 is_packed to true even for types with smaller TYPE_ALIGN than
6390 TYPE_SIZE.
6391
ddf72388
RG
63922011-04-08 Richard Guenther <rguenther@suse.de>
6393
6394 PR bootstrap/48513
6395 * doc/tm.texi: Re-generate.
6396
0c27e2d8
WG
63972011-04-08 Wei Guozhi <carrot@google.com>
6398
6399 PR target/47855
6400 * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
6401 * config/arm/arm.c (arm_attr_length_push_multi): New function.
6402 * config/arm/arm.md (*push_multi): Change the length computation to
6403 call a C function.
6404
07c5f94e
AS
64052011-04-08 Anatoly Sokolov <aesok@post.ru>
6406
6407 * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
6408 (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
6409 * doc/tm.texi: Regenerate.
6410 * system.h (ASM_OUTPUT_BSS): Poison.
6411 * varasm.c (asm_output_bss): Remove function.
6412 (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
798dd0ba 6413
07c5f94e
AS
6414 * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
6415 * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
6416 * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
6417 * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
6418 Likewise.
6419 * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
6420 Likewise.
6421 * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
6422 Likewise.
6423 * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
6424
5f2c36e1
JM
64252011-04-07 Joseph Myers <joseph@codesourcery.com>
6426
6427 * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
6428 EnumValue lines.
6429
39e7722b
JM
64302011-04-07 Joseph Myers <joseph@codesourcery.com>
6431
6432 * config/m68k/m68k.c (m68k_handle_option): Don't handle
6433 OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
6434 OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
6435 OPT_mcpu32.
6436 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
6437 handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
6438 -m68030, -m68040, -m68060, -mcpu32 and -m68332.
6439 * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
6440 m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
6441 * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
6442 (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
6443 (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
6444 options. Don't map other m68k options manually. Don't handle
6445 old-style options as canonical.
6446 (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
798dd0ba 6447 * doc/install.texi (m68k-*-*): Document binutils version requirement.
39e7722b 6448
cf103ca4
EB
64492011-04-07 Eric Botcazou <ebotcazou@adacore.com>
6450
6451 * basic-block.h (force_nonfallthru): Move to...
6452 * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
6453 (force_nonfallthru): ...here.
6454 * cfghooks.c (force_nonfallthru): New function.
6455 * cfgrtl.c (force_nonfallthru): Rename into...
6456 (rtl_force_nonfallthru): ...this.
6457 (commit_one_edge_insertion): Do not set AUX field.
6458 (commit_edge_insertions): Do not discover new basic blocks.
6459 (rtl_cfg_hooks): Add rtl_force_nonfallthru.
6460 (cfg_layout_rtl_cfg_hooks): Likewise.
6461 * function.c (thread_prologue_and_epilogue_insns): Remove bogus
6462 ATTRIBUTE_UNUSED. Discover new basic blocks in the prologue insns.
6463 * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
6464
14431f58
AS
64652011-04-07 Anatoly Sokolov <aesok@post.ru>
6466
6467 * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
6468 Remove macros.
6469
3729983c
UB
64702011-04-07 Uros Bizjak <ubizjak@gmail.com>
6471
6472 * config/i386/sse.md: Update copyright year.
6473 (avxcvtvecmode): Remove.
6474 (sse_movhlps): Merge with *avx_movhlps.
6475 (sse_movlhps): Merge with *avx_movlhps.
6476 (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
6477 (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
6478 (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
6479 (sse_loadhps): Merge with *avx_loadhps.
6480 (sse_storelps): Merge with *avx_storelps.
6481 (sse_loadlps): Merge with *avx_loadlps.
6482 (sse_movss): Merge with *avx_movss.
6483 (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
6484 (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
6485 (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
6486 (*vec_set<mode>_0_sse2): Split multi-unit alternative.
6487 (vec_set<mode>_0): Ditto.
6488 (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
6489 (sse4_1_insertps): Merge with *avx_insertps.
6490 (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
6491 (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
6492 (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
6493 (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
6494 (sse2_storehpd): Merge with *avx_storehpd.
6495 (sse2_loadhpd): Merge with *avx_loadhpd.
6496 (sse2_loadlpd): Merge with *avx_loadlpd.
6497 (sse2_movsd): Merge with *avx_movsd.
6498 (*vec_concatv2df): Merge with *vec_concatv2df.
6499
4e626909
JJ
65002011-04-07 Jakub Jelinek <jakub@redhat.com>
6501
6502 PR debug/48343
6503 * combine.c (combine_instructions): Add last_combined_insn,
3729983c 6504 update it if insn is after it, pass it to all try_combine calls.
4e626909
JJ
6505 (try_combine): Add last_combined_insn parameter, pass it instead of
6506 i3 to propagate_for_debug.
6507
3729983c 65082011-04-07 Nick Clifton <nickc@redhat.com>
5a10b0a9
NC
6509
6510 * config/mn10300/mn10300.md (movqi_internal): Add alternatives
6511 to handle MDR <-> data register transfers.
6512 (movhi_internal): Likewise.
6513
20c03367
AM
65142011-04-07 Alan Modra <amodra@gmail.com>
6515
6516 * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
6517 previous stack info.
6518
bf22920b
TV
65192011-04-07 Tom de Vries <tom@codesourcery.com>
6520
6521 PR target/43920
6522 * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter. Pass dir to
6523 flow_find_cross_jump. Swap variables to implement backward replacement.
6524 (try_crossjump_bb): Add argument to try_crossjump_to_edge.
6525
823918ae
TV
65262011-04-07 Tom de Vries <tom@codesourcery.com>
6527
6528 PR target/43920
6529 * cfgcleanup.c (walk_to_nondebug_insn): New function.
3729983c
UB
6530 (flow_find_cross_jump): Use walk_to_nondebug_insn. Recalculate bb1
6531 and bb2.
6532 (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
6533 src1 or src2. Redirect edges to the last basic block. Update
6534 frequency and count on multiple basic blocks in case of fallthru.
823918ae 6535
472c95f5
TV
65362011-04-07 Tom de Vries <tom@codesourcery.com>
6537
6538 PR target/43920
6539 * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
6540 function.
3729983c
UB
6541 (old_insns_match_p): Change return type. Replace return false/true
6542 with return dir_none/dir_both. Use can_replace_by.
6543 (flow_find_cross_jump): Add dir_p parameter. Init replacement
6544 direction from dir_p. Register replacement direction in dir, last_dir
6545 and afterlast_dir. Handle new return type of old_insns_match_p using
472c95f5
TV
6546 merge_dir. Return replacement direction in dir_p.
6547 (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
6548 return type of old_insns_match_p.
6549 (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
6550 * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
6551 flow_find_cross_jump.
6552 * basic-block.h (enum replace_direction): New type.
6553 (flow_find_cross_jump): Add parameter to declaration.
6554
a95d4000
UB
65552011-04-06 Uros Bizjak <ubizjak@gmail.com>
6556
6557 * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
6558 (AVXMODEDCVTPS2DQ): Ditto.
6559 (VEC_FLOAT_MODE): Ditto.
6560 (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3. Use VF mode
6561 iterator. Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
6562 (<any_logic:code><mode>3): Use VF mode iterator.
6563 (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
6564 Use VF mode iterator.
6565 (copysign<mode>3): Use VF mode iterator.
6566 (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3. Handle
6567 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
6568 (*<any_logic:code><MODEF:mode>3): Merge with
6569 *avx_<any_logic:code><MODEF:mode>3.
6570 (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
6571 (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
6572 (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
6573 (avx_cvtdq2ps<avxmodesuffix>): Remove.
6574 (sse2_cvtdq2ps): Use %v modifier.
6575 (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
6576 (avx_cvtps2dq<avxmodesuffix>): Remove.
6577 (sse2_cvtps2dq): Use %v modifier.
6578 (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
6579 (avx_cvttps2dq<avxmodesuffix>): Remove.
6580 (sse2_cvttps2dq): Use %v modifier.
6581 (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
6582 (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
6583 (sse2_cvtsd2siq): Fix insn template.
6584 (sse2_cvtsd2siq_2): Ditto.
6585 (sse2_cvttsd2siq): Ditto.
6586 (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
6587 (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
6588
ad01c437
JM
65892011-04-06 Joseph Myers <joseph@codesourcery.com>
6590
6591 * gcov-io.c: Use GCC Runtime Library Exception.
6592
fe846284
JJ
65932011-04-06 Jakub Jelinek <jakub@redhat.com>
6594
6595 PR debug/48466
6596 * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
6597 as base_reg whatever register reg has been eliminated to, instead
6598 of hardcoding STACK_POINTER_REGNUM.
6599
acce4e77
JM
66002011-04-06 Joseph Myers <joseph@codesourcery.com>
6601
6602 * doc/tm.texi.in: Document C target hooks as separate from general
6603 target hooks.
6604 * doc/tm.texi: Regenerate.
6605 * genhooks.c (struct hook_desc): Add docname field.
6606 (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC). Initialize
6607 docname field.
6608 (hook_array): Include c-target.def.
6609 (emit_documentation): Use docname field in output.
6610 (emit_init_macros): Take docname argument. Only emit definitions
6611 for hooks matching docname.
6612 (main): Expect additional arguments in all cases. Pass argument
6613 to emit_init_macros.
6614 * target.def: Move initial macro definitions and comments to
6615 target-hooks-macros.h.
6616 (gcc_targetcm): Move to c-family/c-target.def.
6617 * target.h (targetcm): Move declaration to c-family/c-target.h.
6618 * targhooks.c (default_handle_c_option): Move to
6619 c-family/c-opts.c.
6620 * targhooks.h (default_handle_c_option): Move declaration to
6621 c-family/c-common.h.
6622 * target-hooks-macros.h: New file.
6623 * config.gcc (target_has_targetcm): Define and use to add to
6624 c_target_objs and cxx_target_objs.
6625 * config/default-c.c: New file.
6626 * config/darwin-c.c: Include c-target.h and c-target-def.h instead
6627 of target.h and target-def.h.
6628 (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
6629 (darwin_objc_construct_string, darwin_cfstring_ref_p,
6630 darwin_check_cfstring_format_arg): Make static.
6631 (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
6632 TARGET_STRING_OBJECT_REF_TYPE_P,
6633 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
6634 * config/darwin-protos.h (darwin_objc_construct_string,
6635 darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
6636 declare.
6637 * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
6638 TARGET_STRING_OBJECT_REF_TYPE_P,
a95d4000 6639 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
acce4e77
JM
6640 * config/t-darwin (darwin-c.o): Update dependencies.
6641 * system.h (TARGET_HAS_TARGETCM): Poison.
6642 * Makefile.in (TARGET_H): Update.
6643 (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
6644 (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
6645 (default-c.o): New target.
6646 (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
a95d4000 6647 (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
acce4e77
JM
6648 (s-tm-texi): Pass -d option to genhooks. Also test timestamp on
6649 c-target.def.
6650 (build/genhooks.o): Update dependencies.
6651
275b4baa 66522011-04-06 Richard Guenther <rguenther@suse.de>
a95d4000 6653
275b4baa
RG
6654 * ipa-inline.c (enum inlining_mode): Remove.
6655 (cgraph_flatten): Use some other token.
6656 (cgraph_edge_early_inlinable_p): New function, split out from ...
6657 (cgraph_perform_always_inlining): New function, split out from ...
6658 (cgraph_decide_inlining_incrementally): ... here.
6659 (cgraph_mark_inline_edge): Adjust.
6660 (cgraph_early_inlining): Re-structure.
6661 (pass_early_inline): Require SSA form.
6662
f15b8bdf 66632011-04-06 Andrew Stubbs <ams@codesourcery.com>
9adc580c
AS
6664 Julian Brown <julian@codesourcery.com>
6665 Mark Shinwell <shinwell@codesourcery.com>
6666
6667 * config/arm/arm.h (arm_class_likely_spilled_p): Check against
6668 LO_REGS only for Thumb-1.
6669 (MODE_BASE_REG_CLASS): Restrict base registers to those which can
6670 be used in short instructions when optimising for size on Thumb-2.
6671
516426da
EB
66722011-04-06 Eric Botcazou <ebotcazou@adacore.com>
6673
6674 * gimple-low.c (lower_gimple_return): When not optimizing, force labels
6675 associated with user returns to be preserved.
6676
96621ebf
TG
66772011-04-06 Tristan Gingold <gingold@adacore.com>
6678
f15b8bdf
EB
6679 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
6680 symbol_queue_size, DBXOUT_DECR_NESTING,
96621ebf
TG
6681 (DBXOUT_DECR_NESTING_AND_RETURN): Also define
6682 if XCOFF_DEBUGGING_INFO.
6683
07c0852e
UB
66842011-04-06 Uros Bizjak <ubizjak@gmail.com>
6685
6686 * config/i386/i386.md (attribute isa): New.
6687 (attribute enabled): New.
6688 (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
6689 (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
6690 (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
6691 (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
6692 (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
6693 (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
6694 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
6695 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
6696
6697 * config/i386/sse.md (VF): New mode iterator.
6698 (VF1): Ditto.
6699 (VF2): Ditto.
6700 (VF_128): Ditto.
6701 (SSEMODEF4): Remove.
6702 (attribute sse): Handle V8SF and V4DF modes.
6703 (<absneg:code><mode>2): Use VF mode iterator.
6704 (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2. Use VF
6705 mode iterator.
6706 (<plusminus_insn><mode>3): Use VF mode iterator.
6707 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
6708 Use VF mode iterator.
6709 (<sse>_vm<plusminus_insn><mode>3): Merge with
6710 *avx_vm<plusminus_insn><mode>3. Use VF_128 mode iterator.
6711 (mul<mode>3): Use VF mode iterator.
6712 (*mul<mode>3): Merge with *avx_mul<mode>3. Use VF mode iterator.
6713 (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3. Use VF_128
6714 mode iterator.
6715 (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
6716 (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
6717 (<sse>_div<mode>3): Merge with *avx_div<mode>3. Use VF mode iterator.
6718 (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3. Use VF_128
6719 mode iterator.
6720 (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
6721 Use VF1 mode iterator.
6722 (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
6723 (sqrt<VF2:mode>2): New expander.
6724 (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
6725 (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
6726 and sqrtv2df2. Use VF mode iterator.
6727 (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2. Use VF_128
6728 mode iterator.
6729 (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
6730 (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
6731 Use VF1 mode iterator.
6732 (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
6733 (<smaxmin:code><mode>3): Use VF mode iterator.
6734 (*<smaxmin:code><mode>3_finite): Merge with
6735 *avx_<smaxmin:code><mode>3_finite. Use VF mode iterator.
6736 (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
6737 (<sse>_vm<smaxmin:code><mode>2): Merge with
6738 *avx_vm<smaxmin:code><mode>2. Use VF_128 mode iterator.
6739 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3. Use VF
6740 mode iterator.
6741 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3. Use VF
6742 mode iterator.
6743 (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
6744 (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
6745 (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
6746 (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
6747 (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3. Use
6748 VF mode iterator.
6749 (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
6750 Use VF_128 mode iterator.
6751 (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3. Use VF
6752 mode iterator.
6753 (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3. Use
6754 VF_128 mode iterator.
6755 (vcond<mode>): Use VF mode iterator.
6756 * config/i386/predicates.md (sse_comparison_operator): Merge with
6757 avx_comparison_float_operator. Do not declare as special_predicate.
6758 * config/i386/i386.c (struct builtin_description): Update for renamed
6759 compare patterns.
6760 (ix86_expand_args_builtin): Ditto.
6761 (ix86_expand_sse_compare_mask): Ditto.
6762
ff5d142c
RG
67632011-04-06 Richard Guenther <rguenther@suse.de>
6764
6765 * tree-inline.c (estimate_num_insns): For calls simply account
6766 for all passed arguments and a used return value.
6767
d7d1d041 67682011-04-06 Richard Guenther <rguenther@suse.de>
07c0852e 6769
d7d1d041
RG
6770 PR tree-optimization/47663
6771 * cgraph.h (struct cgraph_edge): Add call_stmt_size and
6772 call_stmt_time fields.
6773 (cgraph_edge_inlinable_p): Declare.
6774 (cgraph_edge_recursive_p): New inline function.
6775 * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
6776 (cgraph_clone_edge): Copy it.
6777 * ipa-inline.c (cgraph_estimate_edge_time): New function.
6778 Account for call stmt time.
6779 (cgraph_estimate_time_after_inlining): Take edge argument.
6780 (cgraph_estimate_edge_growth): Account call stmt size.
6781 (cgraph_estimate_size_after_inlining): Take edge argument.
6782 (cgraph_mark_inline_edge): Adjust.
6783 (cgraph_check_inline_limits): Likewise.
6784 (cgraph_recursive_inlining_p): Remove.
6785 (cgraph_edge_badness): Use cgraph_edge_recursive_p.
6786 (cgraph_decide_recursive_inlining): Take edge argument and
6787 adjust.
6788 (cgraph_decide_inlining_of_small_functions): Do not avoid
6789 diags for recursive inlining here.
6790 (cgraph_flatten): Adjust.
6791 (cgraph_decide_inlining_incrementally): Likewise.
6792 (estimate_function_body_sizes): Remove call cost handling.
6793 (compute_inline_parameters): Initialize caller edge call costs.
6794 (cgraph_estimate_edge_growth): New function.
6795 (cgraph_estimate_growth): Use it.
6796 (cgraph_edge_badness): Likewise.
6797 (cgraph_check_inline_limits): Take an edge argument.
6798 (cgraph_decide_inlining_of_small_functions): Adjust.
6799 (cgraph_decide_inlining): Likewise.
6800 * tree-inline.c (estimate_num_insns): Only account for call
6801 return value if it is used.
6802 (expand_call_inline): Avoid diagnostics on recursive inline
6803 functions here.
6804 * lto-cgraph.c (lto_output_edge): Output edge call costs.
6805 (input_edge): Input edge call costs.
6806
2feb95f7
RO
68072011-04-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6808
6809 * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
6810
26fbd9c2
JW
68112011-04-06 Jonathan Wakely <jwakely.gcc@gmail.com>
6812
6813 * doc/invoke.texi (Spec Files): Fix typo.
6814
694dc0ca
EB
68152011-04-06 Eric Botcazou <ebotcazou@adacore.com>
6816
6817 * profile.c (branch_prob): Move declaration of local variable. Remove
6818 obsolete ??? comment. Expand the location explicitly instead of using
6819 the LOCATION_FILE and LOCATION_LINE macros.
6820
4925d0d5
WG
68212011-04-06 Wei Guozhi <carrot@google.com>
6822
6823 PR target/47855
6824 * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
6825 (arm_cond_branch): Likewise.
6826 (arm_cond_branch_reversed): Likewise.
6827 (arm_jump): Likewise.
6828 (push_multi): Likewise.
6829 * config/arm/constraints.md (Py): New constraint.
6830
f55dfa2f
NF
68312011-04-05 Nathan Froyd <froydnj@codesourcery.com>
6832
6833 PR bootstrap/48471
6834 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
6835 Move these...
6836 (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
6837 (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
6838 #ifdef DBX_DEBUGGING_INFO.
6839
fca96842
BS
68402011-04-05 Bernd Schmidt <bernds@codesourcery.com>
6841
6842 PR bootstrap/48403
6843 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
6844 if old and new states differ.
6845
30b83e38
JM
68462011-04-05 Joseph Myers <joseph@codesourcery.com>
6847
6848 * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
6849 OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
6850 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
6851 handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
6852 * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
6853 mcfv4e): Use Alias.
6854 * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
6855 ColdFire options to -mcpu= options.
6856
277a9aa5
JL
68572011-04-05 Jeff Law <law@redhat.com>
6858
6859 * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
6860 check if BB is a successor of LOOP->header and return
6861 NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
6862
c1e2610e
SB
68632011-04-05 Steven Bosscher <steven@gcc.gnu.org>
6864
6865 * cprop.c (struct reg_use): Remove.
6866 (reg_use_table): Make an array of RTX.
6867 (find_used_regs, constprop_register, local_cprop_pass,
6868 bypass_block): Simplify users of reg_use_table.
6869 (cprop_insn): Likewise. Iterate if copy propagation succeeded
6870 on one of the uses found by find_used_regs.
6871
e532f586
NF
68722011-04-05 Nathan Froyd <froydnj@codesourcery.com>
6873
6874 PR bootstrap/48469
6875 * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
6876 declaration.
6877
3fb7c055
NF
68782011-04-05 Nathan Froyd <froydnj@codesourcery.com>
6879
6880 * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
6881 as an rtx.
6882 (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
6883
b71b43d9
SB
68842011-04-05 Steven Bosscher <steven@gcc.gnu.org>
6885
6886 PR middle-end/48441
6887 * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
6888
b405b274
NF
68892011-04-05 Nathan Froyd <froydnj@codesourcery.com>
6890
6891 * combine.c: Include obstack.h.
6892 (struct insn_link): Define.
6893 (uid_log_links): Adjust type.
6894 (FOR_EACH_LOG_LINK): New macro.
6895 (insn_link_obstack): Declare.
6896 (alloc_insn_link): Define.
6897 (create_log_links): Call it. Use FOR_EACH_LOG_LINK and adjust
6898 type of link variables.
6899 (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
6900 (try_combine, record_promoted_values, distribute_notes): Likewise.
6901 (distribute_links): Likewise. Tweak prototype.
6902 (clear_log_links): Delete.
6903 (adjust_for_new_dest): Call alloc_insn_link.
6904 * Makefile.in (combine.o): Depend on $(OBSTACK_H).
6905
6409abe3
NF
69062011-04-05 Nathan Froyd <froydnj@codesourcery.com>
6907
6908 * gcse.c (modify_mem_list): Convert to an array of VECs.
6909 (canon_modify_mem_list, compute_transp): Tweak formatting.
6910 (alloc_gcse_mem): Likewise. Adjust for modify_mem_list change.
6911 (load_killed_in_block_p): Likewise.
6912 (record_last_mem_set_info): Likewise.
6913 (clear_modify_mem_tables): Likewise.
6914
170d8157
TV
69152011-04-05 Tom de Vries <tom@codesourcery.com>
6916
6917 PR middle-end/48461
6918 * function.c (emit_use_return_register_into_block): Only define if
6919 HAVE_return.
6920
c5911a55
EB
69212011-04-05 Eric Botcazou <ebotcazou@adacore.com>
6922
6923 * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
6924
abd016e6
JM
69252011-04-05 Joseph Myers <joseph@codesourcery.com>
6926
6927 * config/rx/rx-opts.h: New.
6928 * config/rx/rx.c (rx_cpu_type): Remove.
6929 (rx_handle_option): Don't assert that global structures are in
6930 use. Access variables via opts pointer. Defer most handling of
6931 OPT_mint_register_. Use error_at.
6932 (rx_option_override): Handle deferred OPT_mint_register_ here.
6933 * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
6934 * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
6935 (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
6936 (rx_cpu_types): New Enum and EnumValue entries.
6937 (mint-register=): Use Defer and use Var accordingly.
6938
1ed13f83
NF
69392011-04-05 Nathan Froyd <froydnj@codesourcery.com>
6940
6941 * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
6942 (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
6943 * final.c (debug_flush_symbol_queue, debug_queue_symbol):
6944 Move these...
6945 (debug_free_queue, debug_nesting, symbol_queue_index):
6946 ...and these...
6947 * dbxout.c: ...to here. Make static.
6948
6ce1edcf
NF
69492011-04-05 Nathan Froyd <froydnj@codesourcery.com>
6950
6951 * gcse.c (modify_pair): Define. Define a VEC of it.
6952 (canon_modify_mem_list): Convert to an array of VECs.
6953 (free_insn_expr_list_list): Delete.
6954 (clear_modify_mem_tables): Call VEC_free instead.
6955 (record_last_mem_set_info): Don't modify canon_modify_mem_list.
6956 (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
6957 (canon_list_insert, compute_transp): Likewise.
6958
c201ac94
TV
69592011-04-05 Tom de Vries <tom@codesourcery.com>
6960
6961 PR target/43920
6962 * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
6963 for size.
6964
4c029f40
TV
69652011-04-05 Tom de Vries <tom@codesourcery.com>
6966
6967 PR target/43920
6968 * function.c (emit_use_return_register_into_block): New function.
6969 (thread_prologue_and_epilogue_insns): Use
6970 emit_use_return_register_into_block.
6971
2a562b0a
TV
69722011-04-05 Tom de Vries <tom@codesourcery.com>
6973
6974 PR target/43920
6975 * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
6976 insn.
6977
0248bceb
TV
69782011-04-05 Tom de Vries <tom@codesourcery.com>
6979
6980 * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
6981
ffa94123
YZ
69822011-04-05 Yufeng Zhang <yufeng.zhang@arm.com>
6983
798dd0ba
UB
6984 * config/arm/arm.md (define_constants for unspec): Replace with
6985 define_c_enum.
6986 (define_constants for unspecv): Replace with define_c_enum.
6987 * config/arm/neon.md (define_constants for unspec): Replace with
6988 define_c_enum.
ffa94123 6989
3b8f9b46
RH
69902011-04-04 Richard Henderson <rth@redhat.com>
6991
720cf80f 6992 PR bootstrap/48400
3b8f9b46
RH
6993 * dwarf2out.c (output_line_info): Always emit line info from
6994 at least one section.
6995 (dwarf2out_init): Create text_section_line_info here ...
6996 (set_cur_line_info_table): ... not here.
6997
720cf80f 69982011-04-04 Vladimir Makarov <vmakarov@redhat.com>
e5b0e1ca
VM
6999
7000 PR target/48380
7001 * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
720cf80f 7002 not called.
e5b0e1ca 7003
720cf80f 7004 * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
e5b0e1ca 7005
196565d4
SB
70062011-04-04 Steven Bosscher <steven@gcc.gnu.org>
7007
b77f9eab
SB
7008 * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
7009 (expr_equiv_p): Remove.
7010 (insert_set_in_table): Look at <dest, src> pair instead of expr.
7011 (hash_scan_set): Update call to insert_set_in_table.
7012 (dump_hash_table): Dump <dest, src> pair.
7013 (lookup_set): Simplify. Lookup <dest, src> pair.
7014 (compute_transp): Remove, fold heavily simplified code into...
7015 (compute_local_properties): ...here. Expect COMP and TRANSP
7016 unconditionally.
7017 (find_avail_set): Take set directly from struct expr.
7018 (find_bypass-set): Likewise.
7019 (bypass_block): Likewise.
7020 (cprop_insn): Likewise. Remove redundant INSN_P test.
7021
384d7a55
SB
7022 * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
7023 checks on form of COND from find_implicit_sets to here.
7024 (find_implicit_sets): Cleanup control flow. Split critical edges
7025 if it exposes implicit sets. Allocate/resize implicit_sets as
7026 necessary.
7027 (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
7028 changed something. Run df_analyze after find_implicit_sets if any
7029 edges were split. Do not allocate implicit_sets here.
7030
3084ce69
SB
7031 * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
7032 (gcse_obstack): Renamed to cprop_obstack.
7033 (GNEW, GNEWVEC, GNEWVAR): Remove.
7034 (gmalloc): Remove.
7035 (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
7036 (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
7037 (gcse_alloc): Likewise, and rename to cprop_alloc.
7038 (alloc_gcse_men, free_gcse_mem): Remove.
7039 (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
7040 (compute_hash_table_work): Allocate and free reg_set_bitmap here.
7041 (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
7042
196565d4
SB
7043 * cprop.c (oprs_not_set_p): Remove.
7044 (mark_set, mark_clobber): Remove.
7045 (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
7046 (reg_not_set_p): New function.
7047 (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
7048 (cprop_insn): Likewise.
7049 (cprop_jump): Use FOR_EACH_EDGE.
7050
9b69cf83
BS
70512011-04-04 Bernd Schmidt <bernds@codesourcery.com>
7052
7053 PR bootstrap/48403
7054 * haifa-sched.c (nonscheduled_insns_begin): New static variable.
7055 (rank_for_schedule): Use scheduled_insns vector instead of
7056 last_scheduled_insn.
7057 (ok_for_early_queue_removal): Likewise.
7058 (queue_to_ready): Search forward in nonscheduled_insns_begin if
7059 we have a dbg_cnt.
7060 (choose_ready): Likewise.
7061 (commit_schedule): Use VEC_iterate.
7062 (schedule_block): Initialize nonscheduled_insns_begin. If we have
7063 a dbg_cnt, use it and ensure the first insn is in the ready list.
7064 (haifa_sched_init): Allocate scheduled_insns.
7065 (sched_extend_ready_list): Don't allocate it; reserve space.
7066 (haifa_sched_finish): Free it.
7067
24f48c2f
JM
70682011-04-04 Joseph Myers <joseph@codesourcery.com>
7069
7070 * optc-gen.awk: Always remove type from Variable entry before
7071 recording in var_seen.
7072
8effe856
EB
70732011-04-04 Eric Botcazou <ebotcazou@adacore.com>
7074
7075 * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
7076 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
7077 call to tidy_fallthru_edges.
7078
413519ae
JM
70792011-04-04 Joseph Myers <joseph@codesourcery.com>
7080
7081 * doc/options.texi (ToLower): Document.
3729983c 7082 * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
413519ae
JM
7083 * opts-common.c (decode_cmdline_option): Handle cl_tolower.
7084 * opts.h (cl_option): Add cl_tolower field.
7085 * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
7086 arguments with lowercase strings.
7087 * config/rx/rx.opt (mcpu=): Add ToLower.
7088 * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
7089 argument.
7090
7d34a1b0
RS
70912011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
7092
7093 * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
7094
c30e7434
RS
70952011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
7096
7097 * config/vax/vax.c: Include reload.h.
7098
112a861d
AS
70992011-04-04 Anatoly Sokolov <aesok@post.ru>
7100
7101 * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
7102 * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
7103 (sparc_preferred_reload_class): New function.
7104
e8c6bb74
JJ
71052011-04-04 Jakub Jelinek <jakub@redhat.com>
7106
2aeaa366 7107 PR debug/48401
e8c6bb74
JJ
7108 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
7109 Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
7110
2c081caf
NF
71112011-04-03 Nathan Froyd <froydnj@codesourcery.com>
7112
7113 * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
7114 * tree.c (initialize_tree_contains_struct): Adjust accordingly.
7115
53802f27
AS
71162011-04-03 Anatoly Sokolov <aesok@post.ru>
7117
7118 * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
7119 (ASM_OUTPUT_ALIGNED_BSS): Define.
7120
e89964e3
MM
71212011-04-03 Michael Matz <matz@suse.de>
7122
7123 * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
7124 and next_slot members.
7125 (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
7126 lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
7127 (lto_streamer_cache_append): Declare.
7128 * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
7129 unsigned index, remove offset parameter, ensure that we append
7130 or update existing entries.
7131 (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
7132 parameter, update next_slot for append.
7133 (lto_streamer_cache_insert): Use unsigned index, remove offset_p
7134 parameter.
7135 (lto_streamer_cache_insert_at): Likewise.
7136 (lto_streamer_cache_append): New function.
7137 (lto_streamer_cache_lookup): Use unsigned index.
7138 (lto_streamer_cache_get): Likewise.
7139 (lto_record_common_node): Don't test tree_node_can_be_shared.
7140 (preload_common_node): Adjust call to lto_streamer_cache_insert.
7141 (lto_streamer_cache_delete): Don't free offsets member.
7142 * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
7143 (lto_output_string_with_length): Use lto_output_data_stream.
7144 (lto_output_tree_header): Remove ix parameter, don't write it.
7145 (lto_output_builtin_tree): Likewise.
7146 (lto_write_tree): Adjust callers to above, don't track and write
7147 offset, write unsigned index.
7148 (output_unreferenced_globals): Don't emit all global vars.
7149 (write_global_references): Use unsigned indices.
7150 (lto_output_decl_state_refs): Likewise.
7151 (write_symbol): Likewise.
7152 * lto-streamer-in.c (lto_input_chain): Move earlier.
7153 (input_function): Use unsigned index.
7154 (input_alias_pairs): Don't read and then ignore all global vars.
7155 (lto_materialize_tree): Remove ix_p parameter, don't read index,
7156 don't pass it back, use lto_streamer_cache_append.
7157 (lto_register_var_decl_in_symtab): Use unsigned index.
7158 (lto_register_function_decl_in_symtab): Likewise.
7159 (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
7160 index.
7161 (lto_get_builtin_tree): Don't read index, use
7162 lto_streamer_cache_append.
7163 (lto_read_tree): Adjust call to lto_materialize_tree.
7164
7165 * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
7166 don't use function calls in arguments to MIN.
7167
7168 * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
7169 twice.
7170
7171 * gimple.c (gimple_type_leader_entry): Mark deletable.
7172
b9a5b5b2
AM
71732011-04-03 Alan Modra <amodra@gmail.com>
7174
7175 * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
7176
ac6a641b
MM
71772011-04-03 Michael Matz <matz@suse.de>
7178
7179 * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
7180 an integer.
7181 * tree.h (tree_decl_non_common.vindex): Adjust comment.
7182
0038d4e0
MM
71832011-04-03 Michael Matz <matz@suse.de>
7184
e9c18386 7185 * cgraphbuild.c (record_reference): Canonicalize constructor values.
0038d4e0
MM
7186 * gimple-fold.c (canonicalize_constructor_val): Accept being called
7187 without function context.
7188 * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
7189 current_function_decl and cfun.
7190
91f2fae8
MM
71912011-04-03 Michael Matz <matz@suse.de>
7192
7193 * tree.c (decl_init_priority_insert): Don't create entry for
7194 default priority.
7195 (decl_fini_priority_insert): Ditto.
7196 (fields_compatible_p, find_compatible_field): Remove.
7197 * tree.h (fields_compatible_p, find_compatible_field): Remove.
7198 * gimple.c (gimple_compare_field_offset): Adjust block comment.
7199
da29e070
EB
72002011-04-03 Eric Botcazou <ebotcazou@adacore.com>
7201
7202 * combine.c (try_combine): Remove useless local variable.
7203
4979c28b 72042011-04-03 Richard Guenther <rguenther@suse.de>
91f2fae8 7205 Ira Rosen <ira.rosen@linaro.org>
4979c28b
RG
7206
7207 * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
7208 non-variable offsets and compare the remaining bases of the two
7209 accesses instead of looking for exact same data-ref.
7210
b4ddcaee
KT
72112011-04-02 Kai Tietz <ktietz@redhat.com>
7212
f90298e1
KT
7213 PR target/48416
7214 * i386.c (ix86_function_arg_boundary): Fix printf formatter.
7215
b4ddcaee
KT
7216 * i386.c (ix86_is_msabi_thiscall): New helper function.
7217 (ix86_is_type_thiscall): New helper function.
7218 (ix86_comp_type_attributes): Handle thiscall for method-functions
7219 special.
7220 (init_cumulative_args): Likewise.
7221 (find_drap_reg): Likewise.
7222 (ix86_static_chain): Likewise.
7223 (x86_this_parameter): Likewise.
7224 (x86_output_mi_thunk): Likewise.
7225
2a9d769a 72262011-04-01 Olivier Hainque <hainque@adacore.com>
91f2fae8
MM
7227 Nicolas Setton <setton@adacore.com>
7228 Eric Botcazou <ebotcazou@adacore.com>
2a9d769a
OH
7229
7230 * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
7231 (add_gnat_descriptive_type_attribute): New function.
7232 (gen_array_type_die): Call it.
7233 (gen_enumeration_type_die): Likewise.
7234 (gen_struct_or_union_type_die): Likewise.
7235 (modified_type_die): Likewise.
7236 * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
7237 * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
7238 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
7239
15a03a11
JJ
72402011-04-01 Jakub Jelinek <jakub@redhat.com>
7241
7242 PR bootstrap/48148
7243 * dwarf2out.c (resolve_addr): Don't call force_decl_die
7244 if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
7245
7246 Revert:
7247 2011-03-17 Richard Guenther <rguenther@suse.de>
7248
7249 PR bootstrap/48148
7250 * lto-cgraph.c (input_overwrite_node): Clear the abstract
7251 origin for decls in other ltrans units.
7252 (input_varpool_node): Likewise.
7253
19228b93
JJ
72542011-04-01 Jakub Jelinek <jakub@redhat.com>
7255
7256 PR middle-end/48335
7257 * expr.c (expand_assignment): Handle all possibilities
7258 if TO_RTX is CONCAT.
e9c18386 7259 * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
19228b93
JJ
7260 (store_split_bit_field): If SUBREG_REG (op0) or
7261 op0 itself has smaller mode than word, return it
7262 for offset 0 and const0_rtx for out-of-bounds stores.
7263 If word is const0_rtx, skip it.
7264
88cb339e
N
72652011-04-01 Naveen H.S <naveen.S@kpitcummins.com>
7266
7267 * config/h8300/h8300.c (print_operand_address): Rename to...
7268 (h8300_print_operand_address): ...this. Make static. Adjust comments.
7269 Call h8300_print_operand and h8300_print_operand_address instead of
7270 print_operand and print_operand_address. Declare.
7271 (print_operand): Renake to...
7272 (h8300_print_operand): ...this. Make static. Adjust comments.
7273 Call h8300_print_operand instead of print_operand. Declare.
7274 (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
7275 (h8300_register_move_cost): Likewise.
7276 (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
7277 TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
7278 * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
7279 PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
7280 * config/h8300/h8300-protos.h (print_operand): Delete.
7281 (print_operand_address): Delete.
7282
756d6ee9
RH
72832011-04-01 Richard Henderson <rth@redhat.com>
7284
7285 PR 48400
7286 * dwarf2out.c (dwarf2out_source_line): Disable discriminators
7287 in strict mode before dwarf4. Re-order tests to early out
7288 before switching sections.
7289
ceaaaeab
NF
72902011-04-01 Nathan Froyd <froydnj@codesourcery.com>
7291
7292 * config/h8300/constraints.md: New file.
7293 * config/h8300/h8300.md: Include it. Use satisfies_constraint_J,
7294 satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
7295 (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
7296 * config/h8300/predicates.md (bit_operand): Likewise.
7297 (incdec_operand): Use satisfies_constraint_M and
7298 satisfies_constraint_O. Don't use C code block.
7299 * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
7300 * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
7301 (compute_mov_length): Use satisfies_constraint_G.
7302 (fix_bit_operand): Use satisfies_constraint_U.
7303 * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
7304 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
7305 (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
7306 (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
7307 (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
7308 (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
7309 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
7310 (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
7311 (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
7312 (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
7313 (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
7314 (EXTRA_MEMORY_CONSTRAINT): Delete.
7315
08ae38e0
AP
73162011-04-01 Andrew Pinski <pinskia@gmail.com>
7317 Michael Meissner <meissner@linux.vnet.ibm.com>
7318
7319 PR target/48262
7320 * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
7321 operands, as per the specifications.
7322
7323 * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
7324 (vec_extract_evenv4sf): Ditto.
7325 (vec_extract_evenv8hi): Ditto.
7326 (vec_extract_evenv16qi): Ditto.
7327 (vec_extract_oddv4si): Ditto.
7328
bdb0b0f6
MW
73292011-03-31 Mark Wielaard <mjw@redhat.com>
7330
7331 * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
7332 high_pc attribute if the CU has no associated code. Only output
7333 DW_AT_entry_pc for CU if not generating strict dwarf and
7334 dwarf_version < 4.
7335
722279e4
BS
73362011-04-01 Bernd Schmidt <bernds@codesourcery.com>
7337
7338 * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
7339 * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
7340 out of ...
7341 (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
7342 * final.c (final_start_function): Call the new function rather
7343 than using a NULL argument for dwarf2out_frame_debug.
7344
c5dd277d
BS
7345 * ifcvt.c (cond_exec_process_insns): Disallow converting a block
7346 that contains the prologue.
7347
ec4efea9
BS
7348 * haifa-sched.c (queue_insn): New arg REASON. All callers
7349 changed. Print it in debugging output.
7350
2a6a0d80
BS
7351 * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
7352
86014d07
BS
7353 * sched-ebb.c (begin_schedule_ready): Remove second argument.
7354 Split most of the code into...
7355 (begin_move_insn): ... here. New function.
7356 (ebb_sched_info): Add a pointer to it.
7357 * haifa-sched.c (scheduled_insns): New static variable.
7358 (sched_extend_ready_list): Allocate it.
7359 (schedule_block): Use it to record the order of scheduled insns.
7360 Perform RTL changes to move insns only after all scheduling
7361 decisions have been made.
7362 * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
7363 begin_move_insn field.
7364 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
7365 * sched-int.h (struct haifa_sched_info): Remove second argument
7366 from begin_schedule_ready hook. Add new member begin_move_insn.
7367 * sched-rgn.c (begin_schedule_ready): Remove second argument.
7368 (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
7369
9d701248
BS
7370 * haifa-sched.c (prune_ready_list): New function, broken out of
7371 schedule_block.
7372 (schedule_block): Use it.
7373
1ca1dad5
UW
73742011-04-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7375
7376 * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
7377
49568e45
KT
73782011-04-01 Kai Tietz <ktietz@redhat.com>
7379
7380 * config.gcc (*-*-mingw*): Allow as option the
7381 posix threading model.
07c0852e 7382 * config/i386/mingw32.h (SPEC_PTHREAD1, SPEC_PTHREAD2):
49568e45
KT
7383 New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
7384 definition.
7385 (CPP_SPEC): Add pthread/no-pthread handling.
7386 (LIB_SPEC): Likewise.
7387 * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
7388 (LIB_SPEC): Likewise.
7389 * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
7390 flag to pass -pthread option for shared libgcc build.
7391 (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
7392 for shared libgcc build.
7393 * config/i386/t-mingw-pthread: New file.
7394 * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
7395 New define to enable use of library pthread by default.
7396 * config/i386/mingw.opt (pthread): New driver option.
7397 (no-pthread): New driver option.
e9c18386 7398 * config/i386/cygming.opt: Make sure trailing empty line is retained.
49568e45
KT
7399 * config/i386/mingw-w64.opt: Likewise.
7400
748f7574 74012011-04-01 Gary Funck <gary@intrepid.com>
636b4106
GF
7402
7403 * c-decl.c (grokdeclarator): Fix formatting.
7404
f04713ee
RS
74052011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
7406
7407 * expr.c (emit_block_move_via_movmem): Use n_generator_args
7408 instead of n_operands.
7409 (set_storage_via_setmem): Likewise.
7410 * optabs.c (maybe_gen_insn): Likewise.
7411 * config/arm/arm.c (arm_init_neon_builtins): Likewise.
7412 * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
7413 (mips_expand_builtin_direct): Likewise.
7414 * config/spu/spu.c (expand_builtin_args): Likewise.
7415
b29387ee
RS
74162011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
7417
7418 * recog.h (insn_data_d): Add n_generator_args.
7419 * genoutput.c (data): Likewise.
7420 (output_insn_data): Print it.
7421 (max_opno, num_dups): Delete.
7422 (scan_operands): Just fill in "d->operand[...]".
7423 (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
7424
e792559a
RS
74252011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
7426
7427 * gensupport.h (pattern_stats): New structure.
7428 * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
7429 * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
7430 (max_operand_1, max_operand_vec): Delete.
7431 (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
7432
e8110d6f
NF
74332011-03-31 Nathan Froyd <froydnj@codesourcery.com>
7434
7435 * emit-rtl.c (emit_pattern_after_setloc): New function.
7436 (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
7437 (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
7438 (emit_pattern_after): New function.
7439 (emit_insn_after, emit_jump_insn_after): Call it.
7440 (emit_call_insn_after, emit_debug_insn_after): Likewise.
7441 (emit_pattern_before_setloc): New function.
7442 (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
7443 (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
7444 Likewise.
7445 (emit_pattern_before): New function.
7446 (emit_insn_before, emit_jump_insn_before): Call it.
7447 (emit_call_insn_before, emit_debug_insn_before): Likewise.
7448
576f85f1
RH
74492011-03-31 Richard Henderson <rth@redhat.com>
7450
7451 * dwarf2out.c (dw_separate_line_info_ref): Remove.
7452 (dw_separate_line_info_entry): Remove.
7453 (enum dw_line_info_opcode): New.
7454 (dw_line_info_entry): Use it.
7455 (dw_line_info_table, dw_line_info_table_p): New.
7456 (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
7457 (line_info_table, line_info_label_num): Remove.
7458 (line_info_table_in_use): Remove.
7459 (separate_line_info_table): Remove.
7460 (separate_line_info_table_allocated): Remove.
7461 (separate_line_info_table_in_use): Remove.
7462 (LINE_INFO_TABLE_INCREMENT): Remove.
7463 (line_info_label_num): New.
7464 (cur_line_info_table): New.
7465 (text_section_line_info, cold_text_section_line_info): New.
7466 (separate_line_info): New.
7467 (SEPARATE_LINE_CODE_LABEL): Remove.
7468 (print_dwarf_line_table): Remove.
7469 (debug_dwarf): Don't dump it.
7470 (output_one_line_info_table): New.
7471 (output_line_info): Use it.
7472 (new_line_info_table): New.
7473 (set_cur_line_info_table): New.
7474 (dwarf2out_switch_text_section): Use it.
7475 (dwarf2out_begin_function): Likewise.
7476 (push_dw_line_info_entry): New.
7477 (dwarf2out_source_line): Rewrite for new line info tables.
7478 (dwarf2out_init): Remove dead initailizations.
7479
300d83d9
JM
74802011-03-31 Joseph Myers <joseph@codesourcery.com>
7481
7482 * opts.h (cl_option): Add comments to fields. Add bit-fields for
7483 various flags.
7484 (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
7485 CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
7486 CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
7487 CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
7488 (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
7489 * opt-functions.awk (flag_init, switch_bit_fields): New.
7490 (switch_flags): Don't handle flags moved to bit-fields. Don't
7491 generate CL_MISSING_OK or CL_SAVE.
7492 * optc-gen.awk: Update to generate bit-field output as well as
7493 flags field.
7494 * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
7495 bit-field instead of CL_REJECT_DRIVER flag.
7496 * opts-common.c (generate_canonical_option,
7497 decode_cmdline_option): Use bit-fields instead of CL_* flags.
7498 * opts.c (maybe_default_option): Use cl_reject_negative bit-field
7499 instead of CL_REJECT_NEGATIVE flag.
7500 * toplev.c (print_switch_values): Use cl_report bit-field instead
7501 of CL_REPORT flag.
7502
d4d73ce2
EB
75032011-03-31 Eric Botcazou <ebotcazou@adacore.com>
7504
7505 * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
7506 a zero minimum index only if it is redundant.
7507
b8faca75
VM
75082011-03-31 Vladimir Makarov <vmakarov@redhat.com>
7509
7510 PR rtl-optimization/48381
7511 * ira-color.c (assign_hard_reg): Use hard reg set intersection
7512 instead of ira_class_hard_reg_index for calculating conflicting
7513 hard registers.
7514
7d11cebe
SB
75152011-03-31 Steven Bosscher <steven@gcc.gnu.org>
7516
7517 * cprop.c: Clean up hash table building.
7518 (reg_avail_info): Remove.
7519 (oprs_available_p): Remove.
7520 (record_last_reg_set_info): Remove.
7521 (record_last_set_info): Remove.
7522 (reg_available_p): New function.
7523 (gcse_constant_p): Do not treat unfolded conditions as constants.
7524 (make_set_regs_unavailable): New function.
7525 (hash_scan_set): Simplify with new reg_available_p.
7526 (compute_hash_table_work): Traverse insns stream only once.
7527 Do not compute reg_avail_info. Traverse insns in reverse order.
7528 Record implicit sets after recording explicit sets from the block.
7529
98faf84f
MM
75302011-03-31 Michael Matz <matz@suse.de>
7531
e9c18386 7532 * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
98faf84f 7533
f52d97da
AS
75342011-03-31 Anatoly Sokolov <aesok@post.ru>
7535
7536 * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
7537 * config/h8300/h8300-protos.h (h8300_get_index): Remove.
7538 * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
7539 (h8300_mode_dependent_address_p): New function.
7540 (h8300_get_index): Make static.
7541
e16b6fd0
JL
75422011-03-31 Jeff Law <law@redhat.com>
7543
10c51983
JL
7544 * reload1.c (elimination_effects): Fix typo in recent change.
7545
e9c18386 7546 * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
e16b6fd0
JL
7547 typo potentially leading to null pointer dereference.
7548
7549 * caller-save.c (new_saved_hard_reg): Eliminate return value.
7550 (setup_save_areas): Corresponding changes to avoid useless
7551 assignments.
7552
7553 * jump.c (reversed_comparison_code_parts): Avoid successive return
7554 statements when REVERSE_CONDITION is defined.
7555
7556 * expr.c (expand_assignment): Avoid useless assignments.
7557 (expand_expr_real_1): Likewise.
7558 (expand_expr_real_2): Avoid useless statements.
7559
7560 * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
7561
7562 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
7563
7564 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
7565 statements.
7566
7567 * stmt.c (expand_expr_stmt): Avoid useless assignment.
7568
eb1eb914
JM
75692011-03-31 Joseph Myers <joseph@codesourcery.com>
7570
7571 PR target/47109
7572 * doc/tm.texi.in (TARGET_VERSION): Remove.
7573 * doc/tm.texi: Regenerate.
7574 * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
7575 * collect2.c (main): Don't use TARGET_VERSION.
7576 * mips-tdump.c (main): Don't use TARGET_VERSION.
7577 * mips-tfile.c (main): Don't use TARGET_VERSION.
e9c18386 7578 * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
eb1eb914
JM
7579 * config/rs6000/vxworksae.h: Remove.
7580 * config/alpha/alpha.h (TARGET_VERSION): Remove.
7581 * config/alpha/freebsd.h (TARGET_VERSION): Remove.
7582 * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
7583 * config/alpha/netbsd.h (TARGET_VERSION): Remove.
7584 * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
7585 * config/arm/arm.h (TARGET_VERSION): Remove.
7586 * config/arm/coff.h (TARGET_VERSION): Remove.
7587 * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
7588 * config/arm/elf.h (TARGET_VERSION): Remove.
7589 * config/arm/freebsd.h (TARGET_VERSION): Remove.
7590 * config/arm/linux-elf.h (TARGET_VERSION): Remove.
7591 * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
7592 * config/arm/pe.h (TARGET_VERSION): Remove.
7593 * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
7594 * config/arm/semi.h (TARGET_VERSION): Remove.
7595 * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
7596 * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
7597 * config/arm/vxworks.h (TARGET_VERSION): Remove.
7598 * config/avr/avr.h (TARGET_VERSION): Remove.
7599 * config/bfin/bfin.h (TARGET_VERSION): Remove.
7600 * config/fr30/fr30.h (TARGET_VERSION): Remove.
7601 * config/frv/frv.h (TARGET_VERSION): Remove.
7602 * config/h8300/h8300.h (TARGET_VERSION): Remove.
7603 * config/i386/cygwin.h (TARGET_VERSION): Remove.
7604 * config/i386/darwin.h (TARGET_VERSION): Remove.
7605 * config/i386/darwin64.h (TARGET_VERSION): Remove.
7606 * config/i386/djgpp.h (TARGET_VERSION): Remove.
7607 * config/i386/freebsd.h (TARGET_VERSION): Remove.
7608 * config/i386/freebsd64.h (TARGET_VERSION): Remove.
7609 * config/i386/gnu.h (TARGET_VERSION): Remove.
7610 * config/i386/i386-interix.h (TARGET_VERSION): Remove.
7611 * config/i386/i386elf.h (TARGET_VERSION): Remove.
7612 * config/i386/linux.h (TARGET_VERSION): Remove.
7613 * config/i386/linux64.h (TARGET_VERSION): Remove.
7614 * config/i386/lynx.h (TARGET_VERSION): Remove.
7615 * config/i386/mingw32.h (TARGET_VERSION): Remove.
7616 * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
7617 * config/i386/netbsd64.h (TARGET_VERSION): Remove.
7618 * config/i386/netware.h (TARGET_VERSION): Remove.
7619 * config/i386/nto.h (TARGET_VERSION): Remove.
7620 * config/i386/openbsd.h (TARGET_VERSION): Remove.
7621 * config/i386/vxworks.h (TARGET_VERSION): Remove.
7622 * config/ia64/elf.h (TARGET_VERSION): Remove.
7623 * config/ia64/freebsd.h (TARGET_VERSION): Remove.
7624 * config/ia64/hpux.h (TARGET_VERSION): Remove.
7625 * config/ia64/linux.h (TARGET_VERSION): Remove.
7626 * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
7627 * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
7628 TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
7629 * config/lm32/lm32.h (TARGET_VERSION): Remove.
7630 * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
7631 * config/m32c/m32c.h (TARGET_VERSION): Remove.
7632 * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
7633 * config/m32r/m32r.h (TARGET_VERSION): Remove.
7634 * config/m68k/linux.h (TARGET_VERSION): Remove.
7635 * config/m68k/m68k.h (TARGET_VERSION): Remove.
7636 * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
7637 * config/m68k/uclinux.h (TARGET_VERSION): Remove.
7638 * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
7639 * config/mep/mep.h (TARGET_VERSION): Remove.
7640 * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
7641 MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
7642 * config/mips/iris6.h (MACHINE_TYPE): Remove.
7643 * config/mips/linux.h (TARGET_VERSION): Remove.
7644 * config/mips/netbsd.h (MACHINE_TYPE): Remove.
7645 * config/mips/vxworks.h (TARGET_VERSION): Remove.
7646 * config/mmix/mmix.h (TARGET_VERSION): Remove.
7647 * config/mn10300/linux.h (TARGET_VERSION): Remove.
7648 * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
7649 * config/pa/pa.h (TARGET_VERSION): Remove.
7650 * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
7651 * config/picochip/picochip.h (TARGET_VERSION): Remove.
7652 * config/rs6000/aix.h (TARGET_VERSION): Remove.
7653 * config/rs6000/darwin.h (TARGET_VERSION): Remove.
7654 * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
7655 * config/rs6000/eabi.h (TARGET_VERSION): Remove.
7656 * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
7657 * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
7658 * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
7659 * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
7660 * config/rs6000/linux.h (TARGET_VERSION): Remove.
7661 * config/rs6000/linux64.h (TARGET_VERSION): Remove.
7662 * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
7663 * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
7664 * config/rs6000/lynx.h (TARGET_VERSION): Remove.
7665 * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
7666 * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
7667 * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
7668 * config/s390/linux.h (TARGET_VERSION): Remove.
7669 * config/s390/s390.h (TARGET_VERSION): Remove.
7670 * config/s390/tpf.h (TARGET_VERSION): Remove.
7671 * config/score/score.h (TARGET_VERSION): Remove.
7672 * config/sh/linux.h (TARGET_VERSION): Remove.
7673 * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
7674 TARGET_VERSION_CPU, TARGET_VERSION): Remove.
7675 * config/sh/sh.h (TARGET_VERSION): Remove.
7676 * config/sh/sh64.h (TARGET_VERSION): Remove.
7677 * config/sh/superh.h (TARGET_VERSION): Remove.
7678 * config/sh/vxworks.h (TARGET_VERSION): Remove.
7679 * config/sparc/freebsd.h (TARGET_VERSION): Remove.
7680 * config/sparc/linux.h (TARGET_VERSION): Remove.
7681 * config/sparc/linux64.h (TARGET_VERSION): Remove.
7682 * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
7683 TARGET_NAME32, TARGET_NAME): Remove.
7684 * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
7685 * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
7686 * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
7687 * config/sparc/sysv4.h (TARGET_VERSION): Remove.
7688 * config/sparc/vxworks.h (TARGET_VERSION): Remove.
7689 * config/spu/spu.h (TARGET_VERSION): Remove.
7690 * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
7691 * config/v850/v850.h (TARGET_VERSION): Remove.
7692 * config/vax/linux.h (TARGET_VERSION): Remove.
7693 * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
7694 * config/xtensa/elf.h (TARGET_VERSION): Remove.
7695 * config/xtensa/linux.h (TARGET_VERSION): Remove.
7696
ace31bca
EB
76972011-03-31 Eric Botcazou <ebotcazou@adacore.com>
7698
7699 PR target/48142
7700 * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
7701 frame-related from frame-unrelated adjustments to the stack pointer.
7702
76f9db36
JJ
77032011-03-31 Jakub Jelinek <jakub@redhat.com>
7704
7705 * common.opt (fdebug-types-section): Move earlier.
7706 * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
7707
b7826465
AT
77082011-03-31 Andreas Tobler <andreast@fgznet.ch>
7709
7710 * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
7711 var.
7712
1290e54c
NF
77132011-03-30 Nathan Froyd <froydnj@codesourcery.com>
7714
7715 * tree.h (CASE_CHAIN): Define.
7716 * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
7717 (gimple_redirect_edge_and_branch): Likewise.
7718
bddc98e1
VM
77192011-03-30 Vladimir Makarov <vmakarov@redhat.com>
7720
7721 PR middle-end/48367
7722 * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
7723 calculation.
7724
c865e437
JL
77252011-03-30 Jeff Law <law@redhat.com>
7726
b3750213 7727 * PR bootstrap/48371
c865e437
JL
7728 * reload1.c (reload): Fix botch in last change.
7729
7730 * reload.h (struct reload): Fix typo introduced in last change.
7731
2cdf9574
JM
77322011-03-30 Joseph Myers <joseph@codesourcery.com>
7733
7734 * config/arm/arm.opt (mhard-float, msoft-float): Mark
7735 Undocumented. Remove help text.
7736 * doc/invoke.texi (ARM Options): Don't document -msoft-float and
7737 -mhard-float.
7738
666a21a2
JM
77392011-03-30 Joseph Myers <joseph@codesourcery.com>
7740
7741 * doc/options.texi (NegativeAlias): Document.
7742 (Alias): Mention NegativeAlias.
7743 * opt-functions.awk: Handle NegativeAlias.
e9c18386 7744 * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
666a21a2
JM
7745 * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
7746 * opts.h (CL_NEGATIVE_ALIAS): Define.
7747 * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
7748 (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
7749 OPT_mspe_.
7750 * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
7751 Alias entries.
7752 * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
7753 mno-spe and mno-isel instead of mspe=no and -misel=no.
7754
0fa4e351
MW
77552011-03-29 Mark Wielaard <mjw@redhat.com>
7756
7757 * common.opt (fdebug-types-section): New flag.
7758 * doc/invoke.texi: Document new -fno-debug-types-section flag.
7759 * dwarf2out.c (use_debug_types): New define.
7760 (struct die_struct): Mark die_id with GTY desc use_debug_types.
7761 (print_die): Guard output of type unit signatures using
7762 use_debug_types.
7763 (build_abbrev_table): Replace assert of dwarf_version >= 4
7764 with assert on use_debug_types.
7765 (size_of_die): Likewise.
7766 (unmark_dies): Likewise.
7767 (value_format): Decide AT_ref_external form on use_debug_types.
7768 (output_die): Replace dwarf_version version check guard with
7769 use_debug_types where appropriate.
7770 (modified_type_die): Likewise.
7771 (gen_reference_type_die): Likewise.
7772 (dwarf2out_start_source_file): Likewise.
7773 (dwarf2out_end_source_file): Likewise.
7774 (prune_unused_types_walk_attribs): Likewise.
7775 (dwarf2out_finish): Likewise.
7776
4648deb4
VM
77772011-03-30 Vladimir Makarov <vmakarov@redhat.com>
7778
7779 * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
7780
4f431835
RS
77812011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
7782
7783 PR rtl-optimization/48332
7784 * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
7785 mode of input operand N and modeN to its actual mode.
7786
f2034d06
JL
77872011-03-30 Jeff Law <law@redhat.com>
7788
7789 * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
7790 define accessor macro.
7791 (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
7792 (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
7793 (reg_equiv_init): Likewise.
7794 (reg_equivs_size): New variable.
7795 (reg_equiv_init_size): Remove.
7796 (allocate_initial_values): Move prototype to here from....
7797 * integrate.h (allocate_initial_values): Remove prototype.
7798 * integrate.c: Include reload.h.
7799 (allocate_initial_values): Corresponding changes.
7800 * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
7801 (fix_reg_equiv_init, no_equiv): Corresponding changes.
7802 (update_equiv_regs): Corresponding changes.
7803 (ira): Corresponding changes.
7804 * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
7805 (push_secondary_reload): Corresponding changes.
7806 (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
7807 (make_memloc, find_reloads_address): Corresponding changes.
7808 (subst_reg_equivs, subst_indexed_address): Corresponding changes.
7809 (find_reloads_address_1): Corresponding changes.
7810 (find_reloads_subreg_address, subst_reloads): Corresponding changes.
7811 (refers_to_regno_for_reload_p): Corresponding changes.
7812 (reg_overlap_mentioned_for_reload_p): Corresponding changes.
7813 (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
7814 * reload1.c: Include ggc.h.
7815 (grow_reg_equivs): New function.
7816 (replace_pseudos_in, reload): Corresponding changes.
7817 (calculate_needs_all_insns, alter_regs): Corresponding changes.
7818 (eliminate_regs_1, elimination_effects): Corresponding changes.
7819 (emit_input_reload_insns, emit_output_reload_insns): Likewise.
7820 (delete_output_reload): Likewise.
7821 * caller-save.c (mark_referenced_regs): Corresponding changes.
7822 * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
7823 * frv/predicates.md (frv_load_operand): Corresponding changes.
7824 * microblaze/microblaze.c (double_memory_operand): Corresponding
7825 changes.
7826 * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
7827 * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
e9c18386 7828 * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
f2034d06
JL
7829 * m68k/m68k.c (emit_move_sequence): Corresponding changes.
7830 * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
7831 changes.
7832 * pa/pa.c (emit_move_sequence): Corresponding changes.
7833 * vax/vax.c (nonindexed_address_p): Corresponding changes.
7834
159b81b0
RS
78352011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
7836
7837 PR target/47551
7838 * config/arm/arm.c (coproc_secondary_reload_class): Handle
7839 structure modes. Don't check neon_vector_mem_operand for
7840 vector or structure modes.
7841
a6217191
RS
78422011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
7843 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
7844
7845 PR target/43590
7846 * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
7847 operand 1 and reshuffle the operands to match.
7848 (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
7849
bd837408
CS
78502011-03-30 Christian Schüler <cschueler@gmx.de>
7851
6955d771 7852 PR driver/48208
bd837408 7853 * config/c.opt (F): Added 'Driver' to -F option.
e9c18386 7854
6955d771 7855 PR driver/48260
bd837408
CS
7856 * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
7857 handler function.
7858 * config/darwin.opt: Added '-arch' option.
7859
e9c0470a
NC
78602011-03-30 Nick Clifton <nickc@redhat.com>
7861
7862 * config/rx/rx.md: Add peepholes and patterns to combine
7863 extending loads and simple arithmetic instructions.
7864 * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
e9c18386
UB
7865 * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
7866 * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
e9c0470a 7867 modes to use pre-decrement and post-increment addressing.
e9c18386 7868 (rx_is_restricted_memory_address): Add range checking of REG+INT
e9c0470a 7869 addresses.
e9c18386
UB
7870 (rx_print_operand): Add support for %Q. Fix handling of %Q.
7871 (rx_memory_move_cost): Adjust cost of stores.
7872 (rx_adjust_insn_length): New function.
e9c0470a 7873
8a87e7ab
JJ
78742011-03-30 Jakub Jelinek <jakub@redhat.com>
7875
7876 PR c/48305
7877 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
7878 arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
7879 matching arg00/arg01 types.
7880
12486e03
EB
78812011-03-30 Eric Botcazou <ebotcazou@adacore.com>
7882
7883 * cfglayout.c (insn_locators_alloc): Initialize curr_location and
7884 last_location to UNKNOWN_LOCATION.
7885
0b99eef6
L
78862011-03-30 H.J. Lu <hongjiu.lu@intel.com>
7887
7888 PR target/48349
7889 * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
7890 FLOAT_SSE_REGS.
7891
023592aa
JM
78922011-03-30 Joseph Myers <joseph@codesourcery.com>
7893 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7894
7895 PR bootstrap/48337
7896 * config/sparc/sparc.opt (sparc_cpu_and_features): Add
7897 Init(PROCESSOR_V7).
7898 (sparc_cpu): Likewise.
7899 * config/sparc/sparc.c (sparc_option_override): Replace 0 by
7900 PROCESSOR_V7.
7901
ad3b266b
VM
79022011-03-29 Vladimir Makarov <vmakarov@redhat.com>
7903
7904 PR target/48336
7905 PR middle-end/48342
7906 PR rtl-optimization/48345
7907 * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
7908 hard regs for given mode from profitable regs when doing secondary
7909 allocation.
7910
633c9126
JL
79112011-03-29 Jeff Law <law@redhat.com>
7912
7913 PR bootstrap/48327
7914 * tree-ssa-threadupdate.c (struct redirection_data): Remove
7915 do_not_duplicate field.
7916 (lookup_redirection_data): Corresponding changes.
7917 (create_duplicates): Always create a template block.
7918 (redirect_edges): Remove code which reused the original block
7919 when it was going to become unreachable code.
7920 (thread_block): Don't set do_not_duplicate field.
7921
eb50f63a
JM
79222011-03-29 Joseph Myers <joseph@codesourcery.com>
7923
7924 * lto-opts.c (register_user_option_p, lto_register_user_option):
7925 Make type argument unsigned.
7926 * lto-streamer.h (lto_register_user_option): Make type argument
7927 unsigned.
7928 * opth-gen.awk: Make CL_* macros unsigned.
7929 * opts-common.c (find_opt): Make lang_mask argument unsigned.
7930 * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
7931 CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
7932 CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
7933 CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
7934 CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
7935 (find_opt): Make lang_mask argument unsigned.
7936
76763a6d
VM
79372011-03-29 Vladimir Makarov <vmakarov@redhat.com>
7938
7939 PR rtl-optimization/48331
7940 PR rtl-optimization/48334
7941 * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
7942 for any used algorithm.
7943
5c82436e
VM
79442011-03-29 Vladimir Makarov <vmakarov@redhat.com>
7945
7946 * ira-conflicts.c (build_object_conflicts): Add unused attribute
7947 to parent_max.
7948
7a81008b
UB
79492011-03-29 Uros Bizjak <ubizjak@gmail.com>
7950
7951 * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
7952 (alpha_option_override): Don't set alpha_sr_alias_set.
7953 (emit_frame_store_1): Use gen_frame_mem rather than calling
7954 set_mem_alias_set.
7955 (alpha_expand_epilogue): Ditto.
7956
86c8d1f6
IR
79572011-03-29 Ira Rosen <ira.rosen@linaro.org>
7958
7959 PR tree-optimization/48290
7960 * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
7961 vectorization, check that relevant phis in the basic block after
7962 the inner loop are really inner loop's exit phis.
7963
0d12220f
RS
79642011-03-29 Richard Sandiford <richard.sandiford@linaro.org>
7965
e8cf17e7 7966 PR debug/48190
0d12220f
RS
7967 * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
7968 (cached_dw_loc_list_def): New structure.
7969 (cached_dw_loc_list): New typedef.
7970 (cached_dw_loc_list_table): New variable.
7971 (cached_dw_loc_list_table_hash): New function.
7972 (cached_dw_loc_list_table_eq): Likewise.
7973 (add_location_or_const_value_attribute): Take a bool cache_p.
7974 Cache the list when the parameter is true.
7975 (gen_formal_parameter_die): Update caller.
7976 (gen_variable_die): Likewise.
7977 (dwarf2out_finish): Likewise.
7978 (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
7979 while generating debug info for the decl.
7980 (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
7981 (dwarf2out_init): Initialize cached_dw_loc_list_table.
7982 (resolve_addr): Cache the result of resolving a chain of
7983 location lists.
7984
1756cb66
VM
79852011-03-28 Vladimir Makarov <vmakarov@redhat.com>
7986
7987 * ira-color.c (update_left_conflict_sizes_p): Don't assume that
7988 conflict object hard regset nodes have intersecting hard reg sets.
7a81008b 7989
1756cb66
VM
7990 * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
7991 after regstat_init_n_sets_and_refs.
7992
7993 * ira.c: Add more comments at the top.
7994 (setup_stack_reg_pressure_class, setup_pressure_classes):
7995 Add comments how we compute the register pressure classes.
7996 (setup_allocno_and_important_classes): Add more comments.
7997 (setup_class_translate_array, reorder_important_classes)
7998 (setup_reg_class_relations): Add comments.
7999
8000 * ira-emit.c: Add 2011 to the Copyright line. Add comments at the
8001 start of the file.
8002
8003 * ira-color.c: Add 2011 to the Copyright line.
8004 (assign_hard_reg): Add more comments.
8005 (improve_allocation): Ditto.
8006
8007 * ira-costs.c: Add 2011 to the Copyright line.
8008 (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
8009 comments.
8010 (setup_regno_cost_classes_by_mode): Ditto.
8011
8012 Initial patches from ira-improv branch:
8013
8014 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
8015
f60c2554 8016 * ira-build.c (ira_create_object): Remove initialization of
1756cb66
VM
8017 OBJECT_PROFITABLE_HARD_REGS. Initialize OBJECT_ADD_DATA.
8018 (ira_create_allocno): Remove initialization of
8019 ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
8020 ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
8021 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
8022 ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
8023 ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
8024 Initialize ALLOCNO_ADD_DATA.
8025 (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
8026 and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
8027 ALLOCNO_REG.
8028 (ira_flattening): Ditto. Use ALLOCNO_EMIT_DATA instead of
8029 ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
8030
8031 * ira.c (ira_reallocate): Remove.
8032 (setup_pressure_classes): Call
8033 ira_init_register_move_cost_if_necessary. Use
8034 ira_register_move_cost instead of ira_get_register_move_cost.
8035 (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
8036 (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
8037
8038 * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
8039 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
8040 ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
8041 ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
8042 instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
8043 OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
8044 Fix formatting.
7a81008b 8045 (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
1756cb66
VM
8046 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
8047 (struct allocno_color_data): New.
8048 (allocno_color_data_t): New typedef.
8049 (allocno_color_data): New definition.
8050 (ALLOCNO_COLOR_DATA): New macro.
8051 (struct object_color_data): New.
8052 (object_color_data_t): New typedef.
8053 (object_color_data): New definition.
8054 (OBJECT_COLOR_DATA): New macro.
8055 (update_copy_costs, calculate_allocno_spill_cost): Call
8056 ira_init_register_move_cost_if_necessary. Use
8057 ira_register_move_cost instead of ira_get_register_move_cost.
8058 (move_spill_restore, update_curr_costs): Ditto.
8059 (allocno_spill_priority): Make it inline.
7a81008b 8060 (color_pass): Allocate and free allocno_color_dat and object_color_data.
1756cb66
VM
8061 (struct coalesce_data, coalesce_data_t): New.
8062 (allocno_coalesce_data): New definition.
8063 (ALLOCNO_COALESCE_DATA): New macro.
8064 (merge_allocnos, coalesced_allocno_conflict_p): Use
8065 ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
8066 ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
8067 (coalesce_allocnos): Ditto.
8068 (setup_coalesced_allocno_costs_and_nums): Ditto.
8069 (collect_spilled_coalesced_allocnos): Ditto.
8070 (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
8071 (setup_slot_coalesced_allocno_live_ranges): Ditto.
8072 (coalesce_spill_slots): Ditto.
8073 (ira_sort_regnos_for_alter_reg): Ditto. Allocate, initialize and
8074 free allocno_coalesce_data.
8075
8076 * ira-conflicts.c: Fix formatting.
8077 (process_regs_for_copy): Call
8078 ira_init_register_move_cost_if_necessary. Use
8079 ira_register_move_cost instead of ira_get_register_move_cost.
8080 (build_object_conflicts): Optimize.
8081
8082 * ira-costs.c (record_reg_classes): Optimize. Call
8083 ira_init_register_move_cost_if_necessary. Use
8084 ira_register_move_cost, ira_may_move_in_cost, and
8085 ira_may_move_out_cost instead of ira_get_register_move_cost and
8086 ira_get_may_move_cost.
8087 (record_address_regs): Ditto.
8088 (scan_one_insn): Optimize.
8089 (find_costs_and_classes): Optimize.
8090 (process_bb_node_for_hard_reg_moves): Call
8091 ira_init_register_move_cost_if_necessary. Use
8092 ira_register_move_cost instead of ira_get_register_move_cost.
8093
8094 * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
8095 ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
8096 ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
8097 (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
8098 definitions.
8099 (ira_initiate_emit_data, ira_finish_emit_data)
8100 (create_new_allocno): New functions.
7a81008b 8101 (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
1756cb66
VM
8102 (emit_move_list): Call ira_init_register_move_cost_if_necessary.
8103 Use ira_register_move_cost instead of ira_get_register_move_cost.
8104
8105 * ira-int.h: Fix some comments.
7a81008b
UB
8106 (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
8107 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
1756cb66
VM
8108 (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
8109 hard_regs_subnodes_start, hard_regs_subnodes_num. Add new member
8110 add_data.
8111 (struct ira_allocno): Make mode and aclass a bitfield. Move other
8112 bitfield after mode. Make hard_regno a short int. Make
8113 hard_regno short. Remove first_coalesced_allocno and
8114 next_coalesced_allocno. Move mem_optimized_dest_p,
8115 somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
8116 into struct ira_emit_data. Remove in_graph_p, may_be_spilled_p,
8117 available_regs_num, next_bucket_allocno, prev_bucket_allocno,
8118 temp, colorable_p. Add new member add_data.
8119 (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
8120 (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
8121 (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
8122 (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
8123 (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
8124 (ALLOCNO_ADD_DATA): New macro.
8125 (ira_emit_data_t): New typedef.
8126 (struct ira_emit_data): New. Move mem_optimized_dest_p,
8127 somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
8128 from struct ira_allocno.
8129 (ALLOCNO_EMIT_DATA): New macro.
8130 (ira_allocno_emit_data, allocno_emit_reg): New.
8131 (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
7a81008b 8132 (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
1756cb66
VM
8133 (OBJECT_ADD_DATA): New macro.
8134 (ira_reallocate): Remove.
8135 (ira_initiate_emit_data, ira_finish_emit_data): New.
8136 (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
8137 (ira_init_register_move_cost_if_necessary): New.
8138 (ira_object_conflict_iter_next): Merge into
8139 ira_object_conflict_iter_cond.
7a81008b 8140 (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
1756cb66 8141
f60c2554 8142 * ira-live.c (process_single_reg_class_operands): Call
1756cb66
VM
8143 ira_init_register_move_cost_if_necessary. Use
8144 ira_register_move_cost instead of ira_get_register_move_cost.
8145
8146 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
8147
8148 * ira-int.h (struct target_ira_int): Remove x_cost_classes.
8149
8150 * ira-costs.c: Fix formatting.
8151 (cost_classes, cost_classes_num): Remove.
8152 (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
8153 (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
8154 (cost_classes_del, cost_classes_htab): New.
8155 (cost_classes_aclass_cache, cost_classes_mode_cache): New.
8156 (initiate_regno_cost_classes, setup_cost_classes): New.
8157 (setup_regno_cost_classes_by_aclass): New.
7a81008b 8158 (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
1756cb66
VM
8159 (record_reg_classes): Use regno_cost_classes instead of
8160 cost_classes. Move checking opposite operand up.
8161 (record_address_regs): Use regno_cost_classes
8162 instead of cost_classes.
8163 (scan_one_insn): Ditto. Use always general register.
8164 (print_allocno_costs): Use regno_cost_classes instead of
8165 cost_classes.
8166 (print_pseudo_costs): Ditto. Use Reg_N_REFS.
8167 (find_costs_and_classes): Set up cost classes for each registers.
8168 Use also their mode for this. Use regno_cost_classes instead of
8169 cost_classes.
8170 (setup_allocno_class_and_costs): Use regno_cost_classes instead of
8171 cost_classes.
8172 (free_ira_costs, ira_init_costs): Don't use cost_classes.
8173 (ira_costs, ira_set_pseudo_classes): Call
8174 initiate_regno_cost_classes and finish_regno_cost_classes.
8175
8176 2010-10-04 Vladimir Makarov <vmakarov@redhat.com>
8177
8178 * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
8179
8180 * target.def (ira_cover_classes): Remove.
8181
7a81008b 8182 * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
1756cb66
VM
8183
8184 * doc/tm.texi.in: Ditto.
8185
8186 * ira-conflicts.c: Remove mentioning cover classes from the file.
8187 Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Use
7a81008b 8188 ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST. Fix formatting.
1756cb66
VM
8189
8190 * targhooks.c (default_ira_cover_classes): Remove.
8191
8192 * targhooks.h (default_ira_cover_classes): Ditto.
8193
8194 * haifa-sched.c: Remove mentioning cover classes from the file.
8195 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
8196 ira_pressure_classes and ira_pressure_classes_num instead of
8197 ira_reg_class_cover_size and ira_reg_class_cover. Use
8198 sched_regno_pressure_class instead of sched_regno_cover_class.
8199 (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
8200 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
8201
8202 * ira-int.h: Add 2010 to Copyright. Remove mentioning cover
8203 classes from the file.
8204 (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
8205 (struct object_hard_regs, struct object_hard_regs_node): New.
8206 (struct ira_object): New members profitable_hard_regs,
8207 hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
8208 (struct ira_allocno): Rename cover_class to aclass. Rename
8209 cover_class_cost and updated_cover_class_cost to class_cost and
8210 updated_class_cost. Remove splay_removed_p and
8211 left_conflict_size. Add new members colorable_p.
8212 (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
8213 (ALLOCNO_COLORABLE_P): New macro.
8214 (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
8215 (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
8216 Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
8217 (OBJECT_...): Rename parameter C to O.
8218 (OBJECT_PROFITABLE_HARD_REGS): New macro.
8219 (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
8220 (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
8221 (struct target_ira_int): New members x_ira_max_memory_move_cost,
8222 x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
8223 x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
8224 x_ira_reg_pressure_class_p, x_ira_important_class_nums,
8225 x_ira_reg_class_superunion. Rename x_prohibited_class_mode_reg to
8226 x_ira_prohibited_class_mode_reg. Rename x_ira_reg_class_union to
8227 x_ira_reg_class_subunion.
8228 (ira_max_memory_move_cost, ira_max_register_move_cost)
8229 (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
8230 (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
8231 (ira_important_class_nums, ira_reg_class_superunion): New macros.
7a81008b 8232 (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
1756cb66
VM
8233 (ira_reg_class_union): Rename to ira_reg_class_subunion.
8234 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
8235 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
8236 (ira_tune_allocno_costs_and_cover_classes): Rename to
8237 ira_tune_allocno_costs.
8238 (ira_debug_hard_regs_forest): New.
8239 (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
8240 (ira_object_conflict_iter_next): Fix comments.
7a81008b 8241 (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
1756cb66
VM
8242 (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
8243 cover_class to aclass.
8244 (ira_allocate_and_accumulate_costs): Ditto.
8245 (ira_allocate_and_set_or_copy_costs): Ditto.
8246
8247 * opts.c (decode_options): Remove ira_cover_class check.
8248
8249 * ira-color.c: Remove mentioning cover classes from the file. Use
8250 ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
8251 instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
8252 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
8253 (splay-tree.h): Remove include.
8254 (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
8255 before copy_freq_compare_func.
8256 (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
8257 (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
8258 New definitions.
8259 (hard_regs_roots, hard_regs_node_vec): Ditto.
8260 (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
8261 (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
8262 (finish_object_hard_regs, object_hard_regs_compare): Ditto.
8263 (create_new_object_hard_regs_node): Ditto.
8264 (add_new_object_hard_regs_node_to_forest): Ditto.
7a81008b 8265 (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
1756cb66
VM
8266 (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
8267 Ditto.
8268 (print_hard_reg_set, print_hard_regs_subforest): Ditto.
8269 (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
8270 (remove_unused_object_hard_regs_nodes): Ditto.
8271 (enumerate_object_hard_regs_nodes): Ditto.
8272 (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
8273 (object_hard_regs_subnode_t): Ditto.
8274 (struct object_hard_regs_subnode): Ditto.
8275 (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
8276 (setup_object_hard_regs_subnode_index): Ditto.
8277 (get_object_hard_regs_subnodes_num): Ditto.
8278 (form_object_hard_regs_nodes_forest): Ditto.
8279 (finish_object_hard_regs_nodes_tree): Ditto.
8280 (finish_object_hard_regs_nodes_forest): Ditto.
8281 (allocnos_have_intersected_live_ranges_p): Rename to
7a81008b 8282 allocnos_conflict_by_live_ranges_p. Move before copy_freq_compare_func.
1756cb66
VM
8283 (pseudos_have_intersected_live_ranges_p): Rename to
8284 conflict_by_live_ranges_p. Move before copy_freq_compare_func.
8285 (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
8286 (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
8287 (update_copy_costs): Remove assert. Skip cost update if the hard
8288 reg does not belong the class.
8289 (assign_hard_reg): Process only profitable hard regs.
8290 (uncolorable_allocnos_num): Make it scalar.
8291 (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
8292 and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
8293 and ira_reg_class_max_nregs.
8294 (bucket_allocno_compare_func): Check frequency first.
8295 (sort_bucket): Add compare function as a parameter.
8296 (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
8297 (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
8298 (push_allocno_to_stack): Rewrite for checking new allocno
8299 colorability.
7a81008b 8300 (remove_allocno_from_bucket_and_push): Print cost too. Remove assert.
1756cb66
VM
8301 (push_only_colorable): Pass new parameter to sort_bucket.
8302 (push_allocno_to_spill): Remove.
8303 (allocno_spill_priority_compare): Make it inline and rewrite.
8304 (splay_tree_allocate, splay_tree_free): Remove.
8305 (allocno_spill_sort_compare): New function.
8306 (push_allocnos_to_stack): Sort allocnos for spilling once. Don't
8307 build and use splay tree. Choose first allocno in uncolorable
8308 allocno bucket to spill. Remove setting spill cost.
8309 (all_conflicting_hard_regs): Remove.
8310 (setup_allocno_available_regs_num): Check only profitable hard
8311 regs. Print info about hard regs nodes.
8312 (setup_allocno_left_conflicts_size): Remove.
8313 (put_allocno_into_bucket): Don't call
7a81008b 8314 setup_allocno_left_conflicts_size. Use setup_left_conflict_sizes_p.
1756cb66
VM
8315 (improve_allocation): New.
8316 (color_allocnos): Call setup_profitable_hard_regs,
8317 form_object_hard_regs_nodes_forest, improve_allocation,
8318 finish_object_hard_regs_nodes_forest. Setup spill cost.
8319 (print_loop_title): Use pressure classes.
8320 (color_allocnso): Ditto.
8321 (do_coloring): Remove allocation and freeing splay_tree_node_pool
8322 and allocnos_for_spilling.
8323 (ira_sort_regnos_for_alter_reg): Don't setup members
8324 {first,next}_coalesced_allocno.
8325 (color): Remove allocating and freeing removed_splay_allocno_vec.
8326 (fast_allocation): Use ira_prohibited_class_mode_regs instead of
8327 prohibited_class_mode_regs.
8328
8329 * ira-lives.c: Remove mentioning cover classes from the file. Fix
8330 formatting.
8331 (update_allocno_pressure_excess_length): Use pressure classes.
8332 (inc_register_pressure, dec_register_pressure): Check for pressure
8333 class.
8334 (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
8335 pressure class. Use ira_reg_class_nregs instead of
8336 ira_reg_class_max_nregs.
8337 (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
8338 (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
8339 (single_reg_class): Use ira_reg_class_nregs instead of
8340 ira_reg_class_max_nregs.
8341 (process_bb_node_lives): Use pressure classes.
8342
8343 * ira-emit.c: Remove mentioning cover classes from the file. Use
8344 ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Fix formatting.
8345 (change_loop): Use pressure classes.
8346 (modify_move_list): Call ira_set_allocno_class instead of
8347 ira_set_allocno_cover_class.
8348
8349 * ira-build.c: Remove mentioning cover classes from the file. Use
8350 ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
8351 ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST. Use
8352 ALLOCNO_UPDATED_CLASS_COST instead of
8353 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
8354 (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
8355 (ira_create_allocno): Remove initialization of
8356 ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE. Initialize
8357 ALLOCNO_COLORABLE_P.
8358 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
8359 Update conflict regs for the objects.
8360 (create_cap_allocno): Remove assert. Don't propagate
8361 ALLOCNO_AVAILABLE_REGS_NUM.
8362 (ira_free_allocno_costs): New function.
8363 (finish_allocno): Change a part of code into call of
8364 ira_free_allocno_costs.
8365 (low_pressure_loop_node_p): Use pressure classes.
8366 (object_range_compare_func): Don't compare classes.
8367 (setup_min_max_conflict_allocno_ids): Ditto.
8368
8369 * loop-invariant.c: Remove mentioning cover classes from the file.
8370 Use ira_pressure_classes and ira_pressure_classes_num instead of
8371 ira_reg_class_cover_size and ira_reg_class_cover. Fix formatting.
7a81008b
UB
8372 (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
8373 Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
8374 Use reg_allocno_class instead of reg_cover_class.
1756cb66
VM
8375 (get_inv_cost): Use instead ira_stack_reg_pressure_class of
8376 STACK_REG_COVER_CLASS.
8377 (get_regno_cover_class): Rename to get_regno_pressure_class.
8378 (move_loop_invariants): Initialize and finalize regstat.
8379
8380 * ira.c: Remove mentioning cover classes from the file. Add
8381 comments about coloring without cover classes. Use ALLOCNO_CLASS
8382 instead of ALLOCNO_COVER_CLASS. Fix formatting.
8383 (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
8384 setup_class_subset_and_memory_move_costs.
8385 (setup_stack_reg_pressure_class, setup_pressure_classes): New.
8386 (setup_cover_and_important_classes): Rename to
8387 setup_allocno_and_important_classes.
8388 (setup_class_translate_array): New.
8389 (setup_class_translate): Call it for allocno and pressure classes.
8390 (cover_class_order): Rename to allocno_class_order.
8391 (comp_reg_classes_func): Use ira_allocno_class_translate instead
8392 of ira_class_translate.
8393 (reorder_important_classes): Set up ira_important_class_nums.
8394 (setup_reg_class_relations): Set up ira_reg_class_superunion.
8395 (print_class_cover): Rename to print_classes. Add parameter.
8396 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
8397 Print pressure classes too.
8398 (find_reg_class_closure): Rename to find_reg_classes. Don't call
8399 setup_reg_subclasses.
7a81008b 8400 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
1756cb66
VM
8401 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
8402 (setup_prohibited_class_mode_regs): Use
7a81008b 8403 ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
1756cb66
VM
8404 (clarify_prohibited_class_mode_regs): New function.
8405 (ira_init_register_move_cost): Set up ira_max_register_move_cost,
8406 ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
8407 (ira_init_once): Initialize them.
8408 (free_register_move_costs): Process them.
8409 (ira_init): Move calls of find_reg_classes and
8410 setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
8411 Call clarify_prohibited_class_mode_regs.
8412 (ira_no_alloc_reg): Remove.
8413 (too_high_register_pressure_p): Use pressure classes.
8414
8415 * sched-deps.c: Remove mentioning cover classes from the file.
8416 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
8417 ira_pressure_classes and ira_pressure_classes_num instead of
8418 ira_reg_class_cover_size and ira_reg_class_cover.
8419 (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
8420 sched_regno_pressure_class instead of sched_regno_cover_class.
8421 (mark_insn_pseudo_birth, mark_pseudo_death): Ditto. Use
8422 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
8423
8424 * ira.h: Add 2010 to Copyright.
8425 (ira_no_alloc_reg): Remove external.
8426 (struct target_ira): Rename x_ira_hard_regno_cover_class,
8427 x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
8428 x_ira_class_translate to x_ira_hard_regno_allocno_class,
8429 x_ira_allocno_classes_num, x_ira_allocno_classes, and
8430 x_ira_allocno_class_translate. Add x_ira_pressure_classes_num,
8431 x_ira_pressure_classes, x_ira_pressure_class_translate, and
8432 x_ira_stack_reg_pressure_class. Rename x_ira_reg_class_nregs to
8433 x_ira_reg_class_max_nregs. Add x_ira_reg_class_min_nregs and
8434 x_ira_no_alloc_regs.
7a81008b 8435 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
1756cb66
VM
8436 (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
8437 ira_allocno_classes_num and ira_allocno_classes.
8438 (ira_class_translate): Rename to ira_allocno_class_translate.
8439 (ira_pressure_classes_num, ira_pressure_classes): New definitions.
8440 (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
8441 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
8442 (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
8443 (ira_no_alloc_regs): New.
8444
8445 * ira-costs.c: Add 2010 to Copyright. Remove mentioning cover
8446 classes from the file. Use ALLOCNO_CLASS instead of
8447 ALLOCNO_COVER_CLASS. Use ALLOCNO_CLASS_COST instead of
8448 ALLOCNO_COVER_CLASS_COST.
8449 (regno_cover_class): Rename to regno_aclass.
8450 (record_reg_classes): Use ira_reg_class_subunion instead of
8451 ira_reg_class_union.
8452 (record_address_regs): Check overflow.
8453 (scan_one_insn): Ditto.
7a81008b 8454 (print_allocno_costs): Print total mem cost fore regional allocation.
1756cb66
VM
8455 (print_pseudo_costs): Use REG_N_REFS.
8456 (find_costs_and_classes): Use classes intersected with them on the
8457 1st pass. Check overflow. Use ira_reg_class_subunion instead of
8458 ira_reg_class_union. Use ira_allocno_class_translate and
8459 regno_aclass instead of ira_class_translate and regno_cover_class.
8460 Modify code for finding regno_aclass. Setup preferred classes for
8461 the next pass.
8462 (setup_allocno_cover_class_and_costs): Rename to
8463 setup_allocno_class_and_costs. Use regno_aclass instead of
8464 regno_cover_class. Use ira_set_allocno_class instead of
8465 ira_set_allocno_cover_class.
8466 (init_costs, finish_costs): Use regno_aclass instead of
8467 regno_cover_class.
8468 (ira_costs): Use setup_allocno_class_and_costs instead of
8469 setup_allocno_cover_class_and_costs.
8470 (ira_tune_allocno_costs_and_cover_classes): Rename to
8471 ira_tune_allocno_costs. Check overflow. Skip conflict hard regs
8472 by processing objects. Use ira_reg_class_max_nregs instead of
8473 ira_reg_class_nregs.
8474
8475 * rtl.h (reg_cover_class): Rename to reg_allocno_class.
8476
8477 * sched-int.h: Remove mentioning cover classes from the file.
8478 (sched_regno_cover_class): Rename to sched_regno_pressure_class.
8479
8480 * reginfo.c: Add 2010 to Copyright. Remove mentioning cover
8481 classes from the file.
8482 (struct reg_pref): Rename coverclass into allocnoclass.
8483 (reg_cover_class): Rename to reg_allocno_class.
8484
7a81008b 8485 * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
1756cb66
VM
8486
8487 * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
8488
8489 * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
8490
8491 * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
8492
8493 * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
8494
8495 * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
8496
8497 * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
8498
8499 * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
8500
8501 * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
8502
8503 * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
8504
8505 * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
8506 (i386_ira_cover_classes): Ditto.
8507
8508 * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
8509
8510 * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
8511
8512 * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
8513
8514 * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
8515
8516 * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
8517
8518 * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
8519
8520 * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
8521 (mips_ira_cover_classes): Ditto.
8522
8523 * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
8524
8525 * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
8526
8527 * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
8528
8529 * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
8530
8531 * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
8532
8533 * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
8534 (IRA_COVER_CLASSES_VSX): Ditto.
8535
8536 * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
8537 (rs6000_ira_cover_classes): Ditto.
8538
8539 * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
8540
8541 * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
8542
8543 * config/score/score.h (IRA_COVER_CLASSES): Ditto.
8544
8545 * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
8546
8547 * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
8548
8549 * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
8550
8551 * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
8552
8553 * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
8554
8555 * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
8556
8557 * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
8558
2b80199f
JJ
85592011-03-29 Jakub Jelinek <jakub@redhat.com>
8560
71dae1fe
JJ
8561 PR debug/48253
8562 * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
8563 dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
8564 dw_fde_unlikely_section_end_label, cold_in_std_section,
8565 dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
8566 Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
8567 fields.
8568 (output_fde): Use dw_fde_second_{begin,end} if second is
8569 true, otherwise dw_fde_{begin,end}.
8570 (output_call_frame_info): Test dw_fde_second_begin != NULL
8571 instead of dw_fde_switched_sections.
8572 (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
8573 fields, initialize new fields. Initialize in_std_section
8574 unconditionally from the first partition.
8575 (dwarf2out_end_epilogue): Don't override dw_fde_end when
8576 dw_fde_second_begin is non-NULL.
8577 (dwarf2out_switch_text_section): Stop initializing removed
8578 dw_fde_struct fields, initialize new fields, initialize
8579 also dw_fde_end here. Set dw_fde_switch_cfi even when
8580 dwarf2out_do_cfi_asm (). Call var_location_switch_text_section.
8581 (struct var_loc_list_def): Add last_before_switch field.
8582 (arange_table, arange_table_allocated, arange_table_in_use,
8583 ARANGE_TABLE_INCREMENT, add_arange): Removed.
8584 (size_of_aranges): Count !in_std_section and !second_in_std_section
8585 hunks in fdes, instead of looking at arange_table_in_use.
8586 (output_aranges): Add aranges_length argument, don't call
8587 size_of_aranges here. Instead of using aranges_table*
8588 emit ranges for fdes when !in_std_section resp.
8589 !second_in_std_section.
8590 (dw_loc_list): Break ranges crossing section switch.
8591 (convert_cfa_to_fb_loc_list): Likewise. If switched sections,
7a81008b 8592 use dw_fde_second_end instead of dw_fde_end as end of last range.
71dae1fe
JJ
8593 (gen_subprogram_die): Don't call add_arange. Use
8594 dw_fde_{begin,end} for first partition and if switched
8595 section dw_fde_second_{begin,end} for the second.
8596 (var_location_switch_text_section_1,
8597 var_location_switch_text_section): New functions.
8598 (dwarf2out_begin_function): Initialize cold_text_section even
8599 when function_section () isn't text_section.
8600 (prune_unused_types): Don't walk arange_table.
8601 (dwarf2out_finish): Don't needlessly test
8602 flag_reorder_blocks_and_partition when testing cold_text_section_used.
8603 If info_section_emitted, call size_of_aranges and if it indicates
8604 non-empty .debug_aranges, call output_aranges with the computed
8605 size. Stop using removed dw_fde_struct fields, use
8606 dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
8607 for second.
8608
2b80199f
JJ
8609 PR debug/48203
8610 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
8611 create ENTRY_VALUE if incoming or address of incoming's MEM
8612 is a hard REG.
8613 * dwarf2out.c (mem_loc_descriptor): Don't emit
8614 DW_OP_GNU_entry_value of DW_OP_fbreg.
8615 * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
8616 on ENTRY_VALUE is able to find the canonical parameter VALUE.
8617 * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
8618 rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
8619 ENTRY_VALUE_EXPs.
8620 (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
8621 is a REG_P or MEM_P with REG_P address, compute hash directly
8622 instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
8623 (preserve_only_constants): Don't clear VALUES forwaring
8624 ENTRY_VALUE to some other VALUE.
8625
8a445129
RS
86262011-03-28 Richard Sandiford <richard.sandiford@linaro.org>
8627
8628 * builtins.c (expand_builtin_memset_args): Use gen_int_mode
8629 instead of GEN_INT.
8630
c82fee88
EB
86312011-03-28 Eric Botcazou <ebotcazou@adacore.com>
8632
8633 * cfgexpand.c (expand_gimple_cond): Always set the source location and
8634 block before expanding the statement.
8635 (expand_gimple_stmt_1): Likewise. Set them here...
8636 (expand_gimple_stmt): ...and not here. Tidy.
8637 * cfglayout.c (curr_insn_locator): Return 0 if the current location is
8638 unknown.
8639
e45425ec
SB
86402011-03-28 Steven Bosscher <steven@gcc.gnu.org>
8641
8642 * Makefile.in: New rule for cprop.o.
8643 * gcse.c: Move constant/copy propagation to cprop.c.
8644 (compute_local_properties): Only handle expression tables.
8645 (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
8646 (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
8647 (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
8648 next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
7a81008b 8649 mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
e45425ec
SB
8650 compute_cprop_data, find_used_regs, try_replace_reg,
8651 find_avail_set, cprop_jump, constprop_register, cprop_insn,
8652 local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
8653 fis_get_condition, implicit_set_cond_p, find_implicit_sets,
8654 find_bypass_set, reg_killed_on_edge, bypass_block,
8655 bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
8656 execute_rtl_cprop, pass_rtl_cprop): Move to...
8657 * cprop.c: ...here. New file, constant/copy propagation for RTL
8658 moved from gcse.c to here with minor cleanups in duplicated code.
8659
c09d5426
L
86602011-03-28 H.J. Lu <hongjiu.lu@intel.com>
8661
8662 * config/i386/i386.c (flag_opts): Fix a typo in
8663 -mavx256-split-unaligned-store.
8664
9eaa7740
AS
86652011-03-28 Anatoly Sokolov <aesok@post.ru>
8666
8667 * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
8668 LIBCALL_VALUE): Remove macros.
8669 * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
8670 TARGET_FUNCTION_VALUE_REGNO_P): Define.
8671 (h8300_function_value, h8300_libcall_value,
8672 h8300_function_value_regno_p): New functions.
8673
dcec2be2
AS
86742011-03-28 Anatoly Sokolov <aesok@post.ru>
8675
8676 * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
8677
520af9ec
JL
86782011-03-28 Jeff Law <law@redhat.com>
8679
8680 * tree-ssa-threadupdate.c (redirect_edges): Call
8681 create_edge_and_update_destination_phis as needed.
8682 (create_edge_and_update_destination_phis): Accept new BB argument.
8683 All callers updated.
8684 (thread_block): Do not update the profile when threading around
8685 intermediate blocks.
8686 (thread_single_edge): Likewise.
8687 (determine_bb_domination_status): If BB is not a successor of the
8688 loop header, return NONDOMINATING.
8689 (register_jump_thread): Note when we register a jump thread around
8690 an intermediate block.
8691 * tree-ssa-threadedge.c (thread_around_empty_block): New function.
8692 (thread_across_edge): Use it.
8693
7450b54f
TG
86942011-03-28 Tristan Gingold <gingold@adacore.com>
8695
8696 * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
8697 when for_return is 2.
8698
649beb33
JL
86992011-03-28 Jeff Law <law@redhat.com>
8700
8701 * var-tracking.c (canonicalize_values_mark): Delete unused
8702 lhs assignment.
8703 (canonicalize_values_star, set_variable_part): Likewise.
8704 (clobber_variable_part, delete_variable_part): Likewise.
8705
d5b8da97
SB
87062011-03-28 Steven Bosscher <steven@gcc.gnu.org>
8707
8708 * gcse.c (free_gcse_mem): Free reg_set_bitmap.
8709
322dd859
MJ
87102011-03-28 Martin Jambor <mjambor@suse.cz>
8711
8712 * tree-inline.c (expand_call_inline): Do not check that destination
8713 node is analyzed.
8714 (optimize_inline_calls): Assert that destination node is analyzed.
8715 * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
8716 not call tree_lowering_passes.
8717 * cgraph.h (cgraph_analyze_function): Declare.
8718 * cgraphunit.c (cgraph_analyze_function): Make public.
8719
aa53e58b
JM
87202011-03-28 Joseph Myers <joseph@codesourcery.com>
8721
8722 * config/sparc/sparc-opts.h: New.
8723 * config/sparc/sparc.c (sparc_handle_option, sparc_select,
8724 sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
8725 (sparc_option_override): Store processor_type enumeration rather
8726 than string in cpu_default. Remove name and enumeration from
8727 cpu_table. Directly default -mcpu then default -mtune from -mcpu
8728 without using sparc_select. Use target_flags_explicit instead of
8729 fpu_option_set.
8730 * config/sparc/sparc.h (enum processor_type): Move to
8731 sparc-opts.h.
8732 (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
8733 * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
8734 HeaderInclude entry.
8735 (mcpu=, mtune=): Use Var and Enum.
8736 (sparc_processor_type): New Enum and EnumValue entries.
8737
dd350eba
RO
87382011-03-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8739 Iain Sandoe <iains@gcc.gnu.org>
8740
8741 PR target/48245
8742 * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
8743
1b29f05e
EB
87442011-03-28 Eric Botcazou <ebotcazou@adacore.com>
8745
8746 * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
8747 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
8748 Insert new statements at it in lieu of STMT.
8749 (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
8750 * tree-vect-stmts.c (vectorizable_store): Likewise.
8751 (vectorizable_load): Likewise.
8752
506e6808
UB
87532011-03-28 Uros Bizjak <ubizjak@gmail.com>
8754
8755 * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
8756 (divtf3): Ditto.
8757 (multf3): Ditto.
8758 (subtf3): Ditto.
8759
2e939ee9
L
87602011-03-27 H.J. Lu <hongjiu.lu@intel.com>
8761
8762 * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
8763 unaligned 256bit load/store.
8764 (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
8765 (*avx_movdqu<avxmodesuffix>): Likewise.
8766
5e85ab88
JDA
87672011-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8768
8769 PR target/48288
8770 * config/pa/predicates.md (reg_or_ior_operand): New predicate.
8771 * config/pa/pa.md (iordi3): Use new predicate in expander.
8772 (iorsi3): Likewise.
8773
47be3d6d
AS
87742011-03-27 Anatoly Sokolov <aesok@post.ru>
8775
506e6808 8776 * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
47be3d6d 8777 FUNCTION_VALUE_REGNO_P): Remove macros.
506e6808
UB
8778 * config/mips/mips-protos.h (mips_function_value): Remove.
8779 * config/mips/mips.c (mips_function_value): Rename to...
47be3d6d
AS
8780 (mips_function_value_1): ... this. Make static. Handle receiving
8781 the function type in 'fn_decl_or_type' argument.
8782 (mips_function_value, mips_libcall_value,
8783 mips_function_value_regno_p): New function.
8784 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
8785 TARGET_FUNCTION_VALUE_REGNO_P): Define.
8786
d253656a
L
87872011-03-27 H.J. Lu <hongjiu.lu@intel.com>
8788
8789 * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
8790 and -mavx256-split-unaligned-store.
8791 (ix86_option_override_internal): Split 32-byte AVX unaligned
8792 load/store by default.
8793 (ix86_avx256_split_vector_move_misalign): New.
8794 (ix86_expand_vector_move_misalign): Use it.
8795
8796 * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
8797 -mavx256-split-unaligned-store.
8798
8799 * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
8800 256bit load/store. Generate unaligned store on misaligned memory
8801 operand.
8802 (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
8803 256bit load/store.
8804 (*avx_movdqu<avxmodesuffix>): Likewise.
8805
8806 * doc/invoke.texi: Document -mavx256-split-unaligned-load and
8807 -mavx256-split-unaligned-store.
8808
1ea9206a
RS
88092011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
8810
8811 PR target/38598
8812 * config/mips/mips.md (extendsidi2): Add an "l" alternative.
8813 Update commentary.
8814
b99ce2a8
RS
88152011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
8816
8817 * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
8818 opno arguments with an expand_operand. Use create_input_operand.
8819 (mips_prepare_builtin_target): Delete.
8820 (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
8821 functions.
8822 (mips_expand_builtin_direct): Use create_output_operand and
8823 mips_expand_builtin_insn. Update call to mips_prepare_builtin_arg.
8824 (mips_expand_builtin_movtf): Likewise. Use mips_expand_fp_comparison.
8825 (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
8826
69d52339
IR
88272011-03-27 Ira Rosen <ira.rosen@linaro.org>
8828
8829 * config/arm/arm.c (arm_autovectorize_vector_sizes): New
8830 function.
8831 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
8832
ba5e9aca
EB
88332011-03-26 Eric Botcazou <ebotcazou@adacore.com>
8834
8835 * basic-block.h (fixup_abnormal_edges): Adjust prototype.
8836 * reload1.c (reload): Adjust call to fixup_abnormal_edges. Rediscover
8837 basic blocks and call commit_edge_insertions directly.
8838 (fixup_abnormal_edges): Move from here to...
8839 * cfgrtl.c (fixup_abnormal_edges): ...here. Only insert instructions
8840 on the edges and return whether some have actually been inserted.
8841 * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
8842 compensation code.
8843
5d369d58
AB
88442011-03-26 Andrey Belevantsev <abel@ispras.ru>
8845
8846 PR rtl-optimization/48144
8847 * sel-sched-ir.c (merge_history_vect): Factor out from ...
8848 (merge_expr_data): ... here.
8849 (av_set_intersect): Rename to av_set_code_motion_filter.
8850 Update all callers. Call merge_history_vect when an expression
8851 is found in both sets.
8852 * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
8853
f082c000
AM
88542011-03-26 Alan Modra <amodra@gmail.com>
8855
8856 * config/rs6000/predicates.md (word_offset_memref_op): Handle
8857 cmodel medium addresses.
8858 * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
8859 64-bit gpr loads and stores.
8860 (rs6000_secondary_reload_ppc64): New function.
8861 * config/rs6000/rs6000-protos.h: Declare it.
8862 * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
8863
8ac5e12e
AM
88642011-03-26 Alan Modra <amodra@gmail.com>
8865
8866 PR target/47487
8867 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
8868 GNU Go in traceback table.
8869
c2654ded
RH
88702011-03-25 Richard Henderson <rth@redhat.com>
8871
8872 * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
8873 if there are exactly 6 operands.
8874 (set_storage_via_setmem): Similarly.
8875
ba78087b
KT
88762011-03-25 Kai Tietz <ktietz@redhat.com>
8877
8878 * collect2.c (write_c_file_stat): Handle backslash
8879 as right-hand directory separator.
8880 (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
8881 checking just for slash.
8882 * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
8883 instead of checking for trailing slash.
8884 * gcc.c (record_temp_file): Use filename_cmp instead
8885 of strcmp.
8886 (do_spec_1): Likewise.
8887 (replace_outfile_spec_function): Likewise.
8888 (is_directory): Use filename_ncmp instead of strncmp.
8889 (print_multilib_info): Likewise.
8890 * gcov.c (find_source): Use filename_cmp instead
8891 instead of strcmp.
8892 (make_gcov_file_name): Fix order of slash/backslash
8893 checks.
8894 * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
8895 (add_standard_paths): Likewise.
8896 * mips-tfile.c (saber_stop): Handle backslash.
8897 * prefix.c (update_path): Use filename_ncmp instead of
8898 strncmp.
8899 * profile.c (output_location): Use filename_cmp instead
8900 of strcmp.
8901 * read-md.c (handle_toplevel_file): Handle backslash.
8902 * tlink.c (frob_extension): Likewise.
8903 * tree-cfg.c (same_line_p): Use filename_cmp instead of
8904 strcmp.
8905 * tree-dump.c (dequeue_and_dump): Handle backslash.
8906 * tree.c (get_file_function_name): Likewise.
8907 * gengtype.c (read_input_list): Likewise.
8908 (get_file_realbasename): Likewise.
8909 (get_output_file_with_visibility): Use filename_cmp
8910 instead of strcmp.
8911
75f6ec9a
RS
89122011-03-25 Richard Sandiford <richard.sandiford@linaro.org>
8913
8914 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
8915 case to VFPv1.
8916
6c4e2997
NF
89172011-03-25 Nathan Froyd <froydnj@codesourcery.com>
8918
8919 * fold-const.c (expr_location_or): New function.
8920 (fold_truth_not_expr): Call it.
8921
0edf1bb2
JL
89222011-03-25 Jeff Law <law@redhat.com>
8923
8924 * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
8925 va_end.
8926 * c-family/c-common.c (def_fn_type): Likewise.
8927 * ada/gcc-interface/utils.c (def_fn_type): Likewise.
8928 * emit-rtl.c (gen_rtvec): Likewise.
8929 * lto/lto-lang.c (def_fn_type): Likewise.
8930
fdc2de95
RG
89312011-03-25 Richard Guenther <rguenther@suse.de>
8932
8933 * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
8934 also generate copies.
8935 (fini_copy_prop): Handle constant values properly.
8936
21385db0
JJ
89372011-03-25 Jakub Jelinek <jakub@redhat.com>
8938
8939 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
8940 mode size instead of bitsize with DWARF2_ADDR_SIZE.
8941 (hash_loc_operands, compare_loc_operands): Handle
8942 DW_OP_GNU_entry_value.
8943
6510e8bb
KT
89442011-03-25 Kai Tietz <ktietz@redhat.com>
8945
8946 * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
8947 (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
8948 * config/i386/i386.c (ix86_conditional_register_usage): Adjust
8949 comment and use macro TARGET_64BIT_MS_ABI instead.
8950 (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
8951 and change default behavior for 32-bit MS_ABI.
8952 (ix86_reg_parm_stack_space): Check additionally for bit-ness.
8953 (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
8954 32-bit, too.
8955 (ix86_cfun_abi): Likewise.
8956 (ix86_maybe_switch_abi): Adjust comment.
8957 (init_cumulative_args): Check for bit-ness in MS_ABI case.
8958 (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
8959 instead of checking for SYSV_ABI.
8960 (ix86_nsaved_sseregs): Likewise.
8961 (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
8962 to 16 bytes.
8963 (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
8964 * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
8965 (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
8966 (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
8967 * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
8968
34019e28
RG
89692011-03-25 Richard Guenther <rguenther@suse.de>
8970
8971 * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
8972 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
8973 (verify_gimple): Remove.
8974 * tree-cfg.c (verify_gimple_call): Merge verification
8975 from verify_stmts.
8976 (verify_gimple_phi): Merge verification from verify_stmts.
8977 (verify_gimple_label): New function.
8978 (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
8979 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
8980 (verify_stmt): Merge into verify_gimple_in_cfg and callees.
8981 (verify_stmts): Rename to verify_gimple_in_cfg.
8982 (verify_gimple_in_cfg): New function.
8983 * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
8984 * tree-ssa.c (verify_ssa): Likewise.
8985 * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
8986
605896f5
RG
89872011-03-25 Richard Guenther <rguenther@suse.de>
8988
8989 * passes.c (init_optimization_passes): Add FRE pass after
8990 early SRA.
8991
7baa7c13
BS
89922011-03-25 Bernd Schmidt <bernds@codesourcery.com>
8993 Andrew Stubbs <ams@codesourcery.com>
8994
8995 * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
8996 for Cortex-A8.
8997 (arm_movdi_vfp_cortexa8): New pattern.
8998 * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
8999 iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
9000 instructions when tuning for Cortex-A8. Set attribute "arch".
9001 * config/arm/arm.md: Move include arm-tune.md up a bit.
9002 (define_attr "arch"): Add "onlya8" and "nota8" values.
9003 (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
9004
45dbce1b
NF
90052011-03-25 Nathan Froyd <froydnj@codesourcery.com>
9006
4ff08abf 9007 PR bootstrap/48282
45dbce1b
NF
9008 Revert:
9009 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
9010
9011 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
9012 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
9013 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
9014 * passes.c (init_optimization_passes): Move
9015 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
9016
ac9a30ae
KT
90172011-03-25 Kai Tietz <ktietz@redhat.com>
9018
9019 * c-typeck.c (comptypes_internal): Replace target
9020 hook call of comp_type_attributes by version in tree.c file.
9021 * gimple.c (gimple_types_compatible_p_1): Likewise.
9022 * tree-ssa.c (useless_type_conversion_p): Likewise.
9023 * tree.c (build_type_attribute_qual_variant): Likewise.
9024 (attribute_value_equal): New static helper function.
9025 (comp_type_attributes): New function.
9026 (merge_attributes): Use attribute_value_equal for comparison.
9027 (attribute_list_contained): Likewise.
9028 * tree.h (comp_type_attributes): New prototype.
9029
afdac116
RG
90302011-03-25 Richard Guenther <rguenther@suse.de>
9031
9032 * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
9033 of complex types at -O0.
9034 (verify_gimple_assign_binary): Likewise.
9035 (verify_gimple_assign_ternary): Likewise.
9036
ec6165f8
MW
90372011-03-24 Mark Wielaard <mjw@redhat.com>
9038
9039 * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
9040 (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
9041
2a5ac39a
MW
90422011-03-24 Mark Wielaard <mjw@redhat.com>
9043
9044 PR debug/48041
9045 * dwarf2out.c (output_abbrev_section): Only write table when
9046 abbrev_die_table_in_use > 1.
9047
e533b2a4
RH
90482011-02-24 Richard Henderson <rth@redhat.com>
9049
9050 * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
9051 (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
9052 (alpha_expand_unaligned_load_words): Use extql.
9053 (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
9054 (emit_insxl): Handle all modes for consistency.
9055
0b2a7367
RH
90562011-02-24 Richard Henderson <rth@redhat.com>
9057
9058 * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
9059 (alpha_expand_unaligned_load): Likewise.
9060 (alpha_expand_unaligned_store): Likewise.
9061 (alpha_expand_unaligned_load_words): Likewise.
9062 (alpha_expand_unaligned_store_words): Likewise.
9063 (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
9064 (alpha_split_lock_test_and_set_12): Likewise.
9065 (print_operand, alpha_fold_builtin_extxx): Likewise.
9066 (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
9067 * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
9068 (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
9069 (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
9070 (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
9071 (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
9072 (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
9073 (unaligned_storeqi_be, unaligned_storehi_be): Remove.
9074 (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
9075 (extwl, extll, extql): Similarly.
9076 (inswh, inslh, insqh): Similarly.
9077 (mskbl, mskwl, mskll, mskql): Similarly.
9078 (mskwh, msklh, mskqh): Similarly.
9079
315b2bef
RH
90802011-02-24 Richard Henderson <rth@redhat.com>
9081
9082 * config/alpha/alpha.md (attribute isa): Add er, ner.
9083 (attribute enabled): Handle them.
9084 (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
9085
67102517
RH
90862011-02-24 Richard Henderson <rth@redhat.com>
9087
9088 * config/alpha/alpha.md (attribute isa): Add vms.
9089 (attribute enabled): Handle it.
9090 (*movsf): Merge *movsf_{nofix,fix,nofp}.
9091 (*movdf): Merge *movdf_{nofix,fix,nofp}.
9092 (*movtf): Rename from *movtf_internal for consistency.
9093 (*movsi): Merge with *movsi_nt_vms.
9094 (*movhi): Merge *movhi_nobwx, *movhi_bwx.
9095 (*movqi): Merge *movqi_nobwx, *movqi_bwx.
9096 (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
9097 * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
9098
6aba5cb4
RH
90992011-02-24 Richard Henderson <rth@redhat.com>
9100
9101 * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
9102 (extendqisi2, extendhisi2): Likewise.
9103 (extendqidi2): Simplify BWX/non-BWX expansions.
9104 (extendhidi2): Similarly.
9105
bdfb351b
RH
91062011-02-24 Richard Henderson <rth@redhat.com>
9107
9108 * config/alpha/alpha.md (attribute isa): New.
9109 (attribute enabled): New.
9110 (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
9111 (zero_extendqisi2, zero_extendqidi2): Similarly.
9112 (zero_extendhisi2, zero_extendhidi2): Similarly.
9113 * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
9114
6abe71eb
RH
91152011-02-24 Richard Henderson <rth@redhat.com>
9116
9117 * config/alpha/predicates.md (input_operand): Revert last change;
9118 update comment to mention 32-bit VMS rather than Windows.
9119
7114321e
NF
91202011-03-24 Nathan Froyd <froydnj@codesourcery.com>
9121
9122 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
9123 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
9124 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
9125 * passes.c (init_optimization_passes): Move
9126 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
9127
c8679567
EB
91282011-03-24 Eric Botcazou <ebotcazou@adacore.com>
9129
9130 * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
9131
27173058
UB
91322011-03-24 Uros Bizjak <ubizjak@gmail.com>
9133
9134 * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
9135 correctly.
9136
6f0c9f06
JJ
91372011-03-24 Jakub Jelinek <jakub@redhat.com>
9138
9139 PR debug/48204
9140 * simplify-rtx.c (simplify_const_unary_operation): Call
9141 real_convert when changing mode class with FLOAT_EXTEND.
9142
662666e5
NC
91432011-03-24 Nick Clifton <nickc@redhat.com>
9144
9145 * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
9146 (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
9147 * config/rx/rx.c (rx_option_override): Set align_jumps,
9148 align_loops and align_labels if not set by the user.
9149 (rx_align_for_label): New function.
9150 (rx_max_skip_for_label): New function.
9151 (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
9152 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
9153 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
9154 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
9155 * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
9156
2b99b2b8
RS
91572011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
9158
9159 PR rtl-optimization/48263
9160 * optabs.c (expand_binop_directly): Reinstate convert_modes code
9161 and original commutative_p handling. Use maybe_gen_insn.
9162
ccecd6ea
AK
91632011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9164
9165 * reload.c (find_reloads_subreg_address): Add address_reloaded
9166 parameter and return true there if the full address has been
9167 reloaded.
9168 (find_reloads_toplev): Pass address_reloaded flag.
9169 (find_reloads_address_1): Don't use address_reloaded parameter.
9170
67295642
JL
91712011-03-24 Jeff Law <law@redhat.com>
9172
9173 * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
9174 unused variable "ann".
9175 (remove_unused_locals): Likewise.
9176
9177 * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
9178 statement.
9179
9180 * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
9181 after it is freed.
9182
212aa74f
AK
91832011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9184
9185 * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
9186 for invalid symbolic addresses.
9187 (s390_secondary_reload): Don't use s390_check_symref_alignment for
9188 larl operands.
9189
fe784e0d
EB
91902011-03-24 Eric Botcazou <ebotcazou@adacore.com>
9191
9192 * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
9193 the argument in calls to fold_truth_not_expr.
9194
63ee8641
NF
91952011-03-24 Nathan Froyd <froydnj@codesourcery.com>
9196
9197 * tree.c (record_node_allocation_statistics): New function.
9198 (make_node_stat, copy_node_stat, build_string): Call it.
9199 (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
9200 (build1_stat, build_omp_clause): Likewise.
9201
61be2a1c
RS
92022011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
9203
9204 * builtins.c (expand_movstr): Fix endp == 1 adjustment after
9205 last commit.
9206
a881aaa7
RG
92072011-03-24 Richard Guenther <rguenther@suse.de>
9208
9209 PR tree-optimization/48271
9210 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
9211 blocks that still exist.
9212
dbaa912c
RG
92132011-03-24 Richard Guenther <rguenther@suse.de>
9214
9215 PR tree-optimization/48270
9216 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
9217 not free datarefs before ddrs.
9218
1d60cc55
EB
92192011-03-24 Eric Botcazou <ebotcazou@adacore.com>
9220
9221 * tree-sra.c (build_ref_for_offset): Strip useless type conversions
9222 from the address built for a reference with variable offset.
9223
c78dd519
UB
92242011-03-24 Uros Bizjak <ubizjak@gmail.com>
9225
9226 PR target/48237
9227 * config/i386/i386.md (*movdf_internal_rex64): Do not split
9228 alternatives that can be handled with movq or movabsq insn.
9229 (*movdf_internal): Disable for !TARGET_64BIT.
9230 (*movdf_internal_nointeger): Ditto.
9231 * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
9232
b25b9e8f
NF
92332011-03-24 Nathan Froyd <froydnj@codesourcery.com>
9234
9235 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
9236 (FUNCTION_ARG_ADVANCE): Likewise.
9237 * tm.texi.in: Change references to them to hook references.
9238 * tm.texi: Regenerate.
c78dd519 9239 * targhooks.c (default_function_arg): Eliminate check for target macro.
b25b9e8f
NF
9240 (default_function_incoming_arg): Likewise.
9241 (default_function_arg_advance): Likewise.
c78dd519 9242 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
b25b9e8f
NF
9243 (function_arg_advance): Likewise.
9244 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
9245
190b2187
RG
92462011-03-24 Richard Guenther <rguenther@suse.de>
9247
9248 PR middle-end/48269
9249 * tree-object-size.c (addr_object_size): Do not double-account
9250 for MEM_REF offsets.
9251
a183b5c7
DN
92522011-03-24 Diego Novillo <dnovillo@google.com>
9253
9254 * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
c78dd519 9255 * lto-streamer-in.c (input_string_internal): Add clarifying comments.
a183b5c7
DN
9256 (lto_input_data_block): Move from lto-opts.c. Make extern.
9257 Update all users.
9258 (lto_input_string): Rename from input_string. Make extern.
9259 Update all users.
9260 * lto-streamer-out.c (lto_output_string_with_length): Rename from
9261 output_string_with_length.
9262 Output 0 to indicate a non-NULL string. Update all callers to
9263 not emit 0.
9264 (lto_output_string): Rename from output_string. Make extern.
9265 Update all users.
9266 (lto_output_decl_state_streams): Make extern.
9267 (lto_output_decl_state_refs): Make extern.
9268 * lto-streamer.h (lto_input_string): Declare.
9269 (lto_input_data_block): Declare.
9270 (lto_output_string): Declare.
9271 (lto_output_string_with_length): Declare.
9272 (lto_output_decl_state_streams): Declare.
9273 (lto_output_decl_state_refs): Declare.
9274
cfef45c8
RG
92752011-03-24 Richard Guenther <rguenther@suse.de>
9276
9277 PR tree-optimization/46562
9278 * tree.c (build_invariant_address): New function.
9279 * tree.h (build_invariant_address): Declare.
9280 * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
9281 a renamed function moved ...
9282 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
9283 Take valueization callback parameter.
9284 * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
9285 * gimple-fold.h: New file.
9286 * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
9287 (ccp_fold, fold_const_aggregate_ref,
9288 fold_ctor_reference, fold_nonarray_ctor_reference,
9289 fold_array_ctor_reference, fold_string_cst_ctor_reference,
9290 get_base_constructor): Move ...
9291 * gimple-fold.c: ... here.
9292 (gimple_fold_stmt_to_constant_1): New function
9293 split out from ccp_fold. Take a valueization callback parameter.
9294 Valueize all operands.
9295 (gimple_fold_stmt_to_constant): New wrapper function.
9296 (fold_const_aggregate_ref_1): New function split out from
9297 fold_const_aggregate_ref. Take a valueization callback parameter.
9298 (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
9299 * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
9300 invariant POINTER_PLUS_EXPRs to invariant form.
9301 (vn_valueize): New function.
9302 (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
9303 * tree-vrp.c (vrp_valueize): New function.
9304 (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
9305 to fold statements to constants.
9306 * tree-ssa-pre.c (eliminate): Properly guard propagation of
9307 function declarations.
9308 * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
9309 tree-ssa-ccp.o): Add gimple-fold.h dependencies.
9310
5e0a7e40
RS
93112011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
9312
9313 * config/h8300/predicates.md (jump_address_operand): Fix register
9314 mode check.
9315
bfe068c3
IR
93162011-03-24 Ira Rosen <ira.rosen@linaro.org>
9317
9318 * doc/invoke.texi (max-stores-to-sink): Document.
9319 * params.h (MAX_STORES_TO_SINK): Define.
9320 * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
9321 if either vectorization or if-conversion is disabled.
9322 * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
9323 tree-vect-data-refs.c vect_equal_offsets.
9324 (dr_equal_offsets_p): New function.
9325 (find_data_references_in_bb): Remove static.
9326 * tree-data-ref.h (find_data_references_in_bb): Declare.
9327 (dr_equal_offsets_p): Likewise.
9328 * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
9329 (vect_drs_dependent_in_basic_block): Update calls to
9330 vect_equal_offsets.
9331 (vect_check_interleaving): Likewise.
9332 * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
9333 (cond_if_else_store_replacement): Rename to...
9334 (cond_if_else_store_replacement_1): ... this. Change arguments and
9335 documentation.
9336 (cond_if_else_store_replacement): New function.
9337 * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
9338 * params.def (PARAM_MAX_STORES_TO_SINK): Define.
9339
4908b0bf
CLT
93402011-03-23 Chung-Lin Tang <cltang@codesourcery.com>
9341
9342 PR target/46934
9343 * config/arm/arm.md (casesi): Use the gen_int_mode() function
9344 to subtract lower bound instead of GEN_INT().
9345
2be478a2
JW
93462011-03-23 Jonathan Wakely <jwakely.gcc@gmail.com>
9347
9348 PR other/48179
9349 PR other/48221
9350 PR other/48234
9351 * doc/extend.texi (Alignment): Move section to match order in TOC.
9352 * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
9353 (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
9354
0c617be4
JL
93552011-03-23 Jeff Law <law@redhat.com>
9356
9357 * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
9358 before removing the edge.
9359
9360 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
9361 it may have been freed by redirect_branch_edge or
9362 redirect_edge_succ_nodup.
9363
58da96fe
RG
93642011-03-23 Richard Guenther <rguenther@suse.de>
9365
c78dd519 9366 * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
58da96fe
RG
9367 (check_va_list_escapes): Likewise.
9368 (check_all_va_list_escapes): Likewise.
9369
b8beb4d1
RG
93702011-03-23 Richard Guenther <rguenther@suse.de>
9371
9372 * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
9373 (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
9374 (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
9375 (alias.o): Likewise.
9376 (ipa-type-escape.o): Remove.
9377 (ipa-struct-reorg.o): Likewise.
9378 (GTFILES): Remove ipa-struct-reorg.c.
9379 * alias.c: Do not include ipa-type-escape.h.
9380 * tree-ssa-alias.c: Likewise.
9381 * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
9382 * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
9383 * passes.c (init_optimization_passes): Remove ipa-struct-reorg
9384 and ipa-type-escape passes.
9385 * tree-pass.h (pass_ipa_type_escape): Remove.
9386 (pass_ipa_struct_reorg): Likewise.
9387 * ipa-struct-reorg.h: Remove.
9388 * ipa-struct-reorg.c: Likewise.
9389 * ipa-type-escape.h: Likewise.
9390 * ipa-type-escape.c: Likewise.
9391 * doc/invoke.texi (-fipa-struct-reorg): Remove.
9392 (--param struct-reorg-cold-struct-ratio): Likewise.
9393 * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
9394 * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
9395 * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
9396
f137aa63
AK
93972011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9398
9399 * config/s390/2084.md: Enable all insn reservations also for z9_ec
9400 cpu attribute value.
9401 * config/s390/s390-opts.h (enum s390_arch_option): Remove.
9402 (enum processor_type): Add PROCESSOR_2094_Z9_EC.
9403 * config/s390/s390.c (processor_flags_table): New constant array.
9404 (s390_handle_arch_option): Remove.
9405 (s390_handle_option): Remove s390_handle_arch_option invocations
9406 and OPT_mwarn_framesize_ handling.
9407 (s390_option_override): Remove s390_handle_arch_option invocation.
9408 (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
9409 warnings.
9410 * config/s390/s390.md (cpu attribute): Add z9_ec value.
9411 * config/s390/s390.opt (s390_tune, s390_arch)
9412 (march=): Replace s390_arch_option enum and values with
9413 processor_type. Set variable name to s390_arch. Set
9414 initialization value.
9415 (mtune=): Replace s390_arch_option with processor_type. Set
9416 variable name to s390_tune. Set initialization value.
9417
bf90208f
JB
94182011-03-23 Julian Brown <julian@codesourcery.com>
9419
9420 * expr.c (expand_expr_real_1): Only use BLKmode for volatile
9421 accesses which are not naturally aligned.
9422
3460fdf3
RS
94232011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
9424
9425 PR target/47553
9426 * config/arm/predicates.md (neon_lane_number): Accept 0..15.
9427
a5c7d693
RS
94282011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
9429
9430 * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
9431 parameter from "int" to "enum insn_code".
9432 (expand_operand_type): New enum.
9433 (expand_operand): New structure.
9434 (create_expand_operand): New function.
9435 (create_fixed_operand, create_output_operand): Likewise
9436 (create_input_operand, create_convert_operand_to): Likewise.
9437 (create_convert_operand_from, create_address_operand): Likewise.
9438 (create_integer_operand): Likewise.
9439 (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
9440 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
9441 (expand_insn, expand_jump_insn): Likewise.
9442 * builtins.c (expand_builtin_prefetch): Use the new interfaces.
9443 (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
9444 (expand_movstr, expand_builtin___clear_cache): Likewise.
9445 (expand_builtin_lock_release): Likewise.
9446 * explow.c (allocate_dynamic_stack_space): Likewise.
9447 (probe_stack_range): Likewise. Allow check_stack to FAIL,
9448 and use the default handling in that case.
9449 * expmed.c (check_predicate_volatile_ok): Delete.
9450 (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
9451 (emit_cstore): Likewise.
9452 * expr.c (emit_block_move_via_movmem): Likewise.
9453 (set_storage_via_setmem, expand_assignment): Likewise.
9454 (emit_storent_insn, try_casesi): Likewise.
9455 (emit_single_push_insn): Likewise. Allow the expansion to fail.
9456 * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
9457 (expand_vec_shift_expr, expand_binop_directly): Likewise.
9458 (expand_twoval_unop, expand_twoval_binop): Likewise.
9459 (expand_unop_direct, emit_indirect_jump): Likewise.
9460 (emit_conditional_move, vector_compare_rtx): Likewise.
9461 (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
9462 (expand_sync_operation, expand_sync_fetch_operation): Likewise.
9463 (expand_sync_lock_test_and_set): Likewise.
9464 (maybe_emit_unop_insn): Likewise. Change icode to an insn_code.
9465 (emit_unop_insn): Likewise.
9466 (expand_copysign_absneg): Change icode to an insn_code.
9467 (create_convert_operand_from_type): New function.
9468 (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
9469 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
9470 (expand_insn, expand_jump_insn): Likewise.
9471 * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
9472 than const_int_operand for operand 2.
9473
78fadbab
AK
94742011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9475
9476 * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
9477 if possible.
9478
5f02387d
NF
94792011-03-22 Nathan Froyd <froydnj@codesourcery.com>
9480
9481 * emit-rtl.c (emit_pattern_before_noloc): New function.
9482 (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
9483 (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
9484 (emit_pattern_after_noloc): New function.
9485 (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
9486 (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
9487
fdf3e18a
NF
94882011-03-22 Nathan Froyd <froydnj@codesourcery.com>
9489
9490 * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
9491 (__ffsDI2): Likewise.
9492
42d085c1
RH
94932011-03-22 Richard Henderson <rth@redhat.com>
9494
9495 * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
9496 of !TARGET_ABI_OPEN_VMS.
9497 (alpha_trampoline_init, alpha_start_function): Likewise.
9498 (alpha_expand_epilogue, alpha_file_start): Likewise.
9499 * config/alpha/alpha.md (divsi3, modsi3): Likewise.
9500 (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
9501 (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
9502 (*divmodsi_internal, *divmoddi_internal_er): Likewise.
9503 (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
9504
cabbe12a
JM
95052011-03-22 Joseph Myers <joseph@codesourcery.com>
9506
9507 * config/s390/s390-opts.h: New.
9508 * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
9509 s390_arch_flags, s390_warn_framesize, s390_stack_size,
9510 s390_stack_guard): Remove.
9511 (s390_handle_arch_option): Return void. Take enum
9512 s390_arch_option value instead of string and searching array.
9513 (s390_handle_option): Don't assert that global structures are in
9514 use. Access variables via opts pointer. Use error_at. Don't use
9515 sscanf for -mstack-guard= or -mstack-size=. Update call to
9516 s390_handle_arch_option.
9517 (s390_option_override): Update call to s390_handle_arch_option.
9518 (s390_emit_prologue): Use %d format for s390_stack_size in
9519 diagnostic. Use %wd for HOST_WIDE_INT.
9520 * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
9521 (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
9522 * config/s390/s390.opt (config/s390/s390-opts.h): New
9523 HeaderInclude entry.
9524 (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
9525 s390_arch_flags, s390_warn_framesize): New Variable entries.
9526 (s390_arch_option): New Enum and EnumValue entries.
9527 (march=): Use Enum instead of Var.
9528 (mstack-guard=, mstack-size=): Use UInteger and Var.
9529 (mtune=): Use Enum.
9530
05b12036
JM
95312011-03-22 Joseph Myers <joseph@codesourcery.com>
9532
9533 * config/score/score.c (score_handle_option): Don't assert that
9534 global structures are in use. Access target_flags via opts
9535 pointer. Use value of -march= option to determine target_flags
9536 settings.
9537 * config/score/score.opt (march=): Use Enum.
9538 (score_arch): New Enum and EnumValue entries.
9539
dd51e35a
JM
95402011-03-22 Joseph Myers <joseph@codesourcery.com>
9541
9542 * config/mep/mep.c (option_mtiny_specified): Remove.
9543 (mep_option_override): Move register handling for -mivc2 from
9544 mep_handle_option. Use global_options_set.x_mep_tiny_cutoff
9545 instead of option_mtiny_specified.
9546 (mep_handle_option): Access target_flags via opts pointer. Don't
9547 assert that global structures are in use. Defer part of -mivc2
9548 handling and move it to mep_option_override.
9549 * config/mep/mep.opt (IVC2): New Mask entry.
9550 (mivc2): Use Var and Defer instead of Mask.
9551
4a8d3d91
JM
95522011-03-22 Joseph Myers <joseph@codesourcery.com>
9553
9554 * config/v850/v850-opts.h: New.
9555 * config/v850/v850.c (small_memory): Replace with
9556 small_memory_physical_max array. Make that array static const.
9557 (v850_handle_memory_option): Take integer value of argument. Take
9558 gcc_options pointer, option text and location. Return void.
9559 Update for changes to small memory structures.
9560 (v850_handle_option): Access target_flags via opts pointer. Don't
9561 assert that global structures are in use. Update calls to
9562 v850_handle_memory_option.
c78dd519
UB
9563 (v850_encode_data_area): Update references to small memory settings.
9564 * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
4a8d3d91
JM
9565 (enum small_memory_type): Move to v850-opts.h.
9566 * config/v850/v850.opt (config/v850/v850-opts.h): New
9567 HeaderInclude entry.
9568 (small_memory_max): New Variable entry.
9569 (msda): Replace by pair of options msda= and msda-. Use UInteger.
9570 (mtda, mzda): Likewise.
9571
117fdbfa
JM
95722011-03-22 Joseph Myers <joseph@codesourcery.com>
9573
9574 * config/sh/sh.c (sh_handle_option): Access target_flags via opts
9575 pointer. Don't assert that global structures are in use.
9576
d715091c
JM
95772011-03-22 Joseph Myers <joseph@codesourcery.com>
9578
9579 * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
9580 via opts pointer. Don't assert that global structures are in use.
9581
1bb721dc
JM
95822011-03-22 Joseph Myers <joseph@codesourcery.com>
9583
9584 * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
9585 (munix=93): Use Var.
9586 * config/pa/pa-hpux1010.opt (munix=95): Use Var.
9587 * config/pa/pa-hpux1111.opt (munix=98): Use Var.
9588 * config/pa/pa-opts.h: New.
9589 * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
9590 (pa_handle_option): Don't assert that global structures are in
9591 use. Access target_flags via opts pointer. Don't handle
9592 OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
9593 OPT_munix_98 here.
9594 (pa_option_override): Handle deferred OPT_mfixed_range_.
9595
cd8d8754
JM
95962011-03-22 Joseph Myers <joseph@codesourcery.com>
9597
9598 * config/mn10300/mn10300-opts.h: New.
9599 * config/mn10300/mn10300.c (mn10300_processor,
9600 mn10300_tune_string): Remove.
9601 (mn10300_handle_option): Don't assert that global structures are
9602 in use. Access mn10300_processor via opts pointer. Don't handle
9603 OPT_mtune_ here.
9604 * config/mn10300/mn10300.h (enum processor_type): Move to
9605 mn10300-opts.h.
9606 (mn10300_processor): Remove.
9607 * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
9608 HeaderInclude entry.
9609 (mn10300_processor): New Variable entry.
9610 (mtune=): Use Var.
9611
24e6e6b1
JM
96122011-03-22 Joseph Myers <joseph@codesourcery.com>
9613
9614 * config/microblaze/microblaze.c: Don't include opts.h.
9615 (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
9616 * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
9617 (mno-clearbss): Use Var and Warn.
9618
8a784afb
JM
96192011-03-22 Joseph Myers <joseph@codesourcery.com>
9620
9621 * config/m32r/m32r-opts.h: New.
9622 * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
9623 (m32r_handle_option): Don't assert that global structures are in
9624 use. Access target_flags and m32r_cache_flush_func via opts
9625 pointer. Don't handle OPT_mmodel_, OPT_msdata_ or
9626 OPT_mno_flush_trap here.
9627 * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
9628 include of m32r-opts.h.
9629 * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
9630 HeaderInclude entry.
9631 (m32r_model_selected, m32r_sdata_selected): New Variable entries.
9632 (mmodel=): Use Enum and Var.
9633 (m32r_model): New Enum and EnumValue entries.
9634 (mno-flush-trap): Use Var.
9635 (msdata=): Use Enum and Var.
9636 (m32r_sdata): New Enum and EnumValue entries.
9637
bbfc9a8c
JM
96382011-03-22 Joseph Myers <joseph@codesourcery.com>
9639
9640 * config/m32c/m32c.c: Don't include opts.h.
9641 (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
9642 m32c_handle_option): Remove.
9643 (m32c_option_override): Check global_options_set.x_target_memregs
9644 instead of target_memregs_set.
9645 * config/m32c/m32c.h (target_memregs): Remove.
9646 * config/m32c/m32c.opt (memregs=): Use UInteger with integer
9647 variable.
9648
e24b8335
JM
96492011-03-22 Joseph Myers <joseph@codesourcery.com>
9650
9651 * config/iq2000/iq2000-opts.h: New.
9652 * config/iq2000/iq2000.c: Don't include opts.h.
9653 (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
c78dd519 9654 * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
e24b8335
JM
9655 * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
9656 HeaderInclude entry.
9657 (iq2000_tune): New Variable entry.
9658 (march=): Add comment. Use Enum.
9659 (iq2000_arch): New Enum and EnumValue entries.
9660 (mcpu=): Use Enum and Var.
9661 (iq2000_tune): New Enum and EnumValue entries.
9662
e6cc0c98
JM
96632011-03-22 Joseph Myers <joseph@codesourcery.com>
9664
9665 * config/ia64/ia64-opts.h: New.
9666 * config/ia64/ia64.c (ia64_tune): Remove.
9667 (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
9668 here. Use error_at.
9669 (ia64_option_override): Handle deferred OPT_mfixed_range_.
9670 * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
9671 * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
9672 HeaderInclude entry.
9673 (ia64_tune): New Variable entry.
9674 (mfixed-range=): Use Defer and Var.
9675 (mtune=): Use Enum and Var.
9676 (ia64_tune): New Enum and EnumValue entries.
9677
db25893c
JM
96782011-03-22 Joseph Myers <joseph@codesourcery.com>
9679
9680 * config/frv/frv-opts.h: New.
9681 * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
9682 frv-opts.h.
9683 (frv_cpu_type): Remove.
9684 * config/frv/frv.c: Don't include opts.h.
9685 (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
c78dd519 9686 * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
db25893c
JM
9687 (frv_cpu_type): New Variable entry.
9688 (frv_cpu): New Enum and EnumValue entries.
9689
6c223f5d
JM
96902011-03-22 Joseph Myers <joseph@codesourcery.com>
9691
9692 * config/cris/cris.c (cris_handle_option): Access target_flags via
9693 opts pointer. Don't assert that global structures are in use.
9694 Don't call CRIS_SUBTARGET_HANDLE_OPTION.
9695 * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
9696
bbd399cf
JM
96972011-03-22 Joseph Myers <joseph@codesourcery.com>
9698
9699 * config/bfin/bfin-opts.h: New.
9700 * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
9701 bfin_si_revision, bfin_workarounds): Remove.
9702 (bfin_cpus): Make static const.
9703 (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
9704 not bfin_lib_id_given.
9705 (bfin_handle_option): Don't set bfin_lib_id_given. Access
9706 bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
c78dd519 9707 pointer. Use error_at. Don't assert that global structures are in use.
bbd399cf
JM
9708 * config/bfin/bfin.h: Include bfin-opts.h.
9709 (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
9710 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
9711 * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
9712 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
9713 entries.
9714
5e1b4d5a
JM
97152011-03-22 Joseph Myers <joseph@codesourcery.com>
9716
9717 * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
9718 * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
9719 or -msoft-float here.
9720 * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
9721 -msoft-float and -mhard-float.
c78dd519 9722 (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
5e1b4d5a
JM
9723 * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
9724 msoft-float.
9725 * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
9726 -msoft-float.
9727 (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
9728 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
9729 not mhard-float.
9730 (LIBGCC_SPEC): Don't handle -msoft-float.
9731 * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
9732 -mhard-float.
9733 * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
9734 msoft-float.
9735 * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
9736 -mfloat-abi=*, not -msoft-float and -mhard-float.
9737 * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
9738 -msoft-float.
9739 * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
9740 Use mfloat-abi=hard and mfloat-abi=soft in comments, not
9741 mhard-float and msoft-float.
9742 * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
9743 mfloat-abi=soft in comments, not mhard-float and msoft-float.
9744 * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
9745 mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
9746 mhard-float.
9747 * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
9748 mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
9749 msoft-float.
9750 * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
9751 not mhard-float.
9752 * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
9753 not msoft-float.
9754
800d1de1
RH
97552011-03-22 Richard Henderson <rth@redhat.com>
9756
9757 * config/alpha/alpha.c (alpha_expand_prologue): Don't test
9758 TARGET_ABI_WINDOWS_NT.
9759 (alpha_output_function_end_prologue): Likewise.
9760 * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
9761 (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
9762 * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
9763 (trap, *movsi_nt_vms): Likewise.
9764 (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
9765 (*tablejump_osf_nt_internal): Remove.
9766 * config/alpha/predicates.md (input_operand): Only test Pmode.
9767
c59ddd2b
JM
97682011-03-22 Joseph Myers <joseph@codesourcery.com>
9769
9770 * config/alpha/alpha.c (alpha_handle_option): Access target_flags
9771 via opts pointer. Use error_at. Don't assert that global
9772 structures are in use.
9773
1333f97f
JM
97742011-03-22 Joseph Myers <joseph@codesourcery.com>
9775
9776 * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
9777 (ix86_handle_option): Access ix86_isa_flags and
9778 ix86_isa_flags_explicit via opts pointer. Don't assert that
9779 global structures are in use.
9780 (ix86_function_specific_save, ix86_function_specific_restore):
9781 Update ix86_isa_flags_explicit field name.
c78dd519 9782 * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
1333f97f
JM
9783 (ix86_isa_flags_explicit): Rename TargetSave entry to
9784 x_ix86_isa_flags_explicit.
9785
75db85d8
RH
97862011-03-22 Richard Henderson <rth@redhat.com>
9787
9788 * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
9789 (alpha_option_override, direct_return): Likewise.
9790 (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
9791 (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
9792 (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
9793 (alpha_start_function, alpha_output_function_end_prologue): Likewise.
9794 (alpha_expand_epilogue, alpha_end_function): Likewise.
9795 (alpha_init_libfuncs): Likewise.
9796 (struct machine_function): Remove unicosmk members.
9797 (print_operand) ['t']: Remove.
9798 (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
9799 unicosmk_output_module_name, unicosmk_output_common,
9800 current_section_align, unicosmk_output_text_section_asm_op,
9801 unicosmk_output_data_section_asm_op, unicosmk_init_sections,
9802 unicosmk_section_type_flags, unicosmk_unique_section,
9803 unicosmk_asm_named_section, unicosmk_insert_attributes,
9804 unicosmk_output_align, unicosmk_defer_case_vector,
9805 unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
9806 SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
9807 unicosmk_output_ssib, unicosmk_add_call_info_word,
9808 unicosmk_extern_head, unicosmk_output_default_externs,
9809 unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
9810 unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
9811 unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
9812 * config/alpha/alpha-protos.h: Update.
9813 * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
9814 * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
9815 (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
9816 (mulsi3): Don't test TARGET_ABI_UNICOSMK.
9817 (*mulsi_se, mulvsi3): Likewise.
9818 (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
9819 (*divmodsi_internal, call, call_value, realign): Likewise.
9820 (moddi3, umoddi3): Likewise; remove duplicate expander.
9821 (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
9822 (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
9823 (*movdi_nofix): Remove r/U alternative.
9824 (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
9825 * config/alpha/constraints.md ("U"): Remove.
9826 * config/alpha/predicates.md (call_operand"): Don't test
9827 TARGET_ABI_UNICOSMK.
9828
96e45421
JM
98292011-03-22 Joseph Myers <joseph@codesourcery.com>
9830
9831 * target.def (handle_option): Take gcc_options and
9832 cl_decoded_option pointers and location_t.
9833 * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
9834 * doc/tm.texi: Regenerate.
9835 * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
9836 * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
9837 * lto-opts.c (lto_reissue_options): Generate option structure for
9838 targetm.handle_option call.
9839 * opts.c (target_handle_option): Update call to
9840 targetm.handle_option. Remove assertions about values now passed
9841 down to hook.
9842 * targhooks.c (default_target_handle_option): New.
9843 * targhooks.h (default_target_handle_option): Declare.
9844 * config/alpha/alpha.c: Include opts.h.
9845 (alpha_handle_option): Update to new hook interface.
9846 * config/arm/arm.c: Include opts.h.
9847 (arm_handle_option): Update to new hook interface.
9848 * config/arm/t-arm (arm.o): Update dependencies.
9849 * config/bfin/bfin.c: Include opts.h.
9850 (bfin_handle_option): Update to new hook interface.
9851 * config/cris/cris.c: Include opts.h.
9852 (cris_handle_option): Update to new hook interface.
9853 * config/frv/frv.c: Include opts.h.
9854 (frv_handle_option): Update to new hook interface.
9855 * config/i386/i386.c: Include opts.h.
9856 (ix86_handle_option): Update to new hook interface.
9857 (ix86_valid_target_attribute_inner_p): Generate option structure
9858 for call to ix86_handle_option.
9859 * config/i386/t-i386 (i386.o): Update dependencies.
9860 * config/ia64/ia64.c: Include opts.h.
9861 (ia64_handle_option): Update to new hook interface.
9862 * config/ia64/t-ia64 (ia64.o): Update dependencies.
9863 * config/iq2000/iq2000.c: Include opts.h.
9864 (iq2000_handle_option): Update to new hook interface.
9865 * config/m32c/m32c.c: Include opts.h.
9866 (m32c_handle_option): Update to new hook interface.
9867 * config/m32r/m32r.c: Include opts.h.
9868 (m32r_handle_option): Update to new hook interface.
9869 * config/m68k/m68k.c: Include opts.h.
9870 (m68k_handle_option): Update to new hook interface.
9871 * config/mep/mep.c: Include opts.h.
9872 (mep_handle_option): Update to new hook interface.
9873 * config/microblaze/microblaze.c: Include opts.h.
9874 (microblaze_handle_option): Update to new hook interface.
9875 * config/mips/mips.c: Include opts.h.
9876 (mips_handle_option): Update to new hook interface.
9877 * config/mn10300/mn10300.c: Include opts.h.
9878 (mn10300_handle_option): Update to new hook interface.
9879 * config/pa/pa.c: Include opts.h.
9880 (pa_handle_option): Update to new hook interface.
9881 * config/pdp11/pdp11.c: Include opts.h.
9882 (pdp11_handle_option): Update to new hook interface.
9883 * config/rs6000/rs6000.c: Include opts.h.
9884 (rs6000_handle_option): Update to new hook interface.
9885 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
9886 * config/rx/rx.c: Include opts.h.
9887 (rx_handle_option): Update to new hook interface.
9888 * config/s390/s390.c: Include opts.h.
9889 (s390_handle_option): Update to new hook interface.
9890 * config/score/score.c: Include opts.h.
9891 (score_handle_option): Update to new hook interface.
9892 * config/sh/sh.c: Include opts.h.
9893 (sh_handle_option): Update to new hook interface.
9894 * config/sparc/sparc.c: Include opts.h.
9895 (sparc_handle_option): Update to new hook interface.
9896 * config/v850/v850.c: Include opts.h.
9897 (v850_handle_option): Update to new hook interface.
9898
66017846
JM
98992011-03-22 Joseph Myers <joseph@codesourcery.com>
9900
9901 * gcc.c (driver_unknown_option_callback): Only permit and save
9902 unknown -Wno- options.
9903 (driver_wrong_lang_callback): Save options directly instead of via
9904 driver_unknown_option_callback.
9905
e8b97ccd
EB
99062011-03-22 Eric Botcazou <ebotcazou@adacore.com>
9907
9908 * combine.c (simplify_set): Try harder to find the best CC mode when
9909 simplifying a nested COMPARE on the RHS.
9910
ebb9f8b0
JM
99112011-03-22 Joseph Myers <joseph@codesourcery.com>
9912
9913 * config/alpha/gnu.h: Remove.
9914 * config/arc: Remove directory.
9915 * config/arm/netbsd.h: Remove.
9916 * config/arm/t-pe: Remove.
9917 * config/crx: Remove directory.
9918 * config/i386/netbsd.h: Remove.
9919 * config/m68hc11: Remove directory.
9920 * config/m68k/uclinux-oldabi.h: Remove.
9921 * config/mcore/mcore-pe.h: Remove.
9922 * config/mcore/t-mcore-pe: Remove.
9923 * config/netbsd-aout.h: Remove.
9924 * config/rs6000/gnu.h: Remove.
9925 * config/sh/sh-symbian.h: Remove.
9926 * config/sh/symbian-base.c: Remove.
9927 * config/sh/symbian-c.c: Remove.
9928 * config/sh/symbian-cxx.c: Remove.
9929 * config/sh/symbian-post.h: Remove.
9930 * config/sh/symbian-pre.h: Remove.
9931 * config/sh/t-symbian: Remove.
9932 * config/svr3.h: Remove.
9933 * config/vax/netbsd.h: Remove.
9934 * config.build: Don't handle i[34567]86-*-pe.
9935 * config.gcc: Remove handling of deprecations for most deprecated
9936 targets.
9937 (m68k-*-uclinuxoldabi*): Add to second deprecated list.
9938 (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
9939 i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
9940 m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
9941 powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
9942 sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
9943 Remove cases.
9944 * config.host: Don't handle i[34567]86-*-pe.
9945 * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
9946 (ASM_SPEC32): Don't handle -mcall-gnu.
9947 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
9948 -mcall-gnu.
9949 (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
9950 STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
9951 (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
9952 LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
9953 (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
9954 * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
9955 conditional on SYMBIAN.
9956 * configure.ac: Don't handle powerpc*-*-gnu*.
9957 * configure: Regenerate.
9958 * doc/extend.texi (interrupt attribute): Don't mention CRX.
9959 * doc/install-old.texi (m6811, m6812): Don't mention.
9960 * doc/install.texi (arc-*-elf*): Don't document multilib option.
9961 (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
9962 (m68k-uclinuxoldabi): Don't mention.
9963 * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
9964 Remove.
9965 (-mcall-gnu): Remove.
9966 * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
9967 families): Remove constraint documentation.
9968
999a7d80
MS
99692011-03-22 Marius Strobl <marius@FreeBSD.org>
9970
9971 * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
9972 (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
9973 (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
9974
45540bcf
MM
99752011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
9976
9977 PR target/48226
9978 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
9979 vector when peeking at the next token for vector, don't expand the
9980 keywords.
9981
980a0ff4
GJL
99822011-03-21 Georg-Johann Lay <avr@gjlay.de>
9983
9984 * config/avr/avr-protos.h (expand_epilogue): Change prototype
9985 * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
9986 * config/avr/avr.c (init_cumulative_args)
9987 (avr_function_arg_advance): Use it.
9988 * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
9989 sibcall epilogues.
9990 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
9991 (avr_function_ok_for_sibcall): ...this new function.
9992 (avr_lookup_function_attribute1): New static Function.
9993 (avr_naked_function_p, interrupt_function_p)
9994 (signal_function_p, avr_OS_task_function_p)
9995 (avr_OS_main_function_p): Use it.
9996 * config/avr/avr.md ("sibcall", "sibcall_value")
9997 ("sibcall_epilogue"): New expander.
9998 ("*call_insn", "*call_value_insn"): New insn.
9999 ("call_insn", "call_value_insn"): Remove
10000 ("call", "call_value", "epilogue"): Change expander to handle
10001 sibling calls.
10002
49168734
NC
100032011-03-21 Nick Clifton <nickc@redhat.com>
10004
10005 * doc/invoke.texi (Overall Options): Move closing brace to end of
10006 options list.
10007 (Optimization Options): Add missing @gol.
10008 (Directory Options): Likewise.
10009 (i386 and x86-64 Options): Likewise.
10010 (RS6000 and PowerPC Options): Likewise.
10011 (i386 and x86-64 Windows Options): Likewise.
10012 (V850 Options): Add text missing from descriptions.
10013
bdfe906f
RH
100142011-03-22 Richard Henderson <rth@redhat.com>
10015
10016 * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
10017 (avr_incoming_return_addr_rtx): New.
10018 (emit_push_byte): New.
10019 (expand_prologue): Use it. Remove incorrect dwarf annotation for
10020 SREG, RAMPZ, zero register. Push frame pointer by bytes. Add dwarf
10021 annotation for __prologue_saves__. Fixup dwarf annotation for CFA.
10022 (emit_pop_byte): New.
10023 (expand_epilogue): Use it. Pop frame pointer by bytes.
10024 * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
10025 (INCOMING_RETURN_ADDR_RTX): New.
10026 (INCOMING_FRAME_SP_OFFSET): New.
10027 (ARG_POINTER_CFA_OFFSET): New.
10028 * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
10029 (*pushhi, *pushsi, *pushsf, popqi): Likewise.
10030 (pophi): Remove.
10031
d090a5aa
RH
10032 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
10033
fdf3e18a
NF
100342011-03-22 Nathan Froyd <froydnj@codesourcery.com>
10035
10036 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
10037 (FUNCTION_ARG_ADVANCE): Likewise.
10038 * tm.texi.in: Change references to them to hook references.
10039 * tm.texi: Regenerate.
10040 * targhooks.c (default_function_arg): Eliminate check for target
10041 macro.
10042 (default_function_incoming_arg): Likewise.
10043 (default_function_arg_advance): Likewise.
c78dd519 10044 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
fdf3e18a
NF
10045 (function_arg_advance): Likewise.
10046 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
10047
009d3fcf
NF
100482011-03-22 Nathan Froyd <froydnj@codesourcery.com>
10049
10050 * tree.c (build_call_1): New function.
10051 (build_call_valist, build_call_array_loc, build_call_vec): Call it.
10052
7bec30e1
RG
100532011-03-22 Richard Guenther <rguenther@suse.de>
10054
10055 PR tree-optimization/48228
10056 * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
10057 for single-arg PHIs.
10058
0b7e851b
AB
100592011-03-22 Andrey Belevantsev <abel@ispras.ru>
10060
10061 PR rtl-optimization/48143
10062 * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
10063 (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
10064 sse2_cvtps2pd): Likewise.
10065
d89afca5
AK
100662011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10067
10068 * recog.c (canonicalize_change_group): Use validate_unshare_change.
10069
f471fe72
RG
100702011-03-22 Richard Guenther <rguenther@suse.de>
10071
10072 * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
10073 a valid RHS. Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
10074 * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
10075 and REALIGN_LOAD_EXPR.
10076 (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
10077 DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
10078 * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
10079 DOT_PROD_EXPR case ...
10080 (expand_expr_real_2): ... here.
10081 * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
10082 and REALIGN_LOAD_EXPR.
10083 * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
10084 * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
10085 (vect_create_epilog_for_reduction): Likewise.
10086 (vectorizable_reduction): Likewise.
10087 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
10088 * tree-vect-stmts.c (vectorizable_load): Likewise.
10089
f2f81d57
EB
100902011-03-22 Eric Botcazou <ebotcazou@adacore.com>
10091
10092 * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
10093
ab081dd6
AK
100942011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10095
10096 * config/s390/s390.c (s390_delegitimize_address): Fix offset
10097 handling for PLTOFF/GOTOFF.
10098
6fd5332b
NC
100992011-03-22 Nick Clifton <nickc@redhat.com>
10100
10101 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
10102 trailing backslash from the end of the macro definition.
10103
01841ac0
AK
101042011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10105
10106 * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
10107 and PLT unspecs.
10108
2ef6ce06
RS
101092011-03-21 Richard Sandiford <richard.sandiford@linaro.org>
10110
10111 * expr.h (prepare_operand): Move to...
10112 * optabs.h (prepare_operand): ...here and change the insn code
10113 parameter from "int" to "enum insn_code".
10114 (insn_operand_matches): Declare.
10115 * expr.c (init_expr_target): Use insn_operand_matches.
10116 (compress_float_constant): Likewise.
10117 * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
10118 * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
10119 (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
c78dd519
UB
10120 (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
10121 Likewise.
2ef6ce06
RS
10122 (gen_cond_trap): Likewise.
10123 (prepare_operand): Likewise. Change icode to an insn_code.
10124 (insn_operand_matches): New function.
10125 * reload.c (find_reloads_address_1): Use insn_operand_matches.
10126 * reload1.c (gen_reload): Likewise.
10127 * targhooks.c (default_secondary_reload): Likewise.
10128
9e43ad68
UB
101292011-03-21 Uros Bizjak <ubizjak@gmail.com>
10130
9a96da32
UB
10131 * config/alpha/alpha.md (unspec): New define_c_enum.
10132 (unspecv): Ditto.
10133
101342011-03-21 Uros Bizjak <ubizjak@gmail.com>
10135
10136 PR debug/48214
9e43ad68
UB
10137 * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
10138 between a call and its CALL_ARG_LOCATION note.
10139
31408f60
EB
101402011-03-21 Eric Botcazou <ebotcazou@adacore.com>
10141
10142 * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
10143
101442011-03-21 Jakub Jelinek <jakub@redhat.com>
126e6609
JJ
10145
10146 PR c/42544
10147 PR c/48197
10148 * c-common.c (shorten_compare): If primopN is first sign-extended
10149 to opN and then zero-extended to result type, set primopN to opN.
10150
9dfd55f5
DJ
101512011-03-21 Daniel Jacobowitz <dan@codesourcery.com>
10152
10153 * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
10154 for barrier handlers.
10155
f3c33d9d
MM
101562011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
10157
10158 * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
10159 UNSPEC constants to be in the unspec enumeration, and redefine
10160 all UNSPECV constants to be in the unspecv enumeration, so that
10161 dumps print which unspec/unspec_volatile this is.
10162 * config/rs6000/vector.md (UNSPEC_*): Ditto.
10163 * config/rs6000/paired.md (UNSPEC_*): Ditto.
10164 * config/rs6000/vsx.md (UNSPEC_*): Ditto.
10165 * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
10166 * config/rs6000/dfp.md (UNSPEC_*): Ditto.
10167
10168 * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
10169 UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
10170 UNSPECV_LWSYNC, since these are used as unspec_volatile.
10171 * config/rs6000/sync.md (isync, lwsync): Ditto.
10172
ac43f774
RG
101732011-03-21 Richard Guenther <rguenther@suse.de>
10174
10175 * params.def (lto-min-partition): Fix typo.
10176
411cdbd8
RG
101772011-03-21 Richard Guenther <rguenther@suse.de>
10178
10179 PR c/47939
10180 * c-decl.c (grokdeclarator): Drop to the main variant only
10181 for array types. Drop flag_gen_aux_info check.
10182
1cd9e416
RG
101832011-03-21 Richard Guenther <rguenther@suse.de>
10184
10185 PR translation/47911
10186 * params.def (lto-partitions): Fix typo.
10187 (lto-min-partition): Fix wording.
10188
ada5ad67
AT
101892011-03-21 Andreas Tobler <andreast@fgznet.ch>
10190
10191 * config/rs6000/t-freebsd: Remove duplication from file.
10192
f9613c9a
RG
101932011-03-21 Richard Guenther <rguenther@suse.de>
10194
10195 PR middle-end/47661
10196 * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
10197
9bfbc1eb
RG
101982011-03-21 Richard Guenther <rguenther@suse.de>
10199
10200 PR lto/48210
10201 * params.def (lto-partitions): Require at least 1 partition.
10202
a2268084
RO
102032011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10204
10205 * gthr-solaris.h: Remove.
10206 * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
10207 * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
10208 (LIB_SPEC): Likewise.
10209 * config/sol2.opt (threads): Remove.
9e43ad68 10210 * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
a2268084
RO
10211 (sparc*-*-solaris2*): Likewise.
10212 * configure.ac (enable_threads): Enable solaris support.
10213 * configure: Regenerate.
9e43ad68 10214 * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
a2268084
RO
10215 * doc/install.texi (Configuration, --enable-threads=lib): Remove
10216 solaris.
10217
c43d9a1b
RO
102182011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10219
10220 * config.gcc: Obsolete *-*-solaris2.8*.
10221 * doc/install.texi (Specific, *-*-solaris2*): Document it.
10222
084239f4
RO
102232011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10224
10225 PR bootstrap/48135
10226 * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
10227 reference. Solaris 8 perl works.
10228
64cadbe7
RO
102292011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10230
10231 PR bootstrap/48135
10232 * doc/install.texi (Prerequisites): Move jar etc. up.
10233 Explain support library version requirements.
10234
eb975109
RO
102352011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10236
10237 PR bootstrap/48135
10238 * doc/install.texi (Prerequisites): Move Perl to build
10239 requirements. Always necessary on Solaris 2 with Sun ld.
10240
8a509ffd
RO
102412011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10242
10243 * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
10244 binutils 2.21.
10245 (Specific, i?86-*-solaris2.[89]): Likewise.
10246 (Specific, i?86-*-solaris2.10): Likewise.
10247 (Specific, mips-sgi-irix6): Likewise.
10248 (Specific, *-*-solaris2*): Remove Sun Studio download URL.
10249 Update for binutils 2.21.
10250
8fbc58a1
RO
102512011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10252
10253 * configure.ac (gcc_cv_lto_plugin): Fix typo.
10254 Allow -fuse-linker-plugin for non-default plugin linker.
10255 * configure: Regenerate.
10256
7e84ad0b
NP
102572011-03-21 Nicola Pero <nicola.pero@meta-innovation.com>
10258
10259 PR bootstrap/48167
10260 * gengtype.c (files_rules): Added rule for cp/parser.h.
10261
2f36e14b
JJ
102622011-03-21 Jakub Jelinek <jakub@redhat.com>
10263
10264 PR target/48213
10265 * config/s390/s390.c (s390_delegitimize_address): Don't call
10266 lowpart_subreg if orig_x has BLKmode.
10267
62d784f7
KT
102682011-03-21 Kai Tietz <ktietz@redhat.com>
10269
10270 PR target/12171
9e43ad68
UB
10271 * doc/plugins.texi: Adjust documentation for plugin register_callback.
10272 * tree.h (attribute_spec): Add new member affects_type_identity.
10273 * attribs.c (empty_attribute_table): Adjust attribute_spec
10274 initializers.
62d784f7
KT
10275 * config/alpha/alpha.c: Likewise.
10276 * config/arc/arc.c: Likewise.
10277 * config/arm/arm.c: Likewise.
10278 * config/avr/avr.c: Likewise.
10279 * config/bfin/bfin.c: Likewise.
10280 * config/crx/crx.c: Likewise.
10281 * config/darwin.h: Likewise.
10282 * config/h8300/h8300.c: Likewise.
10283 * config/i386/cygming.h: Likewise.
10284 * config/i386/i386.c: Likewise.
10285 * config/ia64/ia64.c: Likewise.
10286 * config/m32c/m32c.c: Likewise.
10287 * config/m32r/m32r.c: Likewise.
10288 * config/m68hc11/m68hc11.c: Likewise.
10289 * config/m68k/m68k.c: Likewise.
10290 * config/mcore/mcore.c: Likewise.
10291 * config/mep/mep.c: Likewise.
10292 * config/microblaze/microblaze.c: Likewise.
10293 * config/mips/mips.c: Likewise.
10294 * config/rs6000/rs6000.c: Likewise.
10295 * config/rx/rx.c: Likewise.
10296 * config/sh/sh.c: Likewise.
10297 * config/sol2.h: Likewise.
10298 * config/sparc/sparc.c: Likewise.
10299 * config/spu/spu.c: Likewise.
10300 * config/stormy16/stormy16.c: Likewise.
10301 * config/v850/v850.c: Likewise.
10302
54833ec0
CLT
103032011-03-21 Chung-Lin Tang <cltang@codesourcery.com>
10304
10305 * simplify-rtx.c (simplify_binary_operation_1): Handle
10306 (xor (and A B) C) case when B and C are both constants.
10307
14a41392
MX
103082011-03-21 Mingjie Xing <mingjie.xing@gmail.com>
10309
10310 * tree-dfa.c (add_referenced_var): Fix typo in comment.
10311
806c3492
EB
103122011-03-20 Eric Botcazou <ebotcazou@adacore.com>
10313
10314 PR bootstrap/48168
10315 * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
10316
65e0a0f3
JJ
103172011-03-20 Jakub Jelinek <jakub@redhat.com>
10318
10319 PR rtl-optimization/48156
10320 * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
10321 assume df and df_lr are not NULL.
10322
b6a75dda
RR
103232011-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
10324
10325 PR debug/48023
10326 * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
10327 between a call and its CALL_ARG_LOCATION note.
10328
5969b52d
KK
103292011-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
10330
10331 PR debug/48178
10332 * config/sh/sh.c (find_barrier): Don't emit a constant pool
10333 between a call and its corresponding CALL_ARG_LOCATION note.
10334
f773c2bd
AS
103352011-03-19 Anatoly Sokolov <aesok@post.ru>
10336
10337 * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
10338 instead of loop. Use HARD_REGISTER_NUM_P predicate.
10339 * haifa-sched.c (setup_ref_regs): Ditto.
10340 * caller-save.c (add_used_regs_1): Ditto.
10341 * dse.c (look_for_hardregs): Ditto.
10342 * df-problems.c (df_simulate_one_insn_forwards): Ditto.
10343 * sched-rgn.c (check_live_1): Ditto.
10344
8bf872f9
JM
103452011-03-18 Joseph Myers <joseph@codesourcery.com>
10346
10347 * c-decl.c (diagnose_mismatched_decls): Give an error for
10348 redefining a typedef with variably modified type.
10349
ff8e2159
JM
103502011-03-18 Joseph Myers <joseph@codesourcery.com>
10351
10352 * c-decl.c (grokfield): Don't allow typedefs for structures or
10353 unions with no tag by default.
10354 * doc/extend.texi (Unnamed Fields): Update.
10355
16cc4440
UB
103562011-03-18 Uros Bizjak <ubizjak@gmail.com>
10357
10358 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
10359 Rewrite using indirect functions.
10360 (lwp_slwpcb): Ditto.
10361 * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
10362 (avx_vinsertf128<mode>): Ditto.
10363
e101e12e
AK
103642011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10365
10366 * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
10367 unspecs.
10368
4627c7fb
AK
103692011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10370
10371 * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
9e43ad68 10372 splitting between a call and its corresponding CALL_ARG_LOCATION note.
4627c7fb 10373
2d36b47f
MK
103742011-03-18 Maxim Kuvyrkov <maxim@codesourcery.com>
10375
10376 PR rtl-optimization/48170
10377 * gcse.c (hoist_code): Remove bogus asserts.
10378
2a3d7659
JL
103792011-03-18 Georg-Johann Lay <avr@gjlay.de>
10380
10381 * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
10382 computation for prologue/epilogue.
10383
34c3ef05
RO
103842011-03-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10385
10386 * Makefile.in (check-consistency): Remove.
10387
81f2b976
JJ
103882011-03-18 Jakub Jelinek <jakub@redhat.com>
10389
10390 PR debug/48176
10391 * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
10392 arange_table_in_use is 0, but either text_section_used or
10393 cold_text_section_used is true. Don't call it if
10394 !info_section_emitted.
10395
68fd7765
AS
103962011-03-18 Anatoly Sokolov <aesok@post.ru>
10397
10398 * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
10399 FUNCTION_VALUE_REGNO_P): Remove.
10400 * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
10401 Remove.
10402 * config/avr/avr.c (avr_ret_register): Make static inline.
10403 (avr_function_value_regno_p): New function.
10404 (avr_libcall_value): Make static. Add 'func' argument.
10405 (avr_function_value): Make static. Rename 'func' argument to
10406 'fn_decl_or_type', forward it to avr_libcall_value. Call
10407 avr_ret_register function instead of RET_REGISTER macro.
10408 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
10409
b4ef8aac
JM
104102011-03-18 Jason Merrill <jason@redhat.com>
10411
10412 PR c++/23372
10413 * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
10414
09a52fc3
RG
104152011-03-18 Richard Guenther <rguenther@suse.de>
10416
10417 * doc/install.texi (--enable-gold): Remove.
10418 (--with-plugin-ld): Document.
10419 * doc/invoke.texi (-fuse-linker-plugin): Clarify.
10420
2a3d7659 104212011-03-18 Andrew Pinski <pinskia@gmail.com>
3bf162a0
AP
10422
10423 PR middle-end/47790
10424 * expr.c (optimize_bitfield_assignment_op): Revamp to work
10425 again after expansion changes.
10426
2abbb0fe
CLT
104272011-03-18 Chung-Lin Tang <cltang@codesourcery.com>
10428
10429 * combine.c (try_combine): Do simplification only call of
10430 subst() on i2 even when i1 is present. Update comments.
10431
2efd0aa6
KK
104322011-03-18 Kaz Kojima <kkojima@gcc.gnu.org>
10433
10434 * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
10435 and UNSPEC_PCREL_SYMOFF.
10436
30a49b23
AK
104372011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10438
10439 * config/s390/s390.md: Use define_c_enum for the unspec constant
10440 definitions.
10441
419e1853
JJ
104422011-03-18 Richard Henderson <rth@redhat.com>
10443 Jakub Jelinek <jakub@redhat.com>
10444
10445 PR bootstrap/48161
10446 * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
10447 instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
10448
37875856
L
104492011-03-17 H.J. Lu <hongjiu.lu@intel.com>
10450
10451 PR middle-end/47725
10452 * combine.c (cant_combine_insn_p): Don't check zero/sign
10453 extended hard registers.
10454
76069764
L
104552011-03-17 H.J. Lu <hongjiu.lu@intel.com>
10456
10457 PR middle-end/47725
10458 * combine.c (cant_combine_insn_p): Check zero/sign extended
10459 hard registers.
10460
24da2019
AS
104612011-03-17 Anatoly Sokolov <aesok@post.ru>
10462
10463 * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
10464 * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
10465 * config/v850/v850.c (v850_output_addr_const_extra): Make static.
10466 Change return type to bool.
10467 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
10468
a82ff31f
JJ
104692011-03-17 Jakub Jelinek <jakub@redhat.com>
10470
8b29c87a
JJ
10471 PR debug/48163
10472 * var-tracking.c (prepare_call_arguments): If CALL target
10473 is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
10474 pc instead of looking it up using cselib_lookup and use
10475 Pmode for it if x has VOIDmode.
10476 * dwarf2out.c (gen_subprogram_die): If also both first and
10477 second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
10478
a82ff31f
JJ
10479 PR debug/48163
10480 * function.c (assign_parms): For data.passed_pointer parms
10481 use MEM of data.entry_parm instead of data.entry_parm itself
10482 as DECL_INCOMING_RTL.
10483 * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
10484 also when passed and declared mode is the same, DECL_RTL
10485 is a MEM with pseudo as address and DECL_INCOMING_RTL is
10486 a MEM too.
10487
82ce305c
JL
104882011-03-16 Jeff Law <law@redhat.com>
10489
10490 PR rtl-optimization/37273
10491 * ira-costs.c (scan_one_insn): Detect constants living in memory and
10492 handle them like argument loads from stack slots. Do not double
10493 count memory for memory constants and argument loads from stack slots.
10494
fe58e02b
L
104952011-03-17 H.J. Lu <hongjiu.lu@intel.com>
10496
10497 PR debug/48160
10498 * var-tracking.c (prepare_call_arguments): Check SUBREG.
10499
6fc4dbc7
L
105002011-03-17 H.J. Lu <hongjiu.lu@intel.com>
10501
10502 PR target/48171
10503 * config/i386/i386.opt: Add Save to -mavx and -mfma.
10504
db3ed0b3
JJ
105052011-03-17 Jakub Jelinek <jakub@redhat.com>
10506
8054a389
JJ
10507 PR bootstrap/48153
10508 * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
10509 if dwarf_strict.
10510 (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
10511 Clear call_arg_locations and call_arg_loc_last always.
10512
db3ed0b3
JJ
10513 PR middle-end/48152
10514 * var-tracking.c (prepare_call_arguments): If argument needs to be
10515 passed by reference, adjust argtype and mode.
10516
1bce4ff3
RG
105172011-03-17 Richard Guenther <rguenther@suse.de>
10518
10519 PR middle-end/48134
10520 * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
10521 a value make sure to fold the statement.
10522
7c71147d
CLT
105232011-03-17 Chung-Lin Tang <cltang@codesourcery.com>
10524
10525 PR target/43872
10526 * config/arm/arm.c (arm_get_frame_offsets): Adjust early
10527 return condition with !cfun->calls_alloca.
10528
0e1ee172
RG
105292011-03-17 Richard Guenther <rguenther@suse.de>
10530
10531 PR bootstrap/48148
10532 * lto-cgraph.c (input_overwrite_node): Clear the abstract
10533 origin for decls in other ltrans units.
10534 (input_varpool_node): Likewise.
10535
f8bce518
RG
105362011-03-17 Richard Guenther <rguenther@suse.de>
10537
10538 PR middle-end/48165
10539 * tree-object-size.c (compute_object_offset): Properly return
10540 the offset operand of MEM_REFs as sizetype.
10541
1b6fa860
JJ
105422011-03-17 Jakub Jelinek <jakub@redhat.com>
10543
dabd47e7
JJ
10544 PR rtl-optimization/48141
10545 * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
10546 * dse.c: Include params.h.
10547 (active_local_stores_len): New variable.
10548 (add_wild_read, dse_step1): Clear it when setting active_local_stores
10549 to NULL.
10550 (record_store, check_mem_read_rtx): Decrease it when removing
10551 from the chain.
10552 (scan_insn): Likewise. Increase it when adding to chain, if it
10553 reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
10554 set active_local_stores to NULL before the addition.
10555 * Makefile.in (dse.o): Depend on $(PARAMS_H).
10556
1b6fa860
JJ
10557 PR rtl-optimization/48141
10558 * dse.c (record_store): If no positions are needed in an insn
10559 that cannot be deleted, at least unchain it from active_local_stores.
10560
7b5cb7d6
DS
105612011-03-16 Dodji Seketeli <dodji@redhat.com>
10562
10563 PR debug/47510
10564 * dwarf2out.c (strip_naming_typedef): Factorize out of ...
10565 (lookup_type_die_strip_naming_typedef): ... here.
10566 (get_context_die): Use it.
10567 (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
10568 the anonymous struct named by the naming typedef.
10569
585e9d9d
L
105702011-03-16 H.J. Lu <hongjiu.lu@intel.com>
10571
10572 PR target/48154
10573 * config/i386/i386.c (ix86_builtin_vectorized_function): Check
10574 TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
10575
6261ab0e
JL
105762011-03-16 Jeff Law <law@redhat.com>
10577
10578 * tree-vrp.c (identify_jump_threads): Slightly simplify type
16cc4440 10579 check for operands of conditional. Allow type to be a pointer.
6261ab0e 10580
0b0081ec
RG
105812011-03-16 Richard Guenther <rguenther@suse.de>
10582
10583 PR tree-optimization/48149
10584 * fold-const.c (fold_binary_loc): Fold
10585 COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
10586
64a3d647
RG
105872011-03-16 Richard Guenther <rguenther@suse.de>
10588
10589 PR tree-optimization/26134
10590 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
10591 complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
10592 (non_rewritable_mem_ref_base): Handle complex type component
10593 accesses, constrain offsets for vector and complex extracts
10594 more properly.
10595
ef13324e
RG
105962011-03-16 Richard Guenther <rguenther@suse.de>
10597
10598 PR tree-optimization/48146
10599 * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
10600 operands avoiding the need for renaming.
10601
f0eddb90
RG
106022011-03-16 Richard Guenther <rguenther@suse.de>
10603
10604 * gimple-fold.c (maybe_fold_reference): Open-code relevant
10605 constant folding. Move MEM_REF canonicalization first.
10606 Rely on fold_const_aggregate_ref for initializer folding.
10607 * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
10608
e42348b8
JJ
106092011-03-16 Jakub Jelinek <jakub@redhat.com>
10610
29f10e71
JJ
10611 PR middle-end/48136
10612 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
10613 arg0/arg1 or their arguments are always fold converted to matching
10614 types.
10615
e42348b8
JJ
10616 * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
10617 to nargs.
10618
55b46574
RO
106192011-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10620
10621 PR lto/46944
10622 * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
10623 Handle in-tree gold.
10624 (ld_vers): Extract binutils version for gold.
10625 (gcc_cv_ld_hidden): Handle gold here.
10626 (gcc_cv_lto_plugin): Determine level of linker plugin support.
10627 * configure: Regenerate.
10628 * config.in: Regenerate.
10629 * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
10630 -fuse-linker-plugin otherwise.
10631 (LINK_PLUGIN_SPEC): Define. Extract from LINK_COMMAND_SPEC.
10632 (LINK_COMMAND_SPEC): Use it.
10633 (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
10634
2b1c5433
JJ
106352011-03-16 Jakub Jelinek <jakub@redhat.com>
10636
c2969d8e
JJ
10637 * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
10638 * calls.c: Remove debug.h include.
10639 (emit_call_1): Don't call virtual_call_token debug hook.
10640 * dwarf2out.c (debug_dcall_section, debug_vcall_section,
10641 dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
10642 vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
10643 size_of_dcall_table, output_dcall_table, size_of_vcall_table,
10644 output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
10645 vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
10646 dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
10647 dwarf2out_virtual_call): Remove.
10648 (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
10649 copy_call_info and virtual_call hooks.
10650 (dwarf2out_init): Don't initialize vcall_insn_table,
10651 debug_dcall_section and debug_vcall_section.
10652 (prune_unused_types): Don't mark nodes from dcall_table.
10653 (dwarf2out_finish): Don't output dcall or vcall tables.
10654 * final.c (final_scan_insn): Don't call direct_call or
10655 virtual_call debug hooks.
10656 * debug.h (struct gcc_debug_hooks): Remove direct_call,
10657 virtual_call_token, copy_call_info and virtual_call hooks.
10658 (debug_nothing_uid): Remove prototype.
10659 * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
10660 copy_call_info and virtual_call hooks.
10661 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
10662 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
10663 * debug.c (do_nothing_debug_hooks): Likewise.
10664 (debug_nothing_uid): Remove.
10665 * doc/invoke.texi (-fenable-icf-debug): Remove.
10666 * common.opt (-fenable-icf-debug): Likewise.
10667
325f5379
JJ
10668 * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
10669 * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
10670 call's MEM. Handle functions returning aggregate through a hidden
10671 first pointer. For virtual calls add clobbered pc to call arguments
10672 chain.
10673 * dwarf2out.c (gen_subprogram_die): Emit
10674 DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
10675 can't be emitted.
10676
a58a8e4b
JJ
10677 PR debug/45882
10678 * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
10679 * rtl.h (ENTRY_VALUE_EXP): Define.
10680 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
10681 * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
10682 * print-rtl.c (print_rtx): Likewise.
10683 * gengtype.c (adjust_field_rtx_def): Likewise.
10684 * var-tracking.c (vt_add_function_parameter): Adjust
10685 gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
10686 * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
10687 * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
10688 partition is a default definition of a PARM_DECL, use ENTRY_VALUE
10689 of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
10690
2b1c5433
JJ
10691 * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
10692 Call var_location debug hook even on CALL_INSNs.
10693 (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
10694 * rtl.def (ENTRY_VALUE): New.
10695 * dwarf2out.c: Include cfglayout.h.
10696 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
10697 output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
10698 (struct call_arg_loc_node): New type.
10699 (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
10700 tail_call_site_count): New variables.
10701 (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
10702 DW_TAG_GNU_call_site_parameter.
10703 (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
10704 DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
10705 DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
10706 DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
10707 and DW_AT_GNU_all_source_call_sites.
10708 (mem_loc_descriptor): Handle ENTRY_VALUE.
10709 (add_src_coords_attributes): Don't add enything if
10710 DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
10711 (dwarf2out_abstract_function): Save and clear call_arg_location,
10712 call_site_count and tail_call_site_count around dwarf2out_decl call.
10713 (gen_call_site_die): New function.
10714 (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
10715 (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
10716 (dwarf2out_function_decl): Clear call_arg_locations,
10717 call_arg_loc_last, set call_site_count and tail_call_site_count
10718 to -1 and free block_map.
10719 (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
10720 CALL_INSNs. Add NOTE_DURING_CALL_P var location notes even when not
10721 followed by any real instructions.
10722 (dwarf2out_begin_function): Set call_site_count and
10723 tail_call_site_count to 0.
10724 (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
10725 is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
10726 attempt to force a DIE for it and worst case remove the attribute.
10727 (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
10728 check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
10729 the decl itself.
10730 * var-tracking.c: Include tm_p.h.
10731 (vt_stack_adjustments): For calls call note_register_arguments.
10732 (argument_reg_set): New variable.
10733 (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
10734 ensure the VALUE is resolved.
10735 (call_arguments): New variable.
10736 (prepare_call_arguments): New function.
10737 (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
10738 (struct expand_loc_callback_data): Add ignore_cur_loc field.
10739 (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
10740 always use the best expression.
10741 (vt_expand_loc): Add ignore_cur_loc argument.
10742 (vt_expand_loc_dummy): Clear ignore_cur_loc field.
10743 (emit_note_insn_var_location): Adjust vt_expand_loc callers.
10744 (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
10745 note for all calls.
10746 (vt_add_function_parameter): Use cselib_lookup_from_insn.
10747 If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
10748 argument. Don't call cselib_preserve_only_values and
10749 cselib_reset_table.
10750 (note_register_arguments): New function.
10751 (vt_initialize): Compute argument_reg_set. Call
10752 vt_add_function_parameters before processing basic blocks instead of
10753 afterwards. For calls call prepare_call_arguments before calling
10754 cselib_process_insn.
10755 * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
10756 * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
10757 (var-tracking.o): Depend on $(TM_P_H).
10758 * cfglayout.h (insn_scope): New prototype.
10759 * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
10760 * cfglayout.c (insn_scope): No longer static.
10761 * insn-notes.def (CALL_ARG_LOCATION): New.
10762 * calls.c (expand_call, emit_library_call_value_1): Put USEs for
10763 MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
10764 * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
10765 nothing for DECL_EXTERNAL BLOCK_VARS.
10766
9ef13bd0
AM
107672011-03-16 Alan Modra <amodra@gmail.com>
10768
10769 PR target/45844
10770 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
10771 create invalid offset address for vsx splat insn.
10772 * config/rs6000/predicates.md (splat_input_operand): New.
10773 * config/rs6000/vsx.md (vsx_splat_*): Use it.
10774
56b67510
XDL
107752011-03-15 Xinliang David Li <davidxl@google.com>
10776
10777 PR c/47837
10778 * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
10779 (normalize_preds): New function.
10780 (is_use_properly_guarded): Normalize def predicates.
10781
80fffdef
RR
107822011-03-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
10783
732f37c6 10784 PR target/46788
80fffdef
RR
10785 * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
10786 in the output template.
10787
930672ad
RG
107882011-03-15 Richard Guenther <rguenther@suse.de>
10789
10790 PR middle-end/47650
10791 * tree-pretty-print.c (dump_function_declaration): Properly
10792 dump unprototyped and varargs function types.
10793
c7ee7b45
RG
107942011-03-15 Richard Guenther <rguenther@suse.de>
10795
10796 PR tree-optimization/13954
10797 * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
10798 and friends.
10799
b2ad5e37
RG
108002011-03-15 Richard Guenther <rguenther@suse.de>
10801
10802 PR tree-optimization/48037
10803 * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
10804 selects into BIT_FIELD_REFs.
10805 (non_rewritable_mem_ref_base): Check if a MEM_REF is a
10806 vector select.
10807
7ee93d4e
JJ
108082011-03-15 Jakub Jelinek <jakub@redhat.com>
10809
10810 PR tree-optimization/48129
10811 * builtins.c (fold_builtin_snprintf): Convert to type of
10812 built_in_decls[BUILT_IN_SNPRINTF] retval instead of
10813 implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
10814
e106efc7
RG
108152011-03-15 Richard Guenther <rguenther@suse.de>
10816
10817 PR tree-optimization/41490
10818 * tree-ssa-dce.c (propagate_necessity): Handle returns without
10819 value but with VUSE.
10820 * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
10821 return statements.
10822 * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
10823 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
10824 * tree-tailcall.c (find_tail_calls): Ignore returns.
10825
17dea42f
RG
108262011-03-15 Richard Guenther <rguenther@suse.de>
10827
10828 PR middle-end/48031
10829 * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
10830 or variable-indexed array accesses when in gimple form.
10831
01c77a60
RG
108322011-03-15 Richard Guenther <rguenther@suse.de>
10833
16cc4440 10834 * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
01c77a60 10835
77b0791e
AM
108362011-03-15 Alan Modra <amodra@gmail.com>
10837
10838 PR target/48032
10839 * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
10840 presume symbol_refs without a symbol_ref_decl are suitably
10841 aligned, nor other trees we may see here. Handle anchor symbols.
10842 (legitimate_constant_pool_address_p): Comment. Add mode param.
10843 Check cmodel=medium addresses. Adjust all calls.
10844 (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
10845 creating cmodel=medium optimized access to locals.
10846 * config/rs6000/constraints.md (R): Pass QImode to
10847 legitimate_constant_pool_address_p.
10848 * config/rs6000/predicates.md (input_operand): Pass mode to
10849 legitimate_constant_pool_address_p.
10850 * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
10851 Update prototype.
10852
35f61ba4
MM
108532011-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
10854
10855 PR target/48053
10856 * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
10857 64-bit constants being loaded into registers other than GPRs such
10858 as loading 0 into a VSX register.
10859
07332e6d
RO
108602011-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10861
16cc4440 10862 * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
07332e6d 10863
de888d90
JJ
108642011-03-14 Jakub Jelinek <jakub@redhat.com>
10865
ba3ceb2d
JJ
10866 PR middle-end/47917
10867 * builtins.c (fold_builtin_snprintf): New function.
10868 (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
10869 (fold_builtin_4): Likewise.
10870
2e64f8b8
JJ
10871 PR middle-end/38878
10872 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
10873 STRIP_NOPS on arg0 and arg1. When optimizing X +- C == X
10874 and C - X == X also strip nops from +/-/p+ operand.
10875 When optimizing -X == C, fold C to arg0's type.
10876
de888d90
JJ
10877 PR debug/47946
10878 * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
10879 emit it as add_AT_int instead of add_AT_unsigned.
10880
108812011-03-14 Tom Tromey <tromey@redhat.com>
f4e749b4
TT
10882
10883 * unwind-dw2.c: Include sys/sdt.h if it exists.
10884 (_Unwind_DebugHook): Use STAP_PROBE2.
10885 * config.in, configure: Rebuild.
10886 * configure.ac: Check for sys/sdt.h.
10887
d34abfd2
UB
108882011-03-14 Uros Bizjak <ubizjak@gmail.com>
10889
10890 * config/i386/i386.md (ROUND_FLOOR): New constant.
10891 (ROUND_CEIL): Ditto.
10892 (ROUND_TRUNC): Ditto.
10893 (ROUND_MXCSR): Ditto.
10894 (ROUND_NO_EXC): Ditto.
10895 (rint<mode>2): Use new defines instead of numerical constants.
10896 (floor<mode>2): Ditto.
10897 (ceil<mode>2): Ditto.
10898 (btrunc<mode>2): Ditto.
10899 * config/i386/i386-builtin-types.def: Define ROUND function type
10900 aliases.
10901 * config/i386/i386.c (enum ix86_builtins): Add
10902 IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
10903 (struct builtin_description): Add
10904 __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
10905 (ix86_expand_sse_round): New static function.
10906 (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
10907 function types.
10908 (ix86_builtin_vectorized_function): Handle
10909 BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
10910
87f9e23d
TT
109112011-03-14 Tom Tromey <tromey@redhat.com>
10912
10913 * c-parser.c (c_parser_asm_string_literal): Clear
10914 warn_overlength_strings.
10915
b3ab9ea2
TT
109162011-03-14 Tom Tromey <tromey@redhat.com>
10917
10918 * c-parser.c (disable_extension_diagnostics): Save
10919 warn_overlength_strings.
10920 (restore_extension_diagnostics): Restore warn_overlength_strings.
10921
6bd73dd8
JJ
109222011-03-14 Jakub Jelinek <jakub@redhat.com>
10923
10924 * BASE-VER: Change to 4.7.0.
10925
7f4d6e1b
RG
109262011-03-14 Richard Guenther <rguenther@suse.de>
10927
10928 PR middle-end/48098
10929 * tree.c (build_vector_from_val): Adjust assert to requirements
10930 and reality.
10931
c6104ef1
JJ
109322011-03-14 Jakub Jelinek <jakub@redhat.com>
10933
10934 PR bootstrap/48102
d34abfd2 10935 * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
c6104ef1 10936
dfa95e19
AT
109372011-03-14 Andreas Tobler <andreast@fgznet.ch>
10938
f60c2554 10939 * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
dfa95e19
AT
10940 terms of target_flags_explicit. Adjust copyright year.
10941
10942 * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
10943 * config/rs6000/t-freebsd: New file. Add override for
10944 LIB2FUNCS_EXTRA.
10945
bb322018
CD
109462011-03-13 Chris Demetriou <cgd@google.com>
10947
10948 * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
10949 (-fno-diagnostics-show-option): this, to reflect current default.
10950 (-Werror=): Update text about -fno-diagnostics-show-option.
10951
12b1c80b
PB
109522011-03-12 Peter Bergner <bergner@vnet.ibm.com>
10953
10954 PR target/48053
10955 * config/rs6000/predicates.md (easy_vector_constant_add_self,
10956 easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
10957 * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
10958 mode is not V2DImode or V2DFmode.
10959 (vspltis_constant): Do not handle V2DImode and V2DFmode.
10960 (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
10961 * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
10962 registers to 0.
10963 (movdi_internal64): Likewise.
10964
57d598f7
SP
109652011-03-12 Sebastian Pop <sebastian.pop@amd.com>
10966
10967 PR tree-optimization/47127
10968 * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
10969 parameter.
10970 (set_cloog_options): Same.
10971 (scop_to_clast): Same.
10972 (print_clast_stmt): Do not call cloog_state_malloc and
10973 cloog_state_free.
10974 (print_generated_program): Same.
10975 (gloog): Same.
10976 * graphite-clast-to-gimple.h (cloog_state): Declared.
10977 (scop_to_clast): Adjust declaration.
10978 * graphite.c (cloog_state): Defined here.
10979 (graphite_initialize): Call cloog_state_malloc.
10980 (graphite_finalize): Call cloog_state_free.
10981
f231b5ff
JM
109822011-03-11 Jason Merrill <jason@redhat.com>
10983
10984 * attribs.c (lookup_attribute_spec): Take const_tree.
10985 * tree.h: Adjust.
10986
6a4e2bd5
JM
109872011-03-11 Joseph Myers <joseph@codesourcery.com>
10988
10989 * config/sparc/sparc.c (sparc_option_override): Use
10990 PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
10991
a758fd67
RG
109922011-03-11 Richard Guenther <rguenther@suse.de>
10993
10994 PR tree-optimization/48067
10995 * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
10996 multiplication result will be only used once on the target
10997 stmt.
10998
03dfda54
RG
109992011-03-11 Richard Guenther <rguenther@suse.de>
11000
11001 * doc/invoke.texi (max-inline-insns-single): Adjust default value.
11002
5f11a50a
RG
110032011-03-11 Richard Guenther <rguenther@suse.de>
11004
11005 PR lto/48073
11006 * tree.c (find_decls_types_r): Do not walk types only reachable
11007 from IDENTIFIER_NODEs.
11008
4074f163
JJ
110092011-03-11 Jakub Jelinek <jakub@redhat.com>
11010
11011 PR middle-end/48044
11012 * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
11013 all vnode->force_output nodes as needed.
11014
30f7cdcd
JM
110152011-03-11 Jason Merrill <jason@redhat.com>
11016
11017 PR c++/48069
11018 * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
11019 COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
11020
62ecfeb8
MJ
110212011-03-11 Martin Jambor <mjambor@suse.cz>
11022
11023 * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
11024 cgraph_node.
11025
e89e03ab
JJ
110262011-03-11 Jakub Jelinek <jakub@redhat.com>
11027
11028 PR tree-optimization/48063
11029 * ipa-inline.c (cgraph_decide_inlining): Don't try to
11030 inline functions called once if !tree_can_inline_p (node->callers).
11031
efbe978b 110322011-03-11 Chen Liqin <liqin.gcc@gmail.com>
9d6193a7 11033
efbe978b
EB
11034 * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
11035 extra_objs.
9d6193a7
CL
11036 * config/score/score3.c: Delete.
11037 * config/score/score3.h: Delete.
11038 * config/score/mul-div.S: Delete.
11039 * config/score/sfp-machine.h: Add new file.
11040 * config/score/constraints.md: Add new file.
11041 * config/score/t-score-softfp: Add new file.
efbe978b 11042 * config/score/t-score-elf: Remove score3.o, do not generate multilib.
9d6193a7
CL
11043 * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
11044 (score7_extra_constraint): Delete.
efbe978b 11045 (score7_option_override): Remove unused code.
9d6193a7
CL
11046 * config/score/score.c: Remove score3 and score5 define and code.
11047 * config/score/score.h: Remove score3 and score5 define and code.
efbe978b 11048 * config/score/score.md: Remove score3 template and unusual insn.
9d6193a7
CL
11049 * config/score/score.opt: Remove score3 and score5 options.
11050
5de27cca
JDA
110512011-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11052
11053 * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
11054 when _HPUX_SOURCE is defined.
11055 (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
11056
18d92053
JM
110572011-03-10 Jason Merrill <jason@redhat.com>
11058
11059 PR c++/48029
11060 * stor-layout.c (layout_type): Don't set structural equality
11061 on arrays of incomplete type.
11062 * tree.c (type_hash_eq): Handle comparing them properly.
11063
67a2f76d
JJ
110642011-03-10 Jakub Jelinek <jakub@redhat.com>
11065
11066 PR debug/48043
18d92053 11067 * config/s390/s390.c (s390_delegitimize_address): Make sure the
67a2f76d
JJ
11068 result mode matches original rtl mode.
11069
d845b2f9
NC
110702011-03-10 Nick Clifton <nickc@redhat.com>
11071
11072 * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
39242686 11073 (andsi3, andsi3_flags): Fix timings for three operand alternative.
d845b2f9 11074
db7ec035
JJ
110752011-03-09 Jakub Jelinek <jakub@redhat.com>
11076
11077 PR rtl-optimization/47866
11078 * expr.c (store_field): If MEM_SCALAR_P (target), don't use
11079 MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
11080 if target wasn't scalar.
11081 * function.c (assign_stack_temp_for_type): Assert that neither
11082 MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
11083 MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
11084 macro.
11085 * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
11086
5d304e47
AK
110872011-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11088
11089 * config/s390/s390-protos.h (s390_label_align): New prototype.
11090 * config/s390/s390.c (s390_label_align): New function.
11091 * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
11092
93b826f0
MM
110932011-03-08 Michael Meissner <meissner@linux.vnet.ibm.com>
11094
11095 PR target/47755
11096 * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
11097 V2DI/V2DF constants. Only all 0's or all 1's are easy.
11098 (output_vec_const_move): Ditto.
11099
ef78aed6
AS
111002011-03-08 Anatoly Sokolov <aesok@post.ru>
11101
11102 * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
11103 * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
11104 * config/mips/mips.c (mips_preferred_reload_class): Make static.
11105 Change 'rclass' argument and result type to reg_class_t.
11106 (TARGET_PREFERRED_RELOAD_CLASS): Define.
11107
5f892aa0
GJL
111082011-03-08 Georg-Johann Lay <avr@gjlay.de>
11109
9e43ad68
UB
11110 * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
11111 * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
11112 (TARGET_MEMORY_MOVE_COST): Define.
11113 (avr_register_move_cost, avr_memory_move_cost): New Functions.
5f892aa0 11114
32bd2409
JJ
111152011-03-08 Jakub Jelinek <jakub@redhat.com>
11116
530a4800
JJ
11117 PR debug/47881
11118 * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
11119 removed anything.
11120
32bd2409
JJ
11121 PR tree-optimization/48022
11122 * fold-const.c (fold_comparison): Don't call fold_overflow_warning
11123 for EQ/NE_EXPR.
11124
c7148991
JJ
111252011-03-07 Jakub Jelinek <jakub@redhat.com>
11126
11127 PR debug/47991
11128 * var-tracking.c (find_use_val): Return NULL for
11129 cui->sets && cui->store_p BLKmode MEMs.
11130
43070a6e
AS
111312011-03-07 Anatoly Sokolov <aesok@post.ru>
11132
11133 * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
11134 Remove.
11135 * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
11136 xstormy16_print_operand_address): Remove.
11137 * config/stormy16/stormy16.c (xstormy16_print_operand,
11138 xstormy16_print_operand_address): Make static.
11139 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
11140
efbe978b 111412011-03-07 Pat Haugen <pthaugen@us.ibm.com>
79eefb0d
PH
11142
11143 PR target/47862
11144 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
11145 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
11146 before definition.
11147
cec8ac0b
ZD
111482011-03-07 Zdenek Dvorak <ook@ucw.cz>
11149
11150 PR bootstrap/48000
11151 * cfgloopmanip.c (fix_bb_placements): Return immediately
11152 if FROM is BASE_LOOP's header.
11153
59527282
PW
111542011-03-07 Paul Wögerer <paul_woegerer@mentor.com>
11155
11156 * gimplify.c (gimplify_function_tree): Fix building calls
11157 to __builtin_return_address.
11158
617718f7
AM
111592011-03-07 Alan Modra <amodra@gmail.com>
11160
11161 * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
11162 * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
11163 * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
11164 * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
11165 return_mode args.
11166 * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
11167 (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
11168 (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
11169 (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
11170 * config/rs6000/rs6000.c
11171 (rs6000_elf_end_indicate_exec_stack): Rename to..
11172 (rs6000_elf_file_end): ..this. Only call file_end_indicate_exec_stack
11173 for POWERPC_LINUX. Move code emitting .gnu_attribute to here, from..
11174 (rs6000_file_start): ..here.
11175 (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
11176 file scope variables.
11177 (call_ABI_of_interest): New function.
11178 (init_cumulative_args): Set above vars when function return value
11179 is a float, vector, or small struct.
11180 (rs6000_function_arg_advance_1): Likewise for function args.
11181 (rs6000_va_start): Set rs6000_passes_float if variable arg function
11182 references float args.
11183
38528d50
MX
111842011-03-07 Mingjie Xing <mingjie.xing@gmail.com>
11185
11186 * doc/cfg.texi: Remove "See" before @ref.
11187 * doc/invoke.texi: Likewise.
11188
f42cf4f4
JM
111892011-03-05 Jason Merrill <jason@redhat.com>
11190
11191 * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
11192
804a304d
AG
111932011-03-05 Anthony Green <green@moxielogic.com>
11194
11195 * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
11196
634ee309
ZD
111972011-03-05 Zdenek Dvorak <ook@ucw.cz>
11198
11199 PR rtl-optimization/47899
11200 * cfgloopmanip.c (fix_bb_placements): Fix first argument
11201 to flow_loop_nested_p when moving the loop upward.
11202
6fe471c8
RE
112032011-03-05 Richard Earnshaw <rearnsha@arm.com>
11204
11205 PR target/47719
11206 * arm.md (movhi_insn_arch4): Accept any immediate constant.
11207
cc58ceee
JJ
112082011-03-05 Jakub Jelinek <jakub@redhat.com>
11209
11210 PR tree-optimization/47967
11211 * ipa-cp.c (build_const_val): Return NULL instead of creating
11212 VIEW_CONVERT_EXPR for mismatching sizes.
11213 (ipcp_create_replace_map): Return NULL if build_const_val failed.
11214 (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
11215 give up on versioning.
11216
ea868305
AM
112172011-03-05 Alan Modra <amodra@gmail.com>
11218
11219 PR target/47986
11220 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
11221 full cmodel medium/large lo_sum + high addresses.
11222
bc6ce334
AK
112232011-03-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11224
11225 * config/s390/s390.c (s390_decompose_address): Reject non-literal
11226 pool references in UNSPEC_LTREL_OFFSET.
11227
87e7b310
JH
112282011-03-04 Jan Hubicka <jh@suse.cz>
11229
11230 PR lto/47497
11231 * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
11232 (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
d34abfd2
UB
11233 * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
11234 Add node pointers.
87e7b310
JH
11235 * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
11236 cgraph_add_thunk): Add node pointers.
11237 * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
11238 associated to right node.
11239 (input_node): Update use of cgraph_same_body_alias
11240 and cgraph_add_thunk.
11241
d9c64246
CF
112422011-03-04 Changpeng Fang <changpeng.fang@amd.com>
11243
11244 * config/i386/i386.opt (mprefer-avx128): New flag.
d34abfd2
UB
11245 * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
11246 modes when the flag -mprefer-avx128 is on.
d9c64246 11247
08707076
RS
112482011-03-04 Richard Sandiford <richard.sandiford@linaro.org>
11249
11250 * dwarf2out.c (compare_loc_operands): Fix address handling.
11251
52517c81
AM
112522011-03-04 Alan Modra <amodra@gmail.com>
11253
11254 * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
11255
b147c5b9
RG
112562011-03-04 Richard Guenther <rguenther@suse.de>
11257
11258 PR middle-end/47968
11259 * expmed.c (extract_bit_field_1): Prefer vector modes that
11260 vec_extract patterns can handle.
11261
8750672f
RG
112622011-03-04 Richard Guenther <rguenther@suse.de>
11263
11264 PR middle-end/47975
11265 * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
11266
9eac0f2a
RH
112672011-03-04 Richard Henderson <rth@redhat.com>
11268
11269 * explow.c (emit_stack_save): Remove 'after' parameter.
11270 (emit_stack_restore): Likewise.
11271 * expr.h: Update to match.
11272 * builtins.c, calls.c, stmt.c: Likewise.
11273 * config/alpha/alpha.md, config/avr/avr.md: Likewise.
11274 * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
11275 * function.c (expand_function_end): Insert the emit_stack_save
11276 sequence before parm_birth_insn instead of after.
11277
dfee1406
UB
112782011-03-03 Uros Bizjak <ubizjak@gmail.com>
11279
11280 * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
11281 (ssse3_pmaddubsw128): Ditto.
11282 (ssse3_pmaddubsw): Ditto.
11283
f1d4c3de
SE
112842011-03-03 Steve Ellcey <sje@cup.hp.com>
11285
11286 * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
11287
71f3a3f5
JJ
112882011-03-03 Jakub Jelinek <jakub@redhat.com>
11289
423ed416
JJ
11290 PR c/47963
11291 * gimplify.c (omp_add_variable): Only call omp_notice_variable
11292 on TYPE_SIZE_UNIT if it is a DECL.
11293
71f3a3f5
JJ
11294 PR debug/47283
11295 * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
11296 first operand is not is_gimple_mem_ref_addr, try to fold it.
11297 If the operand still isn't is_gimple_mem_ref_addr, clear
11298 MEM_EXPR on op0.
11299
4b1a5c0d
RG
113002011-03-03 Richard Guenther <rguenther@suse.de>
11301
11302 PR middle-end/47283
11303 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
11304 match comment.
11305 (refs_may_alias_p_1): For release branches return true if
11306 we are confused by our input.
11307
b46616fd
AK
113082011-03-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11309
11310 * config/s390/s390.c (s390_function_value): Rename to ...
11311 (s390_function_and_libcall_value): ... this.
11312 (s390_function_value): New function.
11313 (s390_libcall_value): New function.
dfee1406 11314 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
b46616fd
AK
11315 * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
11316 target macro definitions.
11317 * config/s390/s390-protos.h (s390_function_value): Remove prototype.
11318
46d8fabb
JM
113192011-03-02 Joseph Myers <joseph@codesourcery.com>
11320
11321 * config/i386/freebsd64.h (CC1_SPEC): Define.
11322 * config/i386/linux64.h (CC1_SPEC): Define.
11323 * config/i386/x86-64.h (CC1_SPEC): Don't define.
11324
6b1ce545
AS
113252011-03-02 Anatoly Sokolov <aesok@post.ru>
11326
11327 * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
11328 Remove.
11329 * config/stormy16/stormy16.c: Include reload.h.
11330 (xstormy16_memory_move_cost): New function.
11331 (TARGET_MEMORY_MOVE_COST): Define.
11332
34161e98
RS
113332011-03-02 Richard Sandiford <richard.sandiford@linaro.org>
11334
11335 PR rtl-optimization/47925
11336 * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
11337 with side effects. Remove the more-specific check for volatile asms.
11338
f60a97cf
AM
113392011-03-02 Alan Modra <amodra@gmail.com>
11340
11341 PR target/47935
11342 * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
11343 toc relative addresses for valid offsets.
11344
f2ca11ca
RG
113452011-03-01 Richard Guenther <rguenther@suse.de>
11346
11347 PR tree-optimization/47890
11348 * tree-vect-loop.c (get_initial_def_for_induction): Set
11349 related stmt properly.
11350
7a00d9ea
RG
113512011-03-01 Richard Guenther <rguenther@suse.de>
11352
11353 PR lto/47924
11354 * lto-streamer.c (lto_record_common_node): Also register
11355 the canonical type.
11356
06c7edcc
RG
113572011-03-01 Richard Guenther <rguenther@suse.de>
11358
11359 PR lto/46911
11360 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
11361 Do not stream DECL_ABSTRACT_ORIGIN.
11362 (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
11363 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
11364 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
11365 Do not stream DECL_ABSTRACT_ORIGIN.
11366 (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
11367 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
11368
998871e9
AS
113692011-02-28 Anatoly Sokolov <aesok@post.ru>
11370
11371 * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
11372 FUNCTION_VALUE_REGNO_P): Remove.
b2e2ea67 11373 * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
998871e9
AS
11374 * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
11375 Add 'outgoing' argument.
11376 (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
11377 function.
11378 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
11379 TARGET_FUNCTION_VALUE_REGNO_P): Define.
11380
94369251
KT
113812011-02-28 Kai Tietz <kai.tietz@onevision.com>
11382
11383 PR debug/28047
11384 * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
11385 (lookup_filename): Likewise.
b2e2ea67 11386 * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
94369251 11387
80a832cd
JJ
113882011-02-28 Bernd Schmidt <bernds@codesourcery.com>
11389 Jakub Jelinek <jakub@redhat.com>
11390
11391 PR middle-end/47893
11392 * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
11393 (assign_stack_local_1): Change last argument type to int.
11394 * function.c (assign_stack_local_1): Replace reduce_alignment_ok
11395 argument with kind. If bit ASLK_RECORD_PAD is not set in it,
b2e2ea67 11396 don't record padding space into frame_space_list nor use those areas.
80a832cd
JJ
11397 (assign_stack_local): Adjust caller.
11398 (assign_stack_temp_for_type): Call assign_stack_local_1 instead
11399 of assign_stack_local, pass 0 as last argument.
11400 * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
11401 callers.
11402
1b500976
JJ
114032011-02-28 Jakub Jelinek <jakub@redhat.com>
11404
f61c6f34
JJ
11405 PR debug/47283
11406 * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
11407 Use target address_mode and pointer_mode hooks instead of hardcoded
11408 Pmode and ptr_mode. Handle some simple cases of extending if
11409 POINTERS_EXTEND_UNSIGNED < 0.
11410 (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
11411 Call convert_debug_memory_address.
11412 (expand_debug_expr) <case ADDR_EXPR>: Pass as to
11413 convert_debug_memory_address.
11414
1b500976
JJ
11415 PR middle-end/46790
11416 * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
11417 * configure: Regenerated.
11418 * config.in: Regenerated.
11419 * varasm.c (default_function_section): Return NULL
b2e2ea67 11420 if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
1b500976 11421
2f2935b6
MJ
114222011-02-28 Martin Jambor <mjambor@suse.cz>
11423
11424 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
11425 the description to match the printed values.
11426
474086eb
RG
114272011-02-28 Richard Guenther <rguenther@suse.de>
11428
11429 * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
11430 of the copied scope tree.
11431
15bf6f3a
RW
114322011-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11433
11434 * doc/extend.texi (Function Attributes): Avoid deeply (and
11435 wrongly) nested tables.
11436
f6b439c9
JJ
114372011-02-27 Jakub Jelinek <jakub@redhat.com>
11438
11439 PR middle-end/47903
11440 * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
11441 MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
11442 r isn't op0 nor op1.
11443
1d8ca2c7
GJL
114442011-02-23 Georg-Johann Lay <avr@gjlay.de>
11445
11446 * config/avr/avr.md: Remove magic comment for emacs.
11447
593fca4b
GJL
114482011-02-23 Georg-Johann Lay <avr@gjlay.de>
11449
11450 PR target/45261
11451 * config/avr/avr.c (avr_option_override): Use error on bad options.
11452 (avr_help): New function.
11453 (TARGET_HELP): Define.
11454
6609216e
GJL
114552011-02-22 Georg-Johann Lay <avr@gjlay.de>
11456
11457 PR target/42240
11458 * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
11459 (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
11460
03d458af
GP
114612011-02-26 Gerald Pfeifer <gerald@pfeifer.com>
11462
11463 * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
11464 (ARM Options): Ditto.
11465 (i386 and x86-64 Options): Ditto.
11466 (RX Options): Ditto.
11467 (SPARC Options): Ditto.
11468
1c379b78
TC
114692011-02-26 Tijl Coosemans <tijl@coosemans.org>
11470
11471 * config.gcc (i386-*-freebsd*): Make i486 the default arch on
11472 FreeBSD 6 and later. Generally use cpu generic.
11473
d5ed058c 114742011-02-25 Gerald Pfeifer <gerald@pfeifer.com>
b2e2ea67 11475
d5ed058c
GP
11476 * doc/cpp.texi: Update copyright years.
11477
509d65dd 114782011-02-25 Sebastien Bourdeauducq <sebastien@milkymist.org>
308d39cd 11479
509d65dd 11480 PR target/46898
308d39cd
SB
11481 * config/lm32/lm32.md (ashrsi3): Added needed variable.
11482
509d65dd 114832011-02-25 Jon Beniston <jon@beniston.com>
308d39cd 11484
509d65dd 11485 PR target/46898
308d39cd
SB
11486 * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
11487 * config/lm32/lm32.md (ashlsi3): Remove unused variable.
11488 * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
11489 (lm32_block_move_inline): Add type cast to remove warning.
b2e2ea67 11490 (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
308d39cd
SB
11491 (gen_int_relational): Move declarations to start of function.
11492
822ba6d7
EB
114932011-02-25 Eric Botcazou <ebotcazou@adacore.com>
11494
11495 PR tree-optimization/45470
11496 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
11497 can throw internally only.
11498 * tree-vect-stmts.c (vectorizable_call): Likewise.
11499
ef795fc2
AS
115002011-02-24 Anatoly Sokolov <aesok@post.ru>
11501
11502 * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
11503 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
11504 * config/stormy16/stormy16-protos.h
11505 (xstormy16_preferred_reload_class): Remove.
11506 * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
11507 static. Change 'rclass' argument and return type to reg_class_t.
11508 (TARGET_PREFERRED_RELOAD_CLASS,
11509 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
11510
1c3277ee
RG
115112011-02-24 Richard Guenther <rguenther@suse.de>
11512
11513 * lto-streamer-in.c (input_bb): Do not find referenced vars
11514 in debug statements.
11515
67e18edb
JM
115162011-02-23 Jason Merrill <jason@redhat.com>
11517
11518 * common.opt (fabi-version): Document v5 and v6.
11519
b14fad9d
RG
115202011-02-23 Richard Guenther <rguenther@suse.de>
11521
11522 PR tree-optimization/47849
11523 * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
11524
7fcf46f5
JZ
115252011-02-23 Jie Zhang <jie@codesourcery.com>
11526
11527 * opts-common.c (decode_cmdline_option): Print empty string
11528 argument as "" in decoded->orig_option_with_args_text.
11529 * gcc.c (execute): Print empty string argument as ""
11530 in the verbose output.
11531 (do_spec_1): Keep empty string argument.
11532
f85b70fd
NF
115332011-02-23 Nathan Froyd <froydnj@codesourcery.com>
11534
11535 * config.gcc: Declare score-* and crx-* obsolete.
11536
b152a615
JZ
115372011-02-23 Jie Zhang <jie@codesourcery.com>
11538
11539 PR rtl-optimization/47763
11540 * web.c (web_main): Ignore naked clobber when replacing register.
11541
bb6e77bc
AS
115422011-02-22 Anatoly Sokolov <aesok@post.ru>
11543
11544 * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
11545 Remove.
11546
68bf6491
SP
115472011-02-22 Sebastian Pop <sebastian.pop@amd.com>
11548
11549 PR doc/47848
11550 * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
11551
88ee1fc7
MS
115522011-02-22 Mike Stump <mikestump@comcast.net>
11553
11554 * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
11555 assembler.
11556 * configure: Regenerate.
11557
6042d1dd
CLT
115582011-02-21 Chung-Lin Tang <cltang@codesourcery.com>
11559
11560 PR rtl-optimization/46002
11561 * ira-color.c (update_copy_costs): Change class intersection
11562 test to reg_class_contents[] test of 'hard_regno'.
11563
7de97f9e
JM
115642011-02-21 Joseph Myers <joseph@codesourcery.com>
11565
11566 * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
11567 than Driver option.
11568 * config/hpux11.opt (mt): Likewise.
11569 * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
11570 * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
11571 * config/vax/elf.opt (mno-asm-pic): Likewise.
11572 * config/vms/vms.opt (map, mvms-return-codes): Likewise.
11573
d1d46f9f
MS
115742011-02-21 Mike Stump <mikestump@comcast.net>
11575
11576 PR target/47822
11577 * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
11578 tree so we can get save the type.
11579 * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
11580 for CFString instead of trying to use past the end of the builtins.
11581 * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
11582 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
11583 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
11584 * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
11585 Rename to darwin_builtin_cfstring.
11586 (darwin_init_cfstring_builtins): Return the built type.
11587
23e0d930
UB
115882011-02-21 Uros Bizjak <ubizjak@gmail.com>
11589
11590 PR target/47840
11591 * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
11592 (_mm256_insert_epi64): Use _mm_insert_epi64.
11593
192997cf
AS
115942011-02-21 Anatoly Sokolov <aesok@post.ru>
11595
11596 * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
11597 * config/stormy16/stormy16-protos.h
11598 (xstormy16_mode_dependent_address_p): Remove.
11599 * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
11600 Make static. Change return type to bool. Change argument type to
11601 const_rtx. Remove dead code.
11602 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
11603
e292d003
RG
116042011-02-21 Richard Guenther <rguenther@suse.de>
11605
11606 PR lto/47820
11607 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
11608 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
11609 (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
11610 TUs context.
23e0d930 11611 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
e292d003
RG
11612 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
11613
77f846e9
RG
116142011-02-20 Richard Guenther <rguenther@suse.de>
11615
11616 PR lto/47822
11617 * tree.c (free_lang_data_in_decl): Clean builtins from
11618 the TU decl BLOCK_VARS.
23e0d930 11619
b2cddfc8
AO
116202011-02-19 Alexandre Oliva <aoliva@redhat.com>
11621
11622 PR debug/47620
11623 PR debug/47630
11624 * haifa-sched.c (fix_tick_ready): Skip tick computation
11625 for debug insns.
11626
becf4c11
RG
116272011-02-19 Richard Guenther <rguenther@suse.de>
11628
11629 PR lto/47647
11630 * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
11631 Remove lazy BLOCK_VARS streaming.
11632 (lto_input_ts_block_tree_pointers): Likewise.
11633 * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
11634
27f98305
JM
116352011-02-19 Joseph Myers <joseph@codesourcery.com>
11636
11637 * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
11638
064bf3f4
JM
116392011-02-19 Joseph Myers <joseph@codesourcery.com>
11640
11641 * config/i386/biarch32.h, config/i386/mach.h,
11642 config/rs6000/aix.opt, config/sh/superh64.h: Remove.
11643
9215ddc3
JJ
116442011-02-19 Jakub Jelinek <jakub@redhat.com>
11645
11646 PR target/47800
11647 * config/i386/i386.md (peephole2 for shift and plus): Use
11648 operands[1] original mode in the first insn.
11649
8b021004
MS
116502011-02-18 Mike Stump <mikestump@comcast.net>
11651
65ded153 11652 * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
8b021004 11653
f84ae14c
JH
116542011-02-18 Jan Hubicka <jh@suse.cz>
11655
11656 PR middle-end/47788
65ded153
EB
11657 * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
11658 to zero when the function is not inlinable at all.
f84ae14c 11659
eddabc80
JDA
116602011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11661
11662 * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
11663 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
11664 pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
11665 * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
11666 * config/pa/t-pa64: Likewise.
11667 * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
11668
ca3da783
JJ
116692011-02-18 Jakub Jelinek <jakub@redhat.com>
11670
11671 PR driver/47787
11672 * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
11673
430aa868
JDA
116742011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11675
11676 PR target/47792
11677 * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
11678
4bf7ff7e
AS
116792011-02-18 Anatoly Sokolov <aesok@post.ru>
11680
11681 * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
11682 RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
11683 LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
11684 GO_IF_LEGITIMATE_ADDRESS): Remove macros.
11685 * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
11686 (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
11687 m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
11688 m32r_load_postinc_p, m32r_store_preinc_predec_p,
11689 m32r_legitimate_address_p): New functions.
11690 * config/m32r/constraints.md (constraint "S"): Don't use
11691 STORE_PREINC_PREDEC_P.
11692 (constraint "U"): Don't use LOAD_POSTINC_P.
11693
7efcf910
CLT
116942011-02-18 Chung-Lin Tang <cltang@codesourcery.com>
11695
11696 PR rtl-optimization/46178
11697 * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
11698 compute ira_hard_regno_cover_class[].
11699
237d6259
RG
117002011-02-18 Richard Guenther <rguenther@suse.de>
11701
11702 PR lto/47798
11703 * lto-streamer.h (lto_global_var_decls): Declare.
11704 * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
11705 statics for global var processing.
11706
12d80acc
RG
117072011-02-18 Richard Guenther <rguenther@suse.de>
11708
11709 PR tree-optimization/47737
11710 * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
11711 edge dominance check.
11712
abfea58d
JJ
117132011-02-18 Jakub Jelinek <jakub@redhat.com>
11714
11715 PR debug/47780
11716 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
11717 avoid invalid rtx sharing.
11718
f73c8882
GP
117192011-02-18 Gerald Pfeifer <gerald@pfeifer.com>
11720
11721 * doc/cpp.texi (Obsolete Features): Add background on the
11722 origin of assertions.
11723
d764a8e6
IS
117242011-02-17 Iain Sandoe <iains@gcc.gnu.org>
11725
11726 * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
23e0d930 11727 objc_abi == 2.
d764a8e6
IS
11728 * config/darwin.c (output_objc_section_asm_op): Added support for
11729 ABI v1 and v2.
11730 (is_objc_metadata): New.
11731 (darwin_objc2_section): New.
11732 (darwin_objc1_section): New.
11733 (machopic_select_section): Added support for ABI v1 and v2.
11734 (darwin_emit_objc_zeroed): New.
11735 (darwin_output_aligned_bss): Detect objc metadata and treat it
11736 appropriately.
11737 (darwin_asm_output_aligned_decl_common): Same.
11738 (darwin_asm_output_aligned_decl_local): Same.
11739 * config/darwin-sections.def: Updated for ABI v1 and v2.
11740 * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
11741 compiling Objective-C code for the NeXT runtime, default to using
11742 ABI version 0 for 32-bit, and version 2 for 64-bit.
11743
0a8134ca
JM
117442011-02-17 Joseph Myers <joseph@codesourcery.com>
11745
11746 * common.opt (optimize_fast): New Variable.
11747 * opts.c (default_options_optimization): Use opts->x_optimize_fast
11748 instead of local variable ofast.
11749
0a256240
NP
117502011-02-17 Nicola Pero <nicola.pero@meta-innovation.com>
11751
11752 * doc/invoke.texi (fobjc-abi-version): Documented.
11753 (fobjc-nilcheck): Documented.
11754 (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
11755 version.
11756
fa381cb2
JM
117572011-02-17 Joseph Myers <joseph@codesourcery.com>
11758
11759 PR driver/47390
11760 * common.opt (export-dynamic): New Driver option.
11761 * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
11762
5437eaa6
JM
117632011-02-17 Joseph Myers <joseph@codesourcery.com>
11764
11765 * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
11766
bb7e6d55
AO
117672011-02-17 Alexandre Oliva <aoliva@redhat.com>
11768 Jan Hubicka <jh@suse.cz>
11769
11770 PR debug/47106
11771 PR debug/47402
11772 * cfgexpand.c (account_used_vars_for_block): Remove.
11773 (estimated_stack_frame_size): Use referenced vars.
11774 * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
11775 that were referenced in the original function. Test src_fn
11776 rather than cfun. Drop redundant get_var_ann.
11777 (setup_one_parameter): Drop redundant get_var_ann.
11778 (declare_return_variable): Likewise.
11779 (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
11780 (copy_arguments_for_versioning): Drop redundant get_var_ann.
11781 * ipa-inline.c (compute_inline_parameters): Do not compute
11782 disregard_inline_limits here.
bb7e6d55
AO
11783 (compute_inlinable_for_current, pass_inlinable): New.
11784 (pass_inline_parameters): Require PROP_referenced_vars.
11785 * cgraphunit.c (cgraph_process_new_functions): Don't run
23e0d930 11786 compute_inline_parameters explicitly unless function is in SSA form.
bb7e6d55
AO
11787 (cgraph_analyze_function): Set .disregard_inline_limits.
11788 * tree-sra.c (convert_callers): Compute inliner parameters
11789 only for functions already in SSA form.
11790
f181a8a7
JM
117912011-02-17 Joseph Myers <joseph@codesourcery.com>
11792
11793 * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
11794 -mlittle-endian-data.
11795
c6869789
JM
117962011-02-17 Joseph Myers <joseph@codesourcery.com>
11797
11798 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
11799 -mno-fpu, not -fpu and -no-fpu.
11800 * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
11801 * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
11802
fbf4bfd3
UB
118032011-02-17 Uros Bizjak <ubizjak@gmail.com>
11804
11805 PR target/43653
11806 * config/i386/i386.c (ix86_secondary_reload): Handle SSE
11807 input reload with PLUS RTX.
11808
70be5dc7
JM
118092011-02-16 Joseph Myers <joseph@codesourcery.com>
11810
11811 * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
11812 of InverseVar(MDMX).
11813
30b1646e
JM
118142011-02-16 Joseph Myers <joseph@codesourcery.com>
11815
11816 * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
11817 --m4-340.
11818
ab7b71e9
JM
118192011-02-16 Joseph Myers <joseph@codesourcery.com>
11820
11821 * config/mn10300/mn10300.opt (mno-crt0): New.
11822
466f3f08
JM
118232011-02-16 Joseph Myers <joseph@codesourcery.com>
11824
11825 * config/m68k/uclinux.opt (static-libc): New Driver option.
11826
8226cd7b
JM
118272011-02-16 Joseph Myers <joseph@codesourcery.com>
11828
11829 * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
11830
45cab1d7
JM
118312011-02-16 Joseph Myers <joseph@codesourcery.com>
11832
11833 * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
11834 %{muser-extend-enabled}.
11835
65aab64f
RG
118362011-02-16 Richard Guenther <rguenther@suse.de>
11837
11838 PR tree-optimization/47738
11839 * tree-ssa-loop.c (run_tree_predictive_commoning): Return
11840 the TODO from tree_predictive_commoning.
11841
fc2fa4fb
JL
118422011-02-15 Jeff Law <law@redhat.com>
11843
11844 Revert
11845 2011-01-25 Jeff Law <law@redhat.com>
11846
11847 PR rtl-optimization/37273
11848 * ira-costs.c (scan_one_insn): Detect constants living in memory and
11849 handle them like argument loads from stack slots. Do not double
11850 count memory for memory constants and argument loads from stack slots.
11851
4e380b8e
L
118522011-02-15 H.J. Lu <hongjiu.lu@intel.com>
11853
11854 PR middle-end/47725
11855 * combine.c (cant_combine_insn_p): Revert the last change.
11856
e3a69bb4
MM
118572011-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
11858
11859 PR target/47755
11860 * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
11861 mode for vector constants. Remove code that checks for TImode.
11862
de650422
AO
118632011-02-15 Alexandre Oliva <aoliva@redhat.com>
11864
11865 PR debug/47106
11866 PR debug/47402
11867 * cgraph.h (compute_inline_parameters): Return void.
11868 * ipa-inline.c (compute_inline_parameters): Adjust.
11869
30925d94
AO
118702011-02-15 Alexandre Oliva <aoliva@redhat.com>
11871
11872 PR debug/47106
11873 PR debug/47402
11874 * tree-inline.h (estimated_stack_frame_size): Take cgraph node
11875 rather than decl.
11876 * cfgexpand.c (estimated_stack_frame_size): Likewise.
11877 * ipa-inline.c (compute_inline_parameters): Adjust.
11878
1b9a784a
AO
118792011-02-15 Alexandre Oliva <aoliva@redhat.com>
11880
11881 PR debug/47106
11882 PR debug/47402
11883 * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
11884 Adjust all users. Pass FN to...
11885 * tree-flow-inline.h (first_referenced_var): ... this. Add
11886 fn argument.
11887 * ipa-struct-reorg.c: Adjust.
11888 * tree-dfa.c: Adjust.
11889 * tree-into-ssa.c: Adjust.
11890 * tree-sra.c: Adjust.
11891 * tree-ssa-alias.c: Adjust.
11892 * tree-ssa-live.c: Adjust.
11893 * tree-ssa.c: Adjust.
11894 * tree-ssanames.c: Adjust.
11895 * tree-tailcall.c: Adjust.
11896
27c6b086
AO
118972011-02-15 Alexandre Oliva <aoliva@redhat.com>
11898
11899 PR debug/47106
11900 PR debug/47402
11901 * tree-flow.h (referenced_var_lookup): Add fn parameter.
11902 Adjust all callers.
11903 * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
11904 * tree-flow-inline.h: Adjust.
11905 * gimple-pretty-print.c: Adjust.
11906 * tree-into-ssa.c: Adjust.
11907 * tree-ssa.c: Adjust.
11908 * cfgexpand.c: Adjust.
11909
679e8183
NF
119102011-02-15 Nathan Froyd <froydnj@codesourcery.com>
11911
fbf4bfd3
UB
11912 * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
11913 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11914 (EXTRA_CONSTRAINT): Delete.
11915 * config/iq2000/constraints.md: New file.
11916 * config/iq2000/iq2000.md: Include it.
679e8183
NF
11917 (define_insn ""): Delete.
11918 (movsi_internal2, movhi_internal2, movqi_internal2): Delete
11919 unsupported constraint letters from patterns.
11920 (call_value, call_value_internal1): Likewise.
11921 (call_value_multiple_internal1): Likewise.
11922
a45d420a
NC
119232011-02-15 Nick Clifton <nickc@redhat.com>
11924
11925 * config/mn10300/mn10300.c: Include tm-constrs.h.
11926 (struct liw_data): New data structure describing an LIW candidate
11927 instruction.
11928 (extract_bundle): Use struct liw_data. Allow small integer
11929 operands for some instructions.
11930 (check_liw_constraints): Use struct liw_data. Remove swapped
11931 parameter. Add comments describing the checks. Fix bug when
11932 assigning the source of liw1 to the source of liw2.
11933 (liw_candidate): Delete. Code moved into extract_bundle.
11934 (mn10300_bundle_liw): Use struct liw_data. Check constraints
11935 before swapping.
11936 * config/mn10300/predicates.md (liw_operand): New predicate.
11937 Allows registers and small integer constants.
11938 * config/mn10300/constraints.md (O): New constraint. Accetps
11939 integers in the range -8 to +7 inclusive.
11940 * config/mn10300/mn10300.md (movesi_internal): Add an alternative
11941 for moving a small integer into a register. Give this alternative
11942 LIW attributes.
11943 (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
11944 (ashlsi3): Likewise, plus give LIW attributes to the alternatives
11945 using the J,K,L and M constraints,
11946 (liw): Remove SI mode on second operands to allow for HI and QI
11947 mode values.
11948 (cmp_liw, liw_cmp): Likewise. Plus fix order of operands in the
11949 instruction.
11950
8a73faf1
L
119512011-02-15 H.J. Lu <hongjiu.lu@intel.com>
11952
11953 PR middle-end/47725
11954 * combine.c (cant_combine_insn_p): Check zero/sign extended
11955 hard registers.
11956
48feba28
RG
119572011-02-15 Richard Guenther <rguenther@suse.de>
11958
11959 PR tree-optimization/47743
11960 * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
11961 for a non-type-compatible VN lookup bail out.
11962
ad1c1eeb
NF
119632011-02-15 Nathan Froyd <froydnj@codesourcery.com>
11964
11965 * config/fr30/constraints.md: New file.
11966 * config/fr30/fr30.md: Include it.
11967 * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
11968 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11969 (EXTRA_CONSTRAINT): Delete.
11970
49ac143d
NF
119712011-02-15 Nathan Froyd <froydnj@codesourcery.com>
11972
11973 * config/frv/constraints.md: New file.
11974 * config/frv/predicates.md: Include it.
11975 * config/frv/frv.c (reg_class_from_letter): Delete.
11976 (frv_option_override): Don't initialize it.
11977 * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
11978 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
11979 (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
11980 (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
11981 (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
11982 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11983 (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
11984 (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
11985 (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
11986 (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
11987 (REG_CLASS_FROM_CONSTRAINT): Delete.
11988
c95f9494
JJ
119892011-02-15 Jakub Jelinek <jakub@redhat.com>
11990
11991 PR middle-end/47581
11992 * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
11993 if frame size is 0 in a leaf function.
11994
13aed611
RO
119952011-02-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11996
11997 PR pch/14940
11998 * config/alpha/host-osf.c: New file.
11999 * config/alpha/x-osf: New file.
12000 * config.host (alpha*-dec-osf*): Use it.
12001
b09c3081
AS
120022011-02-14 Anatoly Sokolov <aesok@post.ru>
12003
12004 * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
12005 * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
12006 * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
12007 (rx_mode_dependent_address_p): ...this. Make static. Change argument
12008 type to const_rtx.
12009 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12010
d634083b
NF
120112011-02-14 Nathan Froyd <froydnj@codesourcery.com>
12012
12013 * config/stormy16/constraints.md: New file.
12014 * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
12015 Use satisfies_constraint_Q and satisfies_constraint_R.
12016 * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
12017 Delete.
12018 (xstormy16_legitiamte_address_p): Declare.
12019 * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
12020 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
12021 (EXTRA_CONSTRAINT): Delete.
fbf4bfd3 12022 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
d634083b
NF
12023 Un-staticize.
12024 (xstormy16_extra_constraint_p): Delete.
12025
c7dd803e
EB
120262011-02-14 Eric Botcazou <ebotcazou@adacore.com>
12027
12028 PR tree-optimization/46494
12029 * loop-unroll.c (split_edge_and_insert): Adjust comment.
12030 * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
12031 (pass_rtl_loop_done): Add TODO_verify_flow.
12032 * fwprop.c (pass_rtl_fwprop): Likewise.
12033 * modulo-sched.c (pass_sms): Likewise.
12034 * tree-ssa-dom.c (pass_dominator): Likewise.
12035 * tree-ssa-loop-ch.c (pass_ch): Likewise.
12036 * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
12037 (pass_tree_loop_done): Likewise.
12038 * tree-ssa-pre.c (execute_pre): Likewise.
12039 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
12040 * tree-ssa-sink.c (pass_sink_code): Likewise.
12041 * tree-vrp.c (pass_vrp): Likewise.
12042
c6150df6
NF
120432011-02-14 Nathan Froyd <froydnj@codesourcery.com>
12044
c7dd803e
EB
12045 * config/v850/constraints.md: New file.
12046 * config/v850/v850.md: Include it.
12047 * config/v850/predicates.md (reg_or_0_operand): Use
12048 satisfies_constraint_G.
12049 (special_symbolref_operand): Use satisfies_constraint_K.
12050 * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
12051 (GO_IF_LEGITIMATE_ADDRESS): Likewise.
12052 (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
12053 (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
12054 (EXTRA_CONSTRAINT): Delete.
12055 (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
12056 (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
12057 (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
c6150df6 12058
30dd1ea3
AS
120592011-02-14 Anatoly Sokolov <aesok@post.ru>
12060
12061 PR target/47696
12062 * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
12063 description.
12064
944f4bb3
NF
120652011-02-14 Nathan Froyd <froydnj@codesourcery.com>
12066
12067 * config/mcore/constraints.md: New file.
12068 * config/mcore/mcore.md: Include it.
12069 * config/mcore/mcore.c (reg_class_from_letter): Delete.
12070 * config/mcore/mcore.h (reg_class_from_letter): Delete.
12071 (REG_CLASS_FROM_LETTER): Delete.
12072 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
12073 insn_const_int_ok_for_constraint.
12074 (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
12075 (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
12076 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
12077 (EXTRA_CONSTRAINT): Delete.
12078
ad56a54c
RO
120792011-02-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12080
12081 PR ada/41929
12082 * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
12083 (IS_SIGHANDLER): Define.
12084 (sparc64_is_sighandler): New function, split off from
12085 sparc64_fallback_frame_state.
12086 (sparc_is_sighandler): New function, split off from
12087 sparc_fallback_frame_state.
12088 (sparc64_fallback_frame_state): Merge with ...
12089 (sparc_fallback_frame_state): ... this into ...
12090 (MD_FALLBACK_FRAME_STATE_FOR): ... this.
fbf4bfd3
UB
12091 Change new_cfa to long. Remove regs_off, fpu_save_off, fpu_save.
12092 Define nframes, mctx. Use IS_SIGHANDLER, handler_args, mctx, walk
12093 stack instead of hardcoded offsets.
ad56a54c 12094
fbf4bfd3 120952011-02-14 Andriy Gapon <avg@freebsd.org>
67932abf
AG
12096
12097 PR target/45808
12098 * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
12099
029c8f3e
RW
121002011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12101
12102 * configure: Regenerate.
12103
a016dc83
JM
121042011-02-12 Joseph Myers <joseph@codesourcery.com>
12105
12106 PR driver/45731
12107 * gcc.c (asm_options): Correct spec matching --target-help.
12108
8957a0ec
MJ
121092011-02-12 Martin Jambor <mjambor@suse.cz>
12110
12111 * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
12112 to gimple call error.
12113
6ef828bc
MS
121142011-02-12 Mike Stump <mikestump@comcast.net>
12115
12116 * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
12117 comments in backslash regions.
12118
a4015be5
MS
121192011-02-12 Mike Stump <mikestump@comcast.net>
12120 Jakub Jelinek <jakub@redhat.com>
12121 Iain Sandoe <iains@gcc.gnu.org>
12122
12123 PR target/47324
12124 * dwarf2out.c (output_cfa_loc): When required, apply the
12125 DWARF2_FRAME_REG_OUT macro to adjust register numbers.
12126 (output_loc_sequence): Likewise.
12127 (output_loc_operands_raw): Likewise.
12128 (output_loc_sequence_raw): Likewise.
12129 (output_cfa_loc): Likewise.
12130 (output_loc_list): Suppress register number adjustment when
12131 calling output_loc_sequence()
12132 (output_die): Likewise.
12133
5378dda2
AS
121342011-02-12 Anatoly Sokolov <aesok@post.ru>
12135
12136 * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
12137 Remove macros.
12138 * config/xtensa/xtensa.c (xtensa_register_move_cost,
12139 xtensa_memory_move_cost): New functions.
12140 (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
12141
f3d533d3
AO
121422011-02-12 Alexandre Oliva <aoliva@redhat.com>
12143
12144 PR lto/47225
12145 * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
12146 in the current directory.
12147 * configure: Rebuilt.
12148
9d53403c
IS
121492011-02-12 Iain Sandoe <iains@gcc.gnu.org>
12150
12151 * config/darwin.c (darwin_override_options): Add a hunk missed
fbf4bfd3 12152 from the commit of r168571. Trim comment line lengths and
9d53403c
IS
12153 correct indents of the preceding block.
12154
a350a6c8
IS
121552011-02-12 Iain Sandoe <iains@gcc.gnu.org>
12156
12157 * gcc.c (driver_handle_option): Concatenate the argument to -F with
12158 the switch.
12159
bab79a40
JM
121602011-02-11 Joseph Myers <joseph@codesourcery.com>
12161
12162 * common.opt (nostartfiles): New Driver option.
12163
1bbc6693
XDL
121642011-02-11 Xinliang David Li <davidxl@google.com>
12165
12166 PR tree-optimization/47707
12167 * tree-chrec.c (convert_affine_scev): Keep type precision.
12168
1da7d8c0
EB
121692011-02-11 Eric Botcazou <ebotcazou@adacore.com>
12170
12171 PR tree-optimization/47420
12172 * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
12173
121742011-02-11 Pat Haugen <pthaugen@us.ibm.com>
3f82421f
PH
12175
12176 PR rtl-optimization/47614
12177 * rtl.h (check_for_inc_dec): Declare.
12178 * dse.c (check_for_inc_dec): Externalize...
12179 * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
12180 (reload_cse_simplify_operands): Don't simplify opnds with side effects.
12181
4df47bca
JM
121822011-02-11 Joseph Myers <joseph@codesourcery.com>
12183
12184 PR driver/47678
12185 * gcc.c (main): Do not compile inputs if there were errors in
12186 option handling.
12187 * opts-common.c (read_cmdline_option): Check for wrong language
12188 after other error checks.
12189
61502ca8
NF
121902011-02-11 Nathan Froyd <froydnj@codesourcery.com>
12191
12192 * cgraph.c: Fix comment typos.
12193 * cgraph.h: Likewise.
12194 * cgraphunit.c: Likewise.
12195 * ipa-cp.c: Likewise.
12196 * ipa-inline.c: Likewise.
12197 * ipa-prop.c: Likewise.
12198 * ipa-pure-const.c: Likewise.
12199 * ipa-ref.c: Likewise.
12200 * ipa-reference.c: Likewise.
12201
b63f974e
JJ
122022011-02-11 Jakub Jelinek <jakub@redhat.com>
12203
d50c5e0c
JJ
12204 PR debug/47684
12205 * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
b63f974e 12206
6dd2a13c
RO
122072011-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12208
12209 PR testsuite/47400
12210 * doc/sourcebuild.texi (Require Support): Document
12211 dg-require-ascii-locale.
12212
4a087ccf
MX
122132011-02-11 Mingjie Xing <mingjie.xing@gmail.com>
12214
12215 * doc/lto.texi (Write summary): Fix missing parentheses.
12216
a4403164
DD
122172011-02-10 DJ Delorie <dj@redhat.com>
12218
12219 * config/m32c/m32c.c (m32c_option_override): Disable
12220 -fcombine-stack-adjustments until flag value tracking and compare
12221 optimization can be rewritten.
12222
4fac45bd
PB
122232011-02-10 Peter Bergner <bergner@vnet.ibm.com>
12224
12225 * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
12226 PROCESSOR_POWER7.
12227 (PROCESSOR_DEFAULT64): Likewise.
12228
72602cd1
RH
122292011-02-10 Richard Henderson <rth@redhat.com>
12230
12231 * config/rx/predicates.md (rx_zs_comparison_operator): Revert
12232 change from 2011-02-03.
12233 * config/rx/rx.c (flags_from_code): Likewise.
12234 (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
12235 is valid, n/pz otherwise.
12236 (rx_select_cc_mode): Return CCmode if Y is not zero.
12237
ea57f573
RG
122382011-02-10 Richard Guenther <rguenther@suse.de>
12239
ea4c3e65 12240 * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
ea57f573 12241
92b1d23b
RG
122422011-02-10 Richard Guenther <rguenther@suse.de>
12243
12244 PR tree-optimization/47677
12245 * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
12246
525a2d06
JJ
122472011-02-10 Jakub Jelinek <jakub@redhat.com>
12248
12249 PR target/47665
12250 * combine.c (make_compound_operation): Only change shifts into
12251 multiplication for SCALAR_INT_MODE_P.
12252
06c969bd
JZ
122532011-02-10 Jie Zhang <jie@codesourcery.com>
12254
12255 PR testsuite/47622
12256 Revert
12257 2011-02-05 Jie Zhang <jie@codesourcery.com>
12258 PR debug/42631
12259 * web.c (entry_register): Don't clobber the number of the
12260 first uninitialized reference in used[].
12261
282ec48e
RG
122622011-02-09 Richard Guenther <rguenther@suse.de>
12263
12264 PR tree-optimization/47664
12265 * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
12266 all edges again.
12267
df98c3e8
DE
122682011-02-09 David Edelsohn <dje.gcc@gmail.com>
12269
d0f21cd6
DE
12270 PR target/46481
12271 PR target/47032
df98c3e8
DE
12272 * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
12273 PROCESSOR_POWER7.
12274 (PROCESSOR_DEFAULT64): Same.
12275 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
12276
67b6839f
RO
122772011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12278
12279 * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
12280
4fd73214
MJ
122812011-02-09 Martin Jambor <mjambor@suse.cz>
12282
12283 PR middle-end/45505
12284 * tree-sra.c (struct access): New flags grp_scalar_read and
12285 grp_scalar_write. Changed description of assignment read and write
12286 flags.
12287 (dump_access): Dump new flags, reorder all of them.
12288 (sort_and_splice_var_accesses): Set the new flag accordingly, use them
12289 to detect multiple scalar reads.
12290 (analyze_access_subtree): Use the new scalar read write flags instead
12291 of the old flags. Adjusted comments.
12292
91140cd3
DD
122932011-02-08 DJ Delorie <dj@redhat.com>
12294
12295 PR target/47548
12296 * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
12297 patterns.
12298
4254bbfe
JM
122992011-02-08 Joseph Myers <joseph@codesourcery.com>
12300
12301 * config/m68k/uclinux.opt: New.
12302 * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
12303
f1fda84e
JM
123042011-02-08 Joseph Myers <joseph@codesourcery.com>
12305
12306 * config/cris/elf.opt (sim): New Driver option.
12307
4933ae74
JM
123082011-02-08 Joseph Myers <joseph@codesourcery.com>
12309
12310 * config/xtensa/elf.opt: New.
12311 * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
12312
4ad70280
JM
123132011-02-08 Joseph Myers <joseph@codesourcery.com>
12314
12315 * config/vax/elf.opt: New.
12316 * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
12317
20893707
JM
123182011-02-08 Joseph Myers <joseph@codesourcery.com>
12319
12320 * config/rs6000/aix64.opt (posix, pthread): New Driver options.
12321
b8e7038e
JM
123222011-02-08 Joseph Myers <joseph@codesourcery.com>
12323
12324 * config/gnu-user.opt: New.
12325 * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
12326 *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
12327 *-*-uclinux*): Use gnu-user.opt.
12328
e1c5225a
TS
123292011-02-08 Thomas Schwinge <thomas@schwinge.name>
12330
12331 * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
12332 * config/i386/gnu.h (CPP_SPEC): Likewise.
12333
5e46b0c6
ILT
123342011-02-08 Ian Lance Taylor <iant@google.com>
12335
12336 * common.opt (fcx-limited-range): Add SetByCombined flag.
12337 (ffinite-math-only, fmath-errno, frounding-math): Likewise.
12338 (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
12339 (fassociative-math, freciprocal-math): Likewise.
12340 (funsafe-math-optimizations): Likewise.
12341 * opth-gen.awk: Handle SetByCombined.
12342 * optc-gen.awk: Likewise.
ea4c3e65 12343 * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
5e46b0c6
ILT
12344 (set_unsafe_math_optimizations_flags): Likewise.
12345 * doc/options.texi (Option properties): Document SetByCombined.
12346
32243d46
JM
123472011-02-08 Joseph Myers <joseph@codesourcery.com>
12348
12349 * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
12350 i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
12351 m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
12352 m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
12353 sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
12354
479c1fb3
SP
123552011-02-08 Sebastian Pop <sebastian.pop@amd.com>
12356
12357 PR tree-optimization/46834
12358 PR tree-optimization/46994
12359 PR tree-optimization/46995
12360 * graphite-sese-to-poly.c (used_outside_reduction): New.
12361 (detect_commutative_reduction): Call used_outside_reduction.
12362 (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
12363 translate_scalar_reduction_to_array only when at least one
12364 loop-phi/close-phi tuple has been detected.
12365
3865a06f
RG
123662011-02-08 Richard Guenther <rguenther@suse.de>
12367
12368 PR middle-end/47639
12369 * tree-vect-generic.c (expand_vector_operations_1): Update
12370 stmts here ...
12371 (expand_vector_operations): ... not here. Cleanup EH info
12372 and the CFG if required.
12373
62902f3f
RG
123742011-02-08 Richard Guenther <rguenther@suse.de>
12375
12376 PR tree-optimization/47641
12377 * tree-ssa.c (execute_update_addresses_taken): For asm outputs
12378 require type compatibility.
12379
0efb9d64
AK
123802011-02-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12381
12382 * gimple-low.c (lower_function_body): Don't remove the location of
12383 the return statement here.
12384 (lower_gimple_return): Do it here instead but only if the return
12385 statement is actually used twice.
12386
034b8ae4
RG
123872011-02-08 Richard Guenther <rguenther@suse.de>
12388
12389 PR tree-optimization/47632
12390 * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
12391 unused up_to_stmt parameter, return whether cfg-cleanup is
12392 necessary, remove EH info properly.
12393 (forward_propagate_into_gimple_cond): Adjust caller.
12394 (forward_propagate_into_cond): Likewise.
12395 (forward_propagate_comparison): Likewise.
12396 (tree_ssa_forward_propagate_single_use_vars): Make
12397 forward_propagate_comparison case similar to the two others.
12398
298362c8
NC
123992011-02-08 Nick Clifton <nickc@redhat.com>
12400
12401 * config/mn10300/mn10300.opt (mliw): New command line option.
12402 * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
12403 (liw_bundling): New automaton.
12404 (liw): New attribute.
12405 (liw_op): New attribute.
12406 (liw_op1, liw_op2, liw_both, liw_either): New reservations.
12407 (movsi_internal): Add LIW attributes.
12408 (andsi3): Likewise.
12409 (iorsi3): Likewise.
12410 (xorsi3): Likewise.
12411 (addsi3): Separate register and immediate alternatives.
12412 Add LIW attributes.
12413 (subsi3): Likewise.
12414 (cmpsi): Likewise.
12415 (aslsi3): Likewise.
12416 (lshrsi3): Likewise.
12417 (ashrsi3): Likewise.
12418 (liw): New pattern.
12419 * config/mn10300/mn10300.c (liw_op_names): New
12420 (mn10300_print_operand): Handle 'W' operand descriptor.
12421 (extract_bundle): New function.
12422 (check_liw_constraints): New function.
12423 (liw_candidate): New function.
12424 (mn10300_bundle_liw): New function.
12425 (mn10300_reorg): New function.
12426 (TARGET_MACHINE_DEPENDENT_REORG): Define.
12427 (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
12428 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
12429 __LIW__ or __NO_LIW__.
12430 * doc/invoke.texi: Describe the -mliw command line option.
12431
90488014
JDA
124322011-02-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12433
12434 * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
12435 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
12436 pthread_mutex_unlock): Remove.
12437 * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
12438 * config/pa/t-pa64: Likewise.
12439 * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
12440 shared libc if not linking against libpthread.
12441 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
12442
689ff841
IS
124432011-02-07 Iain Sandoe <iains@gcc.gnu.org>
12444
12445 PR target/47558
12446 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
12447 on 10.6 and later to ensure that we always use the unwinder from
12448 the system. Only add -no_compact_unwind when tarteting darwin
12449 10.6 or later.
12450
821014aa
SE
124512011-02-07 Steve Ellcey <sje@cup.hp.com>
12452
12453 PR target/46997
12454 * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
12455 (vec_interleave_lowv2sf): Ditto.
12456 (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
12457 (vec_extract_oddv2sf): Ditto.
12458
41cf94fb
MS
124592011-02-07 Mike Stump <mikestump@comcast.net>
12460
62dea57d 12461 PR target/42333
41cf94fb
MS
12462 Add __ieee_divdc3 entry point.
12463 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
12464 entry point.
12465 (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
12466 * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
12467 * config/darwin.c (darwin_rename_builtins): Add.
12468 * config/darwin-protos.h (darwin_rename_builtins): Add.
12469
ee09a3dd
MM
124702011-02-07 Michael Meissner <meissner@linux.vnet.ibm.com>
12471
12472 PR target/47636
12473 * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
12474 for the condition.
12475
83296cd0
MS
124762011-02-07 Mike Stump <mikestump@comcast.net>
12477
ea4c3e65 12478 * config/darwin.opt (mmacosx-version-min): Update default OS version.
83296cd0 12479
0f4e946f
DC
124802011-02-07 Denis Chertykov <chertykov@gmail.com>
12481
12482 PR target/47534
12483 * config/avr/libgcc.S (exit): Move .endfunc
12484
1ec87690
RG
124852011-02-07 Richard Guenther <rguenther@suse.de>
12486
12487 PR tree-optimization/47615
12488 * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
12489 * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
12490 (run_scc_vn): Initialize it.
12491 (visit_reference_op_load): Use it.
12492 * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
12493
b46ae6da
UW
124942011-02-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12495
12496 * config/spu/spu.c (spu_init_libfuncs): Install SImode and
12497 DImode trapping arithmetic libfuncs.
12498
c0aae19c
RG
124992011-02-07 Richard Guenther <rguenther@suse.de>
12500
12501 PR tree-optimization/47621
12502 * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
12503 two duplicates ...
12504 (execute_update_addresses_taken): ... here. Make it more
12505 conservative in what we accept.
12506
295d926b
JM
125072011-02-06 Joseph Myers <joseph@codesourcery.com>
12508
12509 * config/sparc/freebsd.h (ASM_SPEC): Define.
12510 * config/sparc/vxworks.h (ASM_SPEC): Define.
12511
bdeb2471
JM
125122011-02-06 Joseph Myers <joseph@codesourcery.com>
12513
12514 * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
12515
d5d3781a
SB
125162011-02-06 Steven Bosscher <steven@gcc.gnu.org>
12517
12518 * doc/invoke.texi: Remove reference to compiler internals from
12519 user documentation.
12520
12521 * reg-notes.def: Remove REG_VALUE_PROFILE.
12522 * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
12523
c42c09fc
JJ
125242011-02-05 Jakub Jelinek <jakub@redhat.com>
12525
12526 PR middle-end/47610
12527 * varasm.c (default_section_type_flags): If decl is NULL,
38be4072 12528 and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
c42c09fc 12529
beea2755
JZ
125302011-02-05 Jie Zhang <jie@codesourcery.com>
12531
12532 PR debug/42631
12533 * web.c (entry_register): Don't clobber the number of the
12534 first uninitialized reference in used[].
12535
a130584a
SP
125362011-02-04 Sebastian Pop <sebastian.pop@amd.com>
12537
12538 PR tree-optimization/46194
12539 * tree-data-ref.c (analyze_miv_subscript): Remove comment.
12540 (build_classic_dist_vector_1): Do not represent classic distance
12541 vectors when the access functions are variating in different loops.
12542
962101ac
JM
125432011-02-04 Joseph Myers <joseph@codesourcery.com>
12544
12545 * config/mips/iris6.opt: New.
12546 * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
12547
55eaaa5b
RH
125482011-02-04 Richard Henderson <rth@redhat.com>
12549 Steve Ellcey <sje@cup.hp.com>
12550
12551 PR target/46997
12552 * config/ia64/predicates.md (mux1_brcst_element): New.
12553 * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
12554 * config/ia64/ia64.c (ia64_unpack_assemble): New.
12555 (ia64_unpack_sign): New.
12556 (ia64_expand_unpack): Rewrite using new routines.
12557 (ia64_expand_widen_sum): Ditto.
12558 (ia64_expand_dot_prod_v8qi): Ditto.
12559 * config/ia64/vect.md (mulv8qi3): Rewrite to use new
12560 routines, add endian check.
12561 (pmpy2_even): Rename from pmpy2_r, add endian check.
12562 (pmpy2_odd): Rename from pmpy2_l, add endian check.
12563 (vec_widen_smult_lo_v4hi): Rewrite using new routines.
12564 (vec_widen_smult_hi_v4hi): Ditto.
12565 (vec_widen_umult_lo_v4hi): Ditto.
12566 (vec_widen_umult_hi_v4hi): Ditto.
12567 (mulv2si3): Change endian checks.
12568 (sdot_prodv4hi): Rewrite with new calls.
12569 (udot_prodv4hi): New.
12570 (vec_pack_ssat_v4hi): Add endian check.
12571 (vec_pack_usat_v4hi): Ditto.
12572 (vec_pack_ssat_v2si): Ditto.
12573 (max1_even): Rename from max1_r, add endian check.
12574 (max1_odd): Rename from max1_l, add endian check.
12575 (*mux1_rev): Format change.
12576 (*mux1_mix): Ditto.
12577 (*mux1_shuf): Ditto.
12578 (*mux1_alt): Ditto.
12579 (*mux1_brcst_v8qi): Use new predicate.
12580 (vec_extract_evenv8qi): Remove endian check.
12581 (vec_extract_oddv8qi): Ditto.
12582 (vec_interleave_lowv4hi): Format change.
12583 (vec_interleave_highv4hi): Ditto.
12584 (mix2_even): Rename from mix2_r, add endian check.
12585 (mix2_odd): Rename from mux2_l, add endian check.
12586 (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
12587 (vec_extract_evenodd_helper): Format change.
12588 (vec_extract_evenv4hi): Remove endian check.
12589 (vec_extract_oddv4hi): Remove endian check.
12590 (vec_interleave_lowv2si): Format change.
12591 (vec_interleave_highv2si): Format change.
12592 (vec_initv2si): Remove endian check.
12593 (vecinit_v2si): Add endian check.
12594 (reduc_splus_v2sf): Add endian check.
12595 (reduc_smax_v2sf): Ditto.
12596 (reduc_smin_v2sf): Ditto.
12597 (vec_initv2sf): Remove endian check.
12598 (fpack): Add endian check.
12599 (fswap): Add endian check.
12600 (vec_interleave_highv2sf): Add endian check.
12601 (vec_interleave_lowv2sf): Add endian check.
12602 (fmix_lr): Add endian check.
12603 (vec_setv2sf): Format change.
12604 (*vec_extractv2sf_0_be): Use shift to extract operand.
12605 (*vec_extractv2sf_1_be): New.
12606 (vec_pack_trunc_v4hi): Add endian check.
12607 (vec_pack_trunc_v2si): Format change.
12608
dcde5957
JJ
126092011-02-04 Jakub Jelinek <jakub@redhat.com>
12610
12611 PR inline-asm/23200
12612 * tree-ssa-ter.c (is_replaceable_p): Add TER argument. Don't
38be4072 12613 do bb, locus and block comparison and disallow loads if it is not set.
dcde5957
JJ
12614 (stmt_is_replaceable_p): New function.
12615 (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
12616 callers.
12617 * expr.c (expand_expr_real_1) <case SSA_NAME>: If
12618 get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
12619 SSA_NAME_DEF_STMT.
12620 * tree-flow.h (stmt_is_replaceable_p): New prototype.
12621
a64a8e5a
JM
126222011-02-04 Joseph Myers <joseph@codesourcery.com>
12623
12624 * config/rs6000/xilinx.opt: New.
12625 * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
12626
4da2ed2f
JM
126272011-02-04 Joseph Myers <joseph@codesourcery.com>
12628
12629 * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
12630
a6e508f9
AS
126312011-02-03 Anatoly Sokolov <aesok@post.ru>
12632
12633 * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
12634 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
12635 * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
12636 secondary_reload_info, xtensa_secondary_reload): Remove.
12637 * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
12638 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
12639 (xtensa_preferred_reload_class): Make static. Change return and
12640 'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
12641 Use CONST_DOUBLE_P predicate.
12642 (xtensa_preferred_output_reload_class): New function.
12643 (xtensa_secondary_reload): Make static.
12644
82dc0de3
JM
126452011-02-03 Joseph Myers <joseph@codesourcery.com>
12646
12647 * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
12648 Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
12649 Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
12650
7fece979
JJ
126512011-02-03 Jakub Jelinek <jakub@redhat.com>
12652
12653 PR middle-end/31490
12654 * output.h (SECTION_RELRO): Define.
12655 (SECTION_MACH_DEP): Adjust.
12656 (get_variable_section): New prototype.
12657 * varpool.c (varpool_finalize_named_section_flags): New function.
12658 (varpool_assemble_pending_decls): Call it.
12659 * cgraph.h (varpool_finalize_named_section_flags): New prototype.
12660 * cgraphunit.c (cgraph_output_in_order): Call
12661 varpool_finalize_named_section_flags.
12662 * varasm.c (get_section): Allow section flags conflicts between
12663 relro and read-only sections if the section hasn't been declared yet.
12664 Set SECTION_OVERRIDE after diagnosing section type conflict.
12665 (get_variable_section): No longer static.
12666 (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
12667 readonly sections that need relocations.
12668 (decl_readonly_section_1): New function.
12669 (decl_readonly_section): Use it.
12670
12671 Revert:
509d65dd 12672 2010-11-17 Dinar Temirbulatov <dtemirbulatov@gmail.com>
7fece979
JJ
12673 Steve Ellcey <sje@cup.hp.com>
12674
12675 PR middle-end/31490
12676 * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
12677 if section attribute used.
12678
d18d5478
JJ
126792011-02-03 Jakub Jelinek <jakub@redhat.com>
12680
12681 * config/darwin.h (SECTION_NO_ANCHOR): Remove.
12682 * config/darwin.c (SECTION_NO_ANCHOR): Define.
12683 (darwin_init_sections): Remove assertion.
12684
6479ed4b
NC
126852011-02-03 Nick Clifton <nickc@redhat.com>
12686
12687 * config/rx/predicates.md (rx_zs_comparison_operator): Remove
12688 lt and ge.
38be4072 12689 * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
6479ed4b
NC
12690 * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
12691 instead of "n" and "pz".
12692 (flags_from_code): LT and GE tests need CC_FLAG_O as well as
12693 CC_FLAG_S.
12694
89843f5d
JJ
126952011-02-03 Jakub Jelinek <jakub@redhat.com>
12696
65450d64
JJ
12697 PR target/47312
12698 * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
12699 fma, expand FMA_EXPR as fma{,f,l} call.
12700
7d58701c
JJ
12701 PR lto/47274
12702 * lto-streamer-out.c (write_symbol): When writing kind and visibility,
12703 copy them into a unsigned char variable and pass address of it to
12704 lto_output_data_stream.
12705
89843f5d
JJ
12706 PR target/47564
12707 * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
12708 around backend_init_target and lang_dependent_init_target calls.
12709 * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
12710 (verify_cgraph_node): Don't call set_cfun here. Use
12711 cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
12712 Set error_found for incorrectly represented calls to thunks.
12713
4deef538
AO
127142011-02-03 Alexandre Oliva <aoliva@redhat.com>
12715
12716 PR debug/43092
12717 PR rtl-optimization/43494
12718 * rtl.h (for_each_inc_dec_fn): New type.
12719 (for_each_inc_dec): Declare.
12720 * rtlanal.c (struct for_each_inc_dec_ops): New type.
12721 (for_each_inc_dec_find_inc_dec): New fn.
12722 (for_each_inc_dec_find_mem): New fn.
12723 (for_each_inc_dec): New fn.
12724 * dse.c (struct insn_size): Remove.
12725 (replace_inc_dec, replace_inc_dec_mem): Remove.
12726 (emit_inc_dec_insn_before): New fn.
12727 (check_for_inc_dec): Use it, along with for_each_inc_dec.
12728 (canon_address): Pass mem modes to cselib_lookup.
12729 * cselib.h (cselib_lookup): Add memmode argument. Adjust callers.
12730 (cselib_lookup_from_insn): Likewise.
12731 (cselib_subst_to_values): Likewise.
12732 * cselib.c (find_slot_memmode): New var.
12733 (cselib_find_slot): New fn. Use it instead of
12734 htab_find_slot_with_hash everywhere.
12735 (entry_and_rtx_equal_p): Use find_slot_memmode.
12736 (autoinc_split): New fn.
12737 (rtx_equal_for_cselib_p): Rename and implement in terms of...
12738 (rtx_equal_for_cselib_1): ... this. Take memmode, pass it on.
12739 Deal with autoinc. Special-case recursion into MEMs.
12740 (cselib_hash_rtx): Likewise.
12741 (cselib_lookup_mem): Infer pmode from address mode. Distinguish
12742 address and MEM modes.
12743 (cselib_subst_to_values): Add memmode, pass it on.
12744 Deal with autoinc.
12745 (cselib_lookup): Add memmode argument, pass it on.
12746 (cselib_lookup_from_insn): Add memmode.
12747 (cselib_invalidate_rtx): Discard obsolete push_operand handling.
12748 (struct cselib_record_autoinc_data): New.
12749 (cselib_record_autoinc_cb): New fn.
12750 (cselib_record_sets): Use it, along with for_each_inc_dec. Pass MEM
12751 mode to cselib_lookup. Reset autoinced REGs here instead of...
12752 (cselib_process_insn): ... here.
12753 * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
12754 to cselib_lookup.
12755 (add_uses): Likewise, also to cselib_subst_to_values.
12756 (add_stores): Likewise.
12757 * sched-deps.c (add_insn_mem_dependence): Pass mode to
12758 cselib_subst_to_values.
12759 (sched_analyze_1, sched_analyze_2): Likewise. Adjusted.
12760 * gcse.c (do_local_cprop): Adjusted.
12761 * postreload.c (reload_cse_simplify_set): Adjusted.
12762 (reload_cse_simplify_operands): Adjusted.
12763 * sel-sched-dump (debug_mem_addr_value): Pass mode.
12764
1551d44a
AO
127652011-02-03 Alexandre Oliva <aoliva@redhat.com>
12766
12767 PR tree-optimization/45122
12768 * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
12769 unsafe assumptions when there's more than one loop exit.
12770
c9485473
MM
127712011-02-02 Michael Meissner <meissner@linux.vnet.ibm.com>
12772
12773 PR target/47272
12774 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
12775 Document using vector double with the load/store builtins, and
12776 that the load/store builtins always use Altivec instructions.
12777
12778 * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
12779 to use altivec memory instructions, even on VSX.
12780 (vector_altivec_store_<mode>): Ditto.
12781
12782 * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
12783 function.
12784
12785 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
12786 V2DF, V2DI support to load/store overloaded builtins.
12787
12788 * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
12789 altivec load/store builtins for V2DF/V2DI types.
12790
12791 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
12792 set avoid indexed addresses on power6 if -maltivec.
12793 (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
12794 vector_altivec_load/vector_altivec_store builtins.
12795 (altivec_expand_st_builtin): Ditto.
12796 (altivec_expand_builtin): Add VSX memory builtins.
12797 (rs6000_init_builtins): Add V2DI types to internal types.
12798 (altivec_init_builtins): Add support for V2DF/V2DI altivec
12799 load/store builtins.
12800 (rs6000_address_for_altivec): Insure memory address is appropriate
12801 for Altivec.
12802
12803 * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
12804 vec_vsx_ld and vec_vsx_st.
12805 (vsx_store_<mode>): Ditto.
12806
12807 * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
12808 variables to hold long long types for VSX vector memory builtins.
12809 (RS6000_BTI_unsigned_long_long): Ditto.
12810 (long_long_integer_type_internal_node): Ditti.
12811 (long_long_unsigned_type_internal_node): Ditti.
12812
12813 * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
12814 (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
12815 (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
12816
12817 * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
12818 short cuts.
12819 (vec_vsx_st): Ditto.
12820
b24d1acf
JM
128212011-02-02 Joseph Myers <joseph@codesourcery.com>
12822
12823 * config/pa/pa-hpux10.opt: New.
12824 * config/hpux11.opt (pthread): New Driver option.
12825 * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
12826 * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
12827
aa18dd0f
JM
128282011-02-02 Joseph Myers <joseph@codesourcery.com>
12829
12830 * config/ia64/vms.opt: New.
12831 * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
12832
28fc3eee
MM
128332011-02-01 Michael Meissner <meissner@linux.vnet.ibm.com>
12834
12835 PR target/47580
12836 * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
12837 gpc_reg_operand instead of vsx_register_operand to match rs6000.md
12838 generator functions.
12839 (vsx_floatuns<VSi><mode>2): Ditto.
12840 (vsx_fix_trunc<mode><VSi>2): Ditto.
12841 (vsx_fixuns_trunc<mode><VSi>2): Ditto.
12842
b5838b1f
JM
128432011-02-02 Joseph Myers <joseph@codesourcery.com>
12844
12845 * config/i386/djgpp.opt (posix): New Driver option.
12846
0db8fa89
GP
128472011-02-02 Gerald Pfeifer <gerald@pfeifer.com>
12848
12849 * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
12850 Move to the unsupported targets list.
12851
9cd4f22a
PB
128522011-02-02 Peter Bergner <bergner@vnet.ibm.com>
12853
12854 PR rtl-optimization/47525
12855 * df-scan.c: Update copyright years.
12856 (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
12857 and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
12858
9ed8059c
RO
128592011-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12860
12861 * config/i386/sysv4.h (TARGET_VERSION): Remove.
12862 (SUBTARGET_RETURN_IN_MEMORY): Remove.
12863 (ASM_OUTPUT_ASCII): Remove.
12864 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
12865
2a737389
JL
128662011-02-02 Jeff Law <law@redhat.com>
12867
12868 PR middle-end/47543
12869 * reload.c (find_reloads_address): Handle reg+d address where both
12870 components are invalid by reloading the entire address.
12871
9dac82c4
SP
128722011-02-02 Sebastian Pop <sebastian.pop@amd.com>
12873 Richard Guenther <rguenther@suse.de>
12874
12875 PR tree-optimization/40979
12876 PR bootstrap/47044
12877 * passes.c (init_optimization_passes): After LIM call copy_prop
12878 and DCE to clean up.
12879 * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
12880
14dd9aab
SP
128812011-02-02 Sebastian Pop <sebastian.pop@amd.com>
12882
12883 PR tree-optimization/47576
12884 PR tree-optimization/47555
12885 * doc/invoke.texi (scev-max-expr-complexity): Documented.
12886 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
12887 (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
12888 * tree-scalar-evolution.c (follow_ssa_edge): Use
12889 PARAM_SCEV_MAX_EXPR_COMPLEXITY.
12890
5cbf5c20
RG
128912011-02-02 Richard Guenther <rguenther@suse.de>
12892
12893 PR tree-optimization/47566
12894 * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
12895
83d70792
AO
128962011-02-02 Alexandre Oliva <aoliva@redhat.com>
12897
e829c321
AO
12898 PR debug/47106
12899 PR debug/47402
12900 * tree-inline.c (declare_return_variable): Remove unused caller
12901 variable.
12902
83d70792
AO
12903 PR debug/47106
12904 PR debug/47402
12905 * tree-flow-inline.h (clear_is_used, is_used_p): New.
12906 * cfgexpand.c (account_used_vars_for_block): Use them.
12907 * tree-nrv.c (tree_nrv): Likewise.
12908 * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
12909 (dump_scope_block): Likewise.
12910 (remove_unused_locals): Likewise.
12911
aaa2ac93
AO
12912 PR debug/47106
12913 PR debug/47402
12914 * tree-inline.c (declare_return_variable): Add result decl to
12915 local decls only once.
12916 * gimple-low.c (record_vars_into): Mark newly-created variables
12917 as referenced.
12918
a59d15cf
AO
129192011-02-02 Alexandre Oliva <aoliva@redhat.com>
12920
12921 PR debug/47498
12922 PR debug/47501
12923 PR debug/45136
12924 PR debug/45130
12925 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
12926 debug insns.
12927 (no_real_insns_p, schedule_block, set_priorities): Drop special
12928 treatment of boundary debug insns.
38be4072 12929 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
a59d15cf
AO
12930 * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
12931 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
12932 (BOUNDARY_DEBUG_INSN_P): Likewise.
12933 (SCHEDULE_DEBUG_INSN_P): Likewise.
12934 * sched-rgn.c (init_ready_list): Drop special treatment of
12935 boundary debug insns.
12936 * final.c (rest_of_clean_state): Clear notes' BB.
12937
6fc2f091
JM
129382011-02-01 Joseph Myers <joseph@codesourcery.com>
12939
12940 * config/openbsd.opt (assert=): New Driver option.
12941
fc523387
JM
129422011-02-01 Joseph Myers <joseph@codesourcery.com>
12943
12944 * config/i386/nto.opt: New.
12945 * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
12946
6d9821e5
JM
129472011-02-01 Joseph Myers <joseph@codesourcery.com>
12948
12949 * config/i386/netware.opt: New.
12950 * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
12951
cef932d4
JM
129522011-02-01 Joseph Myers <joseph@codesourcery.com>
12953
12954 * config/interix.opt (posix): New Driver option.
12955
22843acd
DD
129562011-02-01 DJ Delorie <dj@redhat.com>
12957
56490b74
DD
12958 * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
12959
22843acd
DD
12960 * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
12961 class for A0/A1.
12962
199c8f2f
SP
129632011-02-01 Sebastian Pop <sebastian.pop@amd.com>
12964
12965 PR tree-optimization/47561
12966 * toplev.c (process_options): Print the Graphite flags. Add
12967 flag_loop_flatten to the list of options requiring Graphite.
12968
926bcf22
JM
129692011-02-01 Joseph Myers <joseph@codesourcery.com>
12970
12971 * config/i386/cygming.opt (posix): New Driver option.
12972
59793c51
JM
129732011-02-01 Joseph Myers <joseph@codesourcery.com>
12974
12975 * config/arm/vxworks.opt: New.
12976 * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
12977
183c38a4
JM
129782011-02-01 Joseph Myers <joseph@codesourcery.com>
12979
12980 * config/alpha/elf.opt: New.
12981 * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
12982 alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
12983
9939e416
RG
129842011-02-01 Richard Guenther <rguenther@suse.de>
12985
12986 PR tree-optimization/47559
12987 * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
12988 store-motion on references that can throw.
12989
4a3c9687
BS
129902011-02-01 Bernd Schmidt <bernds@codesourcery.com>
12991
12992 * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
12993 * tree-pass.h (TDF_CSELIB): New macro.
12994 * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
12995 cselib_lookup): Check for it rather than for TDF_DETAILS.
12996
dd3b31fb
L
129972011-02-01 H.J. Lu <hongjiu.lu@intel.com>
12998
12999 PR driver/47547
13000 * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
13001 is HOST_BIT_BUCKET.
13002
13003 * opts.c (finish_options): Don't add x_aux_base_name if it is
13004 HOST_BIT_BUCKET.
13005
34c1de79
RG
130062011-02-01 Richard Guenther <rguenther@suse.de>
13007
13008 PR tree-optimization/47555
13009 Revert
13010 2010-07-15 Sebastian Pop <sebastian.pop@amd.com>
13011
13012 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
13013
dd2804d2
SB
130142011-02-01 Sebastien Bourdeauducq <sebastien@milkymist.org>
13015
13016 PR gcc/46692
13017 * config/lm32/t-lm32: Add multilib for all CPU options.
13018
3fd3b156
RG
130192011-02-01 Richard Guenther <rguenther@suse.de>
13020
13021 PR tree-optimization/47541
13022 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
13023 sure to have a field at offset zero.
13024
f16072b6
JM
130252011-01-31 Joseph Myers <joseph@codesourcery.com>
13026
13027 * config/arc/arc.opt (EB, EL): New Driver options.
13028
6456cf2e
JM
130292011-01-31 Joseph Myers <joseph@codesourcery.com>
13030
13031 * config/alpha/osf5.opt: New.
13032 * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
13033
cdde6ab4
JM
130342011-01-31 Joseph Myers <joseph@codesourcery.com>
13035
13036 * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
13037
7633415c
SP
130382011-01-31 Sebastian Pop <sebastian.pop@amd.com>
13039
13040 * common.opt (ftree-loop-linear): Use Alias to make it an alias of
13041 -floop-interchange.
13042 * invoke.texi (-ftree-loop-linear): Make it clear that this flag
13043 is an alias of -floop-interchange and that it requires the
13044 Graphite infrastructure.
13045 * tree-ssa-loop.c (gate_graphite_transforms): Do not set
13046 flag_loop_interchange based on the value of flag_tree_loop_linear.
13047
0425d6f5
JJ
130482011-01-31 Jakub Jelinek <jakub@redhat.com>
13049 Richard Guenther <rguenther@suse.de>
13050
13051 PR tree-optimization/47538
13052 * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
13053 type instead of r1type, except for comparisons. For right
13054 shifts and comparisons punt if there are mismatches in
13055 sizetype vs. non-sizetype types.
13056
500b16c3
RO
130572011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13058
13059 * doc/sourcebuild.texi (Effective-Target Keywords): Document
13060 avx_runtime.
13061
e279edb0
RO
130622011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13063
13064 * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
13065 version number.
13066 * configure: Regenerate.
13067
c6092243
RO
130682011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13069
13070 * configure.ac (gcc_cv_ld_static_option): Define.
13071 (gcc_cv_ld_dynamic_option): Define.
13072 (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
13073 instead.
13074 (HAVE_LD_STATIC_DYNAMIC): Update message.
13075 (LD_STATIC_OPTION): Define.
13076 (LD_DYNAMIC_OPTION): Define.
13077 * configure: Regenerate.
13078 * config.in: Regenerate.
13079 * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
13080 HAVE_LD_STATIC_DYNAMIC]: Use them.
13081
d7862be3
NC
130822011-01-31 Nick Clifton <nickc@redhat.com>
13083
13084 * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
13085 registers inside interrupt handlers if the handler is not a leaf
13086 function.
13087
ba4ec0e0
NC
130882011-01-31 Nick Clifton <nickc@redhat.com>
13089
13090 * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
13091 reg_renumber returning an INVALID_REGNUM.
13092
29a63921
AO
130932011-01-31 Alexandre Oliva <aoliva@redhat.com>
13094
13095 PR libgcj/44341
13096 * doc/install.texi: Document host options discarded when cross
13097 configuring target libraries.
13098
ef591d3f
AO
130992011-01-31 Alexandre Oliva <aoliva@redhat.com>
13100
13101 Reverted:
13102 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
13103 PR debug/45136
13104 PR debug/45130
13105 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
13106 debug insns.
13107 (no_real_insns_p, schedule_block, set_priorities): Drop special
13108 treatment of boundary debug insns.
38be4072 13109 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
ef591d3f
AO
13110 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
13111 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
13112 (BOUNDARY_DEBUG_INSN_P): Likewise.
13113 (SCHEDULE_DEBUG_INSN_P): Likewise.
13114 * sched-rgn.c (init_ready_list): Drop special treatment of
13115 boundary debug insns.
13116 * final.c (rest_of_clean-state): Clear notes' BB.
13117
61052244
AM
131182011-01-31 Alan Modra <amodra@gmail.com>
13119
13120 * config/rs6000/rs6000.c (print_operand): Rearrange addends in
13121 toc relative expressions as we do in print_operand_address.
13122
c4c8962b
KH
131232011-01-30 Kazu Hirata <kazu@codesourcery.com>
13124
13125 * doc/extend.texi: Follow spelling conventions.
13126 * doc/invoke.texi: Fix a typo.
13127
e543b94c
JM
131282011-01-30 Joseph Myers <joseph@codesourcery.com>
13129
13130 * config/hpux11.opt: New.
13131 * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
13132 ia64*-*-hpux*): Use hpux11.opt.
13133
509d65dd 131342011-01-30 Jonathan Yong <jon_y@users.sourceforge.net>
a70e0551
JY
13135
13136 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
13137 to tmake_file.
13138
7be03a0e
GP
131392011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
13140
13141 * doc/install.texi (hppa-hp-hpux10): Remove references to HP
13142 support sites.
13143
419d1d37
GP
131442011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
13145
b596ed64
GP
13146 * doc/install.texi (Binaries): Remove outdated reference for
13147 Motorola 68HC11/68HC12 downloads.
13148
131492011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
61052244 13150
419d1d37
GP
13151 * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
13152 Drepper's paper.
13153
4406d0e9
JW
131542011-01-29 Jonathan Wakely <jwakely.gcc@gmail.com>
13155
13156 PR bootstrap/47147
13157 * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
13158 used by NetBSD.
13159
38be4072 131602011-01-28 Ahmad Sharif <asharif@google.com>
e0b77418
AS
13161
13162 * value-prof.c (check_counter): Corrected error message.
13163
0cd98787
JZ
131642011-01-29 Jie Zhang <jie@codesourcery.com>
13165
13166 * config/arm/arm.c (arm_legitimize_reload_address): New.
13167 * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
13168 arm_legitimize_reload_address.
38be4072 13169 * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
0cd98787 13170
9b798ac5
ILT
131712011-01-28 Ian Lance Taylor <iant@google.com>
13172
13173 * godump.c (go_define): Ignore macros whose definitions include
13174 two adjacent operands.
13175
591e29d9
JJ
131762011-01-28 Jakub Jelinek <jakub@redhat.com>
13177
13178 PR target/42894
13179 * varasm.c (force_const_mem): Store copy of x in desc->constant
13180 instead of x itself.
13181 * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
13182 itself into REG_EQUAL note.
13183
62dcc44a
JM
131842011-01-28 Joseph Myers <joseph@codesourcery.com>
13185
13186 * config/freebsd.opt (posix, rdynamic): New Driver options.
13187
c9f58b9a
RO
131882011-01-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13189
13190 * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
13191 -Bstatic/-Bdynamic.
13192 * configure: Regenerate.
13193
5f02b9db
JM
131942011-01-27 Joseph Myers <joseph@codesourcery.com>
13195
13196 * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
13197 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
13198
5df97412
AS
131992011-01-27 Anatoly Sokolov <aesok@post.ru>
13200
13201 * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
13202 * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
13203 * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
13204 (s390_preferred_reload_class): Make static. Change return and
13205 'rclass' argument type to reg_class_t.
13206
779d4b91
JH
132072011-01-27 Jan Hubicka <jh@suse.cz>
13208
13209 PR middle-end/46949
13210 * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
13211 (process_function_and_variable_attributes): Check defined weakrefs.
13212
e80b21ed
MJ
132132011-01-27 Martin Jambor <mjambor@suse.cz>
13214
13215 PR tree-optimization/47228
13216 * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
13217 build_ref_for_offset.
13218
6dcc4f31
UW
132192011-01-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13220
13221 * config/spu/spu-elf.h (ASM_SPEC): Remove.
13222
509d65dd 132232011-01-26 Mikael Pettersson <mikpe@it.uu.se>
3b8ff89f
MP
13224
13225 PR rtl-optimization/46856
13226 * postreload.c (reload_combine_recognize_const_pattern): Do not
13227 separate cc0 setter and user on cc0 targets.
13228
04af8788
NP
132292011-01-26 Nicola Pero <nicola.pero@meta-innovation.com>
13230
13231 PR c/43082
13232 * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
13233 passed a VOID_TYPE expression, immediately emit an error and
13234 return error_mark_node.
13235
f7a60085
JL
132362011-01-26 Jeff Law <law@redhat.com>
13237
13238 PR rtl-optimization/47464
13239 * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
13240 rather than may_trap_p as needed.
13241
5c2917ec
DD
132422011-01-26 DJ Delorie <dj@redhat.com>
13243
13244 PR rtl-optimization/46878
13245 * combine.c (insn_a_feeds_b): Check for the implicit cc0
13246 setter/user dependency as well.
13247
bef16e87
EB
132482011-01-26 Eric Botcazou <ebotcazou@adacore.com>
13249
13250 PR rtl-optimization/44469
13251 * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
13252 after removing trivially dead basic blocks.
13253
c75d884b
JM
132542011-01-26 Joseph Myers <joseph@codesourcery.com>
13255
13256 * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
13257 * config/frv/frv.h (LINK_SPEC): Likewise.
13258 * config/i386/netware.h (LINK_SPEC): Likewise.
13259 * config/m68k/linux.h (ASM_SPEC): Likewise.
13260 * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
13261 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
13262 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
13263 * config/sparc/linux.h (ASM_SPEC): Likewise.
13264 * config/sparc/linux64.h (ASM_SPEC): Likewise.
13265 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
13266
d3153553
JM
132672011-01-26 Joseph Myers <joseph@codesourcery.com>
13268
13269 * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
13270 * config/frv/frv.h (ASM_SPEC): Likewise.
13271 * config/m68k/linux.h (ASM_SPEC): Likewise.
13272 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
13273 * config/rs6000/linux64.h (ASM_SPEC): Likewise.
13274 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
13275 * config/sparc/linux.h (ASM_SPEC): Likewise.
13276 * config/sparc/linux64.h (ASM_SPEC): Likewise.
13277 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
13278
b89b1e9d
JM
132792011-01-26 Joseph Myers <joseph@codesourcery.com>
13280
13281 * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
13282 * config/frv/frv.h (LINK_SPEC): Likewise.
13283 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
13284
12eb1a9c
JM
132852011-01-26 Joseph Myers <joseph@codesourcery.com>
13286
13287 * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
13288 * config/frv/frv.h (ASM_SPEC): Likewise.
13289 * config/i386/sol2-10.h (ASM_SPEC): Likewise.
13290 * config/m68k/linux.h (ASM_SPEC): Likewise.
13291 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
13292 * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
13293 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
13294 * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
13295 * config/sparc/linux.h (ASM_SPEC): Likewise.
13296 * config/sparc/linux64.h (ASM_SPEC): Likewise.
13297 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
13298 * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
13299
e435f098
SE
133002011-01-26 Steve Ellcey <sje@cup.hp.com>
13301
13302 PR target/46997
13303 * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
13304 (*mux2): Ditto.
13305 (vec_extract_evenodd_help): Ditto.
13306 (vec_extract_evenv4hi): Ditto.
13307 (vec_extract_oddv4hi): Ditto.
13308 (vec_interleave_lowv2si): Ditto.
13309 (vec_interleave_highv2si): Ditto.
13310 (vec_extract_evenv2si): Ditto.
13311 (vec_extract_oddv2si: Ditto.
13312 (vec_pack_trunc_v2si): Ditto.
13313
34f0eee0
JH
133142011-01-22 Jan Hubicka <jh@suse.cz>
13315
13316 PR target/47237
13317 * cgraph.h (cgraph_local_info): New field can_change_signature.
13318 * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
13319 signature can change.
13320 (ipcp_estimate_growth): Call sequence simplify only if calle signature
13321 can change.
13322 (ipcp_insert_stage): Only compute args_to_skip if signature can change.
13323 (cgraph_function_versioning): We can not change signature of functions
13324 that don't allow that.
13325 * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
13326 (lto_input_node): Likewise.
38be4072
UB
13327 * ipa-inline.c (compute_inline_parameters): Compute
13328 local.can_change_signature.
34f0eee0 13329 * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
38be4072
UB
13330 * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
13331 functions that can not change signature.
34f0eee0 13332 * i386.c (ix86_function_regparm, ix86_function_sseregparm,
38be4072
UB
13333 init_cumulative_args): Do not use local calling conventions
13334 for functions that can not change signature.
34f0eee0 13335
980ca891
JH
133362011-01-22 Jan Hubicka <jh@suse.cz>
13337
13338 * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
13339
768e3c60
RG
133402011-01-26 Richard Guenther <rguenther@suse.de>
13341
13342 PR tree-optimization/47190
61052244
AM
13343 * cgraphunit.c (process_common_attributes): New function.
13344 (process_function_and_variable_attributes): Use it.
768e3c60 13345
21d6a1c7
RG
133462011-01-26 Richard Guenther <rguenther@suse.de>
13347
13348 PR lto/47423
13349 * cgraphbuild.c (record_eh_tables): Record reference to personality
13350 function.
13351
48bb58b1
AO
133522011-01-26 Alexandre Oliva <aoliva@redhat.com>
13353
13354 PR debug/45454
13355 * sel-sched.c (moveup_expr): Don't let debug insns prevent
13356 non-debug insns from moving up.
13357
58c741a6
DK
133582011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
13359
13360 PR target/40125
13361 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
13362 t-dlldir{,-x} fragment for build and add it to tmake_file.
13363 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
13364 * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
13365 * config/i386/t-dlldir: New file.
13366 (SHLIB_DLLDIR): Define.
13367 * config/i386/t-dlldir-x: New file.
13368 (SHLIB_DLLDIR): Define.
13369 * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
13370 (SHLIB_INSTALL): Use it.
13371
bff99262
CLT
133722011-01-26 Chung-Lin Tang <cltang@codesourcery.com>
13373
13374 PR target/47246
13375 * config/arm/arm.c (thumb2_legitimate_index_p): Change the
13376 lower bound of the allowed Thumb-2 coprocessor load/store
13377 index range to -256. Add explaining comment.
13378
82c03907
ILT
133792011-01-25 Ian Lance Taylor <iant@google.com>
13380
13381 * godump.c (go_define): Improve lexing of macro expansion to only
13382 accept expressions which match Go spec.
13383
47ea1edf
DK
133842011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
13385
d4dba752 13386 PR c++/43601
47ea1edf
DK
13387 * tree.c (handle_dll_attribute): Handle it.
13388 * doc/extend.texi (@item dllexport): Mention it.
13389 * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
13390
744f0946
ILT
133912011-01-25 Ian Lance Taylor <iant@google.com>
13392
13393 PR tree-optimization/26854
13394 * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
13395 (decl_jump_unsafe): Move higher in file, with no other change.
13396 (bind): Set has_jump_unsafe_decl if appropriate.
13397 (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
13398 (check_earlier_gotos): Likewise.
13399 (c_check_switch_jump_warnings): Likewise.
13400
5734f2b3
JW
134012011-01-25 Jonathan Wakely <jwakely.gcc@gmail.com>
13402
13403 * doc/invoke.texi (Warning Options): Add missing hyphen.
13404 (-fprofile-dir): Minor grammatical fixes.
13405 (-fbranch-probabilities): Likewise.
13406
9bdbdcef
AO
134072011-01-25 Alexandre Oliva <aoliva@redhat.com>
13408
13409 PR debug/45136
13410 PR debug/45130
13411 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
13412 debug insns.
13413 (no_real_insns_p, schedule_block, set_priorities): Drop special
13414 treatment of boundary debug insns.
38be4072 13415 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
9bdbdcef
AO
13416 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
13417 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
13418 (BOUNDARY_DEBUG_INSN_P): Likewise.
13419 (SCHEDULE_DEBUG_INSN_P): Likewise.
13420 * sched-rgn.c (init_ready_list): Drop special treatment of
13421 boundary debug insns.
13422 * final.c (rest_of_clean-state): Clear notes' BB.
13423
b305e3da
SP
134242011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13425
13426 * Makefile.in (LAMBDA_H): Removed.
13427 (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
13428 (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
13429 lambda-trans.o, and tree-loop-linear.o.
13430 (lto-symtab.o): Remove dependence on LAMBDA_H.
13431 (tree-loop-linear.o): Remove rule.
13432 (lambda-mat.o): Same.
13433 (lambda-trans.o): Same.
13434 (lambda-code.o): Same.
13435 (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
13436 (tree-vect-slp.o): Same.
13437 * hwint.h (gcd): Moved here.
13438 (least_common_multiple): Same.
13439 * lambda-code.c: Removed.
13440 * lambda-mat.c: Removed.
13441 * lambda-trans.c: Removed.
13442 * lambda.h: Removed.
13443 * tree-loop-linear.c: Removed.
13444 * lto-symtab.c: Do not include lambda.h.
13445 * omega.c (gcd): Removed.
13446 * passes.c (init_optimization_passes): Remove pass_linear_transform.
13447 * tree-data-ref.c (print_lambda_vector): Moved here.
13448 (lambda_vector_copy): Same.
13449 (lambda_matrix_copy): Same.
13450 (lambda_matrix_id): Same.
13451 (lambda_vector_first_nz): Same.
13452 (lambda_matrix_row_add): Same.
13453 (lambda_matrix_row_exchange): Same.
13454 (lambda_vector_mult_const): Same.
13455 (lambda_vector_negate): Same.
13456 (lambda_matrix_row_negate): Same.
13457 (lambda_vector_equal): Same.
13458 (lambda_matrix_right_hermite): Same.
13459 * tree-data-ref.h: Do not include lambda.h.
13460 (lambda_vector): Moved here.
13461 (lambda_matrix): Same.
13462 (dependence_level): Same.
13463 (lambda_transform_legal_p): Removed declaration.
13464 (lambda_collect_parameters): Same.
13465 (lambda_compute_access_matrices): Same.
13466 (lambda_vector_gcd): Same.
13467 (lambda_vector_new): Same.
13468 (lambda_vector_clear): Same.
13469 (lambda_vector_lexico_pos): Same.
13470 (lambda_vector_zerop): Same.
13471 (lambda_matrix_new): Same.
13472 * tree-flow.h (least_common_multiple): Removed declaration.
13473 * tree-parloops.c (lambda_trans_matrix): Moved here.
13474 (LTM_MATRIX): Same.
13475 (LTM_ROWSIZE): Same.
13476 (LTM_COLSIZE): Same.
13477 (LTM_DENOMINATOR): Same.
13478 (lambda_trans_matrix_new): Same.
13479 (lambda_matrix_vector_mult): Same.
13480 (lambda_transform_legal_p): Same.
13481 * tree-pass.h (pass_linear_transform): Removed declaration.
13482 * tree-ssa-loop.c (tree_linear_transform): Removed.
13483 (gate_tree_linear_transform): Removed.
13484 (pass_linear_transform): Removed.
13485 (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
13486 flag_loop_interchange.
13487
6bdfdb96
JJ
134882011-01-25 Jakub Jelinek <jakub@redhat.com>
13489
13490 PR tree-optimization/47265
13491 PR tree-optimization/47443
13492 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
13493 if name still has some uses.
13494
e4cba915
MJ
134952011-01-25 Martin Jambor <mjambor@suse.cz>
13496
13497 PR tree-optimization/47382
13498 * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
13499 (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
13500
509d65dd 135012011-01-25 Joel Sherrill <joel.sherrill@oarcorp.com>
f822b8ea
JS
13502
13503 * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
13504 sjlj_except_unwind_info.
13505
194313e2
RG
135062011-01-25 Richard Guenther <rguenther@suse.de>
13507
13508 PR tree-optimization/47426
13509 * tree-ssa-structalias.c (ipa_pta_execute): Make externally
13510 visible functions results escape.
13511
147a0bcf
JJ
135122011-01-25 Jakub Jelinek <jakub@redhat.com>
13513
13514 PR target/45701
13515 * config/arm/arm.c (any_sibcall_uses_r3): New function.
13516 (arm_get_frame_offsets): Use it.
13517
db963b52
SP
135182011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13519 Jakub Jelinek <jakub@redhat.com>
13520
13521 PR tree-optimization/47271
13522 * tree-if-conv.c (bb_postdominates_preds): New.
13523 (if_convertible_bb_p): Call bb_postdominates_preds.
13524 (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
13525 (predicate_scalar_phi): Call bb_postdominates_preds.
13526
bcddd3b9
NC
135272011-01-25 Nick Clifton <nickc@redhat.com>
13528
13529 * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
13530 * config/rx/rx.c (rx_function_value): Likewise.
13531 (rx_promote_function_mode): Likewise.
13532 (gen_safe_add): Place an outsized immediate value inside an UNSPEC
13533 in order to make it legitimate.
38be4072
UB
13534 * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
13535 make sure that the first operand is the same as the result register.
bcddd3b9
NC
13536 (addsi3_unspec): Delete.
13537 (subdi3): Do not accept immediate operands.
13538 (subdi3_internal): Likewise.
13539
7e6cb022
JL
135402011-01-25 Jeff Law <law@redhat.com>
13541
13542 PR rtl-optimization/37273
13543 * ira-costs.c (scan_one_insn): Detect constants living in memory and
13544 handle them like argument loads from stack slots. Do not double
13545 count memory for memory constants and argument loads from stack slots.
13546
9ffa621e
JJ
135472011-01-25 Jakub Jelinek <jakub@redhat.com>
13548
13549 PR tree-optimization/47427
13550 PR tree-optimization/47428
13551 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
13552 coalesce if the new root var would be TREE_READONLY.
13553
5bd6e652
RG
135542011-01-25 Richard Guenther <rguenther@suse.de>
13555
13556 PR middle-end/47414
13557 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
13558 correct type for TBAA.
13559
7c48ea69
SP
135602011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13561
13562 * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
13563 (close_phi_written_to_memory): Call for_each_index with
13564 dr_indices_valid_in_loop.
13565
38013f25
SP
135662011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13567
13568 * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
13569 when it is initialized.
13570
5c640e29
SP
135712011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13572
13573 * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
13574 call to graphite_find_data_references_in_stmt.
13575 * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
13576 (try_generate_gimple_bb): Call outermost_loop_in_sese_1. Update
13577 call to graphite_find_data_references_in_stmt.
13578 (analyze_drs_in_stmts): Same.
13579 * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
13580 in which the scalar analysis of indices is performed.
13581 (create_data_ref): Same. Update call to dr_analyze_indices.
13582 (find_data_references_in_stmt): Update call to create_data_ref.
13583 (graphite_find_data_references_in_stmt): Same.
13584 * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
13585 declaration.
13586 (create_data_ref): Same.
13587 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
13588 call to create_data_ref.
13589
ac53c069
SP
135902011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13591
13592 * graphite-sese-to-poly.c (build_poly_scop): Move
38be4072 13593 rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
ac53c069 13594
3d17df15
SP
135952011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13596
13597 * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
13598 VAR_DECL, PARM_DECL, and RESULT_DECL.
13599
c513da01
SP
136002011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13601
13602 * graphite-dependences.c (reduction_dr_1): Allow several reductions
13603 in a reduction PBB.
13604 * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
13605 that have already been marked as PBB_IS_REDUCTION.
13606
3a292d59
SP
136072011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13608
13609 * graphite-scop-detection.c (same_close_phi_node): New.
13610 (remove_duplicate_close_phi): New.
13611 (make_close_phi_nodes_unique): New.
13612 (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
13613
ba858447
SP
136142011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13615
13616 * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
13617 * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
13618 of both data references to be the same.
13619
8d865c56
SP
136202011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13621
38be4072
UB
13622 * graphite-dependences.c (build_lexicographical_constraint): Remove
13623 the gdim parameter.
13624 (build_lexicographical_constraint): Adjust call to
13625 ppl_powerset_is_empty.
8d865c56
SP
13626 (dependence_polyhedron): Same.
13627 (graphite_legal_transform_dr): Same.
13628 (graphite_carried_dependence_level_k): Same.
38be4072
UB
13629 * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
13630 parameter.
8d865c56
SP
13631 * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
13632
50034a36
SP
136332011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13634
13635 * graphite-sese-to-poly.c
13636 (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
13637 (close_phi_written_to_memory): New.
13638 (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
13639 and unshare_expr.
13640
0deada9e
SP
136412011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13642
13643 * doc/install.texi: Update the expected version number of PPL to 0.11.
13644 * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
13645 #if PPL_VERSION_MINOR < 11.
13646
d7d3d6af
SP
136472011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13648
13649 * graphite-dependences.c: Include graphite-cloog-util.h.
13650 (new_poly_ddr): Inlined into dependence_polyhedron.
13651 (free_poly_ddr): Moved close by new_poly_ddr.
13652 (dependence_polyhedron_1): Renamed dependence_polyhedron.
13653 Early return NULL when ppl_powerset_is_empty returns true.
13654 (dependence_polyhedron): Renamed new_poly_ddr. Call only once
13655 poly_drs_may_alias_p. Avoid one call to ppl_powerset_is_empty.
13656 (graphite_legal_transform_dr): Call new_poly_ddr.
13657 (graphite_carried_dependence_level_k): Same.
13658 (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2. Use new_poly_ddr.
13659 (dot_transformed_deps_stmt_1): Removed.
13660 (dot_deps_stmt_1): Call dot_deps_stmt_2.
13661 (dot_original_deps): Renamed dot_deps_2. Call new_poly_ddr.
13662 (dot_deps_1): Call dot_deps_2.
13663 * Makefile.in (graphite-dependences.o): Add missing dependence on
13664 graphite-cloog-util.h.
13665
28c5db57
SP
136662011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13667
13668 * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
13669 (build_lexicographical_constraint): Same.
13670 (dependence_polyhedron_1): Same.
13671 (graphite_legal_transform_dr): Same.
13672 (graphite_carried_dependence_level_k): Same.
13673 * graphite-ppl.c (ppl_powerset_is_empty): New.
13674 * graphite-ppl.h (ppl_powerset_is_empty): Declared.
13675 * tree-data-ref.c (dump_data_reference): Print the basic block index.
13676
5168d98f
SP
136772011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13678
13679 * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
13680 the "a followed by b" relation and document it.
13681
4a40293a
SP
136822011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13683
13684 * graphite-dependences.c (build_lexicographical_constraint): Stop the
13685 iteration when the bag of constraints is empty.
13686
271fb6fa
SP
136872011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13688
13689 * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
13690
92d23680
SP
136912011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13692
13693 * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
13694 nest and two loop depths as parameters.
13695 (lst_try_interchange_loops): Call lst_interchange_profitable_p after
13696 lst_perfect_nestify.
13697
2f51deff
SP
136982011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13699
13700 * graphite-dependences.c (print_pddr): Call
13701 ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
13702
07f3593c
SP
137032011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13704
13705 * graphite-ppl.c (debug_gmp_value): New.
13706 * graphite-ppl.h (debug_gmp_value): Declared.
13707
3fae6099
TG
137082011-01-25 Tobias Grosser <grosser@fim.uni-passau.de>
13709
13710 * doc/install.texi: Document availability of cloog-0.16.
13711
1c3ba85b
SP
137122011-01-25 Vladimir Kargov <kargov@gmail.com>
13713
13714 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
13715 invalid postdominance info.
13716
e8ba94fc
JH
137172011-01-24 Jan Hubicka <jh@suse.cz>
13718
13719 PR c/21659
13720 * doc/extend.texi (weak pragma): Drop claim that it must
13721 appear before definition.
13722 * varasm.c (merge_weak, declare_weak): Only sanity check
13723 that DECL is not output at a time it is declared weak.
13724
2b6e2d13
KZ
137252011-01-24 Kenneth Zadeck <zadeck@naturalbridge.com>
13726
13727 * machmode.def: Fixed comments.
1c3ba85b 13728
9841210f
KT
137292011-01-24 Kai Tietz <kai.tietz@onevision.com>
13730
13731 * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
13732
137332011-01-24 Paul Koning <ni1d@arrl.net>
e046112d
PK
13734
13735 * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
1c3ba85b 13736 WORDS_BIG_ENDIAN.
e046112d 13737
a6c5070a
L
137382011-01-24 H.J. Lu <hongjiu.lu@intel.com>
13739
13740 PR target/46519
13741 * config/i386/i386.c: Include sbitmap.h and fibheap.h.
13742 (block_info): Add scanned and prev.
13743 (move_or_delete_vzeroupper_2): Return if the basic block
13744 has been scanned and the upper 128bit state is unchanged
13745 from the last scan.
13746 (move_or_delete_vzeroupper_1): Return true if the exit
13747 state is changed.
13748 (move_or_delete_vzeroupper): Visit basic blocks using the
13749 work-list based algorithm based on vt_find_locations in
13750 var-tracking.c.
13751
13752 * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
13753
a40d79d7
NC
137542011-01-24 Nick Clifton <nickc@redhat.com>
13755
13756 * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
13757 * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
13758 -mv850e1 to the assembler. If -mv850e1 or -mv850es is specified
13759 then define __v850e1__.
13760 * doc/invoke.texi: Document -mv850es.
13761
440eb8de
RH
137622011-01-24 Richard Henderson <rth@redhat.com>
13763
13764 * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
13765 compound unordered comparisons.
13766 * config/rx/rx.c (rx_split_fp_compare): Remove.
13767 * config/rx/rx-protos.h: Update.
13768 * config/rx/rx.md (gcc_conds, rx_conds): Remove.
13769 (cbranchsf4): Don't call rx_split_fp_compare.
13770 (*cbranchsf4): Use rx_split_cbranch.
13771 (*cmpsf): Don't accept "i" constraint.
13772 (*conditional_branch): Only valid after reload.
13773 (cstoresf4): Merge expander with insn. Don't call rx_split_fp_compare.
13774
3ff79f99
MM
137752011-01-24 Michael Meissner <meissner@linux.vnet.ibm.com>
13776
13777 PR target/47385
13778 * config/rs6000/altivec.md (vector constant splitters): Add
13779 support for creating vector single precision constants if -mvsx is
13780 used and we would create the constant using Altivec primitives.
13781
ff3d9d08
BS
137822011-01-23 Bernd Schmidt <bernds@codesourcery.com>
13783 Richard Sandiford <rdsandiford@googlemail.com>
13784
13785 PR rtl-optimization/47166
13786 * reload1.c (emit_reload_insns): Disable the spill_reg_store
13787 mechanism for PRE_MODIFY and POST_MODIFY.
13788 (inc_for_reload): For PRE_MODIFY, return the insn that sets the
13789 reloadreg.
13790
7fcaf152
AS
137912011-01-23 Andreas Schwab <schwab@linux-m68k.org>
13792
8788adb6 13793 * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
7fcaf152 13794
d09b58c4
JH
137952011-01-22 Jan Hubicka <jh@suse.cz>
13796
13797 PR lto/47333
13798 * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
13799
e8ff8c5a
JH
138002011-01-22 Jan Hubicka <jh@suse.cz>
13801
13802 PR tree-optimization/43884
13803 PR lto/44334
8788adb6 13804 * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
e8ff8c5a
JH
13805 * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
13806
ccaed3ba
AS
138072011-01-22 Anatoly Sokolov <aesok@post.ru>
13808
13809 * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
13810 * config/s390/s390.c (s390_register_move_cost,
13811 s390_memory_move_cost): New.
13812 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
13813
0cecee06
UW
138142011-01-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13815
13816 PR middle-end/47401
13817 * except.c (sjlj_assign_call_site_values): Move setting the
13818 crtl->uses_eh_lsda flag to ...
13819 (sjlj_mark_call_sites): ... here.
13820 (sjlj_emit_function_enter): Support NULL dispatch label.
13821 (sjlj_build_landing_pads): In a function with no landing pads
13822 that still has must-not-throw regions, generate code to register
13823 a personality function with empty LSDA.
13824
e692f276
RH
138252011-01-21 Richard Henderson <rth@redhat.com>
13826
1b7ae0b7
RH
13827 * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
13828
3843787f
RH
13829 * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
13830
e692f276
RH
13831 * compare-elim.c: New file.
13832 * Makefile.in (OBJS-common): Add it.
13833 (compare-elim.o): New.
13834 * common.opt (fcompare-elim): New.
13835 * opts.c (default_options_table): Add OPT_fcompare_elim.
13836 * tree-pass.h (pass_compare_elim_after_reload): New.
13837 * passes.c (init_optimization_passes): Add it.
13838 * recog.h: Protect against re-inclusion.
13839 * target.def (TARGET_FLAGS_REGNUM): New POD hook.
13840 * doc/invoke.texi (-fcompare-elim): Document it.
13841 * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
13842 * doc/tm.texi: Rebuild.
13843
9a7c2050
NC
138442011-01-22 Nick Clifton <nickc@redhat.com>
13845
13846 * config/rx/rx.md (cstoresf4): Pass comparison operator to
13847 rx_split_fp_compare.
13848
15ba5696
NC
138492011-01-22 Nick Clifton <nickc@redhat.com>
13850
13851 * config/rx/rx.md (UNSPEC_CONST): New.
13852 (deallocate_and_return): Wrap the amount popped off the stack in
13853 an UNSPEC_CONST in order to stop it being rejected by
13854 -mmax-constant-size.
13855 (pop_and_return): Add a "(return)" rtx.
13856 (call): Drop the immediate operand.
13857 (call_internal): Likewise.
13858 (call_value): Likewise.
13859 (call_value_internal): Likewise.
13860 (sibcall_internal): Likewise.
13861 (sibcall_value_internal): Likewise.
13862 (sibcall): Likewise. Generate an explicit call using
13863 sibcall_internal.
13864 (sibcall_value): Likewise.
13865 (mov<>): FAIL if a constant operand is not legitimate.
13866 (addsi3_unpsec): New pattern.
9a7c2050 13867
38be4072 13868 * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
15ba5696
NC
13869 (ok_for_max_constant): New function.
13870 (gen_safe_add): New function.
13871 (rx_expand_prologue): Use gen_safe_add.
13872 (rx_expand_epilogue): Likewise.
13873 (rx_is_legitimate_constant): Use ok_for_max_constant. Handle
13874 UNSPEC CONSTs.
13875
caaf13d3
JL
138762011-01-21 Jeff Law <law@redhat.com>
13877
13878 PR tree-optimization/47053
13879 * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
13880 (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
13881 statements are deleted.
13882 (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP. If NEED_EH_CLEANUP
13883 is nonempty, then purge dead edges and cleanup the CFG.
13884
12c30f2f
AO
138852011-01-21 Alexandre Oliva <aoliva@redhat.com>
13886
13887 PR debug/47402
13888 Temporarily revert:
13889 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
13890 PR debug/47106
13891 * tree-dfa.c (create_var_ann): Mark variable as used.
13892
7360d2ac
JJ
138932011-01-21 Jakub Jelinek <jakub@redhat.com>
13894
aaa52a96
JJ
13895 PR middle-end/45566
13896 * except.c (convert_to_eh_region_ranges): Emit queued no-region
13897 notes from other section in hot/cold partitioning even if
13898 last_action is -3. Increment call_site_base.
13899
7360d2ac
JJ
13900 PR rtl-optimization/47366
13901 * fwprop.c (forward_propagate_into): Return bool. If
13902 any changes are made, -fnon-call-exceptions is used and
13903 REG_EH_REGION note is present, call purge_dead_edges
13904 and return true if it purged anything.
13905 (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
13906 any EH edges were purged.
13907
e90b336f
JL
139082011-01-21 Jeff Law <law@redhat.com>
13909
13910 PR rtl-optimization/41619
13911 * caller-save.c (setup_save_areas): Break out code to determine
13912 which hard regs are live across calls by examining the reload chains
13913 so that it is always used.
13914 Eliminate code which checked REG_N_CALLS_CROSSED.
13915
3ffe07e1
JJ
139162011-01-21 Jakub Jelinek <jakub@redhat.com>
13917
13918 PR tree-optimization/47355
13919 * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
13920 NOP has non-debug uses beyond PHIs in new_bb.
13921
1c7d0b34
AO
139222011-01-21 Alexandre Oliva <aoliva@redhat.com>
13923
13924 PR debug/47106
13925 * cfgexpand.c (account_used_vars_for_block): Only account vars
13926 that are annotated as used.
13927 (estimated_stack_frame_size): Don't set TREE_USED.
13928 * tree-dfa.c (create_var_ann): Mark variable as used.
13929
f99cc488
RG
139302011-01-21 Richard Guenther <rguenther@suse.de>
13931
13932 PR middle-end/47395
13933 * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
13934
3bc27de7
RG
139352011-01-21 Richard Guenther <rguenther@suse.de>
13936
13937 PR tree-optimization/47365
13938 * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
13939 (vn_reference_lookup_pieces): Adjust.
13940 (vn_reference_lookup): Likewise.
13941 * tree-ssa-sccvn.c (vn_walk_kind): New static global.
13942 (vn_reference_lookup_3): Only look through kills if in
13943 VN_WALKREWRITE mode.
13944 (vn_reference_lookup_pieces): Adjust.
13945 (vn_reference_lookup): Likewise.
13946 (visit_reference_op_load): Likewise.
13947 (visit_reference_op_store): Likewise.
13948 * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
13949 (compute_avail): Likewise.
13950 (eliminate): Likewise.
13951
d8debb1d
JJ
139522011-01-21 Jakub Jelinek <jakub@redhat.com>
13953
13954 * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
13955 DECL_IGNORED_P non-reg vars if they are used.
13956
3a2df831
JJ
13957 PR tree-optimization/47391
13958 * varpool.c (const_value_known_p): Return false if
13959 decl is volatile.
13960
1dd584a2
KT
139612011-01-21 Kai Tietz <kai.tietz@onevision.com>
13962
13963 PR bootstrap/47215
13964 * config/i386/i386.c (ix86_local_alignment): Handle
13965 case for va_list_type_node is nil.
13966 (ix86_canonical_va_list_type): Likewise.
13967
7f9f095e
AM
139682011-01-21 Alan Modra <amodra@gmail.com>
13969
13970 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
13971 builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
13972
837b01f6
RR
139732011-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
13974
13975 * config/arm/arm.md (define_attr type): Rename f_load
13976 and f_store to f_fpa_load and f_fpa_store. Update.
13977 (write_conflict): Deal with rename fallout.
13978 (*push_fp_multi): Likewise.
13979 * config/arm/fpa.md (f_load): Use f_fpa_load.
13980 (f_store): Use f_fpa_store.
13981 (*movsf_fpa): Likewise.
13982 (*movdf_fpa): Likewise.
13983 (*movxf_fpa): Likewise.
13984 (*thumb2_movsf_fpa): Likewise.
13985 (*thumb2_movdf_fpa): Likewise.
13986 (*thumb2_movxf_fpa): Likewise.
13987 * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
13988 f_loadd and f_stored.
13989 (*thumb2_movdi_vfp): Likewise.
13990 (*thumb2_movsf_vfp): Fix attribute to f_loads.
13991 (*thumb2_movsi_vfp): Likewise.
13992 * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
13993 Use f_loads instead of f_load.
13994 * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
13995
a1a79768
AS
139962011-01-20 Anatoly Sokolov <aesok@post.ru>
13997
13998 * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
13999 * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
14000 * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
14001 (xtensa_mode_dependent_address_p): New function.
14002 (constantpool_address_p): Make static. Change return type to bool.
14003 Change argument type to const_rtx. Use CONST_INT_P predicate.
14004
427f6cec
AO
140052011-01-20 Alexandre Oliva <aoliva@redhat.com>
14006
14007 PR debug/46583
14008 * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
14009
583ac69c
JJ
140102011-01-20 Jakub Jelinek <jakub@redhat.com>
14011
14012 PR debug/47283
14013 * cfgexpand.c (expand_debug_expr): Instead of generating
14014 (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
14015 etc. handling.
14016
93e452ed
RG
140172011-01-20 Richard Guenther <rguenther@suse.de>
14018
14019 PR middle-end/47370
14020 * tree-inline.c (remap_gimple_op_r): Recurse manually for
14021 the pointer operand of MEM_REFs.
14022
28fc44f3
JJ
140232011-01-20 Jakub Jelinek <jakub@redhat.com>
14024
14025 PR tree-optimization/46130
14026 * ipa-split.c (consider_split): If return_bb contains non-virtual
14027 PHIs other than for retval or if split_function would not adjust it,
14028 refuse to split.
14029
ddd268f2
RG
140302011-01-20 Richard Guenther <rguenther@suse.de>
14031
14032 PR tree-optimization/47167
14033 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
14034 Revert previous change, only avoid enumeral type changes.
14035
882020aa
MS
140362011-01-19 Mike Stump <mikestump@comcast.net>
14037
14038 * doc/tm.texi.in (BRANCH_COST): Englishify.
14039 * doc/tm.texi (BRANCH_COST): Likewise.
14040
7edb6247
DS
140412011-01-19 Dodji Seketeli <dodji@redhat.com>
14042
14043 PR c++/47291
14044 * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
61052244
AM
14045 (gen_scheduled_generic_parms_dies): New functions.
14046 (gen_struct_or_union_type_die): Schedule template parameters DIEs
14047 generation for the end of CU compilation.
14048 (dwarf2out_finish): Generate template parameters DIEs here.
7edb6247 14049
23d5ed5d
AO
140502011-01-19 Alexandre Oliva <aoliva@redhat.com>
14051
14052 PR debug/46240
14053 * tree-into-ssa.c (maybe_register_def): Do not attempt to add
14054 debug bind stmt on merge edges.
14055
37d6a488
AO
140562011-01-19 Alexandre Oliva <aoliva@redhat.com>
14057
14058 PR debug/47079
14059 PR debug/46724
14060 * function.c (instantiate_expr): Instantiate incoming rtl of
14061 implicit arguments, and recurse on VALUE_EXPRs.
14062 (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
14063 * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
14064
689f2c82
AO
140652011-01-19 Alexandre Oliva <aoliva@redhat.com>
14066
14067 * c-parser.c (c_parser_for_statement): Initialize
14068 collection_expression.
14069
03029de4
JM
140702011-01-19 Joseph Myers <joseph@codesourcery.com>
14071
14072 * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
14073
3e03217e
JM
140742011-01-19 Joseph Myers <joseph@codesourcery.com>
14075
14076 * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
14077 (LINK_SHLIB_SPEC): Don't use %(link_path).
14078 (SUBTARGET_EXTRA_SPECS): Remove link_path.
14079
5bbe9b3f
JM
140802011-01-19 Joseph Myers <joseph@codesourcery.com>
14081
14082 * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
14083 (NO_SHARED_LIB_SUPPORT): Remove.
14084 (LINK_SHLIB_SPEC): Remove one conditional definition.
14085
368e0b39
JM
140862011-01-19 Joseph Myers <joseph@codesourcery.com>
14087
14088 * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
14089 %{call_shared}.
14090 * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
14091 * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
14092 * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
14093 %{call_shared} and conditionals on these options not being passed.
14094 * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
14095 %{call_shared}.
14096
ed7656f6
JJ
140972011-01-19 Jakub Jelinek <jakub@redhat.com>
14098
68457901
JJ
14099 * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
14100 simplify.
14101
ed7656f6
JJ
14102 * ipa-split.c: Spelling fixes.
14103
e0d1958f
RH
141042011-01-19 Richard Henderson <rth@redhat.com>
14105
14106 * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
14107 (*mulsi3): Likewise.
14108
27098b6b
RH
14109 * longlong.h [__mn10300__] (count_leading_zeros): New.
14110 [__mn10300__] (umul_ppmm, smul_ppmm): New.
14111 [__mn10300__] (add_ssaaaa, subddmmss): New.
14112 [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
14113 [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
14114
d6be7c36
UW
141152011-01-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14116
14117 * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
14118
b1efde2a
RH
141192011-01-19 Richard Henderson <rth@redhat.com>
14120
44217823
RH
14121 * config/mn10300/mn10300.md (addsi3_flags): New.
14122 (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
14123 (subsi3_flags, subc_internal, subdi3): New.
14124 (subdi3_internal, *subdi3_degenerate): New.
14125 * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
14126
37a185d7
RH
14127 * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
14128 (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
14129 (mn10300_expand_epilogue): Use it. Compute REG_SAVE_BYTES once.
14130 * config/mn10300/mn10300-protos.h: Update.
14131 * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
14132 (return_ret): Likewise. Rename from return_internal_regs.
14133 (return_internal): Remove.
14134
040c5757
RH
14135 * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
14136 (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
14137 (mn10300_legitimate_constant_p): Likewise.
14138 (mn10300_can_use_return_insn): Use mn10300_initial_offset.
14139 (mn10300_frame_size): New.
14140 (mn10300_expand_prologue): Use it.
14141 (mn10300_expand_epilogue): Likewise.
14142 (mn10300_initial_offset): Likewise.
14143 * config/mn10300/mn10300-protos.h: Update.
14144 * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
14145 * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
14146 (prologue, epilogue, return_internal): Tidy output code.
14147 (mn10300_store_multiple_operation, return): Likewise.
14148 (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
14149 (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
14150 (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
14151 (load_pic, am33_load_pic): New.
14152 (mn10300_load_pic0, mn10300_load_pic1): New.
14153
bad41521
RH
14154 * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
14155 * config/mn10300/mn10300.c (CC_FLAG_Z): New.
14156 (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
14157 (cc_flags_for_mode, cc_flags_for_code): New.
14158 (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
14159 overflow flag is not valid. Validate that the flags we need
14160 for the comparison are valid.
14161 (mn10300_output_cmp): Remove.
14162 (mn10300_output_add): New.
14163 (mn10300_select_cc_mode): Use cc_flags_for_code.
14164 (mn10300_split_cbranch): New.
14165 (mn10300_match_ccmode): New.
14166 (mn10300_split_and_operand_count): New.
14167 * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
14168 to the function.
14169 * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
14170 (addsi3): ... here. Use mn10300_output_add.
14171 (*addsi3_flags): New.
14172 (*am33_subsi3, *mn10300_subsi3): Merge...
14173 (subsi3): ... here. Use attribute isa.
14174 (*subsi3_flags): New.
14175 (negsi2): Rewrite from expander to insn_and_split. Use NOT+INC
14176 when possible.
14177 (*am33_andsi3, *mn10300_andsi3): Merge...
14178 (andsi3): ... here.
14179 (*andsi3_flags): New.
14180 (andsi3 splitters): New.
14181 (*am33_iorsi3, *mn10300_iorsi3): Merge...
14182 (iorsi3): ... here.
14183 (*iorsi3_flags): New.
14184 (*am33_xorsi3, *mn10300_xorsi3): Merge...
14185 (xorsi3): ... here.
14186 (*xorsi3_flags): New.
14187 (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
14188 (one_cmplsi2): ... here.
14189 (*one_cmplsi2_flags): New.
14190 (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload. Use "r"
14191 instead of "dax" in constraints. Use mn10300_split_cbranch.
14192 (*cmpsi): Rename from cmpsi. Do not use mn10300_output_cmp. Do not
14193 use matching constraints to eliminate a self-comparison.
14194 (*integer_conditional_branch): Rename from integer_conditional_branch.
14195 Use int_mode_flags to match CC_REG.
14196 (*cbranchsi4_btst, *btstsi): New.
14197 (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload. Use
14198 mn10300_split_cbranch.
14199 (*am33_cmpsf): Rename from am33_cmpsf.
14200 (*float_conditional_branch): Rename from float_conditional_branch.
14201 (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
14202 (zero_extendqisi2): ... here.
14203 (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
14204 (zero_extendhisi2): ... here.
14205 (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
14206 (extendqisi2): ... here.
14207 (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
14208 (extendhisi2): ... here.
14209 (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
14210 (ashlsi3): ... here.
14211 (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
14212 (lshrsi3): ... here.
14213 (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
14214 (ashrsi3): ... here.
14215 (consecutive add peephole): Remove.
14216 * config/mn10300/predicates.md (label_ref_operand): New.
14217 (int_mode_flags): New.
14218 (CCZN_comparison_operator): New.
14219
9efb4993
RH
14220 * config/mn10300/mn10300.md (UNSPEC_EXT): New.
14221 (throughput_42_latency_43): New reservation.
14222 (mulsidi3, umulsidi3): New expanders.
14223 (mulsidi3_internal): Rewrite from old mulsidi3 pattern. Expose
14224 the MDR register to allocation; separately allocate the low and
14225 high parts of the DImode result.
14226 (umulsidi3_internal): Similarly.
14227 (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
14228 (*mulsi3): ... here. Clobber MDR as a scratch as necessary.
14229 (udivsi3, umodsi3): Remove.
14230 (udivmodsi4, divmodsi4): New expanders.
14231 (*udivmodsi4): Rename from udivmodsi4. Expose MDR properly.
14232 (*divmodsi4): Simiarly.
14233 (ext_internal): New.
14234
c25a21f5
RH
14235 * config/mn10300/constraints.md ("z"): New constraint.
14236 * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
14237 (FIXED_REGISTERS): Don't fix MDR.
14238 (CALL_USED_REGSITERS): Reformat nicely.
14239 (REG_ALLOC_ORDER): Add MDR.
14240 (enum regclass): Add MDR_REGS.
14241 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
14242 (IRA_COVER_CLASSES): Add MDR_REGS.
14243 (REGNO_REG_CLASS): Handle MDR_REG.
14244 * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
14245 (mn10300_register_move_cost): Likewise.
14246 * config/mn10300/mn10300.md (MDR_REG): New.
14247 (*movsi_internal): Handle moves to/from MDR_REGS.
14248
36846b26
RH
14249 * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
14250 POST_MODIFY.
14251 (mn10300_secondary_reload): Tidy combination reload classes.
14252 (mn10300_legitimate_address_p): Allow post-modify and reg+reg
14253 addresses for AM33. Allow symbolic offsets for reg+imm.
14254 (mn10300_regno_in_class_p): New.
14255 (mn10300_legitimize_reload_address): New.
14256 * config/mn10300/mn10300.h (enum reg_class): Remove
14257 DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
14258 SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS. Add
14259 SP_OR_GENERAL_REGS.
14260 (REG_CLASS_NAMES): Update to match.
14261 (REG_CLASS_CONTENTS): Likewise.
14262 (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
14263 (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
14264 (REGNO_IN_RANGE_P): Remove.
14265 (REGNO_DATA_P): Use mn10300_regno_in_class_p.
14266 (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
14267 (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
14268 (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
14269 (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
14270 (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
14271 (REGNO_GENERAL_P): New.
14272 (HAVE_POST_MODIFY_DISP): New.
14273 (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
14274 (LEGITIMIZE_RELOAD_ADDRESS): New.
14275 * config/mn10300/mn10300-protos.h: Update.
14276
8b119bb6
RH
14277 * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
14278 DATA_REGS for AM33 stack-pointer destination.
14279 (mn10300_preferred_output_reload_class): Likewise.
14280 (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
14281 into a form appropriate for ...
14282 (TARGET_SECONDARY_RELOAD): New.
14283 * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
14284 * config/mn10300/mn10300-protos.h: Update.
14285 * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
14286 reload_insi; use the "A" constraint for the scratch; handle AM33
14287 moves of sp to non-address registers.
14288
b1efde2a
RH
14289 * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
14290 (*movqi_internal): ... here.
14291 (*am33_movhi, *mn10300_movhi): Merge into...
14292 (*movhi_internal): ... here.
14293 (*movsi_internal): Use "r" instead of "dax" in constraints. Use "A"
14294 as the source/destination of moves from/to SP.
14295 (movsf): Only allow for AM33-2.
1c3ba85b 14296 (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
b1efde2a
RH
14297 any integer constant constraint. Only allow for AM33-2. Tidy
14298 all of the alternative outputs.
14299 (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
14300 (udivmodsi4): Delete expander and promote *udivmodsi4. Disallow
14301 for MN103.
14302 (udivsi3, umodsi3): New patterns for MN103 only.
14303
b899fd78
JR
143042011-01-19 Joern Rennecke <amylaar@spamcop.net>
14305
14306 * doc/tm.texi.in: Spell out that a lack of register class unions
14307 can lead to ICEs.
14308 * doc/tm.texi: Regenerate.
14309
afaaa67d
JJ
143102011-01-19 Jakub Jelinek <jakub@redhat.com>
14311
2e0642cd
JJ
14312 PR rtl-optimization/47337
14313 * dce.c (check_argument_store): New function.
14314 (find_call_stack_args): Ignore debug insns. Use check_argument_store.
14315
afaaa67d
JJ
14316 PR tree-optimization/47290
14317 * tree-eh.c (infinite_empty_loop_p): New function.
14318 (cleanup_empty_eh): Use it.
14319
d2cd871f
SE
143202011-01-18 Steve Ellcey <sje@cup.hp.com>
14321
14322 PR target/46997
14323 * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
14324 (a64_expand_widen_sum): Ditto.
14325 * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
14326 (vec_extract_evenodd_help): Ditto.
14327 (vec_extract_evenv4hi): Ditto.
14328 (vec_extract_oddv4hi): Ditto.
14329 (vec_extract_evenv2si): Ditto.
14330 (vec_extract_oddv2si): Ditto.
14331 (vec_extract_evenv2sf): Ditto.
14332 (vec_extract_oddv2sf): Ditto.
14333 (vec_pack_trunc_v4hi: Ditto.
14334 (vec_pack_trunc_v2si): Ditto.
14335 (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
14336 (vec_interleave_highv8qi): Ditto.
14337 (mix1_r): Ditto.
14338 (vec_extract_oddv8qi): Ditto.
14339 (vec_interleave_lowv4hi): Ditto.
14340 (vec_interleave_highv4hi): Ditto.
14341 (vec_interleave_lowv2si): Ditto.
14342 (vec_interleave_highv2si): Ditto.
14343
41a1208a
JDA
143442011-01-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14345
14346 * doc/extend.texi: Mention __float128 support on hppa HP-UX.
14347 * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
14348 * config/pa/pa.c (pa_expand_builtin): New. Include "langhooks.h".
14349 (pa_c_mode_for_suffix): New.
14350 (TARGET_EXPAND_BUILTIN): Define.
14351 (TARGET_C_MODE_FOR_SUFFIX): Define.
14352 (pa_builtins): Define.
14353 (pa_init_builtins): Register __float128 type and init new support
14354 builtins.
14355 * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
14356 * config/pa/quadlib.c (_U_Qfcopysign): New.
14357
1ecad98e
EB
143582011-01-18 Eric Botcazou <ebotcazou@adacore.com>
14359
14360 PR middle-end/46894
14361 * explow.c (allocate_dynamic_stack_space): Do not assume more than
14362 BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
14363 are defined.
14364
d4f2460a
UW
143652011-01-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14366
14367 PR tree-optimization/47179
14368 * config/spu/spu.c (spu_ref_may_alias_errno): New function.
14369 (TARGET_REF_MAY_ALIAS_ERRNO): Define.
14370
4994da65
RG
143712011-01-18 Richard Guenther <rguenther@suse.de>
14372
14373 PR rtl-optimization/47216
14374 * emit-rtl.c: Include tree-flow.h.
14375 (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
14376 of replicating it with different semantics.
14377 * Makefile.in (emit-rtl.o): Adjust.
14378
1eb458d1
RR
143792011-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14380
38be4072 14381 * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
61052244 14382 (cortex_a9_dp): Handle neon types correctly.
1eb458d1 14383
e7ef91dc
JJ
143842011-01-18 Jakub Jelinek <jakub@redhat.com>
14385
14386 PR rtl-optimization/47299
14387 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
38be4072 14388 subtarget. Use normal multiplication if both operands are constants.
e7ef91dc
JJ
14389 * expmed.c (expand_widening_mult): Don't try to optimize constant
14390 multiplication if op0 has VOIDmode. Convert op1 constant to mode
14391 before using it.
14392
535b7874
RW
143932011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14394
14395 * doc/lto.texi (LTO): Ensure two spaces after period. Fix
14396 spacing after 'e.g.', typos, comma, hyphenation.
14397
27bf36f3
RH
143982011-01-17 Richard Henderson <rth@redhat.com>
14399
8a5b5449
RH
14400 * config/rx/predicates.md (rx_constshift_operand): Use match_test.
14401 (rx_restricted_mem_operand): New.
14402 (rx_shift_operand): Use register_operand.
14403 (rx_source_operand, rx_compare_operand): Likewise.
14404 * config/rx/rx.md (addsi3_flags): New expander.
14405 (adddi3): Rewrite as expander.
14406 (adc_internal, *adc_flags, adddi3_internal): New patterns.
14407 (subsi3_flags): New expander.
14408 (subdi3): Rewrite as expander.
14409 (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
14410
784f69be
RH
14411 * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
14412 (rx_init_builtins): Remove sat builtin.
14413 (rx_expand_builtin): Likewise.
14414 * config/rx/rx.md (ssaddsi3): New.
14415 (*sat): Rename from sat. Represent the CC_REG input.
14416
f033541c
RH
14417 * config/rx/predicates.md (rshift_operator): New.
14418 * config/rx/rx.c (rx_expand_insv): Remove.
14419 * config/rx/rx-protos.h: Update.
14420 * config/rx/rx.md (*bitset): Rename from bitset. Swap the ashift
14421 operand to the canonical position.
14422 (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
14423 (*bitclr, *bitclr_in_memory): Similarly.
14424 (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
14425 (insv): Retain the zero_extract in the expansion.
14426
34fee389
RH
14427 * config/rx/rx.md (bswapsi2): Use = not + for output reload.
14428 (bswaphi2, bitinvert, revw): Likewise.
14429
265c835f
RH
14430 * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
14431 (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
14432 * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
14433 (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
14434 (bitset, bitset_in_memory): Likewise.
14435 (bitinvert, bitinvert_in_memory): Likewise.
14436 (bitclr, bitclr_in_memory): Likewise.
14437 (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
14438 (rx_strend, rx_cmpstrn): Likewise.
14439 (rx_setmem): Likewise. Make the source BLKmode to match the dest.
14440 (bitop peep2 patterns): Remove.
14441
b4d83be3
RH
14442 * config/rx/rx.c (rx_match_ccmode): New.
14443 * config/rx/rx-protos.h: Update.
14444 * config/rx/rx.md (abssi2): Clobber, don't set flags.
14445 (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
14446 (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
14447 (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
14448 (fix_truncsfsi2, floatsisf2): Likewise.
14449 (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
14450 (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
14451 (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
14452 (*subsi3_flags, *xorsi3_flags): New.
14453
d0acb939
RH
14454 * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
14455
c06fc3d9
RH
14456 * config/rx/rx.c (rx_print_operand): Remove workaround for
14457 unsplit comparison operations.
14458
2882702b
RH
14459 * config/rx/rx.md (movsicc): Split after reload.
14460 (*movsicc): Merge *movsieq and *movsine via match_operator.
14461 (*stcc): New pattern.
14462
6f7310f2
RH
14463 * config/rx/rx.c (rx_float_compare_mode): Remove.
14464 * config/rx/rx.h (rx_float_compare_mode): Remove.
14465 * config/rx/rx.md (cstoresi4): Split after reload.
14466 (*sccc): New pattern.
14467
e963cb1a
RH
14468 * config/rx/predicates.md (label_ref_operand): New.
14469 (rx_z_comparison_operator): New.
14470 (rx_zs_comparison_operator): New.
14471 (rx_fp_comparison_operator): New.
14472 * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
14473 Validate that the flags are set properly for the comparison.
14474 (rx_gen_cond_branch_template): Remove.
14475 (rx_cc_modes_compatible): Remove.
14476 (mode_from_flags): New.
14477 (flags_from_code): Rename from flags_needed_for_conditional.
14478 (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
14479 (rx_select_cc_mode): Likewise.
14480 (rx_split_fp_compare): New.
14481 (rx_split_cbranch): New.
14482 * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
14483 (*cbranchsi4): Use match_operator and rx_split_cbranch.
14484 (*cbranchsf4): Similarly.
14485 (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>. Use
14486 match_operator and rx_split_cbranch.
14487 (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
14488 tstbranchsi4m_ne. Use match_operator and rx_split_cbranch.
14489 (*cmpsi): Rename from cmpsi.
14490 (*tstsi): Rename from tstsi.
14491 (*cmpsf): Rename from cmpsf; use CC_Fmode.
14492 (*conditional_branch): Rename from conditional_branch.
14493 (*reveresed_conditional_branch): Remove.
14494 (b<code>): Remove expander.
14495 * config/rx/rx-protos.h: Update.
14496
af530bb4
RH
14497 * config/rx/rx.c (rx_compare_redundant): Remove.
14498 * config/rx/rx.md (cmpsi): Don't use it.
14499 * config/rx/rx-protos.h: Update.
14500
27bf36f3
RH
14501 * config/rx/rx-modes.def (CC_F): New mode.
14502 * config/rx/rx.c (rx_select_cc_mode): New.
14503 * config/rx/rx.h (SELECT_CC_MODE): Use it.
14504 * config/rx/rx-protos.h: Update.
14505
d7fde127
RH
145062011-01-17 Richard Henderson <rth@redhat.com>
14507
14508 * except.c (dump_eh_tree): Fix stray ; after for statement.
14509
6ff38230
RG
145102011-01-17 Richard Guenther <rguenther@suse.de>
14511
14512 PR tree-optimization/47313
14513 * tree-inline.c (tree_function_versioning): Move DECL_RESULT
14514 handling before copying the body. Properly deal with
14515 by-reference result in SSA form.
14516
114ce554
ILT
145172011-01-17 Ian Lance Taylor <iant@google.com>
14518
bf5cd92b 14519 PR target/47219
114ce554
ILT
14520 * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
14521 (struct_value_alias_set): Don't define.
14522 (sparc_option_override): Don't set sparc_sr_alias_set and
14523 struct_value_alias_set.
14524 (save_or_restore_regs): Use gen_frame_mem rather than calling
14525 set_mem_alias_set.
14526 (sparc_struct_value_rtx): Likewise.
14527
98c6d93c
L
145282011-01-17 H.J. Lu <hongjiu.lu@intel.com>
14529
14530 PR target/47318
7a81008b 14531 * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
98c6d93c
L
14532 (_mm_maskstore_pd): Likewise.
14533 (_mm_maskload_ps): Likewise.
14534 (_mm_maskstore_ps): Likewise.
14535 (_mm256_maskload_pd): Change mask to __m256i.
14536 (_mm256_maskstore_pd): Likewise.
14537 (_mm256_maskload_ps): Likewise.
14538 (_mm256_maskstore_ps): Likewise.
14539
14540 * config/i386/i386-builtin-types.def: Updated.
14541 (ix86_expand_special_args_builtin): Likewise.
14542
14543 * config/i386/i386.c (bdesc_special_args): Update
14544 __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
14545 __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
14546 __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
14547 __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
14548
14549 * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
14550 Use <avxpermvecmode> on mask register.
14551 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
14552
b9361af2 145532011-01-17 Olivier Hainque <hainque@adacore.com>
61052244
AM
14554 Michael Haubenwallner <michael.haubenwallner@salomon.at>
14555 Eric Botcazou <ebotcazou@adacore.com>
b9361af2
OH
14556
14557 PR target/46655
14558 * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
14559 if <= USHRT_MAX in 32-bit mode.
14560
b7ae9eb5
RW
145612011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14562
14563 * doc/install.texi (Configuration, Specific): Wrap long
14564 lines in examples. Allow line wrapping in long options
14565 and URLs where beneficial for PDF output.
14566
4377fad9
RS
145672011-01-16 Richard Sandiford <rdsandiford@googlemail.com>
14568
14569 * config/mips/mips.c (mips_classify_symbol): Don't return
14570 SYMBOL_PC_RELATIVE for nonlocal labels.
14571
55959ffa 145722011-01-15 Eric Botcazou <ebotcazou@adacore.com>
be46831f 14573
55959ffa
EB
14574 * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
14575
145762011-01-15 Jan Hubicka <jh@suse.cz>
14577
14578 PR tree-optimization/47276
be46831f
JH
14579 * ipa.c (function_and_variable_visibility): Do not try to mark alias
14580 declarations as needed.
14581
05842ff5
MJ
145822011-01-15 Martin Jambor <mjambor@suse.cz>
14583
14584 * common.opt (fdevirtualize): New flag.
14585 * doc/invoke.texi (Option Summary): Document it.
14586 * opts.c (default_options_table): Add devirtualize flag.
14587 * ipa-prop.c (detect_type_change): Return immediately if
14588 devirtualize flag is not set.
14589 (detect_type_change_ssa): Likewise.
14590 (compute_known_type_jump_func): Likewise.
14591 (ipa_analyze_virtual_call_uses): Likewise.
14592
f65cf2b7
MJ
145932011-01-14 Martin Jambor <mjambor@suse.cz>
14594
14595 PR tree-optimization/45934
14596 PR tree-optimization/46302
14597 * ipa-prop.c (type_change_info): New type.
14598 (stmt_may_be_vtbl_ptr_store): New function.
14599 (check_stmt_for_type_change): Likewise.
14600 (detect_type_change): Likewise.
14601 (detect_type_change_ssa): Likewise.
14602 (compute_complex_assign_jump_func): Check for dynamic type change.
14603 (compute_complex_ancestor_jump_func): Likewise.
14604 (compute_known_type_jump_func): Likewise.
14605 (compute_scalar_jump_functions): Likewise.
14606 (ipa_analyze_virtual_call_uses): Likewise.
14607 (ipa_analyze_node): Push and pop cfun, set current_function_decl.
14608
eb5bb0fd
JM
146092011-01-14 Joseph Myers <joseph@codesourcery.com>
14610
14611 * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
14612 * config/i386/i386.opt (msse5): New Alias.
14613
f2060fbe
JM
146142011-01-14 Joseph Myers <joseph@codesourcery.com>
14615
14616 * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
14617 * config/sparc/linux64.h (CC1_SPEC): Likewise.
14618 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
14619 * config/sparc/sparc.h (CC1_SPEC): Likewise.
14620
3a7b4385
JM
146212011-01-14 Joseph Myers <joseph@codesourcery.com>
14622
14623 * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
14624 -mcpu options.
14625 * config/sparc/linux64.h (CC1_SPEC): Likewise.
14626 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
14627 * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
14628 * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
14629 Likewise.
14630 * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
14631
a7b778f8
JM
146322011-01-14 Joseph Myers <joseph@codesourcery.com>
14633
38be4072 14634 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
a7b778f8 14635
a7edae0a
MS
146362011-01-14 Mike Stump <mikestump@comcast.net>
14637
14638 * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
14639 * config/fr30/fr30.md: Likweise
14640 (movsi_push): Likewise.
14641 (movsi_pop): Likewise.
14642 (enter_func): Likewise.
14643 * config/moxie/moxie.md (movsi_push): Likewise.
14644 (movsi_pop): Likewise.
14645
cbabf03f
JM
146462011-01-14 Joseph Myers <joseph@codesourcery.com>
14647
14648 * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
14649 %{no_archive} %{exact_version}.
14650 * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
14651 * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
14652 %{no_archive} %{exact_version}.
14653 * config/mips/openbsd.h (LINK_SPEC): Likewise.
14654 * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
14655 * config/mips/vxworks.h: Likewise.
14656
438da41a
JM
146572011-01-14 Joseph Myers <joseph@codesourcery.com>
14658
38be4072 14659 * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
438da41a 14660
da290a42
JM
146612011-01-14 Joseph Myers <joseph@codesourcery.com>
14662
14663 * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
14664 ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
14665
8989d00e
JM
146662011-01-14 Joseph Myers <joseph@codesourcery.com>
14667
14668 * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
14669 -nodefaultlib.
14670
a3010a69
JM
146712011-01-14 Joseph Myers <joseph@codesourcery.com>
14672
14673 * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
14674 for mcpu not cpu.
14675 * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
14676 CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
14677 not cpu.
14678 (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
14679 Don't handle -shlib.
14680
e7f2f537
JM
146812011-01-14 Joseph Myers <joseph@codesourcery.com>
14682
14683 * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
14684 (CC1_SPEC): Don't handle -profile.
14685
34830bfd
JM
146862011-01-14 Joseph Myers <joseph@codesourcery.com>
14687
14688 * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
14689 * config/mips/mips.h (CC1_SPEC): Likewise.
14690
b2d36e74
JM
146912011-01-14 Joseph Myers <joseph@codesourcery.com>
14692
14693 * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
14694 * config/mips/mips.h (CC1_SPEC): Likewise.
14695
dabadc52
JM
146962011-01-14 Joseph Myers <joseph@codesourcery.com>
14697
14698 * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
14699 * config/m32r/linux.h (LINK_SPEC): Likewise.
14700 * config/mips/linux.h (LINK_SPEC): Likewise.
14701 * config/mips/linux64.h (LINK_SPEC): Likewise.
14702 * config/sparc/linux.h (LINK_SPEC): Likewise.
14703 * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
14704 LINK_SPEC): Likewise.
14705 * config/xtensa/linux.h (LINK_SPEC): Likewise.
14706
43ee6785
JM
147072011-01-14 Joseph Myers <joseph@codesourcery.com>
14708
14709 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
14710 %{version:-v}.
14711 * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
14712
45e79dfd
JM
147132011-01-14 Joseph Myers <joseph@codesourcery.com>
14714
14715 * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
14716 * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
14717
37e9e71d
JM
147182011-01-14 Joseph Myers <joseph@codesourcery.com>
14719
14720 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
14721
bb127cd8
RO
147222011-01-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14723
14724 * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
14725 supports -Bstatic/-Bdynamic.
14726 * configure: Regenerate.
14727
89a012ea 147282011-01-14 Jan Hubicka <jh@suse.cz>
509d65dd 14729 Jack Howarth <howarth@bromo.med.uc.edu>
89a012ea
JH
14730
14731 PR target/46037
14732 * config/darwin.c (darwin_override_options): Honor flag_gtoggle
14733 when checking debug_info_level. Test write_symbols instead of
14734 debug_hooks->var_location when setting flag_var_tracking_uninit.
14735
7352c013
RG
147362011-01-14 Richard Guenther <rguenther@suse.de>
14737
14738 PR tree-optimization/47179
14739 * target.def (ref_may_alias_errno): New target hook.
14740 * targhooks.h (default_ref_may_alias_errno): Declare.
14741 * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
14742 (default_ref_may_alias_errno): New function.
14743 * target.h (struct ao_ref_s): Declare.
14744 * tree-ssa-alias.c: Include target.h.
14745 (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
14746 * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
14747 (targhooks.o): Likewise.
14748 * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
14749 * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
14750
9a6c9288
RG
147512011-01-14 Richard Guenther <rguenther@suse.de>
14752
14753 * tree-ssa-structalias.c (new_var_info): Use DECL_HARD_REGISTER.
14754
0fdb0d27
RG
147552011-01-14 Richard Guenther <rguenther@suse.de>
14756
14757 PR tree-optimization/47280
14758 * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
14759 return CFG changes.
14760 (tree_ssa_forward_propagate_single_use_vars): Deal with
14761 CFG changes from associate_plusminus.
14762
8f66db3b
RG
147632011-01-14 Richard Guenther <rguenther@suse.de>
14764
14765 PR middle-end/47281
14766 Revert
14767 2011-01-11 Richard Guenther <rguenther@suse.de>
14768
280d9630
EB
14769 PR tree-optimization/46076
14770 * tree-ssa.c (useless_type_conversion_p): Conversions from
14771 unprototyped to empty argument list function types are useless.
8f66db3b 14772
6c0c92e6
RG
147732011-01-14 Richard Guenther <rguenther@suse.de>
14774
14775 PR tree-optimization/47286
280d9630 14776 * tree-ssa-structalias.c (new_var_info): Register variables are global.
6c0c92e6 14777
db09f943
MJ
147782011-01-14 Martin Jambor <mjambor@suse.cz>
14779
14780 PR middle-end/46823
14781 * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
14782
dde8a3a4
AS
147832011-01-13 Anatoly Sokolov <aesok@post.ru>
14784
14785 * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
14786 LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
14787 * config/xtensa/xtensa.c (xtensa_libcall_value,
14788 xtensa_function_value_regno_p): New functions.
14789 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
14790
a2b63a20
KT
147912011-01-13 Kai Tietz <kai.tietz@onevision.com>
14792
14793 PR c++/47213
14794 * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
14795 PE specific hook.
14796 * config/i386/i386-protos.h (i386_pe_assemble_visibility):
14797 New function prototype.
14798 * config/i386/winnt.c (i386_pe_assemble_visibility):
14799 Warn only if attribute was specified by user.
14800
b41f0b34
MM
148012011-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
14802
14803 PR target/47251
14804 * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
14805 floating point.
14806 (floatunsdidf2_fcfidu): Ditto.
14807
3f3c098d
AK
148082011-01-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14809
14810 * config/s390/s390.c (print_operand_address): Replace 'error' with
14811 'output_operand_lossage'.
14812 (print_operand): Likewise.
14813
29fa95ed
JL
148142011-01-13 Jeff Law <law@redhat.com>
14815
280d9630 14816 PR rtl-optimization/39077
29fa95ed
JL
14817 * doc/invoke.texi (max-gcse-insertion-ratio): Document.
14818 * params.h (MAX_GCSE_INSERTION_RATIO): Define.
14819 * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
14820 * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
14821 * gcse.c (prune_insertions_deletions): New function.
14822 (compute_pre_data): Use it.
14823
71d12276
DS
148242011-01-13 Dodji Seketeli <dodji@redhat.com>
14825
14826 PR debug/PR46973
14827 * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
14828 static function.
61052244 14829 (prune_unused_types_mark): Use it.
71d12276 14830
9b0f04e7
AB
148312011-01-13 Andrey Belevantsev <abel@ispras.ru>
14832
14833 PR rtl-optimization/45352
1c3ba85b 14834 * sel-sched.c: Update copyright years.
9b0f04e7 14835 (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
1c3ba85b 14836 in the advancing loop when we have issued issue_rate insns.
9b0f04e7 14837
d6a3e264
RH
148382011-01-12 Richard Henderson <rth@redhat.com>
14839
a49b692a
RH
14840 * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
14841 (TARGET_MD_ASM_CLOBBERS): New.
14842
126b1483
RH
14843 * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
14844 (TARGET_DELEGITIMIZE_ADDRESS): New.
14845
f3d9d2e0
RH
14846 * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
14847 (clzsi2, *bsch): New patterns.
14848
d84760c9
RH
14849 * config/mn10300/mn10300.md (INT): New mode iterator.
14850 (*mov<INT>_clr): New pattern, and peep2 to generate it.
14851
ec815d65
RH
14852 * config/mn10300/mn10300.c (mn10300_option_override): Force enable
14853 flag_split_wide_types.
14854
d6a3e264
RH
14855 * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
14856 (mn10300_trampoline_init): Rewrite without a template, an immediate
14857 load and a direct branch.
14858 * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
14859
0f8ab434
AS
148602011-01-12 Anatoly Sokolov <aesok@post.ru>
14861
14862 * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
14863 * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
14864 * config/s390/s390.c (s390_output_addr_const_extra): Make static.
14865 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
14866
d8a24b65
KT
148672011-01-12 Kai Tietz <kai.tietz@onevision.com>
14868
14869 PR debug/47209
14870 * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
14871 of type.
14872
56e22cab
JH
148732011-01-12 Jan Hubicka <jh@suse.cz>
14874
14875 PR driver/47244
14876 * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
14877 (PLUGIN_COND_CLOSE): New macro.
14878 (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
14879
4b18b3c2
RG
148802011-01-12 Richard Guenther <rguenther@suse.de>
14881
14882 PR lto/47259
14883 * lto-streamer-out.c (output_gimple_stmt): Do not wrap
14884 register variables in a MEM_REF.
14885
8e38461c
JM
148862011-01-12 Joseph Myers <joseph@codesourcery.com>
14887
14888 * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
14889 crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
14890 hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
14891 i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
14892 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
14893 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
14894 ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
14895 m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
14896 mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
14897 s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
14898 sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
14899 am33_2.0-*-linux*): Use gnu-user.h before linux.h.
14900 * config/gnu-user.h: New. Copied from linux.h.
14901 (LINUX_TARGET_STARTFILE_SPEC): Rename to
14902 GNU_USER_TARGET_STARTFILE_SPEC.
14903 (LINUX_TARGET_ENDFILE_SPEC): Rename to
14904 GNU_USER_TARGET_ENDFILE_SPEC.
14905 (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
14906 (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
14907 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
14908 LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
14909 CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
14910 UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
14911 BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
14912 BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
14913 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
14914 TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
14915 * config/arm/linux-eabi.h (CC1_SPEC): Use
14916 GNU_USER_TARGET_CC1_SPEC.
14917 (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
14918 (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
14919 (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
14920 * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
14921 LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
14922 LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
14923 CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
14924 LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
14925
a570fc16
RG
149262011-01-12 Richard Guenther <rguenther@suse.de>
14927
14928 PR other/46946
14929 * doc/invoke.texi (ffast-math): Document it is turned on
14930 with -Ofast.
14931
b0223c3e
JH
149322011-01-12 Jan Hubicka <jh@suse.cz>
14933
14934 PR tree-optimization/47233
ca1e00b3
EB
14935 * opts.c (common_handle_option): Disable ipa-reference with profile
14936 feedback.
b0223c3e 14937
1c3ba85b 149382011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
d853ee42
NP
14939
14940 * c-parser.c (c_parser_objc_at_property_declaration): Improved
ca1e00b3
EB
14941 error message.
14942
d853ee42
NP
149432011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
14944
14945 * c-parser.c (c_lex_one_token): Updated and reindented some
14946 comments. No changes in code.
14947
4053a5a0
ILT
149482011-01-11 Ian Lance Taylor <iant@google.com>
14949
14950 * godump.c (go_output_var): Don't output the variable if there is
14951 already a type with the same name.
14952
fa3e04d2
ILT
149532011-01-11 Ian Lance Taylor <iant@google.com>
14954
14955 * godump.c (go_format_type): Don't generate float80.
14956
885fe07c
RH
149572011-01-11 Richard Henderson <rth@redhat.com>
14958
72d6e3c5
RH
14959 * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
14960 declaration. Rewrite for both speed and size.
14961 (mn10300_address_cost_1): Remove.
14962 (mn10300_register_move_cost): New.
14963 (mn10300_memory_move_cost): New.
14964 (mn10300_rtx_costs): Rewrite for both speed and size. Don't handle
14965 ZERO_EXTRACT. Do handle UNSPEC, arithmetic, logicals, compare,
14966 extensions, shifts, BSWAP, CLZ.
14967 (mn10300_wide_const_load_uses_clr): Remove.
14968 (TARGET_REGISTER_MOVE_COST): New.
14969 (TARGET_MEMORY_MOVE_COST): New.
14970 * config/mn10300/mn10300-protos.h: Update.
14971 * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
14972
df37c023
RH
14973 * config/mn10300/constraints.md ("R", "T"): Remove constraints.
14974 * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
14975 * config/mn10300/mn10300-protos.h: Update.
14976 * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
14977 (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
14978 (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
14979 (*test_int_bitfield, *test_byte_bitfield): Remove.
14980 (*bit_test, *subreg_bit_test): Remove.
62d3f9b2 14981 * config/mn10300/predicates.md (const_8bit_operand): Remove.
df37c023 14982
85a337b5
RH
14983 * config/mn10300/constraints.md ("c"): Rename from "A".
14984 ("A", "D"): New constraint letters.
14985 * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
14986 (fmssf4, fnmasf4, fnmssf4): Likewise.
14987
a5c727e3
RH
14988 * config/mn10300/mn10300.md (isa): New attribute.
14989 (enabled): New attribute.
14990
0d9e23f4
RH
14991 * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
14992 (abssf2, negsf2): Define only for hardware fp.
14993 (sqrtsf2): Reformat.
14994 (addsf3, subsf3, mulsf3): Merge expander and insn.
14995
c157b3f0
RH
14996 * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
14997 (DEBUGGER_AUTO_OFFSET): Remove.
14998 (DEBUGGER_ARG_OFFSET): Remove.
14999
cc909bba
RH
15000 * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
15001 Emit register stores with the same offsets as the hardware.
15002 (mn10300_store_multiple_operation): Don't check that the register
15003 save offsets are monotonic.
15004 * config/mn10300/mn10300-protos.h: Update.
15005
e3b5c2f3
RH
15006 * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
15007
885fe07c
RH
15008 * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
15009 in terms of the value on the stack, not the MDR register.
15010
6e701822
JH
150112011-01-11 Jan Hubicka <jh@suse.cz>
15012
15013 PR lto/45721
15014 PR lto/45375
15015 * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
15016 (symbol_alias_set_destroy, symbol_alias_set_contains,
15017 propagate_aliases_backward): Declare.
15018 * lto-streamer-out.c (struct sets): New sturcture.
15019 (trivally_defined_alias): New function.
15020 (output_alias_pair_p): Rewrite.
15021 (output_unreferenced_globals): Fix output of alias pairs.
15022 (produce_symtab): Likewise.
15023 * ipa.c (function_and_variable_visibility): Set weak alias destination
15024 as needed in lto.
15025 * varasm.c (symbol_alias_set_t): Remove.
15026 (symbol_alias_set_destroy): Export.
15027 (propagate_aliases_forward, propagate_aliases_backward): New functions
15028 based on ...
15029 (compute_visible_aliases): ... this one; remove.
15030 (trivially_visible_alias): New
15031 (trivially_defined_alias): New.
15032 (remove_unreachable_alias_pairs): Rewrite.
15033 (finish_aliases_1): Reorganize code checking if alias is defined.
15034 * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
15035 in LTO mode.
15036
1b248907
RG
150372011-01-11 Richard Guenther <rguenther@suse.de>
15038
15039 PR tree-optimization/46076
15040 * tree-ssa.c (useless_type_conversion_p): Conversions from
15041 unprototyped to empty argument list function types are useless.
15042
b1923f0a
RG
150432011-01-11 Richard Guenther <rguenther@suse.de>
15044
15045 PR middle-end/45235
15046 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
15047 volatile MEMs as MEM_READONLY_P.
15048
e98965af
RG
150492011-01-11 Richard Guenther <rguenther@suse.de>
15050
15051 PR tree-optimization/47239
15052 * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
15053
9f9ca914
JL
150542011-01-11 Jeff Law <law@redhat.com>
15055
1ee3ea05 15056 PR tree-optimization/47086
9f9ca914
JL
15057 * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
15058 IVs from statements that might throw.
15059
345fdcb7
JH
150602011-01-10 Jan Hubicka <jh@suse.cz>
15061
15062 PR lto/45375
15063 * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
15064
c459c97b
JH
150652011-01-10 Jan Hubicka <jh@suse.cz>
15066
15067 PR lto/45375
15068 * profile.c (read_profile_edge_counts): Ignore profile inconistency
15069 when correcting profile.
15070
06c9eb51
JH
150712011-01-10 Jan Hubicka <jh@suse.cz>
15072
15073 PR lto/46083
15074 * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
15075 DECL_FINI_PRIORITY.
15076 * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
15077 Restore DECL_FINI_PRIORITY.
15078
ae9fd815
RW
150792011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
15080
15081 * doc/gimple.texi: Fix quoting of multi-word return values in
15082 @deftypefn statements. Ensure presence of return value. Wrap
15083 overlong @deftypefn lines.
15084 (is_gimple_operand, is_gimple_min_invariant_address): Remove
15085 descriptions of removed functions.
15086 * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
15087 of multi-word return value in @deftypefn statement.
15088
0ecb4a7c
RW
150892011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
15090
15091 * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
15092 (Conditional Expressions, Logical Operators)
15093 (Statement and operand traversals): Do not indent smallexample
15094 code. Fix duplicate function argument in example.
15095
2e5e346d
JL
150962011-01-10 Jeff Law <law@redhat.com>
15097
1ee3ea05 15098 PR tree-optimization/47141
2e5e346d
JL
15099 * ipa-split.c (split_function): Handle case where we are
15100 returning a value and the return block has a virtual operand phi.
15101
cf9712cc
JH
151022011-01-10 Jan Hubicka <jh@suse.cz>
15103
1c3ba85b 15104 PR tree-optimization/47234
cf9712cc
JH
15105 * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
15106 (pass_feedback_split_functions): Declare.
15107 * passes.c (init_optimization_passes): Add ipa-split as subpass of
15108 tree-profile.
15109 * ipa-split.c (gate_split_functions): Update comments; disable
15110 split-functions for profile_arc_flag and branch_probabilities.
15111 (gate_feedback_split_functions): New function.
15112 (execute_feedback_split_functions): New function.
15113 (pass_feedback_split_functions): New global var.
15114
94cd932c
L
151152011-01-10 H.J. Lu <hongjiu.lu@intel.com>
15116
15117 PR lto/46760
15118 * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
15119 calling gimple_call_set_cannot_inline.
15120
fbbfcaf1
IS
151212011-01-10 Iain Sandoe <iains@gcc.gnu.org>
15122
15123 * config/darwin-sections.def: Remove unused section.
15124
d06865bf
DK
151252011-01-10 Dave Korn <dave.korn.cygwin@gmail.com>
15126
15127 PR c++/47218
15128 * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
15129
96bbfbac
NP
151302011-01-09 Nicola Pero <nicola.pero@meta-innovation.com>
15131
15132 PR objc/47232
15133 * c-parser.c (c_parser_declaration_or_fndef): Improved
15134 error message.
15135
1ba6516f
KT
151362011-01-09 Kai Tietz <kai.tietz@onevision.com>
15137
15138 * config/i386/winnt.c (i386_pe_start_function): Make sure
15139 to switch back to function's section.
15140
0c5d770e
IS
151412011-01-09 Iain Sandoe <iains@gcc.gnu.org>
15142
15143 PR gcc/46902
15144 PR testsuite/46912
15145 * plugin.c: Move include of dlfcn.h from here...
15146 * system.h: ... to here.
15147
151482011-01-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4ee1aa2a
RW
15149
15150 * doc/cpp.texi (C++ Named Operators): Fix markup for header
15151 file name.
15152 * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
15153 two extra empty pages in PDF output.
15154
046608a3
NP
151552011-01-08 Nicola Pero <nicola.pero@meta-innovation.com>
15156
15157 PR objc/47078
15158 * c-parser.c (c_parser_objc_type_name): If the type is unknown,
15159 for error recovery purposes behave as if it was not specified so
15160 that the default type is usd.
15161
8cb114b9
JH
151622011-01-07 Jan Hubicka <jh@suse.cz>
15163
15164 PR tree-optmization/46469
15165 * ipa.c (function_and_variable_visibility): Clear needed flags on
15166 nodes with external decls; handle weakrefs merging correctly.
15167
b294a75e
JM
151682011-01-07 Joseph Myers <joseph@codesourcery.com>
15169
15170 * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
15171 not false.
15172
96bdf9b4
JH
151732011-01-07 Jan Hubicka <jh@suse.cz>
15174
f60c2554 15175 * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
96bdf9b4
JH
15176 and no longer claim that gold is required for linker plugin.
15177 * configure: Regenerate.
15178 * gcc.c (PLUGIN_COND): New macro.
15179 (LINK_COMMAND_SPEC): Use it.
15180 (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
15181 * config.in (HAVE_LTO_PLUGIN): New.
15182 * configure.ac (--with-lto-plugin): New parameter; autodetect
15183 HAVE_LTO_PLUGIN.
15184
17afc0fe
JH
151852011-01-07 Jan Hubicka <jh@suse.cz>
15186
15187 PR tree-optimization/46367
15188 * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
15189 when we can update original.
15190 (cgraph_mark_inline_edge): Sanity check.
15191 * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
15192
d4c48c0f
UW
151932011-01-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15194
15195 * config/spu/spu.h (ASM_COMMENT_START): Define.
15196
96f5b137
L
151972011-01-07 H.J. Lu <hongjiu.lu@intel.com>
15198
15199 PR driver/42445
15200 * gcc.c (%>S): New.
15201 (SWITCH_KEEP_FOR_GCC): Likewise.
15202 (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
15203 (do_spec_1): Handle "%>".
15204
15205 * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
15206
c6a8f6de
JJ
152072011-01-07 Jakub Jelinek <jakub@redhat.com>
15208
c21bbd7a
JJ
15209 PR target/47201
15210 * config/i386/i386.c (ix86_delegitimize_address): If
15211 simplify_gen_subreg fails, return orig_x.
15212
c6a8f6de
JJ
15213 PR bootstrap/47187
15214 * value-prof.c (gimple_stringop_fixed_value): Handle
15215 lhs of the call properly.
15216
fe95fbf9
JH
152172011-01-07 Jan Hubicka <jh@suse.cz>
15218
15219 PR lto/45375
15220 * lto-opt.c (lto_reissue_options): Set flag_shlib.
15221
14d11d40
IS
152222011-01-07 Iain Sandoe <iains@gcc.gnu.org>
15223
72e961c8
EB
15224 * target.def (function_switched_text_sections): New hook.
15225 * doc/tm.texi: Regenerated.
15226 * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14d11d40 15227 * final.c (default_function_switched_text_sections): New.
72e961c8
EB
15228 (final_scan_insn): Call function_switched_text_sections when a
15229 mid-function section change occurs.
14d11d40 15230 * output.h (default_function_switched_text_sections): Declare.
72e961c8
EB
15231 * config/darwin-protos.h (darwin_function_switched_text_sections):
15232 Likewise.
14d11d40 15233 * config/darwin.c (darwin_function_switched_text_sections): New.
72e961c8 15234 * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14d11d40 15235
0b764288
IS
152362011-01-07 Iain Sandoe <iains@gcc.gnu.org>
15237
15238 * dwarf2out.c (gen_subprogram_die): Add pubnames with code ranges for
15239 DWARF >= 3. Add pubnames for the primary section and a reduced DIE for
15240 the secondary code fragment when outputting for DWARF == 2.
15241
2ac6bb04
AS
152422011-01-07 Anatoly Sokolov <aesok@post.ru>
15243
15244 * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
15245 * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
15246 Remove.
15247 * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
15248 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
15249
9f82de11
EB
152502011-01-06 Eric Botcazou <ebotcazou@adacore.com>
15251
15252 PR debug/46704
280d9630
EB
15253 * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
15254 when it is not empty.
9f82de11
EB
15255
152562011-01-06 Changpeng Fang <changpeng.fang@amd.com>
14b52538 15257
1ed72abf 15258 Bobcat Enablement
14b52538 15259 * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
1ed72abf 15260 (case ${target}): Add btver1.
14b52538 15261 * config/i386/driver-i386.c (host_detect_local_cpu): Let
1ed72abf 15262 -march=native recognize btver1 processors.
14b52538 15263 * config/i386/i386-c.c (ix86_target_macros_internal): Add
1ed72abf 15264 btver1 def_and_undef
14b52538 15265 * config/i386/i386.c (struct processor_costs btver1_cost): New
1ed72abf
CF
15266 btver1 cost table.
15267 (m_BTVER1): New definition.
15268 (m_AMD_MULTIPLE): Includes m_BTVER1.
15269 (initial_ix86_tune_features): Add btver1 tune.
15270 (processor_target_table): Add btver1 entry.
15271 (static const char *const cpu_names): Add btver1 entry.
15272 (software_prefetching_beneficial_p): Add btver1.
15273 (ix86_option_override_internal): Add btver1 instruction sets.
15274 (ix86_issue_rate): Add btver1.
15275 (ix86_adjust_cost): Add btver1.
14b52538 15276 * config/i386/i386.h (TARGET_BTVER1): New definition.
1ed72abf
CF
15277 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
15278 (enum processor_type): Add PROCESSOR_BTVER1.
14b52538
CF
15279 * config/i386/i386.md (define_attr "cpu"): Add btver1.
15280
e1a973d8
RO
152812011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15282
15283 PR target/43309
15284 * config/i386/i386.c (legitimize_tls_address)
15285 <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
15286 * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
15287 (tls_initial_exec_64_sun): New pattern.
15288
c73f67c5
GP
152892011-01-06 Gerald Pfeifer <gerald@pfeifer.com>
15290
15291 * doc/invoke.texi (Overall Options): Improve wording and markup
15292 of the description of -wrapper.
15293
bc4c6f9c
JM
152942011-01-06 Joseph Myers <joseph@codesourcery.com>
15295
15296 * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
15297 rdynamic, threads): New Driver options.
15298
adb75db0
RO
152992011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15300
15301 PR target/38118
15302 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
15303 if coming from .tdata.
15304 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
15305
402c1cb4
JH
153062011-01-06 Jan Hubicka <jh@suse.cz>
15307
15308 PR lto/47188
15309 * collect2.c (main): Do not enable LTOmode when plugin is active.
15310
a4da6485
RO
153112011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15312
15313 PR other/45915
15314 * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
15315 --version output if supported.
15316 * configure: Regenerate.
15317
028dbdf4
JM
153182011-01-06 Joseph Myers <joseph@codesourcery.com>
15319
15320 * config/linux-android.opt (tno-android-cc, tno-android-ld): New
15321 Driver options.
15322
dfe776dd
JJ
153232011-01-06 Jakub Jelinek <jakub@redhat.com>
15324
15325 PR c/47150
15326 * c-convert.c (convert): When converting a complex expression
15327 other than COMPLEX_EXPR to a different complex type, ensure
15328 c_save_expr is called instead of save_expr, unless in_late_binary_op.
15329 * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
15330 when converting COMPLEX_TYPE.
15331
210dedfe
IR
153322011-01-06 Ira Rosen <irar@il.ibm.com>
15333
15334 PR tree-optimization/47139
15335 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
15336 only the last reduction value is used outside the loop. Update
15337 documentation.
15338
cd33a412
JM
153392011-01-05 Joseph Myers <joseph@codesourcery.com>
15340
15341 * config/rtems.opt: New.
15342 * config.gcc (*-*-rtems*): Use rtems.opt.
15343
819edd94
CF
153442011-01-05 Changpeng Fang <changpeng.fang@amd.com>
15345
15346 * config/i386/i386.c (ix86_option_override_internal): Bulldozer
15347 processors do not support 3DNow instructions.
15348
dc242c4a
UW
153492011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15350
15351 * config/spu/spu.c (spu_option_override): Set parameter
15352 PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
15353
be286227
JH
153542011-01-05 Jan Hubicka <jh@suse.cz>
15355
15356 * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
15357 at the command line.
15358
644e637f
MJ
153592011-01-05 Martin Jambor <mjambor@suse.cz>
15360
15361 PR lto/47162
15362 * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
15363 deltas on streamed outgoing edges.
15364 (output_node_opt_summary): Output info for outgoing edges only when
15365 the node is in new parameter set.
15366 (output_cgraph_opt_summary): New parameter set, passed to the two
15367 aforementioned functions. Update its forward declaration and its
15368 callee too.
15369
7bd11157
TT
153702011-01-05 Tom Tromey <tromey@redhat.com>
15371
15372 * c-parser.c (c_parser_omp_atomic): Pass location of assignment
15373 operator to c_finish_omp_atomic.
15374 * c-typeck.c (lvalue_or_else): Add 'loc' argument.
15375 (build_unary_op): Update.
15376 (build_modify_expr): Update.
15377 (build_asm_expr): Update.
15378
f626b979
UW
153792011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15380
15381 * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
15382 newly inserted insns.
15383 (pad_bb): Likewise.
15384 (spu_emit_branch_hint): Likewise.
15385 (insert_hbrp_for_ilb_runout): Likewise.
15386 (spu_machine_dependent_reorg): Call df_finish_pass after
15387 schedule_insns returns.
15388
4c825c02
UW
153892011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15390
15391 * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
15392
5e9fba51
EB
153932011-01-05 Eric Botcazou <ebotcazou@adacore.com>
15394
15395 PR tree-optimization/47005
15396 * tree-sra.c (struct access): Add 'non_addressable' bit.
15397 (create_access): Set it for a DECL_NONADDRESSABLE_P field.
15398 (decide_one_param_reduction): Return 0 if the parameter is passed by
15399 reference and one of the accesses in the group is non_addressable.
15400
3ebb5ca6
EB
154012011-01-04 Eric Botcazou <ebotcazou@adacore.com>
15402
15403 PR tree-optimization/47056
15404 * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
15405 (mark_load): Likewise. Handle FUNCTION_DECL specially.
15406 (mark_store): Likewise. Pass STMT to ipa_record_reference.
15407
d5d4d14e
EB
154082011-01-04 Eric Botcazou <ebotcazou@adacore.com>
15409
15410 * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
15411 initializer. Skip view conversions from aggregate types.
15412
d996ef70
KT
154132011-01-04 Kai Tietz <kai.tietz@onevision.com>
15414
15415 PR bootstrap/47055
15416 * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
15417
509d65dd 154182011-01-04 Philipp Thomas <pth@suse.de>
017096ca
PT
15419
15420 * config/microblaze/microbalse.opt (mxl-float-convert): Fix
15421 obvious typo.
15422
55c623b5
UW
154232011-01-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15424
15425 * function.c (thread_prologue_and_epilogue_insns): Do not crash
15426 on empty epilogue sequences.
15427
b98d6b35
JM
154282011-01-04 Joseph Myers <joseph@codesourcery.com>
15429
15430 * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
15431 non-static): New Driver options.
15432
a0d43bac
JZ
154332011-01-04 Jie Zhang <jie@codesourcery.com>
15434
15435 PR driver/47137
15436 * gcc.c (default_compilers[]): Set combinable field to 0
15437 for all assembly languages.
15438
2b18eb32
MX
154392011-01-04 Mingjie Xing <mingjie.xing@gmail.com>
15440
15441 * config/mips/loongson3a.md: New file.
15442 * config/mips/mips.md: Include loongson3a.md.
15443 * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
15444 TUNE_LOONGSON_3A.
15445
42a48c4f
EB
154462011-01-03 Eric Botcazou <ebotcazou@adacore.com>
15447
15448 PR middle-end/47017
15449 * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
15450 instead of convert_memory_address_addr_space on the base expression.
15451
9c1732c4
UW
154522011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15453
15454 * config/spu/spu.c (spu_option_override): Update error text
15455 for bad -march= / -mtune= values.
15456
aa474365
UW
154572011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15458
15459 * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
15460 if branch-hint optimization will be performed.
15461
9766135b
JJ
154622011-01-03 Jakub Jelinek <jakub@redhat.com>
15463
371556ee
JJ
15464 PR tree-optimization/47148
15465 * ipa-split.c (split_function): Convert arguments to
15466 DECL_ARG_TYPE if possible.
15467
1ac12fa2
JJ
15468 PR tree-optimization/47155
15469 * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
15470 when computing uns.
15471
9766135b
JJ
15472 PR rtl-optimization/47157
15473 * combine.c (try_combine): If undobuf.other_insn becomes
15474 (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
15475 and set *new_direct_jump_p too.
15476
f4a2e571
SP
154772011-01-03 Sebastian Pop <sebastian.pop@amd.com>
15478
15479 PR tree-optimization/47021
15480 * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
15481
9f8e43c0
JJ
154822011-01-03 Jakub Jelinek <jakub@redhat.com>
15483
15484 * gcc.c (process_command): Update copyright notice dates.
15485 * gcov.c (print_version): Likewise.
15486 * gcov-dump.c (print_version): Likewise.
15487 * mips-tfile.c (main): Likewise.
15488 * mips-tdump.c (main): Likewise.
15489
1a2e38f3
MJ
154902011-01-03 Martin Jambor <mjambor@suse.cz>
15491
15492 PR tree-optimization/46801
15493 * tree-sra.c (type_internals_preclude_sra_p): Check whether
15494 aggregate fields start at byte boundary instead of the bit-field flag.
15495
56b721c5
L
154962011-01-03 H.J. Lu <hongjiu.lu@intel.com>
15497
15498 PR driver/47137
15499 * gcc.c (main): Revert revision 168407.
15500
839d549b
MJ
155012011-01-03 Martin Jambor <mjambor@suse.cz>
15502
15503 * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
15504
4ce99a20 155052011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2fa6eeff
UW
15506
15507 * tree-vect-generic.c (expand_vector_operations_1): When using vector/
15508 vector optab to expand vector/scalar shift, update gimple to vector.
15509
76df0ae6
MJ
155102011-01-03 Martin Jambor <mjambor@suse.cz>
15511
15512 * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
15513 a thunk.
15514
ce47fda3
MJ
155152011-01-03 Martin Jambor <mjambor@suse.cz>
15516
15517 PR tree-optimization/46984
15518 * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
15519 HOST_WIDE_INT.
15520 (cgraph_create_indirect_edge): Fixed line length.
15521 (cgraph_indirect_call_info): Declare.
15522 (cgraph_make_edge_direct) Update declaration.
15523 * cgraph.c (cgraph_allocate_init_indirect_info): New function.
15524 (cgraph_create_indirect_edge): Use it.
15525 (cgraph_make_edge_direct): Made delta HOST_WIDE_INT. Updated all
15526 callees.
15527 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
15528 the new thunk_delta representation.
15529 * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
15530 HOST_WIDE_INT.
15531 (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
15532 (ipa_read_indirect_edge_info): Likewise.
15533 * lto-cgraph.c (output_edge_opt_summary): New function.
15534 (output_node_opt_summary): Call it on all outgoing edges.
15535 (input_edge_opt_summary): New function.
15536 (input_node_opt_summary): Call it on all outgoing edges.
15537
1e67fa1f
L
155382011-01-02 H.J. Lu <hongjiu.lu@intel.com>
15539
15540 PR driver/47137
15541 * gcc.c (main): Don't check have_o when settting combine_inputs.
15542
6656b2ac
EB
155432011-01-02 Eric Botcazou <ebotcazou@adacore.com>
15544
15545 * regrename.c: Add general comment describing the pass.
15546 (struct du_head): Remove 'length' field.
15547 (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
15548 (regrename_optimize): Do not sort chains. Rework comments, add others.
15549 Force renaming to the preferred class (if any) in the first pass and do
15550 not consider registers that belong to it in the second pass.
15551 (create_new_chain): Do not set 'length' field.
15552 (scan_rtx_reg): Likewise.
15553
bc470c24
JJ
155542011-01-02 Jakub Jelinek <jakub@redhat.com>
15555
4e996296
JJ
15556 PR tree-optimization/47140
15557 * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
15558 TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
15559 to bit_value_binop.
15560
bc470c24 15561 PR rtl-optimization/47028
6656b2ac
EB
15562 * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
15563 parm_birth_insn instead of at the beginning of first bb.
bc470c24 15564
5af62fcd 155652011-01-02 Mingjie Xing <mingjie.xing@gmail.com>
0d52f2a8
MX
15566
15567 * doc/generic.texi: Remove duplicated "@subsubsection Statements".
15568 Remove the word "see" before "@pxref".
15569 * doc/rtl.texi: Remove the word "see" before "@pxref".
15570
0e20c89f
JH
155712011-01-01 Jan Hubicka <jh@suse.cz>
15572
6656b2ac
EB
15573 * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
15574 memory.
0e20c89f 15575
220e83ca
KT
155762011-01-01 Kai Tietz <kai.tietz@onevision.com>
15577
15578 PR target/38662
6656b2ac 15579 * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
220e83ca 15580
ad41bd84 15581\f
797103eb 15582Copyright (C) 2011 Free Software Foundation, Inc.
ad41bd84
JM
15583
15584Copying and distribution of this file, with or without modification,
15585are permitted in any medium without royalty provided the copyright
15586notice and this notice are preserved.