]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
Daily bump.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
f03a5402
JM
12011-05-25 Jason Merrill <jason@redhat.com>
2
3 * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
4
c497c412
UB
52011-05-25 Uros Bizjak <ubizjak@gmail.com>
6
7 * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
8
e470affe
L
92011-05-25 H.J. Lu <hongjiu.lu@intel.com>
10
11 * config/i386/i386.md (*movqi_extv_1)): Put back
12 "register_operand" check in "type" calculation.
13 (*movqi_extzv_2): Likewise.
14
6c81b2bc
L
152011-05-25 H.J. Lu <hongjiu.lu@intel.com>
16
c497c412 17 * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
6c81b2bc 18
0c007eb2
BS
192011-05-25 Bernd Schmidt <bernds@codesourcery.com>
20
21 PR bootstrap/49160
22 * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
23 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
24 __divxc3, __divtc3): Wrap definitions in #ifndef.
25
521ca78e
L
262011-05-25 H.J. Lu <hongjiu.lu@intel.com>
27
28 PR target/49142
29 * config/i386/i386.md (*movqi_extv_1_rex64): Remove
30 "register_operand" check and replace q_regs_operand with
31 QIreg_operand in "type" calculation.
32 (*movqi_extv_1): Likewise.
33 (*movqi_extzv_2_rex64): Likewise.
34 (*movqi_extzv_2): Likewise.
35
36 * config/i386/predicates.md (QIreg_operand): New.
37
29f8b844
RG
382011-05-25 Richard Guenther <rguenther@suse.de>
39
40 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
41 type-based offset disambiguation, streamline MEM_REF and
42 TARGET_MEM_REF handling.
43
74838de3
L
442011-05-25 H.J. Lu <hongjiu.lu@intel.com>
45
46 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
47 (bdesc_special_args): Add pause intrinsic.
48
49 * config/i386/i386.md (UNSPEC_PAUSE): New.
50 (pause): Likewise.
51 (*pause): Likewise.
52 * config/i386/ia32intrin.h (__pause): Likewise.
53
54 * doc/extend.texi (X86 Built-in Functions): Add documentation for
55 pause intrinsic.
56
d24ad7d6
BS
572011-05-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
58
59 PR tree-optimization/46728
60 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
61 (execute_cse_sincos): Add switch case for BUILT_IN_POW.
c497c412 62
d9f8303f
NF
632011-05-25 Nathan Froyd <froydnj@codesourcery.com>
64
65 * tree.h (struct tree_exp): Inherit from struct tree_typed.
66 * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
67 instead of TS_COMMON.
68
cdbf4541
BS
692011-05-25 Bernd Schmidt <bernds@codesourcery.com>
70
71 * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
72 LIBGCC2_GNU_PREFIX is defined.
73 (__N): New macro.
74 (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
75 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
76 __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
77 __clz_tab): Define using __N.
78 (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
79 COMPAT_SIMODE_TRAPPING_ARITHMETIC.
80 * target.def (libfunc_gnu_prefix): New hook.
81 * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
82 (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
83 * doc/tm.texi: Regenerate.
84 * system.h (LIBGCC2_GNU_PREFIX): Poison.
85 * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
86 account.
87 (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
88 (init_optabs): Likewise for the bswap libfuncs.
89 * tree.c (build_common_builtin_nodes): Likewise for complex multiply
90 and divide.
91 * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
92 * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
93 * libgcc-std.ver: Remove.
94 * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
95 * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
96 libgcc-std.ver.
97 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
98 * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
99 * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
100 * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
101 * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
102 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
103 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
104 * config/fixed-bit.h (FIXED_OP): Define differently depending on
105 LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
106 (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
107
f242c0a5
JH
1082011-05-25 Jan Hubicka <jh@suse.cz>
109
110 * lto-streamer-out.c (output_record_start): Use lto_output_enum
111 (lto_output_tree): Use output_record_start.
112 * lto-streamer-in.c (input_record_start): Use lto_input_enum
113 (lto_get_pickled_tree): Use input_record_start.
114 * lto-section-in.c (lto_section_overrun): Turn into fatal error.
115 (lto_value_range_error): New function.
116 * lto-streamer.h (lto_value_range_error): Declare.
117 (lto_output_int_in_range, lto_input_int_in_range): New functions.
118 (lto_output_enum, lto_input_enum): New macros.
119
a11e0df4
EB
1202011-05-25 Eric Botcazou <ebotcazou@adacore.com>
121
122 * common.opt (flag_stack_usage_info): New variable.
123 (-Wstack-usage): New option.
124 * doc/invoke.texi (Warning options): Document -Wstack-usage.
125 * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
126 <OPT_fstack_usage>: Likewise.
127 * toplev.c (output_stack_usage): Handle -Wstack-usage.
128 * calls.c (expand_call): Test flag_stack_usage_info variable instead
129 of flag_stack_usage.
130 (emit_library_call_value_1): Likewise.
131 * explow.c (allocate_dynamic_stack_space): Likewise.
132 * function.c (instantiate_virtual_regs ): Likewise.
133 (prepare_function_start): Likewise.
134 (rest_of_handle_thread_prologue_and_epilogue): Likewise.
135 * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
136 * config/arm/arm.c (arm_expand_prologue): Likewise.
137 (thumb1_expand_prologue): Likewise.
138 * config/avr/avr.c (expand_prologue): Likewise.
139 * config/i386/i386.c (ix86_expand_prologue): Likewise.
140 * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
141 * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
142 * config/mips/mips.c (mips_expand_prologue): Likewise.
143 * config/pa/pa.c (hppa_expand_prologue): Likewise.
144 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
145 * config/s390/s390.c (s390_emit_prologue): Likewise.
146 * config/sh/sh.c (sh_expand_prologue): Likewise.
147 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
148 * config/spu/spu.c (spu_expand_prologue): Likewise.
149
e7cfe241
RG
1502011-05-25 Richard Guenther <rguenther@suse.de>
151
152 * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
153 (gimple_canonical_types_compatible_p): Likewise.
154
c5235f4c
JH
1552011-05-25 Jan Hubicka <jh@suse.cz>
156
157 PR middle-end/49062
158 * ipa.c (function_and_variable_visibility): Only add to same
159 comdat group list if DECL_ONE_ONLY.
160
8242a0f6
AB
1612011-05-25 Andrey Belevantsev <abel@ispras.ru>
162
163 PR rtl-optimization/49014
164 * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
165
642a011d
JJ
1662011-05-25 Jakub Jelinek <jakub@redhat.com>
167
168 PR target/49128
169 * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
170
30a435d8
VM
1712011-05-24 Vladimir Makarov <vmakarov@redhat.com>
172
173 PR rtl-optimization/48757
174 * ira-build.c (loop_with_eh_edge_p): Rename to
175 loop_with_complex_edge_p, check edges on complexity, make function
176 conditional.
177 (mark_loops_for_removal): Make call of loop_with_complex_edge_p
178 conditional.
179
24d1bbc7
EB
1802011-05-24 Eric Botcazou <ebotcazou@adacore.com>
181
182 * config/sparc/sparc.c (sparc_option_override): If not set by the user,
183 force flag_ira_share_save_slots to 0.
184
65773087
EB
1852011-05-24 Eric Botcazou <ebotcazou@adacore.com>
186
187 * var-tracking.c (compute_cfa_pointer): Adjust head comment.
188 (vt_initialize): Set PROLOGUE_BB unconditionally.
189 Add block comment about CFA_BASE_RTX machinery.
190 Reset FP_CFA_OFFSET to -1 on all invalid paths.
191 Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
192
4e26ba90
NP
1932011-05-24 Nicola Pero <nicola.pero@meta-innovation.com>
194
195 PR objc/48187
196 * c-parser.c (c_parser_objc_class_instance_variables): More robust
197 parsing of syntax error in ObjC instance variable lists. In
198 particular, avoid an infinite loop if there is a stray ']'.
199 Updated error message.
200
936fd13c
ILT
2012011-05-24 Ian Lance Taylor <iant@google.com>
202
203 * godump.c (go_define): Don't accept a string immediately after
204 another operand.
205
f17333e3
ILT
2062011-05-24 Ian Lance Taylor <iant@google.com>
207
208 * godump.c (struct godump_container): Add invalid_hash field.
209 (go_format_type): Return false if type is found in invalid_hash.
210 (go_output_typedef): Add invalid type to invalid_hash.
211 (go_finish): Create and delete invalid_hash.
212
d24ad7d6 2132011-05-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
c497c412 214
78be79d5
BS
215 PR tree-optimization/46728
216 * tree-ssa-math-opts.c (powi_table): New.
217 (powi_lookup_cost): New.
218 (powi_cost): New.
219 (powi_as_mults_1): New.
220 (powi_as_mults): New.
221 (gimple_expand_builtin_powi): New.
222 (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
223 (gate_cse_sincos): Remove sincos/cexp restriction.
f17333e3 224
caee412b
RO
2252011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
226
227 PR target/3746
228 * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
229 mips-tdump native.
230 * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
231 * mips-tdump.c: Likewise.
232
5eed4f27
L
2332011-05-24 H.J. Lu <hongjiu.lu@intel.com>
234
235 PR target/49128
236 * config/i386/driver-i386.c (host_detect_local_cpu): Always
237 add -mno-XXX. Handle FMA.
238
8c5fdaae
VM
2392011-05-24 Vladimir Makarov <vmakarov@redhat.com>
240
241 PR rtl-optimization/48633
242 * ira-build.c (loop_with_eh_edge_p): New function.
243 (mark_loops_for_removal): Use it.
244
2452011-05-24 Vladimir Makarov <vmakarov@redhat.com>
113a5be6
VM
246
247 PR rtl-optimization/48971
248 * ira.c (setup_pressure_classes): Don't check register move cost
249 for classes with one registers. Don't add pressure class if there
250 is a pressure class with the same available hard registers.
251 Check contains_reg_of_mode. Fix a typo in collecting
252 temp_hard_regset. Ignore hard registers not belonging to a class.
253
df1f7315
UB
2542011-05-24 Uros Bizjak <ubizjak@gmail.com>
255
256 PR target/49133
257 * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
258
ee0cb37c
EB
2592011-05-24 Eric Botcazou <ebotcazou@adacore.com>
260 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
261
262 PR gcov-profile/48845
263 * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
264
6a20ce76
RG
2652011-05-24 Richard Guenther <rguenther@suse.de>
266
267 * gimple.c (compare_type_names_p): Remove for_completion_p arg.
268 (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
269 (gimple_types_compatible_p_1): Adjust.
270 (iterative_hash_canonical_type): Do not bother about complete vs.
271 incomplete types.
272 (gimple_canonical_types_compatible_p): Likewise.
273
2fcb858c
RO
2742011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
275
276 * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
277
96d91dcf
RG
2782011-05-24 Richard Guenther <rguenther@suse.de>
279
280 PR bootstrap/49078
281 * gimple.c (gimple_register_canonical_type): Revert
282 previous change.
283 * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
284 does not for a tree for the case where it matters. Cache
285 pointer-type alias-sets.
286
1ed1641d
JM
2872011-05-24 Joseph Myers <joseph@codesourcery.com>
288
289 * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
290 (OBJS): Remove options.o, opts-common.o and prefix.o.
291 (OBJS-libcommon-target): New.
292 (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
293 (BACKEND): Include libcommon-target.a.
294 (MOSTLYCLEANFILES): Include libcommon-target.a.
295 (libcommon-target.a): New.
296 (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
297 prefix.o.
298
57dfdff0
JM
2992011-05-23 Joseph Myers <joseph@codesourcery.com>
300
301 * optc-save-gen.awk: New. Based on optc-gen.awk. Don't generate
302 parts of output shared with the driver.
303 * optc-gen.awk: Don't generate parts of output not shared with the
304 driver.
305 * opth-gen.awk: Remove GCC_DRIVER conditionals.
306 * doc/options.texi (SourcerInclude): Mention options-save.c.
307 * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
308 (OBJS): Add options-save.o.
309 (options-save.c, options-save.o): New.
310 (options.o): Update dependencies.
311 (gcc-options.o): Remove.
312 (mostlyclean): Remove options-save.c.
313
0e0d82a7
JJ
3142011-05-23 Jakub Jelinek <jakub@redhat.com>
315
9166988f
JJ
316 PR debug/49032
317 * dbxout.c: Include cgraph.h.
318 (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
319 and without value expr, return NULL if no varpool node exists for
320 it or if it is not needed.
321 * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
322
0e0d82a7
JJ
323 PR c/49120
324 * c-decl.c (start_decl): Convert expr to void_type_node.
325
65712d5c
RS
3262011-05-23 Richard Sandiford <rdsandiford@googlemail.com>
327
328 PR rtl-optimization/48826
329 * emit-rtl.c (try_split): When splitting a call that is followed
330 by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
331
9025085e
JJ
3322011-05-23 Jakub Jelinek <jakub@redhat.com>
333
334 * cfgexpand.c (expand_debug_expr): For unused non-addressable
335 parameters passed in memory prefer using DECL_INCOMING_RTL over
336 the pseudos it will be copied into.
337
34a061be
L
3382011-05-23 H.J. Lu <hongjiu.lu@intel.com>
339
340 PR target/47315
341 * config/i386/i386.c (ix86_option_override_internal): Save the
342 initial options after checking vzeroupper.
343
c375a3a4
DL
3442011-05-23 David Li <davidxl@google.com>
345
346 PR tree-optimization/48988
347 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
348 Initialize has_valid_pred for each pred chain.
349
e1caba18
RG
3502011-05-23 Richard Guenther <rguenther@suse.de>
351
352 * gimple.c (gimple_types_compatible_p_1): Always compare type names.
353 (iterative_hash_gimple_type): Always hash type names.
354
dde05067
NF
3552011-05-23 Nathan Froyd <froydnj@codesourcery.com>
356
357 * c-typeck.c (build_function_call_vec): Tweak call to
358 check_function_arguments.
359
094f6ab3
RG
3602011-05-23 Richard Guenther <rguenther@suse.de>
361
362 PR tree-optimization/49115
363 * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
364 is not necessarily carried out, do not claim it kills the ref.
365 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
366
9a9822e1
RG
3672011-05-23 Richard Guenther <rguenther@suse.de>
368
369 PR middle-end/15419
370 * builtins.c (fold_builtin_memory_op): Be less restrictive about
371 what pointer types we accept for folding.
372
c8028650
RO
3732011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
374
375 * gthr-gnat.c: Remove.
376 * gthr-gnat.h: Remove.
377 * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
378 * config/t-freebsd (LIB2ADDEH): Likewise.
379 * config/t-linux (LIB2ADDEH): Likewise.
380 * config/t-sol2 (LIB2ADDEH): Likewise.
381 * config/ia64/t-vms (LIB2ADDEH): Likewise.
382 * configure.ac (target_thread_file): Remove gnat handling.
383 * configure: Regenerate.
384 * doc/install.texi (Configuration, --enable-threads): Remove gnat.
385
15882fe9
TG
3862011-05-23 Tristan Gingold <gingold@adacore.com>
387 Eric Botcazou <ebotcazou@adacore.com>
388
389 * gcov.c (create_file_names): If no object directory is specified,
390 keep the directory of the file.
391
da90c957
RO
3922011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
393
394 * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
395 * configure: Regenerate.
396
7bba408b
JJ
3972011-05-23 Jakub Jelinek <jakub@redhat.com>
398
399 PR middle-end/48973
400 * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
401 failed and the comparison has a single bit signed type, use
402 constm1_rtx instead of const1_rtx for true value.
403 (do_store_flag): If ops->type is single bit signed type, disable
404 signel bit test optimization and pass -1 instead of 1 as last
405 parameter to emit_store_flag_force.
406
bc69f7ff
TV
4072011-05-23 Tom de Vries <tom@codesourcery.com>
408
409 PR target/45098
410 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
411 function.
412 (infer_loop_bounds_from_undefined): Use new function.
413
29cedf8e
RS
4142011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
415
416 * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
417 (ASM_SPEC): Add a -O* option here. Pass -O0 for -noasmopt,
418 -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
419 and -O0 otherwise.
420 (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
421
afe8b6ec
EB
4222011-05-22 Eric Botcazou <ebotcazou@adacore.com>
423
424 * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
425 (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
426 returns true.
427
872dab53
RS
4282011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
429
430 * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
431
145f6c5b
EB
4322011-05-22 Eric Botcazou <ebotcazou@adacore.com>
433
434 * config/sparc/sparc.c (sparc_delegitimize_address): Handle
435 UNSPEC_MOVE_PIC pattern.
436
8ac79835
EB
4372011-05-22 Eric Botcazou <ebotcazou@adacore.com>
438
439 * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
440 (sparc-*-rtems*): Likewise.
441 (sparc64-*-elf*): Likewise.
442 (sparc64-*-rtems*): Likewise.
443 (sparc*-*-solaris2*): Likewise. Remove crti.o crtn.o extra parts.
444 * config/sparc/t-crtin: New file.
445 * config/sparc/t-sol2 (crti.o): Delete rule.
446 (crtn.o): Likewise.
447 * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
448 * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
449 * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
450 (ENDFILE_SPEC): Add crtn.o.
451
5fb43dd8
TV
4522011-05-22 Tom de Vries <tom@codesourcery.com>
453
454 PR middle-end/48689
455 * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
456 CODE_CONTAINS_STRUCT (TS_COMMON).
457
ccb1b17b
JJ
4582011-05-22 Jakub Jelinek <jakub@redhat.com>
459
460 PR middle-end/49029
461 * expmed.c (extract_fixed_bit_field): Test whether target can be used
462 only after deciding which mode to use.
463
50ad7db2
TV
4642011-05-22 Tom de Vries <tom@codesourcery.com>
465
466 PR target/45098
dc0a3366 467 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
50ad7db2
TV
468 for call to get_shiftadd_cost.
469
ef230b38
UB
4702011-05-22 Uros Bizjak <ubizjak@gmail.com>
471
472 PR target/49104
473 * config/i386/cpuid.h (bit_MMXEXT): New define.
474
15f072f9
NC
4752011-05-22 Nick Clifton <nickc@redhat.com>
476
477 * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
478 initialisation of non-existant args[2] element. Use args[] array
479 not arg[] array to pass arguments to build_function_type_list.
480
e38fdc94
IR
4812011-05-22 Ira Rosen <ira.rosen@linaro.org>
482
483 PR tree-optimization/49087
ef230b38 484 * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
e38fdc94 485
5b018c65
JM
4862011-05-21 Jason Merrill <jason@redhat.com>
487
488 PR c++/49092
489 * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
490 static storage duration.
491
abd9a770
EB
4922011-05-21 Eric Botcazou <ebotcazou@adacore.com>
493
494 * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
495 frame pointer.
496
bd9a3248
EB
4972011-05-21 Eric Botcazou <ebotcazou@adacore.com>
498
499 * config/sparc/sparc.c (eligible_for_return_delay): Do not return
500 false if there are call-saved registers here...
501 (sparc_can_use_return_insn_p): ...but here instead.
502 (save_or_restore_regs): Fix thinko.
503 (sparc_expand_prologue): Use current_function_is_leaf.
504 (sparc_frame_pointer_required): Likewise.
505
a5dfec9a
NC
5062011-05-21 Nick Clifton <nickc@redhat.com>
507
508 PR target/49098
509 * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
510
555c3771
NP
5112011-05-21 Nicola Pero <nicola.pero@meta-innovation.com>
512
513 * gengtype.c (walk_type): Implemented "atomic" GTY option.
514 * doc/gty.texi (GTY Options): Document "atomic" GTY option.
515
86fa5de4
JM
5162011-05-21 Joseph Myers <joseph@codesourcery.com>
517
518 * opt-read.awk: New. Split out of optc-gen.awk and opth-gen.awk.
519 * optc-gen.awk: Move common code to opt-read.awk.
520 * opth-gen.awk: Likewise.
ef230b38 521 * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
86fa5de4 522
bce33ab2
NF
5232011-05-20 Nathan Froyd <froydnj@codesourcery.com>
524
525 * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
526
e6450c11
TV
5272011-05-20 Tom de Vries <tom@codesourcery.com>
528
529 PR target/45098
530 * tree-ssa-loop-ivopts.c: Include expmed.h.
531 (get_shiftadd_cost): New function.
532 (force_expr_to_var_cost): Declare forward. Use get_shiftadd_cost.
533
0e8b84ec
JJ
5342011-05-20 Jakub Jelinek <jakub@redhat.com>
535
536 PR bootstrap/49086
537 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
538 for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
539
946bdf67
JM
5402011-05-20 Joseph Myers <joseph@codesourcery.com>
541
542 * Makefile.in: Update comment referring to $(OBJS-common).
543
c53aafdf
ILT
5442011-05-20 Ian Lance Taylor <iant@google.com>
545
546 * godump.c (go_output_typedef): Put enum constants in the macro
547 hash table to avoid duplicate Go const definitions.
548
2691e6d7
JM
5492011-05-20 Joseph Myers <joseph@codesourcery.com>
550
551 * Makefile.in (LIBDEPS): Add libcommon.a.
552 (LIBS): Likewise.
553 (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
554 (OBJS-common): Remove diagnostic.o, input.o, intl.o,
555 pretty-print.o and version.o.
556 (OBJS-libcommon): New.
557 (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
558 (BACKEND): Add libcommon.a.
559 (MOSTLYCLEANFILES): Likewise.
560 (libcommon.a): New.
561 (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
562 (cpp$(exeext)): Likewise.
563 (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
564 pretty-print.o and input.o.
565 (lto-wrapper$(exeext)): Don't explicitly use intl.o.
566 (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
567 (errors.o): Remove.
568 (mips-tfile): Don't explicitly use version.o.
569 (mips-tdump): Likewise.
570 (gcov.o): Depend on $(DIAGNOSTIC_H).
571 (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
572 (GCOV_OBJS): Remove intl.o, version.o and errors.o.
573 (GCOV_DUMP_OBJS): Remove version.o and errors.o.
574 * gcov-dump.c: Include intl.h and diagnostic.h.
575 (main): Initialize diagnostics.
576 * gcov.c: Include diagnostic.h.
577 (fnotice): Remove.
578 (main): Initialize diagnostics.
579 * lto-wrapper.c: Include diagnostic.h.
580 (main): Initialize diagnostics.
581
252b3e8c
MM
5822011-05-20 Michael Matz <matz@suse.de>
583
584 * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
585
2ee36ba6
MM
5862011-05-20 Michael Matz <matz@suse.de>
587 Richard Guenther <rguenther@suse.de>
588
589 * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
590 use lto_streamer_cache_append directly instead of returning a VEC.
591 (preload_common_node): Remove.
592 (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
593 track seen nodes.
594 (lto_streamer_cache_create): Call lto_preload_common_nodes.
595
90ff582f
RG
5962011-05-20 Richard Guenther <rguenther@suse.de>
597
598 PR tree-optimization/49079
599 * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
600 MEM_REFs correctly for the trailing array access detection.
601 Special case constants the same way as decls for overall size
602 constraining.
603
3cda91d8
UB
6042011-05-20 Uros Bizjak <ubizjak@gmail.com>
605
606 * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
607 argument expansion.
608
6c66f733
JJ
6092011-05-20 Jakub Jelinek <jakub@redhat.com>
610
611 PR tree-optimization/49073
3cda91d8
UB
612 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
613 PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
6c66f733
JJ
614 * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
615
0ea80a16
RG
6162011-05-20 Richard Guenther <rguenther@suse.de>
617
618 PR middle-end/48849
619 * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
620 of pointer types the same way the middle-end does.
621
fb291a1e
RG
6222011-05-20 Richard Guenther <rguenther@suse.de>
623
3cda91d8
UB
624 * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
625 or pointer-to chains. Delay all fixup to uniquify_nodes.
fb291a1e 626
37cb25ed
QN
6272011-05-19 Quentin Neill <quentin.neill@amd.com>
628
629 * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
630 (fma4_fmaddsub): Likewise
631
a30726a4
JH
6322011-05-19 Jan Hubicka <jh@suse.cz>
633
634 * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
635 (GIMPLE_TYPE_PAIR_SIZE): New macro.
636 (type_pair_cache): New static var.
637 (lookup_type_pair): Use fixed sized custom hash; make inline.
638 (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
639 calls of lookup_type_pair.
640 (print_gimple_types_stats): Remove cache stats.
641 (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
642 and gtc_ob.
643
0955cf61
UB
6442011-05-19 Uros Bizjak <ubizjak@gmail.com>
645
646 * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
647 when TARGET_RDRND is active.
648 (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
649 Generate dummy SImode target register when target is NULL.
650
12d844c8
JM
6512011-05-19 Joseph Myers <joseph@codesourcery.com>
652
653 * config/arm/arm-fpus.def: New.
654 * config/arm/genopt.sh: Generate Enum and EnumValue entries from
655 arm-fpus.def.
656 * config/arm/arm-tables.opt: Regenerate.
657 * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
658 (arm_option_override): Don't decode FPU name to string here.
659 * config/arm/arm.opt (mfpu=): Use Enum.
660 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
661 Update dependencies.
662
9e350e99
JM
6632011-05-19 Joseph Myers <joseph@codesourcery.com>
664
665 * collect2.c: Include diagnostic.h.
666 (fatal_perror, fatal, error, fancy_abort): Remove.
667 (main): Set progname. Call xmalloc_set_program_name and
668 diagnostic_initialize.
669 (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
670 scan_libraries, resolve_lib_name): Call fatal_error instead of
671 fatal and fatal_perror.
672 * collect2.h (error, fatal, fatal_perror): Don't declare.
673 * tlink.c: Include diagnostic-core.h.
674 (recompile_files): Call fatal_error instead of fatal_perror.
675 * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
676 pretty-print.o and input.o.
677 (collect2.o, tlink.o): Update dependencies.
678
86ff4081
RO
6792011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
680
681 * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
682
2ca48caa
RO
6832011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
684
685 PR target/40483
686 * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
687 COMDAT group syntax, both SPARC and x86 variants.
688 (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
689 * configure: Regenerate.
690 * config/sol2.h (TARGET_SOLARIS): Define.
691 (PUSHSECTION_FORMAT): Remove.
692 (SECTION_NAME_FORMAT): Define.
693 * config/sol2.c: Include hashtab.h.
694 (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
695 expansion, using SECTION_NAME_FORMAT.
696 (solaris_comdat_htab): New variable.
697 (struct comdat_entry): Define.
698 (comdat_hash): New function.
699 (comdat_eq): New function.
700 (solaris_elf_asm_comdat_section): New function.
701 (solaris_define_comdat_signature): New function.
702 (solaris_code_end): New function.
703 * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
704 (solaris_code_end): Declare.
705 * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
706 * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
707 solaris_code_end.
708 (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
709 Remove ATTRIBUTE_UNUSED.
710 [!USE_GAS]: Call solaris_elf_asm_comdat_section for
711 SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
0955cf61 712 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
2ca48caa
RO
713 * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
714 * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
715 * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
716 (PUSHSECTION_FORMAT): Remove.
717 (SECTION_NAME_FORMAT): Redefine.
718
da5fb469
KT
7192011-05-19 Kai Tietz <ktietz@redhat.com>
720
721 * tree-cfg.c (verify_gimple_assign_binary): Barf on
722 TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
723 (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
724
0967b228
AS
7252011-05-19 Anatoly Sokolov <aesok@post.ru>
726 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
727
728 * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
729
e497b9bd
RG
7302011-05-19 Richard Guenther <rguenther@suse.de>
731
732 PR middle-end/48985
733 * tree-object-size.c (addr_object_size): If the pointed-to
734 variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
735
31b3ca64
RG
7362011-05-19 Richard Guenther <rguenther@suse.de>
737
738 * gimple.c (gimple_types_compatible_p_1): Compare names of
739 the types themselves.
740 (iterative_hash_gimple_type): And hash them that way.
741 (gimple_register_type_1): If we register a main variant properly
742 initialize the leader to ourselves.
743
bb8d292d
TV
7442011-05-19 Tom de Vries <tom@codesourcery.com>
745
746 PR target/45098
747 * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
748 get_loop_invariant_expr_id.
749 (get_loop_invariant_expr_id): Use get_expr_id.
750 (parm_decl_cost): New function.
751 (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
752 Improve bound cost estimation. Use different inv_expr_id for elim and
753 express cases.
754
a53c5024
TV
7552011-05-19 Tom de Vries <tom@codesourcery.com>
756
757 PR target/45098
758 * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
759 cost_base.cost == 0.
760
31f9eb59
L
7612011-05-18 H.J. Lu <hongjiu.lu@intel.com>
762
763 PR target/49002
764 * config/i386/sse.md (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>):
765 Properly handle load cast.
766
681056ae
JJ
7672011-05-18 Jakub Jelinek <jakub@redhat.com>
768
769 PR tree-optimization/49039
770 * tree-vrp.c (extract_range_from_binary_expr): For
771 MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
772 return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
773
b5ee6752
TV
7742011-05-18 Tom de Vries <tom@codesourcery.com>
775
776 PR target/45098
777 * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
778
0bda47a3
UB
7792011-05-18 Uros Bizjak <ubizjak@gmail.com>
780
781 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
782 (*tls_global_dynamic_64): Ditto.
783 (*tls_local_dynamic_base_32_gnu): Ditto.
784 (*tls_local_dynamic_base_64): Ditto.
785 (tls_initial_exec_64_sun): Ditto.
786
033b0805
SH
7872011-05-18 Stuart Henderson <shenders@gcc.gnu.org>
788
789 * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
790 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
791 bf592-none.
792 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
793 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
794 * config/bfin/bfin.c (bfin_cpus): Add bf592.
795 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
0bda47a3 796 __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
033b0805
SH
797 * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
798 * config/bfin/elf.h (LIB_SPEC): Add bf592.
799
ba163417
JM
8002011-05-18 Joseph Myers <joseph@codesourcery.com>
801
802 * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
0bda47a3 803 arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
ba163417
JM
804 * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
805 target_thread_pointer, arm_structure_size_boundary, struct
806 float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
807 struct abi_name, arm_all_abis): Remove.
0bda47a3
UB
808 (arm_option_override) Don't process most enumerated option values here.
809 Don't process target_fpe_name here. Work with integer not string for
810 structure size boundary; use separate diagnostics for each case.
ba163417
JM
811 * config/arm/arm.h (enum float_abi_type, enum
812 arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
813 to arm-opts.h.
814 (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
815 arm_structure_size_boundary): Remove.
816 * config/arm/arm.opt (mabi=): Use Enum and Init.
817 (arm_abi_type): New Enum and EnumValue entries.
818 (mfloat-abi=): Use Enum and Init.
819 (float_abi_type): New Enum and EnumValue entries.
0bda47a3 820 (mfp=, mfpe=): Replace by separate Alias entries for each argument.
ba163417
JM
821 (mfp16-format=): Use Enum and Init.
822 (arm_fp16_format_type): New Enum and EnumValue entries.
823 (mstructure-size-boundary=): Use UInteger and Init.
824 (mtp=): Use Enum and Init.
825 (arm_tp_type): New Enum and EnumValue entries.
826
179184e3
RG
8272011-05-18 Richard Guenther <rguenther@suse.de>
828
829 PR tree-optimization/49018
830 * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
831 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
832 gimple_has_side_effects.
833
93b2a207
RG
8342011-05-18 Richard Guenther <rguenther@suse.de>
835
836 * gimple.c (gimple_register_type_1): New function, split out from ...
837 (gimple_register_type): ... here. Avoid infinite recursion.
838
b010117a
IR
8392011-05-18 Ira Rosen <ira.rosen@linaro.org>
840
841 PR tree-optimization/41881
842 * tree-vectorizer.h (struct _loop_vec_info): Add new field
843 reduction_chains along with a macro for its access.
844 * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
845 (destroy_loop_vec_info): Free reduction chains.
846 (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
847 (vect_is_slp_reduction): New function.
848 (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
849 (vect_create_epilog_for_reduction): Support SLP reduction chains.
850 * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
851 definition types for reduction chains.
852 (vect_supported_load_permutation_p): Don't allow permutations for
853 reduction chains.
854 (vect_analyze_slp_instance): Support reduction chains.
855 (vect_analyze_slp): Try to build SLP instance from reduction chains.
856 (vect_get_constant_vectors): Handle reduction chains.
857 (vect_schedule_slp_instance): Mark the first statement of the
858 reduction chain as reduction.
859
e14c1050
IR
8602011-05-18 Ira Rosen <ira.rosen@linaro.org>
861
862 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
863 names for group elements access.
864 * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
865 reduction chains as well. Remove data reference and interleaving
866 related words from the fields names.
867 * tree-vect-loop.c (vect_transform_loop): Use new names for group
868 elements access.
869 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
870 vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
871 vect_update_interleaving_chain, vect_same_range_drs,
872 vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
873 vect_verify_datarefs_alignment, vector_alignment_reachable_p,
874 vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
875 vect_analyze_group_access, vect_analyze_data_ref_access,
876 vect_create_data_ref_ptr, vect_transform_strided_load,
877 vect_record_strided_load_vectors): Likewise.
878 * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
879 vect_model_load_cost, vectorizable_store, vectorizable_load,
880 vect_remove_stores, new_stmt_vec_info): Likewise.
881 * tree-vect-slp.c (vect_build_slp_tree,
882 vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
883
51c213f7
RG
8842011-05-18 Richard Guenther <rguenther@suse.de>
885
886 PR middle-end/48989
887 * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
888 operand verification.
889 (verify_gimple_assign_binary): Likewise.
890 * tree-ssa.c (useless_type_conversion_p): Preserve conversions
891 to non-1-precision BOOLEAN_TYPEs.
892
8f5e5434
TV
8932011-05-18 Tom de Vries <tom@codesourcery.com>
894
895 PR target/45098
896 * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
897
116bc3a4
JJ
8982011-05-18 Jakub Jelinek <jakub@redhat.com>
899
900 PR tree-optimization/49000
901 * tree-ssa.c (execute_update_addresses_taken): Call
902 maybe_rewrite_mem_ref_base on debug stmt value. If it couldn't
903 be rewritten and decl has been marked for renaming, reset
904 the debug stmt.
905
26a8964c
JM
9062011-05-17 Joseph Myers <joseph@codesourcery.com>
907
908 * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
909 enum_opts_set when testing if attributes have set -mfpmath=.
910
82bd45d7
RS
9112011-05-17 Richard Sandiford <rdsandiford@googlemail.com>
912
913 * config/mips/mips.c (mips_handle_option): Remove unused variable.
914
267ffce3
UB
9152011-05-17 Uros Bizjak <ubizjak@gmail.com>
916
917 * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
918 info->entry with 0
919 * tree-inline.c (maybe_inline_call_in_expr): Initialize
920 id.transform_lang_insert_block with NULL.
921
9222011-05-17 Uros Bizjak <ubizjak@gmail.com>
d9403b0d
UB
923
924 * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
925 (output_fp_compare): Change args 3 and 4 to bool.
926 (ix86_expand_call): Change arg 6 to bool.
927 (ix86_attr_length_immediate_default): Change arg 2 to bool.
928 (ix86_attr_length_vex_default): Change arg 3 to bool.
929 * config/i386/i386.md: Update all uses.
930 * config/i386/i386.c: Ditto.
931 (ix86_flags_dependent): Change return type to bool.
932
5beaf664
RG
9332011-05-17 Richard Guenther <rguenther@suse.de>
934
935 * gimple.c (type_hash_pair_compare): Fix comparison.
936
008bad7a
RG
9372011-05-17 Richard Guenther <rguenther@suse.de>
938
939 * gimple.c (iterative_hash_gimple_type): Simplify singleton
940 case some more, fix final hash value of the non-singleton case.
941
36461340
RG
9422011-05-17 Richard Guenther <rguenther@suse.de>
943
944 PR bootstrap/49013
945 Revert
946 2011-05-16 Richard Guenther <rguenther@suse.de>
947
948 * gimple.c (gimple_types_compatible_p_1): Use names of the
949 type itself, not its main variant.
950 (iterative_hash_gimple_type): Likewise.
951
6b6a59f3
RG
9522011-05-17 Richard Guenther <rguenther@suse.de>
953
954 * gimple.c (gimple_register_canonical_type): Use the main-variant
955 leader for computing the canonical type.
956
4ffc4134
NC
9572011-05-17 Nick Clifton <nickc@redhat.com>
958
a1d8754e
NC
959 * config/rx/rx.c (rx_memory_move_cost): Include cost of register
960 moves.
961
4ffc4134
NC
962 * config/rx/rx.md: Add peephole to remove redundant extensions
963 after loads.
39960f7a
NC
964 (bitset_in_memory): Use rx_restricted_mem_operand.
965 (bitinvert_in_memory): Likewise.
966 (bitclr_in_memory): Likewise.
4ffc4134 967
b3db92ac
KI
9682011-05-17 Kazuhio Inaoka <kazuhiro.inaoka.ud@renesas.com>
969 Nick Clifton <nickc@redhat.com>
970
971 * config/rx/rx.md: Add peepholes to match a register move followed
972 by a comparison of the moved register. Replace these with an
973 addition of zero that does both actions in one instruction.
974
8637e32a
JJ
9752011-05-17 Jakub Jelinek <jakub@redhat.com>
976
977 PR target/48986
978 * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
979 predicate to allow CONST_INT.
980 (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
981
8023568e
JM
9822011-05-16 Joseph Myers <joseph@codesourcery.com>
983
984 * opts-common.c (opt_enum_arg_to_value): New.
985 * opts.h (opt_enum_arg_to_value): Declare.
986 * config/i386/i386.opt (fpmath): Remove.
987 (mfpmath=): Use Enum, Init and Save.
988 (fpmath_unit): New Enum and EnumValue entries.
989 * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
990 name for function fpmath state.
991 * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
992 * config/i386/i386.c: Include diagnostic.h.
993 (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
d9403b0d 994 (ix86_target_string): Take enum fpmath_unit value instead of string.
8023568e 995 (ix86_debug_options): Update call to ix86_target_string.
d9403b0d 996 (ix86_option_override_internal): Don't process fpmath strings here.
8023568e
JM
997 (x86_function_specific_save, ix86_function_specific_restore):
998 Don't handle fpmath state specially.
999 (ix86_function_specific_print): Pass fpmath state to
1000 ix86_target_string instead of printing in this function.
1001 (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
1002 Handle enum attributes.
1003 (IX86_ATTR_ENUM, ix86_opt_enum): New.
1004 (ix86_valid_target_attribute_tree): Update option_strings
1005 handling. Handle fpmath as enum option.
1006 (ix86_can_inline_p): Update field names for function fpmath state.
1007 (ix86_expand_builtin): Update call to ix86_target_string.
1008 * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
1009 (ix86_fpmath): Remove.
1010 * config/i386/t-i386 (i386.o): Update dependencies.
1011
9e8d926e
JM
10122011-05-16 Joseph Myers <joseph@codesourcery.com>
1013
1014 PR preprocessor/48677
1015 * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
1016 from decoded_options[0], not from itself.
1017
f6449011
UB
10182011-05-16 Uros Bizjak <ubizjak@gmail.com>
1019
1020 * config/i386/constraints.md (z): New constraint.
1021 * config/i386/i386.c (c): New mode attribute.
1022 (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
1023 *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
1024 constraint for operand 0.
1025 (*call_vzeroupper): Ditto.
1026 (*call_rex64_ms_sysv): Ditto. Use "rzm" constraint for operand 0.
1027 (*call_rex64_ms_sysv_vzeroupper): Ditto.
1028 (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
1029 Use "lzm" constraint for operand 0.
1030 (*call_pop_vzeroupper): Ditto.
1031 (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
1032 *sibcall_1_rex64 patterns using "P" mode iterator. Use "Uz"
1033 constraint for operand 0.
1034 (*sibcall_vzeroupper): Ditto.
1035 (*sibcall_rex64_ms_sysv): Ditto.
1036 (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
1037 (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
1038 *sibcall_pop_1. Use "Uz" constraint for operand 0.
1039 (*sibcall_pop_vzeroupper): Ditto.
1040 (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
1041 *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
1042 mode iterator. Use "<c>zm" constraint for operand 1.
1043 (*call_value_vzeroupper): Ditto.
1044 (*call_value_rex64_ms_sysv): Ditto. Use "rzm" constraint
d9403b0d 1045 for operand 1.
f6449011
UB
1046 (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
1047 (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
1048 *call_value_pop_1. Use "lzm" constraint for operand 1.
1049 (*call_value_pop_vzeroupper): Ditto.
1050 (*sibcall_value): Merge insn pattern from *sibcall_value_0,
1051 *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
1052 mode iterator. Use "Uz" constraint for operand 1.
1053 (*sibcall_value_vzeroupper): Ditto.
1054 (*sibcall_value_rex64_ms_sysv): Ditto.
1055 (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
1056 (*sibcall_value_pop): Rename from *sibcall_pop_1. Use "Uz"
1057 constraint for operand 1.
1058 (*sibcall_value_pop_vzeroupper): Ditto.
1059 (*tls_global_dynamic_64): Use constant_call_address_operand predicate
1060 and "z" constraint for operand 2.
1061 (*tls_global_dynamic_32_gnu): Ditto.
1062 (*tls_local_dynamic_base_32_gnu): Ditto.
1063 (*tls_local_dynamic_base_64): Ditto.
1064 (*tls_local_dynamic_32_once): Ditto.
1065 * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
1066 Update all callers.
1067 * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
1068
c11b6902
RG
10692011-05-16 Richard Guenther <rguenther@suse.de>
1070
1071 * gimple.c (gimple_types_compatible_p_1): Use names of the
1072 type itself, not its main variant.
1073 (iterative_hash_gimple_type): Likewise.
1074
1e83b5f1
RG
10752011-05-16 Richard Guenther <rguenther@suse.de>
1076
f6449011
UB
1077 * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
1078 always visit pointer target and function result and argument types.
1e83b5f1 1079
62e36382
JM
10802011-05-16 Jason Merrill <jason@redhat.com>
1081
1082 PR c++/48999
1083 * tree-inline.c (copy_statement_list): Put back recursion.
1084
687027a4
GJL
10852011-05-16 Georg-Johann Lay <avr@gjlay.de>
1086
1087 PR target/27663
1088 PR target/41076
1089 * config/avr/predicates.md (const_8_16_24_operand): New predicate.
1090 * config/avr/avr.md ("*ior<mode>qi.byte0",
1091 "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
1092
f24a5190
GJL
10932011-05-16 Georg-Johann Lay <avr@gjlay.de>
1094
1095 PR target/45099
1096 * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
1097 register is needed for a function argument.
1098
3066f593
RG
10992011-05-16 Richard Guenther <rguenther@suse.de>
1100
1101 * gimple.c (struct type_hash_pair): New type.
1102 (type_hash_pair_compare): New function.
f6449011 1103 (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
3066f593 1104
b2ab2cf4
RE
11052011-05-16 Revital Eres <revital.eres@linaro.org>
1106
f6449011 1107 * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
b2ab2cf4 1108
dfb737fc
UB
11092011-05-15 Uros Bizjak <ubizjak@gmail.com>
1110
1111 * config/i386/i386.md (floating point move splitters): Fix
1112 usage of standard_80387_constant_p.
f6449011 1113 * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
dfb737fc 1114
8caa1de0
UB
11152011-05-15 Uros Bizjak <ubizjak@gmail.com>
1116
1117 * config/i386/i386.md (*movdf_internal): Simplify insn condition.
1118
8a519095
EB
11192011-05-14 Eric Botcazou <ebotcazou@adacore.com>
1120
1121 * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
1122 (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
1123 (tree_ssa_lim_finalize): Likewise.
1124
479fecd3
UB
11252011-05-14 Uros Bizjak <ubizjak@gmail.com>
1126
1127 * config/i386/constraint.md (Yd, Yx): New register constraints.
1128 * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger. Use
1129 Yd conditional register constraint.
1130 (*movtf_internal): Use standard_sse_constant_opcode.
1131 (*movxf_internal): Merge with *movxf_internal_nointeger. Use
1132 Yx conditional register constraint.
1133 (*movdf_internal): Merge with *movdf_internal_nointeger. Use
1134 Yd conditional register constraint. Use standard_sse_constant_p to
1135 check for valid SSE constants and call standard_sse_constant_opcode to
1136 output SSE insn.
1137 (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
1138 constants and call standard_sse_constant_opcode to output SSE insn.
1139 * config/i386/i386.c (ix86_option_ovverride_internal): Set
1140 TARGET_INTEGER_DFMODE_MOVES for 64bit targets. Clear it when
1141 optimize_size is set.
1142 (standard_sse_constant_opcode): Output conditional AVX insn templates.
1143
2d8c9ad5
TB
11442011-05-14 Tobias Burnus <burnus@net-b.de>
1145
1146 * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
1147
411a20d6
MJ
11482011-05-13 Martin Jambor <mjambor@suse.cz>
1149
1150 * ipa-prop.c (ipa_cst_from_jfunc): New function.
1151 * ipa-prop.h (ipa_cst_from_jfunc): Declare.
1152 * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
1153 (evaluate_conditions_for_ipcp_clone): Removed.
1154 (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
1155 * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
1156 * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
1157
dc764d10
EB
11582011-05-13 Eric Botcazou <ebotcazou@adacore.com>
1159
1160 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
1161 * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
1162 lieu of MAY_HAVE_DEBUG_STMTS.
1163 * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
1164 debug statements if !MAY_HAVE_DEBUG_STMTS.
1165
9f47a24e
MT
11662011-05-13 Martin Thuresson <martint@google.com>
1167
1168 PR gcov-profile/47793
1169 * libgcov.c (gcov_exit): Support relative profile paths.
1170 * doc/invoke.texi (-fprofile-dir): Update for above change.
1171
b8a71aed
RG
11722011-05-13 Richard Guenther <rguenther@suse.de>
1173
1174 * gimple.c (gimple_canonical_types_compatible_p): Do not use
1175 type-pair caching, do not compare hashes.
1176
eb9f9259
NF
11772011-05-13 Nathan Froyd <froydnj@codesourcery.com>
1178
1179 PR middle-end/48965
1180 * tree-cfg.c (edge_to_cases_cleanup): Return true.
1181 (verify_expr) [CASE_LABEL_EXPR]: Add checking.
1182
3c6cbf7a
KT
11832011-05-13 Kai Tietz <ktietz@redhat.com>
1184
1185 * gimplify.c (gimplify_expr): Make sure operand is boolified.
1186 * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
1187 compatible type for TRUTH_NOT_EXPR.
1188
2e7f5dc0
L
11892011-05-13 H.J. Lu <hongjiu.lu@intel.com>
1190
dc764d10 1191 * config/i386/i386.c (ix86_save_reg): Change return type to bool.
2e7f5dc0
L
1192 (ix86_hard_regno_mode_ok): Change return value to bool. Use
1193 can_create_pseudo_p ().
1194
e834e95c
RG
11952011-05-13 Richard Guenther <rguenther@suse.de>
1196
1197 PR lto/48978
1198 * gimple.c (iterative_hash_gimple_type): Revert change in
1199 pointer target and function result and argument hashing.
1200
34203483
UB
12012011-05-13 Uros Bizjak <ubizjak@gmail.com>
1202
1203 * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
1204 (*movxf_internal_nointeger): Ditto.
1205 (*movdf_internal_rex64): Ditto.
1206 (*movdf_internal): Ditto.
1207 (*movdf_internal_nointeger): Ditto.
1208 (*movsf_internal): Ditto.
1209 (sincos splitters): Use can_create_pseudo ().
1210
7eb68c06
JM
12112011-05-13 Joseph Myers <joseph@codesourcery.com>
1212
1213 * config/i386/i386-opts.h: New.
1214 * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
1215 ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
1216 ix86_section_threshold): Remove.
1217 (ix86_handle_option): Move MAX_CODE_ALIGN define here. Handle
1218 OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
1219 OPT_mbranch_cost_.
1220 (ix86_option_override_internal): Don't decode strings for options
1221 other than -march=, -mtune= and -mfpmath=. Don't allow for
1222 __attribute__ uses in remaining diagnostics for options with
34203483 1223 string arguments. Don't check for integer arguments being negative.
7eb68c06 1224 * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
34203483 1225 enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
7eb68c06
JM
1226 (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
1227 ix86_branch_cost, ix86_section_threshold): Remove.
1228 * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
1229 HeaderInclude.
1230 (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
1231 but not Var.
1232 (masm=): Use Enum and Init.
1233 (asm_dialect): New Enum and EnumValue entries.
1234 (mbranch-cost=): Use UInteger.
1235 (mlarge-data-threshold=): Use UInteger and Init.
1236 (mcmodel=): Use Enum and Init.
1237 (cmodel): New Enum and EnumValue entries.
1238 (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
1239 (mpreferred-stack-boundary=, mincoming-stack-boundary=,
1240 mregparm=): Use UInteger.
1241 (mstringop-strategy=): Use Enum and Init.
1242 (stringop_alg): New Enum and EnumValue entries.
1243 (mtls-dialect=): Use Enum and Init.
1244 (tls_dialect): New Enum and EnumValue entries.
1245 (mabi=): Use Enum and Init.
1246 (calling_abi): New Enum and EnumValue entries.
1247 (mveclibabi=): Use Enum and Init.
1248 (ix86_veclibabi): New Enum and EnumValue entries.
1249
f67e203c
NC
12502011-05-13 Nick Clifton <nickc@redhat.com>
1251
34203483
UB
1252 * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
1253 * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
f67e203c 1254
221df0b6
KT
12552011-05-13 Kai Tietz <ktietz@redhat.com>
1256
1257 PR middle-end/48984
1258 * gimplify.c (gimplify_expr): Check for boolean_type_node instead
1259 for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
1260 (gimple_boolify): Check for cast for boolean_type_node instead for
1261 BOOLEAN_TYPE.
1262
208cb8cb
RG
12632011-05-13 Richard Guenther <rguenther@suse.de>
1264
1265 PR tree-optimization/48172
1266 * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
1267 multiplying by number of iterations for equal step.
1268 (vect_create_cond_for_alias_checks): Likewise.
1269
b88ecf55
AS
12702011-05-13 Andreas Schwab <schwab@redhat.com>
1271
1272 * configure.ac: Use AS_HELP_STRING throughout.
1273 * configure: Regenerate.
1274
569b527e
L
12752011-05-12 H.J. Lu <hongjiu.lu@intel.com>
1276
34203483 1277 * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
569b527e
L
1278 (ix86_emit_restore_regs_using_mov): Likewise.
1279 (ix86_emit_restore_sse_regs_using_mov): Likewise.
1280
8b9a1428
AS
12812011-05-12 Anatoly Sokolov <aesok@post.ru>
1282
1283 * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
1284 SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
1285 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
1286 * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
1287 RTX_OK_FOR_OLO10_P): ...here.
1288 (sparc_mode_dependent_address_p): Use symbolic_operand instead of
1289 SYMBOLIC_CONST.
1290
1d15f620
KT
12912011-05-12 Kai Tietz <ktietz@redhat.com>
1292
1293 * gimplify.c (gimple_boolify): Re-boolify expression
1294 arguments even if expression type is of kind BOOLEAN_TYPE.
1295 (gimplify_boolean_expr): Removed.
1296 (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
1297 and XOR. Additional take care that we keep expression's type.
1298 * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
1299 of TRUTH_AND|OR|XOR_EXPR.
1300
c2b5fc8d
JJ
13012011-05-12 Jakub Jelinek <jakub@redhat.com>
1302
1303 PR tree-optimization/48975
1304 * tree-if-conv.c (combine_blocks): Call free_bb_predicate
1305 on all bbs here and free and clear ifc_bbs at the end.
1306
61332f77
RG
13072011-05-12 Richard Guenther <rguenther@suse.de>
1308
1309 * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
1310 NULLPTR_TYPE similar to VOID_TYPE. Defer type-leader lookup
1311 until after simple checks.
1312 (gimple_types_compatible_p): Likewise.
1313 (iterative_hash_gimple_type): Always hash pointer targets
1314 and function return and argument types.
1315 (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
1316 hash TYPE_ALIGN. Do not hash TYPE_MIN/MAX_VALUE.
1317 (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
1318 handle NULLPTR_TYPE similar to VOID_TYPE. Handle non-aggregates
1319 completely in the simple compare section.
1320 (gimple_register_canonical_type): Query the cache again after
1321 registering.
1322
e2a3a5f1
RG
13232011-05-12 Richard Guenther <rguenther@suse.de>
1324
1325 PR tree-optimization/48172
1326 * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
1327 the number of iterations from the segment size calculation.
1328 (vect_create_cond_for_alias_checks): Adjust.
1329
2c703f3a
JJ
13302011-05-12 Jakub Jelinek <jakub@redhat.com>
1331
1332 PR debug/48967
1333 * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
1334 if validate_subreg fails.
1335
13362011-05-12 Hariharan Sandanagobalane <hariharan@picochip.com>
b27981e0
HS
1337
1338 * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
1339 accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
1340 early.
1341
87e91fca
DD
13422011-05-12 DJ Delorie <dj@redhat.com>
1343
d53903d6 1344 * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
87e91fca
DD
1345 (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
1346 created builtin into rx_builtins array.
1347 (rx_builtin_decl): New function.
34203483 1348 (TARGET_BUITLIN_DECL): Define. Include gt-rx.h.
87e91fca 1349
5f2f13fd
DD
13502011-05-12 DJ Delorie <dj@redhat.com>
1351 Nick Clifton <nickc@redhat.com>
1352
1353 * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
1354 * config/rx/rx.c (CC_FLAG_FP): Fix comment.
1355 (rx_is_legitimate_address): Add pre-decrement and post-increment
1356 addressing in HImode and QImode. Fix test for out of range
1357 REG+INT addressing.
87e91fca 1358 (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
34203483 1359 (rx_align_for_label): Test label before extracting its usage count.
5f2f13fd 1360 (rx_adjust_insn_lengths): Fix selection of insn codes.
87e91fca 1361 (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
5f2f13fd 1362
57421f45
JM
13632011-05-11 Jason Merrill <jason@redhat.com>
1364
1365 * tree.c (type_hash_canon): Use struct tree_type_non_common.
1366
898c90c0
EB
13672011-05-11 Eric Botcazou <ebotcazou@adacore.com>
1368
1369 * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
1370 reindent the subsequent block.
1371
79bec923
ST
13722011-05-11 Satoru Takabayashi <satorux@google.com>
1373 Paul Pluzhnikov <ppluzhnikov@google.com>
1374
34203483 1375 * doc/install.texi (Configuration): Document --with-linker-hash-style.
e77e2cbb
PP
1376 * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
1377 * config.in: Add LINKER_HASH_STYLE.
1378 * configure.ac: Add --with-linker-hash-style.
1379 * configure: Regenerate.
79bec923 1380
d0340959
RG
13812011-05-11 Richard Guenther <rguenther@suse.de>
1382
1383 PR middle-end/48964
1384 * gimple.c (iterative_hash_canonical_type): Fix typo.
1385
cb032fee
UB
13862011-05-11 Uros Bizjak <ubizjak@gmail.com>
1387
1388 * config/i386/i386.c (legitimize_tls_address)
479fecd3 1389 <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
cb032fee
UB
1390 expanders directly for TARGET_GNU2_TLS. Determine pic and
1391 __tls_get_addr symbol reference here. Update call to
1392 gen_tls_global_dynamic_{32,64} for added arguments.
479fecd3 1393 <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
cb032fee
UB
1394 expanders directly for TARGET_GNU2_TLS. Determine
1395 __tls_get_addr symbol reference here. Update call to
1396 gen_tls_local_dynamic_base_{32,64} for added arguments. Attach
1397 unique UNSPEC REG_EQUIV to libcall block.
1398 (ix86_tls_get_addr): Declare static.
1399 * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
1400 * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
1401 Do not determine pic and __tls_get_addr symbol reference here. Do not
1402 call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
1403 (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
1404 (tls_global_dynamic_64): Add operand 2. Do not determine
1405 __tls_get_addr symbol reference here. Do not call
1406 gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
1407 (tls_local_dynamic_base64): Ditto for operand 1.
1408
6d3cc8f0
EB
14092011-05-11 Eric Botcazou <ebotcazou@adacore.com>
1410
1411 * function.c (expand_function_start): Initialize stack_check_probe_note
1412 only if the generic stack checking mechanism is used.
1413
51e020fc
RG
14142011-05-11 Richard Guenther <rguenther@suse.de>
1415
1416 PR tree-optimization/15256
1417 * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
1418 (A & B) | C, combine (A op CST1) op CST2.
1419 (tree_ssa_forward_propagate_single_use_vars): Only bother to
1420 visit assigns that have uses.
1421
51545682
NF
14222011-05-11 Nathan Froyd <froydnj@codesourcery.com>
1423
cb032fee 1424 * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
51545682
NF
1425 * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
1426 (unpack_ts_type_common_value_fields): ...this. Update comment.
1427 (unpack_value_fields): Adjust for renaming.
1428 (lto_input_ts_type_tree_pointers): Split into...
1429 (lto_input_ts_type_common_tree_pointer): ...this and...
1430 (lto_input_ts_type_non_common_tree_pointers): ...this.
1431 (lto_input_tree_pointers): Adjust for above split.
1432 * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
1433 (pack_ts_type_common_value_fields): ...this. Update comment.
1434 (lto_output_ts_type_tree_pointers): Split into...
1435 (lto_output_ts_type_common_tree_pointers): ...this and...
1436 (lto_output_ts_type_non_common_tree_pointers): ...this.
1437 (lto_output_tree_pointers): Adjust for above split.
1438 * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
1439 TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
1440 * stor-layout.c (vector_type_mode): Adjust location of mode field.
1441 * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
1442 Define.
1443 (struct tree_type): Split into...
1444 (struct tree_type_common: ...this and...
1445 (struct tree_type_with_lang_specific): ...this and...
1446 (struct tree_type_non_common): ...this. Adjust accessor macros
1447 accordingly.
1448 (TYPE_VALUES_RAW): Define.
1449 (union tree_node): Update for above changes.
1450 * tree.c (tree_node_structure_for_code) [tcc_type]: Return
1451 TS_TYPE_NON_COMMON.
1452 (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
1453 Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
1454 (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
1455 * treestructu.def (TS_TYPE): Remove.
1456 (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
1457 Define.
1458
b03c3082
JJ
14592011-05-11 Jakub Jelinek <jakub@redhat.com>
1460
1461 PR debug/48159
1462 * tree-ssa.c (reset_debug_uses): New function.
1463 * tree-flow.h (reset_debug_uses): New prototype.
1464 * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
1465 * tree-loop-distribution.c (generate_loops_for_partition): Call
1466 reset_debug_uses on the stmts that will be removed. Keep around
1467 all debug stmts, don't count them as bits in partition bitmap.
1468 (generate_builtin): Don't count debug stmts or labels as bits in
1469 partition bitmap.
1470
b5e04de5
RG
14712011-05-11 Richard Guenther <rguenther@suse.de>
1472
1473 * gimple.c (gimple_type_hash_1): Merge with ...
1474 (gimple_type_hash): ... this.
1475 (gtc_visit): Remove mode parameter and simplify accordingly.
1476 (gimple_types_compatible_p_1): Likewise.
1477 (gimple_types_compatible_p): Likewise.
1478 (iterative_hash_gimple_type): Likewise.
1479 (visit): Likewise.
1480 (gimple_type_eq): Adjust.
1481
fc6970e4
RE
14822011-05-11 Revital Eres <revital.eres@linaro.org>
1483
1484 * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
1485 enters the branch create an anti edge in the opposite direction
1486 to prevent the creation of reg-moves.
1487 * modulo-sched.c: Adjust comment to reflect the fact we are
1488 scheduling closing branch.
1489 (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
1490 (stage_count): New field in struct partial_schedule.
1491 (calculate_stage_count): New function.
1492 (normalize_sched_times): Rename to reset_sched_times and handle
1493 incrementing the sched time of the nodes by a constant value
1494 passed as parameter.
1495 (duplicate_insns_of_cycles): Skip closing branch.
1496 (sms_schedule_by_order): Schedule closing branch.
1497 (ps_insn_find_column): Handle closing branch.
1498 (sms_schedule): Call reset_sched_times and adjust the code to
1499 support scheduling of the closing branch.
1500 (ps_insert_empty_row): Update calls to normalize_sched_times
1501 and rotate_partial_schedule functions.
1502
41a58a92
RG
15032011-05-11 Richard Guenther <rguenther@suse.de>
1504
1505 PR middle-end/48953
1506 * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
1507
e9f8dcf9
JM
15082011-05-11 Joseph Myers <joseph@codesourcery.com>
1509
cb032fee
UB
1510 * opts.c (finish_options): Move warning settings from process_options.
1511 * toplev.c (process_options): Move warning settings to finish_options.
e9f8dcf9 1512
10c224a9
RG
15132011-05-11 Richard Guenther <rguenther@suse.de>
1514
1515 PR tree-optimization/18041
1516 * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
1517 (simplify_bitwise_binary): ... this. Handle operand conversions
1518 by applying them to the result instead.
1519 (tree_ssa_forward_propagate_single_use_vars): Adjust. CSE tree code.
1520
825b27de
RG
15212011-05-11 Richard Guenther <rguenther@suse.de>
1522
1523 * gimple.c (gimple_canonical_types_compatible_p): Split out
1524 from gimple_types_compatible_p and friends. Do not recurse
1525 to pointed-to types.
1526 (gimple_canonical_type_eq): Use it.
1527 (iterative_hash_canonical_type): Split out from
1528 iterative_hash_gimple_type and friends. Do not recurse
1529 to pointed-to types.
1530 (gimple_canonical_type_hash): Use it, allocate the hash here.
1531
ca756625
RE
15322011-05-11 Revital Eres <revital.eres@linaro.org>
1533
1534 * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
1535 recognizing doloop.
1536
b8abece3
RE
15372011-05-11 Revital Eres <revital.eres@linaro.org>
1538
1539 * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
1540 instead of PREV_INSN.
1541
ce7b3761
RE
15422011-05-11 Revital Eres <revital.eres@linaro.org>
1543
1544 * modulo-sched.c (sms_schedule): Support new form of doloop pattern
1545 * loop-doloop.c (doloop_condition_get): Likewise.
1546 * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
1547 (doloop_end): New.
1548 * config/arm/arm.md (*addsi3_compare0): Remove "*".
1549
a9dc9d37
NF
15502011-05-10 Nathan Froyd <froydnj@codesourcery.com>
1551
1552 * tree.def (CASE_LABEL_EXPR): Add an operand.
1553 * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
1554
96703596
JM
15552011-05-10 Joseph Myers <joseph@codesourcery.com>
1556
1557 * c-decl.c (c_override_global_bindings_to_false): Remove.
1558 (global_bindings_p): Don't check
1559 c_override_global_bindings_to_false.
1560 * c-tree.h (c_override_global_bindings_to_false): Remove.
1561 * c-typeck.c (composite_type): Don't set
1562 c_override_global_bindings_to_false.
1563
dbcc9f08
MM
15642011-05-10 Michael Meissner <meissner@linux.vnet.ibm.com>
1565
1566 PR target/48857, 48495
1567 * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
1568 (VSX_MODE): Ditto.
1569 (VSX_MOVE_MODE): Ditto.
1570 (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
1571 VSX vector types. Add V2DImode.
1572 (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
1573 ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
1574 (MODES_TIEABLE_P): Ditto.
1575
1576 * config/rs6000/rs6000.c (rs6000_emit_move): Use
1577 ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
1578 VSX_VECTOR_MODE.
1579 (init_cumulative_args): Ditto.
1580 (rs6000_function_arg_boundary): Ditto.
1581 (rs6000_function_arg_advance_1): Ditto.
1582 (rs6000_function_arg): Ditto.
1583 (rs6000_function_ok_for_sibcall): Ditto.
1584 (emit_frame_save): Ditto.
1585 (rs6000_function_value): Ditto.
1586 (rs6000_libcall_value): Ditto.
1587
4a68b4ca
JM
15882011-05-10 Joseph Myers <joseph@codesourcery.com>
1589
1590 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
1591 i386/darwin-lib.h to $libgcc_tm_file.
1592 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
1593
bcb521e9
JM
15942011-05-10 Joseph Myers <joseph@codesourcery.com>
1595
1596 * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
1597
f10d3ac9
JM
15982011-05-10 Joseph Myers <joseph@codesourcery.com>
1599
cb032fee 1600 * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
f10d3ac9
JM
1601 * config/rs6000/rs6000-tables.opt: New file (generated).
1602 * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
1603 rs6000/rs6000-tables.opt to extra_options.
1604 * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
1605 * config/rs6000/rs6000.c (rs6000_select): Remove.
1606 (processor_target_table): Move contents to rs6000-cpus.def.
1607 (darwin_rs6000_override_options): Check
1608 global_options_set.x_rs6000_cpu_index instead of
1609 rs6000_select[1].string.
1610 (rs6000_option_override_internal): Likewise.
1611 (rs6000_handle_option): Don't assert that global structures are in
1612 use. Don't handle OPT_mcpu_ and OPT_mtune_ here.
1613 (rs6000_default_cpu): New variable.
1614 (rs6000_file_start): Set it instead of local default_cpu. Check
1615 rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
1616 global_options_set.x_rs6000_tune_index instead of rs6000_select.
1617 (rs6000_darwin_file_start): Check rs6000_default_cpu and
1618 global_options_set.x_rs6000_cpu_index instead of rs6000_select.
1619 * config/rs6000/rs6000.h (struct rs6000_cpu_select,
1620 rs6000_select): Remove.
1621 * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
1622 Remove.
1623 (mcpu=, mtune=): Use Var, Init, Enum and Save.
1624 * config/rs6000/t-rs6000
1625 ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
1626 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
1627 global_options_set.x_rs6000_cpu_index instead of
1628 rs6000_select[1].string.
1629 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
1630 global_options_set.x_rs6000_cpu_index instead of
1631 rs6000_select[1].string.
1632
80cf2e08
JM
16332011-05-10 Joseph Myers <joseph@codesourcery.com>
1634
1635 * config.gcc (libgcc_tm_file): Define instead of including files
1636 from ../../libgcc/config/ in tm_file.
cb032fee 1637 * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
80cf2e08
JM
1638 * configure: Regenerate.
1639 * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
1640 libgcc_tm.h, cs-libgcc_tm.h): New.
1641 (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
1642 (clean): Remove libgcc_tm.h.
1643 * config/arm/symbian.h (RENAME_LIBRARY): Remove.
1644 * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
1645 * system.h (DECLARE_LIBRARY_RENAMES): Poison.
1646
fd01a351
GJL
16472011-05-10 Georg-Johann Lay <avr@gjlay.de>
1648
1649 PR target/48896
1650 * config/avr/avr.c (avr_ret_register): Return unsigned int
1651 instead of int.
1652 (avr_function_value): Mark fn_decl_or_type as unused, don't pass
1653 it to avr_libcall_value.
1654 avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
1655 expand_expr.
1656 (avr_expand_binop_builtin): Ditto.
1657 (avr_expand_unop_builtin): Ditto.
1658
34cc3c86
DD
16592011-05-10 DJ Delorie <dj@redhat.com>
1660
1661 * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
1662 (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
1663 * config/rx/rx.c (rx_align_for_label): Add label and
1664 uses_threshold parameters. Do not align when the label is not
1665 used enough.
1666 * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
1667
be173289
RG
16682011-05-10 Richard Guenther <rguenther@suse.de>
1669
1670 * tree-ssa-forwprop.c (combine_conversions): Pattern-match
1671 a series of conversions and apply foldings similar to what
1672 fold-const does.
1673 (tree_ssa_forward_propagate_single_use_vars): Call it.
1674
e7f78021
JJ
16752011-05-10 Jakub Jelinek <jakub@redhat.com>
1676
6ae70ea2
JJ
1677 PR tree-optimization/48611
1678 PR tree-optimization/48794
1679 * tree-eh.c (remove_unreachable_handlers): Don't remove regions
1680 referenced from RESX or EH_DISPATCH arguments.
1681
e7f78021
JJ
1682 PR debug/48928
1683 * dfp.c (decimal_to_decnumber): Handle conversion from
1684 dconst{1,2,m1,half}.
1685
fca132b9
UB
16862011-05-09 Uros Bizjak <ubizjak@gmail.com>
1687
1688 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
1689 for !flag_prefer_avx128.
1690 (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
1691
e4c03378
EB
16922011-05-09 Eric Botcazou <ebotcazou@adacore.com>
1693
1694 * fold-const.c (fold_range_test): Pass LOC to build_range_check.
1695 (fold_ternary_loc): Use expr_location_or.
1696
805d6a75
L
16972011-05-09 H.J. Lu <hongjiu.lu@intel.com>
1698
1699 PR debug/48853
1700 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
1701 POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
1702 Pmode and mem_mode is not VOIDmode.
1703
e4c03378 17042011-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
b5da71d4 1705
e4c03378
EB
1706 * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
1707 TYPE_QUAL_RESTRICT): Convert to enum.
b5da71d4 1708
51e7f377
UB
17092011-05-09 Uros Bizjak <ubizjak@gmail.com>
1710
1711 * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
1712 (const_pow2_1_to_8_operand): Ditto.
1713 (const_pow2_1_to_128_operand): Ditto.
1714 (const_pow2_1_to_32768_operand): Ditto.
1715 * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
1716 const_pow2_1_to_8_operand for operand 3 predicate. Use exact_log2
1717 in insn constraint to check integer value of operand 3.
1718 * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
1719
1720 (PINSR_MODE): New mode iterator.
1721 (sse2p4_1): New mode attribute.
1722 (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
1723 sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
1724 iterator. Use const_int_operand instead of
1725 const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate. Use
1726 exact_log2 in insn constraint to check integer value of operand 3.
1727
17282011-05-09 Uros Bizjak <ubizjak@gmail.com>
1729
1730 * config/i386/sse.md (blendbits): Remove mode attribute.
1731 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
1732 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
1733 Check integer value of operand 3 in insn constraint.
1734
0ca8de87
RG
17352011-05-09 Richard Guenther <rguenther@suse.de>
1736
1737 * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
1738 for diagnostics.
1739 (lto_symtab_merge): Likewise. Do not register types here.
1740 (lto_symtab_merge_decls_2): Likewise.
1741 (lto_symtab_merge_decls_1): Likewise.
1742 * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
1743 * gimple.c (enum gtc_mode): Declare.
1744 (gimple_types_compatible_p): Make static.
1745
a9e6994a
AK
17462011-05-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1747
1748 * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
1749 temporary register to match Pmode.
1750
fb55d62e
UB
17512011-05-09 Uros Bizjak <ubizjak@gmail.com>
1752
1753 * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
1754 and *vec_concatv4si_1_avx.
1755
eb1485a6
UB
17562011-05-09 Uros Bizjak <ubizjak@gmail.com>
1757
1758 PR rtl-optimization/48927
1759 * ira-conflicts.c (commutative_constraint_p): Use
1760 recog_data.alternative_enabled_p to disable alternatives where
1761 "enabled" attribute is false.
1762 (get_dup_num): Ditto.
1763 * ira-lives.c (single_reg_class): Ditto.
1764 (ira_implicitly_set_insn_hard_regs): Ditto.
1765
c46d001a
EB
17662011-05-09 Eric Botcazou <ebotcazou@adacore.com>
1767
1768 * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
1769 (dataflow_set_preserve_mem_locs): Likewise.
1770
17712011-05-09 Philipp Thomas <pth@suse.de>
1772
6d9e7c41
PT
1773 * config/mep/mep.c (mep_validate_vliw): Syntax description
1774 should not be translated.
1775
d371df6f
JM
17762011-05-09 Joseph Myers <joseph@codesourcery.com>
1777
1778 * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
1779 * config/mips/mips-tables.opt: New file (generated).
eb1485a6 1780 * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
d371df6f
JM
1781 * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
1782 MIPS_ARCH_OPTION_NATIVE): Define.
1783 * config/mips/mips.c (mips_cpu_info_table): Move contents to
1784 mips-cpus.def.
1785 (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
1786 mips_parse_cpu): Remove.
1787 (mips_cpu_info_from_opt, mips_default_arch): New.
1788 (mips_handle_option): Don't assert that global structures are in
1789 use. Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
1790 (mips_option_override): Use new variables and functions to set
eb1485a6 1791 state of these options. Use strcmp to check for individual CPU names.
d371df6f
JM
1792 * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
1793 definition.
1794 * config/mips/mips.opt (march=): Use ToLower and Enum.
1795 (mips): Use ToLower, Enum and Var.
1796 (mtune=): Use ToLower and Enum.
1797 * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
1798
4fc07af9
JH
17992011-05-08 Jan Hubicka <jh@suse.cz>
1800
1801 * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
1802 Arrange type pairs to be UID ordered.
1803 (gimple_lookup_type_leader): Make inline.
1804
2cf320a8
NC
18052011-05-09 Nick Clifton <nickc@redhat.com>
1806
61d6def5
NC
1807 PR target/48899
1808 * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
1809 PROCESSOR_DEFAULT.
1810
2cf320a8
NC
1811 PR target/48897
1812 * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
1813 variable 's'.
1814
4f82319d
CLT
18152011-05-08 Chung-Lin Tang <cltang@codesourcery.com>
1816
1817 * combine.c (simplify_comparison): Abstract out parts into...
1818 (simplify_compare_const): ... new function.
1819 (try_combine): Generalize parallel arithmetic/compare combining
1820 to call simplify_compare_const() and CANONICALIZE_COMPARE().
1821
74605a11
JH
18222011-05-08 Jan Hubicka <jh@suse.cz>
1823
1824 * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
eb1485a6
UB
1825 (cgraph_create_virtual_clone): Call hooks once virtual clone
1826 is finished.
74605a11 1827 * cgraph.h (cgraph_clone_node): Update prototype.
eb1485a6
UB
1828 * ipa-cp.c (ipcp_estimate_growth): Use
1829 estimate_ipcp_clone_size_and_time.
74605a11
JH
1830 * ipa-inline-transform.c (clone_inlined_nodes): Update.
1831 * lto-cgraph.c (input_node): Update.
1832 * ipa-inline.c (recursive_inlining): Update.
1833 * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
1834 (evaluate_conditions_for_known_args): Break out from ...
1835 (evaluate_conditions_for_edge): ... here.
1836 (evaluate_conditions_for_ipcp_clone): New function.
1837 (inline_node_duplication_hook): Update clone summary based
1838 on parameter map.
1839 (estimate_callee_size_and_time): Rename to ...
1840 (estimate_node_size_and_time): take NODE instead of EDGE;
1841 take POSSIBLE_TRUTHS as argument.
1842 (estimate_callee_size_and_time): Update.
1843 (estimate_ipcp_clone_size_and_time): New function.
1844 (do_estimate_edge_time): Update.
1845
5c049507
RG
18462011-05-08 Richard Guenther <rguenther@suse.de>
1847
1848 PR middle-end/48908
1849 PR middle-end/48905
1850 * expmed.c (expand_shift_1): Compute adjusted constant shift
1851 amount manually.
1852
f64c36ba
EB
18532011-05-08 Eric Botcazou <ebotcazou@adacore.com>
1854
1855 * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
1856
c461a957
EB
18572011-05-08 Eric Botcazou <ebotcazou@adacore.com>
1858
1859 * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
1860
7c74e556
JW
18612011-05-08 Jonathan Wakely <jwakely.gcc@gmail.com>
1862
1863 * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
1864
b4c0a884
JH
18652011-05-07 Jan Hubicka <jh@suse.cz>
1866
a9bcb3f0
EB
1867 * ipa-inline-transform.c (inline_call): Account when program size
1868 decreases.
b4c0a884 1869 * ipa-inline.c (relative_time_benefit): New function.
a9bcb3f0
EB
1870 (edge_badness): Reorganize to be power 2 based; fix thinko when
1871 computing badness for negative growth; update comments to match
1872 reality; better dumps.
b4c0a884 1873
c99c0026
EB
18742011-05-07 Eric Botcazou <ebotcazou@adacore.com>
1875
1876 * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
1877 type to bool and adjust comment.
1878 * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
1879 (fold_mathfn_compare): Remove calls to global_bindings_p.
1880 (fold_inf_compare): Likewise.
1881 * stor-layout.c (variable_size): Adjust call to global_bindings_p.
1882 * c-tree.h (global_bindings_p): Adjust prototype.
1883 * c-decl.c (global_bindings_p): Return bool and simplify.
1884
1400c8e5
ZD
18852011-05-07 Zdenek Dvorak <ook@ucw.cz>
1886
1887 PR tree-optimization/48837
1888 * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
1889 when accumulator transformation is performed.
1890
5d0878e7
JH
18912011-05-06 Jan Hubicka <jh@suse.cz>
1892
a9bcb3f0
EB
1893 * i386.h (ix86_tune_indices): Add
1894 X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
eb1485a6 1895 (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
a9bcb3f0
EB
1896 * i386.c (initial_ix86_tune_features): Add
1897 X86_SOFTARE_PREFETCHING_BENEFICIAL.
5d0878e7
JH
1898 (software_prefetching_beneficial_p): Remove predicate.
1899 (ix86_option_override_internal): Use new macro.
1900
58696ce5
JH
19012011-05-06 Jan Hubicka <jh@suse.cz>
1902
1903 * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
1904
c47d0034
JH
19052011-05-06 Jan Hubicka <jh@suse.cz>
1906
1907 * cgraph.c (cgraph_add_thunk): Create real function node instead
1908 of alias node; finalize it and mark needed/reachale; arrange visibility
1909 to be right and add it into the corresponding same comdat group list.
1910 (dump_cgraph_node): Dump thunks.
1911 * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
a9bcb3f0
EB
1912 cgraph_function_with_gimple_body_p,
1913 cgraph_first_function_with_gimple_body,
c47d0034
JH
1914 cgraph_next_function_with_gimple_body): New functions.
1915 (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
1916 New macros.
1917 * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
1918 (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
1919 * cgraphunit.c (cgraph_finalize_function): Only look into possible
1920 devirtualization when optimizing.
1921 (verify_cgraph_node): Verify thunks.
1922 (cgraph_analyze_function): Analyze thunks.
1923 (cgraph_mark_functions_to_output): Output thunks only in combination
1924 with function they are assigned to.
1925 (assemble_thunk): Turn thunk into non-thunk; don't try to turn
1926 alias into normal node.
1927 (assemble_thunks): New functoin.
1928 (cgraph_expand_function): Use it.
1929 * lto-cgraph.c (lto_output_node): Stream thunks.
1930 (input_overwrite_node): Stream in thunks.
1931 * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
1932 * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
1933 * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
1934 * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
1935 (inline_analyze_function): Do not care about thunk jump functions.
1936 (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
a9bcb3f0
EB
1937 * ipa-prop.c (ipa_prop_write_jump_functions): Use
1938 cgraph_function_with_gimple_body_p.
1939 * passes.c (do_per_function_toporder): Use
1940 cgraph_function_with_gimple_body_p.
c47d0034
JH
1941 (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
1942 (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
1943 (function_called_by_processed_nodes_p): Likewise.
1944
d8f426ec
JM
19452011-05-06 Joseph Myers <joseph@codesourcery.com>
1946
1947 * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
1948 rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
1949 entries.
1950 (mabi=): Replace with separate entries for mabi=altivec,
1951 mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
1952 mabi=ieeelongdouble and mabi=ibmlongdouble.
1953 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
1954 check for -mabi=spe without SPE ABI support here.
1955 (rs6000_handle_option): Replace OPT_mabi_ handling with
1956 OPT_mabi_altivec and OPT_mabi_spe handling.
1957
80bde45b
CC
19582011-05-06 Cary Coutant <ccoutant@google.com>
1959
1960 * dwarf2out.c (contains_subprogram_definition): New function.
1961 (should_move_die_to_comdat): Call it.
1962
a91926b9
JL
19632011-05-06 Jeff Law <law@redhat.com>
1964
1965 * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
1966 remove_ctrl_stmt_and_useless_edges.
1967 (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
1968 (fixup_template_block, thread_single_edge): Likewise.
1969 (mark_threaded_blocks): Use THREAD_TARGET.
1970
1fc1b66d
AM
19712011-05-06 Alan Modra <amodra@gmail.com>
1972
1973 PR target/48900
1974 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
1975 const0_rtx as the arg to the dummy __tls_get_addr libcall.
1976
e194de64
UB
19772011-05-06 Uros Bizjak <ubizjak@gmail.com>
1978
1979 * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
1980 constraint modifier to "r".
1981
d740dc9e
JM
19822011-05-06 Joseph Myers <joseph@codesourcery.com>
1983
1984 * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
1985 fall through for OPT_mcmodel_.
1986
cab78b15
AK
19872011-05-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1988
1989 * config/s390/s390.c (s390_asm_trampoline_template): Comment
1990 instruction sizes.
e194de64 1991 (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
cab78b15 1992
ee6824ae
RR
19932011-05-06 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
1994
eb1485a6
UB
1995 PR target/47930
1996 * config/arm/arm.opt (marm): Document it.
1997 (mthumb): Reject negative variant.
ee6824ae 1998
9ef58464
UB
19992011-05-06 Uros Bizjak <ubizjak@gmail.com>
2000
2001 PR target/48898
2002 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
2003 Fix typo in "ccvt" variable name.
2004
155b6176
TG
20052011-05-06 Tristan Gingold <gingold@adacore.com>
2006
2007 PR target/48895
2008 * config/vms/vms-ar.c (main): Remove cwd variable.
2009
3becc47b
JJ
20102011-05-06 Jakub Jelinek <jakub@redhat.com>
2011
2012 PR debug/48902
2013 * var-tracking.c (prepare_call_arguments): Move else before #endif.
2014
3d528853
NF
20152011-05-05 Nathan Froyd <froydnj@codesourcery.com>
2016
2017 * except.c (sjlj_emit_dispatch_table): Call build_case_label.
2018 * gimplify.c (gimplify_switch_expr): Likewise.
2019 * omp-low.c (expand_omp_sections): Likewise.
2020 * tree-eh.c (lower_try_finally_switch): Likewise.
2021 (lower_eh_dispatch): Likewise.
2022 * tree.h (build_case_label): Declare.
2023 * tree.c (build_case_label): Define.
2024
deb5046b
JM
20252011-05-05 Jason Merrill <jason@redhat.com>
2026
2027 PR c++/40975
2028 * tree-inline.c (copy_tree_r): Use copy_statement_list.
2029 (copy_statement_list): Don't recurse.
2030 * stor-layout.c (copy_self_referential_tree_r): Don't allow
2031 STATEMENT_LIST.
2032
013c0411
JM
20332011-05-05 Joseph Myers <joseph@codesourcery.com>
2034
2035 * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
2036 through from -mfpu= handling.
2037 * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
2038
a0905f8b
BS
20392011-05-05 Bernd Schmidt <bernds@codesourcery.com>
2040
2041 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
2042 POST_MODIFY.
2043
fc4538e4
SE
20442011-05-05 Steve Ellcey <sje@cup.hp.com>
2045
2046 * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
2047 for 11.31.
2048 (hppa[12]*-*-hpux11*): Ditto.
2049 (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
2050 * config/ia64/hpux-unix2003.h: New.
2051 * config/pa/pa-hpux1131.opt: New.
2052 * config/pa/pa-hpux1131.h: New.
2053 * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
2054 * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
4eec64ff 2055 * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
fc4538e4 2056
1e30c578
JJ
20572011-05-05 Jakub Jelinek <jakub@redhat.com>
2058
2059 PR debug/48853
2060 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
2061 instead of mode as 3rd argument to recursive call.
2062 (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
2063 emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
2064 VOIDmode.
2065 (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
2066 don't give up if mode is Pmode and mem_mode is not VOIDmode.
2067 (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
2068 use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
2069
d19eb620
JB
20702011-05-05 Julian Brown <julian@codesourcery.com>
2071
2072 * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
2073 parenthesis in D-register case.
2074
c860fe8c
JM
20752011-05-05 Joseph Myers <joseph@codesourcery.com>
2076
2077 * opt-functions.awk (var_type_struct): Handle Enum options.
2078 * optc-gen.awk: Don't check range of variables of character type.
2079 * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
2080 rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
2081 rs6000_sdata_name, rs6000_explicit_options): Remove.
2082 (rs6000_option_override_internal): Check for -malign-power here.
2083 Use global_options_set instead of rs6000_explicit_options.
2084 (rs6000_parse_fpu_option): Remove.
2085 (rs6000_handle_option): Access variables via opts and opts_set
2086 pointers. Use error_at and warning_at. Add fall-through
2087 comments. Don't handle OPT_mcmodel_, OPT_maix_struct_return,
2088 OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
2089 OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
2090 OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
2091 here. Don't use rs6000_parse_fpu_option.
2092 * config/rs6000/rs6000.h (fpu_type): Remove declaration.
2093 * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
2094 rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
2095 (mrecip=): Use Var.
2096 (mspe): Use Var and Save.
2097 (mtraceback=): Use Enum and Var.
2098 (rs6000_traceback_type): New Enum and EnumValue entries.
2099 (mfloat-gprs=): Use Enum, Var and Save.
2100 (rs6000_float_gprs): New Enum and EnumValue entries.
2101 (mlong-double-): use Var and Save.
2102 (msched-costly-dep=, minsert-sched-nops=): Use Var.
2103 (malign-): Use Enum and Var.
2104 (rs6000_alignment_flags): New Enum and EnumValue entries.
2105 (mfpu=): Use Enum.
2106 (fpu_type_t): New Enum and EnumValue entries.
2107 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2108 global_options_set instead of rs6000_explicit_options.
2109 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2110 global_options_set instead of rs6000_explicit_options.
2111 * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2112 global_options_set instead of rs6000_explicit_options.
2113 * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2114 global_options_set instead of rs6000_explicit_options.
2115 * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
2116 global_options_set instead of rs6000_explicit_options.
2117 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
2118 global_options_set instead of rs6000_explicit_options.
2119 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
2120 definition.
2121 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
2122 global_options_set instead of rs6000_explicit_options.
2123 * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
2124 (rs6000_cmodel): New Enum and EnumValue entries.
2125 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
2126 global_options_set instead of rs6000_explicit_options.
2127 * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
2128 (mtls-size=): Use Enum and Var.
2129 (rs6000_tls_size): New Enum and EnumValue entries.
2130
0691dde9
MM
21312011-05-05 Michael Matz <matz@suse.de>
2132
2133 * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
2134 * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
2135 * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
2136 * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
2137 * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
2138 * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
2139 * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
2140 * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
2141 * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
2142 * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
2143 * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
2144 * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
2145 * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
2146 * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
2147 * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
2148 * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
2149
86529a49
RG
21502011-05-05 Richard Guenther <rguenther@suse.de>
2151
2152 * expmed.c (expand_variable_shift): Rename to ...
2153 (expand_shift_1): ... this. Take an expanded shift amount.
2154 For rotates recurse directly not building trees for the shift amount.
2155 (expand_variable_shift): Wrap around expand_shift_1.
2156 (expand_shift): Adjust.
2157
d0228c2e
JJ
21582011-05-05 Jakub Jelinek <jakub@redhat.com>
2159
2160 * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
2161
907a08d9
EB
21622011-05-05 Eric Botcazou <ebotcazou@adacore.com>
2163
2164 * tree.h (get_pending_sizes): Remove prototype.
2165 (put_pending_size): Likewise.
2166 (put_pending_sizes): Likewise.
2167 * stor-layout.c (pending_sizes): Delete.
2168 (get_pending_sizes): Likewise.
2169 (put_pending_size): Likewise.
2170 (put_pending_sizes): Likewise.
2171 (variable_size): Do not call put_pending_size and tidy up.
2172 * function.h (struct function): Remove dont_save_pending_sizes_p.
2173 * lto-streamer-in.c (input_function): Do not stream it.
2174 * lto-streamer-out.c (output_function): Likewise.
2175 * tree-inline.c (initialize_cfun): Do not copy it.
2176 * c-decl.c (store_parm_decls): Do not set it.
2177 * omp-low.c (create_task_copyfn): Likewise.
2178 * tree-optimize.c (tree_rest_of_compilation): Likewise.
2179
386d9c57
UB
21802011-05-05 Uros Bizjak <ubizjak@gmail.com>
2181
2182 * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
2183 conditions.
2184 (*movdf_internal): Ditto.
2185 (*movdf_internal_nointeger): Ditto.
2186 (*movsf_internal): Ditto.
2187
a04a722b
JM
21882011-05-05 Joseph Myers <joseph@codesourcery.com>
2189
2190 * c-decl.c (finish_decl): Don't call get_pending_sizes.
2191 (grokparm): Add parameter expr. Pass it to grokdeclarator.
2192 (push_parm_decl): Add parameter expr. Pass it to grokdeclarator.
2193 (c_variable_size): Remove.
2194 (grokdeclarator): Use save_expr instead of c_variable_size. Don't
2195 call put_pending_sizes.
2196 (get_parm_info): Add parameter expr. Use it to set
2197 arg_info->pending_sizes.
2198 (store_parm_decls): Use arg_info->pending_sizes instead or calling
2199 get_pending_sizes.
2200 * c-parser.c (c_parser_parms_declarator): Update call to
2201 c_parser_parms_list_declarator.
2202 (c_parser_parms_list_declarator): Take parameter expr. Update
2203 call to push_parm_decl. Update recursive call. Don't call
2204 get_pending_sizes. Update calls to get_parm_info.
2205 (c_parser_objc_method_definition): Update calls to
2206 c_parser_objc_method_decl and objc_start_method_definition.
386d9c57 2207 (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
a04a722b
JM
2208 (c_parser_objc_method_decl): Add parameter expr. Update call to
2209 grokparm.
386d9c57 2210 (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
a04a722b
JM
2211 * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
2212 (get_parm_info, grokparm, push_parm_decl): Update prototypes.
2213
c92a6f97
MH
22142011-05-05 Michael Hope <michael.hope@linaro.org>
2215
386d9c57
UB
2216 PR pch/45979
2217 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
2218 __ARM_EABI__ hosts.
c92a6f97 2219
07ea0048
UW
22202011-05-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2221
2222 * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
2223 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
2224 (spu_output_mi_thunk): New function.
2225
d634bfa1
RO
22262011-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2227
2228 * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
2229 targetm.asm_out.print_operand.
2230 * config/sol2.c: Include target.h.
2231
40fda55b
JH
22322011-05-04 Jan Hubicka <jh@suse.cz>
2233
2234 * ipa-inline.c (reset_edge_caches): New function.
2235 (update_caller_keys): Add check_inlinablity_for; do not
2236 reset edge caches; remove now unnecesary loop.
386d9c57 2237 (update_callee_keys): Add comments; reset node_growth_cache of callee.
40fda55b
JH
2238 (update_all_callee_keys): Likewise.
2239 (inline_small_functions): Sanity check cache; update code
2240 recomputing it.
2241
0360f70d
BS
22422011-05-04 Bernd Schmidt <bernds@codesourcery.com>
2243
2244 PR rtl-optimization/47612
2245 * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
2246 as the last insn of the sequence to be moved.
2247
7a994646
TB
22482011-05-04 Tobias Burnus <burnus@net-b.de>
2249
2250 PR fortran/48864
2251 * doc/invoke.texi (Ofast): Document that it
2252 enables Fortran's -fno-protect-parens.
2253
7a2f7208
UB
22542011-05-04 Uros Bizjak <ubizjak@gmail.com>
2255
2256 * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
2257
a2d42931
EB
22582011-05-04 Eric Botcazou <ebotcazou@adacore.com>
2259
2260 * stor-layout.c (variable_size): Do not issue errors.
2261
f81b1a3d
RG
22622011-05-04 Richard Guenther <rguenther@suse.de>
2263
2264 * coverage.c (tree_coverage_counter_ref): Use integer_type_node
2265 for array-ref indices.
2266 (tree_coverage_counter_addr): Likewise.
2267 (build_fn_info_type): Use size_int for index types.
2268 (build_gcov_info): Likewise.
2269
c62c040f
RG
22702011-05-04 Richard Guenther <rguenther@suse.de>
2271
2272 * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
2273 to build_int_cst.
2274 * c-typeck.c (really_start_incremental_init): Use bitsize_int
2275 for constructor indices.
2276 (push_init_level): Likewise.
2277
1e3287d0
RG
22782011-05-04 Richard Guenther <rguenther@suse.de>
2279
2280 * explow.c (promote_mode): Move variable declarations before code.
2281
6c32445b
NF
22822011-05-04 Nathan Froyd <froydnj@codesourcery.com>
2283
2284 * tree.h (build_function_type_array): Declare.
2285 (build_varargs_function_type_array): Declare.
2286 (build_function_type_vec, build_varargs_function_type_vec): Define.
2287 * tree.c (build_function_type_array_1): New function.
2288 (build_function_type_array): New function.
2289 (build_varargs_function_type_array): New function.
2290
fdabf269
RS
22912011-05-04 Richard Sandiford <richard.sandiford@linaro.org>
2292
2293 * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
2294 before setting STMT_VINFO_TYPE.
2295
a207915a
UW
22962011-05-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2297
2298 * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
2299 instead of spu_pass_by_reference.
2300
5e617be8
AK
23012011-05-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2302
2303 * calls.c (emit_library_call_value_1): Invoke
2304 promote_function_mode hook on libcall arguments.
2305 * explow.c (promote_function_mode, promote_mode): Handle TYPE
2306 argument being NULL.
2307 * targhooks.c (default_promote_function_mode): Lisewise.
2308 * config/s390/s390.c (s390_promote_function_mode): Likewise.
2309 * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
2310
2311 * doc/tm.texi: Document that TYPE argument might be NULL.
2312
486d04be
SH
23132011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
2314
2315 * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
2316
9b19b026
SH
23172011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
2318
2319 From Bernd Schmidt
2320 * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
2321
502bc3df
RO
23222011-05-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2323
2324 * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
2325 (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
2326 Move ...
2327 * mips-tfile.c: ... here.
2328 Don't include coretypes.h, tm.h, filenames.h.
2329 (saber_stop): Remove definition and all calls.
2330 [__SABER__]: Remove.
2331 (__LINE__): Remove default.
2332 (Size_t, Ptrdiff_t): Remove definitions.
2333 Replace by size_t, ptrdiff_t.
2334 [!MIPS_DEBUGGING_INFO]: Remove.
2335 (SHASH_SIZE, THASH_SIZE): Remove defaults.
2336 (progname): Add const.
2337 (STATIC): Remove.
2338 Replace all uses by static.
2339 (ALIGN_SYMTABLE_OFFSET): Remove default.
2340 * mips-tdump.c: Don't include coretypes.h, tm.h.
2341 Remove !MIPS_IS_STAB guard.
2342 * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
2343 $(TM_H), filenames.h dependencies.
2344 (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
2345
991eb6ef
SH
23462011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
2347
2348 From Jie Zhang
2349 *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
2350 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
2351
420ccc84
SH
23522011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
2353
2354 From Bernd Schmidt
2355 * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
2356 account and save/restore RETS.
2357 (PROFILE_BEFORE_PROLOGUE): Define.
2358 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character. Correct
2359 the push insn to use predecrement.
2360
9f8d69ee
SH
23612011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
2362
2363 From Jie Zhang
2364 * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
2365
662c03f4
NC
23662011-05-04 Nick Clifton <nickc@redhat.com>
2367
2368 * config/mn10300/mn10300.c: Include cfgloop.h.
2369 (DUMP): New macro.
2370 (mn10300_insert_setlb_lcc): New function. Inserts a SETLB and a
2371 Lcc or a FLcc insn into the instruction stream.
2372 (mn10300_block_contains_call): New function. Returns true if the
2373 given basic block contains a CALL insn.
2374 (mn10300_loop_contains_call_insn): New function. Returns true if
2375 the given loop contains a CALL insn.
2376 (mn10300_scan_for_setlb_lcc): New function. Finds opportunities
2377 to use the SETLB and Lcc or FLcc insns.
2378 (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
2379 (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
2380 * config/mn10300/mn10300.opt (msetlb): New option. Used to
2381 disable the SETLB optimization.
2382 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
2383 __SETLB__ or __NO_SETLB__.
2384 * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
2385 (movsf_internal): Handle MDR register.
2386 (cmpsi): Make visible.
2387 (setlb): New pattern.
2388 (Lcc): New pattern.
2389 (FLcc): New pattern.
2390
843b6915
UB
23912011-05-04 Uros Bizjak <ubizjak@gmail.com>
2392
2393 PR target/48860
2394 * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
2395 for reg<->xmm moves.
2396 * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
2397 (vec_concatv2di_rex64_sse): Ditto.
2398 (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
2399 (*vec_extractv2di_1_rex64): Ditto.
2400
2401 Revert:
2402 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
2403
2404 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
2405 reg<->xmm moves.
2406 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
2407
d35936ab
RG
24082011-05-04 Richard Guenther <rguenther@suse.de>
2409
2410 * tree.h (int_const_binop): Remove notrunc argument.
2411 * fold-const.c (int_const_binop): Remove notrunc argument. Always
2412 create integer constants that are properly truncated.
2413 (extract_muldiv_1): Expand one notrunc int_const_binop caller.
2414 (const_binop): Remove zero notrunc argument to int_const_binop.
2415 (size_binop_loc): Likewise.
2416 (fold_div_compare): Likewise.
2417 (maybe_canonicalize_comparison_1): Likewise.
2418 (fold_comparison): Likewise.
2419 (fold_binary_loc): Likewise.
2420 (multiple_of_p): Likewise.
2421 * expr.c (store_constructor): Likewise.
2422 * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
2423 (maybe_fold_stmt_addition): Likewise.
2424 * ipa-prop.c (ipa_modify_call_arguments): Likewise.
2425 * stor-layout.c (layout_type): Likewise.
2426 * tree-data-ref.c (tree_fold_divides_p): Likewise.
2427 * tree-sra.c (build_ref_for_offset): Likewise.
2428 (build_user_friendly_ref_for_offset): Likewise.
2429 * tree-ssa-address.c (maybe_fold_tmr): Likewise.
2430 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
2431 * tree-ssa-loop-niter.c (inverse): Likewise.
2432 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
2433 * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
2434 * tree-switch-conversion.c (check_range): Likewise.
2435 (build_constructors): Likewise.
2436 * tree-vect-generic.c (expand_vector_piecewise): Likewise.
2437 * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
2438 (extract_range_from_assert): Likewise.
2439 (vrp_int_const_binop): Likewise.
2440 (extract_range_from_binary_expr): Likewise.
2441 (extract_range_from_unary_expr): Likewise.
2442 (check_array_ref): Likewise.
2443 (find_case_label_range): Likewise.
2444 (simplify_div_or_mod_using_ranges): Likewise.
2445 * tree-cfg.c (group_case_labels_stmt): Use double-ints for
2446 comparing case labels for merging.
2447
8992c063
MW
24482011-05-03 Mark Wielaard <mjw@redhat.com>
2449
2450 * dwarf2out.c (debug_str_hash_forced): Removed.
2451 (gen_label_for_indirect_string): Removed.
2452 (get_debug_string_label): Removed.
2453 (AT_string_form): Generate label directly.
2454 (output_indirect_string): Test indirect_string_node for
2455 DW_FORM_strp instead of checking label and refcount.
2456 (prune_indirect_string): Removed.
2457 (prune_unused_types): Don't check debug_str_hash_forced or
2458 call prune_indirect_string.
2459
4868e6ea
AO
24602011-05-04 Alexandre Oliva <aoliva@redhat.com>
2461
2462 PR other/48093
2463 * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
2464
01a5c0ab
AO
24652011-05-04 Alexandre Oliva <aoliva@redhat.com>
2466
2467 PR debug/47994
2468 PR debug/47919
2469 * combine.c (try_combine): Skip debug insns at m_split tests.
2470
6ac00218
MW
24712011-04-26 Mark Wielaard <mjw@redhat.com>
2472
2473 PR42288
2474 * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
2475 when info_section_emitted.
2476
3af42a7b
JM
24772011-05-03 Joseph Myers <joseph@codesourcery.com>
2478
2479 * config/mips/mips-opts.h: New.
2480 * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
2481 to mips-opts.h.
2482 (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
2483 (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
2484 or OPT_mr10k_cache_barrier_ here. Access mips_cache_flush_func
2485 via opts pointer.
2486 * config/mips/mips.h (enum mips_code_readable_setting): Move to
2487 mips-opts.h.
2488 (mips_abi, mips_code_readable): Don't declare.
843b6915 2489 * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
3af42a7b
JM
2490 (mabi=): Use Enum and Var.
2491 (mips_abi): New Enum and EnumValue entries.
2492 (mcode-readable=): Use Enum and Var.
2493 (mips_code_readable_setting): New Enum and EnumValue entries.
2494 (mr10k-cache-barrier=): Use Enum and Var.
2495 (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
2496
1cb1a99f
JH
24972011-05-03 Jan Hubicka <jh@suse.cz>
2498
2499 * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
2500 replace hash by pointer map.
2501 (cgraph_node_set_element_def, cgraph_node_set_element,
2502 const_cgraph_node_set_element, varpool_node_set_element_def,
2503 varpool_node_set_element, const_varpool_node_set_element): Remove.
2504 (free_cgraph_node_set, free_varpool_node_set): New function.
2505 (cgraph_node_set_size, varpool_node_set_size): Use vector size.
2506 * tree-emutls.c: Free varpool node set.
2507 * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
2508 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
2509 debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
2510 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
2511 dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
2512 Move here from ipa.c; implement using pointer_map
2513 * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
2514 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
2515 debug_cgraph_node_set, varpool_node_set_new,
2516 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
2517 dump_varpool_node_set, debug_varpool_node_set):
2518 Move to ipa-uitls.c.
2519 * passes.c (ipa_write_summaries): Update.
2520
7f31f4db
SH
25212011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
2522
7a2f7208
UB
2523 From Mike Frysinger:
2524 * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
2525 bf542/bf544/bf547/bf548/bf549.
7f31f4db 2526
b70fce6d
UB
25272011-05-03 Uros Bizjak <ubizjak@gmail.com>
2528
2529 * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
2530
265b1d82
SH
25312011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
2532
2533 From Bernd Schmidt:
2534 * config/bfin/bfin.md (MOVCC): New mode_macro.
2535 (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
2536 movsicc_insn1, movsicc_insn2 and movsicc and macroized. Remove
2537 comments from generated assembly.
2538
f0b568f3
SH
25392011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
2540
2541 From Bernd Schmidt
2542 * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
2543 * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
2544 * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
2545 * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
2546 * config/bfin/lib1funcs.asm (___muldi3): New function.
2547
2c67cf6e
NF
25482011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2549
2550 * config/stormy16/stormy16 (xstormy16_init_builtins): Call
2551 build_function_type_list instead of build_function_type.
2552 Rearrange initialization of `args' to do so.
2553
f9ac28ad
NF
25542011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2555
2556 * config/i386/i386.c (ix86_code_end): Call build_function_type_list
2557 instead of build_function_type.
2558
22b8798c
NF
25592011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2560
2561 * config/rs6000/rs6000.c (spe_init_builtins): Call
2562 build_function_type_list instead of build_function_type.
2563 (paired_init_builtins, altivec_init_builtins): Likewise.
2564 (builtin_function_type): Likewise.
2565
4cb44528
NF
25662011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2567
2568 * config/sh/sh.c (sh_media_init_builtins): Call
2569 build_function_type_list instead of build_function_type.
2570
4c203a6a
NF
25712011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2572
2573 * config/sparc/sparc.c (sparc_file_end): Call
2574 build_function_type_list instead of build_function_type.
2575
d6a3d62b
NF
25762011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2577
2578 * config/alpha/alpha.c (alpha_init_builtins): Call
2579 build_function_type_list instead of build_function_type.
2580
de530b86
NF
25812011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2582
2583 * config/xtensa/xtensa.c (xtensa_init_builtins): Call
2584 build_function_type_list instead of build_function_type.
2585
baeec5f2
NF
25862011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2587
2588 * config/iq2000/i2000.c (iq2000_init_builtins): Call
2589 build_function_type_list instead of build_function_type.
2590 Delete `endlink' variable.
2591
c19afe52
NF
25922011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2593
2594 * config/avr/avr.c (avr_init_builtins): Call
2595 build_function_type_list instead of build_function_type.
2596
a341df0a
NF
25972011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2598
2599 * config/picochip/picochip.c (picochip_init_builtins): Call
2600 build_function_type_list instead of build_function_type.
2601 Delete `endlink' variable.
2602
2102b1e1
NF
26032011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2604
2605 * config/bfin/bfin.c (bfin_init_builtins): Call
2606 build_function_type_list instead of build_function_type.
2607
9f111209
SH
26082011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
2609
2610 From Bernd Schmidt
2611 * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
2612 that's not CONST_INT. Seemingly redundant check is due to PR39768.
2613
7071d064
SH
26142011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
2615
2616 From Jie Zhang:
2617 * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
2618 libbffastfp overrides libgcc when -mfast-fp.
2619
748f7574 26202011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
44fb48ef
SH
2621
2622 Originally from Bernd Schmidt
2623 * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
2624 * config/bfin/bfin.c (override_options): Test it and error if
2625 TARGET_FDPIC.
2626
1a3a9152
SH
26272011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
2628
2629 Originally From Bernd Schmidt
2630 * config/bfin/bfin.c (override_options): Disable -fstack-limit for
2631 FD-PIC.
2632
7134c090
JL
26332011-05-03 Jeff Law <law@redhat.com>
2634
2635 * tree-ssa-threadupdate.c (THREAD_TARGET): define.
2636 (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
2637 (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
b70fce6d
UB
2638 than accessing AUX field directly. Free the AUX field before
2639 clearing it.
7134c090
JL
2640 (thread_block, thread_through_loop_header): Likewise.
2641 (thread_single_edge, mark_threaded_blocks): Likewise.
2642 (redirect_edges): Delay clearing the AUX field. Free the AUX field.
2643 (register_jump_thread): Do not attempt to thread to a NULL edge.
b70fce6d 2644
2c7eebae
BS
26452011-05-03 Bernd Schmidt <bernds@codesourcery.com>
2646
2647 * function.c (init_function_start): Call decide_function_section.
2648 * varasm.c (decide_function_section): New function.
2649 (assemble_start_function): When not using
2650 flag_reorder_blocks_and_partition, don't compute in_cold_section_p
2651 or first_function_block_is_cold.
2652 * rtl.h (decide_function_section): Declare.
2653
17038fcf
JJ
26542011-05-03 Uros Bizjak <ubizjak@gmail.com>
2655 Jakub Jelinek <jakub@redhat.com>
2656
2657 PR target/48774
2658 * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
2659 only succeed if req_mode is the same as set_mode.
2660
3810076b
BS
26612011-05-03 Bernd Schmidt <bernds@codesourcery.com>
2662
2663 * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
2664 * genemit.c (gen_exp): Handle RETURN.
2665 * emit-rtl.c (verify_rtx_sharing): Likewise.
2666 (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
2667 * rtl.c (copy_rtx): RETURN is shared.
2668 * rtl.h (enum global_rtl_index): Add GR_RETURN.
2669 (ret_rtx): New.
2670 * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
2671 * config/s390/s390.c (s390_emit_epilogue): Likewise.
2672 * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
2673 * config/cris/cris.c (cris_expand_return): Likewise.
2674 * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
2675 * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
2676 rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
2677 * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
2678 * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
2679 Likewise.
2680 * config/v850/v850.c (expand_epilogue): Likewise.
2681 * config/bfin/bfin.c (bfin_expand_call): Likewise.
2682 * config/arm/arm.md (epilogue): Likewise.
2683 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
2684 * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
2685 variable to ret_reg.
2686
9efdb4ad
RG
26872011-05-03 Richard Guenther <rguenther@suse.de>
2688
2689 PR lto/48846
2690 * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
2691 Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
2692 * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
2693
60a45536
RG
26942011-05-03 Richard Guenther <rguenther@suse.de>
2695
2696 * c-decl.c (grokdeclarator): Instead of looking at
2697 TREE_OVERFLOW check if the constant fits in the index type.
2698
3188ed59
RS
26992011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
2700
2701 * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
2702 (vec_store_lanes<mode><mode>): Likewise.
2703
272c6793
RS
27042011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
2705
2706 * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
2707 * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
2708 convert_optab_index values.
2709 (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
2710 * genopinit.c (optabs): Initialize the new optabs.
2711 * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
2712 * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
2713 (expand_STORE_LANES): New functions.
2714 * tree.h (build_array_type_nelts): Declare.
2715 * tree.c (build_array_type_nelts): New function.
2716 * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
2717 (vect_model_load_cost): Likewise.
2718 (vect_store_lanes_supported, vect_load_lanes_supported)
2719 (vect_record_strided_load_vectors): Declare.
2720 * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
2721 (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
2722 (vect_transform_strided_load): Split out statement recording into...
2723 (vect_record_strided_load_vectors): ...this new function.
2724 * tree-vect-stmts.c (create_vector_array, read_vector_array)
2725 (write_vector_array, create_array_ref): New functions.
2726 (vect_model_store_cost): Add store_lanes_p argument.
2727 (vect_model_load_cost): Add load_lanes_p argument.
2728 (vectorizable_store): Try to use store-lanes functions for
2729 interleaved stores.
2730 (vectorizable_load): Likewise load-lanes and loads.
2731 * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
2732 to vect_model_store_cost.
2733 (vect_build_slp_tree): Likewise vect_model_load_cost.
2734
0f6d54f7
RS
27352011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
2736
2737 * hooks.h (hook_bool_mode_uhwi_false): Declare.
2738 * hooks.c (hook_bool_mode_uhwi_false): New function.
2739 * target.def (array_mode_supported_p): New hook.
2740 * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
2741 * doc/tm.texi: Regenerate.
2742 * stor-layout.c (mode_for_array): New function.
2743 (layout_type): Use it.
2744 * config/arm/arm.c (arm_array_mode_supported_p): New function.
2745 (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
2746
b15eacc7
EB
27472011-05-03 Eric Botcazou <ebotcazou@adacore.com>
2748
2749 PR target/48723
2750 * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
2751 for -fstack-check if the size to allocate is negative.
2752
575bfb00
LC
27532011-05-02 Lawrence Crowl <crowl@google.com>
2754
2755 * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
2756 (timevar_cond_start): New for starting a timer only when it is not
2757 already running.
2758 (timevar_cond_stop): New for stopping a timer when it was not already
2759 running.
2760
2761 * timevar.c (timevar_stop): Enable start/stop timers to start again.
2762 (timevar_cond_start): New as above.
2763 (timevar_cond_stop): New as above.
2764
2765 * timevar.def: Add start/stop timers for compiler phases,
2766 TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
2767 TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
2768 and TV_PHASE_FINALIZE.
2769 Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
2770 Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
2771 TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
2772 Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
2773 Make unused TV_OVERLOAD into a start/stop timer.
2774
2775 Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
2776 Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
2777 to indicate that they are start/stop timers.
2778
2779 * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
2780 Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
2781 Move initialization to do_compile.
2782 (do_compile): Add initialization from above.
2783 Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
2784
2785 * c-decl.c (c_write_global_declarations): Add start/stop of
2786 TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
2787
2788 * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
2789 or TV_PARSE_INLINE, as appropriate.
2790 (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
2791 (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
2792
3533b943
JM
27932011-05-02 Jason Merrill <jason@redhat.com>
2794
2795 PR c++/40975
2796 * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
2797
2609a0ce
SM
27982011-05-02 Simon Martin <simartin@users.sourceforge.net>
2799
2800 PR c/35445
2801 * c-decl.c (finish_decl): Only create a composite if the types are
2802 compatible.
2803
6b0e4cbb
JM
28042011-05-02 Joseph Myers <joseph@codesourcery.com>
2805
2806 * config/fr30/fr30-protos.h (Mmode): Don't define.
2807 * config/m32r/m32r-protos.h (Mmode): Don't define. Expand
2808 definition where used.
2809 * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
2810 define. Expand definitions where used.
2811 * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
2812 Expand definitions where used.
2813 * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
2814 rx_function_arg, rx_function_arg_advance,
2815 rx_function_arg_boundary): Expand definitions of those macros.
2816 * config/v850/v850-protos.h (Mmode): Don't define. Expand
2817 definition where used.
2818
4e938ce6
UB
28192011-05-02 Uros Bizjak <ubizjak@gmail.com>
2820
2821 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
2822 reg<->xmm moves.
2823 (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
2824 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves. Merge
2825 with *movv2sf_internal_rex64_avx.
2826 (*movv2sf_internal): Merge with *movv2sf_internal_avx.
2827 * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
2828 Use %v prefix in insn mnemonic to handle TARGET_AVX.
2829 (*movdi_internal): Add "isa" attribute. Use "maybe_vex" instead of
2830 "vex" in "prefix" attribute calculation.
2831 (*movdf_internal): Output AVX mnemonics. Add "prefix" attribute.
2832
36019c19
SH
28332011-05-02 Stuart Henderson <shenders@gcc.gnu.org>
2834
7a2f7208
UB
2835 PR target/47951
2836 * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
2837 inputs match the output.
36019c19 2838
f69ea688
AS
28392011-05-02 Andreas Schwab <schwab@linux-m68k.org>
2840
2841 PR target/47955
2842 * config/m68k/m68k.c (m68k_expand_prologue): Set
2843 current_function_static_stack_size.
2844
c33406f5
JH
28452011-05-02 Jan Hubicka <jh@suse.cz>
2846
2847 * lto-streamer.c (lto_streamer_cache_insert_1,
2848 lto_streamer_cache_lookup, lto_streamer_cache_create,
2849 lto_streamer_cache_delete): Use pointer map instead of hashtable.
2850 * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
2851
47c94d21
JM
28522011-05-02 Joseph Myers <joseph@codesourcery.com>
2853
2854 * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
2855 config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
2856 config/m68k/t-opts: New files.
2857 * config/m68k/m68k-tables.opt: New file (generated).
2858 * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
2859 extra_options and m68k/t-opts to tmake_file.
2860 * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
2861 (all_isas): Initialize using m68k-isas.def.
2862 (all_microarchs): Initialize using m68k-microarchs.def.
2863 (m68k_find_selection): Remove.
2864 (m68k_handle_option): Don't assert that global structures are in
2865 use. Use error_at. Access variables via opts pointer. Don't
2866 handle -march=, -mcpu= and -mtune= here. Set gcc_options fields
2867 directly for -m68020-40 and -m68020-60.
2868 (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
2869 m68k_tune_entry here.
2870 * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
2871 to m68k-opts.h.
2872 (m68k_library_id_string): Remove declaration.
4e938ce6 2873 * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
47c94d21
JM
2874 (m68k_library_id_string): New Variable.
2875 (march=, mcpu=, mtune=): Use Enum and Var.
2876
e562bf36
RG
28772011-05-02 Richard Guenther <rguenther@suse.de>
2878
2879 * varasm.c (output_constructor_regular_field): Compute zero-based
2880 index with double-ints. Make sure to ICE instead of producing
2881 wrong code.
2882 * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
2883 in asserts. Properly use a signed type.
2884
6bec6c98
UB
28852011-05-02 Uros Bizjak <ubizjak@gmail.com>
2886
2887 * config/i386/sse.md (V): New mode iterator.
2888 (V_128): Rename from SSEMODE. Make V2DF mode conditional on
2889 TARGET_SSE2.
2890 (V_256): Rename from AVX256MODE.
2891 (VF): Make V4SF mode unconditional. Add TARGET_SSE instruction
2892 condition to all users.
2893 (VF1): Ditto.
2894 (VF2): Make V2DF mode unconditional. Add TARGET_SSE2 instruction
2895 condition to all users.
2896 (VF_128): Make V4SF mode unconditional.
2897 (VF_256): Rename from AVX256MODEF2P.
2898 (VI4F_128): Rename from SSEMODE4S.
2899 (VI8F_128): Rename from SSEMODE2D.
2900 (VI4F_256): Rename from AVX256MODE8P.
2901 (VI8F_256): Rename from AVX256MODE4P.
2902 (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
2903 (ssescalarmodesuffix): Remove SF and DF modes.
2904 (SSEMODE124): Remove.
2905 (SSEMODE1248): Ditto.
2906 (SSEMODEF2P): Ditto.
2907 (AVXMODEF2P): Ditto.
2908 (AVXMODEFDP): Ditto.
2909 (AVXMODEFSP): Ditto.
2910 (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
2911 unconditional.
2912 (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO. Make V4SF mode
2913 unconditional.
2914 (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
2915 xop_pcmov_<mode>256. Use V mode iterator.
2916
2917 Adjust RTX patterns globally for renamed mode attributes.
2918
2dfdcb4b
UW
29192011-05-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2920
2921 * haifa-sched.c (sched_emit_insn): Emit insn before first
2922 non-scheduled insn. Inform back-end about new insn. Add
2923 new insn to scheduled_insns list.
2924
90bc4623
RG
29252011-05-02 Richard Guenther <rguenther@suse.de>
2926
2927 PR tree-optimization/48822
2928 * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
2929 (process_scc): Indicate which iteration we start.
2930
bc0fe8cb
JH
29312011-05-02 Jan Hubicka <jh@suse.cz>
2932
2933 * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
2934 (lto_section_overrun): New.
2935 * lto-section-out.c (append_block): Rename to ...
2936 (lto_append_block): ... this one; export.
2937 (lto_output_1_stream): Move lto lto-streamer.h
2938 (lto_output_data_stream): Update.
2939 * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
2940 (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
2941 functions.
2942
f070a9d1
RG
29432011-05-02 Richard Guenther <rguenther@suse.de>
2944
2945 * tree.c (tree_code_counts): New global array.
2946 (record_node_allocation_statistics): Count individual tree codes.
2947 (dump_tree_statistics): Dump individual code stats.
2948
09dfe187
JH
29492011-05-01 Jan Hubicka <jh@suse.cz>
2950
2951 * ipa-inline.c (caller_growth_limits): Fix thinko when
2952 looking for largest stack frame.
2953 * ipa-inline.h (dump_inline_summary): Declare.
2954 * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
2955 on stack usage.
2956 (dump_inline_summary): Export.
2957 (debug_inline_summary): Declare as DEBUG_FUNCTION.
2958
6f76a878
AS
29592011-05-01 Anatoly Sokolov <aesok@post.ru>
2960
2961 * reginfo.c (memory_move_cost): Change rclass argument type form
2962 'enum reg_class' to reg_class_t.
2963 * reload.h (memory_move_cost): Update prototype.
2964 * postreload.c reload_cse_simplify_set): Change type dclass var to
2965 reg_class_t.
2966 * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
2967 Update prototype.
2968 (ira_allocate_and_set_costs): Change aclass argument type form
2969 'enum reg_class' to reg_class_t.
6bec6c98 2970 * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
6f76a878
AS
2971 Change aclass argument type to reg_class_t.
2972 (update_conflict_hard_reg_costs): Change type aclass and pref vars
2973 to reg_class_t.
2974 * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
2975 memory_move_cost call.
2976
2977 * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
2978 'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
2979 Change type tmp var to reg_class_t.
2980
9a4ac625
JH
29812011-04-30 Jan Hubicka <jh@suse.cz>
2982
2983 * ipa-inline.c (can_inline_edge_p): Disregard limits when
2984 inlining into function with flatten attribute.
2985 (want_inline_small_function_p): Be more realistic about inlining
2986 cold calls where callee size grows.
2987
dd8352ee
JH
29882011-04-30 Jan Hubicka <jh@suse.cz>
2989
2990 * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
2991 flags.
2992
46e43d2b
AS
29932011-04-30 Anatoly Sokolov <aesok@post.ru>
2994
2995 * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
2996 PRINT_OPERAND_PUNCT_VALID_P): Remove.
2997 * config/sparc/sparc-protos.h (print_operand): Remove declaration.
2998 * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
2999 TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
3000 (print_operand): Rename to...
3001 (sparc_print_operand): ...this. Make static. Adjust
3002 sparc_print_operand function call.
3003 (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
3004 functions.
3005
ecb62563
JH
30062011-04-30 Jan Hubicka <jh@suse.cz>
3007
6bec6c98 3008 PR middle-end/48752
ecb62563
JH
3009 * ipa-inline.c (early_inliner): Disable when doing late
3010 addition of function.
3011
edb9b69e
JJ
30122011-04-30 Jakub Jelinek <jakub@redhat.com>
3013
be80a87e
JJ
3014 * dwarf2out.c (get_address_mode): New inline.
3015 (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
3016 if not dwarf_strict emit
3017 DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
3018 desirable. Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
3019 UNSIGNED_FLOAT, FIX and UNSIGNED_FIX. Just return NULL for
3020 FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
3021 (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
3022 dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
3023 mem_loc_descriptor callers.
3024 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
3025 output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
3026 Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
3027 DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
3028 (base_types): New variable.
3029 (get_base_type_offset, calc_base_type_die_sizes,
3030 base_type_for_mode, mark_base_types, base_type_cmp,
3031 move_marked_base_types): New functions.
3032 (calc_die_sizes): Assert that die_offset is 0 or equal to
3033 next_die_offset.
3034 (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
3035 others defer to mem_loc_descriptor. Adjust mem_loc_descriptor
3036 callers. If not dwarf_strict, call mem_loc_descriptor even for
3037 non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
3038 (gen_subprogram_die): Don't give up on call site parameters
3039 with non-integral or large integral modes. Adjust
3040 mem_loc_descriptor callers.
3041 (prune_unused_types): Call prune_unused_types_mark on base_types
3042 vector entries.
3043 (resolve_addr): Call mark_base_types.
3044 (dwarf2out_finish): Call move_marked_base_types.
3045
edb9b69e
JJ
3046 PR tree-optimization/48809
3047 * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
3048 type.
3049 (gen_inbound_check): Don't compute index_expr - range_min in utype
3050 again, instead reuse SSA_NAME initialized in build_arrays.
3051 Remove two useless gsi_for_stmt calls.
3052
a6545a3d
JL
30532011-04-29 Jeff Law <law@redhat.com>
3054
3055 * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
3056
af8bca3c
MJ
30572011-04-29 Martin Jambor <mjambor@suse.cz>
3058
3059 * cgraph.h (cgraph_postorder): Remove declaration.
3060 * ipa-utils.h (ipa_free_postorder_info): Declare.
3061 (ipa_reverse_postorder): Likewise.
3062 * cgraphunit.c: Include ipa-utils.h.
3063 (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
3064 * ipa-inline.c: Include ipa-utils.h.
3065 (ipa_inline): Update call to ipa_reverse_postorder.
3066 * ipa-pure-const.c (propagate_pure_const): Update call to
3067 ipa_reduced_postorder and ipa_print_order. Call
3068 ipa_free_postorder_info to clean up.
3069 (propagate_nothrow): Likewise.
3070 * ipa-reference.c (propagate): Removed a useless call to
3071 ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
3072 and ipa_print_order. Call ipa_free_postorder_info to clean up.
3073 * ipa.c: Include ipa-utils.h.
3074 (ipa_profile): Update call to ipa_reverse_postorder.
3075 (cgraph_postorder): Moved to...
3076 * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
3077 (ipa_utils_print_order): Renamed to ipa_print_order.
3078 (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
3079 comments.
3080 (ipa_free_postorder_info): New function.
3081 * passes.c: Include ipa-utils.h.
3082 (do_per_function_toporder): Update call to ipa_reverse_postorder.
3083 (ipa_write_summaries): Likewise.
3084 * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
3085 (cgraphunit.o): Likewise.
3086 (ipa.o): Likewise.
3087 (ipa-inline.o): Likewise.
3088
b15c64ee
JH
30892011-04-29 Jan Hubicka <jh@suse.cz>
3090
3091 * gcc.dg/tree-ssa/inline-10.c: New testcase.
3092 * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
3093 * ipa-inline.h (clause_t): Turn into unsigned int.
3094 * ipa-inline-analysis.c (add_clause): Do more simplification.
3095 (and_predicates): Shortcut more cases.
3096 (predicates_equal_p): Move forward; check that clauses are properly
3097 ordered.
3098 (or_predicates): Shortcut more cases.
3099 (edge_execution_predicate): Rewrite as...
3100 (set_cond_stmt_execution_predicate): ... this function; handle
3101 __builtin_constant_p.
3102 (set_switch_stmt_execution_predicate): New .
3103 (compute_bb_predicates): New.
3104 (will_be_nonconstant_predicate): Update TODO.
3105 (estimate_function_body_sizes): Use compute_bb_predicates
3106 and free them later, always try to estimate if stmt is constant.
3107 (estimate_time_after_inlining, estimate_size_after_inlining):
3108 Gracefully handle optimized out edges.
3109 (read_predicate): Fix off by one error.
3110
a88fdc2a
NP
31112011-04-29 Nicola Pero <nicola.pero@meta-innovation.com>
3112
3113 * Makefile.in (ENABLE_MAINTAINER_RULES): New.
3114
d984c8ef
XDL
31152011-04-27 Xinliang David Li <davidxl@google.com>
3116
3117 * tree-profile.c (init_ic_make_global_vars): Set
3118 tls attribute on ic vars.
3119 * coverage.c (coverage_end_function): Initialize
3120 function_list with zero.
3121
45a2c477
RG
31222011-04-29 Richard Guenther <rguenther@suse.de>
3123
3124 * builtins.c (fold_builtin_classify_type): Use integer_type_node
3125 for the type of the result.
3126 (fold_builtin_isascii): Likewise.
3127 (fold_builtin_toascii): Use integer_type_node where appropriate.
3128 (fold_builtin_logb): Likewise.
3129 (fold_builtin_frexp): Likewise.
3130 (fold_builtin_strstr): Likewise.
3131 (fold_builtin_strpbrk): Likewise.
3132 (fold_builtin_fputs): Likewise.
3133 (fold_builtin_sprintf): Likewise.
3134 (fold_builtin_snprintf): Likewise.
3135 (fold_builtin_printf): Likewise.
3136 (do_mpfr_remquo): Use a proper type for the assigned constant.
3137 (do_mpfr_lgamma_r): Likewise.
3138 * dwarf2out.c (resolve_one_addr): Use size_int.
3139 * except.c (init_eh): Likewise.
3140 (assign_filter_values): Use integer_type_node for filter values.
3141 (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
3142 indices.
3143 * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
3144 for EH region numbers.
3145 * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
3146 for the shift amount.
3147
eb6c3df1
RG
31482011-04-29 Richard Guenther <rguenther@suse.de>
3149
3150 * expr.h (expand_shift): Rename to ...
3151 (expand_variable_shift): ... this.
3152 (expand_shift): Take a constant shift amount.
3153 * expmed.c (expand_shift): Rename to ...
3154 (expand_variable_shift): ... this.
3155 (expand_shift): New wrapper around expand_variable_shift.
3156 * expr.c (convert_move, emit_group_load_1, emit_group_store,
3157 optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
3158 expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
3159 * expmed.c (store_fixed_bit_field, extract_bit_field_1,
3160 extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
3161 expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
3162 extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
3163 emit_store_flag_1, emit_store_flag): Likewise.
3164 * builtins.c (expand_builtin_signbit): Likewise.
3165 * calls.c (load_register_parameters): Likewise.
3166 * function.c (assign_parm_setup_block): Likewise.
3167 * lower-subreg.c (resolve_shift_zext): Likewise.
3168 * optabs.c (widen_bswap, expand_abs_nojump,
3169 expand_one_cmpl_abs_nojump, expand_float): Likewise.
3170 * spu/spu.c (spu_expand_extv): Likewise.
3171 * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
3172
9f616812
RG
31732011-04-29 Richard Guenther <rguenther@suse.de>
3174
3175 * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
3176 for the remapped region number.
3177 * predict.c (build_predict_expr): Use integer_type_node for the
3178 predict kind.
3179 * fold-const.c (fold_binary_loc): Use integer_type_node for
3180 the shift amount. Use a proper type for the PLUS_EXPR operand.
3181
b823cdfe
MM
31822011-04-29 Michael Matz <matz@suse.de>
3183
3184 * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
3185 other trees that just builtins.
3186 (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
3187
413581ba
RG
31882011-04-29 Richard Guenther <rguenther@suse.de>
3189
3190 * tree-nested.c (get_trampoline_type): Use size_int.
3191 (get_nl_goto_field): Likewise.
3192 * tree-eh.c (lower_try_finally_switch): Use integer_type_node
3193 for all indexes.
3194 (lower_eh_constructs_2): Likewise.
3195 (lower_resx): Likewise.
3196 (lower_eh_dispatch): Likewise.
3197 * tree-mudflap.c (mf_build_string): Use size_int.
3198 (mudflap_register_call): Use integer_type_node for the flag.
3199 (mudflap_enqueue_constant): Use size_int.
3200 * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
3201 instead of rebuilding it.
3202
5c04e9f4
RG
32032011-04-29 Richard Guenther <rguenther@suse.de>
3204
3205 * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
3206 Handle OBJ_TYPE_REF.
3207 (find_func_aliases_for_call): Use it more consistently.
3208
5c24671b
AO
32092011-04-29 Alexandre Oliva <aoliva@redhat.com>
3210
3211 * haifa-sched.c (last_nondebug_scheduled_insn): New.
3212 (rank_for_schedule): Use it.
3213 (schedule_block): Set it.
3214
10adac51
XDL
32152011-04-28 David Li <davidxl@google.com>
3216
3217 * tree.c (crc32_string): Use crc32_byte.
3218 (crc32_byte): New function.
3219 * tree.h (crc32_byte): New function.
3220 * gcov.c (read_graph_file): Handle new cfg_cksum.
3221 (read_count_file): Ditto.
3222 * profile.c (instrument_values): Ditto.
3223 (get_exec_counts): Ditto.
3224 (read_profile_edge_counts): Ditto.
3225 (compute_branch_probabilities): Ditto.
3226 (compute_value_histograms): Ditto.
3227 (branch_prob): Ditto.
3228 (end_branch_prob): Ditto.
3229 * coverage.c (read_counts_file): Ditto.
3230 (get_coverage_counts): Ditto.
3231 (tree_coverage_counter_addr): Ditto.
3232 (coverage_checksum_string): Ditto.
3233 (coverage_begin_output): Ditto.
3234 (coverage_end_function): Ditto.
3235 (build_fn_info_type): Ditto.
3236 (build_fn_info_value): Ditto.
3237 * libgcov.c (gcov_exit): Ditto.
3238 * gcov-dump.c (tag_function): Ditto.
3239 (compute_checksum): Remove.
3240
5d6358a5
AM
32412011-04-29 Alan Modra <amodra@gmail.com>
3242
3243 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
3244 unspec plus offset. Tidy macho code.
3245
85ad2ef5
MJ
32462011-04-29 Martin Jambor <mjambor@suse.cz>
3247
3248 * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
3249 node instead of a decl. Update all callers.
3250 * cgraph.h: Update declaration.
3251
437f4a00
IR
32522011-04-28 Ira Rosen <ira.rosen@linaro.org>
3253
3254 PR tree-optimization/48765
3255 * tree-vectorizer.h (vect_make_slp_decision): Return bool.
3256 * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
3257 to indicate if loop aware SLP is being used. Scan the statements
3258 and update the vectorization factor according to the type of
3259 vectorization before statement analysis.
3260 (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
3261 pass it to vect_analyze_loop_operations.
3262 (vectorizable_reduction): Set number of copies to 1 in case of pure
3263 SLP statement.
3264 * tree-vect-stmts.c (vectorizable_conversion,
3265 vectorizable_assignment, vectorizable_shift,
3266 vectorizable_operation, vectorizable_type_demotion,
3267 vectorizable_type_promotion, vectorizable_store, vectorizable_load):
3268 Likewise.
3269 (vectorizable_condition): Move the check that it is not SLP
3270 vectorization before the number of copies check.
3271 * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
3272 to vectorize the loop using SLP.
3273
c6fc44f3
JJ
32742011-04-28 Jakub Jelinek <jakub@redhat.com>
3275
3276 PR middle-end/48597
3277 * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
3278 inline asm.
3279
6c0170ea
JM
32802011-04-28 Joseph Myers <joseph@codesourcery.com>
3281
3282 * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
3283 *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
3284 (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
3285 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
3286 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
3287 linux*.h headers.
6bec6c98 3288 * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
6c0170ea
JM
3289 * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
3290 * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
3291 * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6bec6c98 3292 * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6c0170ea
JM
3293 * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
3294 REG_NAME.
3295 * config/i386/linux.h (REG_NAME): Don't define.
3296 * config/i386/linux64.h (REG_NAME): Don't define.
3297 * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
3298 Undefine before defining.
3299
970dabbd
JH
33002011-04-28 Jan Hubicka <jh@suse.cz>
3301
6bec6c98
UB
3302 * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
3303 nonconstant_names array.
970dabbd
JH
3304 (estimate_function_body_sizes): Build nonconstant_names array; handle
3305 BUILT_IN_CONSTANT_P.
3306
8d3e3924
RG
33072011-04-28 Richard Guenther <rguenther@suse.de>
3308
3309 PR bootstrap/48804
3310 Revert
3311 2011-04-28 Richard Guenther <rguenther@suse.de>
3312
3313 * tree-ssa-structalias.c (solve_constraints): Build succ graph
3314 as late as possible.
6bec6c98 3315
8576f20a
RG
33162011-04-28 Richard Guenther <rguenther@suse.de>
3317
3318 * tree-ssa-structalias.c (dump_constraint): Don't end the line.
3319 (debug_constraint): Do it here.
3320 (dump_constraints): And here.
3321 (rewrite_constraints): And here.
3322 (dump_constraint_edge): Remove.
3323 (dump_constraint_graph): Rewrite to produce DOT output.
3324 (solve_constraints): Build succ graph as late as possible.
3325 Dump constraint graphs before and after solving.
3326
e38811ce
RG
33272011-04-28 Richard Guenther <rguenther@suse.de>
3328
3329 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
3330 New function split out from ...
3331 (find_func_aliases): ... here. Call it.
3332 (find_func_aliases_for_call): Likewise.
3333
fbaf0d0c
GDR
33342011-04-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
3335
3336 * internal-fn.h (internal_fn_name_array): Declare.
3337 (internal_fn_flags_array): Likewise.
3338
cbb734aa
UB
33392011-04-27 Uros Bizjak <ubizjak@gmail.com>
3340
3341 * config/i386/i386.md (ssemodesuffix): Merge with ssevecsize,
3342 ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
3343 Move from sse.md.
3344 (ssemodefsuffix): Remove.
3345 (ssevecmodesuffix): New mode attribute.
3346 (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
3347 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
3348 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
3349 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
3350 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
3351 *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
3352 *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
3353 ssemodesuffix mode attribute.
3354 (float splitters): Use ssevecmodesuffix mode attribute.
3355 * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
3356 (sseinsmode): Rename from avxvecmode.
3357 (avxsizesuffix): Rename from avxmodesuffix.
3358 (sseintvecmode): Rename from avxpermvecmode.
3359 (ssedoublevecmode): Rename from ssedoublesizemode.
3360 (ssehalfvecmode): Rename from avxhalfvecmode.
3361 (ssescalarmode): Rename from avxscalarmode.
3362 (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
3363 templates for ssemodesuffix mode attribute.
3364 (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
3365 mode attribute.
3366
3367 Adjust RTX patterns globally for renamed mode attributes.
3368
991278ab
JH
33692011-04-27 Jan Hubcika <jh@suse.cz>
3370
3371 * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
3372 * ipa-inline-analysis.c: Include alloc-pool.h.
3373 (edge_predicate_pool): New.
3374 (trye_predicate_p): New function
3375 (false_predicate_p): New function.
3376 (add_clause): Sanity check that false clauses are "optimized";
3377 never add clauses to predicate that is already known to be false.
3378 (and_predicate): Use flase_predicate_p.
3379 (evaulate_predicate): Rename to ...
3380 (evaluate_predicate): ... this one; update all callers; assert
3381 that false is not listed among possible truths.
3382 (dump_predicate): Use true_predicate_p.
3383 (account_size_time): Use false_predicate_p.
3384 (evaulate_conditions_for_edge): Rename to ...
3385 (evaluate_conditions_for_edge) ... this one.
3386 (edge_set_predicate): New function.
3387 (inline_edge_duplication_hook): Duplicate edge predicates.
3388 (inline_edge_removal_hook): Free edge predicates.
cbb734aa 3389 (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
991278ab
JH
3390 (dump_inline_summary): Update.
3391 (estimate_function_body_sizes): Set edge predicates.
3392 (estimate_calls_size_and_time): Handle predicates.
3393 (estimate_callee_size_and_time): Update.
3394 (remap_predicate): Add toplev_predicate; update comment.
3395 (remap_edge_predicates): New function.
3396 (inline_merge_summary): Compute toplev predicate; update.
3397 (read_predicate): New function.
3398 (read_inline_edge_summary): Use it.
3399 (inline_read_section): Likewise.
3400 (write_predicate): New function.
3401 (write_inline_edge_summary): Use it.
3402 (inline_write_summary): Likewise.
3403 (inline_free_summary): Free alloc pool and edge summary vec.
3404
648b5f85
RG
34052011-04-27 Richard Guenther <rguenther@suse.de>
3406
3407 * tree-ssa-structalias.c (changed_count): Remove.
3408 (changed): Use a bitmap.
3409 (unify_nodes): Adjust.
3410 (do_sd_constraint): Likewise.
3411 (do_ds_constraint): Likewise.
3412 (do_complex_constraint): Likewise.
3413 (solve_graph): Likewise.
3414
4d5dcfb2
JH
34152011-04-27 Jan Hubicka <jh@suse.cz>
3416
3417 * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
3418
200eb7d2
UB
34192011-04-27 Uros Bizjak <ubizjak@gmail.com>
3420
3421 * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
3422 (avx_vperm2f128_*_operand): Ditto.
3423 * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
3424 Use avx_vpermilp_parallel in insn condition.
3425 (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
3426 Use avx_vperm2f128_parallel in insn condition.
3427
7d6e2521
RG
34282011-04-27 Richard Guenther <rguenther@suse.de>
3429
3430 * Makefile.in (tree-ssa-structalias.o): Remove
3431 gt-tree-ssa-structalias.h dependency.
3432 (GTFILES): Remove tree-ssa-structalias.c.
3433 * tree.c (allocate_decl_uid): New function.
3434 (make_node_stat): Use it.
3435 (copy_node_stat): Likewise.
3436 * tree.h (allocate_decl_uid): Declare.
3437 * tree-ssa-alias.h (delete_alias_heapvars): Remove.
3438 * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
3439 * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
200eb7d2 3440 * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
7d6e2521
RG
3441 * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
3442 (struct heapvar_map): Likewise.
3443 (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
3444 heapvar_insert): Likewise.
3445 (make_heapvar_for): Rename to ...
3446 (make_heapvar): ... this. Simplify.
3447 (fake_var_decl_obstack): New global var.
3448 (build_fake_var_decl): New function.
3449 (make_constraint_from_heapvar): Adjust.
3450 (handle_lhs_call): Likewise.
3451 (create_function_info_for): Likewise.
3452 (intra_create_variable_infos): Likewise.
3453 (init_alias_vars): Allocate fake_var_decl_obstack.
3454 (init_alias_heapvars, delete_alias_heapvars): Remove.
3455 (compute_points_to_sets): Do not call init_alias_heapvars.
3456 (ipa_pta_execute): Likewise.
3457 (delete_points_to_sets): Free fake_var_decl_obstack.
3458
526ed6c2
UW
34592011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3460
3461 * config/spu/divmovti4.c (union qword_UTItype): New data type.
3462 (si_from_UTItype, si_to_UTItype): New functions.
3463 (__udivmodti4): Use them to implement type-punning.
3464 * config/spu/multi3.c (union qword_TItype): New data type.
3465 (si_from_TItype, si_to_TItype): New functions.
3466 (__multi3): Use them to implement type-punning.
3467
c187d33c
UW
34682011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3469
3470 * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
3471
40982661
JH
34722011-04-27 Jan Hubicka <jh@suse.cz>
3473
3474 * ipa-prop.c (function_insertion_hook_holder): New holder.
3475 (ipa_add_new_function): New function.
200eb7d2
UB
3476 (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
3477 Register/deregister holder.
40982661 3478
9aef53ee
RG
34792011-04-27 Richard Guenther <rguenther@suse.de>
3480
3481 PR tree-optimization/48772
200eb7d2 3482 * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
9aef53ee 3483
f63d806d
RG
34842011-04-27 Richard Guenther <rguenther@suse.de>
3485
3486 * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
3487 TARGET_MEM_REF handling.
3488
e1ea7451
NC
34892011-04-27 Nick Clifton <nickc@redhat.com>
3490
9b5db25d
NC
3491 * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
3492 ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
3493 (REG_CLASS_NAMES): Likewise.
3494 (REG_CLASS_CONTENTS): Likewise.
3495 (EVEN_ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
3496 (ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
3497 (FEVEN_REGS): New macro. Alias for QUAD_ACC_REGS.
3498 (FPR_REGS): New macro. Alias for QUAD_ACC_REGS.
3499 (EVEN_REGS): New macro. Alias for QUAD_REGS.
3500 * config/frv/frv.c (frv_secondary_reload_class): Remove use of
3501 duplicate register classes.
97d20907 3502 (frv_class_likely_spilled_p): Likewise.
9b5db25d
NC
3503 (frv_register_move_cost): Likewise.
3504
e1ea7451
NC
3505 * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
3506 end of the regno_reg_class array.
3507
5c2f94b4
JJ
35082011-04-27 Jakub Jelinek <jakub@redhat.com>
3509
3510 PR c/48742
3511 * c-typeck.c (build_binary_op): Don't wrap arguments if
3512 int_operands is true.
3513
57a944d7
KK
35142011-04-26 Kaz Kojima <kkojima@gcc.gnu.org>
3515
3516 PR target/48767
3517 * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
3518 targetm.calls.must_pass_in_stack for void type.
3519
898b8927
JH
35202011-04-26 Jan Hubicka <jh@suse.cz>
3521
3522 * cgraphbuild.c (build_cgraph_edges): Update call
3523 of cgraph_create_edge and cgraph_create_indirect_edge.
3524 * cgraph.c (cgraph_create_edge_including_clones,
3525 cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
3526 cgraph_update_edges_for_call_stmt_node): Do not take nest
3527 argument; do not initialize call_stmt_size/time.
3528 (dump_cgraph_node): Do not dump nest.
3529 (cgraph_clone_edge): Do not take loop_nest argument;
3530 do not propagate it; do not clone call_stmt_size/time.
3531 (cgraph_clone_node): Likewise.
3532 (cgraph_create_virtual_clone): Update.
3533 * cgraph.h (struct cgraph_edge): Remove
3534 call_stmt_size/call_stmt_time/loop_nest.
3535 (cgraph_create_edge, cgraph_create_indirect_edge,
3536 cgraph_create_edge_including_clones, cgraph_clone_node): Update
3537 prototype.
3538 * tree-emutls.c (gen_emutls_addr): Update.
3539 * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
3540 loop_nest; handle indirect calls, too.
3541 (clone_inlined_nodes): Do not care about updating inline summaries.
3542 * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
3543 * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
3544 stream call_stmt_size/call_stmt_time/loop_nest.
3545 * ipa-inline.c (edge_badness): Update.
3546 (ipa_inline): dump summaries after inlining.
3547 * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
200eb7d2 3548 New.
898b8927
JH
3549 (inline_edge_summary): New function.
3550 * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
3551 (inline_edge_removal_hook): Handle edge summaries.
3552 (inline_edge_duplication_hook): New hook.
3553 (inline_summary_alloc): Alloc hooks.
3554 (initialize_growth_caches): Do not register removal hooks.
3555 (free_growth_caches); Do not free removal hook.
3556 (dump_inline_edge_summary): New function.
3557 (dump_inline_summary): Use it.
3558 (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
3559 (inline_update_callee_summaries): New function.
3560 (inline_merge_summary): Use it.
3561 (do_estimate_edge_time, do_estimate_edge_growth): Update.
3562 (read_inline_edge_summary): New function.
3563 (inline_read_section): Use it.
3564 (write_inline_edge_summary): New function.
3565 (inline_write_summary): Use it.
3566 (inline_free_summary): Free edge new holders.
3567 * tree-inline.c (copy_bb): Update.
3568
ffa03772
JM
35692011-04-26 Jason Merrill <jason@redhat.com>
3570
3571 * tree-eh.c (lower_try_finally_switch): Create the label along with
3572 the CASE_LABEL_EXPR.
3573
6d7b45ad
DM
35742011-04-26 David S. Miller <davem@davemloft.net>
3575 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3576
3577 * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
3578 * configure: Regenerate.
3579
df10b6d4
MM
35802011-04-26 Michael Meissner <meissner@linux.vnet.ibm.com>
3581
3582 PR target/48258
3583 * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
3584 reduction.
3585 (VEC_reduc): New code iterator and splitters for vector reduction.
3586 (VEC_reduc_name): Ditto.
3587 (VEC_reduc_rtx): Ditto.
3588 (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
3589 (reduc_<VEC_reduc_name>_v4sf): Ditto.
3590
3591 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
3592 support for extracting SF on VSX.
3593
3594 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
3595 generating xscvspdp.
3596 (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
3597 (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
3598 double add, minimum, maximum vector reduction.
3599 (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
3600 (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
3601 optimize double vector reduction.
3602 (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
3603
35a5db04
JM
36042011-04-26 Joseph Myers <joseph@codesourcery.com>
3605
3606 * config/fr30/fr30.h (inhibit_libc): Don't define.
3607 * config/m32r/m32r-protos.h: Correct comment.
3608 * config/v850/v850.h (GHS_default_section_names,
3609 GHS_current_section_names): Use tree, not union tree_node *.
3610
2f964ad6
XDL
36112011-04-26 Xinliang David Li <davidxl@google.com>
3612
200eb7d2 3613 * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
2f964ad6
XDL
3614 * c-family/c-opts.c (c_common_handle_option): Set
3615 warn_maybe_uninitialized.
3616 * opts.c (common_handle_option): Ditto.
3617 * common.opt: New option.
3618 * tree-ssa.c (warn_uninit): Add one more parameter.
3619 (warn_uninitialized_var): Pass warning code.
3620 * tree-flow.h: Interface change.
3621
3622
9c7bd91a
RO
36232011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3624
200eb7d2 3625 * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
9c7bd91a
RO
3626 (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
3627 (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
3628
c2f36e21
RO
36292011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3630
3631 * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
3632 * config/mips/mips.opt (mmips-tfile): Remove.
3633
3634 * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
3635 mips-tdump reference to ...
200eb7d2 3636 (Specific, alpha*-dec-osf5.1): ... here. Adapt for Tru64 UNIX.
c2f36e21
RO
3637 * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
3638 reference by Tru64 UNIX.
3639
2c9da85b
JJ
36402011-04-26 Jakub Jelinek <jakub@redhat.com>
3641
0c5f6539
JJ
3642 PR debug/48768
3643 * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
3644 is error_mark_node, set value to NULL.
3645
2c9da85b
JJ
3646 PR tree-optimization/48734
3647 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
3648 if return value from maybe_fold_*_comparsions isn't something
3649 the code is prepared to handle.
3650
77fa1d54
UB
36512011-04-26 Uros Bizjak <ubizjak@gmail.com>
3652
3653 * config/i386/predicates.md (ext_QIreg_operand): Remove extra
3654 mode check.
3655 (ext_QIreg_nomode_operands): Remove.
3656 * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
3657 (*andsi_1): Ditto.
3658 (*andhi_1): Ditto.
3659
0e2a6c2b
AS
36602011-04-26 Andrew Stubbs <ams@codesourcery.com>
3661
3662 * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
3663
961562d8
RB
36642011-04-26 Richard Guenther <rguenther@suse.de>
3665
3666 * c-typeck.c (build_unary_op): Do not expand array-refs via
3667 pointer arithmetic. Only adjust qualifiers for function types.
3668
36692011-04-26 Richard Guenther <rguenther@suse.de>
3670
3671 PR middle-end/48694
3672 * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
3673 * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
77fa1d54
UB
3674 compare the operands with OEP_CONSTANT_ADDRESS_OF. Treat trees
3675 with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
961562d8 3676
a0d260fc
PC
36772011-04-25 Paolo Carlini <paolo.carlini@oracle.com>
3678
6bec6c98 3679 * doc/extend.texi: Document __underlying_type.
a0d260fc 3680
4d583bb9
SB
36812011-04-25 Segher Boessenkool <segher@kernel.crashing.org>
3682
3683 * config/rs6000/titan.md (automata_option "progress"): Remove.
3684
1f3fcdc3
JL
36852011-04-25 Jeff Law <law@redhat.com>
3686
3687 * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
3688
e5b0dad8
JK
36892011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com>
3690
3691 * system.h (ENUM_BITFIELD): Remove.
3692
5157a881 36932011-04-25 Maxim Kuvyrkov <maxim@codesourcery.com>
b15eacc7 3694 Eric Botcazou <ebotcazou@adacore.com>
5157a881
MK
3695
3696 * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
3697 for STORE_FLAG_VALUE==-1 case.
3698
ed4c109e
RS
36992011-04-24 Richard Sandiford <richard.sandiford@linaro.org>
3700
3701 PR target/43804
3702 * config/m68k/constraints.md (T): Allow PIC operands that satisfy
3703 LEGITIMATE_PIC_OPERAND_P.
3704
f3181aa2
JH
37052011-04-24 Jan Hubicka <jh@suse.cz>
3706
3707 * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
3708 WPA hack.
77fa1d54
UB
3709 * ipa-prop.h (ipa_get_param, ipa_is_param_used,
3710 ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
3711 ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
f3181aa2
JH
3712 * ipa-inline-analysis.c (add_clause): Fix clause ordering.
3713 (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
3714 Sanity check predicate length.
3715 (remap_predicate): Likewise; sanity check jump functions.
3716 (inline_read_section, inline_write_summary): Sanity check
3717 predicate length.
3718
5307cbaa
PC
37192011-04-24 Paolo Carlini <paolo.carlini@oracle.com>
3720
3721 PR other/48748
3722 * doc/extend.texi (Type Traits): Document __is_standard_layout,
3723 __is_literal_type, and __is_trivial; update throughout about
3724 possibly cv-qualified void types.
3725
bebd5f99
GP
37262011-04-24 Gerald Pfeifer <gerald@pfeifer.com>
3727
3728 * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
3729 testsuite and make it version agnostic.
3730
7ee28a74
JH
37312011-04-22 Jan Hubicka <jh@suse.cz>
3732
3733 * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
3734
16997bc0
JJ
37352011-04-23 Jakub Jelinek <jakub@redhat.com>
3736
3737 PR c/48685
3738 * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
3739 to VOID_TYPE even around MODIFY_EXPR.
3740
f94d4ab1
MS
37412011-04-22 Mike Stump <mikestump@comcast.net>
3742
1a84c183 3743 * gensupport.c (read_md_rtx): Fix typo in comment.
f94d4ab1
MS
3744 * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
3745 comment.
3746
632b4f8e
JH
37472011-04-22 Jan Hubicka <jh@suse.cz>
3748
3749 * gengtype.c (open_base_files): Add ipa-inline.h include.
77fa1d54
UB
3750 * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
3751 ipa-prop.c; update all uses.
632b4f8e 3752 * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
77fa1d54
UB
3753 * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
3754 merge summary of inlined function into former caller.
632b4f8e
JH
3755 * ipa-inline.c (max_benefit): Remove.
3756 (edge_badness): Compensate for removal of benefits.
77fa1d54
UB
3757 (update_caller_keys): Use
3758 reset_node_growth_cache/reset_edge_growth_cache.
632b4f8e
JH
3759 (update_callee_keys): Likewise.
3760 (update_all_callee_keys): Likewise.
77fa1d54
UB
3761 (inline_small_functions): Do not collect max_benefit; do not reset
3762 estimated_growth; call free_growth_caches and initialize_growth_caches.
3763 * ipa-inline.h (struct condition, type clause_t, struct predicate,
3764 struct size_time_entry): New structures.
632b4f8e 3765 (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
77fa1d54
UB
3766 (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
3767 and estimated_growth.
632b4f8e
JH
3768 (edge_growth_cache_entry): New structure.
3769 (node_growth_cache, edge_growth_cache): New global vars.
3770 (estimate_growth): Turn into inline.
3771 (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
3772 initialize_growth_caches, free_growth_caches): Declare.
3773 (estimate_edge_growth): Rewrite.
3774 (estimate_edge_time): Implement as inline cache lookup.
77fa1d54
UB
3775 (reset_node_growth_cache, reset_edge_growth_cache): New inline
3776 functions.
632b4f8e
JH
3777 (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
3778 (NUM_CONDITIONS): New constant.
3779 (predicate_conditions): New enum.
3780 (IS_NOT_CONSTANT): New constant.
3781 (edge_removal_hook_holder): New var.
3782 (node_growth_cache, edge_growth_cache): New global vars.
77fa1d54
UB
3783 (true_predicate, single_cond_predicate, false_predicate,
3784 not_inlined_predicate, add_condition, add_clause, and_predicates,
3785 or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
3786 dump_clause, dump_predicate, account_size_time,
632b4f8e
JH
3787 evaulate_conditions_for_edge): New functions.
3788 (inline_summary_alloc): Move to heap.
3789 (inline_node_removal_hook): Clear condition and entry vectors.
3790 (inline_edge_removal_hook): New function.
3791 (initialize_growth_caches, free_growth_caches): New function.
3792 (dump_inline_summary): Update.
3793 (edge_execution_predicate): New function.
3794 (will_be_nonconstant_predicate): New function.
3795 (estimate_function_body_sizes): Compute BB and constantness predicates.
3796 (compute_inline_parameters): Do not clear estimated_growth.
3797 (estimate_edge_size_and_time): New function.
3798 (estimate_calls_size_and_time): New function.
3799 (estimate_callee_size_and_time): New function.
3800 (remap_predicate): New function.
3801 (inline_merge_summary): New function.
3802 (do_estimate_edge_time): New function based on...
3803 (estimate_edge_time): ... this one.
3804 (do_estimate_edge_growth): New function.
3805 (do_estimate_growth): New function based on....
3806 (estimate_growth): ... this one.
3807 (inline_analyze_function): Analyze after deciding on jump functions.
3808 (inline_read_section): New function.
3809 (inline_read_summary): Use it.
3810 (inline_write_summary): Write all the new data.
3811 * ipa-prop.c (ipa_get_param_decl_index): Export.
3812 (ipa_lattice_from_jfunc): Move here from ipa-cp.c
77fa1d54
UB
3813 * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
3814 Declare.
3815 (ipa_get_lattice): Move here from ipa-cp.c
632b4f8e
JH
3816 * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
3817 * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
3818 * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
3819 cgraph_edge_inlinable_p): Remove.
3820 * cgraphunit.c: Include ipainline.h
77fa1d54
UB
3821 (cgraph_process_new_functions): Update call of
3822 compute_inline_parameters.
632b4f8e 3823
1df5b0db
RG
38242011-04-22 Richard Guenther <rguenther@suse.de>
3825
3826 * tree.c (build_int_cst): Properly create canonicalized integer
3827 constants.
3828 (build_int_cst_type): Remove scary comments.
3829
ae01169c
XDL
38302011-04-22 Xinliang David Li <davidxl@google.com>
3831
3832 * toplev.c (process_options): Enable -Werror=coverage-mismatch
3833 by default when -Wno-error is not specified.
3834 * opts-global.c (decode_options): Remove call to
3835 control_warning_options.
3836
93dfac24
JJ
38372011-04-22 Jakub Jelinek <jakub@redhat.com>
3838
3839 PR tree-optimization/48717
3840 * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
3841 ~A + A optimizations use build_int_cst_type instead of build_int_cst.
3842
1b5f5069
JM
38432011-04-22 Joseph Myers <joseph@codesourcery.com>
3844
3845 * config/bfin/bfin-protos.h (Mmode): Don't define. Expand
3846 definition where used.
3847
144f4153
JJ
38482011-04-22 Jakub Jelinek <jakub@redhat.com>
3849
3850 PR c/48716
3851 * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
3852 TREE_STATIC variables declared inside of some OpenMP construct.
3853
f9fd305b
MJ
38542011-04-22 Martin Jambor <mjambor@suse.cz>
3855
3856 PR middle-end/48585
1d284ec5 3857 * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
f9fd305b 3858
49819fef
AM
38592011-04-22 Alexander Monakov <amonakov@ispras.ru>
3860
3861 PR c/36750
3862 * c-typeck.c (pop_init_level): Do not warn about initializing
3863 with ` = {0}'.
3864
401f6699
AM
38652011-04-22 Alan Modra <amodra@gmail.com>
3866
3867 * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
3868 when returning call_cookie.
3869 (rs6000_function_ok_for_sibcall): Allow sibcalls via function
3870 pointers, to functions with no more vector args than the current
3871 function, and some non-local calls for ABI_V4.
3872 * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
3873 sibcall_nonlocal_aix64): Combine to ..
3874 (sibcall_nonlocal_aix<mode>): ..this. Handle function pointer calls.
3875 (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
3876 (sibcall_value_nonlocal_aix<mode>): ..likewise.
3877 (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
3878 (sibcall_value_nonlocal_sysv<mode>): Likewise. Correct call cookie
3879 operand.
3880 * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
3881 sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
3882 sibcall_value_symbolic_64): Delete.
3883
903d1e67
XDL
38842011-04-21 Xinliang David Li <davidxl@google.com>
3885
3886 * cgraph.h: Remove pid.
3887 * cgraph.c: Remove pid.
3888 * value-prof.c (init_node_map): New function.
3889 (del_node_map): New function.
3890 (find_func_by_funcdef_no): New function.
3891 (gimple_ic_transform): Call new function.
3892 * cgraphunit.c (cgraph_finalize_function): Remove pid.
3893 * function.c (get_last_funcdef_no): New function.
3894 * function.h (get_last_funcdef_no): New function.
3895 * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
3896 to libgcov function.
3897 (tree-profiling): Call node map init and delete function.
3898
7378e95f
ILT
38992011-04-21 Ian Lance Taylor <iant@google.com>
3900
3901 * godump.c (go_format_type): Use exported Go name for anonymous
3902 field name.
3903
e84a6fcf
NF
39042011-04-21 Nathan Froyd <froydnj@codesourcery.com>
3905
3906 * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
3907 Call builtin_function_type_list instead of builtin_function_type.
3908 (UNARY, BINARY, TRINARY, QUAD): Likewise.
3909
4fe058e2
NF
39102011-04-21 Nathan Froyd <froydnj@codesourcery.com>
3911
3912 * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
3913 build_function_type_list instead of build_function_type.
3914 Delete variable `endlink'.
3915
1ba0a2d2
NF
39162011-04-21 Nathan Froyd <froydnj@codesourcery.com>
3917
3918 * config/s390/s390.c (s390_init_builtins): Call
3919 build_function_type_list instead of build_function_type.
3920
c0676219
NF
39212011-04-21 Nathan Froyd <froydnj@codesourcery.com>
3922
3923 * config/ia64/ia64.c (ia64_init_builtins): Call
3924 build_function_type_list instead of builtin_function_type.
3925
6ddfda8a
ER
39262011-04-21 Easwaran Raman <eraman@google.com>
3927
3a6448ea 3928 * cfgexpand.c (stack_var): Remove OFFSET...
6ddfda8a
ER
3929 (add_stack_var): ...and its reference here...
3930 (expand_stack_vars): ...and here.
3931 (stack_var_cmp): Sort by descending order of size.
3932 (partition_stack_vars): Change heuristic.
1d284ec5 3933 (union_stack_vars): Fix to reflect changes in partition_stack_vars.
6ddfda8a
ER
3934 (dump_stack_var_partition): Add newline after each partition.
3935
23756963
DA
39362011-04-21 Dimitrios Apostolou <jimis@gmx.net>
3937 Jeff Law <law@redhat.com>
3938
77fa1d54 3939 * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
23756963
DA
3940 * gengtype.c (matching_file_name_substitute): Likewise.
3941
aa2a43d2
RG
39422011-04-21 Richard Guenther <rguenther@suse.de>
3943
3944 PR lto/48703
1d284ec5 3945 * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
aa2a43d2 3946
4d931f41
EB
39472011-04-21 Eric Botcazou <ebotcazou@adacore.com>
3948
3949 * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
3950
f103fa7a
RG
39512011-04-21 Richard Guenther <rguenther@suse.de>
3952
3953 * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
3954 file name.
3955
e19f6650
RG
39562011-04-21 Richard Guenther <rguenther@suse.de>
3957
3958 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
3959 MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
3960 Use DECL_P, not SSA_VAR_P.
3961 (ptr_derefs_may_alias_p): Likewise.
3962 (ptr_deref_may_alias_ref_p_1): Likewise.
3963 (decl_refs_may_alias_p): Likewise.
3964 (refs_may_alias_p_1): Likewise.
3965 (ref_maybe_used_by_call_p_1): Likewise.
3966 (call_may_clobber_ref_p_1): Likewise.
3967 (indirect_ref_may_alias_decl_p): Assume indirect refrences
3968 are either MEM_REF or TARGET_MEM_REF.
3969 (indirect_refs_may_alias_p): Likewise.
3970 * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
3971 for MEM_EXPR of indirect calls.
3972
9d1831bb
TG
39732011-04-21 Tristan Gingold <gingold@adacore.com>
3974
3975 * vmsdbgout.c (write_srccorr): Compute file length from the string.
3976 (dst_file_info_struct): Remove flen field.
3977 (lookup_filename): Remove code that set flen field.
3978
f199c029
TG
39792011-04-21 Tristan Gingold <gingold@adacore.com>
3980
3981 * config/ia64/ia64.c (ia64_start_function): Add a guard.
3982
2894086e
UB
39832011-04-21 Uros Bizjak <ubizjak@gmail.com>
3984
3985 PR target/48708
3986 * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
3987 vec_extract and vec_concat for non-SSE4_1 targets.
3988
53f94a5c
RG
39892011-04-21 Richard Guenther <rguenther@suse.de>
3990
3991 * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
3992 return statements.
3993
f0dca5ba
JM
39942011-04-21 Joseph Myers <joseph@codesourcery.com>
3995
3996 * config/i386/cygming.h (union tree_node, TREE): Don't define or
3997 undefine.
3998 (FILE): Don't undefine.
3999
984514ac
JM
40002011-04-21 Joseph Myers <joseph@codesourcery.com>
4001
4002 * config/alpha/alpha.c (struct machine_function): Use rtx, not
4003 struct rtx_def *.
4004 * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
4005 struct rtx_def *.
4006 * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
2894086e 4007 * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
984514ac
JM
4008 * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
4009 rtx_def *.
4010 * config/m32c/m32c-protos.h (MM, UINT): Don't define. Expand
4011 definitions where used.
4012 * config/microblaze/microblaze.h (struct microblaze_args): Use
4013 rtx, not struct rtx_def *.
4014 * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
4015 rtx_def *.
2894086e
UB
4016 * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
4017 * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
984514ac
JM
4018 * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
4019 not struct rtx_def *.
4020 * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
4021 struct rtx_def *.
4022 * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
4023 rtx_def *.
2894086e 4024 * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
984514ac 4025
0b5a2724
RS
40262011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
4027
4028 * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
4029 operand_equal_p to compare DR_BASE_ADDRESSes.
4030 (vect_check_interleaving): Likewise.
4031
4b18d683
RS
40322011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
4033
4034 PR target/46329
4035 * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
4036 for all Neon struct constants.
4037
1a627b35
RS
40382011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
4039
4040 * target.def (legitimate_constant_p): New hook.
4041 * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
4042 (TARGET_LEGITIMATE_CONSTANT_P): ...this.
4043 * doc/tm.texi: Regenerate.
4044 * hooks.h (hook_bool_mode_rtx_true): Declare.
4045 * hooks.c (hook_bool_mode_rtx_true): Define.
4046 * system.h (LEGITIMATE_CONSTANT_P): Poison.
4047 * calls.c (precompute_register_parameters): Replace uses of
4048 LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
4049 (emit_library_call_value_1): Likewise.
4050 * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
4051 (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
4052 * ira-costs.c (scan_one_insn): Likewise.
4053 * recog.c (general_operand, immediate_operand): Likewise.
4054 * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
4055 * reload1.c (init_eliminable_invariants): Likewise.
4056
4057 * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
4058 mode argument.
4059 * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
4060 * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
4061 argument.
4062 (TARGET_LEGITIMATE_CONSTANT_P): Define.
4063 * config/alpha/predicates.md (input_operand): Update call to
4064 alpha_legitimate_constant_p.
4065
4066 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
4067 * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
4068 (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
4069 * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4070 (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
4071 (arm_legitimate_constant_p): New functions.
4072 (arm_cannot_force_const_mem): Make static.
4073
4074 * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
4075
4076 * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
4077 * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
4078 * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
4079 instead of bfin_legitimate_constant_p.
4080 (bfin_legitimate_constant_p): Make static. Add a mode argument.
4081 (TARGET_LEGITIMATE_CONSTANT_P): Define.
4082
4083 * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
4084
4085 * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
4086
4087 * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
4088 * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
4089 * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4090 (frv_legitimate_constant_p): Make static. Add a mode argument.
4091
4092 * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
4093 * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
4094 * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
4095
4096 * config/i386/i386-protos.h (legitimate_constant_p): Delete.
4097 * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
4098 * config/i386/i386.c (legitimate_constant_p): Rename to...
4099 (ix86_legitimate_constant_p): ...this. Make static. Add a mode
4100 argument.
4101 (ix86_cannot_force_const_mem): Update accordingly.
4102 (ix86_legitimate_address_p): Likewise.
4103 (TARGET_LEGITIMATE_CONSTANT_P): Define.
4104 * config/i386/i386.md: Update commentary.
4105
4106 * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
4107 * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
4108 * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4109 (ia64_legitimate_constant_p): Make static. Add a mode argument.
4110
4111 * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
4112
4113 * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
4114 * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
4115 * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4116 (lm32_legitimate_constant_p): Make static. Add a mode argument.
4117
4118 * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
4119 * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
4120 * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
4121
4122 * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
4123 * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4124 (m32r_legitimate_constant_p): New function.
4125
4126 * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
4127 * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
4128 LEGITIMATE_CONSTANT_P.
4129 (LEGITIMATE_CONSTANT_P): Delete.
4130 * config/m68k/m68k.c (m68k_expand_prologue): Call
4131 m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
4132 (m68k_legitimate_constant_p): New function.
4133 * config/m68k/m68k.md: Update comments.
4134
4135 * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
4136 * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4137 (mcore_legitimate_constant_p): New function.
4138
4139 * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
4140 * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
4141 * config/mep/mep.c (mep_legitimate_constant_p): Make static.
4142 Add a mode argument.
4143 (mep_legitimate_address): Update accordingly.
4144 (TARGET_LEGITIMATE_CONSTANT_P): Define.
4145
4146 * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
4147 Delete.
4148 * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
4149 * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
4150 static. Check OP's mode for VOIDmode.
4151 (microblaze_legitimate_constant_p): New function.
4152 (TARGET_LEGITIMATE_CONSTANT_P): Define.
4153
4154 * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
4155 * config/mips/mips.c (mips_legitimate_constant_p): New function.
4156 (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
4157 (TARGET_LEGITIMATE_CONSTANT_P): Define.
4158 * config/mips/predicates.md: Update comments.
4159
4160 * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
4161 * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
4162 * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4163 (mmix_legitimate_constant_p): Make static, return a bool, and take
4164 a mode argument.
4165 (mmix_print_operand_address): Update accordingly.
4166
4167 * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
4168 Delete.
4169 * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
2894086e
UB
4170 * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
4171 static. Add a mode argument.
1a627b35
RS
4172 (TARGET_LEGITIMATE_CONSTANT_P): Define.
4173
4174 * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
4175
4176 * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
4177 * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4178 (pa_legitimate_constant_p): New function.
4179
4180 * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
4181
4182 * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
4183 * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4184 (pdp11_legitimate_constant_p): New function.
4185
4186 * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
4187 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4188 (rs6000_legitimate_constant_p): New function.
4189
4190 * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
4191 (rx_legitimate_constant_p): ...this.
4192 * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
4193 * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
4194 (rx_legitimate_constant_p): ...this.
4195 (TARGET_LEGITIMATE_CONSTANT_P): Define.
4196 * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
4197
4198 * config/s390/s390-protos.h (legitimate_constant_p): Delete.
4199 * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
4200 * config/s390/s390.c (legitimate_constant_p): Rename to...
4201 (s390_legitimate_constant_p): ...this. Make static, return a bool,
4202 and add a mode argument.
4203 (TARGET_LEGITIMATE_CONSTANT_P): Define.
4204
4205 * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
4206
4207 * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
4208 * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4209 (sh_legitimate_constant_p): New function.
4210
4211 * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
4212 * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
4213 * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4214 (legitimate_constant_p): Rename to...
4215 (sparc_legitimate_constant_p): ...this. Make static. Add a mode
4216 argument.
4217 (constant_address_p): Update accordingly.
4218
4219 * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
4220 argument and return a bool.
4221 * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
4222 * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4223 (spu_legitimate_constant_p): Add a mode argument and return a bool.
4224 (spu_rtx_costs): Update accordingly.
4225 * config/spu/predicates.md (vec_imm_operand): Likewise.
4226
4227 * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
4228
4229 * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
4230 * config/v850/v850.c (v850_legitimate_constant_p): New function.
4231 (TARGET_LEGITIMATE_CONSTANT_P): Define.
4232
4233 * config/vax/vax-protos.h (legitimate_constant_p): Delete.
4234 * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
4235 * config/vax/vax.c (legitimate_constant_p): Likewise.
4236
4237 * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
4238 * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4239 (xtensa_legitimate_constant_p): New function.
4240
fbbf66e7
RS
42412011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
4242
4243 * target.def (cannot_force_const_mem): Add a mode argument.
4244 * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
4245 * doc/tm.texi: Regenerate.
4246 * hooks.h (hook_bool_mode_rtx_false): Declare.
4247 * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
4248 (hook_bool_mode_const_rtx_true): Likewise.
4249 (hook_bool_mode_rtx_false): New function.
4250 * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
4251 to be non-VOID. Update call to cannot_force_const_mem.
4252 (find_reloads): Update accordingly.
4253 * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
4254 * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
4255 argument.
4256 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
4257 * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
4258 * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
4259 * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
4260 * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
4261 * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
4262 * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
4263 * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
4264 (m68k_cannot_force_const_mem): ...this new function.
4265 * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
4266 argument.
4267 (mips_const_insns, mips_legitimize_const_move): Update calls.
4268 (mips_secondary_reload_class): Likewise.
4269 * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
4270 (pa_cannot_force_const_mem): ...this new function.
2894086e 4271 * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
fbbf66e7
RS
4272 (rs6000_cannot_force_const_mem): ...this new function.
4273 * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
4274 argument.
4275 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
4276 * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
4277 to...
4278 (xtensa_cannot_force_const_mem): ...this new function.
4279
b861891b
NF
42802011-04-20 Nathan Froyd <froydnj@codesourcery.com>
4281
4282 * config/mips/mips.c (mips16_build_function_stub): Call
4283 build_function_type_list instead of build_function_type.
4284 (mips16_build_call_stub): Likewise.
4285
34149ed5
NF
42862011-04-20 Nathan Froyd <froydnj@codesourcery.com>
4287
4288 * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
4289 instead of build_function_type.
4290
12526412
NF
42912011-04-20 Nathan Froyd <froydnj@codesourcery.com>
4292
4293 * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
4294 instead of build_function_type.
4295
3b84d61f
UB
42962011-04-20 Uros Bizjak <ubizjak@gmail.com>
4297
4298 PR target/48678
4299 * config/i386/i386.md (insv): Change operand 0 constraint to
4300 "register_operand". Change operand 1 and 2 constraint to
4301 "const_int_operand". Expand to pinsr{b,w,d,q} * when appropriate.
4302 * config/i386/sse.md (sse4_1_pinsrb): Export.
4303 (sse2_pinsrw): Ditto.
4304 (sse4_1_pinsrd): Ditto.
4305 (sse4_1_pinsrq): Ditto.
4306 * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
4307 * config/i386/i386.c (ix86_expand_pinsr): New.
4308
4a25752b
ER
43092011-04-20 Easwaran Raman <eraman@google.com>
4310
4311 * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
4312 containing union type only with -fstrict-aliasing.
4313
04695783
JM
43142011-04-20 Jim Meyering <meyering@redhat.com>
4315
4316 Remove useless if-before-free tests.
4317 * calls.c (expand_call, save_area): Likewise.
4318 * cfgcleanup.c (try_forward_edges): Likewise.
4319 * collect2.c (collect_execute): Likewise.
4320 * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
4321 * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
4322 * coverage.c (coverage_checksum_string): Likewise.
4323 * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
4324 * cselib.c (cselib_init): Likewise.
4325 * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
4326 (df_set_clean_cfg): Likewise.
4327 * function.c (free_after_compilation): Likewise.
4328 * gcc.c (do_spec_1, main): Likewise.
4329 * gcov.c (create_file_names): Likewise.
4330 * gensupport.c (identify_predicable_attribute): Likewise.
4331 * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
4332 * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
4333 * haifa-sched.c (haifa_finish_h_i_d): Likewise.
4334 * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
4335 * ipa-pure-const.c (local_pure_const): Likewise.
4336 * ipa-reference.c (propagate): Likewise.
4337 * ira-costs.c (free_ira_costs): Likewise.
4338 * ira.c (free_register_move_costs, build_insn_chain): Likewise.
4339 * matrix-reorg.c (mat_free): Likewise.
4340 * prefix.c (get_key_value): Likewise.
4341 * profile.c (compute_value_histograms): Likewise.
4342 * reload1.c (free_reg_equiv): Likewise.
4343 * sched-deps.c (free_deps): Likewise.
4344 * sel-sched-ir.c (fence_clear): Likewise.
4345 * sese.c (set_rename, if_region_set_false_region): Likewise.
4346 * tree-data-ref.c (free_rdg): Likewise.
4347 * tree-eh.c (lower_try_finally): Likewise.
4348 * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
4349 * tree-ssa-live.c (delete_var_map): Likewise.
4350 * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
4351 * tree-ssa-pre.c (phi_trans_add): Likewise.
4352
6788475a
JJ
43532011-04-20 Jakub Jelinek <jakub@redhat.com>
4354
4355 PR tree-optimization/48611
4356 * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
4357 beyond ERT_MUST_NOT_THROW region.
4358
0eda4033
CM
43592011-04-20 Catherine Moore <clm@codesourcery.com>
4360
4361 * config/mips/mips.opt (mfix-24k): New.
4362 * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
4363 * config/mips/mips.md (length): Increase by 4 for stores if
4364 fixing 24K errata.
4365 * config/mips/mips.c (mips_reorg_process_insns): Do not allow
4366 all noreorder if fixing 24K errata.
4367 * doc/invoke.texi: Document mfix-24k.
4368
01475747
CLT
43692011-04-20 Chung-Lin Tang <cltang@codesourcery.com>
4370
4371 * config/arm/arm.c (arm_legitimize_reload_address): For NEON
2894086e 4372 quad-word modes, reduce to 9-bit index range when above 1016 limit.
01475747 4373
bc2c1a60
AS
43742011-04-20 Andrew Stubbs <ams@codesourcery.com>
4375
4376 * config/arm/arm.c (arm_gen_constant): Move movw support ....
4377 (const_ok_for_op): ... to here.
4378
583722ee
KT
43792011-04-20 Kai Tietz <ktietz@redhat.com>
4380
2894086e
UB
4381 * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
4382 and (X && !Y) | (!X && Y) optimization to (X ^ Y).
583722ee 4383
422c0989
AS
43842011-04-20 Andrew Stubbs <ams@codesourcery.com>
4385
4386 * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
4387
d7978bff
RG
43882011-04-20 Richard Guenther <rguenther@suse.de>
4389
4390 PR tree-optimization/47892
4391 * tree-if-conv.c (if_convertible_stmt_p): Const builtins
4392 are if-convertible.
4393
818412ba
EB
43942011-04-20 Eric Botcazou <ebotcazou@adacore.com>
4395
4396 * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
4397
b501ce4e
TG
43982011-04-20 Tristan Gingold <gingold@adacore.com>
4399
4400 * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
4401
516edfdd
GJL
44022011-04-20 Georg-Johann Lay <avr@gjlay.de>
4403
4404 PR target/18145
4405
4406 * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
4407 (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
4408 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
4409 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
4410 (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
4411
4412 * config/avr/avr-protos.h (avr_asm_output_aligned_common):
4413 New prototype.
4414
4415 * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
4416 (avr_asm_named_section, avr_asm_output_aligned_common,
4417 avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
4418 New functions to update...
4419 (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
4420 (avr_asm_init_sections): Overwrite section callbacks for
4421 data_section, bss_section.
4422 (avr_file_start): Move output of __do_copy_data, __do_clear_bss
4423 from here to...
4424 (avr_file_end): ...here.
4425
dafc9511
RG
44262011-04-20 Richard Guenther <rguenther@suse.de>
4427
4428 PR middle-end/48695
4429 * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
2894086e 4430 objects and types here. Adjust for their offset before comparing.
dafc9511 4431
1da0876c
RS
44322011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
4433
4434 * tree-vect-stmts.c (vectorizable_store): Only chain one related
4435 statement per copy.
4436
25583c4f
RS
44372011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
4438
4439 * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
4440 (GIMPLE_H): Include $(INTERNAL_FN_H).
4441 (OBJS-common): Add internal-fn.o.
4442 (internal-fn.o): New rule.
4443 * internal-fn.def: New file.
4444 * internal-fn.h: Likewise.
4445 * internal-fn.c: Likewise.
4446 * gimple.h: Include internal-fn.h.
4447 (GF_CALL_INTERNAL): New gf_mask.
4448 (gimple_statement_call): Put fntype into a union with a new
4449 internal_fn field.
4450 (gimple_build_call_internal): Declare.
4451 (gimple_build_call_internal_vec): Likewise.
4452 (gimple_call_same_target_p): Likewise.
4453 (gimple_call_internal_p): New function.
4454 (gimple_call_internal_fn): Likewise.
4455 (gimple_call_fntype): Return null for internal calls.
4456 (gimple_call_set_fntype): Assert that the function is not internal.
4457 (gimple_call_set_fn): Likewise.
4458 (gimple_call_set_fndecl): Likewise.
4459 (gimple_call_set_internal_fn): New function.
4460 (gimple_call_addr_fndecl): Handle null functions.
4461 (gimple_call_return_type): Likewise null types.
4462 * gimple.c (gimple_build_call_internal_1): New function.
4463 (gimple_build_call_internal): Likewise.
4464 (gimple_build_call_internal_vec): Likewise.
4465 (gimple_call_same_target_p): Likewise.
4466 (gimple_call_flags): Handle calls to internal functions.
4467 (gimple_call_fnspec): New function.
4468 (gimple_call_arg_flags, gimple_call_return_flags): Use it.
4469 (gimple_has_side_effects): Handle null functions.
4470 (gimple_rhs_has_side_effects): Likewise.
4471 (gimple_call_copy_skip_args): Handle calls to internal functions.
4472 * cfgexpand.c (expand_call_stmt): Likewise.
4473 * expr.c (expand_expr_real_1): Assert that the call isn't internal.
4474 * gimple-fold.c (gimple_fold_call): Handle null functions.
4475 (gimple_fold_stmt_to_constant_1): Don't fold
4476 calls to internal functions.
4477 * gimple-low.c (gimple_check_call_args): Handle calls to internal
4478 functions.
4479 * gimple-pretty-print.c (dump_gimple_call): Likewise.
4480 * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
4481 * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
4482 (do_warn_unused_result): Likewise.
4483 * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
4484 * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
4485 * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
4486 the target of a call.
4487 (initialize_hash_element): Update accordingly.
4488 (hashable_expr_equal_p): Use gimple_call_same_target_p.
4489 (iterative_hash_hashable_expr): Handle calls to internal functions.
4490 (print_expr_hash_elt): Likewise.
4491 * tree-ssa-pre.c (can_value_number_call): Likewise.
4492 (eliminate): Handle null functions.
4493 * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
4494 * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
4495 (find_func_aliases): Likewise.
4496 * value-prof.c (gimple_ic_transform): Likewise.
4497 (gimple_indirect_call_to_profile): Likewise.
4498 * lto-streamer-in.c (input_gimple_stmt): Likewise.
4499 * lto-streamer-out.c (output_gimple_stmt): Likewise.
4500
1a3118e9
JH
45012011-04-19 Jan Hubicka <jh@suse.cz>
4502
4503 * ipa-inline-transform.c (save_inline_function_body): Add comments.
9d12f71a
EB
4504 * ipa-inline.c (inline_small_functions): Compute summaries first,
4505 populate heap later.
1a3118e9 4506
fee8b6da
JH
45072011-04-19 Jan Hubicka <jh@suse.cz>
4508
4509 * cgraph.h (save_inline_function_body): Remove.
4510 * ipa-inline-transform.c: New file, broke out of...
4511 * ipa-inline.c: ... this one; Update toplevel comment.
4512 (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
4513 make global.
4514 (update_noncloned_frequencies): Move to ipa-inline-transform.c
4515 (cgraph_mark_inline_edge): Rename to inline_call; move to
4516 ipa-inline-transform.c.
4517 (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
4518 move to ipa-inline-transform.c
4519 (recursive_inlining, inline_small_functions, flatten_function,
4520 ipa_inline, inline_always_inline_functions,
4521 early_inline_small_functions): Update.
4522 (inline_transform): Move to ipa-inline-transform.c.
4523 * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
4524 Declare.
4525 * Makefile.in (ipa-inline-transform.o): New file.
4526 * cgraphunit.c (save_inline_function_body): Move to
4527 ipa-inline-transform.c
4528
f0679612
DD
45292011-04-19 DJ Delorie <dj@redhat.com>
4530
4531 * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
4532 registers if we already know there aren't any.
4533 (m32c_emit_epilogue): Don't emit a barrier here.
4534 (m32c_emit_eh_epilogue): Likewise.
4535 * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
4536 operands at expand time.
4537 * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
4538 int" wchar type.
4539 (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
4540 duplicates. Provide aliases instead.
4541 * config/m32c/prologue.md (eh_return): Emit a barrier here.
4542 (eh_epilogue): Add a "(return)" here as a hint to other parts of
4543 the compiler.
4544
32257ddc
AS
45452011-04-19 Anatoly Sokolov <aesok@post.ru>
4546
4547 * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
4548 * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
4549 (general_or_i64_p, sparc_register_move_cost): New function.
4550
60bea929
RO
45512011-04-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4552
4553 * doc/install.texi (Configuration, --enable-threads): Remove mach.
3b84d61f 4554 Add lynx, mipssde. Sort table.
60bea929 4555
444b3995 45562011-04-19 Xinliang David Li <davidxl@google.com>
3b84d61f 4557
9d12f71a
EB
4558 * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
4559 not negative.
444b3995 4560
d708ce50
JJ
45612011-04-19 Jakub Jelinek <jakub@redhat.com>
4562
4563 PR target/48678
4564 * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
4565 is a SUBREG with non-MODE_INT mode inside of it.
4566
49c471e3
MJ
45672011-04-19 Martin Jambor <mjambor@suse.cz>
4568
4569 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
4570 also according to actual contants.
4571 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
4572 (gimple_fold_call): Use it.
4573 * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
4574
0004f992
MJ
45752011-04-19 Martin Jambor <mjambor@suse.cz>
4576
4577 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
4578 non-pointer assignments.
4579
40591473
MJ
45802011-04-19 Martin Jambor <mjambor@suse.cz>
4581
4582 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
4583 account anc_offset and otr_type from the indirect edge info.
4584 * ipa-prop.c (get_ancestor_addr_info): New function.
4585 (compute_complex_ancestor_jump_func): Assignment analysis moved to
4586 get_ancestor_addr_info, call it.
4587 (ipa_note_param_call): Do not initialize information about polymorphic
4588 calls, return the indirect call graph edge. Remove the last
4589 parameter, adjust all callers.
4590 (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
4591 parameters. Initialize polymorphic information in the indirect edge.
4592
abe36b81
EB
45932011-04-19 Eric Botcazou <ebotcazou@adacore.com>
4594
4595 PR lto/48148
4596 * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
4597 the types if they have different enumeration identifiers.
4598
e6416b30
JH
45992011-04-19 Jan Hubicka <jh@suse.cz>
4600
4601 * cgraph.h (cgraph_optimize_for_size_p): Declare.
4602 * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
4603 * predict.c (cgraph_optimize_for_size_p): Break out from ...
4604 (optimize_function_for_size_p) ... here.
4605
d39132ea
RG
46062011-04-19 Richard Guenther <rguenther@suse.de>
4607
4608 PR lto/48207
4609 * tree.c (free_lang_data): Do not reset the decl-assembler-name
4610 langhook.
4611
ff7037dc
EB
46122011-04-19 Eric Botcazou <ebotcazou@adacore.com>
4613
4614 * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
4615 if DECL_NO_INLINE_WARNING_P is set on the function.
4616
c1ee2892
BS
46172011-04-19 Bernd Schmidt <bernds@codesourcery.com>
4618
4619 PR fortran/47976
4620 * reload1.c (inc_for_reload): Return void. All callers changed.
4621 (emit_input_reload_insns): Don't try to delete previous output
4622 reloads to a register, or record spill_reg_store for autoincs.
fbb20b29
BS
4623
46242011-04-19 Basile Starynkevitch <basile@starynkevitch.net>
4625
4626 * gengtype.h: Updated copyright year.
4627 (struct input_file_st): Add inpisplugin field.
4628 (type_fileloc): New function.
4629 * gengtype.c
4630 (write_typed_struct_alloc_def): Add gcc_assert.
4631 (write_typed_alloc_defns): Ditto. Don't output for plugin files.
4632 (write_typed_alloc_defns): Don't output for plugin files.
4633 (input_file_by_name): Clear inpisplugin field.
4634 (main): Set inpisplugin field for plugin files.
4635
897e0a89
NP
46362011-04-19 Nicola Pero <nicola.pero@meta-innovation.com>
4637
4638 * gengtype-state.c (string_eq): New.
4639 (read_state): Use string_eq instead of strcmp when creating the
4640 state_ident_tab.
4641
363ee90e
WG
46422011-04-19 Wei Guozhi <carrot@google.com>
4643
4644 PR target/47855
4645 * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
4646 * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
4647 linkage.
4648 * config/arm/constraints.md (Uu): New constraint.
4649 * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
4650
18a24fed
TG
46512011-04-19 Tristan Gingold <gingold@adacore.com>
4652
4653 * config.gcc (-*-*-*vms): Added.
4654 (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
4655 definitions moved.
4656 * config/vms/vms-ld.c: New file.
4657 * config/vms/vms-ar.c: New file.
4658 * config/vms/t-vmsnative: New file.
4659
1c13f168
XDL
46602011-04-18 Xinliang David Li <davidxl@google.com>
4661
4662 * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
4663
84825707
JJ
46642011-04-18 Jakub Jelinek <jakub@redhat.com>
4665
4666 PR middle-end/48661
4667 * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
4668 if TREE_TYPE (v) is non-NULL.
4669
4670 * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
4671 gimple_get_virt_mehtod_for_binfo.
4672 * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
4673 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
4674 callers.
4675 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
4676
7d4f8d02 46772011-04-18 Michael Matz <matz@suse.de>
7254cb57
MM
4678 Steve Ellcey <sje@cup.hp.com>
4679
7d4f8d02
EB
4680 * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
4681 use its mode as source mode if it isn't VOIDmode.
7254cb57 4682
474e8e70
DCR
46832011-04-18 Dennis, CHENG Renquan <crquan@fedoraproject.org>
4684
4685 * doc/passes.texi: Fill crossref nodes.
4686
cff41484
JM
46872011-04-18 Jim Meyering <meyering@redhat.com>
4688
7d4f8d02 4689 Fix doubled-word typos in comments and strings
cff41484
JM
4690 * config/alpha/vms-unwind.h: s/for for/for/
4691 * config/arm/unwind-arm.h: Likewise.
4692 * config/microblaze/microblaze.c: Likewise.
4693 * config/sh/constraints.md: s/in in/in/
4694 * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
4695
f60c2554
UB
46962011-04-18 Uros Bizjak <ubizjak@gmail.com>
4697
4698 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
4699 (AVX_FLOAT_MODE_P): Ditto.
4700 (AVX128_VEC_FLOAT_MODE_P): Ditto.
4701 (AVX256_VEC_FLOAT_MODE_P): Ditto.
4702 (AVX_VEC_FLOAT_MODE_P): Ditto.
4703 * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
4704 (UNSPEC_MASKSTORE): Ditto.
4705 * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
4706 Merge from <sse>_movmsk<ssemodesuffix> and
4707 avx_movmsk<ssemodesuffix>256. Use VF mode iterator.
4708 (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64. Use P mode
4709 iterator.
4710 (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
4711 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
4712 (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
4713
09a2806f
JH
47142011-04-18 Jan Hubicka <jh@suse.cz>
4715
8a8dccb2
JH
4716 * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
4717
09a2806f
JH
4718 * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
4719 (want_inline_function_called_once_p): Break out the logic from
4720 ipa_inline.
4721 (edge_badness): Ensure that profile is not misupdated.
4722 (lookup_recursive_calls): Prioritize by call frequencies.
4723 (inline_small_functions): Move program size estimates here;
4724 actually process whole queue even when unit growth has been
4725 met. (to properly compute inline_failed reasons and for the
f60c2554 4726 case unit size decrease.) Revisit comments on recursive inlining.
09a2806f
JH
4727 (ipa_inline): Remove unit summary code; first inline hot calls
4728 of functions called once, cold calls next.
4729 (order, nnodes): Remove unused variables.
4730 * Makefile.in (ipa-inline.o): No longer depent on ggc files.
4731 (GTFILES): Remove ipa-inline.c
4732 * sel-sched.c (fill_insns): Silence uninitialized var warning.
4733
3eea52ef
EB
47342011-04-18 Eric Botcazou <ebotcazou@adacore.com>
4735
4736 * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
4737
229a1c59 47382011-04-18 Jie Zhang <jie@codesourcery.com>
3eea52ef 4739 Richard Earnshaw <rearnsha@arm.com>
229a1c59
JZ
4740
4741 * arm.c (neon_builtin_type_bits): Remove.
4742 (typedef enum neon_builtin_mode): New.
4743 (T_MAX): Don't define.
4744 (typedef enum neon_builtin_datum): Remove bits, codes[],
4745 num_vars and base_fcode. Add mode, code and fcode.
4746 (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
4747 VAR10): Change accordingly.
4748 (neon_builtin_data[]): Change accordingly
4749 (arm_init_neon_builtins): Change accordingly.
4750 (neon_builtin_compare): Remove.
4751 (locate_neon_builtin_icode): Remove.
4752 (arm_expand_neon_builtin): Change accordingly.
4753
4754 * arm.h (enum arm_builtins): Move to ...
4755 * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
4756
4757 * arm.c (arm_builtin_decl): Declare.
4758 (TARGET_BUILTIN_DECL): Define.
4759 (enum arm_builtins): Correct ARM_BUILTIN_MAX.
4760 (arm_builtin_decls[]): New.
4761 (arm_init_neon_builtins): Store builtin declarations in
4762 arm_builtin_decls[].
4763 (arm_init_tls_builtins): Likewise.
4764 (arm_init_iwmmxt_builtins): Likewise. Refactor initialization code.
4765 (arm_builtin_decl): New.
4766
75e802cc
RG
47672011-04-18 Richard Guenther <rguenther@suse.de>
4768
4769 * tree.c (upper_bound_in_type): Build properly canonicalized
4770 INTEGER_CSTs.
4771 (lower_bound_in_type): Likewise.
4772
3b45a007
RG
47732011-04-18 Richard Guenther <rguenther@suse.de>
4774
4775 * gimple.h (gimple_call_addr_fndecl): New function.
4776 (gimple_call_fndecl): Use it.
4777 * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
4778 for direct calls.
4779 * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
4780 * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
4781
d25a79ea
RG
47822011-04-18 Richard Guenther <rguenther@suse.de>
4783
4784 PR middle-end/48650
4785 * tree.c (build_string): STRING_CST is now derived from tree_typed.
4786
7d5fc814
EB
47872011-04-18 Eric Botcazou <ebotcazou@adacore.com>
4788
4789 PR lto/48492
4790 * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
4791 DECL_IN_CONSTANT_POOL without RTL.
4792
7e7cfcf6
UW
47932011-04-18 Ulrich Weigand <ulrich.weigand@linaro.org>
4794 Ira Rosen <ira.rosen@linaro.org>
4795
4796 PR target/48252
4797 * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
4798 to match neon_vzip/vuzp/vtrn_internal.
4799 * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
4800 outputs explicitly dependent on both inputs.
4801 (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
4802
49eab32e
JJ
48032011-04-18 Jakub Jelinek <jakub@redhat.com>
4804
4805 PR tree-optimization/48616
4806 * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
4807 whether the shift is by scalar or vector based on whether all SLP
4808 scalar stmts have the same rhs.
4809
e54170f4
CLT
48102011-04-17 Chung-Lin Tang <cltang@codesourcery.com>
4811
4812 * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
4813 memory operands.
4814
b14ee6c9
RS
48152011-04-17 Richard Sandiford <rdsandiford@googlemail.com>
4816
4817 * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
4818 registers.
4819
10158cd3
JH
48202011-04-17 Jan Hubicka <jh@suse.cz>
4821
4822 * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
7d5fc814
EB
4823 * cgrpahunit.c (cgraph_finalize_function): Do not set
4824 finalized_by_frontend.
10158cd3
JH
4825 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
4826 finalized_by_frontend.
4827
2e9bb6ba
JH
48282011-04-17 Jan Hubicka <jh@suse.cz>
4829
4830 * cgraph.c (cgraph_clone_node): Do not handle vtable_method
4831 * cgraph.h (struct cgraph_local_info): Drop vtable_method.
4832 * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
7d5fc814
EB
4833 * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
4834 method.
2e9bb6ba
JH
4835 * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
4836 gimple-fold.c
4837 * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
4838
beb628e1
EB
48392011-04-17 Eric Botcazou <ebotcazou@adacore.com>
4840
4841 PR lto/48538
4842 * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
4843 is non-null before accessing it.
4844 (input_cgraph): Remove trailing spaces.
4845
3e2fdd24
RE
48462011-04-17 Revital Eres <revital.eres@linaro.org>
4847
4848 * params.def (sms-min-sc): New param flag.
4849 * modulo-sched.c (sms_schedule): Use it.
4850 * doc/invoke.texi (sms-min-sc): Document it.
4851
4c0f7679
JH
48522011-04-17 Jan Hubicka <jh@suse.cz>
4853
4854 * lto-symtab.c (lto_cgraph_replace_node): When call statement is
4855 present, also set gimple_call_set_cannot_inline.
4856 * ipa-inline.c: Update toplevel comment.
4857 (MAX_TIME): Remove.
4858 (cgraph_clone_inlined_nodes): Fix linebreaks.
4859 (cgraph_check_inline_limits): Restructure to ...
4860 (caller_growth_limits): ... this one; be more tolerant
4861 on growth in nested inline chains; add explanatory comment;
4862 fix stack accounting thinko introduced by previous patch.
4863 (cgraph_default_inline_p): Remove.
4864 (report_inline_failed_reason): New function.
4865 (can_inline_edge_p): New function.
4866 (can_early_inline_edge_p): New function.
4867 (leaf_node_p): Move upwards in file.
4868 (want_early_inline_function_p): New function.
4869 (want_inline_small_function_p): New function.
4870 (want_inline_self_recursive_call_p): New function.
4871 (cgraph_edge_badness): Rename to ...
4872 (edge_badness) ... this one; fix linebreaks.
4873 (update_edge_key): Update call of edge_baddness; add
4874 detailed dump about queue updates.
4875 (update_caller_keys): Use can_inline_edge_p and
4876 want_inline_small_function_p.
4877 (cgraph_decide_recursive_inlining): Rename to...
4878 (recursive_inlining): Use can_inline_edge_p and
f60c2554
UB
4879 want_inline_self_recursive_call_p; simplify and remove no longer
4880 valid FIXME.
4c0f7679
JH
4881 (cgraph_set_inline_failed): Remove.
4882 (add_new_edges_to_heap): Use can_inline_edge_p and
4883 want_inline_small_function_p.
4884 (cgraph_decide_inlining_of_small_functions): Rename to ...
4885 (inline_small_functions): ... this one; cleanup; use
f60c2554
UB
4886 can/want predicates; cleanup debug ouput; work edges till fibheap
4887 is exhausted and do not stop once unit growth is reached; remove
4888 later loop processing remaining edges.
4c0f7679
JH
4889 (cgraph_flatten): Rename to ...
4890 (flatten_function): ... this one; use can_inline_edge_p
4891 and can_early_inline_edge_p predicates.
4892 (cgraph_decide_inlining): Rename to ...
4893 (ipa_inline): ... this one; remove unreachable nodes before
4894 inlining functions called once; simplify the pass.
4895 (cgraph_perform_always_inlining): Rename to ...
4896 (inline_always_inline_functions): ... this one; use
f60c2554 4897 DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
4c0f7679
JH
4898 (cgraph_decide_inlining_incrementally): Rename to ...
4899 (early_inline_small_functions): ... this one; simplify
4900 using new predicates; cleanup; make dumps prettier.
4901 (cgraph_early_inlining): Rename to ...
4902 (early_inliner): newer inline regular functions into always-inlines;
4903 fix updating of call stmt summaries.
4904 (pass_early_inline): Update for new names.
4905 (inline_transform): Fix formating.
4906 (gate_cgraph_decide_inlining): Rename to ...
4907 (pass_ipa_inline): ... this one.
4908 * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
4909 * ipa-inline-analysis.c (dump_inline_summary): Update.
4910 (compute_inline_parameters): Do not compute disregard_inline_limits;
4911 look for mismatching arguments.
4912 (estimate_growth): Fix handlig of non-trivial self recursion.
4913 (inline_read_summary): Do not read info->disregard_inline_limits.
4914 (inline_write_summary): Do not write info->disregard_inline_limits.
beb628e1
EB
4915 * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
4916 and move all checks into can_inline_edge_p predicate; re-enable code
4917 comparing optimization levels.
4c0f7679
JH
4918 (expand_call_inline): Do not test inline_forbidden_into_p.
4919 * Makefile.in (ipa-inline.o): Update arguments.
4920
54333b7c
RE
49212011-04-17 Revital Eres <revital.eres@linaro.org>
4922
4923 * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
4924
42c2bf92
RE
49252011-04-17 Revital Eres <revital.eres@linaro.org>
4926
4927 * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
4928
b183e9e0
MM
49292011-04-17 Michael Matz <matz@suse.de>
4930
4931 PR tree-optimization/48622
4932 PR lto/48645
4933 * ipa-inline-analysis.c (inline_read_summary): Read size/time
4934 in same order as they're written.
4935
b8a17fa2
JDA
49362011-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4937
4938 * config/pa/predicates.md: Reorganize and simplify predicates.
4939 Eliminate duplicate code checks.
4940 (arith_operand): Rename to arith14_operand
4941 (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
4942 * config/pa/pa.md: Use renamed operands.
4943 * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
4944 (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
4945 arith11_operand, adddi3_operand, indexed_memory_operand,
4946 symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
4947 arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
4948 borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
4949 move_dest_operand, move_src_operand, prefetch_cc_operand,
4950 prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
4951 uint32_operand, reg_before_reload_operand, reg_or_0_operand,
4952 reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
4953 div_operand, int5_operand, movb_comparison_operator,
4954 ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
4955 arith_double_operand, ireg_operand, lhs_lshift_operand,
4956 pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
4957 integer_store_memory_operand): Likewise.
4958 * config/pa/pa.c (adddi3_operand): Move to predicates.md.
4959 (integer_store_memory_operand, read_only_operand,
4960 function_label_operand, borx_reg_operand,
4961 non_hard_reg_operand): Likewise.
4962 (eq_neq_comparison_operator): Delete unused operator.
4963 (legitimize_pic_address): Use VOIDmode for mode argument in calls to
4964 function_label_operand.
4965 (emit_move_sequence): Likewise.
4966
8dfb9f16
UB
49672011-04-16 Uros Bizjak <ubizjak@gmail.com>
4968
4969 * config/i386/sse.md (sseunpackmode): New mode attribute.
4970 (ssepackmode): Ditto.
4971 (vec_pack_trunc_<mode>): Macroize expander from
4972 vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
4973 (vec_unpacks_lo_<mode>): Macroize expander from
4974 vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
4975 (vec_unpacks_hi_<mode>): Macroize expander from
4976 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
4977 (vec_unpacku_lo_<mode>): Macroize expander from
4978 vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
4979 (vec_unpacku_hi_<mode>): Macroize expander from
4980 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
4981 * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
4982 ix86_expand_sse4_unpack.
4983 * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
4984
e7f23018
JH
49852011-04-16 Jan Hubicka <jh@suse.cz>
4986
4987 * cgraphbuild.c: Include ipa-inline.h.
4988 (reset_inline_failed): Use initialize_inline_failed.
4989 * cgraph.c: Include ipa-inline.h.
4990 (cgraph_create_node_1): Do not initialize estimated_growth.
4991 (initialize_inline_failed): More to ipa-inline-analysis.c
4992 (dump_cgraph_node): Do not dump inline flags.
4993 * cgraph.h (cgraph_local_info): Remove inlineable, versionable
4994 and disregard_inline_limits flags.
4995 (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
4996 time, size, estimated_growth.
8dfb9f16
UB
4997 * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
4998 Update.
e7f23018
JH
4999 * cgraphunit.c (cgraph_decide_is_function_needed): Use
5000 DECL_DISREGARD_INLINE_LIMITS.
5001 (cgraph_analyze_function): Do not initialize
5002 node->local.disregard_inline_limits.
5003 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
5004 inlinable, versionable and disregard_inline_limits.
5005 * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
8dfb9f16
UB
5006 cgraph_check_inline_limits, cgraph_default_inline_p,
5007 cgraph_edge_badness, update_caller_keys, update_callee_keys,
5008 add_new_edges_to_heap): Update.
5009 (cgraph_decide_inlining_of_small_function): Update; set
5010 CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
e7f23018
JH
5011 (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
5012 cgraph_decide_inlining_incrementally): Update.
8dfb9f16
UB
5013 * ipa-inline.h (inline_summary): Add inlinable, versionable,
5014 disregard_inline_limits, estimated_stack_size, stack_frame_offset,
5015 time, size and estimated_growth parameters.
e7f23018
JH
5016 (estimate_edge_growth): Update.
5017 (initialize_inline_failed): Declare.
5018 * ipa-split.c: Include ipa-inline.h
5019 (execute_split_functions): Update.
5020 * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
5021 (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
5022 (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
5023 * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
5024 estimated_growth to INT_MIN.
5025 (inline_node_duplication_hook): Likewise.
5026 (dump_inline_summary): Dump new fields.
5027 (compute_inline_parameters): Update.
5028 (estimate_edge_time, estimate_time_after_inlining,
5029 estimate_size_after_inlining, estimate_growth, inline_read_summary,
5030 inline_write_summary):
5031 (initialize_inline_failed): Move here from cgraph.c.
5032 * tree-sra.c: Include ipa-inline.h.
5033 (ipa_sra_preliminary_function_checks): Update.
f60c2554
UB
5034 * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
5035 ipa-inline.h.
e7f23018 5036
e81b8564
UB
50372011-04-16 Uros Bizjak <ubizjak@gmail.com>
5038
5039 * config/i386/sse.md (V16): New mode iterator.
5040 (VI1, VI8): Ditto.
5041 (AVXMODEQI, AVXMODEDI): Remove.
5042 (sse2, sse3): New mode attribute.
5043 (mov<mode>): Use V16 mode iterator.
5044 (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
5045 (push<mode>1): Use V16 mode iterator.
5046 (movmisalign<mode>): Ditto.
5047 (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
5048 <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
5049 (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
5050 *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
5051 (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
5052 avx_movdqu<avxmodesuffix>.
5053 (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
5054 *avx_movdqu<avxmodesuffix>.
5055 (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
5056 avx_lddqu<avxmodesuffix>.
5057 (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
5058 (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
5059 avx_movnt<AVXMODEDI:mode>.
5060 * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
5061 renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
5062
4743d438
BS
50632011-04-16 Bernd Schmidt <bernds@codesourcery.com>
5064
5065 PR target/48629
5066 * haifa-sched.c (prune_ready_list, schedule_block): Use
5067 sched_pressure_p rather than flag_sched_pressure.
5068
748f7574 50692011-04-15 Pat Haugen <pthaugen@us.ibm.com>
eb229cf4
PH
5070
5071 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
5072 cgraph_get_node instead of cgraph_get_create_node.
5073
2ba172e0
JJ
50742011-04-15 Jakub Jelinek <jakub@redhat.com>
5075
5076 * cfgexpand.c (expand_debug_expr): Use
5077 simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
5078
63d2a353
MM
50792011-04-15 Michael Matz <matz@suse.de>
5080
5081 * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
5082 * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
5083 * function.c (gimplify_parameters): Ditto.
5084 * gimplify.c (gimplify_vla_decl): Ditto.
5085
5086 * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
5087 (gimple_call_set_alloca_for_var): New inline function.
5088 (gimple_call_alloca_for_var_p): Ditto.
e81b8564
UB
5089 * gimple.c (gimple_build_call_from_tree): Remember
5090 CALL_ALLOCA_FOR_VAR_P state.
63d2a353
MM
5091 * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
5092
5093 * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
5094 calls if they were for VLA objects.
5095
dee74c34
MJ
50962011-04-15 Martin Jambor <mjambor@suse.cz>
5097
5098 * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
5099 of ADR_EXPRs.
5100
8e5837bc
MJ
51012011-04-15 Martin Jambor <mjambor@suse.cz>
5102
5103 PR middle-end/48601
5104 * tree-emutls.c (lower_emutls_function_body): Call
5105 cgraph_get_create_node instead of cgraph_get_node. Do not assert the
5106 result is non-NULL.
5107
0dc33c3c
NP
51082011-04-15 Nicola Pero <nicola.pero@meta-innovation.com>
5109
5110 * c-decl.c (detect_field_duplicates): Call
5111 objc_detect_field_duplicates instead of objc_get_interface_ivars.
5112
edcdea5b
NF
51132011-04-15 Nathan Froyd <froydnj@codesourcery.com>
5114
5115 * gimple.h (gimple_asm_clobbers_memory_p): Declare.
5116 * gimple.c (gimple_asm_clobbers_memory_p): Define.
5117 * ipa-pure-const.c (check_stmt): Call it.
5118 * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
5119
8456558d
RG
51202011-04-15 Richard Guenther <rguenther@suse.de>
5121
5122 PR tree-optimization/48290
5123 * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
5124 Properly decide inhibiting propagation based on the valueized
5125 operand. Do loop-closed SSA form preserving here ...
5126 (init_copy_prop): ... not here.
5127
266446be
L
51282011-04-15 H.J. Lu <hongjiu.lu@intel.com>
5129
5130 PR target/48612
5131 * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
5132 (*ieee_smax<mode>3): Likewise.
5133
17465c6e
AK
51342011-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5135
5136 * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
5137 Replace match_operand with match_dup for the third operand in
5138 these expanders.
5139
bce204e5
MK
51402011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
5141
5142 * combine.c (subst, combine_simlify_rtx): Add new argument, use it
5143 to track processing of conditionals. Update all callers.
5144 (try_combine, simplify_if_then_else): Update.
5145
3162fdf4
MK
51462011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
5147
5148 * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
5149 -fsched-pressure.
5150
79002a57 51512011-04-15 Georg-Johann Lay <avr@gjlay.de>
e81b8564 5152
79002a57
GJL
5153 * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
5154 instead of match_operand for operand 3.
5155
4fd3a105
RS
51562011-04-15 Richard Sandiford <richard.sandiford@linaro.org>
5157
5158 * recog.h (insn_operand_data): Add an "allows_mem" field.
5159 * genoutput.c (output_operand_data): Initialize it.
5160 * optabs.c (maybe_legitimize_operand_same_code): New function.
5161 (maybe_legitimize_operand): Use it when matching the original
5162 op->value.
5163
ad19c4be
EB
51642011-04-15 Eric Botcazou <ebotcazou@adacore.com>
5165
5166 * gimplify.c: Fix issues in comments throughout.
5167 (voidify_wrapper_expr): Fix long line.
5168 (build_stack_save_restore): Likewise.
5169 (gimplify_loop_expr): Likewise.
5170 (gimplify_compound_lval): Likewise.
5171 (gimplify_init_ctor_eval): Likewise.
5172 (gimplify_modify_expr_rhs): Likewise.
5173 (omp_notice_threadprivate_variable): Likewise.
5174
b25aa0e8 51752011-04-15 Eric Botcazou <ebotcazou@adacore.com>
e7925582 5176
b25aa0e8
EB
5177 * cfgexpand.c (expand_call_stmt): Convert the function type to the
5178 original one if this is not a builtin function.
e7925582 5179
09db7afe
JJ
51802011-04-14 Jakub Jelinek <jakub@redhat.com>
5181
5182 PR target/48605
5183 * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
5184 offset it as needed based on top 2 bits in operands[3], change
5185 MEM mode to SFmode and mask those 2 bits away from operands[3].
5186
c59633d9
NP
51872011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
5188
5189 * c-parser.c (c_parser_objc_protocol_definition): Updated for
5190 change from objc_declare_protocols() to objc_declare_protocol().
5191
5e60198b
UB
51922011-04-14 Uros Bizjak <ubizjak@gmail.com>
5193
5194 * config/i386/sse.md (sse4_1): New mode attribute.
5195 (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
5196 avx_blend<ssemodesuffix><avxmodesuffix> and
5197 sse4_1_blend<ssemodesuffix> using VF mode iterator.
5198 (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
5199 avx_blendv<ssemodesuffix><avxmodesuffix> and
5200 sse4_1_blendv<ssemodesuffix> using VF mode iterator.
5201 (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
5202 avx_dp<ssemodesuffix><avxmodesuffix> and
5203 sse4_1_dp<ssemodesuffix> using VF mode iterator.
5204 (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
5205 (sse4_1_packusdw): Merge with *avx_packusdw.
5206 (sse4_1_pblendvb): Merge with *avx_pblendvb.
5207 (sse4_1_pblendw): Merge with *avx_pblendw.
5208 (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
5209 (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
5210 avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
5211 VF mode iterator.
5212 (sse4_1_round<ssescalarmodesuffix>): Merge with
5213 *avx_round<ssescalarmodesuffix>.
5214 (aesenc): Merge with *avx_aesenc.
5215 (aesenclast): Merge with *avx_aesenclast.
5216 (aesdec): Merge with *avx_aesdec.
5217 (aesdeclast): Merge with *avx_aesdeclast.
5218 (pclmulqdq): Merge with *pclmulqdq.
5219 * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
5220 New predicate.
5221 (nonimm_not_xmm0_operand_maybe_avx): Ditto.
5222
6f197850
L
52232011-04-14 H.J. Lu <hongjiu.lu@intel.com>
5224
5225 PR middle-end/48608
5226 * cfgexpand.c (get_decl_align_unit): Renamed to ...
5227 (align_local_variable): This. Update DECL_ALIGN.
5228 (add_stack_var): Updated.
5229 (expand_one_stack_var): Likewise.
5230
4a5ba3ed
RG
52312011-04-14 Richard Guenther <rguenther@suse.de>
5232
5233 * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
5234 Remove.
5235 (dse_initialize_block_local_data, dse_leave_block,
5236 record_voperand_set, get_stmt_uid): Likewise.
5237 (dse_possible_dead_store_p): Allow any kind of killing stmt.
5238 (dse_optimize_stmt): Remove voperand set handling code.
5239 Simplify and improve to handle any kind of killing stmt.
5240 (dse_record_phi): Remove.
5241 (dse_enter_block): Simplify.
5242 (tree_ssa_dse): Likewise.
5243 * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
5244
10a5dd5d
JH
52452011-04-14 Jan Hubicka <jh@suse.cz>
5246
5247 * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
5248 * cgraph.h (struct inline_summary): Move to ipa-inline.h
5249 (cgraph_local_info): Remove inline_summary.
5250 * ipa-cp.c: Include ipa-inline.h.
5251 (ipcp_cloning_candidate_p, ipcp_estimate_growth,
5252 ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
5253 accesor.
5254 * lto-cgraph.c (lto_output_node): Do not stream inline summary.
5255 (input_overwrite_node): Do not set inline summary.
5256 (input_node): Do not stream inline summary.
5257 * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
5258 (cgraph_decide_inlining_incrementally): Do not try to estimate overall
5259 growth; we do not have inline parameters computed for that anyway.
5260 (cgraph_early_inlining): After inlining compute call_stmt_sizes.
5261 * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
5262 (inline_summary_t): New type and VECtor.
5263 (debug_inline_summary, dump_inline_summaries): Declare.
5264 (inline_summary): Use VOCtor.
5265 (estimate_edge_growth): Kill hack computing call stmt size directly.
5266 * lto-section-in.c (lto_section_name): Add inline section.
5267 * ipa-inline-analysis.c: Include lto-streamer.h
5268 (node_removal_hook_holder, node_duplication_hook_holder): New holders
5269 (inline_node_removal_hook, inline_node_duplication_hook): New functions.
5270 (inline_summary_vec): Define.
5271 (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
5272 dump_inline_summaries): New functions.
5e60198b
UB
5273 (estimate_function_body_sizes): Properly compute size/time of outgoing
5274 calls.
5275 (compute_inline_parameters): Alloc inline_summary; do not compute
5276 size/time of incomming calls.
10a5dd5d
JH
5277 (estimate_edge_time): Avoid missing time summary hack.
5278 (inline_read_summary): Read inline summary info.
5279 (inline_write_summary): Write inline summary info.
5280 (inline_free_summary): Free all hooks and inline summary vector.
5281 * lto-streamer.h: Add LTO_section_inline_summary section.
5282 * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
5283 * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
5284
b602d918
RS
52852011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
5286
5287 * tree-vectorizer.h (vect_strided_store_supported): Add a
5288 HOST_WIDE_INT argument.
5289 (vect_strided_load_supported): Likewise.
5290 (vect_permute_store_chain): Return void.
5291 (vect_transform_strided_load): Likewise.
5292 (vect_permute_load_chain): Delete.
5293 * tree-vect-data-refs.c (vect_strided_store_supported): Take a
5294 count argument. Check that the count is a power of two.
5295 (vect_strided_load_supported): Likewise.
5296 (vect_permute_store_chain): Return void. Update after above changes.
5297 Assert that the access is supported.
5298 (vect_permute_load_chain): Likewise.
5299 (vect_transform_strided_load): Return void.
5300 * tree-vect-stmts.c (vectorizable_store): Update calls after
5301 above interface changes.
5302 (vectorizable_load): Likewise.
5303 (vect_analyze_stmt): Don't check for strided powers of two here.
5304
ab4472fa
RG
53052011-04-14 Richard Guenther <rguenther@suse.de>
5306
5307 PR tree-optimization/48590
5308 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
5309 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
5310 (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
5311 BUILT_IN_STACK_SAVE.
5312 * tree-ssa-dce.c (propagate_necessity): Handle
5313 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
5314
32dabdaf
NP
53152011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
5316
5317 * c-parser.c (c_parser_objc_class_declaration): Updated call to
5318 objc_declare_class.
5319
daade206
RG
53202011-04-14 Richard Guenther <rguenther@suse.de>
5321
5322 * tree.h (get_object_alignment_1): Declare.
5323 * builtins.c (get_object_alignment_1): Split out worker from ...
5324 (get_object_alignment): ... here.
5325 * fold-const.c (get_pointer_modulus_and_residue): Use
5326 get_object_alignment_1.
5327
920e8172
RS
53282011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
5329
5330 * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
5331 type parameter.
5332 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
5333 parameter. Generalise code to handle arrays as well as vectors.
5334 (vect_setup_realignment): Update accordingly.
5335 * tree-vect-stmts.c (vectorizable_store): Likewise.
5336 (vectorizable_load): Likewise.
5337
5ce1ee7f
RS
53382011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
5339
5340 * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
5341 within the per-copy loop.
5342
6438fe33 53432011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
0ea25ecd
RS
5344
5345 * tree-vect-stmts.c (vectorizable_load): Print the number of copies
5346 in the dump file.
5347
6438fe33 53482011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
77b10485
RS
5349
5350 * doc/options.texi (Negative): Explicitly mention that the
5351 Negative chain must be circular.
5352
61e46a7d
NF
53532011-04-14 Nathan Froyd <froydnj@codesourcery.com>
5354
5355 * function.h (block_chainon): Declare.
5356 * function.c (block_chainon): Define.
5357
43ea6502 53582011-04-14 Anatoly Sokolov <aesok@post.ru>
5e60198b 5359 Eric Weddington <eric.weddington@atmel.com>
748f7574 5360 Georg-Johann Lay <avr@gjlay.de>
5e60198b 5361
f60c2554 5362 * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
43ea6502
AS
5363 New Includes
5364 (avr_init_builtins, avr_expand_builtin,
5365 avr_expand_delay_cycles, avr_expand_unop_builtin,
5366 avr_expand_binop_builtin ): New functions.
5367 (avr_builtin_id): New enum
5368 (struct avr_builtin_description): New struct
5369 (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
5370 (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
5e60198b 5371
43ea6502 5372 * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
5e60198b 5373 UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
43ea6502
AS
5374 UNSPECV_DELAY_CYCLES): new enumeration values
5375 (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
5376 ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
5377 ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
5378 ("*rotlqi3_4"): rename insn to "rotlqi3_4"
5379 ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
5380 "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
5381 "fmulsu"): New insns
5e60198b 5382
43ea6502
AS
5383 * config/avr/avr-c.c: fix line endings
5384 (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
5385 __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
5386 __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
5387 __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
5388 __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
5e60198b 5389
43ea6502
AS
5390 * doc/extend.texi (AVR Built-in Functions): New node
5391 (Target Builtins): Add documentation of AVR
5392 built-in functions.
5393
8a9b55f3
GJL
53942011-04-14 Georg-Johann Lay <avr@gjlay.de>
5395
5396 PR target/44643
5397 * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
5398 alone. Error if non-const data has attribute progmem.
5399
94bd1825
NF
54002011-04-13 Nathan Froyd <froydnj@codesourcery.com>
5401
5402 * tree.h (struct tree_constructor): Include tree_typed instead of
5403 tree_common.
5404 * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
5405 TS_TYPED instead of TS_COMMON.
5406
5e60198b 54072011-04-13 Uros Bizjak <ubizjak@gmail.com>
81b1e7eb
UB
5408
5409 * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
5410 (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
5411 (sse2_psadbw): Merge with *avx_psadbw.
5412 (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
5413 (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
5414 (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
5415 (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
5416 (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
5417 (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
5418 (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
5419 (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
5420 (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
5421 (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
5422 (ssse3_palignrti): Merge with *avx_palignrti.
5423
4b1a4694
NF
54242011-04-13 Nathan Froyd <froydnj@codesourcery.com>
5425
5426 * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
5427 * tree-ssanames.c (fini_ssanames): VEC_free it.
5428 (make_ssa_name_fn): Update for VECness of free_ssanames.
5429 (release_ssa_name, release_dead_ssa_names): Likewise.
5430 * tree.h (struct tree_ssa_name): Include tree_typed instead of
5431 tree_common.
5432 * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
5433 TS_TYPED instead of TS_COMMON.
5434
4da3b811
NF
54352011-04-13 Nathan Froyd <froydnj@codesourcery.com>
5436
5437 * postreload-gcse.c (gcse_after_reload_main): Add calls to
5438 statistics_counter_event.
5439 * tree-ssa-copyrename.c (stats): Define.
5440 (rename_ssa_copies): Count coalesced SSA_NAMEs. Add call to
5441 statistics_counter_event.
5442 * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
5443 (bswap_stats, widen_mul_stats): Define.
5444 (insert_reciprocals): Increment rdivs_inserted.
5445 (execute_cse_reciprocals): Zeroize reciprocal_stats. Increment
5446 rfuncs_inserted. Add calls to statistics_counter_event.
5447 (execute_cse_sincos_1): Increment inserted.
5448 (execute_cse_sincos): Zeroize sincos_stats. Add call to
5449 statistics_counter_event.
5450 (execute_optimize_bswap): Zeroize bswap_stats. Increment fields
5451 of bswap_stats. Add calls to statistics_counter_event.
5452 (convert_mult_to_widen): Increment widen_mults_inserted.
5453 (convert_plusminus_to_widen): Increment maccs_inserted.
5454 (convert_mult_to_fma): Increment fmas_inserted.
5455 (execute_optimize_widening_mul): Zeroize widen_mul_stats. Add
5456 calls to statistics_counter_event.
5457
89fa552a
VM
54582011-04-13 Vladimir Makarov <vmakarov@redhat.com>
5459
5460 PR rtl-optimization/48455
5461 * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
5462 `temp_costs->mem_cost'.
5463
03dfc36d
JH
54642011-04-13 Jan Hubicka <jh@suse.cz>
5465
5466 * ipa-inline.h: New file.
5467 * ipa-inline-analysis.c: New file. Broken out of ...
5468 * ipa-inline.c: ... this file; update toplevel comment;
5469 include ipa-inline.h
5470 (inline_summary): Move to ipa-inline.h
5471 (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
5472 ipa-inline-analysis.c.
7d4f8d02
EB
5473 (cgraph_estimate_time_after_inlining): Rename to
5474 estiamte_time_after_inlining; move to ipa-inline-analysis.c
03dfc36d
JH
5475 (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
5476 to estimate_edge_growth.
5477 (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
5478 rename to estimate_size_after_inlining.
5479 (cgraph_mark_inline_edge): Update for new naming convention.
5480 (cgraph_check_inline_limits): Likewise.
5481 (cgraph_edge_badness): Likewise.
5482 (cgraph_decide_recursive_inlining): Likewise.
5483 (cgraph_decide_inlining_of_small_functions): Likewise.
5484 (cgraph_decide_inlining_incrementally): Likewise.
7d4f8d02
EB
5485 (cgraph_estimate_growth): Rename to estimate_growth; move to
5486 ipa-inline-analysis.c.
03dfc36d
JH
5487 (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
5488 (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
5489 (compute_inline_parameters): Likewise.
5490 (compute_inline_parameters_for_current): Likewise.
5491 (pass_inline_parameters): Likewise.
5492 (inline_indirect_intraprocedural_analysis): Likewise.
5493 (analyze_function): Rename to inline_analyze_function; likewise.
5494 (add_new_function): Move to ipa-inline-analysis.c.
5495 (inline_generate_summary): Likewise.
5496 (inline_read_summary): Likewise.
5497 (inline_write_summary): Likewise.
5498 * Makefile.in (ipa-inline-analysis.c): New file.
5499
7673c962
RO
55002011-04-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5501
5502 * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
5503 * configure: Regenerate.
5504
9698252f
NF
55052011-04-13 Nathan Froyd <froydnj@codesourcery.com>
5506
5507 * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
5508 instead of tree_common.
5509 (struct tree_fixed_cst, struct tree_string, struct tree_complex):
5510 Likewise.
5511 * tree.c (initialize_tree_contains_struct): Mark such nodes as being
5512 TS_TYPED rather than TS_COMMON.
5513 * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
5514
3a7bfdd5
GJL
55152011-04-01 Georg-Johann Lay <avr@gjlay.de>
5516
5517 PR target/45263
86d83530
GJL
5518 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
5519 r20 around calls of __tablejump_elpm__
3a7bfdd5 5520
20790697
JJ
55212011-04-13 Jakub Jelinek <jakub@redhat.com>
5522
5523 PR middle-end/48591
5524 * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
5525 NULL.
5526 (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
5527
094d7661
BS
55282011-04-13 Bernd Schmidt <bernds@codesourcery.com>
5529
5530 * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
5531 (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
5532 (cfi_vec): New typedef.
5533 (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
5534 dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
5535 (cie_cfi_vec): New static variable.
5536 (cie_cfi_head): Delete.
5537 (add_cfi): Accept a cfi_vec * as first argument. All callers and
5538 declaration changed. Use vector rather than list operations.
5539 (new_cfi): Don't initialize the dw_cfi_next field.
5540 (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
5541 rather than list operations.
5542 (lookup_cfa): Use vector rather than list operations.
5543 (output_cfis): New argument upto. Accept a cfi_vec rather than
5544 a dw_cfi_ref list head as argument. All callers changed.
5545 Iterate over the vector using upto as a maximum index.
5546 (output_all_cfis): New static function.
5547 (output_fde): Use vector rather than list operations. Use the
5548 new upto argument for output_cfis rather than manipulating a
5549 list.
5550 (dwarf2out_begin_prologue): Change initializations to match
5551 new struct members.
5552 (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
5553 from the vector length rather than searching for the end of a list.
5554 Use output_all_cfis.
5555 (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
5556
673a5740
NC
55572011-04-13 Nick Clifton <nickc@redhat.com>
5558
5559 * config/rx/rx.md (movmemsi): Do not use this pattern when
5560 volatile pointers are involved.
5561
1ee8b298
UB
55622011-04-13 Uros Bizjak <ubizjak@gmail.com>
5563
5564 * config/i386/sse.md (pinsrbits): Remove.
5565 (sse2_packsswb): Merge with *avx_packsswb.
5566 (sse2_packssdw): Merge with *avx_packssdw.
5567 (sse2_packuswb): Merge with *avx_packuswb.
5568 (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
5569 (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
5570 (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
5571 (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
5572 (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
5573 (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
5574 (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
5575 (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
5576 (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
5577 (*sse4_1_pinsrq): Merge with *avx_pinsrq.
5578 (sse2_loadld): Merge with *avx_loadld.
5579 (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
5580 (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
5581 (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
5582 (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
5583 (vec_concatv2di): Merge with *vec_concatv2di_avx.
5584
81f653d6
NF
55852011-04-12 Nathan Froyd <froydnj@codesourcery.com>
5586
5587 * c-decl.c (union lang_tree_node): Check for TS_COMMON before
5588 calling TREE_CHAIN.
5589 * print-tree.c (print_node): Likewise.
5590 * tree-inline.c (copy_tree_r): Likewise.
5591 * c-lang.c (LANG_HOOKS_INIT_TS): Define.
5592 * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
5593 instead of TS_COMMON.
5594 * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
5595 * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
5596 (copy_node_stat): Zero TREE_CHAIN only if necessary.
5597 (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
5598 (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
5599 ...and these...
5600 (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
5601 * tree.h: ...here.
5602 (TREE_CHAIN): Check for a TS_COMMON structure.
5603 (TREE_TYPE): Check for a TS_TYPED structure.
5604
748f7574 56052011-04-12 Pat Haugen <pthaugen@us.ibm.com>
ed940a4a
PH
5606
5607 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
5608 cgraph_get_create_node instead of cgraph_node.
5609
eb345401
NP
56102011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
5611
5612 * c-parser.c (c_parser_initelt): Updated call to
5613 objc_build_message_expr.
5614 (c_parser_postfix_expression): Likewise.
5615
a6c46762
KT
56162011-04-12 Kai Tietz <ktietz@redhat.com>
5617
5618 * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
5619 MASK_MS_BITFIELD_LAYOUT bit.
5620
b4ccfed9
JJ
56212011-04-12 Jakub Jelinek <jakub@redhat.com>
5622
5623 * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
5624 assert it is always true.
5625 (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
5626 moves.
5627
0d8a2528
NP
56282011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
5629
5630 * c-parser.c (c_lex_one_token): Rewritten conditional used when
5631 compiling Objective-C to be more efficient.
5632
06bd234a
AF
56332011-04-12 Axel Freyn <axel-freyn@gmx.de>
5634
5635 * opts-common.c (decode_cmdline_options_to_array): Remove variable
5636 argv_copied.
5637
28569ac3
RS
56382011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
5639
5640 * recog.h, genoutput.c, optabs.c: Revert last patch.
5641
ae59e00d
RR
56422011-04-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
5643
81b1e7eb
UB
5644 PR target/48090
5645 * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
ae59e00d 5646
cff1b7e0
RS
56472011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
5648
5649 * recog.h (insn_operand_data): Add an "allows_mem" field.
5650 * genoutput.c (output_operand_data): Initialize it.
5651 * optabs.c (maybe_legitimize_operand_same_code): New function.
5652 (maybe_legitimize_operand): Use it when matching the original
5653 op->value.
5654
77059241
RS
56552011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
5656
5657 * genpreds.c (process_define_predicate): Move most processing
5658 to gensupport.c. Continue to validate the expression.
5659 * genrecog.c (did_you_mean_codes, compute_predicate_codes)
5660 (process_define_predicate): Move processing to gensupport.c.
5661 (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
5662 * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
5663 (compute_predicate_codes): Moved from genrecog.c. Add lineno
5664 argument.
5665 (valid_predicate_name_p): New function, split out from old
5666 genpreds.c:process_define_predicate.
5667 (process_define_predicate): New function, combining code from
5668 old genpreds.c and genrecog.c functions.
5669 (process_rtx): Call it for DEFINE_PREDICATE and
5670 DEFINE_SPECIAL_PREDICATE.
5671
6308e208
RS
56722011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
5673
5674 * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
5675 size of a '%A' memory reference.
5676 (T_DREG, T_QREG): New neon_builtin_type_bits.
5677 (arm_init_neon_builtins): Assert that the load and store operands
5678 are neon_struct_operands.
5679 (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
5680 (NEON_ARG_MEMORY): New builtin_arg.
5681 (neon_dereference_pointer): New function.
5682 (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
5683 Handle NEON_ARG_MEMORY.
5684 (arm_expand_neon_builtin): Update after above interface changes.
5685 Use NEON_ARG_MEMORY for loads and stores.
5686 * config/arm/predicates.md (neon_struct_operand): New predicate.
5687 * config/arm/iterators.md (V_two_elem): Tweak formatting.
5688 (V_three_elem): Use BLKmode for accesses that have no associated mode.
5689 (V_four_elem): Tweak formatting.
5690 * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
5691 (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
5692 (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
5693 (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
5694 (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
5695 (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
5696 (neon_vst4<mode>): Replace pointer operand with a memory operand.
5697 Use %A in the output template.
5698 (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
5699 (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
5700 (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
5701 the width of the memory access. Remove post-increment.
5702 * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
5703
e5db8f2f
NC
57042011-04-12 Nick Clifton <nickc@redhat.com>
5705
5706 * config/v850/v850.c (expand_prologue): Do not use the CALLT
5707 instruction for interrupt handlers if the target is the basic V850
5708 architecture.
5709 (expand_epilogue): Likewise.
5710
74f091d6
JJ
57112011-04-12 Jakub Jelinek <jakub@redhat.com>
5712
5713 PR rtl-optimization/48549
5714 * combine.c (propagate_for_debug): Also stop after BB_END of
5715 this_basic_block. Process LAST and just stop processing after it.
5716 (combine_instructions): If last_combined_insn has been deleted,
5717 set last_combined_insn to its PREV_INSN.
5718
f20ca725
RG
57192011-04-12 Richard Guenther <rguenther@suse.de>
5720
5721 PR tree-optimization/46076
5722 * gimple.h (struct gimple_statement_call): Add fntype field.
5723 (gimple_call_fntype): Adjust.
5724 (gimple_call_set_fntype): New function.
5725 * gimple.c (gimple_build_call_1): Set the call function type.
5726 * gimplify.c (gimplify_call_expr): Preserve the function
5727 type the frontend used for the call.
5728 (gimplify_modify_expr): Likewise.
5729 * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
5730 function type.
5731 * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
5732 function type.
5733 * tree-ssa.c (useless_type_conversion_p): Function pointer
5734 conversions are useless.
5735
a358e188
MJ
57362011-04-12 Martin Jambor <mjambor@suse.cz>
5737
5738 * cgraph.h (cgraph_node): Remove function declaration.
5739 (cgraph_create_node): Declare.
5740 (cgraph_get_create_node): Likewise.
5741 * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
5742 Updated all callers.
5743 (cgraph_node): Renamed to cgraph_create_node, assert that a node for
5744 the decl does not already exist. Call cgraph_get_create_node instead
5745 of cgraph_node.
5746 (cgraph_get_create_node): New function.
5747 (cgraph_same_body_alias): Update comment.
5748 (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
5749 assert it does not return NULL.
5750 (cgraph_update_edges_for_call_stmt): Likewise.
5751 (cgraph_clone_edge): Likewise.
5752 (cgraph_create_virtual_clone): Likewise.
5753 (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
5754 instead of cgraph_node.
5755 (cgraph_add_new_function): Call cgraph_create_node or
5756 cgraph_get_create_node instead of cgraph_node.
5757 * cgraphbuild.c (record_reference): Call cgraph_get_create_node
5758 instead of cgraph_node.
5759 (record_eh_tables): Likewise.
5760 (mark_address): Likewise.
5761 (mark_load): Likewise.
5762 (build_cgraph_edges): Call cgraph_get_create_node instead
5763 of cgraph_node.
5764 (rebuild_cgraph_edges): Likewise.
5765 * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
5766 instead of cgraph_node.
5767 (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
5768 cgraph_node.
5769 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
5770 cgraph_create_node instead of cgraph_node.
5771 * c-decl.c (finish_function): Call cgraph_get_create_node instead
5772 of cgraph_node.
5773 * lto-cgraph.c (input_node): Likewise.
5774 * lto-streamer-in.c (input_function): Likewise.
5775 * varasm.c (mark_decl_referenced): Likewise.
5776 (assemble_alias): Likewise.
5777
fe660d7b
MJ
57782011-04-12 Martin Jambor <mjambor@suse.cz>
5779
5780 * tree-inline.c (tree_function_versioning): Call cgraph_get_node
5781 instead of cgraph_node and assert it does not return NULL.
5782 * lto-streamer-in.c (lto_read_body): Likewise.
5783 * omp-low.c (new_omp_context): Likewise.
5784 (create_task_copyfn): Likewise.
5785 * tree-emutls.c (lower_emutls_function_body): Likewise.
5786 * matrix-reorg.c (transform_allocation_sites): Likewise.
5787
bae5cddf
JJ
57882011-04-12 Jakub Jelinek <jakub@redhat.com>
5789
5790 PR c/48552
5791 * c-typeck.c (build_asm_expr): Error out on attempts to use
5792 void type outputs or inputs for constraints that allow reg or
5793 don't allow memory.
5794
06eb52ca
CLT
57952011-04-11 Chung-Lin Tang <cltang@codesourcery.com>
5796 Richard Earnshaw <rearnsha@arm.com>
5797
5798 PR target/48250
5799 * config/arm/arm.c (arm_legitimize_reload_address): Update cases
5800 to use sign-magnitude offsets. Reject unsupported unaligned
5801 cases. Add detailed description in comments.
5802 * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
5803 condition from TARGET_32BIT to TARGET_ARM.
5804
648a616b
NF
58052011-04-11 Nathan Froyd <froydnj@codesourcery.com>
5806
5807 * tree.h (struct typed_tree): New.
5808 (struct tree_common): Include it instead of tree_base.
5809 (TREE_TYPE): Update for new location of type field.
5810 (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
5811 (DECL_USER_ALIGN, DECL_PACKED): Likewise.
5812 (union tree_node): Add typed field.
5813 * treestruct.def (TS_TYPED): New.
5814 * lto-streamer.c (check_handled_ts_structures): Handle it.
5815 * tree.c (MARK_TS_TYPED): New macro.
5816 (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
5817
1e6d1da0
EB
58182011-04-11 Eric Botcazou <ebotcazou@adacore.com>
5819
5820 * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
5821 (force_nonfallthru): Do not alter the loop nest if no basic block
5822 was created.
5823
58242011-04-11 Uros Bizjak <ubizjak@gmail.com>
d8700b1c
UB
5825
5826 * config/i386/sse.md (VI): New mode iterator.
5827 (SSEMODEI): Remove.
5828 (AVX256MODEI): Ditto.
5829 (AVXMODEF4P): Ditto.
5830 (avxvecpsmode): Ditto.
5831 (one_cmpl<mode>2): Enable for TARGET_SSE. Use VI mode iterator.
5832 (sse2_andnot<mode>3): New expander.
5833 (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
5834 *avx_andnot<mode>3. Enable for TARGET_SSE. Use VI mode iterator.
5835 (<any_logic:code><mode>3): Use VI mode iterator.
5836 (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
5837 and *avx_<any_logic:code><mode>3. Use VI mode iterator.
5838 (*andnottf3): Handle AVX three-operand constraints.
5839 (*<any_logic:code>tf3): Handle AVX three-operand constraints.
5840
b1372d5d 58412011-04-11 Joseph Myers <joseph@codesourcery.com>
d8700b1c 5842 Robert Millan <rmh@gnu.org>
b1372d5d
JM
5843
5844 * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
5845 * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
5846 GNU_USER_DYNAMIC_LINKER64): Define.
5847 (REG_NAME): Don't undefine.
5848 (MD_UNWIND_SUPPORT): Undefine.
5849 * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
5850 (REG_NAME): Don't undefine.
5851 (MD_UNWIND_SUPPORT): Undefine.
d8700b1c 5852 * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
b1372d5d 5853
761c0c6e
JM
58542011-04-11 Joseph Myers <joseph@codesourcery.com>
5855
5856 * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
5857 (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
5858
26e0228f
XDL
58592011-04-11 Xinliang David Li <davidxl@google.com>
5860
5861 * value-profile.c (check_ic_target): New function.
5862 (gimple_ic_transform): Sanity check indirect call target.
5863 * gimple-low.c (gimple_check_call_args): Interface change.
5864 (gimple_check_call_matching_types): New function.
5865 * tree-inline.c (tree_can_inline_p): Call new function.
6075765d
BS
5866
58672011-04-11 Basile Starynkevitch <basile@starynkevitch.net>
5868
5869 * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
5870 tree-pretty-print.h & realmpfr.h.
5871
a58dfa49
VM
58722011-04-11 Vladimir Makarov <vmakarov@redhat.com>
5873
5874 PR middle-end/48464
5875 * ira.c (setup_pressure_classes): Fix typo in loop condition.
5876 (setup_allocno_and_important_classes): Ditto.
5877
107fd1c1
JM
58782011-04-11 Joseph Myers <joseph@codesourcery.com>
5879
5880 * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
5881 GNU_USER_DYNAMIC_LINKER.
5882 * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
5883 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5884 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
5885 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
5886 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
5887 GNU_USER_TARGET_OS_CPP_BUILTINS.
5888 * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
5889 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5890 * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
5891 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5892 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
5893 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
5894 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
5895 GNU_USER_TARGET_OS_CPP_BUILTINS.
5896 * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5897 GNU_USER_DYNAMIC_LINKER.
5898 * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
5899 GNU_USER_TARGET_OS_CPP_BUILTINS.
5900 * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
5901 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5902 * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
5903 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5904 * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
5905 * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
5906 GNU_USER_DYNAMIC_LINKER64): Remove.
5907 * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
5908 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5909 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5910 GNU_USER_DYNAMIC_LINKER.
5911 * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
5912 GNU_USER_TARGET_OS_CPP_BUILTINS.
5913 * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
5914 GNU_USER_TARGET_OS_CPP_BUILTINS.
5915 * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
5916 to GNU_USER_TARGET_OS_CPP_BUILTINS.
5917 * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
5918 GNU_USER_TARGET_OS_CPP_BUILTINS.
5919 (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
5920 (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
5921 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
5922 * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
5923 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5924 * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5925 GNU_USER_DYNAMIC_LINKER.
5926 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
5927 GNU_USER_TARGET_OS_CPP_BUILTINS.
5928 * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
5929 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5930 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5931 GNU_USER_DYNAMIC_LINKER.
5932 * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
5933 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5934 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
5935 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5936 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5937 GNU_USER_DYNAMIC_LINKER.
5938 * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
5939 GNU_USER_DYNAMIC_LINKERN32.
5940 (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
5941 GNU_USER_DYNAMIC_LINKERN32. Change LINUX_DYNAMIC_LINKER64 to
5942 GNU_USER_DYNAMIC_LINKER64. Change LINUX_DYNAMIC_LINKER32 to
5943 GNU_USER_DYNAMIC_LINKER32.
5944 * config/mn10300/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/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
5949 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5950 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
5951 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
d8700b1c 5952 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
107fd1c1
JM
5953 * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
5954 GNU_USER_DYNAMIC_LINKER32.
5955 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
5956 * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
5957 GNU_USER_DYNAMIC_LINKER.
5958 * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
5959 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5960 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
5961 GNU_USER_DYNAMIC_LINKER32. Change LINUX_DYNAMIC_LINKER64 to
5962 GNU_USER_DYNAMIC_LINKER64.
5963 * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
5964 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5965 (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5966 GNU_USER_DYNAMIC_LINKER.
5967 * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
5968 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5969 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
5970 GNU_USER_DYNAMIC_LINKER.
5971 * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
5972 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5973 (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
5974 GNU_USER_DYNAMIC_LINKER32.
5975 (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
5976 GNU_USER_DYNAMIC_LINKER64.
5977 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
5978 GNU_USER_DYNAMIC_LINKER64.
5979 * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
5980 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
5981 * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
5982 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
d8700b1c 5983 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
107fd1c1 5984
e24609cf
JM
59852011-04-11 Joseph Myers <joseph@codesourcery.com>
5986
5987 * config/i386/gnu-user.h: Copy from linux.h. Update comments.
5988 (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
5989 (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
5990 GNU_USER_DYNAMIC_LINKER.
5991 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
5992 * config/i386/gnu-user64.h: Copy from linux64.h. Update comments.
5993 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
5994 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
5995 GNU_USER_DYNAMIC_LINKER64.
5996 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
5997 * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
5998 GNU_USER_LINK_EMULATION.
5999 * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
6000 DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
6001 ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
6002 MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
6003 PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
6004 CPP_SPEC, CC1_SPEC): Remove.
6005 (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
6006 (GNU_USER_DYNAMIC_LINKER): Define.
6007 (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
6008 ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
6009 ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
6010 LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
6011 TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
6012 STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
6013 TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
6014 * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
6015 CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
6016 TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
6017 LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
6018 LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
6019 (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
6020 (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
6021 TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
6022 TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
6023 * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
6024 GNU_USER_DYNAMIC_LINKER.
6025 * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
6026 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
6027 * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
6028 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
6029 * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
6030 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
6031 * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
6032 i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
6033 i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
d8700b1c 6034 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
e24609cf 6035
b8ce4e94
KT
60362011-04-11 Kai Tietz <ktietz@redhat.com>
6037
6038 PR target/9601
6039 PR target/11772
6040 * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
6041 * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
6042 comment.
6043 (ix86_is_msabi_thiscall): Removed.
6044 (ix86_is_type_thiscall): Likewise.
6045 (ix86_get_callcvt): New function.
6046 (ix86_comp_type_attributes): Simplify check.
6047 (ix86_function_regparm): Use ix86_get_callcvt for calling
6048 convention attribute checks.
6049 (ix86_return_pops_args): Likewise.
6050 (ix86_static_chain): Likewise.
6051 (x86_this_parameter): Likewise.
6052 (x86_output_mi_thunk): Likewise.
6053 (ix86_function_type_abi): Optimize check for types without attributes.
6054 * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
6055 IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
6056 IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
6057 by flag-values.
6058 (IX86_BASE_CALLCVT): Helper macro.
6059 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
6060 Use ix86_get_callcvt for calling convention attribute checks and avoid
6061 symbol-decoration for stdcall in TARGET_RTD case.
6062 * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
6063 Likewise.
6064 (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
6065 for declaration.
6066
798dd0ba
UB
60672011-04-11 Uros Bizjak <ubizjak@gmail.com>
6068
6069 * config/i386/sse.md (VI_128): New mode iterator.
6070 (VI12_128): Rename from SSEMODE12.
6071 (VI14_128): Rename from SSEMODE14.
6072 (VI124_128): New mode iterator.
6073 (VI24_128): Rename from SSEMODE248.
6074 (VI248_128): Rename from SSEMODE248.
6075 (SSEMODE124C8): Remove.
6076 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
6077 (*sse2_<plusminus_insn><mode>3): Merge with
6078 *avx_<plusminus_insn><mode>3.
6079 (*mulv8hi3): Merge with *avx_mulv8hi3.
6080 (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
6081 (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
6082 (*sse2_pmaddwd): Merge with *avx_pmaddwd.
6083 (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
6084 (ashr<mode>3): Merge with *avx_ashr<mode>3.
6085 (lshr<mode>3): Merge with *avx_lshr<mode>3.
6086 (ashl<mode>3): Merge with *avx_ashl<mode>3.
6087 (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
6088 (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
6089 (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
6090 (*<smaxmin:code>v8hi3): Ditto.
6091 (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
6092 (*<smaxmin:code>v16qi3): Ditto.
6093 (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
6094 (*sse2_eq<mode>3): Ditto.
6095 (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
6096 (*sse2_gt<mode>3): Ditto.
6097 (vcondv2di): Split out of vcond<mode>.
6098 (vconduv2di): Split out of vcondu<mode>.
6099
956011be
RG
61002011-04-11 Richard Guenther <rguenther@suse.de>
6101
6102 * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
6103 before calling tree_low_cst.
6104
e6313a78
RG
61052011-04-11 Richard Guenther <rguenther@suse.de>
6106
6107 * stor-layout.c (layout_type): Compute all array index size operations
6108 in the original type.
6109 (initialize_sizetypes): Add comment.
6110 (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
6111
e69d7376
JM
61122011-04-11 Joseph Myers <joseph@codesourcery.com>
6113
6114 * common.opt (Tbss=, Tdata=, Ttext=): New options.
6115
9f9ebcdf
MJ
61162011-04-11 Martin Jambor <mjambor@suse.cz>
6117
6118 * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
6119 of cgraph_node, handle NULL return value.
6120 (cgraph_global_info): Likewise.
6121 (cgraph_rtl_info): Likewise.
6122 * tree-inline.c (estimate_num_insns): Likewise.
6123 * gimplify.c (unshare_body): Likewise.
6124 (unvisit_body): Likewise.
6125 (gimplify_body): Likewise.
6126 * predict.c (optimize_function_for_size_p): Likewise.
6127 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
6128 (call_may_clobber_ref_p_1): Likewise.
6129 * varasm.c (function_section_1): Likewise.
6130 (assemble_start_function): Likewise.
6131
581985d7
MJ
61322011-04-11 Martin Jambor <mjambor@suse.cz>
6133
6134 * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
6135 of cgraph_node.
6136 * final.c (rest_of_clean_state): Likewise.
6137 * gimple-iterator.c (update_call_edge_frequencies): Likewise.
6138 * passes.c (pass_init_dump_file): Likewise.
6139 (execute_all_ipa_transforms): Likewise.
6140 (function_called_by_processed_nodes_p): Likewise.
6141 * predict.c (maybe_hot_frequency_p): Likewise.
6142 (probably_never_executed_bb_p): Likewise.
6143 (compute_function_frequency): Likewise.
6144 * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
6145 (unnest_nesting_tree_1): Likewise.
6146 (lower_nested_functions): Likewise.
6147 * tree-optimize.c (execute_fixup_cfg): Likewise.
6148 (tree_rest_of_compilation): Likewise.
6149 * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
6150 * tree-sra.c (ipa_early_sra): Likewise.
6151 * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
6152 * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
6153 * ipa.c (record_cdtor_fn): Likewise.
6154 * ipa-inline.c (cgraph_early_inlining): Likewise.
6155 (compute_inline_parameters_for_current): Likewise.
6156 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
6157 * ipa-pure-const.c (local_pure_const): Likewise.
6158 * ipa-split.c (split_function): Likewise.
6159 (execute_split_functions): Likewise.
6160 * cgraphbuild.c (build_cgraph_edges): Likewise.
6161 (rebuild_cgraph_edges): Likewise.
6162 (cgraph_rebuild_references): Likewise.
6163 (remove_cgraph_callee_edges): Likewise.
6164 * cgraphunit.c (cgraph_mark_if_needed): Likewise.
6165 (verify_cgraph_node): Likewise.
6166 (cgraph_analyze_functions): Likewise.
6167 (cgraph_preserve_function_body_p): Likewise.
6168 (save_inline_function_body): Likewise.
6169 (save_inline_function_body): Likewise.
6170 * tree-inline.c (copy_bb): Likewise.
6171 (optimize_inline_calls): Likewise.
6172
57dbdc5a
MJ
61732011-04-11 Martin Jambor <mjambor@suse.cz>
6174
6175 PR tree-optimization/48195
6176 * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
6177 ipa_check_create_edge_args.
6178 (ipcp_generate_summary): Do not call ipa_check_create_node_params and
6179 ipa_check_create_edge_args.
6180 * ipa-inline.c (inline_generate_summary): Do not call
6181 ipa_check_create_node_params and ipa_check_create_edge_args.
6182 * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
6183 ipa_check_create_edge_args.
6184
d108e679
AS
61852011-04-09 Anatoly Sokolov <aesok@post.ru>
6186
6187 * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
6188 instead of loop.
6189 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
6190 * function.c (record_hard_reg_sets): Likewise.
6191 * ira.c (compute_regs_asm_clobbered): Likewise.
6192 * sched-deps.c (sched_analyze_1): Likewise.
6193 * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
6194
3411bc59
XDL
61952011-04-09 Xinliang David Li <davidxl@google.com>
6196
6197 PR tree-optimization/PR48484
6198 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
6199 has_valid_pred lazily
6200
b365495a
DS
62012011-04-09 Duncan Sands <baldrick@free.fr>
6202
6203 * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
6204
68bc509a
EB
62052011-04-08 Eric Botcazou <ebotcazou@adacore.com>
6206
6207 * combine.c (combine_validate_cost): Adjust comments. Set registered
6208 cost of I0 to zero at the end, if any.
6209
041e059f
XDL
62102011-04-08 Xinliang David Li <davidxl@google.com>
6211
68bc509a
EB
6212 * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
6213 to insane profile data.
041e059f 6214
444b3995
XDL
62152011-04-08 Xinliang David Li <davidxl@google.com>
6216
6217 * ipa-cp.c (ipcp_update_profiling): Correct
6218 negative scale factor due to insane profile data.
6219
6a801cf2
XDL
62202011-04-08 Xinliang David Li <davidxl@google.com>
6221
6222 * final.c (dump_basic_block_info): New function.
6223 (final): Dump basic block.
6224 (final_scan_insn): Remove old dump.
6225
d5f3624e
SK
62262011-04-08 Steven G. Kargl <kargl@gcc.gnu.org>
6227
68bc509a
EB
6228 PR target/47829
6229 * config.gcc (i386-*-freebsd): Disable unwind table generation for
6230 crtbegin/crtend.
d5f3624e 6231
42821aff
MM
62322011-04-08 Michael Matz <matz@suse.de>
6233
6234 PR middle-end/48389
6235 * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
6236 functions.
6237 (rebuild_jump_labels): Call rebuild_jump_labels_1.
6238 * rtl.h (rebuild_jump_labels_chain): Declare.
6239 * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
6240 insns inserted on edges.
6241
ad7be009
JM
62422011-04-08 Joseph Myers <joseph@codesourcery.com>
6243
6244 * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
6245 * config/arm/arm-arches.def: New.
6246 * config/arm/arm-opts.h: New.
6247 * config/arm/genopt.sh: New.
6248 * config/arm/arm-tables.opt: New (generated).
6249 * config/arm/arm.c (arm_handle_option, arm_target_help,
6250 TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
6251 (all_architectures): Get most table contents from arm-arches.def.
6252 (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
6253 arm_selected_tune here.
6254 * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
6255 * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
6256 (march=, mcpu=, mtune=): Use Enum and Var.
6257 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
6258 (arm.o): Update dependencies.
ecbb6fb7 6259
42821aff 62602011-04-08 Basile Starynkevitch <basile@starynkevitch.net>
ecbb6fb7
BS
6261
6262 * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
6263 of header_file.
6264 (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
6265 (write_typed_alloc_defns): Likewise.
6266 (main): Calls write_typed_alloc_defns with output_header.
6267
8d189b3f
VM
62682011-04-08 Vladimir Makarov <vmakarov@redhat.com>
6269
68bc509a 6270 PR inline-asm/48435
8d189b3f
VM
6271 * ira-color.c (setup_profitable_hard_regs): Add comments.
6272 Don't take prohibited hard regs into account.
6273 (setup_conflict_profitable_regs): Rename to
6274 get_conflict_profitable_regs.
6275 (check_hard_reg_p): Check prohibited hard regs.
6276
44f370bf
NF
62772011-04-08 Nathan Froyd <froydnj@codesourcery.com>
6278
6279 * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
6280 * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
6281 * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
6282
483d7ad3
JDA
62832011-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6284
6285 PR target/48366
6286 * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
b8a17fa2 6287 move from floating point to shift amount register.
483d7ad3
JDA
6288 (emit_move_sequence): Remove secondary reload support for floating
6289 point to shift amount amount register copies.
6290 (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
6291 amount register copies.
6292 * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
6293 register, return false if mode isn't a scalar integer mode.
6294 * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
6295
97e03fa1
RG
62962011-04-08 Richard Guenther <rguenther@suse.de>
6297
6298 * gimple.c (gimple_call_flags): Remove kludge.
6299
9d40778b
AM
63002011-04-08 Alexander Monakov <amonakov@ispras.ru>
6301
6302 * sel-sched.c (sel_region_init): Move call to
6303 sel_setup_region_sched_flags after setup_current_loop_nest.
6304
19ac7892
AB
63052011-04-08 Andrey Belevantsev <abel@ispras.ru>
6306
6307 PR rtl-optimization/48272
19ac7892
AB
6308 * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
6309 init_insn_reg_pressure_info. Adjust a caller.
6310 * sched-int.h (init_insn_reg_pressure_info): Declare.
6311 * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
6312 when sched-pressure is enabled.
6313
0f8c63cc
RG
63142011-04-08 Richard Guenther <rguenther@suse.de>
6315
6316 * gimple.c (gimple_set_modified): Do not queue calls to
6317 MODIFIED_NORETURN_CALLS here ...
6318 * tree-ssa-operands.c (update_stmt_operands): ... but here.
6319
5e5a425e
RG
63202011-04-08 Richard Guenther <rguenther@suse.de>
6321
6322 PR lto/48467
6323 * toplev.c (lang_dependent_init): Do not open asm_out_file
6324 in WPA mode, nor perform debug machinery initialization.
6325 (finalize): Do not unlink asm_out_file in WPA mode.
6326
9bfc434b
RG
63272011-04-08 Richard Guenther <rguenther@suse.de>
6328
6329 * gimple.h (gimple_call_fntype): New function.
6330 (gimple_call_return_type): Use it.
6331 * expr.c (expand_expr_real_1): Use gimple_call_fntype.
6332 * gimple-low.c (gimple_check_call_args): Likewise.
6333 * gimple.c (gimple_call_flags): Likewise.
6334 (gimple_call_arg_flags): Likewise.
6335 (gimple_call_return_flags): Likewise.
6336 * tree-cfg.c (verify_gimple_call): Likewise.
6337 (do_warn_unused_result): Likewise.
6338 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
6339 * value-prof.c (gimple_ic_transform): Fix fndecl check.
6340
7c1f0b40
DM
63412011-04-08 Dmitry Melnik <dm@ispras.ru>
6342
6343 PR rtl-optimization/48235
6344 * sel-sched.c (code_motion_process_successors): Recompute the last
6345 insn in basic block if control flow changed.
6346 (code_motion_path_driver): Ditto. Recompute the first insn as well.
6347 Update condition for ilist_remove.
6348
ea4d630f
AM
63492011-04-08 Alexander Monakov <amonakov@ispras.ru>
6350
6351 PR rtl-optimization/48302
6352 * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
6353 * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument. Use
6354 it to record added preheader blocks.
6355 * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument. Pass it
6356 on to sel_add_loop_preheaders.
6357 (sel_region_init): Move call to setup_current_loop_nest after
6358 sel_init_bbs.
6359
07643d76
AM
63602011-04-08 Alexander Monakov <amonakov@ispras.ru>
6361
6362 PR target/48273
6363 * cfgloop.h (loop_has_exit_edges): New helper.
6364 * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
6365 non-clonable.
6366 * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
6367 that have no exit edges.
6368
1f3b2b4e
AM
63692011-04-08 Alexander Monakov <amonakov@ispras.ru>
6370
6371 PR rtl-optimization/48442
6372 * sel-sched.c (init_seqno): Remove number_of_insns argument. Update
6373 all callers. Adjust assert.
6374
554f1948
JJ
63752011-04-08 Jakub Jelinek <jakub@redhat.com>
6376
6377 PR tree-optimization/48377
6378 * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
6379 is_packed to true even for types with smaller TYPE_ALIGN than
6380 TYPE_SIZE.
6381
ddf72388
RG
63822011-04-08 Richard Guenther <rguenther@suse.de>
6383
6384 PR bootstrap/48513
6385 * doc/tm.texi: Re-generate.
6386
0c27e2d8
WG
63872011-04-08 Wei Guozhi <carrot@google.com>
6388
6389 PR target/47855
6390 * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
6391 * config/arm/arm.c (arm_attr_length_push_multi): New function.
6392 * config/arm/arm.md (*push_multi): Change the length computation to
6393 call a C function.
6394
07c5f94e
AS
63952011-04-08 Anatoly Sokolov <aesok@post.ru>
6396
6397 * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
6398 (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
6399 * doc/tm.texi: Regenerate.
6400 * system.h (ASM_OUTPUT_BSS): Poison.
6401 * varasm.c (asm_output_bss): Remove function.
6402 (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
798dd0ba 6403
07c5f94e
AS
6404 * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
6405 * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
6406 * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
6407 * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
6408 Likewise.
6409 * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
6410 Likewise.
6411 * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
6412 Likewise.
6413 * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
6414
5f2c36e1
JM
64152011-04-07 Joseph Myers <joseph@codesourcery.com>
6416
6417 * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
6418 EnumValue lines.
6419
39e7722b
JM
64202011-04-07 Joseph Myers <joseph@codesourcery.com>
6421
6422 * config/m68k/m68k.c (m68k_handle_option): Don't handle
6423 OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
6424 OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
6425 OPT_mcpu32.
6426 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
6427 handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
6428 -m68030, -m68040, -m68060, -mcpu32 and -m68332.
6429 * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
6430 m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
6431 * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
6432 (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
6433 (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
6434 options. Don't map other m68k options manually. Don't handle
6435 old-style options as canonical.
6436 (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
798dd0ba 6437 * doc/install.texi (m68k-*-*): Document binutils version requirement.
39e7722b 6438
cf103ca4
EB
64392011-04-07 Eric Botcazou <ebotcazou@adacore.com>
6440
6441 * basic-block.h (force_nonfallthru): Move to...
6442 * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
6443 (force_nonfallthru): ...here.
6444 * cfghooks.c (force_nonfallthru): New function.
6445 * cfgrtl.c (force_nonfallthru): Rename into...
6446 (rtl_force_nonfallthru): ...this.
6447 (commit_one_edge_insertion): Do not set AUX field.
6448 (commit_edge_insertions): Do not discover new basic blocks.
6449 (rtl_cfg_hooks): Add rtl_force_nonfallthru.
6450 (cfg_layout_rtl_cfg_hooks): Likewise.
6451 * function.c (thread_prologue_and_epilogue_insns): Remove bogus
6452 ATTRIBUTE_UNUSED. Discover new basic blocks in the prologue insns.
6453 * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
6454
14431f58
AS
64552011-04-07 Anatoly Sokolov <aesok@post.ru>
6456
6457 * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
6458 Remove macros.
6459
3729983c
UB
64602011-04-07 Uros Bizjak <ubizjak@gmail.com>
6461
6462 * config/i386/sse.md: Update copyright year.
6463 (avxcvtvecmode): Remove.
6464 (sse_movhlps): Merge with *avx_movhlps.
6465 (sse_movlhps): Merge with *avx_movlhps.
6466 (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
6467 (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
6468 (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
6469 (sse_loadhps): Merge with *avx_loadhps.
6470 (sse_storelps): Merge with *avx_storelps.
6471 (sse_loadlps): Merge with *avx_loadlps.
6472 (sse_movss): Merge with *avx_movss.
6473 (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
6474 (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
6475 (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
6476 (*vec_set<mode>_0_sse2): Split multi-unit alternative.
6477 (vec_set<mode>_0): Ditto.
6478 (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
6479 (sse4_1_insertps): Merge with *avx_insertps.
6480 (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
6481 (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
6482 (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
6483 (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
6484 (sse2_storehpd): Merge with *avx_storehpd.
6485 (sse2_loadhpd): Merge with *avx_loadhpd.
6486 (sse2_loadlpd): Merge with *avx_loadlpd.
6487 (sse2_movsd): Merge with *avx_movsd.
6488 (*vec_concatv2df): Merge with *vec_concatv2df.
6489
4e626909
JJ
64902011-04-07 Jakub Jelinek <jakub@redhat.com>
6491
6492 PR debug/48343
6493 * combine.c (combine_instructions): Add last_combined_insn,
3729983c 6494 update it if insn is after it, pass it to all try_combine calls.
4e626909
JJ
6495 (try_combine): Add last_combined_insn parameter, pass it instead of
6496 i3 to propagate_for_debug.
6497
3729983c 64982011-04-07 Nick Clifton <nickc@redhat.com>
5a10b0a9
NC
6499
6500 * config/mn10300/mn10300.md (movqi_internal): Add alternatives
6501 to handle MDR <-> data register transfers.
6502 (movhi_internal): Likewise.
6503
20c03367
AM
65042011-04-07 Alan Modra <amodra@gmail.com>
6505
6506 * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
6507 previous stack info.
6508
bf22920b
TV
65092011-04-07 Tom de Vries <tom@codesourcery.com>
6510
6511 PR target/43920
6512 * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter. Pass dir to
6513 flow_find_cross_jump. Swap variables to implement backward replacement.
6514 (try_crossjump_bb): Add argument to try_crossjump_to_edge.
6515
823918ae
TV
65162011-04-07 Tom de Vries <tom@codesourcery.com>
6517
6518 PR target/43920
6519 * cfgcleanup.c (walk_to_nondebug_insn): New function.
3729983c
UB
6520 (flow_find_cross_jump): Use walk_to_nondebug_insn. Recalculate bb1
6521 and bb2.
6522 (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
6523 src1 or src2. Redirect edges to the last basic block. Update
6524 frequency and count on multiple basic blocks in case of fallthru.
823918ae 6525
472c95f5
TV
65262011-04-07 Tom de Vries <tom@codesourcery.com>
6527
6528 PR target/43920
6529 * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
6530 function.
3729983c
UB
6531 (old_insns_match_p): Change return type. Replace return false/true
6532 with return dir_none/dir_both. Use can_replace_by.
6533 (flow_find_cross_jump): Add dir_p parameter. Init replacement
6534 direction from dir_p. Register replacement direction in dir, last_dir
6535 and afterlast_dir. Handle new return type of old_insns_match_p using
472c95f5
TV
6536 merge_dir. Return replacement direction in dir_p.
6537 (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
6538 return type of old_insns_match_p.
6539 (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
6540 * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
6541 flow_find_cross_jump.
6542 * basic-block.h (enum replace_direction): New type.
6543 (flow_find_cross_jump): Add parameter to declaration.
6544
a95d4000
UB
65452011-04-06 Uros Bizjak <ubizjak@gmail.com>
6546
6547 * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
6548 (AVXMODEDCVTPS2DQ): Ditto.
6549 (VEC_FLOAT_MODE): Ditto.
6550 (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3. Use VF mode
6551 iterator. Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
6552 (<any_logic:code><mode>3): Use VF mode iterator.
6553 (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
6554 Use VF mode iterator.
6555 (copysign<mode>3): Use VF mode iterator.
6556 (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3. Handle
6557 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
6558 (*<any_logic:code><MODEF:mode>3): Merge with
6559 *avx_<any_logic:code><MODEF:mode>3.
6560 (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
6561 (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
6562 (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
6563 (avx_cvtdq2ps<avxmodesuffix>): Remove.
6564 (sse2_cvtdq2ps): Use %v modifier.
6565 (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
6566 (avx_cvtps2dq<avxmodesuffix>): Remove.
6567 (sse2_cvtps2dq): Use %v modifier.
6568 (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
6569 (avx_cvttps2dq<avxmodesuffix>): Remove.
6570 (sse2_cvttps2dq): Use %v modifier.
6571 (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
6572 (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
6573 (sse2_cvtsd2siq): Fix insn template.
6574 (sse2_cvtsd2siq_2): Ditto.
6575 (sse2_cvttsd2siq): Ditto.
6576 (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
6577 (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
6578
ad01c437
JM
65792011-04-06 Joseph Myers <joseph@codesourcery.com>
6580
6581 * gcov-io.c: Use GCC Runtime Library Exception.
6582
fe846284
JJ
65832011-04-06 Jakub Jelinek <jakub@redhat.com>
6584
6585 PR debug/48466
6586 * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
6587 as base_reg whatever register reg has been eliminated to, instead
6588 of hardcoding STACK_POINTER_REGNUM.
6589
acce4e77
JM
65902011-04-06 Joseph Myers <joseph@codesourcery.com>
6591
6592 * doc/tm.texi.in: Document C target hooks as separate from general
6593 target hooks.
6594 * doc/tm.texi: Regenerate.
6595 * genhooks.c (struct hook_desc): Add docname field.
6596 (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC). Initialize
6597 docname field.
6598 (hook_array): Include c-target.def.
6599 (emit_documentation): Use docname field in output.
6600 (emit_init_macros): Take docname argument. Only emit definitions
6601 for hooks matching docname.
6602 (main): Expect additional arguments in all cases. Pass argument
6603 to emit_init_macros.
6604 * target.def: Move initial macro definitions and comments to
6605 target-hooks-macros.h.
6606 (gcc_targetcm): Move to c-family/c-target.def.
6607 * target.h (targetcm): Move declaration to c-family/c-target.h.
6608 * targhooks.c (default_handle_c_option): Move to
6609 c-family/c-opts.c.
6610 * targhooks.h (default_handle_c_option): Move declaration to
6611 c-family/c-common.h.
6612 * target-hooks-macros.h: New file.
6613 * config.gcc (target_has_targetcm): Define and use to add to
6614 c_target_objs and cxx_target_objs.
6615 * config/default-c.c: New file.
6616 * config/darwin-c.c: Include c-target.h and c-target-def.h instead
6617 of target.h and target-def.h.
6618 (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
6619 (darwin_objc_construct_string, darwin_cfstring_ref_p,
6620 darwin_check_cfstring_format_arg): Make static.
6621 (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
6622 TARGET_STRING_OBJECT_REF_TYPE_P,
6623 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
6624 * config/darwin-protos.h (darwin_objc_construct_string,
6625 darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
6626 declare.
6627 * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
6628 TARGET_STRING_OBJECT_REF_TYPE_P,
a95d4000 6629 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
acce4e77
JM
6630 * config/t-darwin (darwin-c.o): Update dependencies.
6631 * system.h (TARGET_HAS_TARGETCM): Poison.
6632 * Makefile.in (TARGET_H): Update.
6633 (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
6634 (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
6635 (default-c.o): New target.
6636 (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
a95d4000 6637 (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
acce4e77
JM
6638 (s-tm-texi): Pass -d option to genhooks. Also test timestamp on
6639 c-target.def.
6640 (build/genhooks.o): Update dependencies.
6641
275b4baa 66422011-04-06 Richard Guenther <rguenther@suse.de>
a95d4000 6643
275b4baa
RG
6644 * ipa-inline.c (enum inlining_mode): Remove.
6645 (cgraph_flatten): Use some other token.
6646 (cgraph_edge_early_inlinable_p): New function, split out from ...
6647 (cgraph_perform_always_inlining): New function, split out from ...
6648 (cgraph_decide_inlining_incrementally): ... here.
6649 (cgraph_mark_inline_edge): Adjust.
6650 (cgraph_early_inlining): Re-structure.
6651 (pass_early_inline): Require SSA form.
6652
f15b8bdf 66532011-04-06 Andrew Stubbs <ams@codesourcery.com>
9adc580c
AS
6654 Julian Brown <julian@codesourcery.com>
6655 Mark Shinwell <shinwell@codesourcery.com>
6656
6657 * config/arm/arm.h (arm_class_likely_spilled_p): Check against
6658 LO_REGS only for Thumb-1.
6659 (MODE_BASE_REG_CLASS): Restrict base registers to those which can
6660 be used in short instructions when optimising for size on Thumb-2.
6661
516426da
EB
66622011-04-06 Eric Botcazou <ebotcazou@adacore.com>
6663
6664 * gimple-low.c (lower_gimple_return): When not optimizing, force labels
6665 associated with user returns to be preserved.
6666
96621ebf
TG
66672011-04-06 Tristan Gingold <gingold@adacore.com>
6668
f15b8bdf
EB
6669 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
6670 symbol_queue_size, DBXOUT_DECR_NESTING,
96621ebf
TG
6671 (DBXOUT_DECR_NESTING_AND_RETURN): Also define
6672 if XCOFF_DEBUGGING_INFO.
6673
07c0852e
UB
66742011-04-06 Uros Bizjak <ubizjak@gmail.com>
6675
6676 * config/i386/i386.md (attribute isa): New.
6677 (attribute enabled): New.
6678 (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
6679 (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
6680 (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
6681 (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
6682 (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
6683 (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
6684 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
6685 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
6686
6687 * config/i386/sse.md (VF): New mode iterator.
6688 (VF1): Ditto.
6689 (VF2): Ditto.
6690 (VF_128): Ditto.
6691 (SSEMODEF4): Remove.
6692 (attribute sse): Handle V8SF and V4DF modes.
6693 (<absneg:code><mode>2): Use VF mode iterator.
6694 (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2. Use VF
6695 mode iterator.
6696 (<plusminus_insn><mode>3): Use VF mode iterator.
6697 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
6698 Use VF mode iterator.
6699 (<sse>_vm<plusminus_insn><mode>3): Merge with
6700 *avx_vm<plusminus_insn><mode>3. Use VF_128 mode iterator.
6701 (mul<mode>3): Use VF mode iterator.
6702 (*mul<mode>3): Merge with *avx_mul<mode>3. Use VF mode iterator.
6703 (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3. Use VF_128
6704 mode iterator.
6705 (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
6706 (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
6707 (<sse>_div<mode>3): Merge with *avx_div<mode>3. Use VF mode iterator.
6708 (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3. Use VF_128
6709 mode iterator.
6710 (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
6711 Use VF1 mode iterator.
6712 (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
6713 (sqrt<VF2:mode>2): New expander.
6714 (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
6715 (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
6716 and sqrtv2df2. Use VF mode iterator.
6717 (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2. Use VF_128
6718 mode iterator.
6719 (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
6720 (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
6721 Use VF1 mode iterator.
6722 (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
6723 (<smaxmin:code><mode>3): Use VF mode iterator.
6724 (*<smaxmin:code><mode>3_finite): Merge with
6725 *avx_<smaxmin:code><mode>3_finite. Use VF mode iterator.
6726 (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
6727 (<sse>_vm<smaxmin:code><mode>2): Merge with
6728 *avx_vm<smaxmin:code><mode>2. Use VF_128 mode iterator.
6729 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3. Use VF
6730 mode iterator.
6731 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3. Use VF
6732 mode iterator.
6733 (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
6734 (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
6735 (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
6736 (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
6737 (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3. Use
6738 VF mode iterator.
6739 (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
6740 Use VF_128 mode iterator.
6741 (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3. Use VF
6742 mode iterator.
6743 (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3. Use
6744 VF_128 mode iterator.
6745 (vcond<mode>): Use VF mode iterator.
6746 * config/i386/predicates.md (sse_comparison_operator): Merge with
6747 avx_comparison_float_operator. Do not declare as special_predicate.
6748 * config/i386/i386.c (struct builtin_description): Update for renamed
6749 compare patterns.
6750 (ix86_expand_args_builtin): Ditto.
6751 (ix86_expand_sse_compare_mask): Ditto.
6752
ff5d142c
RG
67532011-04-06 Richard Guenther <rguenther@suse.de>
6754
6755 * tree-inline.c (estimate_num_insns): For calls simply account
6756 for all passed arguments and a used return value.
6757
d7d1d041 67582011-04-06 Richard Guenther <rguenther@suse.de>
07c0852e 6759
d7d1d041
RG
6760 PR tree-optimization/47663
6761 * cgraph.h (struct cgraph_edge): Add call_stmt_size and
6762 call_stmt_time fields.
6763 (cgraph_edge_inlinable_p): Declare.
6764 (cgraph_edge_recursive_p): New inline function.
6765 * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
6766 (cgraph_clone_edge): Copy it.
6767 * ipa-inline.c (cgraph_estimate_edge_time): New function.
6768 Account for call stmt time.
6769 (cgraph_estimate_time_after_inlining): Take edge argument.
6770 (cgraph_estimate_edge_growth): Account call stmt size.
6771 (cgraph_estimate_size_after_inlining): Take edge argument.
6772 (cgraph_mark_inline_edge): Adjust.
6773 (cgraph_check_inline_limits): Likewise.
6774 (cgraph_recursive_inlining_p): Remove.
6775 (cgraph_edge_badness): Use cgraph_edge_recursive_p.
6776 (cgraph_decide_recursive_inlining): Take edge argument and
6777 adjust.
6778 (cgraph_decide_inlining_of_small_functions): Do not avoid
6779 diags for recursive inlining here.
6780 (cgraph_flatten): Adjust.
6781 (cgraph_decide_inlining_incrementally): Likewise.
6782 (estimate_function_body_sizes): Remove call cost handling.
6783 (compute_inline_parameters): Initialize caller edge call costs.
6784 (cgraph_estimate_edge_growth): New function.
6785 (cgraph_estimate_growth): Use it.
6786 (cgraph_edge_badness): Likewise.
6787 (cgraph_check_inline_limits): Take an edge argument.
6788 (cgraph_decide_inlining_of_small_functions): Adjust.
6789 (cgraph_decide_inlining): Likewise.
6790 * tree-inline.c (estimate_num_insns): Only account for call
6791 return value if it is used.
6792 (expand_call_inline): Avoid diagnostics on recursive inline
6793 functions here.
6794 * lto-cgraph.c (lto_output_edge): Output edge call costs.
6795 (input_edge): Input edge call costs.
6796
2feb95f7
RO
67972011-04-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6798
6799 * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
6800
26fbd9c2
JW
68012011-04-06 Jonathan Wakely <jwakely.gcc@gmail.com>
6802
6803 * doc/invoke.texi (Spec Files): Fix typo.
6804
694dc0ca
EB
68052011-04-06 Eric Botcazou <ebotcazou@adacore.com>
6806
6807 * profile.c (branch_prob): Move declaration of local variable. Remove
6808 obsolete ??? comment. Expand the location explicitly instead of using
6809 the LOCATION_FILE and LOCATION_LINE macros.
6810
4925d0d5
WG
68112011-04-06 Wei Guozhi <carrot@google.com>
6812
6813 PR target/47855
6814 * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
6815 (arm_cond_branch): Likewise.
6816 (arm_cond_branch_reversed): Likewise.
6817 (arm_jump): Likewise.
6818 (push_multi): Likewise.
6819 * config/arm/constraints.md (Py): New constraint.
6820
f55dfa2f
NF
68212011-04-05 Nathan Froyd <froydnj@codesourcery.com>
6822
6823 PR bootstrap/48471
6824 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
6825 Move these...
6826 (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
6827 (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
6828 #ifdef DBX_DEBUGGING_INFO.
6829
fca96842
BS
68302011-04-05 Bernd Schmidt <bernds@codesourcery.com>
6831
6832 PR bootstrap/48403
6833 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
6834 if old and new states differ.
6835
30b83e38
JM
68362011-04-05 Joseph Myers <joseph@codesourcery.com>
6837
6838 * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
6839 OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
6840 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
6841 handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
6842 * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
6843 mcfv4e): Use Alias.
6844 * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
6845 ColdFire options to -mcpu= options.
6846
277a9aa5
JL
68472011-04-05 Jeff Law <law@redhat.com>
6848
6849 * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
6850 check if BB is a successor of LOOP->header and return
6851 NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
6852
c1e2610e
SB
68532011-04-05 Steven Bosscher <steven@gcc.gnu.org>
6854
6855 * cprop.c (struct reg_use): Remove.
6856 (reg_use_table): Make an array of RTX.
6857 (find_used_regs, constprop_register, local_cprop_pass,
6858 bypass_block): Simplify users of reg_use_table.
6859 (cprop_insn): Likewise. Iterate if copy propagation succeeded
6860 on one of the uses found by find_used_regs.
6861
e532f586
NF
68622011-04-05 Nathan Froyd <froydnj@codesourcery.com>
6863
6864 PR bootstrap/48469
6865 * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
6866 declaration.
6867
3fb7c055
NF
68682011-04-05 Nathan Froyd <froydnj@codesourcery.com>
6869
6870 * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
6871 as an rtx.
6872 (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
6873
b71b43d9
SB
68742011-04-05 Steven Bosscher <steven@gcc.gnu.org>
6875
6876 PR middle-end/48441
6877 * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
6878
b405b274
NF
68792011-04-05 Nathan Froyd <froydnj@codesourcery.com>
6880
6881 * combine.c: Include obstack.h.
6882 (struct insn_link): Define.
6883 (uid_log_links): Adjust type.
6884 (FOR_EACH_LOG_LINK): New macro.
6885 (insn_link_obstack): Declare.
6886 (alloc_insn_link): Define.
6887 (create_log_links): Call it. Use FOR_EACH_LOG_LINK and adjust
6888 type of link variables.
6889 (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
6890 (try_combine, record_promoted_values, distribute_notes): Likewise.
6891 (distribute_links): Likewise. Tweak prototype.
6892 (clear_log_links): Delete.
6893 (adjust_for_new_dest): Call alloc_insn_link.
6894 * Makefile.in (combine.o): Depend on $(OBSTACK_H).
6895
6409abe3
NF
68962011-04-05 Nathan Froyd <froydnj@codesourcery.com>
6897
6898 * gcse.c (modify_mem_list): Convert to an array of VECs.
6899 (canon_modify_mem_list, compute_transp): Tweak formatting.
6900 (alloc_gcse_mem): Likewise. Adjust for modify_mem_list change.
6901 (load_killed_in_block_p): Likewise.
6902 (record_last_mem_set_info): Likewise.
6903 (clear_modify_mem_tables): Likewise.
6904
170d8157
TV
69052011-04-05 Tom de Vries <tom@codesourcery.com>
6906
6907 PR middle-end/48461
6908 * function.c (emit_use_return_register_into_block): Only define if
6909 HAVE_return.
6910
c5911a55
EB
69112011-04-05 Eric Botcazou <ebotcazou@adacore.com>
6912
6913 * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
6914
abd016e6
JM
69152011-04-05 Joseph Myers <joseph@codesourcery.com>
6916
6917 * config/rx/rx-opts.h: New.
6918 * config/rx/rx.c (rx_cpu_type): Remove.
6919 (rx_handle_option): Don't assert that global structures are in
6920 use. Access variables via opts pointer. Defer most handling of
6921 OPT_mint_register_. Use error_at.
6922 (rx_option_override): Handle deferred OPT_mint_register_ here.
6923 * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
6924 * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
6925 (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
6926 (rx_cpu_types): New Enum and EnumValue entries.
6927 (mint-register=): Use Defer and use Var accordingly.
6928
1ed13f83
NF
69292011-04-05 Nathan Froyd <froydnj@codesourcery.com>
6930
6931 * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
6932 (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
6933 * final.c (debug_flush_symbol_queue, debug_queue_symbol):
6934 Move these...
6935 (debug_free_queue, debug_nesting, symbol_queue_index):
6936 ...and these...
6937 * dbxout.c: ...to here. Make static.
6938
6ce1edcf
NF
69392011-04-05 Nathan Froyd <froydnj@codesourcery.com>
6940
6941 * gcse.c (modify_pair): Define. Define a VEC of it.
6942 (canon_modify_mem_list): Convert to an array of VECs.
6943 (free_insn_expr_list_list): Delete.
6944 (clear_modify_mem_tables): Call VEC_free instead.
6945 (record_last_mem_set_info): Don't modify canon_modify_mem_list.
6946 (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
6947 (canon_list_insert, compute_transp): Likewise.
6948
c201ac94
TV
69492011-04-05 Tom de Vries <tom@codesourcery.com>
6950
6951 PR target/43920
6952 * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
6953 for size.
6954
4c029f40
TV
69552011-04-05 Tom de Vries <tom@codesourcery.com>
6956
6957 PR target/43920
6958 * function.c (emit_use_return_register_into_block): New function.
6959 (thread_prologue_and_epilogue_insns): Use
6960 emit_use_return_register_into_block.
6961
2a562b0a
TV
69622011-04-05 Tom de Vries <tom@codesourcery.com>
6963
6964 PR target/43920
6965 * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
6966 insn.
6967
0248bceb
TV
69682011-04-05 Tom de Vries <tom@codesourcery.com>
6969
6970 * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
6971
ffa94123
YZ
69722011-04-05 Yufeng Zhang <yufeng.zhang@arm.com>
6973
798dd0ba
UB
6974 * config/arm/arm.md (define_constants for unspec): Replace with
6975 define_c_enum.
6976 (define_constants for unspecv): Replace with define_c_enum.
6977 * config/arm/neon.md (define_constants for unspec): Replace with
6978 define_c_enum.
ffa94123 6979
3b8f9b46
RH
69802011-04-04 Richard Henderson <rth@redhat.com>
6981
720cf80f 6982 PR bootstrap/48400
3b8f9b46
RH
6983 * dwarf2out.c (output_line_info): Always emit line info from
6984 at least one section.
6985 (dwarf2out_init): Create text_section_line_info here ...
6986 (set_cur_line_info_table): ... not here.
6987
720cf80f 69882011-04-04 Vladimir Makarov <vmakarov@redhat.com>
e5b0e1ca
VM
6989
6990 PR target/48380
6991 * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
720cf80f 6992 not called.
e5b0e1ca 6993
720cf80f 6994 * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
e5b0e1ca 6995
196565d4
SB
69962011-04-04 Steven Bosscher <steven@gcc.gnu.org>
6997
b77f9eab
SB
6998 * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
6999 (expr_equiv_p): Remove.
7000 (insert_set_in_table): Look at <dest, src> pair instead of expr.
7001 (hash_scan_set): Update call to insert_set_in_table.
7002 (dump_hash_table): Dump <dest, src> pair.
7003 (lookup_set): Simplify. Lookup <dest, src> pair.
7004 (compute_transp): Remove, fold heavily simplified code into...
7005 (compute_local_properties): ...here. Expect COMP and TRANSP
7006 unconditionally.
7007 (find_avail_set): Take set directly from struct expr.
7008 (find_bypass-set): Likewise.
7009 (bypass_block): Likewise.
7010 (cprop_insn): Likewise. Remove redundant INSN_P test.
7011
384d7a55
SB
7012 * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
7013 checks on form of COND from find_implicit_sets to here.
7014 (find_implicit_sets): Cleanup control flow. Split critical edges
7015 if it exposes implicit sets. Allocate/resize implicit_sets as
7016 necessary.
7017 (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
7018 changed something. Run df_analyze after find_implicit_sets if any
7019 edges were split. Do not allocate implicit_sets here.
7020
3084ce69
SB
7021 * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
7022 (gcse_obstack): Renamed to cprop_obstack.
7023 (GNEW, GNEWVEC, GNEWVAR): Remove.
7024 (gmalloc): Remove.
7025 (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
7026 (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
7027 (gcse_alloc): Likewise, and rename to cprop_alloc.
7028 (alloc_gcse_men, free_gcse_mem): Remove.
7029 (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
7030 (compute_hash_table_work): Allocate and free reg_set_bitmap here.
7031 (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
7032
196565d4
SB
7033 * cprop.c (oprs_not_set_p): Remove.
7034 (mark_set, mark_clobber): Remove.
7035 (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
7036 (reg_not_set_p): New function.
7037 (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
7038 (cprop_insn): Likewise.
7039 (cprop_jump): Use FOR_EACH_EDGE.
7040
9b69cf83
BS
70412011-04-04 Bernd Schmidt <bernds@codesourcery.com>
7042
7043 PR bootstrap/48403
7044 * haifa-sched.c (nonscheduled_insns_begin): New static variable.
7045 (rank_for_schedule): Use scheduled_insns vector instead of
7046 last_scheduled_insn.
7047 (ok_for_early_queue_removal): Likewise.
7048 (queue_to_ready): Search forward in nonscheduled_insns_begin if
7049 we have a dbg_cnt.
7050 (choose_ready): Likewise.
7051 (commit_schedule): Use VEC_iterate.
7052 (schedule_block): Initialize nonscheduled_insns_begin. If we have
7053 a dbg_cnt, use it and ensure the first insn is in the ready list.
7054 (haifa_sched_init): Allocate scheduled_insns.
7055 (sched_extend_ready_list): Don't allocate it; reserve space.
7056 (haifa_sched_finish): Free it.
7057
24f48c2f
JM
70582011-04-04 Joseph Myers <joseph@codesourcery.com>
7059
7060 * optc-gen.awk: Always remove type from Variable entry before
7061 recording in var_seen.
7062
8effe856
EB
70632011-04-04 Eric Botcazou <ebotcazou@adacore.com>
7064
7065 * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
7066 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
7067 call to tidy_fallthru_edges.
7068
413519ae
JM
70692011-04-04 Joseph Myers <joseph@codesourcery.com>
7070
7071 * doc/options.texi (ToLower): Document.
3729983c 7072 * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
413519ae
JM
7073 * opts-common.c (decode_cmdline_option): Handle cl_tolower.
7074 * opts.h (cl_option): Add cl_tolower field.
7075 * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
7076 arguments with lowercase strings.
7077 * config/rx/rx.opt (mcpu=): Add ToLower.
7078 * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
7079 argument.
7080
7d34a1b0
RS
70812011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
7082
7083 * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
7084
c30e7434
RS
70852011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
7086
7087 * config/vax/vax.c: Include reload.h.
7088
112a861d
AS
70892011-04-04 Anatoly Sokolov <aesok@post.ru>
7090
7091 * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
7092 * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
7093 (sparc_preferred_reload_class): New function.
7094
e8c6bb74
JJ
70952011-04-04 Jakub Jelinek <jakub@redhat.com>
7096
2aeaa366 7097 PR debug/48401
e8c6bb74
JJ
7098 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
7099 Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
7100
2c081caf
NF
71012011-04-03 Nathan Froyd <froydnj@codesourcery.com>
7102
7103 * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
7104 * tree.c (initialize_tree_contains_struct): Adjust accordingly.
7105
53802f27
AS
71062011-04-03 Anatoly Sokolov <aesok@post.ru>
7107
7108 * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
7109 (ASM_OUTPUT_ALIGNED_BSS): Define.
7110
e89964e3
MM
71112011-04-03 Michael Matz <matz@suse.de>
7112
7113 * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
7114 and next_slot members.
7115 (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
7116 lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
7117 (lto_streamer_cache_append): Declare.
7118 * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
7119 unsigned index, remove offset parameter, ensure that we append
7120 or update existing entries.
7121 (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
7122 parameter, update next_slot for append.
7123 (lto_streamer_cache_insert): Use unsigned index, remove offset_p
7124 parameter.
7125 (lto_streamer_cache_insert_at): Likewise.
7126 (lto_streamer_cache_append): New function.
7127 (lto_streamer_cache_lookup): Use unsigned index.
7128 (lto_streamer_cache_get): Likewise.
7129 (lto_record_common_node): Don't test tree_node_can_be_shared.
7130 (preload_common_node): Adjust call to lto_streamer_cache_insert.
7131 (lto_streamer_cache_delete): Don't free offsets member.
7132 * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
7133 (lto_output_string_with_length): Use lto_output_data_stream.
7134 (lto_output_tree_header): Remove ix parameter, don't write it.
7135 (lto_output_builtin_tree): Likewise.
7136 (lto_write_tree): Adjust callers to above, don't track and write
7137 offset, write unsigned index.
7138 (output_unreferenced_globals): Don't emit all global vars.
7139 (write_global_references): Use unsigned indices.
7140 (lto_output_decl_state_refs): Likewise.
7141 (write_symbol): Likewise.
7142 * lto-streamer-in.c (lto_input_chain): Move earlier.
7143 (input_function): Use unsigned index.
7144 (input_alias_pairs): Don't read and then ignore all global vars.
7145 (lto_materialize_tree): Remove ix_p parameter, don't read index,
7146 don't pass it back, use lto_streamer_cache_append.
7147 (lto_register_var_decl_in_symtab): Use unsigned index.
7148 (lto_register_function_decl_in_symtab): Likewise.
7149 (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
7150 index.
7151 (lto_get_builtin_tree): Don't read index, use
7152 lto_streamer_cache_append.
7153 (lto_read_tree): Adjust call to lto_materialize_tree.
7154
7155 * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
7156 don't use function calls in arguments to MIN.
7157
7158 * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
7159 twice.
7160
7161 * gimple.c (gimple_type_leader_entry): Mark deletable.
7162
b9a5b5b2
AM
71632011-04-03 Alan Modra <amodra@gmail.com>
7164
7165 * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
7166
ac6a641b
MM
71672011-04-03 Michael Matz <matz@suse.de>
7168
7169 * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
7170 an integer.
7171 * tree.h (tree_decl_non_common.vindex): Adjust comment.
7172
0038d4e0
MM
71732011-04-03 Michael Matz <matz@suse.de>
7174
e9c18386 7175 * cgraphbuild.c (record_reference): Canonicalize constructor values.
0038d4e0
MM
7176 * gimple-fold.c (canonicalize_constructor_val): Accept being called
7177 without function context.
7178 * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
7179 current_function_decl and cfun.
7180
91f2fae8
MM
71812011-04-03 Michael Matz <matz@suse.de>
7182
7183 * tree.c (decl_init_priority_insert): Don't create entry for
7184 default priority.
7185 (decl_fini_priority_insert): Ditto.
7186 (fields_compatible_p, find_compatible_field): Remove.
7187 * tree.h (fields_compatible_p, find_compatible_field): Remove.
7188 * gimple.c (gimple_compare_field_offset): Adjust block comment.
7189
da29e070
EB
71902011-04-03 Eric Botcazou <ebotcazou@adacore.com>
7191
7192 * combine.c (try_combine): Remove useless local variable.
7193
4979c28b 71942011-04-03 Richard Guenther <rguenther@suse.de>
91f2fae8 7195 Ira Rosen <ira.rosen@linaro.org>
4979c28b
RG
7196
7197 * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
7198 non-variable offsets and compare the remaining bases of the two
7199 accesses instead of looking for exact same data-ref.
7200
b4ddcaee
KT
72012011-04-02 Kai Tietz <ktietz@redhat.com>
7202
f90298e1
KT
7203 PR target/48416
7204 * i386.c (ix86_function_arg_boundary): Fix printf formatter.
7205
b4ddcaee
KT
7206 * i386.c (ix86_is_msabi_thiscall): New helper function.
7207 (ix86_is_type_thiscall): New helper function.
7208 (ix86_comp_type_attributes): Handle thiscall for method-functions
7209 special.
7210 (init_cumulative_args): Likewise.
7211 (find_drap_reg): Likewise.
7212 (ix86_static_chain): Likewise.
7213 (x86_this_parameter): Likewise.
7214 (x86_output_mi_thunk): Likewise.
7215
2a9d769a 72162011-04-01 Olivier Hainque <hainque@adacore.com>
91f2fae8
MM
7217 Nicolas Setton <setton@adacore.com>
7218 Eric Botcazou <ebotcazou@adacore.com>
2a9d769a
OH
7219
7220 * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
7221 (add_gnat_descriptive_type_attribute): New function.
7222 (gen_array_type_die): Call it.
7223 (gen_enumeration_type_die): Likewise.
7224 (gen_struct_or_union_type_die): Likewise.
7225 (modified_type_die): Likewise.
7226 * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
7227 * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
7228 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
7229
15a03a11
JJ
72302011-04-01 Jakub Jelinek <jakub@redhat.com>
7231
7232 PR bootstrap/48148
7233 * dwarf2out.c (resolve_addr): Don't call force_decl_die
7234 if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
7235
7236 Revert:
7237 2011-03-17 Richard Guenther <rguenther@suse.de>
7238
7239 PR bootstrap/48148
7240 * lto-cgraph.c (input_overwrite_node): Clear the abstract
7241 origin for decls in other ltrans units.
7242 (input_varpool_node): Likewise.
7243
19228b93
JJ
72442011-04-01 Jakub Jelinek <jakub@redhat.com>
7245
7246 PR middle-end/48335
7247 * expr.c (expand_assignment): Handle all possibilities
7248 if TO_RTX is CONCAT.
e9c18386 7249 * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
19228b93
JJ
7250 (store_split_bit_field): If SUBREG_REG (op0) or
7251 op0 itself has smaller mode than word, return it
7252 for offset 0 and const0_rtx for out-of-bounds stores.
7253 If word is const0_rtx, skip it.
7254
88cb339e
N
72552011-04-01 Naveen H.S <naveen.S@kpitcummins.com>
7256
7257 * config/h8300/h8300.c (print_operand_address): Rename to...
7258 (h8300_print_operand_address): ...this. Make static. Adjust comments.
7259 Call h8300_print_operand and h8300_print_operand_address instead of
7260 print_operand and print_operand_address. Declare.
7261 (print_operand): Renake to...
7262 (h8300_print_operand): ...this. Make static. Adjust comments.
7263 Call h8300_print_operand instead of print_operand. Declare.
7264 (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
7265 (h8300_register_move_cost): Likewise.
7266 (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
7267 TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
7268 * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
7269 PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
7270 * config/h8300/h8300-protos.h (print_operand): Delete.
7271 (print_operand_address): Delete.
7272
756d6ee9
RH
72732011-04-01 Richard Henderson <rth@redhat.com>
7274
7275 PR 48400
7276 * dwarf2out.c (dwarf2out_source_line): Disable discriminators
7277 in strict mode before dwarf4. Re-order tests to early out
7278 before switching sections.
7279
ceaaaeab
NF
72802011-04-01 Nathan Froyd <froydnj@codesourcery.com>
7281
7282 * config/h8300/constraints.md: New file.
7283 * config/h8300/h8300.md: Include it. Use satisfies_constraint_J,
7284 satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
7285 (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
7286 * config/h8300/predicates.md (bit_operand): Likewise.
7287 (incdec_operand): Use satisfies_constraint_M and
7288 satisfies_constraint_O. Don't use C code block.
7289 * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
7290 * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
7291 (compute_mov_length): Use satisfies_constraint_G.
7292 (fix_bit_operand): Use satisfies_constraint_U.
7293 * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
7294 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
7295 (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
7296 (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
7297 (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
7298 (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
7299 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
7300 (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
7301 (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
7302 (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
7303 (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
7304 (EXTRA_MEMORY_CONSTRAINT): Delete.
7305
08ae38e0
AP
73062011-04-01 Andrew Pinski <pinskia@gmail.com>
7307 Michael Meissner <meissner@linux.vnet.ibm.com>
7308
7309 PR target/48262
7310 * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
7311 operands, as per the specifications.
7312
7313 * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
7314 (vec_extract_evenv4sf): Ditto.
7315 (vec_extract_evenv8hi): Ditto.
7316 (vec_extract_evenv16qi): Ditto.
7317 (vec_extract_oddv4si): Ditto.
7318
bdb0b0f6
MW
73192011-03-31 Mark Wielaard <mjw@redhat.com>
7320
7321 * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
7322 high_pc attribute if the CU has no associated code. Only output
7323 DW_AT_entry_pc for CU if not generating strict dwarf and
7324 dwarf_version < 4.
7325
722279e4
BS
73262011-04-01 Bernd Schmidt <bernds@codesourcery.com>
7327
7328 * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
7329 * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
7330 out of ...
7331 (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
7332 * final.c (final_start_function): Call the new function rather
7333 than using a NULL argument for dwarf2out_frame_debug.
7334
c5dd277d
BS
7335 * ifcvt.c (cond_exec_process_insns): Disallow converting a block
7336 that contains the prologue.
7337
ec4efea9
BS
7338 * haifa-sched.c (queue_insn): New arg REASON. All callers
7339 changed. Print it in debugging output.
7340
2a6a0d80
BS
7341 * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
7342
86014d07
BS
7343 * sched-ebb.c (begin_schedule_ready): Remove second argument.
7344 Split most of the code into...
7345 (begin_move_insn): ... here. New function.
7346 (ebb_sched_info): Add a pointer to it.
7347 * haifa-sched.c (scheduled_insns): New static variable.
7348 (sched_extend_ready_list): Allocate it.
7349 (schedule_block): Use it to record the order of scheduled insns.
7350 Perform RTL changes to move insns only after all scheduling
7351 decisions have been made.
7352 * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
7353 begin_move_insn field.
7354 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
7355 * sched-int.h (struct haifa_sched_info): Remove second argument
7356 from begin_schedule_ready hook. Add new member begin_move_insn.
7357 * sched-rgn.c (begin_schedule_ready): Remove second argument.
7358 (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
7359
9d701248
BS
7360 * haifa-sched.c (prune_ready_list): New function, broken out of
7361 schedule_block.
7362 (schedule_block): Use it.
7363
1ca1dad5
UW
73642011-04-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7365
7366 * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
7367
49568e45
KT
73682011-04-01 Kai Tietz <ktietz@redhat.com>
7369
7370 * config.gcc (*-*-mingw*): Allow as option the
7371 posix threading model.
07c0852e 7372 * config/i386/mingw32.h (SPEC_PTHREAD1, SPEC_PTHREAD2):
49568e45
KT
7373 New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
7374 definition.
7375 (CPP_SPEC): Add pthread/no-pthread handling.
7376 (LIB_SPEC): Likewise.
7377 * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
7378 (LIB_SPEC): Likewise.
7379 * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
7380 flag to pass -pthread option for shared libgcc build.
7381 (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
7382 for shared libgcc build.
7383 * config/i386/t-mingw-pthread: New file.
7384 * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
7385 New define to enable use of library pthread by default.
7386 * config/i386/mingw.opt (pthread): New driver option.
7387 (no-pthread): New driver option.
e9c18386 7388 * config/i386/cygming.opt: Make sure trailing empty line is retained.
49568e45
KT
7389 * config/i386/mingw-w64.opt: Likewise.
7390
748f7574 73912011-04-01 Gary Funck <gary@intrepid.com>
636b4106
GF
7392
7393 * c-decl.c (grokdeclarator): Fix formatting.
7394
f04713ee
RS
73952011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
7396
7397 * expr.c (emit_block_move_via_movmem): Use n_generator_args
7398 instead of n_operands.
7399 (set_storage_via_setmem): Likewise.
7400 * optabs.c (maybe_gen_insn): Likewise.
7401 * config/arm/arm.c (arm_init_neon_builtins): Likewise.
7402 * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
7403 (mips_expand_builtin_direct): Likewise.
7404 * config/spu/spu.c (expand_builtin_args): Likewise.
7405
b29387ee
RS
74062011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
7407
7408 * recog.h (insn_data_d): Add n_generator_args.
7409 * genoutput.c (data): Likewise.
7410 (output_insn_data): Print it.
7411 (max_opno, num_dups): Delete.
7412 (scan_operands): Just fill in "d->operand[...]".
7413 (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
7414
e792559a
RS
74152011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
7416
7417 * gensupport.h (pattern_stats): New structure.
7418 * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
7419 * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
7420 (max_operand_1, max_operand_vec): Delete.
7421 (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
7422
e8110d6f
NF
74232011-03-31 Nathan Froyd <froydnj@codesourcery.com>
7424
7425 * emit-rtl.c (emit_pattern_after_setloc): New function.
7426 (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
7427 (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
7428 (emit_pattern_after): New function.
7429 (emit_insn_after, emit_jump_insn_after): Call it.
7430 (emit_call_insn_after, emit_debug_insn_after): Likewise.
7431 (emit_pattern_before_setloc): New function.
7432 (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
7433 (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
7434 Likewise.
7435 (emit_pattern_before): New function.
7436 (emit_insn_before, emit_jump_insn_before): Call it.
7437 (emit_call_insn_before, emit_debug_insn_before): Likewise.
7438
576f85f1
RH
74392011-03-31 Richard Henderson <rth@redhat.com>
7440
7441 * dwarf2out.c (dw_separate_line_info_ref): Remove.
7442 (dw_separate_line_info_entry): Remove.
7443 (enum dw_line_info_opcode): New.
7444 (dw_line_info_entry): Use it.
7445 (dw_line_info_table, dw_line_info_table_p): New.
7446 (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
7447 (line_info_table, line_info_label_num): Remove.
7448 (line_info_table_in_use): Remove.
7449 (separate_line_info_table): Remove.
7450 (separate_line_info_table_allocated): Remove.
7451 (separate_line_info_table_in_use): Remove.
7452 (LINE_INFO_TABLE_INCREMENT): Remove.
7453 (line_info_label_num): New.
7454 (cur_line_info_table): New.
7455 (text_section_line_info, cold_text_section_line_info): New.
7456 (separate_line_info): New.
7457 (SEPARATE_LINE_CODE_LABEL): Remove.
7458 (print_dwarf_line_table): Remove.
7459 (debug_dwarf): Don't dump it.
7460 (output_one_line_info_table): New.
7461 (output_line_info): Use it.
7462 (new_line_info_table): New.
7463 (set_cur_line_info_table): New.
7464 (dwarf2out_switch_text_section): Use it.
7465 (dwarf2out_begin_function): Likewise.
7466 (push_dw_line_info_entry): New.
7467 (dwarf2out_source_line): Rewrite for new line info tables.
7468 (dwarf2out_init): Remove dead initailizations.
7469
300d83d9
JM
74702011-03-31 Joseph Myers <joseph@codesourcery.com>
7471
7472 * opts.h (cl_option): Add comments to fields. Add bit-fields for
7473 various flags.
7474 (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
7475 CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
7476 CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
7477 CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
7478 (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
7479 * opt-functions.awk (flag_init, switch_bit_fields): New.
7480 (switch_flags): Don't handle flags moved to bit-fields. Don't
7481 generate CL_MISSING_OK or CL_SAVE.
7482 * optc-gen.awk: Update to generate bit-field output as well as
7483 flags field.
7484 * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
7485 bit-field instead of CL_REJECT_DRIVER flag.
7486 * opts-common.c (generate_canonical_option,
7487 decode_cmdline_option): Use bit-fields instead of CL_* flags.
7488 * opts.c (maybe_default_option): Use cl_reject_negative bit-field
7489 instead of CL_REJECT_NEGATIVE flag.
7490 * toplev.c (print_switch_values): Use cl_report bit-field instead
7491 of CL_REPORT flag.
7492
d4d73ce2
EB
74932011-03-31 Eric Botcazou <ebotcazou@adacore.com>
7494
7495 * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
7496 a zero minimum index only if it is redundant.
7497
b8faca75
VM
74982011-03-31 Vladimir Makarov <vmakarov@redhat.com>
7499
7500 PR rtl-optimization/48381
7501 * ira-color.c (assign_hard_reg): Use hard reg set intersection
7502 instead of ira_class_hard_reg_index for calculating conflicting
7503 hard registers.
7504
7d11cebe
SB
75052011-03-31 Steven Bosscher <steven@gcc.gnu.org>
7506
7507 * cprop.c: Clean up hash table building.
7508 (reg_avail_info): Remove.
7509 (oprs_available_p): Remove.
7510 (record_last_reg_set_info): Remove.
7511 (record_last_set_info): Remove.
7512 (reg_available_p): New function.
7513 (gcse_constant_p): Do not treat unfolded conditions as constants.
7514 (make_set_regs_unavailable): New function.
7515 (hash_scan_set): Simplify with new reg_available_p.
7516 (compute_hash_table_work): Traverse insns stream only once.
7517 Do not compute reg_avail_info. Traverse insns in reverse order.
7518 Record implicit sets after recording explicit sets from the block.
7519
98faf84f
MM
75202011-03-31 Michael Matz <matz@suse.de>
7521
e9c18386 7522 * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
98faf84f 7523
f52d97da
AS
75242011-03-31 Anatoly Sokolov <aesok@post.ru>
7525
7526 * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
7527 * config/h8300/h8300-protos.h (h8300_get_index): Remove.
7528 * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
7529 (h8300_mode_dependent_address_p): New function.
7530 (h8300_get_index): Make static.
7531
e16b6fd0
JL
75322011-03-31 Jeff Law <law@redhat.com>
7533
10c51983
JL
7534 * reload1.c (elimination_effects): Fix typo in recent change.
7535
e9c18386 7536 * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
e16b6fd0
JL
7537 typo potentially leading to null pointer dereference.
7538
7539 * caller-save.c (new_saved_hard_reg): Eliminate return value.
7540 (setup_save_areas): Corresponding changes to avoid useless
7541 assignments.
7542
7543 * jump.c (reversed_comparison_code_parts): Avoid successive return
7544 statements when REVERSE_CONDITION is defined.
7545
7546 * expr.c (expand_assignment): Avoid useless assignments.
7547 (expand_expr_real_1): Likewise.
7548 (expand_expr_real_2): Avoid useless statements.
7549
7550 * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
7551
7552 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
7553
7554 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
7555 statements.
7556
7557 * stmt.c (expand_expr_stmt): Avoid useless assignment.
7558
eb1eb914
JM
75592011-03-31 Joseph Myers <joseph@codesourcery.com>
7560
7561 PR target/47109
7562 * doc/tm.texi.in (TARGET_VERSION): Remove.
7563 * doc/tm.texi: Regenerate.
7564 * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
7565 * collect2.c (main): Don't use TARGET_VERSION.
7566 * mips-tdump.c (main): Don't use TARGET_VERSION.
7567 * mips-tfile.c (main): Don't use TARGET_VERSION.
e9c18386 7568 * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
eb1eb914
JM
7569 * config/rs6000/vxworksae.h: Remove.
7570 * config/alpha/alpha.h (TARGET_VERSION): Remove.
7571 * config/alpha/freebsd.h (TARGET_VERSION): Remove.
7572 * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
7573 * config/alpha/netbsd.h (TARGET_VERSION): Remove.
7574 * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
7575 * config/arm/arm.h (TARGET_VERSION): Remove.
7576 * config/arm/coff.h (TARGET_VERSION): Remove.
7577 * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
7578 * config/arm/elf.h (TARGET_VERSION): Remove.
7579 * config/arm/freebsd.h (TARGET_VERSION): Remove.
7580 * config/arm/linux-elf.h (TARGET_VERSION): Remove.
7581 * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
7582 * config/arm/pe.h (TARGET_VERSION): Remove.
7583 * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
7584 * config/arm/semi.h (TARGET_VERSION): Remove.
7585 * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
7586 * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
7587 * config/arm/vxworks.h (TARGET_VERSION): Remove.
7588 * config/avr/avr.h (TARGET_VERSION): Remove.
7589 * config/bfin/bfin.h (TARGET_VERSION): Remove.
7590 * config/fr30/fr30.h (TARGET_VERSION): Remove.
7591 * config/frv/frv.h (TARGET_VERSION): Remove.
7592 * config/h8300/h8300.h (TARGET_VERSION): Remove.
7593 * config/i386/cygwin.h (TARGET_VERSION): Remove.
7594 * config/i386/darwin.h (TARGET_VERSION): Remove.
7595 * config/i386/darwin64.h (TARGET_VERSION): Remove.
7596 * config/i386/djgpp.h (TARGET_VERSION): Remove.
7597 * config/i386/freebsd.h (TARGET_VERSION): Remove.
7598 * config/i386/freebsd64.h (TARGET_VERSION): Remove.
7599 * config/i386/gnu.h (TARGET_VERSION): Remove.
7600 * config/i386/i386-interix.h (TARGET_VERSION): Remove.
7601 * config/i386/i386elf.h (TARGET_VERSION): Remove.
7602 * config/i386/linux.h (TARGET_VERSION): Remove.
7603 * config/i386/linux64.h (TARGET_VERSION): Remove.
7604 * config/i386/lynx.h (TARGET_VERSION): Remove.
7605 * config/i386/mingw32.h (TARGET_VERSION): Remove.
7606 * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
7607 * config/i386/netbsd64.h (TARGET_VERSION): Remove.
7608 * config/i386/netware.h (TARGET_VERSION): Remove.
7609 * config/i386/nto.h (TARGET_VERSION): Remove.
7610 * config/i386/openbsd.h (TARGET_VERSION): Remove.
7611 * config/i386/vxworks.h (TARGET_VERSION): Remove.
7612 * config/ia64/elf.h (TARGET_VERSION): Remove.
7613 * config/ia64/freebsd.h (TARGET_VERSION): Remove.
7614 * config/ia64/hpux.h (TARGET_VERSION): Remove.
7615 * config/ia64/linux.h (TARGET_VERSION): Remove.
7616 * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
7617 * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
7618 TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
7619 * config/lm32/lm32.h (TARGET_VERSION): Remove.
7620 * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
7621 * config/m32c/m32c.h (TARGET_VERSION): Remove.
7622 * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
7623 * config/m32r/m32r.h (TARGET_VERSION): Remove.
7624 * config/m68k/linux.h (TARGET_VERSION): Remove.
7625 * config/m68k/m68k.h (TARGET_VERSION): Remove.
7626 * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
7627 * config/m68k/uclinux.h (TARGET_VERSION): Remove.
7628 * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
7629 * config/mep/mep.h (TARGET_VERSION): Remove.
7630 * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
7631 MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
7632 * config/mips/iris6.h (MACHINE_TYPE): Remove.
7633 * config/mips/linux.h (TARGET_VERSION): Remove.
7634 * config/mips/netbsd.h (MACHINE_TYPE): Remove.
7635 * config/mips/vxworks.h (TARGET_VERSION): Remove.
7636 * config/mmix/mmix.h (TARGET_VERSION): Remove.
7637 * config/mn10300/linux.h (TARGET_VERSION): Remove.
7638 * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
7639 * config/pa/pa.h (TARGET_VERSION): Remove.
7640 * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
7641 * config/picochip/picochip.h (TARGET_VERSION): Remove.
7642 * config/rs6000/aix.h (TARGET_VERSION): Remove.
7643 * config/rs6000/darwin.h (TARGET_VERSION): Remove.
7644 * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
7645 * config/rs6000/eabi.h (TARGET_VERSION): Remove.
7646 * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
7647 * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
7648 * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
7649 * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
7650 * config/rs6000/linux.h (TARGET_VERSION): Remove.
7651 * config/rs6000/linux64.h (TARGET_VERSION): Remove.
7652 * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
7653 * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
7654 * config/rs6000/lynx.h (TARGET_VERSION): Remove.
7655 * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
7656 * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
7657 * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
7658 * config/s390/linux.h (TARGET_VERSION): Remove.
7659 * config/s390/s390.h (TARGET_VERSION): Remove.
7660 * config/s390/tpf.h (TARGET_VERSION): Remove.
7661 * config/score/score.h (TARGET_VERSION): Remove.
7662 * config/sh/linux.h (TARGET_VERSION): Remove.
7663 * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
7664 TARGET_VERSION_CPU, TARGET_VERSION): Remove.
7665 * config/sh/sh.h (TARGET_VERSION): Remove.
7666 * config/sh/sh64.h (TARGET_VERSION): Remove.
7667 * config/sh/superh.h (TARGET_VERSION): Remove.
7668 * config/sh/vxworks.h (TARGET_VERSION): Remove.
7669 * config/sparc/freebsd.h (TARGET_VERSION): Remove.
7670 * config/sparc/linux.h (TARGET_VERSION): Remove.
7671 * config/sparc/linux64.h (TARGET_VERSION): Remove.
7672 * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
7673 TARGET_NAME32, TARGET_NAME): Remove.
7674 * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
7675 * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
7676 * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
7677 * config/sparc/sysv4.h (TARGET_VERSION): Remove.
7678 * config/sparc/vxworks.h (TARGET_VERSION): Remove.
7679 * config/spu/spu.h (TARGET_VERSION): Remove.
7680 * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
7681 * config/v850/v850.h (TARGET_VERSION): Remove.
7682 * config/vax/linux.h (TARGET_VERSION): Remove.
7683 * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
7684 * config/xtensa/elf.h (TARGET_VERSION): Remove.
7685 * config/xtensa/linux.h (TARGET_VERSION): Remove.
7686
ace31bca
EB
76872011-03-31 Eric Botcazou <ebotcazou@adacore.com>
7688
7689 PR target/48142
7690 * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
7691 frame-related from frame-unrelated adjustments to the stack pointer.
7692
76f9db36
JJ
76932011-03-31 Jakub Jelinek <jakub@redhat.com>
7694
7695 * common.opt (fdebug-types-section): Move earlier.
7696 * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
7697
b7826465
AT
76982011-03-31 Andreas Tobler <andreast@fgznet.ch>
7699
7700 * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
7701 var.
7702
1290e54c
NF
77032011-03-30 Nathan Froyd <froydnj@codesourcery.com>
7704
7705 * tree.h (CASE_CHAIN): Define.
7706 * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
7707 (gimple_redirect_edge_and_branch): Likewise.
7708
bddc98e1
VM
77092011-03-30 Vladimir Makarov <vmakarov@redhat.com>
7710
7711 PR middle-end/48367
7712 * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
7713 calculation.
7714
c865e437
JL
77152011-03-30 Jeff Law <law@redhat.com>
7716
b3750213 7717 * PR bootstrap/48371
c865e437
JL
7718 * reload1.c (reload): Fix botch in last change.
7719
7720 * reload.h (struct reload): Fix typo introduced in last change.
7721
2cdf9574
JM
77222011-03-30 Joseph Myers <joseph@codesourcery.com>
7723
7724 * config/arm/arm.opt (mhard-float, msoft-float): Mark
7725 Undocumented. Remove help text.
7726 * doc/invoke.texi (ARM Options): Don't document -msoft-float and
7727 -mhard-float.
7728
666a21a2
JM
77292011-03-30 Joseph Myers <joseph@codesourcery.com>
7730
7731 * doc/options.texi (NegativeAlias): Document.
7732 (Alias): Mention NegativeAlias.
7733 * opt-functions.awk: Handle NegativeAlias.
e9c18386 7734 * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
666a21a2
JM
7735 * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
7736 * opts.h (CL_NEGATIVE_ALIAS): Define.
7737 * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
7738 (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
7739 OPT_mspe_.
7740 * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
7741 Alias entries.
7742 * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
7743 mno-spe and mno-isel instead of mspe=no and -misel=no.
7744
0fa4e351
MW
77452011-03-29 Mark Wielaard <mjw@redhat.com>
7746
7747 * common.opt (fdebug-types-section): New flag.
7748 * doc/invoke.texi: Document new -fno-debug-types-section flag.
7749 * dwarf2out.c (use_debug_types): New define.
7750 (struct die_struct): Mark die_id with GTY desc use_debug_types.
7751 (print_die): Guard output of type unit signatures using
7752 use_debug_types.
7753 (build_abbrev_table): Replace assert of dwarf_version >= 4
7754 with assert on use_debug_types.
7755 (size_of_die): Likewise.
7756 (unmark_dies): Likewise.
7757 (value_format): Decide AT_ref_external form on use_debug_types.
7758 (output_die): Replace dwarf_version version check guard with
7759 use_debug_types where appropriate.
7760 (modified_type_die): Likewise.
7761 (gen_reference_type_die): Likewise.
7762 (dwarf2out_start_source_file): Likewise.
7763 (dwarf2out_end_source_file): Likewise.
7764 (prune_unused_types_walk_attribs): Likewise.
7765 (dwarf2out_finish): Likewise.
7766
4648deb4
VM
77672011-03-30 Vladimir Makarov <vmakarov@redhat.com>
7768
7769 * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
7770
4f431835
RS
77712011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
7772
7773 PR rtl-optimization/48332
7774 * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
7775 mode of input operand N and modeN to its actual mode.
7776
f2034d06
JL
77772011-03-30 Jeff Law <law@redhat.com>
7778
7779 * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
7780 define accessor macro.
7781 (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
7782 (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
7783 (reg_equiv_init): Likewise.
7784 (reg_equivs_size): New variable.
7785 (reg_equiv_init_size): Remove.
7786 (allocate_initial_values): Move prototype to here from....
7787 * integrate.h (allocate_initial_values): Remove prototype.
7788 * integrate.c: Include reload.h.
7789 (allocate_initial_values): Corresponding changes.
7790 * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
7791 (fix_reg_equiv_init, no_equiv): Corresponding changes.
7792 (update_equiv_regs): Corresponding changes.
7793 (ira): Corresponding changes.
7794 * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
7795 (push_secondary_reload): Corresponding changes.
7796 (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
7797 (make_memloc, find_reloads_address): Corresponding changes.
7798 (subst_reg_equivs, subst_indexed_address): Corresponding changes.
7799 (find_reloads_address_1): Corresponding changes.
7800 (find_reloads_subreg_address, subst_reloads): Corresponding changes.
7801 (refers_to_regno_for_reload_p): Corresponding changes.
7802 (reg_overlap_mentioned_for_reload_p): Corresponding changes.
7803 (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
7804 * reload1.c: Include ggc.h.
7805 (grow_reg_equivs): New function.
7806 (replace_pseudos_in, reload): Corresponding changes.
7807 (calculate_needs_all_insns, alter_regs): Corresponding changes.
7808 (eliminate_regs_1, elimination_effects): Corresponding changes.
7809 (emit_input_reload_insns, emit_output_reload_insns): Likewise.
7810 (delete_output_reload): Likewise.
7811 * caller-save.c (mark_referenced_regs): Corresponding changes.
7812 * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
7813 * frv/predicates.md (frv_load_operand): Corresponding changes.
7814 * microblaze/microblaze.c (double_memory_operand): Corresponding
7815 changes.
7816 * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
7817 * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
e9c18386 7818 * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
f2034d06
JL
7819 * m68k/m68k.c (emit_move_sequence): Corresponding changes.
7820 * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
7821 changes.
7822 * pa/pa.c (emit_move_sequence): Corresponding changes.
7823 * vax/vax.c (nonindexed_address_p): Corresponding changes.
7824
159b81b0
RS
78252011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
7826
7827 PR target/47551
7828 * config/arm/arm.c (coproc_secondary_reload_class): Handle
7829 structure modes. Don't check neon_vector_mem_operand for
7830 vector or structure modes.
7831
a6217191
RS
78322011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
7833 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
7834
7835 PR target/43590
7836 * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
7837 operand 1 and reshuffle the operands to match.
7838 (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
7839
bd837408
CS
78402011-03-30 Christian Schüler <cschueler@gmx.de>
7841
6955d771 7842 PR driver/48208
bd837408 7843 * config/c.opt (F): Added 'Driver' to -F option.
e9c18386 7844
6955d771 7845 PR driver/48260
bd837408
CS
7846 * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
7847 handler function.
7848 * config/darwin.opt: Added '-arch' option.
7849
e9c0470a
NC
78502011-03-30 Nick Clifton <nickc@redhat.com>
7851
7852 * config/rx/rx.md: Add peepholes and patterns to combine
7853 extending loads and simple arithmetic instructions.
7854 * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
e9c18386
UB
7855 * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
7856 * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
e9c0470a 7857 modes to use pre-decrement and post-increment addressing.
e9c18386 7858 (rx_is_restricted_memory_address): Add range checking of REG+INT
e9c0470a 7859 addresses.
e9c18386
UB
7860 (rx_print_operand): Add support for %Q. Fix handling of %Q.
7861 (rx_memory_move_cost): Adjust cost of stores.
7862 (rx_adjust_insn_length): New function.
e9c0470a 7863
8a87e7ab
JJ
78642011-03-30 Jakub Jelinek <jakub@redhat.com>
7865
7866 PR c/48305
7867 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
7868 arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
7869 matching arg00/arg01 types.
7870
12486e03
EB
78712011-03-30 Eric Botcazou <ebotcazou@adacore.com>
7872
7873 * cfglayout.c (insn_locators_alloc): Initialize curr_location and
7874 last_location to UNKNOWN_LOCATION.
7875
0b99eef6
L
78762011-03-30 H.J. Lu <hongjiu.lu@intel.com>
7877
7878 PR target/48349
7879 * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
7880 FLOAT_SSE_REGS.
7881
023592aa
JM
78822011-03-30 Joseph Myers <joseph@codesourcery.com>
7883 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7884
7885 PR bootstrap/48337
7886 * config/sparc/sparc.opt (sparc_cpu_and_features): Add
7887 Init(PROCESSOR_V7).
7888 (sparc_cpu): Likewise.
7889 * config/sparc/sparc.c (sparc_option_override): Replace 0 by
7890 PROCESSOR_V7.
7891
ad3b266b
VM
78922011-03-29 Vladimir Makarov <vmakarov@redhat.com>
7893
7894 PR target/48336
7895 PR middle-end/48342
7896 PR rtl-optimization/48345
7897 * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
7898 hard regs for given mode from profitable regs when doing secondary
7899 allocation.
7900
633c9126
JL
79012011-03-29 Jeff Law <law@redhat.com>
7902
7903 PR bootstrap/48327
7904 * tree-ssa-threadupdate.c (struct redirection_data): Remove
7905 do_not_duplicate field.
7906 (lookup_redirection_data): Corresponding changes.
7907 (create_duplicates): Always create a template block.
7908 (redirect_edges): Remove code which reused the original block
7909 when it was going to become unreachable code.
7910 (thread_block): Don't set do_not_duplicate field.
7911
eb50f63a
JM
79122011-03-29 Joseph Myers <joseph@codesourcery.com>
7913
7914 * lto-opts.c (register_user_option_p, lto_register_user_option):
7915 Make type argument unsigned.
7916 * lto-streamer.h (lto_register_user_option): Make type argument
7917 unsigned.
7918 * opth-gen.awk: Make CL_* macros unsigned.
7919 * opts-common.c (find_opt): Make lang_mask argument unsigned.
7920 * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
7921 CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
7922 CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
7923 CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
7924 CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
7925 (find_opt): Make lang_mask argument unsigned.
7926
76763a6d
VM
79272011-03-29 Vladimir Makarov <vmakarov@redhat.com>
7928
7929 PR rtl-optimization/48331
7930 PR rtl-optimization/48334
7931 * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
7932 for any used algorithm.
7933
5c82436e
VM
79342011-03-29 Vladimir Makarov <vmakarov@redhat.com>
7935
7936 * ira-conflicts.c (build_object_conflicts): Add unused attribute
7937 to parent_max.
7938
7a81008b
UB
79392011-03-29 Uros Bizjak <ubizjak@gmail.com>
7940
7941 * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
7942 (alpha_option_override): Don't set alpha_sr_alias_set.
7943 (emit_frame_store_1): Use gen_frame_mem rather than calling
7944 set_mem_alias_set.
7945 (alpha_expand_epilogue): Ditto.
7946
86c8d1f6
IR
79472011-03-29 Ira Rosen <ira.rosen@linaro.org>
7948
7949 PR tree-optimization/48290
7950 * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
7951 vectorization, check that relevant phis in the basic block after
7952 the inner loop are really inner loop's exit phis.
7953
0d12220f
RS
79542011-03-29 Richard Sandiford <richard.sandiford@linaro.org>
7955
e8cf17e7 7956 PR debug/48190
0d12220f
RS
7957 * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
7958 (cached_dw_loc_list_def): New structure.
7959 (cached_dw_loc_list): New typedef.
7960 (cached_dw_loc_list_table): New variable.
7961 (cached_dw_loc_list_table_hash): New function.
7962 (cached_dw_loc_list_table_eq): Likewise.
7963 (add_location_or_const_value_attribute): Take a bool cache_p.
7964 Cache the list when the parameter is true.
7965 (gen_formal_parameter_die): Update caller.
7966 (gen_variable_die): Likewise.
7967 (dwarf2out_finish): Likewise.
7968 (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
7969 while generating debug info for the decl.
7970 (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
7971 (dwarf2out_init): Initialize cached_dw_loc_list_table.
7972 (resolve_addr): Cache the result of resolving a chain of
7973 location lists.
7974
1756cb66
VM
79752011-03-28 Vladimir Makarov <vmakarov@redhat.com>
7976
7977 * ira-color.c (update_left_conflict_sizes_p): Don't assume that
7978 conflict object hard regset nodes have intersecting hard reg sets.
7a81008b 7979
1756cb66
VM
7980 * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
7981 after regstat_init_n_sets_and_refs.
7982
7983 * ira.c: Add more comments at the top.
7984 (setup_stack_reg_pressure_class, setup_pressure_classes):
7985 Add comments how we compute the register pressure classes.
7986 (setup_allocno_and_important_classes): Add more comments.
7987 (setup_class_translate_array, reorder_important_classes)
7988 (setup_reg_class_relations): Add comments.
7989
7990 * ira-emit.c: Add 2011 to the Copyright line. Add comments at the
7991 start of the file.
7992
7993 * ira-color.c: Add 2011 to the Copyright line.
7994 (assign_hard_reg): Add more comments.
7995 (improve_allocation): Ditto.
7996
7997 * ira-costs.c: Add 2011 to the Copyright line.
7998 (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
7999 comments.
8000 (setup_regno_cost_classes_by_mode): Ditto.
8001
8002 Initial patches from ira-improv branch:
8003
8004 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
8005
f60c2554 8006 * ira-build.c (ira_create_object): Remove initialization of
1756cb66
VM
8007 OBJECT_PROFITABLE_HARD_REGS. Initialize OBJECT_ADD_DATA.
8008 (ira_create_allocno): Remove initialization of
8009 ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
8010 ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
8011 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
8012 ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
8013 ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
8014 Initialize ALLOCNO_ADD_DATA.
8015 (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
8016 and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
8017 ALLOCNO_REG.
8018 (ira_flattening): Ditto. Use ALLOCNO_EMIT_DATA instead of
8019 ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
8020
8021 * ira.c (ira_reallocate): Remove.
8022 (setup_pressure_classes): Call
8023 ira_init_register_move_cost_if_necessary. Use
8024 ira_register_move_cost instead of ira_get_register_move_cost.
8025 (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
8026 (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
8027
8028 * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
8029 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
8030 ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
8031 ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
8032 instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
8033 OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
8034 Fix formatting.
7a81008b 8035 (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
1756cb66
VM
8036 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
8037 (struct allocno_color_data): New.
8038 (allocno_color_data_t): New typedef.
8039 (allocno_color_data): New definition.
8040 (ALLOCNO_COLOR_DATA): New macro.
8041 (struct object_color_data): New.
8042 (object_color_data_t): New typedef.
8043 (object_color_data): New definition.
8044 (OBJECT_COLOR_DATA): New macro.
8045 (update_copy_costs, calculate_allocno_spill_cost): Call
8046 ira_init_register_move_cost_if_necessary. Use
8047 ira_register_move_cost instead of ira_get_register_move_cost.
8048 (move_spill_restore, update_curr_costs): Ditto.
8049 (allocno_spill_priority): Make it inline.
7a81008b 8050 (color_pass): Allocate and free allocno_color_dat and object_color_data.
1756cb66
VM
8051 (struct coalesce_data, coalesce_data_t): New.
8052 (allocno_coalesce_data): New definition.
8053 (ALLOCNO_COALESCE_DATA): New macro.
8054 (merge_allocnos, coalesced_allocno_conflict_p): Use
8055 ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
8056 ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
8057 (coalesce_allocnos): Ditto.
8058 (setup_coalesced_allocno_costs_and_nums): Ditto.
8059 (collect_spilled_coalesced_allocnos): Ditto.
8060 (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
8061 (setup_slot_coalesced_allocno_live_ranges): Ditto.
8062 (coalesce_spill_slots): Ditto.
8063 (ira_sort_regnos_for_alter_reg): Ditto. Allocate, initialize and
8064 free allocno_coalesce_data.
8065
8066 * ira-conflicts.c: Fix formatting.
8067 (process_regs_for_copy): Call
8068 ira_init_register_move_cost_if_necessary. Use
8069 ira_register_move_cost instead of ira_get_register_move_cost.
8070 (build_object_conflicts): Optimize.
8071
8072 * ira-costs.c (record_reg_classes): Optimize. Call
8073 ira_init_register_move_cost_if_necessary. Use
8074 ira_register_move_cost, ira_may_move_in_cost, and
8075 ira_may_move_out_cost instead of ira_get_register_move_cost and
8076 ira_get_may_move_cost.
8077 (record_address_regs): Ditto.
8078 (scan_one_insn): Optimize.
8079 (find_costs_and_classes): Optimize.
8080 (process_bb_node_for_hard_reg_moves): Call
8081 ira_init_register_move_cost_if_necessary. Use
8082 ira_register_move_cost instead of ira_get_register_move_cost.
8083
8084 * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
8085 ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
8086 ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
8087 (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
8088 definitions.
8089 (ira_initiate_emit_data, ira_finish_emit_data)
8090 (create_new_allocno): New functions.
7a81008b 8091 (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
1756cb66
VM
8092 (emit_move_list): Call ira_init_register_move_cost_if_necessary.
8093 Use ira_register_move_cost instead of ira_get_register_move_cost.
8094
8095 * ira-int.h: Fix some comments.
7a81008b
UB
8096 (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
8097 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
1756cb66
VM
8098 (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
8099 hard_regs_subnodes_start, hard_regs_subnodes_num. Add new member
8100 add_data.
8101 (struct ira_allocno): Make mode and aclass a bitfield. Move other
8102 bitfield after mode. Make hard_regno a short int. Make
8103 hard_regno short. Remove first_coalesced_allocno and
8104 next_coalesced_allocno. Move mem_optimized_dest_p,
8105 somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
8106 into struct ira_emit_data. Remove in_graph_p, may_be_spilled_p,
8107 available_regs_num, next_bucket_allocno, prev_bucket_allocno,
8108 temp, colorable_p. Add new member add_data.
8109 (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
8110 (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
8111 (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
8112 (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
8113 (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
8114 (ALLOCNO_ADD_DATA): New macro.
8115 (ira_emit_data_t): New typedef.
8116 (struct ira_emit_data): New. Move mem_optimized_dest_p,
8117 somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
8118 from struct ira_allocno.
8119 (ALLOCNO_EMIT_DATA): New macro.
8120 (ira_allocno_emit_data, allocno_emit_reg): New.
8121 (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
7a81008b 8122 (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
1756cb66
VM
8123 (OBJECT_ADD_DATA): New macro.
8124 (ira_reallocate): Remove.
8125 (ira_initiate_emit_data, ira_finish_emit_data): New.
8126 (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
8127 (ira_init_register_move_cost_if_necessary): New.
8128 (ira_object_conflict_iter_next): Merge into
8129 ira_object_conflict_iter_cond.
7a81008b 8130 (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
1756cb66 8131
f60c2554 8132 * ira-live.c (process_single_reg_class_operands): Call
1756cb66
VM
8133 ira_init_register_move_cost_if_necessary. Use
8134 ira_register_move_cost instead of ira_get_register_move_cost.
8135
8136 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
8137
8138 * ira-int.h (struct target_ira_int): Remove x_cost_classes.
8139
8140 * ira-costs.c: Fix formatting.
8141 (cost_classes, cost_classes_num): Remove.
8142 (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
8143 (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
8144 (cost_classes_del, cost_classes_htab): New.
8145 (cost_classes_aclass_cache, cost_classes_mode_cache): New.
8146 (initiate_regno_cost_classes, setup_cost_classes): New.
8147 (setup_regno_cost_classes_by_aclass): New.
7a81008b 8148 (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
1756cb66
VM
8149 (record_reg_classes): Use regno_cost_classes instead of
8150 cost_classes. Move checking opposite operand up.
8151 (record_address_regs): Use regno_cost_classes
8152 instead of cost_classes.
8153 (scan_one_insn): Ditto. Use always general register.
8154 (print_allocno_costs): Use regno_cost_classes instead of
8155 cost_classes.
8156 (print_pseudo_costs): Ditto. Use Reg_N_REFS.
8157 (find_costs_and_classes): Set up cost classes for each registers.
8158 Use also their mode for this. Use regno_cost_classes instead of
8159 cost_classes.
8160 (setup_allocno_class_and_costs): Use regno_cost_classes instead of
8161 cost_classes.
8162 (free_ira_costs, ira_init_costs): Don't use cost_classes.
8163 (ira_costs, ira_set_pseudo_classes): Call
8164 initiate_regno_cost_classes and finish_regno_cost_classes.
8165
8166 2010-10-04 Vladimir Makarov <vmakarov@redhat.com>
8167
8168 * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
8169
8170 * target.def (ira_cover_classes): Remove.
8171
7a81008b 8172 * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
1756cb66
VM
8173
8174 * doc/tm.texi.in: Ditto.
8175
8176 * ira-conflicts.c: Remove mentioning cover classes from the file.
8177 Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Use
7a81008b 8178 ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST. Fix formatting.
1756cb66
VM
8179
8180 * targhooks.c (default_ira_cover_classes): Remove.
8181
8182 * targhooks.h (default_ira_cover_classes): Ditto.
8183
8184 * haifa-sched.c: Remove mentioning cover classes from the file.
8185 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
8186 ira_pressure_classes and ira_pressure_classes_num instead of
8187 ira_reg_class_cover_size and ira_reg_class_cover. Use
8188 sched_regno_pressure_class instead of sched_regno_cover_class.
8189 (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
8190 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
8191
8192 * ira-int.h: Add 2010 to Copyright. Remove mentioning cover
8193 classes from the file.
8194 (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
8195 (struct object_hard_regs, struct object_hard_regs_node): New.
8196 (struct ira_object): New members profitable_hard_regs,
8197 hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
8198 (struct ira_allocno): Rename cover_class to aclass. Rename
8199 cover_class_cost and updated_cover_class_cost to class_cost and
8200 updated_class_cost. Remove splay_removed_p and
8201 left_conflict_size. Add new members colorable_p.
8202 (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
8203 (ALLOCNO_COLORABLE_P): New macro.
8204 (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
8205 (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
8206 Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
8207 (OBJECT_...): Rename parameter C to O.
8208 (OBJECT_PROFITABLE_HARD_REGS): New macro.
8209 (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
8210 (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
8211 (struct target_ira_int): New members x_ira_max_memory_move_cost,
8212 x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
8213 x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
8214 x_ira_reg_pressure_class_p, x_ira_important_class_nums,
8215 x_ira_reg_class_superunion. Rename x_prohibited_class_mode_reg to
8216 x_ira_prohibited_class_mode_reg. Rename x_ira_reg_class_union to
8217 x_ira_reg_class_subunion.
8218 (ira_max_memory_move_cost, ira_max_register_move_cost)
8219 (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
8220 (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
8221 (ira_important_class_nums, ira_reg_class_superunion): New macros.
7a81008b 8222 (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
1756cb66
VM
8223 (ira_reg_class_union): Rename to ira_reg_class_subunion.
8224 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
8225 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
8226 (ira_tune_allocno_costs_and_cover_classes): Rename to
8227 ira_tune_allocno_costs.
8228 (ira_debug_hard_regs_forest): New.
8229 (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
8230 (ira_object_conflict_iter_next): Fix comments.
7a81008b 8231 (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
1756cb66
VM
8232 (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
8233 cover_class to aclass.
8234 (ira_allocate_and_accumulate_costs): Ditto.
8235 (ira_allocate_and_set_or_copy_costs): Ditto.
8236
8237 * opts.c (decode_options): Remove ira_cover_class check.
8238
8239 * ira-color.c: Remove mentioning cover classes from the file. Use
8240 ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
8241 instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
8242 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
8243 (splay-tree.h): Remove include.
8244 (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
8245 before copy_freq_compare_func.
8246 (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
8247 (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
8248 New definitions.
8249 (hard_regs_roots, hard_regs_node_vec): Ditto.
8250 (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
8251 (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
8252 (finish_object_hard_regs, object_hard_regs_compare): Ditto.
8253 (create_new_object_hard_regs_node): Ditto.
8254 (add_new_object_hard_regs_node_to_forest): Ditto.
7a81008b 8255 (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
1756cb66
VM
8256 (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
8257 Ditto.
8258 (print_hard_reg_set, print_hard_regs_subforest): Ditto.
8259 (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
8260 (remove_unused_object_hard_regs_nodes): Ditto.
8261 (enumerate_object_hard_regs_nodes): Ditto.
8262 (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
8263 (object_hard_regs_subnode_t): Ditto.
8264 (struct object_hard_regs_subnode): Ditto.
8265 (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
8266 (setup_object_hard_regs_subnode_index): Ditto.
8267 (get_object_hard_regs_subnodes_num): Ditto.
8268 (form_object_hard_regs_nodes_forest): Ditto.
8269 (finish_object_hard_regs_nodes_tree): Ditto.
8270 (finish_object_hard_regs_nodes_forest): Ditto.
8271 (allocnos_have_intersected_live_ranges_p): Rename to
7a81008b 8272 allocnos_conflict_by_live_ranges_p. Move before copy_freq_compare_func.
1756cb66
VM
8273 (pseudos_have_intersected_live_ranges_p): Rename to
8274 conflict_by_live_ranges_p. Move before copy_freq_compare_func.
8275 (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
8276 (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
8277 (update_copy_costs): Remove assert. Skip cost update if the hard
8278 reg does not belong the class.
8279 (assign_hard_reg): Process only profitable hard regs.
8280 (uncolorable_allocnos_num): Make it scalar.
8281 (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
8282 and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
8283 and ira_reg_class_max_nregs.
8284 (bucket_allocno_compare_func): Check frequency first.
8285 (sort_bucket): Add compare function as a parameter.
8286 (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
8287 (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
8288 (push_allocno_to_stack): Rewrite for checking new allocno
8289 colorability.
7a81008b 8290 (remove_allocno_from_bucket_and_push): Print cost too. Remove assert.
1756cb66
VM
8291 (push_only_colorable): Pass new parameter to sort_bucket.
8292 (push_allocno_to_spill): Remove.
8293 (allocno_spill_priority_compare): Make it inline and rewrite.
8294 (splay_tree_allocate, splay_tree_free): Remove.
8295 (allocno_spill_sort_compare): New function.
8296 (push_allocnos_to_stack): Sort allocnos for spilling once. Don't
8297 build and use splay tree. Choose first allocno in uncolorable
8298 allocno bucket to spill. Remove setting spill cost.
8299 (all_conflicting_hard_regs): Remove.
8300 (setup_allocno_available_regs_num): Check only profitable hard
8301 regs. Print info about hard regs nodes.
8302 (setup_allocno_left_conflicts_size): Remove.
8303 (put_allocno_into_bucket): Don't call
7a81008b 8304 setup_allocno_left_conflicts_size. Use setup_left_conflict_sizes_p.
1756cb66
VM
8305 (improve_allocation): New.
8306 (color_allocnos): Call setup_profitable_hard_regs,
8307 form_object_hard_regs_nodes_forest, improve_allocation,
8308 finish_object_hard_regs_nodes_forest. Setup spill cost.
8309 (print_loop_title): Use pressure classes.
8310 (color_allocnso): Ditto.
8311 (do_coloring): Remove allocation and freeing splay_tree_node_pool
8312 and allocnos_for_spilling.
8313 (ira_sort_regnos_for_alter_reg): Don't setup members
8314 {first,next}_coalesced_allocno.
8315 (color): Remove allocating and freeing removed_splay_allocno_vec.
8316 (fast_allocation): Use ira_prohibited_class_mode_regs instead of
8317 prohibited_class_mode_regs.
8318
8319 * ira-lives.c: Remove mentioning cover classes from the file. Fix
8320 formatting.
8321 (update_allocno_pressure_excess_length): Use pressure classes.
8322 (inc_register_pressure, dec_register_pressure): Check for pressure
8323 class.
8324 (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
8325 pressure class. Use ira_reg_class_nregs instead of
8326 ira_reg_class_max_nregs.
8327 (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
8328 (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
8329 (single_reg_class): Use ira_reg_class_nregs instead of
8330 ira_reg_class_max_nregs.
8331 (process_bb_node_lives): Use pressure classes.
8332
8333 * ira-emit.c: Remove mentioning cover classes from the file. Use
8334 ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Fix formatting.
8335 (change_loop): Use pressure classes.
8336 (modify_move_list): Call ira_set_allocno_class instead of
8337 ira_set_allocno_cover_class.
8338
8339 * ira-build.c: Remove mentioning cover classes from the file. Use
8340 ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
8341 ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST. Use
8342 ALLOCNO_UPDATED_CLASS_COST instead of
8343 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
8344 (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
8345 (ira_create_allocno): Remove initialization of
8346 ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE. Initialize
8347 ALLOCNO_COLORABLE_P.
8348 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
8349 Update conflict regs for the objects.
8350 (create_cap_allocno): Remove assert. Don't propagate
8351 ALLOCNO_AVAILABLE_REGS_NUM.
8352 (ira_free_allocno_costs): New function.
8353 (finish_allocno): Change a part of code into call of
8354 ira_free_allocno_costs.
8355 (low_pressure_loop_node_p): Use pressure classes.
8356 (object_range_compare_func): Don't compare classes.
8357 (setup_min_max_conflict_allocno_ids): Ditto.
8358
8359 * loop-invariant.c: Remove mentioning cover classes from the file.
8360 Use ira_pressure_classes and ira_pressure_classes_num instead of
8361 ira_reg_class_cover_size and ira_reg_class_cover. Fix formatting.
7a81008b
UB
8362 (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
8363 Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
8364 Use reg_allocno_class instead of reg_cover_class.
1756cb66
VM
8365 (get_inv_cost): Use instead ira_stack_reg_pressure_class of
8366 STACK_REG_COVER_CLASS.
8367 (get_regno_cover_class): Rename to get_regno_pressure_class.
8368 (move_loop_invariants): Initialize and finalize regstat.
8369
8370 * ira.c: Remove mentioning cover classes from the file. Add
8371 comments about coloring without cover classes. Use ALLOCNO_CLASS
8372 instead of ALLOCNO_COVER_CLASS. Fix formatting.
8373 (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
8374 setup_class_subset_and_memory_move_costs.
8375 (setup_stack_reg_pressure_class, setup_pressure_classes): New.
8376 (setup_cover_and_important_classes): Rename to
8377 setup_allocno_and_important_classes.
8378 (setup_class_translate_array): New.
8379 (setup_class_translate): Call it for allocno and pressure classes.
8380 (cover_class_order): Rename to allocno_class_order.
8381 (comp_reg_classes_func): Use ira_allocno_class_translate instead
8382 of ira_class_translate.
8383 (reorder_important_classes): Set up ira_important_class_nums.
8384 (setup_reg_class_relations): Set up ira_reg_class_superunion.
8385 (print_class_cover): Rename to print_classes. Add parameter.
8386 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
8387 Print pressure classes too.
8388 (find_reg_class_closure): Rename to find_reg_classes. Don't call
8389 setup_reg_subclasses.
7a81008b 8390 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
1756cb66
VM
8391 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
8392 (setup_prohibited_class_mode_regs): Use
7a81008b 8393 ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
1756cb66
VM
8394 (clarify_prohibited_class_mode_regs): New function.
8395 (ira_init_register_move_cost): Set up ira_max_register_move_cost,
8396 ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
8397 (ira_init_once): Initialize them.
8398 (free_register_move_costs): Process them.
8399 (ira_init): Move calls of find_reg_classes and
8400 setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
8401 Call clarify_prohibited_class_mode_regs.
8402 (ira_no_alloc_reg): Remove.
8403 (too_high_register_pressure_p): Use pressure classes.
8404
8405 * sched-deps.c: Remove mentioning cover classes from the file.
8406 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
8407 ira_pressure_classes and ira_pressure_classes_num instead of
8408 ira_reg_class_cover_size and ira_reg_class_cover.
8409 (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
8410 sched_regno_pressure_class instead of sched_regno_cover_class.
8411 (mark_insn_pseudo_birth, mark_pseudo_death): Ditto. Use
8412 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
8413
8414 * ira.h: Add 2010 to Copyright.
8415 (ira_no_alloc_reg): Remove external.
8416 (struct target_ira): Rename x_ira_hard_regno_cover_class,
8417 x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
8418 x_ira_class_translate to x_ira_hard_regno_allocno_class,
8419 x_ira_allocno_classes_num, x_ira_allocno_classes, and
8420 x_ira_allocno_class_translate. Add x_ira_pressure_classes_num,
8421 x_ira_pressure_classes, x_ira_pressure_class_translate, and
8422 x_ira_stack_reg_pressure_class. Rename x_ira_reg_class_nregs to
8423 x_ira_reg_class_max_nregs. Add x_ira_reg_class_min_nregs and
8424 x_ira_no_alloc_regs.
7a81008b 8425 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
1756cb66
VM
8426 (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
8427 ira_allocno_classes_num and ira_allocno_classes.
8428 (ira_class_translate): Rename to ira_allocno_class_translate.
8429 (ira_pressure_classes_num, ira_pressure_classes): New definitions.
8430 (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
8431 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
8432 (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
8433 (ira_no_alloc_regs): New.
8434
8435 * ira-costs.c: Add 2010 to Copyright. Remove mentioning cover
8436 classes from the file. Use ALLOCNO_CLASS instead of
8437 ALLOCNO_COVER_CLASS. Use ALLOCNO_CLASS_COST instead of
8438 ALLOCNO_COVER_CLASS_COST.
8439 (regno_cover_class): Rename to regno_aclass.
8440 (record_reg_classes): Use ira_reg_class_subunion instead of
8441 ira_reg_class_union.
8442 (record_address_regs): Check overflow.
8443 (scan_one_insn): Ditto.
7a81008b 8444 (print_allocno_costs): Print total mem cost fore regional allocation.
1756cb66
VM
8445 (print_pseudo_costs): Use REG_N_REFS.
8446 (find_costs_and_classes): Use classes intersected with them on the
8447 1st pass. Check overflow. Use ira_reg_class_subunion instead of
8448 ira_reg_class_union. Use ira_allocno_class_translate and
8449 regno_aclass instead of ira_class_translate and regno_cover_class.
8450 Modify code for finding regno_aclass. Setup preferred classes for
8451 the next pass.
8452 (setup_allocno_cover_class_and_costs): Rename to
8453 setup_allocno_class_and_costs. Use regno_aclass instead of
8454 regno_cover_class. Use ira_set_allocno_class instead of
8455 ira_set_allocno_cover_class.
8456 (init_costs, finish_costs): Use regno_aclass instead of
8457 regno_cover_class.
8458 (ira_costs): Use setup_allocno_class_and_costs instead of
8459 setup_allocno_cover_class_and_costs.
8460 (ira_tune_allocno_costs_and_cover_classes): Rename to
8461 ira_tune_allocno_costs. Check overflow. Skip conflict hard regs
8462 by processing objects. Use ira_reg_class_max_nregs instead of
8463 ira_reg_class_nregs.
8464
8465 * rtl.h (reg_cover_class): Rename to reg_allocno_class.
8466
8467 * sched-int.h: Remove mentioning cover classes from the file.
8468 (sched_regno_cover_class): Rename to sched_regno_pressure_class.
8469
8470 * reginfo.c: Add 2010 to Copyright. Remove mentioning cover
8471 classes from the file.
8472 (struct reg_pref): Rename coverclass into allocnoclass.
8473 (reg_cover_class): Rename to reg_allocno_class.
8474
7a81008b 8475 * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
1756cb66
VM
8476
8477 * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
8478
8479 * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
8480
8481 * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
8482
8483 * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
8484
8485 * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
8486
8487 * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
8488
8489 * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
8490
8491 * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
8492
8493 * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
8494
8495 * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
8496 (i386_ira_cover_classes): Ditto.
8497
8498 * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
8499
8500 * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
8501
8502 * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
8503
8504 * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
8505
8506 * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
8507
8508 * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
8509
8510 * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
8511 (mips_ira_cover_classes): Ditto.
8512
8513 * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
8514
8515 * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
8516
8517 * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
8518
8519 * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
8520
8521 * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
8522
8523 * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
8524 (IRA_COVER_CLASSES_VSX): Ditto.
8525
8526 * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
8527 (rs6000_ira_cover_classes): Ditto.
8528
8529 * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
8530
8531 * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
8532
8533 * config/score/score.h (IRA_COVER_CLASSES): Ditto.
8534
8535 * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
8536
8537 * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
8538
8539 * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
8540
8541 * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
8542
8543 * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
8544
8545 * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
8546
8547 * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
8548
2b80199f
JJ
85492011-03-29 Jakub Jelinek <jakub@redhat.com>
8550
71dae1fe
JJ
8551 PR debug/48253
8552 * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
8553 dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
8554 dw_fde_unlikely_section_end_label, cold_in_std_section,
8555 dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
8556 Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
8557 fields.
8558 (output_fde): Use dw_fde_second_{begin,end} if second is
8559 true, otherwise dw_fde_{begin,end}.
8560 (output_call_frame_info): Test dw_fde_second_begin != NULL
8561 instead of dw_fde_switched_sections.
8562 (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
8563 fields, initialize new fields. Initialize in_std_section
8564 unconditionally from the first partition.
8565 (dwarf2out_end_epilogue): Don't override dw_fde_end when
8566 dw_fde_second_begin is non-NULL.
8567 (dwarf2out_switch_text_section): Stop initializing removed
8568 dw_fde_struct fields, initialize new fields, initialize
8569 also dw_fde_end here. Set dw_fde_switch_cfi even when
8570 dwarf2out_do_cfi_asm (). Call var_location_switch_text_section.
8571 (struct var_loc_list_def): Add last_before_switch field.
8572 (arange_table, arange_table_allocated, arange_table_in_use,
8573 ARANGE_TABLE_INCREMENT, add_arange): Removed.
8574 (size_of_aranges): Count !in_std_section and !second_in_std_section
8575 hunks in fdes, instead of looking at arange_table_in_use.
8576 (output_aranges): Add aranges_length argument, don't call
8577 size_of_aranges here. Instead of using aranges_table*
8578 emit ranges for fdes when !in_std_section resp.
8579 !second_in_std_section.
8580 (dw_loc_list): Break ranges crossing section switch.
8581 (convert_cfa_to_fb_loc_list): Likewise. If switched sections,
7a81008b 8582 use dw_fde_second_end instead of dw_fde_end as end of last range.
71dae1fe
JJ
8583 (gen_subprogram_die): Don't call add_arange. Use
8584 dw_fde_{begin,end} for first partition and if switched
8585 section dw_fde_second_{begin,end} for the second.
8586 (var_location_switch_text_section_1,
8587 var_location_switch_text_section): New functions.
8588 (dwarf2out_begin_function): Initialize cold_text_section even
8589 when function_section () isn't text_section.
8590 (prune_unused_types): Don't walk arange_table.
8591 (dwarf2out_finish): Don't needlessly test
8592 flag_reorder_blocks_and_partition when testing cold_text_section_used.
8593 If info_section_emitted, call size_of_aranges and if it indicates
8594 non-empty .debug_aranges, call output_aranges with the computed
8595 size. Stop using removed dw_fde_struct fields, use
8596 dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
8597 for second.
8598
2b80199f
JJ
8599 PR debug/48203
8600 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
8601 create ENTRY_VALUE if incoming or address of incoming's MEM
8602 is a hard REG.
8603 * dwarf2out.c (mem_loc_descriptor): Don't emit
8604 DW_OP_GNU_entry_value of DW_OP_fbreg.
8605 * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
8606 on ENTRY_VALUE is able to find the canonical parameter VALUE.
8607 * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
8608 rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
8609 ENTRY_VALUE_EXPs.
8610 (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
8611 is a REG_P or MEM_P with REG_P address, compute hash directly
8612 instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
8613 (preserve_only_constants): Don't clear VALUES forwaring
8614 ENTRY_VALUE to some other VALUE.
8615
8a445129
RS
86162011-03-28 Richard Sandiford <richard.sandiford@linaro.org>
8617
8618 * builtins.c (expand_builtin_memset_args): Use gen_int_mode
8619 instead of GEN_INT.
8620
c82fee88
EB
86212011-03-28 Eric Botcazou <ebotcazou@adacore.com>
8622
8623 * cfgexpand.c (expand_gimple_cond): Always set the source location and
8624 block before expanding the statement.
8625 (expand_gimple_stmt_1): Likewise. Set them here...
8626 (expand_gimple_stmt): ...and not here. Tidy.
8627 * cfglayout.c (curr_insn_locator): Return 0 if the current location is
8628 unknown.
8629
e45425ec
SB
86302011-03-28 Steven Bosscher <steven@gcc.gnu.org>
8631
8632 * Makefile.in: New rule for cprop.o.
8633 * gcse.c: Move constant/copy propagation to cprop.c.
8634 (compute_local_properties): Only handle expression tables.
8635 (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
8636 (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
8637 (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
8638 next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
7a81008b 8639 mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
e45425ec
SB
8640 compute_cprop_data, find_used_regs, try_replace_reg,
8641 find_avail_set, cprop_jump, constprop_register, cprop_insn,
8642 local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
8643 fis_get_condition, implicit_set_cond_p, find_implicit_sets,
8644 find_bypass_set, reg_killed_on_edge, bypass_block,
8645 bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
8646 execute_rtl_cprop, pass_rtl_cprop): Move to...
8647 * cprop.c: ...here. New file, constant/copy propagation for RTL
8648 moved from gcse.c to here with minor cleanups in duplicated code.
8649
c09d5426
L
86502011-03-28 H.J. Lu <hongjiu.lu@intel.com>
8651
8652 * config/i386/i386.c (flag_opts): Fix a typo in
8653 -mavx256-split-unaligned-store.
8654
9eaa7740
AS
86552011-03-28 Anatoly Sokolov <aesok@post.ru>
8656
8657 * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
8658 LIBCALL_VALUE): Remove macros.
8659 * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
8660 TARGET_FUNCTION_VALUE_REGNO_P): Define.
8661 (h8300_function_value, h8300_libcall_value,
8662 h8300_function_value_regno_p): New functions.
8663
dcec2be2
AS
86642011-03-28 Anatoly Sokolov <aesok@post.ru>
8665
8666 * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
8667
520af9ec
JL
86682011-03-28 Jeff Law <law@redhat.com>
8669
8670 * tree-ssa-threadupdate.c (redirect_edges): Call
8671 create_edge_and_update_destination_phis as needed.
8672 (create_edge_and_update_destination_phis): Accept new BB argument.
8673 All callers updated.
8674 (thread_block): Do not update the profile when threading around
8675 intermediate blocks.
8676 (thread_single_edge): Likewise.
8677 (determine_bb_domination_status): If BB is not a successor of the
8678 loop header, return NONDOMINATING.
8679 (register_jump_thread): Note when we register a jump thread around
8680 an intermediate block.
8681 * tree-ssa-threadedge.c (thread_around_empty_block): New function.
8682 (thread_across_edge): Use it.
8683
7450b54f
TG
86842011-03-28 Tristan Gingold <gingold@adacore.com>
8685
8686 * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
8687 when for_return is 2.
8688
649beb33
JL
86892011-03-28 Jeff Law <law@redhat.com>
8690
8691 * var-tracking.c (canonicalize_values_mark): Delete unused
8692 lhs assignment.
8693 (canonicalize_values_star, set_variable_part): Likewise.
8694 (clobber_variable_part, delete_variable_part): Likewise.
8695
d5b8da97
SB
86962011-03-28 Steven Bosscher <steven@gcc.gnu.org>
8697
8698 * gcse.c (free_gcse_mem): Free reg_set_bitmap.
8699
322dd859
MJ
87002011-03-28 Martin Jambor <mjambor@suse.cz>
8701
8702 * tree-inline.c (expand_call_inline): Do not check that destination
8703 node is analyzed.
8704 (optimize_inline_calls): Assert that destination node is analyzed.
8705 * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
8706 not call tree_lowering_passes.
8707 * cgraph.h (cgraph_analyze_function): Declare.
8708 * cgraphunit.c (cgraph_analyze_function): Make public.
8709
aa53e58b
JM
87102011-03-28 Joseph Myers <joseph@codesourcery.com>
8711
8712 * config/sparc/sparc-opts.h: New.
8713 * config/sparc/sparc.c (sparc_handle_option, sparc_select,
8714 sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
8715 (sparc_option_override): Store processor_type enumeration rather
8716 than string in cpu_default. Remove name and enumeration from
8717 cpu_table. Directly default -mcpu then default -mtune from -mcpu
8718 without using sparc_select. Use target_flags_explicit instead of
8719 fpu_option_set.
8720 * config/sparc/sparc.h (enum processor_type): Move to
8721 sparc-opts.h.
8722 (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
8723 * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
8724 HeaderInclude entry.
8725 (mcpu=, mtune=): Use Var and Enum.
8726 (sparc_processor_type): New Enum and EnumValue entries.
8727
dd350eba
RO
87282011-03-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8729 Iain Sandoe <iains@gcc.gnu.org>
8730
8731 PR target/48245
8732 * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
8733
1b29f05e
EB
87342011-03-28 Eric Botcazou <ebotcazou@adacore.com>
8735
8736 * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
8737 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
8738 Insert new statements at it in lieu of STMT.
8739 (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
8740 * tree-vect-stmts.c (vectorizable_store): Likewise.
8741 (vectorizable_load): Likewise.
8742
506e6808
UB
87432011-03-28 Uros Bizjak <ubizjak@gmail.com>
8744
8745 * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
8746 (divtf3): Ditto.
8747 (multf3): Ditto.
8748 (subtf3): Ditto.
8749
2e939ee9
L
87502011-03-27 H.J. Lu <hongjiu.lu@intel.com>
8751
8752 * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
8753 unaligned 256bit load/store.
8754 (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
8755 (*avx_movdqu<avxmodesuffix>): Likewise.
8756
5e85ab88
JDA
87572011-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8758
8759 PR target/48288
8760 * config/pa/predicates.md (reg_or_ior_operand): New predicate.
8761 * config/pa/pa.md (iordi3): Use new predicate in expander.
8762 (iorsi3): Likewise.
8763
47be3d6d
AS
87642011-03-27 Anatoly Sokolov <aesok@post.ru>
8765
506e6808 8766 * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
47be3d6d 8767 FUNCTION_VALUE_REGNO_P): Remove macros.
506e6808
UB
8768 * config/mips/mips-protos.h (mips_function_value): Remove.
8769 * config/mips/mips.c (mips_function_value): Rename to...
47be3d6d
AS
8770 (mips_function_value_1): ... this. Make static. Handle receiving
8771 the function type in 'fn_decl_or_type' argument.
8772 (mips_function_value, mips_libcall_value,
8773 mips_function_value_regno_p): New function.
8774 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
8775 TARGET_FUNCTION_VALUE_REGNO_P): Define.
8776
d253656a
L
87772011-03-27 H.J. Lu <hongjiu.lu@intel.com>
8778
8779 * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
8780 and -mavx256-split-unaligned-store.
8781 (ix86_option_override_internal): Split 32-byte AVX unaligned
8782 load/store by default.
8783 (ix86_avx256_split_vector_move_misalign): New.
8784 (ix86_expand_vector_move_misalign): Use it.
8785
8786 * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
8787 -mavx256-split-unaligned-store.
8788
8789 * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
8790 256bit load/store. Generate unaligned store on misaligned memory
8791 operand.
8792 (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
8793 256bit load/store.
8794 (*avx_movdqu<avxmodesuffix>): Likewise.
8795
8796 * doc/invoke.texi: Document -mavx256-split-unaligned-load and
8797 -mavx256-split-unaligned-store.
8798
1ea9206a
RS
87992011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
8800
8801 PR target/38598
8802 * config/mips/mips.md (extendsidi2): Add an "l" alternative.
8803 Update commentary.
8804
b99ce2a8
RS
88052011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
8806
8807 * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
8808 opno arguments with an expand_operand. Use create_input_operand.
8809 (mips_prepare_builtin_target): Delete.
8810 (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
8811 functions.
8812 (mips_expand_builtin_direct): Use create_output_operand and
8813 mips_expand_builtin_insn. Update call to mips_prepare_builtin_arg.
8814 (mips_expand_builtin_movtf): Likewise. Use mips_expand_fp_comparison.
8815 (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
8816
69d52339
IR
88172011-03-27 Ira Rosen <ira.rosen@linaro.org>
8818
8819 * config/arm/arm.c (arm_autovectorize_vector_sizes): New
8820 function.
8821 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
8822
ba5e9aca
EB
88232011-03-26 Eric Botcazou <ebotcazou@adacore.com>
8824
8825 * basic-block.h (fixup_abnormal_edges): Adjust prototype.
8826 * reload1.c (reload): Adjust call to fixup_abnormal_edges. Rediscover
8827 basic blocks and call commit_edge_insertions directly.
8828 (fixup_abnormal_edges): Move from here to...
8829 * cfgrtl.c (fixup_abnormal_edges): ...here. Only insert instructions
8830 on the edges and return whether some have actually been inserted.
8831 * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
8832 compensation code.
8833
5d369d58
AB
88342011-03-26 Andrey Belevantsev <abel@ispras.ru>
8835
8836 PR rtl-optimization/48144
8837 * sel-sched-ir.c (merge_history_vect): Factor out from ...
8838 (merge_expr_data): ... here.
8839 (av_set_intersect): Rename to av_set_code_motion_filter.
8840 Update all callers. Call merge_history_vect when an expression
8841 is found in both sets.
8842 * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
8843
f082c000
AM
88442011-03-26 Alan Modra <amodra@gmail.com>
8845
8846 * config/rs6000/predicates.md (word_offset_memref_op): Handle
8847 cmodel medium addresses.
8848 * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
8849 64-bit gpr loads and stores.
8850 (rs6000_secondary_reload_ppc64): New function.
8851 * config/rs6000/rs6000-protos.h: Declare it.
8852 * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
8853
8ac5e12e
AM
88542011-03-26 Alan Modra <amodra@gmail.com>
8855
8856 PR target/47487
8857 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
8858 GNU Go in traceback table.
8859
c2654ded
RH
88602011-03-25 Richard Henderson <rth@redhat.com>
8861
8862 * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
8863 if there are exactly 6 operands.
8864 (set_storage_via_setmem): Similarly.
8865
ba78087b
KT
88662011-03-25 Kai Tietz <ktietz@redhat.com>
8867
8868 * collect2.c (write_c_file_stat): Handle backslash
8869 as right-hand directory separator.
8870 (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
8871 checking just for slash.
8872 * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
8873 instead of checking for trailing slash.
8874 * gcc.c (record_temp_file): Use filename_cmp instead
8875 of strcmp.
8876 (do_spec_1): Likewise.
8877 (replace_outfile_spec_function): Likewise.
8878 (is_directory): Use filename_ncmp instead of strncmp.
8879 (print_multilib_info): Likewise.
8880 * gcov.c (find_source): Use filename_cmp instead
8881 instead of strcmp.
8882 (make_gcov_file_name): Fix order of slash/backslash
8883 checks.
8884 * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
8885 (add_standard_paths): Likewise.
8886 * mips-tfile.c (saber_stop): Handle backslash.
8887 * prefix.c (update_path): Use filename_ncmp instead of
8888 strncmp.
8889 * profile.c (output_location): Use filename_cmp instead
8890 of strcmp.
8891 * read-md.c (handle_toplevel_file): Handle backslash.
8892 * tlink.c (frob_extension): Likewise.
8893 * tree-cfg.c (same_line_p): Use filename_cmp instead of
8894 strcmp.
8895 * tree-dump.c (dequeue_and_dump): Handle backslash.
8896 * tree.c (get_file_function_name): Likewise.
8897 * gengtype.c (read_input_list): Likewise.
8898 (get_file_realbasename): Likewise.
8899 (get_output_file_with_visibility): Use filename_cmp
8900 instead of strcmp.
8901
75f6ec9a
RS
89022011-03-25 Richard Sandiford <richard.sandiford@linaro.org>
8903
8904 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
8905 case to VFPv1.
8906
6c4e2997
NF
89072011-03-25 Nathan Froyd <froydnj@codesourcery.com>
8908
8909 * fold-const.c (expr_location_or): New function.
8910 (fold_truth_not_expr): Call it.
8911
0edf1bb2
JL
89122011-03-25 Jeff Law <law@redhat.com>
8913
8914 * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
8915 va_end.
8916 * c-family/c-common.c (def_fn_type): Likewise.
8917 * ada/gcc-interface/utils.c (def_fn_type): Likewise.
8918 * emit-rtl.c (gen_rtvec): Likewise.
8919 * lto/lto-lang.c (def_fn_type): Likewise.
8920
fdc2de95
RG
89212011-03-25 Richard Guenther <rguenther@suse.de>
8922
8923 * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
8924 also generate copies.
8925 (fini_copy_prop): Handle constant values properly.
8926
21385db0
JJ
89272011-03-25 Jakub Jelinek <jakub@redhat.com>
8928
8929 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
8930 mode size instead of bitsize with DWARF2_ADDR_SIZE.
8931 (hash_loc_operands, compare_loc_operands): Handle
8932 DW_OP_GNU_entry_value.
8933
6510e8bb
KT
89342011-03-25 Kai Tietz <ktietz@redhat.com>
8935
8936 * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
8937 (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
8938 * config/i386/i386.c (ix86_conditional_register_usage): Adjust
8939 comment and use macro TARGET_64BIT_MS_ABI instead.
8940 (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
8941 and change default behavior for 32-bit MS_ABI.
8942 (ix86_reg_parm_stack_space): Check additionally for bit-ness.
8943 (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
8944 32-bit, too.
8945 (ix86_cfun_abi): Likewise.
8946 (ix86_maybe_switch_abi): Adjust comment.
8947 (init_cumulative_args): Check for bit-ness in MS_ABI case.
8948 (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
8949 instead of checking for SYSV_ABI.
8950 (ix86_nsaved_sseregs): Likewise.
8951 (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
8952 to 16 bytes.
8953 (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
8954 * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
8955 (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
8956 (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
8957 * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
8958
34019e28
RG
89592011-03-25 Richard Guenther <rguenther@suse.de>
8960
8961 * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
8962 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
8963 (verify_gimple): Remove.
8964 * tree-cfg.c (verify_gimple_call): Merge verification
8965 from verify_stmts.
8966 (verify_gimple_phi): Merge verification from verify_stmts.
8967 (verify_gimple_label): New function.
8968 (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
8969 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
8970 (verify_stmt): Merge into verify_gimple_in_cfg and callees.
8971 (verify_stmts): Rename to verify_gimple_in_cfg.
8972 (verify_gimple_in_cfg): New function.
8973 * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
8974 * tree-ssa.c (verify_ssa): Likewise.
8975 * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
8976
605896f5
RG
89772011-03-25 Richard Guenther <rguenther@suse.de>
8978
8979 * passes.c (init_optimization_passes): Add FRE pass after
8980 early SRA.
8981
7baa7c13
BS
89822011-03-25 Bernd Schmidt <bernds@codesourcery.com>
8983 Andrew Stubbs <ams@codesourcery.com>
8984
8985 * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
8986 for Cortex-A8.
8987 (arm_movdi_vfp_cortexa8): New pattern.
8988 * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
8989 iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
8990 instructions when tuning for Cortex-A8. Set attribute "arch".
8991 * config/arm/arm.md: Move include arm-tune.md up a bit.
8992 (define_attr "arch"): Add "onlya8" and "nota8" values.
8993 (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
8994
45dbce1b
NF
89952011-03-25 Nathan Froyd <froydnj@codesourcery.com>
8996
4ff08abf 8997 PR bootstrap/48282
45dbce1b
NF
8998 Revert:
8999 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
9000
9001 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
9002 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
9003 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
9004 * passes.c (init_optimization_passes): Move
9005 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
9006
ac9a30ae
KT
90072011-03-25 Kai Tietz <ktietz@redhat.com>
9008
9009 * c-typeck.c (comptypes_internal): Replace target
9010 hook call of comp_type_attributes by version in tree.c file.
9011 * gimple.c (gimple_types_compatible_p_1): Likewise.
9012 * tree-ssa.c (useless_type_conversion_p): Likewise.
9013 * tree.c (build_type_attribute_qual_variant): Likewise.
9014 (attribute_value_equal): New static helper function.
9015 (comp_type_attributes): New function.
9016 (merge_attributes): Use attribute_value_equal for comparison.
9017 (attribute_list_contained): Likewise.
9018 * tree.h (comp_type_attributes): New prototype.
9019
afdac116
RG
90202011-03-25 Richard Guenther <rguenther@suse.de>
9021
9022 * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
9023 of complex types at -O0.
9024 (verify_gimple_assign_binary): Likewise.
9025 (verify_gimple_assign_ternary): Likewise.
9026
ec6165f8
MW
90272011-03-24 Mark Wielaard <mjw@redhat.com>
9028
9029 * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
9030 (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
9031
2a5ac39a
MW
90322011-03-24 Mark Wielaard <mjw@redhat.com>
9033
9034 PR debug/48041
9035 * dwarf2out.c (output_abbrev_section): Only write table when
9036 abbrev_die_table_in_use > 1.
9037
e533b2a4
RH
90382011-02-24 Richard Henderson <rth@redhat.com>
9039
9040 * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
9041 (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
9042 (alpha_expand_unaligned_load_words): Use extql.
9043 (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
9044 (emit_insxl): Handle all modes for consistency.
9045
0b2a7367
RH
90462011-02-24 Richard Henderson <rth@redhat.com>
9047
9048 * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
9049 (alpha_expand_unaligned_load): Likewise.
9050 (alpha_expand_unaligned_store): Likewise.
9051 (alpha_expand_unaligned_load_words): Likewise.
9052 (alpha_expand_unaligned_store_words): Likewise.
9053 (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
9054 (alpha_split_lock_test_and_set_12): Likewise.
9055 (print_operand, alpha_fold_builtin_extxx): Likewise.
9056 (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
9057 * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
9058 (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
9059 (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
9060 (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
9061 (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
9062 (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
9063 (unaligned_storeqi_be, unaligned_storehi_be): Remove.
9064 (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
9065 (extwl, extll, extql): Similarly.
9066 (inswh, inslh, insqh): Similarly.
9067 (mskbl, mskwl, mskll, mskql): Similarly.
9068 (mskwh, msklh, mskqh): Similarly.
9069
315b2bef
RH
90702011-02-24 Richard Henderson <rth@redhat.com>
9071
9072 * config/alpha/alpha.md (attribute isa): Add er, ner.
9073 (attribute enabled): Handle them.
9074 (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
9075
67102517
RH
90762011-02-24 Richard Henderson <rth@redhat.com>
9077
9078 * config/alpha/alpha.md (attribute isa): Add vms.
9079 (attribute enabled): Handle it.
9080 (*movsf): Merge *movsf_{nofix,fix,nofp}.
9081 (*movdf): Merge *movdf_{nofix,fix,nofp}.
9082 (*movtf): Rename from *movtf_internal for consistency.
9083 (*movsi): Merge with *movsi_nt_vms.
9084 (*movhi): Merge *movhi_nobwx, *movhi_bwx.
9085 (*movqi): Merge *movqi_nobwx, *movqi_bwx.
9086 (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
9087 * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
9088
6aba5cb4
RH
90892011-02-24 Richard Henderson <rth@redhat.com>
9090
9091 * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
9092 (extendqisi2, extendhisi2): Likewise.
9093 (extendqidi2): Simplify BWX/non-BWX expansions.
9094 (extendhidi2): Similarly.
9095
bdfb351b
RH
90962011-02-24 Richard Henderson <rth@redhat.com>
9097
9098 * config/alpha/alpha.md (attribute isa): New.
9099 (attribute enabled): New.
9100 (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
9101 (zero_extendqisi2, zero_extendqidi2): Similarly.
9102 (zero_extendhisi2, zero_extendhidi2): Similarly.
9103 * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
9104
6abe71eb
RH
91052011-02-24 Richard Henderson <rth@redhat.com>
9106
9107 * config/alpha/predicates.md (input_operand): Revert last change;
9108 update comment to mention 32-bit VMS rather than Windows.
9109
7114321e
NF
91102011-03-24 Nathan Froyd <froydnj@codesourcery.com>
9111
9112 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
9113 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
9114 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
9115 * passes.c (init_optimization_passes): Move
9116 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
9117
c8679567
EB
91182011-03-24 Eric Botcazou <ebotcazou@adacore.com>
9119
9120 * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
9121
27173058
UB
91222011-03-24 Uros Bizjak <ubizjak@gmail.com>
9123
9124 * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
9125 correctly.
9126
6f0c9f06
JJ
91272011-03-24 Jakub Jelinek <jakub@redhat.com>
9128
9129 PR debug/48204
9130 * simplify-rtx.c (simplify_const_unary_operation): Call
9131 real_convert when changing mode class with FLOAT_EXTEND.
9132
662666e5
NC
91332011-03-24 Nick Clifton <nickc@redhat.com>
9134
9135 * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
9136 (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
9137 * config/rx/rx.c (rx_option_override): Set align_jumps,
9138 align_loops and align_labels if not set by the user.
9139 (rx_align_for_label): New function.
9140 (rx_max_skip_for_label): New function.
9141 (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
9142 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
9143 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
9144 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
9145 * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
9146
2b99b2b8
RS
91472011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
9148
9149 PR rtl-optimization/48263
9150 * optabs.c (expand_binop_directly): Reinstate convert_modes code
9151 and original commutative_p handling. Use maybe_gen_insn.
9152
ccecd6ea
AK
91532011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9154
9155 * reload.c (find_reloads_subreg_address): Add address_reloaded
9156 parameter and return true there if the full address has been
9157 reloaded.
9158 (find_reloads_toplev): Pass address_reloaded flag.
9159 (find_reloads_address_1): Don't use address_reloaded parameter.
9160
67295642
JL
91612011-03-24 Jeff Law <law@redhat.com>
9162
9163 * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
9164 unused variable "ann".
9165 (remove_unused_locals): Likewise.
9166
9167 * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
9168 statement.
9169
9170 * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
9171 after it is freed.
9172
212aa74f
AK
91732011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9174
9175 * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
9176 for invalid symbolic addresses.
9177 (s390_secondary_reload): Don't use s390_check_symref_alignment for
9178 larl operands.
9179
fe784e0d
EB
91802011-03-24 Eric Botcazou <ebotcazou@adacore.com>
9181
9182 * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
9183 the argument in calls to fold_truth_not_expr.
9184
63ee8641
NF
91852011-03-24 Nathan Froyd <froydnj@codesourcery.com>
9186
9187 * tree.c (record_node_allocation_statistics): New function.
9188 (make_node_stat, copy_node_stat, build_string): Call it.
9189 (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
9190 (build1_stat, build_omp_clause): Likewise.
9191
61be2a1c
RS
91922011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
9193
9194 * builtins.c (expand_movstr): Fix endp == 1 adjustment after
9195 last commit.
9196
a881aaa7
RG
91972011-03-24 Richard Guenther <rguenther@suse.de>
9198
9199 PR tree-optimization/48271
9200 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
9201 blocks that still exist.
9202
dbaa912c
RG
92032011-03-24 Richard Guenther <rguenther@suse.de>
9204
9205 PR tree-optimization/48270
9206 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
9207 not free datarefs before ddrs.
9208
1d60cc55
EB
92092011-03-24 Eric Botcazou <ebotcazou@adacore.com>
9210
9211 * tree-sra.c (build_ref_for_offset): Strip useless type conversions
9212 from the address built for a reference with variable offset.
9213
c78dd519
UB
92142011-03-24 Uros Bizjak <ubizjak@gmail.com>
9215
9216 PR target/48237
9217 * config/i386/i386.md (*movdf_internal_rex64): Do not split
9218 alternatives that can be handled with movq or movabsq insn.
9219 (*movdf_internal): Disable for !TARGET_64BIT.
9220 (*movdf_internal_nointeger): Ditto.
9221 * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
9222
b25b9e8f
NF
92232011-03-24 Nathan Froyd <froydnj@codesourcery.com>
9224
9225 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
9226 (FUNCTION_ARG_ADVANCE): Likewise.
9227 * tm.texi.in: Change references to them to hook references.
9228 * tm.texi: Regenerate.
c78dd519 9229 * targhooks.c (default_function_arg): Eliminate check for target macro.
b25b9e8f
NF
9230 (default_function_incoming_arg): Likewise.
9231 (default_function_arg_advance): Likewise.
c78dd519 9232 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
b25b9e8f
NF
9233 (function_arg_advance): Likewise.
9234 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
9235
190b2187
RG
92362011-03-24 Richard Guenther <rguenther@suse.de>
9237
9238 PR middle-end/48269
9239 * tree-object-size.c (addr_object_size): Do not double-account
9240 for MEM_REF offsets.
9241
a183b5c7
DN
92422011-03-24 Diego Novillo <dnovillo@google.com>
9243
9244 * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
c78dd519 9245 * lto-streamer-in.c (input_string_internal): Add clarifying comments.
a183b5c7
DN
9246 (lto_input_data_block): Move from lto-opts.c. Make extern.
9247 Update all users.
9248 (lto_input_string): Rename from input_string. Make extern.
9249 Update all users.
9250 * lto-streamer-out.c (lto_output_string_with_length): Rename from
9251 output_string_with_length.
9252 Output 0 to indicate a non-NULL string. Update all callers to
9253 not emit 0.
9254 (lto_output_string): Rename from output_string. Make extern.
9255 Update all users.
9256 (lto_output_decl_state_streams): Make extern.
9257 (lto_output_decl_state_refs): Make extern.
9258 * lto-streamer.h (lto_input_string): Declare.
9259 (lto_input_data_block): Declare.
9260 (lto_output_string): Declare.
9261 (lto_output_string_with_length): Declare.
9262 (lto_output_decl_state_streams): Declare.
9263 (lto_output_decl_state_refs): Declare.
9264
cfef45c8
RG
92652011-03-24 Richard Guenther <rguenther@suse.de>
9266
9267 PR tree-optimization/46562
9268 * tree.c (build_invariant_address): New function.
9269 * tree.h (build_invariant_address): Declare.
9270 * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
9271 a renamed function moved ...
9272 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
9273 Take valueization callback parameter.
9274 * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
9275 * gimple-fold.h: New file.
9276 * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
9277 (ccp_fold, fold_const_aggregate_ref,
9278 fold_ctor_reference, fold_nonarray_ctor_reference,
9279 fold_array_ctor_reference, fold_string_cst_ctor_reference,
9280 get_base_constructor): Move ...
9281 * gimple-fold.c: ... here.
9282 (gimple_fold_stmt_to_constant_1): New function
9283 split out from ccp_fold. Take a valueization callback parameter.
9284 Valueize all operands.
9285 (gimple_fold_stmt_to_constant): New wrapper function.
9286 (fold_const_aggregate_ref_1): New function split out from
9287 fold_const_aggregate_ref. Take a valueization callback parameter.
9288 (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
9289 * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
9290 invariant POINTER_PLUS_EXPRs to invariant form.
9291 (vn_valueize): New function.
9292 (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
9293 * tree-vrp.c (vrp_valueize): New function.
9294 (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
9295 to fold statements to constants.
9296 * tree-ssa-pre.c (eliminate): Properly guard propagation of
9297 function declarations.
9298 * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
9299 tree-ssa-ccp.o): Add gimple-fold.h dependencies.
9300
5e0a7e40
RS
93012011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
9302
9303 * config/h8300/predicates.md (jump_address_operand): Fix register
9304 mode check.
9305
bfe068c3
IR
93062011-03-24 Ira Rosen <ira.rosen@linaro.org>
9307
9308 * doc/invoke.texi (max-stores-to-sink): Document.
9309 * params.h (MAX_STORES_TO_SINK): Define.
9310 * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
9311 if either vectorization or if-conversion is disabled.
9312 * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
9313 tree-vect-data-refs.c vect_equal_offsets.
9314 (dr_equal_offsets_p): New function.
9315 (find_data_references_in_bb): Remove static.
9316 * tree-data-ref.h (find_data_references_in_bb): Declare.
9317 (dr_equal_offsets_p): Likewise.
9318 * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
9319 (vect_drs_dependent_in_basic_block): Update calls to
9320 vect_equal_offsets.
9321 (vect_check_interleaving): Likewise.
9322 * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
9323 (cond_if_else_store_replacement): Rename to...
9324 (cond_if_else_store_replacement_1): ... this. Change arguments and
9325 documentation.
9326 (cond_if_else_store_replacement): New function.
9327 * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
9328 * params.def (PARAM_MAX_STORES_TO_SINK): Define.
9329
4908b0bf
CLT
93302011-03-23 Chung-Lin Tang <cltang@codesourcery.com>
9331
9332 PR target/46934
9333 * config/arm/arm.md (casesi): Use the gen_int_mode() function
9334 to subtract lower bound instead of GEN_INT().
9335
2be478a2
JW
93362011-03-23 Jonathan Wakely <jwakely.gcc@gmail.com>
9337
9338 PR other/48179
9339 PR other/48221
9340 PR other/48234
9341 * doc/extend.texi (Alignment): Move section to match order in TOC.
9342 * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
9343 (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
9344
0c617be4
JL
93452011-03-23 Jeff Law <law@redhat.com>
9346
9347 * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
9348 before removing the edge.
9349
9350 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
9351 it may have been freed by redirect_branch_edge or
9352 redirect_edge_succ_nodup.
9353
58da96fe
RG
93542011-03-23 Richard Guenther <rguenther@suse.de>
9355
c78dd519 9356 * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
58da96fe
RG
9357 (check_va_list_escapes): Likewise.
9358 (check_all_va_list_escapes): Likewise.
9359
b8beb4d1
RG
93602011-03-23 Richard Guenther <rguenther@suse.de>
9361
9362 * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
9363 (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
9364 (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
9365 (alias.o): Likewise.
9366 (ipa-type-escape.o): Remove.
9367 (ipa-struct-reorg.o): Likewise.
9368 (GTFILES): Remove ipa-struct-reorg.c.
9369 * alias.c: Do not include ipa-type-escape.h.
9370 * tree-ssa-alias.c: Likewise.
9371 * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
9372 * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
9373 * passes.c (init_optimization_passes): Remove ipa-struct-reorg
9374 and ipa-type-escape passes.
9375 * tree-pass.h (pass_ipa_type_escape): Remove.
9376 (pass_ipa_struct_reorg): Likewise.
9377 * ipa-struct-reorg.h: Remove.
9378 * ipa-struct-reorg.c: Likewise.
9379 * ipa-type-escape.h: Likewise.
9380 * ipa-type-escape.c: Likewise.
9381 * doc/invoke.texi (-fipa-struct-reorg): Remove.
9382 (--param struct-reorg-cold-struct-ratio): Likewise.
9383 * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
9384 * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
9385 * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
9386
f137aa63
AK
93872011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9388
9389 * config/s390/2084.md: Enable all insn reservations also for z9_ec
9390 cpu attribute value.
9391 * config/s390/s390-opts.h (enum s390_arch_option): Remove.
9392 (enum processor_type): Add PROCESSOR_2094_Z9_EC.
9393 * config/s390/s390.c (processor_flags_table): New constant array.
9394 (s390_handle_arch_option): Remove.
9395 (s390_handle_option): Remove s390_handle_arch_option invocations
9396 and OPT_mwarn_framesize_ handling.
9397 (s390_option_override): Remove s390_handle_arch_option invocation.
9398 (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
9399 warnings.
9400 * config/s390/s390.md (cpu attribute): Add z9_ec value.
9401 * config/s390/s390.opt (s390_tune, s390_arch)
9402 (march=): Replace s390_arch_option enum and values with
9403 processor_type. Set variable name to s390_arch. Set
9404 initialization value.
9405 (mtune=): Replace s390_arch_option with processor_type. Set
9406 variable name to s390_tune. Set initialization value.
9407
bf90208f
JB
94082011-03-23 Julian Brown <julian@codesourcery.com>
9409
9410 * expr.c (expand_expr_real_1): Only use BLKmode for volatile
9411 accesses which are not naturally aligned.
9412
3460fdf3
RS
94132011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
9414
9415 PR target/47553
9416 * config/arm/predicates.md (neon_lane_number): Accept 0..15.
9417
a5c7d693
RS
94182011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
9419
9420 * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
9421 parameter from "int" to "enum insn_code".
9422 (expand_operand_type): New enum.
9423 (expand_operand): New structure.
9424 (create_expand_operand): New function.
9425 (create_fixed_operand, create_output_operand): Likewise
9426 (create_input_operand, create_convert_operand_to): Likewise.
9427 (create_convert_operand_from, create_address_operand): Likewise.
9428 (create_integer_operand): Likewise.
9429 (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
9430 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
9431 (expand_insn, expand_jump_insn): Likewise.
9432 * builtins.c (expand_builtin_prefetch): Use the new interfaces.
9433 (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
9434 (expand_movstr, expand_builtin___clear_cache): Likewise.
9435 (expand_builtin_lock_release): Likewise.
9436 * explow.c (allocate_dynamic_stack_space): Likewise.
9437 (probe_stack_range): Likewise. Allow check_stack to FAIL,
9438 and use the default handling in that case.
9439 * expmed.c (check_predicate_volatile_ok): Delete.
9440 (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
9441 (emit_cstore): Likewise.
9442 * expr.c (emit_block_move_via_movmem): Likewise.
9443 (set_storage_via_setmem, expand_assignment): Likewise.
9444 (emit_storent_insn, try_casesi): Likewise.
9445 (emit_single_push_insn): Likewise. Allow the expansion to fail.
9446 * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
9447 (expand_vec_shift_expr, expand_binop_directly): Likewise.
9448 (expand_twoval_unop, expand_twoval_binop): Likewise.
9449 (expand_unop_direct, emit_indirect_jump): Likewise.
9450 (emit_conditional_move, vector_compare_rtx): Likewise.
9451 (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
9452 (expand_sync_operation, expand_sync_fetch_operation): Likewise.
9453 (expand_sync_lock_test_and_set): Likewise.
9454 (maybe_emit_unop_insn): Likewise. Change icode to an insn_code.
9455 (emit_unop_insn): Likewise.
9456 (expand_copysign_absneg): Change icode to an insn_code.
9457 (create_convert_operand_from_type): New function.
9458 (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
9459 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
9460 (expand_insn, expand_jump_insn): Likewise.
9461 * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
9462 than const_int_operand for operand 2.
9463
78fadbab
AK
94642011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9465
9466 * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
9467 if possible.
9468
5f02387d
NF
94692011-03-22 Nathan Froyd <froydnj@codesourcery.com>
9470
9471 * emit-rtl.c (emit_pattern_before_noloc): New function.
9472 (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
9473 (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
9474 (emit_pattern_after_noloc): New function.
9475 (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
9476 (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
9477
fdf3e18a
NF
94782011-03-22 Nathan Froyd <froydnj@codesourcery.com>
9479
9480 * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
9481 (__ffsDI2): Likewise.
9482
42d085c1
RH
94832011-03-22 Richard Henderson <rth@redhat.com>
9484
9485 * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
9486 of !TARGET_ABI_OPEN_VMS.
9487 (alpha_trampoline_init, alpha_start_function): Likewise.
9488 (alpha_expand_epilogue, alpha_file_start): Likewise.
9489 * config/alpha/alpha.md (divsi3, modsi3): Likewise.
9490 (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
9491 (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
9492 (*divmodsi_internal, *divmoddi_internal_er): Likewise.
9493 (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
9494
cabbe12a
JM
94952011-03-22 Joseph Myers <joseph@codesourcery.com>
9496
9497 * config/s390/s390-opts.h: New.
9498 * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
9499 s390_arch_flags, s390_warn_framesize, s390_stack_size,
9500 s390_stack_guard): Remove.
9501 (s390_handle_arch_option): Return void. Take enum
9502 s390_arch_option value instead of string and searching array.
9503 (s390_handle_option): Don't assert that global structures are in
9504 use. Access variables via opts pointer. Use error_at. Don't use
9505 sscanf for -mstack-guard= or -mstack-size=. Update call to
9506 s390_handle_arch_option.
9507 (s390_option_override): Update call to s390_handle_arch_option.
9508 (s390_emit_prologue): Use %d format for s390_stack_size in
9509 diagnostic. Use %wd for HOST_WIDE_INT.
9510 * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
9511 (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
9512 * config/s390/s390.opt (config/s390/s390-opts.h): New
9513 HeaderInclude entry.
9514 (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
9515 s390_arch_flags, s390_warn_framesize): New Variable entries.
9516 (s390_arch_option): New Enum and EnumValue entries.
9517 (march=): Use Enum instead of Var.
9518 (mstack-guard=, mstack-size=): Use UInteger and Var.
9519 (mtune=): Use Enum.
9520
05b12036
JM
95212011-03-22 Joseph Myers <joseph@codesourcery.com>
9522
9523 * config/score/score.c (score_handle_option): Don't assert that
9524 global structures are in use. Access target_flags via opts
9525 pointer. Use value of -march= option to determine target_flags
9526 settings.
9527 * config/score/score.opt (march=): Use Enum.
9528 (score_arch): New Enum and EnumValue entries.
9529
dd51e35a
JM
95302011-03-22 Joseph Myers <joseph@codesourcery.com>
9531
9532 * config/mep/mep.c (option_mtiny_specified): Remove.
9533 (mep_option_override): Move register handling for -mivc2 from
9534 mep_handle_option. Use global_options_set.x_mep_tiny_cutoff
9535 instead of option_mtiny_specified.
9536 (mep_handle_option): Access target_flags via opts pointer. Don't
9537 assert that global structures are in use. Defer part of -mivc2
9538 handling and move it to mep_option_override.
9539 * config/mep/mep.opt (IVC2): New Mask entry.
9540 (mivc2): Use Var and Defer instead of Mask.
9541
4a8d3d91
JM
95422011-03-22 Joseph Myers <joseph@codesourcery.com>
9543
9544 * config/v850/v850-opts.h: New.
9545 * config/v850/v850.c (small_memory): Replace with
9546 small_memory_physical_max array. Make that array static const.
9547 (v850_handle_memory_option): Take integer value of argument. Take
9548 gcc_options pointer, option text and location. Return void.
9549 Update for changes to small memory structures.
9550 (v850_handle_option): Access target_flags via opts pointer. Don't
9551 assert that global structures are in use. Update calls to
9552 v850_handle_memory_option.
c78dd519
UB
9553 (v850_encode_data_area): Update references to small memory settings.
9554 * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
4a8d3d91
JM
9555 (enum small_memory_type): Move to v850-opts.h.
9556 * config/v850/v850.opt (config/v850/v850-opts.h): New
9557 HeaderInclude entry.
9558 (small_memory_max): New Variable entry.
9559 (msda): Replace by pair of options msda= and msda-. Use UInteger.
9560 (mtda, mzda): Likewise.
9561
117fdbfa
JM
95622011-03-22 Joseph Myers <joseph@codesourcery.com>
9563
9564 * config/sh/sh.c (sh_handle_option): Access target_flags via opts
9565 pointer. Don't assert that global structures are in use.
9566
d715091c
JM
95672011-03-22 Joseph Myers <joseph@codesourcery.com>
9568
9569 * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
9570 via opts pointer. Don't assert that global structures are in use.
9571
1bb721dc
JM
95722011-03-22 Joseph Myers <joseph@codesourcery.com>
9573
9574 * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
9575 (munix=93): Use Var.
9576 * config/pa/pa-hpux1010.opt (munix=95): Use Var.
9577 * config/pa/pa-hpux1111.opt (munix=98): Use Var.
9578 * config/pa/pa-opts.h: New.
9579 * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
9580 (pa_handle_option): Don't assert that global structures are in
9581 use. Access target_flags via opts pointer. Don't handle
9582 OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
9583 OPT_munix_98 here.
9584 (pa_option_override): Handle deferred OPT_mfixed_range_.
9585
cd8d8754
JM
95862011-03-22 Joseph Myers <joseph@codesourcery.com>
9587
9588 * config/mn10300/mn10300-opts.h: New.
9589 * config/mn10300/mn10300.c (mn10300_processor,
9590 mn10300_tune_string): Remove.
9591 (mn10300_handle_option): Don't assert that global structures are
9592 in use. Access mn10300_processor via opts pointer. Don't handle
9593 OPT_mtune_ here.
9594 * config/mn10300/mn10300.h (enum processor_type): Move to
9595 mn10300-opts.h.
9596 (mn10300_processor): Remove.
9597 * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
9598 HeaderInclude entry.
9599 (mn10300_processor): New Variable entry.
9600 (mtune=): Use Var.
9601
24e6e6b1
JM
96022011-03-22 Joseph Myers <joseph@codesourcery.com>
9603
9604 * config/microblaze/microblaze.c: Don't include opts.h.
9605 (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
9606 * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
9607 (mno-clearbss): Use Var and Warn.
9608
8a784afb
JM
96092011-03-22 Joseph Myers <joseph@codesourcery.com>
9610
9611 * config/m32r/m32r-opts.h: New.
9612 * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
9613 (m32r_handle_option): Don't assert that global structures are in
9614 use. Access target_flags and m32r_cache_flush_func via opts
9615 pointer. Don't handle OPT_mmodel_, OPT_msdata_ or
9616 OPT_mno_flush_trap here.
9617 * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
9618 include of m32r-opts.h.
9619 * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
9620 HeaderInclude entry.
9621 (m32r_model_selected, m32r_sdata_selected): New Variable entries.
9622 (mmodel=): Use Enum and Var.
9623 (m32r_model): New Enum and EnumValue entries.
9624 (mno-flush-trap): Use Var.
9625 (msdata=): Use Enum and Var.
9626 (m32r_sdata): New Enum and EnumValue entries.
9627
bbfc9a8c
JM
96282011-03-22 Joseph Myers <joseph@codesourcery.com>
9629
9630 * config/m32c/m32c.c: Don't include opts.h.
9631 (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
9632 m32c_handle_option): Remove.
9633 (m32c_option_override): Check global_options_set.x_target_memregs
9634 instead of target_memregs_set.
9635 * config/m32c/m32c.h (target_memregs): Remove.
9636 * config/m32c/m32c.opt (memregs=): Use UInteger with integer
9637 variable.
9638
e24b8335
JM
96392011-03-22 Joseph Myers <joseph@codesourcery.com>
9640
9641 * config/iq2000/iq2000-opts.h: New.
9642 * config/iq2000/iq2000.c: Don't include opts.h.
9643 (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
c78dd519 9644 * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
e24b8335
JM
9645 * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
9646 HeaderInclude entry.
9647 (iq2000_tune): New Variable entry.
9648 (march=): Add comment. Use Enum.
9649 (iq2000_arch): New Enum and EnumValue entries.
9650 (mcpu=): Use Enum and Var.
9651 (iq2000_tune): New Enum and EnumValue entries.
9652
e6cc0c98
JM
96532011-03-22 Joseph Myers <joseph@codesourcery.com>
9654
9655 * config/ia64/ia64-opts.h: New.
9656 * config/ia64/ia64.c (ia64_tune): Remove.
9657 (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
9658 here. Use error_at.
9659 (ia64_option_override): Handle deferred OPT_mfixed_range_.
9660 * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
9661 * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
9662 HeaderInclude entry.
9663 (ia64_tune): New Variable entry.
9664 (mfixed-range=): Use Defer and Var.
9665 (mtune=): Use Enum and Var.
9666 (ia64_tune): New Enum and EnumValue entries.
9667
db25893c
JM
96682011-03-22 Joseph Myers <joseph@codesourcery.com>
9669
9670 * config/frv/frv-opts.h: New.
9671 * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
9672 frv-opts.h.
9673 (frv_cpu_type): Remove.
9674 * config/frv/frv.c: Don't include opts.h.
9675 (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
c78dd519 9676 * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
db25893c
JM
9677 (frv_cpu_type): New Variable entry.
9678 (frv_cpu): New Enum and EnumValue entries.
9679
6c223f5d
JM
96802011-03-22 Joseph Myers <joseph@codesourcery.com>
9681
9682 * config/cris/cris.c (cris_handle_option): Access target_flags via
9683 opts pointer. Don't assert that global structures are in use.
9684 Don't call CRIS_SUBTARGET_HANDLE_OPTION.
9685 * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
9686
bbd399cf
JM
96872011-03-22 Joseph Myers <joseph@codesourcery.com>
9688
9689 * config/bfin/bfin-opts.h: New.
9690 * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
9691 bfin_si_revision, bfin_workarounds): Remove.
9692 (bfin_cpus): Make static const.
9693 (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
9694 not bfin_lib_id_given.
9695 (bfin_handle_option): Don't set bfin_lib_id_given. Access
9696 bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
c78dd519 9697 pointer. Use error_at. Don't assert that global structures are in use.
bbd399cf
JM
9698 * config/bfin/bfin.h: Include bfin-opts.h.
9699 (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
9700 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
9701 * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
9702 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
9703 entries.
9704
5e1b4d5a
JM
97052011-03-22 Joseph Myers <joseph@codesourcery.com>
9706
9707 * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
9708 * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
9709 or -msoft-float here.
9710 * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
9711 -msoft-float and -mhard-float.
c78dd519 9712 (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
5e1b4d5a
JM
9713 * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
9714 msoft-float.
9715 * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
9716 -msoft-float.
9717 (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
9718 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
9719 not mhard-float.
9720 (LIBGCC_SPEC): Don't handle -msoft-float.
9721 * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
9722 -mhard-float.
9723 * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
9724 msoft-float.
9725 * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
9726 -mfloat-abi=*, not -msoft-float and -mhard-float.
9727 * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
9728 -msoft-float.
9729 * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
9730 Use mfloat-abi=hard and mfloat-abi=soft in comments, not
9731 mhard-float and msoft-float.
9732 * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
9733 mfloat-abi=soft in comments, not mhard-float and msoft-float.
9734 * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
9735 mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
9736 mhard-float.
9737 * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
9738 mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
9739 msoft-float.
9740 * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
9741 not mhard-float.
9742 * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
9743 not msoft-float.
9744
800d1de1
RH
97452011-03-22 Richard Henderson <rth@redhat.com>
9746
9747 * config/alpha/alpha.c (alpha_expand_prologue): Don't test
9748 TARGET_ABI_WINDOWS_NT.
9749 (alpha_output_function_end_prologue): Likewise.
9750 * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
9751 (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
9752 * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
9753 (trap, *movsi_nt_vms): Likewise.
9754 (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
9755 (*tablejump_osf_nt_internal): Remove.
9756 * config/alpha/predicates.md (input_operand): Only test Pmode.
9757
c59ddd2b
JM
97582011-03-22 Joseph Myers <joseph@codesourcery.com>
9759
9760 * config/alpha/alpha.c (alpha_handle_option): Access target_flags
9761 via opts pointer. Use error_at. Don't assert that global
9762 structures are in use.
9763
1333f97f
JM
97642011-03-22 Joseph Myers <joseph@codesourcery.com>
9765
9766 * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
9767 (ix86_handle_option): Access ix86_isa_flags and
9768 ix86_isa_flags_explicit via opts pointer. Don't assert that
9769 global structures are in use.
9770 (ix86_function_specific_save, ix86_function_specific_restore):
9771 Update ix86_isa_flags_explicit field name.
c78dd519 9772 * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
1333f97f
JM
9773 (ix86_isa_flags_explicit): Rename TargetSave entry to
9774 x_ix86_isa_flags_explicit.
9775
75db85d8
RH
97762011-03-22 Richard Henderson <rth@redhat.com>
9777
9778 * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
9779 (alpha_option_override, direct_return): Likewise.
9780 (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
9781 (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
9782 (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
9783 (alpha_start_function, alpha_output_function_end_prologue): Likewise.
9784 (alpha_expand_epilogue, alpha_end_function): Likewise.
9785 (alpha_init_libfuncs): Likewise.
9786 (struct machine_function): Remove unicosmk members.
9787 (print_operand) ['t']: Remove.
9788 (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
9789 unicosmk_output_module_name, unicosmk_output_common,
9790 current_section_align, unicosmk_output_text_section_asm_op,
9791 unicosmk_output_data_section_asm_op, unicosmk_init_sections,
9792 unicosmk_section_type_flags, unicosmk_unique_section,
9793 unicosmk_asm_named_section, unicosmk_insert_attributes,
9794 unicosmk_output_align, unicosmk_defer_case_vector,
9795 unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
9796 SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
9797 unicosmk_output_ssib, unicosmk_add_call_info_word,
9798 unicosmk_extern_head, unicosmk_output_default_externs,
9799 unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
9800 unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
9801 unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
9802 * config/alpha/alpha-protos.h: Update.
9803 * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
9804 * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
9805 (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
9806 (mulsi3): Don't test TARGET_ABI_UNICOSMK.
9807 (*mulsi_se, mulvsi3): Likewise.
9808 (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
9809 (*divmodsi_internal, call, call_value, realign): Likewise.
9810 (moddi3, umoddi3): Likewise; remove duplicate expander.
9811 (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
9812 (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
9813 (*movdi_nofix): Remove r/U alternative.
9814 (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
9815 * config/alpha/constraints.md ("U"): Remove.
9816 * config/alpha/predicates.md (call_operand"): Don't test
9817 TARGET_ABI_UNICOSMK.
9818
96e45421
JM
98192011-03-22 Joseph Myers <joseph@codesourcery.com>
9820
9821 * target.def (handle_option): Take gcc_options and
9822 cl_decoded_option pointers and location_t.
9823 * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
9824 * doc/tm.texi: Regenerate.
9825 * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
9826 * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
9827 * lto-opts.c (lto_reissue_options): Generate option structure for
9828 targetm.handle_option call.
9829 * opts.c (target_handle_option): Update call to
9830 targetm.handle_option. Remove assertions about values now passed
9831 down to hook.
9832 * targhooks.c (default_target_handle_option): New.
9833 * targhooks.h (default_target_handle_option): Declare.
9834 * config/alpha/alpha.c: Include opts.h.
9835 (alpha_handle_option): Update to new hook interface.
9836 * config/arm/arm.c: Include opts.h.
9837 (arm_handle_option): Update to new hook interface.
9838 * config/arm/t-arm (arm.o): Update dependencies.
9839 * config/bfin/bfin.c: Include opts.h.
9840 (bfin_handle_option): Update to new hook interface.
9841 * config/cris/cris.c: Include opts.h.
9842 (cris_handle_option): Update to new hook interface.
9843 * config/frv/frv.c: Include opts.h.
9844 (frv_handle_option): Update to new hook interface.
9845 * config/i386/i386.c: Include opts.h.
9846 (ix86_handle_option): Update to new hook interface.
9847 (ix86_valid_target_attribute_inner_p): Generate option structure
9848 for call to ix86_handle_option.
9849 * config/i386/t-i386 (i386.o): Update dependencies.
9850 * config/ia64/ia64.c: Include opts.h.
9851 (ia64_handle_option): Update to new hook interface.
9852 * config/ia64/t-ia64 (ia64.o): Update dependencies.
9853 * config/iq2000/iq2000.c: Include opts.h.
9854 (iq2000_handle_option): Update to new hook interface.
9855 * config/m32c/m32c.c: Include opts.h.
9856 (m32c_handle_option): Update to new hook interface.
9857 * config/m32r/m32r.c: Include opts.h.
9858 (m32r_handle_option): Update to new hook interface.
9859 * config/m68k/m68k.c: Include opts.h.
9860 (m68k_handle_option): Update to new hook interface.
9861 * config/mep/mep.c: Include opts.h.
9862 (mep_handle_option): Update to new hook interface.
9863 * config/microblaze/microblaze.c: Include opts.h.
9864 (microblaze_handle_option): Update to new hook interface.
9865 * config/mips/mips.c: Include opts.h.
9866 (mips_handle_option): Update to new hook interface.
9867 * config/mn10300/mn10300.c: Include opts.h.
9868 (mn10300_handle_option): Update to new hook interface.
9869 * config/pa/pa.c: Include opts.h.
9870 (pa_handle_option): Update to new hook interface.
9871 * config/pdp11/pdp11.c: Include opts.h.
9872 (pdp11_handle_option): Update to new hook interface.
9873 * config/rs6000/rs6000.c: Include opts.h.
9874 (rs6000_handle_option): Update to new hook interface.
9875 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
9876 * config/rx/rx.c: Include opts.h.
9877 (rx_handle_option): Update to new hook interface.
9878 * config/s390/s390.c: Include opts.h.
9879 (s390_handle_option): Update to new hook interface.
9880 * config/score/score.c: Include opts.h.
9881 (score_handle_option): Update to new hook interface.
9882 * config/sh/sh.c: Include opts.h.
9883 (sh_handle_option): Update to new hook interface.
9884 * config/sparc/sparc.c: Include opts.h.
9885 (sparc_handle_option): Update to new hook interface.
9886 * config/v850/v850.c: Include opts.h.
9887 (v850_handle_option): Update to new hook interface.
9888
66017846
JM
98892011-03-22 Joseph Myers <joseph@codesourcery.com>
9890
9891 * gcc.c (driver_unknown_option_callback): Only permit and save
9892 unknown -Wno- options.
9893 (driver_wrong_lang_callback): Save options directly instead of via
9894 driver_unknown_option_callback.
9895
e8b97ccd
EB
98962011-03-22 Eric Botcazou <ebotcazou@adacore.com>
9897
9898 * combine.c (simplify_set): Try harder to find the best CC mode when
9899 simplifying a nested COMPARE on the RHS.
9900
ebb9f8b0
JM
99012011-03-22 Joseph Myers <joseph@codesourcery.com>
9902
9903 * config/alpha/gnu.h: Remove.
9904 * config/arc: Remove directory.
9905 * config/arm/netbsd.h: Remove.
9906 * config/arm/t-pe: Remove.
9907 * config/crx: Remove directory.
9908 * config/i386/netbsd.h: Remove.
9909 * config/m68hc11: Remove directory.
9910 * config/m68k/uclinux-oldabi.h: Remove.
9911 * config/mcore/mcore-pe.h: Remove.
9912 * config/mcore/t-mcore-pe: Remove.
9913 * config/netbsd-aout.h: Remove.
9914 * config/rs6000/gnu.h: Remove.
9915 * config/sh/sh-symbian.h: Remove.
9916 * config/sh/symbian-base.c: Remove.
9917 * config/sh/symbian-c.c: Remove.
9918 * config/sh/symbian-cxx.c: Remove.
9919 * config/sh/symbian-post.h: Remove.
9920 * config/sh/symbian-pre.h: Remove.
9921 * config/sh/t-symbian: Remove.
9922 * config/svr3.h: Remove.
9923 * config/vax/netbsd.h: Remove.
9924 * config.build: Don't handle i[34567]86-*-pe.
9925 * config.gcc: Remove handling of deprecations for most deprecated
9926 targets.
9927 (m68k-*-uclinuxoldabi*): Add to second deprecated list.
9928 (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
9929 i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
9930 m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
9931 powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
9932 sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
9933 Remove cases.
9934 * config.host: Don't handle i[34567]86-*-pe.
9935 * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
9936 (ASM_SPEC32): Don't handle -mcall-gnu.
9937 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
9938 -mcall-gnu.
9939 (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
9940 STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
9941 (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
9942 LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
9943 (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
9944 * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
9945 conditional on SYMBIAN.
9946 * configure.ac: Don't handle powerpc*-*-gnu*.
9947 * configure: Regenerate.
9948 * doc/extend.texi (interrupt attribute): Don't mention CRX.
9949 * doc/install-old.texi (m6811, m6812): Don't mention.
9950 * doc/install.texi (arc-*-elf*): Don't document multilib option.
9951 (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
9952 (m68k-uclinuxoldabi): Don't mention.
9953 * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
9954 Remove.
9955 (-mcall-gnu): Remove.
9956 * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
9957 families): Remove constraint documentation.
9958
999a7d80
MS
99592011-03-22 Marius Strobl <marius@FreeBSD.org>
9960
9961 * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
9962 (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
9963 (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
9964
45540bcf
MM
99652011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
9966
9967 PR target/48226
9968 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
9969 vector when peeking at the next token for vector, don't expand the
9970 keywords.
9971
980a0ff4
GJL
99722011-03-21 Georg-Johann Lay <avr@gjlay.de>
9973
9974 * config/avr/avr-protos.h (expand_epilogue): Change prototype
9975 * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
9976 * config/avr/avr.c (init_cumulative_args)
9977 (avr_function_arg_advance): Use it.
9978 * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
9979 sibcall epilogues.
9980 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
9981 (avr_function_ok_for_sibcall): ...this new function.
9982 (avr_lookup_function_attribute1): New static Function.
9983 (avr_naked_function_p, interrupt_function_p)
9984 (signal_function_p, avr_OS_task_function_p)
9985 (avr_OS_main_function_p): Use it.
9986 * config/avr/avr.md ("sibcall", "sibcall_value")
9987 ("sibcall_epilogue"): New expander.
9988 ("*call_insn", "*call_value_insn"): New insn.
9989 ("call_insn", "call_value_insn"): Remove
9990 ("call", "call_value", "epilogue"): Change expander to handle
9991 sibling calls.
9992
49168734
NC
99932011-03-21 Nick Clifton <nickc@redhat.com>
9994
9995 * doc/invoke.texi (Overall Options): Move closing brace to end of
9996 options list.
9997 (Optimization Options): Add missing @gol.
9998 (Directory Options): Likewise.
9999 (i386 and x86-64 Options): Likewise.
10000 (RS6000 and PowerPC Options): Likewise.
10001 (i386 and x86-64 Windows Options): Likewise.
10002 (V850 Options): Add text missing from descriptions.
10003
bdfe906f
RH
100042011-03-22 Richard Henderson <rth@redhat.com>
10005
10006 * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
10007 (avr_incoming_return_addr_rtx): New.
10008 (emit_push_byte): New.
10009 (expand_prologue): Use it. Remove incorrect dwarf annotation for
10010 SREG, RAMPZ, zero register. Push frame pointer by bytes. Add dwarf
10011 annotation for __prologue_saves__. Fixup dwarf annotation for CFA.
10012 (emit_pop_byte): New.
10013 (expand_epilogue): Use it. Pop frame pointer by bytes.
10014 * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
10015 (INCOMING_RETURN_ADDR_RTX): New.
10016 (INCOMING_FRAME_SP_OFFSET): New.
10017 (ARG_POINTER_CFA_OFFSET): New.
10018 * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
10019 (*pushhi, *pushsi, *pushsf, popqi): Likewise.
10020 (pophi): Remove.
10021
d090a5aa
RH
10022 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
10023
fdf3e18a
NF
100242011-03-22 Nathan Froyd <froydnj@codesourcery.com>
10025
10026 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
10027 (FUNCTION_ARG_ADVANCE): Likewise.
10028 * tm.texi.in: Change references to them to hook references.
10029 * tm.texi: Regenerate.
10030 * targhooks.c (default_function_arg): Eliminate check for target
10031 macro.
10032 (default_function_incoming_arg): Likewise.
10033 (default_function_arg_advance): Likewise.
c78dd519 10034 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
fdf3e18a
NF
10035 (function_arg_advance): Likewise.
10036 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
10037
009d3fcf
NF
100382011-03-22 Nathan Froyd <froydnj@codesourcery.com>
10039
10040 * tree.c (build_call_1): New function.
10041 (build_call_valist, build_call_array_loc, build_call_vec): Call it.
10042
7bec30e1
RG
100432011-03-22 Richard Guenther <rguenther@suse.de>
10044
10045 PR tree-optimization/48228
10046 * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
10047 for single-arg PHIs.
10048
0b7e851b
AB
100492011-03-22 Andrey Belevantsev <abel@ispras.ru>
10050
10051 PR rtl-optimization/48143
10052 * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
10053 (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
10054 sse2_cvtps2pd): Likewise.
10055
d89afca5
AK
100562011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10057
10058 * recog.c (canonicalize_change_group): Use validate_unshare_change.
10059
f471fe72
RG
100602011-03-22 Richard Guenther <rguenther@suse.de>
10061
10062 * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
10063 a valid RHS. Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
10064 * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
10065 and REALIGN_LOAD_EXPR.
10066 (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
10067 DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
10068 * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
10069 DOT_PROD_EXPR case ...
10070 (expand_expr_real_2): ... here.
10071 * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
10072 and REALIGN_LOAD_EXPR.
10073 * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
10074 * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
10075 (vect_create_epilog_for_reduction): Likewise.
10076 (vectorizable_reduction): Likewise.
10077 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
10078 * tree-vect-stmts.c (vectorizable_load): Likewise.
10079
f2f81d57
EB
100802011-03-22 Eric Botcazou <ebotcazou@adacore.com>
10081
10082 * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
10083
ab081dd6
AK
100842011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10085
10086 * config/s390/s390.c (s390_delegitimize_address): Fix offset
10087 handling for PLTOFF/GOTOFF.
10088
6fd5332b
NC
100892011-03-22 Nick Clifton <nickc@redhat.com>
10090
10091 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
10092 trailing backslash from the end of the macro definition.
10093
01841ac0
AK
100942011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10095
10096 * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
10097 and PLT unspecs.
10098
2ef6ce06
RS
100992011-03-21 Richard Sandiford <richard.sandiford@linaro.org>
10100
10101 * expr.h (prepare_operand): Move to...
10102 * optabs.h (prepare_operand): ...here and change the insn code
10103 parameter from "int" to "enum insn_code".
10104 (insn_operand_matches): Declare.
10105 * expr.c (init_expr_target): Use insn_operand_matches.
10106 (compress_float_constant): Likewise.
10107 * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
10108 * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
10109 (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
c78dd519
UB
10110 (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
10111 Likewise.
2ef6ce06
RS
10112 (gen_cond_trap): Likewise.
10113 (prepare_operand): Likewise. Change icode to an insn_code.
10114 (insn_operand_matches): New function.
10115 * reload.c (find_reloads_address_1): Use insn_operand_matches.
10116 * reload1.c (gen_reload): Likewise.
10117 * targhooks.c (default_secondary_reload): Likewise.
10118
9e43ad68
UB
101192011-03-21 Uros Bizjak <ubizjak@gmail.com>
10120
9a96da32
UB
10121 * config/alpha/alpha.md (unspec): New define_c_enum.
10122 (unspecv): Ditto.
10123
101242011-03-21 Uros Bizjak <ubizjak@gmail.com>
10125
10126 PR debug/48214
9e43ad68
UB
10127 * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
10128 between a call and its CALL_ARG_LOCATION note.
10129
31408f60
EB
101302011-03-21 Eric Botcazou <ebotcazou@adacore.com>
10131
10132 * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
10133
101342011-03-21 Jakub Jelinek <jakub@redhat.com>
126e6609
JJ
10135
10136 PR c/42544
10137 PR c/48197
10138 * c-common.c (shorten_compare): If primopN is first sign-extended
10139 to opN and then zero-extended to result type, set primopN to opN.
10140
9dfd55f5
DJ
101412011-03-21 Daniel Jacobowitz <dan@codesourcery.com>
10142
10143 * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
10144 for barrier handlers.
10145
f3c33d9d
MM
101462011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
10147
10148 * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
10149 UNSPEC constants to be in the unspec enumeration, and redefine
10150 all UNSPECV constants to be in the unspecv enumeration, so that
10151 dumps print which unspec/unspec_volatile this is.
10152 * config/rs6000/vector.md (UNSPEC_*): Ditto.
10153 * config/rs6000/paired.md (UNSPEC_*): Ditto.
10154 * config/rs6000/vsx.md (UNSPEC_*): Ditto.
10155 * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
10156 * config/rs6000/dfp.md (UNSPEC_*): Ditto.
10157
10158 * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
10159 UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
10160 UNSPECV_LWSYNC, since these are used as unspec_volatile.
10161 * config/rs6000/sync.md (isync, lwsync): Ditto.
10162
ac43f774
RG
101632011-03-21 Richard Guenther <rguenther@suse.de>
10164
10165 * params.def (lto-min-partition): Fix typo.
10166
411cdbd8
RG
101672011-03-21 Richard Guenther <rguenther@suse.de>
10168
10169 PR c/47939
10170 * c-decl.c (grokdeclarator): Drop to the main variant only
10171 for array types. Drop flag_gen_aux_info check.
10172
1cd9e416
RG
101732011-03-21 Richard Guenther <rguenther@suse.de>
10174
10175 PR translation/47911
10176 * params.def (lto-partitions): Fix typo.
10177 (lto-min-partition): Fix wording.
10178
ada5ad67
AT
101792011-03-21 Andreas Tobler <andreast@fgznet.ch>
10180
10181 * config/rs6000/t-freebsd: Remove duplication from file.
10182
f9613c9a
RG
101832011-03-21 Richard Guenther <rguenther@suse.de>
10184
10185 PR middle-end/47661
10186 * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
10187
9bfbc1eb
RG
101882011-03-21 Richard Guenther <rguenther@suse.de>
10189
10190 PR lto/48210
10191 * params.def (lto-partitions): Require at least 1 partition.
10192
a2268084
RO
101932011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10194
10195 * gthr-solaris.h: Remove.
10196 * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
10197 * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
10198 (LIB_SPEC): Likewise.
10199 * config/sol2.opt (threads): Remove.
9e43ad68 10200 * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
a2268084
RO
10201 (sparc*-*-solaris2*): Likewise.
10202 * configure.ac (enable_threads): Enable solaris support.
10203 * configure: Regenerate.
9e43ad68 10204 * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
a2268084
RO
10205 * doc/install.texi (Configuration, --enable-threads=lib): Remove
10206 solaris.
10207
c43d9a1b
RO
102082011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10209
10210 * config.gcc: Obsolete *-*-solaris2.8*.
10211 * doc/install.texi (Specific, *-*-solaris2*): Document it.
10212
084239f4
RO
102132011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10214
10215 PR bootstrap/48135
10216 * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
10217 reference. Solaris 8 perl works.
10218
64cadbe7
RO
102192011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10220
10221 PR bootstrap/48135
10222 * doc/install.texi (Prerequisites): Move jar etc. up.
10223 Explain support library version requirements.
10224
eb975109
RO
102252011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10226
10227 PR bootstrap/48135
10228 * doc/install.texi (Prerequisites): Move Perl to build
10229 requirements. Always necessary on Solaris 2 with Sun ld.
10230
8a509ffd
RO
102312011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10232
10233 * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
10234 binutils 2.21.
10235 (Specific, i?86-*-solaris2.[89]): Likewise.
10236 (Specific, i?86-*-solaris2.10): Likewise.
10237 (Specific, mips-sgi-irix6): Likewise.
10238 (Specific, *-*-solaris2*): Remove Sun Studio download URL.
10239 Update for binutils 2.21.
10240
8fbc58a1
RO
102412011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10242
10243 * configure.ac (gcc_cv_lto_plugin): Fix typo.
10244 Allow -fuse-linker-plugin for non-default plugin linker.
10245 * configure: Regenerate.
10246
7e84ad0b
NP
102472011-03-21 Nicola Pero <nicola.pero@meta-innovation.com>
10248
10249 PR bootstrap/48167
10250 * gengtype.c (files_rules): Added rule for cp/parser.h.
10251
2f36e14b
JJ
102522011-03-21 Jakub Jelinek <jakub@redhat.com>
10253
10254 PR target/48213
10255 * config/s390/s390.c (s390_delegitimize_address): Don't call
10256 lowpart_subreg if orig_x has BLKmode.
10257
62d784f7
KT
102582011-03-21 Kai Tietz <ktietz@redhat.com>
10259
10260 PR target/12171
9e43ad68
UB
10261 * doc/plugins.texi: Adjust documentation for plugin register_callback.
10262 * tree.h (attribute_spec): Add new member affects_type_identity.
10263 * attribs.c (empty_attribute_table): Adjust attribute_spec
10264 initializers.
62d784f7
KT
10265 * config/alpha/alpha.c: Likewise.
10266 * config/arc/arc.c: Likewise.
10267 * config/arm/arm.c: Likewise.
10268 * config/avr/avr.c: Likewise.
10269 * config/bfin/bfin.c: Likewise.
10270 * config/crx/crx.c: Likewise.
10271 * config/darwin.h: Likewise.
10272 * config/h8300/h8300.c: Likewise.
10273 * config/i386/cygming.h: Likewise.
10274 * config/i386/i386.c: Likewise.
10275 * config/ia64/ia64.c: Likewise.
10276 * config/m32c/m32c.c: Likewise.
10277 * config/m32r/m32r.c: Likewise.
10278 * config/m68hc11/m68hc11.c: Likewise.
10279 * config/m68k/m68k.c: Likewise.
10280 * config/mcore/mcore.c: Likewise.
10281 * config/mep/mep.c: Likewise.
10282 * config/microblaze/microblaze.c: Likewise.
10283 * config/mips/mips.c: Likewise.
10284 * config/rs6000/rs6000.c: Likewise.
10285 * config/rx/rx.c: Likewise.
10286 * config/sh/sh.c: Likewise.
10287 * config/sol2.h: Likewise.
10288 * config/sparc/sparc.c: Likewise.
10289 * config/spu/spu.c: Likewise.
10290 * config/stormy16/stormy16.c: Likewise.
10291 * config/v850/v850.c: Likewise.
10292
54833ec0
CLT
102932011-03-21 Chung-Lin Tang <cltang@codesourcery.com>
10294
10295 * simplify-rtx.c (simplify_binary_operation_1): Handle
10296 (xor (and A B) C) case when B and C are both constants.
10297
14a41392
MX
102982011-03-21 Mingjie Xing <mingjie.xing@gmail.com>
10299
10300 * tree-dfa.c (add_referenced_var): Fix typo in comment.
10301
806c3492
EB
103022011-03-20 Eric Botcazou <ebotcazou@adacore.com>
10303
10304 PR bootstrap/48168
10305 * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
10306
65e0a0f3
JJ
103072011-03-20 Jakub Jelinek <jakub@redhat.com>
10308
10309 PR rtl-optimization/48156
10310 * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
10311 assume df and df_lr are not NULL.
10312
b6a75dda
RR
103132011-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
10314
10315 PR debug/48023
10316 * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
10317 between a call and its CALL_ARG_LOCATION note.
10318
5969b52d
KK
103192011-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
10320
10321 PR debug/48178
10322 * config/sh/sh.c (find_barrier): Don't emit a constant pool
10323 between a call and its corresponding CALL_ARG_LOCATION note.
10324
f773c2bd
AS
103252011-03-19 Anatoly Sokolov <aesok@post.ru>
10326
10327 * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
10328 instead of loop. Use HARD_REGISTER_NUM_P predicate.
10329 * haifa-sched.c (setup_ref_regs): Ditto.
10330 * caller-save.c (add_used_regs_1): Ditto.
10331 * dse.c (look_for_hardregs): Ditto.
10332 * df-problems.c (df_simulate_one_insn_forwards): Ditto.
10333 * sched-rgn.c (check_live_1): Ditto.
10334
8bf872f9
JM
103352011-03-18 Joseph Myers <joseph@codesourcery.com>
10336
10337 * c-decl.c (diagnose_mismatched_decls): Give an error for
10338 redefining a typedef with variably modified type.
10339
ff8e2159
JM
103402011-03-18 Joseph Myers <joseph@codesourcery.com>
10341
10342 * c-decl.c (grokfield): Don't allow typedefs for structures or
10343 unions with no tag by default.
10344 * doc/extend.texi (Unnamed Fields): Update.
10345
16cc4440
UB
103462011-03-18 Uros Bizjak <ubizjak@gmail.com>
10347
10348 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
10349 Rewrite using indirect functions.
10350 (lwp_slwpcb): Ditto.
10351 * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
10352 (avx_vinsertf128<mode>): Ditto.
10353
e101e12e
AK
103542011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10355
10356 * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
10357 unspecs.
10358
4627c7fb
AK
103592011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10360
10361 * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
9e43ad68 10362 splitting between a call and its corresponding CALL_ARG_LOCATION note.
4627c7fb 10363
2d36b47f
MK
103642011-03-18 Maxim Kuvyrkov <maxim@codesourcery.com>
10365
10366 PR rtl-optimization/48170
10367 * gcse.c (hoist_code): Remove bogus asserts.
10368
2a3d7659
JL
103692011-03-18 Georg-Johann Lay <avr@gjlay.de>
10370
10371 * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
10372 computation for prologue/epilogue.
10373
34c3ef05
RO
103742011-03-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10375
10376 * Makefile.in (check-consistency): Remove.
10377
81f2b976
JJ
103782011-03-18 Jakub Jelinek <jakub@redhat.com>
10379
10380 PR debug/48176
10381 * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
10382 arange_table_in_use is 0, but either text_section_used or
10383 cold_text_section_used is true. Don't call it if
10384 !info_section_emitted.
10385
68fd7765
AS
103862011-03-18 Anatoly Sokolov <aesok@post.ru>
10387
10388 * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
10389 FUNCTION_VALUE_REGNO_P): Remove.
10390 * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
10391 Remove.
10392 * config/avr/avr.c (avr_ret_register): Make static inline.
10393 (avr_function_value_regno_p): New function.
10394 (avr_libcall_value): Make static. Add 'func' argument.
10395 (avr_function_value): Make static. Rename 'func' argument to
10396 'fn_decl_or_type', forward it to avr_libcall_value. Call
10397 avr_ret_register function instead of RET_REGISTER macro.
10398 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
10399
b4ef8aac
JM
104002011-03-18 Jason Merrill <jason@redhat.com>
10401
10402 PR c++/23372
10403 * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
10404
09a52fc3
RG
104052011-03-18 Richard Guenther <rguenther@suse.de>
10406
10407 * doc/install.texi (--enable-gold): Remove.
10408 (--with-plugin-ld): Document.
10409 * doc/invoke.texi (-fuse-linker-plugin): Clarify.
10410
2a3d7659 104112011-03-18 Andrew Pinski <pinskia@gmail.com>
3bf162a0
AP
10412
10413 PR middle-end/47790
10414 * expr.c (optimize_bitfield_assignment_op): Revamp to work
10415 again after expansion changes.
10416
2abbb0fe
CLT
104172011-03-18 Chung-Lin Tang <cltang@codesourcery.com>
10418
10419 * combine.c (try_combine): Do simplification only call of
10420 subst() on i2 even when i1 is present. Update comments.
10421
2efd0aa6
KK
104222011-03-18 Kaz Kojima <kkojima@gcc.gnu.org>
10423
10424 * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
10425 and UNSPEC_PCREL_SYMOFF.
10426
30a49b23
AK
104272011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10428
10429 * config/s390/s390.md: Use define_c_enum for the unspec constant
10430 definitions.
10431
419e1853
JJ
104322011-03-18 Richard Henderson <rth@redhat.com>
10433 Jakub Jelinek <jakub@redhat.com>
10434
10435 PR bootstrap/48161
10436 * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
10437 instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
10438
37875856
L
104392011-03-17 H.J. Lu <hongjiu.lu@intel.com>
10440
10441 PR middle-end/47725
10442 * combine.c (cant_combine_insn_p): Don't check zero/sign
10443 extended hard registers.
10444
76069764
L
104452011-03-17 H.J. Lu <hongjiu.lu@intel.com>
10446
10447 PR middle-end/47725
10448 * combine.c (cant_combine_insn_p): Check zero/sign extended
10449 hard registers.
10450
24da2019
AS
104512011-03-17 Anatoly Sokolov <aesok@post.ru>
10452
10453 * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
10454 * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
10455 * config/v850/v850.c (v850_output_addr_const_extra): Make static.
10456 Change return type to bool.
10457 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
10458
a82ff31f
JJ
104592011-03-17 Jakub Jelinek <jakub@redhat.com>
10460
8b29c87a
JJ
10461 PR debug/48163
10462 * var-tracking.c (prepare_call_arguments): If CALL target
10463 is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
10464 pc instead of looking it up using cselib_lookup and use
10465 Pmode for it if x has VOIDmode.
10466 * dwarf2out.c (gen_subprogram_die): If also both first and
10467 second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
10468
a82ff31f
JJ
10469 PR debug/48163
10470 * function.c (assign_parms): For data.passed_pointer parms
10471 use MEM of data.entry_parm instead of data.entry_parm itself
10472 as DECL_INCOMING_RTL.
10473 * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
10474 also when passed and declared mode is the same, DECL_RTL
10475 is a MEM with pseudo as address and DECL_INCOMING_RTL is
10476 a MEM too.
10477
82ce305c
JL
104782011-03-16 Jeff Law <law@redhat.com>
10479
10480 PR rtl-optimization/37273
10481 * ira-costs.c (scan_one_insn): Detect constants living in memory and
10482 handle them like argument loads from stack slots. Do not double
10483 count memory for memory constants and argument loads from stack slots.
10484
fe58e02b
L
104852011-03-17 H.J. Lu <hongjiu.lu@intel.com>
10486
10487 PR debug/48160
10488 * var-tracking.c (prepare_call_arguments): Check SUBREG.
10489
6fc4dbc7
L
104902011-03-17 H.J. Lu <hongjiu.lu@intel.com>
10491
10492 PR target/48171
10493 * config/i386/i386.opt: Add Save to -mavx and -mfma.
10494
db3ed0b3
JJ
104952011-03-17 Jakub Jelinek <jakub@redhat.com>
10496
8054a389
JJ
10497 PR bootstrap/48153
10498 * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
10499 if dwarf_strict.
10500 (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
10501 Clear call_arg_locations and call_arg_loc_last always.
10502
db3ed0b3
JJ
10503 PR middle-end/48152
10504 * var-tracking.c (prepare_call_arguments): If argument needs to be
10505 passed by reference, adjust argtype and mode.
10506
1bce4ff3
RG
105072011-03-17 Richard Guenther <rguenther@suse.de>
10508
10509 PR middle-end/48134
10510 * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
10511 a value make sure to fold the statement.
10512
7c71147d
CLT
105132011-03-17 Chung-Lin Tang <cltang@codesourcery.com>
10514
10515 PR target/43872
10516 * config/arm/arm.c (arm_get_frame_offsets): Adjust early
10517 return condition with !cfun->calls_alloca.
10518
0e1ee172
RG
105192011-03-17 Richard Guenther <rguenther@suse.de>
10520
10521 PR bootstrap/48148
10522 * lto-cgraph.c (input_overwrite_node): Clear the abstract
10523 origin for decls in other ltrans units.
10524 (input_varpool_node): Likewise.
10525
f8bce518
RG
105262011-03-17 Richard Guenther <rguenther@suse.de>
10527
10528 PR middle-end/48165
10529 * tree-object-size.c (compute_object_offset): Properly return
10530 the offset operand of MEM_REFs as sizetype.
10531
1b6fa860
JJ
105322011-03-17 Jakub Jelinek <jakub@redhat.com>
10533
dabd47e7
JJ
10534 PR rtl-optimization/48141
10535 * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
10536 * dse.c: Include params.h.
10537 (active_local_stores_len): New variable.
10538 (add_wild_read, dse_step1): Clear it when setting active_local_stores
10539 to NULL.
10540 (record_store, check_mem_read_rtx): Decrease it when removing
10541 from the chain.
10542 (scan_insn): Likewise. Increase it when adding to chain, if it
10543 reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
10544 set active_local_stores to NULL before the addition.
10545 * Makefile.in (dse.o): Depend on $(PARAMS_H).
10546
1b6fa860
JJ
10547 PR rtl-optimization/48141
10548 * dse.c (record_store): If no positions are needed in an insn
10549 that cannot be deleted, at least unchain it from active_local_stores.
10550
7b5cb7d6
DS
105512011-03-16 Dodji Seketeli <dodji@redhat.com>
10552
10553 PR debug/47510
10554 * dwarf2out.c (strip_naming_typedef): Factorize out of ...
10555 (lookup_type_die_strip_naming_typedef): ... here.
10556 (get_context_die): Use it.
10557 (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
10558 the anonymous struct named by the naming typedef.
10559
585e9d9d
L
105602011-03-16 H.J. Lu <hongjiu.lu@intel.com>
10561
10562 PR target/48154
10563 * config/i386/i386.c (ix86_builtin_vectorized_function): Check
10564 TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
10565
6261ab0e
JL
105662011-03-16 Jeff Law <law@redhat.com>
10567
10568 * tree-vrp.c (identify_jump_threads): Slightly simplify type
16cc4440 10569 check for operands of conditional. Allow type to be a pointer.
6261ab0e 10570
0b0081ec
RG
105712011-03-16 Richard Guenther <rguenther@suse.de>
10572
10573 PR tree-optimization/48149
10574 * fold-const.c (fold_binary_loc): Fold
10575 COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
10576
64a3d647
RG
105772011-03-16 Richard Guenther <rguenther@suse.de>
10578
10579 PR tree-optimization/26134
10580 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
10581 complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
10582 (non_rewritable_mem_ref_base): Handle complex type component
10583 accesses, constrain offsets for vector and complex extracts
10584 more properly.
10585
ef13324e
RG
105862011-03-16 Richard Guenther <rguenther@suse.de>
10587
10588 PR tree-optimization/48146
10589 * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
10590 operands avoiding the need for renaming.
10591
f0eddb90
RG
105922011-03-16 Richard Guenther <rguenther@suse.de>
10593
10594 * gimple-fold.c (maybe_fold_reference): Open-code relevant
10595 constant folding. Move MEM_REF canonicalization first.
10596 Rely on fold_const_aggregate_ref for initializer folding.
10597 * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
10598
e42348b8
JJ
105992011-03-16 Jakub Jelinek <jakub@redhat.com>
10600
29f10e71
JJ
10601 PR middle-end/48136
10602 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
10603 arg0/arg1 or their arguments are always fold converted to matching
10604 types.
10605
e42348b8
JJ
10606 * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
10607 to nargs.
10608
55b46574
RO
106092011-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10610
10611 PR lto/46944
10612 * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
10613 Handle in-tree gold.
10614 (ld_vers): Extract binutils version for gold.
10615 (gcc_cv_ld_hidden): Handle gold here.
10616 (gcc_cv_lto_plugin): Determine level of linker plugin support.
10617 * configure: Regenerate.
10618 * config.in: Regenerate.
10619 * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
10620 -fuse-linker-plugin otherwise.
10621 (LINK_PLUGIN_SPEC): Define. Extract from LINK_COMMAND_SPEC.
10622 (LINK_COMMAND_SPEC): Use it.
10623 (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
10624
2b1c5433
JJ
106252011-03-16 Jakub Jelinek <jakub@redhat.com>
10626
c2969d8e
JJ
10627 * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
10628 * calls.c: Remove debug.h include.
10629 (emit_call_1): Don't call virtual_call_token debug hook.
10630 * dwarf2out.c (debug_dcall_section, debug_vcall_section,
10631 dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
10632 vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
10633 size_of_dcall_table, output_dcall_table, size_of_vcall_table,
10634 output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
10635 vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
10636 dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
10637 dwarf2out_virtual_call): Remove.
10638 (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
10639 copy_call_info and virtual_call hooks.
10640 (dwarf2out_init): Don't initialize vcall_insn_table,
10641 debug_dcall_section and debug_vcall_section.
10642 (prune_unused_types): Don't mark nodes from dcall_table.
10643 (dwarf2out_finish): Don't output dcall or vcall tables.
10644 * final.c (final_scan_insn): Don't call direct_call or
10645 virtual_call debug hooks.
10646 * debug.h (struct gcc_debug_hooks): Remove direct_call,
10647 virtual_call_token, copy_call_info and virtual_call hooks.
10648 (debug_nothing_uid): Remove prototype.
10649 * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
10650 copy_call_info and virtual_call hooks.
10651 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
10652 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
10653 * debug.c (do_nothing_debug_hooks): Likewise.
10654 (debug_nothing_uid): Remove.
10655 * doc/invoke.texi (-fenable-icf-debug): Remove.
10656 * common.opt (-fenable-icf-debug): Likewise.
10657
325f5379
JJ
10658 * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
10659 * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
10660 call's MEM. Handle functions returning aggregate through a hidden
10661 first pointer. For virtual calls add clobbered pc to call arguments
10662 chain.
10663 * dwarf2out.c (gen_subprogram_die): Emit
10664 DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
10665 can't be emitted.
10666
a58a8e4b
JJ
10667 PR debug/45882
10668 * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
10669 * rtl.h (ENTRY_VALUE_EXP): Define.
10670 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
10671 * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
10672 * print-rtl.c (print_rtx): Likewise.
10673 * gengtype.c (adjust_field_rtx_def): Likewise.
10674 * var-tracking.c (vt_add_function_parameter): Adjust
10675 gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
10676 * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
10677 * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
10678 partition is a default definition of a PARM_DECL, use ENTRY_VALUE
10679 of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
10680
2b1c5433
JJ
10681 * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
10682 Call var_location debug hook even on CALL_INSNs.
10683 (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
10684 * rtl.def (ENTRY_VALUE): New.
10685 * dwarf2out.c: Include cfglayout.h.
10686 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
10687 output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
10688 (struct call_arg_loc_node): New type.
10689 (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
10690 tail_call_site_count): New variables.
10691 (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
10692 DW_TAG_GNU_call_site_parameter.
10693 (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
10694 DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
10695 DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
10696 DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
10697 and DW_AT_GNU_all_source_call_sites.
10698 (mem_loc_descriptor): Handle ENTRY_VALUE.
10699 (add_src_coords_attributes): Don't add enything if
10700 DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
10701 (dwarf2out_abstract_function): Save and clear call_arg_location,
10702 call_site_count and tail_call_site_count around dwarf2out_decl call.
10703 (gen_call_site_die): New function.
10704 (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
10705 (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
10706 (dwarf2out_function_decl): Clear call_arg_locations,
10707 call_arg_loc_last, set call_site_count and tail_call_site_count
10708 to -1 and free block_map.
10709 (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
10710 CALL_INSNs. Add NOTE_DURING_CALL_P var location notes even when not
10711 followed by any real instructions.
10712 (dwarf2out_begin_function): Set call_site_count and
10713 tail_call_site_count to 0.
10714 (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
10715 is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
10716 attempt to force a DIE for it and worst case remove the attribute.
10717 (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
10718 check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
10719 the decl itself.
10720 * var-tracking.c: Include tm_p.h.
10721 (vt_stack_adjustments): For calls call note_register_arguments.
10722 (argument_reg_set): New variable.
10723 (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
10724 ensure the VALUE is resolved.
10725 (call_arguments): New variable.
10726 (prepare_call_arguments): New function.
10727 (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
10728 (struct expand_loc_callback_data): Add ignore_cur_loc field.
10729 (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
10730 always use the best expression.
10731 (vt_expand_loc): Add ignore_cur_loc argument.
10732 (vt_expand_loc_dummy): Clear ignore_cur_loc field.
10733 (emit_note_insn_var_location): Adjust vt_expand_loc callers.
10734 (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
10735 note for all calls.
10736 (vt_add_function_parameter): Use cselib_lookup_from_insn.
10737 If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
10738 argument. Don't call cselib_preserve_only_values and
10739 cselib_reset_table.
10740 (note_register_arguments): New function.
10741 (vt_initialize): Compute argument_reg_set. Call
10742 vt_add_function_parameters before processing basic blocks instead of
10743 afterwards. For calls call prepare_call_arguments before calling
10744 cselib_process_insn.
10745 * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
10746 * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
10747 (var-tracking.o): Depend on $(TM_P_H).
10748 * cfglayout.h (insn_scope): New prototype.
10749 * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
10750 * cfglayout.c (insn_scope): No longer static.
10751 * insn-notes.def (CALL_ARG_LOCATION): New.
10752 * calls.c (expand_call, emit_library_call_value_1): Put USEs for
10753 MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
10754 * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
10755 nothing for DECL_EXTERNAL BLOCK_VARS.
10756
9ef13bd0
AM
107572011-03-16 Alan Modra <amodra@gmail.com>
10758
10759 PR target/45844
10760 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
10761 create invalid offset address for vsx splat insn.
10762 * config/rs6000/predicates.md (splat_input_operand): New.
10763 * config/rs6000/vsx.md (vsx_splat_*): Use it.
10764
56b67510
XDL
107652011-03-15 Xinliang David Li <davidxl@google.com>
10766
10767 PR c/47837
10768 * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
10769 (normalize_preds): New function.
10770 (is_use_properly_guarded): Normalize def predicates.
10771
80fffdef
RR
107722011-03-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
10773
732f37c6 10774 PR target/46788
80fffdef
RR
10775 * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
10776 in the output template.
10777
930672ad
RG
107782011-03-15 Richard Guenther <rguenther@suse.de>
10779
10780 PR middle-end/47650
10781 * tree-pretty-print.c (dump_function_declaration): Properly
10782 dump unprototyped and varargs function types.
10783
c7ee7b45
RG
107842011-03-15 Richard Guenther <rguenther@suse.de>
10785
10786 PR tree-optimization/13954
10787 * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
10788 and friends.
10789
b2ad5e37
RG
107902011-03-15 Richard Guenther <rguenther@suse.de>
10791
10792 PR tree-optimization/48037
10793 * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
10794 selects into BIT_FIELD_REFs.
10795 (non_rewritable_mem_ref_base): Check if a MEM_REF is a
10796 vector select.
10797
7ee93d4e
JJ
107982011-03-15 Jakub Jelinek <jakub@redhat.com>
10799
10800 PR tree-optimization/48129
10801 * builtins.c (fold_builtin_snprintf): Convert to type of
10802 built_in_decls[BUILT_IN_SNPRINTF] retval instead of
10803 implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
10804
e106efc7
RG
108052011-03-15 Richard Guenther <rguenther@suse.de>
10806
10807 PR tree-optimization/41490
10808 * tree-ssa-dce.c (propagate_necessity): Handle returns without
10809 value but with VUSE.
10810 * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
10811 return statements.
10812 * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
10813 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
10814 * tree-tailcall.c (find_tail_calls): Ignore returns.
10815
17dea42f
RG
108162011-03-15 Richard Guenther <rguenther@suse.de>
10817
10818 PR middle-end/48031
10819 * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
10820 or variable-indexed array accesses when in gimple form.
10821
01c77a60
RG
108222011-03-15 Richard Guenther <rguenther@suse.de>
10823
16cc4440 10824 * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
01c77a60 10825
77b0791e
AM
108262011-03-15 Alan Modra <amodra@gmail.com>
10827
10828 PR target/48032
10829 * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
10830 presume symbol_refs without a symbol_ref_decl are suitably
10831 aligned, nor other trees we may see here. Handle anchor symbols.
10832 (legitimate_constant_pool_address_p): Comment. Add mode param.
10833 Check cmodel=medium addresses. Adjust all calls.
10834 (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
10835 creating cmodel=medium optimized access to locals.
10836 * config/rs6000/constraints.md (R): Pass QImode to
10837 legitimate_constant_pool_address_p.
10838 * config/rs6000/predicates.md (input_operand): Pass mode to
10839 legitimate_constant_pool_address_p.
10840 * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
10841 Update prototype.
10842
35f61ba4
MM
108432011-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
10844
10845 PR target/48053
10846 * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
10847 64-bit constants being loaded into registers other than GPRs such
10848 as loading 0 into a VSX register.
10849
07332e6d
RO
108502011-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10851
16cc4440 10852 * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
07332e6d 10853
de888d90
JJ
108542011-03-14 Jakub Jelinek <jakub@redhat.com>
10855
ba3ceb2d
JJ
10856 PR middle-end/47917
10857 * builtins.c (fold_builtin_snprintf): New function.
10858 (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
10859 (fold_builtin_4): Likewise.
10860
2e64f8b8
JJ
10861 PR middle-end/38878
10862 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
10863 STRIP_NOPS on arg0 and arg1. When optimizing X +- C == X
10864 and C - X == X also strip nops from +/-/p+ operand.
10865 When optimizing -X == C, fold C to arg0's type.
10866
de888d90
JJ
10867 PR debug/47946
10868 * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
10869 emit it as add_AT_int instead of add_AT_unsigned.
10870
108712011-03-14 Tom Tromey <tromey@redhat.com>
f4e749b4
TT
10872
10873 * unwind-dw2.c: Include sys/sdt.h if it exists.
10874 (_Unwind_DebugHook): Use STAP_PROBE2.
10875 * config.in, configure: Rebuild.
10876 * configure.ac: Check for sys/sdt.h.
10877
d34abfd2
UB
108782011-03-14 Uros Bizjak <ubizjak@gmail.com>
10879
10880 * config/i386/i386.md (ROUND_FLOOR): New constant.
10881 (ROUND_CEIL): Ditto.
10882 (ROUND_TRUNC): Ditto.
10883 (ROUND_MXCSR): Ditto.
10884 (ROUND_NO_EXC): Ditto.
10885 (rint<mode>2): Use new defines instead of numerical constants.
10886 (floor<mode>2): Ditto.
10887 (ceil<mode>2): Ditto.
10888 (btrunc<mode>2): Ditto.
10889 * config/i386/i386-builtin-types.def: Define ROUND function type
10890 aliases.
10891 * config/i386/i386.c (enum ix86_builtins): Add
10892 IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
10893 (struct builtin_description): Add
10894 __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
10895 (ix86_expand_sse_round): New static function.
10896 (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
10897 function types.
10898 (ix86_builtin_vectorized_function): Handle
10899 BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
10900
87f9e23d
TT
109012011-03-14 Tom Tromey <tromey@redhat.com>
10902
10903 * c-parser.c (c_parser_asm_string_literal): Clear
10904 warn_overlength_strings.
10905
b3ab9ea2
TT
109062011-03-14 Tom Tromey <tromey@redhat.com>
10907
10908 * c-parser.c (disable_extension_diagnostics): Save
10909 warn_overlength_strings.
10910 (restore_extension_diagnostics): Restore warn_overlength_strings.
10911
6bd73dd8
JJ
109122011-03-14 Jakub Jelinek <jakub@redhat.com>
10913
10914 * BASE-VER: Change to 4.7.0.
10915
7f4d6e1b
RG
109162011-03-14 Richard Guenther <rguenther@suse.de>
10917
10918 PR middle-end/48098
10919 * tree.c (build_vector_from_val): Adjust assert to requirements
10920 and reality.
10921
c6104ef1
JJ
109222011-03-14 Jakub Jelinek <jakub@redhat.com>
10923
10924 PR bootstrap/48102
d34abfd2 10925 * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
c6104ef1 10926
dfa95e19
AT
109272011-03-14 Andreas Tobler <andreast@fgznet.ch>
10928
f60c2554 10929 * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
dfa95e19
AT
10930 terms of target_flags_explicit. Adjust copyright year.
10931
10932 * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
10933 * config/rs6000/t-freebsd: New file. Add override for
10934 LIB2FUNCS_EXTRA.
10935
bb322018
CD
109362011-03-13 Chris Demetriou <cgd@google.com>
10937
10938 * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
10939 (-fno-diagnostics-show-option): this, to reflect current default.
10940 (-Werror=): Update text about -fno-diagnostics-show-option.
10941
12b1c80b
PB
109422011-03-12 Peter Bergner <bergner@vnet.ibm.com>
10943
10944 PR target/48053
10945 * config/rs6000/predicates.md (easy_vector_constant_add_self,
10946 easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
10947 * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
10948 mode is not V2DImode or V2DFmode.
10949 (vspltis_constant): Do not handle V2DImode and V2DFmode.
10950 (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
10951 * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
10952 registers to 0.
10953 (movdi_internal64): Likewise.
10954
57d598f7
SP
109552011-03-12 Sebastian Pop <sebastian.pop@amd.com>
10956
10957 PR tree-optimization/47127
10958 * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
10959 parameter.
10960 (set_cloog_options): Same.
10961 (scop_to_clast): Same.
10962 (print_clast_stmt): Do not call cloog_state_malloc and
10963 cloog_state_free.
10964 (print_generated_program): Same.
10965 (gloog): Same.
10966 * graphite-clast-to-gimple.h (cloog_state): Declared.
10967 (scop_to_clast): Adjust declaration.
10968 * graphite.c (cloog_state): Defined here.
10969 (graphite_initialize): Call cloog_state_malloc.
10970 (graphite_finalize): Call cloog_state_free.
10971
f231b5ff
JM
109722011-03-11 Jason Merrill <jason@redhat.com>
10973
10974 * attribs.c (lookup_attribute_spec): Take const_tree.
10975 * tree.h: Adjust.
10976
6a4e2bd5
JM
109772011-03-11 Joseph Myers <joseph@codesourcery.com>
10978
10979 * config/sparc/sparc.c (sparc_option_override): Use
10980 PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
10981
a758fd67
RG
109822011-03-11 Richard Guenther <rguenther@suse.de>
10983
10984 PR tree-optimization/48067
10985 * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
10986 multiplication result will be only used once on the target
10987 stmt.
10988
03dfda54
RG
109892011-03-11 Richard Guenther <rguenther@suse.de>
10990
10991 * doc/invoke.texi (max-inline-insns-single): Adjust default value.
10992
5f11a50a
RG
109932011-03-11 Richard Guenther <rguenther@suse.de>
10994
10995 PR lto/48073
10996 * tree.c (find_decls_types_r): Do not walk types only reachable
10997 from IDENTIFIER_NODEs.
10998
4074f163
JJ
109992011-03-11 Jakub Jelinek <jakub@redhat.com>
11000
11001 PR middle-end/48044
11002 * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
11003 all vnode->force_output nodes as needed.
11004
30f7cdcd
JM
110052011-03-11 Jason Merrill <jason@redhat.com>
11006
11007 PR c++/48069
11008 * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
11009 COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
11010
62ecfeb8
MJ
110112011-03-11 Martin Jambor <mjambor@suse.cz>
11012
11013 * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
11014 cgraph_node.
11015
e89e03ab
JJ
110162011-03-11 Jakub Jelinek <jakub@redhat.com>
11017
11018 PR tree-optimization/48063
11019 * ipa-inline.c (cgraph_decide_inlining): Don't try to
11020 inline functions called once if !tree_can_inline_p (node->callers).
11021
efbe978b 110222011-03-11 Chen Liqin <liqin.gcc@gmail.com>
9d6193a7 11023
efbe978b
EB
11024 * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
11025 extra_objs.
9d6193a7
CL
11026 * config/score/score3.c: Delete.
11027 * config/score/score3.h: Delete.
11028 * config/score/mul-div.S: Delete.
11029 * config/score/sfp-machine.h: Add new file.
11030 * config/score/constraints.md: Add new file.
11031 * config/score/t-score-softfp: Add new file.
efbe978b 11032 * config/score/t-score-elf: Remove score3.o, do not generate multilib.
9d6193a7
CL
11033 * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
11034 (score7_extra_constraint): Delete.
efbe978b 11035 (score7_option_override): Remove unused code.
9d6193a7
CL
11036 * config/score/score.c: Remove score3 and score5 define and code.
11037 * config/score/score.h: Remove score3 and score5 define and code.
efbe978b 11038 * config/score/score.md: Remove score3 template and unusual insn.
9d6193a7
CL
11039 * config/score/score.opt: Remove score3 and score5 options.
11040
5de27cca
JDA
110412011-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11042
11043 * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
11044 when _HPUX_SOURCE is defined.
11045 (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
11046
18d92053
JM
110472011-03-10 Jason Merrill <jason@redhat.com>
11048
11049 PR c++/48029
11050 * stor-layout.c (layout_type): Don't set structural equality
11051 on arrays of incomplete type.
11052 * tree.c (type_hash_eq): Handle comparing them properly.
11053
67a2f76d
JJ
110542011-03-10 Jakub Jelinek <jakub@redhat.com>
11055
11056 PR debug/48043
18d92053 11057 * config/s390/s390.c (s390_delegitimize_address): Make sure the
67a2f76d
JJ
11058 result mode matches original rtl mode.
11059
d845b2f9
NC
110602011-03-10 Nick Clifton <nickc@redhat.com>
11061
11062 * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
39242686 11063 (andsi3, andsi3_flags): Fix timings for three operand alternative.
d845b2f9 11064
db7ec035
JJ
110652011-03-09 Jakub Jelinek <jakub@redhat.com>
11066
11067 PR rtl-optimization/47866
11068 * expr.c (store_field): If MEM_SCALAR_P (target), don't use
11069 MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
11070 if target wasn't scalar.
11071 * function.c (assign_stack_temp_for_type): Assert that neither
11072 MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
11073 MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
11074 macro.
11075 * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
11076
5d304e47
AK
110772011-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11078
11079 * config/s390/s390-protos.h (s390_label_align): New prototype.
11080 * config/s390/s390.c (s390_label_align): New function.
11081 * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
11082
93b826f0
MM
110832011-03-08 Michael Meissner <meissner@linux.vnet.ibm.com>
11084
11085 PR target/47755
11086 * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
11087 V2DI/V2DF constants. Only all 0's or all 1's are easy.
11088 (output_vec_const_move): Ditto.
11089
ef78aed6
AS
110902011-03-08 Anatoly Sokolov <aesok@post.ru>
11091
11092 * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
11093 * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
11094 * config/mips/mips.c (mips_preferred_reload_class): Make static.
11095 Change 'rclass' argument and result type to reg_class_t.
11096 (TARGET_PREFERRED_RELOAD_CLASS): Define.
11097
5f892aa0
GJL
110982011-03-08 Georg-Johann Lay <avr@gjlay.de>
11099
9e43ad68
UB
11100 * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
11101 * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
11102 (TARGET_MEMORY_MOVE_COST): Define.
11103 (avr_register_move_cost, avr_memory_move_cost): New Functions.
5f892aa0 11104
32bd2409
JJ
111052011-03-08 Jakub Jelinek <jakub@redhat.com>
11106
530a4800
JJ
11107 PR debug/47881
11108 * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
11109 removed anything.
11110
32bd2409
JJ
11111 PR tree-optimization/48022
11112 * fold-const.c (fold_comparison): Don't call fold_overflow_warning
11113 for EQ/NE_EXPR.
11114
c7148991
JJ
111152011-03-07 Jakub Jelinek <jakub@redhat.com>
11116
11117 PR debug/47991
11118 * var-tracking.c (find_use_val): Return NULL for
11119 cui->sets && cui->store_p BLKmode MEMs.
11120
43070a6e
AS
111212011-03-07 Anatoly Sokolov <aesok@post.ru>
11122
11123 * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
11124 Remove.
11125 * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
11126 xstormy16_print_operand_address): Remove.
11127 * config/stormy16/stormy16.c (xstormy16_print_operand,
11128 xstormy16_print_operand_address): Make static.
11129 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
11130
efbe978b 111312011-03-07 Pat Haugen <pthaugen@us.ibm.com>
79eefb0d
PH
11132
11133 PR target/47862
11134 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
11135 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
11136 before definition.
11137
cec8ac0b
ZD
111382011-03-07 Zdenek Dvorak <ook@ucw.cz>
11139
11140 PR bootstrap/48000
11141 * cfgloopmanip.c (fix_bb_placements): Return immediately
11142 if FROM is BASE_LOOP's header.
11143
59527282
PW
111442011-03-07 Paul Wögerer <paul_woegerer@mentor.com>
11145
11146 * gimplify.c (gimplify_function_tree): Fix building calls
11147 to __builtin_return_address.
11148
617718f7
AM
111492011-03-07 Alan Modra <amodra@gmail.com>
11150
11151 * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
11152 * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
11153 * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
11154 * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
11155 return_mode args.
11156 * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
11157 (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
11158 (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
11159 (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
11160 * config/rs6000/rs6000.c
11161 (rs6000_elf_end_indicate_exec_stack): Rename to..
11162 (rs6000_elf_file_end): ..this. Only call file_end_indicate_exec_stack
11163 for POWERPC_LINUX. Move code emitting .gnu_attribute to here, from..
11164 (rs6000_file_start): ..here.
11165 (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
11166 file scope variables.
11167 (call_ABI_of_interest): New function.
11168 (init_cumulative_args): Set above vars when function return value
11169 is a float, vector, or small struct.
11170 (rs6000_function_arg_advance_1): Likewise for function args.
11171 (rs6000_va_start): Set rs6000_passes_float if variable arg function
11172 references float args.
11173
38528d50
MX
111742011-03-07 Mingjie Xing <mingjie.xing@gmail.com>
11175
11176 * doc/cfg.texi: Remove "See" before @ref.
11177 * doc/invoke.texi: Likewise.
11178
f42cf4f4
JM
111792011-03-05 Jason Merrill <jason@redhat.com>
11180
11181 * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
11182
804a304d
AG
111832011-03-05 Anthony Green <green@moxielogic.com>
11184
11185 * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
11186
634ee309
ZD
111872011-03-05 Zdenek Dvorak <ook@ucw.cz>
11188
11189 PR rtl-optimization/47899
11190 * cfgloopmanip.c (fix_bb_placements): Fix first argument
11191 to flow_loop_nested_p when moving the loop upward.
11192
6fe471c8
RE
111932011-03-05 Richard Earnshaw <rearnsha@arm.com>
11194
11195 PR target/47719
11196 * arm.md (movhi_insn_arch4): Accept any immediate constant.
11197
cc58ceee
JJ
111982011-03-05 Jakub Jelinek <jakub@redhat.com>
11199
11200 PR tree-optimization/47967
11201 * ipa-cp.c (build_const_val): Return NULL instead of creating
11202 VIEW_CONVERT_EXPR for mismatching sizes.
11203 (ipcp_create_replace_map): Return NULL if build_const_val failed.
11204 (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
11205 give up on versioning.
11206
ea868305
AM
112072011-03-05 Alan Modra <amodra@gmail.com>
11208
11209 PR target/47986
11210 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
11211 full cmodel medium/large lo_sum + high addresses.
11212
bc6ce334
AK
112132011-03-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11214
11215 * config/s390/s390.c (s390_decompose_address): Reject non-literal
11216 pool references in UNSPEC_LTREL_OFFSET.
11217
87e7b310
JH
112182011-03-04 Jan Hubicka <jh@suse.cz>
11219
11220 PR lto/47497
11221 * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
11222 (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
d34abfd2
UB
11223 * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
11224 Add node pointers.
87e7b310
JH
11225 * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
11226 cgraph_add_thunk): Add node pointers.
11227 * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
11228 associated to right node.
11229 (input_node): Update use of cgraph_same_body_alias
11230 and cgraph_add_thunk.
11231
d9c64246
CF
112322011-03-04 Changpeng Fang <changpeng.fang@amd.com>
11233
11234 * config/i386/i386.opt (mprefer-avx128): New flag.
d34abfd2
UB
11235 * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
11236 modes when the flag -mprefer-avx128 is on.
d9c64246 11237
08707076
RS
112382011-03-04 Richard Sandiford <richard.sandiford@linaro.org>
11239
11240 * dwarf2out.c (compare_loc_operands): Fix address handling.
11241
52517c81
AM
112422011-03-04 Alan Modra <amodra@gmail.com>
11243
11244 * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
11245
b147c5b9
RG
112462011-03-04 Richard Guenther <rguenther@suse.de>
11247
11248 PR middle-end/47968
11249 * expmed.c (extract_bit_field_1): Prefer vector modes that
11250 vec_extract patterns can handle.
11251
8750672f
RG
112522011-03-04 Richard Guenther <rguenther@suse.de>
11253
11254 PR middle-end/47975
11255 * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
11256
9eac0f2a
RH
112572011-03-04 Richard Henderson <rth@redhat.com>
11258
11259 * explow.c (emit_stack_save): Remove 'after' parameter.
11260 (emit_stack_restore): Likewise.
11261 * expr.h: Update to match.
11262 * builtins.c, calls.c, stmt.c: Likewise.
11263 * config/alpha/alpha.md, config/avr/avr.md: Likewise.
11264 * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
11265 * function.c (expand_function_end): Insert the emit_stack_save
11266 sequence before parm_birth_insn instead of after.
11267
dfee1406
UB
112682011-03-03 Uros Bizjak <ubizjak@gmail.com>
11269
11270 * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
11271 (ssse3_pmaddubsw128): Ditto.
11272 (ssse3_pmaddubsw): Ditto.
11273
f1d4c3de
SE
112742011-03-03 Steve Ellcey <sje@cup.hp.com>
11275
11276 * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
11277
71f3a3f5
JJ
112782011-03-03 Jakub Jelinek <jakub@redhat.com>
11279
423ed416
JJ
11280 PR c/47963
11281 * gimplify.c (omp_add_variable): Only call omp_notice_variable
11282 on TYPE_SIZE_UNIT if it is a DECL.
11283
71f3a3f5
JJ
11284 PR debug/47283
11285 * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
11286 first operand is not is_gimple_mem_ref_addr, try to fold it.
11287 If the operand still isn't is_gimple_mem_ref_addr, clear
11288 MEM_EXPR on op0.
11289
4b1a5c0d
RG
112902011-03-03 Richard Guenther <rguenther@suse.de>
11291
11292 PR middle-end/47283
11293 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
11294 match comment.
11295 (refs_may_alias_p_1): For release branches return true if
11296 we are confused by our input.
11297
b46616fd
AK
112982011-03-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11299
11300 * config/s390/s390.c (s390_function_value): Rename to ...
11301 (s390_function_and_libcall_value): ... this.
11302 (s390_function_value): New function.
11303 (s390_libcall_value): New function.
dfee1406 11304 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
b46616fd
AK
11305 * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
11306 target macro definitions.
11307 * config/s390/s390-protos.h (s390_function_value): Remove prototype.
11308
46d8fabb
JM
113092011-03-02 Joseph Myers <joseph@codesourcery.com>
11310
11311 * config/i386/freebsd64.h (CC1_SPEC): Define.
11312 * config/i386/linux64.h (CC1_SPEC): Define.
11313 * config/i386/x86-64.h (CC1_SPEC): Don't define.
11314
6b1ce545
AS
113152011-03-02 Anatoly Sokolov <aesok@post.ru>
11316
11317 * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
11318 Remove.
11319 * config/stormy16/stormy16.c: Include reload.h.
11320 (xstormy16_memory_move_cost): New function.
11321 (TARGET_MEMORY_MOVE_COST): Define.
11322
34161e98
RS
113232011-03-02 Richard Sandiford <richard.sandiford@linaro.org>
11324
11325 PR rtl-optimization/47925
11326 * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
11327 with side effects. Remove the more-specific check for volatile asms.
11328
f60a97cf
AM
113292011-03-02 Alan Modra <amodra@gmail.com>
11330
11331 PR target/47935
11332 * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
11333 toc relative addresses for valid offsets.
11334
f2ca11ca
RG
113352011-03-01 Richard Guenther <rguenther@suse.de>
11336
11337 PR tree-optimization/47890
11338 * tree-vect-loop.c (get_initial_def_for_induction): Set
11339 related stmt properly.
11340
7a00d9ea
RG
113412011-03-01 Richard Guenther <rguenther@suse.de>
11342
11343 PR lto/47924
11344 * lto-streamer.c (lto_record_common_node): Also register
11345 the canonical type.
11346
06c7edcc
RG
113472011-03-01 Richard Guenther <rguenther@suse.de>
11348
11349 PR lto/46911
11350 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
11351 Do not stream DECL_ABSTRACT_ORIGIN.
11352 (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
11353 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
11354 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
11355 Do not stream DECL_ABSTRACT_ORIGIN.
11356 (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
11357 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
11358
998871e9
AS
113592011-02-28 Anatoly Sokolov <aesok@post.ru>
11360
11361 * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
11362 FUNCTION_VALUE_REGNO_P): Remove.
b2e2ea67 11363 * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
998871e9
AS
11364 * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
11365 Add 'outgoing' argument.
11366 (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
11367 function.
11368 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
11369 TARGET_FUNCTION_VALUE_REGNO_P): Define.
11370
94369251
KT
113712011-02-28 Kai Tietz <kai.tietz@onevision.com>
11372
11373 PR debug/28047
11374 * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
11375 (lookup_filename): Likewise.
b2e2ea67 11376 * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
94369251 11377
80a832cd
JJ
113782011-02-28 Bernd Schmidt <bernds@codesourcery.com>
11379 Jakub Jelinek <jakub@redhat.com>
11380
11381 PR middle-end/47893
11382 * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
11383 (assign_stack_local_1): Change last argument type to int.
11384 * function.c (assign_stack_local_1): Replace reduce_alignment_ok
11385 argument with kind. If bit ASLK_RECORD_PAD is not set in it,
b2e2ea67 11386 don't record padding space into frame_space_list nor use those areas.
80a832cd
JJ
11387 (assign_stack_local): Adjust caller.
11388 (assign_stack_temp_for_type): Call assign_stack_local_1 instead
11389 of assign_stack_local, pass 0 as last argument.
11390 * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
11391 callers.
11392
1b500976
JJ
113932011-02-28 Jakub Jelinek <jakub@redhat.com>
11394
f61c6f34
JJ
11395 PR debug/47283
11396 * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
11397 Use target address_mode and pointer_mode hooks instead of hardcoded
11398 Pmode and ptr_mode. Handle some simple cases of extending if
11399 POINTERS_EXTEND_UNSIGNED < 0.
11400 (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
11401 Call convert_debug_memory_address.
11402 (expand_debug_expr) <case ADDR_EXPR>: Pass as to
11403 convert_debug_memory_address.
11404
1b500976
JJ
11405 PR middle-end/46790
11406 * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
11407 * configure: Regenerated.
11408 * config.in: Regenerated.
11409 * varasm.c (default_function_section): Return NULL
b2e2ea67 11410 if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
1b500976 11411
2f2935b6
MJ
114122011-02-28 Martin Jambor <mjambor@suse.cz>
11413
11414 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
11415 the description to match the printed values.
11416
474086eb
RG
114172011-02-28 Richard Guenther <rguenther@suse.de>
11418
11419 * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
11420 of the copied scope tree.
11421
15bf6f3a
RW
114222011-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11423
11424 * doc/extend.texi (Function Attributes): Avoid deeply (and
11425 wrongly) nested tables.
11426
f6b439c9
JJ
114272011-02-27 Jakub Jelinek <jakub@redhat.com>
11428
11429 PR middle-end/47903
11430 * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
11431 MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
11432 r isn't op0 nor op1.
11433
1d8ca2c7
GJL
114342011-02-23 Georg-Johann Lay <avr@gjlay.de>
11435
11436 * config/avr/avr.md: Remove magic comment for emacs.
11437
593fca4b
GJL
114382011-02-23 Georg-Johann Lay <avr@gjlay.de>
11439
11440 PR target/45261
11441 * config/avr/avr.c (avr_option_override): Use error on bad options.
11442 (avr_help): New function.
11443 (TARGET_HELP): Define.
11444
6609216e
GJL
114452011-02-22 Georg-Johann Lay <avr@gjlay.de>
11446
11447 PR target/42240
11448 * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
11449 (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
11450
03d458af
GP
114512011-02-26 Gerald Pfeifer <gerald@pfeifer.com>
11452
11453 * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
11454 (ARM Options): Ditto.
11455 (i386 and x86-64 Options): Ditto.
11456 (RX Options): Ditto.
11457 (SPARC Options): Ditto.
11458
1c379b78
TC
114592011-02-26 Tijl Coosemans <tijl@coosemans.org>
11460
11461 * config.gcc (i386-*-freebsd*): Make i486 the default arch on
11462 FreeBSD 6 and later. Generally use cpu generic.
11463
d5ed058c 114642011-02-25 Gerald Pfeifer <gerald@pfeifer.com>
b2e2ea67 11465
d5ed058c
GP
11466 * doc/cpp.texi: Update copyright years.
11467
509d65dd 114682011-02-25 Sebastien Bourdeauducq <sebastien@milkymist.org>
308d39cd 11469
509d65dd 11470 PR target/46898
308d39cd
SB
11471 * config/lm32/lm32.md (ashrsi3): Added needed variable.
11472
509d65dd 114732011-02-25 Jon Beniston <jon@beniston.com>
308d39cd 11474
509d65dd 11475 PR target/46898
308d39cd
SB
11476 * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
11477 * config/lm32/lm32.md (ashlsi3): Remove unused variable.
11478 * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
11479 (lm32_block_move_inline): Add type cast to remove warning.
b2e2ea67 11480 (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
308d39cd
SB
11481 (gen_int_relational): Move declarations to start of function.
11482
822ba6d7
EB
114832011-02-25 Eric Botcazou <ebotcazou@adacore.com>
11484
11485 PR tree-optimization/45470
11486 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
11487 can throw internally only.
11488 * tree-vect-stmts.c (vectorizable_call): Likewise.
11489
ef795fc2
AS
114902011-02-24 Anatoly Sokolov <aesok@post.ru>
11491
11492 * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
11493 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
11494 * config/stormy16/stormy16-protos.h
11495 (xstormy16_preferred_reload_class): Remove.
11496 * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
11497 static. Change 'rclass' argument and return type to reg_class_t.
11498 (TARGET_PREFERRED_RELOAD_CLASS,
11499 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
11500
1c3277ee
RG
115012011-02-24 Richard Guenther <rguenther@suse.de>
11502
11503 * lto-streamer-in.c (input_bb): Do not find referenced vars
11504 in debug statements.
11505
67e18edb
JM
115062011-02-23 Jason Merrill <jason@redhat.com>
11507
11508 * common.opt (fabi-version): Document v5 and v6.
11509
b14fad9d
RG
115102011-02-23 Richard Guenther <rguenther@suse.de>
11511
11512 PR tree-optimization/47849
11513 * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
11514
7fcf46f5
JZ
115152011-02-23 Jie Zhang <jie@codesourcery.com>
11516
11517 * opts-common.c (decode_cmdline_option): Print empty string
11518 argument as "" in decoded->orig_option_with_args_text.
11519 * gcc.c (execute): Print empty string argument as ""
11520 in the verbose output.
11521 (do_spec_1): Keep empty string argument.
11522
f85b70fd
NF
115232011-02-23 Nathan Froyd <froydnj@codesourcery.com>
11524
11525 * config.gcc: Declare score-* and crx-* obsolete.
11526
b152a615
JZ
115272011-02-23 Jie Zhang <jie@codesourcery.com>
11528
11529 PR rtl-optimization/47763
11530 * web.c (web_main): Ignore naked clobber when replacing register.
11531
bb6e77bc
AS
115322011-02-22 Anatoly Sokolov <aesok@post.ru>
11533
11534 * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
11535 Remove.
11536
68bf6491
SP
115372011-02-22 Sebastian Pop <sebastian.pop@amd.com>
11538
11539 PR doc/47848
11540 * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
11541
88ee1fc7
MS
115422011-02-22 Mike Stump <mikestump@comcast.net>
11543
11544 * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
11545 assembler.
11546 * configure: Regenerate.
11547
6042d1dd
CLT
115482011-02-21 Chung-Lin Tang <cltang@codesourcery.com>
11549
11550 PR rtl-optimization/46002
11551 * ira-color.c (update_copy_costs): Change class intersection
11552 test to reg_class_contents[] test of 'hard_regno'.
11553
7de97f9e
JM
115542011-02-21 Joseph Myers <joseph@codesourcery.com>
11555
11556 * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
11557 than Driver option.
11558 * config/hpux11.opt (mt): Likewise.
11559 * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
11560 * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
11561 * config/vax/elf.opt (mno-asm-pic): Likewise.
11562 * config/vms/vms.opt (map, mvms-return-codes): Likewise.
11563
d1d46f9f
MS
115642011-02-21 Mike Stump <mikestump@comcast.net>
11565
11566 PR target/47822
11567 * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
11568 tree so we can get save the type.
11569 * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
11570 for CFString instead of trying to use past the end of the builtins.
11571 * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
11572 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
11573 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
11574 * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
11575 Rename to darwin_builtin_cfstring.
11576 (darwin_init_cfstring_builtins): Return the built type.
11577
23e0d930
UB
115782011-02-21 Uros Bizjak <ubizjak@gmail.com>
11579
11580 PR target/47840
11581 * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
11582 (_mm256_insert_epi64): Use _mm_insert_epi64.
11583
192997cf
AS
115842011-02-21 Anatoly Sokolov <aesok@post.ru>
11585
11586 * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
11587 * config/stormy16/stormy16-protos.h
11588 (xstormy16_mode_dependent_address_p): Remove.
11589 * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
11590 Make static. Change return type to bool. Change argument type to
11591 const_rtx. Remove dead code.
11592 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
11593
e292d003
RG
115942011-02-21 Richard Guenther <rguenther@suse.de>
11595
11596 PR lto/47820
11597 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
11598 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
11599 (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
11600 TUs context.
23e0d930 11601 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
e292d003
RG
11602 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
11603
77f846e9
RG
116042011-02-20 Richard Guenther <rguenther@suse.de>
11605
11606 PR lto/47822
11607 * tree.c (free_lang_data_in_decl): Clean builtins from
11608 the TU decl BLOCK_VARS.
23e0d930 11609
b2cddfc8
AO
116102011-02-19 Alexandre Oliva <aoliva@redhat.com>
11611
11612 PR debug/47620
11613 PR debug/47630
11614 * haifa-sched.c (fix_tick_ready): Skip tick computation
11615 for debug insns.
11616
becf4c11
RG
116172011-02-19 Richard Guenther <rguenther@suse.de>
11618
11619 PR lto/47647
11620 * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
11621 Remove lazy BLOCK_VARS streaming.
11622 (lto_input_ts_block_tree_pointers): Likewise.
11623 * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
11624
27f98305
JM
116252011-02-19 Joseph Myers <joseph@codesourcery.com>
11626
11627 * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
11628
064bf3f4
JM
116292011-02-19 Joseph Myers <joseph@codesourcery.com>
11630
11631 * config/i386/biarch32.h, config/i386/mach.h,
11632 config/rs6000/aix.opt, config/sh/superh64.h: Remove.
11633
9215ddc3
JJ
116342011-02-19 Jakub Jelinek <jakub@redhat.com>
11635
11636 PR target/47800
11637 * config/i386/i386.md (peephole2 for shift and plus): Use
11638 operands[1] original mode in the first insn.
11639
8b021004
MS
116402011-02-18 Mike Stump <mikestump@comcast.net>
11641
65ded153 11642 * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
8b021004 11643
f84ae14c
JH
116442011-02-18 Jan Hubicka <jh@suse.cz>
11645
11646 PR middle-end/47788
65ded153
EB
11647 * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
11648 to zero when the function is not inlinable at all.
f84ae14c 11649
eddabc80
JDA
116502011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11651
11652 * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
11653 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
11654 pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
11655 * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
11656 * config/pa/t-pa64: Likewise.
11657 * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
11658
ca3da783
JJ
116592011-02-18 Jakub Jelinek <jakub@redhat.com>
11660
11661 PR driver/47787
11662 * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
11663
430aa868
JDA
116642011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11665
11666 PR target/47792
11667 * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
11668
4bf7ff7e
AS
116692011-02-18 Anatoly Sokolov <aesok@post.ru>
11670
11671 * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
11672 RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
11673 LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
11674 GO_IF_LEGITIMATE_ADDRESS): Remove macros.
11675 * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
11676 (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
11677 m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
11678 m32r_load_postinc_p, m32r_store_preinc_predec_p,
11679 m32r_legitimate_address_p): New functions.
11680 * config/m32r/constraints.md (constraint "S"): Don't use
11681 STORE_PREINC_PREDEC_P.
11682 (constraint "U"): Don't use LOAD_POSTINC_P.
11683
7efcf910
CLT
116842011-02-18 Chung-Lin Tang <cltang@codesourcery.com>
11685
11686 PR rtl-optimization/46178
11687 * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
11688 compute ira_hard_regno_cover_class[].
11689
237d6259
RG
116902011-02-18 Richard Guenther <rguenther@suse.de>
11691
11692 PR lto/47798
11693 * lto-streamer.h (lto_global_var_decls): Declare.
11694 * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
11695 statics for global var processing.
11696
12d80acc
RG
116972011-02-18 Richard Guenther <rguenther@suse.de>
11698
11699 PR tree-optimization/47737
11700 * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
11701 edge dominance check.
11702
abfea58d
JJ
117032011-02-18 Jakub Jelinek <jakub@redhat.com>
11704
11705 PR debug/47780
11706 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
11707 avoid invalid rtx sharing.
11708
f73c8882
GP
117092011-02-18 Gerald Pfeifer <gerald@pfeifer.com>
11710
11711 * doc/cpp.texi (Obsolete Features): Add background on the
11712 origin of assertions.
11713
d764a8e6
IS
117142011-02-17 Iain Sandoe <iains@gcc.gnu.org>
11715
11716 * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
23e0d930 11717 objc_abi == 2.
d764a8e6
IS
11718 * config/darwin.c (output_objc_section_asm_op): Added support for
11719 ABI v1 and v2.
11720 (is_objc_metadata): New.
11721 (darwin_objc2_section): New.
11722 (darwin_objc1_section): New.
11723 (machopic_select_section): Added support for ABI v1 and v2.
11724 (darwin_emit_objc_zeroed): New.
11725 (darwin_output_aligned_bss): Detect objc metadata and treat it
11726 appropriately.
11727 (darwin_asm_output_aligned_decl_common): Same.
11728 (darwin_asm_output_aligned_decl_local): Same.
11729 * config/darwin-sections.def: Updated for ABI v1 and v2.
11730 * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
11731 compiling Objective-C code for the NeXT runtime, default to using
11732 ABI version 0 for 32-bit, and version 2 for 64-bit.
11733
0a8134ca
JM
117342011-02-17 Joseph Myers <joseph@codesourcery.com>
11735
11736 * common.opt (optimize_fast): New Variable.
11737 * opts.c (default_options_optimization): Use opts->x_optimize_fast
11738 instead of local variable ofast.
11739
0a256240
NP
117402011-02-17 Nicola Pero <nicola.pero@meta-innovation.com>
11741
11742 * doc/invoke.texi (fobjc-abi-version): Documented.
11743 (fobjc-nilcheck): Documented.
11744 (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
11745 version.
11746
fa381cb2
JM
117472011-02-17 Joseph Myers <joseph@codesourcery.com>
11748
11749 PR driver/47390
11750 * common.opt (export-dynamic): New Driver option.
11751 * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
11752
5437eaa6
JM
117532011-02-17 Joseph Myers <joseph@codesourcery.com>
11754
11755 * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
11756
bb7e6d55
AO
117572011-02-17 Alexandre Oliva <aoliva@redhat.com>
11758 Jan Hubicka <jh@suse.cz>
11759
11760 PR debug/47106
11761 PR debug/47402
11762 * cfgexpand.c (account_used_vars_for_block): Remove.
11763 (estimated_stack_frame_size): Use referenced vars.
11764 * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
11765 that were referenced in the original function. Test src_fn
11766 rather than cfun. Drop redundant get_var_ann.
11767 (setup_one_parameter): Drop redundant get_var_ann.
11768 (declare_return_variable): Likewise.
11769 (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
11770 (copy_arguments_for_versioning): Drop redundant get_var_ann.
11771 * ipa-inline.c (compute_inline_parameters): Do not compute
11772 disregard_inline_limits here.
bb7e6d55
AO
11773 (compute_inlinable_for_current, pass_inlinable): New.
11774 (pass_inline_parameters): Require PROP_referenced_vars.
11775 * cgraphunit.c (cgraph_process_new_functions): Don't run
23e0d930 11776 compute_inline_parameters explicitly unless function is in SSA form.
bb7e6d55
AO
11777 (cgraph_analyze_function): Set .disregard_inline_limits.
11778 * tree-sra.c (convert_callers): Compute inliner parameters
11779 only for functions already in SSA form.
11780
f181a8a7
JM
117812011-02-17 Joseph Myers <joseph@codesourcery.com>
11782
11783 * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
11784 -mlittle-endian-data.
11785
c6869789
JM
117862011-02-17 Joseph Myers <joseph@codesourcery.com>
11787
11788 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
11789 -mno-fpu, not -fpu and -no-fpu.
11790 * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
11791 * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
11792
fbf4bfd3
UB
117932011-02-17 Uros Bizjak <ubizjak@gmail.com>
11794
11795 PR target/43653
11796 * config/i386/i386.c (ix86_secondary_reload): Handle SSE
11797 input reload with PLUS RTX.
11798
70be5dc7
JM
117992011-02-16 Joseph Myers <joseph@codesourcery.com>
11800
11801 * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
11802 of InverseVar(MDMX).
11803
30b1646e
JM
118042011-02-16 Joseph Myers <joseph@codesourcery.com>
11805
11806 * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
11807 --m4-340.
11808
ab7b71e9
JM
118092011-02-16 Joseph Myers <joseph@codesourcery.com>
11810
11811 * config/mn10300/mn10300.opt (mno-crt0): New.
11812
466f3f08
JM
118132011-02-16 Joseph Myers <joseph@codesourcery.com>
11814
11815 * config/m68k/uclinux.opt (static-libc): New Driver option.
11816
8226cd7b
JM
118172011-02-16 Joseph Myers <joseph@codesourcery.com>
11818
11819 * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
11820
45cab1d7
JM
118212011-02-16 Joseph Myers <joseph@codesourcery.com>
11822
11823 * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
11824 %{muser-extend-enabled}.
11825
65aab64f
RG
118262011-02-16 Richard Guenther <rguenther@suse.de>
11827
11828 PR tree-optimization/47738
11829 * tree-ssa-loop.c (run_tree_predictive_commoning): Return
11830 the TODO from tree_predictive_commoning.
11831
fc2fa4fb
JL
118322011-02-15 Jeff Law <law@redhat.com>
11833
11834 Revert
11835 2011-01-25 Jeff Law <law@redhat.com>
11836
11837 PR rtl-optimization/37273
11838 * ira-costs.c (scan_one_insn): Detect constants living in memory and
11839 handle them like argument loads from stack slots. Do not double
11840 count memory for memory constants and argument loads from stack slots.
11841
4e380b8e
L
118422011-02-15 H.J. Lu <hongjiu.lu@intel.com>
11843
11844 PR middle-end/47725
11845 * combine.c (cant_combine_insn_p): Revert the last change.
11846
e3a69bb4
MM
118472011-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
11848
11849 PR target/47755
11850 * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
11851 mode for vector constants. Remove code that checks for TImode.
11852
de650422
AO
118532011-02-15 Alexandre Oliva <aoliva@redhat.com>
11854
11855 PR debug/47106
11856 PR debug/47402
11857 * cgraph.h (compute_inline_parameters): Return void.
11858 * ipa-inline.c (compute_inline_parameters): Adjust.
11859
30925d94
AO
118602011-02-15 Alexandre Oliva <aoliva@redhat.com>
11861
11862 PR debug/47106
11863 PR debug/47402
11864 * tree-inline.h (estimated_stack_frame_size): Take cgraph node
11865 rather than decl.
11866 * cfgexpand.c (estimated_stack_frame_size): Likewise.
11867 * ipa-inline.c (compute_inline_parameters): Adjust.
11868
1b9a784a
AO
118692011-02-15 Alexandre Oliva <aoliva@redhat.com>
11870
11871 PR debug/47106
11872 PR debug/47402
11873 * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
11874 Adjust all users. Pass FN to...
11875 * tree-flow-inline.h (first_referenced_var): ... this. Add
11876 fn argument.
11877 * ipa-struct-reorg.c: Adjust.
11878 * tree-dfa.c: Adjust.
11879 * tree-into-ssa.c: Adjust.
11880 * tree-sra.c: Adjust.
11881 * tree-ssa-alias.c: Adjust.
11882 * tree-ssa-live.c: Adjust.
11883 * tree-ssa.c: Adjust.
11884 * tree-ssanames.c: Adjust.
11885 * tree-tailcall.c: Adjust.
11886
27c6b086
AO
118872011-02-15 Alexandre Oliva <aoliva@redhat.com>
11888
11889 PR debug/47106
11890 PR debug/47402
11891 * tree-flow.h (referenced_var_lookup): Add fn parameter.
11892 Adjust all callers.
11893 * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
11894 * tree-flow-inline.h: Adjust.
11895 * gimple-pretty-print.c: Adjust.
11896 * tree-into-ssa.c: Adjust.
11897 * tree-ssa.c: Adjust.
11898 * cfgexpand.c: Adjust.
11899
679e8183
NF
119002011-02-15 Nathan Froyd <froydnj@codesourcery.com>
11901
fbf4bfd3
UB
11902 * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
11903 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11904 (EXTRA_CONSTRAINT): Delete.
11905 * config/iq2000/constraints.md: New file.
11906 * config/iq2000/iq2000.md: Include it.
679e8183
NF
11907 (define_insn ""): Delete.
11908 (movsi_internal2, movhi_internal2, movqi_internal2): Delete
11909 unsupported constraint letters from patterns.
11910 (call_value, call_value_internal1): Likewise.
11911 (call_value_multiple_internal1): Likewise.
11912
a45d420a
NC
119132011-02-15 Nick Clifton <nickc@redhat.com>
11914
11915 * config/mn10300/mn10300.c: Include tm-constrs.h.
11916 (struct liw_data): New data structure describing an LIW candidate
11917 instruction.
11918 (extract_bundle): Use struct liw_data. Allow small integer
11919 operands for some instructions.
11920 (check_liw_constraints): Use struct liw_data. Remove swapped
11921 parameter. Add comments describing the checks. Fix bug when
11922 assigning the source of liw1 to the source of liw2.
11923 (liw_candidate): Delete. Code moved into extract_bundle.
11924 (mn10300_bundle_liw): Use struct liw_data. Check constraints
11925 before swapping.
11926 * config/mn10300/predicates.md (liw_operand): New predicate.
11927 Allows registers and small integer constants.
11928 * config/mn10300/constraints.md (O): New constraint. Accetps
11929 integers in the range -8 to +7 inclusive.
11930 * config/mn10300/mn10300.md (movesi_internal): Add an alternative
11931 for moving a small integer into a register. Give this alternative
11932 LIW attributes.
11933 (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
11934 (ashlsi3): Likewise, plus give LIW attributes to the alternatives
11935 using the J,K,L and M constraints,
11936 (liw): Remove SI mode on second operands to allow for HI and QI
11937 mode values.
11938 (cmp_liw, liw_cmp): Likewise. Plus fix order of operands in the
11939 instruction.
11940
8a73faf1
L
119412011-02-15 H.J. Lu <hongjiu.lu@intel.com>
11942
11943 PR middle-end/47725
11944 * combine.c (cant_combine_insn_p): Check zero/sign extended
11945 hard registers.
11946
48feba28
RG
119472011-02-15 Richard Guenther <rguenther@suse.de>
11948
11949 PR tree-optimization/47743
11950 * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
11951 for a non-type-compatible VN lookup bail out.
11952
ad1c1eeb
NF
119532011-02-15 Nathan Froyd <froydnj@codesourcery.com>
11954
11955 * config/fr30/constraints.md: New file.
11956 * config/fr30/fr30.md: Include it.
11957 * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
11958 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11959 (EXTRA_CONSTRAINT): Delete.
11960
49ac143d
NF
119612011-02-15 Nathan Froyd <froydnj@codesourcery.com>
11962
11963 * config/frv/constraints.md: New file.
11964 * config/frv/predicates.md: Include it.
11965 * config/frv/frv.c (reg_class_from_letter): Delete.
11966 (frv_option_override): Don't initialize it.
11967 * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
11968 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
11969 (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
11970 (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
11971 (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
11972 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11973 (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
11974 (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
11975 (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
11976 (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
11977 (REG_CLASS_FROM_CONSTRAINT): Delete.
11978
c95f9494
JJ
119792011-02-15 Jakub Jelinek <jakub@redhat.com>
11980
11981 PR middle-end/47581
11982 * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
11983 if frame size is 0 in a leaf function.
11984
13aed611
RO
119852011-02-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11986
11987 PR pch/14940
11988 * config/alpha/host-osf.c: New file.
11989 * config/alpha/x-osf: New file.
11990 * config.host (alpha*-dec-osf*): Use it.
11991
b09c3081
AS
119922011-02-14 Anatoly Sokolov <aesok@post.ru>
11993
11994 * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
11995 * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
11996 * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
11997 (rx_mode_dependent_address_p): ...this. Make static. Change argument
11998 type to const_rtx.
11999 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12000
d634083b
NF
120012011-02-14 Nathan Froyd <froydnj@codesourcery.com>
12002
12003 * config/stormy16/constraints.md: New file.
12004 * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
12005 Use satisfies_constraint_Q and satisfies_constraint_R.
12006 * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
12007 Delete.
12008 (xstormy16_legitiamte_address_p): Declare.
12009 * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
12010 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
12011 (EXTRA_CONSTRAINT): Delete.
fbf4bfd3 12012 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
d634083b
NF
12013 Un-staticize.
12014 (xstormy16_extra_constraint_p): Delete.
12015
c7dd803e
EB
120162011-02-14 Eric Botcazou <ebotcazou@adacore.com>
12017
12018 PR tree-optimization/46494
12019 * loop-unroll.c (split_edge_and_insert): Adjust comment.
12020 * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
12021 (pass_rtl_loop_done): Add TODO_verify_flow.
12022 * fwprop.c (pass_rtl_fwprop): Likewise.
12023 * modulo-sched.c (pass_sms): Likewise.
12024 * tree-ssa-dom.c (pass_dominator): Likewise.
12025 * tree-ssa-loop-ch.c (pass_ch): Likewise.
12026 * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
12027 (pass_tree_loop_done): Likewise.
12028 * tree-ssa-pre.c (execute_pre): Likewise.
12029 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
12030 * tree-ssa-sink.c (pass_sink_code): Likewise.
12031 * tree-vrp.c (pass_vrp): Likewise.
12032
c6150df6
NF
120332011-02-14 Nathan Froyd <froydnj@codesourcery.com>
12034
c7dd803e
EB
12035 * config/v850/constraints.md: New file.
12036 * config/v850/v850.md: Include it.
12037 * config/v850/predicates.md (reg_or_0_operand): Use
12038 satisfies_constraint_G.
12039 (special_symbolref_operand): Use satisfies_constraint_K.
12040 * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
12041 (GO_IF_LEGITIMATE_ADDRESS): Likewise.
12042 (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
12043 (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
12044 (EXTRA_CONSTRAINT): Delete.
12045 (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
12046 (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
12047 (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
c6150df6 12048
30dd1ea3
AS
120492011-02-14 Anatoly Sokolov <aesok@post.ru>
12050
12051 PR target/47696
12052 * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
12053 description.
12054
944f4bb3
NF
120552011-02-14 Nathan Froyd <froydnj@codesourcery.com>
12056
12057 * config/mcore/constraints.md: New file.
12058 * config/mcore/mcore.md: Include it.
12059 * config/mcore/mcore.c (reg_class_from_letter): Delete.
12060 * config/mcore/mcore.h (reg_class_from_letter): Delete.
12061 (REG_CLASS_FROM_LETTER): Delete.
12062 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
12063 insn_const_int_ok_for_constraint.
12064 (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
12065 (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
12066 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
12067 (EXTRA_CONSTRAINT): Delete.
12068
ad56a54c
RO
120692011-02-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12070
12071 PR ada/41929
12072 * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
12073 (IS_SIGHANDLER): Define.
12074 (sparc64_is_sighandler): New function, split off from
12075 sparc64_fallback_frame_state.
12076 (sparc_is_sighandler): New function, split off from
12077 sparc_fallback_frame_state.
12078 (sparc64_fallback_frame_state): Merge with ...
12079 (sparc_fallback_frame_state): ... this into ...
12080 (MD_FALLBACK_FRAME_STATE_FOR): ... this.
fbf4bfd3
UB
12081 Change new_cfa to long. Remove regs_off, fpu_save_off, fpu_save.
12082 Define nframes, mctx. Use IS_SIGHANDLER, handler_args, mctx, walk
12083 stack instead of hardcoded offsets.
ad56a54c 12084
fbf4bfd3 120852011-02-14 Andriy Gapon <avg@freebsd.org>
67932abf
AG
12086
12087 PR target/45808
12088 * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
12089
029c8f3e
RW
120902011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12091
12092 * configure: Regenerate.
12093
a016dc83
JM
120942011-02-12 Joseph Myers <joseph@codesourcery.com>
12095
12096 PR driver/45731
12097 * gcc.c (asm_options): Correct spec matching --target-help.
12098
8957a0ec
MJ
120992011-02-12 Martin Jambor <mjambor@suse.cz>
12100
12101 * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
12102 to gimple call error.
12103
6ef828bc
MS
121042011-02-12 Mike Stump <mikestump@comcast.net>
12105
12106 * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
12107 comments in backslash regions.
12108
a4015be5
MS
121092011-02-12 Mike Stump <mikestump@comcast.net>
12110 Jakub Jelinek <jakub@redhat.com>
12111 Iain Sandoe <iains@gcc.gnu.org>
12112
12113 PR target/47324
12114 * dwarf2out.c (output_cfa_loc): When required, apply the
12115 DWARF2_FRAME_REG_OUT macro to adjust register numbers.
12116 (output_loc_sequence): Likewise.
12117 (output_loc_operands_raw): Likewise.
12118 (output_loc_sequence_raw): Likewise.
12119 (output_cfa_loc): Likewise.
12120 (output_loc_list): Suppress register number adjustment when
12121 calling output_loc_sequence()
12122 (output_die): Likewise.
12123
5378dda2
AS
121242011-02-12 Anatoly Sokolov <aesok@post.ru>
12125
12126 * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
12127 Remove macros.
12128 * config/xtensa/xtensa.c (xtensa_register_move_cost,
12129 xtensa_memory_move_cost): New functions.
12130 (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
12131
f3d533d3
AO
121322011-02-12 Alexandre Oliva <aoliva@redhat.com>
12133
12134 PR lto/47225
12135 * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
12136 in the current directory.
12137 * configure: Rebuilt.
12138
9d53403c
IS
121392011-02-12 Iain Sandoe <iains@gcc.gnu.org>
12140
12141 * config/darwin.c (darwin_override_options): Add a hunk missed
fbf4bfd3 12142 from the commit of r168571. Trim comment line lengths and
9d53403c
IS
12143 correct indents of the preceding block.
12144
a350a6c8
IS
121452011-02-12 Iain Sandoe <iains@gcc.gnu.org>
12146
12147 * gcc.c (driver_handle_option): Concatenate the argument to -F with
12148 the switch.
12149
bab79a40
JM
121502011-02-11 Joseph Myers <joseph@codesourcery.com>
12151
12152 * common.opt (nostartfiles): New Driver option.
12153
1bbc6693
XDL
121542011-02-11 Xinliang David Li <davidxl@google.com>
12155
12156 PR tree-optimization/47707
12157 * tree-chrec.c (convert_affine_scev): Keep type precision.
12158
1da7d8c0
EB
121592011-02-11 Eric Botcazou <ebotcazou@adacore.com>
12160
12161 PR tree-optimization/47420
12162 * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
12163
121642011-02-11 Pat Haugen <pthaugen@us.ibm.com>
3f82421f
PH
12165
12166 PR rtl-optimization/47614
12167 * rtl.h (check_for_inc_dec): Declare.
12168 * dse.c (check_for_inc_dec): Externalize...
12169 * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
12170 (reload_cse_simplify_operands): Don't simplify opnds with side effects.
12171
4df47bca
JM
121722011-02-11 Joseph Myers <joseph@codesourcery.com>
12173
12174 PR driver/47678
12175 * gcc.c (main): Do not compile inputs if there were errors in
12176 option handling.
12177 * opts-common.c (read_cmdline_option): Check for wrong language
12178 after other error checks.
12179
61502ca8
NF
121802011-02-11 Nathan Froyd <froydnj@codesourcery.com>
12181
12182 * cgraph.c: Fix comment typos.
12183 * cgraph.h: Likewise.
12184 * cgraphunit.c: Likewise.
12185 * ipa-cp.c: Likewise.
12186 * ipa-inline.c: Likewise.
12187 * ipa-prop.c: Likewise.
12188 * ipa-pure-const.c: Likewise.
12189 * ipa-ref.c: Likewise.
12190 * ipa-reference.c: Likewise.
12191
b63f974e
JJ
121922011-02-11 Jakub Jelinek <jakub@redhat.com>
12193
d50c5e0c
JJ
12194 PR debug/47684
12195 * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
b63f974e 12196
6dd2a13c
RO
121972011-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12198
12199 PR testsuite/47400
12200 * doc/sourcebuild.texi (Require Support): Document
12201 dg-require-ascii-locale.
12202
4a087ccf
MX
122032011-02-11 Mingjie Xing <mingjie.xing@gmail.com>
12204
12205 * doc/lto.texi (Write summary): Fix missing parentheses.
12206
a4403164
DD
122072011-02-10 DJ Delorie <dj@redhat.com>
12208
12209 * config/m32c/m32c.c (m32c_option_override): Disable
12210 -fcombine-stack-adjustments until flag value tracking and compare
12211 optimization can be rewritten.
12212
4fac45bd
PB
122132011-02-10 Peter Bergner <bergner@vnet.ibm.com>
12214
12215 * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
12216 PROCESSOR_POWER7.
12217 (PROCESSOR_DEFAULT64): Likewise.
12218
72602cd1
RH
122192011-02-10 Richard Henderson <rth@redhat.com>
12220
12221 * config/rx/predicates.md (rx_zs_comparison_operator): Revert
12222 change from 2011-02-03.
12223 * config/rx/rx.c (flags_from_code): Likewise.
12224 (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
12225 is valid, n/pz otherwise.
12226 (rx_select_cc_mode): Return CCmode if Y is not zero.
12227
ea57f573
RG
122282011-02-10 Richard Guenther <rguenther@suse.de>
12229
ea4c3e65 12230 * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
ea57f573 12231
92b1d23b
RG
122322011-02-10 Richard Guenther <rguenther@suse.de>
12233
12234 PR tree-optimization/47677
12235 * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
12236
525a2d06
JJ
122372011-02-10 Jakub Jelinek <jakub@redhat.com>
12238
12239 PR target/47665
12240 * combine.c (make_compound_operation): Only change shifts into
12241 multiplication for SCALAR_INT_MODE_P.
12242
06c969bd
JZ
122432011-02-10 Jie Zhang <jie@codesourcery.com>
12244
12245 PR testsuite/47622
12246 Revert
12247 2011-02-05 Jie Zhang <jie@codesourcery.com>
12248 PR debug/42631
12249 * web.c (entry_register): Don't clobber the number of the
12250 first uninitialized reference in used[].
12251
282ec48e
RG
122522011-02-09 Richard Guenther <rguenther@suse.de>
12253
12254 PR tree-optimization/47664
12255 * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
12256 all edges again.
12257
df98c3e8
DE
122582011-02-09 David Edelsohn <dje.gcc@gmail.com>
12259
d0f21cd6
DE
12260 PR target/46481
12261 PR target/47032
df98c3e8
DE
12262 * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
12263 PROCESSOR_POWER7.
12264 (PROCESSOR_DEFAULT64): Same.
12265 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
12266
67b6839f
RO
122672011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12268
12269 * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
12270
4fd73214
MJ
122712011-02-09 Martin Jambor <mjambor@suse.cz>
12272
12273 PR middle-end/45505
12274 * tree-sra.c (struct access): New flags grp_scalar_read and
12275 grp_scalar_write. Changed description of assignment read and write
12276 flags.
12277 (dump_access): Dump new flags, reorder all of them.
12278 (sort_and_splice_var_accesses): Set the new flag accordingly, use them
12279 to detect multiple scalar reads.
12280 (analyze_access_subtree): Use the new scalar read write flags instead
12281 of the old flags. Adjusted comments.
12282
91140cd3
DD
122832011-02-08 DJ Delorie <dj@redhat.com>
12284
12285 PR target/47548
12286 * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
12287 patterns.
12288
4254bbfe
JM
122892011-02-08 Joseph Myers <joseph@codesourcery.com>
12290
12291 * config/m68k/uclinux.opt: New.
12292 * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
12293
f1fda84e
JM
122942011-02-08 Joseph Myers <joseph@codesourcery.com>
12295
12296 * config/cris/elf.opt (sim): New Driver option.
12297
4933ae74
JM
122982011-02-08 Joseph Myers <joseph@codesourcery.com>
12299
12300 * config/xtensa/elf.opt: New.
12301 * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
12302
4ad70280
JM
123032011-02-08 Joseph Myers <joseph@codesourcery.com>
12304
12305 * config/vax/elf.opt: New.
12306 * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
12307
20893707
JM
123082011-02-08 Joseph Myers <joseph@codesourcery.com>
12309
12310 * config/rs6000/aix64.opt (posix, pthread): New Driver options.
12311
b8e7038e
JM
123122011-02-08 Joseph Myers <joseph@codesourcery.com>
12313
12314 * config/gnu-user.opt: New.
12315 * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
12316 *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
12317 *-*-uclinux*): Use gnu-user.opt.
12318
e1c5225a
TS
123192011-02-08 Thomas Schwinge <thomas@schwinge.name>
12320
12321 * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
12322 * config/i386/gnu.h (CPP_SPEC): Likewise.
12323
5e46b0c6
ILT
123242011-02-08 Ian Lance Taylor <iant@google.com>
12325
12326 * common.opt (fcx-limited-range): Add SetByCombined flag.
12327 (ffinite-math-only, fmath-errno, frounding-math): Likewise.
12328 (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
12329 (fassociative-math, freciprocal-math): Likewise.
12330 (funsafe-math-optimizations): Likewise.
12331 * opth-gen.awk: Handle SetByCombined.
12332 * optc-gen.awk: Likewise.
ea4c3e65 12333 * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
5e46b0c6
ILT
12334 (set_unsafe_math_optimizations_flags): Likewise.
12335 * doc/options.texi (Option properties): Document SetByCombined.
12336
32243d46
JM
123372011-02-08 Joseph Myers <joseph@codesourcery.com>
12338
12339 * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
12340 i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
12341 m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
12342 m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
12343 sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
12344
479c1fb3
SP
123452011-02-08 Sebastian Pop <sebastian.pop@amd.com>
12346
12347 PR tree-optimization/46834
12348 PR tree-optimization/46994
12349 PR tree-optimization/46995
12350 * graphite-sese-to-poly.c (used_outside_reduction): New.
12351 (detect_commutative_reduction): Call used_outside_reduction.
12352 (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
12353 translate_scalar_reduction_to_array only when at least one
12354 loop-phi/close-phi tuple has been detected.
12355
3865a06f
RG
123562011-02-08 Richard Guenther <rguenther@suse.de>
12357
12358 PR middle-end/47639
12359 * tree-vect-generic.c (expand_vector_operations_1): Update
12360 stmts here ...
12361 (expand_vector_operations): ... not here. Cleanup EH info
12362 and the CFG if required.
12363
62902f3f
RG
123642011-02-08 Richard Guenther <rguenther@suse.de>
12365
12366 PR tree-optimization/47641
12367 * tree-ssa.c (execute_update_addresses_taken): For asm outputs
12368 require type compatibility.
12369
0efb9d64
AK
123702011-02-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12371
12372 * gimple-low.c (lower_function_body): Don't remove the location of
12373 the return statement here.
12374 (lower_gimple_return): Do it here instead but only if the return
12375 statement is actually used twice.
12376
034b8ae4
RG
123772011-02-08 Richard Guenther <rguenther@suse.de>
12378
12379 PR tree-optimization/47632
12380 * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
12381 unused up_to_stmt parameter, return whether cfg-cleanup is
12382 necessary, remove EH info properly.
12383 (forward_propagate_into_gimple_cond): Adjust caller.
12384 (forward_propagate_into_cond): Likewise.
12385 (forward_propagate_comparison): Likewise.
12386 (tree_ssa_forward_propagate_single_use_vars): Make
12387 forward_propagate_comparison case similar to the two others.
12388
298362c8
NC
123892011-02-08 Nick Clifton <nickc@redhat.com>
12390
12391 * config/mn10300/mn10300.opt (mliw): New command line option.
12392 * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
12393 (liw_bundling): New automaton.
12394 (liw): New attribute.
12395 (liw_op): New attribute.
12396 (liw_op1, liw_op2, liw_both, liw_either): New reservations.
12397 (movsi_internal): Add LIW attributes.
12398 (andsi3): Likewise.
12399 (iorsi3): Likewise.
12400 (xorsi3): Likewise.
12401 (addsi3): Separate register and immediate alternatives.
12402 Add LIW attributes.
12403 (subsi3): Likewise.
12404 (cmpsi): Likewise.
12405 (aslsi3): Likewise.
12406 (lshrsi3): Likewise.
12407 (ashrsi3): Likewise.
12408 (liw): New pattern.
12409 * config/mn10300/mn10300.c (liw_op_names): New
12410 (mn10300_print_operand): Handle 'W' operand descriptor.
12411 (extract_bundle): New function.
12412 (check_liw_constraints): New function.
12413 (liw_candidate): New function.
12414 (mn10300_bundle_liw): New function.
12415 (mn10300_reorg): New function.
12416 (TARGET_MACHINE_DEPENDENT_REORG): Define.
12417 (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
12418 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
12419 __LIW__ or __NO_LIW__.
12420 * doc/invoke.texi: Describe the -mliw command line option.
12421
90488014
JDA
124222011-02-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12423
12424 * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
12425 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
12426 pthread_mutex_unlock): Remove.
12427 * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
12428 * config/pa/t-pa64: Likewise.
12429 * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
12430 shared libc if not linking against libpthread.
12431 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
12432
689ff841
IS
124332011-02-07 Iain Sandoe <iains@gcc.gnu.org>
12434
12435 PR target/47558
12436 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
12437 on 10.6 and later to ensure that we always use the unwinder from
12438 the system. Only add -no_compact_unwind when tarteting darwin
12439 10.6 or later.
12440
821014aa
SE
124412011-02-07 Steve Ellcey <sje@cup.hp.com>
12442
12443 PR target/46997
12444 * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
12445 (vec_interleave_lowv2sf): Ditto.
12446 (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
12447 (vec_extract_oddv2sf): Ditto.
12448
41cf94fb
MS
124492011-02-07 Mike Stump <mikestump@comcast.net>
12450
62dea57d 12451 PR target/42333
41cf94fb
MS
12452 Add __ieee_divdc3 entry point.
12453 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
12454 entry point.
12455 (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
12456 * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
12457 * config/darwin.c (darwin_rename_builtins): Add.
12458 * config/darwin-protos.h (darwin_rename_builtins): Add.
12459
ee09a3dd
MM
124602011-02-07 Michael Meissner <meissner@linux.vnet.ibm.com>
12461
12462 PR target/47636
12463 * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
12464 for the condition.
12465
83296cd0
MS
124662011-02-07 Mike Stump <mikestump@comcast.net>
12467
ea4c3e65 12468 * config/darwin.opt (mmacosx-version-min): Update default OS version.
83296cd0 12469
0f4e946f
DC
124702011-02-07 Denis Chertykov <chertykov@gmail.com>
12471
12472 PR target/47534
12473 * config/avr/libgcc.S (exit): Move .endfunc
12474
1ec87690
RG
124752011-02-07 Richard Guenther <rguenther@suse.de>
12476
12477 PR tree-optimization/47615
12478 * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
12479 * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
12480 (run_scc_vn): Initialize it.
12481 (visit_reference_op_load): Use it.
12482 * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
12483
b46ae6da
UW
124842011-02-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12485
12486 * config/spu/spu.c (spu_init_libfuncs): Install SImode and
12487 DImode trapping arithmetic libfuncs.
12488
c0aae19c
RG
124892011-02-07 Richard Guenther <rguenther@suse.de>
12490
12491 PR tree-optimization/47621
12492 * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
12493 two duplicates ...
12494 (execute_update_addresses_taken): ... here. Make it more
12495 conservative in what we accept.
12496
295d926b
JM
124972011-02-06 Joseph Myers <joseph@codesourcery.com>
12498
12499 * config/sparc/freebsd.h (ASM_SPEC): Define.
12500 * config/sparc/vxworks.h (ASM_SPEC): Define.
12501
bdeb2471
JM
125022011-02-06 Joseph Myers <joseph@codesourcery.com>
12503
12504 * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
12505
d5d3781a
SB
125062011-02-06 Steven Bosscher <steven@gcc.gnu.org>
12507
12508 * doc/invoke.texi: Remove reference to compiler internals from
12509 user documentation.
12510
12511 * reg-notes.def: Remove REG_VALUE_PROFILE.
12512 * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
12513
c42c09fc
JJ
125142011-02-05 Jakub Jelinek <jakub@redhat.com>
12515
12516 PR middle-end/47610
12517 * varasm.c (default_section_type_flags): If decl is NULL,
38be4072 12518 and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
c42c09fc 12519
beea2755
JZ
125202011-02-05 Jie Zhang <jie@codesourcery.com>
12521
12522 PR debug/42631
12523 * web.c (entry_register): Don't clobber the number of the
12524 first uninitialized reference in used[].
12525
a130584a
SP
125262011-02-04 Sebastian Pop <sebastian.pop@amd.com>
12527
12528 PR tree-optimization/46194
12529 * tree-data-ref.c (analyze_miv_subscript): Remove comment.
12530 (build_classic_dist_vector_1): Do not represent classic distance
12531 vectors when the access functions are variating in different loops.
12532
962101ac
JM
125332011-02-04 Joseph Myers <joseph@codesourcery.com>
12534
12535 * config/mips/iris6.opt: New.
12536 * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
12537
55eaaa5b
RH
125382011-02-04 Richard Henderson <rth@redhat.com>
12539 Steve Ellcey <sje@cup.hp.com>
12540
12541 PR target/46997
12542 * config/ia64/predicates.md (mux1_brcst_element): New.
12543 * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
12544 * config/ia64/ia64.c (ia64_unpack_assemble): New.
12545 (ia64_unpack_sign): New.
12546 (ia64_expand_unpack): Rewrite using new routines.
12547 (ia64_expand_widen_sum): Ditto.
12548 (ia64_expand_dot_prod_v8qi): Ditto.
12549 * config/ia64/vect.md (mulv8qi3): Rewrite to use new
12550 routines, add endian check.
12551 (pmpy2_even): Rename from pmpy2_r, add endian check.
12552 (pmpy2_odd): Rename from pmpy2_l, add endian check.
12553 (vec_widen_smult_lo_v4hi): Rewrite using new routines.
12554 (vec_widen_smult_hi_v4hi): Ditto.
12555 (vec_widen_umult_lo_v4hi): Ditto.
12556 (vec_widen_umult_hi_v4hi): Ditto.
12557 (mulv2si3): Change endian checks.
12558 (sdot_prodv4hi): Rewrite with new calls.
12559 (udot_prodv4hi): New.
12560 (vec_pack_ssat_v4hi): Add endian check.
12561 (vec_pack_usat_v4hi): Ditto.
12562 (vec_pack_ssat_v2si): Ditto.
12563 (max1_even): Rename from max1_r, add endian check.
12564 (max1_odd): Rename from max1_l, add endian check.
12565 (*mux1_rev): Format change.
12566 (*mux1_mix): Ditto.
12567 (*mux1_shuf): Ditto.
12568 (*mux1_alt): Ditto.
12569 (*mux1_brcst_v8qi): Use new predicate.
12570 (vec_extract_evenv8qi): Remove endian check.
12571 (vec_extract_oddv8qi): Ditto.
12572 (vec_interleave_lowv4hi): Format change.
12573 (vec_interleave_highv4hi): Ditto.
12574 (mix2_even): Rename from mix2_r, add endian check.
12575 (mix2_odd): Rename from mux2_l, add endian check.
12576 (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
12577 (vec_extract_evenodd_helper): Format change.
12578 (vec_extract_evenv4hi): Remove endian check.
12579 (vec_extract_oddv4hi): Remove endian check.
12580 (vec_interleave_lowv2si): Format change.
12581 (vec_interleave_highv2si): Format change.
12582 (vec_initv2si): Remove endian check.
12583 (vecinit_v2si): Add endian check.
12584 (reduc_splus_v2sf): Add endian check.
12585 (reduc_smax_v2sf): Ditto.
12586 (reduc_smin_v2sf): Ditto.
12587 (vec_initv2sf): Remove endian check.
12588 (fpack): Add endian check.
12589 (fswap): Add endian check.
12590 (vec_interleave_highv2sf): Add endian check.
12591 (vec_interleave_lowv2sf): Add endian check.
12592 (fmix_lr): Add endian check.
12593 (vec_setv2sf): Format change.
12594 (*vec_extractv2sf_0_be): Use shift to extract operand.
12595 (*vec_extractv2sf_1_be): New.
12596 (vec_pack_trunc_v4hi): Add endian check.
12597 (vec_pack_trunc_v2si): Format change.
12598
dcde5957
JJ
125992011-02-04 Jakub Jelinek <jakub@redhat.com>
12600
12601 PR inline-asm/23200
12602 * tree-ssa-ter.c (is_replaceable_p): Add TER argument. Don't
38be4072 12603 do bb, locus and block comparison and disallow loads if it is not set.
dcde5957
JJ
12604 (stmt_is_replaceable_p): New function.
12605 (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
12606 callers.
12607 * expr.c (expand_expr_real_1) <case SSA_NAME>: If
12608 get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
12609 SSA_NAME_DEF_STMT.
12610 * tree-flow.h (stmt_is_replaceable_p): New prototype.
12611
a64a8e5a
JM
126122011-02-04 Joseph Myers <joseph@codesourcery.com>
12613
12614 * config/rs6000/xilinx.opt: New.
12615 * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
12616
4da2ed2f
JM
126172011-02-04 Joseph Myers <joseph@codesourcery.com>
12618
12619 * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
12620
a6e508f9
AS
126212011-02-03 Anatoly Sokolov <aesok@post.ru>
12622
12623 * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
12624 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
12625 * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
12626 secondary_reload_info, xtensa_secondary_reload): Remove.
12627 * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
12628 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
12629 (xtensa_preferred_reload_class): Make static. Change return and
12630 'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
12631 Use CONST_DOUBLE_P predicate.
12632 (xtensa_preferred_output_reload_class): New function.
12633 (xtensa_secondary_reload): Make static.
12634
82dc0de3
JM
126352011-02-03 Joseph Myers <joseph@codesourcery.com>
12636
12637 * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
12638 Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
12639 Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
12640
7fece979
JJ
126412011-02-03 Jakub Jelinek <jakub@redhat.com>
12642
12643 PR middle-end/31490
12644 * output.h (SECTION_RELRO): Define.
12645 (SECTION_MACH_DEP): Adjust.
12646 (get_variable_section): New prototype.
12647 * varpool.c (varpool_finalize_named_section_flags): New function.
12648 (varpool_assemble_pending_decls): Call it.
12649 * cgraph.h (varpool_finalize_named_section_flags): New prototype.
12650 * cgraphunit.c (cgraph_output_in_order): Call
12651 varpool_finalize_named_section_flags.
12652 * varasm.c (get_section): Allow section flags conflicts between
12653 relro and read-only sections if the section hasn't been declared yet.
12654 Set SECTION_OVERRIDE after diagnosing section type conflict.
12655 (get_variable_section): No longer static.
12656 (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
12657 readonly sections that need relocations.
12658 (decl_readonly_section_1): New function.
12659 (decl_readonly_section): Use it.
12660
12661 Revert:
509d65dd 12662 2010-11-17 Dinar Temirbulatov <dtemirbulatov@gmail.com>
7fece979
JJ
12663 Steve Ellcey <sje@cup.hp.com>
12664
12665 PR middle-end/31490
12666 * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
12667 if section attribute used.
12668
d18d5478
JJ
126692011-02-03 Jakub Jelinek <jakub@redhat.com>
12670
12671 * config/darwin.h (SECTION_NO_ANCHOR): Remove.
12672 * config/darwin.c (SECTION_NO_ANCHOR): Define.
12673 (darwin_init_sections): Remove assertion.
12674
6479ed4b
NC
126752011-02-03 Nick Clifton <nickc@redhat.com>
12676
12677 * config/rx/predicates.md (rx_zs_comparison_operator): Remove
12678 lt and ge.
38be4072 12679 * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
6479ed4b
NC
12680 * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
12681 instead of "n" and "pz".
12682 (flags_from_code): LT and GE tests need CC_FLAG_O as well as
12683 CC_FLAG_S.
12684
89843f5d
JJ
126852011-02-03 Jakub Jelinek <jakub@redhat.com>
12686
65450d64
JJ
12687 PR target/47312
12688 * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
12689 fma, expand FMA_EXPR as fma{,f,l} call.
12690
7d58701c
JJ
12691 PR lto/47274
12692 * lto-streamer-out.c (write_symbol): When writing kind and visibility,
12693 copy them into a unsigned char variable and pass address of it to
12694 lto_output_data_stream.
12695
89843f5d
JJ
12696 PR target/47564
12697 * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
12698 around backend_init_target and lang_dependent_init_target calls.
12699 * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
12700 (verify_cgraph_node): Don't call set_cfun here. Use
12701 cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
12702 Set error_found for incorrectly represented calls to thunks.
12703
4deef538
AO
127042011-02-03 Alexandre Oliva <aoliva@redhat.com>
12705
12706 PR debug/43092
12707 PR rtl-optimization/43494
12708 * rtl.h (for_each_inc_dec_fn): New type.
12709 (for_each_inc_dec): Declare.
12710 * rtlanal.c (struct for_each_inc_dec_ops): New type.
12711 (for_each_inc_dec_find_inc_dec): New fn.
12712 (for_each_inc_dec_find_mem): New fn.
12713 (for_each_inc_dec): New fn.
12714 * dse.c (struct insn_size): Remove.
12715 (replace_inc_dec, replace_inc_dec_mem): Remove.
12716 (emit_inc_dec_insn_before): New fn.
12717 (check_for_inc_dec): Use it, along with for_each_inc_dec.
12718 (canon_address): Pass mem modes to cselib_lookup.
12719 * cselib.h (cselib_lookup): Add memmode argument. Adjust callers.
12720 (cselib_lookup_from_insn): Likewise.
12721 (cselib_subst_to_values): Likewise.
12722 * cselib.c (find_slot_memmode): New var.
12723 (cselib_find_slot): New fn. Use it instead of
12724 htab_find_slot_with_hash everywhere.
12725 (entry_and_rtx_equal_p): Use find_slot_memmode.
12726 (autoinc_split): New fn.
12727 (rtx_equal_for_cselib_p): Rename and implement in terms of...
12728 (rtx_equal_for_cselib_1): ... this. Take memmode, pass it on.
12729 Deal with autoinc. Special-case recursion into MEMs.
12730 (cselib_hash_rtx): Likewise.
12731 (cselib_lookup_mem): Infer pmode from address mode. Distinguish
12732 address and MEM modes.
12733 (cselib_subst_to_values): Add memmode, pass it on.
12734 Deal with autoinc.
12735 (cselib_lookup): Add memmode argument, pass it on.
12736 (cselib_lookup_from_insn): Add memmode.
12737 (cselib_invalidate_rtx): Discard obsolete push_operand handling.
12738 (struct cselib_record_autoinc_data): New.
12739 (cselib_record_autoinc_cb): New fn.
12740 (cselib_record_sets): Use it, along with for_each_inc_dec. Pass MEM
12741 mode to cselib_lookup. Reset autoinced REGs here instead of...
12742 (cselib_process_insn): ... here.
12743 * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
12744 to cselib_lookup.
12745 (add_uses): Likewise, also to cselib_subst_to_values.
12746 (add_stores): Likewise.
12747 * sched-deps.c (add_insn_mem_dependence): Pass mode to
12748 cselib_subst_to_values.
12749 (sched_analyze_1, sched_analyze_2): Likewise. Adjusted.
12750 * gcse.c (do_local_cprop): Adjusted.
12751 * postreload.c (reload_cse_simplify_set): Adjusted.
12752 (reload_cse_simplify_operands): Adjusted.
12753 * sel-sched-dump (debug_mem_addr_value): Pass mode.
12754
1551d44a
AO
127552011-02-03 Alexandre Oliva <aoliva@redhat.com>
12756
12757 PR tree-optimization/45122
12758 * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
12759 unsafe assumptions when there's more than one loop exit.
12760
c9485473
MM
127612011-02-02 Michael Meissner <meissner@linux.vnet.ibm.com>
12762
12763 PR target/47272
12764 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
12765 Document using vector double with the load/store builtins, and
12766 that the load/store builtins always use Altivec instructions.
12767
12768 * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
12769 to use altivec memory instructions, even on VSX.
12770 (vector_altivec_store_<mode>): Ditto.
12771
12772 * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
12773 function.
12774
12775 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
12776 V2DF, V2DI support to load/store overloaded builtins.
12777
12778 * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
12779 altivec load/store builtins for V2DF/V2DI types.
12780
12781 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
12782 set avoid indexed addresses on power6 if -maltivec.
12783 (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
12784 vector_altivec_load/vector_altivec_store builtins.
12785 (altivec_expand_st_builtin): Ditto.
12786 (altivec_expand_builtin): Add VSX memory builtins.
12787 (rs6000_init_builtins): Add V2DI types to internal types.
12788 (altivec_init_builtins): Add support for V2DF/V2DI altivec
12789 load/store builtins.
12790 (rs6000_address_for_altivec): Insure memory address is appropriate
12791 for Altivec.
12792
12793 * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
12794 vec_vsx_ld and vec_vsx_st.
12795 (vsx_store_<mode>): Ditto.
12796
12797 * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
12798 variables to hold long long types for VSX vector memory builtins.
12799 (RS6000_BTI_unsigned_long_long): Ditto.
12800 (long_long_integer_type_internal_node): Ditti.
12801 (long_long_unsigned_type_internal_node): Ditti.
12802
12803 * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
12804 (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
12805 (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
12806
12807 * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
12808 short cuts.
12809 (vec_vsx_st): Ditto.
12810
b24d1acf
JM
128112011-02-02 Joseph Myers <joseph@codesourcery.com>
12812
12813 * config/pa/pa-hpux10.opt: New.
12814 * config/hpux11.opt (pthread): New Driver option.
12815 * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
12816 * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
12817
aa18dd0f
JM
128182011-02-02 Joseph Myers <joseph@codesourcery.com>
12819
12820 * config/ia64/vms.opt: New.
12821 * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
12822
28fc3eee
MM
128232011-02-01 Michael Meissner <meissner@linux.vnet.ibm.com>
12824
12825 PR target/47580
12826 * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
12827 gpc_reg_operand instead of vsx_register_operand to match rs6000.md
12828 generator functions.
12829 (vsx_floatuns<VSi><mode>2): Ditto.
12830 (vsx_fix_trunc<mode><VSi>2): Ditto.
12831 (vsx_fixuns_trunc<mode><VSi>2): Ditto.
12832
b5838b1f
JM
128332011-02-02 Joseph Myers <joseph@codesourcery.com>
12834
12835 * config/i386/djgpp.opt (posix): New Driver option.
12836
0db8fa89
GP
128372011-02-02 Gerald Pfeifer <gerald@pfeifer.com>
12838
12839 * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
12840 Move to the unsupported targets list.
12841
9cd4f22a
PB
128422011-02-02 Peter Bergner <bergner@vnet.ibm.com>
12843
12844 PR rtl-optimization/47525
12845 * df-scan.c: Update copyright years.
12846 (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
12847 and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
12848
9ed8059c
RO
128492011-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12850
12851 * config/i386/sysv4.h (TARGET_VERSION): Remove.
12852 (SUBTARGET_RETURN_IN_MEMORY): Remove.
12853 (ASM_OUTPUT_ASCII): Remove.
12854 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
12855
2a737389
JL
128562011-02-02 Jeff Law <law@redhat.com>
12857
12858 PR middle-end/47543
12859 * reload.c (find_reloads_address): Handle reg+d address where both
12860 components are invalid by reloading the entire address.
12861
9dac82c4
SP
128622011-02-02 Sebastian Pop <sebastian.pop@amd.com>
12863 Richard Guenther <rguenther@suse.de>
12864
12865 PR tree-optimization/40979
12866 PR bootstrap/47044
12867 * passes.c (init_optimization_passes): After LIM call copy_prop
12868 and DCE to clean up.
12869 * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
12870
14dd9aab
SP
128712011-02-02 Sebastian Pop <sebastian.pop@amd.com>
12872
12873 PR tree-optimization/47576
12874 PR tree-optimization/47555
12875 * doc/invoke.texi (scev-max-expr-complexity): Documented.
12876 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
12877 (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
12878 * tree-scalar-evolution.c (follow_ssa_edge): Use
12879 PARAM_SCEV_MAX_EXPR_COMPLEXITY.
12880
5cbf5c20
RG
128812011-02-02 Richard Guenther <rguenther@suse.de>
12882
12883 PR tree-optimization/47566
12884 * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
12885
83d70792
AO
128862011-02-02 Alexandre Oliva <aoliva@redhat.com>
12887
e829c321
AO
12888 PR debug/47106
12889 PR debug/47402
12890 * tree-inline.c (declare_return_variable): Remove unused caller
12891 variable.
12892
83d70792
AO
12893 PR debug/47106
12894 PR debug/47402
12895 * tree-flow-inline.h (clear_is_used, is_used_p): New.
12896 * cfgexpand.c (account_used_vars_for_block): Use them.
12897 * tree-nrv.c (tree_nrv): Likewise.
12898 * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
12899 (dump_scope_block): Likewise.
12900 (remove_unused_locals): Likewise.
12901
aaa2ac93
AO
12902 PR debug/47106
12903 PR debug/47402
12904 * tree-inline.c (declare_return_variable): Add result decl to
12905 local decls only once.
12906 * gimple-low.c (record_vars_into): Mark newly-created variables
12907 as referenced.
12908
a59d15cf
AO
129092011-02-02 Alexandre Oliva <aoliva@redhat.com>
12910
12911 PR debug/47498
12912 PR debug/47501
12913 PR debug/45136
12914 PR debug/45130
12915 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
12916 debug insns.
12917 (no_real_insns_p, schedule_block, set_priorities): Drop special
12918 treatment of boundary debug insns.
38be4072 12919 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
a59d15cf
AO
12920 * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
12921 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
12922 (BOUNDARY_DEBUG_INSN_P): Likewise.
12923 (SCHEDULE_DEBUG_INSN_P): Likewise.
12924 * sched-rgn.c (init_ready_list): Drop special treatment of
12925 boundary debug insns.
12926 * final.c (rest_of_clean_state): Clear notes' BB.
12927
6fc2f091
JM
129282011-02-01 Joseph Myers <joseph@codesourcery.com>
12929
12930 * config/openbsd.opt (assert=): New Driver option.
12931
fc523387
JM
129322011-02-01 Joseph Myers <joseph@codesourcery.com>
12933
12934 * config/i386/nto.opt: New.
12935 * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
12936
6d9821e5
JM
129372011-02-01 Joseph Myers <joseph@codesourcery.com>
12938
12939 * config/i386/netware.opt: New.
12940 * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
12941
cef932d4
JM
129422011-02-01 Joseph Myers <joseph@codesourcery.com>
12943
12944 * config/interix.opt (posix): New Driver option.
12945
22843acd
DD
129462011-02-01 DJ Delorie <dj@redhat.com>
12947
56490b74
DD
12948 * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
12949
22843acd
DD
12950 * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
12951 class for A0/A1.
12952
199c8f2f
SP
129532011-02-01 Sebastian Pop <sebastian.pop@amd.com>
12954
12955 PR tree-optimization/47561
12956 * toplev.c (process_options): Print the Graphite flags. Add
12957 flag_loop_flatten to the list of options requiring Graphite.
12958
926bcf22
JM
129592011-02-01 Joseph Myers <joseph@codesourcery.com>
12960
12961 * config/i386/cygming.opt (posix): New Driver option.
12962
59793c51
JM
129632011-02-01 Joseph Myers <joseph@codesourcery.com>
12964
12965 * config/arm/vxworks.opt: New.
12966 * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
12967
183c38a4
JM
129682011-02-01 Joseph Myers <joseph@codesourcery.com>
12969
12970 * config/alpha/elf.opt: New.
12971 * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
12972 alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
12973
9939e416
RG
129742011-02-01 Richard Guenther <rguenther@suse.de>
12975
12976 PR tree-optimization/47559
12977 * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
12978 store-motion on references that can throw.
12979
4a3c9687
BS
129802011-02-01 Bernd Schmidt <bernds@codesourcery.com>
12981
12982 * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
12983 * tree-pass.h (TDF_CSELIB): New macro.
12984 * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
12985 cselib_lookup): Check for it rather than for TDF_DETAILS.
12986
dd3b31fb
L
129872011-02-01 H.J. Lu <hongjiu.lu@intel.com>
12988
12989 PR driver/47547
12990 * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
12991 is HOST_BIT_BUCKET.
12992
12993 * opts.c (finish_options): Don't add x_aux_base_name if it is
12994 HOST_BIT_BUCKET.
12995
34c1de79
RG
129962011-02-01 Richard Guenther <rguenther@suse.de>
12997
12998 PR tree-optimization/47555
12999 Revert
13000 2010-07-15 Sebastian Pop <sebastian.pop@amd.com>
13001
13002 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
13003
dd2804d2
SB
130042011-02-01 Sebastien Bourdeauducq <sebastien@milkymist.org>
13005
13006 PR gcc/46692
13007 * config/lm32/t-lm32: Add multilib for all CPU options.
13008
3fd3b156
RG
130092011-02-01 Richard Guenther <rguenther@suse.de>
13010
13011 PR tree-optimization/47541
13012 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
13013 sure to have a field at offset zero.
13014
f16072b6
JM
130152011-01-31 Joseph Myers <joseph@codesourcery.com>
13016
13017 * config/arc/arc.opt (EB, EL): New Driver options.
13018
6456cf2e
JM
130192011-01-31 Joseph Myers <joseph@codesourcery.com>
13020
13021 * config/alpha/osf5.opt: New.
13022 * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
13023
cdde6ab4
JM
130242011-01-31 Joseph Myers <joseph@codesourcery.com>
13025
13026 * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
13027
7633415c
SP
130282011-01-31 Sebastian Pop <sebastian.pop@amd.com>
13029
13030 * common.opt (ftree-loop-linear): Use Alias to make it an alias of
13031 -floop-interchange.
13032 * invoke.texi (-ftree-loop-linear): Make it clear that this flag
13033 is an alias of -floop-interchange and that it requires the
13034 Graphite infrastructure.
13035 * tree-ssa-loop.c (gate_graphite_transforms): Do not set
13036 flag_loop_interchange based on the value of flag_tree_loop_linear.
13037
0425d6f5
JJ
130382011-01-31 Jakub Jelinek <jakub@redhat.com>
13039 Richard Guenther <rguenther@suse.de>
13040
13041 PR tree-optimization/47538
13042 * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
13043 type instead of r1type, except for comparisons. For right
13044 shifts and comparisons punt if there are mismatches in
13045 sizetype vs. non-sizetype types.
13046
500b16c3
RO
130472011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13048
13049 * doc/sourcebuild.texi (Effective-Target Keywords): Document
13050 avx_runtime.
13051
e279edb0
RO
130522011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13053
13054 * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
13055 version number.
13056 * configure: Regenerate.
13057
c6092243
RO
130582011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13059
13060 * configure.ac (gcc_cv_ld_static_option): Define.
13061 (gcc_cv_ld_dynamic_option): Define.
13062 (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
13063 instead.
13064 (HAVE_LD_STATIC_DYNAMIC): Update message.
13065 (LD_STATIC_OPTION): Define.
13066 (LD_DYNAMIC_OPTION): Define.
13067 * configure: Regenerate.
13068 * config.in: Regenerate.
13069 * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
13070 HAVE_LD_STATIC_DYNAMIC]: Use them.
13071
d7862be3
NC
130722011-01-31 Nick Clifton <nickc@redhat.com>
13073
13074 * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
13075 registers inside interrupt handlers if the handler is not a leaf
13076 function.
13077
ba4ec0e0
NC
130782011-01-31 Nick Clifton <nickc@redhat.com>
13079
13080 * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
13081 reg_renumber returning an INVALID_REGNUM.
13082
29a63921
AO
130832011-01-31 Alexandre Oliva <aoliva@redhat.com>
13084
13085 PR libgcj/44341
13086 * doc/install.texi: Document host options discarded when cross
13087 configuring target libraries.
13088
ef591d3f
AO
130892011-01-31 Alexandre Oliva <aoliva@redhat.com>
13090
13091 Reverted:
13092 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
13093 PR debug/45136
13094 PR debug/45130
13095 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
13096 debug insns.
13097 (no_real_insns_p, schedule_block, set_priorities): Drop special
13098 treatment of boundary debug insns.
38be4072 13099 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
ef591d3f
AO
13100 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
13101 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
13102 (BOUNDARY_DEBUG_INSN_P): Likewise.
13103 (SCHEDULE_DEBUG_INSN_P): Likewise.
13104 * sched-rgn.c (init_ready_list): Drop special treatment of
13105 boundary debug insns.
13106 * final.c (rest_of_clean-state): Clear notes' BB.
13107
61052244
AM
131082011-01-31 Alan Modra <amodra@gmail.com>
13109
13110 * config/rs6000/rs6000.c (print_operand): Rearrange addends in
13111 toc relative expressions as we do in print_operand_address.
13112
c4c8962b
KH
131132011-01-30 Kazu Hirata <kazu@codesourcery.com>
13114
13115 * doc/extend.texi: Follow spelling conventions.
13116 * doc/invoke.texi: Fix a typo.
13117
e543b94c
JM
131182011-01-30 Joseph Myers <joseph@codesourcery.com>
13119
13120 * config/hpux11.opt: New.
13121 * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
13122 ia64*-*-hpux*): Use hpux11.opt.
13123
509d65dd 131242011-01-30 Jonathan Yong <jon_y@users.sourceforge.net>
a70e0551
JY
13125
13126 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
13127 to tmake_file.
13128
7be03a0e
GP
131292011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
13130
13131 * doc/install.texi (hppa-hp-hpux10): Remove references to HP
13132 support sites.
13133
419d1d37
GP
131342011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
13135
b596ed64
GP
13136 * doc/install.texi (Binaries): Remove outdated reference for
13137 Motorola 68HC11/68HC12 downloads.
13138
131392011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
61052244 13140
419d1d37
GP
13141 * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
13142 Drepper's paper.
13143
4406d0e9
JW
131442011-01-29 Jonathan Wakely <jwakely.gcc@gmail.com>
13145
13146 PR bootstrap/47147
13147 * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
13148 used by NetBSD.
13149
38be4072 131502011-01-28 Ahmad Sharif <asharif@google.com>
e0b77418
AS
13151
13152 * value-prof.c (check_counter): Corrected error message.
13153
0cd98787
JZ
131542011-01-29 Jie Zhang <jie@codesourcery.com>
13155
13156 * config/arm/arm.c (arm_legitimize_reload_address): New.
13157 * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
13158 arm_legitimize_reload_address.
38be4072 13159 * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
0cd98787 13160
9b798ac5
ILT
131612011-01-28 Ian Lance Taylor <iant@google.com>
13162
13163 * godump.c (go_define): Ignore macros whose definitions include
13164 two adjacent operands.
13165
591e29d9
JJ
131662011-01-28 Jakub Jelinek <jakub@redhat.com>
13167
13168 PR target/42894
13169 * varasm.c (force_const_mem): Store copy of x in desc->constant
13170 instead of x itself.
13171 * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
13172 itself into REG_EQUAL note.
13173
62dcc44a
JM
131742011-01-28 Joseph Myers <joseph@codesourcery.com>
13175
13176 * config/freebsd.opt (posix, rdynamic): New Driver options.
13177
c9f58b9a
RO
131782011-01-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13179
13180 * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
13181 -Bstatic/-Bdynamic.
13182 * configure: Regenerate.
13183
5f02b9db
JM
131842011-01-27 Joseph Myers <joseph@codesourcery.com>
13185
13186 * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
13187 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
13188
5df97412
AS
131892011-01-27 Anatoly Sokolov <aesok@post.ru>
13190
13191 * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
13192 * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
13193 * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
13194 (s390_preferred_reload_class): Make static. Change return and
13195 'rclass' argument type to reg_class_t.
13196
779d4b91
JH
131972011-01-27 Jan Hubicka <jh@suse.cz>
13198
13199 PR middle-end/46949
13200 * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
13201 (process_function_and_variable_attributes): Check defined weakrefs.
13202
e80b21ed
MJ
132032011-01-27 Martin Jambor <mjambor@suse.cz>
13204
13205 PR tree-optimization/47228
13206 * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
13207 build_ref_for_offset.
13208
6dcc4f31
UW
132092011-01-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13210
13211 * config/spu/spu-elf.h (ASM_SPEC): Remove.
13212
509d65dd 132132011-01-26 Mikael Pettersson <mikpe@it.uu.se>
3b8ff89f
MP
13214
13215 PR rtl-optimization/46856
13216 * postreload.c (reload_combine_recognize_const_pattern): Do not
13217 separate cc0 setter and user on cc0 targets.
13218
04af8788
NP
132192011-01-26 Nicola Pero <nicola.pero@meta-innovation.com>
13220
13221 PR c/43082
13222 * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
13223 passed a VOID_TYPE expression, immediately emit an error and
13224 return error_mark_node.
13225
f7a60085
JL
132262011-01-26 Jeff Law <law@redhat.com>
13227
13228 PR rtl-optimization/47464
13229 * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
13230 rather than may_trap_p as needed.
13231
5c2917ec
DD
132322011-01-26 DJ Delorie <dj@redhat.com>
13233
13234 PR rtl-optimization/46878
13235 * combine.c (insn_a_feeds_b): Check for the implicit cc0
13236 setter/user dependency as well.
13237
bef16e87
EB
132382011-01-26 Eric Botcazou <ebotcazou@adacore.com>
13239
13240 PR rtl-optimization/44469
13241 * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
13242 after removing trivially dead basic blocks.
13243
c75d884b
JM
132442011-01-26 Joseph Myers <joseph@codesourcery.com>
13245
13246 * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
13247 * config/frv/frv.h (LINK_SPEC): Likewise.
13248 * config/i386/netware.h (LINK_SPEC): Likewise.
13249 * config/m68k/linux.h (ASM_SPEC): Likewise.
13250 * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
13251 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
13252 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
13253 * config/sparc/linux.h (ASM_SPEC): Likewise.
13254 * config/sparc/linux64.h (ASM_SPEC): Likewise.
13255 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
13256
d3153553
JM
132572011-01-26 Joseph Myers <joseph@codesourcery.com>
13258
13259 * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
13260 * config/frv/frv.h (ASM_SPEC): Likewise.
13261 * config/m68k/linux.h (ASM_SPEC): Likewise.
13262 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
13263 * config/rs6000/linux64.h (ASM_SPEC): Likewise.
13264 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
13265 * config/sparc/linux.h (ASM_SPEC): Likewise.
13266 * config/sparc/linux64.h (ASM_SPEC): Likewise.
13267 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
13268
b89b1e9d
JM
132692011-01-26 Joseph Myers <joseph@codesourcery.com>
13270
13271 * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
13272 * config/frv/frv.h (LINK_SPEC): Likewise.
13273 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
13274
12eb1a9c
JM
132752011-01-26 Joseph Myers <joseph@codesourcery.com>
13276
13277 * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
13278 * config/frv/frv.h (ASM_SPEC): Likewise.
13279 * config/i386/sol2-10.h (ASM_SPEC): Likewise.
13280 * config/m68k/linux.h (ASM_SPEC): Likewise.
13281 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
13282 * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
13283 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
13284 * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
13285 * config/sparc/linux.h (ASM_SPEC): Likewise.
13286 * config/sparc/linux64.h (ASM_SPEC): Likewise.
13287 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
13288 * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
13289
e435f098
SE
132902011-01-26 Steve Ellcey <sje@cup.hp.com>
13291
13292 PR target/46997
13293 * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
13294 (*mux2): Ditto.
13295 (vec_extract_evenodd_help): Ditto.
13296 (vec_extract_evenv4hi): Ditto.
13297 (vec_extract_oddv4hi): Ditto.
13298 (vec_interleave_lowv2si): Ditto.
13299 (vec_interleave_highv2si): Ditto.
13300 (vec_extract_evenv2si): Ditto.
13301 (vec_extract_oddv2si: Ditto.
13302 (vec_pack_trunc_v2si): Ditto.
13303
34f0eee0
JH
133042011-01-22 Jan Hubicka <jh@suse.cz>
13305
13306 PR target/47237
13307 * cgraph.h (cgraph_local_info): New field can_change_signature.
13308 * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
13309 signature can change.
13310 (ipcp_estimate_growth): Call sequence simplify only if calle signature
13311 can change.
13312 (ipcp_insert_stage): Only compute args_to_skip if signature can change.
13313 (cgraph_function_versioning): We can not change signature of functions
13314 that don't allow that.
13315 * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
13316 (lto_input_node): Likewise.
38be4072
UB
13317 * ipa-inline.c (compute_inline_parameters): Compute
13318 local.can_change_signature.
34f0eee0 13319 * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
38be4072
UB
13320 * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
13321 functions that can not change signature.
34f0eee0 13322 * i386.c (ix86_function_regparm, ix86_function_sseregparm,
38be4072
UB
13323 init_cumulative_args): Do not use local calling conventions
13324 for functions that can not change signature.
34f0eee0 13325
980ca891
JH
133262011-01-22 Jan Hubicka <jh@suse.cz>
13327
13328 * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
13329
768e3c60
RG
133302011-01-26 Richard Guenther <rguenther@suse.de>
13331
13332 PR tree-optimization/47190
61052244
AM
13333 * cgraphunit.c (process_common_attributes): New function.
13334 (process_function_and_variable_attributes): Use it.
768e3c60 13335
21d6a1c7
RG
133362011-01-26 Richard Guenther <rguenther@suse.de>
13337
13338 PR lto/47423
13339 * cgraphbuild.c (record_eh_tables): Record reference to personality
13340 function.
13341
48bb58b1
AO
133422011-01-26 Alexandre Oliva <aoliva@redhat.com>
13343
13344 PR debug/45454
13345 * sel-sched.c (moveup_expr): Don't let debug insns prevent
13346 non-debug insns from moving up.
13347
58c741a6
DK
133482011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
13349
13350 PR target/40125
13351 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
13352 t-dlldir{,-x} fragment for build and add it to tmake_file.
13353 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
13354 * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
13355 * config/i386/t-dlldir: New file.
13356 (SHLIB_DLLDIR): Define.
13357 * config/i386/t-dlldir-x: New file.
13358 (SHLIB_DLLDIR): Define.
13359 * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
13360 (SHLIB_INSTALL): Use it.
13361
bff99262
CLT
133622011-01-26 Chung-Lin Tang <cltang@codesourcery.com>
13363
13364 PR target/47246
13365 * config/arm/arm.c (thumb2_legitimate_index_p): Change the
13366 lower bound of the allowed Thumb-2 coprocessor load/store
13367 index range to -256. Add explaining comment.
13368
82c03907
ILT
133692011-01-25 Ian Lance Taylor <iant@google.com>
13370
13371 * godump.c (go_define): Improve lexing of macro expansion to only
13372 accept expressions which match Go spec.
13373
47ea1edf
DK
133742011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
13375
d4dba752 13376 PR c++/43601
47ea1edf
DK
13377 * tree.c (handle_dll_attribute): Handle it.
13378 * doc/extend.texi (@item dllexport): Mention it.
13379 * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
13380
744f0946
ILT
133812011-01-25 Ian Lance Taylor <iant@google.com>
13382
13383 PR tree-optimization/26854
13384 * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
13385 (decl_jump_unsafe): Move higher in file, with no other change.
13386 (bind): Set has_jump_unsafe_decl if appropriate.
13387 (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
13388 (check_earlier_gotos): Likewise.
13389 (c_check_switch_jump_warnings): Likewise.
13390
5734f2b3
JW
133912011-01-25 Jonathan Wakely <jwakely.gcc@gmail.com>
13392
13393 * doc/invoke.texi (Warning Options): Add missing hyphen.
13394 (-fprofile-dir): Minor grammatical fixes.
13395 (-fbranch-probabilities): Likewise.
13396
9bdbdcef
AO
133972011-01-25 Alexandre Oliva <aoliva@redhat.com>
13398
13399 PR debug/45136
13400 PR debug/45130
13401 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
13402 debug insns.
13403 (no_real_insns_p, schedule_block, set_priorities): Drop special
13404 treatment of boundary debug insns.
38be4072 13405 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
9bdbdcef
AO
13406 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
13407 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
13408 (BOUNDARY_DEBUG_INSN_P): Likewise.
13409 (SCHEDULE_DEBUG_INSN_P): Likewise.
13410 * sched-rgn.c (init_ready_list): Drop special treatment of
13411 boundary debug insns.
13412 * final.c (rest_of_clean-state): Clear notes' BB.
13413
b305e3da
SP
134142011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13415
13416 * Makefile.in (LAMBDA_H): Removed.
13417 (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
13418 (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
13419 lambda-trans.o, and tree-loop-linear.o.
13420 (lto-symtab.o): Remove dependence on LAMBDA_H.
13421 (tree-loop-linear.o): Remove rule.
13422 (lambda-mat.o): Same.
13423 (lambda-trans.o): Same.
13424 (lambda-code.o): Same.
13425 (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
13426 (tree-vect-slp.o): Same.
13427 * hwint.h (gcd): Moved here.
13428 (least_common_multiple): Same.
13429 * lambda-code.c: Removed.
13430 * lambda-mat.c: Removed.
13431 * lambda-trans.c: Removed.
13432 * lambda.h: Removed.
13433 * tree-loop-linear.c: Removed.
13434 * lto-symtab.c: Do not include lambda.h.
13435 * omega.c (gcd): Removed.
13436 * passes.c (init_optimization_passes): Remove pass_linear_transform.
13437 * tree-data-ref.c (print_lambda_vector): Moved here.
13438 (lambda_vector_copy): Same.
13439 (lambda_matrix_copy): Same.
13440 (lambda_matrix_id): Same.
13441 (lambda_vector_first_nz): Same.
13442 (lambda_matrix_row_add): Same.
13443 (lambda_matrix_row_exchange): Same.
13444 (lambda_vector_mult_const): Same.
13445 (lambda_vector_negate): Same.
13446 (lambda_matrix_row_negate): Same.
13447 (lambda_vector_equal): Same.
13448 (lambda_matrix_right_hermite): Same.
13449 * tree-data-ref.h: Do not include lambda.h.
13450 (lambda_vector): Moved here.
13451 (lambda_matrix): Same.
13452 (dependence_level): Same.
13453 (lambda_transform_legal_p): Removed declaration.
13454 (lambda_collect_parameters): Same.
13455 (lambda_compute_access_matrices): Same.
13456 (lambda_vector_gcd): Same.
13457 (lambda_vector_new): Same.
13458 (lambda_vector_clear): Same.
13459 (lambda_vector_lexico_pos): Same.
13460 (lambda_vector_zerop): Same.
13461 (lambda_matrix_new): Same.
13462 * tree-flow.h (least_common_multiple): Removed declaration.
13463 * tree-parloops.c (lambda_trans_matrix): Moved here.
13464 (LTM_MATRIX): Same.
13465 (LTM_ROWSIZE): Same.
13466 (LTM_COLSIZE): Same.
13467 (LTM_DENOMINATOR): Same.
13468 (lambda_trans_matrix_new): Same.
13469 (lambda_matrix_vector_mult): Same.
13470 (lambda_transform_legal_p): Same.
13471 * tree-pass.h (pass_linear_transform): Removed declaration.
13472 * tree-ssa-loop.c (tree_linear_transform): Removed.
13473 (gate_tree_linear_transform): Removed.
13474 (pass_linear_transform): Removed.
13475 (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
13476 flag_loop_interchange.
13477
6bdfdb96
JJ
134782011-01-25 Jakub Jelinek <jakub@redhat.com>
13479
13480 PR tree-optimization/47265
13481 PR tree-optimization/47443
13482 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
13483 if name still has some uses.
13484
e4cba915
MJ
134852011-01-25 Martin Jambor <mjambor@suse.cz>
13486
13487 PR tree-optimization/47382
13488 * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
13489 (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
13490
509d65dd 134912011-01-25 Joel Sherrill <joel.sherrill@oarcorp.com>
f822b8ea
JS
13492
13493 * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
13494 sjlj_except_unwind_info.
13495
194313e2
RG
134962011-01-25 Richard Guenther <rguenther@suse.de>
13497
13498 PR tree-optimization/47426
13499 * tree-ssa-structalias.c (ipa_pta_execute): Make externally
13500 visible functions results escape.
13501
147a0bcf
JJ
135022011-01-25 Jakub Jelinek <jakub@redhat.com>
13503
13504 PR target/45701
13505 * config/arm/arm.c (any_sibcall_uses_r3): New function.
13506 (arm_get_frame_offsets): Use it.
13507
db963b52
SP
135082011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13509 Jakub Jelinek <jakub@redhat.com>
13510
13511 PR tree-optimization/47271
13512 * tree-if-conv.c (bb_postdominates_preds): New.
13513 (if_convertible_bb_p): Call bb_postdominates_preds.
13514 (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
13515 (predicate_scalar_phi): Call bb_postdominates_preds.
13516
bcddd3b9
NC
135172011-01-25 Nick Clifton <nickc@redhat.com>
13518
13519 * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
13520 * config/rx/rx.c (rx_function_value): Likewise.
13521 (rx_promote_function_mode): Likewise.
13522 (gen_safe_add): Place an outsized immediate value inside an UNSPEC
13523 in order to make it legitimate.
38be4072
UB
13524 * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
13525 make sure that the first operand is the same as the result register.
bcddd3b9
NC
13526 (addsi3_unspec): Delete.
13527 (subdi3): Do not accept immediate operands.
13528 (subdi3_internal): Likewise.
13529
7e6cb022
JL
135302011-01-25 Jeff Law <law@redhat.com>
13531
13532 PR rtl-optimization/37273
13533 * ira-costs.c (scan_one_insn): Detect constants living in memory and
13534 handle them like argument loads from stack slots. Do not double
13535 count memory for memory constants and argument loads from stack slots.
13536
9ffa621e
JJ
135372011-01-25 Jakub Jelinek <jakub@redhat.com>
13538
13539 PR tree-optimization/47427
13540 PR tree-optimization/47428
13541 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
13542 coalesce if the new root var would be TREE_READONLY.
13543
5bd6e652
RG
135442011-01-25 Richard Guenther <rguenther@suse.de>
13545
13546 PR middle-end/47414
13547 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
13548 correct type for TBAA.
13549
7c48ea69
SP
135502011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13551
13552 * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
13553 (close_phi_written_to_memory): Call for_each_index with
13554 dr_indices_valid_in_loop.
13555
38013f25
SP
135562011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13557
13558 * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
13559 when it is initialized.
13560
5c640e29
SP
135612011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13562
13563 * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
13564 call to graphite_find_data_references_in_stmt.
13565 * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
13566 (try_generate_gimple_bb): Call outermost_loop_in_sese_1. Update
13567 call to graphite_find_data_references_in_stmt.
13568 (analyze_drs_in_stmts): Same.
13569 * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
13570 in which the scalar analysis of indices is performed.
13571 (create_data_ref): Same. Update call to dr_analyze_indices.
13572 (find_data_references_in_stmt): Update call to create_data_ref.
13573 (graphite_find_data_references_in_stmt): Same.
13574 * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
13575 declaration.
13576 (create_data_ref): Same.
13577 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
13578 call to create_data_ref.
13579
ac53c069
SP
135802011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13581
13582 * graphite-sese-to-poly.c (build_poly_scop): Move
38be4072 13583 rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
ac53c069 13584
3d17df15
SP
135852011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13586
13587 * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
13588 VAR_DECL, PARM_DECL, and RESULT_DECL.
13589
c513da01
SP
135902011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13591
13592 * graphite-dependences.c (reduction_dr_1): Allow several reductions
13593 in a reduction PBB.
13594 * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
13595 that have already been marked as PBB_IS_REDUCTION.
13596
3a292d59
SP
135972011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13598
13599 * graphite-scop-detection.c (same_close_phi_node): New.
13600 (remove_duplicate_close_phi): New.
13601 (make_close_phi_nodes_unique): New.
13602 (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
13603
ba858447
SP
136042011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13605
13606 * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
13607 * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
13608 of both data references to be the same.
13609
8d865c56
SP
136102011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13611
38be4072
UB
13612 * graphite-dependences.c (build_lexicographical_constraint): Remove
13613 the gdim parameter.
13614 (build_lexicographical_constraint): Adjust call to
13615 ppl_powerset_is_empty.
8d865c56
SP
13616 (dependence_polyhedron): Same.
13617 (graphite_legal_transform_dr): Same.
13618 (graphite_carried_dependence_level_k): Same.
38be4072
UB
13619 * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
13620 parameter.
8d865c56
SP
13621 * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
13622
50034a36
SP
136232011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13624
13625 * graphite-sese-to-poly.c
13626 (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
13627 (close_phi_written_to_memory): New.
13628 (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
13629 and unshare_expr.
13630
0deada9e
SP
136312011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13632
13633 * doc/install.texi: Update the expected version number of PPL to 0.11.
13634 * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
13635 #if PPL_VERSION_MINOR < 11.
13636
d7d3d6af
SP
136372011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13638
13639 * graphite-dependences.c: Include graphite-cloog-util.h.
13640 (new_poly_ddr): Inlined into dependence_polyhedron.
13641 (free_poly_ddr): Moved close by new_poly_ddr.
13642 (dependence_polyhedron_1): Renamed dependence_polyhedron.
13643 Early return NULL when ppl_powerset_is_empty returns true.
13644 (dependence_polyhedron): Renamed new_poly_ddr. Call only once
13645 poly_drs_may_alias_p. Avoid one call to ppl_powerset_is_empty.
13646 (graphite_legal_transform_dr): Call new_poly_ddr.
13647 (graphite_carried_dependence_level_k): Same.
13648 (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2. Use new_poly_ddr.
13649 (dot_transformed_deps_stmt_1): Removed.
13650 (dot_deps_stmt_1): Call dot_deps_stmt_2.
13651 (dot_original_deps): Renamed dot_deps_2. Call new_poly_ddr.
13652 (dot_deps_1): Call dot_deps_2.
13653 * Makefile.in (graphite-dependences.o): Add missing dependence on
13654 graphite-cloog-util.h.
13655
28c5db57
SP
136562011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13657
13658 * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
13659 (build_lexicographical_constraint): Same.
13660 (dependence_polyhedron_1): Same.
13661 (graphite_legal_transform_dr): Same.
13662 (graphite_carried_dependence_level_k): Same.
13663 * graphite-ppl.c (ppl_powerset_is_empty): New.
13664 * graphite-ppl.h (ppl_powerset_is_empty): Declared.
13665 * tree-data-ref.c (dump_data_reference): Print the basic block index.
13666
5168d98f
SP
136672011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13668
13669 * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
13670 the "a followed by b" relation and document it.
13671
4a40293a
SP
136722011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13673
13674 * graphite-dependences.c (build_lexicographical_constraint): Stop the
13675 iteration when the bag of constraints is empty.
13676
271fb6fa
SP
136772011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13678
13679 * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
13680
92d23680
SP
136812011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13682
13683 * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
13684 nest and two loop depths as parameters.
13685 (lst_try_interchange_loops): Call lst_interchange_profitable_p after
13686 lst_perfect_nestify.
13687
2f51deff
SP
136882011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13689
13690 * graphite-dependences.c (print_pddr): Call
13691 ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
13692
07f3593c
SP
136932011-01-25 Sebastian Pop <sebastian.pop@amd.com>
13694
13695 * graphite-ppl.c (debug_gmp_value): New.
13696 * graphite-ppl.h (debug_gmp_value): Declared.
13697
3fae6099
TG
136982011-01-25 Tobias Grosser <grosser@fim.uni-passau.de>
13699
13700 * doc/install.texi: Document availability of cloog-0.16.
13701
1c3ba85b
SP
137022011-01-25 Vladimir Kargov <kargov@gmail.com>
13703
13704 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
13705 invalid postdominance info.
13706
e8ba94fc
JH
137072011-01-24 Jan Hubicka <jh@suse.cz>
13708
13709 PR c/21659
13710 * doc/extend.texi (weak pragma): Drop claim that it must
13711 appear before definition.
13712 * varasm.c (merge_weak, declare_weak): Only sanity check
13713 that DECL is not output at a time it is declared weak.
13714
2b6e2d13
KZ
137152011-01-24 Kenneth Zadeck <zadeck@naturalbridge.com>
13716
13717 * machmode.def: Fixed comments.
1c3ba85b 13718
9841210f
KT
137192011-01-24 Kai Tietz <kai.tietz@onevision.com>
13720
13721 * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
13722
137232011-01-24 Paul Koning <ni1d@arrl.net>
e046112d
PK
13724
13725 * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
1c3ba85b 13726 WORDS_BIG_ENDIAN.
e046112d 13727
a6c5070a
L
137282011-01-24 H.J. Lu <hongjiu.lu@intel.com>
13729
13730 PR target/46519
13731 * config/i386/i386.c: Include sbitmap.h and fibheap.h.
13732 (block_info): Add scanned and prev.
13733 (move_or_delete_vzeroupper_2): Return if the basic block
13734 has been scanned and the upper 128bit state is unchanged
13735 from the last scan.
13736 (move_or_delete_vzeroupper_1): Return true if the exit
13737 state is changed.
13738 (move_or_delete_vzeroupper): Visit basic blocks using the
13739 work-list based algorithm based on vt_find_locations in
13740 var-tracking.c.
13741
13742 * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
13743
a40d79d7
NC
137442011-01-24 Nick Clifton <nickc@redhat.com>
13745
13746 * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
13747 * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
13748 -mv850e1 to the assembler. If -mv850e1 or -mv850es is specified
13749 then define __v850e1__.
13750 * doc/invoke.texi: Document -mv850es.
13751
440eb8de
RH
137522011-01-24 Richard Henderson <rth@redhat.com>
13753
13754 * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
13755 compound unordered comparisons.
13756 * config/rx/rx.c (rx_split_fp_compare): Remove.
13757 * config/rx/rx-protos.h: Update.
13758 * config/rx/rx.md (gcc_conds, rx_conds): Remove.
13759 (cbranchsf4): Don't call rx_split_fp_compare.
13760 (*cbranchsf4): Use rx_split_cbranch.
13761 (*cmpsf): Don't accept "i" constraint.
13762 (*conditional_branch): Only valid after reload.
13763 (cstoresf4): Merge expander with insn. Don't call rx_split_fp_compare.
13764
3ff79f99
MM
137652011-01-24 Michael Meissner <meissner@linux.vnet.ibm.com>
13766
13767 PR target/47385
13768 * config/rs6000/altivec.md (vector constant splitters): Add
13769 support for creating vector single precision constants if -mvsx is
13770 used and we would create the constant using Altivec primitives.
13771
ff3d9d08
BS
137722011-01-23 Bernd Schmidt <bernds@codesourcery.com>
13773 Richard Sandiford <rdsandiford@googlemail.com>
13774
13775 PR rtl-optimization/47166
13776 * reload1.c (emit_reload_insns): Disable the spill_reg_store
13777 mechanism for PRE_MODIFY and POST_MODIFY.
13778 (inc_for_reload): For PRE_MODIFY, return the insn that sets the
13779 reloadreg.
13780
7fcaf152
AS
137812011-01-23 Andreas Schwab <schwab@linux-m68k.org>
13782
8788adb6 13783 * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
7fcaf152 13784
d09b58c4
JH
137852011-01-22 Jan Hubicka <jh@suse.cz>
13786
13787 PR lto/47333
13788 * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
13789
e8ff8c5a
JH
137902011-01-22 Jan Hubicka <jh@suse.cz>
13791
13792 PR tree-optimization/43884
13793 PR lto/44334
8788adb6 13794 * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
e8ff8c5a
JH
13795 * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
13796
ccaed3ba
AS
137972011-01-22 Anatoly Sokolov <aesok@post.ru>
13798
13799 * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
13800 * config/s390/s390.c (s390_register_move_cost,
13801 s390_memory_move_cost): New.
13802 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
13803
0cecee06
UW
138042011-01-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13805
13806 PR middle-end/47401
13807 * except.c (sjlj_assign_call_site_values): Move setting the
13808 crtl->uses_eh_lsda flag to ...
13809 (sjlj_mark_call_sites): ... here.
13810 (sjlj_emit_function_enter): Support NULL dispatch label.
13811 (sjlj_build_landing_pads): In a function with no landing pads
13812 that still has must-not-throw regions, generate code to register
13813 a personality function with empty LSDA.
13814
e692f276
RH
138152011-01-21 Richard Henderson <rth@redhat.com>
13816
1b7ae0b7
RH
13817 * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
13818
3843787f
RH
13819 * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
13820
e692f276
RH
13821 * compare-elim.c: New file.
13822 * Makefile.in (OBJS-common): Add it.
13823 (compare-elim.o): New.
13824 * common.opt (fcompare-elim): New.
13825 * opts.c (default_options_table): Add OPT_fcompare_elim.
13826 * tree-pass.h (pass_compare_elim_after_reload): New.
13827 * passes.c (init_optimization_passes): Add it.
13828 * recog.h: Protect against re-inclusion.
13829 * target.def (TARGET_FLAGS_REGNUM): New POD hook.
13830 * doc/invoke.texi (-fcompare-elim): Document it.
13831 * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
13832 * doc/tm.texi: Rebuild.
13833
9a7c2050
NC
138342011-01-22 Nick Clifton <nickc@redhat.com>
13835
13836 * config/rx/rx.md (cstoresf4): Pass comparison operator to
13837 rx_split_fp_compare.
13838
15ba5696
NC
138392011-01-22 Nick Clifton <nickc@redhat.com>
13840
13841 * config/rx/rx.md (UNSPEC_CONST): New.
13842 (deallocate_and_return): Wrap the amount popped off the stack in
13843 an UNSPEC_CONST in order to stop it being rejected by
13844 -mmax-constant-size.
13845 (pop_and_return): Add a "(return)" rtx.
13846 (call): Drop the immediate operand.
13847 (call_internal): Likewise.
13848 (call_value): Likewise.
13849 (call_value_internal): Likewise.
13850 (sibcall_internal): Likewise.
13851 (sibcall_value_internal): Likewise.
13852 (sibcall): Likewise. Generate an explicit call using
13853 sibcall_internal.
13854 (sibcall_value): Likewise.
13855 (mov<>): FAIL if a constant operand is not legitimate.
13856 (addsi3_unpsec): New pattern.
9a7c2050 13857
38be4072 13858 * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
15ba5696
NC
13859 (ok_for_max_constant): New function.
13860 (gen_safe_add): New function.
13861 (rx_expand_prologue): Use gen_safe_add.
13862 (rx_expand_epilogue): Likewise.
13863 (rx_is_legitimate_constant): Use ok_for_max_constant. Handle
13864 UNSPEC CONSTs.
13865
caaf13d3
JL
138662011-01-21 Jeff Law <law@redhat.com>
13867
13868 PR tree-optimization/47053
13869 * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
13870 (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
13871 statements are deleted.
13872 (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP. If NEED_EH_CLEANUP
13873 is nonempty, then purge dead edges and cleanup the CFG.
13874
12c30f2f
AO
138752011-01-21 Alexandre Oliva <aoliva@redhat.com>
13876
13877 PR debug/47402
13878 Temporarily revert:
13879 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
13880 PR debug/47106
13881 * tree-dfa.c (create_var_ann): Mark variable as used.
13882
7360d2ac
JJ
138832011-01-21 Jakub Jelinek <jakub@redhat.com>
13884
aaa52a96
JJ
13885 PR middle-end/45566
13886 * except.c (convert_to_eh_region_ranges): Emit queued no-region
13887 notes from other section in hot/cold partitioning even if
13888 last_action is -3. Increment call_site_base.
13889
7360d2ac
JJ
13890 PR rtl-optimization/47366
13891 * fwprop.c (forward_propagate_into): Return bool. If
13892 any changes are made, -fnon-call-exceptions is used and
13893 REG_EH_REGION note is present, call purge_dead_edges
13894 and return true if it purged anything.
13895 (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
13896 any EH edges were purged.
13897
e90b336f
JL
138982011-01-21 Jeff Law <law@redhat.com>
13899
13900 PR rtl-optimization/41619
13901 * caller-save.c (setup_save_areas): Break out code to determine
13902 which hard regs are live across calls by examining the reload chains
13903 so that it is always used.
13904 Eliminate code which checked REG_N_CALLS_CROSSED.
13905
3ffe07e1
JJ
139062011-01-21 Jakub Jelinek <jakub@redhat.com>
13907
13908 PR tree-optimization/47355
13909 * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
13910 NOP has non-debug uses beyond PHIs in new_bb.
13911
1c7d0b34
AO
139122011-01-21 Alexandre Oliva <aoliva@redhat.com>
13913
13914 PR debug/47106
13915 * cfgexpand.c (account_used_vars_for_block): Only account vars
13916 that are annotated as used.
13917 (estimated_stack_frame_size): Don't set TREE_USED.
13918 * tree-dfa.c (create_var_ann): Mark variable as used.
13919
f99cc488
RG
139202011-01-21 Richard Guenther <rguenther@suse.de>
13921
13922 PR middle-end/47395
13923 * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
13924
3bc27de7
RG
139252011-01-21 Richard Guenther <rguenther@suse.de>
13926
13927 PR tree-optimization/47365
13928 * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
13929 (vn_reference_lookup_pieces): Adjust.
13930 (vn_reference_lookup): Likewise.
13931 * tree-ssa-sccvn.c (vn_walk_kind): New static global.
13932 (vn_reference_lookup_3): Only look through kills if in
13933 VN_WALKREWRITE mode.
13934 (vn_reference_lookup_pieces): Adjust.
13935 (vn_reference_lookup): Likewise.
13936 (visit_reference_op_load): Likewise.
13937 (visit_reference_op_store): Likewise.
13938 * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
13939 (compute_avail): Likewise.
13940 (eliminate): Likewise.
13941
d8debb1d
JJ
139422011-01-21 Jakub Jelinek <jakub@redhat.com>
13943
13944 * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
13945 DECL_IGNORED_P non-reg vars if they are used.
13946
3a2df831
JJ
13947 PR tree-optimization/47391
13948 * varpool.c (const_value_known_p): Return false if
13949 decl is volatile.
13950
1dd584a2
KT
139512011-01-21 Kai Tietz <kai.tietz@onevision.com>
13952
13953 PR bootstrap/47215
13954 * config/i386/i386.c (ix86_local_alignment): Handle
13955 case for va_list_type_node is nil.
13956 (ix86_canonical_va_list_type): Likewise.
13957
7f9f095e
AM
139582011-01-21 Alan Modra <amodra@gmail.com>
13959
13960 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
13961 builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
13962
837b01f6
RR
139632011-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
13964
13965 * config/arm/arm.md (define_attr type): Rename f_load
13966 and f_store to f_fpa_load and f_fpa_store. Update.
13967 (write_conflict): Deal with rename fallout.
13968 (*push_fp_multi): Likewise.
13969 * config/arm/fpa.md (f_load): Use f_fpa_load.
13970 (f_store): Use f_fpa_store.
13971 (*movsf_fpa): Likewise.
13972 (*movdf_fpa): Likewise.
13973 (*movxf_fpa): Likewise.
13974 (*thumb2_movsf_fpa): Likewise.
13975 (*thumb2_movdf_fpa): Likewise.
13976 (*thumb2_movxf_fpa): Likewise.
13977 * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
13978 f_loadd and f_stored.
13979 (*thumb2_movdi_vfp): Likewise.
13980 (*thumb2_movsf_vfp): Fix attribute to f_loads.
13981 (*thumb2_movsi_vfp): Likewise.
13982 * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
13983 Use f_loads instead of f_load.
13984 * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
13985
a1a79768
AS
139862011-01-20 Anatoly Sokolov <aesok@post.ru>
13987
13988 * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
13989 * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
13990 * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
13991 (xtensa_mode_dependent_address_p): New function.
13992 (constantpool_address_p): Make static. Change return type to bool.
13993 Change argument type to const_rtx. Use CONST_INT_P predicate.
13994
427f6cec
AO
139952011-01-20 Alexandre Oliva <aoliva@redhat.com>
13996
13997 PR debug/46583
13998 * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
13999
583ac69c
JJ
140002011-01-20 Jakub Jelinek <jakub@redhat.com>
14001
14002 PR debug/47283
14003 * cfgexpand.c (expand_debug_expr): Instead of generating
14004 (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
14005 etc. handling.
14006
93e452ed
RG
140072011-01-20 Richard Guenther <rguenther@suse.de>
14008
14009 PR middle-end/47370
14010 * tree-inline.c (remap_gimple_op_r): Recurse manually for
14011 the pointer operand of MEM_REFs.
14012
28fc44f3
JJ
140132011-01-20 Jakub Jelinek <jakub@redhat.com>
14014
14015 PR tree-optimization/46130
14016 * ipa-split.c (consider_split): If return_bb contains non-virtual
14017 PHIs other than for retval or if split_function would not adjust it,
14018 refuse to split.
14019
ddd268f2
RG
140202011-01-20 Richard Guenther <rguenther@suse.de>
14021
14022 PR tree-optimization/47167
14023 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
14024 Revert previous change, only avoid enumeral type changes.
14025
882020aa
MS
140262011-01-19 Mike Stump <mikestump@comcast.net>
14027
14028 * doc/tm.texi.in (BRANCH_COST): Englishify.
14029 * doc/tm.texi (BRANCH_COST): Likewise.
14030
7edb6247
DS
140312011-01-19 Dodji Seketeli <dodji@redhat.com>
14032
14033 PR c++/47291
14034 * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
61052244
AM
14035 (gen_scheduled_generic_parms_dies): New functions.
14036 (gen_struct_or_union_type_die): Schedule template parameters DIEs
14037 generation for the end of CU compilation.
14038 (dwarf2out_finish): Generate template parameters DIEs here.
7edb6247 14039
23d5ed5d
AO
140402011-01-19 Alexandre Oliva <aoliva@redhat.com>
14041
14042 PR debug/46240
14043 * tree-into-ssa.c (maybe_register_def): Do not attempt to add
14044 debug bind stmt on merge edges.
14045
37d6a488
AO
140462011-01-19 Alexandre Oliva <aoliva@redhat.com>
14047
14048 PR debug/47079
14049 PR debug/46724
14050 * function.c (instantiate_expr): Instantiate incoming rtl of
14051 implicit arguments, and recurse on VALUE_EXPRs.
14052 (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
14053 * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
14054
689f2c82
AO
140552011-01-19 Alexandre Oliva <aoliva@redhat.com>
14056
14057 * c-parser.c (c_parser_for_statement): Initialize
14058 collection_expression.
14059
03029de4
JM
140602011-01-19 Joseph Myers <joseph@codesourcery.com>
14061
14062 * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
14063
3e03217e
JM
140642011-01-19 Joseph Myers <joseph@codesourcery.com>
14065
14066 * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
14067 (LINK_SHLIB_SPEC): Don't use %(link_path).
14068 (SUBTARGET_EXTRA_SPECS): Remove link_path.
14069
5bbe9b3f
JM
140702011-01-19 Joseph Myers <joseph@codesourcery.com>
14071
14072 * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
14073 (NO_SHARED_LIB_SUPPORT): Remove.
14074 (LINK_SHLIB_SPEC): Remove one conditional definition.
14075
368e0b39
JM
140762011-01-19 Joseph Myers <joseph@codesourcery.com>
14077
14078 * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
14079 %{call_shared}.
14080 * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
14081 * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
14082 * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
14083 %{call_shared} and conditionals on these options not being passed.
14084 * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
14085 %{call_shared}.
14086
ed7656f6
JJ
140872011-01-19 Jakub Jelinek <jakub@redhat.com>
14088
68457901
JJ
14089 * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
14090 simplify.
14091
ed7656f6
JJ
14092 * ipa-split.c: Spelling fixes.
14093
e0d1958f
RH
140942011-01-19 Richard Henderson <rth@redhat.com>
14095
14096 * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
14097 (*mulsi3): Likewise.
14098
27098b6b
RH
14099 * longlong.h [__mn10300__] (count_leading_zeros): New.
14100 [__mn10300__] (umul_ppmm, smul_ppmm): New.
14101 [__mn10300__] (add_ssaaaa, subddmmss): New.
14102 [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
14103 [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
14104
d6be7c36
UW
141052011-01-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14106
14107 * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
14108
b1efde2a
RH
141092011-01-19 Richard Henderson <rth@redhat.com>
14110
44217823
RH
14111 * config/mn10300/mn10300.md (addsi3_flags): New.
14112 (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
14113 (subsi3_flags, subc_internal, subdi3): New.
14114 (subdi3_internal, *subdi3_degenerate): New.
14115 * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
14116
37a185d7
RH
14117 * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
14118 (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
14119 (mn10300_expand_epilogue): Use it. Compute REG_SAVE_BYTES once.
14120 * config/mn10300/mn10300-protos.h: Update.
14121 * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
14122 (return_ret): Likewise. Rename from return_internal_regs.
14123 (return_internal): Remove.
14124
040c5757
RH
14125 * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
14126 (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
14127 (mn10300_legitimate_constant_p): Likewise.
14128 (mn10300_can_use_return_insn): Use mn10300_initial_offset.
14129 (mn10300_frame_size): New.
14130 (mn10300_expand_prologue): Use it.
14131 (mn10300_expand_epilogue): Likewise.
14132 (mn10300_initial_offset): Likewise.
14133 * config/mn10300/mn10300-protos.h: Update.
14134 * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
14135 * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
14136 (prologue, epilogue, return_internal): Tidy output code.
14137 (mn10300_store_multiple_operation, return): Likewise.
14138 (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
14139 (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
14140 (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
14141 (load_pic, am33_load_pic): New.
14142 (mn10300_load_pic0, mn10300_load_pic1): New.
14143
bad41521
RH
14144 * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
14145 * config/mn10300/mn10300.c (CC_FLAG_Z): New.
14146 (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
14147 (cc_flags_for_mode, cc_flags_for_code): New.
14148 (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
14149 overflow flag is not valid. Validate that the flags we need
14150 for the comparison are valid.
14151 (mn10300_output_cmp): Remove.
14152 (mn10300_output_add): New.
14153 (mn10300_select_cc_mode): Use cc_flags_for_code.
14154 (mn10300_split_cbranch): New.
14155 (mn10300_match_ccmode): New.
14156 (mn10300_split_and_operand_count): New.
14157 * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
14158 to the function.
14159 * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
14160 (addsi3): ... here. Use mn10300_output_add.
14161 (*addsi3_flags): New.
14162 (*am33_subsi3, *mn10300_subsi3): Merge...
14163 (subsi3): ... here. Use attribute isa.
14164 (*subsi3_flags): New.
14165 (negsi2): Rewrite from expander to insn_and_split. Use NOT+INC
14166 when possible.
14167 (*am33_andsi3, *mn10300_andsi3): Merge...
14168 (andsi3): ... here.
14169 (*andsi3_flags): New.
14170 (andsi3 splitters): New.
14171 (*am33_iorsi3, *mn10300_iorsi3): Merge...
14172 (iorsi3): ... here.
14173 (*iorsi3_flags): New.
14174 (*am33_xorsi3, *mn10300_xorsi3): Merge...
14175 (xorsi3): ... here.
14176 (*xorsi3_flags): New.
14177 (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
14178 (one_cmplsi2): ... here.
14179 (*one_cmplsi2_flags): New.
14180 (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload. Use "r"
14181 instead of "dax" in constraints. Use mn10300_split_cbranch.
14182 (*cmpsi): Rename from cmpsi. Do not use mn10300_output_cmp. Do not
14183 use matching constraints to eliminate a self-comparison.
14184 (*integer_conditional_branch): Rename from integer_conditional_branch.
14185 Use int_mode_flags to match CC_REG.
14186 (*cbranchsi4_btst, *btstsi): New.
14187 (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload. Use
14188 mn10300_split_cbranch.
14189 (*am33_cmpsf): Rename from am33_cmpsf.
14190 (*float_conditional_branch): Rename from float_conditional_branch.
14191 (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
14192 (zero_extendqisi2): ... here.
14193 (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
14194 (zero_extendhisi2): ... here.
14195 (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
14196 (extendqisi2): ... here.
14197 (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
14198 (extendhisi2): ... here.
14199 (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
14200 (ashlsi3): ... here.
14201 (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
14202 (lshrsi3): ... here.
14203 (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
14204 (ashrsi3): ... here.
14205 (consecutive add peephole): Remove.
14206 * config/mn10300/predicates.md (label_ref_operand): New.
14207 (int_mode_flags): New.
14208 (CCZN_comparison_operator): New.
14209
9efb4993
RH
14210 * config/mn10300/mn10300.md (UNSPEC_EXT): New.
14211 (throughput_42_latency_43): New reservation.
14212 (mulsidi3, umulsidi3): New expanders.
14213 (mulsidi3_internal): Rewrite from old mulsidi3 pattern. Expose
14214 the MDR register to allocation; separately allocate the low and
14215 high parts of the DImode result.
14216 (umulsidi3_internal): Similarly.
14217 (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
14218 (*mulsi3): ... here. Clobber MDR as a scratch as necessary.
14219 (udivsi3, umodsi3): Remove.
14220 (udivmodsi4, divmodsi4): New expanders.
14221 (*udivmodsi4): Rename from udivmodsi4. Expose MDR properly.
14222 (*divmodsi4): Simiarly.
14223 (ext_internal): New.
14224
c25a21f5
RH
14225 * config/mn10300/constraints.md ("z"): New constraint.
14226 * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
14227 (FIXED_REGISTERS): Don't fix MDR.
14228 (CALL_USED_REGSITERS): Reformat nicely.
14229 (REG_ALLOC_ORDER): Add MDR.
14230 (enum regclass): Add MDR_REGS.
14231 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
14232 (IRA_COVER_CLASSES): Add MDR_REGS.
14233 (REGNO_REG_CLASS): Handle MDR_REG.
14234 * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
14235 (mn10300_register_move_cost): Likewise.
14236 * config/mn10300/mn10300.md (MDR_REG): New.
14237 (*movsi_internal): Handle moves to/from MDR_REGS.
14238
36846b26
RH
14239 * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
14240 POST_MODIFY.
14241 (mn10300_secondary_reload): Tidy combination reload classes.
14242 (mn10300_legitimate_address_p): Allow post-modify and reg+reg
14243 addresses for AM33. Allow symbolic offsets for reg+imm.
14244 (mn10300_regno_in_class_p): New.
14245 (mn10300_legitimize_reload_address): New.
14246 * config/mn10300/mn10300.h (enum reg_class): Remove
14247 DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
14248 SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS. Add
14249 SP_OR_GENERAL_REGS.
14250 (REG_CLASS_NAMES): Update to match.
14251 (REG_CLASS_CONTENTS): Likewise.
14252 (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
14253 (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
14254 (REGNO_IN_RANGE_P): Remove.
14255 (REGNO_DATA_P): Use mn10300_regno_in_class_p.
14256 (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
14257 (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
14258 (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
14259 (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
14260 (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
14261 (REGNO_GENERAL_P): New.
14262 (HAVE_POST_MODIFY_DISP): New.
14263 (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
14264 (LEGITIMIZE_RELOAD_ADDRESS): New.
14265 * config/mn10300/mn10300-protos.h: Update.
14266
8b119bb6
RH
14267 * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
14268 DATA_REGS for AM33 stack-pointer destination.
14269 (mn10300_preferred_output_reload_class): Likewise.
14270 (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
14271 into a form appropriate for ...
14272 (TARGET_SECONDARY_RELOAD): New.
14273 * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
14274 * config/mn10300/mn10300-protos.h: Update.
14275 * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
14276 reload_insi; use the "A" constraint for the scratch; handle AM33
14277 moves of sp to non-address registers.
14278
b1efde2a
RH
14279 * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
14280 (*movqi_internal): ... here.
14281 (*am33_movhi, *mn10300_movhi): Merge into...
14282 (*movhi_internal): ... here.
14283 (*movsi_internal): Use "r" instead of "dax" in constraints. Use "A"
14284 as the source/destination of moves from/to SP.
14285 (movsf): Only allow for AM33-2.
1c3ba85b 14286 (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
b1efde2a
RH
14287 any integer constant constraint. Only allow for AM33-2. Tidy
14288 all of the alternative outputs.
14289 (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
14290 (udivmodsi4): Delete expander and promote *udivmodsi4. Disallow
14291 for MN103.
14292 (udivsi3, umodsi3): New patterns for MN103 only.
14293
b899fd78
JR
142942011-01-19 Joern Rennecke <amylaar@spamcop.net>
14295
14296 * doc/tm.texi.in: Spell out that a lack of register class unions
14297 can lead to ICEs.
14298 * doc/tm.texi: Regenerate.
14299
afaaa67d
JJ
143002011-01-19 Jakub Jelinek <jakub@redhat.com>
14301
2e0642cd
JJ
14302 PR rtl-optimization/47337
14303 * dce.c (check_argument_store): New function.
14304 (find_call_stack_args): Ignore debug insns. Use check_argument_store.
14305
afaaa67d
JJ
14306 PR tree-optimization/47290
14307 * tree-eh.c (infinite_empty_loop_p): New function.
14308 (cleanup_empty_eh): Use it.
14309
d2cd871f
SE
143102011-01-18 Steve Ellcey <sje@cup.hp.com>
14311
14312 PR target/46997
14313 * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
14314 (a64_expand_widen_sum): Ditto.
14315 * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
14316 (vec_extract_evenodd_help): Ditto.
14317 (vec_extract_evenv4hi): Ditto.
14318 (vec_extract_oddv4hi): Ditto.
14319 (vec_extract_evenv2si): Ditto.
14320 (vec_extract_oddv2si): Ditto.
14321 (vec_extract_evenv2sf): Ditto.
14322 (vec_extract_oddv2sf): Ditto.
14323 (vec_pack_trunc_v4hi: Ditto.
14324 (vec_pack_trunc_v2si): Ditto.
14325 (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
14326 (vec_interleave_highv8qi): Ditto.
14327 (mix1_r): Ditto.
14328 (vec_extract_oddv8qi): Ditto.
14329 (vec_interleave_lowv4hi): Ditto.
14330 (vec_interleave_highv4hi): Ditto.
14331 (vec_interleave_lowv2si): Ditto.
14332 (vec_interleave_highv2si): Ditto.
14333
41a1208a
JDA
143342011-01-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14335
14336 * doc/extend.texi: Mention __float128 support on hppa HP-UX.
14337 * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
14338 * config/pa/pa.c (pa_expand_builtin): New. Include "langhooks.h".
14339 (pa_c_mode_for_suffix): New.
14340 (TARGET_EXPAND_BUILTIN): Define.
14341 (TARGET_C_MODE_FOR_SUFFIX): Define.
14342 (pa_builtins): Define.
14343 (pa_init_builtins): Register __float128 type and init new support
14344 builtins.
14345 * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
14346 * config/pa/quadlib.c (_U_Qfcopysign): New.
14347
1ecad98e
EB
143482011-01-18 Eric Botcazou <ebotcazou@adacore.com>
14349
14350 PR middle-end/46894
14351 * explow.c (allocate_dynamic_stack_space): Do not assume more than
14352 BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
14353 are defined.
14354
d4f2460a
UW
143552011-01-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14356
14357 PR tree-optimization/47179
14358 * config/spu/spu.c (spu_ref_may_alias_errno): New function.
14359 (TARGET_REF_MAY_ALIAS_ERRNO): Define.
14360
4994da65
RG
143612011-01-18 Richard Guenther <rguenther@suse.de>
14362
14363 PR rtl-optimization/47216
14364 * emit-rtl.c: Include tree-flow.h.
14365 (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
14366 of replicating it with different semantics.
14367 * Makefile.in (emit-rtl.o): Adjust.
14368
1eb458d1
RR
143692011-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14370
38be4072 14371 * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
61052244 14372 (cortex_a9_dp): Handle neon types correctly.
1eb458d1 14373
e7ef91dc
JJ
143742011-01-18 Jakub Jelinek <jakub@redhat.com>
14375
14376 PR rtl-optimization/47299
14377 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
38be4072 14378 subtarget. Use normal multiplication if both operands are constants.
e7ef91dc
JJ
14379 * expmed.c (expand_widening_mult): Don't try to optimize constant
14380 multiplication if op0 has VOIDmode. Convert op1 constant to mode
14381 before using it.
14382
535b7874
RW
143832011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14384
14385 * doc/lto.texi (LTO): Ensure two spaces after period. Fix
14386 spacing after 'e.g.', typos, comma, hyphenation.
14387
27bf36f3
RH
143882011-01-17 Richard Henderson <rth@redhat.com>
14389
8a5b5449
RH
14390 * config/rx/predicates.md (rx_constshift_operand): Use match_test.
14391 (rx_restricted_mem_operand): New.
14392 (rx_shift_operand): Use register_operand.
14393 (rx_source_operand, rx_compare_operand): Likewise.
14394 * config/rx/rx.md (addsi3_flags): New expander.
14395 (adddi3): Rewrite as expander.
14396 (adc_internal, *adc_flags, adddi3_internal): New patterns.
14397 (subsi3_flags): New expander.
14398 (subdi3): Rewrite as expander.
14399 (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
14400
784f69be
RH
14401 * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
14402 (rx_init_builtins): Remove sat builtin.
14403 (rx_expand_builtin): Likewise.
14404 * config/rx/rx.md (ssaddsi3): New.
14405 (*sat): Rename from sat. Represent the CC_REG input.
14406
f033541c
RH
14407 * config/rx/predicates.md (rshift_operator): New.
14408 * config/rx/rx.c (rx_expand_insv): Remove.
14409 * config/rx/rx-protos.h: Update.
14410 * config/rx/rx.md (*bitset): Rename from bitset. Swap the ashift
14411 operand to the canonical position.
14412 (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
14413 (*bitclr, *bitclr_in_memory): Similarly.
14414 (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
14415 (insv): Retain the zero_extract in the expansion.
14416
34fee389
RH
14417 * config/rx/rx.md (bswapsi2): Use = not + for output reload.
14418 (bswaphi2, bitinvert, revw): Likewise.
14419
265c835f
RH
14420 * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
14421 (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
14422 * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
14423 (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
14424 (bitset, bitset_in_memory): Likewise.
14425 (bitinvert, bitinvert_in_memory): Likewise.
14426 (bitclr, bitclr_in_memory): Likewise.
14427 (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
14428 (rx_strend, rx_cmpstrn): Likewise.
14429 (rx_setmem): Likewise. Make the source BLKmode to match the dest.
14430 (bitop peep2 patterns): Remove.
14431
b4d83be3
RH
14432 * config/rx/rx.c (rx_match_ccmode): New.
14433 * config/rx/rx-protos.h: Update.
14434 * config/rx/rx.md (abssi2): Clobber, don't set flags.
14435 (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
14436 (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
14437 (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
14438 (fix_truncsfsi2, floatsisf2): Likewise.
14439 (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
14440 (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
14441 (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
14442 (*subsi3_flags, *xorsi3_flags): New.
14443
d0acb939
RH
14444 * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
14445
c06fc3d9
RH
14446 * config/rx/rx.c (rx_print_operand): Remove workaround for
14447 unsplit comparison operations.
14448
2882702b
RH
14449 * config/rx/rx.md (movsicc): Split after reload.
14450 (*movsicc): Merge *movsieq and *movsine via match_operator.
14451 (*stcc): New pattern.
14452
6f7310f2
RH
14453 * config/rx/rx.c (rx_float_compare_mode): Remove.
14454 * config/rx/rx.h (rx_float_compare_mode): Remove.
14455 * config/rx/rx.md (cstoresi4): Split after reload.
14456 (*sccc): New pattern.
14457
e963cb1a
RH
14458 * config/rx/predicates.md (label_ref_operand): New.
14459 (rx_z_comparison_operator): New.
14460 (rx_zs_comparison_operator): New.
14461 (rx_fp_comparison_operator): New.
14462 * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
14463 Validate that the flags are set properly for the comparison.
14464 (rx_gen_cond_branch_template): Remove.
14465 (rx_cc_modes_compatible): Remove.
14466 (mode_from_flags): New.
14467 (flags_from_code): Rename from flags_needed_for_conditional.
14468 (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
14469 (rx_select_cc_mode): Likewise.
14470 (rx_split_fp_compare): New.
14471 (rx_split_cbranch): New.
14472 * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
14473 (*cbranchsi4): Use match_operator and rx_split_cbranch.
14474 (*cbranchsf4): Similarly.
14475 (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>. Use
14476 match_operator and rx_split_cbranch.
14477 (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
14478 tstbranchsi4m_ne. Use match_operator and rx_split_cbranch.
14479 (*cmpsi): Rename from cmpsi.
14480 (*tstsi): Rename from tstsi.
14481 (*cmpsf): Rename from cmpsf; use CC_Fmode.
14482 (*conditional_branch): Rename from conditional_branch.
14483 (*reveresed_conditional_branch): Remove.
14484 (b<code>): Remove expander.
14485 * config/rx/rx-protos.h: Update.
14486
af530bb4
RH
14487 * config/rx/rx.c (rx_compare_redundant): Remove.
14488 * config/rx/rx.md (cmpsi): Don't use it.
14489 * config/rx/rx-protos.h: Update.
14490
27bf36f3
RH
14491 * config/rx/rx-modes.def (CC_F): New mode.
14492 * config/rx/rx.c (rx_select_cc_mode): New.
14493 * config/rx/rx.h (SELECT_CC_MODE): Use it.
14494 * config/rx/rx-protos.h: Update.
14495
d7fde127
RH
144962011-01-17 Richard Henderson <rth@redhat.com>
14497
14498 * except.c (dump_eh_tree): Fix stray ; after for statement.
14499
6ff38230
RG
145002011-01-17 Richard Guenther <rguenther@suse.de>
14501
14502 PR tree-optimization/47313
14503 * tree-inline.c (tree_function_versioning): Move DECL_RESULT
14504 handling before copying the body. Properly deal with
14505 by-reference result in SSA form.
14506
114ce554
ILT
145072011-01-17 Ian Lance Taylor <iant@google.com>
14508
bf5cd92b 14509 PR target/47219
114ce554
ILT
14510 * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
14511 (struct_value_alias_set): Don't define.
14512 (sparc_option_override): Don't set sparc_sr_alias_set and
14513 struct_value_alias_set.
14514 (save_or_restore_regs): Use gen_frame_mem rather than calling
14515 set_mem_alias_set.
14516 (sparc_struct_value_rtx): Likewise.
14517
98c6d93c
L
145182011-01-17 H.J. Lu <hongjiu.lu@intel.com>
14519
14520 PR target/47318
7a81008b 14521 * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
98c6d93c
L
14522 (_mm_maskstore_pd): Likewise.
14523 (_mm_maskload_ps): Likewise.
14524 (_mm_maskstore_ps): Likewise.
14525 (_mm256_maskload_pd): Change mask to __m256i.
14526 (_mm256_maskstore_pd): Likewise.
14527 (_mm256_maskload_ps): Likewise.
14528 (_mm256_maskstore_ps): Likewise.
14529
14530 * config/i386/i386-builtin-types.def: Updated.
14531 (ix86_expand_special_args_builtin): Likewise.
14532
14533 * config/i386/i386.c (bdesc_special_args): Update
14534 __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
14535 __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
14536 __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
14537 __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
14538
14539 * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
14540 Use <avxpermvecmode> on mask register.
14541 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
14542
b9361af2 145432011-01-17 Olivier Hainque <hainque@adacore.com>
61052244
AM
14544 Michael Haubenwallner <michael.haubenwallner@salomon.at>
14545 Eric Botcazou <ebotcazou@adacore.com>
b9361af2
OH
14546
14547 PR target/46655
14548 * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
14549 if <= USHRT_MAX in 32-bit mode.
14550
b7ae9eb5
RW
145512011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14552
14553 * doc/install.texi (Configuration, Specific): Wrap long
14554 lines in examples. Allow line wrapping in long options
14555 and URLs where beneficial for PDF output.
14556
4377fad9
RS
145572011-01-16 Richard Sandiford <rdsandiford@googlemail.com>
14558
14559 * config/mips/mips.c (mips_classify_symbol): Don't return
14560 SYMBOL_PC_RELATIVE for nonlocal labels.
14561
55959ffa 145622011-01-15 Eric Botcazou <ebotcazou@adacore.com>
be46831f 14563
55959ffa
EB
14564 * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
14565
145662011-01-15 Jan Hubicka <jh@suse.cz>
14567
14568 PR tree-optimization/47276
be46831f
JH
14569 * ipa.c (function_and_variable_visibility): Do not try to mark alias
14570 declarations as needed.
14571
05842ff5
MJ
145722011-01-15 Martin Jambor <mjambor@suse.cz>
14573
14574 * common.opt (fdevirtualize): New flag.
14575 * doc/invoke.texi (Option Summary): Document it.
14576 * opts.c (default_options_table): Add devirtualize flag.
14577 * ipa-prop.c (detect_type_change): Return immediately if
14578 devirtualize flag is not set.
14579 (detect_type_change_ssa): Likewise.
14580 (compute_known_type_jump_func): Likewise.
14581 (ipa_analyze_virtual_call_uses): Likewise.
14582
f65cf2b7
MJ
145832011-01-14 Martin Jambor <mjambor@suse.cz>
14584
14585 PR tree-optimization/45934
14586 PR tree-optimization/46302
14587 * ipa-prop.c (type_change_info): New type.
14588 (stmt_may_be_vtbl_ptr_store): New function.
14589 (check_stmt_for_type_change): Likewise.
14590 (detect_type_change): Likewise.
14591 (detect_type_change_ssa): Likewise.
14592 (compute_complex_assign_jump_func): Check for dynamic type change.
14593 (compute_complex_ancestor_jump_func): Likewise.
14594 (compute_known_type_jump_func): Likewise.
14595 (compute_scalar_jump_functions): Likewise.
14596 (ipa_analyze_virtual_call_uses): Likewise.
14597 (ipa_analyze_node): Push and pop cfun, set current_function_decl.
14598
eb5bb0fd
JM
145992011-01-14 Joseph Myers <joseph@codesourcery.com>
14600
14601 * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
14602 * config/i386/i386.opt (msse5): New Alias.
14603
f2060fbe
JM
146042011-01-14 Joseph Myers <joseph@codesourcery.com>
14605
14606 * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
14607 * config/sparc/linux64.h (CC1_SPEC): Likewise.
14608 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
14609 * config/sparc/sparc.h (CC1_SPEC): Likewise.
14610
3a7b4385
JM
146112011-01-14 Joseph Myers <joseph@codesourcery.com>
14612
14613 * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
14614 -mcpu options.
14615 * config/sparc/linux64.h (CC1_SPEC): Likewise.
14616 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
14617 * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
14618 * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
14619 Likewise.
14620 * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
14621
a7b778f8
JM
146222011-01-14 Joseph Myers <joseph@codesourcery.com>
14623
38be4072 14624 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
a7b778f8 14625
a7edae0a
MS
146262011-01-14 Mike Stump <mikestump@comcast.net>
14627
14628 * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
14629 * config/fr30/fr30.md: Likweise
14630 (movsi_push): Likewise.
14631 (movsi_pop): Likewise.
14632 (enter_func): Likewise.
14633 * config/moxie/moxie.md (movsi_push): Likewise.
14634 (movsi_pop): Likewise.
14635
cbabf03f
JM
146362011-01-14 Joseph Myers <joseph@codesourcery.com>
14637
14638 * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
14639 %{no_archive} %{exact_version}.
14640 * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
14641 * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
14642 %{no_archive} %{exact_version}.
14643 * config/mips/openbsd.h (LINK_SPEC): Likewise.
14644 * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
14645 * config/mips/vxworks.h: Likewise.
14646
438da41a
JM
146472011-01-14 Joseph Myers <joseph@codesourcery.com>
14648
38be4072 14649 * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
438da41a 14650
da290a42
JM
146512011-01-14 Joseph Myers <joseph@codesourcery.com>
14652
14653 * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
14654 ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
14655
8989d00e
JM
146562011-01-14 Joseph Myers <joseph@codesourcery.com>
14657
14658 * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
14659 -nodefaultlib.
14660
a3010a69
JM
146612011-01-14 Joseph Myers <joseph@codesourcery.com>
14662
14663 * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
14664 for mcpu not cpu.
14665 * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
14666 CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
14667 not cpu.
14668 (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
14669 Don't handle -shlib.
14670
e7f2f537
JM
146712011-01-14 Joseph Myers <joseph@codesourcery.com>
14672
14673 * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
14674 (CC1_SPEC): Don't handle -profile.
14675
34830bfd
JM
146762011-01-14 Joseph Myers <joseph@codesourcery.com>
14677
14678 * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
14679 * config/mips/mips.h (CC1_SPEC): Likewise.
14680
b2d36e74
JM
146812011-01-14 Joseph Myers <joseph@codesourcery.com>
14682
14683 * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
14684 * config/mips/mips.h (CC1_SPEC): Likewise.
14685
dabadc52
JM
146862011-01-14 Joseph Myers <joseph@codesourcery.com>
14687
14688 * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
14689 * config/m32r/linux.h (LINK_SPEC): Likewise.
14690 * config/mips/linux.h (LINK_SPEC): Likewise.
14691 * config/mips/linux64.h (LINK_SPEC): Likewise.
14692 * config/sparc/linux.h (LINK_SPEC): Likewise.
14693 * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
14694 LINK_SPEC): Likewise.
14695 * config/xtensa/linux.h (LINK_SPEC): Likewise.
14696
43ee6785
JM
146972011-01-14 Joseph Myers <joseph@codesourcery.com>
14698
14699 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
14700 %{version:-v}.
14701 * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
14702
45e79dfd
JM
147032011-01-14 Joseph Myers <joseph@codesourcery.com>
14704
14705 * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
14706 * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
14707
37e9e71d
JM
147082011-01-14 Joseph Myers <joseph@codesourcery.com>
14709
14710 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
14711
bb127cd8
RO
147122011-01-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14713
14714 * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
14715 supports -Bstatic/-Bdynamic.
14716 * configure: Regenerate.
14717
89a012ea 147182011-01-14 Jan Hubicka <jh@suse.cz>
509d65dd 14719 Jack Howarth <howarth@bromo.med.uc.edu>
89a012ea
JH
14720
14721 PR target/46037
14722 * config/darwin.c (darwin_override_options): Honor flag_gtoggle
14723 when checking debug_info_level. Test write_symbols instead of
14724 debug_hooks->var_location when setting flag_var_tracking_uninit.
14725
7352c013
RG
147262011-01-14 Richard Guenther <rguenther@suse.de>
14727
14728 PR tree-optimization/47179
14729 * target.def (ref_may_alias_errno): New target hook.
14730 * targhooks.h (default_ref_may_alias_errno): Declare.
14731 * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
14732 (default_ref_may_alias_errno): New function.
14733 * target.h (struct ao_ref_s): Declare.
14734 * tree-ssa-alias.c: Include target.h.
14735 (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
14736 * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
14737 (targhooks.o): Likewise.
14738 * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
14739 * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
14740
9a6c9288
RG
147412011-01-14 Richard Guenther <rguenther@suse.de>
14742
14743 * tree-ssa-structalias.c (new_var_info): Use DECL_HARD_REGISTER.
14744
0fdb0d27
RG
147452011-01-14 Richard Guenther <rguenther@suse.de>
14746
14747 PR tree-optimization/47280
14748 * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
14749 return CFG changes.
14750 (tree_ssa_forward_propagate_single_use_vars): Deal with
14751 CFG changes from associate_plusminus.
14752
8f66db3b
RG
147532011-01-14 Richard Guenther <rguenther@suse.de>
14754
14755 PR middle-end/47281
14756 Revert
14757 2011-01-11 Richard Guenther <rguenther@suse.de>
14758
280d9630
EB
14759 PR tree-optimization/46076
14760 * tree-ssa.c (useless_type_conversion_p): Conversions from
14761 unprototyped to empty argument list function types are useless.
8f66db3b 14762
6c0c92e6
RG
147632011-01-14 Richard Guenther <rguenther@suse.de>
14764
14765 PR tree-optimization/47286
280d9630 14766 * tree-ssa-structalias.c (new_var_info): Register variables are global.
6c0c92e6 14767
db09f943
MJ
147682011-01-14 Martin Jambor <mjambor@suse.cz>
14769
14770 PR middle-end/46823
14771 * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
14772
dde8a3a4
AS
147732011-01-13 Anatoly Sokolov <aesok@post.ru>
14774
14775 * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
14776 LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
14777 * config/xtensa/xtensa.c (xtensa_libcall_value,
14778 xtensa_function_value_regno_p): New functions.
14779 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
14780
a2b63a20
KT
147812011-01-13 Kai Tietz <kai.tietz@onevision.com>
14782
14783 PR c++/47213
14784 * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
14785 PE specific hook.
14786 * config/i386/i386-protos.h (i386_pe_assemble_visibility):
14787 New function prototype.
14788 * config/i386/winnt.c (i386_pe_assemble_visibility):
14789 Warn only if attribute was specified by user.
14790
b41f0b34
MM
147912011-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
14792
14793 PR target/47251
14794 * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
14795 floating point.
14796 (floatunsdidf2_fcfidu): Ditto.
14797
3f3c098d
AK
147982011-01-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14799
14800 * config/s390/s390.c (print_operand_address): Replace 'error' with
14801 'output_operand_lossage'.
14802 (print_operand): Likewise.
14803
29fa95ed
JL
148042011-01-13 Jeff Law <law@redhat.com>
14805
280d9630 14806 PR rtl-optimization/39077
29fa95ed
JL
14807 * doc/invoke.texi (max-gcse-insertion-ratio): Document.
14808 * params.h (MAX_GCSE_INSERTION_RATIO): Define.
14809 * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
14810 * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
14811 * gcse.c (prune_insertions_deletions): New function.
14812 (compute_pre_data): Use it.
14813
71d12276
DS
148142011-01-13 Dodji Seketeli <dodji@redhat.com>
14815
14816 PR debug/PR46973
14817 * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
14818 static function.
61052244 14819 (prune_unused_types_mark): Use it.
71d12276 14820
9b0f04e7
AB
148212011-01-13 Andrey Belevantsev <abel@ispras.ru>
14822
14823 PR rtl-optimization/45352
1c3ba85b 14824 * sel-sched.c: Update copyright years.
9b0f04e7 14825 (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
1c3ba85b 14826 in the advancing loop when we have issued issue_rate insns.
9b0f04e7 14827
d6a3e264
RH
148282011-01-12 Richard Henderson <rth@redhat.com>
14829
a49b692a
RH
14830 * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
14831 (TARGET_MD_ASM_CLOBBERS): New.
14832
126b1483
RH
14833 * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
14834 (TARGET_DELEGITIMIZE_ADDRESS): New.
14835
f3d9d2e0
RH
14836 * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
14837 (clzsi2, *bsch): New patterns.
14838
d84760c9
RH
14839 * config/mn10300/mn10300.md (INT): New mode iterator.
14840 (*mov<INT>_clr): New pattern, and peep2 to generate it.
14841
ec815d65
RH
14842 * config/mn10300/mn10300.c (mn10300_option_override): Force enable
14843 flag_split_wide_types.
14844
d6a3e264
RH
14845 * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
14846 (mn10300_trampoline_init): Rewrite without a template, an immediate
14847 load and a direct branch.
14848 * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
14849
0f8ab434
AS
148502011-01-12 Anatoly Sokolov <aesok@post.ru>
14851
14852 * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
14853 * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
14854 * config/s390/s390.c (s390_output_addr_const_extra): Make static.
14855 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
14856
d8a24b65
KT
148572011-01-12 Kai Tietz <kai.tietz@onevision.com>
14858
14859 PR debug/47209
14860 * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
14861 of type.
14862
56e22cab
JH
148632011-01-12 Jan Hubicka <jh@suse.cz>
14864
14865 PR driver/47244
14866 * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
14867 (PLUGIN_COND_CLOSE): New macro.
14868 (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
14869
4b18b3c2
RG
148702011-01-12 Richard Guenther <rguenther@suse.de>
14871
14872 PR lto/47259
14873 * lto-streamer-out.c (output_gimple_stmt): Do not wrap
14874 register variables in a MEM_REF.
14875
8e38461c
JM
148762011-01-12 Joseph Myers <joseph@codesourcery.com>
14877
14878 * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
14879 crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
14880 hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
14881 i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
14882 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
14883 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
14884 ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
14885 m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
14886 mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
14887 s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
14888 sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
14889 am33_2.0-*-linux*): Use gnu-user.h before linux.h.
14890 * config/gnu-user.h: New. Copied from linux.h.
14891 (LINUX_TARGET_STARTFILE_SPEC): Rename to
14892 GNU_USER_TARGET_STARTFILE_SPEC.
14893 (LINUX_TARGET_ENDFILE_SPEC): Rename to
14894 GNU_USER_TARGET_ENDFILE_SPEC.
14895 (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
14896 (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
14897 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
14898 LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
14899 CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
14900 UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
14901 BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
14902 BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
14903 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
14904 TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
14905 * config/arm/linux-eabi.h (CC1_SPEC): Use
14906 GNU_USER_TARGET_CC1_SPEC.
14907 (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
14908 (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
14909 (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
14910 * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
14911 LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
14912 LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
14913 CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
14914 LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
14915
a570fc16
RG
149162011-01-12 Richard Guenther <rguenther@suse.de>
14917
14918 PR other/46946
14919 * doc/invoke.texi (ffast-math): Document it is turned on
14920 with -Ofast.
14921
b0223c3e
JH
149222011-01-12 Jan Hubicka <jh@suse.cz>
14923
14924 PR tree-optimization/47233
ca1e00b3
EB
14925 * opts.c (common_handle_option): Disable ipa-reference with profile
14926 feedback.
b0223c3e 14927
1c3ba85b 149282011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
d853ee42
NP
14929
14930 * c-parser.c (c_parser_objc_at_property_declaration): Improved
ca1e00b3
EB
14931 error message.
14932
d853ee42
NP
149332011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
14934
14935 * c-parser.c (c_lex_one_token): Updated and reindented some
14936 comments. No changes in code.
14937
4053a5a0
ILT
149382011-01-11 Ian Lance Taylor <iant@google.com>
14939
14940 * godump.c (go_output_var): Don't output the variable if there is
14941 already a type with the same name.
14942
fa3e04d2
ILT
149432011-01-11 Ian Lance Taylor <iant@google.com>
14944
14945 * godump.c (go_format_type): Don't generate float80.
14946
885fe07c
RH
149472011-01-11 Richard Henderson <rth@redhat.com>
14948
72d6e3c5
RH
14949 * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
14950 declaration. Rewrite for both speed and size.
14951 (mn10300_address_cost_1): Remove.
14952 (mn10300_register_move_cost): New.
14953 (mn10300_memory_move_cost): New.
14954 (mn10300_rtx_costs): Rewrite for both speed and size. Don't handle
14955 ZERO_EXTRACT. Do handle UNSPEC, arithmetic, logicals, compare,
14956 extensions, shifts, BSWAP, CLZ.
14957 (mn10300_wide_const_load_uses_clr): Remove.
14958 (TARGET_REGISTER_MOVE_COST): New.
14959 (TARGET_MEMORY_MOVE_COST): New.
14960 * config/mn10300/mn10300-protos.h: Update.
14961 * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
14962
df37c023
RH
14963 * config/mn10300/constraints.md ("R", "T"): Remove constraints.
14964 * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
14965 * config/mn10300/mn10300-protos.h: Update.
14966 * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
14967 (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
14968 (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
14969 (*test_int_bitfield, *test_byte_bitfield): Remove.
14970 (*bit_test, *subreg_bit_test): Remove.
62d3f9b2 14971 * config/mn10300/predicates.md (const_8bit_operand): Remove.
df37c023 14972
85a337b5
RH
14973 * config/mn10300/constraints.md ("c"): Rename from "A".
14974 ("A", "D"): New constraint letters.
14975 * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
14976 (fmssf4, fnmasf4, fnmssf4): Likewise.
14977
a5c727e3
RH
14978 * config/mn10300/mn10300.md (isa): New attribute.
14979 (enabled): New attribute.
14980
0d9e23f4
RH
14981 * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
14982 (abssf2, negsf2): Define only for hardware fp.
14983 (sqrtsf2): Reformat.
14984 (addsf3, subsf3, mulsf3): Merge expander and insn.
14985
c157b3f0
RH
14986 * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
14987 (DEBUGGER_AUTO_OFFSET): Remove.
14988 (DEBUGGER_ARG_OFFSET): Remove.
14989
cc909bba
RH
14990 * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
14991 Emit register stores with the same offsets as the hardware.
14992 (mn10300_store_multiple_operation): Don't check that the register
14993 save offsets are monotonic.
14994 * config/mn10300/mn10300-protos.h: Update.
14995
e3b5c2f3
RH
14996 * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
14997
885fe07c
RH
14998 * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
14999 in terms of the value on the stack, not the MDR register.
15000
6e701822
JH
150012011-01-11 Jan Hubicka <jh@suse.cz>
15002
15003 PR lto/45721
15004 PR lto/45375
15005 * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
15006 (symbol_alias_set_destroy, symbol_alias_set_contains,
15007 propagate_aliases_backward): Declare.
15008 * lto-streamer-out.c (struct sets): New sturcture.
15009 (trivally_defined_alias): New function.
15010 (output_alias_pair_p): Rewrite.
15011 (output_unreferenced_globals): Fix output of alias pairs.
15012 (produce_symtab): Likewise.
15013 * ipa.c (function_and_variable_visibility): Set weak alias destination
15014 as needed in lto.
15015 * varasm.c (symbol_alias_set_t): Remove.
15016 (symbol_alias_set_destroy): Export.
15017 (propagate_aliases_forward, propagate_aliases_backward): New functions
15018 based on ...
15019 (compute_visible_aliases): ... this one; remove.
15020 (trivially_visible_alias): New
15021 (trivially_defined_alias): New.
15022 (remove_unreachable_alias_pairs): Rewrite.
15023 (finish_aliases_1): Reorganize code checking if alias is defined.
15024 * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
15025 in LTO mode.
15026
1b248907
RG
150272011-01-11 Richard Guenther <rguenther@suse.de>
15028
15029 PR tree-optimization/46076
15030 * tree-ssa.c (useless_type_conversion_p): Conversions from
15031 unprototyped to empty argument list function types are useless.
15032
b1923f0a
RG
150332011-01-11 Richard Guenther <rguenther@suse.de>
15034
15035 PR middle-end/45235
15036 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
15037 volatile MEMs as MEM_READONLY_P.
15038
e98965af
RG
150392011-01-11 Richard Guenther <rguenther@suse.de>
15040
15041 PR tree-optimization/47239
15042 * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
15043
9f9ca914
JL
150442011-01-11 Jeff Law <law@redhat.com>
15045
1ee3ea05 15046 PR tree-optimization/47086
9f9ca914
JL
15047 * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
15048 IVs from statements that might throw.
15049
345fdcb7
JH
150502011-01-10 Jan Hubicka <jh@suse.cz>
15051
15052 PR lto/45375
15053 * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
15054
c459c97b
JH
150552011-01-10 Jan Hubicka <jh@suse.cz>
15056
15057 PR lto/45375
15058 * profile.c (read_profile_edge_counts): Ignore profile inconistency
15059 when correcting profile.
15060
06c9eb51
JH
150612011-01-10 Jan Hubicka <jh@suse.cz>
15062
15063 PR lto/46083
15064 * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
15065 DECL_FINI_PRIORITY.
15066 * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
15067 Restore DECL_FINI_PRIORITY.
15068
ae9fd815
RW
150692011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
15070
15071 * doc/gimple.texi: Fix quoting of multi-word return values in
15072 @deftypefn statements. Ensure presence of return value. Wrap
15073 overlong @deftypefn lines.
15074 (is_gimple_operand, is_gimple_min_invariant_address): Remove
15075 descriptions of removed functions.
15076 * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
15077 of multi-word return value in @deftypefn statement.
15078
0ecb4a7c
RW
150792011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
15080
15081 * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
15082 (Conditional Expressions, Logical Operators)
15083 (Statement and operand traversals): Do not indent smallexample
15084 code. Fix duplicate function argument in example.
15085
2e5e346d
JL
150862011-01-10 Jeff Law <law@redhat.com>
15087
1ee3ea05 15088 PR tree-optimization/47141
2e5e346d
JL
15089 * ipa-split.c (split_function): Handle case where we are
15090 returning a value and the return block has a virtual operand phi.
15091
cf9712cc
JH
150922011-01-10 Jan Hubicka <jh@suse.cz>
15093
1c3ba85b 15094 PR tree-optimization/47234
cf9712cc
JH
15095 * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
15096 (pass_feedback_split_functions): Declare.
15097 * passes.c (init_optimization_passes): Add ipa-split as subpass of
15098 tree-profile.
15099 * ipa-split.c (gate_split_functions): Update comments; disable
15100 split-functions for profile_arc_flag and branch_probabilities.
15101 (gate_feedback_split_functions): New function.
15102 (execute_feedback_split_functions): New function.
15103 (pass_feedback_split_functions): New global var.
15104
94cd932c
L
151052011-01-10 H.J. Lu <hongjiu.lu@intel.com>
15106
15107 PR lto/46760
15108 * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
15109 calling gimple_call_set_cannot_inline.
15110
fbbfcaf1
IS
151112011-01-10 Iain Sandoe <iains@gcc.gnu.org>
15112
15113 * config/darwin-sections.def: Remove unused section.
15114
d06865bf
DK
151152011-01-10 Dave Korn <dave.korn.cygwin@gmail.com>
15116
15117 PR c++/47218
15118 * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
15119
96bbfbac
NP
151202011-01-09 Nicola Pero <nicola.pero@meta-innovation.com>
15121
15122 PR objc/47232
15123 * c-parser.c (c_parser_declaration_or_fndef): Improved
15124 error message.
15125
1ba6516f
KT
151262011-01-09 Kai Tietz <kai.tietz@onevision.com>
15127
15128 * config/i386/winnt.c (i386_pe_start_function): Make sure
15129 to switch back to function's section.
15130
0c5d770e
IS
151312011-01-09 Iain Sandoe <iains@gcc.gnu.org>
15132
15133 PR gcc/46902
15134 PR testsuite/46912
15135 * plugin.c: Move include of dlfcn.h from here...
15136 * system.h: ... to here.
15137
151382011-01-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4ee1aa2a
RW
15139
15140 * doc/cpp.texi (C++ Named Operators): Fix markup for header
15141 file name.
15142 * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
15143 two extra empty pages in PDF output.
15144
046608a3
NP
151452011-01-08 Nicola Pero <nicola.pero@meta-innovation.com>
15146
15147 PR objc/47078
15148 * c-parser.c (c_parser_objc_type_name): If the type is unknown,
15149 for error recovery purposes behave as if it was not specified so
15150 that the default type is usd.
15151
8cb114b9
JH
151522011-01-07 Jan Hubicka <jh@suse.cz>
15153
15154 PR tree-optmization/46469
15155 * ipa.c (function_and_variable_visibility): Clear needed flags on
15156 nodes with external decls; handle weakrefs merging correctly.
15157
b294a75e
JM
151582011-01-07 Joseph Myers <joseph@codesourcery.com>
15159
15160 * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
15161 not false.
15162
96bdf9b4
JH
151632011-01-07 Jan Hubicka <jh@suse.cz>
15164
f60c2554 15165 * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
96bdf9b4
JH
15166 and no longer claim that gold is required for linker plugin.
15167 * configure: Regenerate.
15168 * gcc.c (PLUGIN_COND): New macro.
15169 (LINK_COMMAND_SPEC): Use it.
15170 (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
15171 * config.in (HAVE_LTO_PLUGIN): New.
15172 * configure.ac (--with-lto-plugin): New parameter; autodetect
15173 HAVE_LTO_PLUGIN.
15174
17afc0fe
JH
151752011-01-07 Jan Hubicka <jh@suse.cz>
15176
15177 PR tree-optimization/46367
15178 * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
15179 when we can update original.
15180 (cgraph_mark_inline_edge): Sanity check.
15181 * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
15182
d4c48c0f
UW
151832011-01-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15184
15185 * config/spu/spu.h (ASM_COMMENT_START): Define.
15186
96f5b137
L
151872011-01-07 H.J. Lu <hongjiu.lu@intel.com>
15188
15189 PR driver/42445
15190 * gcc.c (%>S): New.
15191 (SWITCH_KEEP_FOR_GCC): Likewise.
15192 (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
15193 (do_spec_1): Handle "%>".
15194
15195 * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
15196
c6a8f6de
JJ
151972011-01-07 Jakub Jelinek <jakub@redhat.com>
15198
c21bbd7a
JJ
15199 PR target/47201
15200 * config/i386/i386.c (ix86_delegitimize_address): If
15201 simplify_gen_subreg fails, return orig_x.
15202
c6a8f6de
JJ
15203 PR bootstrap/47187
15204 * value-prof.c (gimple_stringop_fixed_value): Handle
15205 lhs of the call properly.
15206
fe95fbf9
JH
152072011-01-07 Jan Hubicka <jh@suse.cz>
15208
15209 PR lto/45375
15210 * lto-opt.c (lto_reissue_options): Set flag_shlib.
15211
14d11d40
IS
152122011-01-07 Iain Sandoe <iains@gcc.gnu.org>
15213
72e961c8
EB
15214 * target.def (function_switched_text_sections): New hook.
15215 * doc/tm.texi: Regenerated.
15216 * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14d11d40 15217 * final.c (default_function_switched_text_sections): New.
72e961c8
EB
15218 (final_scan_insn): Call function_switched_text_sections when a
15219 mid-function section change occurs.
14d11d40 15220 * output.h (default_function_switched_text_sections): Declare.
72e961c8
EB
15221 * config/darwin-protos.h (darwin_function_switched_text_sections):
15222 Likewise.
14d11d40 15223 * config/darwin.c (darwin_function_switched_text_sections): New.
72e961c8 15224 * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14d11d40 15225
0b764288
IS
152262011-01-07 Iain Sandoe <iains@gcc.gnu.org>
15227
15228 * dwarf2out.c (gen_subprogram_die): Add pubnames with code ranges for
15229 DWARF >= 3. Add pubnames for the primary section and a reduced DIE for
15230 the secondary code fragment when outputting for DWARF == 2.
15231
2ac6bb04
AS
152322011-01-07 Anatoly Sokolov <aesok@post.ru>
15233
15234 * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
15235 * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
15236 Remove.
15237 * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
15238 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
15239
9f82de11
EB
152402011-01-06 Eric Botcazou <ebotcazou@adacore.com>
15241
15242 PR debug/46704
280d9630
EB
15243 * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
15244 when it is not empty.
9f82de11
EB
15245
152462011-01-06 Changpeng Fang <changpeng.fang@amd.com>
14b52538 15247
1ed72abf 15248 Bobcat Enablement
14b52538 15249 * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
1ed72abf 15250 (case ${target}): Add btver1.
14b52538 15251 * config/i386/driver-i386.c (host_detect_local_cpu): Let
1ed72abf 15252 -march=native recognize btver1 processors.
14b52538 15253 * config/i386/i386-c.c (ix86_target_macros_internal): Add
1ed72abf 15254 btver1 def_and_undef
14b52538 15255 * config/i386/i386.c (struct processor_costs btver1_cost): New
1ed72abf
CF
15256 btver1 cost table.
15257 (m_BTVER1): New definition.
15258 (m_AMD_MULTIPLE): Includes m_BTVER1.
15259 (initial_ix86_tune_features): Add btver1 tune.
15260 (processor_target_table): Add btver1 entry.
15261 (static const char *const cpu_names): Add btver1 entry.
15262 (software_prefetching_beneficial_p): Add btver1.
15263 (ix86_option_override_internal): Add btver1 instruction sets.
15264 (ix86_issue_rate): Add btver1.
15265 (ix86_adjust_cost): Add btver1.
14b52538 15266 * config/i386/i386.h (TARGET_BTVER1): New definition.
1ed72abf
CF
15267 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
15268 (enum processor_type): Add PROCESSOR_BTVER1.
14b52538
CF
15269 * config/i386/i386.md (define_attr "cpu"): Add btver1.
15270
e1a973d8
RO
152712011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15272
15273 PR target/43309
15274 * config/i386/i386.c (legitimize_tls_address)
15275 <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
15276 * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
15277 (tls_initial_exec_64_sun): New pattern.
15278
c73f67c5
GP
152792011-01-06 Gerald Pfeifer <gerald@pfeifer.com>
15280
15281 * doc/invoke.texi (Overall Options): Improve wording and markup
15282 of the description of -wrapper.
15283
bc4c6f9c
JM
152842011-01-06 Joseph Myers <joseph@codesourcery.com>
15285
15286 * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
15287 rdynamic, threads): New Driver options.
15288
adb75db0
RO
152892011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15290
15291 PR target/38118
15292 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
15293 if coming from .tdata.
15294 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
15295
402c1cb4
JH
152962011-01-06 Jan Hubicka <jh@suse.cz>
15297
15298 PR lto/47188
15299 * collect2.c (main): Do not enable LTOmode when plugin is active.
15300
a4da6485
RO
153012011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15302
15303 PR other/45915
15304 * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
15305 --version output if supported.
15306 * configure: Regenerate.
15307
028dbdf4
JM
153082011-01-06 Joseph Myers <joseph@codesourcery.com>
15309
15310 * config/linux-android.opt (tno-android-cc, tno-android-ld): New
15311 Driver options.
15312
dfe776dd
JJ
153132011-01-06 Jakub Jelinek <jakub@redhat.com>
15314
15315 PR c/47150
15316 * c-convert.c (convert): When converting a complex expression
15317 other than COMPLEX_EXPR to a different complex type, ensure
15318 c_save_expr is called instead of save_expr, unless in_late_binary_op.
15319 * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
15320 when converting COMPLEX_TYPE.
15321
210dedfe
IR
153222011-01-06 Ira Rosen <irar@il.ibm.com>
15323
15324 PR tree-optimization/47139
15325 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
15326 only the last reduction value is used outside the loop. Update
15327 documentation.
15328
cd33a412
JM
153292011-01-05 Joseph Myers <joseph@codesourcery.com>
15330
15331 * config/rtems.opt: New.
15332 * config.gcc (*-*-rtems*): Use rtems.opt.
15333
819edd94
CF
153342011-01-05 Changpeng Fang <changpeng.fang@amd.com>
15335
15336 * config/i386/i386.c (ix86_option_override_internal): Bulldozer
15337 processors do not support 3DNow instructions.
15338
dc242c4a
UW
153392011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15340
15341 * config/spu/spu.c (spu_option_override): Set parameter
15342 PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
15343
be286227
JH
153442011-01-05 Jan Hubicka <jh@suse.cz>
15345
15346 * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
15347 at the command line.
15348
644e637f
MJ
153492011-01-05 Martin Jambor <mjambor@suse.cz>
15350
15351 PR lto/47162
15352 * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
15353 deltas on streamed outgoing edges.
15354 (output_node_opt_summary): Output info for outgoing edges only when
15355 the node is in new parameter set.
15356 (output_cgraph_opt_summary): New parameter set, passed to the two
15357 aforementioned functions. Update its forward declaration and its
15358 callee too.
15359
7bd11157
TT
153602011-01-05 Tom Tromey <tromey@redhat.com>
15361
15362 * c-parser.c (c_parser_omp_atomic): Pass location of assignment
15363 operator to c_finish_omp_atomic.
15364 * c-typeck.c (lvalue_or_else): Add 'loc' argument.
15365 (build_unary_op): Update.
15366 (build_modify_expr): Update.
15367 (build_asm_expr): Update.
15368
f626b979
UW
153692011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15370
15371 * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
15372 newly inserted insns.
15373 (pad_bb): Likewise.
15374 (spu_emit_branch_hint): Likewise.
15375 (insert_hbrp_for_ilb_runout): Likewise.
15376 (spu_machine_dependent_reorg): Call df_finish_pass after
15377 schedule_insns returns.
15378
4c825c02
UW
153792011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15380
15381 * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
15382
5e9fba51
EB
153832011-01-05 Eric Botcazou <ebotcazou@adacore.com>
15384
15385 PR tree-optimization/47005
15386 * tree-sra.c (struct access): Add 'non_addressable' bit.
15387 (create_access): Set it for a DECL_NONADDRESSABLE_P field.
15388 (decide_one_param_reduction): Return 0 if the parameter is passed by
15389 reference and one of the accesses in the group is non_addressable.
15390
3ebb5ca6
EB
153912011-01-04 Eric Botcazou <ebotcazou@adacore.com>
15392
15393 PR tree-optimization/47056
15394 * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
15395 (mark_load): Likewise. Handle FUNCTION_DECL specially.
15396 (mark_store): Likewise. Pass STMT to ipa_record_reference.
15397
d5d4d14e
EB
153982011-01-04 Eric Botcazou <ebotcazou@adacore.com>
15399
15400 * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
15401 initializer. Skip view conversions from aggregate types.
15402
d996ef70
KT
154032011-01-04 Kai Tietz <kai.tietz@onevision.com>
15404
15405 PR bootstrap/47055
15406 * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
15407
509d65dd 154082011-01-04 Philipp Thomas <pth@suse.de>
017096ca
PT
15409
15410 * config/microblaze/microbalse.opt (mxl-float-convert): Fix
15411 obvious typo.
15412
55c623b5
UW
154132011-01-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15414
15415 * function.c (thread_prologue_and_epilogue_insns): Do not crash
15416 on empty epilogue sequences.
15417
b98d6b35
JM
154182011-01-04 Joseph Myers <joseph@codesourcery.com>
15419
15420 * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
15421 non-static): New Driver options.
15422
a0d43bac
JZ
154232011-01-04 Jie Zhang <jie@codesourcery.com>
15424
15425 PR driver/47137
15426 * gcc.c (default_compilers[]): Set combinable field to 0
15427 for all assembly languages.
15428
2b18eb32
MX
154292011-01-04 Mingjie Xing <mingjie.xing@gmail.com>
15430
15431 * config/mips/loongson3a.md: New file.
15432 * config/mips/mips.md: Include loongson3a.md.
15433 * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
15434 TUNE_LOONGSON_3A.
15435
42a48c4f
EB
154362011-01-03 Eric Botcazou <ebotcazou@adacore.com>
15437
15438 PR middle-end/47017
15439 * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
15440 instead of convert_memory_address_addr_space on the base expression.
15441
9c1732c4
UW
154422011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15443
15444 * config/spu/spu.c (spu_option_override): Update error text
15445 for bad -march= / -mtune= values.
15446
aa474365
UW
154472011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15448
15449 * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
15450 if branch-hint optimization will be performed.
15451
9766135b
JJ
154522011-01-03 Jakub Jelinek <jakub@redhat.com>
15453
371556ee
JJ
15454 PR tree-optimization/47148
15455 * ipa-split.c (split_function): Convert arguments to
15456 DECL_ARG_TYPE if possible.
15457
1ac12fa2
JJ
15458 PR tree-optimization/47155
15459 * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
15460 when computing uns.
15461
9766135b
JJ
15462 PR rtl-optimization/47157
15463 * combine.c (try_combine): If undobuf.other_insn becomes
15464 (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
15465 and set *new_direct_jump_p too.
15466
f4a2e571
SP
154672011-01-03 Sebastian Pop <sebastian.pop@amd.com>
15468
15469 PR tree-optimization/47021
15470 * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
15471
9f8e43c0
JJ
154722011-01-03 Jakub Jelinek <jakub@redhat.com>
15473
15474 * gcc.c (process_command): Update copyright notice dates.
15475 * gcov.c (print_version): Likewise.
15476 * gcov-dump.c (print_version): Likewise.
15477 * mips-tfile.c (main): Likewise.
15478 * mips-tdump.c (main): Likewise.
15479
1a2e38f3
MJ
154802011-01-03 Martin Jambor <mjambor@suse.cz>
15481
15482 PR tree-optimization/46801
15483 * tree-sra.c (type_internals_preclude_sra_p): Check whether
15484 aggregate fields start at byte boundary instead of the bit-field flag.
15485
56b721c5
L
154862011-01-03 H.J. Lu <hongjiu.lu@intel.com>
15487
15488 PR driver/47137
15489 * gcc.c (main): Revert revision 168407.
15490
839d549b
MJ
154912011-01-03 Martin Jambor <mjambor@suse.cz>
15492
15493 * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
15494
4ce99a20 154952011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2fa6eeff
UW
15496
15497 * tree-vect-generic.c (expand_vector_operations_1): When using vector/
15498 vector optab to expand vector/scalar shift, update gimple to vector.
15499
76df0ae6
MJ
155002011-01-03 Martin Jambor <mjambor@suse.cz>
15501
15502 * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
15503 a thunk.
15504
ce47fda3
MJ
155052011-01-03 Martin Jambor <mjambor@suse.cz>
15506
15507 PR tree-optimization/46984
15508 * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
15509 HOST_WIDE_INT.
15510 (cgraph_create_indirect_edge): Fixed line length.
15511 (cgraph_indirect_call_info): Declare.
15512 (cgraph_make_edge_direct) Update declaration.
15513 * cgraph.c (cgraph_allocate_init_indirect_info): New function.
15514 (cgraph_create_indirect_edge): Use it.
15515 (cgraph_make_edge_direct): Made delta HOST_WIDE_INT. Updated all
15516 callees.
15517 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
15518 the new thunk_delta representation.
15519 * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
15520 HOST_WIDE_INT.
15521 (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
15522 (ipa_read_indirect_edge_info): Likewise.
15523 * lto-cgraph.c (output_edge_opt_summary): New function.
15524 (output_node_opt_summary): Call it on all outgoing edges.
15525 (input_edge_opt_summary): New function.
15526 (input_node_opt_summary): Call it on all outgoing edges.
15527
1e67fa1f
L
155282011-01-02 H.J. Lu <hongjiu.lu@intel.com>
15529
15530 PR driver/47137
15531 * gcc.c (main): Don't check have_o when settting combine_inputs.
15532
6656b2ac
EB
155332011-01-02 Eric Botcazou <ebotcazou@adacore.com>
15534
15535 * regrename.c: Add general comment describing the pass.
15536 (struct du_head): Remove 'length' field.
15537 (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
15538 (regrename_optimize): Do not sort chains. Rework comments, add others.
15539 Force renaming to the preferred class (if any) in the first pass and do
15540 not consider registers that belong to it in the second pass.
15541 (create_new_chain): Do not set 'length' field.
15542 (scan_rtx_reg): Likewise.
15543
bc470c24
JJ
155442011-01-02 Jakub Jelinek <jakub@redhat.com>
15545
4e996296
JJ
15546 PR tree-optimization/47140
15547 * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
15548 TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
15549 to bit_value_binop.
15550
bc470c24 15551 PR rtl-optimization/47028
6656b2ac
EB
15552 * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
15553 parm_birth_insn instead of at the beginning of first bb.
bc470c24 15554
5af62fcd 155552011-01-02 Mingjie Xing <mingjie.xing@gmail.com>
0d52f2a8
MX
15556
15557 * doc/generic.texi: Remove duplicated "@subsubsection Statements".
15558 Remove the word "see" before "@pxref".
15559 * doc/rtl.texi: Remove the word "see" before "@pxref".
15560
0e20c89f
JH
155612011-01-01 Jan Hubicka <jh@suse.cz>
15562
6656b2ac
EB
15563 * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
15564 memory.
0e20c89f 15565
220e83ca
KT
155662011-01-01 Kai Tietz <kai.tietz@onevision.com>
15567
15568 PR target/38662
6656b2ac 15569 * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
220e83ca 15570
ad41bd84 15571\f
797103eb 15572Copyright (C) 2011 Free Software Foundation, Inc.
ad41bd84
JM
15573
15574Copying and distribution of this file, with or without modification,
15575are permitted in any medium without royalty provided the copyright
15576notice and this notice are preserved.