]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
nor.c: New.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
ade97eb1
SE
12013-10-22 Steve Ellcey <sellcey@mips.com>
2
3 * config/mips/mips.c (mips_rtx_costs): Fix cost estimate for nor
4 (AND (NOT OP1) (NOT OP2)).
5
843d68c6
BS
62013-10-22 Bill Schmidt <wschmidt@vnet.ibm.com>
7
8 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Reverse
9 meaning of merge-high and merge-low masks for little endian; avoid
10 use of vector-pack masks for little endian for mismatched modes.
11
574733d3
JBG
122013-10-22 Jan-Benedict Glaw <jbglaw@lug-owl.de>
13
14 * config/tilepro/tilepro.c: Include "tree.h".
15
1adb2fb9
AS
162013-10-22 Andreas Schwab <schwab@suse.de>
17
18 * config/m68k/m68k.c (notice_update_cc): Handle register conflict
19 with PRE_DEC.
20
f2f39141
PC
212013-10-22 Paolo Carlini <paolo.carlini@oracle.com>
22
23 * doc/contrib.texi ([Fran@,{c}ois Dumont], [Tim Shen],
24 [Ed Smith-Rowland]): New entries.
25 ([Stephen M. Webb]): Update.
26
8223bb78
AM
272013-10-22 Andrew MacLeod <amacleod@redhat.com>
28
29 * tree-ssa-ter.h: Remove duplicate copy of file contents.
30
1e08df0e
MP
312013-10-21 Marek Polacek <polacek@redhat.com>
32
33 PR middle-end/58809
34 * fold-const.c (fold_range_test): Return 0 if the type is not
35 an integral type.
36
67b5215c
RS
372013-10-21 Richard Sandiford <rdsandiford@googlemail.com>
38
39 * system.h: Move hwint.h include further down.
40 * hwint.h (sext_hwi, zext_hwi): Define unconditionally. Add
41 gcc_checking_asserts.
42 * hwint.c (sext_hwi, zext_hwi): Delete ENABLE_CHECKING versions.
43
0cad6830
BE
442013-10-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
45
46 Fix volatile issues in optimize_bit_field_compare.
47 * fold-const.c (optimize_bit_field_compare): Bail out if
48 lvolatilep or rvolatilep.
49
5dfd32cd
BE
502013-10-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
51
52 Fix DECL_BIT_FIELD depencency on flag_strict_volatile_bitfields
53 and get_inner_reference returning different pmode for non-volatile
54 bit-field members dependent on flag_strict_volatile_bitfields.
55 * stor-layout.c (layout_decl): Remove special handling of
56 flag_strict_volatile_bitfields.
57 * expr.c (get_inner_reference): Don't use DECL_BIT_FIELD
58 if flag_strict_volatile_bitfields > 0 and TREE_THIS_VOLATILE.
59
0bff3610
PM
602013-10-21 Paulo Matos <pmatos@broadcom.com>
61
62 * ipa-inline.c (edge_badness): Cap edge->count at max_count for badness
63 calculations.
64
b5c4ff78
JL
652013-10-21 Jeff Law <law@redhat.com>
66
f2f39141
PC
67 * tree-ssa-threadedge.c (thread_through_normal_block): New
68 argument VISITED. Remove VISISTED as a local variable. When we
69 have a threadable jump, verify the destination of the jump has not
70 been visised.
71 (thread_across_edge): Allocate VISITED bitmap once at function
72 scope and use it throughout. Make sure to set appropriate bits in
73 VISITED for E (start of jump thread path).
74 * tree-ssa-threadupdate.c (mark_threaded_blocks): Reject threading
75 through a joiner if any edge on the path has a recorded jump thread.
b5c4ff78 76
ce0770fc
ILT
772013-10-21 Ian Lance Taylor <iant@google.com>
78
79 * doc/invoke.texi (Optimize Options): For -fno-toplevel-reorder,
80 don't imply that attributes can solve all problems.
81 (Directory Options): Fix typo.
82
0e7504c8
KT
832013-10-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
84
85 * config/arm/arm.c (cortexa9_extra_costs): Update mult costs for
86 extend and extend_add.
87
2445aeac
RB
882013-10-21 Richard Biener <rguenther@suse.de>
89
90 PR tree-optimization/58794
91 * fold-const.c (operand_equal_p): Compare FIELD_DECL operand
92 of COMPONENT_REFs with OEP_CONSTANT_ADDRESS_OF left in place.
93
d480e6a5
RB
942013-10-21 Richard Biener <rguenther@suse.de>
95
96 PR middle-end/58742
97 * fold-const.c (fold_binary_loc): Fold ((T) (X /[ex] C)) * C
98 to (T) X for sign-changing conversions (or no conversion).
99
54f9aba0
UB
1002013-10-20 Uros Bizjak <ubizjak@gmail.com>
101
102 * config/i386/i386.md (kxnor<mode>): Add FLAGS_REG clobber.
103
d6c6ba3c
JH
1042013-10-20 Jan Hubicka <jh@suse.cz>
105
106 * config/i386/i386-tune.def: Add comment; organize into categories
107
d606b917
MZ
1082013-10-21 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
109
110 * config/i386/i386.c (expand_set_or_movmem_via_loop): Add issetmem
111 argument. Update function comment.
112 (expand_set_or_movmem_via_rep): New function combining
113 expand_movmem_via_rep_mov and expand_setmem_via_rep_stos.
114 (expand_movmem_via_rep_mov): Remove.
115 expand_setmem_via_rep_stos): Remove.
116 (expand_movmem_epilogue): Update calls correspondingly.
117 (expand_setmem_epilogue_via_loop): Likewise.
118 (emit_memset): New.
119 (expand_setmem_epilogue): Add VEC_VALUE argument, refactor.
120 (expand_set_or_movmem_prologue): New function combining
121 expand_movmem_prologue and expand_setmem_prologue.
122 (expand_movmem_prologue): Remove.
123 (expand_setmem_prologue): Remove.
124 (expand_set_or_movmem_constant_prologue): New function combining
125 expand_constant_movmem_prologue and expand_constant_setmem_prologue.
126 (expand_constant_movmem_prologue): Remove.
127 (expand_constant_setmem_prologue): Remove.
128 (promote_duplicated_reg): Allow vector-const0 value.
129 (ix86_expand_set_or_movmem): New function combining ix86_expand_movmem
130 and ix86_expand_setmem.
131 (ix86_expand_movmem): Call ix86_expand_set_or_movmem.
132 (ix86_expand_setmem): Call ix86_expand_set_or_movmem.
133
4d648807
DN
1342013-10-21 Diego Novillo <dnovillo@google.com>
135
136 * asan.c: Include tree.h
137 * bb-reorder.c: Likewise.
138 * cfgcleanup.c: Likewise.
139 * cfgloopmanip.c: Likewise.
140 * data-streamer-in.c: Likewise.
141 * data-streamer-out.c: Likewise.
142 * data-streamer.c: Likewise.
143 * dwarf2cfi.c: Likewise.
144 * graphite-blocking.c: Likewise.
145 * graphite-clast-to-gimple.c: Likewise.
146 * graphite-dependences.c: Likewise.
147 * graphite-interchange.c: Likewise.
148 * graphite-optimize-isl.c: Likewise.
149 * graphite-poly.c: Likewise.
150 * graphite-scop-detection.c: Likewise.
151 * graphite-sese-to-poly.c: Likewise.
152 * graphite.c: Likewise.
153 * ipa-devirt.c: Likewise.
154 * ipa-profile.c: Likewise.
155 * ipa.c: Likewise.
156 * ira.c: Likewise.
157 * loop-init.c: Likewise.
158 * loop-unroll.c: Likewise.
159 * lower-subreg.c: Likewise.
160 * lto/lto-object.c: Likewise.
161 * recog.c: Likewise.
162 * reginfo.c: Likewise.
163 * tree-loop-distribution.c: Likewise.
164 * tree-parloops.c: Likewise.
165 * tree-ssa-strlen.c: Likewise.
166 * tree-streamer.c: Likewise.
167 * value-prof.c: Likewise.
168 * target-globals.c: Likewise.
169 * expr.h: Include tree-core.h instead of tree.h.
170 * gimple.h: Likewise.
171 * ipa-prop.h: Likewise.
172 * ipa-utils.h: Likewise.
173 * lto-streamer.h: Likewise.
174 * streamer-hooks.h: Likewise.
175 * ipa-reference.h: Include cgraph.h instead of tree.h.
176 * cgraph.h: Include basic-block.h instead of tree.h.
177 * tree-streamer.h: Do not include tree.h.
178 * genattrtab.c (write_header): Generate inclusion of
179 tree.h.
180 * genautomata.c (main): Likewise.
181 * genemit.c: Likewise.
182 * genopinit.c: Likewise.
183 * genoutput.c (output_prologue): Likewise.
184 * genpeep.c: Likewise.
185
dd346f1f
BS
1862013-10-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
187
188 * config/rs6000/altivec.md (vec_unpacku_hi_v16qi): Adjust for
189 little endian.
190 (vec_unpacku_hi_v8hi): Likewise.
191 (vec_unpacku_lo_v16qi): Likewise.
192 (vec_unpacku_lo_v8hi): Likewise.
193
915e8e6e
JH
1942013-10-20 Jan Hubicka <jh@suse.cz>
195
196 * config/i386/x86-tune.def (X86_TUNE_SLOW_IMUL_IMM32_MEM,
197 X86_TUNE_SLOW_IMUL_IMM8): Keep enabled only for K8 and AMDFAM10.
198 (X86_TUNE_USE_VECTOR_FP_CONVERTS): Disable for generic.
199
0f37323c
RS
2002013-10-20 Richard Sandiford <rdsandiford@googlemail.com>
201
202 * config/mips/mips.h (ISA_HAS_WSBH): Define.
203 * config/mips/mips.md (UNSPEC_WSBH, UNSPEC_DSBH, UNSPEC_DSHD): New
204 constants.
205 (bswaphi2, bswapsi2, bswapdi2, wsbh, dsbh, dshd): New patterns.
206
84935d25
JDA
2072013-10-19 John David Anglin <danglin@gcc.gnu.org>
208
209 PR target/58603
210 * system.h: Undef m_slot.
211
d7d1451a
BS
2122013-10-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
213
214 * config/rs6000/rs6000.c (vspltis_constant): Make sure we check
215 all elements for both endian flavors.
216
6eb793dd
UB
2172013-10-19 Uros Bizjak <ubizjak@gmail.com>
218
219 PR target/58792
220 * config/i386/i386.c (ix86_function_value_regno): Add DX_REG,
221 ST1_REG and XMM1_REG for 32bit and 64bit targets. Also add DI_REG
222 and SI_REG for 64bit SYSV ABI targets.
223
c07757e5
UB
2242013-10-19 Uros Bizjak <ubizjak@gmail.com>
225
226 * mode-switching.c (create_pre_exit): Rename maybe_builtin_apply
227 to multi_reg_return. Clarify that we are skipping USEs of multiple
228 return registers. Use bool type where appropriate.
229
41ee845b
JH
2302013-10-18 Jan Hubicka <jh@suse.cz>
231
232 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Disable accumulation
233 for cold functions.
234 * x86-tune.def (X86_TUNE_USE_LEAVE): Update comment.
235 (X86_TUNE_PUSH_MEMORY): Likewise.
236 (X86_TUNE_AVX256_UNALIGNED_LOAD_OPTIMAL,
237 X86_TUNE_AVX256_UNALIGNED_STORE_OPTIMAL): New.
c07757e5
UB
238 (X86_TUNE_ACCUMULATE_OUTGOING_ARGS, X86_TUNE_ALWAYS_FANCY_MATH_387):
239 New.
41ee845b
JH
240 * i386.c (x86_accumulate_outgoing_args, x86_arch_always_fancy_math_387,
241 x86_avx256_split_unaligned_load, x86_avx256_split_unaligned_store):
242 Remove.
243 (ix86_option_override_internal): Update to use tune features instead
244 of variables.
245
6f978a2a
CH
2462013-10-18 Cong Hou <congh@google.com>
247
248 PR tree-optimization/58508
249 * tree-vect-loop-manip.c (vect_loop_versioning): Hoist loop invariant
250 statement that contains data refs with zero-step.
251
4484a35a
AM
2522013-10-18 Andrew MacLeod <amacleod@redhat.com>
253
c07757e5
UB
254 * tree-ssa.h: Don't include gimple-low.h, tree-ssa-address.h,
255 sbitmap.h, tree-ssa-threadedge.h, tree-ssa-dom.h and tree-cfgcleanup.h.
4484a35a
AM
256 * gimple-low.c (gimple_check_call_arg,
257 gimple_check_call_matching_types): Move to cgraph.c.
258 * gimple-low.h: Remove prototype.
259 * cgraph.c: (gimple_check_call_arg, gimple_check_call_matching_types):
260 Relocate from gimple-low.c.
261 * cgraph.h: Add prototype. Don't include basic-block.h.
262 * gimplify.c: Add gimple-low to include list.
263 * omp-low.c: Add gimple-low and tree-cfgcleanup.h to include list.
264 * tree-eh.c: Add gimple-low to include list.
265 * tree-nested.c: Likewise.
266 * cfgexpand.c: Add tree-ssa-address.h to include list.
267 * expr.c: Likewise.
268 * gimple-fold.c: Likewise.
269 * gimple-ssa-strength-reduction.c: Likewise.
270 * trans-mem.c: Likewise.
271 * tree-mudflap.c: Likewise.
272 * tree-ssa-loop-ivopts.c: Likewise.
273 * tree-ssa-dom.c: Include tree-ssa-threadedge.h and tree-ssa-dom.h.
274 (degenerate_phi_result): Move to tree-phinodes.c.
275 * tree-ssa-loop-ch.c: Include tree-ssa-threadedge.h.
276 * tree-ssa-threadedge.c: Likewise.
277 * tree-vrp.c: Likewise.
278 * tree-phinodes.c (degenerate_phi_result): Relocate here.
279 * tree-ssa-dom.h (degenerate_phi_result): Remove Prototype.
280 * tree-phinodes.h (degenerate_phi_result): Add prototype.
281 * tree-ssa-copy.c: Include tree-ssa-dom.h.
282 * tree-ssa-forwprop.c: Likewise.
283 * tree-cfgcleanup.c (execute_cleanup_cfg_post_optimizing,
284 pass_data_cleanup_cfg_post_optimizing,
285 make_pass_cleanup_cfg_post_optimizing): Relocate from tree-optimize.c.
286 * tree-optimize.c: Delete File.
287 * graphite.c: Include tree-cfgcleanup.h.
288 * passes.c: Likewise.
289 * tree-cfg.c: Likewise.
290 * tree-profile.c: Likewise.
291 * tree-ssa-dse.c: Likewise.
292 * tree-ssa-loop-ivcanon.c: Likewise.
293 * tree-switch-conversion.c: Don't include tree-ssa-operands.h.
294 * tree-outof-ssa.c: Include sbitmap.h.
295 * tree-ssa-live.c: Likewise.
296 * tree-ssa-propagate.c: Likewise.
297 * tree-ssa-structalias.c: Likewise.
298 * tree-stdarg.c: Likewise.
299 * Makefile.in (OBJS): Delete tree-optimize.o.
300 * basic-block.h (gcov_type, gcov_type_unsigned): Move to coretypes.h.
301 * coretypes.h (gcov_type, gcov_type_unsigned): Relocate here.
302 * varasm.c: Include basic-block.h.
303 * cfgloop.h: Include function.h instead of basic-block.h
304 (bb_loop_depth): Move to cfgloop.c.
305 * cfgloop.c (bb_loop_depth): Relocate from cfgloop.h.
306
bfaa17c1
TJ
3072013-10-18 Teresa Johnson <tejohnson@google.com>
308
309 * predict.c (probably_never_executed): Compare frequency-based
310 count to number of training runs.
311 * params.def (UNLIKELY_BB_COUNT_FRACTION): New parameter.
312
f58883bd
KT
3132013-10-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
314
315 * config/arm/arm.c (cortexa9_extra_costs): New table.
316 (arm_cortex_a9_tune): Use cortexa9_extra_costs.
317
01e127b1
JL
3182013-10-18 Jeff Law <law@redhat.com>
319
320 * tree-ssa-threadupdate.c: Do not include "tm.h" or "tm_p.h".
321
322 * tree-ssa-threadupdate.c: Include "dbgcnt.h".
c07757e5
UB
323 (register_jump_thread): Add "registered_jump_thread" debug
324 counter support.
01e127b1
JL
325 * dbgcnt.def (registered_jump_thread): New debug counter.
326
f41b8848
AM
3272013-10-18 Andrew MacLeod <amacleod@redhat.com>
328
329 * config/rs6000/rs6000.c: Include cgraph.h.
330
adc7a812
TJ
3312013-10-18 Teresa Johnson <tejohnson@google.com>
332
333 * tree-ssa-tail-merge.c (replace_block_by): Update edge
334 weights during merging.
335
377d9792
AM
3362013-10-18 Andrew MacLeod <amacleod@redhat.com>
337
338 * tree-cfg.h: Rename from tree-flow.h. Remove #includes.
339 * tree-ssa.h: Relocate required #includes from tree-cfg.h.
340 * tree-ssa-operands.h: Remove prototype.
341 * tree-ssa-operands.c (virtual_operand_p): Move to gimple.c.
342 * gimple.c (virtual_operand_p): Relocate from gimple.c.
343 * gimple.h: Add prototype.
344 * gimple-ssa.h: Include tree-ssa-operands.h.
345 * tree-dump.c: Add tree-cfg.h to include list.
346 * tree-ssa-alias.c: Add ipa-reference.h to include list.
347 * config/alpha/alpha.c: Include gimple-ssa.h instead of tree-flow.h.
348 * config/i386/i386.c: Don't include tree-flow.h.
349 * config/rs6000/rs6000.c: Likewise.
350
8ad8afaf
JBG
3512013-10-18 Jan-Benedict Glaw <jbglaw@lug-owl.de>
352
353 * config/frv/frv.c (frv_init_cumulative_args): Fix wrong cast.
354
c0e081a9
RB
3552013-10-18 Richard Biener <rguenther@suse.de>
356
357 * stor-layout.c (layout_type): Do not change TYPE_PRECISION
358 or TYPE_UNSIGNED of integral types.
359 (set_min_and_max_values_for_integral_type): Leave TYPE_MIN/MAX_VALUE
360 NULL_TREE for zero-precision integral types.
361
054fceb5
JG
3622013-10-18 James Greenhalgh <james.greenhalgh@arm.com>
363
364 * config/aarch64/arm_neon.h
365 (vcvt<ds>_n_<fsu><32,64>_<fsu><32,64>): Correct argument types.
366
70e8b89b
ST
3672013-10-17 Sriraman Tallam <tmsriram@google.com>
368
369 * opth-gen.awk: Define target_flags_explicit.
370
3170766c 3712013-10-17 Michael Meissner <meissner@linux.vnet.ibm.com>
5845f602
MM
372
373 * config/rs6000/rs6000.c (enum rs6000_reload_reg_type): Add new
374 fields to the reg_addr array that describes the valid addressing
375 mode for any register, general purpose registers, floating point
376 registers, and Altivec registers.
377 (FIRST_RELOAD_REG_CLASS): Likewise.
378 (LAST_RELOAD_REG_CLASS): Likewise.
379 (struct reload_reg_map_type): Likewise.
380 (reload_reg_map_type): Likewise.
381 (RELOAD_REG_VALID): Likewise.
382 (RELOAD_REG_MULTIPLE): Likewise.
383 (RELOAD_REG_INDEXED): Likewise.
384 (RELOAD_REG_OFFSET): Likewise.
385 (RELOAD_REG_PRE_INCDEC): Likewise.
386 (RELOAD_REG_PRE_MODIFY): Likewise.
387 (reg_addr): Likewise.
388 (mode_supports_pre_incdec_p): New helper functions to say whether
389 a given mode supports PRE_INC, PRE_DEC, and PRE_MODIFY.
390 (mode_supports_pre_modify_p): Likewise.
391 (rs6000_debug_vector_unit): Rearrange the -mdebug=reg output to
392 print the valid address mode bits for each mode.
393 (rs6000_debug_print_mode): Likewise.
394 (rs6000_debug_reg_global): Likewise.
395 (rs6000_setup_reg_addr_masks): New function to set up the address
396 mask bits for each type.
397 (rs6000_init_hard_regno_mode_ok): Use memset to clear arrays.
398 Call rs6000_setup_reg_addr_masks to set up the address mask bits.
399 (rs6000_legitimate_address_p): Use mode_supports_pre_incdec_p and
400 mode_supports_pre_modify_p to determine if PRE_INC, PRE_DEC, and
401 PRE_MODIFY are supported.
3170766c
MM
402 (rs6000_output_move_128bit): Change to use {src,dest}_vmx_p for altivec
403 registers, instead of {src,dest}_av_p.
5845f602
MM
404 (rs6000_print_options_internal): Tweak the debug output slightly.
405
82e33890
UB
4062013-10-17 Uros Bizjak <ubizjak@gmail.com>
407
408 * config/i386/sse.md (*vec_widen_smult_even_v8si): Remove
409 isa attribute.
410
0645c1a2
AM
4112013-10-17 Andrew MacLeod <amacleod@redhat.com>
412
413 * tree-flow.h (struct omp_region): Move to omp-low.c.
414 Remove omp_ prototypes and variables.
415 * gimple.h (omp_reduction_init): Move prototype to omp-low.h.
416 (copy_var_decl): Relocate prototype from tree-flow.h.
417 * gimple.c (copy_var_decl): Relocate from omp-low.c.
418 * tree.h: Move prototype to omp-low.h.
419 * omp-low.h: New File. Relocate prototypes here.
420 * omp-low.c (struct omp_region): Make local here.
421 (root_omp_region): Make static.
422 (copy_var_decl) Move to gimple.c.
423 (new_omp_region): Make static.
424 (make_gimple_omp_edges): New. Refactored from tree-cfg.c make_edges.
425 * tree-cfg.c: Include omp-low.h.
426 (make_edges): Factor out OMP specific bits to make_gimple_omp_edges.
427 * gimplify.c: Include omp-low.h.
428 * tree-parloops.c: Likewise.
429
6f1abb55
UB
4302013-10-17 Uros Bizjak <ubizjak@gmail.com>
431
432 * config/i386/i386.c (ix86_fixup_binary_operands): When both source
433 operands are in memory, prefer to force non-matched operand 1 to
434 the register.
435
1ddbbbc0
MM
4362013-10-17 Michael Meissner <meissner@linux.vnet.ibm.com>
437
438 PR target/58673
439 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Only
440 restrict TImode addresses to single indirect registers if both
441 -mquad-memory and -mvsx-timode are used.
442 (rs6000_output_move_128bit): Use quad_load_store_p to determine if
443 we should emit load/store quad. Remove using %y for quad memory
444 addresses.
445
446 * config/rs6000/rs6000.md (mov<mode>_ppc64, TI/PTImode): Add
447 constraints to allow load/store quad on machines where TImode is
448 not allowed in VSX registers. Use 'n' instead of 'F' constraint
449 for TImode to load integer constants.
450
f541a481
KT
4512013-10-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
452
453 * config/aarch64/aarch64.c (aarch64_print_operand): Handle 'c'.
454
51bb310d
MS
4552013-10-17 Marcus Shawcroft <marcus.shawcroft@arm.com>
456
457 * config/aarch64/aarch64.c (aarch64_preferred_reload_class): Adjust
458 handling of STACK_REG.
459
f4bed77b
RB
4602013-10-17 Richard Biener <rguenther@suse.de>
461
462 PR tree-optimization/58143
463 * tree-ssa-loop-im.c (arith_code_with_undefined_signed_overflow):
464 New function.
465 (rewrite_to_defined_overflow): Likewise.
466 (move_computations_dom_walker::before_dom): Rewrite stmts
467 with undefined signed overflow that are not always executed
468 into unsigned arithmetic.
469
d358fb9d
MM
4702013-10-16 Michael Meissner <meissner@linux.vnet.ibm.com>
471
472 PR target/57756
473 * config/rs6000/rs6000.opt (rs6000_isa_flags_explicit): Move the
474 explicit isa flag to be an options variable, instead of using
475 global_options_set. Remove define from rs6000.h.
476 * config/rs6000/rs6000.h (rs6000_isa_flags_explicit): Likewise.
477
478 * config/rs6000/rs6000.c (rs6000_option_override_internal):
479 Initialize rs6000_isa_flags_explicit.
480 (rs6000_function_specific_save): Add gcc_options* parameter, so
481 that the powerpc builds after the 2013-10-15 changes.
482 (rs6000_function_specific_restore): Likewise.
483
c71aed47
DD
4842013-10-16 DJ Delorie <dj@redhat.com>
485
486 * config/rl78/rl78.c (rl78_alloc_address_registers_macax): Verify
487 op is a REG before checking REGNO.
488 (rl78_alloc_physical_registers): Verify pattern is a SET before
489 checking SET_SRC.
490
90d3bd51
BS
4912013-10-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
492
493 * gcc/config/rs6000/vector.md (vec_unpacks_hi_v4sf): Correct for
494 endianness.
495 (vec_unpacks_lo_v4sf): Likewise.
496 (vec_unpacks_float_hi_v4si): Likewise.
497 (vec_unpacks_float_lo_v4si): Likewise.
498 (vec_unpacku_float_hi_v4si): Likewise.
499 (vec_unpacku_float_lo_v4si): Likewise.
500
de75c876
BS
5012013-10-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
502
503 * config/rs6000/vsx.md (vsx_concat_<mode>): Adjust output for LE.
504 (vsx_concat_v2sf): Likewise.
505
21216998
JG
5062013-10-16 James Greenhalgh <james.greenhalgh@arm.com>
507
508 * config/aarch64/aarch64.md
509 (*mov<mode>_aarch64): Fix output template for DUP (element) Scalar.
510
1ef88893 5112013-10-16 Andrew MacLeod <amacleod@redhat.com>
7ab4168e 512
1ef88893 513 PR tree-optimization/58697
7ab4168e 514 * cfgloop.c (get_estimated_loop_iterations_int): Rename from
1ef88893
AM
515 estimated_loop_iterations_int.
516 (max_stmt_executions_int): Call get_max_loop_iterations_int.
7ab4168e 517 (get_max_loop_iterations_int): New. HWINT version of
1ef88893
AM
518 get_max_loop_iterations.
519 * cfgloop.h: Add prototypes.
520 * loop-iv.c (find_simple_exit): call get_estimated_loop_iterations_int.
7ab4168e 521 * loop-unroll.c (decide_peel_once_rolling): Call
1ef88893
AM
522 get_estimated_loop_iterations_int.
523 * tree-ssa-loop-niter.c (estimated_loop_iterations_int): Add back.
524 * tree-ssa-loop-niter.h: Tweak prototypes.
525
c22df64f
DM
5262013-10-16 David Malcolm <dmalcolm@redhat.com>
527
528 * gengtype-parse.c (struct_field_seq): Ignore access-control
529 keywords ("public:" etc).
530
f24bb080
MS
5312013-10-16 Marcus Shawcroft <marcus.shawcroft@arm.com>
532
533 * config/aarch64/aarch64.c (aarch64_regno_regclass): Classify
534 FRAME_POINTER_REGNUM and ARG_POINTER_REGNUM as POINTER_REGS.
535
c281bf26
YR
5362013-10-16 Yvan Roux <yvan.roux@linaro.org>
537
538 * config/arm/arm.opt (mlra): New option.
539 * config/arm/arm.c (arm_lra_p): New function.
540 (TARGET_LRA_P): Define.
541
5806f481
PM
5422013-10-16 Paulo Matos <pmatos@broadcom.com>
543
544 * tree-core.h (tree_code_name): Remove.
545 * tree.h (get_tree_code_name): New prototype.
546 * tree.c (tree_code_name): Make static.
547 (get_tree_code_name): New function.
548 (dump_tree_statistics, tree_check_failed, tree_not_check_failed,
549 tree_class_check_failed, tree_range_check_failed,
550 tree_not_class_check_failed, omp_clause_check_failed,
551 tree_contains_struct_check_failed, tree_operand_check_failed): Use new
552 wrapper get_tree_code_name instead of calling tree_code_name directly.
553 * tree-vrp.c (dump_asserts_for): Likewise.
554 * tree-dump.c (dequeue_and_dump): Likewise.
555 * tree-pretty-print.c (do_niy, dump_generic_node): Likewise.
556 * tree-pretty-print.h (pp_unsupported_tree): Likewise.
557 * lto-streamer-out.c (lto_write_tree, DFS_write_tree): Likewise.
558 * tree-ssa-dom.c (print_expr_hash_elt): Likewise.
559 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
560 dump_ternary_rhs, dump_gimple_assign, dump_gimple_cond,
561 dump_gimple_omp_for): Likewise.
562 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Likewise.
563 * tree-ssa-pre.c (print_pre_expr): Likewise.
564 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Likewise.
565 * print-tree.c (print_node_brief, print_node): Likewise.
566 * gimple.c (gimple_check_failed): Likewise.
567 * lto-streamer.c (lto_tag_name, print_lto_report): Likewise.
568 * config/frv/frv.c (frv_init_cumulative_args): Likewise.
569 * config/mep/mep.c (mep_validate_vliw): Likewise.
570 * config/iq2000/iq2000.c (init_cumulative_args): Likewise.
571 * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
572
82c9df56
GG
5732013-10-16 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
574
575 * config/i386/i386.c (ix86_option_override_internal): Enable FMA4
576 for AMD bdver3.
577
b82d0df9
HPN
5782013-10-16 Hans-Peter Nilsson <hp@axis.com>
579
580 * config/cris/t-elfmulti (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
581 (MULTILIB_MATCHES): Add multilib for -march=v8.
582
bf7b5747
ST
5832013-10-15 Sriraman Tallam <tmsriram@google.com>
584
585 PR target/57756
586 * optc-save-gen.awk: Add extra parameter to the save and restore
587 target calls.
588 * opth-gen.awk: Generate new TARGET_* macros to accept a parameter.
589 * tree.c (build_optimization_node): New parameter. Add extra parameter
590 to call to cl_optimization_save.
591 (build_target_option_node): New parameter. Add extra parameter
592 to call to cl_target_option_save.
593 * tree.h (build_optimization_node): New parameter.
594 (build_target_option_node): New parameter.
595 * c-family/c-common.c (handle_optimize_attribute): Fix calls to
596 build_optimization_node and build_target_option_node.
597 * c-family/c-pragma.c (handle_pragma_optimize): Ditto.
598 (handle_pragma_push_options): Ditto.
599 * toplev.c (process_options): Ditto.
600 * opts.c (init_options_struct): Check for opts_set non-null.
601 * target.def (target_option.save): New parameter.
602 (target_option.restore): New parameter.
603 * tm.texi: Generate.
604 * config/i386/i386-c.c (ix86_target_macros_internal): Ditto.
605 (ix86_pragma_target_parse): Ditto.
606 * config/i386/i386-protos.h (ix86_valid_target_attribute_tree): New
607 parameters.
608 * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix calls
609 to build_optimization_node and build_target_option_node.
610 (rs6000_valid_attribute_p): Ditto.
611 (rs6000_pragma_target_parse): Ditto.
612 * config/i386/i386.opt (x_ix86_target_flags_explicit): New TargetSave
613 data.
614 * config/i386/i386.h:
615 TARGET_64BIT_P: New Macro
616 TARGET_MMX_P: New Macro.
617 TARGET_3DNOW_P: New Macro.
618 TARGET_3DNOW_A_P: New Macro.
619 TARGET_SSE_P: New Macro.
620 TARGET_SSE2_P: New Macro.
621 TARGET_SSE3_P: New Macro.
622 TARGET_SSSE3_P: New Macro.
623 TARGET_SSE4_1_P: New Macro.
624 TARGET_SSE4_2_P: New Macro.
625 TARGET_AVX_P: New Macro.
626 TARGET_AVX2_P: New Macro.
627 TARGET_AVX512F_P: New Macro.
628 TARGET_AVX512PF_P: New Macro.
629 TARGET_AVX512ER_P: New Macro.
630 TARGET_AVX512CD_P: New Macro.
631 TARGET_FMA_P: New Macro.
632 TARGET_SSE4A_P: New Macro.
633 TARGET_FMA4_P: New Macro.
634 TARGET_XOP_P: New Macro.
635 TARGET_LWP_P: New Macro.
636 TARGET_ABM_P: New Macro.
637 TARGET_BMI_P: New Macro.
638 TARGET_BMI2_P: New Macro.
639 TARGET_LZCNT_P: New Macro.
640 TARGET_TBM_P: New Macro.
641 TARGET_POPCNT_P: New Macro.
642 TARGET_SAHF_P: New Macro.
643 TARGET_MOVBE_P: New Macro.
644 TARGET_CRC32_P: New Macro.
645 TARGET_AES_P: New Macro.
646 TARGET_PCLMUL_P: New Macro.
647 TARGET_CMPXCHG16B_P: New Macro.
648 TARGET_FSGSBASE_P: New Macro.
649 TARGET_RDRND_P: New Macro.
650 TARGET_F16C_P: New Macro.
651 TARGET_RTM_P: New Macro.
652 TARGET_HLE_P: New Macro.
653 TARGET_RDSEED_P: New Macro.
654 TARGET_PRFCHW_P: New Macro.
655 TARGET_ADX_P: New Macro.
656 TARGET_FXSR_P: New Macro.
657 TARGET_XSAVE_P: New Macro.
658 TARGET_XSAVEOPT_P: New Macro.
659 TARGET_LP64_P: New Macro.
660 TARGET_X32_P: New Macro.
661 TARGET_FPMATH_DEFAULT_P: New Macro.
662 TARGET_FLOAT_RETURNS_IN_80387_P: New Macro.
663 * config/i386/i386.c (ix86_option_override_internal): New parameters.
664 opts and opts_set.
665 Change ix86_tune_string to access opts->x_ix86_tune_string.
666 Change ix86_isa_flags to access opts->x_ix86_isa_flags.
667 Change ix86_arch_string to access opts->x_ix86_arch_string.
668 Change ix86_stringop_alg to access opts->x_ix86_stringop_alg.
669 Change ix86_pmode to access opts->x_ix86_pmode.
670 Change ix86_abi to access opts->x_ix86_abi.
671 Change ix86_cmodel to access opts->x_ix86_cmodel.
672 Change ix86_asm_dialect to access opts->x_ix86_asm_dialect.
673 Change ix86_isa_flags_explicit to access
674 opts->x_ix86_isa_flags_explicit.
675 Change ix86_dump_tunes to access opts->x_ix86_dump_tunes.
676 Change ix86_regparm to access opts->x_ix86_regparm.
677 Change ix86_branch_cost to access opts->x_ix86_branch_cost.
678 Change ix86_preferred_stack_boundary_arg to access
679 opts->x_ix86_preferred_stack_boundary_arg.
680 Change ix86_force_align_arg_pointer to access
681 opts->x_ix86_force_align_arg_pointer.
682 Change ix86_incoming_stack_boundar_arg to access
683 opts->x_ix86_incoming_stack_boundar_arg.
684 Change ix86_fpmath to access opts->x_ix86_fpmath.
685 Change ix86_veclibabi_type to access opts->x_ix86_veclibabi_type.
686 Change ix86_recip_name to access opts->x_ix86_recip_name.
687 Change ix86_stack_protector_guard to access
688 opts->x_ix86_stack_protector_guard.
689 Change ix86_tune_memcpy_strategy to access
690 opts->x_ix86_tune_memcpy_strategy.
691 Change ix86_tune_memset_strategy to access
692 opts->x_ix86_tune_memset_strategy.
693 Change global_options to access opts.
694 Change global_options_set to access opts_set.
6f1abb55
UB
695 Change TARGET_64BIT to TARGET_64BIT_P (opts->...).
696 Change TARGET_MMX to TARGET_MMX_P (opts->...).
697 Change TARGET_3DNOW to TARGET_3DNOW_P (opts->...).
698 Change TARGET_3DNOW_A to TARGET_3DNOW_A_P (opts->...).
699 Change TARGET_SSE to TARGET_SSE_P (opts->...).
700 Change TARGET_SSE2 to TARGET_SSE2_P (opts->...).
701 Change TARGET_SSE3 to TARGET_SSE3_P (opts->...).
702 Change TARGET_SSSE3 to TARGET_SSSE3_P (opts->...).
703 Change TARGET_SSE4_1 to TARGET_SSE4_1_P (opts->...).
704 Change TARGET_SSE4_2 to TARGET_SSE4_2_P (opts->...).
705 Change TARGET_AVX to TARGET_AVX_P (opts->...).
706 Change TARGET_AVX2 to TARGET_AVX2_P (opts->...).
707 Change TARGET_AVX512F to TARGET_AVX512F_P (opts->...).
708 Change TARGET_AVX512PF to TARGET_AVX512PF_P (opts->...).
709 Change TARGET_AVX512ER to TARGET_AVX512ER_P (opts->...).
710 Change TARGET_AVX512CD to TARGET_AVX512CD_P (opts->...).
711 Change TARGET_FMA to TARGET_FMA_P (opts->...).
712 Change TARGET_SSE4A to TARGET_SSE4A_P (opts->...).
713 Change TARGET_FMA4 to TARGET_FMA4_P (opts->...).
714 Change TARGET_XOP to TARGET_XOP_P (opts->...).
715 Change TARGET_LWP to TARGET_LWP_P (opts->...).
716 Change TARGET_ABM to TARGET_ABM_P (opts->...).
717 Change TARGET_BMI to TARGET_BMI_P (opts->...).
718 Change TARGET_BMI2 to TARGET_BMI2_P (opts->...).
719 Change TARGET_LZCNT to TARGET_LZCNT_P (opts->...).
720 Change TARGET_TBM to TARGET_TBM_P (opts->...).
721 Change TARGET_POPCNT to TARGET_POPCNT_P (opts->...).
722 Change TARGET_SAHF to TARGET_SAHF_P (opts->...).
723 Change TARGET_MOVBE to TARGET_MOVBE_P (opts->...).
724 Change TARGET_CRC32 to TARGET_CRC32_P (opts->...).
725 Change TARGET_AES to TARGET_AES_P (opts->...).
726 Change TARGET_PCLMUL to TARGET_PCLMUL_P (opts->...).
727 Change TARGET_CMPXCHG16B to TARGET_CMPXCHG16B_P (opts->...).
728 Change TARGET_FSGSBASE to TARGET_FSGSBASE_P (opts->...).
729 Change TARGET_RDRND to TARGET_RDRND_P (opts->...).
730 Change TARGET_F16C to TARGET_F16C_P (opts->...).
731 Change TARGET_RTM to TARGET_RTM_P (opts->...).
732 Change TARGET_HLE to TARGET_HLE_P (opts->...).
733 Change TARGET_RDSEED to TARGET_RDSEED_P (opts->...).
734 Change TARGET_PRFCHW to TARGET_PRFCHW_P (opts->...).
735 Change TARGET_ADX to TARGET_ADX_P (opts->...).
736 Change TARGET_FXSR to TARGET_FXSR_P (opts->...).
737 Change TARGET_XSAVE to TARGET_XSAVE_P (opts->...).
738 Change TARGET_XSAVEOPT to TARGET_XSAVEOPT_P (opts->...).
739 Change TARGET_LP64 to TARGET_LP64_P (opts->...).
740 Change TARGET_X32 to TARGET_X32_P (opts->...).
741 Change TARGET_FPMATH_DEFAULT to TARGET_FPMATH_DEFAULT_P (opts->...).
742 Change TARGET_FLOAT_RETURNS_IN_80387 to
743 TARGET_FLOAT_RETURNS_IN_80387_P (opts->...).
bf7b5747
ST
744 (ix86_function_specific_save): New parameter. Use opts-> fields
745 to replace global fields.
746 (ix86_function_specific_restore): Ditto.
747 (ix86_valid_target_attribute_inner_p): New parameters.
748 Fix recursive call.
749 Fix call to ix86_handle_option and set_option.
750 (ix86_valid_target_attribute_tree): New parameters.
751 Change global_options to access opts.
752 Change global_options_set to access opts_set.
753 Fix call to ix86_valid_target_attribute_inner_p.
754 Change ix86_tune_string to access opts->x_ix86_tune_string.
755 Change ix86_arch_string to access opts->x_ix86_arch_string.
756 Change ix86_fpmath to access opts->x_ix86_fpmath
757 Fix call to ix86_option_override_internal.
758 Fix call to ix86_add_new_builtins.
759 Fix calls to build_optimization_node and build_target_option_node.
760 (ix86_valid_target_attribute_p): Remove access to global_options.
761 Use new gcc_options structure func_options.
762 Fix call to ix86_valid_target_attribute_tree.
763 Fix call to build_optimization_node.
764 (get_builtin_code_for_version): Fix call to
765 ix86_valid_target_attribute_tree.
766
459260ec
DM
7672013-10-15 David Malcolm <dmalcolm@redhat.com>
768
769 * Makefile.in (PICFLAG): New.
770 (enable_host_shared): New.
771 (INTERNAL_CFLAGS): Use PICFLAG.
772 (LIBIBERTY): Use pic build of libiberty.a if configured with
773 --enable-host-shared.
774 * configure.ac: Add --enable-host-shared, setting up new
775 PICFLAG variable.
776 * configure: Regenerate.
6f1abb55 777 * doc/install.texi (--enable-shared): Add note contrasting it with ...
459260ec
DM
778 (--enable-host-shared): New option.
779
16022041
RS
7802013-10-15 Richard Biener <rguenther@suse.de>
781
782 * tree-tailcall.c (find_tail_calls): Don't use tail-call recursion
783 for built-in functions.
784
b114bfb4
ZC
7852013-10-15 Zhenqiang Chen <zhenqiang.chen@arm.com>
786
787 * tree-ssa-reassoc.c: Include rtl.h and tm_p.h.
788 (optimize_range_tests_1): New function,
789 extracted from optimize_range_tests.
790 (optimize_range_tests_xor): Similarly.
791 (optimize_range_tests_diff): New function.
792 (optimize_range_tests): Use optimize_range_tests_1.
793
69b8f2f9
CH
7942013-10-15 Cong Hou <congh@google.com>
795
7ab4168e
MS
796 * tree-vect-loop.c (vect_is_simple_reduction_1): Relax the
797 requirement of the reduction pattern so that one operand of the
69b8f2f9
CH
798 reduction operation can come from outside of the loop.
799
8ff5a4e4
JG
8002013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
801
802 * config/arm/neon-schedgen.ml: Remove.
803 * config/arm/cortex-a9-neon.md: Remove comment regarding
804 neon-schedgen.ml.
805
52b69ad2
JG
8062013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
807
808 * config/arm/types: Remove old neon types.
809
e7c6a556
JG
8102013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
811
812 * config/arm/cortex-a7.md
813 (cortex_a7_neon_type): New.
814 (cortex_a7_neon_mul): Update for new types.
815 (cortex_a7_neon_mla): Likewise.
816 (cortex_a7_neon): Likewise.
817
795dd8d5
JG
8182013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
819
820 * config/arm/cortex-a15-neon.md
821 (cortex_a15_neon_type): New,
822
823 (cortex_a15_neon_int_1): Remove.
824 (cortex_a15_neon_int_2): Likewise.
825 (cortex_a15_neon_int_3): Likewise.
826 (cortex_a15_neon_int_4): Likewise.
827 (cortex_a15_neon_int_5): Likewise.
828 (cortex_a15_neon_vqneg_vqabs): Likewise.
829 (cortex_a15_neon_vmov): Likewise.
830 (cortex_a15_neon_vaba): Likewise.
831 (cortex_a15_neon_vaba_qqq): Likewise.
832 (cortex_a15_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
833 (cortex_a15_neon_mul_qqq_8_16_32_ddd_32): Likewise.
834 (cortex_a15_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_long_scalar):
835 Likewise.
836 (cortex_a15_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
837 (cortex_a15_neon_mla_qqq_8_16): Likewise.
838 (cortex_a15_neon_mla_ddd_32_qqd_16_ddd_32_scalar): Likewise.
839 (cortex_a15_neon_mla_qqq_32_qqd_32_scalar): Likewise.
840 (cortex_a15_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
841 (cortex_a15_neon_mul_qqd_32_scalar): Likewise.
842 (cortex_a15_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
843 (cortex_a15_neon_shift_1): Likewise.
844 (cortex_a15_neon_shift_2): Likewise.
845 (cortex_a15_neon_shift_3): Likewise.
846 (cortex_a15_neon_vshl_ddd): Likewise.
847 (cortex_a15_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
848 (cortex_a15_neon_vsra_vrsra): Likewise.
849 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
850 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
851 (cortex_a15_neon_bp_3cycle): Likewise.
852 (cortex_a15_neon_ldm_2): Likewise.
853 (cortex_a15_neon_stm_2): Likewise.
854 (cortex_a15_neon_mcr): Likewise.
855 (cortex_a15_neon_mrc): Likewise.
856 (cortex_a15_neon_fp_vadd_ddd_vabs_dd): Likewise.
857 (cortex_a15_neon_fp_vadd_qqq_vabs_qq): Likewise.
858 (cortex_a15_neon_fp_vmul_ddd): Likewise.
859 (cortex_a15_neon_fp_vmul_qqd): Likewise.
860 (cortex_a15_neon_fp_vmla_ddd): Likewise.
861 (cortex_a15_neon_fp_vmla_qqq): Likewise.
862 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
863 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
864 (cortex_a15_neon_fp_vrecps_vrsqrts_ddd): Likewise.
865 (cortex_a15_neon_fp_vrecps_vrsqrts_qqq): Likewise.
866 (cortex_a15_neon_bp_simple): Likewise.
867 (cortex_a15_neon_bp_2cycle): Likewise.
868 (cortex_a15_neon_bp_3cycle): Likewise.
869 (cortex_a15_neon_vld1_1_2_regs): Likewise.
870 (cortex_a15_neon_vld1_3_4_regs): Likewise.
871 (cortex_a15_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
872 (cortex_a15_neon_vld2_4_regs): Likewise.
873 (cortex_a15_neon_vld3_vld4): Likewise.
874 (cortex_a15_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
875 (cortex_a15_neon_vst1_3_4_regs): Likewise.
876 (cortex_a15_neon_vst2_4_regs_vst3_vst4): Rename to...
877 (cortex_a15_neon_vst2_4_regs_vst3): ...This, update for new attributes.
878 (cortex_a15_neon_vst3_vst4): Rename to...
879 (cortex_a15_neon_vst4): This, update for new attributes.
880 (cortex_a15_neon_vld1_vld2_lane): Update for new attributes.
881 (cortex_a15_neon_vld3_vld4_lane): Likewise.
882 (cortex_a15_neon_vst1_vst2_lane): Likewise.
883 (cortex_a15_neon_vst3_vst4_lane): Likewise.
884 (cortex_a15_neon_vld3_vld4_all_lanes): Likewise.
885 (cortex_a15_neon_ldm_2): Likewise.
886 (cortex_a15_neon_stm_2): Likewise.
887 (cortex_a15_neon_mcr): Likewise.
888 (cortex_a15_neon_mcr_2_mcrr): Likewise.
889 (cortex_a15_neon_mrc): Likewise.
890 (cortex_a15_neon_mrrc): Likewise.
891
892 (cortex_a15_neon_abd): New.
893 (cortex_a15_neon_abd_q): Likewise.
894 (cortex_a15_neon_aba): Likewise.
895 (cortex_a15_neon_aba_q): Likewise.
896 (cortex_a15_neon_acc): Likewise.
897 (cortex_a15_neon_acc_q): Likewise.
898 (cortex_a15_neon_arith_basic): Likewise.
899 (cortex_a15_neon_arith_complex): Likewise.
900 (cortex_a15_neon_multiply): Likewise.
901 (cortex_a15_neon_multiply_q): Likewise.
902 (cortex_a15_neon_mla): Likewise.
903 (cortex_a15_neon_mla_q): Likewise.
904 (cortex_a15_neon_sat_mla_long): Likewise.
905 (cortex_a15_neon_shift_acc): Likewise.
906 (cortex_a15_neon_shift_imm_basic): Likewise.
907 (cortex_a15_neon_shift_imm_complex): Likewise.
908 (cortex_a15_neon_shift_reg_basic): Likewise.
909 (cortex_a15_neon_shift_reg_basic_q): Likewise.
910 (cortex_a15_neon_shift_reg_complex): Likewise.
911 (cortex_a15_neon_shift_reg_complex_q): Likewise.
912 (cortex_a15_neon_fp_negabs): Likewise
913 (cortex_a15_neon_fp_arith): Likewise
914 (cortex_a15_neon_fp_arith_q): Likewise
915 (cortex_a15_neon_fp_cvt_int): Likewise
916 (cortex_a15_neon_fp_cvt_int_q): Likewise
917 (cortex_a15_neon_fp_cvt_16): Likewise
918 (cortex_a15_neon_fp_mul): Likewise
919 (cortex_a15_neon_fp_mul_q): Likewise
920 (cortex_a15_neon_fp_mla): Likewise
921 (cortex_a15_neon_fp_mla_q): Likewise
922 (cortex_a15_neon_fp_recps_rsqrte): Likewise.
923 (cortex_a15_neon_fp_recps_rsqrte_q): Likewise.
924 (cortex_a15_neon_bitops): Likewise.
925 (cortex_a15_neon_bitops_q): Likewise.
926 (cortex_a15_neon_from_gp): Likewise.
927 (cortex_a15_neon_from_gp_q): Likewise.
928 (cortex_a15_neon_tbl3_tbl4): Likewise.
929 (cortex_a15_neon_zip_q): Likewise.
930 (cortex_a15_neon_to_gp): Likewise.
931 (cortex_a15_neon_load_a): Likewise.
932 (cortex_a15_neon_load_b): Likewise.
933 (cortex_a15_neon_load_c): Likewise.
934 (cortex_a15_neon_load_d): Likewise.
935 (cortex_a15_neon_load_e): Likewise.
936 (cortex_a15_neon_load_f): Likewise.
937 (cortex_a15_neon_store_a): Likewise.
938 (cortex_a15_neon_store_b): Likewise.
939 (cortex_a15_neon_store_c): Likewise.
940 (cortex_a15_neon_store_d): Likewise.
941 (cortex_a15_neon_store_e): Likewise.
942 (cortex_a15_neon_store_f): Likewise.
943 (cortex_a15_neon_store_g): Likewise.
944 (cortex_a15_neon_store_h): Likewise.
945 (cortex_a15_vfp_to_from_gp): Likewise.
946
bc5e57e3
JG
9472013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
948
949 * config/arm/cortex-a9-neon.md (cortex_a9_neon_type): New.
950
951 (cortex_a9_neon_vshl_ddd): Remove.
952 (cortex_a9_neon_vst3_vst4): Likewise.
953 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
954
955 (cortex_a9_neon_bit_ops_q): New.
956
957 (cortex_a9_neon_int_1): Use cortex_a8_neon_type.
958 (cortex_a9_neon_int_2): Likewise.
959 (cortex_a9_neon_int_3): Likewise.
960 (cortex_a9_neon_int_4): Likewise.
961 (cortex_a9_neon_int_5): Likewise.
962 (cortex_a9_neon_vqneg_vqabs): Likewise.
963 (cortex_a9_neon_vmov): Likewise.
964 (cortex_a9_neon_vaba): Likewise.
965 (cortex_a9_neon_vaba_qqq): Likewise.
966 (cortex_a9_neon_shift_1): Likewise.
967 (cortex_a9_neon_shift_2): Likewise.
968 (cortex_a9_neon_shift_3): Likewise.
969 (cortex_a9_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
970 (cortex_a9_neon_vsra_vrsra): Likewise.
971 (cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
972 (cortex_a9_neon_mul_qqq_8_16_32_ddd_32): Likewise.
973 (cortex_a9_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_long_scalar):
974 Likewise.
975 (cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
976 (cortex_a9_neon_mla_qqq_8_16): Likewise.
977 (cortex_a9_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_long_scalar_qdd_64_32_long):
978 Likewise.
979 (cortex_a9_neon_mla_qqq_32_qqd_32_scalar): Likewise.
980 (cortex_a9_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
981 (cortex_a9_neon_mul_qqd_32_scalar): Likewise.
982 (cortex_a9_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
983 (cortex_a9_neon_fp_vadd_ddd_vabs_dd): Likewise.
984 (cortex_a9_neon_fp_vadd_qqq_vabs_qq): Likewise.
985 (cortex_a9_neon_fp_vsum): Likewise.
986 (cortex_a9_neon_fp_vmul_ddd): Likewise.
987 (cortex_a9_neon_fp_vmul_qqd): Likewise.
988 (cortex_a9_neon_fp_vmla_ddd): Likewise.
989 (cortex_a9_neon_fp_vmla_qqq): Likewise.
990 (cortex_a9_neon_fp_vmla_ddd_scalar): Likewise.
991 (cortex_a9_neon_fp_vmla_qqq_scalar): Likewise.
992 (cortex_a9_neon_fp_vrecps_vrsqrts_ddd): Likewise.
993 (cortex_a9_neon_fp_vrecps_vrsqrts_qqq): Likewise.
994 (cortex_a9_neon_bp_simple): Likewise.
995 (cortex_a9_neon_bp_2cycle): Likewise.
996 (cortex_a9_neon_bp_3cycle): Likewise.
997 (cortex_a9_neon_ldr): Likewise.
998 (cortex_a9_neon_str): Likewise.
999 (cortex_a9_neon_vld1_1_2_regs): Likewise.
1000 (cortex_a9_neon_vld1_3_4_regs): Likewise.
1001 (cortex_a9_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
1002 (cortex_a9_neon_vld2_4_regs): Likewise.
1003 (cortex_a9_neon_vld3_vld4): Likewise.
1004 (cortex_a9_neon_vld1_vld2_lane): Likewise.
1005 (cortex_a9_neon_vld3_vld4_lane): Likewise.
1006 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
1007 (cortex_a9_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
1008 (cortex_a9_neon_vst1_3_4_regs): Likewise.
1009 (cortex_a9_neon_vst2_4_regs_vst3_vst4): Likewise.
1010 (cortex_a9_neon_vst1_vst2_lane): Likewise.
1011 (cortex_a9_neon_vst3_vst4_lane): Likewise.
1012 (cortex_a9_neon_mcr): Likewise.
1013 (cortex_a9_neon_mcr_2_mcrr): Likewise.
1014 (cortex_a9_neon_mrc): Likewise.
1015 (cortex_a9_neon_mrrc): Likewise.
1016
9deda8cb
JG
10172013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
1018
1019 * config/arm/cortex-a8-neon.md (cortex_a8_neon_type): New.
1020
1021 (cortex_a8_neon_vshl_ddd): Remove.
1022 (cortex_a8_neon_vst3_vst4): Likewise.
1023 (cortex_a8_neon_vld3_vld4_all_lanes): Likewise.
1024
1025 (cortex_a8_neon_bit_ops_q): New.
1026
1027 (cortex_a8_neon_int_1): Use cortex_a8_neon_type.
1028 (cortex_a8_neon_int_2): Likewise..
1029 (cortex_a8_neon_int_3): Likewise.
1030 (cortex_a8_neon_int_5): Likewise.
1031 (cortex_a8_neon_vqneg_vqabs): Likewise.
1032 (cortex_a8_neon_int_4): Likewise.
1033 (cortex_a8_neon_vaba): Likewise.
1034 (cortex_a8_neon_vaba_qqq): Likewise.
1035 (cortex_a8_neon_shift_1): Likewise.
1036 (cortex_a8_neon_shift_2): Likewise.
1037 (cortex_a8_neon_shift_3): Likewise.
1038 (cortex_a8_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
1039 (cortex_a8_neon_vsra_vrsra): Likewise.
1040 (cortex_a8_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
1041 (cortex_a8_neon_mul_qqq_8_16_32_ddd_32): Likewise.
1042 (cortex_a8_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_long_scalar):
1043 Likewise.
1044 (cortex_a8_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
1045 (cortex_a8_neon_mla_qqq_8_16): Likewise.
1046 (cortex_a8_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_long_scalar_qdd_64_32_long):
1047 Likewise.
1048 (cortex_a8_neon_mla_qqq_32_qqd_32_scalar): Likewise.
1049 (cortex_a8_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
1050 (cortex_a8_neon_mul_qqd_32_scalar): Likewise.
1051 (cortex_a8_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
1052 (cortex_a8_neon_fp_vadd_ddd_vabs_dd): Likewise.
1053 (cortex_a8_neon_fp_vadd_qqq_vabs_qq): Likewise.
1054 (cortex_a8_neon_fp_vsum): Likewise.
1055 (cortex_a8_neon_fp_vmul_ddd): Likewise.
1056 (cortex_a8_neon_fp_vmul_qqd): Likewise.
1057 (cortex_a8_neon_fp_vmla_ddd): Likewise.
1058 (cortex_a8_neon_fp_vmla_qqq): Likewise.
1059 (cortex_a8_neon_fp_vmla_ddd_scalar): Likewise.
1060 (cortex_a8_neon_fp_vmla_qqq_scalar): Likewise.
1061 (cortex_a8_neon_fp_vrecps_vrsqrts_ddd): Likewise.
1062 (cortex_a8_neon_fp_vrecps_vrsqrts_qqq): Likewise.
1063 (cortex_a8_neon_bp_simple): Likewise.
1064 (cortex_a8_neon_bp_2cycle): Likewise.
1065 (cortex_a8_neon_bp_3cycle): Likewise.
1066 (cortex_a8_neon_ldr): Likewise.
1067 (cortex_a8_neon_str): Likewise.
1068 (cortex_a8_neon_vld1_1_2_regs): Likewise.
1069 (cortex_a8_neon_vld1_3_4_regs): Likewise.
1070 (cortex_a8_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
1071 (cortex_a8_neon_vld2_4_regs): Likewise.
1072 (cortex_a8_neon_vld3_vld4): Likewise.
1073 (cortex_a8_neon_vld1_vld2_lane): Likewise.
1074 (cortex_a8_neon_vld3_vld4_lane): Likewise.
1075 (cortex_a8_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
1076 (cortex_a8_neon_vst1_3_4_regs): Likewise.
1077 (cortex_a8_neon_vst2_4_regs_vst3_vst4): Likewise.
1078 (cortex_a8_neon_vst1_vst2_lane): Likewise.
1079 (cortex_a8_neon_vst3_vst4_lane): Likewise.
1080 (cortex_a8_neon_mcr): Likewise.
1081 (cortex_a8_neon_mcr_2_mcrr): Likewise.
1082 (cortex_a8_neon_mrc): Likewise.
1083 (cortex_a8_neon_mrrc): Likewise.
1084
0f686aa9
JG
10852013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
1086
1087 * config/aarch64/iterators.md (Vetype): Add SF and DF modes.
1088 (fp): New.
1089 * config/aarch64/aarch64-simd.md (neon_type): Remove.
1090 (aarch64_simd_dup<mode>): Add "type" attribute.
1091 (aarch64_dup_lane<mode>): Likewise.
1092 (aarch64_dup_lane_<vswap_width_name><mode>): Likewise.
1093 (*aarch64_simd_mov<mode>): Likewise.
1094 (aarch64_simd_mov_from_<mode>low): Likewise.
1095 (aarch64_simd_mov_from_<mode>high): Likewise.
1096 (orn<mode>3): Likewise.
1097 (bic<mode>3): Likewise.
1098 (add<mode>3): Likewise.
1099 (sub<mode>3): Likewise.
1100 (mul<mode>3): Likewise.
1101 (*aarch64_mul3_elt<mode>): Likewise.
1102 (*aarch64_mul3_elt_<vswap_width_name><mode>): Likewise.
1103 (*aarch64_mul3_elt_to_128df): Likewise.
1104 (*aarch64_mul3_elt_to_64v2df): Likewise.
1105 (neg<mode>2): Likewise.
1106 (abs<mode>2): Likewise.
1107 (abd<mode>_3): Likewise.
1108 (aba<mode>_3): Likewise.
1109 (fabd<mode>_3): Likewise.
1110 (*fabd_scalar<mode>3): Likewise.
1111 (and<mode>3): Likewise.
1112 (ior<mode>3): Likewise.
1113 (xor<mode>3): Likewise.
1114 (one_cmpl<mode>2): Likewise.
1115 (aarch64_simd_vec_set<mode>): Likewise.
1116 (aarch64_simd_lshr<mode>): Likewise.
1117 (aarch64_simd_ashr<mode>): Likewise.
1118 (aarch64_simd_imm_shl<mode>): Likewise.
1119 (aarch64_simd_reg_sshl<mode): Likewise.
1120 (aarch64_simd_reg_shl<mode>_unsigned): Likewise.
1121 (aarch64_simd_reg_shl<mode>_signed): Likewise.
1122 (aarch64_simd_vec_setv2di): Likewise.
1123 (aarch64_simd_vec_set<mode>): Likewise.
1124 (aarch64_mla<mode>): Likewise.
1125 (*aarch64_mla_elt<mode>): Likewise.
1126 (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
1127 (aarch64_mls<mode>): Likewise.
1128 (*aarch64_mls_elt<mode>): Likewise.
1129 (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
1130 (<su><maxmin><mode>3): Likewise.
1131 (move_lo_quad_<mode>): Likewise.
1132 (aarch64_simd_move_hi_quad_<mode>): Likewise.
1133 (aarch64_simd_vec_pack_trunc_<mode>): Likewise.
1134 (vec_pack_trunc_<mode>): Likewise.
1135 (aarch64_simd_vec_unpack<su>_lo_<mode>): Likewise.
1136 (aarch64_simd_vec_unpack<su>_hi_<mode>): Likewise.
1137 (*aarch64_<su>mlal_lo<mode>): Likewise.
1138 (*aarch64_<su>mlal_hi<mode>): Likewise.
1139 (*aarch64_<su>mlsl_lo<mode>): Likewise.
1140 (*aarch64_<su>mlsl_hi<mode>): Likewise.
1141 (*aarch64_<su>mlal<mode>): Likewise.
1142 (*aarch64_<su>mlsl<mode>): Likewise.
1143 (aarch64_simd_vec_<su>mult_lo_<mode>): Likewise.
1144 (aarch64_simd_vec_<su>mult_hi_<mode>): Likewise.
1145 (add<mode>3): Likewise.
1146 (sub<mode>3): Likewise.
1147 (mul<mode>3): Likewise.
1148 (div<mode>3): Likewise.
1149 (neg<mode>2): Likewise.
1150 (abs<mode>2): Likewise.
1151 (fma<mode>4): Likewise.
1152 (*aarch64_fma4_elt<mode>): Likewise.
1153 (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
1154 (*aarch64_fma4_elt_to_128df): Likewise.
1155 (*aarch64_fma4_elt_to_64v2df): Likewise.
1156 (fnma<mode>4): Likewise.
1157 (*aarch64_fnma4_elt<mode>): Likewise.
1158 (*aarch64_fnma4_elt_<vswap_width_name><mode>
1159 (*aarch64_fnma4_elt_to_128df): Likewise.
1160 (*aarch64_fnma4_elt_to_64v2df): Likewise.
1161 (<frint_pattern><mode>2): Likewise.
1162 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): Likewise.
1163 (<optab><fcvt_target><VDQF:VDQF:mode>2): Likewise.
1164 (vec_unpacks_lo_v4sf): Likewise.
1165 (aarch64_float_extend_lo_v2df): Likewise.
1166 (vec_unpacks_hi_v4sf): Likewise.
1167 (aarch64_float_truncate_lo_v2sf): Likewise.
1168 (aarch64_float_truncate_hi_v4sf): Likewise.
1169 (aarch64_vmls<mode>): Likewise.
1170 (<su><maxmin><mode>3): Likewise.
1171 (<maxmin_uns><mode>3): Likewise.
1172 (reduc_<sur>plus_<mode>): Likewise.
1173 (reduc_<sur>plus_v2di): Likewise.
1174 (reduc_<sur>plus_v2si): Likewise.
1175 (reduc_<sur>plus_<mode>): Likewise.
1176 (aarch64_addpv4sf): Likewise.
1177 (clz<mode>2): Likewise.
1178 (reduc_<maxmin_uns>_<mode>): Likewise.
1179 (reduc_<maxmin_uns>_v2di): Likewise.
1180 (reduc_<maxmin_uns>_v2si): Likewise.
1181 (reduc_<maxmin_uns>_<mode>): Likewise.
1182 (reduc_<maxmin_uns>_v4sf): Likewise.
1183 (aarch64_simd_bsl<mode>_internal): Likewise.
1184 (*aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): Likewise.
1185 (*aarch64_get_lane_zero_extendsi<mode>): Likewise.
1186 (aarch64_get_lane<mode>): Likewise.
1187 (*aarch64_combinez<mode>): Likewise.
1188 (aarch64_combine<mode>): Likewise.
1189 (aarch64_simd_combine<mode>): Likewise.
1190 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_hi_internal): Likewise.
1191 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_lo_internal): Likewise.
1192 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>): Likewise.
1193 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>w<mode>): Likewise.
1194 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>w2<mode>_internal): Likewise.
1195 (aarch64_<sur>h<addsub><mode>): Likewise.
1196 (aarch64_<sur><addsub>hn<mode>): Likewise.
1197 (aarch64_<sur><addsub>hn2<mode>): Likewise.
1198 (aarch64_pmul<mode>): Likewise.
1199 (aarch64_<su_optab><optab><mode>): Likewise.
1200 (aarch64_<sur>qadd<mode>): Likewise.
1201 (aarch64_sqmovun<mode>): Likewise.
1202 (aarch64_<sur>qmovn<mode>): Likewise.
1203 (aarch64_s<optab><mode>): Likewise.
1204 (aarch64_sq<r>dmulh<mode>): Likewise.
1205 (aarch64_sq<r>dmulh_lane<mode>): Likewise.
1206 (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
1207 (aarch64_sq<r>dmulh_lane<mode>): Likewise.
1208 (aarch64_sqdml<SBINQOPS:as>l<mode>): Likewise.
1209 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
1210 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
1211 (aarch64_sqdml<SBINQOPS:as>l_n<mode>): Likewise.
1212 (aarch64_sqdml<SBINQOPS:as>l2<mode>_internal): Likewise.
1213 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
1214 (aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Likewise.
1215 (aarch64_sqdmull<mode>): Likewise.
1216 (aarch64_sqdmull_lane<mode>_internal): Likewise.
1217 (aarch64_sqdmull_n<mode>): Likewise.
1218 (aarch64_sqdmull2<mode>_internal): Likewise.
1219 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
1220 (aarch64_sqdmull2_n<mode>_internal): Likewise.
1221 (aarch64_<sur>shl<mode>): Likewise.
1222 (aarch64_<sur>q<r>shl<mode>
1223 (aarch64_<sur>shll_n<mode>): Likewise.
1224 (aarch64_<sur>shll2_n<mode>): Likewise.
1225 (aarch64_<sur>shr_n<mode>): Likewise.
1226 (aarch64_<sur>sra_n<mode>): Likewise.
1227 (aarch64_<sur>s<lr>i_n<mode>): Likewise.
1228 (aarch64_<sur>qshl<u>_n<mode>): Likewise.
1229 (aarch64_<sur>q<r>shr<u>n_n<mode>): Likewise.
1230 (aarch64_cm<optab><mode>): Likewise.
1231 (aarch64_cm<optab>di): Likewise.
1232 (aarch64_cm<optab><mode>): Likewise.
1233 (aarch64_cm<optab>di): Likewise.
1234 (aarch64_cmtst<mode>): Likewise.
1235 (aarch64_cmtstdi): Likewise.
1236 (aarch64_cm<optab><mode>): Likewise.
1237 (*aarch64_fac<optab><mode>): Likewise.
1238 (aarch64_addp<mode>): Likewise.
1239 (aarch64_addpdi): Likewise.
1240 (sqrt<mode>2): Likewise.
1241 (vec_load_lanesoi<mode>): Likewise.
1242 (vec_store_lanesoi<mode>): Likewise.
1243 (vec_load_lanesci<mode>): Likewise.
1244 (vec_store_lanesci<mode>): Likewise.
1245 (vec_load_lanesxi<mode>): Likewise.
1246 (vec_store_lanesxi<mode>): Likewise.
1247 (*aarch64_mov<mode>): Likewise.
1248 (aarch64_ld2<mode>_dreg): Likewise.
1249 (aarch64_ld2<mode>_dreg): Likewise.
1250 (aarch64_ld3<mode>_dreg): Likewise.
1251 (aarch64_ld3<mode>_dreg): Likewise.
1252 (aarch64_ld4<mode>_dreg): Likewise.
1253 (aarch64_ld4<mode>_dreg): Likewise.
1254 (aarch64_tbl1<mode>): Likewise.
1255 (aarch64_tbl2v16qi): Likewise.
1256 (aarch64_combinev16qi): Likewise.
1257 (aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>): Likewise.
1258 (aarch64_st2<mode>_dreg): Likewise.
1259 (aarch64_st2<mode>_dreg): Likewise.
1260 (aarch64_st3<mode>_dreg): Likewise.
1261 (aarch64_st3<mode>_dreg): Likewise.
1262 (aarch64_st4<mode>_dreg): Likewise.
1263 (aarch64_st4<mode>_dreg): Likewise.
1264 (*aarch64_simd_ld1r<mode>): Likewise.
1265 (aarch64_frecpe<mode>): Likewise.
1266 (aarch64_frecp<FRECP:frecp_suffix><mode>): Likewise.
1267 (aarch64_frecps<mode>): Likewise.
1268
f7379e5e
JG
12692013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
1270
1271 * config/arm/iterators.md (V_elem_ch): New.
1272 (q): Likewise.
1273 (VQH_type): Likewise.
1274 * config/arm/arm.md (is_neon_type): New.
1275 (conds): Use is_neon_type.
1276 (anddi3_insn): Update type attribute.
1277 (xordi3_insn): Likewise.
1278 (one_cmpldi2): Likewise.
1279 * gcc/config/arm/vfp.md (movhf_vfp_neon): Update type attribute.
1280 * gcc/config/arm/neon.md (neon_mov): Update type attribute.
1281 (*movmisalign<mode>_neon_store): Likewise.
1282 (*movmisalign<mode>_neon_load): Likewise.
1283 (vec_set<mode>_internal): Likewise.
1284 (vec_set<mode>_internal): Likewise.
1285 (vec_setv2di_internal): Likewise.
1286 (vec_extract<mode>): Likewise.
1287 (vec_extract<mode>): Likewise.
1288 (vec_extractv2di): Likewise.
1289 (*add<mode>3_neon): Likewise.
1290 (adddi3_neon): Likewise.
1291 (*sub<mode>3_neon): Likewise.
1292 (subdi3_neon): Likewise.
1293 (fma<VCVTF:mode>4): Likewise.
1294 (fma<VCVTF:mode>4_intrinsic): Likewise.
1295 (*fmsub<VCVTF:mode>4): Likewise.
1296 (fmsub<VCVTF:mode>4_intrinsic): Likewise.
1297 (neon_vrint<NEON_VRINT:nvrint_variant><VCVTF:mode>): Likewise.
1298 (ior<mode>3): Likewise.
1299 (and<mode>3): Likewise.
1300 (orn<mode>3_neon): Likewise.
1301 (orndi3_neon): Likewise.
1302 (bic<mode>3_neon): Likewise.
1303 (bicdi3_neon): Likewise.
1304 (xor<mode>3): Likewise.
1305 (one_cmpl<mode>2): Likewise.
1306 (abs<mode>2): Likewise.
1307 (neg<mode>2): Likewise.
1308 (negdi2_neon): Likewise.
1309 (*umin<mode>3_neon): Likewise.
1310 (*umax<mode>3_neon): Likewise.
1311 (*smin<mode>3_neon): Likewise.
1312 (*smax<mode>3_neon): Likewise.
1313 (vashl<mode>3): Likewise.
1314 (vashr<mode>3_imm): Likewise.
1315 (vlshr<mode>3_imm): Likewise.
1316 (ashl<mode>3_signed): Likewise.
1317 (ashl<mode>3_unsigned): Likewise.
1318 (neon_load_count): Likewise.
1319 (ashldi3_neon_noclobber): Likewise.
1320 (ashldi3_neon): Likewise.
1321 (signed_shift_di3_neon): Likewise.
1322 (unsigned_shift_di3_neon): Likewise.
1323 (ashrdi3_neon_imm_noclobber): Likewise.
1324 (lshrdi3_neon_imm_noclobber): Likewise.
1325 (<shift>di3_neon): Likewise.
1326 (widen_ssum<mode>3): Likewise.
1327 (widen_usum<mode>3): Likewise.
1328 (quad_halves_<code>v4si): Likewise.
1329 (quad_halves_<code>v4sf): Likewise.
1330 (quad_halves_<code>v8hi): Likewise.
1331 (quad_halves_<code>v16qi): Likewise.
1332 (reduc_splus_v2di): Likewise.
1333 (neon_vpadd_internal<mode>): Likewise.
1334 (neon_vpsmin<mode>): Likewise.
1335 (neon_vpsmax<mode>): Likewise.
1336 (neon_vpumin<mode>): Likewise.
1337 (neon_vpumax<mode>): Likewise.
1338 (*ss_add<mode>_neon): Likewise.
1339 (*us_add<mode>_neon): Likewise.
1340 (*ss_sub<mode>_neon): Likewise.
1341 (*us_sub<mode>_neon): Likewise.
1342 (neon_vadd<mode>_unspec): Likewise.
1343 (neon_vaddl<mode>): Likewise.
1344 (neon_vaddw<mode>): Likewise.
1345 (neon_vhadd<mode>): Likewise.
1346 (neon_vqadd<mode>): Likewise.
1347 (neon_vaddhn<mode>): Likewise.
1348 (neon_vmul<mode>): Likewise.
1349 (neon_vfms<VCVTF:mode>): Likewise.
1350 (neon_vmlal<mode>): Likewise.
1351 (neon_vmls<mode>): Likewise.
1352 (neon_vmlsl<mode>): Likewise.
1353 (neon_vqdmulh<mode>): Likewise.
1354 (neon_vqdmlal<mode>): Likewise.
1355 (neon_vqdmlsl<mode>): Likewise.
1356 (neon_vmull<mode>): Likewise.
1357 (neon_vqdmull<mode>): Likewise.
1358 (neon_vsub<mode>_unspec): Likewise.
1359 (neon_vsubl<mode>): Likewise.
1360 (neon_vsubw<mode>): Likewise.
1361 (neon_vqsub<mode>): Likewise.
1362 (neon_vhsub<mode>): Likewise.
1363 (neon_vsubhn<mode>): Likewise.
1364 (neon_vceq<mode>): Likewise.
1365 (neon_vcge<mode>): Likewise.
1366 (neon_vcgeu<mode>): Likewise.
1367 (neon_vcgt<mode>): Likewise.
1368 (neon_vcgtu<mode>): Likewise.
1369 (neon_vcle<mode>): Likewise.
1370 (neon_vclt<mode>): Likewise.
1371 (neon_vcage<mode>): Likewise.
1372 (neon_vcagt<mode>): Likewise.
1373 (neon_vtst<mode>): Likewise.
1374 (neon_vabd<mode>): Likewise.
1375 (neon_vabdl<mode>): Likewise.
1376 (neon_vaba<mode>): Likewise.
1377 (neon_vabal<mode>): Likewise.
1378 (neon_vmax<mode>): Likewise.
1379 (neon_vmin<mode>): Likewise.
1380 (neon_vpaddl<mode>): Likewise.
1381 (neon_vpadal<mode>): Likewise.
1382 (neon_vpmax<mode>): Likewise.
1383 (neon_vpmin<mode>): Likewise.
1384 (neon_vrecps<mode>): Likewise.
1385 (neon_vrsqrts<mode>): Likewise.
1386 (neon_vqabs<mode>): Likewise.
1387 (neon_vqneg<mode>): Likewise.
1388 (neon_vcls<mode>): Likewise.
1389 (clz<mode>2): Likewise.
1390 (popcount<mode>2): Likewise.
1391 (neon_vrecpe<mode>): Likewise.
1392 (neon_vrsqrte<mode>): Likewise.
1393 (neon_vget_lane<mode>_sext_internal): Likewise.
1394 (neon_vget_lane<mode>_zext_internal): Likewise.
1395 (neon_vdup_n<mode>): Likewise.
1396 (neon_vdup_n<mode>): Likewise.
1397 (neon_vdup_nv2di): Likewise.
1398 (neon_vdup_lane<mode>_interal): Likewise.
1399 (*neon_vswp<mode>): Likewise.
1400 (neon_vcombine<mode>): Likewise.
1401 (float<mode><V_cvtto>2): Likewise.
1402 (floatuns<mode><V_cvtto>2): Likewise.
1403 (fix_trunc<mode><V_cvtto>2): Likewise.
1404 (fixuns_trunc<mode><V_cvtto>2
1405 (neon_vcvt<mode>): Likewise.
1406 (neon_vcvt<mode>): Likewise.
1407 (neon_vcvtv4sfv4hf): Likewise.
1408 (neon_vcvtv4hfv4sf): Likewise.
1409 (neon_vcvt_n<mode>): Likewise.
1410 (neon_vcvt_n<mode>): Likewise.
1411 (neon_vmovn<mode>): Likewise.
1412 (neon_vqmovn<mode>): Likewise.
1413 (neon_vqmovun<mode>): Likewise.
1414 (neon_vmovl<mode>): Likewise.
1415 (neon_vmul_lane<mode>): Likewise.
1416 (neon_vmul_lane<mode>): Likewise.
1417 (neon_vmull_lane<mode>): Likewise.
1418 (neon_vqdmull_lane<mode>): Likewise.
1419 (neon_vqdmulh_lane<mode>): Likewise.
1420 (neon_vqdmulh_lane<mode>): Likewise.
1421 (neon_vmla_lane<mode>): Likewise.
1422 (neon_vmla_lane<mode>): Likewise.
1423 (neon_vmlal_lane<mode>): Likewise.
1424 (neon_vqdmlal_lane<mode>): Likewise.
1425 (neon_vmls_lane<mode>): Likewise.
1426 (neon_vmls_lane<mode>): Likewise.
1427 (neon_vmlsl_lane<mode>): Likewise.
1428 (neon_vqdmlsl_lane<mode>): Likewise.
1429 (neon_vext<mode>): Likewise.
1430 (neon_vrev64<mode>): Likewise.
1431 (neon_vrev32<mode>): Likewise.
1432 (neon_vrev16<mode>): Likewise.
1433 (neon_vbsl<mode>_internal): Likewise.
1434 (neon_vshl<mode>): Likewise.
1435 (neon_vqshl<mode>): Likewise.
1436 (neon_vshr_n<mode>): Likewise.
1437 (neon_vshrn_n<mode>): Likewise.
1438 (neon_vqshrn_n<mode>): Likewise.
1439 (neon_vqshrun_n<mode>): Likewise.
1440 (neon_vshl_n<mode>): Likewise.
1441 (neon_vqshl_n<mode>): Likewise.
1442 (neon_vqshlu_n<mode>): Likewise.
1443 (neon_vshll_n<mode>): Likewise.
1444 (neon_vsra_n<mode>): Likewise.
1445 (neon_vsri_n<mode>): Likewise.
1446 (neon_vsli_n<mode>): Likewise.
1447 (neon_vtbl1v8qi): Likewise.
1448 (neon_vtbl2v8qi): Likewise.
1449 (neon_vtbl3v8qi): Likewise.
1450 (neon_vtbl4v8qi): Likewise.
1451 (neon_vtbl1v16qi): Likewise.
1452 (neon_vtbl2v16qi): Likewise.
1453 (neon_vcombinev16qi): Likewise.
1454 (neon_vtbx1v8qi): Likewise.
1455 (neon_vtbx2v8qi): Likewise.
1456 (neon_vtbx3v8qi): Likewise.
1457 (neon_vtbx4v8qi): Likewise.
1458 (*neon_vtrn<mode>_insn): Likewise.
1459 (*neon_vzip<mode>_insn): Likewise.
1460 (*neon_vuzp<mode>_insn): Likewise.
1461 (neon_vld1<mode>): Likewise.
1462 (neon_vld1_lane<mode>): Likewise.
1463 (neon_vld1_lane<mode>): Likewise.
1464 (neon_vld1_dup<mode>): Likewise.
1465 (neon_vld1_dup<mode>): Likewise.
1466 (neon_vld1_dupv2di): Likewise.
1467 (neon_vst1<mode>): Likewise.
1468 (neon_vst1_lane<mode>): Likewise.
1469 (neon_vst1_lane<mode>): Likewise.
1470 (neon_vld2<mode>): Likewise.
1471 (neon_vld2<mode>): Likewise.
1472 (neon_vld2_lane<mode>): Likewise.
1473 (neon_vld2_lane<mode>): Likewise.
1474 (neon_vld2_dup<mode>): Likewise.
1475 (neon_vst2<mode>): Likewise.
1476 (neon_vst2<mode>): Likewise.
1477 (neon_vst2_lane<mode>): Likewise.
1478 (neon_vst2_lane<mode>): Likewise.
1479 (neon_vld3<mode>): Likewise.
1480 (neon_vld3qa<mode>): Likewise.
1481 (neon_vld3qb<mode>): Likewise.
1482 (neon_vld3_lane<mode>): Likewise.
1483 (neon_vld3_lane<mode>): Likewise.
1484 (neon_vld3_dup<mode>): Likewise.
1485 (neon_vst3<mode>): Likewise.
1486 (neon_vst3qa<mode>): Likewise.
1487 (neon_vst3qb<mode>): Likewise.
1488 (neon_vst3_lane<mode>): Likewise.
1489 (neon_vst3_lane<mode>): Likewise.
1490 (neon_vld4<mode>): Likewise.
1491 (neon_vld4qa<mode>): Likewise.
1492 (neon_vld4qb<mode>): Likewise.
1493 (neon_vld4_lane<mode>): Likewise.
1494 (neon_vld4_lane<mode>): Likewise.
1495 (neon_vld4_dup<mode>): Likewise.
1496 (neon_vst4<mode>): Likewise.
1497 (neon_vst4qa<mode>): Likewise.
1498 (neon_vst4qb<mode>): Likewise.
1499 (neon_vst4_lane<mode>): Likewise.
1500 (neon_vst4_lane<mode>): Likewise.
1501 (neon_vec_unpack<US>_lo_<mode>): Likewise.
1502 (neon_vec_unpack<US>_hi_<mode>): Likewise.
1503 (neon_vec_<US>mult_lo_<mode>): Likewise.
1504 (neon_vec_<US>mult_hi_<mode>): Likewise.
1505 (neon_vec_<US>shiftl_<mode>): Likewise.
1506 (neon_unpack<US>_<mode>): Likewise.
1507 (neon_vec_<US>mult_<mode>): Likewise.
1508 (vec_pack_trunc_<mode>): Likewise.
1509 (neon_vec_pack_trunc_<mode>): Likewise.
1510 (neon_vabd<mode>_2): Likewise.
1511 (neon_vabd<mode>_3): Likewise.
1512
a9e66678
JG
15132013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
1514
1515 * config/aarch64/aarch64.md (movtf_aarch64): Update type attribute.
1516 (load_pair): Update type attribute.
1517 (store_pair): Update type attribute.
1518 * config/aarch64/iterators.md (q): New.
1519
20445ed6
JG
15202013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
1521
1522 * config/arm/types.md: Add new types for Neon insns.
1523
afb4ac68
AI
15242013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
1525 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1526 Sergey Lega <sergey.s.lega@intel.com>
1527 Anna Tikhonova <anna.tikhonova@intel.com>
1528 Ilya Tocar <ilya.tocar@intel.com>
1529 Andrey Turetskiy <andrey.turetskiy@intel.com>
1530 Ilya Verbin <ilya.verbin@intel.com>
1531 Kirill Yukhin <kirill.yukhin@intel.com>
1532 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1533
1534 * config/i386/sse.md (unspec): Add UNSPEC_RCP14, UNSPEC_RSQRT14,
1535 UNSPEC_FIXUPIMM, UNSPEC_SCALEF, UNSPEC_GETEXP, UNSPEC_GETMANT,
1536 UNSPEC_EXP2, UNSPEC_RCP28, UNSPEC_RSQRT28.
1537 (rcp14<mode>): New.
1538 (srcp14<mode>): Ditto.
1539 (rsqrt14<mode>): Ditto.
1540 (rsqrt14<mode>): Ditto.
1541 (avx512f_vmscalef<mode>): Ditto.
1542 (avx512f_scalef<mode>): Ditto.
1543 (avx512f_getexp<mode>): Ditto.
1544 (avx512f_sgetexp<mode>): Ditto.
1545 (avx512f_fixupimm<mode>): Ditto.
1546 (avx512f_sfixupimm<mode>): Ditto.
1547 (avx512f_rndscale<mode>): Ditto.
1548 (*avx512er_exp2<mode>): Ditto.
1549 (*avx512er_rcp28<mode>): Ditto.
1550 (avx512er_rsqrt28<mode>): Ditto.
1551 (avx512f_getmant<mode>): Ditto.
1552 (avx512f_getmant<mode>): Ditto.
1553 (avx512f_rndscale<mode>): Fix formatting.
1554
a1b499a3
JL
15552013-10-15 Martin Jambor <mjambor@suse.cz>
1556
1557 * ipa-utils.h (ipa_edge_within_scc): Declare.
1558 * ipa-cp.c (edge_within_scc): Moved...
1559 * ipa-utils.c (ipa_edge_within_scc): ...here. Updated all callers.
afb4ac68 1560
2e2206fa
AI
15612013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
1562 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1563 Sergey Lega <sergey.s.lega@intel.com>
1564 Anna Tikhonova <anna.tikhonova@intel.com>
1565 Ilya Tocar <ilya.tocar@intel.com>
1566 Andrey Turetskiy <andrey.turetskiy@intel.com>
1567 Ilya Verbin <ilya.verbin@intel.com>
1568 Kirill Yukhin <kirill.yukhin@intel.com>
1569 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1570
1571 * config/i386/predicates.md (const_8_to_15_operand): New.
1572 (const_16_to_31_operand): Ditto.
1573 * config/i386/sse.md (V8FI): New.
1574 (V16FI): Ditto.
1575 (reduc_splus_v8df): Ditto.
1576 (reduc_splus_v16sf): Ditto.
1577 (avx512f_vextract<shuffletype>32x4_1): Ditto.
1578 (vec_extract_hi_<mode>): Ditto.
1579 (avx512f_vinsert<shuffletype>32x4_1): Ditto.
1580 (vec_set_lo_<mode>): Ditto.
1581 (vec_set_hi_<mode>): Ditto.
1582 (avx512f_shuf_<shuffletype>64x2_1): Ditto.
1583 (avx512f_shuf_<shuffletype>32x4_1): Ditto.
1584 (avx512f_pshufd_1): Ditto.
1585 (avx512f_broadcast<mode>): Ditto.
1586 (avx512f_broadcast<mode>): Ditto.
1587 (define_split): Split vec_extract_lo into move.
1588 (ssequartermode): Ditto.
1589 (ssedoublemode): Extened with wider modes.
1590 (vec_extract_lo_<mode>): Ditto.
1591
0fe65b75
AI
15922013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
1593 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1594 Sergey Lega <sergey.s.lega@intel.com>
1595 Anna Tikhonova <anna.tikhonova@intel.com>
1596 Ilya Tocar <ilya.tocar@intel.com>
1597 Andrey Turetskiy <andrey.turetskiy@intel.com>
1598 Ilya Verbin <ilya.verbin@intel.com>
1599 Kirill Yukhin <kirill.yukhin@intel.com>
1600 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1601
1602 * config/i386/predicates.md (register_or_constm1_operand): New.
1603 * config/i386/sse.md (unspec): Add UNSPEC_UNSIGNED_PCMP, UNSPEC_TESTM,
1604 UNSPEC_TESTNM, UNSPEC_VTERNLOG, UNSPEC_ALIGN, UNSPEC_CONFLICT,
1605 UNSPEC_MASKED_EQ, UNSPEC_MASKED_GT, UNSPEC_GATHER_PREFETCH,
1606 UNSPEC_SCATTER_PREFETCH
1607 (VI48_512): New.
1608 (avx512f_ucmp<mode>3): Ditto.
1609 (avx512f_vternlog<mode>): Ditto.
1610 (avx512f_align<mode>): Ditto.
1611 (<shift_insn><mode>3): Ditto.
1612 (avx512f_<rotate>v<mode>): Ditto.
1613 (avx512f_<rotate><mode>): Ditto.
1614 (avx512f_eq<mode>3): Ditto.
1615 (avx512f_eq<mode>3_1): Ditto.
1616 (avx512f_gt<mode>3): Ditto.
1617 (avx512f_testm<mode>3): Ditto.
1618 (avx512f_testnm<mode>3): Ditto.
1619 (avx512pf_gatherpf<mode>): Ditto.
1620 (*avx512pf_gatherpf<mode>_mask): Ditto.
1621 (*avx512pf_gatherpf<mode>): Ditto.
1622 (avx512pf_scatterpf<mode>): Ditto.
1623 (*avx512pf_scatterpf<mode>_mask): Ditto.
1624 (*avx512pf_scatterpf<mode>): Ditto.
1625 (avx512f_vec_dup_gpr<mode>): Ditto.
1626 (clz<mode>2): Ditto.
1627 (conflict<mode>): Ditto.
1628 (REDUC_SMINMAX_MODE): Extened with wider modes.
1629 (reduc_<code>_<mode>): Ditto.
1630 (vlshr<mode>3): Ditto.
1631 (vashl<mode>3): Ditto.
1632
ab931c71
AI
16332013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
1634 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1635 Sergey Lega <sergey.s.lega@intel.com>
1636 Anna Tikhonova <anna.tikhonova@intel.com>
1637 Ilya Tocar <ilya.tocar@intel.com>
1638 Andrey Turetskiy <andrey.turetskiy@intel.com>
1639 Ilya Verbin <ilya.verbin@intel.com>
1640 Kirill Yukhin <kirill.yukhin@intel.com>
1641 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1642
1643 * config/i386/sse.md (unspec): Added UNSPEC_VPERMI2, UNSPEC_VPERMT2,
1644 UNSPEC_SCATTER.
1645 (VI48F_512): New.
1646 (avx512fmaskmode): Ditto.
1647 (bcstscalarsuff): Ditto.
1648 (avx512f_blendm<mode>): Ditto.
1649 (cmp_imm_predicate): Ditto.
1650 (avx512f_cmp<mode>3): Ditto.
1651 (avx512f_vec_dup<mode>): Ditto.
1652 (avx512f_vec_dup_mem<mode>): Ditto.
1653 (avx512f_vpermi2var<mode>3): Ditto.
1654 (avx512f_vpermt2var<mode>3): Ditto.
1655 (vec_init<mode>): Ditto.
1656 (avx512f_gathersi<mode>): Ditto.
1657 (*avx512f_gathersi<mode>): Ditto.
1658 (*avx512f_gathersi<mode>_2): Ditto.
1659 (avx512f_gatherdi<mode>): Ditto.
1660 (*avx512f_gatherdi<mode>): Ditto.
1661 (*avx512f_gatherdi<mode>_2): Ditto.
1662 (avx512f_scattersi<mode>): Ditto.
1663 (*avx512f_scattersi<mode>): Ditto.
1664 (avx512f_scatterdi<mode>): Ditto.
1665 (*avx512f_scatterdi<mode>): Ditto.
1666 (sseintprefix): Extened with wider modes.
1667 (VEC_GATHER_IDXSI): Ditto.
1668 (VEC_GATHER_IDXDI): Ditto.
1669 (VEC_GATHER_SRCDI): Ditto.
1670
c9acb877
MGD
16712013-10-15 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
1672 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1673
1674 * config/arm/t-aprofile: New file.
1675 * config.gcc: Handle --with-multilib-list option.
1676
ecbda484
BS
16772013-10-15 Bernd Schmidt <bernds@codesourcery.com>
1678
6f1abb55
UB
1679 * reload1.c (reloads_unique_chain_p): Ensure that r1 is
1680 the input for r2.
ecbda484 1681
24f161fd
RB
16822013-10-15 Richard Biener <rguenther@suse.de>
1683
1684 * tree-loop-distribution.c (build_empty_rdg): Inline into
1685 single user.
1686 (rdg_flag_vertex): Inline into single user.
1687 (rdg_flag_vertex_and_dependent): Likewise.
1688 (build_rdg_partition_for_vertex): Remove processed bitmap.
1689 (rdg_build_partitions): Simplify.
1690
5de989ed
RB
16912013-10-15 Richard Biener <rguenther@suse.de>
1692
1693 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
1694 Restructure forwarding through conversions and copies to
1695 avoid performing copy-propagation the wrong way. Adjust
1696 recursion invocations.
1697 (forward_propagate_addr_expr): Add argument stating if we
1698 are recursing from a single-use.
1699 (ssa_forward_propagate_and_combine): Adjust.
1700
47e0da37
DM
17012013-10-14 David Malcolm <dmalcolm@redhat.com>
1702
1703 * dumpfile.h (gcc::dump_manager): New class, to hold state
1704 relating to dumpfile management.
1705 (get_dump_file_name): Remove in favor of method of dump_manager.
1706 (dump_initialized_p): Likewise.
1707 (dump_start): Likewise.
1708 (dump_finish): Likewise.
1709 (dump_switch_p): Likewise.
1710 (dump_register): Likewise.
1711 (get_dump_file_info): Likewise.
1712 * context.c (gcc::context::context): Construct the dump_manager
1713 instance.
1714 * context.h (gcc::context::get_dumps): New.
1715 (gcc::context::m_dumps): New.
1716 * coverage.c (coverage_init): Port to dump_manager API.
6f1abb55 1717 * dumpfile.c (extra_dump_files): Convert to field of gcc::dump_manager.
47e0da37
DM
1718 (extra_dump_files_in_use): Likewise.
1719 (extra_dump_files_alloced): Likewise.
1720 (gcc::dump_manager::dump_manager): New.
1721 (dump_register): Convert to...
1722 (gcc::dump_manager::dump_register): ...method, replacing
1723 function-static next_dump with m_next_dump field.
1724 (get_dump_file_info): Convert to...
1725 (gcc::dump_manager::get_dump_file_info): ...method.
1726 (get_dump_file_name): Convert to...
1727 (gcc::dump_manager::get_dump_file_name): ...method.
1728 (dump_start): Convert to...
1729 (gcc::dump_manager::dump_start): ...method.
1730 (dump_finish): Convert to...
1731 (gcc::dump_manager::dump_finish): ...method.
1732 (dump_begin): Replace body with...
1733 (gcc::dump_manager::dump_begin): ...new method.
1734 (dump_phase_enabled_p): Convert to...
1735 (gcc::dump_manager::dump_phase_enabled_p): ...method.
1736 (dump_phase_enabled_p): Convert to...
1737 (gcc::dump_manager::dump_phase_enabled_p): ...method.
1738 (dump_initialized_p): Convert to...
1739 (gcc::dump_manager::dump_initialized_p): ...method.
1740 (dump_flag_name): Replace body with...
1741 (gcc::dump_manager::dump_flag_name): ...new method.
1742 (dump_enable_all): Convert to...
1743 (gcc::dump_manager::dump_enable_all): ...new method.
1744 (opt_info_enable_passes): Convert to...
1745 (gcc::dump_manager::opt_info_enable_passes): ...new method.
1746 (dump_switch_p_1): Convert to...
1747 (gcc::dump_manager::dump_switch_p_1): ...new method.
1748 (dump_switch_p): Convert to...
1749 (gcc::dump_manager::dump_switch_p): ...new method.
1750 (opt_info_switch_p): Port to dump_manager API.
1751 (enable_rtl_dump_file): Likewise.
1752 * opts-global.c (handle_common_deferred_options): Port to new
1753 dump_manager API.
1754 * passes.c (pass_manager::finish_optimization_passes): Likewise.
1755 (pass_manager::register_one_dump_file): Likewise.
1756 (pass_manager::register_pass): Likewise.
1757 (pass_init_dump_file): Likewise.
1758 (pass_fini_dump_file): Likewise.
1759 * statistics.c (statistics_early_init): Likewise.
1760
83fd5d11
RB
17612013-10-14 Richard Biener <rguenther@suse.de>
1762
1763 * gimple.c (gimple_canonical_types, canonical_type_hash_cache,
1764 iterative_hash_canonical_type, gimple_canonical_type_hash,
1765 gimple_canonical_types_compatible_p, gimple_canonical_type_eq,
1766 gimple_register_canonical_type, print_gimple_types_stats,
1767 free_gimple_type_tables): Move to lto/lto.c
1768 (gt-gimple.h): Do not include.
1769 * gimple.h (gimple_register_canonical_type,
1770 print_gimple_types_stats, free_gimple_type_tables): Remove.
1771 * Makefile.in (GTFILES): Remove gimple.c.
1772
a6dbd0f7
TS
17732013-10-14 Travis Snoozy <quandary@remstate.com>
1774
1775 PR target/58716
1776 * config/msp430/msp430.c (msp430_option_override): Correct thinko
1777 scanning for msp430x targets.
1778
b5ccb9ed
EB
17792013-10-14 Eric Botcazou <ebotcazou@adacore.com>
1780
1781 PR bootstrap/58509
1782 * config/sparc/sparc-protos.h (widen_mem_for_ldd_peep): Declare.
1783 (registers_ok_for_ldd_peep): Move around.
1784 * config/sparc/sparc.c (widen_mem_for_ldd_peep): New.
1785 * config/sparc/sparc.md (widening peepholes): Use it.
1786
fd7e5084
RB
17872013-10-14 Richard Biener <rguenther@suse.de>
1788
1789 PR middle-end/58712
1790 PR middle-end/55358
1791 * gimple.c (iterative_hash_canonical_type): Make sure to
1792 record the hash into the correct hashtable slot.
1793
3246afaa
EB
17942013-10-13 Eric Botcazou <ebotcazou@adacore.com>
1795
1796 PR rtl-optimization/58662
1797 * combine.c (try_combine): Take into account death nodes on I2 when
1798 splitting a PARALLEL of two independent SETs. Fix dump message.
1799
5d30dc5b
OE
18002013-10-12 Oleg Endo <olegendo@gcc.gnu.org>
1801
1802 PR target/51244
1803 * config/sh/sh_treg_combine.cc: New SH specific RTL pass.
1804 * config.gcc (SH extra_objs): Add sh_ifcvt.o.
1805 * config/sh/t-sh (sh_treg_combine.o): New entry.
1806 * config/sh/sh.c (sh_fixed_condition_code_regs): New function that
1807 implements the target hook TARGET_FIXED_CONDITION_CODE_REGS.
1808 (register_sh_passes): New function. Register sh_treg_combine pass.
1809 (sh_option_override): Invoke it.
1810 (sh_canonicalize_comparison): Handle op0_preserve_value.
1811 * sh.md (*cbranch_t"): Do not try to optimize missed test and branch
1812 opportunities. Canonicalize branch condition.
1813 (nott): Allow only if pseudos can be created for non-SH2A.
1814
37d1c5db
L
18152013-10-12 H.J. Lu <hongjiu.lu@intel.com>
1816
1817 PR target/58690
1818 * config/i386/i386.c (ix86_copy_addr_to_reg): New function.
1819 (ix86_expand_movmem): Replace copy_addr_to_reg with
1820 ix86_copy_addr_to_reg.
1821 (ix86_expand_setmem): Likewise.
1822
b86a70ff
AM
18232013-10-12 Alexander Monakov <amonakov@ispras.ru>
1824
1825 * config/i386/i386.c (ix86_expand_sse_compare_and_jump): Use mode
1826 provided by ix86_fp_compare_mode instead of CCFPUmode.
1827
6e1d5961
JG
18282013-10-12 James Greenhalgh <james.greenhalgh@arm.com>
1829
1830 * config/aarch64/arm_neon.h
1831 (vtbx<1,3>_<psu>8): Fix register constriants.
1832
ef3cfba2
JL
18332013-10-11 Jeff Law <law@redhat.com>
1834
1835 PR tree-optimization/58640
adcfd489
UB
1836 * tree-ssa-threadupdate.c (mark_threaded_blocks): Truncate jump
1837 threading paths that cross over two loop entry points.
ef3cfba2 1838
6e8b7d9c
BS
18392013-10-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1840
1841 * config/rs6000/vsx.md (*vsx_le_perm_load_v2di): Generalize to
1842 handle vector float as well.
1843 (*vsx_le_perm_load_v4si): Likewise.
1844 (*vsx_le_perm_store_v2di): Likewise.
1845 (*vsx_le_perm_store_v4si): Likewise.
1846
f200869a
BS
18472013-10-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1848
1849 * config/rs6000/vector.md (vec_realign_load<mode>): Generate vperm
1850 directly to circumvent subtract from splat{31} workaround.
1851 * config/rs6000/rs6000-protos.h (altivec_expand_vec_perm_le): New
1852 prototype.
1853 * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): New.
1854 * config/rs6000/altivec.md (define_c_enum "unspec"): Add
1855 UNSPEC_VPERM_X and UNSPEC_VPERM_UNS_X.
1856 (altivec_vperm_<mode>): Convert to define_insn_and_split to
1857 separate big and little endian logic.
1858 (*altivec_vperm_<mode>_internal): New define_insn.
1859 (altivec_vperm_<mode>_uns): Convert to define_insn_and_split to
1860 separate big and little endian logic.
1861 (*altivec_vperm_<mode>_uns_internal): New define_insn.
1862 (vec_permv16qi): Add little endian logic.
1863
8d28e3fc
MG
18642013-10-11 Marc Glisse <marc.glisse@inria.fr>
1865
1866 * doc/extend.texi (returns_nonnull): Remove arguments.
1867
3c87b77b
AI
18682013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1869 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1870 Sergey Lega <sergey.s.lega@intel.com>
1871 Anna Tikhonova <anna.tikhonova@intel.com>
1872 Ilya Tocar <ilya.tocar@intel.com>
1873 Andrey Turetskiy <andrey.turetskiy@intel.com>
1874 Ilya Verbin <ilya.verbin@intel.com>
1875 Kirill Yukhin <kirill.yukhin@intel.com>
1876 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1877
1878 * config/i386/sse.md (VI48F_256_512): New.
1879 (avx2_permvar<mode>): Change to ...
1880 (<avx2_avx512f>_permvar<mode>): This.
1881
50e60d7d
AI
18822013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1883 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1884 Sergey Lega <sergey.s.lega@intel.com>
1885 Anna Tikhonova <anna.tikhonova@intel.com>
1886 Ilya Tocar <ilya.tocar@intel.com>
1887 Andrey Turetskiy <andrey.turetskiy@intel.com>
1888 Ilya Verbin <ilya.verbin@intel.com>
1889 Kirill Yukhin <kirill.yukhin@intel.com>
1890 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1891
6f1abb55 1892 * config/i386/i386.c (bdesc_args): Change corresponding pattern for
50e60d7d
AI
1893 __builtin_ia32_cvtps2dq, __builtin_ia32_cvtps2dq256.
1894 * config/i386/sse.md (VI4_AVX): New.
1895 (sf2simodelower): Ditto.
1896 (sse2_cvtps2dq): Change to ...
1897 (<sse2_avx_avx512f>_fix_notrunc<sf2simodelower><mode>): This.
1898
f62ce24f
AI
18992013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1900 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1901 Sergey Lega <sergey.s.lega@intel.com>
1902 Anna Tikhonova <anna.tikhonova@intel.com>
1903 Ilya Tocar <ilya.tocar@intel.com>
1904 Andrey Turetskiy <andrey.turetskiy@intel.com>
1905 Ilya Verbin <ilya.verbin@intel.com>
1906 Kirill Yukhin <kirill.yukhin@intel.com>
1907 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1908
1909 * config/i386/sse.md (V_512): New.
1910 (VI_512): Ditto.
1911 (vcond<V_512:mode><VF_512:mode>): Ditto.
1912 (vcond<V_512:mode><VI_512:mode>): Ditto.
1913 (vcondu<V_512:mode><VI_512:mode>): Ditto.
1914
558d9f79
AI
19152013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1916 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1917 Sergey Lega <sergey.s.lega@intel.com>
1918 Anna Tikhonova <anna.tikhonova@intel.com>
1919 Ilya Tocar <ilya.tocar@intel.com>
1920 Andrey Turetskiy <andrey.turetskiy@intel.com>
1921 Ilya Verbin <ilya.verbin@intel.com>
1922 Kirill Yukhin <kirill.yukhin@intel.com>
1923 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1924
1925 * config/i386/i386.c (ix86_rtx_costs): Enable fma for TARGET_AVX512F.
1926 * config/i386/sse.md (FMAMODEM): Changed modes and conditions.
1927 (FMAMODE): Ditto.
1928 (fma<mode>4): Removed condition.
1929 (fms<mode>4): Ditto.
1930 (fnma<mode>4): Ditto.
1931 (fnms<mode>4): Ditto.
1932 (fma4i_fmadd_<mode>): Ditto.
1933 (*fma_fmadd_<mode>): Ditto.
1934 (*fma_fmsub_<mode>): Ditto.
1935 (*fma_fnmadd_<mode>): Ditto.
1936 (*fma_fnmsub_<mode>): Ditto.
1937 (fmaddsub_<mode>): Allow for TARGET_AVX512F.
1938 (*fma_fmaddsub_<mode>): Ditto.
1939 (*fma_fmsubadd_<mode>): Ditto.
1940 (*fmai_fmadd_<mode>): Ditto.
1941 (*fmai_fmsub_<mode>): Ditto.
1942 (*fmai_fnmadd_<mode>): Ditto.
1943 (*fmai_fnmsub_<mode>): Ditto.
1944
e8d08206
AI
19452013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1946 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1947 Sergey Lega <sergey.s.lega@intel.com>
1948 Anna Tikhonova <anna.tikhonova@intel.com>
1949 Ilya Tocar <ilya.tocar@intel.com>
1950 Andrey Turetskiy <andrey.turetskiy@intel.com>
1951 Ilya Verbin <ilya.verbin@intel.com>
1952 Kirill Yukhin <kirill.yukhin@intel.com>
1953 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1954
1955 * config/i386/sse.md (VI248_AVX2_8_AVX512F): New.
1956 (VI124_256): Changed to ...
1957 (VI124_256_48_512): This.
1958 (ssepackmode): Extended with wider modes.
1959 (<code><mode>3): Changed iterator.
1960 (*avx2_<code><mode>3): Ditto.
1961 (vec_pack_trunc_<mode>): Ditto.
1962
16821545
AI
19632013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1964 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1965 Sergey Lega <sergey.s.lega@intel.com>
1966 Anna Tikhonova <anna.tikhonova@intel.com>
1967 Ilya Tocar <ilya.tocar@intel.com>
1968 Andrey Turetskiy <andrey.turetskiy@intel.com>
1969 Ilya Verbin <ilya.verbin@intel.com>
1970 Kirill Yukhin <kirill.yukhin@intel.com>
1971 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1972
1973 * config/i386/sse.md (VI124_AVX2_48_AVX512F): New.
1974 (VI8F_256_512): Ditto.
1975 (abs<mode>2): Changed iterator.
1976 (avx2_perm<mode>): Changed to ...
1977 (<avx2_avx512f>_perm<mode>): This.
1978 (avx2_perm<mode>_1): Changed to ...
1979 (<avx2_avx512f>_perm<mode>_1): This.
1980
5348cff8
AI
19812013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1982 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1983 Sergey Lega <sergey.s.lega@intel.com>
1984 Anna Tikhonova <anna.tikhonova@intel.com>
1985 Ilya Tocar <ilya.tocar@intel.com>
1986 Andrey Turetskiy <andrey.turetskiy@intel.com>
1987 Ilya Verbin <ilya.verbin@intel.com>
1988 Kirill Yukhin <kirill.yukhin@intel.com>
1989 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1990
1991 * config/i386/sse.md (VI48_AVX512F): New.
1992 (VI48_AVX2): Changed to ...
1993 (VI48_AVX2_48_AVX512F): This.
1994 (avx2_ashrv<mode>): Changed to ...
1995 (<avx2_avx512f>_ashrv<mode>): This.
1996 (avx2_<shift_insn>v<mode>): Changed to ...
1997 (<avx2_avx512f>_<shift_insn>v<mode>): This.
1998
f5f41d88
AI
19992013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
2000 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2001 Sergey Lega <sergey.s.lega@intel.com>
2002 Anna Tikhonova <anna.tikhonova@intel.com>
2003 Ilya Tocar <ilya.tocar@intel.com>
2004 Andrey Turetskiy <andrey.turetskiy@intel.com>
2005 Ilya Verbin <ilya.verbin@intel.com>
2006 Kirill Yukhin <kirill.yukhin@intel.com>
2007 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2008
2009 * config/i386/sse.md (VI4_AVX512F): New.
2010 (VI8_AVX2_AVX512F): Ditto.
2011 (mul<mode>3): Extended with wider modes.
2012 (*<sse4_1_avx2>_mul<mode>3): Ditto.
2013 (mul<mode>3): Ditto.
2014 (vec_widen_<s>mult_odd_<mode>): Ditto.
2015
3bdf6340
AI
20162013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
2017 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2018 Sergey Lega <sergey.s.lega@intel.com>
2019 Anna Tikhonova <anna.tikhonova@intel.com>
2020 Ilya Tocar <ilya.tocar@intel.com>
2021 Andrey Turetskiy <andrey.turetskiy@intel.com>
2022 Ilya Verbin <ilya.verbin@intel.com>
2023 Kirill Yukhin <kirill.yukhin@intel.com>
2024 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2025
2026 * config/i386/sse.md (VI2_AVX512F): New.
2027 (VI124_AVX512F): Ditto.
2028 (sseunpackmode): Extended with wider modes.
2029 (sseunpackfltmode): Ditto.
2030 (vec_unpacks_float_hi_<mode>): Ditto.
2031 (vec_unpacks_float_lo_<mode>): Ditto.
2032 (vec_unpacku_float_hi_<mode>): Ditto.
2033 (vec_unpacku_float_lo_<mode>): Ditto.
2034 (vec_unpacks_lo_<mode>): Ditto.
2035 (vec_unpacks_hi_<mode>): Ditto.
2036 (vec_unpacku_lo_<mode>): Ditto.
2037 (vec_unpacku_hi_<mode>): Ditto.
2038
67f783cb
AI
20392013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
2040 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2041 Sergey Lega <sergey.s.lega@intel.com>
2042 Anna Tikhonova <anna.tikhonova@intel.com>
2043 Ilya Tocar <ilya.tocar@intel.com>
2044 Andrey Turetskiy <andrey.turetskiy@intel.com>
2045 Ilya Verbin <ilya.verbin@intel.com>
2046 Kirill Yukhin <kirill.yukhin@intel.com>
2047 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2048
2049 * config/i386/i386.md (multdiv): New.
2050 (multdiv_mnemonic): Ditto.
2051 * config/i386/sse.md (<sse>_vmmul<mode>3): Changed to...
2052 (<sse>_vm<multdiv_mnemonic><mode>3): This.
2053 (<sse>_vmdiv<mode>3): Removed.
2054
ec5e777c
AI
20552013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
2056 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2057 Sergey Lega <sergey.s.lega@intel.com>
2058 Anna Tikhonova <anna.tikhonova@intel.com>
2059 Ilya Tocar <ilya.tocar@intel.com>
2060 Andrey Turetskiy <andrey.turetskiy@intel.com>
2061 Ilya Verbin <ilya.verbin@intel.com>
2062 Kirill Yukhin <kirill.yukhin@intel.com>
2063 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2064
2065 * config/i386/sse.md (V): Extended with wider modes.
2066 (VF2): Ditto.
2067 (ssehalfvecmode): Ditto.
2068 (i128): Ditto.
2069 (ssepackfltmode): Ditto.
2070 (avx_vec_concat<mode>): Ditto.
2071 (V_256_512): New iterator.
2072 (VF2_512_256): Ditto.
2073 (si2dfmode): New attribute.
2074 (si2dfmodelower): Ditto.
2075 (sf2dfmode): Ditto.
2076 (concat_tg_mode): Ditto.
2077 (floatv4siv4df2): Changed to ...
2078 (float<si2dfmodelower><mode>2): This.
2079 (avx_cvtps2pd256): Changed to ...
2080 (<sse2_avx_avx512f>_cvtps2pd<avxsizesuffix>): This.
2081 (vec_pack_trunc_v4df): Changed to ...
2082 (vec_pack_trunc_<mode>): This.
2083 (avx_vpermil<mode>): Changed to ...
2084 (<sse2_avx_avx512f>_vpermil<mode>): This.
2085 (<fixsuffix>fix_truncv8dfv8si2): New.
2086 (vec_pack_sfix_trunc_v8df): Ditto.
2087 (avx512f_rndscale<mode>): Ditto.
2088 (avx512f_roundpd512): Ditto.
2089 (vec_pack_ufix_trunc_<mode>): Updated iterator.
2090
a9ccbba2
AI
20912013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
2092 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2093 Sergey Lega <sergey.s.lega@intel.com>
2094 Anna Tikhonova <anna.tikhonova@intel.com>
2095 Ilya Tocar <ilya.tocar@intel.com>
2096 Andrey Turetskiy <andrey.turetskiy@intel.com>
2097 Ilya Verbin <ilya.verbin@intel.com>
2098 Kirill Yukhin <kirill.yukhin@intel.com>
2099 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2100
2101 * config/i386/i386.md (any_fix): New iterator.
2102 (fixsuffix): New attribute.
2103 * config/i386/sse.md (VF1): Extened with wider modes.
2104 (VI): Ditto.
2105 (VI_AVX2): Ditto.
2106 (VI8): Ditto.
2107 (sseintvecmodelower): Ditto.
2108 (ssescalarmode): Ditto.
2109 (ssescalarnum): Ditto.
2110 (VF1_128_256): New.
2111 (ssexmmmode): Ditto.
2112 (<fixsuffix>fix_truncv16sfv16si2): Ditto.
2113 (<sse>_rcp<mode>2): Change iterator.
2114 (rsqrt<mode>2): Ditto.
2115 (<sse>_rsqrt<mode>2): Ditto.
2116 (avx2_vec_dup<mode>): Ditto.
2117 (<sse4_1>_round<ssemodesuffix>_sfix<avxsizesuffix>): Ditto.
2118 (round<mode>2_sfix): Ditto.
2119 (avx2_pbroadcast<mode>): Ditto.
2120 (*andnot<mode>3): Handle XI mode.
2121 (*<code><mode>3): Ditto.
2122 (AVXTOSSEMODE): Removed.
2123 (avx_vpermil<mode>): Changed to ...
2124 (<sse2_avx_avx512f>_vpermil<mode>): This.
2125
2b1ebb0c
AI
21262013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
2127 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2128 Sergey Lega <sergey.s.lega@intel.com>
2129 Anna Tikhonova <anna.tikhonova@intel.com>
2130 Ilya Tocar <ilya.tocar@intel.com>
2131 Andrey Turetskiy <andrey.turetskiy@intel.com>
2132 Ilya Verbin <ilya.verbin@intel.com>
2133 Kirill Yukhin <kirill.yukhin@intel.com>
2134 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2135
2136 * config/i386/sse.md (<sse2>_movnt<mode>): Update constraint to "v".
2137 (<sse>_comi): Ditto.
2138 (<sse>_ucomi): Ditto.
2139 (sse_cvtss2siq_2): Ditto.
2140 (sse2_cvtsd2si): Ditto.
2141 (sse2_cvtsd2siq): Ditto.
2142 (sse2_cvttsd2si): Ditto.
2143 (sse2_cvttsd2siq): Ditto.
2144 (<shift_insn><mode>3): Ditto.
2145 (sse2_cvtsi2sdq): Update constraint and prefix.
2146 (sse_cvtsi2ss): Update prefix.
2147 (sse_cvtsi2ssq): Ditto.
2148
d89124ed
JJ
21492013-10-11 Jakub Jelinek <jakub@redhat.com>
2150
2151 * tree-vrp.c (infer_nonnull_range): Use is_gimple_call,
2152 ignore internal calls.
2153
e6ad28c3
RB
21542013-10-11 Richard Biener <rguenther@suse.de>
2155
6f1abb55
UB
2156 * tree-pretty-print.c (dump_generic_node): Allow to dump both (D)
2157 and (ab) for SSA_NAMEs. Mark INTEGER_CSTs with (OVF) if
2158 TREE_OVERFLOW is set.
e6ad28c3 2159
d1227447
TS
21602013-10-11 Thomas Schwinge <thomas@codesourcery.com>
2161
1ac4b8e4
TS
2162 * tree.h (OMP_CLAUSE_CODE): Remove duplicate definition.
2163
7d05cebb
TS
2164 * gimple.c: GIMPLE statements have subcodes, not sub-codes.
2165 * gimple.h: Likewise.
2166
adcfd489 2167 * doc/generic.texi (OpenMP): OMP_CLAUSE_* are subcodes, not sub-codes.
6545f0b3 2168
1a79fb8a
TS
2169 * doc/generic.texi (Adding new DECL node types): Explain *_CHECK
2170 macros.
2171
3afd2873
TS
2172 * doc/gimple.texi (is_gimple_omp): Move into the correct section.
2173
adcfd489 2174 * acinclude.m4 (gcc_GAS_FLAGS): Add more gcc_cv_as_flags overrides.
d1227447
TS
2175 * configure: Regenerate.
2176
acf0174b
JJ
21772013-10-11 Jakub Jelinek <jakub@redhat.com>
2178
2179 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__LOOPTEMP_
2180 and new OpenMP 4.0 clauses, handle UDR OMP_CLAUSE_REDUCTION,
2181 formatting fixes, use pp_colon instead of pp_character (..., ':'),
2182 similarly pp_right_paren.
2183 (dump_generic_node): Handle OMP_DISTRIBUTE, OMP_TEAMS,
2184 OMP_TARGET_DATA, OMP_TARGET, OMP_TARGET_UPDATE, OMP_TASKGROUP,
2185 allow OMP_FOR_INIT to be NULL, handle OMP_ATOMIC_SEQ_CST.
2186 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add OpenMP 4.0
2187 clauses.
2188 (omp_declare_simd_clauses_equal,
2189 omp_remove_redundant_declare_simd_attrs): New functions.
2190 (attribute_value_equal): Use omp_declare_simd_clauses_equal.
2191 (walk_tree_1): Handle new OpenMP 4.0 clauses.
2192 * tree.h (OMP_LOOP_CHECK): Define.
2193 (OMP_FOR_BODY, OMP_FOR_CLAUSES, OMP_FOR_INIT, OMP_FOR_COND,
2194 OMP_FOR_INCR, OMP_FOR_PRE_BODY): Use it.
2195 (OMP_TASKGROUP_BODY, OMP_TEAMS_BODY, OMP_TEAMS_CLAUSES,
2196 OMP_TARGET_DATA_BODY, OMP_TARGET_DATA_CLAUSES, OMP_TARGET_BODY,
2197 OMP_TARGET_CLAUSES, OMP_TARGET_UPDATE_CLAUSES, OMP_CLAUSE_SIZE,
2198 OMP_ATOMIC_SEQ_CST, OMP_CLAUSE_DEPEND_KIND, OMP_CLAUSE_MAP_KIND,
2199 OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION, OMP_CLAUSE_PROC_BIND_KIND,
2200 OMP_CLAUSE_REDUCTION_OMP_ORIG_REF, OMP_CLAUSE_ALIGNED_ALIGNMENT,
2201 OMP_CLAUSE_NUM_TEAMS_EXPR, OMP_CLAUSE_THREAD_LIMIT_EXPR,
2202 OMP_CLAUSE_DEVICE_ID, OMP_CLAUSE_DIST_SCHEDULE_CHUNK_EXPR,
2203 OMP_CLAUSE_SIMDLEN_EXPR): Define.
2204 (OMP_CLAUSE_DECL): Change range up to OMP_CLAUSE__LOOPTEMP_.
2205 (omp_remove_redundant_declare_simd_attrs): New prototype.
2206 * gimple.def (GIMPLE_OMP_TASKGROUP, GIMPLE_OMP_TARGET,
2207 GIMPLE_OMP_TEAMS): New codes.
2208 (GIMPLE_OMP_RETURN): Use GSS_OMP_ATOMIC_STORE instead of GSS_BASE.
2209 * omp-low.c (struct omp_context): Add cancel_label and cancellable
2210 fields.
2211 (target_nesting_level): New variable.
2212 (extract_omp_for_data): Handle GF_OMP_FOR_KIND_DISTRIBUTE and
2213 OMP_CLAUSE_DIST_SCHEDULE. Don't fallback to library implementation
2214 for collapse > 1 static schedule unless ordered.
2215 (get_ws_args_for): Add par_stmt argument. Handle combined loops.
2216 (determine_parallel_type): Adjust get_ws_args_for caller.
2217 (install_var_field): Handle mask & 4 for double indirection.
2218 (scan_sharing_clauses): Ignore shared clause on teams construct.
2219 Handle OMP_CLAUSE__LOOPTEMP_ and new OpenMP 4.0 clauses.
2220 (create_omp_child_function): If inside target or declare target
adcfd489 2221 constructs, set "omp declare target" attribute on the child function.
acf0174b
JJ
2222 (find_combined_for): New function.
2223 (scan_omp_parallel): Handle combined loops.
2224 (scan_omp_target, scan_omp_teams): New functions.
2225 (check_omp_nesting_restrictions): Check new OpenMP 4.0 nesting
2226 restrictions and set ctx->cancellable for cancellable constructs.
2227 (scan_omp_1_stmt): Call check_omp_nesting_restrictions also on
2228 selected builtin calls. Handle GIMPLE_OMP_TASKGROUP,
2229 GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS.
adcfd489 2230 (build_omp_barrier): Add lhs argument, return gimple rather than tree.
acf0174b 2231 (omp_clause_aligned_alignment): New function.
6f1abb55 2232 (lower_rec_simd_input_clauses): Only call SET_DECL_VALUE_EXPR on decls.
acf0174b
JJ
2233 (lower_rec_input_clauses): Add FD argument. Ignore shared clauses
2234 on teams constructs. Handle user defined reductions and new
2235 OpenMP 4.0 clauses.
2236 (lower_reduction_clauses): Don't set placeholder to address of ref
2237 if it has already the right type.
2238 (lower_send_clauses): Handle OMP_CLAUSE__LOOPTEMP_.
2239 (expand_parallel_call): Use the new non-_start suffixed builtins,
2240 handle OMP_CLAUSE_PROC_BIND, don't call the outlined function
2241 and GOMP_parallel_end after the call.
2242 (expand_task_call): Handle OMP_CLAUSE_DEPEND.
2243 (expand_omp_for_init_counts): Handle combined loops.
2244 (expand_omp_for_init_vars): Add inner_stmt argument, handle combined
2245 loops.
2246 (expand_omp_for_generic): Likewise. Use GOMP_loop_end_cancel at the
2247 end of cancellable loops.
2248 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
2249 Likewise. Handle collapse > 1 loops.
2250 (expand_omp_simd): Handle combined loops.
2251 (expand_omp_for): Add inner_stmt argument, adjust callers of
2252 expand_omp_for* functions, use expand_omp_for_static*chunk even
2253 for collapse > 1 unless ordered.
2254 (expand_omp_sections): Use GOMP_sections_end_cancel at the end
2255 of cancellable sections.
2256 (expand_omp_single): Remove need_barrier variable, just rely on
2257 gimple_omp_return_nowait_p. Adjust build_omp_barrier caller.
2258 (expand_omp_synch): Allow GIMPLE_OMP_TASKGROUP and GIMPLE_OMP_TEAMS.
2259 (expand_omp_atomic_load, expand_omp_atomic_store,
2260 expand_omp_atomic_fetch_op): Handle gimple_omp_atomic_seq_cst_p.
2261 (expand_omp_target): New function.
2262 (expand_omp): Handle combined loops. Handle GIMPLE_OMP_TASKGROUP,
2263 GIMPLE_OMP_TEAMS, GIMPLE_OMP_TARGET.
2264 (build_omp_regions_1): Immediately close region for
2265 GF_OMP_TARGET_KIND_UPDATE.
2266 (maybe_add_implicit_barrier_cancel): New function.
2267 (lower_omp_sections): Adjust lower_rec_input_clauses caller. Handle
2268 cancellation.
2269 (lower_omp_single): Likewise. Add clobber after the barrier.
2270 (lower_omp_taskgroup): New function.
2271 (lower_omp_for): Handle combined loops. Adjust
2272 lower_rec_input_clauses caller. Handle cancellation.
2273 (lower_depend_clauses): New function.
2274 (lower_omp_taskreg): Lower depend clauses. Adjust
2275 lower_rec_input_clauses caller. Add clobber after the call. Handle
2276 cancellation.
2277 (lower_omp_target, lower_omp_teams): New functions.
2278 (lower_omp_1): Handle cancellation. Handle GIMPLE_OMP_TASKGROUP,
2279 GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GOMP_barrier, GOMP_cancel
2280 and GOMP_cancellation_point calls.
2281 (lower_omp): Fold stmts inside of target region.
2282 (diagnose_sb_1, diagnose_sb_2): Handle GIMPLE_OMP_TASKGROUP,
2283 GIMPLE_OMP_TARGET and GIMPLE_OMP_TEAMS.
2284 * builtin-types.def (DEF_FUNCTION_TYPE_8): Document.
2285 (BT_FN_VOID_OMPFN_PTR_UINT,
2286 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
2287 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG,
2288 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): Remove.
2289 (BT_FN_VOID_OMPFN_PTR_UINT_UINT_UINT,
2290 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_UINT,
2291 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG_UINT,
2292 BT_FN_BOOL_INT, BT_FN_BOOL_INT_BOOL, BT_FN_VOID_UINT_UINT,
2293 BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
2294 BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
2295 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): New.
2296 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
2297 call_may_clobber_ref_p_1): Handle BUILT_IN_GOMP_BARRIER_CANCEL,
2298 BUILT_IN_GOMP_TASKGROUP_END, BUILT_IN_GOMP_LOOP_END_CANCEL,
2299 BUILT_IN_GOMP_SECTIONS_END_CANCEL. Don't handle
2300 BUILT_IN_GOMP_PARALLEL_END.
2301 * gimple-low.c (lower_stmt): Handle GIMPLE_OMP_TASKGROUP,
2302 GIMPLE_OMP_TARGET and GIMPLE_OMP_TEAMS.
2303 * gimple-pretty-print.c (dump_gimple_omp_for): Handle
2304 GF_OMP_FOR_KIND_DISTRIBUTE.
2305 (dump_gimple_omp_target, dump_gimple_omp_teams): New functions.
2306 (dump_gimple_omp_block): Handle GIMPLE_OMP_TASKGROUP.
2307 (dump_gimple_omp_return): Print lhs if it has any.
2308 (dump_gimple_omp_atomic_load, dump_gimple_omp_atomic_store): Handle
2309 gimple_omp_atomic_seq_cst_p.
2310 (pp_gimple_stmt_1): Handle GIMPLE_OMP_TASKGROUP, GIMPLE_OMP_TARGET
2311 and GIMPLE_OMP_TEAMS.
2312 * langhooks.c (lhd_omp_mappable_type): New function.
2313 * tree-vectorizer.c (struct simd_array_to_simduid): Fix up comment.
2314 * langhooks.h (struct lang_hooks_for_types): Add omp_mappable_type
2315 hook.
2316 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP,
2317 GOVD_ALIGNED and GOVD_MAP_TO_ONLY.
6f1abb55 2318 (enum omp_region_type): Add ORT_TEAMS, ORT_TARGET_DATA and ORT_TARGET.
acf0174b
JJ
2319 (struct gimplify_omp_ctx): Add combined_loop field.
2320 (gimplify_call_expr, gimplify_modify_expr): Don't call fold_stmt
2321 on stmts inside of target region.
2322 (is_gimple_stmt): Return true for OMP_DISTRIBUTE and OMP_TASKGROUP.
2323 (omp_firstprivatize_variable): Handle GOVD_MAP, GOVD_ALIGNED,
2324 ORT_TARGET and ORT_TARGET_DATA.
2325 (omp_add_variable): Avoid checks on readding var for GOVD_ALIGNED.
2326 Handle GOVD_MAP.
2327 (omp_notice_threadprivate_variable): Complain about threadprivate
2328 variables in target region.
2329 (omp_notice_variable): Complain about vars with non-mappable type
2330 in target region. Handle ORT_TEAMS, ORT_TARGET and ORT_TARGET_DATA.
2331 (omp_check_private): Ignore ORT_TARGET* regions.
2332 (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1,
2333 gimplify_adjust_omp_clauses): Handle new OpenMP 4.0 clauses.
2334 (find_combined_omp_for): New function.
2335 (gimplify_omp_for): Handle gimplification of combined loops.
2336 (gimplify_omp_workshare): Gimplify also OMP_TARGET, OMP_TARGET_DATA,
2337 OMP_TEAMS.
2338 (gimplify_omp_target_update): New function.
2339 (gimplify_omp_atomic): Handle OMP_ATOMIC_SEQ_CST.
2340 (gimplify_expr): Handle OMP_DISTRIBUTE, OMP_TARGET, OMP_TARGET_DATA,
2341 OMP_TARGET_UPDATE, OMP_TEAMS, OMP_TASKGROUP.
2342 (gimplify_body): If fndecl has "omp declare target" attribute, add
2343 implicit ORT_TARGET context around it.
2344 * tree.def (OMP_DISTRIBUTE, OMP_TEAMS, OMP_TARGET_DATA, OMP_TARGET,
2345 OMP_TASKGROUP, OMP_TARGET_UPDATE): New tree codes.
2346 * tree-nested.c (convert_nonlocal_reference_stmt,
2347 convert_local_reference_stmt, convert_gimple_call): Handle
2348 GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
2349 * omp-builtins.def (BUILT_IN_GOMP_TASK): Use
2350 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR
2351 instead of BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT.
2352 (BUILT_IN_GOMP_TARGET, BUILT_IN_GOMP_TARGET_DATA,
2353 BUILT_IN_GOMP_TARGET_END_DATA, BUILT_IN_GOMP_TARGET_UPDATE,
2354 BUILT_IN_GOMP_TEAMS, BUILT_IN_BARRIER_CANCEL,
2355 BUILT_IN_GOMP_LOOP_END_CANCEL,
2356 BUILT_IN_GOMP_SECTIONS_END_CANCEL, BUILT_IN_OMP_GET_TEAM_NUM,
2357 BUILT_IN_OMP_GET_NUM_TEAMS, BUILT_IN_GOMP_TASKGROUP_START,
2358 BUILT_IN_GOMP_TASKGROUP_END, BUILT_IN_GOMP_PARALLEL_LOOP_STATIC,
2359 BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC,
2360 BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED,
2361 BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME, BUILT_IN_GOMP_PARALLEL,
2362 BUILT_IN_GOMP_PARALLEL_SECTIONS, BUILT_IN_GOMP_CANCEL,
2363 BUILT_IN_GOMP_CANCELLATION_POINT): New built-ins.
2364 (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
2365 BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
2366 BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
2367 BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
2368 BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END,
2369 BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Remove.
2370 * tree-inline.c (remap_gimple_stmt, estimate_num_insns):
2371 Handle GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
2372 * gimple.c (gimple_build_omp_taskgroup, gimple_build_omp_target,
2373 gimple_build_omp_teams): New functions.
2374 (walk_gimple_op): Handle GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and
2375 GIMPLE_OMP_TASKGROUP. Walk optional lhs on GIMPLE_OMP_RETURN.
2376 (walk_gimple_stmt, gimple_copy): Handle GIMPLE_OMP_TARGET,
2377 GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
2378 * gimple.h (enum gf_mask): GF_OMP_FOR_KIND_DISTRIBUTE,
2379 GF_OMP_FOR_COMBINED, GF_OMP_FOR_COMBINED_INTO,
2380 GF_OMP_TARGET_KIND_MASK, GF_OMP_TARGET_KIND_REGION,
2381 GF_OMP_TARGET_KIND_DATA, GF_OMP_TARGET_KIND_UPDATE,
2382 GF_OMP_ATOMIC_SEQ_CST): New.
2383 (gimple_build_omp_taskgroup, gimple_build_omp_target,
2384 gimple_build_omp_teams): New prototypes.
2385 (gimple_has_substatements): Handle GIMPLE_OMP_TARGET,
2386 GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
2387 (gimple_omp_subcode): Use GIMPLE_OMP_TEAMS instead of
2388 GIMPLE_OMP_SINGLE as end of range.
2389 (gimple_omp_return_set_lhs, gimple_omp_return_lhs,
2390 gimple_omp_return_lhs_ptr, gimple_omp_atomic_seq_cst_p,
2391 gimple_omp_atomic_set_seq_cst, gimple_omp_for_combined_p,
2392 gimple_omp_for_set_combined_p, gimple_omp_for_combined_into_p,
2393 gimple_omp_for_set_combined_into_p, gimple_omp_target_clauses,
2394 gimple_omp_target_clauses_ptr, gimple_omp_target_set_clauses,
2395 gimple_omp_target_kind, gimple_omp_target_set_kind,
2396 gimple_omp_target_child_fn, gimple_omp_target_child_fn_ptr,
2397 gimple_omp_target_set_child_fn, gimple_omp_target_data_arg,
2398 gimple_omp_target_data_arg_ptr, gimple_omp_target_set_data_arg,
2399 gimple_omp_teams_clauses, gimple_omp_teams_clauses_ptr,
2400 gimple_omp_teams_set_clauses): New inlines.
2401 (CASE_GIMPLE_OMP): Add GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS
2402 and GIMPLE_OMP_TASKGROUP.
adcfd489 2403 * tree-core.h (enum omp_clause_code): Add new OpenMP 4.0 clause codes.
acf0174b
JJ
2404 (enum omp_clause_depend_kind, enum omp_clause_map_kind,
2405 enum omp_clause_proc_bind_kind): New.
2406 (union omp_clause_subcode): Add depend_kind, map_kind and
2407 proc_bind_kind fields.
2408 * tree-cfg.c (make_edges): Handle GIMPLE_OMP_TARGET,
2409 GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
2410 * langhooks-def.h (lhd_omp_mappable_type): New prototype.
2411 (LANG_HOOKS_OMP_MAPPABLE_TYPE): Define.
2412 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
2413
67fa7880
TJ
24142013-10-10 Teresa Johnson <tejohnson@google.com>
2415
2416 * predict.c (tree_estimate_probability): Add new parameter
2417 for estimate_bb_frequencies.
2418 (estimate_bb_frequencies): Add new parameter to force estimation.
2419 (rebuild_frequencies): When max frequency in function is small,
2420 recompute counts from frequencies.
2421 * predict.h (estimate_bb_frequencies): New parameter.
2422
b591a8b7
DM
24232013-10-10 David Malcolm <dmalcolm@redhat.com>
2424
2425 * ipa-inline.c (ipa_inline): Fix leak of "order" when
2426 optimizations are disabled.
2427
782f0db2
DM
24282013-10-10 David Malcolm <dmalcolm@redhat.com>
2429
2430 * coverage.c (coverage_finish): Fix leak of da_file_name.
2431
13ef00fa
JH
24322013-10-10 Jan Hubicka <jh@suse.cz>
2433
2434 * config/i386/x86-tune.def: Enable X86_TUNE_SSE_TYPELESS_STORES
2435 for generic, enable X86_TUNE_SSE_LOAD0_BY_PXOR for Bulldozer,
2436 Bobcat and generic.
2437
a1d50386
JJ
24382013-10-10 Jakub Jelinek <jakub@redhat.com>
2439
2440 PR middle-end/58670
2441 * stmt.c (expand_asm_operands): Add FALLTHRU_BB argument,
2442 if any labels are in FALLTHRU_BB, use a special label emitted
2443 immediately after the asm goto insn rather than label_rtx
2444 of the LABEL_DECL.
2445 (expand_asm_stmt): Adjust caller.
2446 * cfgrtl.c (commit_one_edge_insertion): Force splitting of
2447 edge if the last insn in predecessor is a jump with single successor,
2448 but it isn't simplejump_p.
2449
e2c2fde2
RB
24502013-10-10 Richard Biener <rguenther@suse.de>
2451
2452 PR tree-optimization/58656
6f1abb55 2453 * tree-ssa-pre.c (phi_translate): Do not cache failed translations.
e2c2fde2 2454
de6a5608
AM
24552013-10-10 Andrew MacLeod <amacleod@redhat.com>
2456
adcfd489
UB
2457 * gimplify.c: Include expr.h and tm_p.h for targets with special
2458 va-arg padding requirements.
de6a5608 2459
b184c8f1
AM
24602013-10-10 Andrew MacLeod <amacleod@redhat.com>
2461
2462 * tree-flow.h: Move some prototypes to gimple.h.
2463 (gimple_fold_indirect_ref): Move prototype to gimple-fold.h.
2464 * gimple.h: Relocate some prototypes from tree-flow.h
2465 * builtins.c (std_gimplify_va_arg_expr, build_va_arg_indirect_ref):
2466 Move to gimplify.c.
2467 * gimplify.c (gimple_fold_indirect_ref): Move to gimple-fold.c.
2468 (build_va_arg_indirect_ref): Relocate and make static.
2469 (std_gimplify_va_arg_expr): Relocate here.
2470 * gimple-fold.c (gimple_fold_indirect_ref): Relocate here.
2471 * gimple-fold.h (gimple_fold_indirect_ref): Add prototype.
2472
13b72c22
AK
24732013-10-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2474
2475 * doc/md.texi: Document the mnemonic attribute.
2476
5db40447
AK
24772013-10-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2478
2479 PR target/57377
2480 * gensupport.c (gen_mnemonic_attr): Handle (set (attr x) y) and
2481 (set_attr_alternative x ...) when searching for user defined
2482 mnemonic attribute.
2483
ed018d4b
AM
24842013-10-10 Andrew MacLeod <amacleod@redhat.com>
2485
2486 * config/aplha/alpha.c: Add gimple-ssa.h to include list.
2487
4d5b5e9f
ER
24882013-10-09 Easwaran Raman <eraman@google.com>
2489
2490 * params.def (PARAM_MIN_SIZE_FOR_STACK_SHARING): New param...
2491 * cfgexpand.c (defer_stack_allocation): ...use here
2492 * doc/invoke.texi: Add documentation for min-size-for-stack-sharing.
2493
c9ef86a1
ZC
24942013-10-09 Zhenqiang Chen <zhenqiang.chen@arm.com>
2495
2496 * tree-ssa-phiopts.c (rhs_is_fed_for_value_replacement): New function.
2497 (operand_equal_for_value_replacement): New function, extracted from
2498 value_replacement and enhanced to catch more cases.
2499 (value_replacement): Use operand_equal_for_value_replacement.
2500
2431114f
AM
25012013-10-09 Andrew MacLeod <amacleod@redhat.com>
2502
adcfd489 2503 * loop-doloop.c (doloop_modify, doloop_optimize): Use
2431114f
AM
2504 get_max_loop_iterations.
2505
1dd2a9a0
KT
25062013-10-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2507
2508 * config/arm/aarch-common.c (arm_early_load_addr_dep):
2509 Place comment above function.
2510
c1bf2a39
AM
25112013-10-09 Andrew MacLeod <amacleod@redhat.com>
2512
2513 * tree-flow.h: Remove all remaining prototypes, enums and structs that
2514 are not related to tree-cfg.c.
2515 * tree-ssa-address.h: New file. Relocate prototypes.
2516 * tree-ssa-address.c: (struct mem_address): Relocate from tree-flow.h.
2517 (addr_for_mem_ref): New. Combine call to get_address_description and
2518 return addr_for_mem_ref.
2519 * expr.c (expand_expr_real_1): Use new addr_for_mem_ref routine.
2520 * tree-ssa-live.h: Adjust prototypes.
2521 * passes.c: Include tree-ssa-live.h.
2522 * gimple-pretty-print.h (gimple_dump_bb): Add prototype.
2523 * graphite.c (graphite_transform_loops): Make static.
2524 (graphite_transforms, gate_graphite_transforms, pass_data_graphite,
adcfd489 2525 make_pass_graphite, pass_data_graphite_transforms,
c1bf2a39
AM
2526 make_pass_graphite_transforms): Relocate here from tree-ssa-loop.c.
2527 * ipa-pure-const.c (warn_function_noreturn): Make static.
2528 (execute_warn_function_noreturn, gate_warn_function_noreturn,
2529 class pass_warn_function_noreturn, make_pass_warn_function_noreturn):
2530 Relocate from tree-cfg.c
2531 * tree-cfg.c (tree_node_can_be_shared, gimple_empty_block_p): Make
2532 static.
2533 (execute_warn_function_noreturn, gate_warn_function_noreturn,
2534 class pass_warn_function_noreturn, make_pass_warn_function_noreturn):
2535 Move to ipa-pure-const.c.
adcfd489
UB
2536 (execute_fixup_cfg, class pass_fixup_cfg, make_pass_fixup_cfg):
2537 Relocate from tree-optimize.c.
c1bf2a39
AM
2538 * tree-optimize.c (execute_fixup_cfg, class pass_fixup_cfg,
2539 make_pass_fixup_cfg): Move to tree-cfg.c.
2540 * tree-chrec.h: (enum ev_direction): Relocate here from tree-flow.h.
2541 Relocate some prototypes.
2542 * tree-data-ref.h (tree_check_data_deps) Add prototype.
2543 * tree-dump.c (dump_function_to_file): Remove prototype.
2544 Add tree-flow.h to the include file.
2545 * tree-dump.h: Remove prototype.
2546 * tree-parloops.h: New File. Add prototypes.
2547 * tree-parloops.c (gate_tree_parallelize_loops, tree_parallelize_loops,
2548 pass_data_parallelize_loops, make_pass_parallelize_loops): Relocate
2549 from tree-ssa-loop.c.
2550 * tree-predcom.c (run_tree_predictive_commoning,
2551 gate_tree_predictive_commoning, pass_data_predcom, make_pass_predcom):
2552 Relocate here from tree-ssa-loop.c.
adcfd489 2553 * tree-ssa-dom.c (tree_ssa_dominator_optimize) Don't call
c1bf2a39
AM
2554 ssa_name_values.release ().
2555 * tree-ssa-threadedge.h: New File. Relocate prototypes here.
2556 (ssa_name_values): Relocate from tree-flow.h.
2557 * tree-ssa.h: Include tree-ssa-threadedge.h and tree-ssa-address.h.
2558 * tree-ssa-loop.c (run_tree_predictive_commoning,
2559 gate_tree_predictive_commoning, pass_data_predcom, make_pass_predcom,
2560 graphite_transforms, gate_graphite_transforms, pass_data_graphite,
2561 make_pass_graphite, pass_data_graphite_transforms,
2562 make_pass_graphite_transforms, gate_tree_parallelize_loops,
2563 tree_parallelize_loops, pass_data_parallelize_loops,
2564 make_pass_parallelize_loops): Move to other files.
2565 * tree-vectorizer.h (lpeel_tree_duplicate_loop_to_edge_cfg): Prototype
2566 moved here.
2567 * tree.h: Remove prototypes from tree-address.c.
2568
cc524fc7
AM
25692013-10-09 Andrew MacLeod <amacleod@redhat.com>
2570
2571 * tree-flow.h (tm_restart_node, gimple_df): Move to gimple-ssa.h.
2572 (struct int_tree_map): Move to tree-hasher.h
2573 (SCALE, LABEL, PERCENT): Move to gimple.h
2574 * tree-flow-inline.h: Delete. Move functions to other files.
2575 (unmodifiable_var_p, ref_contains_array_ref): Unused, so delete.
2576 * gimple-ssa.h (tm_restart_node, gimple_df): Relocate from tree-flow.h.
2577 (gimple_in_ssa_p, gimple_vop): Relocate from tree-flow-inline.h
2578 * gimple.h (imple_stmt_max_uid, set_gimple_stmt_max_uid,
2579 inc_gimple_stmt_max_uid, get_lineno): Relocate from tree-flow-inline.h.
2580 (SCALE, LABEL, PERCENT): Relocate from tree-flow.h
2581 * tree-hasher.h: Don't include tree-flow.h.
2582 (struct int_tree_map): Relocate from tree-flow.h.
2583 * tree-sra.c (contains_view_convert_expr_p): Relocate from
2584 tree-flow-inline.h and make static.
adcfd489
UB
2585 * tree-ssa-alias.h (ranges_overlap_p): Relocate from
2586 tree-flow-inline.h.
cc524fc7
AM
2587 * tree-ssa-operands.c (gimple_ssa_operands): Relocate from
2588 tree-flow-inline.h and make static.
2589 * tree.h (is_global_var, may_be_aliased): Relocate from
2590 tree-flow-inline.h.
2591 * Makefile.in (GTFILES): Remove tree-flow.h and add gimple-ssa.h.
2592 * value-prof.c: No longer include tree-flow-inline.h.
2593 * tree-switch-conversion.c: No longer include tree-flow-inline.h.
2594
71343877
AM
25952013-10-09 Andrew MacLeod <amacleod@redhat.com>
2596
2597 * tree-flow.h: Move some protoypes. Include new tree-ssa-loop.h.
2598 (struct affine_iv, struct tree_niter_desc): Move to tree-ssa-loop.h.
2599 (enum move_pos): Move to tree-ssa-loop-im.h
2600 * cfgloop.h: Move some prototypes.
2601 (gcov_type_to_double_int): relocate from tree-ssa-loop.niter.c.
2602 * tree-flow-inline.h (loop_containing_stmt): Move to tree-ssa-loop.h.
2603 * tree-ssa-loop.h: New File. Include other tree-ssa-loop-*.h files.
2604 (struct affine_iv, struct tree_niter_desc): Relocate from tree-flow.h.
2605 (loop_containing_stmt): Relocate from tree-flow-inline.h.
2606 * tree-ssa-loop-ch.c: (do_while_loop_p): Make static.
2607 * tree-ssa-loop-im.c (for_each_index): Move to tree-ssa-loop.c.
2608 (enum move_pos): Relocate here.
2609 (lsm_tmp_name_add, gen_lsm_tmp_name, get_lsm_tmp_name): Move to
2610 tree-ssa-loop.c.
2611 (execute_sm_if_changed_flag_set): Change get_lsm_tmp_name call.
adcfd489
UB
2612 (tree_ssa_loop_im, gate_tree_ssa_loop_im, pass_data_lim,
2613 make_pass_lim): Relocate here from tree-ssa-loop.c.
2614 * tree-ssa-loop-ivcanon.c (tree_num_loop_insns): Move to
71343877
AM
2615 tree-ssa-loop.c.
2616 (loop_edge_to_cancel, unloop_loops): Make static.
2617 (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_data_iv_canon,
2618 make_pass_iv_canon): Relocate from tree-ssa-loop.c.
2619 (tree_complete_unroll, gate_tree_complete_unroll,
2620 pass_data_complete_unroll, make_pass_complete_unroll): Relocate here.
2621 (tree_complete_unroll_inner, gate_tree_complete_unroll_inner,
2622 pass_data_complete_unrolli, make_pass_complete_unrolli): Relocate here.
2623 * tree-ssa-loop-ivopts.c: Remove local prototypes.
2624 (stmt_invariant_in_loop_p): Remove unused function.
2625 * tree-ssa-loop-ivopts.h: New file. Add prototypes.
2626 * tree-ssa-loop-manip.h: New file. Add prototypes.
2627 * tree-ssa-loop-niter.c (record_niter_bound): Move to cfgloop.c.
2628 (gcov_type_to_double_int): Move to cfgloop.h.
2629 (double_int_cmp, bound_index,
2630 estimate_numbers_of_iterations_loop): Make static.
2631 (estimated_loop_iterations): Factor out get_estimated_loop_iterations.
2632 (max_loop_iterations): Factor out get_max_loop_iterations.
2633 (estimated_loop_iterations_int, max_stmt_executions_int): Move to
2634 cfgloop.c.
2635 * tree-ssa-loop-niter.h: New file. Add prototypes.
2636 * tree-ssa-loop-prefetch.c (tree_ssa_loop_prefetch,
2637 gate_tree_ssa_loop_prefetch, pass_data_loop_prefetch,
2638 make_pass_loop_prefetch): Relocate from tree-ssa-loop.c.
2639 * tree-ssa-loop-unswitch.c (tree_ssa_loop_unswitch,
2640 gate_tree_ssa_loop_unswitch, pass_data_tree_unswitch,
2641 make_pass_tree_unswitch): Relocate from tree-ssa-loop.c.
2642 * tree-ssa-loop.c (tree_ssa_loop_im, gate_tree_ssa_loop_im,
2643 pass_data_lim, make_pass_lim): Move to tree-ssa-loop-im.c.
2644 (tree_ssa_loop_unswitch, gate_tree_ssa_loop_unswitch,
2645 pass_data_tree_unswitch, make_pass_tree_unswitch): Move.
2646 (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_data_iv_canon,
2647 make_pass_iv_canon, tree_complete_unroll, gate_tree_complete_unroll,
2648 pass_data_complete_unroll, make_pass_complete_unroll,
2649 tree_complete_unroll_inner, gate_tree_complete_unroll_inner,
2650 pass_data_complete_unrolli, make_pass_complete_unrolli): Move to
2651 tree-ssa-loop-ivcanon.c.
2652 (tree_ssa_loop_prefetch, gate_tree_ssa_loop_prefetch,
2653 pass_data_loop_prefetch, make_pass_loop_prefetch): Move to
2654 tree-ssa-loop-prefetch.c.
2655 (for_each_index, lsm_tmp_name_add, gen_lsm_tmp_name): Relocate from
2656 tree-ssa-loop-im.c.
2657 (get_lsm_tmp_name): Relocate and add suffix parameter.
2658 (tree_num_loop_insns): Relocate from tree-ssa-ivcanon.c.
2659 * tree-scalar-evolution.h (simple_iv): Don't use affive_iv typedef.
2660 * cfgloop.c (record_niter_bound, estimated_loop_iterations_int,
2661 max_stmt_executions_int): Move from tree-ssa-loop-niter.c.
adcfd489 2662 (get_estimated_loop_iterations): Factor out accessor from
71343877 2663 estimated_loop_iterations in tree-ssa-loop-niter.c.
adcfd489
UB
2664 (get_max_loop_iterations): Factor out accessor from
2665 _max_loop_iterations in tree-ssa-niter.c.
71343877
AM
2666 * loop-unroll.c (decide_unroll_constant_iterations,
2667 decide_unroll_runtime_iterations, decide_peel_simple,
2668 decide_unroll_stupid): Use new get_* accessors.
2669
826cacfe
MG
26702013-10-09 Marc Glisse <marc.glisse@inria.fr>
2671
2672 PR tree-optimization/20318
2673 * doc/extend.texi (returns_nonnull): New function attribute.
2674 * fold-const.c (tree_expr_nonzero_warnv_p): Look for returns_nonnull
2675 attribute.
2676 * tree-vrp.c (gimple_stmt_nonzero_warnv_p): Likewise.
2677 (stmt_interesting_for_vrp): Accept all GIMPLE_CALL.
2678
378f8976
EB
26792013-10-09 Eric Botcazou <ebotcazou@adacore.com>
2680
2681 PR middle-end/58570
2682 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): Return
2683 false if both components are bitfields.
2684
0fe04f5c
AV
26852013-10-09 Alex Velenko <Alex.Velenko@arm.com>
2686
2687 * config/aarch64/arm_neon.h (vclz_s8, vclz_s16, vclz_s32)
2688 (vclzq_s8, vclzq_s16, vclzq_s32, vclz_u8, vclz_u16, vclz_u32)
2689 (vclzq_u8, vclzq_u16, vclzq_u32): Replace ASM with C.
2690 * config/aarch64/aarch64.h
2691 (CLZ_DEFINED_VALUE_AT_ZERO): Macro fixed for clz.
2692 * config/aarch64/aarch64-simd-builtins.def
2693 (VAR1 (UNOP, clz, 0, v4si)): Replaced with iterator.
2694
bed9bae4
AV
26952013-10-09 Alex Velenko <Alex.Velenko@arm.com>
2696
2697 * config/aarch64/arm_neon.h (vadd_f64, vsub_f64): Implementation added.
2698
7f3d8b19
AV
26992013-10-09 Alex Velenko <Alex.Velenko@arm.com>
2700
2701 * config/aarch64/arm_neon.h (vdiv_f64): Added.
2702
7df625a6
AV
27032013-10-09 Alex Velenko <Alex.Velenko@arm.com>
2704
2705 * config/aarch64/arm_neon.h (vneg_f32): Asm replaced with C.
2706 (vneg_f64): New intrinsic.
2707 (vneg_s8): Asm replaced with C.
2708 (vneg_s16): Likewise.
2709 (vneg_s32): Likewise.
2710 (vneg_s64): New intrinsic.
2711 (vnegq_f32): Asm replaced with C.
2712 (vnegq_f64): Likewise.
2713 (vnegq_s8): Likewise.
2714 (vnegq_s16): Likewise.
2715 (vnegq_s32): Likewise.
2716 (vnegq_s64): Likewise.
2717
2b86fca7
RL
27182013-10-09 Renlin Li <Renlin.Li@arm.com>
2719
2720 * config/arm/arm.c (arm_output_mi_thunk): Use plus_constant.
2721
e179df83
AK
27222013-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2723
2724 * config/s390/s390.c (s390_register_info_stdarg_fpr): Remove
2725 packed stack special handling.
2726 (s390_frame_info, s390_emit_prologue, s390_emit_epilogue): Switch
2727 back to fixed stack slots for FPRs saved due to stdarg.
2728
74129172
AK
27292013-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2730
2731 * config/s390/s390.c (s390_frame_info): Restructure function.
2732
6455a49e
AK
27332013-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2734
2735 * config/s390/s390.c (struct s390_frame_layout): New field
2736 gpr_save_slots.
2737 (cfun_save_arg_fprs_p, cfun_gpr_save_slot): New macros.
2738 (s390_reg_clobbered_rtx, s390_regs_ever_clobbered): Change type of
2739 regs_ever_clobbered to char*.
adcfd489
UB
2740 (s390_regs_ever_clobbered): Check crtl->saves_all_registers instead
2741 of cfun->has_nonlocal_label. Ignore frame related restore INSNs.
6455a49e
AK
2742 (s390_register_info): Enable FPR save slots. Move/Copy some
2743 functionality into ...
2744 (s390_register_info_gprtofpr, s390_register_info_stdarg_fpr)
2745 (s390_register_info_stdarg_gpr, s390_optimize_register_info): New
2746 function.
2747 (s390_frame_info): Do gpr slot allocation here now. stdarg does
2748 not imply a stack frame.
2749 (s390_init_frame_layout): Remove variable clobbered_regs.
2750 (s390_update_register_info): Remove function.
2751 (s390_hard_regno_rename_ok): Call-saved regs without a save slot
2752 cannot be used for register renaming.
2753 (s390_hard_regno_scratch_ok): New function.
2754 (TARGET_HARD_REGNO_SCRATCH_OK): Define target hook.
2755 (s390_initial_elimination_offset): Change offset calculation of
2756 the return address pointer.
adcfd489 2757 (save_gprs): Deal with only r6 being saved from the call-saved regs.
6455a49e 2758 (restore_gprs): Set frame related flag.
adcfd489 2759 (s390_save_gprs_to_fprs, s390_restore_gprs_from_fprs): New functions.
6455a49e
AK
2760 (s390_emit_prologue): Call s390_register_info instead of
2761 s390_update_frame_layout. Call s390_save_gprs_to_fprs.
2762 (s390_emit_epilogue): Call s390_restore_gprs_from_fprs.
2763 (s390_optimize_prologue): Call s390_optimize_register_info.
2764 Try to remove also FPR slot save/restore INSNs. Remove frame
2765 related flags from restore INSNs.
2766
59d96342
DD
27672013-10-08 DJ Delorie <dj@redhat.com>
2768
0dc7adad
DD
2769 * config/rl78/rl78-expand.md (movqi): use operands[] not operandN.
2770 (movhi): Likewise.
2771
59d96342
DD
2772 * config/rl78/rl78.c (rl78_print_operand_1): Change %c to %C to
2773 avoid conflict with the MI use of %c.
2774 * config/rl78/rl78-real.md: change %c to %C throughout.
2775 * config/rl78/rl78-virt.md: Likewise.
2776
a81169d8
JH
27772013-10-08 Jan Hubicka <jh@suse.cz>
2778
2779 * config/i386/i386.c (ix86_option_override_internal): Switch
2780 to SSE math for -ffast-math when target ISA supports SSE2.
2781
481d1b81
AM
27822013-10-08 Andrew MacLeod <amacleod@redhat.com>
2783
2784 * tree-flow.h: Remove some prototypes.
2785 * tree.h: Remove some protypes, add a couple.
2786 * tree.c (using_eh_for_cleanups_flag, using_eh_for_cleanups,
2787 using_eh_for_cleanups_p): Add interface routines for front ends.
2788 * tree-eh.h: New file. Add protoptyes.
2789 * tree-eh.c (using_eh_for_cleanups_p, using_eh_for_cleanups): Delete.
2790 (add_stmt_to_eh_lp_fn): Make static.
2791 (lower_try_finally): Use new using_eh_for_cleanups_p.
2792 * emit-rtl.c: Include tree-eh.h.
2793 * gimple.h: Include tree-eh.h.
2794
0e6a0e48
MG
27952013-10-08 Marc Glisse <marc.glisse@inria.fr>
2796
2797 PR tree-optimization/58480
2798 * tree-vrp.c (infer_nonnull_range): New function.
2799 (infer_value_range): Call infer_nonnull_range.
2800
ef6179d1
DC
28012013-10-08 Dehao Chen <dehao@google.com>
2802
2803 PR tree-optimization/58619
2804 * tree-inline.c (copy_phis_for_bb): Combine location data
2805 only if non-null.
2806
07d964d5
ZC
28072013-10-08 Zhenqiang Chen <zhenqiang.chen@linaro.org>
2808
2809 PR target/58423
2810 * config/arm/arm.c (arm_emit_ldrd_pop): Attach
2811 RTX_FRAME_RELATED_P on INSN.
2812
19e9b2a3
BS
28132013-10-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2814
2815 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const_le): New.
2816 (altivec_expand_vec_perm_const): Call it.
2817
0cf68694
BS
28182013-10-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2819
2820 * config/rs6000/vector.md (mov<mode>): Emit permuted move
2821 sequences for LE VSX loads and stores at expand time.
2822 * config/rs6000/rs6000-protos.h (rs6000_emit_le_vsx_move): New
2823 prototype.
2824 * config/rs6000/rs6000.c (rs6000_const_vec): New.
2825 (rs6000_gen_le_vsx_permute): New.
2826 (rs6000_gen_le_vsx_load): New.
2827 (rs6000_gen_le_vsx_store): New.
2828 (rs6000_gen_le_vsx_move): New.
2829 * config/rs6000/vsx.md (*vsx_le_perm_load_v2di): New.
2830 (*vsx_le_perm_load_v4si): New.
2831 (*vsx_le_perm_load_v8hi): New.
2832 (*vsx_le_perm_load_v16qi): New.
2833 (*vsx_le_perm_store_v2di): New.
2834 (*vsx_le_perm_store_v4si): New.
2835 (*vsx_le_perm_store_v8hi): New.
2836 (*vsx_le_perm_store_v16qi): New.
2837 (*vsx_xxpermdi2_le_<mode>): New.
2838 (*vsx_xxpermdi4_le_<mode>): New.
2839 (*vsx_xxpermdi8_le_V8HI): New.
2840 (*vsx_xxpermdi16_le_V16QI): New.
2841 (*vsx_lxvd2x2_le_<mode>): New.
2842 (*vsx_lxvd2x4_le_<mode>): New.
2843 (*vsx_lxvd2x8_le_V8HI): New.
2844 (*vsx_lxvd2x16_le_V16QI): New.
2845 (*vsx_stxvd2x2_le_<mode>): New.
2846 (*vsx_stxvd2x4_le_<mode>): New.
2847 (*vsx_stxvd2x8_le_V8HI): New.
2848 (*vsx_stxvd2x16_le_V16QI): New.
2849
9520e1eb
RL
28502013-10-07 Renlin Li <Renlin.Li@arm.com>
2851
2852 * config/arm/arm-cores.def (cortex-a53): Use cortex tuning.
2853
36c0bd4f
AK
28542013-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2855
2856 * config/s390/s390.c (s390_register_info): Make the call-saved FPR
2857 loop to work also for 31bit ABI.
2858 Save the stack pointer for frame_size > 0.
2859
ee163e72
AK
28602013-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2861
2862 * config/s390/s390.md ("tbegin", "tbegin_nofloat", "tbegin_retry")
2863 ("tbegin_retry_nofloat", "tend", "tabort", "tx_assist"): Remove
2864 constraint letters from expanders.
2865 ("tbegin_retry", "tbegin_retry_nofloat"): Change predicate of the
2866 retry count to general_operand.
2867 ("tabort"): Give operand 0 a mode.
2868 ("tabort_1"): Add mode and constraint letter for operand 0.
2869 * doc/extend.texi: Fix protoype of __builtin_non_tx_store.
2870
45d99234
JL
28712013-10-04 Jeff Law <law@redhat.com>
2872
2873 * tree-ssa-threadedge.c: Fix some trailing whitespace problems.
2874
adcfd489
UB
2875 * tree-ssa-threadedge.c (thread_through_normal_block): Broken
2876 out of ...
45d99234
JL
2877 (thread_across_edge): Here. Call it.
2878
7c327f7b
CC
28792013-10-04 Cary Coutant <ccoutant@google.com>
2880
2881 * dwarf2out.c (dw_sra_loc_expr): Release addr_table entries when
adcfd489 2882 discarding a location list expression (or a piece of one).
7c327f7b 2883
6867e128
JH
28842013-10-03 Jan Hubicka <jh@suse.cz>
2885
65efa7e7
UB
2886 * config/i386/i386.c (ix86_issue_rate): Pentium4, Nocona has issue
2887 rate of 2. Core2, Corei7 and Haswell has issue rate of 4.
3700bce3 2888 (ix86_adjust_cost): Remove Atom case; fix core2/corei7/Haswell case.
6867e128 2889
c7f36d55
JH
28902013-10-03 Jan Hubicka <jh@suse.cz>
2891
65efa7e7 2892 * config/i386/i386.c (ix86_option_override_internal): Do not enable
c7f36d55
JH
2893 accumulate-outgoing-args when producing unwind info.
2894
4f0bee4c
WM
28952013-10-03 Wei Mi <wmi@google.com>
2896
2897 * lra-constraints.c (insert_move_for_subreg): New function
2898 extracted from simplify_operand_subreg.
2899 (simplify_operand_subreg): Add reload for paradoxical subreg.
2900
111c3f39
RX
29012013-10-03 Rong Xu <xur@google.com>
2902
65efa7e7
UB
2903 * ipa-inline-analysis.c (find_foldable_builtin_expect): Find
2904 the candidate of builtin_expect such that we should fix the
2905 size/time estimation.
2906 (estimate_function_body_sizes): Do the acutally size/time fix-up
2907 for builtin_expect.
111c3f39 2908
942df739
RX
29092013-10-03 Rong Xu <xur@google.com>
2910
65efa7e7
UB
2911 * predict.c (tree_predict_by_opcode): Get the probability
2912 for builtin_expect from param builtin_expect_probability.
2913 * params.def (BUILTIN_EXPECT_PROBABILITY): New parameter.
2914 * predict.def (PRED_BUILTIN_EXPECT_RELAXED): Fix comments.
2915 * doc/invoke.texi: Add documentation for builtin-expect-probability.
942df739 2916
2284b034
MG
29172013-10-03 Marc Glisse <marc.glisse@inria.fr>
2918
2919 PR c++/19476
2920 * common.opt (fcheck-new): Moved from c.opt. Make it 'Common'.
2921 * calls.c (alloca_call_p): Use get_callee_fndecl.
2922 * fold-const.c (tree_expr_nonzero_warnv_p): Handle operator new.
2923 * tree-vrp.c (gimple_stmt_nonzero_warnv_p, stmt_interesting_for_vrp):
2924 Likewise.
2925 (vrp_visit_stmt): Remove duplicated code.
2926
0609bdf2
MM
29272013-10-03 Michael Meissner <meissner@linux.vnet.ibm.com>
2928
2929 * config/rs6000/rs6000-builtin.def (XSRDPIM): Use floatdf2,
2930 ceildf2, btruncdf2, instead of vsx_* name.
2931
2932 * config/rs6000/vsx.md (vsx_add<mode>3): Change arithmetic
2933 iterators to only do V2DF and V4SF here. Move the DF code to
2934 rs6000.md where it is combined with SF mode. Replace <VSv> with
2935 just 'v' since only vector operations are handled with these insns
2936 after moving the DF support to rs6000.md.
2937 (vsx_sub<mode>3): Likewise.
2938 (vsx_mul<mode>3): Likewise.
2939 (vsx_div<mode>3): Likewise.
2940 (vsx_fre<mode>2): Likewise.
2941 (vsx_neg<mode>2): Likewise.
2942 (vsx_abs<mode>2): Likewise.
2943 (vsx_nabs<mode>2): Likewise.
2944 (vsx_smax<mode>3): Likewise.
2945 (vsx_smin<mode>3): Likewise.
2946 (vsx_sqrt<mode>2): Likewise.
2947 (vsx_rsqrte<mode>2): Likewise.
2948 (vsx_fms<mode>4): Likewise.
2949 (vsx_nfma<mode>4): Likewise.
2950 (vsx_copysign<mode>3): Likewise.
2951 (vsx_btrunc<mode>2): Likewise.
2952 (vsx_floor<mode>2): Likewise.
2953 (vsx_ceil<mode>2): Likewise.
2954 (vsx_smaxsf3): Delete scalar ops that were moved to rs6000.md.
2955 (vsx_sminsf3): Likewise.
2956 (vsx_fmadf4): Likewise.
2957 (vsx_fmsdf4): Likewise.
2958 (vsx_nfmadf4): Likewise.
2959 (vsx_nfmsdf4): Likewise.
2960 (vsx_cmpdf_internal1): Likewise.
2961
2962 * config/rs6000/rs6000.h (TARGET_SF_SPE): Define macros to make it
2963 simpler to select whether a target has SPE or traditional floating
2964 point support in iterators.
2965 (TARGET_DF_SPE): Likewise.
2966 (TARGET_SF_FPR): Likewise.
2967 (TARGET_DF_FPR): Likewise.
2968 (TARGET_SF_INSN): Macros to say whether floating point support
2969 exists for a given operation for expanders.
2970 (TARGET_DF_INSN): Likewise.
2971
2972 * config/rs6000/rs6000.c (Ftrad): New mode attributes to allow
2973 combining of SF/DF mode operations, using both traditional and VSX
2974 registers.
2975 (Fvsx): Likewise.
2976 (Ff): Likewise.
2977 (Fv): Likewise.
2978 (Fs): Likewise.
2979 (Ffre): Likewise.
2980 (FFRE): Likewise.
2981 (abs<mode>2): Combine SF/DF modes using traditional floating point
2982 instructions. Add support for using the upper DF registers with
2983 VSX support, and SF registers with power8-vector support. Update
2984 expanders for operations supported by both the SPE and traditional
2985 floating point units.
2986 (abs<mode>2_fpr): Likewise.
2987 (nabs<mode>2): Likewise.
2988 (nabs<mode>2_fpr): Likewise.
2989 (neg<mode>2): Likewise.
2990 (neg<mode>2_fpr): Likewise.
2991 (add<mode>3): Likewise.
2992 (add<mode>3_fpr): Likewise.
2993 (sub<mode>3): Likewise.
2994 (sub<mode>3_fpr): Likewise.
2995 (mul<mode>3): Likewise.
2996 (mul<mode>3_fpr): Likewise.
2997 (div<mode>3): Likewise.
2998 (div<mode>3_fpr): Likewise.
2999 (sqrt<mode>3): Likewise.
3000 (sqrt<mode>3_fpr): Likewise.
3001 (fre<Fs>): Likewise.
3002 (rsqrt<mode>2): Likewise.
3003 (cmp<mode>_fpr): Likewise.
3004 (smax<mode>3): Likewise.
3005 (smin<mode>3): Likewise.
3006 (smax<mode>3_vsx): Likewise.
3007 (smin<mode>3_vsx): Likewise.
3008 (negsf2): Delete SF operations that are merged with DF.
3009 (abssf2): Likewise.
3010 (addsf3): Likewise.
3011 (subsf3): Likewise.
3012 (mulsf3): Likewise.
3013 (divsf3): Likewise.
3014 (fres): Likewise.
3015 (fmasf4_fpr): Likewise.
3016 (fmssf4_fpr): Likewise.
3017 (nfmasf4_fpr): Likewise.
3018 (nfmssf4_fpr): Likewise.
3019 (sqrtsf2): Likewise.
3020 (rsqrtsf_internal1): Likewise.
3021 (smaxsf3): Likewise.
3022 (sminsf3): Likewise.
3023 (cmpsf_internal1): Likewise.
3024 (copysign<mode>3_fcpsgn): Add VSX/power8-vector support.
3025 (negdf2): Delete DF operations that are merged with SF.
3026 (absdf2): Likewise.
3027 (nabsdf2): Likewise.
3028 (adddf3): Likewise.
3029 (subdf3): Likewise.
3030 (muldf3): Likewise.
3031 (divdf3): Likewise.
3032 (fred): Likewise.
3033 (rsqrtdf_internal1): Likewise.
3034 (fmadf4_fpr): Likewise.
3035 (fmsdf4_fpr): Likewise.
3036 (nfmadf4_fpr): Likewise.
3037 (nfmsdf4_fpr): Likewise.
3038 (sqrtdf2): Likewise.
3039 (smaxdf3): Likewise.
3040 (smindf3): Likewise.
3041 (cmpdf_internal1): Likewise.
3042 (lrint<mode>di2): Use TARGET_<MODE>_FPR macro.
3043 (btrunc<mode>2): Delete separate expander, and combine with the
3044 insn and add VSX instruction support. Use TARGET_<MODE>_FPR.
3045 (btrunc<mode>2_fpr): Likewise.
3046 (ceil<mode>2): Likewise.
3047 (ceil<mode>2_fpr): Likewise.
3048 (floor<mode>2): Likewise.
3049 (floor<mode>2_fpr): Likewise.
3050 (fma<mode>4_fpr): Combine SF and DF fused multiply/add support.
3051 Add support for using the upper registers with VSX and
3052 power8-vector. Move insns to be closer to the define_expands. On
3053 VSX systems, prefer the traditional form of FMA over the VSX
3054 version, since the traditional form allows the target not to
3055 overlap with the inputs.
3056 (fms<mode>4_fpr): Likewise.
3057 (nfma<mode>4_fpr): Likewise.
3058 (nfms<mode>4_fpr): Likewise.
3059
5bea0c6c 30602013-10-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
65efa7e7 3061 Richard Earnshaw <richard.earnshaw@arm.com>
5bea0c6c
KT
3062
3063 * config/arm/aarch-common-protos.h (struct alu_cost_table): New.
3064 (struct mult_cost_table): Likewise.
3065 (struct mem_cost_table): Likewise.
3066 (struct fp_cost_table): Likewise.
3067 (struct vector_cost_table): Likewise.
3068 (cpu_cost_table): Likewise.
3069 * config/arm/arm.opt (mold-rts-costs): New option.
3070 (mnew-generic-costs): Likewise.
3071 * config/arm/arm.c (generic_extra_costs): New table.
3072 (cortexa15_extra_costs): Likewise.
3073 (arm_slowmul_tune): Use NULL as new costs.
3074 (arm_fastmul_tune): Likewise.
3075 (arm_strongarm_tune): Likewise.
3076 (arm_xscale_tune): Likewise.
3077 (arm_9e_tune): Likewise.
3078 (arm_v6t2_tune): Likewise.
3079 (arm_cortex_a5_tune): Likewise.
3080 (arm_cortex_a9_tune): Likewise.
3081 (arm_v6m_tune): Likewise.
3082 (arm_fa726te_tune): Likewise.
3083 (arm_cortex_a15_tune): Use cortex15_extra_costs.
3084 (arm_cortex_tune): Use generict_extra_costs.
3085 (shifter_op_p): New function.
3086 (arm_unspec_cost): Likewise.
3087 (LIBCALL_COST): Define.
3088 (arm_new_rtx_costs): New function.
3089 (arm_rtx_costs): Use arm_new_rtx_costs when core-specific
3090 table is available. Use old costs otherwise unless mnew-generic-costs
3091 is specified.
3092 * config/arm/arm-protos.h (tune_params): Add insn_extra_cost field.
3093 (cpu_cost_table): Declare.
3094
24c56925
MS
30952013-10-03 Marcus Shawcroft <marcus.shawcroft@arm.com>
3096
3097 PR target/58460
3098 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>)
3099 (*subs_mul_imm_<mode>)
3100 (*add_<shift>_<mode>, *add_<shift>_si_uxtw,*add_mul_imm_<mode>)
3101 (*sub_<shift>_<mode>)
3102 (*sub_<shift>_si_uxtw,*sub_mul_imm_<mode>, *sub_mul_imm_si_uxtw):
3103 Remove k constraint.
3104
2ab8f063
IB
31052013-10-03 Ian Bolton <ian.bolton@arm.com>
3106
3107 * config/aarch64/aarch64.c (aarch64_secondary_reload): Remove legacy
3108 code.
3109 * config/aarch64/aarch64.md (reload_sp_immediate): Likewise.
3110
79221839
TJ
31112013-10-02 Teresa Johnson <tejohnson@google.com>
3112
3113 * predict.c (probably_never_executed): New function.
3114 (probably_never_executed_bb_p): Invoke probably_never_executed.
3115 (probably_never_executed_edge_p): Ditto.
3116 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
3117 Treat profile insanities conservatively.
3118
d441afe0
JDA
31192013-10-02 John David Anglin <danglin@gcc.gnu.org>
3120
3121 * config.gcc (hppa*64*-*-linux*): Don't add pa/t-linux to tmake_file.
3122
80f466c4
VM
31232013-10-02 Vladimir Makarov <vmakarov@redhat.com>
3124
3125 * lra-constraints.c (process_alt_operand): Calculate scratch_p and
3126 use it. Use smaller increase for scratch. Don't increase reject
3127 for early clobber scratch.
3128 * lra-eliminations.c (eliminate_regs_in_insn): Remove all insns
3129 setting eliminated regs except setting fp from hfp.
3130 (lra_eliminate): Check lra_insn_recog_data on NULL.
3131
6e228b4b
MM
31322013-10-02 Michael Meissner <meissner@linux.vnet.ibm.com>
3133
3134 PR target/58587
3135 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Turn off
65efa7e7 3136 setting -mvsx-timode by default until the underlying problem is fixed.
6e228b4b
MM
3137 (RS6000_CPU, power7 defaults): Likewise.
3138
11b54a5a
UB
31392013-10-02 Uros Bizjak <ubizjak@gmail.com>
3140
3141 * config/x-linux (host-linux.o): Remove header dependencies.
3142 Use $(COMPILE) and $(POSTCOMPILE).
3143 * config/t-linux-android (linux-android.o): Ditto.
3144
bbc02b69
UB
31452013-10-02 Uros Bizjak <ubizjak@gmail.com>
3146
3147 * Makefile.in (expmed.o-warn): Remove.
3148
440917de
AM
31492013-10-02 Andrew MacLeod <amacleod@redhat.com>
3150
3151 * graphite-scop-detection.c: Include tree-ssa-propagate,h.
3152 * graphite-sese-to-poly.c: Include tree-ssa-propagate.h.
3153
99206ca9
TJ
31542013-10-02 Teresa Johnson <tejohnson@google.com>
3155
3156 * dojump.c (do_jump_1): Divide probability between
3157 both conditions of a TRUTH_ANDIF_EXPR/TRUTH_ORIF_EXPR.
3158
56e82b14
TT
31592013-10-02 Tom Tromey <tromey@redhat.com>
3160
3161 * Makefile.in (DRIVER_DEFINES): Use $(if), not $(and).
3162
3d9c733e
AM
31632013-10-02 Andrew MacLeod <amacleod@redhat.com>
3164
3165 * tree-flow.h: Remove some prototypes.
3166 * tree-ssa-dce.c (mark_virtual_operand_for_renaming,
3167 mark_virtual_phi_result_for_renaming): Move to tree-into-ssa.c.
3168 * tree-into-ssa.c (mark_virtual_operand_for_renaming,
3169 mark_virtual_phi_result_for_renaming): Relocate here.
3170 * tree-into-ssa.h: Add prototypes.
bbc02b69 3171 * tree-ssa-phiopt.c: (tree_ssa_phiopt_worker) Use
3d9c733e
AM
3172 single_pred_before_succ_order.
3173 (blocks_in_phiopt_order): Rename and move to cfganal.c.
3174 (nonfreeing_call_p) Move to gimple.c.
3175 * cfganal.c (single_pred_before_succ_order): Move and renamed from
3176 tree-ssa-phiopt.c.
3177 * basic-block.h (single_pred_before_succ_order): Add prototype.
3178 * gimple.c (nonfreeing_call_p): Relocate here.
3179 * gimple.h: Add prototype.
3180 * tree-ssa-ifcombine.c: Include tree-ssa-phiopt.h.
3181 * tree-ssa-dom.h: New file. Relocate prototypes here.
3182 * tree-ssa.h: Include tree-ssa-dom.h.
3183
78cedfb1
UB
31842013-10-02 Uros Bizjak <ubizjak@gmail.com>
3185
3186 * config/i386/x-i386 (driver-i386.o): Remove header dependencies.
3187 Use $(COMPILE) and $(POSTCOMPILE).
3188
3189 * config/alpha/x-alpha (driver-alpha.o): Ditto.
3190
744730a4
AM
31912013-10-02 Andrew MacLeod <amacleod@redhat.com>
3192
3193 * tree-flow.h: Remove some prototypes.
3194 * gimple-fold.h: Add prototypes from gimple.h and tree-flow.h.
3195 * tree-ssa-propagate.h: Relocate prototypes from tree-flow.h.
3196 * tree-ssa-copy.c (may_propagate*, propagate_value, replace_exp,
3197 propagate_tree_value*): Move from here to...
3198 * tree-ssa-propagate.c (may_propagate*, propagate_value, replace_exp,
3199 propagate_tree_value*): Relocate here.
3200 * tree-ssa-propagate.h: Relocate prototypes from tree-flow.h.
3201 * gimple.h: Include gimple-fold.h, move prototypes into gimple-fold.h.
3202 * gimple-fold.c: Remove gimple-fold.h from include list.
3203 * tree-vrp.c: Remove gimple-fold.h from include list.
3204 * tree-ssa-sccvn.c: Remove gimple-fold.h from include list.
3205 * tree-ssa-ccp.c: Remove gimple-fold.h from include list.
3206 * tree-scalar-evolution.c: Add tree-ssa-propagate.h to include list.
3207 * tree-ssa-pre.c: Add tree-ssa-propagate.h to include list.
3208 * sese.c: Add tree-ssa-propagate.h to include list.
3209
826a536d
RB
32102013-10-02 Richard Biener <rguenther@suse.de>
3211
3212 * tree-loop-distribution.c: Include tree-vectorizer.h for
3213 find_loop_location.
3214 (enum partition_kind): Remove PKIND_REDUCTION.
78cedfb1 3215 (struct partition_s): Remove has_writes member, add reduction_p member.
826a536d
RB
3216 (partition_alloc): Adjust.
3217 (partition_builtin_p): Likewise.
3218 (partition_has_writes): Remove.
3219 (partition_reduction_p): New function.
3220 (partition_merge_into): Likewise.
3221 (generate_code_for_partition): Commonize builtin partition
3222 handling tail.
3223 (rdg_cannot_recompute_vertex_p): Remove.
3224 (already_processed_vertex_p): Likewise.
3225 (rdg_flag_vertex): Do not set has_writes.
3226 (classify_partition): Adjust.
3227 (rdg_build_partitions): Do not set has_writes, treat all
3228 partitions as useful.
78cedfb1 3229 (distribute_loop): Record number of library calls generated. Adjust.
826a536d
RB
3230 (tree_loop_distribution): Report number of loops and library
3231 calls generated as opt-info.
3232
4b403ece
AM
32332013-10-02 Andrew MacLeod <amacleod@redhat.com>
3234
3235 * tree-flow.h: Include new .h files. Move prototypes.
3236 * tree-cfgcleanup.h: New file. Add prototypes from tree-flow.h.
3237 * tree-dfa.h: New File. Add prototypes from tree-flow.h.
3238 (get_addr_base_and_unit_offset_1) Move from tree-flow-inline.h.
3239 * tree-pretty-print.h: Add prototypes from tree-flow.h.
3240 * tree-into-ssa.h: New File. Add prototypes from tree-flow.h.
3241 ({debug|dump}*): Move debugging prototypes out of tree-into-ssa.c.
3242 * tree-into-ssa.c ({debug|dump}*): Move prototypes to header file.
3243 * tree.h (get_ref_base_and_extent): Move prototype out.
78cedfb1 3244 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Move to
4b403ece
AM
3245 tree-dfa.h.
3246 * gimple-low.h: New File. Add prototypes from tree-flow.h.
3247 * gimple-low.c (try_catch_may_fallthru, block_may_fallthru): Move to...
3248 * tree.c (try_catch_may_fallthru, block_may_fallthru): Here.
3249 * tree-scalar-evolution.c: Include tree.h.
3250 * sese.c: Include tree.h.
3251 * dumpfile.c: Move gimple-pretty-print.h include after tree.h.
3252 * dwarf2out.c: Include tree-dfa.h.
3253 * tree-chrec.c: Include tree.h.
3254 * tree-data-ref.c: Include tree.h.
3255
1d2151c6
YZ
32562013-10-02 Yufeng Zhang <yufeng.zhang@arm.com>
3257
3258 * gimple-ssa-strength-reduction.c (backtrace_base_for_ref):
3259 Fix whitespace.
3260
441ad147
RO
32612013-10-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3262
3263 * config/t-sol2 (sol2-c.o): Remove header dependencies.
3264 Use $(COMPILE) and $(POSTCOMPILE).
3265 (sol2-cxx.o): Likewise.
3266 (sol2-stubs.o): Likewise.
3267 (sol2.o): Likewise.
3268 * config/x-solaris (host-solaris.o): Likewise.
3269
3270 * config/sparc/t-sparc (sparc.o): Remove.
3271 (sparc-c.o): Remove header dependencies.
3272 Use $(COMPILE) and $(POSTCOMPILE).
3273 * config/sparc/x-sparc: Likewise.
3274
2deaf8b0
JR
32752013-10-02 Joern Rennecke <joern.rennecke@embecosm.com>
3276
3277 * config/arc/arc-opts.h: Add 2013 to Copyright years.
3278 * config/arc/arc700.md: Likewise.
3279 * config/arc/arc-modes.def: Likewise.
3280 * config/arc/arc-simd.h: Likewise.
3281 * config/arc/t-arc-uClibc: Likewise.
3282 * config/arc/t-arc-newlib: Likewise.
3283
f6fe771a
RL
32842013-10-02 Renlin Li <renlin.li@arm.com>
3285
78cedfb1
UB
3286 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use
3287 plus_constant.
f6fe771a
RL
3288 (aarch64_expand_epilogue): Likewise.
3289
0916f876
YZ
32902013-10-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3291 Yufeng Zhang <yufeng.zhang@arm.com>
3292
3293 * gimple-ssa-strength-reduction.c (legal_cast_p_1): Forward
3294 declaration.
3295 (backtrace_base_for_ref): Call get_unwidened with 'base_in' if
3296 'base_in' represent a conversion and legal_cast_p_1 holds; set
3297 'base_in' with the returned value from get_unwidened.
3298
ebfcd719
KT
32992013-10-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3300
3301 * config/arm/arm.c (arm_legitimize_reload_address): Explain why
3302 plus_constant is not used.
3303
157ca3e9
WM
33042013-10-01 Wei Mi <wmi@google.com>
3305
78cedfb1 3306 * config/i386/x86-tune.def (DEF_TUNE): Remove m_CORE_ALL.
157ca3e9
WM
3307 * config/i386/i386.md: Add define_peephole2 to
3308 break partial reg stall for cvtss2sd/cvtsd2ss.
3309
cd4dd8f0
JR
33102013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
3311
3312 * config/arc/arc.c (pass_arc_ifcvt::clone):
78cedfb1 3313 Update for ctxt_ -> m_ctxt change.
cd4dd8f0 3314
1465e5cf
JL
33152013-10-01 Jeff Law <law@redhat.com>
3316
3317 * tree-ssa-threadupdate.c (struct redirection_data): Delete
3318 outgoing_edge and intermediate_edge fields. Instead store the path.
3319 (redirection_data::hash): Hash on the last edge's destination index.
3320 (redirection_data::equal): Check the entire thread path.
3321 (lookup_redirectio_data): Corresponding changes.
3322 (create_edge_and_update_destination_phis): Likewise.
3323 (thread_single_edge): Likewise.
3324
25c606cb 33252013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
0ccbc132 3326 Diego Novillo <dnovillo@google.com>
25c606cb
JR
3327
3328 * config/arc/simdext.md (UNSPEC_ARC_SIMD_VLD32WH): Delete.
3329 (UNSPEC_ARC_SIMD_VLD32WL): Likewise.
3330 (vld32wh_insn, vld32wl_insn): Delete commented-out old
3331 versions of these patterns.
3332
0ccbc132
JR
3333 * doc/extend.texi (long_call/medium_call/short_call): Typo fix.
3334 (__builtin_arc_aligned): Likewise.
3335
f55d4a20
JR
3336 * config/arc/arc.md: Expand adc_0 comment stating the intended
3337 purpose and why it isn't ready.
3338 Replace commented out call_value_via_label_mixed with a
3339 plain comment about bl_s.
3340
5719867d 3341 * config/arc/arc.c (stdio.h): Don't include directly.
5719867d
JR
3342 (arc_expand_epilogue): Remove [0]: Remove fp_restored_p.
3343 Remove if (1) condition.
3344 (arc_encode_section_info): Fix comment.
3345
6462fab0
JR
33462013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
3347
3348 * config/arc/arc.c (arc_conditional_register_usage):
3349 Use ARC_FIRST_SIMD_VR_REG / ARC_LAST_SIMD_VR_REG.
3350 Also set reg_alloc_order for DMA config regs.
3351
5d5f6720
JR
33522013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
3353 Jeremy Bennett <jeremy.bennett@embecosm.com>
3354
3355 * doc/install.texi (--with-cpu): Mention ARC.
3356 (arc-*-elf32): New paragraph.
3357 (arc-linux-uclibc): Likewise.
3358 * doc/md.texi (Machine Constraints): Add ARC part.
3359 * doc/invoke.texi: (menu): Add ARC Options.
3360 (Machine Dependent Options) <ARC Options>: Add synopsis.
3361 (node ARC Options): Add.
3362 * doc/extend.texi (long_call / short_call attribute): Add ARC.
3363 (ARC Built-in Functions): New section defining
3364 generic ARC built-in functions.
3365 (ARC SIMD Built-in Functions): New section defining SIMD specific
3366 built-in functions.
3367 (Declaring Attributes of Functions): Extended
3368 description of short_call and long_call attributes for ARC and
3369 added index entries.
3370
526b7aee
SV
33712013-10-01 Saurabh Verma <saurabh.verma@codito.com>
3372 Ramana Radhakrishnan <ramana.radhakrishnan@codito.com>
3373 Joern Rennecke <joern.rennecke@embecosm.com>
3374 Muhammad Khurram Riaz <khurram.riaz@arc.com>
3375 Brendan Kehoe <brendan@zen.org>
3376 Michael Eager <eager@eagercon.com>
3377 Simon Cook <simon.cook@embecosm.com>
3378 Jeremy Bennett <jeremy.bennett@embecosm.com>
3379
3380 * config/arc, common/config/arc: New directories.
3381
53426f6c
JR
33822013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
3383 Brendan Kehoe <brendan@zen.org>
3384 Simon Cook <simon.cook@embecosm.com>
3385
3386 * config.gcc (arc*-*-elf*, arc*-*-linux-uclibc*): New configurations.
3387
1df9f5a9
AM
33882013-10-01 Andrew MacLeod <amacleod@redhat.com>
3389
3390 * tree-ssa-live.h (coalesce_ssa_name): Move Prototype to...
3391 * tree-ssa-coalesce.h: New. Move prototype to here.
3392 * tree-outof-ssa.h: Include tree-ssa-coalesce.h.
3393 * tree-ssa-coalesce.c: Include tree-outof-ssa.h.
3394 (gimple_can_coalesce_p): Move to...
3395 * gimple.c (gimple_can_coalesce_p): Here.
3396
80560f95
AM
33972013-10-01 Andrew MacLeod <amacleod@redhat.com>
3398
3399 * tree-into-ssa.c (enum need_phi_state): Relocate from tree-flow.h.
3400 (dump_decl_set): Move to gimple.c.
3401 * gimple.h: Don't include tree-ssa-operands.h.
3402 (dump_decl_set): Add prototype.
3403 (gimple_vuse_op, gimple_vdef_op, update_stmt, update_stmt_if_modified):
3404 Move to gimple-ssa.h.
3405 (phi_ssa_name_p, phi_nodes, phi_nodes_ptr, gimple_phi_arg_def,
3406 gimple_phi_arg_def_ptr, gimple_phi_arg_edge, gimple_phi_arg_location,
3407 gimple_phi_arg_location_from_edge, gimple_phi_arg_set_location,
3408 gimple_phi_arg_has_location): Relocate from tree-flow-inline.h
3409 * gimple.c (walk_stmt_load_store_ops): Use gimple_phi_arg_def rather
3410 than PHI_ARG_DEF.
3411 (dump_decl_set): Relocate here.
3412 * gimple-ssa.h: New file.
3413 (gimple_vuse_op, gimple_vdef_op, update_stmt, update_stmt_if_modified):
3414 Relocate from gimple.h.
3415 * tree-cfg.c (has_zero_uses_1, single_imm_use_1): Move to...
3416 * tree-ssa-operands.c (swap_ssa_operands): Rename from
3417 swap_tree_operands and remove non-ssa path.
3418 (has_zero_uses_1, single_imm_use_1): Relocate from tree-cfg.c.
3419 * tree-ssa-reassoc.c (linearize_expr_tree, repropagate_negates): Use
3420 swap_ssa_operands.
3421 * tree-vect-loop.c (destroy_loop_vec_info, vect_is_slp_reduction,
3422 vect_is_simple_reduction_1): Use swap_ssa_operands.
3423 * tree-flow.h: Move various prototypes to tree-phinodes.h.
3424 (enum need_phi_state): Move to tree-into-ssa.c.
3425 (struct immediate_use_iterator_d, FOR_EACH_IMM_*,
3426 BREAK_FROM_IMM_USE_STMT): Move to ssa-iterators.h.
3427 (swap_tree_operands): Rename and move prototype to tree-ssa-operands.h.
3428 * tree-flow-inline.h (delink_imm_use, link_imm_use_to_list,
3429 link_imm_use, set_ssa_use_from_ptr, link_imm_use_stmt, relink_imm_use,
3430 relink_imm_use_stmt, end_readonly_imm_use_p, first_readonly_imm_use,
3431 next_readonly_imm_use, has_zero_uses, has_single_use, single_imm_use,
3432 num_imm_uses): Move to ssa-iterators.h.
3433 (get_use_from_ptr, get_def_from_ptr): Move to tree-ssa-operands.h
7ab4168e 3434 (gimple_phi_arg_imm_use_ptr, phi_arg_index_from_use): Move to
80560f95
AM
3435 tree-phinodes.h.
3436 (op_iter_done, op_iter_next_def, op_iter_next_tree,
3437 clear_and_done_ssa_iter, op_iter_init, op_iter_init_use,
3438 op_iter_init_def, op_iter_init_tree, single_ssa_tree_operand,
3439 single_ssa_use_operand, single_ssa_def_operand, zero_ssa_operands,
3440 num_ssa_operands, delink_stmt_imm_use, single_phi_def,
3441 op_iter_init_phiuse, op_iter_init_phidef, end_imm_use_stmt_p,
3442 end_imm_use_stmt_traverse, move_use_after_head, link_use_stmts_after,
3443 first_imm_use_stmt, next_imm_use_stmt, first_imm_use_on_stmt,
3444 end_imm_use_on_stmt_p, next_imm_use_on_stmt): Move to ssa-iterators.h.
3445 (gimple_phi_arg_def, gimple_phi_arg_def_ptr, gimple_phi_arg_edge,
3446 gimple_phi_arg_location, gimple_phi_arg_location_from_edge,
3447 gimple_phi_arg_set_location, gimple_phi_arg_has_location, phi_nodes,
3448 phi_nodes_ptr, phi_ssa_name_p): Move to gimple.h.
3449 (set_phi_nodes): Move to tree-phinodes.h.
3450 * tree-ssa-operands.h (enum ssa_op_iter_type,
3451 struct ssa_operand_iterator_d, SSA_OP*, FOR_EACH_SSA*, SINGLE_SSA*,
3452 ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS): Move to ssa-iterators.h.
3453 (dump_decl_set): Remove prototype.
3454 (get_use_from_ptr, get_def_from_ptr): Relocate from tree-flow.h.
3455 * tree-phinodes.h: New file. Move some prototypes from tree-flow.h.
3456 (set_phi_nodes): Relocate from tree-flow-inline.h.
3457 (gimple_phi_arg_imm_use_ptr, phi_arg_index_from_use): Relocate from
3458 tree-flow-inline.h
3459 * tree-ssa.h: Add tree-phinodes.h, gimple-ssa.h, ssa-iterators.h to
3460 include list. Temporarily add gimple.h to include list.
3461 * ssa-iterators.h: New file.
3462 (struct immediate_use_iterator_d, FOR_EACH_IMM_*,
3463 BREAK_FROM_IMM_USE_STMT): Relocate from tree-flow.h.
3464 (enum ssa_op_iter_type, struct ssa_operand_iterator_d, SSA_OP*,
3465 FOR_EACH_SSA*, SINGLE_SSA*, ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS):
3466 Relocate from tree-ssa-operands.h.
3467 (delink_imm_use, link_imm_use_to_list, link_imm_use,
3468 set_ssa_use_from_ptr, link_imm_use_stmt, relink_imm_use,
3469 relink_imm_use_stmt, end_readonly_imm_use_p, first_readonly_imm_use,
3470 next_readonly_imm_use, has_zero_uses, has_single_use, single_imm_use,
3471 num_imm_uses, get_use_from_ptr, get_def_from_ptr,
3472 phi_arg_index_from_use, op_iter_done, op_iter_next_def,
3473 op_iter_next_tree, clear_and_done_ssa_iter, op_iter_init,
3474 op_iter_init_use, op_iter_init_def, op_iter_init_tree,
3475 single_ssa_tree_operand, single_ssa_use_operand, single_ssa_def_operand,
3476 zero_ssa_operands, num_ssa_operands, delink_stmt_imm_use,
3477 single_phi_def, op_iter_init_phiuse, op_iter_init_phidef,
3478 end_imm_use_stmt_p, end_imm_use_stmt_traverse, move_use_after_head,
3479 link_use_stmts_after, first_imm_use_stmt, next_imm_use_stmt,
3480 first_imm_use_on_stmt, end_imm_use_on_stmt_p, next_imm_use_on_stmt):
3481 Relocate from tree-flow-inline.h.
3482 * tree-outof-ssa.h: Change _SSAEXPAND_H macro to GCC_TREE_OUTOF_SSA_H.
3483
8da00d65
VP
34842013-10-01 Vidya Praveen <vidyapraveen@arm.com>
3485
3486 * aarch64-simd.md
3487 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l2<mode>_internal): Rename to ...
3488 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_hi_internal): ... this;
3489 Insert '\t' to output template.
3490 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_lo_internal): New.
3491 (aarch64_saddl2<mode>, aarch64_uaddl2<mode>): Modify to call
3492 gen_aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_hi_internal() instead.
3493 (aarch64_ssubl2<mode>, aarch64_usubl2<mode>): Ditto.
3494
e2ebe1c2
UB
34952013-10-01 Uros Bizjak <ubizjak@gmail.com>
3496
3497 * doc/install.texi (Host/target specific installation notes for GCC):
3498 Put @anchor before @heading.
3499 * doc/gcc.texi (titlepage): Use @uref and http:// prefix for website.
3500 Use @email for email addresses.
3501
aee2d611
JL
35022013-10-01 Jeff Law <law@redhat.com>
3503
3504 * tree-ssa-threadedge.c (thread_across_edge): Make path a pointer to
3505 a vec. Only delete the path if we create one without successfully
3506 registering a jump thread.
3507 * tree-ssa-threadupdate.h (register_jump_thread): Pass in path vector
3508 as a pointer.
3509 * tree-ssa-threadupdate.c (threaded_edges): Remove. No longer used
3510 (paths): New vector of jump threading paths.
3511 (THREAD_TARGET, THREAD_TARGET2): Remove accessor macros.
3512 (THREAD_PATH): New accessor macro for the entire thread path.
3513 (lookup_redirection_data): Get intermediate and final outgoing edge
3514 from the thread path.
3515 (create_edge_and_update_destination_phis): Copy the threading path.
3516 (ssa_fix_duplicate_block_edges): Get edges and block types from the
3517 jump threading path.
3518 (ssa_redirect_edges): Get edges and block types from the jump threading
3519 path. Free the path vector.
3520 (thread_block): Get edges from the jump threading path. Look at the
3521 entire path to see if we thread to a loop exit. If we cancel a jump
3522 thread request, then free the path vector.
3523 (thread_single_edge): Get edges and block types from the jump threading
3524 path. Free the path vector.
3525 (thread_through_loop_header): Get edges and block types from the jump
3526 threading path. Free the path vector.
3527 (mark_threaded_blocks): Iterate over the vector of paths and store
3528 the path on the appropriate edge. Get edges and block types from the
3529 jump threading path.
3530 (mark_threaded_blocks): Get edges and block types from the jump
3531 threading path. Free the path vector.
3532 (thread_through_all_blocks): Use the vector of paths rather than
3533 a vector of 3-edge sets.
3534 (register_jump_thread): Accept pointer to a path vector rather
3535 than the path vector itself. Store the path vector for later use.
3536 Simplify.
3537
966f97ac 35382013-10-01 Jakub Jelinek <jakub@redhat.com>
8da00d65 3539 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
966f97ac
JJ
3540
3541 PR target/58574
3542 * config/s390/s390.c (s390_split_branches): Modify check for table
3543 jump insns.
3544 (s390_chunkify_start): Rearrange table jump insn check in order to
3545 deal with compare and branch insns correctly.
3546
3a323a38
KV
35472013-10-01 Kugan Vivekanandarajah <kuganv@linaro.org>
3548
3549 PR target/58578
3550 Revert
3551 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
3552 * config/arm/arm.md (arm_ashldi3_1bit): define_insn into
3553 define_insn_and_split.
3554 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
3555 (shiftsi3_compare): New pattern.
3556 (rrx): New pattern.
3557 * config/arm/unspecs.md (UNSPEC_RRX): New.
3558
90444831
AM
35592013-10-01 Alan Modra <amodra@gmail.com>
3560
3561 * stmt.c (expand_asm_operands): Revert part of 2013-09-24 special
3562 casing inout operands.
3563
818625cf
RB
35642013-10-01 Richard Biener <rguenther@suse.de>
3565
3566 PR tree-optimization/58553
3567 * tree-loop-distribution.c (struct partition_s): Add niter member.
3568 (classify_partition): Populate niter member for the partition
3569 and properly identify whether the relevant store happens before
3570 or after the loop exit.
3571 (generate_memset_builtin): Use niter member from the partition.
3572 (generate_memcpy_builtin): Likewise.
3573
30f641cd
RS
35742013-09-30 Richard Sandiford <rdsandiford@googlemail.com>
3575
3576 * vec.h (vec_prefix, vec): Prefix member names with "m_".
3577 * vec.c (vec_prefix::calculate_allocation): Update accordingly.
3578
65d3284b
RS
35792013-09-30 Richard Sandiford <rdsandiford@googlemail.com>
3580
3581 * basic-block.h (edge_list): Prefix member names with "m_".
3582 * context.h (context): Likewise.
3583 * domwalk.h (dom_walker): Likewise.
3584 * gengtype-state.c (s_expr_writer, state_writer): Likewise.
3585 * graphite-sese-to-poly.c (sese_dom_walker): Likewise.
3586 * hash-table.h (hash_table): Likewise.
3587 * machmode.h (bit_field_mode_iterator): Likewise.
3588 * pass_manager.h (pass_list): Likewise.
3589 * tree-into-ssa.c (mark_def_dom_walker): Likewise.
3590 * tree-pass.h (pass_data): Likewise.
3591 * tree-ssa-dom.c (dom_opt_dom_walker): Likewise.
3592 * tree-ssa-phiopt.c (nontrapping_dom_walker): Likewise,
3593 * tree-ssa-uncprop.c (uncprop_dom_walker): Likewise.
3594 * asan.c (pass_data_asan): Update accordingly.
3595 * cfganal.c (control_dependences::find_control_dependence): Likewise.
3596 (control_dependences::control_dependences): Likewise.
3597 (control_dependences::~control_dependences): Likewise.
3598 (control_dependences::~control_dependences): Likewise.
3599 (control_dependences::get_edges_dependent_on): Likewise.
3600 * cgraphbuild.c (pass_data_rebuild_cgraph_edges::clone): Likewise.
3601 (pass_data_remove_cgraph_callee_edges::clone): Likewise.
3602 * context.c (gcc::context::context): Likewise.
3603 * cprop.c (pass_rtl_cprop::clone): Likewise.
3604 * domwalk.c (dom_walker::walk): Likewise.
3605 * ipa-inline-analysis.c (pass_inline_parameters::clone): Likewise.
3606 * ipa-pure-const.c (pass_local_pure_const::clone): Likewise.
3607 * mode-switching.c (pass_mode_switching::clone): Likewise.
3608 * passes.c (opt_pass::opt_pass): Likewise.
3609 (pass_manager::pass_manager): Likewise.
3610 * predict.c (pass_strip_predict_hints::clone): Likewise.
3611 * recog.c (pass_data pass_data_peephole2::clone): Likewise.
3612 (pass_split_all_insns::clone): Likewise.
3613 * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator):
3614 Likewise.
3615 (bit_field_mode_iterator::next_mode): Likewise.
3616 (bit_field_mode_iterator::prefer_smaller_modes): Likewise.
3617 * tree-cfg.c (pass_split_crit_edges::clone): Likewise.
3618 * tree-cfgcleanup.c (pass_merge_phi::clone): Likewise.
3619 * tree-complex.c (pass_lower_complex::clone): Likewise.
3620 * tree-eh.c (pass_cleanup_eh::clone): Likewise.
3621 * tree-object-size.c (pass_object_sizes::clone): Likewise.
3622 * tree-optimize.c (pass_fixup_cfg::clone): Likewise.
3623 * tree-ssa-ccp.c (pass_data_ccp::clone): Likewise.
3624 (pass_fold_builtins::clone): Likewise.
3625 * tree-ssa-copy.c (pass_data_copy_prop::clone): Likewise.
3626 * tree-ssa-copyrename.c (pass_rename_ssa_copies::clone): Likewise.
3627 * tree-ssa-dce.c (pass_dce::clone, pass_dce_loop::clone): Likewise.
3628 (pass_cd_dce::clone): Likewise.
3629 * tree-ssa-dom.c (pass_dominator::clone): Likewise.
3630 (pass_phi_only_cprop::clone): Likewise.
3631 * tree-ssa-dse.c (pass_dse::clone): Likewise.
3632 * tree-ssa-forwprop.c (pass_forwprop::clone): Likewise.
3633 * tree-ssa-loop.c (pass_lim::clone): Likewise.
3634 * tree-ssa-phiopt.c (pass_phiopt::clone): Likewise.
3635 * tree-ssa-pre.c (pass_fre::clone): Likewise.
3636 * tree-ssa-reassoc.c (pass_reassoc::clone): Likewise.
3637 * tree-ssa-uninit.c (pass_late_warn_uninitialized::clone): Likewise.
3638 * tree-tailcall.c (pass_tail_recursion::clone): Likewise.
3639 * tree-vect-generic.c (pass_lower_vector_ssa::clone): Likewise.
3640 * tree-vrp.c (pass_vrp::clone): Likewise.
3641 * tsan.c (pass_tsan::clone): Likewise.
3642
f66d0891
JJ
36432013-09-30 Jakub Jelinek <jakub@redhat.com>
3644
d2a365a8
JJ
3645 PR middle-end/58564
3646 * fold-const.c (tree_unary_nonnegative_warnv_p): Use
3647 INTEGRAL_TYPE_P (t) instead of TREE_CODE (t) == INTEGER_TYPE.
3648
f66d0891
JJ
3649 PR middle-end/58564
3650 * fold-const.c (fold_ternary_loc): For A < 0 : <sign bit of A> : 0
3651 optimization, punt if sign_bit_p looked through any zero extension.
3652
05357ac3
TJ
36532013-09-30 Teresa Johnson <tejohnson@google.com>
3654
3655 * tree-ssa-threadupdate.c (ssa_fix_duplicate_block_edges):
3656 Update redirected out edge count in joiner case.
3657 (ssa_redirect_edges): Common the joiner and non-joiner cases
3658 so that joiner case gets profile updates.
3659
ca406576
RB
36602013-09-30 Richard Biener <rguenther@suse.de>
3661
3662 PR tree-optimization/58554
e2ebe1c2
UB
3663 * tree-loop-distribution.c (classify_partition): Require
3664 unconditionally executed stores for memcpy and memset recognition.
ca406576
RB
3665 (tree_loop_distribution): Calculate dominance info.
3666
92d649c4
VK
36672013-09-30 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
3668
3669 * config/aarch64/aarch64.h (MCOUNT_NAME): Define.
3670 (NO_PROFILE_COUNTERS): Likewise.
3671 (PROFILE_HOOK): Likewise.
3672 (FUNCTION_PROFILER): Likewise.
3673 * config/aarch64/aarch64.c (aarch64_function_profiler): Remove.
3674
bd9534e2
IS
36752013-09-30 Iain Sandoe <iain@codesourcery.com>
3676
3677 * config/rs6000/darwin.md (load_macho_picbase_si): Wrap machopic
3678 calls and defines in TARGET_MACHO conditional.
3679 (load_macho_picbase_di): Likewise.
3680 (reload_macho_picbase): Likewise.
3681 (reload_macho_picbase_si): Likewise.
3682 (reload_macho_picbase_di): Likewise.
3683 (nonlocal_goto_receiver): Likewise.
3684
4494fbc9
NC
36852013-09-30 Nick Clifton <nickc@redhat.com>
3686
3687 * config/msp430/msp430.c (msp430x_names): New array. Lists MCUs
3688 that use the MSP430X ISA.
3689 (msp430_option_override): Scan -mmcu command line option for any
3690 MCU name that supports the MSP430X ISA.
3691 * config/msp430/t-msp430 (MULTILIB_MATCHES): Add matches for known
3692 -mmcu options which enable the MSP430X ISA.
3693
791d9044
RB
36942013-09-30 Richard Biener <rguenther@suse.de>
3695
3696 PR middle-end/58532
3697 * tree-cfg.c (make_abnormal_goto_edges): Skip debug statements
3698 before looking for setjmp-like calls.
3699
e1c5c877
IS
37002013-09-29 Iain Sandoe <iain@codesourcery.com>
3701
3702 PR target/10901
3703 * config/darwin-protos.h (machopic_get_function_picbase): New.
3704 * config/darwin.c (machopic_get_function_picbase): New.
3705 * config/rs6000/darwin.md (load_macho_picbase_si): Update picbase
3706 label for a new func. (load_macho_picbase_di): Likewise.
3707 (reload_macho_picbase): New expand.
3708 (reload_macho_picbase_si): New insn.
3709 (reload_macho_picbase_di): New insn.
3710 (nonlocal_goto_receiver): New define and split.
3711 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_RELD_MPIC.
3712 (unspecv enum): Add UNSPECV_NLGR.
3713
749278c5
IS
37142013-09-29 Iain Sandoe <iain@codesourcery.com>
3715
3716 * config/rs6000/rs6000.c (rs6000_init_dwarf_reg_sizes_extra): Ensure
3717 that altivec registers are correctly sized on Darwin.
3718
2c43a51c
IS
37192013-09-29 Iain Sandoe <iain@codesourcery.com>
3720
3721 * config/t-darwin (darwin.o, darwin-c.o, darwin-f.o,
3722 darwin-driver.o): Use COMPILE and POSTCOMPILE.
3723 * config/x-darwin (host-darwin.o): Likewise.
3724 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
3725 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
3726 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
3727
7a5911d3
UB
37282013-09-29 Uros Bizjak <ubizjak@gmail.com>
3729
3730 * doc/invoke.texi: Fix usage of @tie{} command.
3731
3f67a73d
EB
37322013-09-29 Eric Botcazou <ebotcazou@adacore.com>
3733
3734 * config/sparc/sync.md: Add peephole for consecutive memory barriers.
3735
9ac2f538
JH
37362013-09-28 Jan Hubicka <jh@suse.cz>
3737
3738 * config/i386/x86-tune.def: Add documentation for each of the options;
3739 add whitespace.
3740
b0ff06da
JH
37412013-09-28 Jan Hubicka <jh@suse.cz>
3742
7a5911d3
UB
3743 * x86-tune.def (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL): Enable for
3744 generic.
b0ff06da
JH
3745 (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Likewise.
3746 (X86_TUNE_FOUR_JUMP_LIMIT): Drop for generic and buldozer.
3747 (X86_TUNE_PAD_RETURNS): Drop for buldozer chips.
3748 (X86_TUNE_AVOID_VECTOR_DECODE): Drop for generic.
3749 (X86_TUNE_REASSOC_FP_TO_PARALLEL): Enable for generic.
3750
c3284718
RS
37512013-09-28 Richard Sandiford <rdsandiford@googlemail.com>
3752
3753 * alloc-pool.c, asan.c, auto-inc-dec.c, basic-block.h, bb-reorder.c,
3754 bitmap.c, bitmap.h, bt-load.c, builtins.c, calls.c, cfgcleanup.c,
3755 cfgexpand.c, cfghooks.c, cfgloop.c, cfgloopmanip.c, cfgrtl.c, cgraph.c,
3756 cgraph.h, cgraphbuild.c, cgraphclones.c, cgraphunit.c, collect2.c,
3757 combine-stack-adj.c, combine.c, compare-elim.c, context.c, context.h,
3758 cprop.c, cse.c, cselib.c, dbxout.c, dce.c, defaults.h, df-core.c,
3759 df-problems.c, df-scan.c, df.h, diagnostic.c, double-int.c, dse.c,
3760 dumpfile.c, dwarf2asm.c, dwarf2cfi.c, dwarf2out.c, emit-rtl.c,
3761 errors.c, except.c, expmed.c, expr.c, file-find.c, final.c,
3762 fixed-value.c, fold-const.c, function.c, fwprop.c, gcc-ar.c, gcc.c,
3763 gcov-io.c, gcov-io.h, gcov.c, gcse.c, genattr-common.c, genattr.c,
3764 genattrtab.c, genautomata.c, genconfig.c, genemit.c, genextract.c,
3765 genflags.c, gengenrtl.c, gengtype-state.c, gengtype.c, genmodes.c,
3766 genopinit.c, genoutput.c, genpeep.c, genpreds.c, genrecog.c,
3767 gensupport.c, ggc-common.c, ggc-page.c, gimple-fold.c, gimple-low.c,
3768 gimple-pretty-print.c, gimple-ssa-strength-reduction.c, gimple.c,
3769 gimple.h, godump.c, graphite-clast-to-gimple.c,
3770 graphite-optimize-isl.c, graphite-poly.h, graphite-sese-to-poly.c,
3771 graphite.c, haifa-sched.c, hash-table.c, hash-table.h, hwint.c,
3772 hwint.h, ifcvt.c, incpath.c, init-regs.c, input.h, intl.c, intl.h,
3773 ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
3774 ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c,
3775 ipa-utils.c, ipa.c, ira-build.c, ira.c, jump.c, loop-doloop.c,
3776 loop-init.c, loop-invariant.c, loop-iv.c, lower-subreg.c, lto-cgraph.c,
3777 lto-streamer-in.c, lto-streamer-out.c, lto-wrapper.c, mcf.c,
3778 mode-switching.c, modulo-sched.c, omp-low.c, optabs.c, opts.c,
3779 pass_manager.h, passes.c, plugin.c, postreload-gcse.c, postreload.c,
3780 predict.c, prefix.c, pretty-print.c, print-rtl.c, print-tree.c,
3781 profile.c, read-md.c, real.c, real.h, recog.c, ree.c, reg-stack.c,
3782 regcprop.c, reginfo.c, regmove.c, regrename.c, regs.h, regstat.c,
3783 reload1.c, reorg.c, rtl.c, rtl.h, rtlanal.c, sbitmap.c, sched-rgn.c,
3784 sdbout.c, sel-sched-ir.c, sel-sched.c, sparseset.c, stack-ptr-mod.c,
3785 statistics.c, stmt.c, stor-layout.c, store-motion.c, streamer-hooks.h,
3786 system.h, target-hooks-macros.h, targhooks.c, targhooks.h, toplev.c,
3787 tracer.c, trans-mem.c, tree-browser.c, tree-call-cdce.c, tree-cfg.c,
3788 tree-cfgcleanup.c, tree-complex.c, tree-data-ref.c, tree-data-ref.h,
3789 tree-eh.c, tree-emutls.c, tree-flow.h, tree-if-conv.c, tree-into-ssa.c,
3790 tree-iterator.c, tree-loop-distribution.c, tree-mudflap.c,
3791 tree-nested.c, tree-nomudflap.c, tree-nrv.c, tree-object-size.c,
3792 tree-optimize.c, tree-pass.h, tree-pretty-print.c, tree-profile.c,
3793 tree-scalar-evolution.c, tree-sra.c, tree-ssa-ccp.c,
3794 tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
3795 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
3796 tree-ssa-ifcombine.c, tree-ssa-live.c, tree-ssa-loop-ch.c,
3797 tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-loop-prefetch.c,
3798 tree-ssa-loop.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
3799 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
3800 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
3801 tree-ssa-structalias.c, tree-ssa-threadedge.c, tree-ssa-threadupdate.c,
3802 tree-ssa-uncprop.c, tree-ssa-uninit.c, tree-ssa.c, tree-ssanames.c,
3803 tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
3804 tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
3805 tree-vect-stmts.c, tree-vectorizer.c, tree-vectorizer.h, tree-vrp.c,
3806 tree.c, tree.h, tsan.c, tsystem.h, value-prof.c, var-tracking.c,
3807 varasm.c, vec.h, vmsdbgout.c, vtable-verify.c, web.c: Add missing
3808 whitespace before "(".
3809
c6285bd7
SL
38102013-09-28 Sandra Loosemore <sandra@codesourcery.com>
3811
3812 * expr.h (extract_bit_field): Remove packedp parameter.
3813 * expmed.c (extract_fixed_bit_field): Remove packedp parameter
3814 from forward declaration.
3815 (store_split_bit_field): Remove packedp arg from calls to
3816 extract_fixed_bit_field.
3817 (extract_bit_field_1): Remove packedp parameter and packedp
3818 argument from recursive calls and calls to extract_fixed_bit_field.
3819 (extract_bit_field): Remove packedp parameter and corresponding
3820 arg to extract_bit_field_1.
3821 (extract_fixed_bit_field): Remove packedp parameter. Remove code
3822 to issue warnings.
3823 (extract_split_bit_field): Remove packedp arg from call to
3824 extract_fixed_bit_field.
3825 * expr.c (emit_group_load_1): Adjust calls to extract_bit_field.
3826 (copy_blkmode_from_reg): Likewise.
3827 (copy_blkmode_to_reg): Likewise.
3828 (read_complex_part): Likewise.
3829 (store_field): Likewise.
3830 (expand_expr_real_1): Likewise.
3831 * calls.c (store_unaligned_arguments_into_pseudos): Adjust call
3832 to extract_bit_field.
3833 * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Adjust
3834 call to extract_bit_field.
3835 * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Adjust
3836 call to extract_bit_field.
3837 * doc/invoke.texi (Code Gen Options): Remove mention of warnings
3838 and special packedp behavior from -fstrict-volatile-bitfields
3839 documentation.
3840
522d4efc
JBG
38412013-09-27 Jan-Benedict Glaw <jbglaw@lug-owl.de>
3842
3843 * lra-eliminations.c (init_elim_table): Guard value_p.
3844
19cdb489
MM
38452013-09-27 Michael Meissner <meissner@linux.vnet.ibm.com>
3846
3847 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Allow
3848 DFmode, DImode, and SFmode in the upper VSX registers based on the
3849 -mupper-regs-{df,sf} flags. Fix wu constraint to be ALTIVEC_REGS
3850 if -mpower8-vector. Combine -mvsx-timode handling with the rest
3851 of the VSX register handling.
3852
3853 * config/rs6000/rs6000.md (f32_lv): Use %x0 for VSX regsters.
3854 (f32_sv): Likewise.
3855 (zero_extendsidi2_lfiwzx): Add support for loading into the
3856 Altivec registers with -mpower8-vector. Use wu/wv constraints to
3857 only do VSX memory options on Altivec registers.
3858 (extendsidi2_lfiwax): Likewise.
3859 (extendsfdf2_fpr): Likewise.
3860 (mov<mode>_hardfloat, SF/SD modes): Likewise.
3861 (mov<mode>_hardfloat32, DF/DD modes): Likewise.
3862 (mov<mode>_hardfloat64, DF/DD modes): Likewise.
3863 (movdi_internal64): Likewise.
3864
d6d11272
XDL
38652013-09-27 Xinliang David Li <davidxl@google.com>
3866
3867 * opts.c (finish_options): Adjust parameters
3868 according to vect cost model.
3869 (common_handle_option): Set dynamic vect cost
3870 model for FDO.
3871 targhooks.c (default_add_stmt_cost): Compute stmt cost
3872 unconditionally.
3873 * tree-vect-loop.c (vect_estimate_min_profitable_iters):
3874 Use helper function.
3875 * tree-vectorizer.h (unlimited_cost_model): New function.
3876 * tree-vect-slp.c (vect_slp_analyze_bb_1): Use helper function.
3877 * tree-vect-data-refs.c (vect_peeling_hash_insert): Use helper
3878 function.
3879 (vect_enhance_data_refs_alignment): Ditto.
3880 * flag-types.h: New enum.
3881 * common/config/i386/i386-common.c (ix86_option_init_struct):
3882 No need to initialize vect_cost_model flag.
3883 * config/i386/i386.c (ix86_add_stmt_cost): Compute stmt cost
3884 unconditionally.
3885
ac1857a3
DN
38862013-09-27 Diego Novillo <dnovillo@google.com>
3887
3888 * gimple.h (enum ssa_mode): Remove.
3889
0d0e2af6
PM
38902013-09-27 Paulo Matos <pmatos@broadcom.com>
3891
3892 * cfgloop.h (number_of_loops): Fix typo in check for null.
3893
09dc585e
JJ
38942013-09-27 Jakub Jelinek <jakub@redhat.com>
3895
3896 PR middle-end/58551
3897 * tree-cfg.c (move_sese_region_to_fn): Also move loops that
3898 are children of outermost saved_cfun's loop, and set it up to
3899 be moved to dest_cfun's outermost loop. Fix up num_nodes adjustments
3900 if loop != loop0 and SESE region contains bbs that belong to loop0.
3901
ec5a3504
RS
39022013-09-27 Richard Sandiford <rdsandiford@googlemail.com>
3903
3904 * rtlanal.c (must_be_base_p, must_be_index_p): Delete.
3905 (binary_scale_code_p, get_base_term, get_index_term): New functions.
3906 (set_address_segment, set_address_base, set_address_index)
3907 (set_address_disp): Accept the argument unconditionally.
3908 (baseness): Remove must_be_base_p and must_be_index_p checks.
3909 (decompose_normal_address): Classify as much as possible in the
3910 main loop.
3911
f91aec98
RS
39122013-09-27 Richard Sandiford <rdsandiford@googlemail.com>
3913
3914 * cse.c (count_reg_usage): Handle INT_LIST.
3915 * lra-eliminations.c (lra_eliminate_regs_1): Likewise.
3916 * reginfo.c (reg_scan_mark_refs): Likewise.
3917 * reload1.c (eliminate_regs_1): Likewise.
3918
a9195970
IS
39192013-09-27 Iain Sandoe <iain@codesourcery.com>
3920
3921 PR middle-end/58547
3922 * rtlanal.c (lsb_bitfield_op_p): Make both parts of the comparison
3923 signed.
3924
e6f1c509
RB
39252013-09-27 Richard Biener <rguenther@suse.de>
3926
3927 PR tree-optimization/58459
3928 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Remove
3929 restriction not propagating into loops.
3930
84f48495
FW
39312013-09-26 Florian Weimer <fw@deneb.enyo.de>
3932
3933 * tree-ssa.h (walk_use_def_chains_fn, walk_use_def_chains): Delete.
3934 * tree-ssa.c (walk_use_def_chains_1, walk_use_def_chains): Delete.
3935 * doc/tree-ssa.texi (Walking use-def chains): Delete.
3936
74fc8b8a
RB
39372013-09-26 Richard Biener <rguenther@suse.de>
3938
7a5911d3 3939 * tree-into-ssa.c (rewrite_into_ssa): Make more SSA names to anonymous.
74fc8b8a 3940
b4ada065
RB
39412013-09-26 Richard Biener <rguenther@suse.de>
3942
3943 * alias.h (component_uses_parent_alias_set): Rename to ...
3944 (component_uses_parent_alias_set_from): ... this.
3945 * alias.c (component_uses_parent_alias_set): Rename to ...
3946 (component_uses_parent_alias_set_from): ... this and return
3947 the desired parent.
3948 (reference_alias_ptr_type_1): Use the result from
3949 component_uses_parent_alias_set_from instead of stripping
3950 components one at a time.
3951 * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust.
3952
78bca40d
AM
39532013-09-26 Andrew MacLeod <amacleod@redhat.com>
3954
7a5911d3
UB
3955 * tree-ssa-live.h (find_replaceable_exprs, dump_replaceable_exprs):
3956 Move prototypes to...
78bca40d
AM
3957 * tree-ssa-ter.h: New File. Move prototypes here.
3958 * tree-flow.h (stmt_is_replaceable_p): Remove prototype.
3959 * tree-outof-ssa.h: New. Rename ssaexpand.h, include tree-ssa-ter.h.
3960 * tree-outof-ssa.c (ssa_is_replaceable_p): New. Refactor common bits
7a5911d3 3961 from is_replaceable_p.
78bca40d
AM
3962 * tree-ssa-ter.c (is_replaceable_p, stmt_is_replaceable_p): Delete.
3963 (ter_is_replaceable_p): New. Use new refactored ssa_is_replaceable_p.
3964 (process_replaceable): Use ter_is_replaceable_p.
3965 (find_replaceable_in_bb): Use ter_is_replaceable_p.
3966 * expr.c (stmt_is_replaceable_p): Relocate from tree-ssa-ter.c. Use
3967 newly refactored ssa_is_replaceable_p.
3968 * cfgexpand.c: Include tree-outof-ssa.h.
3969 * ssaexpand.h: Delete.
3970
ff2a63a7
AM
39712013-09-26 Andrew MacLeod <amacleod@redhat.com>
3972
3973 * gimple.c (gimple_replace_lhs): Move to tree-ssa.c and rename.
3974 (struct count_ptr_d, count_ptr_derefs, count_uses_and_derefs): Move to
3975 tree-ssa.c
3976 (create_gimple_tmp): Delete.
3977 (get_expr_type, build_assign, build_type_cast): Move to...
3978 * gimple-builder.c: New File.
3979 (get_expr_type): Relocate from gimple.c.
3980 (build_assign, build_type_cast): Change to only create ssanames.
3981 * gimple.h: Move prototypes to...
3982 * gimple-builder.h: New File. Here.
3983 * tree-ssa.h: And here.
3984 * tree-ssa.c (struct count_ptr_d, count_ptr_derefs,
3985 count_uses_and_derefs): Relocate from gimple.c.
3986 (gimple_replace_ssa_lhs): Renamed gimple_replace_ssa from gimple.c
3987 * tree-ssa-reassoc.c (repropagate_negates): Use gimple_replace_ssa_lhs.
3988 * tree-ssa-math-opts (execute_cse_reciprocals): Use
3989 gimple_replace_ssa_lhs.
3990 * asan.c: Include gimple-builder.h.
3991 * Makefile.in: Add gimple-builder.o.
3992
a2544177
RB
39932013-09-26 Richard Biener <rguenther@suse.de>
3994
3995 * tree-ssa-live.c (var_map_base_init): Handle SSA names with
3996 DECL_IGNORED_P base VAR_DECLs like anonymous SSA names.
3997 (loe_visit_block): Use gcc_checking_assert.
3998 * tree-ssa-coalesce.c (create_outofssa_var_map): Use
3999 gimple_assign_ssa_name_copy_p.
4000 (gimple_can_coalesce_p): Adjust according to the var_map_base_init
4001 change.
4002
6d1ca9a0
DE
40032013-09-26 David Edelsohn <dje.gcc@gmail.com>
4004
4005 * config/rs6000/t-rs6000 (rs6000.o): Remove.
4006 (rs6000-c.o): Use COMPILE and POSTCOMPILE.
4007
46e950db
RB
40082013-09-26 Richard Biener <rguenther@suse.de>
4009
4010 PR tree-optimization/58539
4011 * tree-vect-loop.c (vect_create_epilog_for_reduction): Honor
4012 the fact that debug statements are not taking part in loop-closed
4013 SSA construction.
4014
40ada30a
NC
40152013-09-26 Nick Clifton <nickc@redhat.com>
4016
4017 * config/msp430/msp430.c (msp430_expand_epilogue): Fix compile
4018 time warning message.
4019 (msp430_print_operand_raw): Delete unused letter parameter.
4020 (TARGET_PRINT_OPERAND_ADDRESS): Define.
4021 (msp430_print_operand_address): New function.
4022 (msp430_print_operand): Move address printing code from here to
4023 new function.
4024 * config/msp430/msp430.md (movsipsi2): Add comment in generated
4025 assembler.
4026 (zero_extendpsisi2): Likewise.
4027 (extendpsisi2): New pattern.
4028 (andneghi3): New pattern.
4029
38e8f663
YR
40302013-09-26 Yvan Roux <yvan.roux@linaro.org>
4031
4032 * config/aarch64/aarch64.opt (mlra): New option.
4033 * config/aarch64/aarch64.c (aarch64_lra_p): New function.
4034 (TARGET_LRA_P): Define.
4035
4167e8d4
EB
40362013-09-26 Eric Botcazou <ebotcazou@adacore.com>
4037
4038 * expr.c (expand_assignment): Remove obsolete comment.
4039
5254eac4
JL
40402013-09-25 Jeff Law <law@redhat.com>
4041
4042 * tree-flow.h (thread_through_all_blocks): Prototype moved into
4043 tree-ssa-threadupdate.h.
4044 (register_jump_thread): Similarly.
4045 * tree-ssa-threadupdate.h: New header file.
4046 * tree-ssa-dom.c: Include tree-ssa-threadupdate.h.
4047 * tree-vrp.c: Likewise.
4048 * tree-ssa-threadedge.c: Include tree-ssa-threadupdate.h.
4049 (thread_around_empty_blocks): Change type of path vector argument to
4050 an edge,type pair from just an edge. Initialize both elements when
4051 appending to a jump threading path. Tweak references to elements
4052 appropriately.
4053 (thread_across_edge): Similarly. Release memory for the elements
4054 as needed.
4055 * tree-ssa-threadupdate.c: Include tree-ssa-threadupdate.h.
4056 (dump_jump_thread_path): New function broken out from
4057 register_jump_thread.
4058 (register_jump_thread): Use dump_jump_thread_path. Change type of
4059 path vector entries. Search the path for NULL edges and dump
4060 the path if one is found. Tweak the conversion of path to 3-edge
4061 form to use the block copy type information embedded in the path.
4062
20f114a3
YR
40632013-09-25 Yvan Roux <yvan.roux@linaro.org>
4064
4065 * lra.c (update_inc_notes): Remove all REG_DEAD and REG_UNUSED notes.
4066
3936bafc
YR
40672013-09-25 Yvan Roux <yvan.roux@linaro.org>
4068 Vladimir Makarov <vmakarov@redhat.com>
4069
4070 * rtlanal.c (lsb_bitfield_op_p): New predicate for bitfield operations
4071 from the least significant bit.
4072 (strip_address_mutations): Add bitfield operations handling.
4073 (must_be_index_p): Add shifting and rotate operations handling.
4074 (set_address_base): Use must_be_base_p predicate.
4167e8d4 4075 (set_address_index): Use must_be_index_p predicate.
3936bafc 4076
b86f6e9e
AI
40772013-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
4078 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4079 Sergey Lega <sergey.s.lega@intel.com>
4080 Anna Tikhonova <anna.tikhonova@intel.com>
4081 Ilya Tocar <ilya.tocar@intel.com>
4082 Andrey Turetskiy <andrey.turetskiy@intel.com>
4083 Ilya Verbin <ilya.verbin@intel.com>
4084 Kirill Yukhin <kirill.yukhin@intel.com>
4085 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4086
4087 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
4088 Use new names.
4089 (ix86_expand_vector_move_misalign): Support new unaligned load and
4090 stores and use new names.
4091 (CODE_FOR_sse2_storedqu): Rename to ...
4092 (CODE_FOR_sse2_storedquv16qi): ... this.
4093 (CODE_FOR_sse2_loaddqu): Rename to ...
4094 (CODE_FOR_sse2_loaddquv16qi): ... this.
4095 (CODE_FOR_avx_loaddqu256): Rename to ...
4096 (CODE_FOR_avx_loaddquv32qi): ... this.
4097 (CODE_FOR_avx_storedqu256): Rename to ...
4098 (CODE_FOR_avx_storedquv32qi): ... this.
4099 * config/i386/i386.md (fpint_logic): New.
4100 * config/i386/sse.md (VMOVE): Extend for AVX512.
4101 (VF): Ditto.
4102 (VF_128_256): New.
4103 (VF_512): Ditto.
4104 (VI_UNALIGNED_LOADSTORE): Ditto.
4105 (sse2_avx_avx512f): Ditto.
4106 (sse2_avx2): Extend for AVX512.
4107 (sse4_1_avx2): Ditto.
4108 (avx2_avx512f): New.
4109 (sse): Extend for AVX512.
4110 (sse2): Ditto.
4111 (sse4_1): Ditto.
4112 (avxsizesuffix): Ditto.
4113 (sseintvecmode): Ditto.
4114 (ssePSmode): Ditto.
4115 (<sse>_loadu<ssemodesuffix><avxsizesuffix>): Ditto.
4116 (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Ditto.
4117 (<sse2>_loaddqu<avxsizesuffix>): Extend for AVX512 and rename to ...
4118 (<sse2_avx_avx512f>_loaddqu<mode>): ... this.
4119 (<sse2>_storedqu<avxsizesuffix>): Extend for AVX512 and rename to ...
4120 (<sse2_avx_avx512f>_storedqu<mode): ... this.
4121 (<sse>_movnt<mode>): Replace constraint "x" with "v".
4122 (STORENT_MODE): Extend for AVX512.
4123 (*absneg<mode>2): Replace constraint "x" with "v".
4124 (*mul<mode>3): Ditto.
4125 (*ieee_smin<mode>3): Ditto.
4126 (*ieee_smax<mode>3): Ditto.
4127 (avx_cmp<mode>3): Replace VF with VF_128_256.
4128 (*<sse>_maskcmp<mode>3_comm): Ditto.
4129 (<sse>_maskcmp<mode>3): Ditto.
4130 (<sse>_andnot<mode>3): Extend for AVX512.
4131 (<code><mode>3, anylogic): Replace VF with VF_128_256.
4132 (<code><mode>3, fpint_logic): New.
4133 (*<code><mode>3): Extend for AVX512.
4134 (avx512flogicsuff): New.
4135 (avx512f_<logic><mode>): Ditto.
4136 (<sse>_movmsk<ssemodesuffix><avxsizesuffix>): Replace VF with
4137 VF_128_256.
4138 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Ditto.
4139 (<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>): Ditto.
4140 (<sse4_1>_dp<ssemodesuffix><avxsizesuffix>): Ditto.
4141 (avx_vtest<ssemodesuffix><avxsizesuffix>): Ditto.
4142 (<sse4_1>_round<ssemodesuffix><avxsizesuffix>): Ditto.
4143 (xop_vpermil2<mode>3): Ditto.
4144 (*avx_vpermilp<mode>): Extend for AVX512 and rename to ...
4145 (*<sse2_avx_avx512f>_vpermilp<mode>): ... this.
4146 (avx_vpermilvar<mode>3): Extend for AVX512 and rename to ...
4147 (<sse2_avx_avx512f>_vpermilvar<mode>3): ... this.
4148
4d44d03c
TT
41492013-09-25 Tom Tromey <tromey@redhat.com>
4150
4151 * Makefile.in (PARTITION_H, LTO_SYMTAB_H, COMMON_TARGET_DEF_H)
4152 (RTL_ERROR_H, TRANS_MEM_H, COVERAGE_H, DEMANGLE_H, ALIAS_H)
4153 (SCHED_INT_H, SEL_SCHED_IR_H, SEL_SCHED_DUMP_H, VALTRACK_H, DDG_H)
4154 (GGC_INTERNAL_H, DECNUM_H, BACKTRACE_H, MKDEPS_H, TREE_HASHER_H)
4155 (TREE_SSA_LIVE_H, SSAEXPAND_H, DWARF2OUT_H, SCEV_H, OMEGA_H)
4156 (TREE_DATA_REF_H, IRA_INT_H, LRA_INT_H, DBGCNT_H, DATA_STREAMER_H)
4157 (GIMPLE_STREAMER_H, TREE_STREAMER_H, STREAMER_HOOKS_H)
4158 (TREE_VECTORIZER_H, IPA_INLINE_H, GSTAB_H, LIBFUNCS_H)
4159 (GRAPHITE_HTAB_H): Remove.
4160
86aaf68d
TT
41612013-09-25 Tom Tromey <tromey@redhat.com>
4162
4163 * config/mcore/t-mcore (CROSS_FLOAT_H): Remove.
4164
c987deb8
TT
41652013-09-25 Tom Tromey <tromey@redhat.com>
4166
4167 * config/t-glibc (glibc-c.o): Use COMPILE and POSTCOMPILE.
4168
9439747e
TT
41692013-09-25 Tom Tromey <tromey@redhat.com>
4170
4171 * config/i386/t-i386 (i386.o): Remove.
4172 (i386-c.o): Use COMPILE and POSTCOMPILE.
4173
aefc31a1
TT
41742013-09-25 Tom Tromey <tromey@redhat.com>
4175
4176 * Makefile.in ($(out_object_file)): Use COMPILE and POSTCOMPILE.
4177
b6541edc
TT
41782013-09-25 Tom Tromey <tromey@redhat.com>
4179
4180 * Makefile.in (graph.o, sbitmap.o, sparseset.o, gcc-ar.o)
4181 (gcc-ranlib.o, gcc-nm.o, collect2.o, collect2-aix.o, tlink.o)
4182 (lto-wrapper.o, default-c.o, attribs.o, incpath.o, prefix.o)
4183 (gcc.o, options.o, options-save.o, version.o, gtype-desc.o)
4184 (trans-mem.o, ggc-common.o, ggc-page.o, ggc-none.o, stringpool.o)
4185 (convert.o, double-int.o, lto-compress.o, data-streamer-in.o)
4186 (data-streamer-out.o, data-streamer.o, gimple-streamer-in.o)
4187 (gimple-streamer-out.o, tree-streamer.o, tree-streamer-in.o)
4188 (tree-streamer-out.o, streamer-hooks.o, lto-cgraph.o)
4189 (lto-streamer-in.o, lto-streamer-out.o, lto-section-in.o)
4190 (lto-section-out.o, lto-opts.o, lto-streamer.o, langhooks.o)
4191 (test-dump.o, tree.o, tree-dump.o, tree-inline.o, print-tree.o)
4192 (stor-layout.o, asan.o, tsan.o, ubsan.o, tree-ssa-tail-merge.o)
4193 (tree-ssa-structalias.o, tree-ssa-uninit.o, tree-ssa.o)
4194 (tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o)
4195 (tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o)
4196 (tree-ssa-phiprop.o, tree-ssa-ifcombine.o, tree-ssa-phiopt.o)
4197 (tree-nrv.o, tree-ssa-copy.o, tree-ssa-propagate.o)
4198 (tree-ssa-dom.o, tree-ssa-uncprop.o, tree-ssa-threadedge.o)
4199 (tree-ssa-threadupdate.o, tree-ssanames.o, tree-phinodes.o)
4200 (domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o)
4201 (tree-ssa-pre.o, tree-ssa-sccvn.o)
4202 (gimple-ssa-strength-reduction.o, tree-vrp.o, tree-cfg.o)
4203 (tree-cfgcleanup.o, tree-tailcall.o, tree-ssa-sink.o)
4204 (tree-nested.o, tree-if-conv.o, tree-iterator.o, tree-dfa.o)
4205 (tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o)
4206 (tree-ssa-loop-unswitch.o, tree-ssa-address.o)
4207 (tree-ssa-loop-niter.o, tree-ssa-loop-ivcanon.o)
4208 (tree-ssa-loop-ch.o, tree-ssa-loop-prefetch.o, tree-predcom.o)
4209 (tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-manip.o)
4210 (tree-ssa-loop-im.o, tree-ssa-math-opts.o, tree-ssa-alias.o)
4211 (tree-ssa-reassoc.o, tree-optimize.o, gimplify.o)
4212 (gimple-iterator.o, gimple-fold.o, gimple-low.o, omp-low.o)
4213 (tree-browser.o, omega.o, tree-chrec.o, tree-scalar-evolution.o)
4214 (tree-data-ref.o, sese.o, graphite.o, graphite-blocking.o)
4215 (graphite-clast-to-gimple.o, graphite-dependences.o)
4216 (graphite-interchange.o, graphite-poly.o)
4217 (graphite-scop-detection.o, graphite-sese-to-poly.o)
4218 (graphite-optimize-isl.o, tree-vect-loop.o)
4219 (tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o)
4220 (tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o)
4221 (vtable-verify.o, tree-loop-distribution.o, tree-parloops.o)
4222 (tree-stdarg.o, tree-object-size.o, internal-fn.o, gimple.o)
4223 (gimple-pretty-print.o, tree-mudflap.o, tree-nomudflap.o)
4224 (tree-pretty-print.o, tree-diagnostic.o, fold-const.o)
4225 (diagnostic.o, diagnostic-color.o, opts.o, opts-global.o)
4226 (opts-common.o, targhooks.o, common/common-targhooks.o, input.o)
4227 (toplev.o, hwint.o, passes.o, plugin.o, main.o, host-default.o)
4228 (rtl-error.o, rtl.o, print-rtl.o, rtlanal.o, varasm.o, function.o)
4229 (statistics.o, stmt.o, except.o, expr.o, dojump.o, builtins.o)
4230 (calls.o, expmed.o, explow.o, optabs.o, dbxout.o, debug.o)
4231 (sdbout.o, dwarf2out.o, dwarf2cfi.o, dwarf2asm.o, vmsdbgout.o)
4232 (xcoffout.o, godump.o, emit-rtl.o, real.o, realmpfr.o, dfp.o)
4233 (fixed-value.o, jump.o, simplify-rtx.o, symtab.o, cgraph.o)
4234 (cgraphunit.o, cgraphclones.o, cgraphbuild.o, varpool.o, ipa.o)
4235 (ipa-profile.o, ipa-devirt.o, ipa-prop.o, ipa-ref.o, ipa-cp.o)
4236 (ipa-split.o, ipa-inline.o, ipa-inline-analysis.o)
4237 (ipa-inline-transform.o, ipa-utils.o, ipa-reference.o)
4238 (ipa-pure-const.o, coverage.o, cselib.o, cse.o, dce.o, dumpfile.o)
4239 (dse.o, fwprop.o, web.o, ree.o, cprop.o, gcse.o, store-motion.o)
4240 (resource.o, lcm.o, mode-switching.o, tree-ssa-dce.o)
4241 (tree-call-cdce.o, tree-ssa-ccp.o, tree-ssa-strlen.o, tree-sra.o)
4242 (tree-switch-conversion.o, tree-complex.o, tree-emutls.o)
4243 (tree-vect-generic.o, df-core.o, df-problems.o, df-scan.o)
4244 (regstat.o, valtrack.o, var-tracking.o, profile.o, mcf.o)
4245 (tree-profile.o, value-prof.o, loop-doloop.o, alloc-pool.o)
4246 (auto-inc-dec.o, cfg.o, cfghooks.o, cfgexpand.o, cfgrtl.o)
4247 (cfganal.o, cfgbuild.o, cfgcleanup.o, cfgloop.o, cfgloopanal.o)
4248 (graphds.o, loop-iv.o, loop-invariant.o, cfgloopmanip.o)
4249 (loop-init.o, loop-unswitch.o, loop-unroll.o, dominance.o)
4250 (et-forest.o, combine.o, reginfo.o, bitmap.o, vec.o, hash-table.o)
4251 (reload.o, reload1.o, rtlhooks.o, postreload.o, postreload-gcse.o)
4252 (caller-save.o, bt-load.o, reorg.o, alias.o, stack-ptr-mod.o)
4253 (init-regs.o, ira-build.o, ira-costs.o, ira-conflicts.o)
4254 (ira-color.o, ira-emit.o, ira-lives.o, ira.o, lra.o)
4255 (lra-assigns.o, lra-coalesce.o, lra-constraints.o)
4256 (lra-eliminations.o, lra-lives.o, lra-spills.o, regmove.o)
4257 (combine-stack-adj.o, compare-elim.o, ddg.o, modulo-sched.o)
4258 (haifa-sched.o, sched-deps.o, sched-rgn.o, sched-ebb.o)
4259 (sched-vis.o, sel-sched.o, sel-sched-dump.o, sel-sched-ir.o)
4260 (final.o, recog.o, reg-stack.o, sreal.o, predict.o, lists.o)
4261 (bb-reorder.o, tracer.o, timevar.o, regcprop.o, regrename.o)
4262 (ifcvt.o, params.o, pointer-set.o, hooks.o, pretty-print.o)
4263 (errors.o, dbgcnt.o, lower-subreg.o, target-globals.o)
4264 (hw-doloop.o, file-find.o, context.o, $(common_out_object_file))
4265 (insn-attrtab.o, insn-automata.o, insn-dfatab.o, insn-emit.o)
4266 (insn-enums.o, insn-extract.o, insn-latencytab.o, insn-modes.o)
4267 (insn-opinit.o, insn-output.o, insn-peep.o, insn-preds.o)
4268 (insn-recog.o, intl.o, cppbuiltin.o, cppdefault.o, gcov.o)
4269 (gcov-dump.o): Remove.
4270 (default-c.o): Use COMPILE and POSTCOMPILE.
4271 (CFLAGS-gcc.o): New variable.
4272 ($(common_out_object_file)): Use COMPILE and POSTCOMPILE.
4273
8c796d19
TT
42742013-09-25 Tom Tromey <tromey@redhat.com>
4275
4276 * Makefile.in (c-family/cppspec.o, c-family/c-common.o)
4277 (c-family/c-cppbuiltin.o, c-family/c-dump.o, c-family/c-format.o)
4278 (c-family/c-gimplify.o, c-family/c-lex.o, c-family/c-omp.o)
4279 (c-family/c-opts.o, c-family/c-pch.o, c-family/c-ppoutput.o)
4280 (c-family/c-pragma.o, c-family/c-pretty-print.o)
4281 (c-family/c-semantics.o, c-family/c-ada-spec.o)
4282 (c-family/array-notation-common.o, c-family/stub-objc.o)
4283 (c-family/c-ubsan.o): Remove.
4284
0a6c2227
TT
42852013-09-25 Tom Tromey <tromey@redhat.com>
4286
4287 * Makefile.in (C_TREE_H): Reference c/c-tree.h.
4288
f3bc55f0
TT
42892013-09-25 Tom Tromey <tromey@redhat.com>
4290
4291 * Makefile.in (DRIVER_DEFINES): Use $(and), not shell code,
4292 to add -DENABLE_SHARED_LIBGCC.
4293 (gcc.o): Don't use subshell.
4294
c11c795e
TT
42952013-09-25 Tom Tromey <tromey@redhat.com>
4296
4297 * Makefile.in (OUTPUT_OPTION): Define as "-o $@".
4298 * configure.ac: Don't invoke AM_PROG_CC_C_O.
4299 (NO_MINUS_C_MINUS_O, OUTPUT_OPTION): Don't subst.
4300 * configure, config.in: Rebuild.
4301
043378c3
TT
43022013-09-25 Tom Tromey <tromey@redhat.com>
4303
4304 * Makefile.in (CCDEPMODE, DEPDIR, depcomp, COMPILE.base)
4305 (COMPILE, POSTCOMPILE): New variables.
4306 (.cc.o .c.o): Use COMPILE, POSTCOMPILE.
4307 (DEPFILES): New variable.
4308 Include ".Po" files.
4309 * configure.ac: Add checks for dependency checking.
4310 * configure, aclocal.m4: Regenerate.
4311
eab34643
TT
43122013-09-25 Tom Tromey <tromey@redhat.com>
4313
4314 * Makefile.in (ALL_HOST_BACKEND_OBJS): Add lto-wrapper.o.
7a5911d3 4315 ($(ALL_HOST_OBJS)): Move order-only dependency to end of file.
eab34643 4316
d2db5e91
TT
43172013-09-25 Tom Tromey <tromey@redhat.com>
4318
4319 * Makefile.in (generated_files): Add options.h,
4320 target-hooks-def.h, insn-opinit.h,
4321 common/common-target-hooks-def.h, pass-instances.def,
4322 c-family/c-target-hooks-def.h.
4323
af33629e
JL
43242013-09-25 Jeff Law <law@redhat.com>
4325
4326 * tree-ssa-threadedge.c (thread_across_edge): Use foo.last () rather
4327 than foo[foo.length () - 1] to access last member in a vec.
4328 * tree-ssa-threadupdate.c (register_jump_thread): Similarly.
4329
ed0d3051
RB
43302013-09-25 Richard Biener <rguenther@suse.de>
4331
4332 PR middle-end/58521
4333 * tree.c (iterative_hash_expr): Remove MEM_REF special handling.
4334
123485ca
JH
43352013-09-25 Jan Hubicka <jh@suse.cz>
4336
4337 * cgraph.c (cgraph_resolve_speculation): Use semantical equivalency
4338 test.
4339
d70b0f1f
MP
43402013-09-25 Marek Polacek <polacek@redhat.com>
4341
4342 PR sanitizer/58420
4343 * ubsan.c (ubsan_type_descriptor): Handle IDENTIFIER_NODEs
4344 when determining the type name.
4345
e3f02798
OE
43462013-09-24 Oleg Endo <olegendo@gcc.gnu.org>
4347
4348 * config/sh/sh.md: Fix formatting.
4349
7a5911d3 43502013-09-24 Xinliang David Li <davidxl@google.com>
4f17aa0b 4351
7a5911d3
UB
4352 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Check
4353 max peel iterations parameter.
4f17aa0b
XDL
4354 * param.def: New parameter.
4355 * doc/invoke.texi: Document New parameter.
4356
0498471b
CL
43572013-09-24 Christophe Lyon <christophe.lyon@linaro.org>
4358
4359 * gimple-pretty-print.c: Various whitespace tweaks.
4360 * tree-core.h: Likewise.
4361 * tree-pretty-print.c: Likewise.
4362 * tree-ssa-alias.c: Likewise.
4363 * tree-ssa-copy.c: Likewise.
4364 * tree-ssanames.c: Likewise.
4365 * tree-ssanames.h: Likewise.
4366 * tree-vrp.c: Likewise.
4367
5a8c2b57
AM
43682013-09-24 Alan Modra <amodra@gmail.com>
4369
4370 PR middle-end/57134
4371 PR middle-end/57586
7a5911d3
UB
4372 * stmt.c (expand_asm_operands): Call expand_expr with EXPAND_MEMORY
4373 for output operands that disallow regs. Don't use EXPAND_WRITE on
4374 inout operands.
5a8c2b57 4375
f40333af
RB
43762013-09-24 Richard Biener <rguenther@suse.de>
4377
4378 PR middle-end/58513
4379 * tree.c (reference_alias_ptr_type): Move ...
4380 * alias.c (reference_alias_ptr_type): ... here and implement
4381 in terms of the new reference_alias_ptr_type_1.
4382 (ref_all_alias_ptr_type_p): New helper.
4383 (get_deref_alias_set_1): Drop flag_strict_aliasing here,
4384 use ref_all_alias_ptr_type_p.
4385 (get_deref_alias_set): Add flag_strict_aliasing check here.
4386 (reference_alias_ptr_type_1): New function, split out from ...
4387 (get_alias_set): ... here.
4388 (alias_ptr_types_compatible_p): New function.
4389 * alias.h (reference_alias_ptr_type): Declare.
4390 (alias_ptr_types_compatible_p): Likewise.
4391 * tree.h (reference_alias_ptr_type): Remove.
4392 * fold-const.c (operand_equal_p): Use alias_ptr_types_compatible_p
4393 to compare MEM_REF alias types.
4394
583e8bf5
RB
43952013-09-24 Richard Biener <rguenther@suse.de>
4396
4397 * tree-vrp.c (vrp_finalize): Check for SSA name presence.
4398
5e8586d7
MM
43992013-09-23 Michael Meissner <meissner@linux.vnet.ibm.com>
4400
19c3e797
MM
4401 * config/rs6000/rs6000.c (rs6000_vector_reload): Delete, combine
4402 reload helper function arrays into a single array reg_addr.
4403 (reload_fpr_gpr): Likewise.
4404 (reload_gpr_vsx): Likewise.
4405 (reload_vsx_gpr): Likewise.
4406 (struct rs6000_reg_addr): Likewise.
4407 (reg_addr): Likewise.
4408 (rs6000_debug_reg_global): Change rs6000_vector_reload,
4409 reload_fpr_gpr, reload_gpr_vsx, reload_vsx_gpr uses to reg_addr.
4410 (rs6000_init_hard_regno_mode_ok): Likewise.
4411 (rs6000_secondary_reload_direct_move): Likewise.
4412 (rs6000_secondary_reload): Likewise.
4413
5e8586d7
MM
4414 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add new
4415 constraints: wu, ww, and wy. Repurpose wv constraint added during
4416 power8 changes. Put wg constraint in alphabetical order.
4417
4418 * config/rs6000/rs6000.opt (-mvsx-scalar-float): New debug switch
4419 for future work to add ISA 2.07 VSX single precision support.
4420 (-mvsx-scalar-double): Change default from -1 to 1, update
4421 documentation comment.
4422 (-mvsx-scalar-memory): Rename debug switch to -mupper-regs-df.
4423 (-mupper-regs-df): New debug switch to control whether DF values
4424 can go in the traditional Altivec registers.
4425 (-mupper-regs-sf): New debug switch to control whether SF values
4426 can go in the traditional Altivec registers.
4427
4428 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print wu, ww,
4429 and wy constraints.
4430 (rs6000_init_hard_regno_mode_ok): Use ssize_t instead of int for
4431 loop variables. Rename -mvsx-scalar-memory to -mupper-regs-df.
4432 Add new constraints, wu/ww/wy. Repurpose wv constraint.
4433 (rs6000_debug_legitimate_address_p): Print if we are running
4434 before, during, or after reload.
4435 (rs6000_secondary_reload): Add a comment.
4436 (rs6000_opt_masks): Add -mupper-regs-df, -mupper-regs-sf.
4437
4438 * config/rs6000/constraints.md (wa constraint): Sort w<x>
4439 constraints. Update documentation string.
4440 (wd constraint): Likewise.
4441 (wf constraint): Likewise.
4442 (wg constraint): Likewise.
4443 (wn constraint): Likewise.
4444 (ws constraint): Likewise.
4445 (wt constraint): Likewise.
4446 (wx constraint): Likewise.
4447 (wz constraint): Likewise.
4448 (wu constraint): New constraint for ISA 2.07 SFmode scalar
4449 instructions.
4450 (ww constraint): Likewise.
4451 (wy constraint): Likewise.
358e1993
MM
4452 (wv constraint): Repurpose ISA 2.07 constraint that we did not use
4453 in the previous submissions.
5e8586d7
MM
4454 * doc/md.texi (PowerPC and IBM RS6000): Likewise.
4455
e5af9ddd
RS
44562013-09-23 Richard Sandiford <rdsandiford@googlemail.com>
4457
4458 * doc/rtl.texi (REG_NOTES): Say that int_list can also be used.
4459 (REG_BR_PROB): Say that the probability is stored in an int_list.
4460 * reg-notes.def: Update commentary to mention INT_LIST.
4461 * rtl.def (EXPR_LIST, INSN_LIST): Capitalize comments.
4462 (INT_LIST): New rtx.
4463 * rtl.h (add_int_reg_note, add_shallow_copy_of_reg_note): Declare.
4464 * rtlanal.c (int_reg_note_p): New function.
4465 (alloc_reg_note): Assert that the note does not have an int argument.
4466 (add_int_reg_note, add_shallow_copy_of_reg_note): New functions.
4467 * combine.c (distribute_notes): Use add_shallow_copy_of_rtx.
4468 * cse.c (cse_process_notes_1): Expect REG_EQUAL to be an EXPR_LIST
4469 rather than an INSN_LIST. Handle INT_LIST.
4470 * ifcvt.c (cond_exec_process_insns): Take the probability as an int
4471 rather than an rtx. Use gen_rtx_INT_LIST to create a REG_BR_PROB note.
4472 (cond_exec_process_if_block): Use XINT to extract REG_BR_PROB values.
4473 Manipulate them as ints rather than rtxes.
4474 * reg-stack.c (subst_asm_stack_regs): Only handle EXPR_LIST notes.
4475 * regmove.c (copy_src_to_dest): Likewise.
4476 * sched-vis.c (print_insn_with_notes): Handle INT_LIST.
4477
4478 * config/i386/winnt.c (i386_pe_seh_unwind_emit): Sink pat assignment
4479 into the cases that need it.
4480 * config/arm/arm.c (arm_unwind_emit): Likewise.
4481
4482 * asan.c (asan_clear_shadow): Use add_int_reg_note for REG_BR_PROB.
4483 * emit-rtl.c (try_split, emit_copy_of_insn_after): Likewise.
4484 * loop-doloop.c (add_test, doloop_modify): Likewise.
4485 * loop-unswitch.c (compare_and_jump_seq): Likewise.
4486 * optabs.c (emit_cmp_and_jump_insn_1): Likewise.
4487 * predict.c (combine_predictions_for_insn): Likewise.
4488 * print-rtl.c (print_rtx): Handle INT_LIST.
4489 * config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): Likewise.
4490 * config/alpha/alpha.c (emit_unlikely_jump): Likewise.
4491 * config/arm/arm.c (emit_unlikely_jump): Likewise.
4492 * config/i386/i386.c (ix86_expand_split_stack_prologue): Likewise.
4493 (ix86_split_fp_branch, predict_jump): Likewise.
4494 * config/rs6000/rs6000.c (emit_unlikely_jump): Likewise.
4495 * config/sh/sh.c (expand_cbranchsi4): Likewise.
4496 * config/spu/spu.c (ea_load_store_inline): Likewise.
4497
4498 * cfgbuild.c (compute_outgoing_frequencies): Use XINT to access the
4499 value of a REG_BR_PROB note.
4500 * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
4501 (update_br_prob_note, rtl_verify_edges, purge_dead_edges): Likewise.
4502 * emit-rtl.c (try_split): Likewise.
4503 * predict.c (br_prob_note_reliable_p): Likewise.
4504 (invert_br_probabilities, combine_predictions_for_insn): Likewise.
4505 * reorg.c (mostly_true_jump): Likewise.
4506 * config/bfin/bfin.c (cbranch_predicted_taken_p): Likewise.
4507 * config/frv/frv.c (frv_print_operand_jump_hint): Likewise.
4508 * config/i386/i386.c (ix86_print_operand): Likewise.
4509 * config/ia64/ia64.c (ia64_print_operand): Likewise.
4510 * config/mmix/mmix.c (mmix_print_operand): Likewise.
4511 * config/rs6000/rs6000.c (output_cbranch): Likewise.
4512 * config/s390/s390.c (s390_expand_tbegin): Likewise.
4513 * config/sh/sh.c (sh_print_operand, sh_adjust_cost): Likewise.
4514 * config/sparc/sparc.c (output_cbranch): Likewise.
4515 * config/spu/spu.c (get_branch_target): Likewise.
4516 * config/tilegx/tilegx.c (cbranch_predicted_p): Likewise.
4517 * config/tilepro/tilepro.c (cbranch_predicted_p): Likewise.
4518
450ad0cd
JH
45192013-09-23 Jan Hubicka <jh@suse.cz>
4520
4521 * ipa-cp.c (ipa_get_indirect_edge_target_1): Add sanity check
4522 for ipa-devirt.
4523 * ipa-utils.h (possible_polymorphic_call_target_p): New function.
4524 * ipa-devirt.c (possible_polymorphic_call_target_p): Be tolerant
4525 of external calls
4526 * gimple-fold.c: Include ipa-utils.h and gimple-pretty-print.h
4527 (gimple_fold_call): Dump inconsistent devirtualizations; add
4528 sanity check for type based devirtualizations.
4529 * ipa-prop.c: Include ipa-utils.h
4530 (ipa_intraprocedural_devirtualization): Add sanity check.
4531 (try_make_edge_direct_virtual_call): Likewise.
4532
cefce769
EB
45332013-09-23 Eric Botcazou <ebotcazou@adacore.com>
4534
4535 * tree-ssa-ccp.c (insert_clobber_before_stack_restore): Recurse on copy
4536 assignment statements.
4537
a895a2b8
KV
45382013-09-23 Kugan Vivekanandarajah <kuganv@linaro.org>
4539
4540 * gimple-pretty-print.c (dump_ssaname_info): New function.
4541 (dump_gimple_phi): Call it.
4542 (pp_gimple_stmt_1): Likewise.
4543 * tree-core.h (tree_ssa_name): New union ssa_name_info_type field.
4544 (range_info_def): Declare.
4545 * tree-pretty-print.c (pp_double_int): New function.
4546 (dump_generic_node): Call it.
4547 * tree-pretty-print.h (pp_double_int): Declare.
4548 * tree-ssa-alias.c (dump_alias_info): Check pointer type.
4549 * tree-ssanames.h (range_info_def): New structure.
4550 (value_range_type): Move definition here.
4551 (set_range_info, value_range_type, duplicate_ssa_name_range_info):
4552 Declare.
4553 * tree-ssanames.c (make_ssa_name_fn): Check pointer type at
4554 initialization.
4555 (set_range_info): New function.
4556 (get_range_info): Likewise.
4557 (duplicate_ssa_name_range_info): Likewise.
4558 (duplicate_ssa_name_fn): Check pointer type and call
4559 duplicate_ssa_name_range_info.
4560 * tree-ssa-copy.c (fini_copy_prop): Likewise.
4561 * tree-vrp.c (value_range_type): Remove definition, now in
4562 tree-ssanames.h.
7a5911d3 4563 (vrp_finalize): Call set_range_info to update value range of SSA_NAMEs.
a895a2b8
KV
4564 * tree.h (SSA_NAME_PTR_INFO): Macro changed to access via union.
4565 (SSA_NAME_RANGE_INFO): New macro.
4566
984af6ac
RB
45672013-09-23 Richard Biener <rguenther@suse.de>
4568
4569 PR tree-optimization/58464
4570 * tree-ssa-pre.c (phi_trans_lookup): Remove.
7a5911d3 4571 (phi_trans_add): Change to add conditionally on being not present.
984af6ac
RB
4572 (phi_translate_1): Remove recursion detection here.
4573 (phi_translate): Pre-seed the cache with NULL to catch
4574 recursion here in a more generic way.
4575 (bitmap_find_leader): Adjust comment.
4576 (get_representative_for): Dump value-numbers.
4577 (create_expression_by_pieces): Likewise.
4578 (insert_into_preds_of_block): Likewise.
4579
0e26cf79
CB
45802013-09-23 Christian Bruel <christian.bruel@st.com>
4581
4582 PR target/58475
4583 * config/sh/sh.md (movsf_ie): Allow fpul_operand.
4584 * config/sh/predicate.md (arith_reg_operand): Disallow FPUL_REG.
4585
4d0e5b54
JG
45862013-09-23 James Greenhalgh <james.greenhalgh@arm.com>
4587
4588 Revert r202780:
4589 2013-09-20 Renlin Li <renlin.li@arm.com>
4590
7a5911d3
UB
4591 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use
4592 plus_constant.
4d0e5b54
JG
4593 (aarch64_expand_epilogue): Likewise.
4594 (aarch64_legitimize_reload_address): Likewise.
4595
ca081cc8
EB
45962013-09-22 Eric Botcazou <ebotcazou@adacore.com>
4597
4598 * gimplify.c (gimplify_asm_expr): Reset the TREE_CHAIN of clobbers to
4599 NULL_TREE before pushing them onto the vector. Likewise for labels.
4600
8fc53a5f
EB
46012013-09-21 Eric Botcazou <ebotcazou@adacore.com>
4602
4603 * config/ia64/predicates.md (ia64_cbranch_operator): Accept unordered
4604 comparison operators when -fno-trapping-math is in effect.
4605 * config/ia64/ia64.c (ia64_expand_compare): Add support for unordered
4606 comparison operators in TFmode and assert that unsupported operators
4607 cannot reach here.
4608 (ia64_print_operand): Likewise.
4609
46102013-09-21 Jan Hubicka <jh@suse.cz>
0ca6c49f
JH
4611
4612 * x86-tune.def (partial_reg_stall): Disable for CoreI7 and newer.
4613 (sse_typeless_stores): Enable for core
4614 (sse_load0_by_pxor): Likewise.
4615 (four_jump_limit): Disable for core.
4616 (pad_returns): Likewise.
4617 (avoid_vector_decode): Likewise.
4618 (fuse_cmp_and_branch): Enable for cores.
4619 * i386.c (x86_accumulate_outgoing_args): Disable for cores.
4620
578e51e6
JDA
46212013-09-20 John David Anglin <danglin@gcc.gnu.org>
4622
96ce28a3
JDA
4623 PR middle-end/56791
4624 * config/pa/pa.c (pa_option_override): Disable auto increment and
4625 decrement instructions until reload is completed.
4626
578e51e6
JDA
4627 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Define
4628 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2,
4629 and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
4630
6fcd3a13 46312013-09-20 DJ Delorie <dj@redhat.com>
7a5911d3 4632 Nick Clifton <nickc@redhat.com>
6fcd3a13
DD
4633
4634 * config/rl78/rl78.c: Various whitespace and comment tweaks.
4635 (need_to_save): Save bank 0 on interrupts.
4636 (characterize_address): Strip far address wrappers.
4637 (rl78_as_legitimate_address): Likewise.
4638 (transcode_memory_rtx): Likewise.
4639 (rl78_peep_movhi_p): Disable this peephole after devirt.
4640 (rl78_propogate_register_origins): Forget all origins when a
4641 CLOBBER is seen.
4642 * config/rl78/rl78-virt.md: Various whitespace tweaks.
4643 * config/rl78/rl78-real.md: Various whitespace tweaks. Additional
4644 peephole2's.
4645 * config/rl78/rl78.md (sel_rb): Disable for G10 just in case.
4646 * config/rl78/rl78-expand.md (movqi): Check for subregs of consts.
4647 * config/rl78/rl78.h (LINK_SPEC): Pass -gc-sections unless
4648 relocating.
4649 * config/rl78/constraints.md: Various whitespace and paren tweaks.
4650
4a08db33
JDA
46512013-09-20 John David Anglin <danglin@gcc.gnu.org>
4652
4653 * config/pa/pa.md: In "scc" insn patterns, change output template to
4654 handle const0_rtx in reg_or_0_operand operands.
4655
7691132c
JBG
46562013-09-20 Martin Husemann <martin@NetBSD.org>
4657
4658 PR target/56875
4659 * config/vax/vax.c (vax_output_int_move): Use D format specifier.
4660 * config/vax/vax.md (ashldi3, <unnamed>): Ditto.
4661
a3cc13cc
RB
46622013-09-20 Richard Biener <rguenther@suse.de>
4663
4664 PR middle-end/58484
4665 * tree-scalar-evolution.c (struct scev_info_str): Shrink by
4666 remembering SSA name version and block index.
4667 (new_scev_info_str): Adjust.
4668 (hash_scev_info): Likewise. Also hash the block index.
4669 (eq_scev_info): Adjust.
4670 (find_var_scev_info): Likewise.
4671 (struct instantiate_cache_entry): Remove.
4672 (struct instantiate_cache_type): Use a htab to map name, block
4673 to chrec.
4674 (instantiate_cache_type::~instantiate_cache_type): Adjust.
4675 (get_instantiated_value_entry): Likewise.
4676 (hash_idx_scev_info, eq_idx_scev_info): New functions.
4677 (instantiate_scev_name): Adjust.
4678
925f3871
JL
46792013-09-20 Jeff Law <law@redhat.com>
4680
4681 * tree-ssa-dom.c (record_temporary_equivalences): Add comment.
4682
2888c331
YZ
46832013-09-20 Yufeng Zhang <yufeng.zhang@arm.com>
4684
4685 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args):
4686 Call aarch64_simd_expand_args to update op[argc].
4687
0a811e96
BS
46882013-09-20 Basile Starynkevitch <basile@starynkevitch.net>
4689
7a5911d3
UB
4690 * plugin.c (parse_plugin_arg_opt): Accept equal sign inside
4691 plugin argument.
0a811e96 4692
0078f462
BS
46932013-09-20 Basile Starynkevitch <basile@starynkevitch.net>
4694
7a5911d3
UB
4695 * gengtype.c (file_rules): Added rule for *.cc files.
4696 (get_output_file_with_visibility): Give fatal message when no
4697 rules found.
0078f462 4698
d20e48b0
RL
46992013-09-20 Renlin Li <renlin.li@arm.com>
4700
4701 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use plus_constant.
4702 (aarch64_expand_epilogue): Likewise.
4703 (aarch64_legitimize_reload_address): Likewise.
4704
59bb1544
BE
47052013-09-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
4706
4707 PR middle-end/57748
4708 * expr.c (expand_assignment): Remove misalignp code path.
4709
a5430019
MP
47102013-09-20 Marek Polacek <polacek@redhat.com>
4711
4712 PR sanitizer/58413
4713 * ubsan.c (get_ubsan_type_info_for_type): Use TYPE_SIZE instead of
4714 TYPE_PRECISION. Add asserts.
4715
9fed7f3a
RB
47162013-09-20 Richard Biener <rguenther@suse.de>
4717
4718 PR tree-optimization/58453
4719 * tree-loop-distribution.c (distribute_loop): Apply the cost
4720 model for -ftree-loop-distribute-patterns, too.
4721
a820c834
RB
47222013-09-20 Richard Biener <rguenther@suse.de>
4723
4724 PR middle-end/58473
4725 * tree-chrec.h (build_polynomial_chrec): Use gcc_checking_assert,
4726 make type comparison less strict.
4727
3cbe17f7
AM
47282013-09-20 Alan Modra <amodra@gmail.com>
4729
4730 * configure: Regenerate.
4731 * aclocal.m4: Regenerate.
4732
87fccdbb
MP
47332013-09-20 Marek Polacek <polacek@redhat.com>
4734
4735 PR other/58467
4736 * doc/extend.texi: Document that attribute used is meant to be used
4737 on variables with static storage duration.
4738
8928eff3
JJ
47392013-09-19 Jakub Jelinek <jakub@redhat.com>
4740
4741 PR tree-optimization/58472
4742 * tree-vect-stmts.c (vectorizable_store, vectorizable_load): For
4743 simd_lane_access set inv_p = false.
4744 * omp-low.c (lower_rec_input_clauses): Set TREE_NO_WARNING on
4745 the simduid magic VAR_DECL.
4746
b7b28c53
JH
47472013-09-19 Jan Hubicka <jh@suse.cz>
4748
4749 * i386.c (generic_memcpy, generic_memset): Fix 32bit template.
4750
83ae86f5
JL
47512013-09-17 Jeff Law <law@redhat.com>
4752
4753 * tree-ssa-dom.c (record_temporary_equivalences): New function
4754 split out of dom_opt_dom_walker::after_dom_children.
4755 (dom_opt_dom_walker::thread_across_edge): Move common code
4756 in here from dom_opt_dom_walker::after_dom_children.
4757 (dom_opt_dom_walker::after_dom_children): Corresponding simplifictions.
4758
9d532162
JH
47592013-09-19 Jan Hubicka <jh@suse.cz>
4760
4761 * i386.h (TARGET_GENERIC32, TARGET_GENERIC64): Remove.
4762 (TARGET_GENERIC): Use PROCESOR_GENERIC
4763 (enum processor_type): Unify generic32 and 64.
4764 * i386.md (cpu): Likewise.
4765 * x86-tune.def (use_leave): Enable for generic32.
4766 (avoid_vector_decode, slow_imul_imm32_mem, slow_imul_imm8): Likewise.
4767 * athlon.md: Change generic64 to generic in all occurences.
4768 * i386-c.c (ix86_target_macros_internal): Unify generic64 and 32.
4769 (ix86_target_macros_internal): Likewise.
4770 * driver-i386.c (host_detect_local_cpu): Likewise.
7a5911d3
UB
4771 * i386.c (generic64_memcpy, generic64_memset, generic64_cost): Rename
4772 to ..
9d532162
JH
4773 (generic_memcpy, generic_memset, generic_cost): This one.
4774 (generic32_memcpy, generic32_memset, generic32_cost): Remove.
4775 (m_GENERIC32, m_GENERIC64): Remove.
4776 (m_GENERIC): Turn into one flag.
4777 (processor_target): Unify generic tunnings.
4778 (ix86_option_override_internal): Replace generic32/64 by generic.
4779 (ix86_issue_rate): Likewise.
4780 (ix86_adjust_cost): Likewise.
4781
188c7d00
JH
47822013-09-19 Jan Hubicka <jh@suse.cz>
4783
4784 * cgraph.c (cgraph_create_edge_1): Avoid uninitialized read
4785 of speculative flag.
4786
4befd127
JJ
47872013-09-19 Jakub Jelinek <jakub@redhat.com>
4788
4789 * omp-low.c (expand_omp_sections): Always pass len - 1 to
4790 GOMP_sections_start, even if !exit_reachable.
4791
8a26ad39
VM
47922013-09-18 Vladimir Makarov <vmakarov@redhat.com>
4793
4794 * lra-constraints.c (need_for_all_save_p): Use macro
4795 HARD_REGNO_CALL_PART_CLOBBERED.
4796 * lra-lives.c (check_pseudos_live_through_calls): Use the macro to
4797 set up pseudo conflict hard regs.
4798
09487185
MM
47992013-09-18 Michael Meissner <meissner@linux.vnet.ibm.com>
4800
4801 PR target/58452
4802 * config/rs6000/paired.md (movmisalignv2sf): Fix to allow memory
4803 operands.
4804
080cbf9e
VM
48052013-09-18 Vladimir Makarov <vmakarov@redhat.com>
4806
4807 PR rtl-optimization/58438
4808 * lra.c (lra): Clear lra_optional_reload_pseudos in upper loop.
4809 * lra-constraints.c (undo_optional_reloads): Keep optional reloads
4810 from previous subpasses.
4811
a0f70fcb
RE
48122013-09-18 Richard Earnshaw <rearnsha@arm.com>
4813
4814 * arm.c (arm_get_frame_offsets): Validate architecture supports
4815 LDRD/STRD before accepting the tuning preference.
4816 (arm_expand_prologue): Likewise.
4817 (arm_expand_epilogue): Likewise.
4818
0547c9b6
RB
48192013-09-18 Richard Biener <rguenther@suse.de>
4820
4821 PR tree-optimization/58417
4822 * tree-chrec.c (chrec_fold_plus_1): Assert that we do not
4823 have chrecs with symbols defined in the loop as operands.
4824 (chrec_fold_multiply): Likewise.
4825 * tree-scalar-evolution.c (interpret_rhs_expr): Instantiate
4826 parameters before folding binary operations.
4827 (struct instantiate_cache_entry_hasher): Remove.
4828 (struct instantiate_cache_type): Use a pointer-map.
4829 (instantiate_cache_type::instantiate_cache_type): New function.
4830 (instantiate_cache_type::get): Likewise.
4831 (instantiate_cache_type::set): Likewise.
4832 (instantiate_cache_type::~instantiate_cache_type): Adjust.
4833 (get_instantiated_value_entry): Likewise.
4834 (global_cache): New global.
4835 (instantiate_scev_r, instantiate_scev_poly, instantiate_scev_binary,
4836 instantiate_array_ref, instantiate_scev_convert, instantiate_scev_3,
4837 instantiate_scev_2, instantiate_scev_1): Do not pass along cache.
4838 (instantiate_scev_name): Adjust.
4839 (instantiate_scev): Construct global instead of local cache.
4840 (resolve_mixers): Likewise.
4841
309dc1aa
DM
48422013-09-18 Daniel Morris <danielm@ecoscentric.com>
4843 Paolo Carlini <paolo.carlini@oracle.com>
4844
4845 PR c++/58458
4846 * doc/implement-cxx.texi: Fix references to the C++ standards.
4847
995a1b4a
JJ
48482013-09-18 Jakub Jelinek <jakub@redhat.com>
4849
4850 * omp-low.c (copy_var_decl): Copy DECL_ATTRIBUTES.
4851 * tree-vect-data-refs.c (vect_analyze_data_refs): For
4852 simd_lane_access drs, update also DR_ALIGNED_TO.
4853
ce6923c5
MP
48542013-09-18 Marek Polacek <polacek@redhat.com>
4855
4856 PR sanitizer/58411
4857 * doc/extend.texi: Document no_sanitize_undefined attribute.
4858 * builtins.c (fold_builtin_0): Don't sanitize function if it has the
4859 no_sanitize_undefined attribute.
4860
d30d00a2
NC
48612013-09-18 Nick Clifton <nickc@redhat.com>
4862
4863 * config/msp430/msp430.h (ASM_SPEC): Pass -md on to the assembler.
4864 (ASM_DECLARE_FUNCTION_NAME): Define.
4865
4d9192b5
TS
48662013-09-17 Trevor Saunders <tsaunders@mozilla.com>
4867
4868 * compare-elim.c (find_comparison_dom_walker): New class
4869 (find_comparisons_in_bb): Rename to
4870 find_comparison_dom_walker::before_dom_children
4871 (find_comparisons): Adjust
4872 * domwalk.c (walk_dominator_tree): Rename to dom_walker::walk, and
4873 adjust.
4874 (init_walk_dominator_tree, fini_walk_dominator_tree): Remove
4875 * domwalk.h (dom_walk_data): Convert it To a class dom_walker.
4876 (init_walk_dominator_tree): Remove declaration.
4877 (fini_walk_dominator_tree): Remove declaration.
4878 * fwprop.c (single_def_use_dom_walker): New class
4879 (single_def_use_enter_block): Convert to
4880 single_def_use_dom_walker::before_dom_children.
4881 (single_def_use_leave_block): Convert to
4882 single_def_use_dom_walker::after_dom_children.
4883 (build_single_def_use_links): Adjust.
4884 * gimple-ssa-strength-reduction.c (find_candidates_dom_walker): New
4885 class.
4886 (find_candidates_in_block): Convert to
4887 find_candidates_dom_walker::before_dom_children.
4888 (execute_strength_reduction): Adjust.
4889 * graphite-sese-to-poly.c (struct bsc, build_sese_conditions): Remove.
4890 (sese_dom_walker): New class.
4891 (sese_dom_walker::sese_dom_walker): New constructor.
4892 (sese_dom_walker::~sese_dom_walker): New destructor.
4893 (build_sese_conditions_before): Convert to
4894 sese_dom_walker::before_dom_children.
4895 (build_sese_conditions_after): Convert to
4896 sese_dom_walker::after_dom_children.
4897 (build_poly_scop): Adjust
4898 * tree-into-ssa.c (rewrite_dom_walker): New class
4899 (rewrite_enter_block): Convert to
4900 rewrite_dom_walker::before_dom_children.
4901 (rewrite_leave_block): Convert to
4902 rewrite_dom_walker::after_dom_children.
4903 (rewrite_update_dom_walker): New class.
4904 (rewrite_update_enter_block): Convert to
4905 rewrite_update_dom_walker::before_dom_children.
4906 (rewrite_update_leave_block): Convert to
4907 rewrite_update_dom_walker::after_dom_children.
4908 (rewrite_blocks, rewrite_into_ssa): Adjust.
4909 (mark_def_dom_walker): New class.
4910 (mark_def_dom_walker::mark_def_dom_walker): New constructor.
4911 (mark_def_dom_walker::~mark_def_dom_walker): New destructor.
4912 (mark_def_sites_blocks): Convert to
4913 mark_def_dom_walker::before_dom_children.
4914 (mark_def_site_blocks): Remove.
4915 * tree-ssa-dom.c (dom_opt_dom_walker): New class.
4916 (tree_ssa_dominator_optimize): Adjust.
4917 (dom_thread_across_edge): Convert to method
4918 dom_opt_dom_walker::thread_across_edge.
4919 (dom_opt_enter_block): Convert to member function
4920 dom_opt_dom_walker::before_dom_children.
4921 (dom_opt_leave_block): Convert to member function
4922 dom_opt_dom_walker::after_dom_children.
4923 * tree-ssa-dse.c (dse_dom_walker): New class.
4924 (dse_enter_block): Convert to member function
4925 dse_dom_walker::before_dom_children.
4926 (tree_ssa_dse): Adjust.
4927 * tree-ssa-loop-im.c (invariantness_dom_walker): New class.
4928 (determine_invariantness_stmt): Convert to method
4929 invariantness_dom_walker::before_dom_children.
4930 (determine_invariantness): Remove
4931 (move_computations_dom_walker): New class.
4932 (move_computations_stmt): Convert to method
4933 move_computations_dom_walker::before_dom_children.
4934 (move_computations, tree_ssa_lim): Adjust.
4935 * tree-ssa-phiopt.c (nontrapping_dom_walker): new class
4936 (nt_init_block): Make method
4937 notrappping_dom_walker::before_dom_children.
4938 (nt_fini_block): Make
4939 method nontrapping_dom_walker::after_dom_children.
4940 (get_non_trapping): Adjust.
4941 * tree-ssa-pre.c (eliminate_dom_walker): New class.
4942 (eliminate_bb): Make method eliminate_dom_walker::before_dom_children.
4943 (eliminate_leave_block): Make method.
4944 eliminate_dom_walker::after_dom_children.
4945 (eliminate): Adjust
4946 * tree-ssa-strlen.c (strlen_dom_walker): New class.
4947 (strlen_enter_block): Make method
4948 strlen_dom_walker::before_dom_children.
4949 (strlen_leave_block): Make
4950 method strlen_dom_walker::after_dom_children.
4951 (tree_ssa_strlen): Adjust.
4952 * tree-ssa-uncprop.c (uncprop_dom_walker): New class.
4953 (tree_ssa_uncprop): Adjust.
4954 (uncprop_leave_block): Make method
4955 uncprop_dom_walker::after_dom_children.
4956 (uncprop_leave_block): Make method
4957 uncprop_dom_walker::before_dom_children.
4958
3b3cc26b
BC
49592013-09-18 Bin Cheng <bin.cheng@arm.com>
4960
7a5911d3
UB
4961 * config/arm/arm.c (thumb1_reorg): Search for flag setting insn before
4962 branch in same basic block. Check both src and dest of the move insn.
3b3cc26b 4963
b5ba3a9b
NC
49642013-09-17 Nick Clifton <nickc@redhat.com>
4965
4966 * config/rl78/rl78-real.md (bf): New pattern.
4967 (bt): New pattern.
4968 * config/rl78/rl78.c (rl78_print_operand_1): Handle %B.
4969 (rl78_print_operand): Do not put a # before a %B.
4970 * config/rl78/rl78.opt: Tweak doc strings.
4971
09d5094b
DD
49722013-09-17 DJ Delorie <dj@redhat.com>
4973
4974 * config/rl78/constraints.md (Wcv): Allow up to $r31.
4975 * config/rl78/rl78.c (rl78_asm_file_start: Likewise.
4976 (rl78_option_override): Likewise, if -mallregs.
4977 (is_virtual_register): Likewise.
4978 * config/rl78/rl78.h (reg_class): Extend VREGS to $r31.
4979 (REGNO_OK_FOR_BASE_P): Likewise.
4980 * config/rl78/rl78.opt (-mallregs): New.
4981
2ba1dca1
NC
49822013-09-17 Nick Clifton <nickc@redhat.com>
4983
4984 * config/rl78/rl78.c (need_to_save): Change return type to bool.
4985 For interrupt functions: save all call clobbered registers if the
4986 interrupt handler is not a leaf function.
4987 (rl78_expand_prologue): Always recompute the frame information.
4988 For interrupt functions: only select bank 0 if one of the bank 0
4989 registers is going to be psuhed.
4990
2e7c3f21
DD
49912013-09-17 DJ Delorie <dj@redhat.com>
4992
4993 * config/rl78/constraints.md: For each W* constraint, rename to C*
4994 and create a W* constraint that checks for an optional ES: prefix
4995 pattern also.
4996 * config/rl78/rl78.md (UNS_ES_ADDR): New.
4997 (es_addr): New. Used to wrap far addresses.
4998 * config/rl78/rl78-protos.h (rl78_es_addr): New.
4999 (rl78_es_base): New.
5000 * config/rl78/rl78.c (rl78_as_legitimate_address): Accept "unspec"
5001 wrapped far addresses.
5002 (rl78_print_operand_1): Unwrap far addresses before processing.
5003 (rl78_lo16): Wrap far addresses in unspecs.
5004 (rl78_es_addr): New.
5005 (rl78_es_base): New.
5006 (insn_ok_now): Check for not-yet-wrapped far addresses.
5007 (transcode_memory_rtx): Properly re-wrap far addresses.
5008
5c26a69a
SH
50092013-09-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
5010
5011 * config/sparc/t-rtems: Add leon3 multilibs.
5012
181f5f3e
CH
50132013-09-17 Cong Hou <congh@google.com>
5014
5015 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Fix a bug
5016 when checking the dot production pattern. The type of rhs operand
5017 of multiply is now checked correctly.
5018
8d34e421
JL
50192013-09-17 Jeff Law <law@redhat.com>
5020
5021 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
5022 edge implied equivalences into successor phis.
5023 * tree-ssa-threadupdate.c (phi_args_equal_on_edges): Moved into
5024 here from tree-ssa-threadedge.c.
5025 (mark_threaded_blocks): When threading through a joiner, if both
5026 successors of the joiner's clone reach the same block, verify the
5027 PHI arguments are equal. If not, cancel the jump threading request.
5028 * tree-ssa-threadedge.c (phi_args_equal_on_edges): Moved into
5029 tree-ssa-threadupdate.c
5030 (thread_across_edge): Don't check PHI argument equality when
5031 threading through joiner block here.
7a5911d3 5032
c152901f
AM
50332013-09-17 Andrew MacLeod <amacleod@redhat.com>
5034
5035 * tree-flow.h (ssa_undefined_value_p): Remove prototype.
5036 * tree-ssa.c (ssa_undefined_value_p): Move pass independent parts here.
7a5911d3
UB
5037 (warn_uninit, warn_uninitialized_vars,
5038 execute_early_warn_uninitialized, make_pass_early_warn_uninitialized):
5039 Move to tree-ssa-uninit.c.
78cedfb1 5040 * tree-ssa-uninit.c (ssa_undefined_value_p): Move to tree-ssa.c.
7a5911d3 5041 (has_undefined_value_p): New. Pass dependant parts of
c152901f
AM
5042 ssa_undefined_value_p.
5043 (uninit_undefined_value_p): Use has_undefined_value_p.
7a5911d3
UB
5044 (warn_uninit, warn_uninitialized_vars,
5045 execute_early_warn_uninitialized, make_pass_early_warn_uninitialized):
5046 Move from tree-ssa.c.
5047 * tree-ssa.h: Adjust prototypes.
c152901f 5048
b631d45a
JH
50492013-09-17 Jan Hubicka <jh@suse.cz>
5050
5051 PR middle-end/58332
5052 * cif-code.def (FUNCTION_NOT_OPTIMIZED): New CIF code.
5053 * ipa-inline.c (can_inline_edge_p): Do not downgrade
5054 FUNCTION_NOT_OPTIMIZED.
5055 * ipa-inline-analysis.c (compute_inline_parameters): Function
5056 not optimized is not inlinable unless it is alwaysinline.
5057 (inline_analyze_function): Force calls in not optimized
5058 function not inlinable.
5059
5b79657a
JH
50602013-09-17 Jan Hubicka <jh@suse.cz>
5061
5062 PR middle-end/58329
5063 * ipa-devirt.c (ipa_devirt): Be ready for symtab_nonoverwritable_alias
5064 to return NULL.
5065 * ipa.c (function_and_variable_visibility): Likewise.
5066 * ipa-profile.c (ipa_profile): Likewise.
5067
27442c24
BE
50682013-09-17 Bernd Edlinger <bernd.edlinger@hotmail.de>
5069
5070 PR ipa/58398
5071 * cgraph.c (cgraph_function_body_availability): Check for ifunc
5072 attribute, and don't inline the resolver in this case.
5073
753b9bc3
TJ
50742013-09-17 Teresa Johnson <tejohnson@google.com>
5075
5076 * coverage.c (get_coverage_counts): Add missing newline.
5077
e3d3cfb4
KT
50782013-09-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5079
5080 PR tree-optimization/58088
5081 * fold-const.c (mask_with_trailing_zeros): New function.
5082 (fold_binary_loc): Make sure we don't recurse infinitely
5083 when the X in (X & C1) | C2 is a tree of the form (Y * K1) & K2.
5084 Use mask_with_trailing_zeros where appropriate.
5085
9a0ac98f
YR
50862013-09-17 Yuri Rumyantsev <ysrumyan@gmail.com>
5087
5088 * config/i386/i386.c (distance_agu_use_in_bb) : Proper initialization
5089 of 'prev' var to get better distance estimation.
5090
78bbd765
EB
50912013-09-17 Eric Botcazou <ebotcazou@adacore.com>
5092
5093 * tree-inline.h (struct copy_body_data): Add transform_parameter.
5094 * tree-inline.c (is_parameter_of): New predicate.
5095 (remap_gimple_op_r): Do not propagate TREE_THIS_NOTRAP on MEM_REF if
5096 a parameter has been remapped.
5097 (copy_tree_body_r): Likewise on INDIRECT_REF and MEM_REF.
5098 (optimize_inline_calls): Initialize transform_parameter.
5099 (copy_gimple_seq_and_replace_locals): Likewise.
5100 (tree_function_versioning): Likewise.
5101 (maybe_inline_call_in_expr): Likewise.
5102
cad055a4
NC
51032013-09-17 Nick Clifton <nickc@redhat.com>
5104
5105 * config/msp430/msp430-protos.h: Add prototypes for new functions.
5106 * config/msp430/msp430.c (msp430_preserve_reg_p): Add support for
5107 interrupt handlers.
5108 (is_attr_func): New function.
5109 (msp430_is_interrupt_func): New function.
5110 (is_naked_func): New function.
5111 (is_reentrant_func): New function.
5112 (is_critical_func): New function.
5113 (msp430_start_function): Add annotations for function attributes.
5114 (msp430_attr): New function.
5115 (msp430_attribute_table): New.
5116 (msp430_function_section): New function.
5117 (TARGET_ASM_FUNCTION_SECTION): Define.
5118 (msp430_builtin): New enum.
5119 (msp430_init_builtins): New function.
5120 (msp430_builtin_devl): New function.
5121 (msp430_expand_builtin): New function.
5122 (TARGET_INIT_BUILTINS): Define.
5123 (TARGET_EXPAND_BUILTINS): Define.
5124 (TARGET_BUILTIN_DECL): Define.
5125 (msp430_expand_prologue): Add support for naked, interrupt,
5126 critical and reentrant functions.
5127 (msp430_expand_epilogue): Likewise.
5128 (msp430_print_operand): Handle 'O' character.
5129 * config/msp430/msp430.h (TARGET_CPU_CPP_BUILTINS): Define
5130 NO_TRAMPOLINES.
5131 * config/msp430/msp430.md (unspec): Add UNS_DINT, UNS_EINT,
5132 UNS_PUSH_INTR, UNS_POP_INTR, UNS_BIC_SR, UNS_BIS_SR.
5133 (pushm): Use a 'n' rather than an 'i' constraint.
5134 (msp_return): Add generation of the interrupt return instruction.
5135 (disable_interrupts): New pattern.
5136 (enable_interrupts): New pattern.
5137 (push_intr_state): New pattern.
5138 (pop_intr_state): New pattern.
5139 (bic_SR): New pattern.
5140 (bis_SR): New pattern.
5141 * doc/extend.texi: Document MSP430 function attributes and builtin
5142 functions.
5143
deb6c11a
RB
51442013-09-17 Richard Biener <rguenther@suse.de>
5145
5146 PR tree-optimization/58432
5147 * tree-loop-distribution.c (tree_loop_distribution): Also
5148 scan PHIs for outside loop uses and seed a partition from them.
5149
c068654b
BC
51502013-09-17 Bin Cheng <bin.cheng@arm.com>
5151
5152 * gimple-ssa-strength-reduction.c (backtrace_base_for_ref): New.
5153 (restructure_reference): Call backtrace_base_for_ref.
5154
567969e4
AM
51552013-09-17 Alan Modra <amodra@gmail.com>
5156
5157 PR target/57589
7a5911d3
UB
5158 * config/rs6000/driver-rs6000.c (elf_platform): Revert 2013-06-11
5159 patch.
567969e4 5160
5c0029de
DD
51612013-09-16 DJ Delorie <dj@redhat.com>
5162
5163 * config/rl78/rl78.c (rl78_asm_file_start): Specify alternate
5164 vregs location for RL78/G10.
5165 (rl78_expand_prologue): Avoid SEL on G10.
5166 (rl78_expand_epilogue): Likewise.
5167 (rl78_peep_movhi_p): Can't move a constant to memory in HImode.
5168 * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
5169 __RL78_G10__ when appropriate.
5170 (ASM_SPEC): Pass -mg10 along to the assembler.
5171 * config/rl78/rl78.md (sel_rb): Disable for G10.
5172 * config/rl78/rl78.opt: Add -mg10 option.
5173 * config/rl78/t-rl78: Add -mg10 multilib.
5174
ea0f3e87
XDL
51752013-09-16 Xinliang David Li <davidxl@google.com>
5176
5177 * tree-if-conv.c (main_tree_if_conversion): Check new flag.
5178 * omp-low.c (omp_max_vf): Ditto.
5179 (expand_omp_simd): Ditto.
5180 * tree-vectorizer.c (vectorize_loops): Ditto.
5181 (gate_vect_slp): Ditto.
5182 (gate_increase_alignment): Ditto.
5183 * tree-ssa-pre.c (inhibit_phi_insertion): Ditto.
5184 * tree-ssa-loop.c (gate_tree_vectorize): Ditto.
5185 (gate_tree_vectorize): Name change.
5186 (tree_vectorize): Ditto.
5187 (pass_vectorize::gate): Call new function.
5188 (pass_vectorize::execute): Ditto.
7a5911d3 5189 * opts.c: O3 default setting change.
ea0f3e87
XDL
5190 (finish_options): Check new flag.
5191 * doc/invoke.texi: Document new flags.
5192 * common.opt: New flags.
5193
4f3da2e5
AS
51942013-09-16 Andreas Schwab <schwab@linux-m68k.org>
5195
5196 * doc/tm.texi.in (Cond Exec Macros): Remove node.
5197 (Condition Code): Don't reference it.
5198 * doc/tm.texi: Regenerate.
5199
aa940f7c
VM
52002013-09-16 Vladimir Makarov <vmakarov@redhat.com>
5201
5202 PR middle-end/58418
5203 * lra-constraints.c (undo_optional_reloads): Consider all optional
5204 reload even if it did not get a hard reg.
5205
e645e942
TJ
52062013-09-16 Teresa Johnson <tejohnson@google.com>
5207
5208 * dumpfile.c (dump_loc): Remove newline emission.
5209 * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Add newline
5210 emission to dump_printf_loc calls where missing.
5211 (vect_mark_for_runtime_alias_test): Ditto.
5212 (vect_analyze_data_ref_dependence): Ditto.
5213 (vect_analyze_data_ref_dependences): Ditto.
5214 (vect_slp_analyze_data_ref_dependence): Ditto.
5215 (vect_slp_analyze_data_ref_dependences): Ditto.
5216 (vect_compute_data_ref_alignment): Ditto.
5217 (vect_update_misalignment_for_peel): Ditto.
5218 (vect_verify_datarefs_alignment): Ditto.
5219 (vector_alignment_reachable_p): Ditto.
5220 (vect_get_data_access_cost): Ditto.
5221 (vect_enhance_data_refs_alignment): Ditto.
5222 (vect_find_same_alignment_drs): Ditto.
5223 (vect_analyze_data_refs_alignment): Ditto.
5224 (vect_analyze_group_access): Ditto.
5225 (vect_analyze_data_ref_access): Ditto.
5226 (vect_analyze_data_ref_accesses): Ditto.
5227 (vect_prune_runtime_alias_test_list): Ditto.
5228 (vect_analyze_data_refs): Ditto.
5229 (vect_create_addr_base_for_vector_ref): Ditto.
5230 (vect_create_data_ref_ptr): Ditto.
5231 (vect_grouped_store_supported): Ditto.
5232 (vect_grouped_load_supported): Ditto.
5233 * value-prof.c (check_counter): Ditto.
5234 (check_ic_target): Ditto.
5235 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Ditto.
5236 (vect_recog_widen_mult_pattern): Ditto.
5237 (vect_recog_widen_sum_pattern): Ditto.
5238 (vect_recog_over_widening_pattern): Ditto.
5239 (vect_recog_widen_shift_pattern): Ditto.
5240 (vect_recog_rotate_pattern): Ditto.
5241 (vect_recog_vector_vector_shift_pattern): Ditto.
5242 (vect_recog_divmod_pattern): Ditto.
5243 (vect_recog_mixed_size_cond_pattern): Ditto.
5244 (vect_recog_bool_pattern): Ditto.
5245 (vect_pattern_recog_1): Ditto.
5246 (vect_pattern_recog): Ditto.
5247 * tree-vect-loop.c (vect_determine_vectorization_factor): Ditto.
5248 (vect_is_simple_iv_evolution): Ditto.
5249 (vect_analyze_scalar_cycles_1): Ditto.
5250 (vect_get_loop_niters): Ditto.
5251 (vect_analyze_loop_1): Ditto.
5252 (vect_analyze_loop_form): Ditto.
5253 (vect_analyze_loop_operations): Ditto.
5254 (vect_analyze_loop_2): Ditto.
5255 (vect_analyze_loop): Ditto.
5256 (report_vect_op): Ditto.
5257 (vect_is_slp_reduction): Ditto.
5258 (vect_is_simple_reduction_1): Ditto.
5259 (vect_get_known_peeling_cost): Ditto.
5260 (vect_estimate_min_profitable_iters): Ditto.
5261 (vect_model_reduction_cost): Ditto.
5262 (vect_model_induction_cost): Ditto.
5263 (get_initial_def_for_induction): Ditto.
5264 (vect_create_epilog_for_reduction): Ditto.
5265 (vectorizable_reduction): Ditto.
5266 (vectorizable_induction): Ditto.
5267 (vectorizable_live_operation): Ditto.
5268 (vect_loop_kill_debug_uses): Ditto.
5269 (vect_transform_loop): Ditto.
5270 * tree-vect-stmts.c (vect_mark_relevant): Ditto.
5271 (vect_stmt_relevant_p): Ditto.
5272 (process_use): Ditto.
5273 (vect_mark_stmts_to_be_vectorized): Ditto.
5274 (vect_model_simple_cost): Ditto.
5275 (vect_model_promotion_demotion_cost): Ditto.
5276 (vect_model_store_cost): Ditto.
5277 (vect_get_store_cost): Ditto.
5278 (vect_model_load_cost): Ditto.
5279 (vect_get_load_cost): Ditto.
5280 (vect_init_vector_1): Ditto.
5281 (vect_get_vec_def_for_operand): Ditto.
5282 (vect_finish_stmt_generation): Ditto.
5283 (vectorizable_call): Ditto.
5284 (vectorizable_conversion): Ditto.
5285 (vectorizable_assignment): Ditto.
5286 (vectorizable_shift): Ditto.
5287 (vectorizable_operation): Ditto.
5288 (vectorizable_store): Ditto.
5289 (vectorizable_load): Ditto.
5290 (vectorizable_condition): Ditto.
5291 (vect_analyze_stmt): Ditto.
5292 (vect_transform_stmt): Ditto.
5293 (vect_is_simple_use): Ditto.
5294 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): Ditto.
5295 (vect_can_advance_ivs_p): Ditto.
5296 (vect_update_ivs_after_vectorizer): Ditto.
5297 (vect_do_peeling_for_loop_bound): Ditto.
5298 (vect_gen_niters_for_prolog_loop): Ditto.
5299 (vect_update_inits_of_drs): Ditto.
5300 (vect_create_cond_for_alias_checks): Ditto.
5301 * tree-vect-slp.c (vect_get_and_check_slp_defs): Ditto.
5302 (vect_build_slp_tree_1): Ditto.
5303 (vect_supported_load_permutation_p): Ditto.
5304 (vect_analyze_slp_instance): Ditto.
5305 (vect_analyze_slp): Ditto.
5306 (vect_make_slp_decision): Ditto.
5307 (vect_detect_hybrid_slp): Ditto.
5308 (vect_bb_vectorization_profitable_p): Ditto.
5309 (vect_slp_analyze_bb_1): Ditto.
5310 (vect_update_slp_costs_according_to_vf): Ditto.
5311 (vect_get_mask_element): Ditto.
5312 (vect_transform_slp_perm_load): Ditto.
5313 (vect_schedule_slp_instance): Ditto.
5314 (vect_schedule_slp): Ditto.
5315 (vect_slp_transform_bb): Ditto.
5316 * profile.c (read_profile_edge_counts): Ditto.
5317 (compute_branch_probabilities): Ditto.
5318 * coverage.c (get_coverage_counts): Ditto.
5319
46f851f3
DN
53202013-09-16 Diego Novillo <dnovillo@google.com>
5321
7a5911d3 5322 * tree-core.h: Add missing comment lines from refactoring of tree.h.
46f851f3 5323
1632a686
JH
53242013-09-16 Jan Hubicka <jh@suse.cz>
5325
5326 * gimple-fold.c (can_refer_decl_in_current_unit_p): Do not accept
7a5911d3 5327 abstract functions; for static functions check the presence of body.
1632a686 5328
828e70c1
JG
53292013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
5330
5331 * config/aarch64/aarch64-simd-builtins.def (fma): New.
5332 * config/aarch64/aarch64-simd.md
5333 (aarch64_mla_elt<mode>): New.
5334 (aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
5335 (aarch64_mls_elt<mode>): Likewise.
5336 (aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
5337 (aarch64_fma4_elt<mode>): Likewise.
5338 (aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
5339 (aarch64_fma4_elt_to_128v2df): Likewise.
5340 (aarch64_fma4_elt_to_64df): Likewise.
5341 (fnma<mode>4): Likewise.
5342 (aarch64_fnma4_elt<mode>): Likewise.
5343 (aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
5344 (aarch64_fnma4_elt_to_128v2df): Likewise.
5345 (aarch64_fnma4_elt_to_64df): Likewise.
5346 * config/aarch64/iterators.md (VDQSF): New.
5347 * config/aarch64/arm_neon.h
5348 (vfm<as><sdq>_lane<q>_f<32, 64>): Convert to C implementation.
5349 (vml<sa><q>_lane<q>_<fsu><16, 32, 64>): Likewise.
5350
779aea46
JG
53512013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
5352
5353 * config/aarch64/aarch64-simd.md (aarch64_mul3_elt<mode>): New.
5354 (aarch64_mul3_elt_<vswap_width_name><mode>): Likewise.
5355 (aarch64_mul3_elt_to_128df): Likewise.
5356 (aarch64_mul3_elt_to_64v2df): Likewise.
5357 * config/aarch64/iterators.md (VEL): Also handle DFmode.
5358 (VMUL): New.
5359 (VMUL_CHANGE_NLANES) Likewise.
5360 (h_con): Likewise.
5361 (f): Likewise.
5362 * config/aarch64/arm_neon.h
5363 (vmul<q>_lane<q>_<suf><16,32,64>): Convert to C implementation.
5364
a407a750
JG
53652013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
5366
5367 * config/aarch64/arm_neon.h
5368 (vcvtx_high_f32_f64): Fix parameters.
5369
f77e2d2d 53702013-09-16 Jan-Benedict Glaw <jbglaw@lug-owl.de>
a5bd71fa 5371 Uros Bizjak <ubizjak@gmail.com>
f77e2d2d 5372
a5bd71fa 5373 * config/alpha.c: Include tree-ssanames.h.
f77e2d2d 5374
36875e8f
RB
53752013-09-16 Richard Biener <rguenther@suse.de>
5376
5377 * tree-loop-distribution.c (enum rdg_dep_type): Add control_dd.
5378 (dot_rdg_1): Handle control_dd.
5379 (create_edge_for_control_dependence): New function.
5380 (create_rdg_edges): Add control dependences if asked for.
5381 (build_rdg): Likewise.
5382 (generate_loops_for_partition): If there are not necessary
5383 control stmts remove all their dependencies.
5384 (collect_condition_stmts, rdg_flag_loop_exits): Remove.
5385 (distribute_loop): Pass on control dependences.
5386 (tree_loop_distribution): Compute control dependences and remove
5387 restriction on number of loop nodes.
5388
96e24d49
JJ
53892013-09-16 Jakub Jelinek <jakub@redhat.com>
5390
5391 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Return early
5392 for internal calls.
5393
40dbb05c
RS
53942013-09-16 Richard Sandiford <rdsandiford@googlemail.com>
5395
5396 * cse.c (try_const_anchors): Punt on CC modes.
5397
97191ad0
JBG
53982013-09-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
5399
5400 * config/vax/constraints.md (T): Add missing CONSTANT_P check.
5401
403a3fb7
JDA
54022013-09-14 John David Anglin <danglin@gcc.gnu.org>
5403
5404 PR target/58382
5405 * config/pa/pa.c (pa_expand_prologue): Change mode in gen_rtx_POST_INC
5406 calls to word_mode.
5407
fb5610fb
IS
54082013-09-14 Iain Sandoe <iain@codesourcery.com>
5409
5410 PR target/48094
5411 * config/darwin.c (darwin_objc2_section): Note if ObjC Metadata is
f77e2d2d
JBG
5412 seen.
5413 (darwin_objc1_section): Likewise.
fb5610fb
IS
5414 (darwin_file_end): Emit Image Info section when required.
5415
afdec9bd
JH
54162013-09-14 Jan Hubicka <jh@suse.cz>
5417
5418 * tree-into-ssa.c (gate_into_ssa): New.
5419 (pass_data_build_ssa): Use it.
5420 * cgraph.h (expand_thunk): Update prototype.
5421 * cgraphunit.c (analyze_function): Expand thunks early.
5422 (expand_thunk): Fix DECL_CONTEXT of reust_decl;
5423 build proper cgraph; set in_ssa_p; clear bogus TREE_ASM_WRITTEN;
5424 set lowered flag; do not add new function.
5425 (assemble_thunks_and_aliases): Update.
5426 * tree-ssa.c (gate_init_datastructures): New gate.
5427 (pass_data_init_datastructures): Use it.
5428
492d1e0a
IS
54292013-09-14 Iain Sandoe <iain@codesourcery.com>
5430
5431 PR target/58269
f77e2d2d 5432 * config/i386/i386.c (ix86_function_arg_regno_p): Make Darwin use the
492d1e0a
IS
5433 xmm register set described in the psABI.
5434
d13c6b70
EG
54352013-09-13 Evgeny Gavrin <e.gavrin@samsung.com>
5436
f77e2d2d
JBG
5437 * dwarf2out.c (should_emit_struct_debug): Add check
5438 for type_decl variable is not NULL.
d13c6b70 5439
88b0e79e
JC
54402013-09-13 Jacek Caban <jacek@codeweavers.com>
5441
5442 * config.gcc: Use new winnt-c.c target hooks
5443 * config/t-winnt: New file
5444 * config/winnt-c.c: New file
5445 * doc/tm.texi.in: Document new hook
5446 * doc/tm.texi: Regenerated
5447
19ba6aab
JH
54482013-09-13 Jan Hubicka <jh@suse.cz>
5449
5450 PR middle-end/58094
5451 * ipa-inline.c (check_callers): New function.
5452 (check_caller_edge): Remove.
5453 (want_inline_function_to_all_callers_p): Also permit alises that are
5454 called dirrectly.
5455 (inline_to_all_callers): Terminate the walk when devirtualization
5456 introduce new calls.
5457
a93c18c8
JH
54582013-09-13 Jan Hubicka <jh@suse.cz>
5459
5460 * ipa-inline-analysis.c (struct growth_data): Add node.
5461 (do_estimate_growth_1): Fix detection of recursion.
5462
f3b331d1
JJ
54632013-09-13 Jakub Jelinek <jakub@redhat.com>
5464
5465 PR tree-optimization/58392
5466 * tree-cfg.c (move_sese_region_to_fn): Rename loop variable
5467 to avoid shadowing of outer loop variable. If
5468 saved_cfun->has_simduid_loops or saved_cfun->has_force_vect_loops,
5469 replace_by_duplicate_decl simduid of loops that have it set and
5470 set dest_cfun->has_simduid_loops and/or
5471 dest_cfun->has_force_vect_loops.
5472 * omp-low.c (build_outer_var_ref): Call maybe_lookup_decl_in_outer_ctx
5473 instead of maybe_lookup_decl.
5474 * tree-inline.c (copy_loops): Change blocks_to_copy argument to id.
5475 Use id->blocks_to_copy instead of blocks_to_copy. Adjust recursive
5476 call. Copy over force_vect and copy and remap simduid. Set
5477 cfun->has_simduid_loops and/or cfun->has_force_vect_loops.
5478 (copy_cfg_body): Remove blocks_to_copy argument. Use
5479 id->blocks_to_copy instead of blocks_to_copy. Adjust copy_loops
5480 caller. Don't set cfun->has_simduid_loops and/or
5481 cfun->has_force_vect_loops here.
5482 (copy_body): Remove blocks_to_copy argument. Adjust copy_cfg_body
5483 caller.
5484 (expand_call_inline, tree_function_versioning): Adjust copy_body
5485 callers.
5486
ae6d0907
MJ
54872013-09-13 Martin Jambor <mjambor@suse.cz>
5488
5489 PR bootstrap/58388
5490 * ipa-prop.c (try_make_edge_direct_simple_call): Be less strict in
5491 the assert if the edge was a speculative one.
5492
2fd5894f
RB
54932013-09-13 Richard Biener <rguenther@suse.de>
5494
5495 * tree-data-ref.h (known_dependences_p): Move here ...
5496 * tree-loop-distribution.c (known_dependences_p): ... from here.
5497 (dump_rdg_component, debug_rdg_component): Remove.
5498 (dump_rdg): Adjust.
5499 (generate_loops_for_partition): Use gimple_uid instead of
5500 relying on matching stmt visit order.
5501 (rdg_build_partitions): Take starting stmt vector.
5502 (ldist_gen): Merge into ...
5503 (distribute_loop): ... this function. Do not compute starting
5504 vertices vector.
5505 * tree-cfg.c (gimple_duplicate_bb): Copy UID for PHIs.
5506
86eb4bd7
KT
55072013-09-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5508
5509 * config/arm/arm.md (arm_cmpsi_insn): Split rI alternative.
5510 Set type attribute correctly. Set predicable_short_it attribute.
5511 (cmpsi_shiftsi): Remove %? from output template.
5512
83a95546
RB
55132013-09-13 Richard Biener <rguenther@suse.de>
5514
5515 * tree-loop-distribution.c (struct rdg_component,
5516 rdg_defs_used_in_other_loops_p, free_rdg_components,
5517 rdg_build_components): Remove.
5518 (stmts_from_loop): Do not record virtual PHIs.
5519 (generate_loops_for_partition): Skip virtual PHIs.
5520 (build_rdg_partition_for_component): Rename to ...
5521 (build_rdg_partition_for_vertex): ... this and adjust.
5522 (rdg_build_partitions): Take a vector of starting vertices
5523 instead of components. Remove unnecessary leftover handling.
5524 (ldist_gen): Do not build components or record other stores.
5525 (distribute_loop): Do not distribute loops containing stmts
5526 with side-effects.
5527
c0ecf7f1
CB
55282013-09-13 Christian Bruel <christian.bruel@st.com>
5529
5530 PR target/58314
5531 * config/sh/sh.md (mov<mode>_reg_reg): Allow memory reloads.
5532
34f56efc
KT
55332013-09-13 Kai Tietz <ktietz@redhat.com>
5534
740f2bf3
KT
5535 * config.gcc: Separate cases for mingw and cygwin targets,
5536 and add 64-bit cygwin target case.
5537
34f56efc
KT
5538 * config/i386/winnt-cxx.c (i386_pe_type_dllexport_p): Don't
5539 dll-export inline-functions.
5540 * config/i386/winnt.c (i386_pe_determine_dllexport_p): Likewise.
5541
5542
55432013-09-13 Jeff Law <law@redhat.com>
823b5d6b
JL
5544
5545 PR middle-end/58387
5546 Revert:
5547 2013-09-06 Jeff Law <law@redhat.com>
5548
5549 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
5550 edge implied equivalences into successor phis.
5551
aadb52ad
DD
55522013-09-12 DJ Delorie <dj@redhat.com>
5553
5554 * config/rl78/rl78-virt.md: Change from | to \; for asm line
5555 separators.
5556
90ae7019
BM
55572013-09-12 Brooks Moses <bmoses@google.com>
5558
5559 PR driver/42955
5560 * Makefile.in: Do not install driver binaries in $(target)/bin.
5561
17b2557c
DD
55622013-09-12 DJ Delorie <dj@redhat.com>
5563
c5215a9b
DD
5564 * config/rl78/rl78.opt (mrelax): New.
5565 * config/rl78/rl78.h (ASM_SPEC): New, pass on -mrelax to gas.
5566 * config/rl78/rl78.h (LINK_SPEC): New, pass on -mrelax to ld.
5567
17b2557c
DD
5568 * config/rl78/rl78.c (rl78_expand_prologue): Use AX to copy
5569 between SP and FP.
5570 (rl78_expand_epilogue): Likewise.
5571
ecafcf05
VM
55722013-09-12 Vladimir Makarov <vmakarov@redhat.com>
5573
5574 PR middle-end/58335
84f6d9fa 5575 * lra-eliminations.c (remove_reg_equal_offset_note): New.
ecafcf05
VM
5576 (eliminate_regs_in_insn): Rewrite frame pointer to hard frame
5577 pointer elimination with using remove_reg_equal_offset_note.
5578
8369f38a
DD
55792013-09-12 DJ Delorie <dj@redhat.com>
5580
f6a83b4a
DD
5581 * config/msp430/: New port.
5582 * config.gcc (msp430): Added.
5583 * doc/invoke.texi: Document MSP430 options.
5584 * doc/install.texi: Document msp430-elf
5585 * doc/md.texi: Document msp430-elf
5586 * doc/contrib.texi: Document msp430-elf
5587
8369f38a
DD
5588 * cfgexpand.c (expand_debug_expr): Avoid sign-extending SImode to
5589 PSImode.
5590
a854f856
MJ
55912013-09-12 Martin Jambor <mjambor@suse.cz>
5592
5593 PR ipa/58389
5594 * ipa-prop.c (remove_described_reference): Give up if the edge in the
5595 reference descriptor is NULL.
5596 (ipa_edge_removal_hook): If owning a reference descriptor, set its
5597 edge to NULL.
5598
b12ebd96
AM
55992013-09-12 Andrew MacLeod <amacleod@redhat.com>
5600
5601 * tree-flow.h (FREE_SSANAMES): Move to tree-ssanames.c
5602 (SSANAMES, MODIFIED_NORETURN_CALLS, DEFAULT_DEFS, ptr_info_def,
5603 num_ssa_names, ssa_name): Move to tree-ssanames.h + prototypes.
5604 * tree-flow-inline.h (make_ssa_name, copy_ssa_name, duplicate_ssa_name,
5605 make_temp_ssa_name): move to tree-ssanames.h
5606 * tree-ssa-alias.h: Move prototype.
5607 * tree-ssa.h: Include tree-ssanames.h.
5608 * tree-ssanames.c (FREE_SSANAMES): Move to here.
5609 * tree-ssanames.h: New. Move items from tree-flow*.h
5610 * Makefile.in (tree-ssanames.h): Add to tree-ssanames.o and GTFILES.
5611
e1fb4ad3
RB
56122013-09-12 Richard Biener <rguenther@suse.de>
5613
5614 PR tree-optimization/58404
5615 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
5616 propagate non-invariant addresses into dereferences wrapped
5617 in component references.
5618
154c9188
RB
56192013-09-12 Richard Biener <rguenther@suse.de>
5620
5621 PR tree-optimization/58402
5622 * passes.def: Move pass_late_warn_uninitialized later.
5623
7a300452
AM
56242013-09-12 Andrew MacLeod <amacleod@redhat.com>
5625
5626 * tree-ssa.h: New. Move content from tree-flow.h and
5627 tree-flow-inline.h.
5628 * tree-flow.h (_edge_var_map, edge_var_map_vector): Move to tree-ssa.h.
5629 Move prototypes belonging to tree-ssa.c.
f77e2d2d 5630 * tree-flow-inline.h (redirect_edge_var_map_def,
7a300452
AM
5631 redirect_edge_var_map_result, redirect_edge_var_map_location): Move to
5632 tree-ssa.h.
5633 * gimple.h: Adjust prototypes.
f77e2d2d
JBG
5634 * tree-ssa.c (useless_type_conversion_p, types_compatible_p): Move
5635 to...
5636 * gimple.c (useless_type_conversion_p, types_compatible_p): Here.
7a300452
AM
5637 * tree.h: Move prototype to tree-ssa.h.
5638 * gengtype.c (open_base_files): Replace tree-flow.h with tree-ssa.h.
5639 * Makefile.in: (TREE_SSA_H, TREE_FLOW_H): Adjust dependencies.
5640 * alias.c, asan.c, builtins.c, calls.c, cfgexpand.c, cfghooks.c,
5641 cfgloop.c, cfgloopmanip.c, cgraph.c, cgraphbuild.c, cgraphclones.c,
5642 cgraphunit.c, dse.c, except.c, expr.c, final.c, fold-const.c,
5643 ggc-page.c, gimple-fold.c, gimple-iterator.c, gimple-low.c,
5644 gimple-pretty-print.c, gimple-ssa-strength-reduction.c,
5645 gimple-streamer-in.c, gimple-streamer-out.c, gimple.c, gimplify.c,
f77e2d2d
JBG
5646 graphite-blocking.c, graphite-clast-to-gimple.c,
5647 graphite-dependences.c, graphite-interchange.c,
5648 graphite-optimize-isl.c, graphite-poly.c, graphite-scop-detection.c,
5649 graphite-sese-to-poly.c, graphite.c, ipa-cp.c, ipa-inline-analysis.c,
5650 ipa-inline-transform.c, ipa-inline.c, ipa-prop.c, ipa-pure-const.c,
5651 ipa-reference.c, ipa-split.c, ipa-utils.c,
7a300452
AM
5652 loop-init.c, lto-cgraph.c, lto-section-in.c, lto-section-out.c,
5653 lto-streamer-in.c, lto-streamer-out.c, lto-streamer.c, omp-low.c,
5654 passes.c, predict.c, print-tree.c, profile.c, sese.c, targhooks.c,
5655 tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
5656 tree-chrec.c, tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-eh.c,
5657 tree-emutls.c, tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
5658 tree-loop-distribution.c, tree-mudflap.c, tree-nested.c, tree-nrv.c,
5659 tree-object-size.c, tree-optimize.c, tree-outof-ssa.c, tree-parloops.c,
5660 tree-phinodes.c, tree-predcom.c, tree-pretty-print.c, tree-profile.c,
5661 tree-scalar-evolution.c, tree-sra.c, tree-ssa*.c, tree-stdarg.c,
5662 tree-streamer-in.c, tree-switch-conversion.c, tree-tailcall.c,
5663 tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
5664 tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
5665 tree-vect-stmts.c, tree-vectorizer.c, tree-vrp.c, tsan.c,
5666 value-prof.c, var-tracking.c,
5667 varpool.c, vtable-verify.c: Replace tree-flow.h with tree-ssa.h
5668
97463b2b
RB
56692013-09-12 Richard Biener <rguenther@suse.de>
5670
5671 PR tree-optimization/58396
5672 * tree-loop-distribution.c (create_rdg_edges): Free unused DDRs.
5673 (build_rdg): Take a loop-nest parameter, fix memleaks.
5674 (distribute_loop): Compute loop-nest here and pass it to build_rdg.
5675
80ecd89d
YR
56762013-09-12 Yuri Rumyantsev <ysrumyan@gmail.com>
5677
5678 * config/i386/x86-tune.def: Turn on X86_TUNE_AVOID_MEM_OPND_FOR_CMOVE
5679 for SLM.
5680
893e85fa
CM
56812013-09-12 Cameron McInally <cameron.mcinally@nyu.edu>
5682
5683 * doc/extend.texi: Fix errors in x86 FMA builtin naming.
5684 The FMA instruction names should have a 'v' prefix.
5685
174ec470
RB
56862013-09-12 Richard Biener <rguenther@suse.de>
5687
5688 * tree-loop-distribution.c (dot_rdg_1): Make graph prettier.
5689 (dot_rdg): Use popen instead of system in optional code.
5690 (remaining_stmts, upstream_mem_writes): Remove global bitmaps.
5691 (already_processed_vertex_p): Adjust.
5692 (has_anti_or_output_dependence, predecessor_has_mem_write,
5693 mark_nodes_having_upstream_mem_writes, has_upstream_mem_writes,
5694 rdg_flag_uses): Remove.
5695 (rdg_flag_vertex): Simplify.
5696 (rdg_flag_vertex_and_dependent): Rely on a correct RDG and
5697 remove recursion.
5698 (build_rdg_partition_for_component): Process the first vertex
5699 of a component only.
5700 (ldist_gen): Do not compute remaining_stmts or upstream_mem_writes.
5701
38c89763
AM
57022013-09-12 Alan Modra <amodra@gmail.com>
5703
5704 * config/rs6000/rs6000.c (toc_relative_expr_p): Use add_cint_operand.
5705
3e3d9d17
DD
57062013-09-11 DJ Delorie <dj@redhat.com>
5707 Nick Clifton <nickc@redhat.com>
5708
5709 * config/rl78/predicates.md (rl78_cmp_operator_signed): New.
5710 (rl78_stack_based_mem): New.
5711 * config/rl78/constraints.md (Iv08): New.
5712 (Iv16): New.
5713 (Iv24): New.
5714 (Is09): New.
5715 (Is17): New.
5716 (Is25): New.
5717 (ISsi): New.
5718 (IShi): New.
5719 (ISqi): New.
5720 * config/rl78/rl78-expand.md (movqi): Reject more SUBREG operands.
5721 (movhi): Likewise.
5722 (movsi): Change from expand to insn-and-split.
5723 (ashrsi3): Clobber AX.
5724 (lshrsi3): New.
5725 (ashlsi3): New.
5726 (cbranchsi4): New.
5727 * config/rl78/rl78.md (CC_REG): Fix.
5728 (addsi3): Allow memory and immediate operands.
5729 (addsi3_internal): Split into...
5730 (addsi3_internal_virt): ...new, and ...
5731 (addsi3_internal_real): ...new.
5732 (subsi): New.
5733 (subsi3_internal_virt): New.
5734 (subsi3_internal_real): New.
5735 (mulsi3): Add memory operand.
5736 (mulsi3_rl78): Likewise.
5737 (mulsi3_g13): Likewise.
5738 * config/rl78/rl78-real.md (cbranchqi4_real_signed): New.
5739 (cbranchqi4_real): Add more constraint options.
5740 (cbranchhi4_real): Expand pattern.
5741 (cbranchhi4_real_signed): New.
5742 (cbranchhi4_real_inverted): New.
5743 (cbranchsi4_real_lt): New.
5744 (cbranchsi4_real_ge): New.
5745 (cbranchsi4_real_signed): New.
5746 (cbranchsi4_real): New.
5747 (peephole2): New.
893e85fa
CM
5748 * config/rl78/rl78-virt.md (ashrsi3_virt): Add custom cases for
5749 constant shifts.
3e3d9d17
DD
5750 (lshrsi3_virt): Likewise.
5751 (ashlsi3_virt): Likewise.
5752 (cbranchqi4_virt_signed): New.
5753 (cbranchhi4_virt_signed): New.
5754 (cbranchsi4_virt): New.
5755 * config/rl78/rl78.c: Whitespace fixes throughout.
5756 (move_elim_pass): New.
5757 (pass_data_rl78_move_elim): New.
5758 (pass_rl78_move_elim): New.
5759 (make_pass_rl78_move_elim): New.
5760 (rl78_devirt_info): Run devirt earlier.
5761 (rl78_move_elim_info): New.
5762 (rl78_asm_file_start): Register it.
5763 (rl78_split_movsi): New.
5764 (rl78_as_legitimate_address): Allow virtual base registers when
5765 appropriate.
5766 (rl78_addr_space_convert): Remove spurious debug stuff.
5767 (rl78_print_operand_1): Add z,s,S,r,E modifiers.
5768 (rl78_print_operand): More cases for not printing '#'.
5769 (rl78_expand_compare): Remove most of the logic.
5770 (content_memory): New.
5771 (clear_content_memory): New.
5772 (get_content_index): New.
5773 (get_content_name): New.
5774 (display_content_memory): New.
5775 (update_content): New.
5776 (record_content): New.
5777 (already_contains): New.
5778 (insn_ok_now): Re-recog insns with virtual registers.
5779 (add_postponed_content_update): New.
5780 (process_postponed_content_update): New.
5781 (gen_and_emit_move): New.
893e85fa
CM
5782 (transcode_memory_rtx): Record new location content.
5783 Use gen_and_emit_move.
3e3d9d17
DD
5784 (force_into_acc): New.
5785 (move_to_acc): Use gen_and_emit_move.
5786 (move_from_acc): Likewise.
5787 (move_acc_to_reg): Likewise.
5788 (move_to_x): Likewise.
5789 (move_to_hl): Likewise.
5790 (move_to_de): Likewise.
5791 (rl78_alloc_physical_registers_op1): Record location content.
5792 (has_constraint): New.
5793 (rl78_alloc_physical_registers_op2): Record location content.
5794 Optimize use of HL.
5795 (rl78_alloc_physical_registers_ro1): Likewise.
5796 (rl78_alloc_physical_registers_cmp): Likewise.
5797 (rl78_alloc_physical_registers_umul): Likewise.
5798 (rl78_alloc_address_registers_macax): New.
5799 (rl78_alloc_physical_registers): Initialize and set location
5800 content memory as needed.
5801 (rl78_reorg): Make sure split2 is called.
5802 (rl78_rtx_costs): New.
5803
088845a5
RS
58042013-09-11 Richard Sandiford <rdsandiford@googlemail.com>
5805
5806 * simplify-rtx.c (simplify_unary_operation_1): Use simplify_gen_binary
5807 for (not (neg ...)) and (neg (not ...)) cases.
5808
5c2961cf
RB
58092013-09-11 Richard Biener <rguenther@suse.de>
5810
5811 PR middle-end/58377
5812 * passes.def: Split critical edges before late uninit warning passes.
5813 * tree-cfg.c (pass_split_crit_edges): Implement clone method.
5814
427e6a14
JJ
58152013-09-11 Jakub Jelinek <jakub@redhat.com>
5816
5817 PR tree-optimization/58385
5818 * fold-const.c (build_range_check): If both low and high are NULL,
5819 use omit_one_operand_loc to preserve exp side-effects.
5820
df45c0cc
KT
58212013-09-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5822
5823 * config/arm/arm.md (arm_shiftsi3): New alternative l/l/M.
5824
80ab0b19
RB
58252013-09-11 Richard Biener <rguenther@suse.de>
5826
5827 * tree-data-ref.c (dump_rdg_vertex, debug_rdg_vertex,
5828 dump_rdg_component, debug_rdg_component, dump_rdg, debug_rdg,
5829 dot_rdg_1, dot_rdg, rdg_vertex_for_stmt, create_rdg_edge_for_ddr,
5830 create_rdg_edges_for_scalar, create_rdg_edges, create_rdg_vertices,
5831 stmts_from_loop, known_dependences_p, build_empty_rdg,
5832 build_rdg, free_rdg, rdg_defs_used_in_other_loops_p): Move ...
5833 * tree-loop-distribution.c: ... here.
5834 * tree-data-ref.h (struct rdg_vertex, RDGV_STMT, RDGV_DATAREFS,
5835 RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT, RDG_DATAREFS,
5836 RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT, enum rdg_dep_type,
5837 struct rdg_edge, RDGE_TYPE, RDGE_LEVEL, RDGE_RELATION): Move ...
5838 * tree-loop-distribution.c: ... here.
5839 * tree-loop-distribution.c: Include gimple-pretty-print.h.
5840 (struct partition_s): Add loops member.
5841 (partition_alloc, partition_free, rdg_flag_uses, rdg_flag_vertex,
5842 rdg_flag_vertex_and_dependent, rdg_flag_loop_exits,
5843 build_rdg_partition_for_component, rdg_build_partitions): Adjust.
5844
85a77221
AI
58452013-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
5846 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
5847 Sergey Lega <sergey.s.lega@intel.com>
5848 Anna Tikhonova <anna.tikhonova@intel.com>
5849 Ilya Tocar <ilya.tocar@intel.com>
5850 Andrey Turetskiy <andrey.turetskiy@intel.com>
5851 Ilya Verbin <ilya.verbin@intel.com>
5852 Kirill Yukhin <kirill.yukhin@intel.com>
5853 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
5854
5855 * config/i386/constraints.md (k): New.
5856 (Yk): Ditto.
5857 * config/i386/i386.c (const regclass_map): Add new mask registers.
5858 (dbx_register_map): Ditto.
5859 (dbx64_register_map): Ditto.
5860 (svr4_dbx_register_map): Ditto.
5861 (ix86_conditional_register_usage): Squash mask registers if AVX512F is
5862 disabled.
5863 (ix86_preferred_reload_class): Disable constants for mask registers.
5864 (ix86_secondary_reload): Do spill of mask register using 32-bit insn.
5865 (ix86_hard_regno_mode_ok): Support new mask registers.
5866 (x86_order_regs_for_local_alloc): Ditto.
5867 * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Update.
5868 (FIXED_REGISTERS): Add new mask registers.
5869 (CALL_USED_REGISTERS): Ditto.
5870 (REG_ALLOC_ORDER): Ditto.
5871 (VALID_MASK_REG_MODE): New.
5872 (FIRST_MASK_REG): Ditto.
5873 (LAST_MASK_REG): Ditto.
5874 (reg_class): Add MASK_EVEX_REGS, MASK_REGS.
5875 (MAYBE_MASK_CLASS_P): New.
5876 (REG_CLASS_NAMES): Add MASK_EVEX_REGS, MASK_REGS.
5877 (REG_CLASS_CONTENTS): Ditto.
5878 (MASK_REGNO_P): New.
5879 (ANY_MASK_REG_P): Ditto.
5880 (HI_REGISTER_NAMES): Add new mask registers.
893e85fa
CM
5881 * config/i386/i386.md (MASK0_REG, MASK1_REG, MASK2_REG, MASK3_REG,
5882 MASK4_REG, MASK5_REG, MASK6_REG, MASK7_REG): Constants for new
5883 mask registers.
85a77221
AI
5884 (attribute "type"): Add mskmov, msklog.
5885 (attribute "length_immediate"): Support them.
5886 (attribute "memory"): Ditto.
5887 (attribute "prefix_0f"): Ditto.
5888 (*movhi_internal): Support new mask registers.
5889 (*movqi_internal): Ditto.
5890 (define_split): Split out clobber pattern is a logic
5891 insn on mask registers.
5892 (*k<logic><mode>): New.
5893 (*andhi_1): Extend to support mask regs.
5894 (*andqi_1): Extend to support mask regs.
5895 (kandn<mode>): New.
5896 (define_split): Split and-not to and and not if operands
5897 are not mask regs.
5898 (*<code><mode>_1): Separate HI mode to new pattern...
5899 (*<code>hi_1): This.
5900 (*<code>qi_1): Extend to support mask regs.
5901 (kxnor<mode>): New.
5902 (kortestzhi): Ditto.
5903 (kortestchi): Ditto.
5904 (kunpckhi): Ditto.
5905 (*one_cmpl<mode>2_1): Remove HImode and handle it...
5906 (*one_cmplhi2_1): ...Here, now with mask registers support.
5907 (*one_cmplqi2_1): Support new mask registers.
893e85fa
CM
5908 (HI/QImode arithmetics splitter): Don't split if mask registers
5909 are used.
85a77221
AI
5910 (HI/QImode not splitter): Ditto.
5911 * config/i386/predicated.md (mask_reg_operand): New.
5912 (general_reg_operand): Ditto.
5913
7e570821
AI
59142013-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
5915
5916 * doc/invoke.texi: Document fxsr, xsave and xsaveopt options.
5917 * doc/extend.texi: Document fxsr, xsave and xsaveopt builtins.
5918
9e1376e9
JL
59192013-09-10 Jeff Law <law@redhat.com>
5920
5921 PR tree-optimization/58380
5922 * tree-ssa-threadupdate.c (thread_block): Recognize another case
5923 of threading through a buried loop header.
5924
5925 * tree-ssa-threadedge.c (thread_around_empty_blocks): Correct
5926 return value for single successor case.
5927
5bbcb888
JH
59282013-09-10 Jan Hubicka <jh@suse.cz>
5929
5930 * ipa-devirt.c (ipa_devirt): Enable with LTO.
5931
d742ff4b
RE
59322013-09-10 Richard Earnshaw <rearnsha@arm.com>
5933
5934 PR target/58361
5935 * arm/vfp.md (combine_vcvt_f32_<FCVTI32typename>): Fix pattern to
5936 support conditional execution.
5937 (combine_vcvt_f64_<FCVTI32typename>): Likewise.
5938
b0681c9e
VM
59392013-09-10 Vladimir Makarov <vmakarov@redhat.com>
5940
5941 * lra.c (lra): Clear lra_optional_reload_pseudos before every
5942 constraint pass.
f77e2d2d
JBG
5943 * lra-constraints.c (curr_insn_transform): Switch on optional reloads.
5944 Check destination too to check move insn.
b0681c9e 5945 (undo_optional_reloads): Add check that the original peudo did not
f77e2d2d
JBG
5946 changed its allocation and the optional reload was inherited on last
5947 inheritance pass. Break loop after deciding to keep optional reload.
b0681c9e
VM
5948 (lra_undo_inheritance): Add check that inherited pseudo still in
5949 memory.
5950
c9b1c957
JG
59512013-09-10 James Greenhalgh <james.greenhalgh@arm.com>
5952
5953 * config/aarch64/aarch64.md (generic_sched): New.
5954 * config/aarch64/aarch64-generic.md (load): Make conditional
5955 on generic_sched attribute.
5956 (nonload): Likewise.
5957
82d618d3
JH
59582013-09-10 Jan Hubicka <jh@suse.cz>
5959
5960 * lto-cgraph.c: Include ipa-utils.h.
5961 (compute_ltrans_boundary): Also add possible targets into the boundary.
5962
668b6894
JH
59632013-09-10 Jan Hubicka <jh@suse.cz>
5964
5965 * gimple-fold.c (gimple_get_virt_method_for_binfo): Pass real
5966 VAR_DECL of vtable rather than full expression.
5967
4f90d3e0
JH
59682013-09-10 Jan Hubicka <jh@suse.cz>
5969 Paolo Carlini <paolo.carlini@oracle.com>
5970
5971 * cgraphunit.c (analyze_functions): Save input_location, set it
5972 to UNKNOWN_LOCATION and restore it at the end.
5973
39e87baf
MJ
59742013-09-10 Martin Jambor <mjambor@suse.cz>
5975
5976 * ipa-cp.c (propagate_constants_topo): Do not ignore SCC
5977 represented by a thunk.
5978
581aedec
JL
59792013-09-10 Jeff Law <law@redhat.com>
5980
5981 PR tree-optimization/58343
5982 * tree-ssa-threadupdate.c (thread_block): Identify and disable
5983 jump threading requests through loop headers buried in the middle
5984 of a jump threading path.
5985
5986 * tree-ssa-threadedge.c (thread_around_empty_blocks): Fix thinko
5987 in return value/type.
5988
84cf4ab6
JJ
59892013-09-10 Jakub Jelinek <jakub@redhat.com>
5990
5991 PR rtl-optimization/58365
5992 * cfgcleanup.c (merge_memattrs): Also clear MEM_READONLY_P
5993 resp. MEM_NOTRAP_P if they differ, or set MEM_VOLATILE_P if
5994 it differs.
5995
447dd906
RB
59962013-09-10 Richard Biener <rguenther@suse.de>
5997
5998 * tree-data-ref.h (build_rdg): Drop all parameters but loop.
5999 * tree-data-ref.c (create_rdg_vertices): Collect all data
6000 references, signal failure to the caller, use data-ref API.
893e85fa
CM
6001 (build_rdg): Compute data references only once. Maintain lifetime
6002 of data references and data dependences from within RDG.
447dd906
RB
6003 (free_rdg): Free dependence relations.
6004 * tree-loop-distribution.c (rdg_flag_uses): Drop weird code
6005 inventing extra dependences.
6006 (distribute_loop): Update for RDG API changes.
6007
f14a7324
KT
60082013-09-10 Kai Tietz <ktietz@redhat.com>
6009
6010 * doc/invoke.texi (fms-extensions): Document changed
6011 behavior for ms-abi targets.
6012 * config/i386/i386.c (ix86_option_override_internal):
6013 Set default value of option -fms-extension for ms-abi targets.
6014
ff131f26
MZ
60152013-09-10 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
6016
6017 * config/i386/i386.c (ix86_expand_movmem): Fix epilogue generation.
6018
33115a2c
AM
60192013-09-10 Alan Modra <amodra@gmail.com>
6020
6021 PR target/58330
6022 * config/rs6000/rs6000.md (bswapdi2_64bit): Disable for volatile mems.
6023
b6872a13
AM
60242013-09-10 Alan Modra <amodra@gmail.com>
6025
6026 * config/rs6000/predicates.md (add_cint_operand): New.
6027 (reg_or_add_cint_operand, small_toc_ref): Use add_cint_operand.
6028 * config/rs6000/rs6000.md (largetoc_high_plus): Restrict offset
6029 using add_cint_operand.
6030 (largetoc_high_plus_aix): Likewise.
6031
28fd0ba2
JJ
60322013-09-09 Jakub Jelinek <jakub@redhat.com>
6033
6034 PR tree-optimization/58364
6035 * tree-ssa-reassoc.c (init_range_entry): For BIT_NOT_EXPR on
6036 BOOLEAN_TYPE, only invert in_p and continue with arg0 if
6037 the current range can't be an unconditional true or false.
6038
552d99fe
JG
60392013-09-09 James Greenhalgh <james.greenhalgh@arm.com>
6040
6041 * config/aarch64/arm_neon.h (vrsqrte_f64): Fix parameter type.
6042
f43245d1
UB
60432013-09-09 Uros Bizjak <ubizjak@gmail.com>
6044
6045 * ipa-prop.c (ipa_modify_call_arguments): Initialize deref_align.
6046
c9b0866a
PC
60472013-09-09 Paolo Carlini <paolo.carlini@oracle.com>
6048
6049 PR c++/43452
6050 * doc/invoke.texi (-Wdelete-incomplete): Document it.
6051
78d8b9f0
IB
60522013-09-09 Ian Bolton <ian.bolton@arm.com>
6053
6054 * config/aarch64/aarch64.c (aarch64_preferred_reload_class): Return
6055 NO_REGS for immediate that can't be moved directly into FP_REGS.
6056
274b2532
KT
60572013-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6058
6059 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
6060 comparison with negated operand.
c9b0866a
PC
6061 * config/aarch64/aarch64.md (compare_neg<mode>): Match canonical
6062 RTL form.
274b2532 6063
467a3558
RB
60642013-09-09 Richard Biener <rguenther@suse.de>
6065
6066 PR middle-end/58326
6067 * cfgloopmanip.c (fix_bb_placements): When fixing the placement
6068 of a subloop record all its block as affecting loop-closed SSA form.
6069
088c5368
RS
60702013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
6071
6072 * expmed.c (lshift_value): Take an unsigned HOST_WIDE_INT instead
6073 of an rtx/bitpos pair.
6074 (store_fixed_bit_field): Update accordingly.
6075
69db2d57
RS
60762013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
6077
6078 * asan.c (asan_emit_stack_protection): Use gen_int_mode instead of
6079 GEN_INT.
6080 * builtins.c (expand_errno_check): Likewise.
6081 * dwarf2cfi.c (init_return_column_size): Likewise.
6082 * except.c (sjlj_mark_call_sites): Likewise.
6083 * expr.c (move_by_pieces_1, store_by_pieces_2): Likewise.
6084 * lra-constraints.c (emit_inc): Likewise.
6085 * ree.c (combine_set_extension): Likewise.
6086 * regmove.c (fixup_match_2): Likewise.
6087 * reload1.c (inc_for_reload): Likewise.
6088
69a59f0f
RS
60892013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
6090
6091 * combine.c (simplify_set, expand_field_assignment, extract_left_shift)
6092 (force_to_mode, simplify_shift_const_1, simplify_comparison):
6093 Use gen_int_mode with the mode of the associated simplify_* call.
6094 * explow.c (probe_stack_range, anti_adjust_stack_and_probe): Likewise.
6095 * expmed.c (expand_shift_1): Likewise.
6096 * function.c (instantiate_virtual_regs_in_insn): Likewise.
6097 * loop-iv.c (iv_number_of_iterations): Likewise.
6098 * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
6099 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
6100
2f1cd2eb
RS
61012013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
6102
6103 * asan.c (asan_clear_shadow): Use gen_int_mode with the mode
6104 of the associated expand_* call.
6105 (asan_emit_stack_protection): Likewise.
6106 * builtins.c (round_trampoline_addr): Likewise.
6107 * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise.
6108 * expmed.c (expand_smod_pow2, expand_sdiv_pow2, expand_divmod)
6109 (emit_store_flag): Likewise.
6110 * expr.c (emit_move_resolve_push, push_block, emit_single_push_insn_1)
6111 (emit_push_insn, optimize_bitfield_assignment_op, expand_expr_real_1):
6112 Likewise.
6113 * function.c (instantiate_virtual_regs_in_insn): Likewise.
6114 * ifcvt.c (noce_try_store_flag_constants): Likewise.
6115 * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
6116 * modulo-sched.c (generate_prolog_epilog): Likewise.
6117 * optabs.c (expand_binop, widen_leading, expand_doubleword_clz)
6118 (expand_ctz, expand_ffs, expand_unop): Likewise.
6119
4789c0ce
RS
61202013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
6121
6122 * alias.c (addr_side_effect_eval): Use gen_int_mode with the mode
6123 of the associated gen_rtx_* call.
6124 * caller-save.c (init_caller_save): Likewise.
6125 * combine.c (find_split_point, make_extraction): Likewise.
6126 (make_compound_operation): Likewise.
6127 * dwarf2out.c (mem_loc_descriptor): Likewise.
6128 * explow.c (plus_constant, probe_stack_range): Likewise.
6129 * expmed.c (expand_mult_const): Likewise.
6130 * expr.c (emit_single_push_insn_1, do_tablejump): Likewise.
6131 * reload1.c (init_reload): Likewise.
6132 * valtrack.c (cleanup_auto_inc_dec): Likewise.
6133 * var-tracking.c (adjust_mems): Likewise.
6134 * modulo-sched.c (sms_schedule): Likewise, but use gen_rtx_GT
6135 rather than gen_rtx_fmt_ee.
6136
a811f7cb
JH
61372013-09-09 Jan Hubicka <jh@suse.cz>
6138
6139 PR middle-end/58294
6140 * value-prof.c (gimple_ic): Copy also abnormal edges.
6141
dcad1dd3
RS
61422013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
6143
6144 * asan.c (asan_shadow_cst): Use gen_int_mode.
6145
daf5c770
JH
61462013-09-08 Jan Hubicka <jh@suse.cz>
6147
6148 * ipa-profile.c: Add toplevel comment.
6149 (ipa_propagate_frequency_1): Be more conservative when profile is read.
6150 (contains_hot_call_p): New function.
6151 (ipa_propagate_frequency): Set frequencies based on counts when
6152 profile is read.
6153 * predict.c (compute_function_frequency): Use PROFILE_READ gueard for
6154 profile; do not tamper with profile after inlining if it is read.
6155
a12cd2db
JH
61562013-09-08 Jan Hubicka <jh@suse.cz>
6157
6158 * ipa-prop.c (try_make_edge_direct_simple_call): Do not special case
6159 speculative edges.
6160
856a1588
JH
61612013-09-08 Jan Hubicka <jh@suse.cz>
6162
6163 * ipa.c (walk_polymorphic_call_targets): Fix redirection before IPA
6164 summary generation.
6165
4f4b0b73
JL
61662013-09-08 Jeff Law <law@redhat.com>
6167
6168 PR bootstrap/58340
6169 * tree-ssa-threadedge.c (thread_across_edge): Fix initialization
6170 of 'found'.
6171
cc4029ee
AK
61722013-09-08 Andi Kleen <ak@linux.intel.com>
6173
6174 * tree-inline.c (estimate_num_insns): Limit asm cost to 1000.
6175
7b395ddd
JH
61762013-09-08 Jan Hubicka <jh@suse.cz>
6177
6178 * ipa.c (walk_polymorphic_call_targets): Fix inliner summary update.
6179
c34c46dd
RS
61802013-09-08 Richard Sandiford <rdsandiford@googlemail.com>
6181
6182 * ira.c (update_equiv_regs): Only call set_paradoxical_subreg
6183 for non-debug insns.
6184 * lra.c (new_insn_reg): Take the containing insn as a parameter.
6185 Only modify lra_reg_info[].biggest_mode if it's non-debug insn.
6186 (collect_non_operand_hard_regs, add_regs_to_insn_regno_info): Update
6187 accordingly.
6188
3462aa02
JH
61892013-09-08 Jan Hubicka <jh@suse.cz>
6190
6191 * cgraphunit.c (walk_polymorphic_call_targets): Permit 0 possible
6192 targets and devirtualize to BUILT_IN_UNREACHABLE.
6193 * timevar.def (TV_IPA_UNREACHABLE): New timevar.
6194 * ipa.c (walk_polymorphic_call_targets): New function.
6195 (symtab_remove_unreachable_nodes): Use it; do not keep all virtual
6196 functions; use the new timevar.
6197 * ipa-devirt.c (maybe_record_node): Do not insert static nodes that
6198 was removed from the program.
6199 (record_binfo): If BINFO corresponds to an anonymous namespace, we may
6200 not consider it in the walk when its vtable is dead.
6201 (possible_polymorphic_call_targets_1): Pass anonymous flag to
6202 record_binfo.
6203 (devirt_variable_node_removal_hook): New function.
6204 (possible_polymorphic_call_targets): Also register
6205 devirt_variable_node_removal_hook.
6206 (ipa_devirt): Do not do non-speculative devirtualization.
6207 (gate_ipa_devirt): One execute if devirtualizing speculatively.
6208
26e5b0fd
JH
62092013-09-08 Jan Hubicka <jh@suse.cz>
6210
6211 * cgraph.h (varpool_node_hook, varpool_node_hook_list,
6212 varpool_add_node_removal_hook, varpool_add_variable_insertion_hook,
6213 varpool_remove_variable_insertion_hook): Declare.
6214 * varpool.c (varpool_node_hook_list): New structure.
6215 (first_varpool_node_removal_hook,
6216 first_varpool_variable_insertion_hook): New variables.
6217 (varpool_add_node_removal_hook, varpool_remove_node_removal_hook,
6218 varpool_call_node_removal_hooks, varpool_add_variable_insertion_hook,
6219 varpool_remove_variable_insertion_hook,
6220 varpool_call_variable_insertion_hooks): New functions.
6221 (varpool_remove_node): Use it.
6222
97f1f314 62232013-09-08 Paolo Carlini <paolo.carlini@oracle.com>
6df2ca09 6224
97f1f314
PC
6225 PR c++/54941
6226 * diagnostic.c (diagnostic_build_prefix): When s.file is
6227 "<built-in>" don't output line and column numbers.
6df2ca09 6228
bcb650cb
JH
62292013-09-06 Jan Hubicka <jh@suse.cz>
6230
6231 * cgraphunit.c (expand_thunk): Get body before touching arguments.
6232 * lto-streamer-out.c: Stream thunks, too.
6233 * lto-streamer-in.c (input_function): Pop cfun here
6234 (lto_read_body): Instead of here.
6235
87f3fea8
CT
62362013-09-06 Caroline Tice <cmtice@google.com>
6237
6238 * doc/install.texi: Add documentation for the --enable-vtable-verify
6239 and the --disable-libvtv configure options.
6240
5e8d9b45
JL
62412013-09-06 Jeff Law <law@redhat.com>
6242
6243 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
6244 edge implied equivalences into successor phis.
6245
3a001aff
JR
62462013-09-06 Joern Rennecke <joern.rennecke@embecosm.com>
6247
6248 * resource.c (mark_referenced_resources): Handle COND_EXEC.
6249
62502013-09-06 Claudiu Zissulescu <claziss@synopsys.com>
c42091c1
CZ
6251
6252 * resource.c (mark_target_live_regs): Compute resources taking
6253 into account if a call is predicated or not.
6254
2c641f8b
EB
62552013-09-06 Eric Botcazou <ebotcazou@adacore.com>
6256
6257 * toplev.c (output_stack_usage): Be prepared for suffixes created by
6258 the compiler in the function names.
6259
a81b0a3d
JH
62602013-09-06 Jan Hubicka <jh@suse.cz>
6261
6262 PR middle-end/58094
6263 * ipa-inline.c (has_caller_p): New function.
6264 (want_inline_function_to_all_callers_p): Use it.
6265 (sum_callers, inline_to_all_callers): Break out from ...
6266 (ipa_inline): ... here.
6267
68e4ca7e
JH
62682013-09-06 Jan Hubicka <jh@suse.cz>
6269
2c641f8b
EB
6270 * config/i386/i386.c (ix86_hard_regno_mode_ok): AVX modes are valid
6271 only when AVX is enabled.
68e4ca7e 6272
3c73e2fe
JG
62732013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
6274
6275 * config/aarch64/aarch64.md
6276 (*movtf_aarch64): Use neon_<ls>dm_2 as type where v8type
6277 is fpsimd_<load/store>2.
6278 (load_pair<mode>): Likewise.
6279 (store_pair<mode>): Likewise.
6280
8c48eecd
JG
62812013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
6282
6283 * config/arm/types.md (type): Add "mrs" type.
6284 * config/aarch64/aarch64.md
6285 (aarch64_load_tp_hard): Make type "mrs".
6286 * config/arm/arm.md
6287 (load_tp_hard): Make type "mrs".
6288 * config/arm/cortex-a15.md: Update with new attributes.
6289 * config/arm/cortex-a5.md: Update with new attributes.
6290 * config/arm/cortex-a53.md: Update with new attributes.
6291 * config/arm/cortex-a7.md: Update with new attributes.
6292 * config/arm/cortex-a8.md: Update with new attributes.
6293 * config/arm/cortex-a9.md: Update with new attributes.
6294 * config/arm/cortex-m4.md: Update with new attributes.
6295 * config/arm/cortex-r4.md: Update with new attributes.
6296 * config/arm/fa526.md: Update with new attributes.
6297 * config/arm/fa606te.md: Update with new attributes.
6298 * config/arm/fa626te.md: Update with new attributes.
6299 * config/arm/fa726te.md: Update with new attributes.
6300
9ea187a5
JG
63012013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
6302
6303 * config/aarch64/aarch64.md
6304 (*movti_aarch64): Use "multiple" for type where v8type is "move2".
6305 (*movtf_aarch64): Likewise.
6306 * config/arm/arm.md
6307 (thumb1_movdi_insn): Use "multiple" for type where more than one
6308 instruction is used for a move.
6309 (*arm32_movhf): Likewise.
6310 (*thumb_movdf_insn): Likewise.
6311
292b89b3
JG
63122013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
6313
6314 * config/arm/types.md (type): Rename fcpys to fmov.
6315 * config/arm/vfp.md
6316 (*arm_movsi_vfp): Rename type fcpys as fmov.
6317 (*thumb2_movsi_vfp): Likewise
6318 (*movhf_vfp_neon): Likewise
6319 (*movhf_vfp): Likewise
6320 (*movsf_vfp): Likewise
6321 (*thumb2_movsf_vfp): Likewise
6322 (*movsfcc_vfp): Likewise
6323 (*thumb2_movsfcc_vfp): Likewise
6324 * config/aarch64/aarch64-simd.md
6325 (move_lo_quad_<mode>): Replace type mov_reg with fmovs.
6326 * config/aarch64/aarch64.md
6327 (*movsi_aarch64): Replace type mov_reg with fmovs.
6328 (*movdi_aarch64): Likewise
6329 (*movsf_aarch64): Likewise
6330 (*movdf_aarch64): Likewise
6331 * config/arm/arm.c
6332 (cortexa7_older_only): Rename TYPE_FCPYS to TYPE_FMOV.
6333 * config/arm/iwmmxt.md
6334 (*iwmmxt_movsi_insn): Rename type fcpys as fmov.
6335 * config/arm/arm1020e.md: Update with new attributes.
6336 * config/arm/cortex-a15-neon.md: Update with new attributes.
6337 * config/arm/cortex-a5.md: Update with new attributes.
6338 * config/arm/cortex-a53.md: Update with new attributes.
6339 * config/arm/cortex-a7.md: Update with new attributes.
6340 * config/arm/cortex-a8-neon.md: Update with new attributes.
6341 * config/arm/cortex-a9.md: Update with new attributes.
6342 * config/arm/cortex-m4-fpu.md: Update with new attributes.
6343 * config/arm/cortex-r4f.md: Update with new attributes.
6344 * config/arm/marvell-pj4.md: Update with new attributes.
6345 * config/arm/vfp11.md: Update with new attributes.
6346
6a24a83e
JG
63472013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
6348
6349 * config/aarch64/aarch64.md
6350 (*madd<mode>): Fix type attribute.
6351 (*maddsi_uxtw): Likewise.
6352 (*msub<mode>): Likewise.
6353 (*msubsi_uxtw): Likewise.
6354 (<su_optab>maddsidi4): Likewise.
6355 (<su_optab>msubsidi4): Likewise.
6356
b86923f0
JG
63572013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
6358
6359 * config/arm/types.md: Split fdiv<sd> as fsqrt<sd>, fdiv<sd>.
6360 * config/arm/arm.md (core_cycles): Remove fdiv.
6361 * config/arm/vfp.md:
6362 (*sqrtsf2_vfp): Update for attribute changes.
6363 (*sqrtdf2_vfp): Likewise.
6364 * config/aarch64/aarch64.md:
6365 (sqrt<mode>2): Update for attribute changes.
6366 * config/arm/arm1020e.md: Update with new attributes.
6367 * config/arm/cortex-a15-neon.md: Update with new attributes.
6368 * config/arm/cortex-a5.md: Update with new attributes.
6369 * config/arm/cortex-a53.md: Update with new attributes.
6370 * config/arm/cortex-a7.md: Update with new attributes.
6371 * config/arm/cortex-a8-neon.md: Update with new attributes.
6372 * config/arm/cortex-a9.md: Update with new attributes.
6373 * config/arm/cortex-m4-fpu.md: Update with new attributes.
6374 * config/arm/cortex-r4f.md: Update with new attributes.
6375 * config/arm/marvell-pj4.md: Update with new attributes.
6376 * config/arm/vfp11.md: Update with new attributes.
6377
7b49c9e1
JG
63782013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
6379
6380 * config/arm/types.md
6381 (type): Split f_cvt as f_cvt, f_cvtf2i, f_cvti2f.
6382 * config/aarch64/aarch64.md
6383 (l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): Update with
6384 new attributes.
6385 (fix_trunc<GPF:mode><GPI:mode>2): Likewise.
6386 (fixuns_trunc<GPF:mode><GPI:mode>2): Likewise.
6387 (float<GPI:mode><GPF:mode>2): Likewise.
6388 * config/arm/vfp.md
6389 (*truncsisf2_vfp): Update with new attributes.
6390 (*truncsidf2_vfp): Likewise.
6391 (fixuns_truncsfsi2): Likewise.
6392 (fixuns_truncdfsi2): Likewise.
6393 (*floatsisf2_vfp): Likewise.
6394 (*floatsidf2_vfp): Likewise.
6395 (floatunssisf2): Likewise.
6396 (floatunssidf2): Likewise.
6397 (*combine_vcvt_f32_<FCVTI32typename>): Likewise.
6398 (*combine_vcvt_f64_<FCVTI32typename>): Likewise.
6399 * config/arm/arm1020e.md: Update with new attributes.
6400 * config/arm/cortex-a15-neon.md: Update with new attributes.
6401 * config/arm/cortex-a5.md: Update with new attributes.
6402 * config/arm/cortex-a53.md: Update with new attributes.
6403 * config/arm/cortex-a7.md: Update with new attributes.
6404 * config/arm/cortex-a8-neon.md: Update with new attributes.
6405 * config/arm/cortex-a9.md: Update with new attributes.
6406 * config/arm/cortex-m4-fpu.md: Update with new attributes.
6407 * config/arm/cortex-r4f.md: Update with new attributes.
6408 * config/arm/marvell-pj4.md: Update with new attributes.
6409 * config/arm/vfp11.md: Update with new attributes.
6410
e7df8af8
JG
64112013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
6412
6413 * config/aarch64/arm_neon.h
6414 (vqtbl<1,2,3,4><q>_s8): Fix control vector parameter type.
6415 (vqtbx<1,2,3,4><q>_s8): Likewise.
6416
594726e4
JG
64172013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
6418
f43245d1
UB
6419 * config/arm/types.md: Add "no_insn", "multiple" and "untyped" types.
6420 * config/arm/arm-fixed.md: Add type attribute to all insn patterns.
594726e4
JG
6421 (add<mode>3): Add type attribute.
6422 (add<mode>3): Likewise.
6423 (usadd<mode>3): Likewise.
6424 (ssadd<mode>3): Likewise.
6425 (sub<mode>3): Likewise.
6426 (sub<mode>3): Likewise.
6427 (ussub<mode>3): Likewise.
6428 (sssub<mode>3): Likewise.
6429 (ssmulsa3): Likewise.
6430 (usmulusa3): Likewise.
6431 (arm_usatsihi): Likewise.
6432 * config/arm/vfp.md
6433 (*movdi_vfp): Add types for all instructions.
6434 (*movdi_vfp_cortexa8): Likewise.
6435 (*movhf_vfp_neon): Likewise.
6436 (*movhf_vfp): Likewise.
6437 (*movdf_vfp): Likewise.
6438 (*thumb2_movdf_vfp): Likewise.
6439 (*thumb2_movdfcc_vfp): Likewise.
6440 * config/arm/arm.md: Add type attribute to all insn patterns.
6441 (*thumb1_adddi3): Add type attribute.
6442 (*arm_adddi3): Likewise.
6443 (*adddi_sesidi_di): Likewise.
6444 (*adddi_zesidi_di): Likewise.
6445 (*thumb1_addsi3): Likewise.
6446 (addsi3_compare0): Likewise.
6447 (*addsi3_compare0_scratch): Likewise.
6448 (*compare_negsi_si): Likewise.
6449 (cmpsi2_addneg): Likewise.
6450 (*addsi3_carryin_<optab>): Likewise.
6451 (*addsi3_carryin_alt2_<optab>): Likewise.
6452 (*addsi3_carryin_clobercc_<optab>): Likewise.
6453 (*subsi3_carryin): Likewise.
6454 (*subsi3_carryin_const): Likewise.
6455 (*subsi3_carryin_compare): Likewise.
6456 (*subsi3_carryin_compare_const): Likewise.
6457 (*arm_subdi3): Likewise.
6458 (*thumb_subdi3): Likewise.
6459 (*subdi_di_zesidi): Likewise.
6460 (*subdi_di_sesidi): Likewise.
6461 (*subdi_zesidi_di): Likewise.
6462 (*subdi_sesidi_di): Likewise.
6463 (*subdi_zesidi_ze): Likewise.
6464 (thumb1_subsi3_insn): Likewise.
6465 (*arm_subsi3_insn): Likewise.
6466 (*anddi3_insn): Likewise.
6467 (*anddi_zesidi_di): Likewise.
6468 (*anddi_sesdi_di): Likewise.
6469 (*ne_zeroextracts): Likewise.
6470 (*ne_zeroextracts): Likewise.
6471 (*ite_ne_zeroextr): Likewise.
6472 (*ite_ne_zeroextr): Likewise.
6473 (*anddi_notdi_di): Likewise.
6474 (*anddi_notzesidi): Likewise.
6475 (*anddi_notsesidi): Likewise.
6476 (andsi_notsi_si): Likewise.
6477 (thumb1_bicsi3): Likewise.
6478 (*iordi3_insn): Likewise.
6479 (*iordi_zesidi_di): Likewise.
6480 (*iordi_sesidi_di): Likewise.
6481 (*thumb1_iorsi3_insn): Likewise.
6482 (*xordi3_insn): Likewise.
6483 (*xordi_zesidi_di): Likewise.
6484 (*xordi_sesidi_di): Likewise.
6485 (*arm_xorsi3): Likewise.
6486 (*andsi_iorsi3_no): Likewise.
6487 (*smax_0): Likewise.
6488 (*smax_m1): Likewise.
6489 (*arm_smax_insn): Likewise.
6490 (*smin_0): Likewise.
6491 (*arm_smin_insn): Likewise.
6492 (*arm_umaxsi3): Likewise.
6493 (*arm_uminsi3): Likewise.
6494 (*minmax_arithsi): Likewise.
6495 (*minmax_arithsi_): Likewise.
6496 (*satsi_<SAT:code>): Likewise.
6497 (arm_ashldi3_1bit): Likewise.
6498 (arm_ashrdi3_1bit): Likewise.
6499 (arm_lshrdi3_1bit): Likewise.
6500 (*arm_negdi2): Likewise.
6501 (*thumb1_negdi2): Likewise.
6502 (*arm_negsi2): Likewise.
6503 (*thumb1_negsi2): Likewise.
6504 (*negdi_extendsid): Likewise.
6505 (*negdi_zero_extend): Likewise.
6506 (*arm_abssi2): Likewise.
6507 (*thumb1_abssi2): Likewise.
6508 (*arm_neg_abssi2): Likewise.
6509 (*thumb1_neg_abss): Likewise.
6510 (one_cmpldi2): Likewise.
6511 (extend<mode>di2): Likewise.
6512 (*compareqi_eq0): Likewise.
6513 (*arm_extendhisi2addsi): Likewise.
6514 (*arm_movdi): Likewise.
6515 (*thumb1_movdi_insn): Likewise.
6516 (*arm_movt): Likewise.
6517 (*thumb1_movsi_insn): Likewise.
6518 (pic_add_dot_plus_four): Likewise.
6519 (pic_add_dot_plus_eight): Likewise.
6520 (tls_load_dot_plus_eight): Likewise.
6521 (*thumb1_movhi_insn): Likewise.
6522 (*thumb1_movsf_insn): Likewise.
6523 (*movdf_soft_insn): Likewise.
6524 (*thumb_movdf_insn): Likewise.
6525 (cbranchsi4_insn): Likewise.
6526 (cbranchsi4_scratch): Likewise.
6527 (*negated_cbranchsi4): Likewise.
6528 (*tbit_cbranch): Likewise.
6529 (*tlobits_cbranch): Likewise.
6530 (*tstsi3_cbranch): Likewise.
6531 (*cbranchne_decr1): Likewise.
6532 (*addsi3_cbranch): Likewise.
6533 (*addsi3_cbranch_scratch): Likewise.
6534 (*arm_cmpdi_insn): Likewise.
6535 (*arm_cmpdi_unsig): Likewise.
6536 (*arm_cmpdi_zero): Likewise.
6537 (*thumb_cmpdi_zero): Likewise.
6538 (*deleted_compare): Likewise.
6539 (*mov_scc): Likewise.
6540 (*mov_negscc): Likewise.
6541 (*mov_notscc): Likewise.
6542 (*cstoresi_eq0_thumb1_insn): Likewise.
6543 (cstoresi_nltu_thumb1): Likewise.
6544 (cstoresi_ltu_thu): Likewise.
6545 (thumb1_addsi3_addgeu): Likewise.
6546 (*arm_jump): Likewise.
6547 (*thumb_jump): Likewise.
6548 (*check_arch2): Likewise.
6549 (arm_casesi_internal): Likewise.
6550 (thumb1_casesi_dispatch): Likewise.
6551 (*arm_indirect_jump): Likewise.
6552 (*thumb1_indirect_jump): Likewise.
6553 (nop): Likewise.
6554 (*and_scc): Likewise.
6555 (*ior_scc): Likewise.
6556 (*compare_scc): Likewise.
6557 (*cond_move): Likewise.
6558 (*cond_arith): Likewise.
6559 (*cond_sub): Likewise.
6560 (*cmp_ite0): Likewise.
6561 (*cmp_ite1): Likewise.
6562 (*cmp_and): Likewise.
6563 (*cmp_ior): Likewise.
6564 (*ior_scc_scc): Likewise.
6565 (*ior_scc_scc_cmp): Likewise.
6566 (*and_scc_scc): Likewise.
6567 (*and_scc_scc_cmp): Likewise.
6568 (*and_scc_scc_nod): Likewise.
6569 (*negscc): Likewise.
6570 (movcond_addsi): Likewise.
6571 (movcond): Likewise.
6572 (*ifcompare_plus_move): Likewise.
6573 (*if_plus_move): Likewise.
6574 (*ifcompare_move_plus): Likewise.
6575 (*if_move_plus): Likewise.
6576 (*ifcompare_arith_arith): Likewise.
6577 (*if_arith_arith): Likewise.
6578 (*ifcompare_arith_move): Likewise.
6579 (*if_arith_move): Likewise.
6580 (*ifcompare_move_arith): Likewise.
6581 (*if_move_arith): Likewise.
6582 (*ifcompare_move_not): Likewise.
6583 (*if_move_not): Likewise.
6584 (*ifcompare_not_move): Likewise.
6585 (*if_not_move): Likewise.
6586 (*ifcompare_shift_move): Likewise.
6587 (*if_shift_move): Likewise.
6588 (*ifcompare_move_shift): Likewise.
6589 (*if_move_shift): Likewise.
6590 (*ifcompare_shift_shift): Likewise.
6591 (*ifcompare_not_arith): Likewise.
6592 (*ifcompare_arith_not): Likewise.
6593 (*if_arith_not): Likewise.
6594 (*ifcompare_neg_move): Likewise.
6595 (*if_neg_move): Likewise.
6596 (*ifcompare_move_neg): Likewise.
6597 (*if_move_neg): Likewise.
6598 (prologue_thumb1_interwork): Likewise.
6599 (*cond_move_not): Likewise.
6600 (*sign_extract_onebit): Likewise.
6601 (*not_signextract_onebit): Likewise.
6602 (stack_tie): Likewise.
6603 (align_4): Likewise.
6604 (align_8): Likewise.
6605 (consttable_end): Likewise.
6606 (consttable_1): Likewise.
6607 (consttable_2): Likewise.
6608 (consttable_4): Likewise.
6609 (consttable_8): Likewise.
6610 (consttable_16): Likewise.
6611 (*thumb1_tablejump): Likewise.
6612 (prefetch): Likewise.
6613 (force_register_use): Likewise.
6614 (thumb_eh_return): Likewise.
6615 (load_tp_hard): Likewise.
6616 (load_tp_soft): Likewise.
6617 (tlscall): Likewise.
6618 (*arm_movtas_ze): Likewise.
6619 (*arm_rev): Likewise.
6620 (*arm_revsh): Likewise.
6621 (*arm_rev16): Likewise.
6622 * config/arm/thumb2.md
6623 (*thumb2_smaxsi3): Likewise.
6624 (*thumb2_sminsi3): Likewise.
6625 (*thumb32_umaxsi3): Likewise.
6626 (*thumb2_uminsi3): Likewise.
6627 (*thumb2_negdi2): Likewise.
6628 (*thumb2_abssi2): Likewise.
6629 (*thumb2_neg_abss): Likewise.
6630 (*thumb2_movsi_insn): Likewise.
6631 (tls_load_dot_plus_four): Likewise.
6632 (*thumb2_movhi_insn): Likewise.
6633 (*thumb2_mov_scc): Likewise.
6634 (*thumb2_mov_negs): Likewise.
6635 (*thumb2_mov_negs): Likewise.
6636 (*thumb2_mov_nots): Likewise.
6637 (*thumb2_mov_nots): Likewise.
6638 (*thumb2_movsicc_): Likewise.
6639 (*thumb2_movsfcc_soft_insn): Likewise.
6640 (*thumb2_indirect_jump): Likewise.
6641 (*thumb2_and_scc): Likewise.
6642 (*thumb2_ior_scc): Likewise.
6643 (*thumb2_ior_scc_strict_it): Likewise.
6644 (*thumb2_cond_move): Likewise.
6645 (*thumb2_cond_arith): Likewise.
6646 (*thumb2_cond_ari): Likewise.
6647 (*thumb2_cond_sub): Likewise.
6648 (*thumb2_negscc): Likewise.
6649 (*thumb2_movcond): Likewise.
6650 (thumb2_casesi_internal): Likewise.
6651 (thumb2_casesi_internal_pic): Likewise.
6652 (*thumb2_alusi3_short): Likewise.
6653 (*thumb2_mov<mode>_shortim): Likewise.
6654 (*thumb2_addsi_short): Likewise.
6655 (*thumb2_subsi_short): Likewise.
6656 (thumb2_addsi3_compare0): Likewise.
6657 (*thumb2_cbz): Likewise.
6658 (*thumb2_cbnz): Likewise.
6659 (*thumb2_one_cmplsi2_short): Likewise.
6660 (*thumb2_negsi2_short): Likewise.
6661 (*orsi_notsi_si): Likewise.
6662 * config/arm/arm1020e.md: Update with new attributes.
6663 * config/arm/arm1026ejs.md: Update with new attributes.
6664 * config/arm/arm1136jfs.md: Update with new attributes.
6665 * config/arm/arm926ejs.md: Update with new attributes.
6666 * config/arm/cortex-a15.md: Update with new attributes.
6667 * config/arm/cortex-a5.md: Update with new attributes.
6668 * config/arm/cortex-a53.md: Update with new attributes.
6669 * config/arm/cortex-a7.md: Update with new attributes.
6670 * config/arm/cortex-a8.md: Update with new attributes.
6671 * config/arm/cortex-a9.md: Update with new attributes.
6672 * config/arm/cortex-m4.md: Update with new attributes.
6673 * config/arm/cortex-r4.md: Update with new attributes.
6674 * config/arm/fa526.md: Update with new attributes.
6675 * config/arm/fa606te.md: Update with new attributes.
6676 * config/arm/fa626te.md: Update with new attributes.
6677 * config/arm/fa726te.md: Update with new attributes.
6678
1c83b673
JG
66792013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
6680
6681 * config/aarch64/aarch64-simd.md
6682 (aarch64_sqdml<SBINQOPS:as>l_n<mode>_internal): Use
6683 <vwx> iterator to ensure correct register choice.
6684 (aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Likewise.
6685 (aarch64_sqdmull_n<mode>): Likewise.
6686 (aarch64_sqdmull2_n<mode>_internal): Likewise.
6687 * config/aarch64/arm_neon.h
6688 (vml<as><q>_lane<q>_<su>16): Use 'x' constraint for element vector.
6689 (vml<as><q>_n_<su>16): Likewise.
6690 (vml<as>l_high_lane<q>_<su>16): Likewise.
6691 (vml<as>l_high_n_<su>16): Likewise.
6692 (vml<as>l_lane<q>_<su>16): Likewise.
6693 (vml<as>l_n_<su>16): Likewise.
6694 (vmul<q>_lane<q>_<su>16): Likewise.
6695 (vmul<q>_n_<su>16): Likewise.
6696 (vmull_lane<q>_<su>16): Likewise.
6697 (vmull_n_<su>16): Likewise.
6698 (vmull_high_lane<q>_<su>16): Likewise.
6699 (vmull_high_n_<su>16): Likewise.
6700 (vqrdmulh<q>_n_s16): Likewise.
6701
bb1ae543
TB
67022013-09-06 Tejas Belagod <tejas.belagod@arm.com>
6703
6704 * config/aarch64/arm_neon.h: Fix all vdup<bhsd_lane<q> intrinsics to
6705 have the correct lane parameter.
6706
f23c0742
RB
67072013-09-06 Richard Biener <rguenther@suse.de>
6708
6709 * cfganal.c (control_dependences::~control_dependences):
6710 Properly free all of the vector.
6711
c1d49770
KY
67122013-09-06 Kirill Yukhin <kirill.yukhin@intel.com>
6713
6714 PR target/58269
6715 * config/i386/i386.c (ix86_conditional_register_usage):
6716 Proper initialize extended SSE registers.
6717
6da47f52
JH
67182013-09-06 Jan Hubicka <jh@suse.cz>
6719
6720 PR tree-optimization/58311
6721 * ipa-devirt.c (gate_ipa_devirt): Only execute when optimizing.
6722
67232013-09-06 Jan Hubicka <jh@suse.cz>
6724
6725 * Makefile.in (tree-sra.o): Update dependencies.
6726 * tree-sra.c: Include ipa-utils.h
6727 (scan_function): Use recursive_call_p.
6728 (has_caller_p): New function.
6729 (cgraph_for_node_and_aliases): Count also callers of aliases.
6730
fc11f321
JH
67312013-09-06 Jan Hubicka <jh@suse.cz>
6732
6733 PR middle-end/58094
6734 * cgraph.h (symtab_semantically_equivalent_p): Declare.
6735 * tree-tailcall.c: Include ipa-utils.h.
6736 (find_tail_calls): Use it.
6737 * ipa-pure-const.c (check_call): Likewise.
6738 * ipa-utils.c (recursive_call_p): New function.
6739 * ipa-utils.h (recursive_call_p): Dclare.
6740 * symtab.c (symtab_nonoverwritable_alias): Fix formatting.
6741 (symtab_semantically_equivalent_p): New function.
6742 * Makefile.in (tree-tailcall.o): Update dependencies.
6743
9a6af450
EB
67442013-09-06 Eric Botcazou <ebotcazou@adacore.com>
6745
6746 * ipa-split.c (split_function): Set DECL_NO_INLINE_WARNING_P on the
6747 non-inlinable part.
6748
35f32ad4
RB
67492013-09-06 Richard Biener <rguenther@suse.de>
6750
6751 * lto-streamer.h (lto_global_var_decls): Remove.
6752 * Makefile.in (OBJS): Remove lto-symtab.o.
6753 (lto-symtab.o): Remove.
6754 (GTFILES): Remove lto-symtab.c
6755 * lto-symtab.c: Move to lto/
6756
d12a76f3
AK
67572013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6758
6759 * config/s390/s390.md (UNSPEC_FPINT_FLOOR, UNSPEC_FPINT_BTRUNC)
6760 (UNSPEC_FPINT_ROUND, UNSPEC_FPINT_CEIL, UNSPEC_FPINT_NEARBYINT)
6761 (UNSPEC_FPINT_RINT): New constant definitions.
6762 (FPINT, fpint_name, fpint_roundingmode): New integer iterator
6763 definition with 2 attributes.
6764 ("<FPINT:fpint_name><BFP:mode>2", "rint<BFP:mode>2")
6765 ("<FPINT:fpint_name><DFP:mode>2", "rint<DFP:mode>2"): New pattern
6766 definitions.
6767
67682013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6769
f43245d1 6770 * config/s390/s390.md: Add "bcr_flush" value to mnemonic attribute.
d12a76f3
AK
6771 ("mem_thread_fence_1"): Use bcr 14,0 for z196 and later.
6772 Set the mnemonic attribute to "bcr_flush". Set the "z196prop"
6773 attribute to "z196_alone".
6774 * config/s390/2827.md: Add "bcr_flush" to "ooo_groupalone" and
6775 "zEC12_simple".
6776
c8e9d8c3
RB
67772013-09-06 Richard Biener <rguenther@suse.de>
6778
6779 * basic-block.h (class control_dependences): New.
6780 * tree-ssa-dce.c (control_dependence_map): Remove.
6781 (cd): New global.
6782 (EXECUTE_IF_CONTROL_DEPENDENT): Remove.
6783 (set_control_dependence_map_bit, clear_control_dependence_bitmap,
6784 find_pdom, find_control_dependence, find_all_control_dependences):
6785 Move to cfganal.c.
f43245d1
UB
6786 (mark_control_dependent_edges_necessary,
6787 find_obviously_necessary_stmts, propagate_necessity, tree_dce_init,
6788 tree_dce_done, perform_tree_ssa_dce): Adjust.
c8e9d8c3
RB
6789 * cfganal.c (set_control_dependence_map_bit,
6790 clear_control_dependence_bitmap, find_pdom, find_control_dependence,
6791 find_all_control_dependences): Move from tree-ssa-dce.c and
6792 implement as methods of control_dependences class.
6793 (control_dependences::control_dependences): New.
6794 (control_dependences::~control_dependences): Likewise.
6795 (control_dependences::get_edges_dependent_on): Likewise.
6796 (control_dependences::get_edge): Likewise.
6797
7d2ba471
JH
67982013-09-04 Jan Hubicka <jh@suse.cz>
6799
6800 * tree.c (types_same_for_odr): Drop overactive check.
6801 * ipa-devirt.c (hash_type_name): Likewise.
6802
e18412fc
JH
68032013-09-04 Jan Hubicka <jh@suse.cz>
6804
6805 * cgraphunit.c (walk_polymorphic_call_targets): Break out from ...
6806 (analyze_functions): ... here.
6807
d352b245
JH
68082013-09-04 Jan Hubicka <jh@suse.cz>
6809
6810 PR middle-end/58201
6811 * cgraphunit.c (analyze_functions): Clear AUX fields
6812 after processing; initialize assembler name has.
6813
770da076
JL
68142013-09-05 Jeff Law <law@redhat.com>
6815
6816 * tree-ssa-threadedge.c (thread_around_empty_blocks): Renamed
6817 from thread_around_empty_block. Record threading path into PATH.
6818 Recurse if threading through the initial block is successful.
6819 (thread_across_edge): Corresponding changes to slightly simplify.
6820
fe6f68e2
JG
68212013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
6822
6823 * config/aarch64/aarch64.md
6824 (type): Remove frecpe, frecps, frecpx.
6825 (aarch64_frecp<FRECP:frecp_suffix><mode>): Move to aarch64-simd.md,
6826 fix to be a TARGET_SIMD instruction.
6827 (aarch64_frecps): Remove.
6828 * config/aarch64/aarch64-simd.md
6829 (aarch64_frecp<FRECP:frecp_suffix><mode>): New, moved from aarch64.md
6830 (aarch64_frecps<mode>): Handle all float/vector of float modes.
6831
6e4150e1
JG
68322013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
6833 Sofiane Naci <sofiane.naci@arm.com>
6834
f43245d1 6835 * config/arm/types.md (define_attr "type"): Expand "arlo_imm"
6e4150e1 6836 into "adr", "alu_imm", "alus_imm", "logic_imm", "logics_imm".
f43245d1
UB
6837 Expand "arlo_reg" into "adc_reg", "adc_imm", "adcs_reg", "adcs_imm",
6838 "alu_ext", "alu_reg", "alus_ext", "alus_reg", "bfm", "csel",
6839 "logic_reg", "logics_reg", "rev". Expand "arlo_shift" into
6840 "alu_shift_imm", "alus_shift_imm", "logic_shift_imm",
6841 "logics_shift_imm". Expand "arlo_shift_reg" into "alu_shift_reg",
6842 "alus_shift_reg", "logic_shift_reg", "logics_shift_reg". Expand "clz"
6843 into "clz, "rbit". Rename "shift" to "shift_imm".
6e4150e1 6844 * config/arm/arm.md (define_attr "core_cycles"): Update for attribute
f43245d1 6845 changes. Update for attribute changes all occurrences of arlo_* and
6e4150e1
JG
6846 shift* types.
6847 * config/arm/arm-fixed.md: Update for attribute changes
6848 all occurrences of arlo_* types.
6849 * config/arm/thumb2.md: Update for attribute changes all occurrences
6850 of arlo_* types.
6851 * config/arm/arm.c (xscale_sched_adjust_cost): (rtx insn, rtx
6852 (cortexa7_older_only): Likewise.
6853 (cortexa7_younger): Likewise.
6854 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
6855 (1020alu_shift_op): Likewise.
6856 (1020alu_shift_reg_op): Likewise.
6857 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
6858 (alu_shift_op): Likewise.
6859 (alu_shift_reg_op): Likewise.
f43245d1 6860 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
6e4150e1
JG
6861 (11_alu_shift_op): Likewise.
6862 (11_alu_shift_reg_op): Likewise.
6863 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
6864 (9_alu_shift_reg_op): Likewise.
6865 * config/arm/cortex-a15.md (cortex_a15_alu): Update for
6866 attribute changes.
6867 (cortex_a15_alu_shift): Likewise.
6868 (cortex_a15_alu_shift_reg): Likewise.
6869 * config/arm/cortex-a5.md (cortex_a5_alu): Update for
6870 attribute changes.
6871 (cortex_a5_alu_shift): Likewise.
f43245d1
UB
6872 * config/arm/cortex-a53.md (cortex_a53_alu): Update for
6873 attribute changes.
6e4150e1 6874 (cortex_a53_alu_shift): Likewise.
f43245d1
UB
6875 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for
6876 attribute changes.
6e4150e1
JG
6877 (cortex_a7_alu_reg): Likewise.
6878 (cortex_a7_alu_shift): Likewise.
f43245d1
UB
6879 * config/arm/cortex-a8.md (cortex_a8_alu): Update for
6880 attribute changes.
6e4150e1
JG
6881 (cortex_a8_alu_shift): Likewise.
6882 (cortex_a8_alu_shift_reg): Likewise.
f43245d1 6883 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
6e4150e1 6884 (cortex_a9_dp_shift): Likewise.
f43245d1
UB
6885 * config/arm/cortex-m4.md (cortex_m4_alu): Update for
6886 attribute changes.
6e4150e1
JG
6887 * config/arm/cortex-r4.md
6888 (cortex_r4_alu): Update for attribute changes.
6889 (cortex_r4_mov): Likewise.
6890 (cortex_r4_alu_shift_reg): Likewise.
f43245d1 6891 * config/arm/fa526.md (526_alu_op): Update for attribute changes.
6e4150e1 6892 (526_alu_shift_op): Likewise.
f43245d1
UB
6893 * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
6894 * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
6e4150e1 6895 (626te_alu_shift_op): Likewise.
f43245d1 6896 * config/arm/fa726te.md (726te_alu_op): Update for attribute changes.
6e4150e1
JG
6897 (726te_alu_shift_op): Likewise.
6898 (726te_alu_shift_reg_op): Likewise.
6899 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
6900 (mp626_alu_shift_op): Likewise.
6901 * config/arm/marvell-pj4.md (pj4_alu): Update for attribute changes.
6902 (pj4_alu_conds): Likewise.
6903 (pj4_shift): Likewise.
6904 (pj4_shift_conds): Likewise.
6905 (pj4_alu_shift): Likewise.
6906 (pj4_alu_shift_conds): Likewise.
6907 * config/aarch64/aarch64.md: Update for attribute change
6908 all occurrences of arlo_* and shift* types.
6909
e6523306
MS
69102013-09-05 Mike Stump <mikestump@comcast.net>
6911
6912 * tree.h: Move documentation for tree_function_decl to tree-core.h
6913 with the declaration.
6914
80a18161
PB
69152013-09-05 Peter Bergner <bergner@vnet.ibm.com>
6916
6917 PR target/58139
6918 * reginfo.c (choose_hard_reg_mode): Scan through all mode classes
6919 looking for widest mode.
6920
6994430a
EB
69212013-09-05 Eric Botcazou <ebotcazou@adacore.com>
6922
6923 * config.gcc (*-*-vxworks*): Do not override an existing extra_objs.
6924
e67f39f7
RB
69252013-09-05 Richard Biener <rguenther@suse.de>
6926
6927 PR tree-optimization/58137
6928 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
6929 Do not create vectors of pointers.
6930 * tree-vect-loop.c (get_initial_def_for_induction): Use proper
6931 types for the components of the vector initializer.
6932 * tree-cfg.c (verify_gimple_assign_binary): Remove special-casing
6933 allowing pointer vectors with PLUS_EXPR/MINUS_EXPR.
6934
568cda29
MJ
69352013-09-05 Martin Jambor <mjambor@suse.cz>
6936
6937 * ipa-prop.c (remove_described_reference): Accept missing references,
6938 return false if that hppens, otherwise return true.
6939 (cgraph_node_for_jfunc): New function.
6940 (try_decrement_rdesc_refcount): Likewise.
6941 (try_make_edge_direct_simple_call): Use them.
6942 (ipa_edge_removal_hook): Remove references from rdescs.
6943 (ipa_edge_duplication_hook): Clone rdescs and their references
6944 when the new edge has the same caller as the old one.
6945 * cgraph.c (cgraph_resolve_speculation): Remove speculative
6946 reference before removing any edges.
6947
5a200acb
RE
69482013-09-05 Richard Earnshaw <rearnsha@arm.com>
6949
6950 * arm.c (thumb2_emit_strd_push): Rewrite to use pre-decrement on
6951 initial store.
6952 * thumb2.md (thumb2_storewb_parisi): New pattern.
6953
5922847b
YZ
69542013-09-05 Yufeng Zhang <yufeng.zhang@arm.com>
6955
6956 * config/aarch64/aarch64-option-extensions.def: Add
6957 AARCH64_OPT_EXTENSION of 'crc'.
6958 * config/aarch64/aarch64.h (AARCH64_FL_CRC): New define.
6959 (AARCH64_ISA_CRC): Ditto.
6960 * doc/invoke.texi (-march and -mcpu feature modifiers): Add
6961 description of the CRC extension.
6962
996746aa
AI
69632013-09-05 Alexander Ivchenko <alexander.ivchenko@intel.com>
6964
6965 * config/rs6000/linux64.h: Define OPTION_BIONIC and OPTION_UCLIBC.
6966 * config/rs6000/linux.h: Ditto.
6967 * alpha/linux.h: Ditto.
6968 * config/bfin/uclinux.h: Define TARGET_LIBC_HAS_FUNCTION as
6969 no_c99_libc_has_function.
6970 * config/c6x/uclinux-elf.h: Ditto.
6971 * config/lm32/uclinux-elf.h: Ditto.
6972 * config/m68k/uclinux.h: Ditto.
6973 * config/moxie/uclinux.h: Ditto.
6974 * config.gcc (bfin*-linux-uclibc*): Add t-linux-android to tmake_file.
6975 (crisv32-*-linux*, cris-*-linux*): Ditto.
6976 * config/bfin/bfin.c: Include "tm_p.h".
6977
c370d99f
RB
69782013-09-05 Richard Biener <rguenther@suse.de>
6979
6980 * tree-vect-loop.c (vect_analyze_loop_operations): Properly
6981 check for a definition without a basic-block.
6982
003bb7f3
JG
69832013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
6984 Sofiane Naci <sofiane.naci@arm.com>
6985
6986 * config/aarch64/aarch64.md
6987 (*movti_aarch64): Rename r_2_f and f_2_r.
6988 (*movsf_aarch64): Likewise.
6989 (*movdf_aarch64): Likewise.
6990 (*movtf_aarch64): Likewise.
6991 (aarch64_movdi_<mode>low): Likewise.
6992 (aarch64_movdi_<mode>high): Likewise.
6993 (aarch64_mov<mode>high_di): Likewise.
6994 (aarch64_mov<mode>low_di): Likewise.
6995 (aarch64_movtilow_tilow): Likewise.
6996 * config/arm/arm.md (attribute "neon_type"): Delete. Move attribute
6997 values to config/arm/types.md
6998 (attribute "conds"): Update for attribute change.
6999 (anddi3_insn): Likewise.
7000 (iordi3_insn): Likewise.
7001 (xordi3_insn): Likewise.
7002 (one_cmpldi2): Likewise.
7003 * config/arm/types.md (type): Add Neon types.
7004 * config/arm/neon.md (neon_mov<mode>): Remove "neon_type" attribute,
7005 use "type" attribute.
7006 (movmisalign<mode>_neon_store): Likewise.
7007 (movmisalign<mode>_neon_load): Likewise.
7008 (vec_set<mode>_internal): Likewise.
7009 (vec_setv2di_internal): Likewise.
7010 (vec_extract<mode>): Likewise.
7011 (vec_extractv2di): Likewise.
7012 (add<mode>3_neon): Likewise.
7013 (adddi3_neon): Likewise.
7014 (sub<mode>3_neon): Likewise.
7015 (subdi3_neon): Likewise.
7016 (mul<mode>3_neon): Likewise.
7017 (mul<mode>3add<mode>_neon): Likewise.
7018 (mul<mode>3neg<mode>add<mode>_neon): Likewise.
7019 (fma<VCVTF:mode>4)): Likewise.
7020 (fma<VCVTF:mode>4_intrinsic): Likewise.
7021 (fmsub<VCVTF:mode>4)): Likewise.
7022 (fmsub<VCVTF:mode>4_intrinsic): Likewise.
7023 (neon_vrint<NEON_VRINT:nvrint_variant><VCVTF:mode>): Likewise.
7024 (ior<mode>3): Likewise.
7025 (and<mode>3): Likewise.
7026 (anddi3_neon): Likewise.
7027 (orn<mode>3_neon): Likewise.
7028 (orndi3_neon): Likewise.
7029 (bic<mode>3_neon): Likewise.
7030 (bicdi3_neon): Likewise.
7031 (xor<mode>3): Likewise.
7032 (one_cmpl<mode>2): Likewise.
7033 (abs<mode>2): Likewise.
7034 (neg<mode>2): Likewise.
7035 (umin<mode>3_neon): Likewise.
7036 (umax<mode>3_neon): Likewise.
7037 (smin<mode>3_neon): Likewise.
7038 (smax<mode>3_neon): Likewise.
7039 (vashl<mode>3): Likewise.
7040 (vashr<mode>3_imm): Likewise.
7041 (vlshr<mode>3_imm): Likewise.
7042 (ashl<mode>3_signed): Likewise.
7043 (ashl<mode>3_unsigned): Likewise.
7044 (neon_load_count): Likewise.
7045 (ashldi3_neon_noclobber): Likewise.
7046 (signed_shift_di3_neon): Likewise.
7047 (unsigned_shift_di3_neon): Likewise.
7048 (ashrdi3_neon_imm_noclobber): Likewise.
7049 (lshrdi3_neon_imm_noclobber): Likewise.
7050 (widen_ssum<mode>3): Likewise.
7051 (widen_usum<mode>3): Likewise.
7052 (quad_halves_<code>v4si): Likewise.
7053 (quad_halves_<code>v4sf): Likewise.
7054 (quad_halves_<code>v8hi): Likewise.
7055 (quad_halves_<code>v16qi): Likewise.
7056 (reduc_splus_v2di): Likewise.
7057 (neon_vpadd_internal<mode>): Likewise.
7058 (neon_vpsmin<mode>): Likewise.
7059 (neon_vpsmax<mode>): Likewise.
7060 (neon_vpumin<mode>): Likewise.
7061 (neon_vpumax<mode>): Likewise.
7062 (ss_add<mode>_neon): Likewise.
7063 (us_add<mode>_neon): Likewise.
7064 (ss_sub<mode>_neon): Likewise.
7065 (us_sub<mode>_neon): Likewise.
7066 (neon_vadd<mode>_unspec): Likewise.
7067 (neon_vaddl<mode>): Likewise.
7068 (neon_vaddw<mode>): Likewise.
7069 (neon_vhadd<mode>): Likewise.
7070 (neon_vqadd<mode>): Likewise.
7071 (neon_vaddhn<mode>): Likewise.
7072 (neon_vmul<mode>): Likewise.
7073 (neon_vmla<mode>): Likewise.
7074 (neon_vmlal<mode>): Likewise.
7075 (neon_vmls<mode>): Likewise.
7076 (neon_vmlsl<mode>): Likewise.
7077 (neon_vqdmulh<mode>): Likewise.
7078 (neon_vqdmlal<mode>): Likewise.
7079 (neon_vqdmlsl<mode>): Likewise.
7080 (neon_vmull<mode>): Likewise.
7081 (neon_vqdmull<mode>): Likewise.
7082 (neon_vsub<mode>_unspec): Likewise.
7083 (neon_vsubl<mode>): Likewise.
7084 (neon_vsubw<mode>): Likewise.
7085 (neon_vqsub<mode>): Likewise.
7086 (neon_vhsub<mode>): Likewise.
7087 (neon_vsubhn<mode>): Likewise.
7088 (neon_vceq<mode>): Likewise.
7089 (neon_vcge<mode>): Likewise.
7090 (neon_vcgeu<mode>): Likewise.
7091 (neon_vcgt<mode>): Likewise.
7092 (neon_vcgtu<mode>): Likewise.
7093 (neon_vcle<mode>): Likewise.
7094 (neon_vclt<mode>): Likewise.
7095 (neon_vcage<mode>): Likewise.
7096 (neon_vcagt<mode>): Likewise.
7097 (neon_vtst<mode>): Likewise.
7098 (neon_vabd<mode>): Likewise.
7099 (neon_vabdl<mode>): Likewise.
7100 (neon_vaba<mode>): Likewise.
7101 (neon_vabal<mode>): Likewise.
7102 (neon_vmax<mode>): Likewise.
7103 (neon_vmin<mode>): Likewise.
7104 (neon_vpaddl<mode>): Likewise.
7105 (neon_vpadal<mode>): Likewise.
7106 (neon_vpmax<mode>): Likewise.
7107 (neon_vpmin<mode>): Likewise.
7108 (neon_vrecps<mode>): Likewise.
7109 (neon_vrsqrts<mode>): Likewise.
7110 (neon_vqabs<mode>): Likewise.
7111 (neon_vqneg<mode>): Likewise.
7112 (neon_vcls<mode>): Likewise.
7113 (clz<mode>2): Likewise.
7114 (popcount<mode>2): Likewise.
7115 (neon_vrecpe): Likewise.
7116 (neon_vrsqrte): Likewise.
7117 (neon_vget_lane<mode>_sext_internal): Likewise.
7118 (neon_vget_lane<mode>_zext_internal): Likewise.
7119 (neon_vdup_n<mode>): Likewise.
7120 (neon_vdup_nv2di): Likewise.
7121 (neon_vdpu_lane<mode>_internal): Likewise.
7122 (neon_vswp<mode>): Likewise.
7123 (float<mode><V_cvtto>2): Likewise.
7124 (floatuns<mode><V_cvtto>2): Likewise.
7125 (fix_trunc<mode><V_cvtto>)2): Likewise
7126 (fixuns_trunc<mode><V_cvtto)2): Likewise.
7127 (neon_vcvt<mode>): Likewise.
7128 (neon_vcvtv4sfv4hf): Likewise.
7129 (neon_vcvtv4hfv4sf): Likewise.
7130 (neon_vcvt_n<mode>): Likewise.
7131 (neon_vmovn<mode>): Likewise.
7132 (neon_vqmovn<mode>): Likewise.
7133 (neon_vqmovun<mode>): Likewise.
7134 (neon_vmovl<mode>): Likewise.
7135 (neon_vmul_lane<mode>): Likewise.
7136 (neon_vmull_lane<mode>): Likewise.
7137 (neon_vqdmull_lane<mode>): Likewise.
7138 (neon_vqdmulh_lane<mode>): Likewise.
7139 (neon_vmla_lane<mode>): Likewise.
7140 (neon_vmlal_lane<mode>): Likewise.
7141 (neon_vqdmlal_lane<mode>): Likewise.
7142 (neon_vmls_lane<mode>): Likewise.
7143 (neon_vmlsl_lane<mode>): Likewise.
7144 (neon_vqdmlsl_lane<mode>): Likewise.
7145 (neon_vext<mode>): Likewise.
7146 (neon_vrev64<mode>): Likewise.
7147 (neon_vrev32<mode>): Likewise.
7148 (neon_vrev16<mode>): Likewise.
7149 (neon_vbsl<mode>_internal): Likewise.
7150 (neon_vshl<mode>): Likewise.
7151 (neon_vqshl<mode>): Likewise.
7152 (neon_vshr_n<mode>): Likewise.
7153 (neon_vshrn_n<mode>): Likewise.
7154 (neon_vqshrn_n<mode>): Likewise.
7155 (neon_vqshrun_n<mode>): Likewise.
7156 (neon_vshl_n<mode>): Likewise.
7157 (neon_vqshl_n<mode>): Likewise.
7158 (neon_vqshlu_n<mode>): Likewise.
7159 (neon_vshll_n<mode>): Likewise.
7160 (neon_vsra_n<mode>): Likewise.
7161 (neon_vsri_n<mode>): Likewise.
7162 (neon_vsli_n<mode>): Likewise.
7163 (neon_vtbl1v8qi): Likewise.
7164 (neon_vtbl2v8qi): Likewise.
7165 (neon_vtbl3v8qi): Likewise.
7166 (neon_vtbl4v8qi): Likewise.
7167 (neon_vtbx1v8qi): Likewise.
7168 (neon_vtbx2v8qi): Likewise.
7169 (neon_vtbx3v8qi): Likewise.
7170 (neon_vtbx4v8qi): Likewise.
7171 (neon_vtrn<mode>_internal): Likewise.
7172 (neon_vzip<mode>_internal): Likewise.
7173 (neon_vuzp<mode>_internal): Likewise.
7174 (neon_vld1<mode>): Likewise.
7175 (neon_vld1_lane<mode>): Likewise.
7176 (neon_vld1_dup<mode>): Likewise.
7177 (neon_vld1_dupv2di): Likewise.
7178 (neon_vst1<mode>): Likewise.
7179 (neon_vst1_lane<mode>): Likewise.
7180 (neon_vld2<mode>): Likewise.
7181 (neon_vld2_lane<mode>): Likewise.
7182 (neon_vld2_dup<mode>): Likewise.
7183 (neon_vst2<mode>): Likewise.
7184 (neon_vst2_lane<mode>): Likewise.
7185 (neon_vld3<mode>): Likewise.
7186 (neon_vld3qa<mode>): Likewise.
7187 (neon_vld3qb<mode>): Likewise.
7188 (neon_vld3_lane<mode>): Likewise.
7189 (neon_vld3_dup<mode>): Likewise.
7190 (neon_vst3<mode>): Likewise.
7191 (neon_vst3qa<mode>): Likewise.
7192 (neon_vst3qb<mode>): Likewise.
7193 (neon_vst3_lane<mode>): Likewise.
7194 (neon_vld4<mode>): Likewise.
7195 (neon_vld4qa<mode>): Likewise.
7196 (neon_vld4qb<mode>): Likewise.
7197 (neon_vld4_lane<mode>): Likewise.
7198 (neon_vld4_dup<mode>): Likewise.
7199 (neon_vst4<mode>): Likewise.
7200 (neon_vst4qa<mode>): Likewise.
7201 (neon_vst4qb<mode>): Likewise.
7202 (neon_vst4_lane<mode>): Likewise.
7203 (neon_vec_unpack<US>_lo_<mode>): Likewise.
7204 (neon_vec_unpack<US>_hi_<mode>): Likewise.
7205 (neon_vec_<US>mult_lo_<mode>): Likewise.
7206 (neon_vec_<US>mult_hi_<mode>): Likewise.
7207 (neon_vec_<US>shiftl_<mode>): Likewise.
7208 (neon_unpack<US>_<mode>): Likewise.
7209 (neon_vec_<US>mult_<mode>): Likewise.
7210 (vec_pack_trunc_<mode>): Likewise.
7211 (neon_vec_pack_trunk_<mode>): Likewise.
7212 (neon_vabd<mode>_2): Likewise.
7213 (neon_vabd<mode>_3): Likewise.
7214 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
7215 (thumb2_movsi_vfp): Likewise.
7216 (movdi_vfp): Likewise.
7217 (movdi_vfp_cortexa8): Likewise.
7218 (movhf_vfp_neon): Likewise.
7219 (movhf_vfp): Likewiwse.
7220 (movsf_vfp): Likewiwse.
7221 (thumb2_movsf_vfp): Likewiwse.
7222 (movdf_vfp): Likewise.
7223 (thumb2_movdf_vfp): Likewise.
7224 (movsfcc_vfp): Likewise.
7225 (thumb2_movsfcc_vfp): Likewise.
7226 (movdfcc_vfp): Likewise.
7227 (thumb2_movdfcc_vfp): Likewise.
7228 * config/arm/arm.c (cortexa7_older_only): Update for attribute change.
7229 * config/arm/arm1020e.md (v10_c2v): Update for attribute change.
7230 (v10_v2c): Likewise.
7231 * config/arm/cortex-a15-neon.md (cortex_a15_neon_int_1): Update for
7232 attribute change.
7233 (cortex_a15_neon_int_2): Likewise.
7234 (cortex_a15_neon_int_3): Likewise.
7235 (cortex_a15_neon_int_4): Likewise.
7236 (cortex_a15_neon_int_5): Likewise.
7237 (cortex_a15_neon_vqneg_vqabs): Likewise.
7238 (cortex_a15_neon_vmov): Likewise.
7239 (cortex_a15_neon_vaba): Likewise.
7240 (cortex_a15_neon_vaba_qqq): Likewise.
7241 (cortex_a15_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
7242 (cortex_a15_neon_mul_qqq_8_16_32_ddd_32): Likewise.
7243 (cortex_a15_neon_mul_qdd_64_32_long_qqd_16_ddd_32_\
7244 scalar_64_32_long_scalar): Likewise.
7245 (cortex_a15_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
7246 (cortex_a15_neon_mla_qqq_8_16): Likewise.
7247 (cortex_a15_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
7248 lotype_qdd_64_32_long): Likewise.
7249 (cortex_a15_neon_mla_qqq_32_qqd_32_scalar): Likewise.
7250 (cortex_a15_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
7251 (cortex_a15_neon_mul_qqd_32_scalar): Likewise.
7252 (cortex_a15_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
7253 (cortex_a15_neon_shift_1): Likewise.
7254 (cortex_a15_neon_shift_2): Likewise.
7255 (cortex_a15_neon_shift_3): Likewise.
7256 (cortex_a15_neon_vshl_ddd): Likewise.
7257 (cortex_a15_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
7258 (cortex_a15_neon_vsra_vrsra): Likewise.
7259 (cortex_a15_neon_fp_vadd_ddd_vabs_dd): Likewise.
7260 (cortex_a15_neon_fp_vadd_qqq_vabs_qq): Likewise.
7261 (cortex_a15_neon_fp_vmul_ddd): Likewise.
7262 (cortex_a15_neon_fp_vmul_qqd): Likewise.
7263 (cortex_a15_neon_fp_vmla_ddd): Likewise.
7264 (cortex_a15_neon_fp_vmla_qqq): Likewise.
7265 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
7266 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
7267 (cortex_a15_neon_fp_vrecps_vrsqrts_ddd): Likewise.
7268 (cortex_a15_neon_fp_vrecps_vrsqrts_qqq): Likewise.
7269 (cortex_a15_neon_bp_simple): Likewise.
7270 (cortex_a15_neon_bp_2cycle): Likewise.
7271 (cortex_a15_neon_bp_3cycle): Likewise.
7272 (cortex_a15_neon_vld1_1_2_regs): Likewise.
7273 (cortex_a15_neon_vld1_3_4_regs): Likewise.
7274 (cortex_a15_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
7275 (cortex_a15_neon_vld2_4_regs): Likewise.
7276 (cortex_a15_neon_vld3_vld4): Likewise.
7277 (cortex_a15_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
7278 (cortex_a15_neon_vst1_3_4_regs): Likewise.
7279 (cortex_a15_neon_vst2_4_regs_vst3_vst4): Likewise.
7280 (cortex_a15_neon_vst3_vst4): Likewise.
7281 (cortex_a15_neon_vld1_vld2_lane): Likewise.
7282 (cortex_a15_neon_vld3_vld4_lane" 10
7283 (cortex_a15_neon_vst1_vst2_lane): Likewise.
7284 (cortex_a15_neon_vst3_vst4_lane): Likewise.
7285 (cortex_a15_neon_vld3_vld4_all_lanes): Likewise.
7286 (cortex_a15_neon_ldm_2): Likewise.0
7287 (cortex_a15_neon_stm_2): Likewise.
7288 (cortex_a15_neon_mcr): Likewise.
7289 (cortex_a15_neon_mcr_2_mcrr): Likewise.
7290 (cortex_a15_neon_mrc): Likewise.
7291 (cortex_a15_neon_mrrc): Likewise.
7292 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
7293 change.
7294 (cortex_a15_alu_shift): Likewise.
7295 (cortex_a15_alu_shift_reg): Likewise.
7296 (cortex_a15_mult32): Likewise.
7297 (cortex_a15_mult64): Likewise.
7298 (cortex_a15_block): Likewise.
7299 (cortex_a15_branch): Likewise.
7300 (cortex_a15_load1): Likewise.
7301 (cortex_a15_load3): Likewise.
7302 (cortex_a15_store1): Likewise.
7303 (cortex_a15_store3): Likewise.
7304 (cortex_a15_call): Likewise.
f43245d1 7305 * config/arm/cortex-a5.md (cortex_a5_r2f): Update for attribute change.
003bb7f3
JG
7306 (cortex_a5_f2r): Likewise.
7307 * config/arm/cortex-a53.md (cortex_a53_r2f): Update for attribute
7308 change.
7309 (cortex_a53_f2r): Likewise.
7310 * config/arm/cortex-a7.md
7311 (cortex_a7_branch): Update for attribute change.
7312 (cortex_a7_call): Likewise.
7313 (cortex_a7_alu_imm): Likewise.
7314 (cortex_a7_alu_reg): Likewise.
7315 (cortex_a7_alu_shift): Likewise.
7316 (cortex_a7_mul): Likewise.
7317 (cortex_a7_load1): Likewise.
7318 (cortex_a7_store1): Likewise.
7319 (cortex_a7_load2): Likewise.
7320 (cortex_a7_store2): Likewise.
7321 (cortex_a7_load3): Likewise.
7322 (cortex_a7_store3): Likewise.
7323 (cortex_a7_load4): Likewise.
7324 (cortex_a7_store4): Likewise.
7325 (cortex_a7_fpalu): Likewise.
7326 (cortex_a7_fconst): Likewise.
7327 (cortex_a7_fpmuls): Likewise.
7328 (cortex_a7_neon_mul): Likewise.
7329 (cortex_a7_fpmacs): Likewise.
7330 (cortex_a7_neon_mla: Likewise.
7331 (cortex_a7_fpmuld: Likewise.
7332 (cortex_a7_fpmacd: Likewise.
7333 (cortex_a7_fpfmad: Likewise.
7334 (cortex_a7_fdivs: Likewise.
7335 (cortex_a7_fdivd: Likewise.
7336 (cortex_a7_r2f: Likewise.
7337 (cortex_a7_f2r: Likewise.
7338 (cortex_a7_f_flags: Likewise.
7339 (cortex_a7_f_loads: Likewise.
7340 (cortex_a7_f_loadd: Likewise.
7341 (cortex_a7_f_stores: Likewise.
7342 (cortex_a7_f_stored: Likewise.
7343 (cortex_a7_neon): Likewise.
7344 * config/arm/cortex-a8-neon.md
7345 (cortex_a8_neon_mrc): Update for attribute change.
7346 (cortex_a8_neon_mrrc): Likewise.
7347 (cortex_a8_neon_int_1): Likewise.
7348 (cortex_a8_neon_int_2): Likewise.
7349 (cortex_a8_neon_int_3): Likewise.
7350 (cortex_a8_neon_int_4): Likewise.
7351 (cortex_a8_neon_int_5): Likewise.
7352 (cortex_a8_neon_vqneg_vqabs): Likewise.
7353 (cortex_a8_neon_vmov): Likewise.
7354 (cortex_a8_neon_vaba): Likewise.
7355 (cortex_a8_neon_vaba_qqq): Likewise.
7356 (cortex_a8_neon_vsma): Likewise.
7357 (cortex_a8_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
7358 (cortex_a8_neon_mul_qqq_8_16_32_ddd_32): Likewise.
f43245d1
UB
7359 (cortex_a8_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_\
7360 long_scalar): Likewise.
003bb7f3
JG
7361 (cortex_a8_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
7362 (cortex_a8_neon_mla_qqq_8_16): Likewise.
7363 (cortex_a8_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
7364 long_scalar_qdd_64_32_long): Likewise.
7365 (cortex_a8_neon_mla_qqq_32_qqd_32_scalar): Likewise.
7366 (cortex_a8_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
7367 (cortex_a8_neon_mul_qqd_32_scalar): Likewise.
7368 (cortex_a8_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
7369 (cortex_a8_neon_shift_1): Likewise.
7370 (cortex_a8_neon_shift_2): Likewise.
7371 (cortex_a8_neon_shift_3): Likewise.
7372 (cortex_a8_neon_vshl_ddd): Likewise.
7373 (cortex_a8_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
7374 (cortex_a8_neon_vsra_vrsra): Likewise.
7375 (cortex_a8_neon_fp_vadd_ddd_vabs_dd): Likewise.
7376 (cortex_a8_neon_fp_vadd_qqq_vabs_qq): Likewise.
7377 (cortex_a8_neon_fp_vsum): Likewise.
7378 (cortex_a8_neon_fp_vmul_ddd): Likewise.
7379 (cortex_a8_neon_fp_vmul_qqd): Likewise.
7380 (cortex_a8_neon_fp_vmla_ddd): Likewise.
7381 (cortex_a8_neon_fp_vmla_qqq): Likewise.
7382 (cortex_a8_neon_fp_vmla_ddd_scalar): Likewise.
7383 (cortex_a8_neon_fp_vmla_qqq_scalar): Likewise.
7384 (cortex_a8_neon_fp_vrecps_vrsqrts_ddd): Likewise.
7385 (cortex_a8_neon_fp_vrecps_vrsqrts_qqq): Likewise.
7386 (cortex_a8_neon_bp_simple): Likewise.
7387 (cortex_a8_neon_bp_2cycle): Likewise.
7388 (cortex_a8_neon_bp_3cycle): Likewise.
7389 (cortex_a8_neon_ldr): Likewise.
7390 (cortex_a8_neon_str): Likewise.
7391 (cortex_a8_neon_vld1_1_2_regs): Likewise.
7392 (cortex_a8_neon_vld1_3_4_regs): Likewise.
7393 (cortex_a8_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
7394 (cortex_a8_neon_vld2_4_regs): Likewise.
7395 (cortex_a8_neon_vld3_vld4): Likewise.
7396 (cortex_a8_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
7397 (cortex_a8_neon_vst1_3_4_regs): Likewise.
7398 (cortex_a8_neon_vst2_4_regs_vst3_vst4): Likewise.
7399 (cortex_a8_neon_vst3_vst4): Likewise.
7400 (cortex_a8_neon_vld1_vld2_lane): Likewise.
7401 (cortex_a8_neon_vld3_vld4_lane): Likewise.
7402 (cortex_a8_neon_vst1_vst2_lane): Likewise.
7403 (cortex_a8_neon_vst3_vst4_lane): Likewise.
7404 (cortex_a8_neon_vld3_vld4_all_lanes): Likewise.
7405 (cortex_a8_neon_mcr): Likewise.
7406 (cortex_a8_neon_mcr_2_mcrr): Likewise.
f43245d1 7407 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
003bb7f3
JG
7408 * config/arm/cortex-a9-neon.md (ca9_neon_mrc): Update for attribute
7409 change.
7410 (ca9_neon_mrrc): Likewise.
7411 (cortex_a9_neon_int_1): Likewise.
7412 (cortex_a9_neon_int_2): Likewise.
7413 (cortex_a9_neon_int_3): Likewise.
7414 (cortex_a9_neon_int_4): Likewise.
7415 (cortex_a9_neon_int_5): Likewise.
7416 (cortex_a9_neon_vqneg_vqabs): Likewise.
7417 (cortex_a9_neon_vmov): Likewise.
7418 (cortex_a9_neon_vaba): Likewise.
7419 (cortex_a9_neon_vaba_qqq): Likewise.
7420 (cortex_a9_neon_vsma): Likewise.
7421 (cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
7422 (cortex_a9_neon_mul_qqq_8_16_32_ddd_32): Likewise.
f43245d1
UB
7423 (cortex_a9_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_\
7424 long_scalar): Likewise.
003bb7f3
JG
7425 (cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
7426 (cortex_a9_neon_mla_qqq_8_16): Likewise.
7427 (cortex_a9_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
7428 long_scalar_qdd_64_32_long): Likewise.
7429 (cortex_a9_neon_mla_qqq_32_qqd_32_scalar): Likewise.
7430 (cortex_a9_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
7431 (cortex_a9_neon_mul_qqd_32_scalar): Likewise.
7432 (cortex_a9_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
7433 (cortex_a9_neon_shift_1): Likewise.
7434 (cortex_a9_neon_shift_2): Likewise.
7435 (cortex_a9_neon_shift_3): Likewise.
7436 (cortex_a9_neon_vshl_ddd): Likewise.
7437 (cortex_a9_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
7438 (cortex_a9_neon_vsra_vrsra): Likewise.
7439 (cortex_a9_neon_fp_vadd_ddd_vabs_dd): Likewise.
7440 (cortex_a9_neon_fp_vadd_qqq_vabs_qq): Likewise.
7441 (cortex_a9_neon_fp_vsum): Likewise.
7442 (cortex_a9_neon_fp_vmul_ddd): Likewise.
7443 (cortex_a9_neon_fp_vmul_qqd): Likewise.
7444 (cortex_a9_neon_fp_vmla_ddd): Likewise.
7445 (cortex_a9_neon_fp_vmla_qqq): Likewise.
7446 (cortex_a9_neon_fp_vmla_ddd_scalar): Likewise.
7447 (cortex_a9_neon_fp_vmla_qqq_scalar): Likewise.
7448 (cortex_a9_neon_fp_vrecps_vrsqrts_ddd): Likewise.
7449 (cortex_a9_neon_fp_vrecps_vrsqrts_qqq): Likewise.
7450 (cortex_a9_neon_bp_simple): Likewise.
7451 (cortex_a9_neon_bp_2cycle): Likewise.
7452 (cortex_a9_neon_bp_3cycle): Likewise.
7453 (cortex_a9_neon_ldr): Likewise.
7454 (cortex_a9_neon_str): Likewise.
7455 (cortex_a9_neon_vld1_1_2_regs): Likewise.
7456 (cortex_a9_neon_vld1_3_4_regs): Likewise.
7457 (cortex_a9_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
7458 (cortex_a9_neon_vld2_4_regs): Likewise.
7459 (cortex_a9_neon_vld3_vld4): Likewise.
7460 (cortex_a9_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
7461 (cortex_a9_neon_vst1_3_4_regs): Likewise.
7462 (cortex_a9_neon_vst2_4_regs_vst3_vst4): Likewise.
7463 (cortex_a9_neon_vst3_vst4): Likewise.
7464 (cortex_a9_neon_vld1_vld2_lane): Likewise.
7465 (cortex_a9_neon_vld3_vld4_lane): Likewise.
7466 (cortex_a9_neon_vst1_vst2_lane): Likewise.
7467 (cortex_a9_neon_vst3_vst4_lane): Likewise.
7468 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
7469 (cortex_a9_neon_mcr): Likewise.
7470 (cortex_a9_neon_mcr_2_mcrr): Likewise.
7471 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
7472 (cortex_a9_fps): Likewise.
7473 * config/arm/cortex-m4-fpu.md (cortex_m4_vmov_2): Update for attribute
7474 change.
7475 (cortex_m4_fmuls): Likewise.
7476 * config/arm/cortex-r4f.md (cortex_r4_mcr): Update for attribute
7477 change.
7478 (cortex_r4_mrc): Likewise.
7479 * config/arm/iterators.md: Update comment referring to neon_type.
f43245d1 7480 * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Update for attribute change.
003bb7f3 7481 (iwmmxt_movsi_insn): Likewise.
f43245d1
UB
7482 * config/arm/marvell-pj4.md (pj4_vfp_to_core): Update for
7483 attribute change.
003bb7f3
JG
7484 (pj4_core_to_vfp): Likewise.
7485 * config/arm/neon-schedgen.ml (emit_insn_reservations): Update for
7486 attribute change.
7487 * config/arm/vfp11.md (vfp_fload): Update for attribute change.
7488 (vfp_fstore): Likewise.
7489 * doc/md.texi: Change references to neon_type to refer to type.
7490
fbe0dc78
DS
74912013-09-04 Dodji Seketeli <dodji@redhat.com>
7492
7493 * tree.h (DECL_BUILT_IN): Fix typo in comment.
7494
c167bc5b
DE
74952013-09-04 David Edelsohn <dje.gcc@gmail.com>
7496
7497 * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Only emit
7498 lglobl if not weak.
7499
035cb59f
ER
75002013-09-04 Easwaran Raman <eraman@google.com>
7501
7502 PR middle-end/57370
7503 * tree-ssa-reassoc.c (get_stmt_uid_with_default): New function,
7504 (build_and_add_sum): Use it.
7505 (appears_later_in_bb): Simplify code.
7506
71191083
TJ
75072013-09-04 Teresa Johnson <tejohnson@google.com>
7508
7509 * dumpfile.c (dump_finish): Don't close stderr/stdout.
7510
0c488213
JG
75112013-09-04 James Greenhalgh <james.greenhalgh@arm.com>
7512
7513 * config/aarch64/arm_neon.h (vaddvq_<su>64): Fix return types.
7514
61a74079
JH
75152013-09-04 Jan Hubicka <jh@suse.cz>
7516
7517 * Makefile.in (ipa-devirt.o): Add dependency on diagnostic.h
7518 * ipa-devirt.c: Include diganostic.h
7519 (odr_type_d): Add types and types_set.
7520 (hash_type_name): Work for types with vtables during LTO.
7521 (odr_hasher::remove): Fix comment; destroy types_set.
7522 (add_type_duplicate): New function,
7523 (get_odr_type): Use it.
7524 (dump_type_inheritance_graph): Dump type duplicates.
7525 * ipa.c (symtab_remove_unreachable_nodes): Build type inheritance
7526 graph.
7527 * tree.c (types_same_for_odr): Give exact answers on types with
7528 virtual tables.
7529
24ba8195
DS
75302013-09-04 Dodji Seketeli <dodji@redhat.com>
7531
7532 * tree.h (DECL_BUILT_IN, DECL_IS_BUILTIN): Add more comments
7a5911d3 7533 explaining their differences.
24ba8195 7534
0a04869e
SKS
75352013-09-04 Sandeep Kumar Singh<Sandeep.Singh2@kpitcummins.com>
7536
7537 * config/rx/rx.h: Add option -mcpu for target variants RX100 and RX200.
7538
3b18bc42
JL
75392013-09-03 Jeff Law <law@redhat.com>
7540
7541 * tree-ssa-threadedge.c (thread_across_edge): Record entire path
7542 when not threading through a joiner block. Pass joiner/no joiner
7543 state to register_jump_thread.
7544 * tree-ssa-threadupdate.c (register_jump_thread): Get joiner/no joiner
7545 state from argument rather than implying on path length.
7546 Dump the entire jump thread path into debugging dump.
7547 * tree-flow.h (register_jump_thread): Update prototype.
7548
ae84e151
XDL
75492013-08-29 Xinliang David Li <davidxl@google.com>
7550
7551 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
7552 Remove a trivial gcc_assert.
7553
c716e67f
XDL
75542013-08-29 Xinliang David Li <davidxl@google.com>
7555
7556 * tree-vect-slp.c (destroy_bb_vec_info): Data ref cleanup.
7557 * tree-vect-loop.c (destroy_bb_vec_info): Ditto.
7558 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
7559 Delay base decl alignment adjustment.
7560 * tree-vectorizer.c (vect_destroy_datarefs): New function.
7561 * tree-vectorizer.h: New data structure.
7562 (set_dr_misalignment): New function.
7563 (dr_misalignment): Ditto.
7564 * tree-vect-stmts.c (vectorizable_store): Ensure alignment.
7565 (vectorizable_load): Ditto.
7566 (ensure_base_align): New function.
7567 (vectorize_loops): Add dbg_cnt support.
7568 (execute_vect_slp): Ditto.
7569 * dbgcnt.def: New debug counter.
7570 * Makefile: New dependency.
7571
db8800bc
MI
75722013-09-03 Meador Inge <meadori@codesourcery.com>
7573
7574 Revert:
7575
7576 2013-08-30 Meador Inge <meadori@codesourcery.com>
7577
7578 * tree-vrp.c (check_array_ref): Bail out on zero-length arrays.
7579
0d9b4f5c
DE
75802013-09-03 David Edelsohn <dje.gcc@gmail.com>
7581
7582 * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Emit lglobl for
7583 function descriptor.
7584
29e810b9
RB
75852013-09-03 Richard Biener <rguenther@suse.de>
7586
7587 * tree-affine.c (add_elt_to_tree): Fix association issue,
7588 avoid useless converts and make sure to always return a
7589 properly typed result.
7590
dbfc2894
RB
75912013-09-03 Richard Biener <rguenther@suse.de>
7592
7593 PR middle-end/57656
7594 * fold-const.c (negate_expr_p): Fix division case.
7595 (negate_expr): Likewise.
7596
fa3bf4ce
RB
75972013-09-03 Richard Biener <rguenther@suse.de>
7598
7599 PR lto/58285
7600 * tree-streamer-out.c: Include tm.h.
7601 * Makefile.in (tree-streamer-out.o): Depend on $(TM_H).
7602
a64bbb3f
JH
76032013-09-03 Jan Hubicka <jh@suse.cz>
7604
7605 * tree-profile.c (tree_profiling): Cleanup CFG when done.
7606
93ed07e2
AM
76072013-09-03 Alan Modra <amodra@gmail.com>
7608
7609 * config.gcc (powerpc*-*-linux*): Add support for little-endian
7610 multilibs to big-endian target and vice versa.
7611 * config/rs6000/t-linux64: Use := assignment on all vars.
7612 (MULTILIB_EXTRA_OPTS): Remove fPIC.
7613 (MULTILIB_OSDIRNAMES): Specify using mapping from multilib_options.
7614 * config/rs6000/t-linux64le: New file.
7615 * config/rs6000/t-linux64bele: New file.
7616 * config/rs6000/t-linux64lebe: New file.
7617
07d6cd64
JH
76182013-09-02 Jan Hubicka <jh@suse.cz>
7619
7620 * ipa-inline-transform.c (inline_transform): Do not
7621 optimize_inline_calls when not optimizing.
7622
8e4c9a10
JH
76232013-09-02 Jan Hubicka <jh@suse.cz>
7624
7625 * lto-symtab.c (lto_symtab_merge_symbols): Add comments; merge
7626 duplicated nodes for assembler names.
7627 * symtab.c (symtab_unregister_node): Do not attempt to unlink
7628 hard registers from assembler name hash.
7629
c91061e6
JH
76302013-09-02 Jan Hubicka <jh@suse.cz>
7631
7632 * ipa-split.c (execute_split_functions): Split externally visible
7633 functions called once.
7634
2fd0985c
MJ
76352013-09-02 Martin Jambor <mjambor@suse.cz>
7636
7637 PR ipa/58106
7638 * ipa-prop.c (ipa_edge_duplication_hook): Always put new rdesc to the
7639 linked list. When finding the correct duplicate, also consider also
7640 the caller in additon to its inlined_to node.
7641
91bd4114
JG
76422013-09-02 James Greenhalgh <james.greenhalgh@arm.com>
7643
7644 * config/aarch64/aarch64-simd-builtins.def
7645 (dup_lane_scalar): Remove.
7646 * config/aarch64/aarch64-simd.md
7647 (aarch64_simd_dup): Add 'w->w' alternative.
7648 (aarch64_dup_lane<mode>): Allow for VALL.
7649 (aarch64_dup_lane_scalar<mode>): Remove.
7650 (aarch64_dup_lane_<vswap_width_name><mode>): New.
7651 (aarch64_get_lane_signed<mode>): Add w->w altenative.
7652 (aarch64_get_lane_unsigned<mode>): Likewise.
7653 (aarch64_get_lane<mode>): Likewise.
7654 * config/aarch64/aarch64.c (aarch64_evpc_dup): New.
7655 (aarch64_expand_vec_perm_const_1): Use aarch64_evpc_dup.
7656 * config/aarch64/iterators.md (VSWAP_WIDTH): New.
7657 (VCON): Change container of V2SF.
7658 (vswap_width_name): Likewise.
7659 * config/aarch64/arm_neon.h
7660 (__aarch64_vdup_lane_any): New.
7661 (__aarch64_vdup<q>_lane<q>_<fpsu><8,16,32,64>): Likewise.
7662 (vdup<q>_n_<psuf><8,16,32,64>): Convert to C implementation.
7663 (vdup<q>_lane<q>_<fpsu><8,16,32,64>): Likewise.
7664
d617d2d8
EB
76652013-09-02 Eric Botcazou <ebotcazou@adacore.com>
7666
7667 PR middle-end/56382
7668 * expr.c (emit_move_complex): Do not move complex FP values as parts if
7669 the source or the destination is a single hard register.
7670
63fdb7be
RB
76712013-09-02 Richard Biener <rguenther@suse.de>
7672
7673 PR middle-end/57511
7674 * tree-scalar-evolution.c (instantiate_scev_name): Allow
7675 non-linear SCEVs.
7676
78de2333
RB
76772013-09-02 Richard Biener <rguenther@suse.de>
7678
7679 * tree-affine.c (add_elt_to_tree): Avoid converting all pointer
7680 arithmetic to sizetype.
7681
85ff4ec6
BC
76822013-09-02 Bin Cheng <bin.cheng@arm.com>
7683
7684 * tree-ssa-loop-ivopts.c (set_autoinc_for_original_candidates):
7685 Find auto-increment use both before and after candidate.
7686
576016fe
MP
76872013-09-02 Marek Polacek <polacek@redhat.com>
7688
7689 * Makefile.in (ubsan.o): Add $(TM_P_H) dependency.
7690
08f835dc
JH
76912013-09-01 Jan Hubicka <jh@suse.cz>
7692
7693 * Makefile.in: Add ipa-profile.o
7694 (ipa.o, ipa-devrit.o, ipa-inline-analysis.o): Adjust dependencies.
7695 * cgraph.c (struct cgraph_propagate_frequency_data,
7696 cgraph_propagate_frequency_1, cgraph_propagate_frequency): Move to
7697 ipa-profile.c; replace cgraph_ by ipa_ prefix.
7698 * cgraph.h (cgraph_propagate_frequency): Remove.
f43245d1
UB
7699 * ipa-inline-analysis.c: Include ipa-utils.h;
7700 drop duplicated cfgloop.h.
08f835dc
JH
7701 (inline_update_callee_summaries): Update.
7702 * ipa-profile.c: New file.
7703 * ipa-utils.h (ipa_propagate_frequency): Declare.
7704 * ipa.c: Do not include pointer-set.h, hash-table.h, lto-streamer.h,
f43245d1 7705 data-streamer.h, value-prof.h.
08f835dc
JH
7706 (symtab_remove_unreachable_nodes): Update profile.
7707 (struct histogram_entry, histogram, histogram_pool, histogram_hash,
7708 account_time_size, cmp_counts, dump_histogram,
7709 ipa_profile_generate_summary, ipa_profile_write_summary,
7710 ipa_profile_read_summary, ipa_profile, gate_ipa_profile,
7711 pass_data_ipa_profile, pass_ipa_profile, make_pass_ipa_profile):
f43245d1 7712 Move to ipa-profile.c.
08f835dc 7713
cec8583c
JDA
77142013-09-01 John David Anglin <danglin@gcc.gnu.org>
7715
7716 * config/pa/pa.md: Allow "const 0" operand 1 in "scc" insns.
7717
bbc9396b
JH
77182013-09-01 Jan Hubicka <jh@suse.cz>
7719
7720 * common.opt (fdevirtualize-speculatively): New function.
7721 * invoke.texi (fdevirtualize-speculatively): Document.
7722 * ipa-devirt.c: Include ipa-inline.h
7723 (likely_target_p): New function.
7724 (ipa_devirt): New function.
7725 (gate_ipa_devirt): New function.
7726 (pass_data_ipa_devirt): New static var.
7727 (pass_ipa_devirt): Likewise.
7728 (make_pass_ipa_devirt): New function.
7729 * opts.c (default_options): Add OPT_fdevirtualize_speculatively.
7730 (common_handle_option): Disable devirtualization when
7731 value range profiling is available.
7732 * passes.def (pass_ipa_devirt): Add.
7733 * timever.def (TV_IPA_DEVIRT): New timevar.
f43245d1 7734 * tree-pass.h (make_pass_ipa_devirt):
bbc9396b 7735
0cea211e
IS
77362013-09-01 Iain Sandoe <iain@codesourcery.com>
7737
7738 * config/darwin.h (LINK_COMMAND_SPEC_A): Revise sanitizer specs to
7739 include sanitize(undefined).
7740
5e351e96
DN
77412013-08-31 Diego Novillo <dnovillo@google.com>
7742
7743 * Makefile.in (TREE_CORE_H): Define.
7744 (TREE_H): Use.
7745 (GTFILES): Add tree-core.h.
7746 * builtins.c (built_in_class_names): Use BUILT_IN_LAST to
7747 size the array.
7748 * tree-core.h: New file.
7749 Move all data structures, enum, typedefs, global
7750 declarations and constants from ...
7751 * tree.h: ... here.
7752
63bf9a90
JH
77532013-08-31 Jan Hubicka <jh@suse.cz>
7754
7755 * bulitins.c (expand_builtin): Do not early exit for gcov
7756 instrumented functions.
7757
5c0abd6a
MP
77582013-08-31 Marek Polacek <polacek@redhat.com>
7759
7760 * ubsan.c: Include tm_p.h.
7761
4843f032
JH
77622013-08-31 Jan Hubicka <jh@suse.cz>
7763
8356c89c
JH
7764 * gimple-streamer-in.c (input_gimple_stmt): Silence parameter unused
7765 warning.
7766
4843f032
JH
7767 * cgraph.c (cgraph_get_body): Update call of lto_input_function_body.
7768 * gimple-streamer-in.c (input_gimple_stmt): Move sanity check to ...
5e581212 7769 * tree-cfg.c (verify_gimple_label): ... here.
4843f032
JH
7770 * ipa-utils.c: Include lto-streamer.h, ipa-inline.h
7771 (ipa_merge_profiles): New function.
7772 * lto-streamer-in.c (lto_read_body): Take node instead of fn_decl.
7773 (lto_input_function_body): Likewise.
5e581212
JH
7774 * ipa-utils.h (ipa_merge_profiles): Declare.
7775 * lto-streamer.h (lto_input_function_body): Update prototype.
7776 (emit_label_in_global_context_p): Remove.
7777 * lto-symtab.c: Include ipa-utils.h
7778 (lto_cgraph_replace_node): Use ipa_merge_profiles.
4843f032 7779
57292ce9
JH
77802013-08-31 Jan Hubicka <jh@suse.cz>
7781
7782 * cgraph.c (cgraph_speculative_call_info): Fix ref lookup
7783
b9cbfeeb
JH
77842013-08-31 Jan Hubicka <jh@suse.cz>
7785
7786 * basic-block.h (apply_scale): Make scale parmeter gcov_type.
7787
41dedebd
UB
77882013-08-31 Uros Bizjak <ubizjak@gmail.com>
7789
7790 * config/alpha/alpha.c (alpha_emit_conditional_move): Update
7791 "cmp" RTX before signed_comparison_operator check to account
7792 for "code" changes.
7793
06d65050
JH
77942013-08-30 Jan Hubicka <jh@suse.cz>
7795
41dedebd 7796 * ipa-prop.c (ipa_set_jf_known_type): Check that we add only records.
06d65050
JH
7797 (detect_type_change_1): Rename to ...
7798 (detect_type_change): ... this one; early return on non-polymorphic
7799 types.
41dedebd 7800 (detect_type_change_ssa): Add comp_type parameter; update
06d65050
JH
7801 use of detect_type_change.
7802 (compute_complex_assign_jump_func): Add param_type parameter;
7803 update use of detect_type_change_ssa.
7804 (compute_complex_ancestor_jump_func): Likewise.
7805 (ipa_get_callee_param_type): New function.
7806 (ipa_compute_jump_functions_for_edge): Compute parameter type;
7807 update calls to the jump function computation functions.
7808
600b5b1d
TJ
78092013-08-30 Teresa Johnson <tejohnson@google.com>
7810 Steven Bosscher <steven@gcc.gnu.org>
7811
7812 * cfgrtl.c (fixup_new_cold_bb): New routine.
7813 (commit_edge_insertions): Invoke fixup_partitions.
7814 (find_partition_fixes): New routine.
7815 (fixup_partitions): Ditto.
7816 (verify_hot_cold_block_grouping): Update comments.
7817 (rtl_verify_edges): Invoke find_partition_fixes.
7818 (rtl_verify_bb_pointers): Update comments.
7819 (rtl_verify_bb_layout): Ditto.
7820 * basic-block.h (probably_never_executed_edge_p): Declare.
7821 (fixup_partitions): Ditto.
7822 * cfgcleanup.c (try_optimize_cfg): Invoke fixup_partitions.
7823 * bb-reorder.c (sanitize_hot_paths): New function.
7824 (find_rarely_executed_basic_blocks_and_crossing_edges): Invoke
7825 sanitize_hot_paths.
7826 * predict.c (probably_never_executed_edge_p): New routine.
7827 * cfg.c (check_bb_profile): Add partition insanity warnings.
7828
0a6ea5c9
MI
78292013-08-30 Meador Inge <meadori@codesourcery.com>
7830
7831 * tree-vrp.c (check_array_ref): Bail out on zero-length arrays.
7832
de5a5fa1
MP
78332013-08-30 Marek Polacek <polacek@redhat.com>
7834
7835 * Makefile.in (ubsan.o): Add.
7836 (c-family/c-ubsan.o): Add.
7837 (builtins.o): Add ubsan.h dependency.
7838 * ubsan.h: New file.
7839 * ubsan.c: New file.
7840 * common.opt: Add -fsanitize=undefined option.
7841 (flag_sanitize): Add variable.
7842 (fsanitize=): Add option. Add Driver.
7843 (fsanitize=thread): Remove option.
7844 (fsanitize=address): Likewise.
7845 (static-libubsan): New option.
7846 * doc/invoke.texi: Document the new flag and -static-libubsan.
7847 * sanitizer.def (DEF_SANITIZER_BUILTIN): Define.
7848 (BUILT_IN_UBSAN_HANDLE_BUILTIN_UNREACHABLE): Define.
7849 * builtin-attrs.def (ATTR_COLD): Define.
7850 (ATTR_COLD_NOTHROW_LEAF_LIST): Define.
7851 * builtins.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW,
7852 BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS): Define.
7853 * flag-types.h (sanitize_code): New enum.
7854 * opts.c (common_handle_option): Parse command line arguments
7855 of -fsanitize=. Add -fsanitize=unreachable option.
7856 * varasm.c (get_variable_section): Adjust.
7857 (assemble_noswitch_variable): Likewise.
7858 (assemble_variable): Likewise.
7859 (output_constant_def_contents): Likewise.
7860 (categorize_decl_for_section): Likewise.
7861 (place_block_symbol): Likewise.
7862 (output_object_block): Likewise.
7863 * builtins.def: Likewise.
7864 * toplev.c (compile_file): Likewise.
7865 (process_options): Likewise.
7866 * cppbuiltin.c: Likewise.
7867 * tsan.c (tsan_pass): Likewise.
7868 (tsan_gate): Likewise.
7869 (tsan_gate_O0): Likewise.
7870 * cfgexpand.c (partition_stack_vars): Likewise.
7871 (expand_stack_vars): Likewise.
7872 (defer_stack_allocation): Likewise.
7873 (expand_used_vars): Likewise.
7874 * cfgcleanup.c (old_insns_match_p): Likewise.
7875 * asan.c (asan_finish_file): Likewise.
7876 (asan_instrument): Likewise.
7877 (gate_asan): Likewise.
7878 (initialize_sanitizer_builtins): Build BT_FN_VOID_PTR_PTR_PTR.
7879 (ATTR_COLD_NOTHROW_LEAF_LIST): Define.
7880 (asan_global_struct): Use pointer_sized_int_node instead
7881 calling build_nonstandard_integer_type.
7882 (initialize_sanitizer_builtins): Likewise.
7883 (asan_finish_file): Likewise.
7884 * gcc.c: Document %{%:function(args):X}.
7885 (static_spec_functions): Add sanitize.
7886 (handle_spec_function): Add retval_nonnull argument and if non-NULL,
7887 store funcval != NULL there.
7888 (do_spec_1): Adjust handle_spec_function caller.
7889 (handle_braces): Allow %:function(args) as condition.
7890 (sanitize_spec_function): New function.
7891 (ADD_STATIC_LIBUBSAN_LIBS): Define.
7892 (LIBUBSAN_SPEC): Likewise.
7893 (LIBUBSAN_EARLY_SPEC): Likewise.
7894 (SANITIZER_SPEC): Handle libubsan.
7895 (SANITIZER_EARLY_SPEC): Likewise.
7896 * config/darwin.h (LINK_COMMAND_SPEC_A): Use %:sanitize(address)
7897 instead of fsanitize=address.
7898 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Use %:sanitize(address)
7899 instead of fsanitize=address*.
7900 * builtins.c: Include ubsan.h.
7901 (fold_builtin_0): Instrument __builtin_unreachable.
7902 * config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Use flag_sanitize
7903 instead of flag_asan.
7904 * tree.h (enum tree_index): Add TI_POINTER_SIZED_TYPE.
7905 (pointer_sized_int_node): Define.
41dedebd 7906 * tree.c (build_common_tree_nodes): Initialize pointer_sized_int_node.
de5a5fa1 7907
f07f30cf
MS
79082013-08-30 Mike Stump <mikestump@comcast.net>
7909
7910 * doc/install.texi (Prerequisites): Note regression in Tcl 8.6
7911 with RE patterns.
7912
8a41354f
JH
79132013-08-29 Jan Hubicka <jh@suse.cz>
7914
7915 * cgraph.c (cgraph_function_body_availability): Handle weakref
7916 correctly.
7917 * passes.def: Remove pass_fixup_cfg.
7918 * ipa-inline.c (ipa_inline): When not optimizing, do not inline;
7919 track when we need to remove functions.
7920 (gate_ipa_inline): Execute inlining always; add comment why.
7921 (pass_data_ipa_inline): Remove TODO_remove_functions.
7922 * ipa-inline-analysis.c (inline_generate_summary): When not optimizing
7923 do not produce summaries.
7924 * symtab.c (change_decl_assembler_name): Handle renaming of weakrefs.
7925 (symtab_nonoverwritable_alias): Assert we are not called on weakref.
7926 * varpool.c (cgraph_variable_initializer_availability): Fix weakrefs,
7927 constant pool and vtable.
7928
dc8d7a0f
TB
79292013-08-30 Tejas Belagod <tejas.belagod@arm.com>
7930
41dedebd
UB
7931 * config/aarch64/arm_neon.h (__AARCH64_UINT64_C, __AARCH64_INT64_C):
7932 New arm_neon.h's internal macros to specify 64-bit constants.
7933 Avoid using stdint.h's macros.
dc8d7a0f 7934
ac7eacd2
JR
79352013-08-30 Joern Rennecke <joern.rennecke@embecosm.com>
7936
7937 * recog.c (verify_changes): Verify that changes[i].old is non-zero
7938 before applying REG_P.
7939
8b29fd4e
JJ
79402013-08-30 Jakub Jelinek <jakub@redhat.com>
7941
7942 PR tree-optimization/58277
7943 * tree-ssa-strlen.c (strlen_enter_block): If do_invalidate gave up
7944 after seeing too many stmts with vdef in between dombb and current
7945 bb, invalidate everything.
7946
26d75703
RB
79472013-08-30 Richard Biener <rguenther@suse.de>
7948
7949 * fold-const.c (fold_single_bit_test): Fix overflow test.
7950
f7e088e7
EB
79512013-08-30 Eric Botcazou <ebotcazou@adacore.com>
7952
7953 * function.c (assign_parm_setup_reg): For a parameter passed by pointer
7954 and which can live in a register, always retrieve the value on entry.
7955 * var-tracking.c (add_stores): Treat the copy on entry for a parameter
7956 passed by invisible reference specially.
7957 (emit_notes_in_bb) <MO_VAL_USE>: Emit notes before the instruction.
7958 (vt_add_function_parameter): Correctly deal with a parameter passed by
7959 invisible reference.
7960
79612013-08-30 Jan Hubicka <jh@suse.cz>
47500756
JH
7962
7963 * tree.c (set_call_expr_flags): Fix handling of TM_PURE.
7964
6e8dad05
RB
79652013-08-30 Richard Biener <rguenther@suse.de>
7966
7967 PR tree-optimization/58228
7968 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Do not
7969 allow invariant loads in nested loop vectorization.
7970
062ef2c8
RB
79712013-08-30 Richard Biener <rguenther@suse.de>
7972
7973 PR tree-optimization/58223
7974 * tree-loop-distribution.c (has_anti_dependence): Rename to ...
7975 (has_anti_or_output_dependence): ... this and adjust to also
7976 look for output dependences.
7977 (mark_nodes_having_upstream_mem_writes): Adjust.
7978 (rdg_flag_uses): Likewise.
7979
7a764c60
RB
79802013-08-30 Richard Biener <rguenther@suse.de>
7981
7982 PR tree-optimization/58010
7983 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
7984 assert that we have a loop-closed PHI.
7985
82e9d642
JH
79862013-08-29 Jan Hubicka <jh@suse.cz>
7987
7988 * lto-symtab.c (lto_cgraph_replace_node): Free decl_in_state.
7989 * cgraph.c (cgraph_release_function_body): Free decl_in_state.
7990 * lto-section-in.c (lto_free_function_in_decl_state): New function.
7991 (lto_free_function_in_decl_state_for_node): New function.
7992
9cc1fb4b
XDL
79932013-08-29 Xinliang David Li <davidxl@google.com>
7994
41dedebd 7995 * loop-unroll.c (report_unroll_peel): Minor message change.
9cc1fb4b
XDL
7996 * tree-vect-loop-manip.c (vect_do_peeling_for_alignment):
7997 Emit alignment peeling message with default -fopt-info.
7998 (vect_loop_versioning): Emit loop version info message.
41dedebd 7999 * tree-vectorizer.c (vectorize_loops): Minor message change.
9cc1fb4b
XDL
8000 (execute_vect_slp): Ditto.
8001
440a5082
EB
80022013-08-29 Eric Botcazou <ebotcazou@adacore.com>
8003
8004 * cgraphclones.c (cgraph_create_virtual_clone): Compute the DECL_NAME
8005 of the clone from the DECL_NAME of the original function.
8006
3fa3690d
OE
80072013-08-29 Oleg Endo <olegendo@gcc.gnu.org>
8008
8009 * passes.c (register_pass): Add overload.
8010 * tree-pass.h (register_pass): Forward declare it. Add comment.
8011
0170f33c
JH
80122013-08-29 Jan Hubicka <jh@suse.cz>
8013
41dedebd
UB
8014 * lto-streamer-out.c (hash_tree): Stream DECL_FINAL_P,
8015 DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P and TYPE_FINAL_P.
8016 * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Stream
8017 DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
0170f33c
JH
8018 (unpack_ts_type_common_value_fields): Stream TYPE_FINAL_P.
8019 * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields):
41dedebd 8020 Add DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
0170f33c
JH
8021 (pack_ts_type_common_value_fields): Add TYPE_FINAL_P.
8022
103ff0d6
TJ
80232013-08-29 Teresa Johnson <tejohnson@google.com>
8024
8025 * dumpfile.c (dump_loc): Output column number.
8026 * dumpfile.h (OPTGROUP_OTHER): Add and enable under OPTGROUP_ALL.
8027 * doc/invoke.texi: Document optall -fopt-info flag.
8028 * profile.c (read_profile_edge_counts): Use new dump framework.
8029 (compute_branch_probabilities): Ditto.
8030 * passes.c (pass_manager::register_one_dump_file): Use OPTGROUP_OTHER
8031 when pass not in any opt group.
8032 * pass_manager.h (pass_manager::get_pass_profile): New method.
8033 * value-prof.c (check_counter): Use new dump framework.
8034 (check_ic_target): Ditto.
8035 * coverage.c (get_coverage_counts): Ditto.
8036 (coverage_init): Setup new dump framework.
8037
301bbc16
RB
80382013-08-29 Richard Biener <rguenther@suse.de>
8039
8040 PR tree-optimization/58246
8041 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Properly
8042 handle the dominance check inside a basic-block.
8043
1b275000
RB
80442013-08-29 Richard Biener <rguenther@suse.de>
8045
8046 PR middle-end/57287
8047 * tree-ssa-copy.c (may_propagate_copy): Allow propagating
8048 of default defs that appear in abnormal PHI nodes.
8049
6b1184ba
RB
80502013-08-29 Richard Biener <rguenther@suse.de>
8051
8052 PR tree-optimization/57685
8053 * tree-vrp.c (register_edge_assert_for_1): Recurse only for
8054 single-use operands to avoid exponential complexity.
8055
1b08b734
DC
80562013-08-28 Dehao Chen <dehao@google.com>
8057
8058 * ipa-inline.c (edge_badness): Fix integer underflow.
8059
48a3fa69
UB
80602013-08-28 Uros Bizjak <ubizjak@gmail.com>
8061
8062 * gtm-builtins.def (_ITM_free): Declare leaf.
8063
215f73e6
JJ
80642013-08-28 Jakub Jelinek <jakub@redhat.com>
8065
8066 PR target/58067
8067 * config/i386/i386.md (*tls_global_dynamic_64_largepic): New insn.
8068 (*tls_local_dynamic_base_64_largepic): Likewise.
8069 (tls_global_dynamic_64_<mode>, tls_local_dynamic_base_64_<mode>):
8070 Remove predicate from call operand.
8071 * config/i386/i386.c (ix86_tls_get_addr): For -mcmodel=large -fpic
8072 return sum of pic_offset_table_rtx and UNSPEC_PLTOFF of the symbol.
8073
34554d1a
JL
80742013-08-28 Jeff Law <law@redhat.com>
8075
8076 * tree-ssa-threadedge.c (thread_around_empty_block): Remove
8077 checks for the number of predecessors and successors allowed.
8078 * tree-ssa-threadupdate.c (mark_threaded_blocks): Ignore requests
8079 which require copying a joiner block if there is a request which
8080 is a subpath that requires no joiner block copying.
8081
c01c111b
JH
80822013-08-28 Jan Hubicka <jh@suse.cz>
8083
8084 * lto-streamer-out.c (DFS_write_tree_body): Drop
8085 BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX and BINFO_VPTR_INDEX.
8086 (hash_tree): Do not hash DECL_DEFER_OUTPUT, BINFO_INHERITANCE_CHAIN,
8087 BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, DECL_IN_TEXT_SECTION.
8088 * tree-streamer-in.c (unpack_ts_decl_common_value_fields):
8089 Do not read DECL_ERROR_ISSUED.
8090 (unpack_ts_decl_with_vis_value_fields): Do not read
8091 DECL_DEFER_OUTPUT.
48a3fa69
UB
8092 (lto_input_ts_binfo_tree_pointers): Do not read
8093 BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX
c01c111b
JH
8094 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Do not
8095 write DECL_ERROR_ISSUED..
8096 (pack_ts_decl_with_vis_value_fields): Do not write
8097 DECL_DEFER_OUTPUT.
8098 (write_ts_binfo_tree_pointers): Do not read BINFO_INHERITANCE_CHAIN,
48a3fa69 8099 BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX.
c01c111b
JH
8100 * print-tree.c (print_node): Do not print DECL_ERROR_ISSUED.
8101 * tree.h (tree_decl_common): Update comment.
8102 (DECL_ERROR_ISSUED): Remove.
8103
4b128ece
JJ
81042013-08-28 Jakub Jelinek <jakub@redhat.com>
8105
8106 PR middle-end/58257
8107 * omp-low.c (copy_var_decl): Copy over TREE_NO_WARNING flag.
8108
12211b99 81092013-08-28 Jan Hubicka <jh@suse.cz>
9e57846a
JH
8110
8111 * builtins.def (free): Declare leaf.
8112
8dce4dbc
DM
81132013-08-27 David Malcolm <dmalcolm@redhat.com>
8114
8115 * gdbhooks.py: New.
8116 * configure.ac (gdbinit.in): Add import of gcc/gdbhooks.py.
8117 * configure: Regenerate.
8118
b8f6e610
MJ
81192013-08-27 Martin Jambor <mjambor@suse.cz>
8120
8121 * ipa-prop.h (ipa_pass_through_data): New field type_preserved.
8122 (ipa_ancestor_jf_data): Likewise.
8123 (ipa_get_jf_pass_through_agg_preserved): Fix comment typo.
8124 (ipa_get_jf_pass_through_type_preserved): New function.
8125 (ipa_get_jf_ancestor_agg_preserved): Fix comment typo.
8126 (ipa_get_jf_ancestor_type_preserved): New function.
12211b99 8127 * ipa-cp.c (ipa_get_jf_pass_through_result): Honor type_preserved flag.
b8f6e610
MJ
8128 (ipa_get_jf_ancestor_result): Likewise.
8129 (propagate_vals_accross_pass_through): Use
8130 ipa_get_jf_pass_through_result to do all the value mappings.
8131 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Dump the
8132 type_preserved flag.
8133 (ipa_set_jf_cst_copy): New function.
8134 (ipa_set_jf_simple_pass_through): Set the type_preserved flag.
8135 (ipa_set_jf_arith_pass_through): Likewise.
8136 (ipa_set_ancestor_jf): Likewise.
8137 (compute_complex_assign_jump_func): Set type_preserved instead of
8138 punting.
8139 (ipa_compute_jump_functions_for_edge): Likewise.
8140 (combine_known_type_and_ancestor_jfs): Honor type_preserved.
8141 (update_jump_functions_after_inlining): Update type_preserved.
12211b99 8142 Explicitely create jump functions when combining one with pass_through.
b8f6e610
MJ
8143 (ipa_write_jump_function): Stream the type_preserved flags.
8144 (ipa_read_jump_function): Likewise.
8145
74bf76ed
JJ
81462013-08-27 Jakub Jelinek <jakub@redhat.com>
8147 Aldy Hernandez <aldyh@redhat.com>
8148
8149 * Makefile.in (omp-low.o): Depend on $(TARGET_H).
8150 * cfgloop.h (struct loop): Add safelen, force_vect, simduid.
8151 * function.h (struct function): Add has_force_vect_loops and
8152 has_simduid_loops.
12211b99 8153 * gimple-pretty-print.c (dump_gimple_omp_for): Handle GF_OMP_FOR_KIND*.
74bf76ed
JJ
8154 * gimple.c (gimple_build_omp_critical): Add KIND argument and
8155 handle it.
8156 * gimple.def: Update CLAUSES comments.
8157 * gimple.h (enum gf_mask): Add GF_OMP_FOR_KIND_{FOR,SIMD}.
8158 (gimple_build_omp_for): Add argument to prototype.
8159 (gimple_omp_for_kind): New.
8160 (gimple_omp_for_set_kind): New.
8161 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_LINEAR to
8162 GOVD_DATA_SHARE_CLASS.
8163 (enum omp_region_type): Add ORT_SIMD.
8164 (gimple_add_tmp_var): Handle ORT_SIMD.
8165 (gimplify_var_or_parm_decl): Same.
8166 (is_gimple_stmt): Same.
8167 (omp_firstprivatize_variable): Same.
8168 (omp_add_variable): Only use splay_tree_insert if lookup failed.
8169 (omp_notice_variable): Handle ORT_SIMD.
12211b99 8170 (omp_is_private): Add SIMD argument and handle it as well as ORT_SIMD.
74bf76ed
JJ
8171 (omp_check_private): Handle ORT_SIMD.
8172 (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_LINEAR and
8173 OMP_CLAUSE_SAFELEN.
8174 (gimplify_adjust_omp_clauses_1): Handle GOVD_LINEAR.
8175 Handle OMP_CLAUSE_LASTPRIVATE.
8176 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_LINEAR and
8177 OMP_CLAUSE_SAFELEN.
8178 (gimplify_omp_for): Handle OMP_SIMD and OMP_CLAUSE_LINEAR.
8179 (gimplify_expr): Handle OMP_SIMD.
8180 * internal-fn.c (expand_GOMP_SIMD_LANE): New.
8181 (expand_GOMP_SIMD_VF): New.
8182 (expand_GOMP_SIMD_LAST_LANE): New.
8183 * internal-fn.def (GOMP_SIMD_LANE): New.
8184 (GOMP_SIMD_VF): New.
8185 (GOMP_SIMD_LAST_LANE): New.
8186 * omp-low.c: Include target.h.
8187 (extract_omp_for_data): Handle OMP_SIMD, OMP_CLAUSE_LINEAR,
8188 OMP_CLAUSE_SAFELEN.
8189 (check_omp_nesting_restrictions): Same.
8190 (omp_max_vf): New.
8191 (lower_rec_simd_input_clauses): New.
8192 (lower_rec_input_clauses): Handle OMP_SIMD, GF_OMP_FOR_KIND_SIMD,
8193 OMP_CLAUSE_LINEAR.
8194 (lower_lastprivate_clauses): Handle OMP_CLAUSE_LINEAR,
8195 GF_OMP_FOR_KIND_SIMD, OMP_SIMD.
8196 (expand_omp_build_assign): New.
8197 (expand_omp_for_init_counts): New.
8198 (expand_omp_for_init_vars): New.
8199 (extract_omp_for_update_vars): New.
8200 (expand_omp_for_generic): Use expand_omp_for_{init,update}_vars
8201 and rewrite accordingly.
8202 (expand_omp_simd): New.
8203 (expand_omp_for): Use expand_omp_simd.
8204 (lower_omp_for_lastprivate): Unshare vinit when appropriate.
8205 (lower_omp_for): Do not lower the body.
8206 * tree-data-ref (get_references_in_stmt): Allow IFN_GOMP_SIMD_LANE
8207 in their own loops.
8208 * tree-flow.h (find_omp_clause): Remove prototype.
12211b99
UB
8209 * tree-if-conv.c (main_tree_if_conversion): Run if doing if conversion,
8210 forcing vectorization of the loop, or if flag_tree_vectorize.
74bf76ed
JJ
8211 (gate_tree_if_conversion): Similarly.
8212 * tree-inline.c (remap_gimple_stmt): Pass for kind argument to
8213 gimple_build_omp_for.
8214 (copy_cfg_body): set has_force_vect_loops and has_simduid_loops.
8215 * tree-parloops (create_parallel_loop): Pass kind argument to
8216 gimple_build_omp_for.
8217 * tree-pretty-print.c (dump_omp_clause): Add cases for
8218 OMP_CLAUSE_UNIFORM, OMP_CLAUSE_LINEAR, OMP_CLAUSE_SAFELEN,
8219 OMP_CLAUSE__SIMDUID_.
8220 (dump_generic_node): Handle OMP_SIMD.
8221 * tree-ssa-ccp.c (likely_value): Handle IFN_GOMP_SIMD*.
8222 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Do not
8223 unroll OMP_SIMD loops here.
12211b99 8224 * tree-ssa-loop.c (gate_tree_vectorize): Run if has_force_vect_loops.
74bf76ed 8225 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Handle
12211b99 8226 loop->safelen.
74bf76ed
JJ
8227 (vect_analyze_data_refs): Handle simd loops.
8228 * tree-vect-loop.c (vectorizable_live_operation): Handle
8229 IFN_GOMP_SIMD*.
12211b99 8230 * tree-vect-stmts.c (vectorizable_call): Handle IFN_GOMP_SIMD_LANE.
74bf76ed
JJ
8231 (vectorizable_store): Handle STMT_VINFO_SIMD_LANE_ACCESS_P.
8232 (vectorizable_load): Same.
12211b99 8233 * tree-vectorizer.c: Include hash-table.h and tree-ssa-propagate.h.
74bf76ed
JJ
8234 (struct simduid_to_vf): New.
8235 (simduid_to_vf::hash): New.
8236 (simduid_to-vf::equal): New.
8237 (struct simd_array_to_simduid): New.
8238 (simd_array_to_simduid::hash): New.
8239 (simd_array_to_simduid::equal): New.
8240 (adjust_simduid_builtins): New.
8241 (struct note_simd_array_uses_struct): New.
8242 (note_simd_array_uses_cb): New.
8243 (note_simd_array_uses): New.
8244 (vectorize_loops): Handle simd hints and adjust simd builtins
8245 accordingly.
8246 * tree-vectorizer.h (struct _stmt_vec_info): Add
8247 simd_lane_access_p field.
8248 (STMT_VINFO_SIMD_LANE_ACCESS_P): New macro.
8249 * tree.c (omp_clause_num_ops): Add entries for OMP_CLAUSE_LINEAR,
8250 OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_UNIFORM.
8251 (omp_clause_code_name): Same.
8252 (walk_tree_1): Handle OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN,
8253 OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_LINEAR.
8254 * tree.def (OMP_SIMD): New entry.
12211b99
UB
8255 * tree.h (enum omp_clause_code): Add entries for OMP_CLAUSE_LINEAR,
8256 OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_.
74bf76ed
JJ
8257 (OMP_CLAUSE_DECL): Adjust range for new clauses.
8258 (OMP_CLAUSE_LINEAR_NO_COPYIN): New.
8259 (OMP_CLAUSE_LINEAR_NO_COPYOUT): New.
8260 (OMP_CLAUSE_LINEAR_STEP): New.
8261 (OMP_CLAUSE_SAFELEN_EXPR): New.
8262 (OMP_CLAUSE__SIMDUID__DECL): New.
8263 (find_omp_clause): New prototype.
8264
d0cf4e84
L
82652013-08-27 H.J. Lu <hongjiu.lu@intel.com>
8266
8267 * config/i386/driver-i386.c (host_detect_local_cpu): Update
8268 Haswell processor detection.
8269
992592ec
CW
82702013-08-27 Christian Widmer <shadow@umbrox.de>
8271
8272 PR target/57927
8273 * config/i386/driver-i386.c (host_detect_local_cpu): Add detection
8274 of Ivy Bridge and Haswell processors. Assume core-avx2 for unknown
8275 AVX2 capable processors.
8276
9116eb22
TB
82772013-08-27 Tejas Belagod <tejas.belagod@arm.com>
8278
8279 * config/aarch64/arm_neon.h: Replace all inline asm implementations
8280 of vget_low_* with implementations in terms of other intrinsics.
8281
1c5abb53
MG
82822013-08-27 Marc Glisse <marc.glisse@inria.fr>
8283
8284 PR middle-end/57219
8285 * doc/extend.texi (__builtin_isinf_sign): Restrict the return
8286 values to -1, 0 and 1.
8287
2e100703
VP
82882013-08-27 Vidya Praveen <vidyapraveen@arm.com>
8289
8290 * config/aarch64/aarch64.md (unspec): Add UNSPEC_SISD_SSHL,
8291 UNSPEC_SISD_USHL, UNSPEC_USHL_2S, UNSPEC_SSHL_2S, UNSPEC_SISD_NEG.
8292 (<optab><mode>3_insn): Remove.
8293 (aarch64_ashl_sisd_or_int_<mode>3): New Pattern.
8294 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
8295 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
8296 (define_split for aarch64_lshr_sisd_or_int_di3): Likewise.
8297 (define_split for aarch64_lshr_sisd_or_int_si3): Likewise.
8298 (define_split for aarch64_ashr_sisd_or_int_di3): Likewise.
8299 (define_split for aarch64_ashr_sisd_or_int_si3): Likewise.
8300 (aarch64_sisd_ushl, aarch64_sisd_sshl): Likewise.
8301 (aarch64_ushl_2s, aarch64_sshl_2s, aarch64_sisd_neg_qi): Likewise.
8302 (ror<mode>3_insn): Likewise.
8303 * config/aarch64/predicates.md (aarch64_simd_register): New.
8304
4ded8276
RB
83052013-08-27 Richard Biener <rguenther@suse.de>
8306
8307 PR tree-optimization/57521
8308 * tree-if-conv.c (if_convertible_bb_p): Verify that at least
8309 one edge is non-critical.
8310 (find_phi_replacement_condition): Make sure to use a non-critical
8311 edge. Cleanup and remove old bug workarounds.
8312 (bb_postdominates_preds): Remove.
8313 (if_convertible_loop_p_1): Do not compute post-dominators.
8314 (combine_blocks): Do not free post-dominators.
8315 (main_tree_if_conversion): Likewise.
8316 (pass_data_if_conversion): Add TODO_verify_ssa.
8317
5aa11061
DD
83182013-08-27 DJ Delorie <dj@redhat.com>
8319
8320 * config/i386/djgpp.h (ASM_DECLARE_FUNCTION_NAME): New.
8321
fd91cfe3
YZ
83222013-08-27 Yufeng Zhang <yufeng.zhang@arm.com>
8323
8324 * function.c (assign_parm_find_data_types): Set passed_mode and
8325 nominal_mode to the TYPE_MODE of nominal_type for the built
8326 pointer type in case of the struct-pass-by-reference.
8327
907555ce
JR
83282013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
8329
8330 * config/avr/avr-stdint.h (INT16_TYPE): Change default to "int".
8331 (UINT16_TYPE): Change default to "unsigned int".
8332
67518c93
JR
8333 * config/avr/avr.opt (mfract-convert-truncate): New option.
8334 * config/avr/avr.c (avr_out_fract): Unless TARGET_FRACT_CONV_TRUNC
8335 is set, round negative fractional integers according to n1169
8336 when converting to integer types.
8337
d6d989fc
JH
83382013-08-26 Jan Hubicka <jh@suse.cz>
8339
8340 * cgraph.c (cgraph_propagate_frequency): Do not assume that virtual
8341 methods can not be called indirectly when their address is not taken.
8342
2aa3da06
JH
83432013-08-26 Jan Hubicka <jh@suse.cz>
8344
12211b99
UB
8345 * gimple-fold.c (gimple_get_virt_method_for_binfo): Use
8346 ctor_for_folding.
2aa3da06 8347
0987ffe7
JH
83482013-08-26 Jan Hubicka <jh@suse.cz>
8349
8350 * ipa.c (comdat_can_be_unshared_p_1): C++ constructors and destructors
8351 can be unshared.
8352
befe8647
JR
83532013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
8354
8355 * reload.c (find_valid_class): Allow classes that do not include
8356 FIRST_PSEUDO_REGISTER - 1.
8357
a21e735e
JH
83582013-08-26 Jan Hubicka <jh@suse.cz>
8359
8360 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix formatting;
8361 fix edge count/frequency when speculation failed; fix type check
8362 for the direct call.
8363
e067bd43
JH
83642013-08-26 Jan Hubicka <jh@suse.cz>
8365
8366 * ipa-prop.c (ipa_print_node_params): Do not ICE during WPA.
8367
e8aec975
JH
83682013-08-26 Jan Hubicka <jh@suse.cz>
8369
8370 * ipa-inline-transform.c (inline_transform): Be ready for basic block
8371 to be changed by edge redirection.
8372
d0b66480
JH
83732013-08-26 Jan Hubicka <jh@suse.cz>
8374
12211b99
UB
8375 * cgraph.c (cgraph_speculative_call_info): Fix parameter order and
8376 formating; add sanity check.
d0b66480
JH
8377 (cgraph_resolve_speculation): Add FIXME about scaling profiles.
8378 (cgraph_redirect_edge_call_stmt_to_callee): Fix ICE in debug dump.
8379 * ipa-inline.c (heap_edge_removal_hook): Reset node growth cache.
8380 (resolve_noninline_speculation): Update callee keys, too.
8381
0f9aaac7
JH
83822013-08-26 Jan Hubicka <jh@suse.cz>
8383
8384 * tree.h (tree_decl_with_vis): Add cxx_constructor, cxx_destructor.
8385 (DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P): New macros.
8386
4b37444e
JR
83872013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
8388
8389 * config/i386/i386.c (x86_64_elf_select_section): Put ATTRIBUTE_UNUSED
8390 into proper place.
8391
5339fc0c
UB
83922013-08-26 Uros Bizjak <ubizjak@gmail.com>
8393
8394 * config/i386/i386.c (ix86_debug_options): Remove prototype.
8395 (x86_64_elf_select_section): Ditto.
8396 (ix86_handle_tm_regparm_attribute): Remove ATTRIBUTE_UNUSED on used
8397 arguments.
8398 (ix86_pass_by_reference): Ditto.
5339fc0c
UB
8399 (output_set_got): Ditto.
8400 (ix86_unary_operator_ok): Ditto.
8401 (ix86_expand_builtin): Ditto.
8402
d5c3d3ef
JH
84032013-08-23 Jan Hubicka <jh@suse.cz>
8404
5339fc0c 8405 * cgraph.c (cgraph_turn_edge_to_speculative): Fix debug output.
d5c3d3ef 8406
5b1e7435
JH
84072013-08-23 Jan Hubicka <jh@suse.cz>
8408
8409 * tree.h (TYPE_FINAL_P, DECL_FINAL_P): New macros.
8410 (tree_decl_with_vis): Add FINAL field.
8411
ead69dac
JL
84122013-08-23 Jeff Law <law@redhat.com>
8413
8414 * tree-ssa-pre.c (do_regular_insertion): Include the expression in
8415 the debugging dump when the expression is fully redundant.
8416
025311c4
GDR
84172013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
8418
8419 * diagnostic.c (diagnostic_set_caret_max_width): Use pp_buffer.
8420 * gimple-pretty-print.c (gimple_dump_bb_buff): Likewise.
8421 * pretty-print.c (pp_formatted_text_data): Likewise.
8422 (pp_write_text_to_stream): Likewise.
8423 (pp_write_text_as_dot_label_to_stream): Likewise.
8424 (pp_append_r): Likewise.
8425 (pp_format): Likewise.
8426 (pp_flush): Likewise.
8427 (pp_clear_output_area): Likewise.
8428 (pp_append_text): Likewise.
8429 (pp_formatted_text): Likewise.
8430 (pp_remaining_character_count_for_line): Likewise.
8431 (pp_newline): Likewise.
8432 (pp_character): Likewise.
8433 (output_buffer::~output_buffer): Define.
8434 (pretty_printer::~pretty_printer): Destruct output buffer.
8435 * pretty-print.h (output_buffer::~output_buffer): Declare.
8436 (pretty_printer::~pretty_printer): Declare virtual.
8437
0cadbfaa
MG
84382013-08-24 Marc Glisse <marc.glisse@inria.fr>
8439
8440 PR other/57324
8441 * hwint.h (HOST_WIDE_INT_UC, HOST_WIDE_INT_1U, HOST_WIDE_INT_M1,
8442 HOST_WIDE_INT_M1U): New macros.
8443 * fold-const.c (sign_bit_p, build_range_check, fold_unary_loc,
8444 fold_binary_loc, fold_ternary_loc): Use the new macros. Use an
8445 unsigned -1 for lshift.
8446 * cse.c (cse_insn): Likewise.
8447 * double-int.c (rshift_double, lshift_double): Likewise.
8448 * builtins.c (fold_builtin_bitop): Likewise.
8449 * combine.c (force_to_mode): Likewise.
8450 * tree.c (integer_pow2p, tree_log2, tree_floor_log2): Likewise.
8451 * simplify-rtx.c (simplify_const_unary_operation,
8452 simplify_const_binary_operation): Likewise.
8453 * tree-stdarg.c (va_list_counter_bump, va_list_ptr_read,
8454 check_va_list_escapes): Likewise.
8455 * rtlanal.c (nonzero_bits1): Likewise.
8456 * expmed.c (expand_smod_pow2): Likewise.
8457 * tree-ssa-structalias.c (UNKNOWN_OFFSET): Use HOST_WIDE_INT_MIN.
8458
009e5353
JH
84592013-08-23 Jan Hubicka <jh@suse.cz>
8460
8461 * cgraph.c (cgraph_turn_edge_to_speculative): Mark target node
8462 as having address taken.
8463
c4be6568
JH
84642013-08-23 Jan Hubicka <jh@suse.cz>
8465
64cbf23d
JH
8466 * ipa-utils.h (method_class_type): Declare.
8467 * ipa-devirt.c (method_class_type): Export.
8468
c4be6568
JH
8469 * cgraphunit.c (analyze_functions): Do basic devirtualization;
8470 do not walk base classes of anonymous types.
8471
97aba8e9
KK
84722013-08-23 Kaz Kojima <kkojima@gcc.gnu.org>
8473
8474 PR rtl-optimization/58220
8475 PR regression/58221
8476 * final.c (reemit_insn_block_notes): Use NEXT_INSN to
8477 handle SEQUENCE insns properly.
8478
0fc80001
GDR
84792013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
8480
8481 * pretty-print.h (pp_newline_and_flush): Declare. Remove macro
8482 definition.
8483 (pp_newline_and_indent): Likewise.
8484 (pp_separate_with): Likewise.
8485 * pretty-print.c (pp_newline_and_flush): Define.
8486 (pp_newline_and_indent): Likewise.
8487 (pp_separate_with): Likewise.
8488
520a5868
JJ
84892013-08-23 Jakub Jelinek <jakub@redhat.com>
8490
8491 PR target/58218
8492 * config/i386/x86-64.h (TARGET_SECTION_TYPE_FLAGS): Define.
8493 * config/i386/i386.c (x86_64_elf_section_type_flags): New function.
8494
e500c62a
KY
84952013-08-23 Kirill Yukhin <kirill.yukhin@intel.com>
8496
f43245d1
UB
8497 * config/i386/predicates.md (ext_sse_reg_operand): New.
8498 * config/i386/i386.md (*movti_internal): Use
e500c62a
KY
8499 predicate to determine if EVEX is needed.
8500 (*movsi_internal): Ditto.
8501 (*movdf_internal): Ditto.
8502 (*movsf_internal): Ditto.
f43245d1 8503 * config/i386/mmx.md (*mov<mode>_internal): Ditto.
e500c62a 8504
6b00d7dd
JJ
85052013-08-23 Jakub Jelinek <jakub@redhat.com>
8506
8507 PR tree-optimization/58209
8508 * tree-tailcall.c (process_assignment): Handle POINTER_PLUS_EXPR.
8509 (find_tail_calls): Give up for pointer result types if m is non-NULL.
8510 (adjust_return_value_with_ops): For PLUS_EXPR and pointer result type
8511 emit POINTER_PLUS_EXPR.
8512 (create_tailcall_accumulator): For pointer result type accumulate in
8513 sizetype type.
8514
4f2a9f90
PC
85152013-08-22 Paolo Carlini <paolo.carlini@oracle.com>
8516
8517 * configure.ac: Add backslashes missing from the last change.
8518 * configure: Regenerate.
8519
7bf4274e
JH
85202013-08-22 Jan Hubicka <jh@susue.cz>
8521
4f2a9f90
PC
8522 * ipa.c (function_and_variable_visibility): First remember function
8523 was global and then make it local.
7bf4274e 8524
1bea243d
JB
85252013-08-22 Julian Brown <julian@codesourcery.com>
8526
8527 * configure.ac: Add aarch64 to list of arches which use "nop" in
8528 debug_line test.
8529 * configure: Regenerate.
8530
bcba7ecc
AK
85312013-08-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8532
8533 * config/s390/linux.h (TARGET_LIBC_HAS_FUNCTION): Define as
8534 gnu_libc_has_function.
8535 * config/s390/tpf.h: Likewise.
8536
4c495b0d
JH
85372013-08-22 Jan Hubicka <jh@susue.cz>
8538
8539 * timevar.c (validate_phases): Add cast.
8540
5e302bca
JH
85412013-08-22 Jan Hubicka <jh@susue.cz>
8542
8543 * timevar.c (validate_phases): Use size_t for memory.
8544 * timevar.h (struct timevar_time_def): Use size_t for ggc_mem.
8545
da6ca2b5
GDR
85462013-08-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
8547
8548 * pretty-print.h (output_buffer::output_buffer): Declare.
8549 (pretty_printer::pretty_printer): Likewise.
8550 (pp_construct): Remove.
8551 * pretty-print.c (output_buffer::output_buffer): Define.
8552 (pretty_printer::pretty_printer): Rename from pp_construct. Simplify.
8553 * gimple-pretty-print.c (print_gimple_stmt): Do not call pp_construct.
8554 (print_gimple_expr): Likewise.
8555 (print_gimple_seq): Likewise.
8556 (gimple_dump_bb): Likewise.
8557 * sched-vis.c (dump_value_slim): Likewise.
8558 (dump_insn_slim): Likewise.
8559 (dump_rtl_slim): Likewise.
8560 (str_pattern_slim): Likewise.
8561 * tree-mudflap.c (mf_varname_tree): Likewise.
8562 * graph.c (print_graph_cfg): Likewise.
8563 (start_graph_dump): Likewise.
8564 * tree-pretty-print.c (maybe_init_pretty_print): Likewise. Use
8565 placement-new.
8566 * diagnostic.c (diagnostic_initialize): Simplify early diagnostic
8567 pretty printer initialization.
8568 * coretypes.h (diagnostic_context): Remove superflous type alias
8569 declaration.
8570 (pretty_printer): Likewise. Declare directly as a class.
8571 (pretty_print_info): Remove declaration as class.
8572 * asan.c (asan_emit_stack_protection): Remove call to pp_construct
8573 and pp_clear_output_area.
8574 (asan_add_global): Likewise.
8575
0e1474e5
JH
85762013-08-22 Jan Hubicka <jh@suse.cz>
8577
8578 * cgraphunit.c (analyze_functions) Use update_type_inheritance_graph.
8579 * ipa-utils.h (update_type_inheritance_graph): Declare.
8580 (possible_polymorphic_call_target_p): Declare.
8581 (possible_polymorphic_call_target_p): New.
8582 * ipa-devirt.c: Update toplevel comments.
8583 (cached_polymorphic_call_targets): Move up.
8584 (odr_type_d): Move ID down.
8585 (polymorphic_type_binfo_p): Update comment.
8586 (odr_hasher::remove): Likewise;
8587 (get_odr_type): Set anonymous_namespace.
8588 (dump_odr_type): Dump it.
8589 (dump_type_inheritance_graph): Do not ICE when there are no ODR types.
8590 (maybe_record_node): Record node in cached_polymorphic_call_targets.
8591 (record_binfo): Add comment.
5339fc0c
UB
8592 (free_polymorphic_call_targets_hash): Do not ICE when cache is not
8593 built.
0e1474e5
JH
8594 (devirt_node_removal_hook): Do not iCE when cache is freed.
8595 (possible_polymorphic_call_target_p): New predicate.
8596 (update_type_inheritance_graph): New function.
8597
3f97cb0b
AI
85982013-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
8599 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
8600 Sergey Lega <sergey.s.lega@intel.com>
8601 Anna Tikhonova <anna.tikhonova@intel.com>
8602 Ilya Tocar <ilya.tocar@intel.com>
8603 Andrey Turetskiy <andrey.turetskiy@intel.com>
8604 Ilya Verbin <ilya.verbin@intel.com>
8605 Kirill Yukhin <kirill.yukhin@intel.com>
8606 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
8607
8608 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512F_SET): New.
8609 (OPTION_MASK_ISA_AVX512CD_SET): Ditto.
8610 (OPTION_MASK_ISA_AVX512PF_SET): Ditto.
8611 (OPTION_MASK_ISA_AVX512ER_SET): Ditto.
8612 (OPTION_MASK_ISA_AVX2_UNSET): Update.
8613 (OPTION_MASK_ISA_AVX512F_UNSET): New.
8614 (OPTION_MASK_ISA_AVX512CD_UNSET): Ditto.
8615 (OPTION_MASK_ISA_AVX512PF_UNSET): Ditto.
8616 (OPTION_MASK_ISA_AVX512ER_UNSET): Ditto.
8617 (ix86_handle_option): Handle OPT_mavx512f, OPT_mavx512cd,
8618 OPT_mavx512pf, OPT_mavx512er cases.
8619 * config/i386/constraints.md (v): New constraint.
8620 (Yi, Yj): Replace SSE_REGS with ALL_SSE_REGS.
8621 * config/i386/cpuid.h (bit_AVX512F, bit_AVX512PF, bit_AVX512ER)
8622 (bit_AVX512CD): New.
8623 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
8624 AVX512F, AVX512ER, AVX512PF, AVX512CD features.
8625 * config/i386/i386-c.c (ix86_target_macros_internal):
8626 Conditionally define __AVX512F__, __AVX512ER__, __AVX512CD__,
8627 __AVX512PF__.
8628 * config/i386/i386-modes.def (VECTOR_MODES (INT, 128))
8629 (VECTOR_MODES (FLOAT, 128), INT_MODE (XI, 64)): New modes.
8630 * config/i386/i386.c (regclass_map, dbx_register_map)
8631 (dbx64_register_map, svr4_dbx_register_map): Add new SSE registers.
8632 (gate_insert_vzeroupper): Disable vzeroupper for TARGET_AVX512F.
8633 (ix86_target_string): Define -mavx512f, -mavx512er, -mavx512cd,
8634 -mavx512pf options.
8635 (ix86_option_override_internal): Define PTA_AVX512F, PTA_AVX512ER,
8636 PTA_AVX512PF, PTA_AVX512CD. Handle -mavx512f, -mavx512er, -mavx512cd,
8637 -mavx512pf options. Fix formatting.
8638 (ix86_conditional_register_usage): Squash EXT_REX_SSE_REGs for 32-bit
8639 targets. Squash EVEX_SSE_REGS if AVX512F is disabled.
8640 (ix86_valid_target_attribute_inner_p): Handle -mavx512f, -mavx512er,
8641 -mavx512cd, -mavx512pf options.
8642 (standard_sse_constant_opcode): Add vpternlogd for 512-bit modes.
8643 (print_reg, ix86_print_operand): Handle 'g' to output 512-bit operands.
8644 (ix86_preferred_output_reload_class): Replace SSE_REGS with
8645 ALL_SSE_REGS.
8646 (ix86_hard_regno_mode_ok): Support 512-bit registers.
8647 (ix86_set_reg_reg_cost): Ditto.
8648 (x86_order_regs_for_local_alloc): Ditto.
8649 (MAX_VECT_LEN): Extend to 64-byte.
8650 (ix86_spill_class): Replace SSE_REGS with ALL_SSE_REGS.
8651 * config/i386/i386.h (TARGET_AVX512F, TARGET_AVX512PF)
8652 (TARGET_AVX512ER, TARGET_AVX512CD): New.
8653 (BIGGEST_ALIGNMENT): Extend to 512-bits.
8654 (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS): Add new registers.
8655 (CALL_USED_REGISTERS, REG_ALLOC_ORDER): Likewise.
8656 (VALID_AVX512F_SCALAR_MODE, VALID_AVX512F_REG_MODE): New.
8657 (SSE_REG_MODE_P): Support new modes.
8658 (FIRST_MMX_REG, FIRST_REX_INT_REG, FIRST_REX_SSE_REG): Add comments.
8659 (FIRST_EXT_REX_SSE_REG, LAST_EXT_REX_SSE_REG): New.
8660 (reg_class, REG_CLASS_NAMES): Add EVEX_SSE_REGS, ALL_SSE_REGS.
8661 (SSE_CLASS_P, MAYBE_SSE_CLASS_P): Replace SSE_REGS with ALL_SSE_REGS.
8662 (REG_CLASS_CONTENTS): Add new registers.
8663 (SSE_REGNO_P, SSE_REGNO, HARD_REGNO_RENAME_OK): Support new registers.
8664 (EXT_REX_SSE_REGNO_P): New.
8665 (HI_REGISTER_NAMES): Add new registers.
8666 * config/i386/i386.md: Define constants for new registers.
8667 (mode): Add new 512-bit modes.
8668 (prefix): Support evex prefix.
8669 (isa): Support avx512f, noavx512f, fma_avx512f.
8670 (ssemodesuffix): Add new 512-bit modes.
8671 (movxi): New.
8672 (*movxi_internal_avx512f): Ditto.
8673 (*movdi_internal): Replace constraint "x" with the new constraint "v".
8674 Support MODE_XI.
8675 (*movsi_internal): Likewise.
8676 (*movdf_internal): Likewise.
8677 (*movsf_internal): Likewise.
8678 (*fop_<mode>_comm_sse): Replace constraint "x" with new constraint "v".
8679 (<code><mode>3): Likewise.
5339fc0c
UB
8680 * config/i386/i386.opt (mavx512f, mavx512pf, mavx512er, mavx512cd):
8681 New.
3f97cb0b
AI
8682 * config/i386/mmx.md (*mov<mode>_internal): Replace constraint "x"
8683 with the new constraint "v".
8684 * config/i386/sse.md (*mov<mode>_internal): Support new registers and
8685 modes.
8686 (<sse>_loadu<ssemodesuffix><avxsizesuffix>): Replace constraint "x"
8687 with the new constraint "v".
8688 (<sse2>_loaddqu<avxsizesuffix>): Likewise.
8689 (<sse2>_storedqu<avxsizesuffix>): Likewise.
8690 (*<plusminus_insn><mode>3): Likewise.
8691 (<sse>_vm<plusminus_insn><mode>3): Likewise.
8692 (*mul<mode>3): Likewise.
8693 (<sse>_vmmul<mode>3): Likewise.
8694 (<sse>_div<mode>3): Likewise.
8695 (<sse>_vmdiv<mode>3): Likewise.
8696 (<sse>_sqrt<mode>2): Likewise.
8697 (<sse>_vmsqrt<mode>2): Likewise.
8698 (*<code><mode>3_finite): Likewise.
8699 (*<code><mode>3) <smaxmin>: Likewise.
8700 (<sse>_vm<code><mode>3): Likewise.
8701 (*<code><mode>3) <any_logic>: Likewise.
8702 (*fma_fmadd_<mode>): Likewise.
8703 (*fma_fmsub_<mode>): Likewise.
8704 (*fma_fnmadd_<mode>): Likewise.
8705 (*fma_fnmsub_<mode>): Likewise.
8706 (*fma_fmaddsub_<mode>): Likewise.
8707 (*fma_fmsubadd_<mode>): Likewise.
8708 (*fmai_fmadd_<mode>): Likewise.
8709 (*fmai_fmsub_<mode>): Likewise.
8710 (*fmai_fnmadd_<mode>): Likewise.
8711 (*fmai_fnmsub_<mode>): Likewise.
8712 (sse_cvtsi2ss): Likewise.
8713 (sse_cvtsi2ssq): Likewise.
8714 (sse_cvtss2si): Likewise.
8715 (sse_cvtss2si_2): Likewise.
8716 (sse_cvtss2siq): Likewise.
8717 (sse_cvtss2siq_2): Likewise.
8718 (sse_cvttss2si): Likewise.
8719 (sse_cvtss2siq_2): Likewise.
8720 (float<sseintvecmodelower><mode>2): Likewise.
8721 (sse2_cvtsd2si_2): Likewise.
8722 (sse2_cvtsd2siq_2): Likewise.
8723 (*<plusminus_insn><mode>3): Likewise.
8724 (*<sse2_avx2>_<plusminus_insn><mode>3): Likewise.
8725 (*<sse4_1_avx2>_mul<mode>3): Likewise.
8726 (ashr<mode>3): Likewise.
8727 (<shift_insn><mode>3): Likewise.
8728 (avx2_<code><mode>3): Likewise.
8729 (*avx2_<code><mode>3): Likewise.
8730 (*andnot<mode>3): Likewise.
8731 (*<code><mode>3) <any_logic>: Likewise.
8732 (abs<mode>2): Likewise.
8733 (avx2_permvar<mode>): Likewise.
8734 (avx2_perm<mode>_1): Likewise.
8735 (*avx_vpermilp<mode>): Likewise.
8736 (avx_vpermilvar<mode>3): Likewise.
8737 (avx2_ashrv<mode>): Likewise.
8738 (avx2_<shift_insn>v<mode>): Likewise.
8739 * doc/invoke.texi: Document -mavx512f, -mavx512pf, -mavx512er,
8740 -mavx512cd.
8741 * doc/rtl.texi: Document XImode.
8742
dd5e8423
JL
87432013-08-21 Jeff Law <law@redhat.com>
8744
b9ebee5d
JL
8745 * tree-flow.h (register_jump_thread): Pass vector of edges
8746 instead of each important edge.
8747 * tree-ssa-threadedge.c (thread_across_edge): Build the jump
8748 thread path into a vector and pass that to register_jump_thread.
8749 * tree-ssa-threadupdate.c (register_jump_thread): Conver the
8750 passed in edge vector to the current 3-edge form.
8751
dd5e8423
JL
8752 Revert:
8753 2013-08-20 Alexey Makhalov <makhaloff@gmail.com>
8754
9bb6628e 8755 * dce.c (fini_dce): Call df_analyze again just in case
dd5e8423
JL
8756 delete_unmarked_insns removed anything.
8757
445dc8df
JR
87582013-08-21 Joern Rennecke <joern.rennecke@embecosm.com>
8759
8760 * reload.h (struct reg_equivs): Rename to ..
8761 (struct reg_equivs_s): .. this.
8762
e0df53dd
ML
87632013-08-20 Martin Liska <marxin.liska@gmail.com>
8764
8765 * ipa.c (ipa_profile_read_summary): Fix buffer overflow.
8766
e7d1d3eb
RO
87672013-08-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8768
5339fc0c 8769 * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Don't nest comment.
e7d1d3eb 8770
5562e26e
JL
87712013-08-21 Jeff Law <law@redhat.com>
8772
8773 * tree-vrp.c (simplify_stmt_for_jump_threading): Try to
8774 simplify assignments too. If the RHS collapses to a singleton
8775 range, then return the value for the range.
8776
c7ecdec6
KY
87772013-08-21 Kirill Yukhin <kirill.yukhin@intel.com>
8778
7a5911d3
UB
8779 * config/i386/sse.md (V16): Rename to...
8780 (VMOVE): this.
8781 (mov<mode>): Update iterator name.
8782 (*mov<mode>_internal): Ditto.
8783 (push<mode>1): Ditto.
8784 (movmisalign<mode>): Ditto.
c7ecdec6 8785
bfa3b50a
JH
87862013-08-20 Jan Hubicka <jh@suse.cz>
8787
8788 PR bootstrap/58186
8789 * cgraph.c (cgraph_add_edge_to_call_site_hash): Overwrite hash
8790 entry for direct edges.
8791 (cgraph_turn_edge_to_speculative): Fix setting of can_throw_external.
8792
6cd4d135
DM
87932013-08-20 David Malcolm <dmalcolm@redhat.com>
8794
8795 Revert my last two changes, r201865 and r201864:
8796
8797 Revert r201865:
8798 2013-08-20 David Malcolm <dmalcolm@redhat.com>
8799
8800 Make opt_pass and gcc::pass_manager be GC-managed, so that pass
8801 instances can own GC refs.
8802
8803 * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h.
8804 * context.c (gcc::context::gt_ggc_mx): Traverse passes_.
8805 (gcc::context::gt_pch_nx): Likewise.
8806 (gcc::context::gt_pch_nx): Likewise.
8807 * ggc.h (gt_ggc_mx <T>): New.
8808 (gt_pch_nx_with_op <T>): New.
8809 (gt_pch_nx <T>): New.
8810 * passes.c (opt_pass::gt_ggc_mx): New.
8811 (opt_pass::gt_pch_nx): New.
8812 (opt_pass::gt_pch_nx_with_op): New.
8813 (pass_manager::gt_ggc_mx): New.
8814 (pass_manager::gt_pch_nx): New.
8815 (pass_manager::gt_pch_nx_with_op): New.
8816 (pass_manager::operator new): Use
8817 ggc_internal_cleared_alloc_stat rather than xcalloc.
8818 * pass_manager.h (class pass_manager): Add GTY((user)) marking.
8819 (pass_manager::gt_ggc_mx): New.
8820 (pass_manager::gt_pch_nx): New.
8821 (pass_manager::gt_pch_nx_with_op): New.
8822 * tree-pass.h (class opt_pass): Add GTY((user)) marking.
8823 (opt_pass::operator new): New.
8824 (opt_pass::gt_ggc_mx): New.
8825 (opt_pass::gt_pch_nx): New.
8826 (opt_pass::gt_pch_nx_with_op): New.
8827
8828 Revert r201864:
8829 2013-08-20 David Malcolm <dmalcolm@redhat.com>
8830
8831 * Makefile.in (GTFILES): Add context.h.
8832 * context.c (gcc::context::operator new): New.
8833 (gcc::context::gt_ggc_mx): New.
8834 (gcc::context::gt_pch_nx): New.
8835 (gcc::context::gt_pch_nx): New.
8836 * context.h (gcc::context): Add GTY((user)) marking.
8837 (gcc::context::operator new): New.
8838 (gcc::context::gt_ggc_mx): New.
8839 (gcc::context::gt_pch_nx): New.
8840 (gcc::context::gt_pch_nx): New.
8841 (g): Add GTY marking.
8842 (gt_ggc_mx (gcc::context *)): New.
8843 (gt_pch_nx (gcc::context *)): New.
8844 (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op,
8845 void *cookie)): New.
8846 * gengtype.c (open_base_files) <ifiles>: Add context.h.
8847
a046136a
AM
88482013-08-20 Alexey Makhalov <makhaloff@gmail.com>
8849
8850 * dce.c (fini_dce): Call df_analyze again just in case
8851 delete_unmarked_insns removed anything.
8852
67598720
TJ
88532013-08-20 Teresa Johnson <tejohnson@google.com>
8854
8855 PR rtl-optimizations/57451
8856 * final.c (reemit_insn_block_notes): Prevent lexical blocks
8857 from crossing split section boundaries.
8858
f8693faf
MGD
88592013-08-20 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
8860
8861 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Remove definition.
8862 * config/arm/t-linux-eabi (MULTILIB_OPTIONS): Document association
8863 with MULTLIB_DEFAULTS.
8864
7d0b9a9c
NC
88652013-08-20 Nick Clifton <nickc@redhat.com>
8866
8867 * target.def (narrow_volatile_bitfield): Note that the default
8868 value is false, not !TARGET_STRICT_ALIGN.
8869 * doc/tm.texi: Regenerate.
8870
8edb8dc8
PC
88712013-08-20 Pavel Chupin <pavel.v.chupin@intel.com>
8872
8873 Fix LIB_SPEC for systems without libpthread.
8874
8875 * config/gnu-user.h: Introduce GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC.
8876 * config/arm/linux-eabi.h: Use GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC
8877 for Android.
8878 * config/i386/linux-common.h: Likewise.
8879 * config/mips/linux-common.h: Likewise.
8880
12211b99 88812013-08-20 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
d71ff3fa
ZZ
8882
8883 * tree-ssa-ccp.c (get_default_value): Remove redundant condition
8884 checks.
8885
e42c64cb
DM
88862013-08-20 David Malcolm <dmalcolm@redhat.com>
8887
8888 Make opt_pass and gcc::pass_manager be GC-managed, so that pass
8889 instances can own GC refs.
8890
8891 * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h.
8892 * context.c (gcc::context::gt_ggc_mx): Traverse passes_.
8893 (gcc::context::gt_pch_nx): Likewise.
8894 (gcc::context::gt_pch_nx): Likewise.
8895 * ggc.h (gt_ggc_mx <T>): New.
8896 (gt_pch_nx_with_op <T>): New.
8897 (gt_pch_nx <T>): New.
8898 * passes.c (opt_pass::gt_ggc_mx): New.
8899 (opt_pass::gt_pch_nx): New.
8900 (opt_pass::gt_pch_nx_with_op): New.
8901 (pass_manager::gt_ggc_mx): New.
8902 (pass_manager::gt_pch_nx): New.
8903 (pass_manager::gt_pch_nx_with_op): New.
8904 (pass_manager::operator new): Use
8905 ggc_internal_cleared_alloc_stat rather than xcalloc.
8906 * pass_manager.h (class pass_manager): Add GTY((user)) marking.
8907 (pass_manager::gt_ggc_mx): New.
8908 (pass_manager::gt_pch_nx): New.
8909 (pass_manager::gt_pch_nx_with_op): New.
8910 * tree-pass.h (class opt_pass): Add GTY((user)) marking.
8911 (opt_pass::operator new): New.
8912 (opt_pass::gt_ggc_mx): New.
8913 (opt_pass::gt_pch_nx): New.
8914 (opt_pass::gt_pch_nx_with_op): New.
8915
910c02a0
DM
89162013-08-20 David Malcolm <dmalcolm@redhat.com>
8917
8918 * Makefile.in (GTFILES): Add context.h.
8919 * context.c (gcc::context::operator new): New.
8920 (gcc::context::gt_ggc_mx): New.
8921 (gcc::context::gt_pch_nx): New.
8922 (gcc::context::gt_pch_nx): New.
8923 * context.h (gcc::context): Add GTY((user)) marking.
8924 (gcc::context::operator new): New.
8925 (gcc::context::gt_ggc_mx): New.
8926 (gcc::context::gt_pch_nx): New.
8927 (gcc::context::gt_pch_nx): New.
8928 (g): Add GTY marking.
8929 (gt_ggc_mx (gcc::context *)): New.
8930 (gt_pch_nx (gcc::context *)): New.
8931 (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op,
8932 void *cookie)): New.
8933 * gengtype.c (open_base_files) <ifiles>: Add context.h.
8934
af4b4236
AM
89352013-08-20 Alan Modra <amodra@gmail.com>
8936
8937 PR target/57865
8938 * config/rs6000/rs6000.c (rs6000_emit_prologue): Correct ool_adjust.
8939 (rs6000_emit_epilogue): Likewise.
8940
12211b99 89412013-08-19 Dehao Chen <dehao@google.com>
0d633222
DC
8942
8943 * value-prof.c (gimple_ic): Fix the bug of adding EH edge.
8944
e2323f5b
PB
89452013-08-19 Peter Bergner <bergner@vnet.ibm.com>
8946 Jakub Jelinek <jakub@redhat.com>
8947
8948 * builtins.def (BUILT_IN_FABSD32): New DFP ABS builtin.
8949 (BUILT_IN_FABSD64): Likewise.
8950 (BUILT_IN_FABSD128): Likewise.
8951 * builtins.c (expand_builtin): Add support for new DFP ABS builtins.
8952 (fold_builtin_1): Likewise.
5339fc0c
UB
8953 * config/rs6000/dfp.md (*negtd2_fpr): Handle non-overlapping
8954 destination and source operands.
e2323f5b
PB
8955 (*abstd2_fpr): Likewise.
8956 (*nabstd2_fpr): Likewise.
8957
cfbf3ee8
RS
89582013-08-19 Richard Sandiford <rdsandiford@googlemail.com>
8959
8960 * config/mips/mips.c (mips_adjust_insn_length): Add checks for
8961 JUMP_P and INSN_P.
8962
d3136aeb
AH
89632013-08-19 Aldy Hernandez <aldyh@redhat.com>
8964
8965 * doc/invoke.texi (-fcilkplus): Clarify that implementation is
8966 incomplete.
8967
d33d9e47
AI
89682013-08-19 Alexander Ivchenko <alexander.ivchenko@intel.com>
8969
8970 * target.def (TARGET_LIBC_HAS_FUNCTION): New target hook.
8971 * builtins.c (default_libc_has_function): New.
8972 (gnu_libc_has_function): Ditto.
8973 (no_c99_libc_has_function): Ditto.
8974 (expand_builtin_cexpi): Using new target hook TARGET_LIBC_HAS_FUNCTION
8975 instead of TARGET_HAS_SINCOS and TARGET_C99_FUNCTIONS.
8976 (fold_builtin_sincos): Likewise.
8977 (fold_builtin_cexp): Likewise.
8978 * builtins.def (DEF_C94_BUILTIN): Likewise.
8979 (DEF_C99_BUILTIN): Likewise.
8980 (DEF_C99_C90RES_BUILTIN): Likewise.
8981 (DEF_C99_COMPL_BUILTIN): New define. Change all complex c99 builtin
8982 definitions to using this define.
8983 * config/darwin-protos.h (darwin_libc_has_function): New.
5339fc0c 8984 * config/darwin.c (darwin_libc_has_function): Ditto.
d33d9e47
AI
8985 * config/alpha/linux.h: Remove TARGET_C99_FUNCTIONS and
8986 TARGET_HAS_SINCOS. Redefine TARGET_LIBC_HAS_FUNCTION.
8987 * config/darwin.h: Ditto.
8988 * config/elfos.h: Ditto.
8989 * config/freebsd.h: Ditto.
8990 * config/i386/cygming.h: Ditto.
8991 * config/i386/djgpp.h: Ditto.
8992 * config/i386/i386-interix.h: Ditto.
8993 * config/microblaze/microblaze.h: Ditto.
8994 * config/mmix/mmix.h: Ditto.
8995 * config/gnu-user.h: Ditto.
8996 * config/ia64/hpux.h: Ditto.
8997 * config/pa/pa-hpux.h: Ditto.
8998 * config/pdp11/pdp11.h: Ditto.
8999 * config/picochip/picochip.h: Ditto.
9000 * config/linux.h: Ditto.
9001 * config/netbsd.h: Ditto.
9002 * config/openbsd.h: Ditto.
9003 * config/rs6000/aix43.h: Ditto.
9004 * config/rs6000/aix51.h: Ditto.
9005 * config/rs6000/aix52.h: Ditto.
9006 * config/rs6000/aix53.h: Ditto.
9007 * config/rs6000/aix61.h: Ditto.
9008 * config/rs6000/darwin.h: Ditto.
9009 * config/rs6000/linux.h: Ditto.
9010 * config/rs6000/linux64.h: Ditto.
9011 * config/s390/tpf.h: Ditto.
9012 * config/sol2-10.h: Ditto.
9013 * config/sol2.h: Ditto.
9014 * config/vms/vms.h: Ditto.
9015 * config/vxworks.h: Ditto.
9016 * config/linux-android.c (linux_android_libc_has_function):
9017 New linux-specific implementation of TARGET_LIBC_HAS_FUNCTION.
9018 * config/linux-protos.h (linux_android_libc_has_function):
9019 New declaration.
9020 * config/i386/i386.c (ix86_libc_has_function): New.
9021 * config/i386/i386-protos.h
9022 (ix86_libc_has_function): New declaration.
9023 * config/i386/i386.md
9024 ("isinfxf2"): Change condition for TARGET_LIBC_HAS_FUNCTION.
9025 ("isinf<mode>2): Likewise.
9026 * convert.c (convert_to_integer): Using new target hook
9027 TARGET_LIBC_HAS_FUNCTION istead of TARGET_HAS_SINCOS and
9028 TARGET_C99_FUNCTIONS.
9029 * fortran/f95-lang.c (gfc_init_builtin_functions): Ditto.
9030 * tree-ssa-math-opts.c (execute_cse_sincos): Ditto.
9031 * coretypes.h (function_class): New enum for different
9032 classes of functions.
9033 * defaults.h: Remove TARGET_C99_FUNCTIONS and TARGET_HAS_SINCOS.
9034 * doc/tm.texi.in (TARGET_C99_FUNCTIONS): Remove documentation.
9035 (TARGET_HAS_SINCOS): Likewise.
9036 (TARGET_LIBC_HAS_FUNCTION): New.
9037 * doc/tm.texi: Regenerated.
9038 * targhooks.h (default_libc_has_function): New declaration.
9039 (no_c99_libc_has_function): Ditto.
9040 (gnu_libc_has_function): Ditto.
9041 * system.h: Add the poisoning of TARGET_C99_FUNCTIONS
9042 and TARGET_HAS_SINCOS.
9043
eefe9a99
JH
90442013-08-18 Jan Hubicka <jh@suse.cz>
9045
9046 * Makeifle-in (ipa-devirt.o): New.
9047 (GTFILES): Add ipa-utils.h and ipa-devirt.c
9048 * cgraphunit.c (decide_is_symbol_needed): Do not care about virtuals.
9049 (analyze_functions): Look into possible targets of polymorphic call.
9050 * dumpfile.c (dump_files): Add type-inheritance dump.
9051 * dumpfile.h (TDI_inheritance): New.
9052 * ipa-devirt.c: New file.
9053 * ipa-utils.h (odr_type_d): Forward declare.
9054 (odr_type): New type.
9055 (build_type_inheritance_graph): Declare.
9056 (possible_polymorphic_call_targets): Declare and introduce inline
9057 variant when only edge is pased.
9058 (dump_possible_polymorphic_call_targets): Likewise.
9059 * timevar.def (TV_IPA_INHERITANCE, TV_IPA_VIRTUAL_CALL): New.
9060 * tree.c (type_in_anonymous_namespace_p): Break out from ...
9061 (types_same_for_odr): ... here.
9062 * tree.h (type_in_anonymous_namespace_p): Declare.
9063
29b89442
JJ
90642013-08-18 Jakub Jelinek <jakub@redhat.com>
9065
9066 PR tree-optimization/58006
9067 * tree-parloops.c (take_address_of): Don't ICE if get_name
9068 returns NULL.
9069 (eliminate_local_variables_stmt): Remove clobber stmts.
9070
4f219961
EB
90712013-08-18 Eric Botcazou <ebotcazou@adacore.com>
9072
9073 * cgraphunit.c (handle_alias_pairs): Reset the alias flag after the
9074 error message is issued for an alias to undefined symbol.
9075
1d5755ef
JH
90762013-08-18 Jan Hubicka <jh@suse.cz>
9077
9078 * cgraph.c (cgraph_create_indirect_edge): Discover
9079 polymorphic calls and record basic info into indirect_info.
9080 * gimple-fold.c (gimple_fold_call): When doing BINFO based
9081 devirtualization, ignore objc function calls.
9082 * ipa-cp.c (initialize_node_lattices): Be ready for polymorphic
9083 call with no parm index info.
9084 * ipa-prop.c (ipa_analyze_call_uses): Likewise.
9085 * tree.c (virtual_method_call_p): New function.
9086 * tree.h (virtual_method_call_p): Declare.
9087
5945bebf
JH
90882013-08-16 Jan Hubicka <jh@suse.cz>
9089
9090 PR middle-end/58179
9091 * tree.c (obj_type_ref_class): Do not ICE on non-method calls.
9092
47fa5d23
DE
90932013-08-16 David Edelsohn <dje.gcc@gmail.com>
9094
9095 * config/rs6000/rs6000.md (rs6000_get_timebase_ppc32): Add length
9096 attribute.
9097
c74f54a0
DM
90982013-08-16 David Malcolm <dmalcolm@redhat.com>
9099
9100 * gengtype.c (type_for_name): Add special-case support for
9101 locating types within the "gcc::" namespace.
9102 (open_base_files): Emit a "using namespace gcc" directive.
9103
f758f299
MM
91042013-08-16 Michael Meissner <meissner@linux.vnet.ibm.com>
9105
9106 PR target/58160
9107 * config/rs6000/predicates.md (fusion_gpr_mem_load): Allow the
9108 memory rtx to contain ZERO_EXTEND and SIGN_EXTEND.
9109
9110 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Pass operands
9111 array instead of each individual operand as a separate argument.
9112 (emit_fusion_gpr_load): Likewise.
9113 (expand_fusion_gpr_load): Add new function declaration.
9114
9115 * config/rs6000/rs6000.c (fusion_gpr_load_p): Change the calling
9116 signature to have the operands passed as an array, instead of as
9117 separate arguments. Allow ZERO_EXTEND to be in the memory
9118 address, and also SIGN_EXTEND if -mpower8-fusion-sign. Do not
9119 depend on the register live/dead flags when peepholes are run.
9120 (expand_fusion_gpr_load): New function to be called from the
9121 peephole2 pass, to change the register that addis sets to be the
9122 target register.
9123 (emit_fusion_gpr_load): Change the calling signature to have the
9124 operands passed as an array, instead of as separate arguments.
9125 Allow ZERO_EXTEND to be in the memory address, and also
9126 SIGN_EXTEND if -mpower8-fusion-sign.
9127
9128 * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): Delete unused
9129 unspec enumeration.
9130 (power8 fusion peephole/peephole2): Rework the fusion peepholes to
9131 adjust the register addis loads up in the peephole2 pass. Do not
5339fc0c 9132 depend on the register live/dead state when the peephole pass is done.
f758f299 9133
158f4e4f
DM
91342013-08-16 David Malcolm <dmalcolm@redhat.com>
9135
9136 * gengtype.c (create_user_defined_type): Ensure that the kind
9137 is set to TYPE_USER_STRUCT, fixing a bug seen when an incomplete
9138 declaration is seen before the GTY((user)) marking.
9139
22f8cea5
BE
91402013-08-16 Bernd Edlinger <bernd.edlinger@hotmail.de>
9141
9142 PR target/58105
9143 * config/i386/i386.c (make_resolver_func): Set DECL_UNINLINABLE.
9144
c49bdb2e
JH
91452013-08-16 Jan Hubicka <jh@suse.cz>
9146
9147 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Add new
9148 arugment expected_type.
9149 (gimple_fold_call): Use it.
9150 * gimple.h (gimple_extract_devirt_binfo_from_cst): Update prototype.
9151 * ipa-cp.c (ipa_get_indirect_edge_target_1): Update.
22f8cea5 9152 * ipa-prop.c (ipa_analyze_virtual_call_uses): Use obj_type_ref_class.
c49bdb2e
JH
9153 (try_make_edge_direct_virtual_call): Likewise.
9154 * tree.c (obj_type_ref_class): New.
9155 * tree.h (obj_type_ref_class): Use it.
9156
4042dca9
GDR
91572013-08-16 Gabriel Dos Reis <gdr@integrable-solutions.net>
9158
9159 * sched-vis.c (rtl_slim_pp_initialized): Remove.
9160 (rtl_slim_pp): Likewise.
9161 (init_rtl_slim_pretty_print): Likewise.
9162 (dump_value_slim): Don't call it. Use local pretty printer.
9163 (dump_insn_slim): Likewise.
9164 (dump_rtl_slim): Likewise.
9165 (str_pattern_slim): Likewise.
9166 * tree-mudflap.c (mf_varname_tree): Use local pretty printer.
9167 Simplify.
9168
7a460594
JJ
91692013-08-16 Jakub Jelinek <jakub@redhat.com>
9170
639dc669
JJ
9171 PR tree-optimization/58164
9172 * gimple.c (walk_stmt_load_store_addr_ops): For visit_addr
9173 walk gimple_goto_dest of GIMPLE_GOTO.
9174
7a460594
JJ
9175 PR tree-optimization/58165
9176 * tree-call-cdce.c (shrink_wrap_one_built_in_call): If
9177 bi_call must be the last stmt in a bb, don't split_block, instead
9178 use fallthru edge from it and give up if there is none.
9179 Release conds vector when returning early.
9180
e3c02cc7
XDL
91812013-08-14 Xinliang David Li <davidxl@google.com>
9182
9183 * config/i386/i386.c (ix86_option_override_internal):
9184 Remove unused variable and field.
9185
6469da2c
BS
91862013-08-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9187
9188 PR target/57949
22f8cea5 9189 * doc/invoke.texi: Add documentation of mcompat-align-parm option.
6469da2c
BS
9190 * config/rs6000/rs6000.opt: Add mcompat-align-parm option.
9191 * config/rs6000/rs6000.c (rs6000_function_arg_boundary): For AIX
9192 and Linux, correct BLKmode alignment when 128-bit alignment is
9193 required and compatibility flag is not set.
22f8cea5
BE
9194 (rs6000_gimplify_va_arg): For AIX and Linux, honor specified alignment
9195 for zero-size arguments when compatibility flag is not set.
6469da2c 9196
4ca890e2
JJ
91972013-08-14 Jakub Jelinek <jakub@redhat.com>
9198
9199 PR tree-optimization/58145
9200 * tree-sra.c (build_ref_for_offset): If prev_base has
9201 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS, propagate it to MEM_REF.
9202
daec1759 92032013-08-14 Xinliang David Li <davidxl@google.com>
4ca890e2 9204
daec1759 9205 * config/i386/i386.c (ix86_option_override_internal):
e3c02cc7 9206 Fix uninitialized variable error.
daec1759 9207
3ad20bd4
XDL
92082013-08-14 Xinliang David Li <davidxl@google.com>
9209
9210 * config/i386/i386.opt: Define two new options.
9211 * config/i386/x86-tune.def: Add arch selector field in macros.
9212 * config/i386/i386.h: Adjust macro definition.
9213 * config/i386/i386.c (ix86_option_override_internal):
9214 Refactor the code.
9215 (parse_mtune_ctrl_str): New function.
9216 (set_ix86_tune_features): New function.
9217 (ix86_function_specific_restore): Call the new helper function.
9218
e839e2a9
AB
92192013-08-14 Andrey Belevantsev <abel@ispras.ru>
9220
9221 PR rtl-optimization/57662
9222 * sel-sched.c (code_motion_process_successors): When the current insn
9223 is removed after the recursive traversal, break from the loop.
9224 Add comments and debug printouts.
9225
27ed665f
JJ
92262013-08-14 Jakub Jelinek <jakub@redhat.com>
9227 Alexandre Oliva <aoliva@redhat.com>
9228
9229 PR target/58067
9230 * config/i386/i386.c (ix86_delegitimize_address): For CM_MEDIUM_PIC
9231 and CM_LARGE_PIC ix86_cmodel fall thru into the -m32 code, handle
9232 there also UNSPEC_PLTOFF.
9233
61c1a609
MP
92342013-08-14 Marek Polacek <polacek@redhat.com>
9235
9236 * ipa-inline-analysis.c (add_clause): Avoid shifting integer
9237 NUM_CONDITIONS bit positions.
9238
0e901c67
CC
92392013-08-13 Cary Coutant <ccoutant@google.com>
9240
9241 * dwarf2out.c (CHECKSUM_BLOCK): New macro.
9242 (attr_checksum): Hash vector contents instead of pointer.
9243 (attr_checksum_ordered): Likewise.
9244
061eff6d
UB
92452013-08-13 Uros Bizjak <ubizjak@gmail.com>
9246
9247 * config/i386/sse.md (*sse2_maskmovdqu): Emit addr32 prefix
9248 when Pmode != word_mode. Add length_address attribute.
9249 (sse3_monitor_<mode>): Merge from sse3_monitor and
9250 sse3_monitor64_<mode> insn patterns. Emit addr32 prefix when
9251 Pmode != word_mode. Update insn length attribute.
9252 * config/i386/i386.c (ix86_option_override_internal): Update
9253 ix86_gen_monitor selection for merged sse3_monitor insn.
9254
8ec9249b
JB
92552013-08-13 Julian Brown <julian@codesourcery.com>
9256
9257 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
9258 perform invalid legitimization on greater-than-word-size modes for
9259 TARGET_E500_DOUBLE.
9260
761a8eb7
VM
92612013-08-13 Vladimir Makarov <vmakarov@redhat.com>
9262
9263 * ira.c (setup_class_translate_array): Use aclass instead of cl
9264 for classes not fully covered by allocno classes.
9265
99c2bd54
JJ
92662013-08-13 Jakub Jelinek <jakub@redhat.com>
9267
4029a5e0
JJ
9268 PR tree-optimization/57661
9269 * tree-inline.h (struct copy_body_data): Add blocks_to_copy field.
9270 * tree-inline.c (tree_function_versioning): Initialize it.
9271 (remap_gimple_stmt): Return GIMPLE_NOP for MEM_REF lhs clobber stmts
9272 if id->blocks_to_copy and MEM_REF's SSA_NAME is defined in a block
9273 that is not being copied.
9274
99c2bd54
JJ
9275 PR sanitizer/56417
9276 * asan.c (instrument_strlen_call): Fix typo in comment.
9277 Use char * type even for the lhs of POINTER_PLUS_EXPR.
9278
b5f8f063
SE
92792013-08-13 Steve Ellcey <sellcey@mips.com>
9280
9281 * config/mips/mips.md (prefetch): Use lw instead of ld on
9282 loongson in 32bit mode.
9283
4de80584
NC
92842013-08-13 Nick Clifton <nickc@redhat.com>
9285
9286 * config.gcc: (avr-linux): Allow for tmake_file not being empty.
9287
09ce3660
JH
92882013-08-13 Jan Hubicka <jh@suse.cz>
9289
9290 * cgraph.c (cgraph_turn_edge_to_speculative): Return newly
9291 introduced edge; fix typo in sanity check.
9292 (cgraph_resolve_speculation): Export; improve diagnostic.
9293 (cgraph_redirect_edge_call_stmt_to_callee): Better diagnostic; cancel
9294 speculation at type mismatch.
9295 * cgraph.h (cgraph_turn_edge_to_speculative): Update.
9296 (cgraph_resolve_speculation): Declare.
9297 (symtab_can_be_discarded): New function.
9298 * value-prof.c (gimple_ic_transform): Remove actual transform code.
9299 * ipa-inline-transform.c (speculation_removed): New global var.
9300 (clone_inlined_nodes): See if speculation can be removed.
9301 (inline_call): If speculations was removed, we growths may not match.
9302 * ipa-inline.c (can_inline_edge_p): Add DISREGARD_LIMITS parameter.
9303 (speculation_useful_p): New function.
9304 (resolve_noninline_speculation): New function.
9305 (inline_small_functions): Resolve useless speculations.
9306 * ipa-inline.h (speculation_useful_p): Declare
9307 * ipa.c (can_replace_by_local_alias): Simplify.
9308 (ipa_profile): Produce speculative calls in non-lto, too;
9309 add simple cost model; produce local aliases.
9310
f971dc24
DM
93112013-08-13 David Malcolm <dmalcolm@redhat.com>
9312
9313 * config/i386/t-i386 (i386.o): Rename stray PIPELINE_H to
061eff6d 9314 PASS_MANAGER_H.
f971dc24 9315
2e507b9a
PC
93162013-08-12 Paolo Carlini <paolo.carlini@oracle.com>
9317
9318 * config/i386/i386.c (ix86_function_versions): Use error + inform.
9319
c97fd4b8
UB
93202013-08-12 Uros Bizjak <ubizjak@gmail.com>
9321
9322 * config/i386/i386.md (floatunssi<mode>2 expand): Use MODEF mode
9323 iterator instead of X87MODEF.
9324
93252013-08-12 Perez Read <netfirewall@gmail.com>
9326
9327 PR target/58132
9328 * config/i386/i386.md (*movabs<mode>_1): Add <ptrsize> PTR before
9329 operand 0 for intel asm alternative.
9330 (*movabs<mode>_2): Ditto for operand 1.
9331
f4f4204c
JG
93322013-08-12 James Greenhalgh <james.greenhalgh@arm.com>
9333
9334 * config/aarch64/arm_none.h
9335 (vdup<bhsd>_lane_<su><8,16,32,64>): Fix macro call.
9336
133b1a8e
NC
93372013-08-12 Nick Clifton <nickc@redhat.com>
9338
9339 * config.gcc (m32r-linux): Allow for tmake_file not being empty.
9340
15dd8b3a
YR
93412013-08-12 Yuri Rumyantsev <ysrumyan@gmail.com>
9342
9343 * config/i386/i386.md (floatunssi<mode>2 expand): Add new
9344 expand for QI/HImode operand to produce more effictive code for
9345 unsigned char(short) --> float(double) conversion.
9346
94109a6a
AM
93472013-08-12 Alexander Monakov <amonakov@ispras.ru>
9348
9349 * doc/invoke.texi: Mention that -ftls-model does not force the final
9350 model.
9351
4e115102
MP
93522013-08-12 Marek Polacek <polacek@redhat.com>
9353 Marc Glisse <marc.glisse@inria.fr>
9354
9355 PR tree-optimization/57980
9356 * tree-tailcall.c (process_assignment): Call build_minus_one_cst
9357 when creating -1 constant.
9358
748d71f3
JH
93592013-08-10 Jan Hubicka <jh@suse.cz>
9360
1f97e193 9361 Workaround binutils PR14342.
748d71f3
JH
9362 * tree-profile.c (init_ic_make_global_vars): Add LTO path.
9363 (gimple_init_edge_profiler): Likewise.
9364 (gimple_gen_ic_func_profiler): Likewise.
9365
5979aa54
JH
93662013-08-09 Jan Hubicka <jh@suse.cz>
9367
9368 * cgraph.c (cgraph_create_edge_1): Clear speculative flag.
9369
ad83025e
XDL
93702013-08-09 Xinliang David Li <davidxl@google.com>
9371
9372 * config/i386/stringop.def: New file.
9373 * config/i386/stringop.opt: New file.
9374 * config/i386/i386-opts.h: Include stringopt.def.
9375 * config/i386/i386.opt: Include stringopt.opt.
9376 * config/i386/i386.c (ix86_option_override_internal):
c97fd4b8 9377 Override default size based stringop inline strategies with options.
ad83025e
XDL
9378 * config/i386/i386.c (ix86_parse_stringop_strategy_string):
9379 New function.
9380
e59df5fd
JH
93812013-08-09 Jan Hubicka <jh@suse.cz>
9382
c97fd4b8 9383 * ipa-ref.c (ipa_clear_stmts_in_references): Clear lto_stmt_uid, too.
e59df5fd 9384
634ab819
JH
93852013-08-09 Jan Hubicka <jh@suse.cz>
9386
9387 * cgraph.c (cgraph_resolve_speculation): Cut frequency to
9388 CGRAPH_FREQ_MAX.
9389 (dump_cgraph_node): Dump profile-id.
9390 * cgraph.h (cgraph_indirect_call_info): Add common_target_id
9391 and common_target_probability.
9392 * lto-cgraph.c (lto_output_edge): Stream common targets.
9393 (lto_output_node): Stream profile ids.
9394 (input_node): Stream profile ids.
9395 (input_edge): Stream common targets.
9396 * lto-streamer-in.c (fixup_call_stmt_edges_1): Fix formatting.
9397 * ipa.c: Include value-prof.h
9398 (ipa_profile_generate_summary): Turn indirect call statement histograms
9399 into common targets.
9400 (ipa_profile): Turn common targets into speculative edges.
9401
2fa3d31b
JH
94022013-08-09 Jan Hubicka <jh@suse.cz>
9403
9404 * cgraph.h (cgraph_node): Add profile_id.
9405 * value-prof.c (cgraph_node_map): Turn into pointer_map.
c97fd4b8 9406 (init_node_map): Rewrite to handle hashes increas of incremental IDs.
2fa3d31b
JH
9407 (del_node_map): Update.
9408 (find_func_by_funcdef_no): Replace by ...
9409 (find_func_by_profile_id): ... this one.
9410 (gimple_ic_transform): Do not remove useful histograms when
9411 speculation is not done; dump info when indirect call removal
9412 can happen at LTO.
9413 * value-prof.h (find_func_by_profile_id, gimple_ic): Declare.
9414 * gcov-io.h (__gcov_indirect_call_profiler): Replace by ...
9415 (__gcov_indirect_call_profiler_v2): .. this one.
9416 * profile.h (init_node_map): Update.
9417 * coverage.c (coverage_compute_profile_id): New function.
9418 * coverage.h (coverage_compute_profile_id): Declare.
9419 * tree-profile.c (init_ic_make_global_vars): Make
9420 __gcov_indirect_call_callee and __gcov_indirect_call_counters global.
9421 (gimple_init_edge_profiler): Update prototype of
9422 __gcov_indirect_call_profiler.
9423 (gimple_gen_ic_func_profiler): Simplify.
9424 (tree_profiling): Use init_node_map
9425
042ae7d2
JH
94262013-08-09 Jan Hubicka <jh@suse.cz>
9427
c97fd4b8
UB
9428 * cgraphbuild.c (cgraph_rebuild_references): Rebuild only
9429 non-speculative refs.
042ae7d2
JH
9430 * cgraph.c (cgraph_update_edge_in_call_site_hash): New function.
9431 (cgraph_add_edge_to_call_site_hash): Deal with speculative calls.
9432 (cgraph_set_call_stmt): Likewise.
9433 (cgraph_create_edge_1): Fix release checking compilatoin;
9434 clear lto_stmt_uid.
9435 (cgraph_free_edge): Free indirect info.
9436 (cgraph_turn_edge_to_speculative): New function.
9437 (cgraph_speculative_call_info): New function.
9438 (cgraph_make_edge_direct): Return direct edge; handle speculation.
c97fd4b8 9439 (cgraph_redirect_edge_call_stmt_to_callee): Expand speculative edges.
042ae7d2
JH
9440 (dump_cgraph_node): Dump speculation.
9441 (verify_edge_count_and_frequency): Accept speculative edges.
9442 (verify_edge_corresponds_to_fndecl): Handle partitioned cgraph.
9443 (verify_cgraph_node): Handle speculation.
9444 * cgraph.h (cgraph_edge): Add SPECULATIVE flag.
9445 (cgraph_set_call_stmt): Update prototype.
9446 (cgraph_make_edge_direct): Update prototype.
9447 (cgraph_speculative_call_info): Declare.
9448 * ipa-cp.c (ipcp_discover_new_direct_edges): Be ready for edge
9449 to change; update call of ipa_find_references.
9450 * ipa-ref.c (ipa_record_reference): Fix return value; clear
9451 lto_stmt_uid and speculative flags.
9452 (ipa_dump_references): Dump speculation.
9453 (ipa_clone_references): Clone speculative flag.
9454 (ipa_clone_referring): Likewise.
9455 (ipa_clone_ref): New function.
9456 (ipa_find_reference): Look into lto_stmt_uids
9457 (ipa_clear_stmts_in_references): Do not clear speculative calls.
9458 * ipa-ref.h (ipa_ref): Add lto_stmt_uid and speculative flags.
9459 (ipa_find_reference): Update declaration.
9460 (ipa_clone_ref): Declare.
9461 * lto-cgraph.c (lto_output_edge): Make lto_stmt_uids start from 0;
9462 stream speculative flag.
9463 (lto_output_ref): Stream statements uids and speculation.
9464 (input_ref): Likewise.
9465 (input_edge): Stream speuclation.
9466 * cgraphclones.c (cgraph_clone_edge): Clone speculation.
9467 (cgraph_set_call_stmt_including_clones): Handle speculation.
9468 * ipa-inline.c (heap_edge_removal_hook): New function.
9469 (inline_small_functions): Register it.
9470 * lto-streamer-in.c (fixup_call_stmt_edges_1): Bounds checking;
9471 also initialize refs.
9472 * ipa-prop.c (ipa_make_edge_direct_to_target): Be ready for
9473 edge to change.
9474 (try_make_edge_direct_simple_call): Likewise.
9475 (try_make_edge_direct_simple_call): Likewise.
9476 (update_indirect_edges_after_inlining): Likewise.
9477 (remove_described_reference): Look proper lto_stmt_uid.
9478 (propagate_controlled_uses): Likewise.
9479 (propagate_controlled_uses): Liekwise.
9480 * tree-inline.c (copy_bb): Copy speculative edges.
9481 (redirect_all_calls): New function.
c97fd4b8
UB
9482 (copy_cfg_body): Do redirection after loop info is updated.
9483 (delete_unreachable_blocks_update_callgraph): Updadte speculation.
042ae7d2 9484
aa1e10cc
JH
94852013-08-09 Jan Hubicka <jh@suse.cz>
9486
9487 * lto-streamer-out.c (output_function): Renumber PHIs.
9488 * lto-streamer-in.c (input_function): Likewise.
9489
66adb8eb
JG
94902013-08-09 James Greenhalgh <james.greenhalgh@arm.com>
9491
9492 * config/aarch64/aarch64-simd-builtins.def (get_lane_signed): Remove.
9493 (get_lane_unsigned): Likewise.
9494 (dup_lane_scalar): Likewise.
9495 (get_lane): enable for VALL.
9496 * config/aarch64/aarch64-simd.md
9497 (aarch64_dup_lane_scalar<mode>): Remove.
9498 (aarch64_get_lane_signed<mode>): Likewise.
9499 (aarch64_get_lane_unsigned<mode>): Likewise.
9500 (aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): New.
9501 (aarch64_get_lane_zero_extendsi<mode>): Likewise.
9502 (aarch64_get_lane<mode>): Enable for all vector modes.
9503 (aarch64_get_lanedi): Remove misleading constraints.
9504 * config/aarch64/arm_neon.h
9505 (__aarch64_vget_lane_any): Define.
9506 (__aarch64_vget<q>_lane_<fpsu><8,16,32,64>): Likewise.
9507 (vget<q>_lane_<fpsu><8,16,32,64>): Use __aarch64_vget_lane macros.
9508 (vdup<bhsd>_lane_<su><8,16,32,64>): Likewise.
9509 * config/aarch64/iterators.md (VDQQH): New.
9510 (VDQQHS): Likewise.
9511 (vwcore): Likewise.
9512
1f65ae7a
EB
95132013-08-09 Eric Botcazou <ebotcazou@adacore.com>
9514
9515 * configure.ac: Add GAS check for LEON instructions on SPARC.
9516 * configure: Regenerate.
9517 * config.in: Likewise.
9518 * config.gcc (with_cpu): Remove sparc-leon*-* and deal with LEON in the
9519 sparc*-*-* block.
9520 * config/sparc/sparc.opt (LEON, LEON3): New masks.
9521 * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Set to AS_LEON_FLAG
9522 for LEON or LEON3.
9523 (ASM_CPU_SPEC): Pass AS_LEON_FLAG if -mcpu=leon or -mcpu=leon3.
9524 (AS_LEON_FLAG): New macro.
9525 * config/sparc/sparc.c (sparc_option_override): Set MASK_LEON for leon
9526 and MASK_LEON3 for leon3 and unset them if HAVE_AS_LEON is not defined.
9527 Deal with LEON and LEON3 for the memory model.
23a6cb78 9528 * config/sparc/sync.md (atomic_compare_and_swap<mode>): Enable if LEON3
1f65ae7a
EB
9529 (atomic_compare_and_swap<mode>_1): Likewise.
9530 (*atomic_compare_and_swap<mode>_1): Likewise.
9531
ff522f7f
ZC
95322013-08-09 Zhenqiang Chen <zhenqiang.chen@linaro.org>
9533
9534 * config/arm/neon.md (vcond): Fix floating-point vector
9535 comparisons against 0.
9536
cb1cca12
VM
95372013-08-08 Vladimir Makarov <vmakarov@redhat.com>
9538
9539 * lra-constraints.c (emit_spill_move): Remove assert.
9540 (process_alt_operands): Add more debugging
9541 output. Increase reject for spilling into memory. Decrease
9542 reject for reloading scratch.
9543 (split_reg): Use HARD_REGNO_CALLER_SAVE_MODE.
9544
a3719e31
SE
95452013-08-08 Steve Ellcey <sellcey@mips.com>
9546
9547 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add nan2008.
9548 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Make mips16 and
9549 micromips incompatible. Add nan2008.
9550 (MULTILIB_DIRNAMES): Add nan2008.
9551 (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
9552 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Make mips16
9553 and micromips incompatible. Add nan2008.
9554 (MULTILIB_DIRNAMES): Add nan2008.
9555 (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
9556
f40423e2
RS
95572013-08-08 Richard Sandiford <rdsandiford@googlemail.com>
9558
9559 PR rtl-optimization/58079
9560 * combine.c (combine_simplify_rtx): Avoid using SUBST if
9561 simplify_comparison has widened a comparison with an integer.
9562
869b9125
KT
95632013-08-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9564
9565 * config/arm/neon.md (movmisalign<mode>): Disable when we
9566 don't allow unaligned accesses.
9567 (*movmisalign<mode>_neon_store): Likewise.
9568 (*movmisalign<mode>_neon_load): Likewise.
9569 (*movmisalign<mode>_neon_store): Likewise.
9570 (*movmisalign<mode>_neon_load): Likewise.
9571
71cafea9
JH
95722013-08-08 Jan Hubicka <jh@suse.cz>
9573
9574 * cgraphbuild.c (build_cgraph_edges): Do not walk into debugs.
9575 (make_pass_rebuild_cgraph_edges): Also clear references.
9576 * cgraph.c (verify_cgraph_node): Add basic ipa-ref verifier.
9577 * ipa-inline-transform.c (inline_transform): Remove all references
9578 after inlining.
c97fd4b8
UB
9579 * cgraphunit.c (expand_function): Remove all references after
9580 expansion.
71cafea9
JH
9581 * ipa-ref.c (ipa_ref_has_aliases_p): Fix formatting.
9582 (ipa_find_reference): Rewrite to iterator.
9583 (remove_stmt_references): Likewise.
9584 (ipa_clear_stmts_in_references): New function.
9585 * ipa-ref.h (ipa_clear_stmts_in_references): Declare.
03b0ee0a
UB
9586 * cgraphclones.c (cgraph_materialize_all_clones): Remove or
9587 clear references.
71cafea9
JH
9588 * ipa-split.c (split_function): Remove references in split function.
9589
27d2e612
RE
95902013-08-08 Richard Earnshaw <rearnsha@arm.com>
9591
9592 PR target/57431
1f65ae7a 9593 * config/arm/arm/neon.md (neon_vld1_dupdi): New expand pattern.
27d2e612
RE
9594 (neon_vld1_dup<mode> VD iterator): Iterate over VD not VDX.
9595
5efc661c
RE
95962013-08-08 Richard Earnshaw <rearnsha@arm.com>
9597
9598 PR target/56979
1f65ae7a 9599 * config/arm/arm.c (aapcs_vfp_allocate): Decompose the argument if the
5efc661c
RE
9600 suggested mode for the assignment isn't compatible with the
9601 registers required.
9602
f276d31d
BE
96032013-08-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
9604
9605 PR target/58065
9606 * config/arm/arm.h (MALLOC_ABI_ALIGNMENT): Define.
9607
4b8bc035
XDL
96082013-08-07 Xinliang David Li <davidxl@google.com>
9609
9610 * config/i386/i386.opt: New option -mtune-ctrl=.
9611 * config/i386/x86-tune.def: New file.
9612 * config/i386/i386.h: include x86-tune.def.
9613 * config/i386/i386.c (ix86_option_override_internal):
9614 Parsing -mtune-ctrl= option and set tune features.
9615
12211b99 96162013-08-07 Oleg Endo <olegendo@gcc.gnu.org>
a5b38740
OE
9617
9618 PR other/12081
03b0ee0a 9619 * config/rs6000/rs6000.c (gen_2arg_fn_t): Remove typedef.
a5b38740
OE
9620 (rs6000_emit_swdiv, rs6000_emit_swrsqrt): Don't cast result of GEN_FCN
9621 to gen_2arg_fn_t.
9622
5cf6635b
EB
96232013-08-07 Eric Botcazou <ebotcazou@adacore.com>
9624
9625 * rtl.h (update_alignments): Declare.
9626 * final.c (grow_label_align): New function extracted from...
9627 (shorten_branches): ...here. Call it.
9628 (update_alignments): New function.
9629 * reorg.c (sibling_labels): New variable.
9630 (get_label_before): Add SIBLING parameter. If it is non-zero, push
9631 the new label along with it onto the sibling_labels vector.
9632 (fill_simple_delay_slots): Adjust call to get_label_before.
9633 (fill_slots_from_thread): Likewise.
9634 (relax_delay_slots): Likewise.
9635 (make_return_insns): Likewise.
9636 (dbr_schedule): Invoke update_alignment on the sibling_labels vector.
9637
3c8ca1ab
EB
96382013-08-07 Eric Botcazou <ebotcazou@adacore.com>
9639
9640 * diagnostic.c (diagnostic_classify_diagnostic): Accept zero index and
9641 document its semantics.
9642 (diagnostic_report_diagnostic): Adjust accordingly.
9643
5ee5b32c
DM
96442013-08-07 David Malcolm <dmalcolm@redhat.com>
9645
03b0ee0a 9646 * config/sparc/sparc.c (insert_pass_work_around_errata): Move into...
5ee5b32c
DM
9647 (sparc_option_override): ...and port to new C++ pass API.
9648 * config/sparc/t-sparc (sparc.o): Add dep on CONTEXT_H
9649
abd566fa
PB
96502013-08-07 Peter Bergner <bergner@vnet.ibm.com>
9651
9652 * config/rs6000/rs6000.c (htm_expand_builtin) <case 0>: Remove.
9653
2077db1b
CT
96542013-08-06 Caroline Tice <cmtice@google.com>
9655
9656 * gcc.c (VTABLE_VERIFICATION_SPEC): New definition.
9657 (LINK_COMMAND_SPEC): Add VTABLE_VERIFICATION_SPEC.
9658 * tree-pass.h: Add pass_vtable_verify.
9659 * varasm.c (assemble_variable): Add code to properly set the comdat
9660 section and name for the .vtable_map_vars section.
9661 (assemble_vtyv_preinit_initializer): New function.
9662 (default_sectin_type_flags): Make sure .vtable_map_vars section has
9663 LINK_ONCE flag.
9664 * output.h: Add function decl for assemble_vtv_preinit_initializer.
9665 * vtable-verify.c: New file.
9666 * vtable-verify.h: New file.
9667 * flag-types.h (enum vtv_priority): Defintions for flag_vtable_verify
9668 initialiation levels.
9669 * timevar.def (TV_VTABLE_VERIFICATION): New definition.
9670 * passes.def: Insert pass_vtable_verify.
9671 * aclocal.m4: Reorder includes.
9672 * doc/invoke.texi: Document the -fvtable-verify=, -fvtv-debug, and
9673 -fvtv-counts options.
9674 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add vtv_start*.o,
9675 as appropriate, if -fvtable-verify=... is used.
9676 (GNU_USER_TARGET_ENDFILE_SPEC): Add vtv_end*.o as appropriate, if
9677 -fvtable-verify=... is used.
9678 * Makefile.in (OBJS): Add vtable-verify.o to list.
9679 (vtable-verify.o): Add new build rule.
9680 (GTFILES): Add vtable-verify.c to list.
9681 * common.opt (fvtable-verify=): New flag.
9682 (vtv_priority): Values for fvtable-verify= flag.
9683 (fvtv-counts): New flag.
9684 (fvtv-debug): New flag.
9685 * tree.h (save_vtable_map_decl): New extern function decl.
9686
03085d1c
DM
96872013-08-07 David Malcolm <dmalcolm@redhat.com>
9688
9689 * config/rl78/rl78.c (rl78_devirt_pass): Convert from a struct to...
9690 (pass_rl78_devirt): ...new subclass of rtl_opt_pass along with...
9691 (pass_data_rl78_devirt): ...new pass_data instance and...
9692 (make_pass_rl78_devirt): ...new function.
9693 (rl78_asm_file_start): Port pass registration to new C++ API.
9694
05555c4a
DM
96952013-08-07 David Malcolm <dmalcolm@redhat.com>
9696
9697 * coretypes.h (rtl_opt_pass): Add.
9698 (gcc::context): Add.
9699 * config/epiphany/epiphany.c (pass_mode_switch_use): New.
9700 (epiphany_init): Port to new C++ pass API.
9701 (epiphany_optimize_mode_switching): Likewise.
9702 * pass_manager.h (pass_manager::get_pass_split_all_insns): New.
9703 (pass_manager::get_pass_mode_switching): New.
9704 (pass_manager::get_pass_peephole2): New.
9705 * mode-switching.c (pass_mode_switching): Add clone method.
9706 * recog.c (pass_peephole2): Add clone method.
9707 (pass_split_all_insns): Add clone method.
9708
c5a12e26
DM
97092013-08-06 David Malcolm <dmalcolm@redhat.com>
9710
03b0ee0a
UB
9711 * config/mips/mips.c (insert_pass_mips_machine_reorg2): Move into...
9712 (mips_option_override): ...here, porting to new C++ API for passes.
c5a12e26 9713
a2e2a668
JH
97142013-08-06 Jan Hubicka <jh@suse.cz>
9715
9716 * cgraph.c (cgraph_get_body): New function based on lto.c
9717 implementation.
9718 * cgraph.h (cgraph_get_body): Declare.
03b0ee0a
UB
9719 * cgraphclones.c (cgraph_create_virtual_clone): Commonize WPA and
9720 LTO paths.
a2e2a668
JH
9721 * cgraphunit.c (expand_function): Get body prior expanding.
9722 * ipa.c (function_and_variable_visibility): Use gimple_has_body_p test.
03b0ee0a
UB
9723 * lto-cgraph.c (lto_output_node): Do not stream bodies we don't
9724 really need.
a2e2a668
JH
9725 * passes.c (do_per_function_toporder): Get body.
9726 * tree-inline.c (expand_call_inline): Get body prior inlining it.
9727 * tree-ssa-structalias.c (ipa_pta_execute): Get body; skip clones.
9728
15682f24
MJ
97292013-08-06 Martin Jambor <mjambor@suse.cz>
9730
9731 PR fortran/57987
9732 * cgraphunit.c (cgraph_finalize_function): Assert that nested function
9733 is not re-finalized. Rename second parameter to no_collect.
9734
78f6dd68
MJ
97352013-08-06 Martin Jambor <mjambor@suse.cz>
9736
9737 PR middle-end/58041
9738 * gimple-ssa-strength-reduction.c (replace_ref): Make sure built
9739 MEM_REF has proper alignment information.
9740
12211b99 97412013-08-05 Oleg Endo <olegendo@gcc.gnu.org>
eb923e54
OE
9742
9743 PR other/12081
9744 * recog.h (rtx (*insn_gen_fn) (rtx, ...)): Replace typedef with new
9745 class insn_gen_fn.
9746 * expr.c (move_by_pieces_1, store_by_pieces_2): Replace argument
9747 rtx (*) (rtx, ...) with insn_gen_fn.
9748 * genoutput.c (output_insn_data): Cast gen_? function pointers to
9749 insn_gen_fn::stored_funcptr. Add initializer braces.
9750
8ac69a6c
DM
97512013-08-05 David Malcolm <dmalcolm@redhat.com>
9752
9753 Rewrite how instances of passes are cloned to remove assumptions
9754 about their sizes (thus allowing pass subclasses to have
9755 additional data fields, albeit non-GC-managed ones at this point).
9756
9757 * passes.c (make_pass_instance): Now that passes have clone
9758 methods, rewrite this function to eliminate XNEW and memcpy
9759 calls that used hardcoded sizes. Since this function no longer
9760 creates pass instances, rename it to...
03b0ee0a
UB
9761 (add_pass_instance): ...this. Document the old way that passes were
9762 numbered and flagged, and rework this function to continue using it.
8ac69a6c
DM
9763 (next_pass_1): Add an initial_pass argument for use by
9764 add_pass_instance.
9765 (position_pass): When adding multiple instances of a pass, use
9766 the pass's clone method, rather than relying on the XNEW/memcpy
9767 within the former make_pass_instance (now add_pass_instance).
03b0ee0a
UB
9768 (pass_manager::pass_manager): When invoking next_pass_1, also supply
9769 the initial instance of the current pass within the pass manager.
8ac69a6c 9770
27a4cd48
DM
97712013-08-05 David Malcolm <dmalcolm@redhat.com>
9772
9773 This is the automated part of the conversion of passes from C
9774 structs to C++ classes.
9775
9776 Patch autogenerated by refactor_passes.py from
9777 https://github.com/davidmalcolm/gcc-refactoring-scripts
9778 revision 03fe39476a4c4ea450b49e087cfa817b5f92021e
9779
9780 * asan.c (pass_asan): Convert from a global struct to a subclass of
9781 gimple_opt_pass along with...
9782 (pass_data_asan): ...new pass_data instance and...
9783 (make_pass_asan): ...new function.
9784 (pass_asan_O0): Convert from a global struct to a subclass of
9785 gimple_opt_pass along with...
9786 (pass_data_asan_O0): ...new pass_data instance and...
9787 (make_pass_asan_O0): ...new function.
9788 * auto-inc-dec.c (pass_inc_dec): Convert from a global struct to a
9789 subclass of rtl_opt_pass along with...
9790 (pass_data_inc_dec): ...new pass_data instance and...
9791 (make_pass_inc_dec): ...new function.
9792 * bb-reorder.c (pass_reorder_blocks): Convert from a global struct to
9793 a subclass of rtl_opt_pass along with...
9794 (pass_data_reorder_blocks): ...new pass_data instance and...
9795 (make_pass_reorder_blocks): ...new function.
9796 (pass_duplicate_computed_gotos): Convert from a global struct to a
9797 subclass of rtl_opt_pass along with...
9798 (pass_data_duplicate_computed_gotos): ...new pass_data instance and...
9799 (make_pass_duplicate_computed_gotos): ...new function.
9800 (pass_partition_blocks): Convert from a global struct to a subclass of
9801 rtl_opt_pass along with...
9802 (pass_data_partition_blocks): ...new pass_data instance and...
9803 (make_pass_partition_blocks): ...new function.
9804 * bt-load.c (pass_branch_target_load_optimize1): Convert from a global
9805 struct to a subclass of rtl_opt_pass along with...
9806 (pass_data_branch_target_load_optimize1): ...new pass_data instance
9807 and...
9808 (make_pass_branch_target_load_optimize1): ...new function.
9809 (pass_branch_target_load_optimize2): Convert from a global struct to a
9810 subclass of rtl_opt_pass along with...
9811 (pass_data_branch_target_load_optimize2): ...new pass_data instance
9812 and...
9813 (make_pass_branch_target_load_optimize2): ...new function.
9814 * cfgcleanup.c (pass_jump): Convert from a global struct to a subclass
9815 of rtl_opt_pass along with...
9816 (pass_data_jump): ...new pass_data instance and...
9817 (make_pass_jump): ...new function.
9818 (pass_jump2): Convert from a global struct to a subclass of
9819 rtl_opt_pass along with...
9820 (pass_data_jump2): ...new pass_data instance and...
9821 (make_pass_jump2): ...new function.
9822 * cfgexpand.c (pass_expand): Convert from a global struct to a
9823 subclass of rtl_opt_pass along with...
9824 (pass_data_expand): ...new pass_data instance and...
9825 (make_pass_expand): ...new function.
9826 * cfgrtl.c (pass_free_cfg): Convert from a global struct to a subclass
9827 of rtl_opt_pass along with...
9828 (pass_data_free_cfg): ...new pass_data instance and...
9829 (make_pass_free_cfg): ...new function.
9830 (pass_into_cfg_layout_mode): Convert from a global struct to a
9831 subclass of rtl_opt_pass along with...
9832 (pass_data_into_cfg_layout_mode): ...new pass_data instance and...
9833 (make_pass_into_cfg_layout_mode): ...new function.
9834 (pass_outof_cfg_layout_mode): Convert from a global struct to a
9835 subclass of rtl_opt_pass along with...
9836 (pass_data_outof_cfg_layout_mode): ...new pass_data instance and...
9837 (make_pass_outof_cfg_layout_mode): ...new function.
9838 * cgraphbuild.c (pass_build_cgraph_edges): Convert from a global
9839 struct to a subclass of gimple_opt_pass along with...
9840 (pass_data_build_cgraph_edges): ...new pass_data instance and...
9841 (make_pass_build_cgraph_edges): ...new function.
9842 (pass_rebuild_cgraph_edges): Convert from a global struct to a
9843 subclass of gimple_opt_pass along with...
9844 (pass_data_rebuild_cgraph_edges): ...new pass_data instance and...
9845 (make_pass_rebuild_cgraph_edges): ...new function.
9846 (pass_remove_cgraph_callee_edges): Convert from a global struct to a
9847 subclass of gimple_opt_pass along with...
9848 (pass_data_remove_cgraph_callee_edges): ...new pass_data instance
9849 and...
9850 (make_pass_remove_cgraph_callee_edges): ...new function.
9851 * combine-stack-adj.c (pass_stack_adjustments): Convert from a global
9852 struct to a subclass of rtl_opt_pass along with...
9853 (pass_data_stack_adjustments): ...new pass_data instance and...
9854 (make_pass_stack_adjustments): ...new function.
9855 * combine.c (pass_combine): Convert from a global struct to a subclass
9856 of rtl_opt_pass along with...
9857 (pass_data_combine): ...new pass_data instance and...
9858 (make_pass_combine): ...new function.
9859 * compare-elim.c (pass_compare_elim_after_reload): Convert from a
9860 global struct to a subclass of rtl_opt_pass along with...
9861 (pass_data_compare_elim_after_reload): ...new pass_data instance
9862 and...
9863 (make_pass_compare_elim_after_reload): ...new function.
9864 * cprop.c (pass_rtl_cprop): Convert from a global struct to a subclass
9865 of rtl_opt_pass along with...
9866 (pass_data_rtl_cprop): ...new pass_data instance and...
9867 (make_pass_rtl_cprop): ...new function.
9868 * cse.c (pass_cse): Convert from a global struct to a subclass of
9869 rtl_opt_pass along with...
9870 (pass_data_cse): ...new pass_data instance and...
9871 (make_pass_cse): ...new function.
9872 (pass_cse2): Convert from a global struct to a subclass of
9873 rtl_opt_pass along with...
9874 (pass_data_cse2): ...new pass_data instance and...
9875 (make_pass_cse2): ...new function.
9876 (pass_cse_after_global_opts): Convert from a global struct to a
9877 subclass of rtl_opt_pass along with...
9878 (pass_data_cse_after_global_opts): ...new pass_data instance and...
9879 (make_pass_cse_after_global_opts): ...new function.
9880 * dce.c (pass_ud_rtl_dce): Convert from a global struct to a subclass
9881 of rtl_opt_pass along with...
9882 (pass_data_ud_rtl_dce): ...new pass_data instance and...
9883 (make_pass_ud_rtl_dce): ...new function.
9884 (pass_fast_rtl_dce): Convert from a global struct to a subclass of
9885 rtl_opt_pass along with...
9886 (pass_data_fast_rtl_dce): ...new pass_data instance and...
9887 (make_pass_fast_rtl_dce): ...new function.
9888 * df-core.c (pass_df_initialize_opt): Convert from a global struct to
9889 a subclass of rtl_opt_pass along with...
9890 (pass_data_df_initialize_opt): ...new pass_data instance and...
9891 (make_pass_df_initialize_opt): ...new function.
9892 (pass_df_initialize_no_opt): Convert from a global struct to a
9893 subclass of rtl_opt_pass along with...
9894 (pass_data_df_initialize_no_opt): ...new pass_data instance and...
9895 (make_pass_df_initialize_no_opt): ...new function.
9896 (pass_df_finish): Convert from a global struct to a subclass of
9897 rtl_opt_pass along with...
9898 (pass_data_df_finish): ...new pass_data instance and...
9899 (make_pass_df_finish): ...new function.
9900 * dse.c (pass_rtl_dse1): Convert from a global struct to a subclass of
9901 rtl_opt_pass along with...
9902 (pass_data_rtl_dse1): ...new pass_data instance and...
9903 (make_pass_rtl_dse1): ...new function.
9904 (pass_rtl_dse2): Convert from a global struct to a subclass of
9905 rtl_opt_pass along with...
9906 (pass_data_rtl_dse2): ...new pass_data instance and...
9907 (make_pass_rtl_dse2): ...new function.
9908 * dwarf2cfi.c (pass_dwarf2_frame): Convert from a global struct to a
9909 subclass of rtl_opt_pass along with...
9910 (pass_data_dwarf2_frame): ...new pass_data instance and...
9911 (make_pass_dwarf2_frame): ...new function.
9912 * except.c (pass_set_nothrow_function_flags): Convert from a global
9913 struct to a subclass of rtl_opt_pass along with...
9914 (pass_data_set_nothrow_function_flags): ...new pass_data instance
9915 and...
9916 (make_pass_set_nothrow_function_flags): ...new function.
9917 (pass_convert_to_eh_region_ranges): Convert from a global struct to a
9918 subclass of rtl_opt_pass along with...
9919 (pass_data_convert_to_eh_region_ranges): ...new pass_data instance
9920 and...
9921 (make_pass_convert_to_eh_region_ranges): ...new function.
9922 * final.c (pass_compute_alignments): Convert from a global struct to a
9923 subclass of rtl_opt_pass along with...
9924 (pass_data_compute_alignments): ...new pass_data instance and...
9925 (make_pass_compute_alignments): ...new function.
9926 (pass_final): Convert from a global struct to a subclass of
9927 rtl_opt_pass along with...
9928 (pass_data_final): ...new pass_data instance and...
9929 (make_pass_final): ...new function.
9930 (pass_shorten_branches): Convert from a global struct to a subclass of
9931 rtl_opt_pass along with...
9932 (pass_data_shorten_branches): ...new pass_data instance and...
9933 (make_pass_shorten_branches): ...new function.
9934 (pass_clean_state): Convert from a global struct to a subclass of
9935 rtl_opt_pass along with...
9936 (pass_data_clean_state): ...new pass_data instance and...
9937 (make_pass_clean_state): ...new function.
9938 * function.c (pass_instantiate_virtual_regs): Convert from a global
9939 struct to a subclass of rtl_opt_pass along with...
9940 (pass_data_instantiate_virtual_regs): ...new pass_data instance and...
9941 (make_pass_instantiate_virtual_regs): ...new function.
9942 (pass_leaf_regs): Convert from a global struct to a subclass of
9943 rtl_opt_pass along with...
9944 (pass_data_leaf_regs): ...new pass_data instance and...
9945 (make_pass_leaf_regs): ...new function.
9946 (pass_thread_prologue_and_epilogue): Convert from a global struct to a
9947 subclass of rtl_opt_pass along with...
9948 (pass_data_thread_prologue_and_epilogue): ...new pass_data instance
9949 and...
9950 (make_pass_thread_prologue_and_epilogue): ...new function.
9951 (pass_match_asm_constraints): Convert from a global struct to a
9952 subclass of rtl_opt_pass along with...
9953 (pass_data_match_asm_constraints): ...new pass_data instance and...
9954 (make_pass_match_asm_constraints): ...new function.
9955 * fwprop.c (pass_rtl_fwprop): Convert from a global struct to a
9956 subclass of rtl_opt_pass along with...
9957 (pass_data_rtl_fwprop): ...new pass_data instance and...
9958 (make_pass_rtl_fwprop): ...new function.
9959 (pass_rtl_fwprop_addr): Convert from a global struct to a subclass of
9960 rtl_opt_pass along with...
9961 (pass_data_rtl_fwprop_addr): ...new pass_data instance and...
9962 (make_pass_rtl_fwprop_addr): ...new function.
9963 * gcse.c (pass_rtl_pre): Convert from a global struct to a subclass of
9964 rtl_opt_pass along with...
9965 (pass_data_rtl_pre): ...new pass_data instance and...
9966 (make_pass_rtl_pre): ...new function.
9967 (pass_rtl_hoist): Convert from a global struct to a subclass of
9968 rtl_opt_pass along with...
9969 (pass_data_rtl_hoist): ...new pass_data instance and...
9970 (make_pass_rtl_hoist): ...new function.
9971 * gimple-low.c (pass_lower_cf): Convert from a global struct to a
9972 subclass of gimple_opt_pass along with...
9973 (pass_data_lower_cf): ...new pass_data instance and...
9974 (make_pass_lower_cf): ...new function.
9975 * gimple-ssa-strength-reduction.c (pass_strength_reduction): Convert
9976 from a global struct to a subclass of gimple_opt_pass along with...
9977 (pass_data_strength_reduction): ...new pass_data instance and...
9978 (make_pass_strength_reduction): ...new function.
9979 * ifcvt.c (pass_rtl_ifcvt): Convert from a global struct to a subclass
9980 of rtl_opt_pass along with...
9981 (pass_data_rtl_ifcvt): ...new pass_data instance and...
9982 (make_pass_rtl_ifcvt): ...new function.
9983 (pass_if_after_combine): Convert from a global struct to a subclass of
9984 rtl_opt_pass along with...
9985 (pass_data_if_after_combine): ...new pass_data instance and...
9986 (make_pass_if_after_combine): ...new function.
9987 (pass_if_after_reload): Convert from a global struct to a subclass of
9988 rtl_opt_pass along with...
9989 (pass_data_if_after_reload): ...new pass_data instance and...
9990 (make_pass_if_after_reload): ...new function.
9991 * init-regs.c (pass_initialize_regs): Convert from a global struct to
9992 a subclass of rtl_opt_pass along with...
9993 (pass_data_initialize_regs): ...new pass_data instance and...
9994 (make_pass_initialize_regs): ...new function.
9995 * ipa-cp.c (pass_ipa_cp): Convert from a global struct to a subclass
9996 of ipa_opt_pass_d along with...
9997 (pass_data_ipa_cp): ...new pass_data instance and...
9998 (make_pass_ipa_cp): ...new function.
9999 * ipa-inline-analysis.c (pass_inline_parameters): Convert from a
10000 global struct to a subclass of gimple_opt_pass along with...
10001 (pass_data_inline_parameters): ...new pass_data instance and...
10002 (make_pass_inline_parameters): ...new function.
10003 * ipa-inline.c (pass_early_inline): Convert from a global struct to a
10004 subclass of gimple_opt_pass along with...
10005 (pass_data_early_inline): ...new pass_data instance and...
10006 (make_pass_early_inline): ...new function.
10007 (pass_ipa_inline): Convert from a global struct to a subclass of
10008 ipa_opt_pass_d along with...
10009 (pass_data_ipa_inline): ...new pass_data instance and...
10010 (make_pass_ipa_inline): ...new function.
10011 * ipa-pure-const.c (pass_local_pure_const): Convert from a global
10012 struct to a subclass of gimple_opt_pass along with...
10013 (pass_data_local_pure_const): ...new pass_data instance and...
10014 (make_pass_local_pure_const): ...new function.
10015 (pass_ipa_pure_const): Convert from a global struct to a subclass of
10016 ipa_opt_pass_d along with...
10017 (pass_data_ipa_pure_const): ...new pass_data instance and...
10018 (make_pass_ipa_pure_const): ...new function.
10019 * ipa-reference.c (pass_ipa_reference): Convert from a global struct
10020 to a subclass of ipa_opt_pass_d along with...
10021 (pass_data_ipa_reference): ...new pass_data instance and...
10022 (make_pass_ipa_reference): ...new function.
10023 * ipa-split.c (pass_split_functions): Convert from a global struct to
10024 a subclass of gimple_opt_pass along with...
10025 (pass_data_split_functions): ...new pass_data instance and...
10026 (make_pass_split_functions): ...new function.
10027 (pass_feedback_split_functions): Convert from a global struct to a
10028 subclass of gimple_opt_pass along with...
10029 (pass_data_feedback_split_functions): ...new pass_data instance and...
10030 (make_pass_feedback_split_functions): ...new function.
10031 * ipa.c (pass_ipa_function_and_variable_visibility): Convert from a
10032 global struct to a subclass of simple_ipa_opt_pass along with...
10033 (pass_data_ipa_function_and_variable_visibility): ...new pass_data
10034 instance and...
10035 (make_pass_ipa_function_and_variable_visibility): ...new function.
10036 (pass_ipa_free_inline_summary): Convert from a global struct to a
10037 subclass of simple_ipa_opt_pass along with...
10038 (pass_data_ipa_free_inline_summary): ...new pass_data instance and...
10039 (make_pass_ipa_free_inline_summary): ...new function.
10040 (pass_ipa_whole_program_visibility): Convert from a global struct to a
10041 subclass of ipa_opt_pass_d along with...
10042 (pass_data_ipa_whole_program_visibility): ...new pass_data instance
10043 and...
10044 (make_pass_ipa_whole_program_visibility): ...new function.
10045 (pass_ipa_profile): Convert from a global struct to a subclass of
10046 ipa_opt_pass_d along with...
10047 (pass_data_ipa_profile): ...new pass_data instance and...
10048 (make_pass_ipa_profile): ...new function.
10049 (pass_ipa_cdtor_merge): Convert from a global struct to a subclass of
10050 ipa_opt_pass_d along with...
10051 (pass_data_ipa_cdtor_merge): ...new pass_data instance and...
10052 (make_pass_ipa_cdtor_merge): ...new function.
10053 * ira.c (pass_ira): Convert from a global struct to a subclass of
10054 rtl_opt_pass along with...
10055 (pass_data_ira): ...new pass_data instance and...
10056 (make_pass_ira): ...new function.
10057 (pass_reload): Convert from a global struct to a subclass of
10058 rtl_opt_pass along with...
10059 (pass_data_reload): ...new pass_data instance and...
10060 (make_pass_reload): ...new function.
10061 * jump.c (pass_cleanup_barriers): Convert from a global struct to a
10062 subclass of rtl_opt_pass along with...
10063 (pass_data_cleanup_barriers): ...new pass_data instance and...
10064 (make_pass_cleanup_barriers): ...new function.
10065 * loop-init.c (pass_loop2): Convert from a global struct to a subclass
10066 of rtl_opt_pass along with...
10067 (pass_data_loop2): ...new pass_data instance and...
10068 (make_pass_loop2): ...new function.
10069 (pass_rtl_loop_init): Convert from a global struct to a subclass of
10070 rtl_opt_pass along with...
10071 (pass_data_rtl_loop_init): ...new pass_data instance and...
10072 (make_pass_rtl_loop_init): ...new function.
10073 (pass_rtl_loop_done): Convert from a global struct to a subclass of
10074 rtl_opt_pass along with...
10075 (pass_data_rtl_loop_done): ...new pass_data instance and...
10076 (make_pass_rtl_loop_done): ...new function.
10077 (pass_rtl_move_loop_invariants): Convert from a global struct to a
10078 subclass of rtl_opt_pass along with...
10079 (pass_data_rtl_move_loop_invariants): ...new pass_data instance and...
10080 (make_pass_rtl_move_loop_invariants): ...new function.
10081 (pass_rtl_unswitch): Convert from a global struct to a subclass of
10082 rtl_opt_pass along with...
10083 (pass_data_rtl_unswitch): ...new pass_data instance and...
10084 (make_pass_rtl_unswitch): ...new function.
10085 (pass_rtl_unroll_and_peel_loops): Convert from a global struct to a
10086 subclass of rtl_opt_pass along with...
10087 (pass_data_rtl_unroll_and_peel_loops): ...new pass_data instance
10088 and...
10089 (make_pass_rtl_unroll_and_peel_loops): ...new function.
10090 (pass_rtl_doloop): Convert from a global struct to a subclass of
10091 rtl_opt_pass along with...
10092 (pass_data_rtl_doloop): ...new pass_data instance and...
10093 (make_pass_rtl_doloop): ...new function.
10094 * lower-subreg.c (pass_lower_subreg): Convert from a global struct to
10095 a subclass of rtl_opt_pass along with...
10096 (pass_data_lower_subreg): ...new pass_data instance and...
10097 (make_pass_lower_subreg): ...new function.
10098 (pass_lower_subreg2): Convert from a global struct to a subclass of
10099 rtl_opt_pass along with...
10100 (pass_data_lower_subreg2): ...new pass_data instance and...
10101 (make_pass_lower_subreg2): ...new function.
10102 * lto-streamer-out.c (pass_ipa_lto_gimple_out): Convert from a global
10103 struct to a subclass of ipa_opt_pass_d along with...
10104 (pass_data_ipa_lto_gimple_out): ...new pass_data instance and...
10105 (make_pass_ipa_lto_gimple_out): ...new function.
10106 (pass_ipa_lto_finish_out): Convert from a global struct to a subclass
10107 of ipa_opt_pass_d along with...
10108 (pass_data_ipa_lto_finish_out): ...new pass_data instance and...
10109 (make_pass_ipa_lto_finish_out): ...new function.
10110 * mode-switching.c (pass_mode_switching): Convert from a global struct
10111 to a subclass of rtl_opt_pass along with...
10112 (pass_data_mode_switching): ...new pass_data instance and...
10113 (make_pass_mode_switching): ...new function.
10114 * modulo-sched.c (pass_sms): Convert from a global struct to a
10115 subclass of rtl_opt_pass along with...
10116 (pass_data_sms): ...new pass_data instance and...
10117 (make_pass_sms): ...new function.
10118 * omp-low.c (pass_expand_omp): Convert from a global struct to a
10119 subclass of gimple_opt_pass along with...
10120 (pass_data_expand_omp): ...new pass_data instance and...
10121 (make_pass_expand_omp): ...new function.
10122 (pass_lower_omp): Convert from a global struct to a subclass of
10123 gimple_opt_pass along with...
10124 (pass_data_lower_omp): ...new pass_data instance and...
10125 (make_pass_lower_omp): ...new function.
10126 (pass_diagnose_omp_blocks): Convert from a global struct to a subclass
10127 of gimple_opt_pass along with...
10128 (pass_data_diagnose_omp_blocks): ...new pass_data instance and...
10129 (make_pass_diagnose_omp_blocks): ...new function.
10130 * passes.c (pass_early_local_passes): Convert from a global struct to
10131 a subclass of simple_ipa_opt_pass along with...
10132 (pass_data_early_local_passes): ...new pass_data instance and...
10133 (make_pass_early_local_passes): ...new function.
10134 (pass_all_early_optimizations): Convert from a global struct to a
10135 subclass of gimple_opt_pass along with...
10136 (pass_data_all_early_optimizations): ...new pass_data instance and...
10137 (make_pass_all_early_optimizations): ...new function.
10138 (pass_all_optimizations): Convert from a global struct to a subclass
10139 of gimple_opt_pass along with...
10140 (pass_data_all_optimizations): ...new pass_data instance and...
10141 (make_pass_all_optimizations): ...new function.
10142 (pass_all_optimizations_g): Convert from a global struct to a subclass
10143 of gimple_opt_pass along with...
10144 (pass_data_all_optimizations_g): ...new pass_data instance and...
10145 (make_pass_all_optimizations_g): ...new function.
10146 (pass_rest_of_compilation): Convert from a global struct to a subclass
10147 of rtl_opt_pass along with...
10148 (pass_data_rest_of_compilation): ...new pass_data instance and...
10149 (make_pass_rest_of_compilation): ...new function.
10150 (pass_postreload): Convert from a global struct to a subclass of
10151 rtl_opt_pass along with...
10152 (pass_data_postreload): ...new pass_data instance and...
10153 (make_pass_postreload): ...new function.
10154 * postreload-gcse.c (pass_gcse2): Convert from a global struct to a
10155 subclass of rtl_opt_pass along with...
10156 (pass_data_gcse2): ...new pass_data instance and...
10157 (make_pass_gcse2): ...new function.
10158 * postreload.c (pass_postreload_cse): Convert from a global struct to
10159 a subclass of rtl_opt_pass along with...
10160 (pass_data_postreload_cse): ...new pass_data instance and...
10161 (make_pass_postreload_cse): ...new function.
10162 * predict.c (pass_profile): Convert from a global struct to a subclass
10163 of gimple_opt_pass along with...
10164 (pass_data_profile): ...new pass_data instance and...
10165 (make_pass_profile): ...new function.
10166 (pass_strip_predict_hints): Convert from a global struct to a subclass
10167 of gimple_opt_pass along with...
10168 (pass_data_strip_predict_hints): ...new pass_data instance and...
10169 (make_pass_strip_predict_hints): ...new function.
10170 * recog.c (pass_peephole2): Convert from a global struct to a subclass
10171 of rtl_opt_pass along with...
10172 (pass_data_peephole2): ...new pass_data instance and...
10173 (make_pass_peephole2): ...new function.
10174 (pass_split_all_insns): Convert from a global struct to a subclass of
10175 rtl_opt_pass along with...
10176 (pass_data_split_all_insns): ...new pass_data instance and...
10177 (make_pass_split_all_insns): ...new function.
10178 (pass_split_after_reload): Convert from a global struct to a subclass
10179 of rtl_opt_pass along with...
10180 (pass_data_split_after_reload): ...new pass_data instance and...
10181 (make_pass_split_after_reload): ...new function.
10182 (pass_split_before_regstack): Convert from a global struct to a
10183 subclass of rtl_opt_pass along with...
10184 (pass_data_split_before_regstack): ...new pass_data instance and...
10185 (make_pass_split_before_regstack): ...new function.
10186 (pass_split_before_sched2): Convert from a global struct to a subclass
10187 of rtl_opt_pass along with...
10188 (pass_data_split_before_sched2): ...new pass_data instance and...
10189 (make_pass_split_before_sched2): ...new function.
10190 (pass_split_for_shorten_branches): Convert from a global struct to a
10191 subclass of rtl_opt_pass along with...
10192 (pass_data_split_for_shorten_branches): ...new pass_data instance
10193 and...
10194 (make_pass_split_for_shorten_branches): ...new function.
10195 * ree.c (pass_ree): Convert from a global struct to a subclass of
10196 rtl_opt_pass along with...
10197 (pass_data_ree): ...new pass_data instance and...
10198 (make_pass_ree): ...new function.
10199 * reg-stack.c (pass_stack_regs): Convert from a global struct to a
10200 subclass of rtl_opt_pass along with...
10201 (pass_data_stack_regs): ...new pass_data instance and...
10202 (make_pass_stack_regs): ...new function.
10203 (pass_stack_regs_run): Convert from a global struct to a subclass of
10204 rtl_opt_pass along with...
10205 (pass_data_stack_regs_run): ...new pass_data instance and...
10206 (make_pass_stack_regs_run): ...new function.
10207 * regcprop.c (pass_cprop_hardreg): Convert from a global struct to a
10208 subclass of rtl_opt_pass along with...
10209 (pass_data_cprop_hardreg): ...new pass_data instance and...
10210 (make_pass_cprop_hardreg): ...new function.
10211 * reginfo.c (pass_reginfo_init): Convert from a global struct to a
10212 subclass of rtl_opt_pass along with...
10213 (pass_data_reginfo_init): ...new pass_data instance and...
10214 (make_pass_reginfo_init): ...new function.
10215 * regmove.c (pass_regmove): Convert from a global struct to a subclass
10216 of rtl_opt_pass along with...
10217 (pass_data_regmove): ...new pass_data instance and...
10218 (make_pass_regmove): ...new function.
10219 * regrename.c (pass_regrename): Convert from a global struct to a
10220 subclass of rtl_opt_pass along with...
10221 (pass_data_regrename): ...new pass_data instance and...
10222 (make_pass_regrename): ...new function.
10223 * reorg.c (pass_delay_slots): Convert from a global struct to a
10224 subclass of rtl_opt_pass along with...
10225 (pass_data_delay_slots): ...new pass_data instance and...
10226 (make_pass_delay_slots): ...new function.
10227 (pass_machine_reorg): Convert from a global struct to a subclass of
10228 rtl_opt_pass along with...
10229 (pass_data_machine_reorg): ...new pass_data instance and...
10230 (make_pass_machine_reorg): ...new function.
10231 * sched-rgn.c (pass_sched): Convert from a global struct to a subclass
10232 of rtl_opt_pass along with...
10233 (pass_data_sched): ...new pass_data instance and...
10234 (make_pass_sched): ...new function.
10235 (pass_sched2): Convert from a global struct to a subclass of
10236 rtl_opt_pass along with...
10237 (pass_data_sched2): ...new pass_data instance and...
10238 (make_pass_sched2): ...new function.
10239 * stack-ptr-mod.c (pass_stack_ptr_mod): Convert from a global struct
10240 to a subclass of rtl_opt_pass along with...
10241 (pass_data_stack_ptr_mod): ...new pass_data instance and...
10242 (make_pass_stack_ptr_mod): ...new function.
10243 * store-motion.c (pass_rtl_store_motion): Convert from a global struct
10244 to a subclass of rtl_opt_pass along with...
10245 (pass_data_rtl_store_motion): ...new pass_data instance and...
10246 (make_pass_rtl_store_motion): ...new function.
10247 * tracer.c (pass_tracer): Convert from a global struct to a subclass
10248 of gimple_opt_pass along with...
10249 (pass_data_tracer): ...new pass_data instance and...
10250 (make_pass_tracer): ...new function.
10251 * trans-mem.c (pass_diagnose_tm_blocks): Convert from a global struct
10252 to a subclass of gimple_opt_pass along with...
10253 (pass_data_diagnose_tm_blocks): ...new pass_data instance and...
10254 (make_pass_diagnose_tm_blocks): ...new function.
10255 (pass_lower_tm): Convert from a global struct to a subclass of
10256 gimple_opt_pass along with...
10257 (pass_data_lower_tm): ...new pass_data instance and...
10258 (make_pass_lower_tm): ...new function.
10259 (pass_tm_init): Convert from a global struct to a subclass of
10260 gimple_opt_pass along with...
10261 (pass_data_tm_init): ...new pass_data instance and...
10262 (make_pass_tm_init): ...new function.
10263 (pass_tm_mark): Convert from a global struct to a subclass of
10264 gimple_opt_pass along with...
10265 (pass_data_tm_mark): ...new pass_data instance and...
10266 (make_pass_tm_mark): ...new function.
10267 (pass_tm_edges): Convert from a global struct to a subclass of
10268 gimple_opt_pass along with...
10269 (pass_data_tm_edges): ...new pass_data instance and...
10270 (make_pass_tm_edges): ...new function.
10271 (pass_tm_memopt): Convert from a global struct to a subclass of
10272 gimple_opt_pass along with...
10273 (pass_data_tm_memopt): ...new pass_data instance and...
10274 (make_pass_tm_memopt): ...new function.
10275 (pass_ipa_tm): Convert from a global struct to a subclass of
10276 simple_ipa_opt_pass along with...
10277 (pass_data_ipa_tm): ...new pass_data instance and...
10278 (make_pass_ipa_tm): ...new function.
10279 * tree-call-cdce.c (pass_call_cdce): Convert from a global struct to a
10280 subclass of gimple_opt_pass along with...
10281 (pass_data_call_cdce): ...new pass_data instance and...
10282 (make_pass_call_cdce): ...new function.
10283 * tree-cfg.c (pass_build_cfg): Convert from a global struct to a
10284 subclass of gimple_opt_pass along with...
10285 (pass_data_build_cfg): ...new pass_data instance and...
10286 (make_pass_build_cfg): ...new function.
10287 (pass_split_crit_edges): Convert from a global struct to a subclass of
10288 gimple_opt_pass along with...
10289 (pass_data_split_crit_edges): ...new pass_data instance and...
10290 (make_pass_split_crit_edges): ...new function.
10291 (pass_warn_function_return): Convert from a global struct to a
10292 subclass of gimple_opt_pass along with...
10293 (pass_data_warn_function_return): ...new pass_data instance and...
10294 (make_pass_warn_function_return): ...new function.
10295 (pass_warn_function_noreturn): Convert from a global struct to a
10296 subclass of gimple_opt_pass along with...
10297 (pass_data_warn_function_noreturn): ...new pass_data instance and...
10298 (make_pass_warn_function_noreturn): ...new function.
10299 (pass_warn_unused_result): Convert from a global struct to a subclass
10300 of gimple_opt_pass along with...
10301 (pass_data_warn_unused_result): ...new pass_data instance and...
10302 (make_pass_warn_unused_result): ...new function.
10303 * tree-cfgcleanup.c (pass_merge_phi): Convert from a global struct to
10304 a subclass of gimple_opt_pass along with...
10305 (pass_data_merge_phi): ...new pass_data instance and...
10306 (make_pass_merge_phi): ...new function.
10307 * tree-complex.c (pass_lower_complex): Convert from a global struct to
10308 a subclass of gimple_opt_pass along with...
10309 (pass_data_lower_complex): ...new pass_data instance and...
10310 (make_pass_lower_complex): ...new function.
10311 (pass_lower_complex_O0): Convert from a global struct to a subclass of
10312 gimple_opt_pass along with...
10313 (pass_data_lower_complex_O0): ...new pass_data instance and...
10314 (make_pass_lower_complex_O0): ...new function.
10315 * tree-eh.c (pass_lower_eh): Convert from a global struct to a
10316 subclass of gimple_opt_pass along with...
10317 (pass_data_lower_eh): ...new pass_data instance and...
10318 (make_pass_lower_eh): ...new function.
10319 (pass_refactor_eh): Convert from a global struct to a subclass of
10320 gimple_opt_pass along with...
10321 (pass_data_refactor_eh): ...new pass_data instance and...
10322 (make_pass_refactor_eh): ...new function.
10323 (pass_lower_resx): Convert from a global struct to a subclass of
10324 gimple_opt_pass along with...
10325 (pass_data_lower_resx): ...new pass_data instance and...
10326 (make_pass_lower_resx): ...new function.
10327 (pass_lower_eh_dispatch): Convert from a global struct to a subclass
10328 of gimple_opt_pass along with...
10329 (pass_data_lower_eh_dispatch): ...new pass_data instance and...
10330 (make_pass_lower_eh_dispatch): ...new function.
10331 (pass_cleanup_eh): Convert from a global struct to a subclass of
10332 gimple_opt_pass along with...
10333 (pass_data_cleanup_eh): ...new pass_data instance and...
10334 (make_pass_cleanup_eh): ...new function.
10335 * tree-emutls.c (pass_ipa_lower_emutls): Convert from a global struct
10336 to a subclass of simple_ipa_opt_pass along with...
10337 (pass_data_ipa_lower_emutls): ...new pass_data instance and...
10338 (make_pass_ipa_lower_emutls): ...new function.
10339 * tree-if-conv.c (pass_if_conversion): Convert from a global struct to
10340 a subclass of gimple_opt_pass along with...
10341 (pass_data_if_conversion): ...new pass_data instance and...
10342 (make_pass_if_conversion): ...new function.
10343 * tree-into-ssa.c (pass_build_ssa): Convert from a global struct to a
10344 subclass of gimple_opt_pass along with...
10345 (pass_data_build_ssa): ...new pass_data instance and...
10346 (make_pass_build_ssa): ...new function.
10347 * tree-loop-distribution.c (pass_loop_distribution): Convert from a
10348 global struct to a subclass of gimple_opt_pass along with...
10349 (pass_data_loop_distribution): ...new pass_data instance and...
10350 (make_pass_loop_distribution): ...new function.
10351 * tree-mudflap.c (pass_mudflap_1): Convert from a global struct to a
10352 subclass of gimple_opt_pass along with...
10353 (pass_data_mudflap_1): ...new pass_data instance and...
10354 (make_pass_mudflap_1): ...new function.
10355 (pass_mudflap_2): Convert from a global struct to a subclass of
10356 gimple_opt_pass along with...
10357 (pass_data_mudflap_2): ...new pass_data instance and...
10358 (make_pass_mudflap_2): ...new function.
10359 * tree-nomudflap.c (pass_mudflap_1): Convert from a global struct to a
10360 subclass of gimple_opt_pass along with...
10361 (pass_data_mudflap_1): ...new pass_data instance and...
10362 (make_pass_mudflap_1): ...new function.
10363 (pass_mudflap_2): Convert from a global struct to a subclass of
10364 gimple_opt_pass along with...
10365 (pass_data_mudflap_2): ...new pass_data instance and...
10366 (make_pass_mudflap_2): ...new function.
10367 * tree-nrv.c (pass_nrv): Convert from a global struct to a subclass of
10368 gimple_opt_pass along with...
10369 (pass_data_nrv): ...new pass_data instance and...
10370 (make_pass_nrv): ...new function.
10371 (pass_return_slot): Convert from a global struct to a subclass of
10372 gimple_opt_pass along with...
10373 (pass_data_return_slot): ...new pass_data instance and...
10374 (make_pass_return_slot): ...new function.
10375 * tree-object-size.c (pass_object_sizes): Convert from a global struct
10376 to a subclass of gimple_opt_pass along with...
10377 (pass_data_object_sizes): ...new pass_data instance and...
10378 (make_pass_object_sizes): ...new function.
10379 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Convert from a
10380 global struct to a subclass of gimple_opt_pass along with...
10381 (pass_data_cleanup_cfg_post_optimizing): ...new pass_data instance
10382 and...
10383 (make_pass_cleanup_cfg_post_optimizing): ...new function.
10384 (pass_fixup_cfg): Convert from a global struct to a subclass of
10385 gimple_opt_pass along with...
10386 (pass_data_fixup_cfg): ...new pass_data instance and...
10387 (make_pass_fixup_cfg): ...new function.
10388 * tree-pass.h (pass_mudflap_1): Replace declaration with that of...
10389 (make_pass_mudflap_1): ...new function.
10390 (pass_mudflap_2): Replace declaration with that of...
10391 (make_pass_mudflap_2): ...new function.
10392 (pass_asan): Replace declaration with that of...
10393 (make_pass_asan): ...new function.
10394 (pass_asan_O0): Replace declaration with that of...
10395 (make_pass_asan_O0): ...new function.
10396 (pass_tsan): Replace declaration with that of...
10397 (make_pass_tsan): ...new function.
10398 (pass_tsan_O0): Replace declaration with that of...
10399 (make_pass_tsan_O0): ...new function.
10400 (pass_lower_cf): Replace declaration with that of...
10401 (make_pass_lower_cf): ...new function.
10402 (pass_refactor_eh): Replace declaration with that of...
10403 (make_pass_refactor_eh): ...new function.
10404 (pass_lower_eh): Replace declaration with that of...
10405 (make_pass_lower_eh): ...new function.
10406 (pass_lower_eh_dispatch): Replace declaration with that of...
10407 (make_pass_lower_eh_dispatch): ...new function.
10408 (pass_lower_resx): Replace declaration with that of...
10409 (make_pass_lower_resx): ...new function.
10410 (pass_build_cfg): Replace declaration with that of...
10411 (make_pass_build_cfg): ...new function.
10412 (pass_early_tree_profile): Replace declaration with that of...
10413 (make_pass_early_tree_profile): ...new function.
10414 (pass_cleanup_eh): Replace declaration with that of...
10415 (make_pass_cleanup_eh): ...new function.
10416 (pass_sra): Replace declaration with that of...
10417 (make_pass_sra): ...new function.
10418 (pass_sra_early): Replace declaration with that of...
10419 (make_pass_sra_early): ...new function.
10420 (pass_early_ipa_sra): Replace declaration with that of...
10421 (make_pass_early_ipa_sra): ...new function.
10422 (pass_tail_recursion): Replace declaration with that of...
10423 (make_pass_tail_recursion): ...new function.
10424 (pass_tail_calls): Replace declaration with that of...
10425 (make_pass_tail_calls): ...new function.
10426 (pass_tree_loop): Replace declaration with that of...
10427 (make_pass_tree_loop): ...new function.
10428 (pass_tree_loop_init): Replace declaration with that of...
10429 (make_pass_tree_loop_init): ...new function.
10430 (pass_lim): Replace declaration with that of...
10431 (make_pass_lim): ...new function.
10432 (pass_tree_unswitch): Replace declaration with that of...
10433 (make_pass_tree_unswitch): ...new function.
10434 (pass_predcom): Replace declaration with that of...
10435 (make_pass_predcom): ...new function.
10436 (pass_iv_canon): Replace declaration with that of...
10437 (make_pass_iv_canon): ...new function.
10438 (pass_scev_cprop): Replace declaration with that of...
10439 (make_pass_scev_cprop): ...new function.
10440 (pass_empty_loop): Replace declaration with that of...
10441 (make_pass_empty_loop): ...new function.
10442 (pass_record_bounds): Replace declaration with that of...
10443 (make_pass_record_bounds): ...new function.
10444 (pass_graphite): Replace declaration with that of...
10445 (make_pass_graphite): ...new function.
10446 (pass_graphite_transforms): Replace declaration with that of...
10447 (make_pass_graphite_transforms): ...new function.
10448 (pass_if_conversion): Replace declaration with that of...
10449 (make_pass_if_conversion): ...new function.
10450 (pass_loop_distribution): Replace declaration with that of...
10451 (make_pass_loop_distribution): ...new function.
10452 (pass_vectorize): Replace declaration with that of...
10453 (make_pass_vectorize): ...new function.
10454 (pass_slp_vectorize): Replace declaration with that of...
10455 (make_pass_slp_vectorize): ...new function.
10456 (pass_complete_unroll): Replace declaration with that of...
10457 (make_pass_complete_unroll): ...new function.
10458 (pass_complete_unrolli): Replace declaration with that of...
10459 (make_pass_complete_unrolli): ...new function.
10460 (pass_parallelize_loops): Replace declaration with that of...
10461 (make_pass_parallelize_loops): ...new function.
10462 (pass_loop_prefetch): Replace declaration with that of...
10463 (make_pass_loop_prefetch): ...new function.
10464 (pass_iv_optimize): Replace declaration with that of...
10465 (make_pass_iv_optimize): ...new function.
10466 (pass_tree_loop_done): Replace declaration with that of...
10467 (make_pass_tree_loop_done): ...new function.
10468 (pass_ch): Replace declaration with that of...
10469 (make_pass_ch): ...new function.
10470 (pass_ccp): Replace declaration with that of...
10471 (make_pass_ccp): ...new function.
10472 (pass_phi_only_cprop): Replace declaration with that of...
10473 (make_pass_phi_only_cprop): ...new function.
10474 (pass_build_ssa): Replace declaration with that of...
10475 (make_pass_build_ssa): ...new function.
10476 (pass_build_alias): Replace declaration with that of...
10477 (make_pass_build_alias): ...new function.
10478 (pass_build_ealias): Replace declaration with that of...
10479 (make_pass_build_ealias): ...new function.
10480 (pass_dominator): Replace declaration with that of...
10481 (make_pass_dominator): ...new function.
10482 (pass_dce): Replace declaration with that of...
10483 (make_pass_dce): ...new function.
10484 (pass_dce_loop): Replace declaration with that of...
10485 (make_pass_dce_loop): ...new function.
10486 (pass_cd_dce): Replace declaration with that of...
10487 (make_pass_cd_dce): ...new function.
10488 (pass_call_cdce): Replace declaration with that of...
10489 (make_pass_call_cdce): ...new function.
10490 (pass_merge_phi): Replace declaration with that of...
10491 (make_pass_merge_phi): ...new function.
10492 (pass_split_crit_edges): Replace declaration with that of...
10493 (make_pass_split_crit_edges): ...new function.
10494 (pass_pre): Replace declaration with that of...
10495 (make_pass_pre): ...new function.
10496 (pass_profile): Replace declaration with that of...
10497 (make_pass_profile): ...new function.
10498 (pass_strip_predict_hints): Replace declaration with that of...
10499 (make_pass_strip_predict_hints): ...new function.
10500 (pass_lower_complex_O0): Replace declaration with that of...
10501 (make_pass_lower_complex_O0): ...new function.
10502 (pass_lower_complex): Replace declaration with that of...
10503 (make_pass_lower_complex): ...new function.
10504 (pass_lower_vector): Replace declaration with that of...
10505 (make_pass_lower_vector): ...new function.
10506 (pass_lower_vector_ssa): Replace declaration with that of...
10507 (make_pass_lower_vector_ssa): ...new function.
10508 (pass_lower_omp): Replace declaration with that of...
10509 (make_pass_lower_omp): ...new function.
10510 (pass_diagnose_omp_blocks): Replace declaration with that of...
10511 (make_pass_diagnose_omp_blocks): ...new function.
10512 (pass_expand_omp): Replace declaration with that of...
10513 (make_pass_expand_omp): ...new function.
10514 (pass_expand_omp_ssa): Replace declaration with that of...
10515 (make_pass_expand_omp_ssa): ...new function.
10516 (pass_object_sizes): Replace declaration with that of...
10517 (make_pass_object_sizes): ...new function.
10518 (pass_strlen): Replace declaration with that of...
10519 (make_pass_strlen): ...new function.
10520 (pass_fold_builtins): Replace declaration with that of...
10521 (make_pass_fold_builtins): ...new function.
10522 (pass_stdarg): Replace declaration with that of...
10523 (make_pass_stdarg): ...new function.
10524 (pass_early_warn_uninitialized): Replace declaration with that of...
10525 (make_pass_early_warn_uninitialized): ...new function.
10526 (pass_late_warn_uninitialized): Replace declaration with that of...
10527 (make_pass_late_warn_uninitialized): ...new function.
10528 (pass_cse_reciprocals): Replace declaration with that of...
10529 (make_pass_cse_reciprocals): ...new function.
10530 (pass_cse_sincos): Replace declaration with that of...
10531 (make_pass_cse_sincos): ...new function.
10532 (pass_optimize_bswap): Replace declaration with that of...
10533 (make_pass_optimize_bswap): ...new function.
10534 (pass_optimize_widening_mul): Replace declaration with that of...
10535 (make_pass_optimize_widening_mul): ...new function.
10536 (pass_warn_function_return): Replace declaration with that of...
10537 (make_pass_warn_function_return): ...new function.
10538 (pass_warn_function_noreturn): Replace declaration with that of...
10539 (make_pass_warn_function_noreturn): ...new function.
10540 (pass_cselim): Replace declaration with that of...
10541 (make_pass_cselim): ...new function.
10542 (pass_phiopt): Replace declaration with that of...
10543 (make_pass_phiopt): ...new function.
10544 (pass_forwprop): Replace declaration with that of...
10545 (make_pass_forwprop): ...new function.
10546 (pass_phiprop): Replace declaration with that of...
10547 (make_pass_phiprop): ...new function.
10548 (pass_tree_ifcombine): Replace declaration with that of...
10549 (make_pass_tree_ifcombine): ...new function.
10550 (pass_dse): Replace declaration with that of...
10551 (make_pass_dse): ...new function.
10552 (pass_nrv): Replace declaration with that of...
10553 (make_pass_nrv): ...new function.
10554 (pass_rename_ssa_copies): Replace declaration with that of...
10555 (make_pass_rename_ssa_copies): ...new function.
10556 (pass_sink_code): Replace declaration with that of...
10557 (make_pass_sink_code): ...new function.
10558 (pass_fre): Replace declaration with that of...
10559 (make_pass_fre): ...new function.
10560 (pass_check_data_deps): Replace declaration with that of...
10561 (make_pass_check_data_deps): ...new function.
10562 (pass_copy_prop): Replace declaration with that of...
10563 (make_pass_copy_prop): ...new function.
10564 (pass_vrp): Replace declaration with that of...
10565 (make_pass_vrp): ...new function.
10566 (pass_uncprop): Replace declaration with that of...
10567 (make_pass_uncprop): ...new function.
10568 (pass_return_slot): Replace declaration with that of...
10569 (make_pass_return_slot): ...new function.
10570 (pass_reassoc): Replace declaration with that of...
10571 (make_pass_reassoc): ...new function.
10572 (pass_rebuild_cgraph_edges): Replace declaration with that of...
10573 (make_pass_rebuild_cgraph_edges): ...new function.
10574 (pass_remove_cgraph_callee_edges): Replace declaration with that of...
10575 (make_pass_remove_cgraph_callee_edges): ...new function.
10576 (pass_build_cgraph_edges): Replace declaration with that of...
10577 (make_pass_build_cgraph_edges): ...new function.
10578 (pass_local_pure_const): Replace declaration with that of...
10579 (make_pass_local_pure_const): ...new function.
10580 (pass_tracer): Replace declaration with that of...
10581 (make_pass_tracer): ...new function.
10582 (pass_warn_unused_result): Replace declaration with that of...
10583 (make_pass_warn_unused_result): ...new function.
10584 (pass_diagnose_tm_blocks): Replace declaration with that of...
10585 (make_pass_diagnose_tm_blocks): ...new function.
10586 (pass_lower_tm): Replace declaration with that of...
10587 (make_pass_lower_tm): ...new function.
10588 (pass_tm_init): Replace declaration with that of...
10589 (make_pass_tm_init): ...new function.
10590 (pass_tm_mark): Replace declaration with that of...
10591 (make_pass_tm_mark): ...new function.
10592 (pass_tm_memopt): Replace declaration with that of...
10593 (make_pass_tm_memopt): ...new function.
10594 (pass_tm_edges): Replace declaration with that of...
10595 (make_pass_tm_edges): ...new function.
10596 (pass_split_functions): Replace declaration with that of...
10597 (make_pass_split_functions): ...new function.
10598 (pass_feedback_split_functions): Replace declaration with that of...
10599 (make_pass_feedback_split_functions): ...new function.
10600 (pass_strength_reduction): Replace declaration with that of...
10601 (make_pass_strength_reduction): ...new function.
10602 (pass_ipa_lower_emutls): Replace declaration with that of...
10603 (make_pass_ipa_lower_emutls): ...new function.
10604 (pass_ipa_function_and_variable_visibility): Replace declaration with
10605 that of...
10606 (make_pass_ipa_function_and_variable_visibility): ...new function.
10607 (pass_ipa_tree_profile): Replace declaration with that of...
10608 (make_pass_ipa_tree_profile): ...new function.
10609 (pass_early_local_passes): Replace declaration with that of...
10610 (make_pass_early_local_passes): ...new function.
10611 (pass_ipa_whole_program_visibility): Replace declaration with that
10612 of...
10613 (make_pass_ipa_whole_program_visibility): ...new function.
10614 (pass_ipa_lto_gimple_out): Replace declaration with that of...
10615 (make_pass_ipa_lto_gimple_out): ...new function.
10616 (pass_ipa_increase_alignment): Replace declaration with that of...
10617 (make_pass_ipa_increase_alignment): ...new function.
10618 (pass_ipa_inline): Replace declaration with that of...
10619 (make_pass_ipa_inline): ...new function.
10620 (pass_ipa_free_lang_data): Replace declaration with that of...
10621 (make_pass_ipa_free_lang_data): ...new function.
10622 (pass_ipa_free_inline_summary): Replace declaration with that of...
10623 (make_pass_ipa_free_inline_summary): ...new function.
10624 (pass_ipa_cp): Replace declaration with that of...
10625 (make_pass_ipa_cp): ...new function.
10626 (pass_ipa_reference): Replace declaration with that of...
10627 (make_pass_ipa_reference): ...new function.
10628 (pass_ipa_pure_const): Replace declaration with that of...
10629 (make_pass_ipa_pure_const): ...new function.
10630 (pass_ipa_pta): Replace declaration with that of...
10631 (make_pass_ipa_pta): ...new function.
10632 (pass_ipa_lto_finish_out): Replace declaration with that of...
10633 (make_pass_ipa_lto_finish_out): ...new function.
10634 (pass_ipa_tm): Replace declaration with that of...
10635 (make_pass_ipa_tm): ...new function.
10636 (pass_ipa_profile): Replace declaration with that of...
10637 (make_pass_ipa_profile): ...new function.
10638 (pass_ipa_cdtor_merge): Replace declaration with that of...
10639 (make_pass_ipa_cdtor_merge): ...new function.
10640 (pass_cleanup_cfg_post_optimizing): Replace declaration with that
10641 of...
10642 (make_pass_cleanup_cfg_post_optimizing): ...new function.
10643 (pass_init_datastructures): Replace declaration with that of...
10644 (make_pass_init_datastructures): ...new function.
10645 (pass_fixup_cfg): Replace declaration with that of...
10646 (make_pass_fixup_cfg): ...new function.
10647 (pass_expand): Replace declaration with that of...
10648 (make_pass_expand): ...new function.
10649 (pass_instantiate_virtual_regs): Replace declaration with that of...
10650 (make_pass_instantiate_virtual_regs): ...new function.
10651 (pass_rtl_fwprop): Replace declaration with that of...
10652 (make_pass_rtl_fwprop): ...new function.
10653 (pass_rtl_fwprop_addr): Replace declaration with that of...
10654 (make_pass_rtl_fwprop_addr): ...new function.
10655 (pass_jump): Replace declaration with that of...
10656 (make_pass_jump): ...new function.
10657 (pass_jump2): Replace declaration with that of...
10658 (make_pass_jump2): ...new function.
10659 (pass_lower_subreg): Replace declaration with that of...
10660 (make_pass_lower_subreg): ...new function.
10661 (pass_cse): Replace declaration with that of...
10662 (make_pass_cse): ...new function.
10663 (pass_fast_rtl_dce): Replace declaration with that of...
10664 (make_pass_fast_rtl_dce): ...new function.
10665 (pass_ud_rtl_dce): Replace declaration with that of...
10666 (make_pass_ud_rtl_dce): ...new function.
10667 (pass_rtl_dce): Replace declaration with that of...
10668 (make_pass_rtl_dce): ...new function.
10669 (pass_rtl_dse1): Replace declaration with that of...
10670 (make_pass_rtl_dse1): ...new function.
10671 (pass_rtl_dse2): Replace declaration with that of...
10672 (make_pass_rtl_dse2): ...new function.
10673 (pass_rtl_dse3): Replace declaration with that of...
10674 (make_pass_rtl_dse3): ...new function.
10675 (pass_rtl_cprop): Replace declaration with that of...
10676 (make_pass_rtl_cprop): ...new function.
10677 (pass_rtl_pre): Replace declaration with that of...
10678 (make_pass_rtl_pre): ...new function.
10679 (pass_rtl_hoist): Replace declaration with that of...
10680 (make_pass_rtl_hoist): ...new function.
10681 (pass_rtl_store_motion): Replace declaration with that of...
10682 (make_pass_rtl_store_motion): ...new function.
10683 (pass_cse_after_global_opts): Replace declaration with that of...
10684 (make_pass_cse_after_global_opts): ...new function.
10685 (pass_rtl_ifcvt): Replace declaration with that of...
10686 (make_pass_rtl_ifcvt): ...new function.
10687 (pass_into_cfg_layout_mode): Replace declaration with that of...
10688 (make_pass_into_cfg_layout_mode): ...new function.
10689 (pass_outof_cfg_layout_mode): Replace declaration with that of...
10690 (make_pass_outof_cfg_layout_mode): ...new function.
10691 (pass_loop2): Replace declaration with that of...
10692 (make_pass_loop2): ...new function.
10693 (pass_rtl_loop_init): Replace declaration with that of...
10694 (make_pass_rtl_loop_init): ...new function.
10695 (pass_rtl_move_loop_invariants): Replace declaration with that of...
10696 (make_pass_rtl_move_loop_invariants): ...new function.
10697 (pass_rtl_unswitch): Replace declaration with that of...
10698 (make_pass_rtl_unswitch): ...new function.
10699 (pass_rtl_unroll_and_peel_loops): Replace declaration with that of...
10700 (make_pass_rtl_unroll_and_peel_loops): ...new function.
10701 (pass_rtl_doloop): Replace declaration with that of...
10702 (make_pass_rtl_doloop): ...new function.
10703 (pass_rtl_loop_done): Replace declaration with that of...
10704 (make_pass_rtl_loop_done): ...new function.
10705 (pass_web): Replace declaration with that of...
10706 (make_pass_web): ...new function.
10707 (pass_cse2): Replace declaration with that of...
10708 (make_pass_cse2): ...new function.
10709 (pass_df_initialize_opt): Replace declaration with that of...
10710 (make_pass_df_initialize_opt): ...new function.
10711 (pass_df_initialize_no_opt): Replace declaration with that of...
10712 (make_pass_df_initialize_no_opt): ...new function.
10713 (pass_reginfo_init): Replace declaration with that of...
10714 (make_pass_reginfo_init): ...new function.
10715 (pass_inc_dec): Replace declaration with that of...
10716 (make_pass_inc_dec): ...new function.
10717 (pass_stack_ptr_mod): Replace declaration with that of...
10718 (make_pass_stack_ptr_mod): ...new function.
10719 (pass_initialize_regs): Replace declaration with that of...
10720 (make_pass_initialize_regs): ...new function.
10721 (pass_combine): Replace declaration with that of...
10722 (make_pass_combine): ...new function.
10723 (pass_if_after_combine): Replace declaration with that of...
10724 (make_pass_if_after_combine): ...new function.
10725 (pass_ree): Replace declaration with that of...
10726 (make_pass_ree): ...new function.
10727 (pass_partition_blocks): Replace declaration with that of...
10728 (make_pass_partition_blocks): ...new function.
10729 (pass_match_asm_constraints): Replace declaration with that of...
10730 (make_pass_match_asm_constraints): ...new function.
10731 (pass_regmove): Replace declaration with that of...
10732 (make_pass_regmove): ...new function.
10733 (pass_split_all_insns): Replace declaration with that of...
10734 (make_pass_split_all_insns): ...new function.
10735 (pass_fast_rtl_byte_dce): Replace declaration with that of...
10736 (make_pass_fast_rtl_byte_dce): ...new function.
10737 (pass_lower_subreg2): Replace declaration with that of...
10738 (make_pass_lower_subreg2): ...new function.
10739 (pass_mode_switching): Replace declaration with that of...
10740 (make_pass_mode_switching): ...new function.
10741 (pass_sms): Replace declaration with that of...
10742 (make_pass_sms): ...new function.
10743 (pass_sched): Replace declaration with that of...
10744 (make_pass_sched): ...new function.
10745 (pass_ira): Replace declaration with that of...
10746 (make_pass_ira): ...new function.
10747 (pass_reload): Replace declaration with that of...
10748 (make_pass_reload): ...new function.
10749 (pass_clean_state): Replace declaration with that of...
10750 (make_pass_clean_state): ...new function.
10751 (pass_branch_prob): Replace declaration with that of...
10752 (make_pass_branch_prob): ...new function.
10753 (pass_value_profile_transformations): Replace declaration with that
10754 of...
10755 (make_pass_value_profile_transformations): ...new function.
10756 (pass_postreload_cse): Replace declaration with that of...
10757 (make_pass_postreload_cse): ...new function.
10758 (pass_gcse2): Replace declaration with that of...
10759 (make_pass_gcse2): ...new function.
10760 (pass_split_after_reload): Replace declaration with that of...
10761 (make_pass_split_after_reload): ...new function.
10762 (pass_branch_target_load_optimize1): Replace declaration with that
10763 of...
10764 (make_pass_branch_target_load_optimize1): ...new function.
10765 (pass_thread_prologue_and_epilogue): Replace declaration with that
10766 of...
10767 (make_pass_thread_prologue_and_epilogue): ...new function.
10768 (pass_stack_adjustments): Replace declaration with that of...
10769 (make_pass_stack_adjustments): ...new function.
10770 (pass_peephole2): Replace declaration with that of...
10771 (make_pass_peephole2): ...new function.
10772 (pass_if_after_reload): Replace declaration with that of...
10773 (make_pass_if_after_reload): ...new function.
10774 (pass_regrename): Replace declaration with that of...
10775 (make_pass_regrename): ...new function.
10776 (pass_cprop_hardreg): Replace declaration with that of...
10777 (make_pass_cprop_hardreg): ...new function.
10778 (pass_reorder_blocks): Replace declaration with that of...
10779 (make_pass_reorder_blocks): ...new function.
10780 (pass_branch_target_load_optimize2): Replace declaration with that
10781 of...
10782 (make_pass_branch_target_load_optimize2): ...new function.
10783 (pass_leaf_regs): Replace declaration with that of...
10784 (make_pass_leaf_regs): ...new function.
10785 (pass_split_before_sched2): Replace declaration with that of...
10786 (make_pass_split_before_sched2): ...new function.
10787 (pass_compare_elim_after_reload): Replace declaration with that of...
10788 (make_pass_compare_elim_after_reload): ...new function.
10789 (pass_sched2): Replace declaration with that of...
10790 (make_pass_sched2): ...new function.
10791 (pass_stack_regs): Replace declaration with that of...
10792 (make_pass_stack_regs): ...new function.
10793 (pass_stack_regs_run): Replace declaration with that of...
10794 (make_pass_stack_regs_run): ...new function.
10795 (pass_df_finish): Replace declaration with that of...
10796 (make_pass_df_finish): ...new function.
10797 (pass_compute_alignments): Replace declaration with that of...
10798 (make_pass_compute_alignments): ...new function.
10799 (pass_duplicate_computed_gotos): Replace declaration with that of...
10800 (make_pass_duplicate_computed_gotos): ...new function.
10801 (pass_variable_tracking): Replace declaration with that of...
10802 (make_pass_variable_tracking): ...new function.
10803 (pass_free_cfg): Replace declaration with that of...
10804 (make_pass_free_cfg): ...new function.
10805 (pass_machine_reorg): Replace declaration with that of...
10806 (make_pass_machine_reorg): ...new function.
10807 (pass_cleanup_barriers): Replace declaration with that of...
10808 (make_pass_cleanup_barriers): ...new function.
10809 (pass_delay_slots): Replace declaration with that of...
10810 (make_pass_delay_slots): ...new function.
10811 (pass_split_for_shorten_branches): Replace declaration with that of...
10812 (make_pass_split_for_shorten_branches): ...new function.
10813 (pass_split_before_regstack): Replace declaration with that of...
10814 (make_pass_split_before_regstack): ...new function.
10815 (pass_convert_to_eh_region_ranges): Replace declaration with that
10816 of...
10817 (make_pass_convert_to_eh_region_ranges): ...new function.
10818 (pass_shorten_branches): Replace declaration with that of...
10819 (make_pass_shorten_branches): ...new function.
10820 (pass_set_nothrow_function_flags): Replace declaration with that of...
10821 (make_pass_set_nothrow_function_flags): ...new function.
10822 (pass_dwarf2_frame): Replace declaration with that of...
10823 (make_pass_dwarf2_frame): ...new function.
10824 (pass_final): Replace declaration with that of...
10825 (make_pass_final): ...new function.
10826 (pass_rtl_seqabstr): Replace declaration with that of...
10827 (make_pass_rtl_seqabstr): ...new function.
10828 (pass_release_ssa_names): Replace declaration with that of...
10829 (make_pass_release_ssa_names): ...new function.
10830 (pass_early_inline): Replace declaration with that of...
10831 (make_pass_early_inline): ...new function.
10832 (pass_inline_parameters): Replace declaration with that of...
10833 (make_pass_inline_parameters): ...new function.
10834 (pass_update_address_taken): Replace declaration with that of...
10835 (make_pass_update_address_taken): ...new function.
10836 (pass_convert_switch): Replace declaration with that of...
10837 (make_pass_convert_switch): ...new function.
10838 * tree-profile.c (pass_ipa_tree_profile): Convert from a global struct
10839 to a subclass of simple_ipa_opt_pass along with...
10840 (pass_data_ipa_tree_profile): ...new pass_data instance and...
10841 (make_pass_ipa_tree_profile): ...new function.
10842 * tree-sra.c (pass_sra_early): Convert from a global struct to a
10843 subclass of gimple_opt_pass along with...
10844 (pass_data_sra_early): ...new pass_data instance and...
10845 (make_pass_sra_early): ...new function.
10846 (pass_sra): Convert from a global struct to a subclass of
10847 gimple_opt_pass along with...
10848 (pass_data_sra): ...new pass_data instance and...
10849 (make_pass_sra): ...new function.
10850 (pass_early_ipa_sra): Convert from a global struct to a subclass of
10851 gimple_opt_pass along with...
10852 (pass_data_early_ipa_sra): ...new pass_data instance and...
10853 (make_pass_early_ipa_sra): ...new function.
10854 * tree-ssa-ccp.c (pass_ccp): Convert from a global struct to a
10855 subclass of gimple_opt_pass along with...
10856 (pass_data_ccp): ...new pass_data instance and...
10857 (make_pass_ccp): ...new function.
10858 (pass_fold_builtins): Convert from a global struct to a subclass of
10859 gimple_opt_pass along with...
10860 (pass_data_fold_builtins): ...new pass_data instance and...
10861 (make_pass_fold_builtins): ...new function.
10862 * tree-ssa-copy.c (pass_copy_prop): Convert from a global struct to a
10863 subclass of gimple_opt_pass along with...
10864 (pass_data_copy_prop): ...new pass_data instance and...
10865 (make_pass_copy_prop): ...new function.
10866 * tree-ssa-copyrename.c (pass_rename_ssa_copies): Convert from a
10867 global struct to a subclass of gimple_opt_pass along with...
10868 (pass_data_rename_ssa_copies): ...new pass_data instance and...
10869 (make_pass_rename_ssa_copies): ...new function.
10870 * tree-ssa-dce.c (pass_dce): Convert from a global struct to a
10871 subclass of gimple_opt_pass along with...
10872 (pass_data_dce): ...new pass_data instance and...
10873 (make_pass_dce): ...new function.
10874 (pass_dce_loop): Convert from a global struct to a subclass of
10875 gimple_opt_pass along with...
10876 (pass_data_dce_loop): ...new pass_data instance and...
10877 (make_pass_dce_loop): ...new function.
10878 (pass_cd_dce): Convert from a global struct to a subclass of
10879 gimple_opt_pass along with...
10880 (pass_data_cd_dce): ...new pass_data instance and...
10881 (make_pass_cd_dce): ...new function.
10882 * tree-ssa-dom.c (pass_dominator): Convert from a global struct to a
10883 subclass of gimple_opt_pass along with...
10884 (pass_data_dominator): ...new pass_data instance and...
10885 (make_pass_dominator): ...new function.
10886 (pass_phi_only_cprop): Convert from a global struct to a subclass of
10887 gimple_opt_pass along with...
10888 (pass_data_phi_only_cprop): ...new pass_data instance and...
10889 (make_pass_phi_only_cprop): ...new function.
10890 * tree-ssa-dse.c (pass_dse): Convert from a global struct to a
10891 subclass of gimple_opt_pass along with...
10892 (pass_data_dse): ...new pass_data instance and...
10893 (make_pass_dse): ...new function.
10894 * tree-ssa-forwprop.c (pass_forwprop): Convert from a global struct to
10895 a subclass of gimple_opt_pass along with...
10896 (pass_data_forwprop): ...new pass_data instance and...
10897 (make_pass_forwprop): ...new function.
10898 * tree-ssa-ifcombine.c (pass_tree_ifcombine): Convert from a global
10899 struct to a subclass of gimple_opt_pass along with...
10900 (pass_data_tree_ifcombine): ...new pass_data instance and...
10901 (make_pass_tree_ifcombine): ...new function.
10902 * tree-ssa-loop-ch.c (pass_ch): Convert from a global struct to a
10903 subclass of gimple_opt_pass along with...
10904 (pass_data_ch): ...new pass_data instance and...
10905 (make_pass_ch): ...new function.
10906 * tree-ssa-loop.c (pass_tree_loop): Convert from a global struct to a
10907 subclass of gimple_opt_pass along with...
10908 (pass_data_tree_loop): ...new pass_data instance and...
10909 (make_pass_tree_loop): ...new function.
10910 (pass_tree_loop_init): Convert from a global struct to a subclass of
10911 gimple_opt_pass along with...
10912 (pass_data_tree_loop_init): ...new pass_data instance and...
10913 (make_pass_tree_loop_init): ...new function.
10914 (pass_lim): Convert from a global struct to a subclass of
10915 gimple_opt_pass along with...
10916 (pass_data_lim): ...new pass_data instance and...
10917 (make_pass_lim): ...new function.
10918 (pass_tree_unswitch): Convert from a global struct to a subclass of
10919 gimple_opt_pass along with...
10920 (pass_data_tree_unswitch): ...new pass_data instance and...
10921 (make_pass_tree_unswitch): ...new function.
10922 (pass_predcom): Convert from a global struct to a subclass of
10923 gimple_opt_pass along with...
10924 (pass_data_predcom): ...new pass_data instance and...
10925 (make_pass_predcom): ...new function.
10926 (pass_vectorize): Convert from a global struct to a subclass of
10927 gimple_opt_pass along with...
10928 (pass_data_vectorize): ...new pass_data instance and...
10929 (make_pass_vectorize): ...new function.
10930 (pass_graphite): Convert from a global struct to a subclass of
10931 gimple_opt_pass along with...
10932 (pass_data_graphite): ...new pass_data instance and...
10933 (make_pass_graphite): ...new function.
10934 (pass_graphite_transforms): Convert from a global struct to a subclass
10935 of gimple_opt_pass along with...
10936 (pass_data_graphite_transforms): ...new pass_data instance and...
10937 (make_pass_graphite_transforms): ...new function.
10938 (pass_check_data_deps): Convert from a global struct to a subclass of
10939 gimple_opt_pass along with...
10940 (pass_data_check_data_deps): ...new pass_data instance and...
10941 (make_pass_check_data_deps): ...new function.
10942 (pass_iv_canon): Convert from a global struct to a subclass of
10943 gimple_opt_pass along with...
10944 (pass_data_iv_canon): ...new pass_data instance and...
10945 (make_pass_iv_canon): ...new function.
10946 (pass_scev_cprop): Convert from a global struct to a subclass of
10947 gimple_opt_pass along with...
10948 (pass_data_scev_cprop): ...new pass_data instance and...
10949 (make_pass_scev_cprop): ...new function.
10950 (pass_record_bounds): Convert from a global struct to a subclass of
10951 gimple_opt_pass along with...
10952 (pass_data_record_bounds): ...new pass_data instance and...
10953 (make_pass_record_bounds): ...new function.
10954 (pass_complete_unroll): Convert from a global struct to a subclass of
10955 gimple_opt_pass along with...
10956 (pass_data_complete_unroll): ...new pass_data instance and...
10957 (make_pass_complete_unroll): ...new function.
10958 (pass_complete_unrolli): Convert from a global struct to a subclass of
10959 gimple_opt_pass along with...
10960 (pass_data_complete_unrolli): ...new pass_data instance and...
10961 (make_pass_complete_unrolli): ...new function.
10962 (pass_parallelize_loops): Convert from a global struct to a subclass
10963 of gimple_opt_pass along with...
10964 (pass_data_parallelize_loops): ...new pass_data instance and...
10965 (make_pass_parallelize_loops): ...new function.
10966 (pass_loop_prefetch): Convert from a global struct to a subclass of
10967 gimple_opt_pass along with...
10968 (pass_data_loop_prefetch): ...new pass_data instance and...
10969 (make_pass_loop_prefetch): ...new function.
10970 (pass_iv_optimize): Convert from a global struct to a subclass of
10971 gimple_opt_pass along with...
10972 (pass_data_iv_optimize): ...new pass_data instance and...
10973 (make_pass_iv_optimize): ...new function.
10974 (pass_tree_loop_done): Convert from a global struct to a subclass of
10975 gimple_opt_pass along with...
10976 (pass_data_tree_loop_done): ...new pass_data instance and...
10977 (make_pass_tree_loop_done): ...new function.
10978 * tree-ssa-math-opts.c (pass_cse_reciprocals): Convert from a global
10979 struct to a subclass of gimple_opt_pass along with...
10980 (pass_data_cse_reciprocals): ...new pass_data instance and...
10981 (make_pass_cse_reciprocals): ...new function.
10982 (pass_cse_sincos): Convert from a global struct to a subclass of
10983 gimple_opt_pass along with...
10984 (pass_data_cse_sincos): ...new pass_data instance and...
10985 (make_pass_cse_sincos): ...new function.
10986 (pass_optimize_bswap): Convert from a global struct to a subclass of
10987 gimple_opt_pass along with...
10988 (pass_data_optimize_bswap): ...new pass_data instance and...
10989 (make_pass_optimize_bswap): ...new function.
10990 (pass_optimize_widening_mul): Convert from a global struct to a
10991 subclass of gimple_opt_pass along with...
10992 (pass_data_optimize_widening_mul): ...new pass_data instance and...
10993 (make_pass_optimize_widening_mul): ...new function.
10994 * tree-ssa-phiopt.c (pass_phiopt): Convert from a global struct to a
10995 subclass of gimple_opt_pass along with...
10996 (pass_data_phiopt): ...new pass_data instance and...
10997 (make_pass_phiopt): ...new function.
10998 (pass_cselim): Convert from a global struct to a subclass of
10999 gimple_opt_pass along with...
11000 (pass_data_cselim): ...new pass_data instance and...
11001 (make_pass_cselim): ...new function.
11002 * tree-ssa-phiprop.c (pass_phiprop): Convert from a global struct to a
11003 subclass of gimple_opt_pass along with...
11004 (pass_data_phiprop): ...new pass_data instance and...
11005 (make_pass_phiprop): ...new function.
11006 * tree-ssa-pre.c (pass_pre): Convert from a global struct to a
11007 subclass of gimple_opt_pass along with...
11008 (pass_data_pre): ...new pass_data instance and...
11009 (make_pass_pre): ...new function.
11010 (pass_fre): Convert from a global struct to a subclass of
11011 gimple_opt_pass along with...
11012 (pass_data_fre): ...new pass_data instance and...
11013 (make_pass_fre): ...new function.
11014 * tree-ssa-reassoc.c (pass_reassoc): Convert from a global struct to a
11015 subclass of gimple_opt_pass along with...
11016 (pass_data_reassoc): ...new pass_data instance and...
11017 (make_pass_reassoc): ...new function.
11018 * tree-ssa-sink.c (pass_sink_code): Convert from a global struct to a
11019 subclass of gimple_opt_pass along with...
11020 (pass_data_sink_code): ...new pass_data instance and...
11021 (make_pass_sink_code): ...new function.
11022 * tree-ssa-strlen.c (pass_strlen): Convert from a global struct to a
11023 subclass of gimple_opt_pass along with...
11024 (pass_data_strlen): ...new pass_data instance and...
11025 (make_pass_strlen): ...new function.
11026 * tree-ssa-structalias.c (pass_build_alias): Convert from a global
11027 struct to a subclass of gimple_opt_pass along with...
11028 (pass_data_build_alias): ...new pass_data instance and...
11029 (make_pass_build_alias): ...new function.
11030 (pass_build_ealias): Convert from a global struct to a subclass of
11031 gimple_opt_pass along with...
11032 (pass_data_build_ealias): ...new pass_data instance and...
11033 (make_pass_build_ealias): ...new function.
11034 (pass_ipa_pta): Convert from a global struct to a subclass of
11035 simple_ipa_opt_pass along with...
11036 (pass_data_ipa_pta): ...new pass_data instance and...
11037 (make_pass_ipa_pta): ...new function.
11038 * tree-ssa-uncprop.c (pass_uncprop): Convert from a global struct to a
11039 subclass of gimple_opt_pass along with...
11040 (pass_data_uncprop): ...new pass_data instance and...
11041 (make_pass_uncprop): ...new function.
11042 * tree-ssa-uninit.c (pass_late_warn_uninitialized): Convert from a
11043 global struct to a subclass of gimple_opt_pass along with...
11044 (pass_data_late_warn_uninitialized): ...new pass_data instance and...
11045 (make_pass_late_warn_uninitialized): ...new function.
11046 * tree-ssa.c (pass_init_datastructures): Convert from a global struct
11047 to a subclass of gimple_opt_pass along with...
11048 (pass_data_init_datastructures): ...new pass_data instance and...
11049 (make_pass_init_datastructures): ...new function.
11050 (pass_early_warn_uninitialized): Convert from a global struct to a
11051 subclass of gimple_opt_pass along with...
11052 (pass_data_early_warn_uninitialized): ...new pass_data instance and...
11053 (make_pass_early_warn_uninitialized): ...new function.
11054 (pass_update_address_taken): Convert from a global struct to a
11055 subclass of gimple_opt_pass along with...
11056 (pass_data_update_address_taken): ...new pass_data instance and...
11057 (make_pass_update_address_taken): ...new function.
11058 * tree-ssanames.c (pass_release_ssa_names): Convert from a global
11059 struct to a subclass of gimple_opt_pass along with...
11060 (pass_data_release_ssa_names): ...new pass_data instance and...
11061 (make_pass_release_ssa_names): ...new function.
11062 * tree-stdarg.c (pass_stdarg): Convert from a global struct to a
11063 subclass of gimple_opt_pass along with...
11064 (pass_data_stdarg): ...new pass_data instance and...
11065 (make_pass_stdarg): ...new function.
11066 * tree-switch-conversion.c (pass_convert_switch): Convert from a
11067 global struct to a subclass of gimple_opt_pass along with...
11068 (pass_data_convert_switch): ...new pass_data instance and...
11069 (make_pass_convert_switch): ...new function.
11070 * tree-tailcall.c (pass_tail_recursion): Convert from a global struct
11071 to a subclass of gimple_opt_pass along with...
11072 (pass_data_tail_recursion): ...new pass_data instance and...
11073 (make_pass_tail_recursion): ...new function.
11074 (pass_tail_calls): Convert from a global struct to a subclass of
11075 gimple_opt_pass along with...
11076 (pass_data_tail_calls): ...new pass_data instance and...
11077 (make_pass_tail_calls): ...new function.
11078 * tree-vect-generic.c (pass_lower_vector): Convert from a global
11079 struct to a subclass of gimple_opt_pass along with...
11080 (pass_data_lower_vector): ...new pass_data instance and...
11081 (make_pass_lower_vector): ...new function.
11082 (pass_lower_vector_ssa): Convert from a global struct to a subclass of
11083 gimple_opt_pass along with...
11084 (pass_data_lower_vector_ssa): ...new pass_data instance and...
11085 (make_pass_lower_vector_ssa): ...new function.
11086 * tree-vectorizer.c (pass_slp_vectorize): Convert from a global struct
11087 to a subclass of gimple_opt_pass along with...
11088 (pass_data_slp_vectorize): ...new pass_data instance and...
11089 (make_pass_slp_vectorize): ...new function.
11090 (pass_ipa_increase_alignment): Convert from a global struct to a
11091 subclass of simple_ipa_opt_pass along with...
11092 (pass_data_ipa_increase_alignment): ...new pass_data instance and...
11093 (make_pass_ipa_increase_alignment): ...new function.
11094 * tree-vrp.c (pass_vrp): Convert from a global struct to a subclass of
11095 gimple_opt_pass along with...
11096 (pass_data_vrp): ...new pass_data instance and...
11097 (make_pass_vrp): ...new function.
11098 * tree.c (pass_ipa_free_lang_data): Convert from a global struct to a
11099 subclass of simple_ipa_opt_pass along with...
11100 (pass_data_ipa_free_lang_data): ...new pass_data instance and...
11101 (make_pass_ipa_free_lang_data): ...new function.
11102 * tsan.c (pass_tsan): Convert from a global struct to a subclass of
11103 gimple_opt_pass along with...
11104 (pass_data_tsan): ...new pass_data instance and...
11105 (make_pass_tsan): ...new function.
11106 (pass_tsan_O0): Convert from a global struct to a subclass of
11107 gimple_opt_pass along with...
11108 (pass_data_tsan_O0): ...new pass_data instance and...
11109 (make_pass_tsan_O0): ...new function.
11110 * var-tracking.c (pass_variable_tracking): Convert from a global
11111 struct to a subclass of rtl_opt_pass along with...
11112 (pass_data_variable_tracking): ...new pass_data instance and...
11113 (make_pass_variable_tracking): ...new function.
11114 * web.c (pass_web): Convert from a global struct to a subclass of
11115 rtl_opt_pass along with...
11116 (pass_data_web): ...new pass_data instance and...
11117 (make_pass_web): ...new function.
11118 * config/epiphany/epiphany.h (pass_mode_switch_use): Replace
11119 declaration with that of...
11120 (make_pass_mode_switch_use): ...new function.
11121 (pass_resolve_sw_modes): Replace declaration with that of...
11122 (make_pass_resolve_sw_modes): ...new function.
11123 * config/epiphany/mode-switch-use.c (pass_mode_switch_use): Convert
11124 from a global struct to a subclass of rtl_opt_pass along with...
11125 (pass_data_mode_switch_use): ...new pass_data instance and...
11126 (make_pass_mode_switch_use): ...new function.
11127 * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes): Convert
11128 from a global struct to a subclass of rtl_opt_pass along with...
11129 (pass_data_resolve_sw_modes): ...new pass_data instance and...
11130 (make_pass_resolve_sw_modes): ...new function.
11131 * config/i386/i386.c (pass_insert_vzeroupper): Convert from a global
11132 struct to a subclass of rtl_opt_pass along with...
11133 (pass_data_insert_vzeroupper): ...new pass_data instance and...
11134 (make_pass_insert_vzeroupper): ...new function.
11135 * config/sparc/sparc.c (pass_work_around_errata): Convert from a
11136 global struct to a subclass of rtl_opt_pass along with...
11137 (pass_data_work_around_errata): ...new pass_data instance and...
11138 (make_pass_work_around_errata): ...new function.
11139 * config/mips/mips.c (pass_mips_machine_reorg2): Convert from a global
11140 struct to a subclass of rtl_opt_pass along with...
11141 (pass_data_mips_machine_reorg2): ...new pass_data instance and...
11142 (make_pass_mips_machine_reorg2): ...new function.
11143
6a389ed5
DM
111442013-08-05 David Malcolm <dmalcolm@redhat.com>
11145
11146 * passes.c (pass_manager::operator new): New.
11147
f7695dbf
DM
111482013-08-05 David Malcolm <dmalcolm@redhat.com>
11149
11150 Handwritten part of conversion of passes to C++ classes.
11151
11152 * Makefile.in (PASS_MANAGER_H): Add dep on pass-instances.def.
11153 (toplev.o): Add dep on PASS_MANAGER_H.
11154 * cgraphunit.c (cgraph_process_new_functions): Rework invocation
11155 of early local pases to reflect this moving from a global to a
11156 member of gcc::pass_manager.
11157 (cgraph_add_new_function): Likewise.
11158 * lto-cgraph.c (lto_output_node): Update for conversion of
11159 struct ipa_opt_pass_d to a C++ subclass of opt_pass.
11160 * passes.c (opt_pass::clone): New.
11161 (opt_pass::gate): New.
11162 (opt_pass::execute): New.
11163 (opt_pass::opt_pass): New.
11164 (pass_manager::execute_early_local_passes): New.
11165 (pass_manager::execute_pass_mode_switching): new.
11166 (finish_optimization_passes): Convert to...
11167 (pass_manager::finish_optimization_passes): ...this.
11168 (finish_optimization_passes): Update for conversion of passes to
11169 C++ classes.
11170 (register_dump_files_1): Use has_gate since we cannot portably
11171 check a vtable entry against NULL.
11172 (dump_one_pass): Likewise.
11173 (ipa_write_summaries_2): Likewise.
11174 (ipa_write_optimization_summaries_1): Likewise.
11175 (ipa_read_summaries_1): Likewise.
11176 (ipa_read_optimization_summaries_1): Likewise.
11177 (execute_ipa_stmt_fixups): Likewise.
11178 (pass_manager::pass_manager): Rewrite pass-creation, invoking
11179 pass-creation functions rather than wiring up globals, and
11180 storing the results in fields of pass_manager generated using
11181 pass-instances.def.
11182 (pass_manager::dump_profile_report): Update for conversion of
11183 passes to C++ classes.
11184 (pass_manager::execute_ipa_summary_passes): Likewise.
11185 (execute_one_ipa_transform_pass): Likewise.
11186 (execute_one_pass): Use has_gate and has_execute since we cannot
11187 portably check a vtable entry against NULL.
11188 * pass_manager.h (pass_manager::finish_optimization_passes): New.
11189 (pass_manager): Use pass-instances.def to add fields for the
11190 various pass instances.
11191 * toplev.c (finalize): Update for move of
11192 finish_optimization_passes to a method of gcc::pass_manager.
11193 * toplev.h (finish_optimization_passes): Move to method of class
11194 pass_manager.
11195 * tree-pass.h (struct pass_data): New.
03b0ee0a 11196 (opt_pass): Convert to C++ class, make it a subclass of pass_data.
f7695dbf
DM
11197 (opt_pass::gate): Convert to virtual function.
11198 (opt_pass::~opt_pass): New.
11199 (opt_pass::clone): New.
11200 (opt_pass::execute): Convert to virtual function.
11201 (opt_pass::opt_pass): New.
11202 (opt_pass::ctxt_): new.
11203 (gimple_opt_pass): Convert to subclass of opt_pass.
11204 (gimple_opt_pass::gimple_opt_pass): New.
11205 (rtl_opt_pass): Convert to subclass of opt_pass.
11206 (rtl_opt_pass::rtl_opt_pass): New.
11207 (ipa_opt_pass_d): Convert to subclass of opt_pass.
11208 (ipa_opt_pass_d::ipa_opt_pass_d): New.
11209 (simple_ipa_opt_pass): Convert to subclass of opt_pass.
11210 (simple_ipa_opt_pass::simple_ipa_opt_pass): New.
11211 * config/i386/i386.c (rest_of_handle_insert_vzeroupper): Rework
11212 invocation of pass_mode_switching to reflect this moving from a
11213 global to a member of gcc::pass_manager.
11214 (ix86_option_override): Rework how pass_insert_vzeroupper is
11215 added to the pass_manager to reflect autogenerated changes.
03b0ee0a 11216 * config/i386/t-i386 (i386.o) Add deps on CONTEXT_H and PASS_MANAGER_H.
f7695dbf 11217
d0b2f831
RE
112182013-08-05 Richard Earnshaw <rearnsha@arm.com>
11219
11220 PR rtl-optimization/57708
11221 * recog.c (peep2_find_free_register): Validate all regs in a
11222 multi-reg mode.
11223
51a5c0c2
JH
112242013-08-05 Jan Hubicka <jh@suse.cz>
11225
11226 PR lto/57602
03b0ee0a
UB
11227 * cgraph.c (verify_cgraph_node): Accept local flags from other
11228 partitions.
51a5c0c2
JH
11229 * ipa.c (symtab_remove_unreachable_nodes): Do not clear local flag.
11230 (function_and_variable_visibility): Likewise.
11231 * trans-mem.c (ipa_tm_create_version): TM versions are not local.
11232
65f0a120
GDR
112332013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
11234
11235 * graph.c (init_graph_slim_pretty_print): Remove.
11236 (print_graph_cfg): Do not call it. Use local pretty printer.
11237 (start_graph_dump): Likewise.
11238
b3f80694
GDR
112392013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
11240
11241 * gimple-pretty-print.c (buffer): Remove.
11242 (initialized): Likewise.
11243 (maybe_init_pretty_print): Likewise.
11244 (print_gimple_stmt): Do not call it. Use non-static local
11245 pretty_printer variable.
11246 (print_gimple_expr): Likewise.
11247 (print_gimple_seq): Likewise.
11248 (gimple_dump_bb): Likewise.
11249
11a877b3
GDR
112502013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
11251
11252 * asan.c (asan_pp): Remove.
11253 (asan_pp_initialized): Likewise.
11254 (asan_pp_initialize): Likewise.
11255 (asan_pp_string): Take a pretty_printer parameter. Adjust callers.
11256 (asan_emit_stack_protection): Tidy. Use local pretty printer.
11257 (asan_add_global): Likewise.
11258
b066401f
GDR
112592013-08-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
11260
11261 * pretty-print.h (pp_base): Remove. Adjust dependent macros.
11262 * diagnostic.h (diagnostic_flush_buffer): Adjust.
11263 * pretty-print.c (pp_formatted_text_data): Likewise.
11264 (pp_indent): Rename from pp_base_indent.
11265 (pp_format): Rename from pp_base_format.
11266 (pp_output_formatted_text): Rename from pp_base_output_formatted_text.
11267 (pp_format_verbatim): Rename from pp_base_format_verbatim.
11268 (pp_flush): Rename from pp_base_flush.
11269 (pp_set_line_maximum_length): Rename from
11270 pp_base_set_line_maximum_length.
11271 (pp_clear_output_area): Rename from pp_base_clear_output_area.
11272 (pp_set_prefix): Rename from pp_base_set_prefix.
11273 (pp_destroy_prefix): Rename from pp_base_destroy_prefix.
11274 (pp_emit_prefix): Rename from pp_base_emit_prefix.
11275 (pp_append_text): Rename from pp_base_append_text.
11276 (pp_formatted_text): Rename from pp_base_formatted_text.
11277 (pp_last_position_in_text): Rename from pp_base_last_position_in_text.
11278 (pp_remaining_character_count_for_line): Rename from
11279 pp_base_remaining_character_count_for_line.
11280 (pp_newline): Rename from pp_base_newline.
11281 (pp_character): Rename from pp_base_character.
11282 (pp_string): Rename from pp_base_string.
11283 (pp_maybe_space): Rename from pp_base_maybe_space.
11284 * asan.c (asan_pp_string): Adjust.
11285 (asan_emit_stack_protection): Likewise.
11286 (asan_add_global): Likewise.
11287 * sched-vis.c (str_pattern_slim): Adjust pretty printer function call.
11288 * tree-mudflap.c (mf_varname_tree): Likewise.
11289 * tree-pretty-print.c (pp_tree_identifier): Rename from
11290 pp_base_tree_identifier.
11291 * tree-pretty-print.h (pp_tree_identifier): Remove macro definition.
11292 Declare as function.
11293
137a1a27
GDR
112942013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
11295
11296 * pretty-print.h (pp_bar_bar): New.
11297 (pp_ampersand_ampersand): Likewise.
11298 (pp_less_equal): Likewise.
11299 (pp_greater_equal): Likewise.
11300 * gimple-pretty-print.c (dump_ternary_rhs): Use specialized pretty
11301 printer functions instead of pp_string or operators and punctuators.
11302 (dump_gimple_call): Likewise.
11303 (dump_gimple_omp_for): Likewise.
11304 (dump_gimple_transaction): Likewise.
11305 (dump_gimple_phi): Likewise.
11306 (pp_gimple_stmt_1): Likewise.
11307 * sched-vis.c (print_insn): Likewise.
11308 * tree-mudflap.c (mf_varname_tree): Likewise.
11309 * tree-pretty-print.c (dump_block_node): Likewise.
11310 (dump_generic_node): Likewise.
11311
815effe1
JH
113122013-08-02 Jan Hubicka <jh@suse.cz>
11313
11314 * lto-cgraph.c (compute_ltrans_boundary): Add abstract origins into
11315 boundaries.
11316 * lto-streamer-out.c (tree_is_indexable): Results decls and
11317 parm decls are not indexable.
11318 (DFS_write_tree_body): Do not follow args and results.
11319 (hash_tree): Likewise.
11320 (output_functions): Rearrange so struct function is needed
11321 only when real body is output; be able to also ouptut abstract
11322 functions; output DECL_ARGUMENTS and DECL_RESULT.
11323 (lto_output): When not in WPA, ale store abstract functions.
11324 (write_symbol): Do not care about RESULT_DECL.
11325 (output_symbol_p): Handle correctly sbtract decls.
11326 * lto-streamer-in.c (input_function): Rearrange so struct
11327 function can be NULL at entry; allow streaming of
11328 functions w/o body; store DECL_ARGUMENTS and DECL_RESULT.
11329 * ipa.c (symtab_remove_unreachable_nodes): Silence confused
11330 sanity check during LTO.
11331 * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Skip
11332 RESULT_DECl and DECL_ARGUMENTS.
11333 * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
11334 Likewise.
11335
07838b13
GDR
113362013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
11337
11338 * pretty-print.h (pp_underscore): New.
11339 (pp_comma): Tidy.
11340 * gimple-pretty-print.c (dump_unary_rhs): Use specialized pretty
11341 printer functions instead of pp_character.
11342 (dump_binary_rhs): Likewise.
11343 (dump_ternary_rhs): Likewise.
11344 (dump_gimple_call_args): Likewise.
11345 (pp_points_to_solution): Likewise.
11346 (dump_gimple_call): Likewise.
11347 (dump_gimple_switch): Likewise.
11348 (dump_gimple_cond): Likewise.
11349 (dump_gimple_bind): Likewise.
11350 (dump_gimple_try): Likewise.
11351 (dump_gimple_omp_for): Likewise.
11352 (dump_gimple_omp_continue): Likewise.
11353 (dump_gimple_omp_single): Likewise.
11354 (dump_gimple_omp_sections): Likewise.
11355 (dump_gimple_omp_block): Likewise.
11356 (dump_gimple_omp_critical): Likewise.
11357 (dump_gimple_transaction): Likewise.
11358 (dump_gimple_asm): Likewise.
11359 (dump_gimple_phi): Likewise.
11360 (dump_gimple_omp_parallel): Likewise.
11361 (dump_gimple_omp_task): Likewise.
11362 (dump_gimple_omp_atomic_load): Likewise.
11363 (dump_gimple_omp_atomic_store): Likewise.
11364 (dump_gimple_mem_ops): Likewise.
11365 (pp_gimple_stmt_1): Likewise.
11366 (pp_cfg_jump): Likewise.
11367 (dump_implicit_edges): Likewise.
11368 (gimple_dump_bb_for_graph): Likewise.
11369 * graph.c (draw_cfg_node): Likewise.
11370 * langhooks.c (lhd_print_error_function): Likewise.
11371 * sched-vis.c (print_exp): Likewise.
11372 (print_value): Likewise.
11373 (print_pattern): Likewise.
11374 (print_insn): Likewise.
11375 (rtl_dump_bb_for_graph): Likewise.
11376 * tree-pretty-print.c (dump_function_declaration): Likewise.
11377 (dump_array_domain): Likewise.
11378 (dump_omp_clause): Likewise.
11379 (dump_location): Likewise.
11380 (dump_generic_node): Likewise.
11381 (print_struct_decl): Likewise.
11382 * diagnostic.c (diagnostic_show_locus): Use pp_space.
11383
bb0d2039
BS
113842013-08-03 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
11385
11386 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Update
11387 candidate table when replacing a candidate statement.
11388 (replace_rhs_if_not_dup): Likewise.
11389 (replace_one_candidate): Likewise.
11390
bc0ec027 113912013-08-02 Jan Hubicka <jh@suse.cz>
cdaa808a 11392 Martin Liska <marxin.liska@gmail.com>
bc0ec027
JH
11393
11394 * cgraphunit.c (add_new_function): Fix logic when adding from
11395 late IPA pass.
11396 (assemble_thunk): Rename to ...
03b0ee0a
UB
11397 (expand_thunk); .. this one; export; get it working with
11398 general functions; make produced gimple valid.
bc0ec027
JH
11399 * cgraph.h (expand_thunk): Declare.
11400
0e8853ee
JH
114012013-08-02 Jan Hubicka <jh@suse.cz>
11402
03b0ee0a
UB
11403 * ipa-cp.c (gather_context_independent_values): Use
11404 ipa_get_param_move_cost.
11405 (get_replacement_map): Remove PARAM; move parameter folding
11406 into tree-inline.c
0e8853ee
JH
11407 (create_specialized_node): Update.
11408 * ipa-prop.c (ipa_populate_param_decls): Do not look for origins;
11409 assert that we have gimple body; update move_cost.
11410 (count_formal_params): Assert that we have gimple body.
11411 (ipa_dump_param): New function.
11412 (ipa_alloc_node_params): Break out from ...
11413 (ipa_initialize_node_params): ... here.
11414 (ipa_get_vector_of_formal_parms): ICE when used in WPA.
11415 (ipa_write_node_info): Stream move costs.
11416 (ipa_read_node_info): Read move costs.
11417 (ipa_update_after_lto_read): Do not recompute node params.
11418 * ipa-prop.h (ipa_param_descriptor): Add move_cost.
11419 (ipa_get_param): Check we are not in WPA.
11420 (ipa_get_param_move_cost): New.
11421 * tree-inline.c (tree_function_versioning): Fold replacement as needed.
11422 * ipa-inline-analysis.c (inline_node_duplication_hook): Expect only
11423 parm numbers to be present.
11424
ecee672b
VM
114252013-08-02 Vladimir Makarov <vmakarov@redhat.com>
11426
11427 PR rtl-optimization/58048
11428 * lra-constraints.c (process_alt_operands): Don't check asm
11429 operand on register.
11430
13ec0527
EB
114312013-08-02 Eric Botcazou <ebotcazou@adacore.com>
11432
11433 * config/sparc/sparc.c (sparc_emit_membar_for_model) <SMM_TSO>: Add
11434 the implied StoreLoad barrier for atomic operations if before.
11435
af15184a
JH
114362013-08-02 Jan Hubicka <jh@suse.cz>
11437 Martin Liska <marxin.liska@gmail.com>
11438
03b0ee0a
UB
11439 * cgraph.c (cgraph_function_body_availability): Do not check
11440 cgraph flags.
af15184a
JH
11441 * cgraph.h (symtab_for_node_and_aliases, symtab_nonoverwritable_alias,
11442 symtab_node_availability): Declare.
11443 * ipa.c (can_replace_by_local_alias): New.
11444 (function_and_variable_visibility): Use it.
03b0ee0a
UB
11445 * symtab.c (symtab_for_node_and_aliases,
11446 symtab_nonoverwritable_alias_1, symtab_nonoverwritable_alias): New.
af15184a 11447
01e54ef8
VM
114482013-08-02 Vladimir Makarov <vmakarov@redhat.com>
11449
11450 PR rtl-optimization/57963
03b0ee0a 11451 * lra-constraints.c (reverse_equiv_p, contains_reloaded_insn_p): New.
01e54ef8
VM
11452 (lra_constraints): Use them.
11453
e2fd7ca7
SN
114542013-08-02 Sofiane Naci <sofiane.naci@arm.com>
11455
03b0ee0a
UB
11456 * config/arm/types.md (define_attr "type"): Add "load_acq"
11457 and "store_rel".
e2fd7ca7
SN
11458 * config/arm/cortex-a53.md (cortex_a53_load1): Update for attribute
11459 changes.
11460 (cortex_a53_store1): Likewise.
11461
0dcc26c3
JH
114622013-08-01 Jan Hubicka <jh@suse.cz>
11463
03b0ee0a
UB
11464 * ipa.c (symtab_remove_unreachable_nodes): Nodes in other
11465 partitions are not needed.
0dcc26c3 11466
0bd72901
UB
114672013-08-01 Uros Bizjak <ubizjak@gmail.com>
11468
11469 * config/i386/i386.h (MAYBE_NON_Q_CLASS_P): New.
11470 * config/i386/i386.c (ix86_secondary_reload): Use INTEGER_CLASS_P and
11471 MAYBE_NON_Q_CLASS_P where appropriate.
11472
12123452
JH
114732013-08-01 Jan Hubicka <jh@suse.cz>
11474
11475 * cgraph.h (release_function_body): Declare.
11476 * tree.c (free_lang_data_in_decl): Free, parameters and return values
11477 of unused delcarations.
11478
ce852f9c
KT
114792013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11480
03b0ee0a
UB
11481 * config/arm/arm.md (minmax_arithsi_non_canon): Emit canonical
11482 RTL form when subtracting a constant.
ce852f9c 11483
c743b246
KT
114842013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11485
11486 * config/arm/arm.md (peepholes for eq (reg1) (reg2/imm)):
11487 Generate canonical plus rtx with negated immediate instead of minus
11488 where appropriate.
11489 * config/arm/arm.c (thumb2_reorg): Handle ADCS <Rd>, <Rn> case.
11490
c0c123ef
JH
114912013-08-01 Jan Hubicka <jh@suse.cz>
11492
11493 * cgraph.c (cgraph_release_function_body): Use used_as_abstract_origin.
11494 (cgraph_release_function_body): Likewise.
11495 (cgraph_can_remove_if_no_direct_calls_p): Likewise.
11496 * cgraph.h (cgrpah_node): Rename abstract_and_needed
11497 to used_as_abstract_origin.
11498 * tree-inline-transfrom.c (can_remove_node_now_p_1): Do not remove
11499 symbols used as abstract origins.
11500 * cgraphunit.c (analyze_functions): Update.
0bd72901
UB
11501 * ipa.c (symtab_remove_unreachable_nodes): Recompute
11502 used_as_abstract_origin.
c0c123ef 11503 * tree-inline.c (tree_function_versioning): Update
0bd72901
UB
11504 used_as_abstract_origin; be ready for DECL_RESULT and
11505 DECL_ARGUMENTS to be NULL.
c0c123ef 11506
0bd72901
UB
11507 * lto-symtab.c (lto_symtab_merge_symbols): Merge duplicated nodes
11508 for abstract functions.
11509 * cgraph.h (symtab_real_symbol_p): Abstract declarations are not
11510 real symbols.
c0c123ef 11511
1f029433
JH
115122013-08-01 Jan Hubicka <jh@suse.cz>
11513
11514 * profile.c (compute_value_histograms): Fix thinko.
11515
c451f4d6
SN
115162013-08-01 Sofiane Naci <sofiane.naci@arm.com>
11517
11518 * config.gcc (aarch64*-*-*): Add aarch-common.o to extra_objs. Add
11519 aarch-common-protos.h to extra_headers.
11520 (aarch64*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
11521 * config/aarch64/aarch64.md: Include "../arm/cortex-a53.md".
11522 * config/aarch64/t-aarch64 (aarch-common.o): Define.
11523
34b512f5
SN
115242013-08-01 Sofiane Naci <sofiane.naci@arm.com>
11525
11526 * config/aarch64/aarch64.md (define_attr "type"): Delete.
11527 Include "../arm/types.md". Define "type" attribute for all patterns.
11528 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update for
11529 attribute changes.
11530
d86e633a
MM
115312013-07-31 Michael Meissner <meissner@linux.vnet.ibm.com>
11532
11533 * config/rs6000/predicates.md (fusion_gpr_addis): New predicates
11534 to support power8 load fusion.
11535 (fusion_gpr_mem_load): Likewise.
11536
11537 * config/rs6000/rs6000-modes.def (PTImode): Update a comment.
11538
11539 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): New
11540 declarations for power8 load fusion.
11541 (emit_fusion_gpr_load): Likewise.
11542
11543 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
11544 tuning for power8, turn on fusion mode by default. Turn on sign
11545 extending fusion mode if normal fusion mode is on, and we are at
11546 -O2 or -O3.
11547 (fusion_gpr_load_p): New function, return true if we can fuse an
11548 addis instruction with a dependent load to a GPR.
11549 (emit_fusion_gpr_load): Emit the instructions for power8 load
11550 fusion to GPRs.
11551
0bd72901 11552 * config/rs6000/vsx.md (VSX_M2): New iterator for fusion peepholes.
d86e633a
MM
11553 (VSX load fusion peepholes): New peepholes to fuse together an
11554 addi instruction with a VSX load instruction.
11555
11556 * config/rs6000/rs6000.md (GPR load fusion peepholes): New
11557 peepholes to fuse an addis instruction with a load to a GPR base
11558 register. If we are supporting sign extending fusions, convert
11559 sign extending loads to zero extending loads and add an explicit
11560 sign extension.
11561
c3f35647
SN
115622013-07-31 Sofiane Naci <sofiane.naci@arm.com>
11563
11564 * config.gcc (arm*-*-*): Add aarch-common.o to extra_objs. Add
11565 aarch-common-protos.h to extra_headers.
11566 (arm*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
11567 * config/arm/arm.c (arm_early_load_addr_dep): Move from here to ...
11568 (arm_early_store_addr_dep): Likewise.
0bd72901
UB
11569 (arm_no_early_alu_shift_dep): Likewise.
11570 (arm_no_early_alu_shift_value_dep): Likewise.
11571 (arm_no_early_mul_dep): Likewise.
11572 (arm_no_early_store_addr_dep): Likewise.
11573 (arm_mac_accumulator_is_mul_result): Likewise.
11574 (arm_mac_accumulator_is_result): Likewise.
c3f35647 11575 * config/arm/aarch-common.c: ... here. New file.
0bd72901
UB
11576 * config/arm/arm-protos.h (arm_early_load_addr_dep): Move from
11577 here to ...
c3f35647 11578 (arm_early_store_addr_dep): Likewise.
0bd72901
UB
11579 (arm_no_early_alu_shift_dep): Likewise.
11580 (arm_no_early_alu_shift_value_dep): Likewise.
11581 (arm_no_early_mul_dep): Likewise.
11582 (arm_no_early_store_addr_dep): Likewise.
11583 (arm_mac_accumulator_is_mul_result): Likewise.
11584 (arm_mac_accumulator_is_result): Likewise.
c3f35647
SN
11585 * config/arm/aarch-common-protos.h: ... here. New file.
11586 * config/arm/t-arm (aarch-common.o): Define.
11587
115882013-07-31 Sofiane Naci <sofiane.naci@arm.com>
11589
11590 * config/arm/arm.md: Include new file "types.md".
11591 (define_attr "type"): Move from here to ...
11592 (define_attr "mul32"): Likewise.
11593 (define_attr "mul64"): Likewise.
11594 * config/arm/types.md: ... here. New file.
11595
228c1313
SH
115962013-07-31 Sebastian Huber <sebastian.huber@embedded-brains.de>
11597
11598 * config.gcc (*-*-rtems*): Use __cxa_atexit by default.
11599 * config/rs6000/rtems.h (TARGET_LIBGCC_SDATA_SECTION): Define.
11600
d6e9046d 116012013-07-31 Jan-Benedict Glaw <jbglaw@lug-owl.de>
8ac499bb
JBG
11602
11603 * gen-pass-instances.awk: Fix offset of substr().
11604
a167b052
DM
116052013-07-31 David Malcolm <dmalcolm@redhat.com>
11606
11607 * Makefile.in (pass-instances.def): New.
11608 (passes.o): Replace dependency on passes.def with one on
11609 pass-instances.def
11610
11611 * gen-pass-instances.awk: New.
11612
11613 * passes.c (pass_manager::pass_manager): Use pass-instances.def
11614 rather than passes.def, updating local definition of NEXT_PASS
11615 macro to add an extra NUM parameter (currently unused).
11616
315f8c0e
DM
116172013-07-30 David Malcolm <dmalcolm@redhat.com>
11618
11619 * Makefile.in (PASS_MANAGER_H): New.
11620 (lto-cgraph.o): Depend on CONTEXT_H and PASS_MANAGER_H.
11621 (passes.o): Likewise.
11622 (statistics.o): Likewise.
11623 (cgraphunit.o): Likewise.
11624 (context.o): Depend on PASS_MANAGER_H.
11625
11626 * pass_manager.h: New.
11627
11628 * cgraphunit.c (cgraph_add_new_function): Update for moves
11629 of globals to fields of pass_manager.
11630 (analyze_function): Likewise.
11631 (expand_function): Likewise.
11632 (ipa_passes): Likewise.
11633 (compile): Likewise.
11634
11635 * context.c (context::context): New.
11636 * context.h (context::context): New.
11637 (context::get_passes): New.
11638 (context::passes_): New.
11639
11640 * lto-cgraph.c (input_node): Update for moves of globals to
11641 fields of pass_manager.
11642
11643 * passes.c (all_passes): Remove, in favor of a field of the
11644 same name within the new class pass_manager.
11645 (all_small_ipa_passes): Likewise.
11646 (all_lowering_passes): Likewise.
11647 (all_regular_ipa_passes): Likewise.
11648 (all_late_ipa_passes): Likewise.
11649 (all_lto_gen_passes): Likewise.
11650 (passes_by_id): Likewise.
11651 (passes_by_id_size): Likewise.
11652 (gcc_pass_lists): Remove, in favor of "pass_lists" field within
11653 the new class pass_manager.
11654 (set_pass_for_id): Convert to...
11655 (pass_manager::set_pass_for_id): ...method.
11656 (get_pass_for_id): Convert to...
11657 (pass_manager::get_pass_for_id): ...method.
11658 (register_one_dump_file): Move body of implementation into...
11659 (pass_manager::register_one_dump_file): ...here.
11660 (register_dump_files_1): Convert to...
11661 (pass_manager::register_dump_files_1): ...method.
11662 (register_dump_files): Convert to...
11663 (pass_manager::register_dump_files): ...method.
11664 (create_pass_tab): Update for moves of globals to fields of
11665 pass_manager.
11666 (dump_passes): Move body of implementation into...
11667 (pass_manager::dump_passes): ...here.
11668 (register_pass): Move body of implementation into...
11669 (pass_manager::register_pass): ...here.
11670 (init_optimization_passes): Convert into...
11671 (pass_manager::pass_manager): ...constructor for new
11672 pass_manager class, and initialize the pass_lists array.
11673 (check_profile_consistency): Update for moves of globals to
11674 fields of pass_manager.
11675 (dump_profile_report): Move body of implementation into...
11676 (pass_manager::dump_profile_report): ...here.
11677 (ipa_write_summaries_1): Update for moves of pass lists from
11678 being globals to fields of pass_manager.
11679 (ipa_write_optimization_summaries): Likewise.
11680 (ipa_read_summaries): Likewise.
11681 (ipa_read_optimization_summaries): Likewise.
11682 (execute_all_ipa_stmt_fixups): Likewise.
11683
11684 * statistics.c (statistics_fini): Update for moves of globals to
11685 fields of pass_manager.
11686
11687 * toplev.c (general_init): Replace call to
11688 init_optimization_passes with construction of the pass_manager
11689 instance.
11690
11691 * tree-pass.h (all_passes): Remove, in favor of a field of the
11692 same name within the new class pass_manager.
11693 (all_small_ipa_passes): Likewise.
11694 (all_lowering_passes): Likewise.
11695 (all_regular_ipa_passes): Likewise.
11696 (all_lto_gen_passes): Likewise.
11697 (all_late_ipa_passes): Likewise.
11698 (passes_by_id): Likewise.
11699 (passes_by_id_size): Likewise.
11700 (gcc_pass_lists): Remove, in favor of "pass_lists" field within
11701 the new class pass_manager.
11702 (get_pass_for_id): Remove.
11703
02cab1c1
RE
117042013-07-30 Richard Earnshaw <rearnsha@arm.com>
11705
11706 * config.gcc (arm): Require 64-bit host-wide-int for all ARM target
11707 configs.
11708
b2d3f886
RE
117092013-07-30 Richard Earnshaw <rearnsha@arm.com>
11710
11711 * arm.md (mulhi3): New expand pattern.
11712
605e86fa
JH
117132013-07-30 Jan Hubicka <jh@suse.cz>
11714 Martin Liska <marxin.liska@gmail.com>
11715
11716 * profile.c (compute_value_histograms): Do not ICE when
11717 there is mismatch only on some counters.
11718
14a87636
ZC
117192013-07-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
11720
11721 PR rtl-optimization/57637
11722 * function.c (move_insn_for_shrink_wrap): Also check the
11723 GEN set of the LIVE problem for the liveness analysis
11724 if it exists, otherwise give up.
11725
0100cd3f
BS
117262013-07-29 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
11727
11728 PR tree-optimization/57993
11729 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Record
11730 replaced statement in the candidate table.
11731 (phi_add_costs): Return infinite cost when the hidden basis does
11732 not dominate all phis on which the candidate is dependent.
11733 (replace_one_candidate): Record replaced statement in the
11734 candidate table.
11735
f0d811f7
JR
117362013-07-29 Joern Rennecke <joern.rennecke@embecosm.com>
11737
11738 * config/epiphany/epiphany.md (*isub_i+2): New peephole.
11739 (ashlv2si3): New expander.
11740 (*ashlv2si3_i): New define_insn_and_split.
11741 * predicates.md (float_operation): Allow patterns with three
11742 basic sub-patterns.
11743
bba33211
JR
11744 PR rtl-optimization/58021
11745 * mode-switching.c (create_pre_exit): Always split off preceding
11746 insns if we are not at the basic block head.
11747
ff3f3951
MR
117482013-07-29 Maciej W. Rozycki <macro@codesourcery.com>
11749
11750 * config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Handle `-mnan=2008'.
11751 (UCLIBC_DYNAMIC_LINKER): New macro.
11752 * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32): Handle
11753 `-mnan=2008'.
11754 (GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32): Likewise.
11755 (UCLIBC_DYNAMIC_LINKER32): Undefine macro first. Handle
11756 `-mnan=2008'.
11757 (UCLIBC_DYNAMIC_LINKER64): Redefine macro.
11758 (UCLIBC_DYNAMIC_LINKERN32): Likewise.
11759 * config/mips/mips-modes.def: Remove RESET_FLOAT_FORMAT calls
11760 for SF and DF modes. Use ieee_quad_format for TF mode.
11761 * config/mips/mips-opts.h (mips_ieee_754_setting): New enum.
11762 * config/mips/mips.c (mips_file_start): Output a `.nan' directive.
11763 (mips_option_override): Handle `-mnan=legacy'.
11764 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Handle
11765 `-mabs=2008' and `-mnan=2008'.
11766 (OPTION_DEFAULT_SPECS): Add "nan" default.
11767 (ASM_SPEC): Handle `-mnan='.
11768 [!HAVE_AS_NAN] (HAVE_AS_NAN): New macro.
11769 * config/mips/mips.md (abs<mode>2): Handle `-mabs=2008', update
11770 comment accordingly.
11771 (neg<mode>2): Likewise.
11772 * config/mips/mips.opt (mabs, mnan): New options.
11773 * doc/install.texi (Configuration): Document `--with-nan=' option.
11774 * doc/invoke.texi (Option Summary): List MIPS `-mabs=' and
11775 `-mnan=' options.
11776 (MIPS Options): Document them.
11777 * config.gcc <mips*-*-*>: Handle `--with-nan='.
11778 * configure.ac <mips*-*-*>: Check for GAS `-mnan=2008' support.
11779 * configure: Regenerate.
11780 * config.in: Regenerate.
11781
576e2f37
UB
117822013-07-29 Uros Bizjak <ubizjak@gmail.com>
11783
11784 * config/i386/i386.md (float post-reload splitters): Do not check
11785 for subregs of SSE registers.
11786
117872013-07-29 Uros Bizjak <ubizjak@gmail.com>
11788 H.J. Lu <hongjiu.lu@intel.com>
11789
11790 PR target/57954
11791 PR target/57988
11792 * config/i386/i386.md (post-reload splitter
11793 to avoid partial SSE reg dependency stalls): New pattern.
11794
a71f0749
DV
117952013-07-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
11796
11797 * config/s390/s390.md ("movcc"): Swap load and store instructions.
11798
4c97f1cc
JR
117992013-07-27 Joern Rennecke <joern.rennecke@embecosm.com>
11800
11801 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
11802 Also reserve space for saving UNKNOWN_REGNUM for leaf functions.
11803
b0c733d8
CC
118042013-07-26 Cary Coutant <ccoutant@google.com>
11805
11806 * dwarf2out.c (die_checksum_ordered): Don't include template
11807 instantiations in signature.
11808 (is_template_parameter): New function.
11809 (is_template_instantiation): New function.
11810 (generate_skeleton_bottom_up): Don't include template instantiations
11811 in type unit DIE.
11812 (generate_skeleton): Likewise.
11813 (break_out_comdat_types): Move recursive call to break out nested
11814 types earlier.
11815 (prune_unused_types_mark_generic_parms_dies): Call
11816 is_template_parameter.
11817
040d8a1c
IB
118182013-07-26 Ian Bolton <ian.bolton@arm.com>
11819
11820 * config/aarch64/aarch64.md (neg<mode>2): Offer alternative that
11821 uses vector registers.
89fdc743 11822 * config/aarch64/iterators.md: Add attributes rtn and vas.
040d8a1c 11823
85bd4ac6 118242013-07-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
576e2f37 11825 Richard Earnshaw <richard.earnshaw@arm.com>
85bd4ac6
KT
11826
11827 * combine.c (simplify_comparison): Re-canonicalize operands
576e2f37 11828 where appropriate.
85bd4ac6
KT
11829 * config/arm/arm.md (movcond_addsi): New splitter.
11830
b6051207
SA
118312013-07-25 Sterling Augustine <saugustine@google.com>
11832
11833 * dwarf2out.c (size_of_pubnames): Move code to...
11834 (include_pubname_in_output): ...here. New.
11835 (want_pubnames): Rearrange.
11836 (output_pubnames): Call include_pubname_in_output. Move assertion.
11837
41a7c215
CM
118382013-07-25 Cameron McInally <cameron.mcinally@nyu.edu>
11839
11840 * doc/extend.texi: Fix return types for __builtin_ia32_cmp*s builtins.
11841
118422013-07-25 Cameron McInally <cameron.mcinally@nyu.edu>
11843
11844 PR target/38836
11845 * doc/extend.texi: Remove obsolete builtins. Fix
11846 typo for __builtin_ia32_loadss and __builtin_ia32_cmpnltss.
11847
49bde175
JH
118482013-07-25 Jan Hubicka <jh@suse.cz>
11849
11850 * cgraph.c (release_function_body): Break out from ...
11851 (cgraph_release_function_body): ... this one; also release DECL_RESULT
11852 and DECL_ARGUMENTS.
11853 * ipa-cp.c (get_replacement_map): Add parm_num argument; do not set
11854 old_tree in the map.
11855 (create_specialized_node): Update.
11856 * lto-cgraph.c (output_node_opt_summary): Do not translate old_tree
11857 into index.
41a7c215
CM
11858 * cgraphclones.c (cgraph_create_virtual_clone): Do not copy
11859 DECL_ARGUMENTS, DECL_INITIAL and DECL_RESULT.
49bde175
JH
11860 * ipa-prop.c (ipa_populate_param_decls): Look for origin of clones.
11861 * tree-inline.c (initialize_cfun): Initialize DECL_ARGUMENTS and
11862 DECL_RESULT.
11863
4870352d
KT
118642013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11865
11866 * config/arm/arm.md (arm_addsi3, addsi3_carryin_<optab>,
11867 addsi3_carryin_alt2_<optab>): Correct output template.
11868
1d6aee1c
KT
118692013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11870
11871 * config/arm/arm-fixed.md (ssmulsa3, usmulusa3):
11872 Adjust for arm_restrict_it.
11873 Remove trailing whitespace.
11874
c7cafd75
MK
118752013-07-25  Mark Kettenis  <kettenis@openbsd.org>
11876
017d38f5
MK
11877 * config/pa/pa.c (pa_trampoline_init): Emit __enable_execute_stack
11878 libcall if HAVE_ENABLE_EXECUTE_STACK is defined.
11879
c7cafd75
MK
11880 * config.gcc (hppa-*-openbsd*): Don't set tmake_file.
11881
00b7527b
VM
118822013-07-25 Vladimir Makarov <vmakarov@redhat.com>
11883
11884 PR rtl-optimization/57960
11885 * lra-constraints.c (process_alt_operands): Use the right mode
11886 when checking strict_low.
11887
4f63dfc6
JH
118882013-07-25 Jan Hubicka <jh@suse.cz>
11889
11890 * lto-symtab.c (lto_cgraph_replace_node): Release function body.
11891 * cgraph.c (cgraph_remove_node): Do not release function body
11892 when in cgraph streaming.
11893 * ipa.c (process_references, symtab_remove_unreachable_nodes): Objects
41a7c215
CM
11894 in other partitions are not considered reachable; fix handling of
11895 clones.
4f63dfc6 11896
e6dcfa18
RR
118972013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11898
11899 * config/arm/arm.md (*sibcall_insn): Remove unnecessary space.
11900
0b93d3b6
RR
119012013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11902
11903 PR target/19599
11904 PR target/57731
bb80c2eb 11905 PR target/57837
e6dcfa18 11906 * config/arm/arm.md ("*sibcall_insn): Replace use of
0b93d3b6 11907 Ss with US. Adjust output for v5 and v4t.
41a7c215 11908 (*sibcall_value_insn): Likewise and loosen predicate on operand0.
e6dcfa18 11909
0b93d3b6
RR
11910 * config/arm/constraints.md ("Ss"): Rename to US.
11911
690688b3
TG
119122013-07-25 Terry Guo <terry.guo@arm.com>
11913
11914 * config/arm/arm.c (thumb1_size_rtx_costs): Assign proper cost for
11915 shift_add/shift_sub0/shift_sub1 RTXs.
11916
a4ad093b 119172013-07-24 Bill Schmidt <wschmidt@linux.ibm.com>
12211b99 11918 Anton Blanchard <anton@au1.ibm.com>
a4ad093b
BS
11919
11920 * config/rs6000/altivec.md (altivec_vpkpx): Handle little endian.
11921 (altivec_vpks<VI_char>ss): Likewise.
11922 (altivec_vpks<VI_char>us): Likewise.
11923 (altivec_vpku<VI_char>us): Likewise.
11924 (altivec_vpku<VI_char>um): Likewise.
11925
8c5005ce
DM
119262013-07-24 David Malcolm <dmalcolm@redhat.com>
11927
11928 Introduce context class.
11929
11930 * Makefile.in (CONTEXT_H): New.
11931 (OBJS): Add context.o.
11932 (toplev.o): Add CONTEXT_H to dependencies.
11933 (context.o): New.
11934
41a7c215 11935 * toplev.c (general_init): Create the singleton gcc::context instance.
8c5005ce
DM
11936
11937 * context.c: New.
11938
11939 * context.h: New.
11940
ce4a9422
JR
119412013-07-24 Joern Rennecke <joern.rennecke@embecosm.com>
11942
11943 PR rtl-optimization/57968
11944 * mode-switching.c (create_pre_exit): Allow instructions that
11945 don't set a return register to need a non-exit mode.
11946
493f4c9e 119472013-07-24 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
12211b99 11948 Anton Blanchard <anton@au1.ibm.com>
493f4c9e 11949
b5860fd3
WS
11950 * config/rs6000/vector.md (vec_realign_load_<mode>): Reorder input
11951 operands to vperm for little endian.
11952 * config/rs6000/rs6000.c (rs6000_expand_builtin): Use lvsr instead
11953 of lvsl to create the control mask for a vperm for little endian.
493f4c9e 11954
73792b92 119552013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 11956 Anton Blanchard <anton@au1.ibm.com>
73792b92
BS
11957
11958 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Reverse
11959 two operands for little-endian.
11960
14c21302
SE
119612013-07-23 Steve Ellcey <sellcey@mips.com>
11962
11963 * config/mips/mips.c (mips_case_values_threshold): New.
11964 (TARGET_CASE_VALUES_THRESHOLD): Define.
11965
a6056198 119662013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 11967 Anton Blanchard <anton@au1.ibm.com>
a6056198
BS
11968
11969 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Correct
11970 selection of field for vector splat in little endian mode.
11971
dd7a40e1
MM
119722013-07-23 Michael Meissner <meissner@linux.vnet.ibm.com>
11973
11974 * config/rs6000/vector.md (xor<mode>3): Move 128-bit boolean
11975 expanders to rs6000.md.
11976 (ior<mode>3): Likewise.
11977 (and<mode>3): Likewise.
11978 (one_cmpl<mode>2): Likewise.
11979 (nor<mode>3): Likewise.
11980 (andc<mode>3): Likewise.
11981 (eqv<mode>3): Likewise.
11982 (nand<mode>3): Likewise.
11983 (orc<mode>3): Likewise.
11984
11985 * config/rs6000/rs6000-protos.h (rs6000_split_logical): New
11986 declaration.
11987
11988 * config/rs6000/rs6000.c (rs6000_split_logical_inner): Add support
11989 to split multi-word logical operations.
11990 (rs6000_split_logical_di): Likewise.
11991 (rs6000_split_logical): Likewise.
11992
11993 * config/rs6000/vsx.md (VSX_L2): Delete, no longer used.
11994 (vsx_and<mode>3_32bit): Move 128-bit logical insns to rs6000.md,
11995 and allow TImode operations in 32-bit.
11996 (vsx_and<mode>3_64bit): Likewise.
11997 (vsx_ior<mode>3_32bit): Likewise.
11998 (vsx_ior<mode>3_64bit): Likewise.
11999 (vsx_xor<mode>3_32bit): Likewise.
12000 (vsx_xor<mode>3_64bit): Likewise.
12001 (vsx_one_cmpl<mode>2_32bit): Likewise.
12002 (vsx_one_cmpl<mode>2_64bit): Likewise.
12003 (vsx_nor<mode>3_32bit): Likewise.
12004 (vsx_nor<mode>3_64bit): Likewise.
12005 (vsx_andc<mode>3_32bit): Likewise.
12006 (vsx_andc<mode>3_64bit): Likewise.
12007 (vsx_eqv<mode>3_32bit): Likewise.
12008 (vsx_eqv<mode>3_64bit): Likewise.
12009 (vsx_nand<mode>3_32bit): Likewise.
12010 (vsx_nand<mode>3_64bit): Likewise.
12011 (vsx_orc<mode>3_32bit): Likewise.
12012 (vsx_orc<mode>3_64bit): Likewise.
12013
12014 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Always allow vector
12015 logical types in GPRs.
12016
12017 * config/rs6000/altivec.md (altivec_and<mode>3): Move 128-bit
12018 logical insns to rs6000.md, and allow TImode operations in
12019 32-bit.
12020 (altivec_ior<mode>3): Likewise.
12021 (altivec_xor<mode>3): Likewise.
12022 (altivec_one_cmpl<mode>2): Likewise.
12023 (altivec_nor<mode>3): Likewise.
12024 (altivec_andc<mode>3): Likewise.
12025
12026 * config/rs6000/rs6000.md (BOOL_128): New mode iterators and mode
12027 attributes for moving the 128-bit logical operations into
12028 rs6000.md.
12029 (BOOL_REGS_OUTPUT): Likewise.
12030 (BOOL_REGS_OP1): Likewise.
12031 (BOOL_REGS_OP2): Likewise.
12032 (BOOL_REGS_UNARY): Likewise.
12033 (BOOL_REGS_AND_CR0): Likewise.
12034 (one_cmpl<mode>2): Add support for DI logical operations on
12035 32-bit, splitting the operations to 32-bit.
12036 (anddi3): Likewise.
12037 (iordi3): Likewise.
12038 (xordi3): Likewise.
12039 (and<mode>3, 128-bit types): Rewrite 2013-06-06 logical operator
12040 changes to combine the 32/64-bit code, allow logical operations on
12041 TI mode in 32-bit, and to use similar match_operator patterns like
12042 scalar mode uses. Combine the Altivec and VSX code for logical
12043 operations, and move it here.
12044 (ior<mode>3, 128-bit types): Likewise.
12045 (xor<mode>3, 128-bit types): Likewise.
12046 (one_cmpl<mode>3, 128-bit types): Likewise.
12047 (nor<mode>3, 128-bit types): Likewise.
12048 (andc<mode>3, 128-bit types): Likewise.
12049 (eqv<mode>3, 128-bit types): Likewise.
12050 (nand<mode>3, 128-bit types): Likewise.
12051 (orc<mode>3, 128-bit types): Likewise.
12052 (and<mode>3_internal): Likewise.
12053 (bool<mode>3_internal): Likewise.
12054 (boolc<mode>3_internal1): Likewise.
12055 (boolc<mode>3_internal2): Likewise.
12056 (boolcc<mode>3_internal1): Likewise.
12057 (boolcc<mode>3_internal2): Likewise.
12058 (eqv<mode>3_internal1): Likewise.
12059 (eqv<mode>3_internal2): Likewise.
12060 (one_cmpl1<mode>3_internal): Likewise.
12061
12211b99 120622013-07-23 David Holsgrove <david.holsgrove@xilinx.com>
9b69d4b4
DH
12063
12064 * config/microblaze/microblaze.c (microblaze_expand_prologue):
12065 Rename flag_stack_usage to flag_stack_usage_info.
12066
12211b99 120672013-07-23 David Holsgrove <david.holsgrove@xilinx.com>
450b0ebb 12068
a5f257fd
ME
12069 * config/microblaze/sync.md: New file.
12070 * config/microblaze/microblaze.md: Include sync.md
12071 * config/microblaze/microblaze.c: Add print_operand 'y'.
12072 * config/microblaze/constraints.md: Add memory_contraint
12073 'Q' which is a single register.
450b0ebb 12074
49fba14f
EB
120752013-07-23 Eric Botcazou <ebotcazou@adacore.com>
12076
12077 * doc/invoke.texi (SPARC Options): Document new leon3 processor value.
12078
c7b3b99f
PCC
120792013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu>
12080
12081 * reload.c (find_reloads): Exit loop once we find this operand
12082 cannot be reloaded somehow for this alternative.
12083
12084 * reload.c (find_reloads): Exit loop once we find a hard register.
12085
12086 * rtlanal.c (computed_jump_p): Exit loop once we find label
12087 reference is used.
12088
12089 * i386.c (ix86_pad_returns): Exit loop after setting replace.
12090
12091 * cfgloopmanip.c (remove_path): Exit loop after setting
12092 irred_invalidated.
12093
12094 * gensupport.c (subst_dup): Avoid loop if code is not
12095 MATCH_DUP nor MATCH_OP_DUP.
12096
c8fbf1fa
NBJ
120972013-07-23 Nicklas Bo Jensen <nbjensen@gmail.com>
12098
12099 * doc/md.texi (Machine-Specific Peephole Optimizers): Fix a typo.
12100
9259db42
YZ
121012013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
12102
12103 * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Also return
12104 true for SP_REGNUM if mode == ptr_mode.
12105 * config/aarch64/aarch64.h (ADDITIONAL_REGISTER_NAMES): Add "wsp"
12106 with value R0_REGNUM + 31.
12107
00edcfbe
YZ
121082013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
12109
12110 * config/aarch64/aarch64.c (aarch64_pad_arg_upward): In big-endian,
12111 pad pointer-typed argument downward.
12112
43be9a95
YZ
121132013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
12114
12115 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define _ILP32
12116 and __ILP32__ when the ILP32 model is in use.
12117
28514dda
YZ
121182013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
12119
12120 * config/aarch64/aarch64.c (POINTER_BYTES): New define.
12121 (aarch64_load_symref_appropriately): In the case of
12122 SYMBOL_SMALL_ABSOLUTE, use the mode of 'dest' instead of Pmode
12123 to generate new rtx; likewise to the case of SYMBOL_SMALL_GOT.
12124 (aarch64_expand_mov_immediate): In the case of SYMBOL_FORCE_TO_MEM,
12125 change to pass 'ptr_mode' to force_const_mem and zero-extend 'mem'
12126 if 'mode' doesn't equal to 'ptr_mode'.
12127 (aarch64_output_mi_thunk): Add an assertion on the alignment of
12128 'vcall_offset'; change to call aarch64_emit_move differently depending
12129 on whether 'Pmode' equals to 'ptr_mode' or not; use 'POINTER_BYTES'
12130 to calculate the upper bound of 'vcall_offset'.
12131 (aarch64_cannot_force_const_mem): Change to also return true if
12132 mode != ptr_mode.
12133 (aarch64_legitimize_reload_address): In the case of large
12134 displacements, add new local variable 'xmode' and an assertion
12135 based on it; change to use 'xmode' to generate the new rtx and
12136 reload.
12137 (aarch64_asm_trampoline_template): Change to generate the template
12138 differently depending on TARGET_ILP32 or not; change to use
12139 'POINTER_BYTES' in the argument passed to assemble_aligned_integer.
12140 (aarch64_trampoline_size): Removed.
12141 (aarch64_trampoline_init): Add new local constant 'tramp_code_sz'
12142 and replace immediate literals with it. Change to use 'ptr_mode'
12143 instead of 'DImode' and call convert_memory_address if the mode
12144 of 'fnaddr' doesn't equal to 'ptr_mode'.
12145 (aarch64_elf_asm_constructor): Change to use assemble_aligned_integer
12146 to output symbol.
12147 (aarch64_elf_asm_destructor): Likewise.
12148 * config/aarch64/aarch64.h (TRAMPOLINE_SIZE): Change to be dependent
12149 on TARGET_ILP32 instead of aarch64_trampoline_size.
12150 * config/aarch64/aarch64.md (movsi_aarch64): Add new alternatives
12151 of 'mov' between WSP and W registers as well as 'adr' and 'adrp'.
12152 (loadwb_pair<GPI:mode>_<PTR:mode>): Rename to ...
12153 (loadwb_pair<GPI:mode>_<P:mode>): ... this. Replace PTR with P.
12154 (storewb_pair<GPI:mode>_<PTR:mode>): Likewise; rename to ...
12155 (storewb_pair<GPI:mode>_<P:mode>): ... this.
12156 (add_losym): Change to 'define_expand' and call gen_add_losym_<mode>
12157 depending on the value of 'mode'.
12158 (add_losym_<mode>): New.
12159 (ldr_got_small_<mode>): New, based on ldr_got_small.
12160 (ldr_got_small): Remove.
12161 (ldr_got_small_sidi): New.
12162 * config/aarch64/iterators.md (P): New.
12163 (PTR): Change to 'ptr_mode' in the condition.
12164
17a819cb
YZ
121652013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
12166
12167 * config.gcc (aarch64*-*-*): Support --with-abi.
12168 (aarch64*-*-elf): Support --with-multilib-list.
12169 (aarch64*-*-linux*): Likewise.
12170 (supported_defaults): Add abi to aarch64*-*-*.
12171 * configure.ac: Mention AArch64 for --with-multilib-list.
12172 * configure: Re-generated.
12173 * config/aarch64/biarchilp32.h: New file.
12174 * config/aarch64/biarchlp64.h: New file.
12175 * config/aarch64/aarch64-elf.h (ENDIAN_SPEC): New define.
12176 (ABI_SPEC): Ditto.
12177 (MULTILIB_DEFAULTS): Ditto.
12178 (DRIVER_SELF_SPECS): Ditto.
12179 (ASM_SPEC): Update to also substitute -mabi.
12180 * config/aarch64/aarch64-elf-raw.h (LINK_SPEC): Add linker script
12181 file whose name depends on -mabi= and -mbig-endian.
12182 * config/aarch64/aarch64.h (LONG_TYPE_SIZE): Change to depend on
12183 TARGET_ILP32.
12184 (POINTER_SIZE): New define.
12185 (POINTERS_EXTEND_UNSIGNED): Ditto.
12186 (enum aarch64_abi_type): New enumeration tag.
12187 (AARCH64_ABI_LP64, AARCH64_ABI_ILP32): New enumerators.
12188 (AARCH64_ABI_DEFAULT): Define to AARCH64_ABI_LP64 if undefined.
12189 (TARGET_ILP32): New define.
12190 * config/aarch64/aarch64.opt (mabi): New.
12191 (aarch64_abi): New.
12192 (ilp32, lp64): New values for -mabi.
12193 * config/aarch64/t-aarch64 (comma): New define.
12194 (MULTILIB_OPTIONS): Ditto.
12195 (MULTILIB_DIRNAMES): Ditto.
12196 * config/aarch64/t-aarch64-linux (MULTIARCH_DIRNAME): New define.
12197 * doc/invoke.texi: Document -mabi for AArch64.
12198
9f9cbdce
GJL
121992013-07-23 Georg-Johann Lay <avr@gjlay.de>
12200
12201 * config/avr/avr.md: Explain asm print modifier 'r' for REG.
12202
7061977b 122032013-07-22 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
12211b99 12204 Anton Blanchard <anton@au1.ibm.com>
7061977b
BS
12205
12206 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Fix
12207 endianness when selecting field to splat.
12208
75a41878
EC
122092013-07-22 Eric Christopher <echristo@gmail.com>
12210
12211 * dwarf2out.c (die_odr_checksum): New function to use
12212 CHECKSUM_ macros and ULEB128 for DIE tag.
12213 (generate_type_signature): Use.
41a7c215 12214
38ae58ca
EB
122152013-07-22 Eric Botcazou <ebotcazou@adacore.com>
12216
12217 * config.gcc (sparc*-*-*): Accept leon3 processor.
12218 (sparc-leon*-*): Merge with sparc*-*-* and add leon3 support.
12219 * doc/invoke.texi (SPARC Options): Adjust -mfix-ut699 entry.
12220 * config/sparc/sparc-opts.h (enum processor_type): Add PROCESSOR_LEON3.
12221 * config/sparc/sparc.opt (enum processor_type): Add leon3.
12222 (mfix-ut699): Adjust comment.
12223 * config/sparc/sparc.h (TARGET_CPU_leon3): New define.
12224 (CPP_CPU32_DEFAULT_SPEC): Add leon3 support.
12225 (CPP_CPU_SPEC): Likewise.
12226 (ASM_CPU_SPEC): Likewise.
12227 * config/sparc/sparc.c (leon3_cost): New constant.
12228 (sparc_option_override): Add leon3 support.
12229 (mem_ref): New function.
12230 (sparc_gate_work_around_errata): Return true if -mfix-ut699 is enabled.
12231 (sparc_do_work_around_errata): Look into the instruction in the delay
12232 slot and adjust accordingly. Add fix for the data cache nullify issues
12233 of the UT699. Change insertion position for the NOP.
12234 * config/sparc/leon.md (leon_fpalu, leon_fpmds, write_buf): Delete.
12235 (leon3_load): New reservation.
12236 (leon_store): Bump latency to 2.
12237 (grfpu): New automaton.
12238 (grfpu_alu): New unit.
12239 (grfpu_ds): Likewise.
12240 (leon_fp_alu): Adjust.
12241 (leon_fp_mult): Delete.
12242 (leon_fp_div): Split into leon_fp_divs and leon_fp_divd.
12243 (leon_fp_sqrt): Split into leon_fp_sqrts and leon_fp_sqrtd.
12244 * config/sparc/sparc.md (cpu): Add leon3.
12245 * config/sparc/sync.md (atomic_exchangesi): Disable if -mfix-ut699.
12246 (swapsi): Likewise.
12247 (atomic_test_and_set): Likewise.
12248 (ldstub): Likewise.
12249
04dfc6df
JU
122502013-07-22 Jürgen Urban <JuergenUrban@gmx.de>
12251
12252 * config.gcc (mips*-*-*): Add --with-fpu support. Make single the
12253 default for R5900 targets.
12254 * config/mips/mips.h (OPTION_DEFAULT_SPECS): Handle --with-fpu.
12255 (ISA_HAS_LDC1_SDC1): Set to false for TARGET_MIPS5900.
12256 * config/mips/mips.c (mips_option_override): Report an error for
12257 -march=r5900 -mhard-float -mdouble-float. Use spu_single_format
12258 for -march=r5900 -mhard-float.
12259
c7b3b99f 122602013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu>
ae382ebd
PCC
12261
12262 * df-problems.c (can_move_insns_across): Exit loop once we
12263 find a non-fixed, non-global register.
12264
12265 * ipa-pure-const.c (propagate_nothrow): Exit loop after
12266 setting can_throw.
12267
12268 * omega.c (omega_eliminate_red): Break after setting red_found.
12269 (omega_problem_has_red_equations): Similarly after setting found.
12270 (omega_query_variable): Similarly after setting coupled.
12271
9b6e6981
MP
122722013-07-22 Marek Polacek <polacek@redhat.com>
12273
12274 * gimplify.c: Don't include gimple.h twice.
12275
5e5f7673
KT
122762013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12277
12278 * config/arm/constraints.md (Pd): Allow TARGET_THUMB
12279 instead of TARGET_THUMB1.
12280 (Pz): New constraint.
12281 * config/arm/arm.md (arm_addsi3): Add alternatives for 16-bit
12282 encodings.
12283 (compare_negsi_si): Likewise.
12284 (compare_addsi2_op0): Likewise.
12285 (compare_addsi2_op1): Likewise.
12286 (addsi3_carryin_<optab>): Likewise.
12287 (addsi3_carryin_alt2_<optab>): Likewise.
12288 (addsi3_carryin_shift_<optab>): Disable cond_exec variant
12289 for arm_restrict_it.
12290 (subsi3_carryin): Likewise.
12291 (arm_subsi3_insn): Add alternatives for 16-bit encoding.
12292 (minmax_arithsi): Disable for arm_restrict_it.
12293 (minmax_arithsi_non_canon): Adjust for arm_restrict_it.
12294 (satsi_<SAT:code>): Disable cond_exec variant for arm_restrict_it.
12295 (satsi_<SAT:code>_shift): Likewise.
12296 (arm_shiftsi3): Add alternative for 16-bit encoding.
12297 (arm32_movhf): Disable for arm_restrict_it.
12298 (arm_cmpdi_unsigned): Add alternatives for 16-bit encoding.
12299 (arm_movtas_ze): Disable cond_exec variant for arm_restrict_it.
12300
859abddd
SN
123012013-07-22 Sofiane Naci <sofiane.naci@arm.com>
12302
12303 * config/arm/arm.md (attribute "insn"): Delete.
12304 (attribute "type"): Add "mov_imm", "mov_reg", "mov_shift",
12305 "mov_shift_reg", "mvn_imm", "mvn_reg", "mvn_shift" and "mvn_shift_reg".
12306 (not_shiftsi): Update for attribute change.
12307 (not_shiftsi_compare0): Likewise.
12308 (not_shiftsi_compare0_scratch): Likewise.
12309 (arm_one_cmplsi2): Likewise.
12310 (thumb1_one_cmplsi2): Likewise.
12311 (notsi_compare0): Likewise.
12312 (notsi_compare0_scratch): Likewise.
12313 (thumb1_movdi_insn): Likewise.
12314 (arm_movsi_insn): Likewise.
12315 (movhi_insn_arch4): Likewise.
12316 (movhi_bytes): Likewise.
12317 (arm_movqi_insn): Likewise.
12318 (thumb1_movqi_insn): Likewise.
12319 (arm32_movhf): Likewise.
12320 (thumb1_movhf): Likewise.
12321 (arm_movsf_soft_insn): Likewise.
12322 (thumb1_movsf_insn): Likewise.
12323 (thumb_movdf_insn): Likewise.
12324 (movsicc_insn): Likewise.
12325 (movsfcc_soft_insn): Likewise.
12326 (and_scc): Likewise.
12327 (cond_move): Likewise.
12328 (if_move_not): Likewise.
12329 (if_not_move): Likewise.
12330 (if_shift_move): Likewise.
12331 (if_move_shift): Likewise.
12332 (if_shift_shift): Likewise.
12333 (if_not_arith): Likewise.
12334 (if_arith_not): Likewise.
12335 (cond_move_not): Likewise.
12336 * config/arm/neon.md (neon_mov<mode>): Update for attribute change.
12337 (neon_mov<mode>): Likewise.
12338 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute change.
12339 (thumb2_movsi_vfp): Likewise.
12340 (movsf_vfp): Likewise.
12341 (thumb2_movsf_vfp): Likewise.
371e77e3
UB
12342 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute
12343 change.
859abddd
SN
12344 (cortexa7_older_only): Likewise.
12345 (cortexa7_younger): Likewise.
12346 * config/arm/arm1020e.md (1020alu_op): Update for attribute change.
12347 (1020alu_shift_op): Likewise.
12348 (1020alu_shift_reg_op): Likewise.
12349 * config/arm/arm1026ejs.md (alu_op): Update for attribute change.
12350 (alu_shift_op): Likewise.
12351 (alu_shift_reg_op): Likewise.
12352 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute change.
12353 (11_alu_shift_op): Likewise.
12354 (11_alu_shift_reg_op): Likewise.
12355 * config/arm/arm926ejs.md (9_alu_op): Update for attribute change.
12356 (9_alu_shift_reg_op): Likewise.
371e77e3
UB
12357 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
12358 change.
859abddd
SN
12359 (cortex_a15_alu_shift): Likewise.
12360 (cortex_a15_alu_shift_reg): Likewise.
12361 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute change.
12362 (cortex_a5_alu_shift): Likewise.
371e77e3
UB
12363 * config/arm/cortex-a53.md (cortex_a53_alu): Update for attribute
12364 change.
859abddd 12365 (cortex_a53_alu_shift): Likewise.
371e77e3
UB
12366 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
12367 change.
859abddd
SN
12368 (cortex_a7_alu_reg): Likewise.
12369 (cortex_a7_alu_shift): Likewise.
12370 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
12371 (cortex_a8_alu_shift): Likewise.
12372 (cortex_a8_alu_shift_reg): Likewise.
12373 (cortex_a8_mov): Likewise.
12374 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
12375 (cortex_a9_dp_shift): Likewise.
12376 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute change.
12377 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute change.
12378 (cortex_r4_mov): Likewise.
12379 (cortex_r4_alu_shift): Likewise.
12380 (cortex_r4_alu_shift_reg): Likewise.
12381 * config/arm/fa526.md (526_alu_op): Update for attribute change.
12382 (526_alu_shift_op): Likewise.
12383 * config/arm/fa606te.md (606te_alu_op): Update for attribute change.
12384 * config/arm/fa626te.md (626te_alu_op): Update for attribute change.
12385 (626te_alu_shift_op): Likewise.
12386 * config/arm/fa726te.md (726te_shift_op): Update for attribute change.
12387 (726te_alu_op): Likewise.
12388 (726te_alu_shift_op): Likewise.
12389 (726te_alu_shift_reg_op): Likewise.
12390 * config/arm/fmp626.md (mp626_alu_op): Update for attribute change.
12391 (mp626_alu_shift_op): Likewise.
12392 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute change.
12393 (pj4_alu_e1_conds): Likewise.
12394 (pj4_alu): Likewise.
12395 (pj4_alu_conds): Likewise.
12396 (pj4_shift): Likewise.
12397 (pj4_shift_conds): Likewise.
12398 (pj4_alu_shift): Likewise.
12399 (pj4_alu_shift_conds): Likewise.
12400
95b97fac
KT
124012013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12402
12403 * config/arm/predicates.md (shiftable_operator_strict_it):
12404 New predicate.
12405 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si):
12406 Disable cond_exec version for arm_restrict_it.
12407 (thumb2_smaxsi3): Convert to generate cond_exec.
12408 (thumb2_sminsi3): Likewise.
12409 (thumb32_umaxsi3): Likewise.
12410 (thumb2_uminsi3): Likewise.
12411 (thumb2_abssi2): Adjust constraints for arm_restrict_it.
12412 (thumb2_neg_abssi2): Likewise.
12413 (thumb2_mov_scc): Add alternative for 16-bit encoding.
12414 (thumb2_movsicc_insn): Adjust alternatives.
12415 (thumb2_mov_negscc): Disable for arm_restrict_it.
12416 (thumb2_mov_negscc_strict_it): New pattern.
12417 (thumb2_mov_notscc_strict_it): New pattern.
12418 (thumb2_mov_notscc): Disable for arm_restrict_it.
12419 (thumb2_ior_scc): Likewise.
12420 (thumb2_ior_scc_strict_it): New pattern.
12421 (thumb2_cond_move): Adjust for arm_restrict_it.
12422 (thumb2_cond_arith): Disable for arm_restrict_it.
12423 (thumb2_cond_arith_strict_it): New pattern.
12424 (thumb2_cond_sub): Adjust for arm_restrict_it.
12425 (thumb2_movcond): Likewise.
12426 (thumb2_extendqisi_v6): Disable cond_exec variant for arm_restrict_it.
12427 (thumb2_zero_extendhisi2_v6): Likewise.
12428 (thumb2_zero_extendqisi2_v6): Likewise.
12429 (orsi_notsi_si): Likewise.
12430 (orsi_not_shiftsi_si): Likewise.
12431
d5a6ef82
GJL
124322013-07-22 Georg-Johann Lay <avr@gjlay.de>
12433
12434 * config/avr/avr.c (avr_out_xload): No SBIS around LPM so that
12435 instruction sequence is 1 byte shorter.
12436
d9e71154
UB
124372013-07-22 Uros Bizjak <ubizjak@gmail.com>
12438
12439 * config/i386/i386.md (nonlocal_goto_receiver): Delete insn if
12440 it is not needed after split.
12441
8c6381ec
IS
124422013-07-20 Iain Sandoe <iain@codesourcery.com>
12443
12444 PR target/51784
12445 * config/i386/i386.c (output_set_got) [TARGET_MACHO]: Adjust to emit a
12446 second label for nonlocal goto receivers. Don't output pic base labels
12447 unless we're producing PIC; mark that action unreachable().
12448 (ix86_save_reg): If the function contains a nonlocal label, save the
12449 PIC base reg.
12450 * config/darwin-protos.h (machopic_should_output_picbase_label): New.
f43245d1 12451 * config/darwin.c (emitted_pic_label_num): New GTY.
8c6381ec
IS
12452 (update_pic_label_number_if_needed): New.
12453 (machopic_output_function_base_name): Adjust for nonlocal receiver
12454 case.
12455 (machopic_should_output_picbase_label): New.
12456 * config/i386/i386.md (enum unspecv): UNSPECV_NLGR: New.
12457 (nonlocal_goto_receiver): New insn and split.
12458
d05d0709
JG
124592013-07-20 James Greenhalgh <james.greenhalgh@arm.com>
12460
12461 * config/aarch64/aarch64-builtins.c
12462 (aarch64_fold_builtin): Fold abs in all modes.
12463 * config/aarch64/aarch64-simd-builtins.def
12464 (abs): Enable for all modes.
12465 * config/aarch64/arm_neon.h
12466 (vabs<q>_s<8,16,32,64): Rewrite using builtins.
12467 (vabs_f64): Add missing intrinsic.
12468
ba590e63
IB
124692013-07-19 Ian Bolton <ian.bolton@arm.com>
12470
12471 * config/aarch64/arm_neon.h (vabs_s64): New function
12472
02371798
GJL
124732013-07-19 Georg-Johann Lay <avr@gjlay.de>
12474
12475 PR target/57516
12476 * config/avr/avr-fixed.md (round<mode>3_const): Turn expander to insn.
12477 * config/avr/avr.md (adjust_len): Add `round'.
12478 * config/avr/avr-protos.h (avr_out_round): New prototype.
12479 (avr_out_plus): Add `out_label' argument.
12480 * config/avr/avr.c (avr_out_plus_1): Add `out_label' argument.
12481 (avr_out_plus): Pass down `out_label' to avr_out_plus_1.
12482 Handle the case where `insn' is just a pattern.
12483 (avr_out_bitop): Handle the case where `insn' is just a pattern.
12484 (avr_out_round): New function.
12485 (avr_adjust_insn_length): Handle ADJUST_LEN_ROUND.
12486
12211b99 124872013-07-18 David Holsgrove <david.holsgrove@xilinx.com>
b950ac25
DH
12488
12489 * config/microblaze/microblaze.c (microblaze_expand_prologue):
12490 Add check for flag_stack_usage to handle -fstack-usage support
12491
12211b99 124922013-07-18 Pat Haugen <pthaugen@us.ibm.com>
ed1fd999
PH
12493
12494 * config/rs6000/rs6000.c (rs6000_option_override_internal): Adjust flag
12495 interaction for new Power8 flags and VSX.
12496
df9dda2d
ST
124972013-07-18 Sriraman Tallam <tmsriram@google.com>
12498
12499 PR middle-end/57698
12500 * tree-inline.c (expand_call_inline): Emit errors during
12501 early_inlining only if optimization is not turned on.
12502
0f9cdef4
DM
125032013-07-18 David Malcolm <dmalcolm@redhat.com>
12504
12505 * passes.def: New.
12506
12507 * passes.c (init_optimization_passes): Move the construction of
12508 the pass hierarchy into a new passes.def file.
12509
12510 * Makefile.in (passes.o): Add dependency on passes.def.
12511
2efa4087
DM
125122013-07-18 David Malcolm <dmalcolm@redhat.com>
12513
12514 * passes.c (init_optimization_passes): Introduce macros for
12515 constructing the tree of passes (INSERT_PASSES_AFTER,
12516 PUSH_INSERT_PASSES_WITHIN, POP_INSERT_PASSES,
12517 TERMINATE_PASS_LIST).
12518
bc404e1b
VM
125192013-07-18 Vladimir Makarov <vmakarov@redhat.com>
12520 Wei Mi <wmi@google.com>
12521
12522 PR rtl-optimization/57878
12523 * lra-assigns.c (assign_by_spills): Move non_reload_pseudos to the
12524 top.
12525 (reload_pseudo_compare_func): Check nregs first for reload
12526 pseudos.
12527
d675843f
DM
125282013-07-18 David Malcolm <dmalcolm@redhat.com>
12529
12530 * tree-pass.h (pass_ipa_lto_wpa_fixup): Remove redundant decl.
12531
c7b3b99f 125322013-07-18 Po-Chun Chang <pchang9@cs.wisc.edu>
bcb97fbd
PCC
12533
12534 * read-rtl.c (validate_const_int): Once an invalid character is
12535 seen, quit the loop.
12536
12537 * gengtype.c (write_roots): Similarly once we find the "deletable"
12538 or "if_marked" option.
12539
52fceb44
SN
125402013-07-18 Sofiane Naci <sofiane.naci@arm.com>
12541
12542 * config/arm/arm.md (attribute "insn"): Delete values "mrs", "msr",
12543 "xtab" and "sat". Move value "clz" from here to ...
12544 (attriubte "type"): ... here.
12545 (satsi_<SAT:code>): Delete "insn" attribute.
12546 (satsi_<SAT:code>_shift): Likewise.
12547 (arm_zero_extendqisi2addsi): Likewise.
12548 (arm_extendqisi2addsi): Likewise.
12549 (clzsi2): Update for attribute changes.
12550 (rbitsi2): Likewise.
371e77e3
UB
12551 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Delete "insn"
12552 attribute.
52fceb44
SN
12553 (arm_usatsihi): Likewise.
12554 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
12555
006bd006
SN
125562013-07-18 Sofiane Naci <sofiane.naci@arm.com>
12557
12558 * config/arm/arm.md (attribute "type"): Rename "simple_alu_imm" to
371e77e3
UB
12559 "arlo_imm". Rename "alu_reg" to "arlo_reg". Rename "simple_alu_shift"
12560 to "extend". Split "alu_shift" into "shift" and "arlo_shift". Split
006bd006
SN
12561 "alu_shift_reg" into "shift_reg" and "arlo_shift_reg". List types
12562 in alphabetical order.
12563 (attribute "core_cycles"): Update for attribute changes.
12564 (arm_addsi3): Likewise.
12565 (addsi3_compare0): Likewise.
12566 (addsi3_compare0_scratch): Likewise.
12567 (addsi3_compare_op1): Likewise.
12568 (addsi3_compare_op2): Likewise.
12569 (compare_addsi2_op0): Likewise.
12570 (compare_addsi2_op1): Likewise.
12571 (addsi3_carryin_shift_<optab>): Likewise.
12572 (subsi3_carryin_shift): Likewise.
12573 (rsbsi3_carryin_shift): Likewise.
12574 (arm_subsi3_insn): Likewise.
12575 (subsi3_compare0): Likewise.
12576 (subsi3_compare): Likewise.
12577 (arm_andsi3_insn): Likewise.
12578 (thumb1_andsi3_insn): Likewise.
12579 (andsi3_compare0): Likewise.
12580 (andsi3_compare0_scratch): Likewise.
12581 (zeroextractsi_compare0_scratch
12582 (andsi_not_shiftsi_si): Likewise.
12583 (iorsi3_insn): Likewise.
12584 (iorsi3_compare0): Likewise.
12585 (iorsi3_compare0_scratch): Likewise.
12586 (arm_xorsi3): Likewise.
12587 (thumb1_xorsi3_insn): Likewise.
12588 (xorsi3_compare0): Likewise.
12589 (xorsi3_compare0_scratch): Likewise.
12590 (satsi_<SAT:code>_shift): Likewise.
12591 (rrx): Likewise.
12592 (arm_shiftsi3): Likewise.
12593 (shiftsi3_compare0): Likewise.
12594 (not_shiftsi): Likewise.
12595 (not_shiftsi_compare0): Likewise.
12596 (not_shiftsi_compare0_scratch): Likewise.
12597 (arm_one_cmplsi2): Likewise.
12598 (thumb_one_complsi2): Likewise.
12599 (notsi_compare0): Likewise.
12600 (notsi_compare0_scratch): Likewise.
12601 (thumb1_zero_extendhisi2): Likewise.
12602 (arm_zero_extendhisi2): Likewise.
12603 (arm_zero_extendhisi2_v6): Likewise.
12604 (arm_zero_extendhisi2addsi): Likewise.
12605 (thumb1_zero_extendqisi2): Likewise.
12606 (thumb1_zero_extendqisi2_v6): Likewise.
12607 (arm_zero_extendqisi2): Likewise.
12608 (arm_zero_extendqisi2_v6): Likewise.
12609 (arm_zero_extendqisi2addsi): Likewise.
12610 (thumb1_extendhisi2): Likewise.
12611 (arm_extendhisi2): Likewise.
12612 (arm_extendhisi2_v6): Likewise.
12613 (arm_extendqisi): Likewise.
12614 (arm_extendqisi_v6): Likewise.
12615 (arm_extendqisi2addsi): Likewise.
12616 (thumb1_extendqisi2): Likewise.
12617 (thumb1_movdi_insn): Likewise.
12618 (arm_movsi_insn): Likewise.
12619 (movsi_compare0): Likewise.
12620 (movhi_insn_arch4): Likewise.
12621 (movhi_bytes): Likewise.
12622 (arm_movqi_insn): Likewise.
12623 (thumb1_movqi_insn): Likewise.
12624 (arm32_movhf): Likewise.
12625 (thumb1_movhf): Likewise.
12626 (arm_movsf_soft_insn): Likewise.
12627 (thumb1_movsf_insn): Likewise.
12628 (movdf_soft_insn): Likewise.
12629 (thumb_movdf_insn): Likewise.
12630 (arm_cmpsi_insn): Likewise.
12631 (cmpsi_shiftsi): Likewise.
12632 (cmpsi_shiftsi_swp): Likewise.
12633 (arm_cmpsi_negshiftsi_si): Likewise.
12634 (movsicc_insn): Likewise.
12635 (movsfcc_soft_insn): Likewise.
12636 (arith_shiftsi): Likewise.
12637 (arith_shiftsi_compare0
12638 (arith_shiftsi_compare0_scratch
12639 (sub_shiftsi): Likewise.
12640 (sub_shiftsi_compare0
12641 (sub_shiftsi_compare0_scratch
12642 (and_scc): Likewise.
12643 (cond_move): Likewise.
12644 (if_plus_move): Likewise.
12645 (if_move_plus): Likewise.
12646 (if_move_not): Likewise.
12647 (if_not_move): Likewise.
12648 (if_shift_move): Likewise.
12649 (if_move_shift): Likewise.
12650 (if_shift_shift): Likewise.
12651 (if_not_arith): Likewise.
12652 (if_arith_not): Likewise.
12653 (cond_move_not): Likewise.
12654 (thumb1_ashlsi3): Set type attribute.
12655 (thumb1_ashrsi3): Likewise.
12656 (thumb1_lshrsi3): Likewise.
12657 (thumb1_rotrsi3): Likewise.
12658 (shiftsi3_compare0_scratch): Likewise.
12659 * config/arm/neon.md (neon_mov<mode>): Update for attribute changes.
12660 (neon_mov<mode>): Likewise.
371e77e3
UB
12661 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si): Update for
12662 attribute changes.
006bd006
SN
12663 (thumb2_movsi_insn): Likewise.
12664 (thumb2_cmpsi_neg_shiftsi): Likewise.
12665 (thumb2_extendqisi_v6): Likewise.
12666 (thumb2_zero_extendhisi2_v6): Likewise.
12667 (thumb2_zero_extendqisi2_v6): Likewise.
12668 (thumb2_shiftsi3_short): Likewise.
12669 (thumb2_addsi3_compare0_scratch): Likewise.
12670 (orsi_not_shiftsi_si): Likewise.
12671 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
12672 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Update for attribute
12673 changes.
12674 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
12675 (1020alu_shift_op): Likewise.
12676 (1020alu_shift_reg_op): Likewise.
12677 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
12678 (alu_shift_op): Likewise.
12679 (alu_shift_reg_op): Likewise.
12680 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
12681 (11_alu_shift_op): Likewise.
12682 (11_alu_shift_reg_op): Likewise.
12683 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
12684 (9_alu_shift_reg_op): Likewise.
371e77e3
UB
12685 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
12686 changes.
006bd006
SN
12687 (cortex_a15_alu_shift): Likewise.
12688 (cortex_a15_alu_shift_reg): Likewise.
371e77e3
UB
12689 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute
12690 changes.
006bd006
SN
12691 (cortex_a5_alu_shift): Likewise.
12692 * config/arm/cortex-a53.md (cortex_a53_alu) : Update for attribute
12693 changes.
12694 (cortex_a53_alu_shift): Likewise.
12695 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
12696 changes.
12697 (cortex_a7_alu_reg): Likewise.
12698 (cortex_a7_alu_shift): Likewise.
371e77e3
UB
12699 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute
12700 changes.
006bd006
SN
12701 (cortex_a8_alu_shift): Likewise.
12702 (cortex_a8_alu_shift_reg): Likewise.
12703 (cortex_a8_mov): Likewise.
12704 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
12705 (cortex_a9_dp_shift): Likewise.
371e77e3
UB
12706 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute
12707 changes.
12708 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute
12709 changes.
006bd006
SN
12710 (cortex_r4_mov): Likewise.
12711 (cortex_r4_alu_shift): Likewise.
12712 (cortex_r4_alu_shift_reg): Likewise.
12713 * config/arm/fa526.md (526_alu_op): Update for attribute changes.
12714 (526_alu_shift_op): Likewise.
12715 * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
12716 * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
12717 (626te_alu_shift_op): Likewise.
12718 * config/arm/fa726te.md (726te_shift_op): Update for attribute changes.
12719 (726te_alu_op): Likewise.
12720 (726te_alu_shift_op): Likewise.
12721 (726te_alu_shift_reg_op): Likewise.
12722 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
12723 (mp626_alu_shift_op): Likewise.
12724 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute changes.
12725 (pj4_alu_e1_conds): Likewise.
12726 (pj4_alu): Likewise.
12727 (pj4_alu_conds): Likewise.
12728 (pj4_shift): Likewise.
12729 (pj4_shift_conds): Likewise.
12730 (pj4_alu_shift): Likewise.
12731 (pj4_alu_shift_conds): Likewise.
371e77e3
UB
12732 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute
12733 changes.
006bd006
SN
12734 (cortexa7_older_only): Likewise.
12735 (cortexa7_younger): Likewise.
12736
651df1b2
DM
127372013-07-18 David Malcolm <dmalcolm@redhat.com>
12738
12739 * ipa-pure-const.c (generate_summary): Rename to...
12740 (pure_const_generate_summary): ... this.
12741
ea717bd7
IS
127422013-07-17 Iain Sandoe <iain@codesourcery.com>
12743
12744 * config/rs6000/darwin.h (REGISTER_NAMES): Add HTM registers.
12745
a1259a13
YR
127462013-07-17 Yvan Roux <yvan.roux@linaro.org>
12747
12748 PR target/57909
12749 * config/arm/arm.c (gen_movmem_ldrd_strd): Fix unaligned load/store
12750 usage in HI mode.
12751
167f68ed
AK
127522013-07-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12753
12754 * config/s390/s390.c: (s390_expand_builtin): Allow -mhtm to be
12755 enabled without -march=zEC12.
12756 * config/s390/s390.h (TARGET_HTM): Do not require EC12 machine
12757 flags to be set.
12758
f900a982
MR
127592013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
12760
12761 * config/mips/mips.h (ISA_HAS_FP4): Correct formatting.
12762 (ISA_HAS_FP_MADD4_MSUB4): Also enable for ISA_MIPS32R2.
12763 (ISA_HAS_NMADD4_NMSUB4): Remove the MODE argument; rewrite in
12764 terms of ISA_HAS_FP4, and also enable for ISA_MIPS32R2.
12765 (ISA_HAS_NMADD3_NMSUB3): Remove the MODE argument.
12766 * config/mips/mips.c (mips_rtx_costs) <PLUS>: Check for
12767 ISA_HAS_FP_MADD4_MSUB4 || ISA_HAS_FP_MADD3_MSUB3 rather than
12768 ISA_HAS_FP4.
12769 <MINUS, NEG>: Update according to changes to ISA_HAS_NMADD4_NMSUB4
12770 and ISA_HAS_NMADD3_NMSUB3.
12771 * config/mips/mips.md (nmadd4<mode>, nmadd3<mode>): Likewise.
12772 (nmadd4<mode>_fastmath, nmadd3<mode>_fastmath): Likewise.
12773 (nmsub4<mode>, nmsub3<mode>): Likewise.
12774 (nmsub4<mode>_fastmath, nmsub3<mode>_fastmath): Likewise.
12775
d4ed27eb
MR
127762013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
12777
12778 * config/mips/mips.h (ISA_HAS_NMADD4_NMSUB4): Remove
12779 TARGET_MIPS5400 checking.
12780
7a5add18
PB
127812013-07-16 Jakub Jelinek <jakub@redhat.com>
12782 Peter Bergner <bergner@vnet.ibm.com>
12783
12784 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTERS): Mention HTM
12785 registers in the comment.
12786 (DWARF_FRAME_REGISTERS): Subtract also the 3 HTM registers.
12787 (DWARF_REG_TO_UNWIND_COLUMN): Use DWARF_FRAME_REGISTERS
12788 rather than FIRST_PSEUDO_REGISTERS.
12789
127902013-07-16 Peter Bergner <bergner@vnet.ibm.com>
c694dc01
PB
12791
12792 * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
12793 enable extra ISA flags with TARGET_HTM.
12794
d2ab0929
MR
127952013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
12796
12797 * config/mips/mips.h (ISA_HAS_MULS, ISA_HAS_MSAC, ISA_HAS_MACC):
12798 Fix comment typos.
12799
839c74bc
CH
128002013-07-15 Cong Hou <congh@google.com>
12801
12802 * tree-vect-data-refs.c (dr_group_sort_cmp): Do not use hash function
12803 in compare function for sorting.
12804
7a5add18 128052013-07-15 Peter Bergner <bergner@vnet.ibm.com>
0258b6e4
PB
12806
12807 * config.gcc (powerpc*-*-*): Install htmintrin.h and htmxlintrin.h.
12808 * config/rs6000/t-rs6000 (MD_INCLUDES): Add htm.md.
12809 * config/rs6000/rs6000.opt: Add -mhtm option.
12810 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add OPTION_MASK_HTM.
12811 (ISA_2_7_MASKS_SERVER): Add OPTION_MASK_HTM.
12812 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
12813 __HTM__ if the HTM instructions are available.
12814 * config/rs6000/predicates.md (u3bit_cint_operand, u10bit_cint_operand,
12815 htm_spr_reg_operand): New define_predicates.
12816 * config/rs6000/rs6000.md (define_attr "type"): Add htm.
12817 (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO): New define_constants.
12818 Include htm.md.
12819 * config/rs6000/rs6000-builtin.def (BU_HTM_0, BU_HTM_1, BU_HTM_2,
12820 BU_HTM_3, BU_HTM_SPR0, BU_HTM_SPR1): Add support macros for defining
12821 HTM builtin functions.
12822 * config/rs6000/rs6000.c (RS6000_BUILTIN_H): New macro.
12823 (rs6000_reg_names, alt_reg_names): Add HTM SPR register names.
12824 (rs6000_init_hard_regno_mode_ok): Add support for HTM instructions.
12825 (rs6000_builtin_mask_calculate): Likewise.
12826 (rs6000_option_override_internal): Likewise.
12827 (bdesc_htm): Add new HTM builtin support.
12828 (htm_spr_num): New function.
12829 (htm_spr_regno): Likewise.
12830 (rs6000_htm_spr_icode): Likewise.
12831 (htm_expand_builtin): Likewise.
12832 (htm_init_builtins): Likewise.
12833 (rs6000_expand_builtin): Add support for HTM builtin functions.
12834 (rs6000_init_builtins): Likewise.
371e77e3
UB
12835 (rs6000_invalid_builtin, rs6000_opt_mask): Add support for -mhtm
12836 option.
0258b6e4
PB
12837 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for -mhtm.
12838 (TARGET_HTM, MASK_HTM): Define macros.
12839 (FIRST_PSEUDO_REGISTER): Adjust for new HTM SPR registers.
12840 (FIXED_REGISTERS): Likewise.
12841 (CALL_USED_REGISTERS): Likewise.
12842 (CALL_REALLY_USED_REGISTERS): Likewise.
12843 (REG_ALLOC_ORDER): Likewise.
12844 (enum reg_class): Likewise.
12845 (REG_CLASS_NAMES): Likewise.
12846 (REG_CLASS_CONTENTS): Likewise.
12847 (REGISTER_NAMES): Likewise.
12848 (ADDITIONAL_REGISTER_NAMES): Likewise.
12849 (RS6000_BTC_SPR, RS6000_BTC_VOID, RS6000_BTC_32BIT, RS6000_BTC_64BIT,
12850 RS6000_BTC_MISC_MASK, RS6000_BTM_HTM): New macros.
12851 (RS6000_BTM_COMMON): Add RS6000_BTM_HTM.
12852 * config/rs6000/htm.md: New file.
12853 * config/rs6000/htmintrin.h: New file.
12854 * config/rs6000/htmxlintrin.h: New file.
12855
87dd8ab0
MS
128562013-07-15 Marcus Shawcroft <marcus.shawcroft@arm.com>
12857
12858 * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
12859 Define SYMBOL_TINY_GOT, update comment.
12860 * config/aarch64/aarch64.c
12861 (aarch64_load_symref_appropriately): Handle SYMBOL_TINY_GOT.
12862 (aarch64_expand_mov_immediate): Likewise.
12863 (aarch64_print_operand): Likewise.
12864 (aarch64_classify_symbol): Likewise.
12865 * config/aarch64/aarch64.md (UNSPEC_GOTTINYPIC): Define.
12866 (ldr_got_tiny): Define.
12867
52d676b6
TG
128682013-07-13 Tobias Grosser <tobias@grosser.es>
12869
12870 PR tree-optimization/54094
12871 * graphite-clast-to-gimple.c (translate_clast_for_loop): Derive the
12872 scheduling dimension for the parallelism check from the polyhedral
12873 information in the AST.
12874 * graphite-dependences.c (carries_deps): Do not assume the schedule is
12875 in 2D + 1 form.
12876
286e8fc1
JM
128772013-07-13 Jason Merrill <jason@redhat.com>
12878
12879 * print-tree.c (debug_vec_tree): Use debug_raw.
12880 (debug_raw (vec<tree, va_gc> &)): New.
12881 (debug_raw (vec<tree, va_gc> *)): New.
12882 * tree.h: Declare them.
12883
e43257e8
BC
128842013-07-13 Bin Cheng <bin.cheng@arm.com>
12885
12886 * ifcvt.c (ifcvt_after_combine): New static variable.
12887 (cheap_bb_rtx_cost_p): Set scale to REG_BR_PROB_BASE when optimizing
12888 for size.
12889 (if_convert): New parameter after_combine. Set ifcvt_after_combine.
12890 (rest_of_handle_if_conversion, rest_of_handle_if_after_combine,
12891 rest_of_handle_if_after_reload): Pass new argument for if_convert.
12892
da582d46
MR
128932013-07-12 Maciej W. Rozycki <macro@codesourcery.com>
12894
12895 * config/mips/mips.c (mips_expand_call): Remove empty statement.
12896
18b0ea8f
MM
128972013-07-12 Michael Matz <matz@suse.de>
12898
12899 PR middle-end/55771
12900 * convert.c (convert_to_real): Reject non-float inner types.
12901
e4f0f84d
TB
129022013-07-12 Tejas Belagod <tejas.belagod@arm.com>
12903
12904 * config/aarch64/aarch64-protos.h
12905 (aarch64_simd_immediate_valid_for_move): Remove.
12906 * config/aarch64/aarch64.c (simd_immediate_info): New member.
12907 (aarch64_simd_valid_immediate): Recognize idioms for shifting ones
12908 cases.
12909 (aarch64_output_simd_mov_immediate): Print the correct shift specifier.
12910
76500022
SE
129112013-07-11 Steve Ellcey <sellcey@mips.com>
12912
12913 * config/mips/mips.c (mips_conditional_register_usage): Do not
12914 use t[0-7] registers in MIPS16 mode when optimizing for size.
12915
78039734
ST
129162013-07-11 Sriraman Tallam <tmsriram@google.com>
12917
12918 * config/i386/i386.c (dispatch_function_versions): Fix array
12919 indexing of function_version_info to match actual_versions.
12920
7b24b675
TJ
129212013-07-11 Teresa Johnson <tejohnson@google.com>
12922
12923 * vec.h (struct va_gc): Move release out-of-line.
12924 (va_gc::release): Call ggc_free on released vec.
12925
85d4cbb8
UW
129262013-07-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12927
12928 * config/rs6000/rs6000.md (""*tls_gd_low<TLSmode:tls_abi_suffix>"):
12929 Require GOT register as additional operand in UNSPEC.
12930 ("*tls_ld_low<TLSmode:tls_abi_suffix>"): Likewise.
12931 ("*tls_got_dtprel_low<TLSmode:tls_abi_suffix>"): Likewise.
12932 ("*tls_got_tprel_low<TLSmode:tls_abi_suffix>"): Likewise.
12933 ("*tls_gd<TLSmode:tls_abi_suffix>"): Update splitter.
12934 ("*tls_ld<TLSmode:tls_abi_suffix>"): Likewise.
12935 ("tls_got_dtprel_<TLSmode:tls_abi_suffix>"): Likewise.
12936 ("tls_got_tprel_<TLSmode:tls_abi_suffix>"): Likewise.
12937
52b3f9e2
GJL
129382013-07-11 Georg-Johann Lay <avr@gjlay.de>
12939
12940 PR target/57631
12941 * config/avr/avr.c (avr_set_current_function): Sanity-check signal
12942 name seen by assembler/linker rather if available.
12943
3f3e266e
AS
129442013-07-11 Andreas Schwab <schwab@suse.de>
12945
12946 * config/aarch64/aarch64-linux.h (CPP_SPEC): Define.
12947
21231ca6
VM
129482013-07-10 Vladimir Makarov <vmakarov@redhat.com>
12949
371e77e3 12950 * lra-constraints.c (curr_insn_transform): Switch off optional reloads.
21231ca6 12951
d331d374
JM
129522013-07-10 Joseph Myers <joseph@codesourcery.com>
12953
673c2f63
JM
12954 * doc/tm.texi.in: Move hook documentation to ....
12955 * target.def: ... here.
12956
d331d374
JM
12957 * doc/tm.texi.in (TARGET_CANONICALIZE_COMPARISON): Remove stray
12958 text on @hook line.
12959 * doc/tm.texi: Regenerate.
12960
dfeadaa0
PC
129612013-07-10 Paolo Carlini <paolo.carlini@oracle.com>
12962
12963 PR c++/57869
12964 * doc/invoke.texi: Document -Wconditionally-supported.
12965
bb6f2bac
GJL
129662013-07-10 Georg-Johann Lay <avr@gjlay.de>
12967
12968 PR target/57844
12969 * config/avr/avr.c (avr_prologue_setup_frame): Trunk -size to mode
12970 of my_fp.
12971
5219b232
GJL
129722013-07-10 Georg-Johann Lay <avr@gjlay.de>
12973
12974 PR target/57506
12975 * config/avr/avr-mcus.def (atmega16hva, atmega16hva2, atmega16hvb)
12976 (atmega16m1, atmega16u4, atmega32a, atmega32c1, atmega32hvb)
12977 (atmega32m1, atmega32u4, atmega32u6, atmega64c1, atmega64m1):
12978 Remove duplicate devices.
12979 * config/avr/gen-avr-mmcu-texi.c (print_mcus): Fail on duplicate MCUs.
12980 * config/avr/t-multilib: Regenerate.
12981 * config/avr/avr-tables.opt: Regenerate.
12982 * doc/avr-mmcu.texi: Regenerate.
12983
283045c0
GJL
129842013-07-10 Georg-Johann Lay <avr@gjlay.de>
12985
12986 PR target/56987
12987 * config/avr/avr.opt (Waddr-space-convert): Fix typo.
12988
ceb2d59f 129892013-07-10 Graham Stott <graham.stott@btinternet.com>
6a2fa4b2 12990
ceb2d59f
GS
12991 * config/mips/mips.c (mips_rtx_costs): Very slightly increase
12992 the cost of MULT when optimizing for size.
12993
055e0a99
JBG
129942013-07-10 Jan-Benedict Glaw <jbglaw@lug-owl.de>
12995
12996 * config/cr16/cr16-protos.h: Don't include target.h.
12997
ef43e868
JM
129982013-07-09 Joseph Myers <joseph@codesourcery.com>
12999
13000 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Only
13001 adjust register size for TDmode and TFmode for VSX registers.
13002
4a283fdf
KT
130032013-07-08 Kai Tietz <ktietz@redhat.com>
13004
13005 PR target/56892
13006 * config/i386/i386.c (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): Define as
13007 hook_bool_const_tree_true.
13008
2cf4c39e
AK
130092013-07-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13010
13011 * config/s390/s390.c: Replace F*_REGNUM with FPR*_REGNUM.
13012 * config/s390/s390.h: Remove F*_REGNUM macro definitions.
13013 * config/s390/s390.md: Define FPR*_REGNUM constants.
13014 Fix FPR2_REGNUM constant (18 -> 17).
13015 ("*trunc<BFP:mode><DFP_ALL:mode>2")
13016 ("*trunc<DFP_ALL:mode><BFP:mode>2")
13017 ("trunc<BFP:mode><DFP_ALL:mode>2")
13018 ("trunc<DFP_ALL:mode><BFP:mode>2")
13019 ("*extend<BFP:mode><DFP_ALL:mode>2")
13020 ("*extend<DFP_ALL:mode><BFP:mode>2")
13021 ("extend<BFP:mode><DFP_ALL:mode>2")
13022 ("extend<DFP_ALL:mode><BFP:mode>2"): Replace FPR2_REGNUM with
13023 FPR4_REGNUM.
13024
e6ac0270 130252013-07-08 Graham Stott <graham.stott@btinternet.com>
e6ac0270 13026
6a2fa4b2 13027 * Makefile.in: (c-family-warn): Define to $(STRICT_WARN)
64a92610 13028
b89b22fc
AK
130292013-07-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13030
13031 * config/s390/s390.c: Rename cfun_set_fpr_bit to cfun_set_fpr_save
13032 and cfun_fpr_bit_p to cfun_fpr_save_p.
13033 (s390_frame_area, s390_register_info, s390_frame_info)
13034 (s390_emit_prologue, s390_emit_epilogue)
13035 (s390_conditional_register_usage): Use the *_REGNUM macros for FPR
13036 register numbers.
13037 * config/s390/s390.h: Define *_REGNUM macros for floating point
13038 register numbers.
13039
07f398aa
EB
130402013-07-08 Eric Botcazou <ebotcazou@adacore.com>
13041
13042 * Makefile.in (tree-ssa-reassoc.o): Add dependency on $(PARAMS_H).
13043
75fefa91
PCC
130442013-07-08 Po-Chun Chang <pchang9@cs.wisc.edu>
13045
13046 PR rtl-optimization/57786
13047 * combine.c (distribute_notes) <case REG_DEAD>: Change all_used to bool
13048 and break out of the loop when it is set to false.
13049
046f1eee
JJ
130502013-07-08 Jakub Jelinek <jakub@redhat.com>
13051
8140c065
JJ
13052 PR target/57819
13053 * simplify-rtx.c (simplify_unary_operation_1) <case ZERO_EXTEND>:
13054 Simplify (zero_extend:SI (subreg:QI (and:SI (reg:SI)
13055 (const_int 63)) 0)).
13056 * combine.c (make_extraction): Create ZERO_EXTEND or SIGN_EXTEND
13057 using simplify_gen_unary instead of gen_rtx_*_EXTEND.
13058 * config/i386/i386.md (*jcc_bt<mode>_1): New define_insn_and_split.
13059
046f1eee
JJ
13060 PR rtl-optimization/57829
13061 * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Ensure that
13062 mask bits outside of mode are just sign-extension from mode to HWI.
13063
930b700b
MZ
130642013-07-08 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
13065
13066 * config/i386/i386-opts.h (enum stringop_alg): Add vector_loop.
13067 * config/i386/i386.c (expand_set_or_movmem_via_loop): Use
13068 adjust_address instead of change_address to keep info about alignment.
13069 (emit_strmov): Remove.
13070 (emit_memmov): New function.
13071 (expand_movmem_epilogue): Refactor to properly handle bigger sizes.
13072 (expand_movmem_epilogue): Likewise and return updated rtx for
13073 destination.
13074 (expand_constant_movmem_prologue): Likewise and return updated rtx for
13075 destination and source.
13076 (decide_alignment): Refactor, handle vector_loop.
13077 (ix86_expand_movmem): Likewise.
13078 (ix86_expand_setmem): Likewise.
13079 * config/i386/i386.opt (Enum): Add vector_loop to option stringop_alg.
13080
7b9d1bd8
UB
130812013-07-07 Uros Bizjak <ubizjak@gmail.com>
13082
13083 * config/i386/driver-i386.c (host_detect_local_cpu): Do not check
13084 signature_TM2_ebx, it interferes with signature_INTEL_ebx.
13085
eabb5f48
UB
130862013-07-06 Uros Bizjak <ubizjak@gmail.com>
13087
13088 * config/i386/sse.md (sse_movlhps): Change alternative 3
13089 of operand 2 to "m".
13090
130912013-07-06 Uros Bizjak <ubizjak@gmail.com>
13092
13093 PR target/57807
13094 * config/i386/sse.md (iptr): New mode attribute.
13095 (sse2_movq128): Add pointer size overrides for Intel asm dialect.
13096 (<sse>_vm<plusminus_insn><mode>3): Ditto.
13097 (<sse>_vmmul<mode>3): Ditto.
13098 (<sse>_vmdiv<mode>3): Ditto.
13099 (sse_vmrcpv4sf2): Ditto.
13100 (<sse>_vmsqrt<mode>2): Ditto.
13101 (sse_vmrsqrtv4sf2): Ditto.
13102 (<sse>_vm<code><mode>3): Ditto.
13103 (avx_vmcmp<mode>3): Ditto.
13104 (<sse>_vmmaskcmp<mode>3): Ditto.
13105 (<sse>_comi): Ditto.
13106 (<sse>_ucomi): Ditto.
13107 (*xop_vmfrcz_<mode>): Ditto.
13108 (*fmai_fmadd_<mode>): Ditto.
13109 (*fmai_fmsub_<mode>): Ditto.
13110 (*fmai_fnmadd_<mode>): Ditto.
13111 (*fmai_fnmsub_<mode>): Ditto.
13112 (*fma4i_vmfmadd_<mode>): Ditto.
13113 (*fma4i_vmfmsub_<mode>): Ditto.
13114 (*fma4i_vmfnmadd_<mode>): Ditto.
13115 (*fma4i_vmfnmsub_<mode>): Ditto.
13116 (*xop_vmfrcz_<mode>): Ditto.
13117 (sse_cvtps2pi): Ditto.
13118 (sse_cvttps2pi): Ditto.
13119 (sse_cvtss2si): Ditto.
13120 (sse_cvtss2si_2): Ditto.
13121 (sse_cvtss2siq_2): Ditto.
13122 (sse_cvttss2si): Ditto.
13123 (sse_cvttss2siq): Ditto.
13124 (sse_cvtsd2si): Ditto.
13125 (sse_cvtsd2si_2): Ditto.
13126 (sse_cvtsd2siq_2): Ditto.
13127 (sse_cvttsd2si): Ditto.
13128 (sse_cvttsd2siq): Ditto.
13129 (sse_cvtsd2ss): Ditto.
13130 (sse_cvtss2sd): Ditto.
13131 (avx2_pbroadcast<mode>): Ditto.
13132 (avx2_pbroadcast<mode>_1): Ditto.
13133 (*avx_vperm_broadcast_v4sf): Ditto.
13134
13135 (sse_movhlps): Ditto for movlp[sd]/movhp[sd] alternatives.
13136 (sse_movlhps): Ditto.
13137 (sse_storehps): Ditto.
13138 (sse_loadhps): Ditto.
13139 (sse_storelps): Ditto.
13140 (sse_loadlps): Ditto.
13141 (*vec_concatv4sf): Ditto.
13142 (*vec_interleave_highv2df): Ditto.
13143 (*vec_interleave_lowv2df): Ditto.
13144 (*vec_extractv2df_1_sse): Ditto.
13145 (*vec_extractv2df_0_sse): Ditto.
13146 (sse2_storelpd): Ditto.
13147 (sse2_loadlpd): Ditto.
13148 (sse2_movsd): Ditto.
13149 (*vec_concatv4si): Ditto.
13150 (vec_concatv2di): Ditto.
13151
13152 * config/i386/mmx.md (mmx_punpcklbw): Add pointer size overrides
13153 for Intel asm dialect.
13154 (mmx_punpcklwd): Ditto.
13155 (mmx_punpckldq): Ditto.
13156
13157 * config/i386/i386.c (ix86_print_operand) ['H']: Output 'qword ptr'
13158 for intel assembler dialect.
13159
1f6eac90
JJ
131602013-07-06 Jakub Jelinek <jakub@redhat.com>
13161
13162 PR target/29776
13163 * fold-const.c (tree_call_nonnegative_warnv_p): Return true
13164 for BUILT_IN_C{LZ,LRSB}*.
13165 * tree.h (CASE_INT_FN): Add FN##IMAX case.
13166 * tree-vrp.c (extract_range_basic): Handle
13167 BUILT_IN_{FFS,PARITY,POPCOUNT,C{LZ,TZ,LRSB}}*. For
13168 BUILT_IN_CONSTANT_P if argument isn't (D) of PARM_DECL,
13169 fall thru to code calling set_value*.
13170 * builtins.c (expand_builtin): Remove *IMAX cases.
13171 (fold_builtin_bitop): For BUILT_IN_CLRSB* return NULL_TREE
13172 if width is bigger than 2*HWI.
13173
2b778c9d
VM
131742013-07-05 Vladimir Makarov <vmakarov@redhat.com>
13175
13176 PR rtl-optimization/55342
13177 * lra-int.h (lra_subreg_reload_pseudos): New.
13178 * lra.c: Add undoing optional reloads to the block diagram.
13179 (lra_subreg_reload_pseudos): New.
13180 (lra_optional_reload_pseudos): Change comments.
13181 (lra): Init and clear lra_subreg_reload_pseudos. Clear
13182 lra_optional_reload_pseudos after undo transformations.
13183 * lra-assigns.c (pseudo_prefix_title): New.
13184 (lra_setup_reg_renumber): Use it.
13185 (spill_for): Ditto. Check subreg reload pseudos too.
13186 (assign_by_spills): Consider subreg reload pseudos too.
13187 * lra-constraints.c (simplify_operand_subreg): Use
13188 lra_subreg_reload_pseudos instead of lra_optional_reload_pseudos.
13189 (curr_insn_transform): Recognize and do optional reloads.
13190 (undo_optional_reloads): New.
13191 (lra_undo_inheritance): Call undo_optional_reloads.
13192
207156e4
TQ
131932013-07-05 Thomas Quinot <quinot@adacore.com>
13194
13195 * tree-complex.c (expand_complex_operations_1): Fix typo.
13196
8990e73a
TB
131972013-07-04 Tejas Belagod <tejas.belagod@arm.com>
13198
13199 * config/aarch64/aarch64-protos.h (cpu_vector_cost): New.
13200 (tune_params): New member 'const vec_costs'.
13201 * config/aarch64/aarch64.c (generic_vector_cost): New.
13202 (generic_tunings): New member 'generic_vector_cost'.
13203 (aarch64_builtin_vectorization_cost): New.
13204 (aarch64_add_stmt_cost): New.
13205 (TARGET_VECTORIZE_ADD_STMT_COST): New.
13206 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): New.
13207
f7bc421d
JJ
132082013-07-03 Jakub Jelinek <jakub@redhat.com>
13209
13210 PR target/57777
13211 * config/i386/predicates.md (vsib_address_operand): Disallow
13212 SYMBOL_REF or LABEL_REF in parts.disp if TARGET_64BIT && flag_pic.
13213
e90d1568
HPN
132142013-07-03 Hans-Peter Nilsson <hp@bitrange.com>
13215
13216 PR middle-end/55030
13217 * stmt.c (expand_nl_goto_receiver): Remove almost-copy of
13218 expand_builtin_setjmp_receiver.
13219 (expand_label): Adjust, call expand_builtin_setjmp_receiver
13220 with NULL for the label parameter.
13221 * builtins.c (expand_builtin_setjmp_receiver): Don't clobber
13222 the frame-pointer. Adjust comments.
13223 [HAVE_builtin_setjmp_receiver]: Emit builtin_setjmp_receiver
13224 only if LABEL is non-NULL.
13225
cbd7413b
YZ
132262013-07-03 Yufeng Zhang <yufeng.zhang@arm.com>
13227
13228 * config/aarch64/aarch64.h (enum arm_abi_type): Remove.
13229 (ARM_ABI_AAPCS64): Ditto.
13230 (arm_abi): Ditto.
13231 (ARM_DEFAULT_ABI): Ditto.
13232
dec11868
JG
132332013-07-03 James Greenhalgh <james.greenhalgh@arm.com>
13234
13235 * config/aarch64/aarch64-builtins.c
13236 (aarch64_simd_expand_builtin): Handle AARCH64_SIMD_STORE1.
13237 * config/aarch64/aarch64-simd-builtins.def (ld1): New.
13238 (st1): Likewise.
13239 * config/aarch64/aarch64-simd.md
13240 (aarch64_ld1<VALL:mode>): New.
13241 (aarch64_st1<VALL:mode>): Likewise.
13242 * config/aarch64/arm_neon.h
13243 (vld1<q>_<fpsu><8, 16, 32, 64>): Convert to RTL builtins.
13244
786fb9b6
ST
132452013-07-02 Sriraman Tallam <tmsriram@google.com>
13246
0ba6aff3
UB
13247 * config/i386/i386.c (gate_insert_vzeroupper): Check if
13248 target ISA is AVX.
786fb9b6
ST
13249 (ix86_option_override_internal):Turn on all -mavx target flags by
13250 default as they are dependent on AVX anyway.
13251
4b043553
CC
132522013-07-02 Cary Coutant <ccoutant@google.com>
13253
13254 * dwarf2out.c (loc_checksum): Call hash_loc_operands for a
13255 deterministic hash.
13256 (loc_checksum_ordered): Likewise.
13257 (hash_loc_operands): Remove inline keyword.
13258
c4e87a13
JJ
132592013-07-02 Jakub Jelinek <jakub@redhat.com>
13260
13261 PR tree-optimization/57741
13262 * tree-vect-loop.c (vect_is_simple_iv_evolution): Disallow
13263 non-INTEGRAL_TYPE_P non-SCALAR_FLOAT_TYPE_P SSA_NAME step_exprs,
13264 or SCALAR_FLOAT_TYPE_P SSA_NAMEs if !flag_associative_math.
13265 Allow REAL_CST step_exprs if flag_associative_math.
13266 (get_initial_def_for_induction): Handle SCALAR_FLOAT_TYPE_P step_expr.
13267
26366d28
IB
132682013-07-02 Ian Bolton <ian.bolton@arm.com>
13269
0ba6aff3 13270 * config/aarch64/aarch64-simd.md (absdi2): Support abs for DI mode.
26366d28 13271
2879bb2b
IB
132722013-07-02 Ian Bolton <ian.bolton@arm.com>
13273
13274 * config/aarch64/aarch64.md (*extr_insv_reg<mode>): New pattern.
13275
afc5e8a6
KT
132762013-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13277
13278 * config/arm/arm.md (arm_andsi3_insn): Add alternatives for 16-bit
13279 encoding.
13280 (iorsi3_insn): Likewise.
13281 (arm_xorsi3): Likewise.
13282
31f8442b
SN
132832013-07-01 Sofiane Naci <sofiane.naci@arm.com>
13284
13285 * arm.md (attribute "wtype"): Delete. Move attribute values from here
13286 to ...
13287 (attribute "type"): ... here, and prefix with "wmmx_".
13288 (attribute "core_cycles"): Update for attribute changes.
13289 * iwmmxt.md (tbcstv8qi): Update for attribute changes.
13290 (tbcstv4hi): Likewise.
13291 (tbcstv2si): Likewise.
13292 (iwmmxt_iordi3): Likewise.
13293 (iwmmxt_xordi3): Likewise.
13294 (iwmmxt_anddi3): Likewise.
13295 (iwmmxt_nanddi3): Likewise.
13296 (iwmmxt_arm_movdi): Likewise.
13297 (iwmmxt_movsi_insn): Likewise.
13298 (mov<mode>_internal): Likewise.
13299 (and<mode>3_iwmmxt): Likewise.
13300 (ior<mode>3_iwmmxt): Likewise.
13301 (xor<mode>3_iwmmxt): Likewise.
13302 (add<mode>3_iwmmxt): Likewise.
13303 (ssaddv8qi3): Likewise.
13304 (ssaddv4hi3): Likewise.
13305 (ssaddv2si3): Likewise.
13306 (usaddv8qi3): Likewise.
13307 (usaddv4hi3): Likewise.
13308 (usaddv2si3): Likewise.
13309 (sub<mode>3_iwmmxt): Likewise.
13310 (sssubv8qi3): Likewise.
13311 (sssubv4hi3): Likewise.
13312 (sssubv2si3): Likewise.
13313 (ussubv8qi3): Likewise.
13314 (ussubv4hi3): Likewise.
13315 (ussubv2si3): Likewise.
13316 (mulv4hi3_iwmmxt): Likewise.
13317 (smulv4hi3_highpart): Likewise.
13318 (umulv4hi3_highpart): Likewise.
13319 (iwmmxt_wmacs): Likewise.
13320 (iwmmxt_wmacsz): Likewise.
13321 (iwmmxt_wmacu): Likewise.
13322 (iwmmxt_wmacuz): Likewise.
13323 (iwmmxt_clrdi): Likewise.
13324 (iwmmxt_clrv8qi): Likewise.
13325 (iwmmxt_clr4hi): Likewise.
13326 (iwmmxt_clr2si): Likewise.
13327 (iwmmxt_uavgrndv8qi3): Likewise.
13328 (iwmmxt_uavgrndv4hi3): Likewise.
13329 (iwmmxt_uavgv8qi3): Likewise.
13330 (iwmmxt_uavgv4hi3): Likewise.
13331 (iwmmxt_tinsrb): Likewise.
13332 (iwmmxt_tinsrh): Likewise.
13333 (iwmmxt_tinsrw): Likewise.
13334 (iwmmxt_textrmub): Likewise.
13335 (iwmmxt_textrmsb): Likewise.
13336 (iwmmxt_textrmuh): Likewise.
13337 (iwmmxt_textrmsh): Likewise.
13338 (iwmmxt_textrmw): Likewise.
13339 (iwmxxt_wshufh): Likewise.
13340 (eqv8qi3): Likewise.
13341 (eqv4hi3): Likewise.
13342 (eqv2si3): Likewise.
13343 (gtuv8qi3): Likewise.
13344 (gtuv4hi3): Likewise.
13345 (gtuv2si3): Likewise.
13346 (gtv8qi3): Likewise.
13347 (gtv4hi3): Likewise.
13348 (gtv2si3): Likewise.
13349 (smax<mode>3_iwmmxt): Likewise.
13350 (umax<mode>3_iwmmxt): Likewise.
13351 (smin<mode>3_iwmmxt): Likewise.
13352 (umin<mode>3_iwmmxt): Likewise.
13353 (iwmmxt_wpackhss): Likewise.
13354 (iwmmxt_wpackwss): Likewise.
13355 (iwmmxt_wpackdss): Likewise.
13356 (iwmmxt_wpackhus): Likewise.
13357 (iwmmxt_wpackwus): Likewise.
13358 (iwmmxt_wpackdus): Likewise.
13359 (iwmmxt_wunpckihb): Likewise.
13360 (iwmmxt_wunpckihh): Likewise.
13361 (iwmmxt_wunpckihw): Likewise.
13362 (iwmmxt_wunpckilb): Likewise.
13363 (iwmmxt_wunpckilh): Likewise.
13364 (iwmmxt_wunpckilw): Likewise.
13365 (iwmmxt_wunpckehub): Likewise.
13366 (iwmmxt_wunpckehuh): Likewise.
13367 (iwmmxt_wunpckehuw): Likewise.
13368 (iwmmxt_wunpckehsb): Likewise.
13369 (iwmmxt_wunpckehsh): Likewise.
13370 (iwmmxt_wunpckehsw): Likewise.
13371 (iwmmxt_wunpckelub): Likewise.
13372 (iwmmxt_wunpckeluh): Likewise.
13373 (iwmmxt_wunpckeluw): Likewise.
13374 (iwmmxt_wunpckelsb): Likewise.
13375 (iwmmxt_wunpckelsh): Likewise.
13376 (iwmmxt_wunpckelsw): Likewise.
13377 (ror<mode>3): Likewise.
13378 (ashr<mode>3_iwmmxt): Likewise.
13379 (lshr<mode>3_iwmmxt): Likewise.
13380 (ashl<mode>3_iwmmxt): Likewise.
13381 (ror<mode>3_di): Likewise.
13382 (ashr<mode>3_di): Likewise.
13383 (lshr<mode>3_di): Likewise.
13384 (ashl<mode>3_di): Likewise.
13385 (iwmmxt_wmadds): Likewise.
13386 (iwmmxt_wmaddu): Likewise.
13387 (iwmmxt_tmia): Likewise.
13388 (iwmmxt_tmiaph): Likewise.
13389 (iwmmxt_tmiabb): Likewise.
13390 (iwmmxt_tmiatb): Likewise.
13391 (iwmmxt_tmiabt): Likewise.
13392 (iwmmxt_tmiatt): Likewise.
13393 (iwmmxt_tmovmskb): Likewise.
13394 (iwmmxt_tmovmskh): Likewise.
13395 (iwmmxt_tmovmskw): Likewise.
13396 (iwmmxt_waccb): Likewise.
13397 (iwmmxt_wacch): Likewise.
13398 (iwmmxt_waccw): Likewise.
13399 (iwmmxt_waligni): Likewise.
13400 (iwmmxt_walignr): Likewise.
13401 (iwmmxt_walignr0): Likewise.
13402 (iwmmxt_walignr1): Likewise.
13403 (iwmmxt_walignr2): Likewise.
13404 (iwmmxt_walignr3): Likewise.
13405 (iwmmxt_wsadb): Likewise.
13406 (iwmmxt_wsadh): Likewise.
13407 (iwmmxt_wsadbz): Likewise.
13408 (iwmmxt_wsadhz): Likewise.
13409 * iwmmxt2.md (iwmmxt_wabs<mode>3): Update for attribute changes.
13410 (iwmmxt_wabsdiffb): Likewise.
13411 (iwmmxt_wabsdiffh): Likewise.
13412 (iwmmxt_wabsdiffw): Likewise.
13413 (iwmmxt_waddsubhx): Likewise
13414 (iwmmxt_wsubaddhx): Likewise.
13415 (addc<mode>3): Likewise.
13416 (iwmmxt_avg4): Likewise.
13417 (iwmmxt_avg4r): Likewise.
13418 (iwmmxt_wmaddsx): Likewise.
13419 (iwmmxt_wmaddux): Likewise.
13420 (iwmmxt_wmaddsn): Likewise.
13421 (iwmmxt_wmaddun): Likewise.
13422 (iwmmxt_wmulwsm): Likewise.
13423 (iwmmxt_wmulwum): Likewise.
13424 (iwmmxt_wmulsmr): Likewise.
13425 (iwmmxt_wmulumr): Likewise.
13426 (iwmmxt_wmulwsmr): Likewise.
13427 (iwmmxt_wmulwumr): Likewise.
13428 (iwmmxt_wmulwl): Likewise.
13429 (iwmmxt_wqmulm): Likewise.
13430 (iwmmxt_wqmulwm): Likewise.
13431 (iwmmxt_wqmulmr): Likewise.
13432 (iwmmxt_wqmulwmr): Likewise.
13433 (iwmmxt_waddbhusm): Likewise.
13434 (iwmmxt_waddbhusl): Likewise.
13435 (iwmmxt_wqmiabb): Likewise.
13436 (iwmmxt_wqmiabt): Likewise.
13437 (iwmmxt_wqmiatb): Likewise.
13438 (iwmmxt_wqmiatt): Likewise.
13439 (iwmmxt_wqmiabbn): Likewise.
13440 (iwmmxt_wqmiabtn): Likewise.
13441 (iwmmxt_wqmiatbn): Likewise.
13442 (iwmmxt_wqmiattn): Likewise.
13443 (iwmmxt_wmiabb): Likewise.
13444 (iwmmxt_wmiabt): Likewise.
13445 (iwmmxt_wmiatb): Likewise.
13446 (iwmmxt_wmiatt): Likewise.
13447 (iwmmxt_wmiabbn): Likewise.
13448 (iwmmxt_wmiabtn): Likewise.
13449 (iwmmxt_wmiatbn): Likewise.
13450 (iwmmxt_wmiattn): Likewise.
13451 (iwmmxt_wmiawbb): Likewise.
13452 (iwmmxt_wmiawbt): Likewise.
13453 (iwmmxt_wmiawtb): Likewise.
13454 (iwmmxt_wmiawtt): Likewise.
13455 (iwmmxt_wmiawbbn): Likewise.
13456 (iwmmxt_wmiawbtn): Likewise.
13457 (iwmmxt_wmiawtbn): Likewise.
13458 (iwmmxt_wmiawttn): Likewise.
13459 (iwmmxt_wmerge): Likewise.
13460 (iwmmxt_tandc<mode>3): Likewise.
13461 (iwmmxt_torc<mode>3): Likewise.
13462 (iwmmxt_torvsc<mode>3): Likewise.
13463 (iwmmxt_textrc<mode>3): Likewise.
13464 * marvell-f-iwmmxt.md (wmmxt_shift): Update for attribute changes.
13465 (wmmxt_pack): Likewise.
13466 (wmmxt_mult_c1): Likewise.
13467 (wmmxt_mult_c2): Likewise.
13468 (wmmxt_alu_c1): Likewise.
13469 (wmmxt_alu_c2): Likewise.
13470 (wmmxt_alu_c3): Likewise.
13471 (wmmxt_transfer_c1): Likewise.
13472 (wmmxt_transfer_c2): Likewise.
13473 (wmmxt_transfer_c3): Likewise.
13474 (marvell_f_iwmmxt_wstr): Likewise.
13475 (marvell_f_iwmmxt_wldr): Likewise.
13476
bdb7bf8a
YZ
134772013-06-29 Yufeng Zhang <yufeng.zhang@arm.com>
13478
0ba6aff3 13479 * config/aarch64/aarch64.c: Remove junk from the beginning of the file.
bdb7bf8a 13480
e6631d38
VM
134812013-06-28 Vladimir Makarov <vmakarov@redhat.com>
13482
13483 Revert:
13484 2013-06-28 Vladimir Makarov <vmakarov@redhat.com>
13485 * lra-constraints.c (need_for_split_p): Check call used hard regs
13486 living through calls.
13487
13488 * lra-constraints.c (inherit_in_ebb): Reset live_hard_regs for
13489 call used regs for call insn.
13490
53c1275b
JJ
134912013-06-28 Jakub Jelinek <jakub@redhat.com>
13492
13493 PR target/57736
0ba6aff3
UB
13494 * config/i386/i386.c (ix86_expand_builtin): If target == NULL and
13495 mode is VOIDmode, don't create a VOIDmode pseudo to copy result into.
53c1275b 13496
1141ed3f
BI
134972013-06-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
13498
13499 * builtins.def: Fixed the function type of CILKPLUS_BUILTIN.
e6631d38 13500
e32e4c4a
VM
135012013-06-28 Vladimir Makarov <vmakarov@redhat.com>
13502
13503 * lra-constraints.c (need_for_split_p): Check call used hard regs
13504 living through calls.
13505
f161bfd3
MM
135062013-06-28 Michael Meissner <meissner@linux.vnet.ibm.com>
13507
13508 PR target/57744
13509 * config/rs6000/rs6000.h (MODES_TIEABLE_P): Do not allow PTImode
13510 to tie with any other modes. Eliminate Altivec vector mode tests,
13511 since these are a subset of ALTIVEC or VSX vector modes. Simplify
13512 code, to return 0 if testing MODE2 for a condition, if we've
13513 already tested MODE1 for the same condition.
13514
7eda14e1
MS
135152013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
13516
13517 * config/aarch64/aarch64.c (aarch64_cannot_force_const_mem): Adjust
13518 layout.
13519
c822f852
MS
135202013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
13521
13522 * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
13523 Update comment w.r.t SYMBOL_TINY_ABSOLUTE.
13524
da4f13a4
MS
135252013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
13526
0ba6aff3
UB
13527 * config/aarch64/aarch64-protos.h (aarch64_classify_symbol_expression):
13528 Define.
da4f13a4
MS
13529 (aarch64_symbolic_constant_p): Remove.
13530 * config/aarch64/aarch64.c (aarch64_classify_symbol_expression): Remove
13531 static. Fix line length and white space.
13532 (aarch64_symbolic_constant_p): Remove.
13533 * config/aarch64/predicates.md (aarch64_valid_symref):
13534 Use aarch64_classify_symbol_expression.
13535
956a95a5
KT
135362013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13537
13538 * config/arm/constraints.md (Ts): New constraint.
13539 * config/arm/arm.md (arm_movqi_insn): Add alternatives for
13540 16-bit encodings.
13541 (compare_scc): Use "Ts" constraint for operand 0.
13542 (ior_scc_scc): Likewise.
13543 (and_scc_scc): Likewise.
13544 (and_scc_scc_nodom): Likewise.
13545 (ior_scc_scc_cmp): Likewise for operand 7.
13546 (and_scc_scc_cmp): Likewise.
13547 * config/arm/thumb2.md (thumb2_movsi_insn):
13548 Add alternatives for 16-bit encodings.
13549 (thumb2_movhi_insn): Likewise.
13550 (thumb2_movsicc_insn): Likewise.
13551 (thumb2_and_scc): Take 'and' outside cond_exec. Use "Ts" constraint.
13552 (thumb2_negscc): Use "Ts" constraint.
13553 Move mvn instruction outside cond_exec block.
13554 * config/arm/vfp.md (thumb2_movsi_vfp): Add alternatives
13555 for 16-bit encodings.
13556
31dfce10
KT
135572013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13558
13559 * config/arm/arm.md (arm_mulsi3_v6): Add alternative for 16-bit
13560 encoding.
13561 (mulsi3addsi_v6): Disable predicable variant for arm_restrict_it.
13562 (mulsi3subsi): Likewise.
13563 (mulsidi3adddi): Likewise.
13564 (mulsidi3_v6): Likewise.
13565 (umulsidi3_v6): Likewise.
13566 (umulsidi3adddi_v6): Likewise.
13567 (smulsi3_highpart_v6): Likewise.
13568 (umulsi3_highpart_v6): Likewise.
13569 (mulhisi3tb): Likewise.
13570 (mulhisi3bt): Likewise.
13571 (mulhisi3tt): Likewise.
13572 (maddhisi4): Likewise.
13573 (maddhisi4tb): Likewise.
13574 (maddhisi4tt): Likewise.
13575 (maddhidi4): Likewise.
13576 (maddhidi4tb): Likewise.
13577 (maddhidi4tt): Likewise.
13578 (zeroextractsi_compare0_scratch): Likewise.
13579 (insv_zero): Likewise.
13580 (insv_t2): Likewise.
13581 (anddi_notzesidi_di): Likewise.
13582 (anddi_notsesidi_di): Likewise.
13583 (andsi_notsi_si): Likewise.
13584 (iordi_zesidi_di): Likewise.
13585 (xordi_zesidi_di): Likewise.
13586 (andsi_iorsi3_notsi): Likewise.
13587 (smax_0): Likewise.
13588 (smax_m1): Likewise.
13589 (smin_0): Likewise.
13590 (not_shiftsi): Likewise.
13591 (unaligned_loadsi): Likewise.
13592 (unaligned_loadhis): Likewise.
13593 (unaligned_loadhiu): Likewise.
13594 (unaligned_storesi): Likewise.
13595 (unaligned_storehi): Likewise.
13596 (extv_reg): Likewise.
13597 (extzv_t2): Likewise.
13598 (divsi3): Likewise.
13599 (udivsi3): Likewise.
13600 (arm_zero_extendhisi2addsi): Likewise.
13601 (arm_zero_extendqisi2addsi): Likewise.
13602 (compareqi_eq0): Likewise.
13603 (arm_extendhisi2_v6): Likewise.
13604 (arm_extendqisi2addsi): Likewise.
13605 (arm_movt): Likewise.
13606 (thumb2_ldrd): Likewise.
13607 (thumb2_ldrd_base): Likewise.
13608 (thumb2_ldrd_base_neg): Likewise.
13609 (thumb2_strd): Likewise.
13610 (thumb2_strd_base): Likewise.
13611 (thumb2_strd_base_neg): Likewise.
13612 (arm_negsi2): Add alternative for 16-bit encoding.
13613 (arm_one_cmplsi2): Likewise.
13614
1572e697
KT
136152013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13616
13617 * config/arm/predicates.md (arm_cond_move_operator): New predicate.
13618 * config/arm/arm.md (movsfcc): Use arm_cond_move_operator predicate.
13619 (movdfcc): Likewise.
13620 * config/arm/vfp.md (*thumb2_movsf_vfp):
13621 Disable predication for arm_restrict_it.
13622 (*thumb2_movsfcc_vfp): Disable for arm_restrict_it.
13623 (*thumb2_movdfcc_vfp): Likewise.
13624 (*abssf2_vfp, *absdf2_vfp, *negsf2_vfp, *negdf2_vfp,*addsf3_vfp,
13625 *adddf3_vfp, *subsf3_vfp, *subdf3_vfpc, *divsf3_vfp,*divdf3_vfp,
13626 *mulsf3_vfp, *muldf3_vfp, *mulsf3negsf_vfp, *muldf3negdf_vfp,
13627 *mulsf3addsf_vfp, *muldf3adddf_vfp, *mulsf3subsf_vfp,
13628 *muldf3subdf_vfp, *mulsf3negsfaddsf_vfp, *fmuldf3negdfadddf_vfp,
13629 *mulsf3negsfsubsf_vfp, *muldf3negdfsubdf_vfp, *fma<SDF:mode>4,
13630 *fmsub<SDF:mode>4, *fnmsub<SDF:mode>4, *fnmadd<SDF:mode>4,
13631 *extendsfdf2_vfp, *truncdfsf2_vfp, *extendhfsf2, *truncsfhf2,
13632 *truncsisf2_vfp, *truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2,
13633 *floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2, floatunssidf2,
13634 *sqrtsf2_vfp, *sqrtdf2_vfp, *cmpsf_vfp, *cmpsf_trap_vfp, *cmpdf_vfp,
13635 *cmpdf_trap_vfp, <vrint_pattern><SDF:mode>2):
13636 Disable predication for arm_restrict_it.
13637
ebf8f0ea
KY
136382013-06-28 Kirill Yukhin <kirill.yukhin@intel.com>
13639
13640 * config/i386/bmiintrin.h (_bextr_u32): New.
13641 (_bextr_u64): Ditto.
13642
a290fcda
RS
136432013-06-27 Richard Sandiford <rdsandiford@googlemail.com>
13644
13645 * config.gcc (mips*-mti-elf*, mips*-sde-elf*, mips64r5900-*-elf*)
13646 (mips64r5900el-*-elf*): Include mips/n32-elf.h.
13647 * config/mips/sde.h (LOCAL_LABEL_PREFIX, NO_DOLLAR_IN_LABEL)
13648 (LONG_DOUBLE_TYPE_SIZE, LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Move to...
13649 * config/mips/n32-elf.h: ...this new file.
13650
ea169996
MG
136512013-06-27 Marc Glisse <marc.glisse@inria.fr>
13652
13653 PR target/57224
13654 * config/i386/i386.c (enum ix86_builtins, bdesc_args): Remove
13655 IX86_BUILTIN_CMPNGTSS and IX86_BUILTIN_CMPNGESS.
13656
12211b99 136572013-06-27 Catherine Moore <clm@codesourcery.com>
8e932114
CM
13658
13659 * config/mips/mips-tables.opt: Regenerate.
13660 * config/mips/mips-cpus.def: Add m14ke and m14kec.
0ba6aff3 13661 * config/mips/mips.h (BASE_DRIVER_SELF_SPECS): m14ke* implies -mdspr2.
8e932114 13662 * doc/invoke.texi: Add -m14kc.
ebf8f0ea 13663
2444244e
JJ
136642013-06-27 Jakub Jelinek <jakub@redhat.com>
13665
cd06d2a2
JJ
13666 PR target/57623
13667 * config/i386/i386.md (bmi_bextr_<mode>): Swap predicates and
13668 constraints of operand 1 and 2.
13669
2444244e
JJ
13670 PR target/57623
13671 * config/i386/i386.md (bmi2_bzhi_<mode>3): Swap AND arguments
13672 to match RTL canonicalization. Swap predicates and
13673 constraints of operand 1 and 2.
13674
2f259720
VM
136752013-06-27 Vladimir Makarov <vmakarov@redhat.com>
13676
0ba6aff3
UB
13677 * lra-constraints.c (inherit_in_ebb): Process static hard regs too.
13678 Process OP_INOUT regs for splitting too.
2f259720 13679
fef4d2b3
JJ
136802013-06-27 Jakub Jelinek <jakub@redhat.com>
13681
13682 * tree-vect-stmts.c (vectorizable_store): Move ptr_incr var
13683 decl before the loop, initialize to NULL.
13684 (vectorizable_load): Initialize ptr_incr to NULL.
13685
79ee9826
MJ
136862013-06-27 Martin Jambor <mjambor@suse.cz>
13687
13688 PR lto/57208
13689 * ipa-ref.h (ipa_maybe_record_reference): Declare.
13690 * ipa-ref.c (ipa_maybe_record_reference): New function.
13691 * cgraphclones.c (cgraph_create_virtual_clone): Use it.
13692 * ipa-cp.c (create_specialized_node): Record potential references from
13693 aggvals.
13694 * Makefile.in (ipa-ref.o): Add IPA_REF_H to dependencies.
13695
e18b4a81
YZ
136962013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
13697
13698 * config/aarch64/aarch64.c (aarch64_force_temporary): Add an extra
13699 parameter 'mode' of type 'enum machine_mode mode'; change to pass
13700 'mode' to force_reg.
13701 (aarch64_add_offset): Update calls to aarch64_force_temporary.
13702 (aarch64_expand_mov_immediate): Likewise.
13703
9c023bf0
YZ
137042013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
13705
13706 * config/aarch64/aarch64.c (aarch64_add_offset): Change to pass
13707 'mode' to aarch64_plus_immediate and gen_rtx_PLUS.
13708
5a3fe9b6
AK
137092013-06-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13710
13711 * config/s390/s390.c: Rename UNSPEC_CCU_TO_INT to
13712 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
13713 (struct machine_function): Add tbegin_p.
13714 (s390_canonicalize_comparison): Fold CC mode compares to
13715 conditional jump if possible.
13716 (s390_emit_jump): Return the emitted jump.
13717 (s390_branch_condition_mask, s390_branch_condition_mnemonic):
13718 Handle CCRAWmode compares.
13719 (s390_option_override): Default to -mhtm if available.
13720 (s390_reg_clobbered_rtx): Handle floating point regs as well.
13721 (s390_regs_ever_clobbered): Use s390_regs_ever_clobbered also for
13722 FPRs instead of df_regs_ever_live_p.
13723 (s390_optimize_nonescaping_tx): New function.
13724 (s390_init_frame_layout): Extend clobbered_regs array to cover
13725 FPRs as well.
13726 (s390_emit_prologue): Call s390_optimize_nonescaping_tx.
13727 (s390_expand_tbegin): New function.
13728 (enum s390_builtin): New enum definition.
13729 (code_for_builtin): New array definition.
13730 (s390_init_builtins): New function.
13731 (s390_expand_builtin): New function.
13732 (TARGET_INIT_BUILTINS): Define.
13733 (TARGET_EXPAND_BUILTIN): Define.
0ba6aff3 13734 * common/config/s390/s390-common.c (processor_flags_table): Add PF_TX.
5a3fe9b6
AK
13735 * config/s390/predicates.md (s390_comparison): Handle CCRAWmode.
13736 (s390_alc_comparison): Likewise.
13737 * config/s390/s390-modes.def: Add CCRAWmode.
13738 * config/s390/s390.h (processor_flags): Add PF_TX.
13739 (TARGET_CPU_HTM): Define macro.
13740 (TARGET_HTM): Define macro.
13741 (TARGET_CPU_CPP_BUILTINS): Define __HTM__ for htm.
13742 * config/s390/s390.md: Rename UNSPEC_CCU_TO_INT to
13743 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
13744 (UNSPECV_TBEGIN, UNSPECV_TBEGINC, UNSPECV_TEND, UNSPECV_TABORT)
0ba6aff3 13745 (UNSPECV_ETND, UNSPECV_NTSTG, UNSPECV_PPA): New unspecv enum values.
5a3fe9b6
AK
13746 (TBEGIN_MASK, TBEGINC_MASK): New constants.
13747 ("*cc_to_int"): Move up.
13748 ("*mov<mode>cc", "*cjump_64", "*cjump_31"): Accept integer
13749 constants other than 0.
13750 ("*ccraw_to_int"): New insn and splitter definition.
13751 ("tbegin", "tbegin_nofloat", "tbegin_retry")
13752 ("tbegin_retry_nofloat", "tbeginc", "tend", "tabort")
13753 ("tx_assist"): New expander.
13754 ("tbegin_1", "tbegin_nofloat_1", "*tbeginc_1", "*tend_1")
13755 ("*tabort_1", "etnd", "ntstg", "*ppa"): New insn definition.
13756 * config/s390/s390.opt: Add -mhtm option.
13757 * config/s390/s390-protos.h (s390_emit_jump): Add return type.
13758 * config/s390/htmxlintrin.h: New file.
13759 * config/s390/htmintrin.h: New file.
13760 * config/s390/s390intrin.h: New file.
13761 * doc/extend.texi: Document htm builtins.
13762 * config.gcc: Add the new header files to extra_headers.
13763
9e216629
TS
137642013-06-26 Thomas Schwinge <thomas@codesourcery.com>
13765
13766 * config/i386/gnu.h [TARGET_LIBC_PROVIDES_SSP]
0ba6aff3 13767 (TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Undefine.
9e216629 13768
fd8c65e7 137692013-06-26 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
13770 Pat Haugen <pthaugen@us.ibm.com>
13771 Peter Bergner <bergner@vnet.ibm.com>
fd8c65e7
MM
13772
13773 * config/rs6000/power8.md: New.
13774 * config/rs6000/rs6000-cpus.def (RS6000_CPU table): Adjust processor
13775 setting for power8 entry.
13776 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power8.md.
13777 * config/rs6000/rs6000.c (is_microcoded_insn, is_cracked_insn): Adjust
13778 test for Power4/Power5 only.
13779 (insn_must_be_first_in_group, insn_must_be_last_in_group): Add Power8
13780 support.
13781 (force_new_group): Adjust comment.
13782 * config/rs6000/rs6000.md: Include power8.md.
13783
b24a2ce5
GY
137842013-06-26 Greta Yorsh <Greta.Yorsh@arm.com>
13785
13786 * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Define macro.
13787 * config/arm/arm-protos.h (arm_max_conditional_execute): New
13788 declaration.
13789 (tune_params): Update comment.
13790 * config/arm/arm.c (arm_cortex_a15_tune): Set max_cond_insns to 2.
13791 (arm_max_conditional_execute): New function.
13792 (thumb2_final_prescan_insn): Use max_insn_skipped and
13793 MAX_INSN_PER_IT_BLOCK to compute maximum instructions in a block.
13794
f6fdeb62
JJ
137952013-06-25 Jakub Jelinek <jakub@redhat.com>
13796
13797 PR tree-optimization/57705
13798 * tree-vect-loop.c (vect_is_simple_iv_evolution): Allow
13799 SSA_NAME step, provided that it is not defined inside the loop.
0ba6aff3 13800 (vect_analyze_scalar_cycles_1): Disallow SSA_NAME step in nested loop.
f6fdeb62
JJ
13801 (get_initial_def_for_induction): Handle SSA_NAME IV step.
13802
c13bc3d9
MJ
138032013-06-25 Martin Jambor <mjambor@suse.cz>
13804
13805 PR middle-end/57670
13806 * cgraph.h (cgraph_indirect_call_info): New flag member_ptr.
13807 * ipa-prop.c (ipa_print_node_jump_functions): Mark member pointer
13808 calls in the dump.
13809 (ipa_note_param_call): Initialize member_ptr flag.
13810 (ipa_analyze_indirect_call_uses): Set member_ptr flag.
13811 (ipa_make_edge_direct_to_target): Bail out if member_ptr is set.
13812 (ipa_write_indirect_edge_info): Stream member_ptr flag.
13813 (ipa_read_indirect_edge_info): Likewise.
13814
8a845901
RB
138152013-06-25 Richard Biener <rguenther@suse.de>
13816
13817 PR middle-end/56977
13818 * passes.c (init_optimization_passes): Move pass_fold_builtins
13819 and pass_dce earlier with -Og.
13820
33be0bec
EB
138212013-06-25 Eric Botcazou <ebotcazou@adacore.com>
13822
13823 * expr.c (expand_expr_real_1) <ARRAY_REF>: Fix formatting glitches.
13824 <BIT_FIELD_REF>: Remove trailing TAB.
13825 * varasm.c (output_constructor_bitfield): Fix formatting glitch and
13826 remove blank line.
13827
5fe8e757
MJ
138282013-06-24 Martin Jambor <mjambor@suse.cz>
13829
13830 PR tree-optimization/57358
13831 * ipa-prop.c (ipa_func_spec_opts_forbid_analysis_p): New function.
13832 (ipa_compute_jump_functions_for_edge): Bail out if it returns true.
13833 (ipa_analyze_params_uses): Generate pessimistic info when true.
13834
44a60244
MJ
138352013-06-24 Martin Jambor <mjambor@suse.cz>
13836
13837 PR tree-optimization/57539
13838 * cgraphclones.c (cgraph_clone_node): Add parameter new_inlined_to, set
13839 global.inlined_to of the new node to it. All callers changed.
13840 * ipa-inline-transform.c (clone_inlined_nodes): New variable
13841 inlining_into, pass it to cgraph_clone_node.
13842 * ipa-prop.c (ipa_propagate_indirect_call_infos): Do not call
13843 ipa_free_edge_args_substructures.
13844 (ipa_edge_duplication_hook): Only add edges from inlined nodes to
13845 rdesc linked list. Do not assert rdesc edges have inlined caller.
13846 Assert we have found an rdesc in the rdesc list.
13847
7c5848b8
RB
138482013-06-24 Richard Biener <rguenther@suse.de>
13849
0ba6aff3 13850 * pointer-set.h (struct pointer_set_t): Move here from pointer-set.c.
7c5848b8
RB
13851 (pointer_set_lookup): Declare.
13852 (class pointer_map): New template class implementing a
13853 generic pointer to T map.
13854 (pointer_map<T>::pointer_map, pointer_map<T>::~pointer_map,
13855 pointer_map<T>::contains, pointer_map<T>::insert,
13856 pointer_map<T>::traverse): New functions.
13857 * pointer-set.c (struct pointer_set_t): Moved to pointer-set.h.
13858 (pointer_set_lookup): New function.
13859 (pointer_set_contains): Use pointer_set_lookup.
13860 (pointer_set_insert): Likewise.
13861 (insert_aux): Remove.
13862 (struct pointer_map_t): Embed a pointer_set_t.
13863 (pointer_map_create): Adjust.
13864 (pointer_map_destroy): Likewise.
13865 (pointer_map_contains): Likewise.
13866 (pointer_map_insert): Likewise.
13867 (pointer_map_traverse): Likewise.
13868 * tree-streamer.h (struct streamer_tree_cache_d): Use a
13869 pointer_map<unsigned> instead of a pointer_map_t.
13870 * tree-streamer.c (streamer_tree_cache_insert_1): Adjust.
13871 (streamer_tree_cache_lookup): Likewise.
13872 (streamer_tree_cache_create): Likewise.
13873 (streamer_tree_cache_delete): Likewise.
13874 * lto-streamer.h (struct lto_tree_ref_encoder): Use a
13875 pointer_map<unsigned> instead of a pointer_map_t.
13876 (lto_init_tree_ref_encoder): Adjust.
13877 (lto_destroy_tree_ref_encoder): Likewise.
13878 * lto-section-out.c (lto_output_decl_index): Likewise.
13879 (lto_record_function_out_decl_state): Likewise.
13880 * dominance.c (iterate_fix_dominators): Use pointer_map<int>.
13881
3dbc97a9
RB
138822013-06-24 Richard Biener <rguenther@suse.de>
13883
13884 PR tree-optimization/57488
13885 * tree-ssa-pre.c (insert): Clear NEW sets before each iteration.
13886
8345965a
AM
138872013-06-24 Alan Modra <amodra@gmail.com>
13888
13889 * config/rs6000/rs6000.c (vspltis_constant): Correct for little-endian.
13890 (gen_easy_altivec_constant): Likewise.
13891 * config/rs6000/predicates.md (easy_vector_constant_add_self,
13892 easy_vector_constant_msb): Likewise.
13893
b7df379f
JJ
138942013-06-23 Jakub Jelinek <jakub@redhat.com>
13895
13896 PR target/57688
13897 * common/config/i386/i386-common.c (ix86_handle_option): For OPT_mlzcnt
13898 add missing return true.
13899
12211b99 139002013-06-23 Oleg Endo <olegendo@gcc.gnu.org>
0bcf9a09
OE
13901
13902 PR target/52483
13903 * config/sh/predicates.md (general_extend_operand): Invoke
13904 general_movsrc_operand for memory operands.
13905 (general_movsrc_operand): Allow reg+reg addressing, do not use
13906 general_operand for memory operands.
13907
97db2bf7
ST
139082013-06-23 Sriraman Tallam <tmsriram@google.com>
13909
13910 * config/i386/i386.c (ix86_pragma_target_parse): Restore target
13911 when current target options does not apply.
13912 * config/i386/i386-protos.h (ix86_reset_previous_fndecl): New function.
13913 * config/i386/i386.c (ix86_reset_previous_fndecl): Ditto.
0ba6aff3
UB
13914 * config/i386/bmiintrin.h: Pass appropriate target
13915 attributes to header.
97db2bf7
ST
13916 * config/i386/mmintrin.h: Ditto.
13917 * config/i386/nmmintrin.h: Ditto.
13918 * config/i386/avx2intrin.h: Ditto.
13919 * config/i386/fxsrintrin.h: Ditto.
13920 * config/i386/tbmintrin.h: Ditto.
13921 * config/i386/xsaveintrin.h: Ditto.
13922 * config/i386/f16cintrin.h: Ditto.
13923 * config/i386/xtestintrin.h: Ditto.
13924 * config/i386/xsaveoptintrin.h: Ditto.
13925 * config/i386/bmi2intrin.h: Ditto.
13926 * config/i386/lzcntintrin.h: Ditto.
13927 * config/i386/smmintrin.h: Ditto.
13928 * config/i386/wmmintrin.h: Ditto.
13929 * config/i386/x86intrin.h: Remove all header include guards.
13930 * config/i386/prfchwintrin.h: Ditto.
13931 * config/i386/pmmintrin.h: Ditto.
13932 * config/i386/tmmintrin.h: Ditto.
13933 * config/i386/xmmintrin.h: Ditto.
13934 * config/i386/popcntintrin.h: Ditto.
13935 * config/i386/rdseedintrin.h: Ditto.
13936 * config/i386/ammintrin.h: Ditto.
13937 * config/i386/emmintrin.h: Ditto.
13938 * config/i386/immintrin.h: Remove all header include guards.
13939 * config/i386/fma4intrin.h: Ditto.
13940 * config/i386/lwpintrin.h: Ditto.
13941 * config/i386/xopintrin.h: Ditto.
13942 * config/i386/ia32intrin.h: Ditto.
13943 * config/i386/avxintrin.h: Ditto.
13944 * config/i386/rtmintrin.h: Ditto.
13945 * config/i386/fmaintrin.h: Ditto.
13946 * config/i386/mm3dnow.h: Ditto.
13947
495e6879
ST
139482013-06-22 Sriraman Tallam <tmsriram@google.com>
13949
13950 * common/config/i386/i386-common.c: Handle LZCNT.
13951
11e8f687
AK
139522013-06-22 Andi Kleen <ak@linux.intel.com>
13953
13954 * doc/extend.texi: Use __atomic_store_n instead of
13955 __atomic_store in HLE example.
13956
12211b99 139572013-06-22 Oleg Endo <olegendo@gcc.gnu.org>
664dd721
OE
13958
13959 * config/sh/sh.c: Remove <cstdlib> workaround.
13960
927f908b
AK
139612013-06-21 Andi Kleen <ak@linux.intel.com>
13962
0ba6aff3 13963 * doc/extend.texi: Dont use __atomic_clear in HLE example. Fix typo.
927f908b 13964
cca410b6
AK
139652013-06-21 Andi Kleen <ak@linux.intel.com>
13966
13967 * doc/extend.texi: Document that __atomic_clear and
13968 __atomic_test_and_set should only be used with bool.
13969
d84db1ed
JH
139702013-06-20 Jan Hubicka <jh@suse.cz>
13971
13972 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Use
13973 types_same_for_odr.
13974 * tree.c (decls_same_for_odr): New function.
13975 (same_for_edr): New function.
13976 (types_same_for_odr): New function.
13977 (get_binfo_at_offset): Use it.
13978 * tree.h (types_same_for_odr): Declare.
13979
12211b99 139802013-06-20 Oleg Endo <olegendo@gcc.gnu.org>
469a31a9
OE
13981 Jason Merrill <jason@redhat.com>
13982
13983 * system.h: Include <cstdlib> as well as <stdlib.h>.
13984
49b4ff63
UB
139852013-06-20 Uros Bizjak <ubizjak@gmail.com>
13986
13987 PR target/57655
13988 * config/i386/i386.c (construct_container): Report error if
13989 long double is used with disabled x87 float returns.
13990
7a89ad00
JH
139912013-06-20 Jan Hubicka <jh@suse.cz>
13992
13993 * lto-cgraph.c (input_symtab): Do not set cgraph state.
13994
12211b99 139952013-06-20 Joern Rennecke <joern.rennecke@embecosm.com>
bd280792
JR
13996
13997 PR rtl-optimization/57425
13998 PR rtl-optimization/57569
13999 * alias.c (write_dependence_p): Remove parameters mem_mode and
14000 canon_mem_addr. Add parameters x_mode, x_addr and x_canonicalized.
14001 Changed all callers.
14002 (canon_anti_dependence): Get comments and semantics in sync.
14003 Add parameter mem_canonicalized. Changed all callers.
14004 * rtl.h (canon_anti_dependence): Update prototype.
14005
d16e9a99
RB
140062013-06-20 Richard Biener <rguenther@suse.de>
14007
14008 * data-streamer-in.c (streamer_read_uhwi): Optimize single
14009 byte case, inline streamer_read_uchar and defer section
14010 overrun check.
14011
c3a9b91b
RB
140122013-06-20 Richard Biener <rguenther@suse.de>
14013
14014 PR tree-optimization/57584
14015 * tree-ssa-loop-niter.c (expand_simple_operations): Avoid including
14016 SSA names into the expanded expression that take part in
14017 abnormal coalescing.
14018
371e77e3 140192013-06-19 Sharad Singhai <singhai@google.com>
fc8a650e
SS
14020
14021 * gcov.c (print_usage): Handle new option.
14022 (process_args): Ditto.
14023 (get_gcov_intermediate_filename): New function.
14024 (output_intermediate_file): New function.
14025 (output_gcov_file): New function
14026 (generate_results): Handle new option.
14027 (release_function): Relase demangled name.
14028 (read_graph_file): Handle demangled name.
14029 (output_lines): Ditto.
14030 * doc/gcov.texi: Document gcov intermediate format.
14031
11f5b71a
VM
140322013-06-19 Vladimir Makarov <vmakarov@redhat.com>
14033
14034 PR bootstrap/57604
14035 * lra.c (emit_add3_insn, emit_add2_insn): New functions.
14036 (lra_emit_add): Use the functions. Add comment about Y as an
14037 address segment.
14038
e1f9340b
DE
140392013-06-19 David Edelsohn <dje.gcc@gmail.com>
14040
14041 PR driver/57652
14042 * collect2.c (collect_atexit): New.
14043 (collect_exit): Delete.
14044 (main): Register collect_atexit with atexit.
14045 (collect_wait): Change collect_exit to exit.
14046 (do_wait): Same.
14047 * collect2.h (collect_exit): Delete.
14048 * tlink.c (do_tlink): Rename exit to ret. Change collect_exit to exit.
14049
e3f9e0ac
WM
140502013-06-19 Wei Mi <wmi@google.com>
14051
14052 PR rtl-optimization/57518
14053 * ira.c (set_paradoxical_subreg): Set pdx_subregs[regno]
14054 if regno is used in paradoxical subreg.
14055 (update_equiv_regs): Check pdx_subregs[regno] before
14056 set a reg to be equivalent with a mem.
14057
a09f1a76
MK
140582013-06-19 Matthias Klose <doko@ubuntu.com>
14059
14060 PR driver/57651
14061 * file-find.h (find_a_file): Add a mode parameter.
14062 * file-find.c (find_a_file): Likewise.
14063 * gcc-ar.c (main): Call find_a_file with R_OK for the plugin,
14064 with X_OK for the executables.
14065 * collect2.c (main): Call find_a_file with X_OK.
14066
7d18b0ad
SE
140672013-06-19 Steve Ellcey <sellcey@mips.com>
14068
14069 PR target/56942
14070 * config/mips/mips.md (casesi_internal_mips16_<mode>):
14071 Use NEXT_INSN instead of next_real_insn.
14072
6a6dac52
JH
140732013-06-19 Jan Hubicka <jh@suse.cz>
14074
14075 * cgraph.h (const_value_known_p): Replace by ...
14076 (ctor_for_folding): .. this one.
14077 * cgraphunit.c (process_function_and_variable_attributes): Use it.
14078 * lto-cgraph.c (compute_ltrans_boundary): Use ctor_for_folding.
14079 * expr.c (expand_expr_real_1): Likewise.
14080 (string_constant): Likewise.
14081 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
14082 * ipa.c (process_references): Likewise.
14083 (symtab_remove_unreachable_nodes): Likewise.
14084 * ipa-inline-analysis.c (param_change_prob): Likewise.
14085 * gimple-fold.c (canonicalize_constructor_val): Likewise.
14086 (get_base_constructor): Likwise.
14087 * varpool.c (varpool_remove_node): Likewise.
14088 (varpool_remove_initializer): LIkewise.
14089 (dump_varpool_node): LIkwise.
14090 (const_value_known_p): Rewrite to ...
14091 (ctor_for_folding): ... this one.
14092
216c12ab
JJ
140932013-06-19 Jakub Jelinek <jakub@redhat.com>
14094
14095 PR driver/57651
14096 * gcc-ar.c (main): If not CROSS_DIRECTORY_STRUCTURE, look for
14097 PERSONALITY in $PATH derived prefixes.
14098
d53e2f99
JL
140992013-06-19 Jeff Law <law@redhat.com>
14100
ecdbf306
JL
14101 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): Fix typo
14102 in comment.
14103
d53e2f99
JL
14104 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): New function.
14105 (simplify_bitwise_binary): Use it to simpify certain binary ops on
14106 booleans.
14107
89e7fc04
SN
141082013-06-19 Sofiane Naci <sofiane.naci@arm.com>
14109
14110 * config/arm/vfp.md: Move VFP instruction classification documentation
14111 to ...
14112 * config/arm/arm.md: ... here. Update instruction classification
14113 documentation.
14114
5e7f6aaa
RE
141152013-06-19 Richard Earnshaw <rearnsha@arm.com>
14116
14117 arm.md (split for eq(reg, 0)): Add variants for ARMv5 and Thumb2.
14118 (peepholes for eq(reg, not-0)): Ensure condition register is dead after
14119 pattern. Use more efficient sequences on ARMv5 and Thumb2.
14120
5fdc1e5d
SB
141212013-06-19 Steven Bosscher <steven@gcc.gnu.org>
14122
14123 PR target/57609
14124 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
14125 with NEXT_INSN. Use tablejump_p to check for jump table data
14126 insns.
14127
e952afba
PC
141282013-06-19 Paolo Carlini <paolo.carlini@oracle.com>
14129
14130 PR c++/56544
14131 * doc/cpp.texi [Standard Predefined Macros, __cplusplus]: Document
14132 that now in C++ the value is correct per the C++ standards.
14133
3fd0303a
RB
141342013-06-19 Richard Biener <rguenther@suse.de>
14135
14136 * expr.c (expand_expr_real_1): Use SCOPE_FILE_SCOPE_P to check
14137 for global context.
14138
b04e4b08
AK
141392013-06-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14140
14141 Revert:
14142 2013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14143
14144 PR target/57609
14145 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
14146 with next_active_insn.
14147
bef8491a
ST
141482013-06-18 Sriraman Tallam <tmsriram@google.com>
14149
14150 * ipa-inline.c (inline_always_inline_functions): Pretend always_inline
14151 functions are inlined during failures to flag an error.
14152 * tree-inline.c (expand_call_inline): Allow the error to be flagged
14153 in early inline pass.
22fc7d3d 14154
c21b257d
L
141552013-06-18 H.J. Lu <hongjiu.lu@intel.com>
14156
14157 * config/i386/i386.c (initial_ix86_tune_features): Fix a typo
14158 in comments.
14159
33255ae3
JB
141602013-06-18 Julian Brown <julian@codesourcery.com>
14161
14162 * config/arm/arm.c (neon_vector_mem_operand): Add strict argument.
14163 Permit virtual register pre-reload if !strict.
14164 (coproc_secondary_reload_class): Adjust for neon_vector_mem_operand
14165 change.
14166 * config/arm/arm-protos.h (neon_vector_mem_operand): Adjust
14167 prototype.
14168 * config/arm/neon.md (movmisalign<mode>): Use
14169 neon_perm_struct_or_reg_operand instead of
14170 neon_struct_or_register_operand.
14171 (*movmisalign<mode>_neon_load, *movmisalign<mode>_neon_store): Use
14172 neon_permissive_struct_operand instead of neon_struct_operand.
14173 * config/arm/constraints.md (Un, Um, Us): Adjust calls to
14174 neon_vector_mem_operand.
14175 * config/arm/predicates.md (neon_struct_operand): Adjust call to
14176 neon_vector_mem_operand.
14177 (neon_permissive_struct_operand): New.
14178 (neon_struct_or_register_operand): Rename to...
14179 (neon_perm_struct_or_reg_operand): This. Adjust call to
14180 neon_vector_mem_operand.
14181
d579fcda
RB
141822013-06-18 Richard Biener <rguenther@suse.de>
14183
14184 * Makefile.in (LTO_STREAMER_H): Add pointer-set.h dependency.
14185 * lto-streamer.h: Include pointer-set.h.
14186 (struct lto_decl_slot): Remove.
14187 (struct lto_tree_ref_encoder): Make tree_hash_table a pointer-map.
14188 Remove next_index entry.
14189 (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
14190 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
14191 (lto_init_tree_ref_encoder): Adjust.
14192 (lto_destroy_tree_ref_encoder): Likewise.
14193 * lto-section-out.c (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
14194 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
14195 (lto_output_decl_index): Adjust.
14196 (lto_new_out_decl_state): Likewise.
14197 (lto_record_function_out_decl_state): Likewise.
14198 * lto-streamer-out.c (copy_function): Likewise.
14199
31ee20ba
RB
142002013-06-18 Richard Biener <rguenther@suse.de>
14201
14202 * Makefile.in (cgraphunit.o): Add $(CFGLOOP_H) dependency.
14203 * cgraphunit.c: Include cfgloop.h.
14204 (init_lowered_empty_function): Initialize the loop tree.
14205 (assemble_thunk): Insert new BBs into loops.
14206
ac0511f2
RB
142072013-06-18 Richard Biener <rguenther@suse.de>
14208
14209 * tree-streamer.h (streamer_tree_cache_create): Adjust prototype.
14210 * tree-streamer.c (streamer_tree_cache_create): Make maintaining
14211 the map from cache entry to cache index optional.
14212 (streamer_tree_cache_replace_tree): Adjust accordingly.
14213 (streamer_tree_cache_append): Likewise.
14214 (streamer_tree_cache_delete): Likewise.
14215 * lto-streamer-in.c (lto_data_in_create): Do not maintain the
14216 streamer cache map from cache entry to cache index.
14217 * lto-streamer-out.c (create_output_block): Adjust.
14218
09485a08
SN
142192013-06-18 Sofiane Naci <sofiane.naci@arm.com>
14220
22fc7d3d
UB
14221 * config/arm/arm.md (attribute "insn"): Move multiplication and
14222 division attributes to...
09485a08
SN
14223 (attribute "type"): ... here. Remove mult.
14224 (attribute "mul32"): New attribute.
14225 (attribute "mul64"): Add umaal.
14226 (*arm_mulsi3): Update attributes.
14227 (*arm_mulsi3_v6): Likewise.
14228 (*thumb_mulsi3): Likewise.
14229 (*thumb_mulsi3_v6): Likewise.
14230 (*mulsi3_compare0): Likewise.
14231 (*mulsi3_compare0_v6): Likewise.
14232 (*mulsi_compare0_scratch): Likewise.
14233 (*mulsi_compare0_scratch_v6): Likewise.
14234 (*mulsi3addsi): Likewise.
14235 (*mulsi3addsi_v6): Likewise.
14236 (*mulsi3addsi_compare0): Likewise.
14237 (*mulsi3addsi_compare0_v6): Likewise.
14238 (*mulsi3addsi_compare0_scratch): Likewise.
14239 (*mulsi3addsi_compare0_scratch_v6): Likewise.
14240 (*mulsi3subsi): Likewise.
14241 (*mulsidi3adddi): Likewise.
14242 (*mulsi3addsi_v6): Likewise.
14243 (*mulsidi3adddi_v6): Likewise.
14244 (*mulsidi3_nov6): Likewise.
14245 (*mulsidi3_v6): Likewise.
14246 (*umulsidi3_nov6): Likewise.
14247 (*umulsidi3_v6): Likewise.
14248 (*umulsidi3adddi): Likewise.
14249 (*umulsidi3adddi_v6): Likewise.
14250 (*smulsi3_highpart_nov6): Likewise.
14251 (*smulsi3_highpart_v6): Likewise.
14252 (*umulsi3_highpart_nov6): Likewise.
14253 (*umulsi3_highpart_v6): Likewise.
14254 (mulhisi3): Likewise.
14255 (*mulhisi3tb): Likewise.
14256 (*mulhisi3bt): Likewise.
14257 (*mulhisi3tt): Likewise.
14258 (maddhisi4): Likewise.
14259 (*maddhisi4tb): Likewise.
14260 (*maddhisi4tt): Likewise.
14261 (maddhidi4): Likewise.
14262 (*maddhidi4tb): Likewise.
14263 (*maddhidi4tt): Likewise.
14264 (divsi3): Likewise.
14265 (udivsi3): Likewise.
14266 * config/arm/thumb2.md (thumb2_mulsi_short): Update attributes.
14267 (thumb2_mulsi_short_compare0): Likewise.
14268 (thumb2_mulsi_short_compare0_scratch): Likewise.
14269 * config/arm/arm1020e.md (1020mult1): Update attribute change.
14270 (1020mult2): Likewise.
14271 (1020mult3): Likewise.
14272 (1020mult4): Likewise.
14273 (1020mult5): Likewise.
14274 (1020mult6): Likewise.
22fc7d3d
UB
14275 * config/arm/cortex-a15.md (cortex_a15_mult32): Update attribute
14276 change.
09485a08
SN
14277 (cortex_a15_mult64): Likewise.
14278 (cortex_a15_sdiv): Likewise.
14279 (cortex_a15_udiv): Likewise.
14280 * config/arm/arm1026ejs.md (mult1): Update attribute change.
14281 (mult2): Likewise.
14282 (mult3): Likewise.
14283 (mult4): Likewise.
14284 (mult5): Likewise.
14285 (mult6): Likewise.
14286 * config/arm/marvell-pj4.md (pj4_ir_mul): Update attribute change.
14287 (pj4_ir_div): Likewise.
14288 * config/arm/arm1136jfs.md (11_mult1): Update attribute change.
14289 (11_mult2): Likewise.
14290 (11_mult3): Likewise.
14291 (11_mult4): Likewise.
14292 (11_mult5): Likewise.
14293 (11_mult6): Likewise.
14294 (11_mult7): Likewise.
14295 * config/arm/cortex-a8.md (cortex_a8_mul): Update attribute change.
14296 (cortex_a8_mla): Likewise.
14297 (cortex_a8_mull): Likewise.
14298 (cortex_a8_smulwy): Likewise.
14299 (cortex_a8_smlald): Likewise.
14300 * config/arm/cortex-m4.md (cortex_m4_alu): Update attribute change.
14301 * config/arm/cortex-r4.md (cortex_r4_mul_4): Update attribute change.
14302 (cortex_r4_mul_3): Likewise.
14303 (cortex_r4_mla_4): Likewise.
14304 (cortex_r4_mla_3): Likewise.
14305 (cortex_r4_smlald): Likewise.
14306 (cortex_r4_mull): Likewise.
14307 (cortex_r4_sdiv): Likewise.
14308 (cortex_r4_udiv): Likewise.
14309 * config/arm/cortex-a7.md (cortex_a7_mul): Update attribute change.
14310 (cortex_a7_idiv): Likewise.
14311 * config/arm/arm926ejs.md (9_mult1): Update attribute change.
14312 (9_mult2): Likewise.
14313 (9_mult3): Likewise.
14314 (9_mult4): Likewise.
14315 (9_mult5): Likewise.
14316 (9_mult6): Likewise.
14317 * config/arm/cortex-a53.md (cortex_a53_mul): Update attribute change.
14318 (cortex_a53_sdiv): Likewise.
14319 (cortex_a53_udiv): Likewise.
14320 * config/arm/fa726te.md (726te_mult_op): Update attribute change.
14321 * config/arm/fmp626.md (mp626_mult1): Update attribute change.
14322 (mp626_mult2): Likewise.
14323 (mp626_mult3): Likewise.
14324 (mp626_mult4): Likewise.
14325 * config/arm/fa526.md (526_mult1): Update attribute change.
14326 (526_mult2): Likewise.
14327 * config/arm/arm-generic.md (mult): Update attribute change.
14328 (mult_ldsched_strongarm): Likewise.
14329 (mult_ldsched): Likewise.
14330 (multi_cycle): Likewise.
14331 * config/arm/cortex-a5.md (cortex_a5_mul): Update attribute change.
14332 * config/arm/fa606te.md (606te_mult1): Update attribute change.
14333 (606te_mult2): Likewise.
14334 (606te_mult3): Likewise.
14335 (606te_mult4): Likewise.
14336 * config/arm/cortex-a9.md (cortex_a9_mult16): Update attribute change.
14337 (cortex_a9_mac16): Likewise.
14338 (cortex_a9_multiply): Likewise.
14339 (cortex_a9_mac): Likewise.
14340 (cortex_a9_multiply_long): Likewise.
14341 * config/arm/fa626te.md (626te_mult1): Update attribute change.
14342 (626te_mult2): Likewise.
14343 (626te_mult3): Likewise.
14344 (626te_mult4): Likewise.
14345
8951f345
RB
143462013-06-18 Richard Biener <rguenther@suse.de>
14347
14348 PR lto/57334
14349 * lto-symtab.c (lto_symtab_merge_decls): Process nodes properly.
14350
d8101d05
AK
143512013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14352
14353 PR target/57609
14354 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
14355 with next_active_insn.
14356
69eff9da
AM
143572013-06-18 Alan Modra <amodra@gmail.com>
14358
14359 * config/rs6000/rs6000.h (enum data_align): New.
14360 (LOCAL_ALIGNMENT, DATA_ALIGNMENT): Use rs6000_data_alignment.
14361 (DATA_ABI_ALIGNMENT): Define.
14362 (CONSTANT_ALIGNMENT): Correct comment.
14363 * config/rs6000/rs6000-protos.h (rs6000_data_alignment): Declare.
14364 * config/rs6000/rs6000.c (rs6000_data_alignment): New function.
14365
8ed00d76
DM
143662013-06-17 David Malcolm <dmalcolm@redhat.com>
14367
14368 * ggc-page.c (ggc_pch_write_object) <d>: Remove erroneous
14369 ATTRIBUTE_UNUSED marking.
14370
3d33d06b
SN
143712013-06-17 Sofiane Naci <sofiane.naci@arm.com>
14372
14373 * config/aarch64/aarch64-simd.md (aarch64_dup_lane<mode>): Add r<-w
14374 alternative and update.
14375 (aarch64_dup_lanedi): Delete.
14376 * config/aarch64/arm_neon.h (vdup<bhsd>_lane_*): Update.
14377 * config/aarch64/aarch64-simd-builtins.def: Update.
14378
ee03e71d
RB
143792013-06-17 Richard Biener <rguenther@suse.de>
14380
14381 * lto-streamer.h (enum LTO_tags): Add LTO_tree_scc.
14382 (lto_input_scc): Declare.
14383 (lto_input_tree_1): Likewise.
14384 (struct lto_stats_d): Add num_tree_bodies_output and
14385 num_pickle_refs_output.
14386 * lto-streamer-in.c (lto_read_body): Use streamer_tree_cache_get_tree.
14387 (lto_read_tree_1): Split out from ...
14388 (lto_read_tree): ... this.
14389 (lto_input_scc): New function.
14390 (lto_input_tree_1): Split out from ...
14391 (lto_input_tree): ... this. Handle LTO_tree_scc.
14392 (lto_data_in_create): Create the streamer cache without hashes.
14393 * lto-streamer-out.c (create_output_block): Create the streamer
14394 cache with hashes when not doing WPA.
14395 (lto_write_tree_1): Split out from ...
14396 (lto_write_tree): ... this.
14397 (get_symbol_initial_value): New function.
14398 (lto_output_tree_1): Split out from ...
14399 (lto_output_tree): ... this. Write trees as series of SCCs
14400 using a DFS walk via DFS_write_tree.
14401 (struct sccs, struct scc_entry): New types.
14402 (next_dfs_num, sccstack, sccstate, sccstate_obstack): New globals.
14403 (DFS_write_tree_body): New function.
14404 (DFS_write_tree): Likewise.
14405 (hash_tree): Likewise.
14406 (scc_entry_compare): Likewise.
14407 (hash_scc): Likewise.
14408 (tree_is_indexable): DEBUG_EXPR_DECLs are local entities.
14409 * tree-streamer-in.c (lto_input_ts_list_tree_pointers): Stream
14410 TREE_CHAIN as regular reference.
14411 (streamer_read_integer_cst): Remove.
14412 (streamer_get_pickled_tree): Adjust.
14413 * tree-streamer-out.c (streamer_write_chain): Disable streaming
14414 of DECL_EXTERNALs in BLOCK_VARS for now.
14415 (write_ts_list_tree_pointers): Stream TREE_CHAIN as regular
14416 reference.
14417 * tree-streamer.c (streamer_tree_cache_add_to_node_array):
14418 Add hash value argument and record that if hashes are recorded
14419 in the cache.
14420 (streamer_tree_cache_insert_1): Adjust.
14421 (streamer_tree_cache_insert): Likewise.
14422 (streamer_tree_cache_insert_at): Rename to ...
14423 (streamer_tree_cache_replace_tree): ... this and adjust.
14424 (streamer_tree_cache_append): Adjust.
14425 (record_common_node): Likewise.
14426 (streamer_tree_cache_create): Add argument whether to
14427 record hash values together with trees.
14428 (streamer_tree_cache_delete): Adjust.
14429 * tree-streamer.h (struct streamer_tree_cache_d): Add
14430 vector of hashes.
14431 (streamer_read_integer_cst): Remove.
14432 (streamer_tree_cache_insert): Adjust.
14433 (streamer_tree_cache_append): Likewise.
14434 (streamer_tree_cache_insert_at): Rename to ...
14435 (streamer_tree_cache_replace_tree): ... this and adjust.
14436 (streamer_tree_cache_create): Add argument whether to record hashes.
14437 (streamer_tree_cache_get): Rename to ...
14438 (streamer_tree_cache_get_tree): ... this.
14439 (streamer_tree_cache_get_hash): New function.
14440 * tree.c (cache_integer_cst): New function.
14441 * tree.h (cache_integer_cst): Declare.
14442 (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Move here from cp/cp-tree.h.
14443 * lto-symtab.c (lto_varpool_replace_node): Only release
14444 DECL_INITIAL of non-prevailing decls.
14445 * varpool.c (varpool_remove_initializer): Do not release
14446 DECL_INITIAL when we are still in CGRAPH_LTO_STREAMING.
14447
0de86a92
JU
144482013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
14449
14450 * config/mips/mips.h (ISA_HAS_MUL3): Include TARGET_MIPS5900.
14451 (ISA_HAS_MULT, ISA_HAS_DMULT, ISA_HAS_DIV, ISA_HAS_DDIV): New macros.
14452 * config/mips/mips.md (mul<mode>3, mul<mode>3_internal)
14453 (mul<mode>3_r4000): Require ISA_HAS_<D>MULT.
14454 (mul<mode>3_mul3): Handle TARGET_MIPS5900.
14455 (mulsidi3_64bit_dmul): Remove redundant TARGET_64BIT test.
14456 (<su>muldi3_highpart, <su>muldi3_highpart_internal, <u>mulditi3)
14457 (<u>mulditi3_internal, <u>mulditi3_r4000): Require ISA_HAS_DMULT
14458 instead of TARGET_64BIT.
14459 (divmod<mode>4, udivmod<mode>4, <u>divmod<GPR:mode>4_hilo_<HILO:mode>):
14460 Require ISA_HAS_<D>DIV.
14461
74240413
RS
144622013-06-16 Richard Sandiford <rdsandiford@googlemail.com>
14463
14464 * config.gcc (mips*-mti-linux*, mips64*-*-linux*, mipsisa64*-*-linux*)
14465 (mips*-*-linux*): Move default with_llsc setting to where other
14466 defaults are set.
14467 (mips*-*-vxworks*): Move with_arch default from with_cpu block to
14468 with_arch block.
14469 (mips64r5900-*-*, mips64r5900el-*-*, mipsr5900-*-*, mipsr5900el-*-*):
14470 Likewise. Remove default with_tune setting. Move default float
14471 setting to its own block. Handle with_llsc in the same block as above.
14472
12211b99 144732013-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
393f9fed
JR
14474
14475 PR rtl-optimization/57425
14476 PR rtl-optimization/57569
299a5f6a 14477 * alias.c (write_dependence_p): Add new parameters mem_mode,
393f9fed
JR
14478 canon_mem_addr and mem_canonicalized. Change type of writep to bool.
14479 Changed all callers.
14480 (canon_anti_dependence): New function.
14481 * cse.c (check_dependence): Use canon_anti_dependence.
14482 * cselib.c (cselib_invalidate_mem): Likewise.
14483 * rtl.h (canon_anti_dependence): Declare.
14484
b259d352
JU
144852013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
14486
14487 * config/mips/mips.h (ISA_HAS_LL_SC): Exclude TARGET_MIPS5900.
14488 * config/mips/mips.c (mips_start_ll_sc_sync_block): Output
14489 ".set mips3" for 64-bit targets.
14490
4de09b85
DC
144912013-06-15 Dehao Chen <dehao@google.com>
14492
14493 * tree-flow.h (gimple_check_call_matching_types): Add new argument.
14494 * gimple-low.c (gimple_check_call_matching_types): Likewise.
14495 (gimple_check_call_args): Likewise.
14496 * value-prof.c (check_ic_target): Likewise.
14497 * ipa-inline.c (early_inliner): Likewise.
14498 * ipa-prop.c (update_indirect_edges_after_inlining): Likewise.
14499 * cgraph.c (cgraph_create_edge_1): Likewise.
14500 (cgraph_make_edge_direct): Likewise.
14501
d1aa4a76
MM
145022013-06-14 Michael Meissner <meissner@linux.vnet.ibm.com>
14503
14504 PR target/57615
14505 * config/rs6000/rs6000.md (mov<mode>_ppc64): Call
14506 rs6000_output_move_128bit to handle emitting quad memory
14507 operations. Set attribute length to 8 bytes.
14508
12211b99 145092013-06-14 Vidya Praveen <vidyapraveen@arm.com>
24244e4d
VP
14510
14511 * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_lo<mode>):
14512 New pattern.
14513 (aarch64_<su>mlal_hi<mode>, aarch64_<su>mlsl_lo<mode>): Likewise.
14514 (aarch64_<su>mlsl_hi<mode>, aarch64_<su>mlal<mode>): Likewise.
14515 (aarch64_<su>mlsl<mode>): Likewise.
14516
f5273574
MS
145172013-06-14 Mike Stump <mikestump@comcast.net>
14518
14519 * Makefile.in (TARGET_H): Add insn-codes.h.
14520
ef7e7ab2
AM
145212013-06-14 Alan Modra <amodra@gmail.com>
14522
14523 PR middle-end/57134
14524 PR middle-end/57586
14525 * expr.c (expand_expr_real_1 <normal_inner_ref>): Pass
14526 EXPAND_MEMORY and EXPAND_WRITE to recursive call. Don't use
14527 bitfield expansion when EXPAND_MEMORY.
14528 (expand_expr_real_1 <VIEW_CONVERT_EXPR>): Pass modifier likewise.
14529
135faab6
MM
145302013-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
14531
14532 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
14533 test for clearing quad memory on 32-bit later.
14534
948a1fd9
MG
145352013-06-13 Marc Glisse <marc.glisse@inria.fr>
14536
14537 * fold-const.c (negate_expr_p): Handle VECTOR_CST.
14538 (fold_negate_expr): Likewise.
14539 (fold_real_zero_addition_p): Handle vectors.
14540 (fold_binary_loc) <PLUS_EXPR, MINUS_EXPR>: Likewise.
14541
0597fb9c
AM
145422013-06-14 Alan Modra <amodra@gmail.com>
14543
14544 * varasm.c (force_const_mem): Revert 2013-06-07 change.
14545
e5b962d0
JH
145462013-06-13 Jan Hubicka <jh@suse.cz>
14547
14548 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
14549 Local comdats are not externally visible.
14550 * symtab.c (dump_symtab_base): Dump externally visible.
14551 (verify_symtab_base): Verify back links in the symtab hash.
14552
a8355e51
BC
145532013-06-13 Bin Cheng <bin.cheng@arm.com>
14554
14555 * fold-const.c (operand_equal_p): Consider NOP_EXPR and
14556 CONVERT_EXPR as equal nodes.
14557
8f7e6e33
BC
145582013-06-13 Bin Cheng <bin.cheng@arm.com>
14559
22fc7d3d 14560 * rtlanal.c (noop_move_p): Check the code to be executed for COND_EXEC.
8f7e6e33 14561
5d418483
MG
145622013-06-13 Marc Glisse <marc.glisse@inria.fr>
14563
14564 * tree-ssa-forwprop.c (simplify_bitwise_binary, associate_plusminus):
14565 Generalize to complex and vector.
14566 * tree.c (build_all_ones_cst): New function.
14567 * tree.h (build_all_ones_cst): Declare it.
14568
50751417
AM
145692013-06-13 Alan Modra <amodra@gmail.com>
14570
14571 * config/rs6000/rs6000.h (LONG_DOUBLE_LARGE_FIRST): Define.
14572 * config/rs6000/rs6000.md (signbittf2): New insn.
14573 (extenddftf2_internal): Use LONG_DOUBLE_LARGE_FIRST.
14574 (abstf2_internal, cmptf_internal2): Likewise.
14575 * config/rs6000/spe.md (spe_abstf2_cmp, spe_abstf2_tst): Likewise.
14576
4b02c962 145772013-06-12 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
14578 Pat Haugen <pthaugen@us.ibm.com>
14579 Peter Bergner <bergner@vnet.ibm.com>
4b02c962
MM
14580
14581 * config/rs6000/rs6000.c (emit_load_locked): Add support for
14582 power8 byte, half-word, and quad-word atomic instructions.
14583 (emit_store_conditional): Likewise.
14584 (rs6000_expand_atomic_compare_and_swap): Likewise.
14585 (rs6000_expand_atomic_op): Likewise.
14586
14587 * config/rs6000/sync.md (larx): Add new modes for power8.
14588 (stcx): Likewise.
14589 (AINT): New mode iterator to include TImode as well as normal
14590 integer modes on power8.
14591 (fetchop_pred): Use int_reg_operand instead of gpc_reg_operand so
14592 that VSX registers are not considered. Use AINT mode iterator
14593 instead of INT1 to allow inclusion of quad word atomic operations
14594 on power8.
14595 (load_locked<mode>): Likewise.
14596 (store_conditional<mode>): Likewise.
14597 (atomic_compare_and_swap<mode>): Likewise.
14598 (atomic_exchange<mode>): Likewise.
14599 (atomic_nand<mode>): Likewise.
14600 (atomic_fetch_<fetchop_name><mode>): Likewise.
14601 (atomic_nand_fetch<mode>): Likewise.
14602 (mem_thread_fence): Use gen_loadsync_<mode> instead of enumerating
14603 each type.
14604 (ATOMIC): On power8, add QImode, HImode modes.
14605 (load_locked<QHI:mode>_si): Varients of load_locked for QI/HI
14606 modes that promote to SImode.
14607 (load_lockedti): Convert TImode arguments to PTImode, so that we
14608 get a guaranteed even/odd register pair.
14609 (load_lockedpti): Likewise.
14610 (store_conditionalti): Likewise.
14611 (store_conditionalpti): Likewise.
14612
14613 * config/rs6000/rs6000.md (QHI): New mode iterator for power8
14614 atomic load/store instructions.
14615 (HSI): Likewise.
14616
710b6cc1
RS
146172013-06-12 Richard Sandiford <rdsandiford@googlemail.com>
14618
14619 * config/mips/mips.md (extended_mips16): Include GOT and constant-pool
14620 loads.
14621 (insn_count): New attribute, with most cases extracted from...
14622 (length): ...here. Redefine most cases in terms of insn_count.
14623 (single_insn): Delete.
14624 (can_delay): Use insn_count to check for single instructions.
14625 (*mul<mode>3_r4300, mul<mode>3_r4000, *mul_acc_si, *mul_acc_si_r3900)
14626 (*msac_using_macc, *mul_sub_si, <u>mulsidi3_32bit_r4000)
14627 (<u>mulsidi3_64bit_r4000, <su>muldi3_highpart_internal)
14628 (<su>mulsi3_highpart_split, <su>muldi3_highpart_internal)
14629 (<u>mulditi3_r4000, *div<mode>3, *recip<mode>3, divmod<mode>4)
14630 (udivmod<mode>4, sqrt<mode>2, *rsqrt<mode>a, *rsqrt<mode>b)
14631 (fix_truncdfsi2_macro, fix_truncsfsi2_macro, *lea_high64)
14632 (*lea64, cprestore_<mode>, clear_hazard_<mode>, <unnamed insn>)
14633 (casesi_internal_mips16_<mode>, *tls_get_tp_<mode>_split)
14634 (tls_get_tp_mips16, *tls_get_tp_mips16_call_<mode>): Use "insn_count"
14635 rather than "length".
14636 (tls_get_tp_<mode>): Likewise. Remove redundant "no_delay" attribute.
14637 * config/mips/mips-ps-3d.md (mips_c_cond_4s, mips_cabs_cond_4s):
14638 Use "insn_count" rather than "length".
14639 * config/mips/mips-dsp.md
14640 (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>)
14641 (mips_l<GPR:size>x_<P:mode>, *mips_lw<u>x_<P:mode>_ext): Remove
14642 length attributes.
14643
1951f101
MG
146442013-06-12 Marc Glisse <marc.glisse@inria.fr>
14645
14646 PR tree-optimization/57361
14647 * tree-ssa-dse.c (dse_possible_dead_store_p): Handle self-assignment.
14648
8b033a8a
SN
146492013-06-12 Sofiane Naci <sofiane.naci@arm.com>
14650
22fc7d3d
UB
14651 * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Convert
14652 to split.
8b033a8a
SN
14653 (aarch64_simd_combine<mode>): New instruction expansion.
14654 * config/aarch64/aarch64-protos.h (aarch64_split_simd_combine): New
14655 function prototype.
14656 * config/aarch64/aarch64.c (aarch64_split_combine): New function.
14657 * config/aarch64/iterators.md (Vdbl): Add entry for DF.
14658
ca0f62a8
JH
146592013-06-12 Jan Hubicka <jh@suse.cz>
14660
14661 * cgraph.c (verify_edge_corresponds_to_fndecl): Be lax about
14662 decl has when in streaming stage.
14663 * lto-symtab.c (lto_symtab_merge_symbols): Likewise.
14664 * cgraph.h (cgraph_state): Add CGRAPH_LTO_STREAMING.
14665
12211b99 146662013-06-12 Roland Stigge <stigge@antcom.de>
cddd69eb
RS
14667
14668 PR target/57578
14669 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Fix SPE version detection.
14670
bfdeda2c
JJ
146712013-06-12 Jakub Jelinek <jakub@redhat.com>
14672
14673 PR tree-optimization/57537
14674 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): If
14675 vect_handle_widen_op_by_const, convert oprnd1 to half_type1.
14676
a4fa02d1
RB
146772013-06-12 Richard Biener <rguenther@suse.de>
14678
14679 * data-streamer.h (streamer_write_char_stream): CSE
14680 obs->current_pointer.
14681 * data-streamer-out.c (streamer_write_uhwi_stream): Inline
14682 streamer_write_char_stream manually and optimize the resulting loop.
14683 (streamer_write_hwi_stream): Likewise.
14684
bbf9ad07
JH
146852013-06-12 Jan Hubicka <jh@suse.cz>
14686
14687 * lto-symtab.c (lto_symtab_merge_symbols): Populate symtab hashtable.
14688 * cgraph.h (varpool_create_empty_node): Declare.
14689 * lto-cgraph.c (input_node, input_varpool_node): Forcingly create
14690 duplicated nodes.
14691 * symtab.c (symtab_unregister_node): Be lax about missin entries
14692 in node hash.
14693 (symtab_get_node): Update comment.
14694 * varpool.c (varpool_create_empty_node): Break out from ...
14695 (varpool_node_for_decl): ... here.
14696 * lto-streamer.h (lto_file_decl_data): Add RESOLUTION_MAP.
14697
a53f90ad
EB
146982013-06-12 Eric Botcazou <ebotcazou@adacore.com>
14699
14700 * expr.c (expand_expr_real_1) <TARGET_MEM_REF>: Use straight-line flow.
14701 <MEM_REF>: Use 'type' instead of TREE_TYPE (exp) and tidy up the first
14702 part. Use straight-line flow at the end.
14703 <COMPONENT_REF>: Remove superfluous else.
14704 <VIEW_CONVERT_EXPR>: Use 'type' instead of TREE_TYPE (exp).
14705
946f9306
JJ
147062013-06-12 Jakub Jelinek <jakub@redhat.com>
14707
14708 PR target/56564
14709 * varasm.c (decl_binds_to_current_def_p): Call binds_local_p
14710 target hook even for !TREE_PUBLIC decls. If no resolution info
14711 is available, return false for common and external decls.
14712
a7fca6f0
KP
147132013-06-12 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
14714
14715 * config/rl78/constraints.md (U): New constraint.
14716 * config/rl78/rl78.md (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): Add
14717 valloc attribute.
14718
c7d8f446
MM
147192013-06-11 Michael Meissner <meissner@linux.vnet.ibm.com>
14720
14721 PR target/57589
14722 * config/rs6000/driver-rs6000.c (elf_platform): Make buffer static
14723 to allow returning address to AT_PLATFORM name.
14724
08346abd
JH
147252013-06-11 Jan Hubicka <jh@suse.cz>
14726
14727 * cgraph.c (cgraph_create_function_alias): Set weakref flag.
14728 * cgraph.h (symtab_node_base): Add weakref flag.
14729 * cgraphunit.c (cgraph_reset_node): Clear weakref flag.
14730 (handle_alias_pairs): Set weakref flag, do not set DECL_EXTERNAL.
14731 (output_weakrefs): Use weakref flag.
14732 * fold-const.c (simple_operand_p): Handle WEAK.
14733 * gimple-fold.c (can_refer_decl_in_current_unit_p): Drop weakref.
14734 * ipa.c (varpool_externally_visible_p): Drop weakref.
14735 (function_and_variable_visibility): Update comment; fix weakref
14736 sanity checks; do not clear DECL_WEAK on them.
14737 * lto-cgraph.c (lto_output_node): update.
14738 (lto_output_varpool_node): Update.
14739 (input_overwrite_node): Update.
14740 (input_node): Update.
14741 (input_varpool_node): Update.
14742 * lto-symtab.c (lto_symtab_symbol_p): Do not special case weakrefs.
14743 (lto_symtab_merge_symbols): Add sanity check.
14744 (lto_symtab_prevailing_decl): Do not special case weakrefs.
14745 * passes.c (rest_of_decl_compilation): Set static flag, too.
14746 * symtab.c (dump_symtab_base): Dump weakref.
14747 (verify_symtab_base): Sanity check weakrefs.
14748 (symtab_make_decl_local): Remove duplicated code.
14749 (symtab_alias_ultimate_target): Simplify.
14750 * varpool.c (varpool_create_variable_alias): Set weakref flag.
c7d8f446 14751
2e6a2f88
TV
147522013-06-11 Tom de Vries <tom@codesourcery.com>
14753
14754 * genautomata.c (gen_regexp_sequence): Handle els_num == -1. Handle
14755 sequence_vect == NULL.
14756
d9af3652
DD
147572013-06-11 DJ Delorie <dj@redhat.com>
14758
14759 * config/rl78/rl78.c (TARGET_UNWIND_WORD_MODE): Define.
14760 (rl78_unwind_word_mode): New.
14761
ffa66012
DM
147622013-06-11 David Malcolm <dmalcolm@redhat.com>
14763
14764 * final.c (debug_prefix_maps): Make static.
14765
783f2d35
DM
147662013-06-11 David Malcolm <dmalcolm@redhat.com>
14767
14768 * function.c (initial_trampoline): Remove stray copy.
14769
7af26def
SN
147702013-06-11 Sofiane Naci <sofiane.naci@arm.com>
14771
14772 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update.
14773
97756c0e
MJ
147742013-06-11 Martin Jambor <mjambor@suse.cz>
14775
14776 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that param_index is
14777 within bounds at the beginning of the function.
14778
2c7b8bf6
AM
147792013-06-11 Alan Modra <amodra@gmail.com>
14780
14781 * varasm.c (get_section): Don't die on !DECL_P decl. Tidy error
14782 reporting.
14783 (get_named_section): Don't NULL !DECL_P decl.
14784
77cea46e
IZ
147852013-06-11 Igor Zamyatin <igor.zamyatin@intel.com>
14786
14787 * doc/invoke.texi (core-avx2): Document.
14788 (slm): Likewise.
14789 (atom): Updated with MOVBE.
14790
888f0920
RB
147912013-06-11 Richard Biener <rguenther@suse.de>
14792
22fc7d3d 14793 * collect2.c (main): Do not redirect ld stdout/stderr when debugging.
888f0920 14794
6b438d58
AB
147952013-06-11 Anton Blanchard <anton@samba.org>
14796
14797 * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Calculate
14798 correct shift value in little-endian mode.
14799
3bc66938
JJ
148002013-06-11 Jakub Jelinek <jakub@redhat.com>
14801
14802 PR target/56564
14803 * varasm.c (get_variable_align): Move #endif to the right place.
14804
a5dc7f88
CC
148052013-06-10 Cary Coutant <ccoutant@google.com>
14806
14807 * dwarf2out.c (hash_external_ref): Use die_symbol or signature
14808 for hash so that hash table traversal order is deterministic.
14809
19be72ab 148102013-06-10 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
14811 Pat Haugen <pthaugen@us.ibm.com>
14812 Peter Bergner <bergner@vnet.ibm.com>
19be72ab
MM
14813
14814 * config/rs6000/vector.md (GPR move splitter): Do not split moves
14815 of vectors in GPRS if they are direct moves or quad word load or
14816 store moves.
14817
14818 * config/rs6000/rs6000-protos.h (rs6000_output_move_128bit): Add
14819 declaration.
14820 (direct_move_p): Likewise.
14821 (quad_load_store_p): Likewise.
14822
14823 * config/rs6000/rs6000.c (enum rs6000_reg_type): Simplify register
14824 classes into bins based on the physical register type.
14825 (reg_class_to_reg_type): Likewise.
14826 (IS_STD_REG_TYPE): Likewise.
14827 (IS_FP_VECT_REG_TYPE): Likewise.
14828 (reload_fpr_gpr): Arrays to determine what insn to use if we can
14829 use direct move instructions.
14830 (reload_gpr_vsx): Likewise.
14831 (reload_vsx_gpr): Likewise.
14832 (rs6000_init_hard_regno_mode_ok): Precalculate the register type
14833 information that is a simplification of register classes. Also
14834 precalculate direct move reload helpers.
14835 (direct_move_p): New function to return true if the operation can
14836 be done as a direct move instruciton.
14837 (quad_load_store_p): New function to return true if the operation
14838 is a quad memory operation.
14839 (rs6000_legitimize_address): If quad memory, only allow register
14840 indirect for TImode addresses.
14841 (rs6000_legitimate_address_p): Likewise.
14842 (enum reload_reg_type): Delete, replace with rs6000_reg_type.
14843 (rs6000_reload_register_type): Likewise.
14844 (register_to_reg_type): Return register type.
14845 (rs6000_secondary_reload_simple_move): New helper function for
14846 secondary reload and secondary memory needed to identify anything
14847 that is a simple move, and does not need reloading.
14848 (rs6000_secondary_reload_direct_move): New helper function for
14849 secondary reload to identify cases that can be done with several
14850 instructions via the direct move instructions.
14851 (rs6000_secondary_reload_move): New helper function for secondary
14852 reload to identify moves between register types that can be done.
14853 (rs6000_secondary_reload): Add support for quad memory operations
14854 and for direct move.
14855 (rs6000_secondary_memory_needed): Likewise.
14856 (rs6000_debug_secondary_memory_needed): Change argument names.
14857 (rs6000_output_move_128bit): New function to return the move to
14858 use for 128-bit moves, including knowing about the various
14859 limitations of quad memory operations.
14860
14861 * config/rs6000/vsx.md (vsx_mov<mode>): Add support for quad
14862 memory operations. call rs6000_output_move_128bit for the actual
14863 instruciton(s) to generate.
14864 (vsx_movti_64bit): Likewise.
14865
14866 * config/rs6000/rs6000.md (UNSPEC_P8V_FMRGOW): New unspec values.
14867 (UNSPEC_P8V_MTVSRWZ): Likewise.
14868 (UNSPEC_P8V_RELOAD_FROM_GPR): Likewise.
14869 (UNSPEC_P8V_MTVSRD): Likewise.
14870 (UNSPEC_P8V_XXPERMDI): Likewise.
14871 (UNSPEC_P8V_RELOAD_FROM_VSX): Likewise.
14872 (UNSPEC_FUSION_GPR): Likewise.
14873 (FMOVE128_GPR): New iterator for direct move.
22fc7d3d 14874 (f32_lv): New mode attribute for load/store of SFmode/SDmode values.
19be72ab
MM
14875 (f32_sv): Likewise.
14876 (f32_dm): Likewise.
14877 (zero_extend<mode>di2_internal1): Add support for power8 32-bit
14878 loads and direct move instructions.
14879 (zero_extendsidi2_lfiwzx): Likewise.
14880 (extendsidi2_lfiwax): Likewise.
14881 (extendsidi2_nocell): Likewise.
14882 (floatsi<mode>2_lfiwax): Likewise.
14883 (lfiwax): Likewise.
14884 (floatunssi<mode>2_lfiwzx): Likewise.
14885 (lfiwzx): Likewise.
14886 (fix_trunc<mode>_stfiwx): Likewise.
14887 (fixuns_trunc<mode>_stfiwx): Likewise.
14888 (mov<mode>_hardfloat, 32-bit floating point): Likewise.
14889 (mov<move>_hardfloat64, 64-bit floating point): Likewise.
14890 (parity<mode>2_cmpb): Set length/type attr.
14891 (unnamed shift right patterns, mov<mode>_internal2): Change type attr
14892 for 'mr.' to fast_compare.
14893 (bpermd_<mode>): Change type attr to popcnt.
14894 (p8_fmrgow_<mode>): New insns for power8 direct move support.
14895 (p8_mtvsrwz_1): Likewise.
14896 (p8_mtvsrwz_2): Likewise.
14897 (reload_fpr_from_gpr<mode>): Likewise.
14898 (p8_mtvsrd_1): Likewise.
14899 (p8_mtvsrd_2): Likewise.
14900 (p8_xxpermdi_<mode>): Likewise.
14901 (reload_vsx_from_gpr<mode>): Likewise.
14902 (reload_vsx_from_gprsf): Likewise.
14903 (p8_mfvsrd_3_<mode>): LIkewise.
14904 (reload_gpr_from_vsx<mode>): Likewise.
14905 (reload_gpr_from_vsxsf): Likewise.
14906 (p8_mfvsrd_4_disf): Likewise.
14907 (multi-word GPR splits): Do not split direct moves or quad memory
14908 operations.
14909
16876bdc
DM
149102013-06-10 David Malcolm <dmalcolm@redhat.com>
14911
14912 * tree-into-ssa.c (interesting_blocks): Make static.
14913
df8a1d28
JJ
149142013-06-10 Jakub Jelinek <jakub@redhat.com>
14915
14916 PR target/56564
14917 * varasm.c (align_variable): Don't use DATA_ALIGNMENT or
14918 CONSTANT_ALIGNMENT if !decl_binds_to_current_def_p (decl).
14919 Use DATA_ABI_ALIGNMENT for that case instead if defined.
14920 (get_variable_align): New function.
14921 (get_variable_section, emit_bss, emit_common,
14922 assemble_variable_contents, place_block_symbol): Use
14923 get_variable_align instead of DECL_ALIGN.
14924 (assemble_noswitch_variable): Add align argument, use it
14925 instead of DECL_ALIGN.
14926 (assemble_variable): Adjust caller. Use get_variable_align
14927 instead of DECL_ALIGN.
14928 * config/i386/i386.h (DATA_ALIGNMENT): Adjust x86_data_alignment
14929 caller.
14930 (DATA_ABI_ALIGNMENT): Define.
14931 * config/i386/i386-protos.h (x86_data_alignment): Adjust prototype.
14932 * config/i386/i386.c (x86_data_alignment): Add opt argument. If
14933 opt is false, only return the psABI mandated alignment increase.
14934 * config/c6x/c6x.h (DATA_ALIGNMENT): Renamed to...
14935 (DATA_ABI_ALIGNMENT): ... this.
14936 * config/mmix/mmix.h (DATA_ALIGNMENT): Renamed to...
14937 (DATA_ABI_ALIGNMENT): ... this.
14938 * config/mmix/mmix.c (mmix_data_alignment): Adjust function comment.
14939 * config/s390/s390.h (DATA_ALIGNMENT): Renamed to...
14940 (DATA_ABI_ALIGNMENT): ... this.
14941 * doc/tm.texi.in (DATA_ABI_ALIGNMENT): Document.
14942 * doc/tm.texi: Regenerated.
14943
57b29ca6
UB
149442013-06-10 Uros Bizjak <ubizjak@gmail.com>
14945
14946 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Also use
14947 cmp_code to construct REG_EQUAL note.
14948
3e56ed50
JJ
149492013-06-09 Jakub Jelinek <jakub@redhat.com>
14950
14951 PR target/57568
14952 * config/i386/i386.md (TARGET_READ_MODIFY_WRITE peepholes): Ensure
14953 that operands[2] doesn't overlap with operands[0].
14954
74fe2a1d
DE
149552013-06-09 David Edelsohn <dje.gcc@gmail.com>
14956 Jan Hubicka <jh@suse.cz>
14957
14958 * config/rs6000/rs6000.c (print_operand, 'z'): Remove historical
14959 hack to mark symbols as used.
14960
ed52a84e
VM
149612013-06-08 Vladimir Makarov <vmakarov@redhat.com>
14962
14963 PR rtl-optimization/57559
14964 * lra-constraints.c (process_alt_operands): Don't discourage
14965 memory with known offset for offsetable memory constraint.
14966 * lra.c (lra_emit_add): Exchange y and z for 2-op add insn.
14967
299316ed
EB
149682013-06-08 Eric Botcazou <ebotcazou@adacore.com>
14969
14970 * varasm.c (struct oc_local_state): Reorder fields.
14971 (output_constructor_bitfield): Replace OUTER parameter with BIT_OFFSET
14972 and adjust accordingly.
14973 (output_constructor): Reorder initialization code and adjust call to
14974 output_constructor_bitfield.
14975
88ac60d3
JH
149762013-06-07 Jan Hubicka <jh@suse.cz>
14977
14978 * symtab.c (symtab_resolve_alias): Do not remove alias attribute.
14979
4cdce1a8
DM
149802013-06-07 David Malcolm <dmalcolm@redhat.com>
14981
14982 * tree-object-size.c (unknown): Make const.
14983
b5e0425c
AK
149842013-06-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14985
14986 * config/s390/s390.md (cpu_facility): Add cpu_zarch.
14987 ("*movmem_short", "*clrmem_short", "*cmpmem_short): Use cpu_zarch
14988 for last alternative in the cpu_facility attribute.
14989
79678d04
KT
149902013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14991
14992 PR target/56315
14993 * config/arm/arm.md (*xordi3_insn): Change to insn_and_split.
14994 (xordi3): Change operand 2 constraint to arm_xordi_operand.
14995 * config/arm/arm.c (const_ok_for_dimode_op): Handle XOR.
14996 * config/arm/constraints.md (Dg): New constraint.
14997 * config/arm/neon.md (xordi3_neon): Remove.
14998 (neon_veor<mode>): Generate xordi3 instead of xordi3_neon.
14999 * config/arm/predicates.md (arm_xordi_operand): New predicate.
15000
b31ddbdb
KT
150012013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15002
15003 * config/arm/arm.md (anddi3_insn): Remove duplicate alternatives.
15004 Clean up alternatives.
15005
8f90b7d4
AM
150062013-06-07 Alan Modra <amodra@gmail.com>
15007
15008 * config/rs6000/rs6000.c (setup_incoming_varargs): Round up
15009 va_list_gpr_size.
15010
961ce119
AM
150112013-06-07 Alan Modra <amodra@gmail.com>
15012
15013 * varasm.c (force_const_mem): Assert mode is not VOID or BLK.
15014
33e49835
KT
150152013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15016
15017 * config/arm/constraints.md (Df): New constraint.
15018 * config/arm/arm.md (iordi3_insn): Use Df constraint instead of De.
15019 Correct length attribute for last two alternatives.
15020
acd17ae6
AM
150212013-06-07 Alan Modra <amodra@gmail.com>
15022
15023 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
15024 override user -mfp-in-toc.
15025 (offsettable_ok_by_alignment): Consider just the current access
15026 rather than the whole object, unless BLKmode. Handle
15027 CONSTANT_POOL_ADDRESS_P constants that lack a decl too.
15028 (use_toc_relative_ref): Allow CONSTANT_POOL_ADDRESS_P constants
15029 for -mcmodel=medium.
15030 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't
15031 override user -mfp-in-toc or -msum-in-toc. Default to
15032 -mno-fp-in-toc for -mcmodel=medium.
15033
73310b0e
DD
150342013-06-06 DJ Delorie <dj@redhat.com>
15035
15036 * config/rl78/rl78.c (rl78_valid_pointer_mode): New, implements
15037 TARGET_VALID_POINTER_MODE.
15038
0bd62dca 150392013-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
15040 Pat Haugen <pthaugen@us.ibm.com>
15041 Peter Bergner <bergner@vnet.ibm.com>
0bd62dca
MM
15042
15043 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
15044 Document new power8 builtins.
15045
15046 * config/rs6000/vector.md (and<mode>3): Add a clobber/scratch of a
15047 condition code register, to allow 128-bit logical operations to be
15048 done in the VSX or GPR registers.
15049 (nor<mode>3): Use the canonical form for nor.
15050 (eqv<mode>3): Add expanders for power8 xxleqv, xxlnand, xxlorc,
15051 vclz*, and vpopcnt* vector instructions.
15052 (nand<mode>3): Likewise.
15053 (orc<mode>3): Likewise.
15054 (clz<mode>2): LIkewise.
15055 (popcount<mode>2): Likewise.
15056
15057 * config/rs6000/predicates.md (int_reg_operand): Rework tests so
15058 that only the GPRs are recognized.
15059
15060 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
15061 support for new power8 builtins.
15062
15063 * config/rs6000/rs6000-builtin.def (xscvspdpn): Add new power8
15064 builtin functions.
15065 (xscvdpspn): Likewise.
15066 (vclz): Likewise.
15067 (vclzb): Likewise.
15068 (vclzh): Likewise.
15069 (vclzw): Likewise.
15070 (vclzd): Likewise.
15071 (vpopcnt): Likewise.
15072 (vpopcntb): Likewise.
15073 (vpopcnth): Likewise.
15074 (vpopcntw): Likewise.
15075 (vpopcntd): Likewise.
15076 (vgbbd): Likewise.
15077 (vmrgew): Likewise.
15078 (vmrgow): Likewise.
15079 (eqv): Likewise.
15080 (eqv_v16qi3): Likewise.
15081 (eqv_v8hi3): Likewise.
15082 (eqv_v4si3): Likewise.
15083 (eqv_v2di3): Likewise.
15084 (eqv_v4sf3): Likewise.
15085 (eqv_v2df3): Likewise.
15086 (nand): Likewise.
15087 (nand_v16qi3): Likewise.
15088 (nand_v8hi3): Likewise.
15089 (nand_v4si3): Likewise.
15090 (nand_v2di3): Likewise.
15091 (nand_v4sf3): Likewise.
15092 (nand_v2df3): Likewise.
15093 (orc): Likewise.
15094 (orc_v16qi3): Likewise.
15095 (orc_v8hi3): Likewise.
15096 (orc_v4si3): Likewise.
15097 (orc_v2di3): Likewise.
15098 (orc_v4sf3): Likewise.
15099 (orc_v2df3): Likewise.
15100
15101 * config/rs6000/rs6000.c (rs6000_option_override_internal): Only
15102 allow power8 quad mode in 64-bit.
15103 (rs6000_builtin_vectorized_function): Add support to vectorize
15104 ISA 2.07 count leading zeros, population count builtins.
15105 (rs6000_expand_vector_init): On ISA 2.07 use xscvdpspn to form
15106 V4SF vectors instead of xscvdpsp to avoid IEEE related traps.
15107 (builtin_function_type): Add vgbbd builtin function which takes an
15108 unsigned argument.
15109 (altivec_expand_vec_perm_const): Add support for new power8 merge
15110 instructions.
15111
15112 * config/rs6000/vsx.md (VSX_L2): New iterator for 128-bit types,
15113 that does not include TImdoe for use with 32-bit.
15114 (UNSPEC_VSX_CVSPDPN): Support for power8 xscvdpspn and xscvspdpn
15115 instructions.
15116 (UNSPEC_VSX_CVDPSPN): Likewise.
15117 (vsx_xscvdpspn): Likewise.
15118 (vsx_xscvspdpn): Likewise.
15119 (vsx_xscvdpspn_scalar): Likewise.
15120 (vsx_xscvspdpn_directmove): Likewise.
15121 (vsx_and<mode>3): Split logical operations into 32-bit and
15122 64-bit. Add support to do logical operations on TImode as well as
15123 VSX vector types. Allow logical operations to be done in either
15124 VSX registers or in general purpose registers in 64-bit mode. Add
15125 splitters if GPRs were used. For AND, add clobber of CCmode to
15126 allow use of ANDI on GPRs. Rewrite nor to use the canonical RTL
15127 encoding.
15128 (vsx_and<mode>3_32bit): Likewise.
15129 (vsx_and<mode>3_64bit): Likewise.
15130 (vsx_ior<mode>3): Likewise.
15131 (vsx_ior<mode>3_32bit): Likewise.
15132 (vsx_ior<mode>3_64bit): Likewise.
15133 (vsx_xor<mode>3): Likewise.
15134 (vsx_xor<mode>3_32bit): Likewise.
15135 (vsx_xor<mode>3_64bit): Likewise.
15136 (vsx_one_cmpl<mode>2): Likewise.
15137 (vsx_one_cmpl<mode>2_32bit): Likewise.
15138 (vsx_one_cmpl<mode>2_64bit): Likewise.
15139 (vsx_nor<mode>3): Likewise.
15140 (vsx_nor<mode>3_32bit): Likewise.
15141 (vsx_nor<mode>3_64bit): Likewise.
15142 (vsx_andc<mode>3): Likewise.
15143 (vsx_andc<mode>3_32bit): Likewise.
15144 (vsx_andc<mode>3_64bit): Likewise.
15145 (vsx_eqv<mode>3_32bit): Add support for power8 xxleqv, xxlnand,
15146 and xxlorc instructions.
15147 (vsx_eqv<mode>3_64bit): Likewise.
15148 (vsx_nand<mode>3_32bit): Likewise.
15149 (vsx_nand<mode>3_64bit): Likewise.
15150 (vsx_orc<mode>3_32bit): Likewise.
15151 (vsx_orc<mode>3_64bit): Likewise.
15152
15153 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Update comment.
15154
15155 * config/rs6000/altivec.md (UNSPEC_VGBBD): Add power8 vgbbd
15156 instruction.
15157 (p8_vmrgew): Add power8 vmrgew and vmrgow instructions.
15158 (p8_vmrgow): Likewise.
15159 (altivec_and<mode>3): Add clobber of CCmode to allow AND using
15160 GPRs to be split under VSX.
15161 (p8v_clz<mode>2): Add power8 count leading zero support.
15162 (p8v_popcount<mode>2): Add power8 population count support.
15163 (p8v_vgbbd): Add power8 gather bits by bytes by doubleword
15164 support.
15165
15166 * config/rs6000/rs6000.md (eqv<mode>3): Add support for powerp eqv
15167 instruction.
15168
15169 * config/rs6000/altivec.h (vec_eqv): Add defines to export power8
15170 builtin functions.
15171 (vec_nand): Likewise.
15172 (vec_vclz): Likewise.
15173 (vec_vclzb): Likewise.
15174 (vec_vclzd): Likewise.
15175 (vec_vclzh): Likewise.
15176 (vec_vclzw): Likewise.
15177 (vec_vgbbd): Likewise.
15178 (vec_vmrgew): Likewise.
15179 (vec_vmrgow): Likewise.
15180 (vec_vpopcnt): Likewise.
15181 (vec_vpopcntb): Likewise.
15182 (vec_vpopcntd): Likewise.
15183 (vec_vpopcnth): Likewise.
15184 (vec_vpopcntw): Likewise.
15185
37684c46
VM
151862013-06-06 Vladimir Makarov <vmakarov@redhat.com>
15187
15188 PR rtl-optimization/57468
15189 * config/i386/i386.c (inline_secondary_memory_needed): Ignore
15190 spilled pseudos.
15191
d89ae27c
VM
151922013-06-06 Vladimir Makarov <vmakarov@redhat.com>
15193
15194 PR rtl-optimization/57459
15195 * lra-constraints.c (update_ebb_live_info): Fix typo for operand
15196 type when setting live regs.
15197
3597e113
VM
151982013-06-06 Vladimir Makarov <vmakarov@redhat.com>
15199
15200 * config/s390/s390.opt (mlra): New option.
15201 * config/s390/s390.c (s390_decompose_address): Check displacement
15202 for all registers for LRA.
15203 (s390_secondary_reload): Don't used secondary reloads for LRA.
15204 (s390_lra_p): New function.
15205 (TARGET_LRA_P): Define.
15206 * config/s390/s390.md (*movmem_short, *clrmem_short): Change value
15207 of attribute cpu_facility to zarch for the last alternative.
15208 (*cmpmem_short): Ditto.
15209
01037aeb
EB
152102013-06-06 Eric Botcazou <ebotcazou@adacore.com>
15211
15212 * config/arm/arm.c (arm_r3_live_at_start_p): New predicate.
15213 (arm_compute_static_chain_stack_bytes): Use it. Tidy up.
15214 (arm_expand_prologue): Likewise.
15215
3371a64f
TJ
152162013-06-06 Teresa Johnson <tejohnson@google.com>
15217
15218 PR c++/53743
15219 * ifcvt.c (find_if_case_1): Replace BB_COPY_PARTITION with assert
15220 as this is now done by redirect_edge_and_branch_force.
15221 * function.c (thread_prologue_and_epilogue_insns): Insert new bb after
15222 barriers, and fix interaction with splitting.
15223 * emit-rtl.c (try_split): Copy REG_CROSSING_JUMP notes.
15224 * cfgcleanup.c (try_forward_edges): Fix early return value to properly
15225 reflect changes made in the routine.
15226 * bb-reorder.c (emit_barrier_after_bb): Move to cfgrtl.c.
15227 (fix_up_fall_thru_edges): Remove incorrect check for bb layout order
15228 since this is called in cfglayout mode, and replace partition fixup
15229 with assert as that is now done by force_nonfallthru_and_redirect.
15230 (add_reg_crossing_jump_notes): Handle the fact that some jumps may
15231 already be marked with region crossing note.
15232 (insert_section_boundary_note): Make non-static, gate on flag
15233 has_bb_partition, rewrite to also check for multiple partitions.
15234 (rest_of_handle_reorder_blocks): Remove call to
15235 insert_section_boundary_note, now done later during free_cfg.
15236 (duplicate_computed_gotos): Don't duplicate partition crossing edge.
15237 * bb-reorder.h (insert_section_boundary_note): Declare.
15238 * Makefile.in (cfgrtl.o): Depend on bb-reorder.h
15239 * cfgrtl.c (rest_of_pass_free_cfg): If partitions exist
15240 invoke insert_section_boundary_note.
15241 (try_redirect_by_replacing_jump): Remove unnecessary
15242 check for region crossing note.
15243 (fixup_partition_crossing): New function.
15244 (rtl_redirect_edge_and_branch): Fixup partition boundaries.
15245 (emit_barrier_after_bb): Move here from bb-reorder.c, handle insertion
15246 in non-cfglayout mode.
15247 (force_nonfallthru_and_redirect): Fixup partition boundaries,
15248 remove old code that tried to do this. Emit barrier correctly
15249 when we are in cfglayout mode.
15250 (last_bb_in_partition): New function.
15251 (rtl_split_edge): Correctly fixup partition boundaries.
15252 (commit_one_edge_insertion): Remove old code that tried to
15253 fixup region crossing edge since this is now handled in
15254 split_block, and set up insertion point correctly since
15255 block may now end in a jump.
15256 (verify_hot_cold_block_grouping): Guard against checking when not in
15257 linearized RTL mode.
15258 (rtl_verify_edges): Add checks for incorrect/missing REG_CROSSING_JUMP
15259 notes.
15260 (rtl_verify_flow_info_1): Move verify_hot_cold_block_grouping to
15261 rtl_verify_flow_info, so not called in cfglayout mode.
15262 (rtl_verify_flow_info): Move verify_hot_cold_block_grouping here.
15263 (fixup_reorder_chain): Remove old code that attempted to fixup region
15264 crossing note as this is now handled in force_nonfallthru_and_redirect.
15265 (duplicate_insn_chain): Don't duplicate switch section notes.
15266 (rtl_can_remove_branch_p): Remove unnecessary check for region crossing
15267 note.
15268 * basic-block.h (emit_barrier_after_bb): Declare.
15269
66071e10
KT
152702013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15271
15272 * config/arm/arm-fixed.md (add<mode>3,usadd<mode>3,ssadd<mode>3,
15273 sub<mode>3, ussub<mode>3, sssub<mode>3, arm_ssatsihi_shift,
15274 arm_usatsihi): Adjust alternatives for arm_restrict_it.
15275
0e26bf3d
KT
152762013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15277
15278 * config/arm/arm-ldmstm.ml: Set "predicable_short_it" to "no"
15279 where appropriate.
15280 * config/arm/ldmstm.md: Regenerate.
15281
12b4e7ef
KT
152822013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15283
15284 * config/arm/sync.md (atomic_loaddi_1):
15285 Disable predication for arm_restrict_it.
15286 (arm_load_exclusive<mode>): Likewise.
15287 (arm_load_exclusivesi): Likewise.
15288 (arm_load_exclusivedi): Likewise.
15289 (arm_load_acquire_exclusive<mode>): Likewise.
15290 (arm_load_acquire_exclusivesi): Likewise.
15291 (arm_load_acquire_exclusivedi): Likewise.
15292 (arm_store_exclusive<mode>): Likewise.
15293 (arm_store_exclusive<mode>): Likewise.
15294 (arm_store_release_exclusivedi): Likewise.
15295 (arm_store_release_exclusive<mode>): Likewise.
15296
15d16c8a
RB
152972013-06-06 Richard Biener <rguenther@suse.de>
15298
15299 * lto-streamer.h (enum LTO_tags): Move LTO_tree_pickle_reference
15300 after LTO_null.
15301 (lto_tag_is_tree_code_p): Adjust.
15302 (lto_tag_is_gimple_code_p): Likewise.
15303 (lto_gimple_code_to_tag): Likewise.
15304 (lto_tag_to_gimple_code): Likewise.
15305 (lto_tree_code_to_tag): Likewise.
15306 (lto_tag_to_tree_code): Likewise.
15307 * data-streamer.h (streamer_write_hwi_in_range): Use
15308 uhwi streaming to stream the normalized range.
15309 (streamer_read_hwi_in_range): Likewise.
15310
17a7fc37
KT
153112013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15312
15313 * config/arm/arm.md (enabled_for_depr_it): New attribute.
15314 (predicable_short_it): Likewise.
15315 (predicated): Likewise.
15316 (enabled): Handle above.
15317 (define_cond_exec): Set predicated attribute to yes.
15318
b57ca59b
MS
153192013-06-05 Mike Stump <mikestump@comcast.net>
15320
15321 * gdbinit.in (__FUNCTION__): Add.
15322
c1e183a9
UB
153232013-06-05 Uros Bizjak <ubizjak@gmail.com>
15324
15325 * config/alpha/alpha.c (alpha_emit_conditional_move): Swap all
15326 GE, GT, GEU and GTU compares, modulo DImode compares with zero.
15327
0378bddb
JH
153282013-06-05 Jan Hubicka <jh@suse.cz>
15329
15330 * varasm.c (mark_decl_referenced): Revert the removal until targets
15331 are fixed.
15332
8f8a2057
DE
153332013-06-05 David Edelsohn <dje.gcc@gmail.com>
15334
15335 * config/rs6000/rs6000.c (print_operand, 'z'): Use DECL_PRESERVE_P
15336 instead of mark_decl_referenced.
15337
edb983b2
JH
153382013-06-05 Jan Hubicka <jh@suse.cz>
15339
15340 * cgraph.c (cgraph_remove_node): Clear forced_by_abi.
15341 (cgraph_node_cannot_be_local_p_1): Honnor symbol.forced_by_abi
15342 and symtab_used_from_object_file_p.
15343 (cgraph_make_node_local_1): Clear forced_by_abi.
15344 (cgraph_can_remove_if_no_direct_calls_and): Use forced_by_abi
15345 * cgraph.h (symtab_node_base): Add forced_by_abi.
15346 (decide_is_variable_needed): Remove.
15347 (varpool_can_remove_if_no_refs): Honnor symbol.forced_by_abi.
15348 * cgraphunit.c (cgraph_decide_is_function_needed): Rename to ..
15349 (decide_is_symbol_needed): ... this one; handle symbols in general;
15350 always analyze virtuals; honnor forced_by_abi.
15351 (cgraph_finalize_function): Update.
15352 (varpool_finalize_decl): Update.
15353 (symbol_defined_and_needed): Remove.
15354 (analyze_functions): Update.
15355 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
15356 output_refs, input_overwrite_node): Handle forced_by_abi.
15357 * ipa.c (cgraph_address_taken_from_non_vtable_p): Rename to ...
15358 (address_taken_from_non_vtable_p): ... this one.
15359 (comdat_can_be_unshared_p_1): New function.
15360 (cgraph_comdat_can_be_unshared_p): Rename to ...
15361 (comdat_can_be_unshared_p): ... this one; handle symbols in general.
15362 (varpool_externally_visible_p): Use comdat_can_be_unshared_p.
15363 (function_and_variable_visibility): Clear forced_by_abi as needed.
15364 * trans-mem.c (ipa_tm_mark_forced_by_abi_node): New functoin.
15365 (ipa_tm_create_version_alias, ipa_tm_create_version): Update.
edb983b2
JH
15366 * symtab.c (dump_symtab_base): Dump forced_by_abi.
15367 * varpool.c (decide_is_variable_needed): Remove.
15368
9912dbe5
KT
153692013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15370
15371 * config/arm/arm.c (MAX_INSN_PER_IT_BLOCK): New macro.
15372 (arm_option_override): Override arm_restrict_it where appropriate.
15373 (thumb2_final_prescan_insn): Use MAX_INSN_PER_IT_BLOCK.
15374 * config/arm/arm.opt (mrestrict-it): New command-line option.
15375 * doc/invoke.texi: Document -mrestrict-it.
15376
34c136b6
DM
153772013-06-05 David Malcolm <dmalcolm@redhat.com>
15378
15379 * tsan.c (tsan_atomic_table): Make const.
15380
a367df53
RB
153812013-06-05 Richard Biener <rguenther@suse.de>
15382
15383 * tree-streamer.c (streamer_tree_cache_insert_1): Update the
15384 index associated with the tree we are supposed to replace.
15385 * tree-streamer-out.c (pack_ts_base_value_fields): Output
15386 TREE_ASM_WRITTEN as zero for everything but SSA names.
15387
70d51a19
DM
153882013-06-05 David Malcolm <dmalcolm@redhat.com>
15389
15390 * tree-ssa-structalias.c (call_stmt_vars): Make static.
15391
b9bd2075
JH
153922013-06-04 Jan Hubicka <jh@suse.cz>
15393
15394 * lto-cgraph.c (get_alias_symbol): Remove weakref sanity check.
15395 (input_node, input_varpool_node): Handle correctly external same
15396 body aliases.
15397 * ipa.c (symtab_remove_unreachable_nodes): Do not remove external
15398 nodes at ltrans stage.
15399
aaae719d
JH
154002013-06-04 Jan Hubicka <jh@suse.cz>
15401
15402 * ipa-inline.c (update_caller_keys): Fix availability test.
15403 (update_callee_keys): Likewise.
15404 * symtab.c (symtab_alias_ultimate_target): Make availaiblity logic
15405 to follow ELF standard.
15406
107eea2c
JU
154072013-06-04 Jürgen Urban <JuergenUrban@gmx.de>
15408
15409 * config.gcc (mipsr5900-*-elf*, mipsr5900el-*-elf*, mips64r5900-*-elf*)
15410 (mips64r5900el-*-elf*): New configurations.
15411 * config/mips/mips-cpus.def (r5900): New processor.
15412 * config/mips/mips-tables.opt: Regenerate.
15413 * config/mips/mips.c (mips_rtx_cost_data): Add an R5900 entry.
15414 (mips_issue_rate): Handle PROCESSOR_R5900.
15415 (mips_reorg_process_insns): Force reorder mode for the R5900.
15416 * config/mips/mips.h (TARGET_MIPS5900): Define.
15417 (ISA_HAS_CONDMOVE, ISA_HAS_PREFETCH, ISA_HAS_HILO_INTERLOCKS): Include
15418 TARGET_MIPS5900.
15419 (ISA_HAS_LOAD_DELAY, ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY): Exclude
15420 TARGET_MIPS5900.
15421 * config/mips/mips.md (processor): Add r5900.
15422 (MOVECC): Disallow CCmode conditions for TARGET_MIPS5900.
15423
b7342d25
IB
154242013-06-04 Ian Bolton <ian.bolton@arm.com>
15425
15426 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Call
15427 into function to generate MOVI instruction.
c1e183a9 15428 * config/aarch64/aarch64.c (aarch64_simd_container_mode): New function.
b7342d25
IB
15429 (aarch64_preferred_simd_mode): Turn into wrapper.
15430 (aarch64_output_scalar_simd_mov_immediate): New function.
15431 * config/aarch64/aarch64-protos.h: Add prototype for above.
15432
81c2dfb9
IB
154332013-06-04 Ian Bolton <ian.bolton@arm.com>
15434
15435 * config/aarch64/aarch64.c (simd_immediate_info): Remove
15436 element_char member.
15437 (sizetochar): Return signed char.
15438 (aarch64_simd_valid_immediate): Remove elchar and other
15439 unnecessary variables.
15440 (aarch64_output_simd_mov_immediate): Take rtx instead of &rtx.
15441 Calculate element_char as required.
15442 * config/aarch64/aarch64-protos.h: Update and move prototype
15443 for aarch64_output_simd_mov_immediate.
15444 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
15445 Update arguments.
15446
48063b9d
IB
154472013-06-04 Ian Bolton <ian.bolton@arm.com>
15448
15449 * config/aarch64/aarch64.c (simd_immediate_info): Struct to hold
15450 information completed by aarch64_simd_valid_immediate.
15451 (aarch64_legitimate_constant_p): Update arguments.
15452 (aarch64_simd_valid_immediate): Work with struct rather than many
15453 pointers.
15454 (aarch64_simd_scalar_immediate_valid_for_move): Update arguments.
15455 (aarch64_simd_make_constant): Update arguments.
15456 (aarch64_output_simd_mov_immediate): Work with struct rather than
15457 many pointers. Output immediate directly rather than as operand.
15458 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
15459 Update prototype.
15460 * config/aarch64/constraints.md (Dn): Update arguments.
15461
3ea63f60
IB
154622013-06-04 Ian Bolton <ian.bolton@arm.com>
15463
15464 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): No
15465 longer static.
15466 (aarch64_simd_immediate_valid_for_move): Remove.
15467 (aarch64_simd_scalar_immediate_valid_for_move): Update call.
15468 (aarch64_simd_make_constant): Update call.
15469 (aarch64_output_simd_mov_immediate): Update call.
15470 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
15471 Add prototype.
15472 * config/aarch64/constraints.md (Dn): Update call.
15473
d8edd899
IB
154742013-06-04 Ian Bolton <ian.bolton@arm.com>
15475
15476 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Change
15477 return type to bool for prototype.
15478 (aarch64_legitimate_constant_p): Check for true instead of not -1.
15479 (aarch64_simd_valid_immediate): Fix up each return to return a bool.
15480 (aarch64_simd_immediate_valid_for_move): Update retval for bool.
15481
44b20bb8
CM
154822013-06-04 Catherine Moore <clm@codesourcery.com>
15483
15484 * config/mips/mips.opt (meva): New.
c1e183a9 15485 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_eva.
44b20bb8
CM
15486 (ASM_SPEC): Handle -meva.
15487 * doc/invoke.texi (meva): Document.
15488
52befbd8
AM
154892013-06-04 Alan Modra <amodra@gmail.com>
15490
15491 * config/rs6000/rs6000.c (output_toc): Correct little-endian float
15492 constant output.
15493
aadaf24e
KT
154942013-06-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15495
15496 * rtl.def: Add extra fourth optional field to define_cond_exec.
15497 * gensupport.c (process_one_cond_exec): Process attributes from
15498 define_cond_exec.
15499 * doc/md.texi: Document fourth field in define_cond_exec.
15500
0cd9e9ee
EB
155012013-06-04 Eric Botcazou <ebotcazou@adacore.com>
15502
15503 * expmed.c (extract_bit_field_1): In the larger-than-a-word case, factor
15504 out the processing order as in store_bit_field_1.
15505
cb0f665d
JH
155062013-06-04 Jan Hubicka <jh@suse.cz>
15507
15508 PR middle-end/57500
15509 * cgraphunit.c (cgraph_process_same_body_aliases): Create
15510 non-VAR_DECL node if it does not exist yet.
15511
53984b9b
RS
155122013-06-03 Richard Sandiford <rdsandiford@googlemail.com>
15513
15514 * config.gcc (mipsisa64sr71k-*-elf*, mipsisa64sb1-*-elf*)
15515 (mipsisa64sb1el-*-elf*, mips64-*-elf*, mips64el-*-elf*)
15516 (mips64orion-*-elf*, mips64orionel-*-elf*): Remove
15517 target_cpu_default setting.
15518
5d318fd4
TJ
155192013-06-03 Teresa Johnson <tejohnson@google.com>
15520
15521 * dumpfile.c (opt_info_switch_p): Change -fopt-info
15522 default to -fopt-info=optimized instead of all.
15523 * doc/invoke.texi: Ditto.
15524 * tree-vectorizer.c (vectorize_loops): Emit loop vectorization
15525 success under MSG_OPTIMIZED_LOCATIONS, and use dump_printf_loc.
15526 (execute_vect_slp): Emit BB vectorization success under
15527 MSG_OPTIMIZED_LOCATIONS.
15528 * tree-vect-slp.c (vect_slp_transform_bb): Change
15529 MSG_OPTIMIZED_LOCATIONS to MSG_NOTE.
15530 * tree-vect-loop.c (vect_transform_loop): Ditto.
15531
ec3af349
JM
155322013-06-03 Jason Merrill <jason@redhat.com>
15533
15534 PR c++/57415
15535 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
15536 Use TARGET_EXPR for C++.
15537
1baf9159
JJ
155382013-06-03 Jakub Jelinek <jakub@redhat.com>
15539
15540 PR rtl-optimization/57268
0cd9e9ee 15541 * sched-deps.c (sched_analyze_2): Don't flush_pending_lists
1baf9159
JJ
15542 if DEBUG_INSN_P (insn).
15543
15544 Reapply
15545 2013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
15546
15547 PR rtl-optimization/57268
15548 * sched-deps.c (sched_analyze_2): Flush dependence lists if
15549 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
15550
0f1d3965
YR
155512013-06-03 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
15552
15553 * config/i386/i386.c (ix86_lea_outperforms): Fix formatting.
15554 (ix86_avoid_lea_for_addr): Likewise.
15555 (exact_dependency_1): Likewise.
15556 (ix86_adjust_cost): Likewise.
15557 (swap_top_of_ready_list): Fix formatting and !reload_completed check
15558 removed.
15559 (do_reorder_for_imul): Fix typo, formatting and
15560 !reload_completed check removed.
15561 (ix86_sched_reorder): Fix typo and formatting.
15562 (fold_builtin_cpu): Move M_INTEL_SLM at the end of processor types
15563 list.
15564
3bc30db4
SN
155652013-06-03 Sofiane Naci <sofiane.naci@arm.com>
15566
15567 * config/aarch64/aarch64.md (*movdi_aarch64): Define "simd" attribute.
15568
19cc6fac
EB
155692013-06-03 Eric Botcazou <ebotcazou@adacore.com>
15570
15571 * varasm.c (output_constant) <CONSTRUCTOR>: Minor formatting tweak.
15572 <STRING_CST>: Likewise.
15573 <VECTOR_CST>: Likewise.
15574
c68a6e08
JW
155752013-06-01 Janus Weil <janus@gcc.gnu.org>
15576 Mikael Morin <mikael@gcc.gnu.org>
15577
15578 * configure.ac: Add AC_HEADER_TIOCGWINSZ macro.
15579 * config.in: Regenerated.
15580 * configure: Regenerated.
15581
38e55e5c
JH
155822013-06-01 Jan Hubicka <jh@suse.cz>
15583
15584 PR middle-end/57366
15585 * cgraphunit.c (compile): When weakref is not supported,
15586 set up transparent aliases before final output pass.
15587 * varasm.c (assemble_alias): Do not try to do it here.
15588
eb51d2ff
JH
155892013-06-01 Jan Hubicka <jh@suse.cz>
15590
15591 PR middle-end/57467
15592 * passes.c (for_per_function): Skip unanalyzed functions.
15593
40a7fe1e
JH
155942013-06-01 Jan Hubicka <jh@suse.cz>
15595
15596 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Rename to ...
15597 (lto_symtab_merge_symbols_1): ... this one.
15598 (lto_symtab_merge_cgraph_nodes): Rename to ...
15599 (lto_symtab_merge_symbols): ... this one; simplify.
15600 * cgraph.c (same_body_aliases_done): Rename to ...
15601 (cpp_implicit_aliases_done): ... this one.
15602 (cgraph_create_function_alias): Update.
15603 (cgraph_same_body_alias): Update.
c1e183a9 15604 (dump_cgraph_node): Remove alias dumping; simplify thunk dumping.
40a7fe1e 15605 (verify_edge_corresponds_to_fndecl): Simplify.
c1e183a9 15606 * cgraph.h (symtab_node_base): Add cpp_implicit_alias, alias_target.
40a7fe1e
JH
15607 (cgraph_node): Remove same_body_alias.
15608 (varpool_node): Remove alias_of and extra_name_alias.
15609 (same_body_aliases_done): Rename to ..
15610 (cpp_implicit_aliases_done): ... this one.
15611 (symtab_alias_ultimate_target): Add default parameter.
15612 (symtab_resolve_alias): New function.
15613 (fixup_same_cpp_alias_visibility): Declare.
15614 (cgraph_function_node): Add default parameter.
15615 (cgraph_node_asm_name): Likewise.
15616 (cgraph_function_or_thunk_node): Add default parameter; do
15617 not ICE when it is NULL.
15618 (varpool_variable_node): Likewise.
15619 * tree-emutls.c (create_emultls_var): Update.
15620 (ipa_lower_emutls): Update.
15621 * cgraphunit.c (cgraph_decide_is_function_needed): Update.
15622 (cgraph_reset_node): Reset alias info.
15623 (cgraph_finalize_function): Update.
15624 (fixup_same_cpp_alias_visibility): Move to symtab.c.
15625 (analyze_function): Simplify.
15626 (cgraph_process_same_body_aliases): Simplify.
15627 (analyze_functions): Fixup same body aliases.
15628 (handle_alias_pairs): Simplify.
15629 (assemble_thunk): Update.
15630 (assemble_thunks_and_aliases): Update.
15631 (output_weakrefs): Rewrite.
15632 * lto-cgraph.c (lto_output_node): Rewrite alias handling.
15633 (lto_output_varpool_node): Likewise.
15634 (compute_ltrans_boundary): Remve assert.
15635 (get_alias_symbol): New functoin.
15636 (input_node): Rewrite alias handling.
15637 (input_varpool_node): Likewise.
15638 * ipa-pure-const.c (propagate_pure_const): Fix formating.
15639 * ipa.c (process_references): Handle weakrefs correctly.
15640 (symtab_remove_unreachable_nodes): Likewise.
15641 * trans-mem.c (get_cg_data): Update.
15642 (ipa_tm_create_version_alias): Update.
15643 (ipa_tm_execute): Update.
15644 * symtab.c (dump_symtab_base): Dump aliases.
15645 (verify_symtab_base): Verify aliases.
15646 (symtab_node_availability): New function.
15647 (symtab_alias_ultimate_target): Simplify.
15648 (fixup_same_cpp_alias_visibility): Move here from cgraphunit.c;
15649 handle all the fixup cases.
15650 (symtab_resolve_alias): New function.
15651 * passes.c (ipa_write_summaries): Handle weakrefs.
15652 * varpool.c (varpool_analyze_node): Simplify.
15653 (assemble_aliases): Update.
15654 (varpool_create_variable_alias): Simplify.
15655 (varpool_extra_name_alias): Simplify.
15656 * lto-streamer.h (lto_symtab_merge_cgraph_nodes): Rename to...
15657 (lto_symtab_merge_symbols): ... this one.
15658
21759881
DT
156592013-06-01 Dinar Temirbulatov <dinar@kugelworks.com>
15660
15661 Revert
15662 PR rtl-optimization/57268
15663 * sched-deps.c (sched_analyze_2): Flush dependence lists if
15664 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
15665
daf4e940
TB
156662013-06-01 Tobias Burnus <burnus@net-b.de>
15667
15668 Partially reverted:
15669 2013-05-31 Tobias Burnus <burnus@net-b.de>
15670
15671 PR middle-end/57073
15672 * tree-ssa-math-opts.c (execute_cse_sincos): Move check
15673 further up.
15674
c359d8d0
DT
156752013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
15676
15677 PR rtl-optimization/57268
15678 * sched-deps.c (sched_analyze_2): Flush dependence lists if
15679 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
15680
4172215d
EB
156812013-05-31 Eric Botcazou <ebotcazou@adacore.com>
15682
15683 * config/rs6000/predicates.md (rs6000_cbranch_operator): Accept some
15684 unordered comparison operators when -fno-trapping-math is in effect
15685 on the e500.
15686 * config/rs6000/rs6000.c (rs6000_generate_compare): Remove dead code
15687 and implement unordered comparison operators properly on the e500.
15688
a8c50132
EB
156892013-05-31 Eric Botcazou <ebotcazou@adacore.com>
15690
15691 * simplify-rtx.c (simplify_byte_swapping_operation): Use proper macro
15692 for constant scalar integers.
15693 (simplify_relational_operation_1): Likewise.
15694
44626634
SB
156952013-05-31 Segher Boessenkool <segher@kernel.crashing.org>
15696
15697 * config/rs6000/rs6000-opts.h (enum processor_type): Reorder.
15698 * config/rs6000/rs6000.md (cpu): Reorder. Split long line.
15699 Fix comment.
15700
55805e54
YR
157012013-05-31 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
15702 Igor Zamyatin <igor.zamyatin@intel.com>
15703
15704 Silvermont (SLM) architecture performance tuning.
15705 * config/i386/i386.h (enum ix86_tune_indices): Add
15706 X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS.
15707 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS): New define.
15708
15709 * config/i386/i386.c (initial_ix86_tune_features)
15710 <X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS>: Initialize.
15711 (ix86_lea_outperforms): Handle Silvermont tuning.
15712 (ix86_avoid_lea_for_add): Add new argument to ix86_lea_outperforms
15713 call.
15714 (ix86_use_lea_for_mov): Likewise.
15715 (ix86_avoid_lea_for_addr): Likewise.
15716 (ix86_lea_for_add_ok): Likewise.
15717 (exact_dependency_1): New function.
15718 (exact_store_load_dependency): Likewise.
15719 (ix86_adjust_cost): Handle Silvermont tuning.
15720 (do_reoder_for_imul): Likewise.
15721 (swap_top_of_ready_list): New function.
15722 (ix86_sched_reorder): Changed to handle Silvermont tuning.
15723
15724 * config/i386/i386.md (peepholes that split memory operand in fp
15725 converts): New.
15726
e19c9de2
MS
157272013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
15728
15729 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
15730 Remove un-necessary braces.
15731
38e6c9a6
MS
157322013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
15733
15734 * config/aarch64/aarch64.c (aarch64_classify_symbol):
15735 Use SYMBOL_TINY_ABSOLUTE for AARCH64_CMODEL_TINY_PIC.
15736
e3530904
TB
157372013-05-31 Tobias Burnus <burnus@net-b.de>
15738
15739 PR middle-end/57073
c1e183a9 15740 * tree-ssa-math-opts.c (execute_cse_sincos): Move check further up.
e3530904 15741
b6af05a9
KT
157422013-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15743
15744 PR target/56315
15745 * config/arm/arm.c (const_ok_for_dimode_op): Handle IOR.
15746 * config/arm/arm.md (*iordi3_insn): Change to insn_and_split.
15747 * config/arm/neon.md (iordi3_neon): Remove.
15748 (neon_vorr<mode>): Generate iordi3 instead of iordi3_neon.
15749 * config/arm/predicates.md (imm_for_neon_logic_operand):
15750 Move to earlier in the file.
15751 (neon_logic_op2): Likewise.
15752 (arm_iordi_operand_neon): New predicate.
15753
f800c166
RB
157542013-05-31 Richard Biener <rguenther@suse.de>
15755
15756 PR tree-optimization/57478
15757 PR tree-optimization/57453
15758 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Uses in PHI nodes
15759 are life as well.
15760
e571fa59
KP
157612013-05-31 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
15762
15763 * config/rl78/rl78.md (mulqi3,mulhi3): New define_expands.
15764 (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): New define_insns.
15765
0fa6e0ef
TB
157662013-05-30 Tobias Burnus <burnus@net-b.de>
15767 Thomas Koenig <tkoenig@gcc.gnu.org>
15768
15769 PR middle-end/57073
15770 * tree-ssa-math-opts.c (execute_cse_sincos): Optimize
15771 powi (-1.0, k) to (k & 1) ? -1.0 : 1.0.
15772
4688ddf5
SB
157732013-05-30 Steven Bosscher <steven@gcc.gnu.org>
15774
0fa6e0ef 15775 * rtlanal.c (tablejump_p): Expect table and label to be adjacent.
4688ddf5 15776
3b9ceb4b
VM
157772013-05-30 Vladimir Makarov <vmakarov@redhat.com>
15778
15779 * target.def (register_usage_leveling_p): New hook.
15780 * targhooks.c (default_register_usage_leveling_p): New.
15781 * targhooks.h (default_register_usage_leveling_p): New prototype.
15782 * lra-assigns.c (register_usage_leveling_p): Use the hook.
15783 * doc/tm.texi.in (TARGET_REGISTER_USAGE_LEVELING_P): New hook.
15784 * doc/tm.texi: Update.
15785 * config/i386/i386.c (TARGET_REGISTER_USAGE_LEVELING_P): Define.
15786
65f9e789
IB
157872013-05-30 Ian Bolton <ian.bolton@arm.com>
15788
15789 * config/aarch64/aarch64.md (insv<mode>): New define_expand.
15790 (*insv_reg<mode>): New define_insn.
15791
12211b99 157922013-05-30 Joern Rennecke <joern.rennecke@embecosm.com>
ca035367
JR
15793
15794 PR rtl-optimization/57439
15795 * postreload.c (move2add_valid_value_p): Check that we have
15796 a zero subreg_regno_offset when accessing the register in
15797 the requested mode.
15798
0b871ccf
YR
157992013-05-30 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
15800 Igor Zamyatin <igor.zamyatin@intel.com>
15801
15802 Silvermont (SLM) architecture pipeline model, tuning and
15803 insn selection.
15804 * config.gcc: Add slm config options and target.
15805
15806 * config/i386/slm.md: New.
15807
15808 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
15809
f43245d1 15810 * config/i386/i386-c.c (ix86_target_macros_internal): New case
0b871ccf
YR
15811 PROCESSOR_SLM.
15812 (ix86_target_macros_internal): Likewise.
15813
f43245d1 15814 * config/i386/i386.c (slm_cost): New cost.
0b871ccf
YR
15815 (m_SLM): New macro flag.
15816 (initial_ix86_tune_features): Set m_SLM.
15817 (x86_accumulate_outgoing_args): Likewise.
15818 (x86_arch_always_fancy_math_387): Likewise.
15819 (processor_target_table): Add slm cost.
15820 (cpu_names): Add slm cpu name.
15821 (x86_option_override_internal): Set SLM ISA.
15822 (ix86_issue_rate): New case PROCESSOR_SLM.
15823 (ia32_multipass_dfa_lookahead): Likewise.
15824 (fold_builtin_cpu): Add slm.
15825
15826 * config/i386/i386.h (TARGET_SLM): New target macro.
15827 (target_cpu_default): Add TARGET_CPU_DEFAULT_slm.
15828 (processor_type): Add PROCESSOR_SLM.
15829
15830 * config/i386/i386.md (cpu): Add new value "slm".
15831 (slm.md): Include slm.md.
15832
24d5b097
XG
158332013-05-30 Bernd Schmidt <bernds@codesourcery.com>
15834 Zhenqiang Chen <zhenqiang.chen@linaro.org>
15835
15836 * config/arm/arm-protos.h: Add and update function protos.
15837 * config/arm/arm.c (use_simple_return_p): New added.
15838 (thumb2_expand_return): Check simple_return flag.
15839 * config/arm/arm.md: Add simple_return and conditional simple_return.
15840 * config/arm/iterators.md: Add iterator for return and simple_return.
15841
c1cccc15
ZC
158422013-05-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
15843
15844 * config/arm/arm.c (arm_add_cfa_adjust_cfa_note): New added.
15845 (arm_emit_multi_reg_pop): Add REG_CFA_ADJUST_CFA notes.
15846 (arm_emit_vfp_multi_reg_pop): Likewise.
15847 (thumb2_emit_ldrd_pop): Likewise.
15848 (arm_expand_epilogue): Add misc REG_CFA notes.
15849 (arm_unwind_emit): Skip REG_CFA_ADJUST_CFA and REG_CFA_RESTORE.
15850
3a4f280b
LC
158512013-05-29 Lawrence Crowl <crowl@google.com>
15852
15853 * config/arm/t-arm: Update for below.
15854
15855 * config/arm/arm.c (arm_libcall_uses_aapcs_base::libcall_htab):
15856 Change type to hash_table. Update dependent calls and types.
15857
15858 * config/i386/t-cygming: Update for below.
15859
15860 * config/i386/t-interix: Update for below.
15861
15862 * config/i386/winnt.c (i386_pe_section_type_flags::htab):
15863 Change type to hash_table. Update dependent calls and types.
15864 (i386_find_on_wrapper_list::wrappers): Likewise.
15865
15866 * config/ia64/t-ia64: Update for below.
15867
15868 * config/ia64/ia64.c (bundle_state_table):
15869 Change type to hash_table. Update dependent calls and types.
15870
15871 * config/mips/mips.c (mips_reorg_process_insns::htab):
15872 Change type to hash_table. Update dependent calls and types.
15873
15874 * config/sol2.c (solaris_comdat_htab):
15875 Change type to hash_table. Update dependent calls and types.
15876
15877 * config/t-sol2: Update for above.
15878
1388a0e3
TJ
158792013-05-29 Teresa Johnson <tejohnson@google.com>
15880
15881 * passes.c (dump_passes): Use FOR_EACH_FUNCTION since
15882 functions are not yet marked as defined.
15883
a5965b52 158842013-05-29 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
15885 Pat Haugen <pthaugen@us.ibm.com>
15886 Peter Bergner <bergner@vnet.ibm.com>
a5965b52
MM
15887
15888 * config/rs6000/vector.md (VEC_I): Add support for new power8 V2DI
15889 instructions.
15890 (VEC_A): Likewise.
15891 (VEC_C): Likewise.
15892 (vrotl<mode>3): Likewise.
15893 (vashl<mode>3): Likewise.
15894 (vlshr<mode>3): Likewise.
15895 (vashr<mode>3): Likewise.
15896
15897 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
15898 support for power8 V2DI builtins.
15899
15900 * config/rs6000/rs6000-builtin.def (abs_v2di): Add support for
15901 power8 V2DI builtins.
15902 (vupkhsw): Likewise.
15903 (vupklsw): Likewise.
15904 (vaddudm): Likewise.
15905 (vminsd): Likewise.
15906 (vmaxsd): Likewise.
15907 (vminud): Likewise.
15908 (vmaxud): Likewise.
15909 (vpkudum): Likewise.
15910 (vpksdss): Likewise.
15911 (vpkudus): Likewise.
15912 (vpksdus): Likewise.
15913 (vrld): Likewise.
15914 (vsld): Likewise.
15915 (vsrd): Likewise.
15916 (vsrad): Likewise.
15917 (vsubudm): Likewise.
15918 (vcmpequd): Likewise.
15919 (vcmpgtsd): Likewise.
15920 (vcmpgtud): Likewise.
15921 (vcmpequd_p): Likewise.
15922 (vcmpgtsd_p): Likewise.
15923 (vcmpgtud_p): Likewise.
15924 (vupkhsw): Likewise.
15925 (vupklsw): Likewise.
15926 (vaddudm): Likewise.
15927 (vmaxsd): Likewise.
15928 (vmaxud): Likewise.
15929 (vminsd): Likewise.
15930 (vminud): Likewise.
15931 (vpksdss): Likewise.
15932 (vpksdus): Likewise.
15933 (vpkudum): Likewise.
15934 (vpkudus): Likewise.
15935 (vrld): Likewise.
15936 (vsld): Likewise.
15937 (vsrad): Likewise.
15938 (vsrd): Likewise.
15939 (vsubudm): Likewise.
15940
15941 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
15942 support for power8 V2DI instructions.
15943
15944 * config/rs6000/altivec.md (UNSPEC_VPKUHUM): Add support for
15945 power8 V2DI instructions. Combine pack and unpack insns to use an
15946 iterator for each mode. Check whether a particular mode supports
15947 Altivec instructions instead of just checking TARGET_ALTIVEC.
15948 (UNSPEC_VPKUWUM): Likewise.
15949 (UNSPEC_VPKSHSS): Likewise.
15950 (UNSPEC_VPKSWSS): Likewise.
15951 (UNSPEC_VPKUHUS): Likewise.
15952 (UNSPEC_VPKSHUS): Likewise.
15953 (UNSPEC_VPKUWUS): Likewise.
15954 (UNSPEC_VPKSWUS): Likewise.
15955 (UNSPEC_VPACK_SIGN_SIGN_SAT): Likewise.
15956 (UNSPEC_VPACK_SIGN_UNS_SAT): Likewise.
15957 (UNSPEC_VPACK_UNS_UNS_SAT): Likewise.
15958 (UNSPEC_VPACK_UNS_UNS_MOD): Likewise.
15959 (UNSPEC_VUPKHSB): Likewise.
15960 (UNSPEC_VUNPACK_HI_SIGN): Likewise.
15961 (UNSPEC_VUNPACK_LO_SIGN): Likewise.
15962 (UNSPEC_VUPKHSH): Likewise.
15963 (UNSPEC_VUPKLSB): Likewise.
15964 (UNSPEC_VUPKLSH): Likewise.
15965 (VI2): Likewise.
15966 (VI_char): Likewise.
15967 (VI_scalar): Likewise.
15968 (VI_unit): Likewise.
15969 (VP): Likewise.
15970 (VP_small): Likewise.
15971 (VP_small_lc): Likewise.
15972 (VU_char): Likewise.
15973 (add<mode>3): Likewise.
15974 (altivec_vaddcuw): Likewise.
15975 (altivec_vaddu<VI_char>s): Likewise.
15976 (altivec_vadds<VI_char>s): Likewise.
15977 (sub<mode>3): Likewise.
15978 (altivec_vsubcuw): Likewise.
15979 (altivec_vsubu<VI_char>s): Likewise.
15980 (altivec_vsubs<VI_char>s): Likewise.
15981 (altivec_vavgs<VI_char>): Likewise.
15982 (altivec_vcmpbfp): Likewise.
15983 (altivec_eq<mode>): Likewise.
15984 (altivec_gt<mode>): Likewise.
15985 (altivec_gtu<mode>): Likewise.
15986 (umax<mode>3): Likewise.
15987 (smax<mode>3): Likewise.
15988 (umin<mode>3): Likewise.
15989 (smin<mode>3): Likewise.
15990 (altivec_vpkuhum): Likewise.
15991 (altivec_vpkuwum): Likewise.
15992 (altivec_vpkshss): Likewise.
15993 (altivec_vpkswss): Likewise.
15994 (altivec_vpkuhus): Likewise.
15995 (altivec_vpkshus): Likewise.
15996 (altivec_vpkuwus): Likewise.
15997 (altivec_vpkswus): Likewise.
15998 (altivec_vpks<VI_char>ss): Likewise.
15999 (altivec_vpks<VI_char>us): Likewise.
16000 (altivec_vpku<VI_char>us): Likewise.
16001 (altivec_vpku<VI_char>um): Likewise.
16002 (altivec_vrl<VI_char>): Likewise.
16003 (altivec_vsl<VI_char>): Likewise.
16004 (altivec_vsr<VI_char>): Likewise.
16005 (altivec_vsra<VI_char>): Likewise.
16006 (altivec_vsldoi_<mode>): Likewise.
16007 (altivec_vupkhsb): Likewise.
16008 (altivec_vupkhs<VU_char>): Likewise.
16009 (altivec_vupkls<VU_char>): Likewise.
16010 (altivec_vupkhsh): Likewise.
16011 (altivec_vupklsb): Likewise.
16012 (altivec_vupklsh): Likewise.
16013 (altivec_vcmpequ<VI_char>_p): Likewise.
16014 (altivec_vcmpgts<VI_char>_p): Likewise.
16015 (altivec_vcmpgtu<VI_char>_p): Likewise.
16016 (abs<mode>2): Likewise.
16017 (vec_unpacks_hi_v16qi): Likewise.
16018 (vec_unpacks_hi_v8hi): Likewise.
16019 (vec_unpacks_lo_v16qi): Likewise.
16020 (vec_unpacks_hi_<VP_small_lc>): Likewise.
16021 (vec_unpacks_lo_v8hi): Likewise.
16022 (vec_unpacks_lo_<VP_small_lc>): Likewise.
16023 (vec_pack_trunc_v8h): Likewise.
16024 (vec_pack_trunc_v4si): Likewise.
16025 (vec_pack_trunc_<mode>): Likewise.
16026
16027 * config/rs6000/altivec.h (vec_vaddudm): Add defines for power8
16028 V2DI builtins.
16029 (vec_vmaxsd): Likewise.
16030 (vec_vmaxud): Likewise.
16031 (vec_vminsd): Likewise.
16032 (vec_vminud): Likewise.
16033 (vec_vpksdss): Likewise.
16034 (vec_vpksdus): Likewise.
16035 (vec_vpkudum): Likewise.
16036 (vec_vpkudus): Likewise.
16037 (vec_vrld): Likewise.
16038 (vec_vsld): Likewise.
16039 (vec_vsrad): Likewise.
16040 (vec_vsrd): Likewise.
16041 (vec_vsubudm): Likewise.
16042 (vec_vupkhsw): Likewise.
16043 (vec_vupklsw): Likewise.
16044
e70670cf
JH
160452013-05-29 Jan Hubicka <jh@suse.cz>
16046
16047 * cgraph.h (symtab_node_base): Add definition, alias and analyzed
16048 flags; reorder rest of fields in more consistent way.
16049 (varpool_node): Remove analyzed, finalized and alias.
16050 (cgraph_ndoe): Likewise.
16051 (symtab_alias_ultimate_target): New function.
16052 (cgraph_function_node): Move offline.
16053 (cgraph_reset_node): Declare.
16054 (cgraph_comdat_can_be_unshared_p): Remove.
16055 (varpool_remove_initializer): Declare.
16056 (varpool_first_defined_variable, varpool_next_defined_variable
16057 cgraph_first_defined_function, cgraph_next_defined_function): Update.
16058 (cgraph_function_with_gimple_body_p): Update.
16059 (varpool_all_refs_explicit_p): Update.
16060 (symtab_alias_target): New function.
16061 (cgraph_alias_aliased_node, varpool_alias_aliased_node): Rename to ...
16062 (cgraph_alias_target, varpool_alias_target): .. this one; simplify.
c1e183a9
UB
16063 (cgraph_function_or_thunk_node): Simplify using
16064 symtab_alias_ultimate_target.
e70670cf
JH
16065 (varpool_variable_node): Likewise.
16066 * cgraph.c (cgraph_create_function_alias): Update.
16067 (cgraph_add_thunk): Update.
16068 (cgraph_remove_node): Update.
16069 (dump_cgraph_node): Do not dump removed flags.
16070 (cgraph_function_body_availability): Update.
16071 (cgraph_propagate_frequency): Update.
16072 (verify_cgraph_node): Check sanity of local flag.
16073 (cgraph_function_node): Move here from cgraph.h; revamp for
16074 cgraph_function_or_thunk_node.
16075 * lto-symtab.c (lto_varpool_replace_node): Update.
16076 (lto_symtab_resolve_can_prevail_p): Update.
16077 (lto_symtab_merge_cgraph_nodes): Update.
16078 * ipa-cp.c (determine_versionability, initialize_node_lattices,
16079 propagate_constants_accross_call, devirtualization_time_bonus,
16080 ipcp_propagate_stage): Update.
16081 * tree-emutls.c (create_emultls_var, ipa_lower_emutls): Update.
c1e183a9
UB
16082 * ipa-inline-transform.c (clone_inlined_nodes,
16083 preserve_function_body_p): Update.
e70670cf
JH
16084 * ipa-reference.c (propagate): Update.
16085 (write_node_summary_p): Update.
16086 * toplev.c (wrapup_global_declaration_2): Update.
16087 * cgraphunit.c (cgraph_analyze_function): Rename to ...
16088 (analyze_function) ... this one.
16089 (cgraph_process_new_functions): Update.
16090 (cgraph_reset_node): Export.
16091 (cgraph_finalize_function): Update.
16092 (cgraph_add_new_function): Update.
16093 (process_function_and_variable_attributes): Update.
16094 (varpool_finalize_decl): Update.
16095 (symbol_finalized): Remove.
16096 (symbol_finalized_and_needed): Rename to ...
16097 (symbol_defined_and_needed): ... update.
16098 (cgraph_analyze_functions): Update.
16099 (handle_alias_pairs): Update.
16100 (mark_functions_to_output): Update.
16101 (assemble_thunk): Update.
16102 (output_in_order): Update.
16103 (output_weakrefs): Update.
16104 (finalize_compilation_unit): Update.
16105 * lto-cgraph.c (reachable_from_other_partition_p, lto_output_node,
16106 lto_output_varpool_node, compute_ltrans_boundary, input_overwrite_node,
16107 input_node, input_varpool_node): Update.
16108 * dbxout.c (dbxout_expand_expr): Update.
16109 * cgraphclones.c (cgraph_clone_node): Update.
16110 (cgraph_copy_node_for_versioning): Update.
16111 (cgraph_materialize_clone): Update.
16112 (cgraph_materialize_all_clones): Update.
16113 * ipa-pure-const.c (analyze_function, pure_const_write_summary,
16114 propagate_pure_const, propagate_nothrow): Update.
16115 * lto-streamer-out.c (lto_output, write_symbol): Update.
16116 * ipa-utils.c (ipa_reverse_postorder): Update.
16117 * ipa-inline.c (can_inline_edge_p): Update.
16118 (update_caller_keys, ipa_inline): Update.
16119 * dwarf2out.c (reference_to_unused,
16120 premark_types_used_by_global_vars_helper): Update.
16121 * tree-eh.c (tree_could_trap_p): Update.
16122 * ipa-split.c (consider_split, execute_split_functions): Update.
16123 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
c1e183a9
UB
16124 has_addr_references_p): Update; move ahead in file for better
16125 readability.
e70670cf
JH
16126 (process_references): Simplify.
16127 (symtab_remove_unreachable_nodes): Update; cleanup way function/var
16128 bodies are removed.
16129 (cgraph_comdat_can_be_unshared_p): Make static.
16130 (cgraph_externally_visible_p): Update.
16131 (varpool_externally_visible_p): Update.
16132 (function_and_variable_visibility): Update.
16133 * trans-mem.c (get_cg_data, ipa_tm_mayenterirr_function,
16134 ipa_tm_mark_force_output_node): Update.
16135 * ipa-inline-analysis.c (dump_inline_summary, initialize_inline_failed,
16136 estimate_edge_devirt_benefit, inline_generate_summary,
16137 inline_write_summary): Update.
16138 * gimple-fold.c (can_refer_decl_in_current_unit_p): Update.
16139 * ipa-prop.c (ipa_compute_jump_functions): Update.
c1e183a9
UB
16140 (ipa_print_node_params, ipa_prop_read_section,
16141 ipa_update_after_lto_read, read_replacements_section): Update.
e70670cf
JH
16142 * varasm.c (mark_decl_referenced): Update.
16143 (assemble_alias, dump_tm_clone_pairs): Update.
16144 * tree-inline.c (copy_bb): Update.
16145 (estimate_num_insns, optimize_inline_calls, tree_function_versioning):
16146 Update.
16147 * symtab.c (dump_symtab_base): Print new flags.
16148 (verify_symtab_base): Verify new flags.
16149 (symtab_alias_ultimate_target): New function.
16150 * tree-ssa-structalias.c (get_constraint_for_ssa_var,
16151 create_variable_info_for, associate_varinfo_to_alias, ipa_pta_execute):
16152 Update.
c1e183a9
UB
16153 * passes.c (ipa_write_summaries, ipa_write_optimization_summaries):
16154 Update.
e70670cf
JH
16155 * i386.c (ix86_get_function_versions_dispatcher,
16156 ix86_generate_version_dispatcher_body): Update.
16157 (fold_builtin_cpu): Use varpool_add_new_variable.
16158 * varpool.c (varpool_remove_initializer): Break out from ...
16159 (varpool_remove_node): ... this one.
16160 (dump_varpool_node, varpool_node_for_asm,
16161 cgraph_variable_initializer_availability, varpool_analyze_node,
16162 varpool_assemble_decl, varpool_remove_unreferenced_decls,
c1e183a9
UB
16163 varpool_finalize_named_section_flags, varpool_create_variable_alias):
16164 Update.
e70670cf 16165
182802ad
JH
161662013-05-29 Jan Hubicka <jh@suse.cz>
16167
16168 * passes.c (init_optimization_passes): Move OMP expansion into lowering.
16169
8190b609
ER
161702013-05-29 Easwaran Raman <eraman@google.com>
16171
16172 PR tree-optimization/57442
16173 * tree-ssa-reassoc.c (appears_later_in_bb): Return correct value
16174 when control exits the main loop.
16175
69f5aa9b
SKS
161762013-05-29 Sandeep Kumar Singh <Sandeep.Singh2@kpitcummins.com>
16177
16178 * rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add macros for RX100, RX200,
16179 and RX600.
c1e183a9 16180 * rx/rx.opt: Add macro for rx100 with string rx100 and value RX100.
69f5aa9b
SKS
16181 * rx/rx-opts.h (rx_cpu_types): Add new cpu type rx100.
16182 * rx/t-rx: Add rx100 under multi library matches option for nofpu
16183 option.
16184
4b847da9
BS
161852013-05-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16186
16187 PR tree-optimization/57441
16188 * gimple-ssa-strength-reduction.c (analyze_candidates_and_replace):
16189 Don't limit size of incr_vec to number of candidates.
16190
4fc43c39
SE
161912013-05-29 Steve Ellcey <sellcey@imgtec.com>
16192
16193 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add micromips
16194 and mips16 directories.
c1e183a9 16195 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Add micromips and mips16.
4fc43c39
SE
16196 (MULTILIB_DIRNAMES): Ditto.
16197 (MULTILIB_EXCEPTIONS): Add new exceptions.
16198 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Add micromips.
16199 (MULTILIB_DIRNAMES): Ditto.
16200 (MULTILIB_EXCEPTIONS): Add new exceptions.
16201
12211b99 162022012-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
a5350ddc
CSS
16203 Marcus Shawcroft <marcus.shawcroft@arm.com>
16204
16205 * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
16206 SYMBOL_TINY_ABSOLUTE.
16207 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Handle
16208 SYMBOL_TINY_ABSOLUTE.
16209 (aarch64_expand_mov_immediate): Likewise.
16210 (aarch64_classify_symbol): Likewise.
16211 (aarch64_mov_operand_p): Remove ATTRIBUTE_UNUSED.
16212 Permit SYMBOL_TINY_ABSOLUTE.
16213 * config/aarch64/predicates.md (aarch64_mov_operand): Permit CONST.
16214
12211b99 162152013-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
17f4d4bf
CSS
16216 Marcus Shawcroft <marcus.shawcroft@arm.com>
16217
16218 * config/aarch64/aarch64.c (aarch64_classify_symbol): Remove comment.
16219 Refactor if/switch. Replace gcc_assert with if.
16220
c0186656
GG
162212013-05-29 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
16222
16223 * config/i386/i386.c (initial_ix86_tune_features): Enable
16224 FP Reassociation for AMD bdver1 and bdver2.
16225
d20188f3
MJ
162262013-05-29 Martin Jambor <mjambor@suse.cz>
16227
16228 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REF, REALPART_EXPR
16229 and IMAGPART_EXPR do not occur within other handled_components.
16230
292cba13
RB
162312013-05-29 Richard Biener <rguenther@suse.de>
16232
16233 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Guard vinfo
16234 access on whether the use is in the BB we currently try to
16235 vectorize.
16236 (vect_bb_vectorization_profitable_p): Pass the BB we currently
16237 vectorize to vect_bb_slp_scalar_cost.
16238
6eddf228
RB
162392013-05-29 Richard Biener <rguenther@suse.de>
16240
16241 * tree-vect-slp.c (vect_bb_slp_scalar_cost): New function
16242 computing scalar cost offsetted by stmts that are kept live
16243 by scalar uses.
16244 (vect_bb_vectorization_profitable_p): Use vect_bb_slp_scalar_cost
16245 for computation of scalar cost.
16246
7df36117
SE
162472013-05-28 Steve Ellcey <sellcey@mips.com>
16248
16249 * config/mips/mips-cpus.def (mips32r2): Change processor type.
16250
36536d79
BI
162512013-05-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
16252
16253 * doc/extend.texi (C Extensions): Added documentation about Cilk Plus
16254 array notation built-in reduction functions.
16255 * doc/passes.texi (Passes): Added documentation about changes done
16256 for Cilk Plus.
16257 * doc/invoke.texi (C Dialect Options): Added documentation about
16258 the -fcilkplus flag.
16259 * Makefile.in (C_COMMON_OBJS): Added c-family/array-notation-common.o.
16260 (BUILTINS_DEF): Depend on cilkplus.def.
16261 * builtins.def: Include cilkplus.def. Define DEF_CILKPLUS_BUILTIN.
16262 * builtin-types.def: Define BT_FN_INT_PTR_PTR_PTR.
16263 * cilkplus.def: New file.
16264
12211b99 162652013-05-28 Joern Rennecke <joern.rennecke@embecosm.com>
b49eefa5
JR
16266
16267 PR rtl-optimization/57439
16268 * postreload.c (move2add_use_add2_insn): Use gen_lowpart_common.
16269
9daf6dbb
ER
162702013-05-28 Easwaran Raman <eraman@google.com>
16271
16272 PR tree-optimization/57337
16273 * tree-ssa-reassoc.c (appears_later_in_bb): New function.
16274 (find_insert_point): Correctly identify the insertion point
16275 when two statements with the same UID is compared.
16276
fbd7e877
RB
162772013-05-28 Richard Biener <rguenther@suse.de>
16278
16279 PR tree-optimization/56787
16280 * tree-vect-data-refs.c (vect_analyze_data_refs): Drop clobbers
16281 from the list of data references.
16282 * tree-vect-loop.c (vect_determine_vectorization_factor): Skip
16283 clobbers.
16284 (vect_analyze_loop_operations): Likewise.
16285 (vect_transform_loop): Remove clobbers.
16286
bbba1117
MJ
162872013-05-28 Martin Jambor <mjambor@suse.cz>
16288
16289 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REFs, IMAGPART_EXPRs
16290 and REALPART_EXPRs have scalar type.
16291
bd388c2a
RB
162922013-05-28 Richard Biener <rguenther@suse.de>
16293
16294 PR tree-optimization/57411
16295 * tree-ssa-copy.c (may_propagate_copy): Cannot propagate
16296 virtual operands.
16297 * tree-ssa-dom.c (eliminate_const_or_copy): Special-case
16298 virtual operand propagation.
16299
2f56a311
EB
163002013-05-28 Eric Botcazou <ebotcazou@adacore.com>
16301
16302 * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): Use %g0 as
16303 destination register for bmasksi_vis.
16304 (vector_init_bshuffle): Likewise.
16305 * config/sparc/sparc.md (vec_perm_constv8qi): Likewise.
16306
5c3eacbb
EB
163072013-05-28 Eric Botcazou <ebotcazou@adacore.com>
16308
16309 * doc/invoke.texi (SPARC Options): Document -mfix-ut699.
16310 * builtins.c (expand_builtin_mathfn) <BUILT_IN_SQRT>: Try to widen the
16311 mode if the instruction isn't available in the original mode.
16312 * config/sparc/sparc.opt (mfix-ut699): New option.
16313 * config/sparc/sparc.md (muldf3_extend): Disable if -mfix-ut699.
16314 (divdf3): Turn into expander.
16315 (divdf3_nofix): New insn.
16316 (divdf3_fix): Likewise.
16317 (divsf3): Disable if -mfix-ut699.
16318 (sqrtdf2): Turn into expander.
16319 (sqrtdf2_nofix): New insn.
16320 (sqrtdf2_fix): Likewise.
16321 (sqrtsf2): Disable if -mfix-ut699.
16322
a1756c0a
RB
163232013-05-27 Richard Biener <rguenther@suse.de>
16324
16325 PR middle-end/57412
16326 * omp-low.c (expand_omp_atomic_pipeline): Use the correct latch
16327 block for the new loop.
16328
5a892248
RB
163292013-05-27 Richard Biener <rguenther@suse.de>
16330
16331 PR tree-optimization/57343
16332 * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Do not
16333 use multiple_of_p if not TYPE_OVERFLOW_UNDEFINED.
16334 (number_of_iterations_cond): Do not build the folded tree.
16335
d1de852b
RB
163362013-05-27 Richard Biener <rguenther@suse.de>
16337
16338 Revert
16339 PR middle-end/57381
16340 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
16341 OEP_CONSTANT_ADDRESS_OF retained.
16342
16343 PR tree-optimization/57417
16344 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Fix test
16345 for unchanged base.
16346 (set_ssa_val_to): Compare addresses using
16347 get_addr_base_and_unit_offset.
16348
12211b99 163492013-05-27 Joern Rennecke <joern.rennecke@embecosm.com>
7894bc6b
JR
16350
16351 PR rtl-optimization/56833
16352 * postreload.c (move2add_record_mode): New function.
16353 (move2add_record_sym_value, move2add_valid_value_p): Likewise.
16354 (move2add_use_add2_insn): Use move2add_record_sym_value.
16355 (move2add_use_add3_insn): Likewise.
16356 (reload_cse_move2add): Use move2add_valid_value_p and
16357 move2add_record_mode. Invalidate call-clobbered and REG_INC
16358 affected regs by setting reg_mode to VOIDmode.
16359 (move2add_note_store): Don't pretend the inside of a SUBREG is
16360 the actual destination. Invalidate single/leading registers by
16361 setting reg_mode to VOIDmode.
16362 Use move2add_record_sym_value, move2add_valid_value_p and
16363 move2add_record_mode.
16364
b03be25f
RB
163652013-05-27 Richard Biener <rguenther@suse.de>
16366
16367 PR tree-optimization/57396
16368 * tree-affine.c (double_int_constant_multiple_p): Properly
16369 return false for val == 0 and div != 0.
16370
44e88db2
RS
163712013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
16372
16373 * config/mips/mips.h: Use #elif in preprocessor conditions.
16374
3b859704
RS
163752013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
16376
16377 PR target/53916
16378 * config/mips/constraints.md (kl): New constraint.
16379 * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Delete.
16380 (divmod<mode>4_internal): Rename to divmod<mode>4. Use "kl" as the
16381 constraint for operand 0. Split after CSE for MIPS16. Emit a move
16382 from LO for MIPS16.
16383 (udivmod<mode>4_internal): Likewise udivmod<mode>4.
16384
c979d5f5
RS
163852013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
16386
16387 PR target/55777
16388 * config/mips/mips.c (mips_can_inline_p): New function.
16389 (TARGET_CAN_INLINE_P): Define.
16390
8e90de43
SB
163912013-05-25 Steven Bosscher <steven@gcc.gnu.org>
16392
16393 * sched-int.h (ds_t, dw_t): Make unsigned int.
16394 Fix documentation that describes how all the ds_t bits are used.
16395 Reserve the last bit for delayed-branch scheduling.
16396 (BITS_PER_DEP_STATUS): Move to ds_t typedef.
16397 (BITS_PER_DEP_WEAK): Fix definition and documentation.
16398 (gen_dep_weak_1): Remove prototype.
16399 * sched-deps.c (get_dep_weak_1): Make static.
16400 * target.def (speculate_insn, needs_block_p, gen_spec_check,
16401 get_insn_spec_ds, get_insn_checked_ds): Adjust hook prototypes.
16402 * doc/tm.texi: Regenerate.
16403 * config/ia64/ia64.c (ia64_needs_block_p): Update prototype.
16404
cb5cb194
SB
164052013-05-24 Steven Bosscher <steven@gcc.gnu.org>
16406
16407 PR debug/56950
16408 * haifa-sched.c (sched_extend_bb): Ignore DEBUG_INSNs.
16409
5bd93ff6
NS
164102013-05-24 Nathan Sidwell <nathan@codesourcery.com>
16411 Sandra Loosemore <sandra@codesourcery.com>
16412
16413 * config.gcc (powerpc-*): Allow native for with-cpu.
16414
2343af65
JL
164152013-05-24 Jeff Law <law@redhat.com>
16416
16417 PR tree-optimization/57124
16418 * tree-vrp.c (simplify_cond_using_ranges): Only simplify a
16419 conversion feeding a condition if the range has an overflow
16420 if -fstrict-overflow. Add warnings for when we do make the
16421 transformation.
16422
3ad695b9
DC
164232013-05-24 Dehao Chen <dehao@google.com>
16424
04960246 16425 * tree-cfg.c (locus_discrim_map): Fix the typo.
3ad695b9
DC
16426 (locus_discrim_hasher): Likewise.
16427 (locus_discrim_hasher::hash): Likewise.
16428 (locus_discrim_hasher::equal): Likewise.
16429
82338059
MJ
164302013-05-24 Martin Jambor <mjambor@suse.cz>
16431
16432 PR tree-optimization/57294
16433 * cgraph.h (ipa_record_stmt_references): Declare.
16434 * cgraphbuild.c (ipa_record_stmt_references): New function.
16435 (build_cgraph_edges): Use ipa_record_stmt_references.
16436 (rebuild_cgraph_edges): Likewise.
16437 (cgraph_rebuild_references): Likewise.
16438 * ipa-prop.c (ipa_modify_call_arguments): Discard references
16439 associated with the old statement and build references from the
16440 newly built statements.
16441 * ipa-ref.c (ipa_remove_stmt_references): New function.
16442 * ipa-ref.h (ipa_remove_stmt_references): Declare.
16443
1ccd4874
VM
164442013-05-24 Vladimir Makarov <vmakarov@redhat.com>
16445
55805e54 16446 * lra-constraints.c (emit_spill_move): Use smaller mode for
1ccd4874 16447 mem-mem moves.
55805e54 16448 (check_and_process_move): Consider mem-reg moves for secondary
1ccd4874 16449 too.
55805e54 16450 (curr_insn_transform): Don't lose insns emitted before for
1ccd4874
VM
16451 secondary memory moves.
16452 (inherit_in_ebb): Mark defined reg. Add usage only if it is not a
16453 reg set up in the current insn.
16454
25e25c73
DC
164552013-05-24 Dehao Chen <dehao@google.com>
16456
04960246 16457 * tree-cfg.c (locus_descrim_hasher::hash): Change discriminator
25e25c73
DC
16458 hash function.
16459 (locus_descrim_hasher::equal): Likewise.
04960246 16460 (build_gimple_cfg): New discriminator assignment algorithm.
25e25c73
DC
16461 (make_edges): Likewise.
16462 (next_discriminator_for_locus): Likewise.
16463 (same_line_p): Likewise.
16464 (assign_discriminators): Likewise.
16465 (make_cond_expr_edges): Likewise.
16466 (make_gimple_switch_edges): Likewise.
16467 (make_goto_expr_edges): Likewise.
16468 (make_gimple_asm_edges): Likewise.
16469
50d38551
IB
164702013-05-24 Ian Bolton <ian.bolton@arm.com>
16471
16472 * config/aarch64/aarch64.c (aarch64_print_operand): Change the
16473 X format specifier to only display bottom 16 bits.
16474 * config/aarch64/aarch64.md (insv_imm<mode>): Allow any size of
16475 immediate to match for operand 2, since it will be masked.
16476
aea0101d
RB
164772013-05-24 Richard Biener <rguenther@suse.de>
16478
16479 PR tree-optimization/57287
16480 * tree-ssa-uninit.c (compute_uninit_opnds_pos): Disregard
16481 all SSA names that occur in abnormal PHIs.
16482
634e03d3
AI
164832013-05-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
16484
16485 PR tree-ssa/57385
16486 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Check
16487 that index is not negative.
16488
b17c024f
EB
164892013-05-24 Eric Botcazou <ebotcazou@adacore.com>
16490
16491 PR rtl-optimization/55177
16492 * simplify-rtx.c (simplify_unary_operation_1) <NOT>: Deal with BSWAP.
16493 (simplify_byte_swapping_operation): New.
16494 (simplify_binary_operation_1): Call it for AND, IOR and XOR.
16495 (simplify_relational_operation_1): Deal with BSWAP.
16496
46aeac1b
RH
164972013-05-23 Richard Henderson <rth@redhat.com>
16498
16499 PR target/56742
16500 * config/i386/i386.c (ix86_seh_fixup_eh_fallthru): New.
16501 (ix86_reorg): Call it.
16502
70cc1536
UB
165032013-05-23 Uros Bizjak <ubizjak@gmail.com>
16504
16505 PR target/57379
16506 * config/alpha/alpha.md (unspec): Add UNSPEC_XFLT_COMPARE.
16507 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Construct
16508 REG_EQUAL note as UNSPEC_XFLT_COMPARE unspec.
16509
b3851501
CB
165102013-05-23 Christian Bruel <christian.bruel@st.com>
16511
16512 PR debug/57351
16513 * config/arm/arm.c (arm_dwarf_register_span): Do not use dbx number.
16514
12211b99 165152013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
4e194912
CSS
16516 Marcus Shawcroft <marcus.shawcroft@arm.com>
16517
16518 * config/aarch64/aarch64.md (*movdi_aarch64): Replace Usa with S.
16519 * config/aarch64/constraints.md (Usa): Remove.
16520 * doc/md.texi (AArch64 Usa): Remove.
16521
12211b99 165222013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
83f8c414
CSS
16523 Marcus Shawcroft <marcus.shawcroft@arm.com>
16524
16525 * config/aarch64/aarch64-protos.h (aarch64_mov_operand_p): Define.
16526 * config/aarch64/aarch64.c (aarch64_mov_operand_p): Define.
16527 * config/aarch64/predicates.md (aarch64_const_address): Remove.
16528 (aarch64_mov_operand): Use aarch64_mov_operand_p.
16529
12211b99 165302013-05-23 Vidya Praveen <vidyapraveen@arm.com>
b5574232
VP
16531
16532 * config/aarch64/aarch64-simd.md (clzv4si2): Support for CLZ
16533 instruction (AdvSIMD).
16534 * config/aarch64/aarch64-builtins.c
16535 (aarch64_builtin_vectorized_function): Handler for BUILT_IN_CLZ.
16536 * config/aarch64/aarch-simd-builtins.def: Entry for CLZ.
16537
76c36cb1 165382013-05-23 Martin Jambor <mjambor@suse.cz>
7d2fb524
MJ
16539
16540 PR middle-end/57347
16541 * tree.h (contains_bitfld_component_ref_p): Declare.
16542 * tree-sra.c (contains_bitfld_comp_ref_p): Move...
70cc1536
UB
16543 * tree.c (contains_bitfld_component_ref_p): ...here. Adjust its
16544 caller.
7d2fb524
MJ
16545 * ipa-prop.c (determine_known_aggregate_parts): Check that LHS does
16546 not access a bit-field. Assert all final offsets are byte-aligned.
16547
ce521ae6
RB
165482013-05-23 Richard Biener <rguenther@suse.de>
16549
16550 PR tree-optimization/57380
16551 * tree-ssa-phiprop.c (propagate_with_phi): Do not require at
16552 least one invariant or re-used load.
16553 * passes.c (init_optimization_passes): Move pass_phiprop before
16554 pass_forwprop.
16555
75c7257f
JG
165562013-05-23 James Greenhalgh <james.greenhalgh@arm.com>
16557
16558 * config/aarch64/aarch64-simd.md
16559 (aarch64_cm<optab>di): Add clobber of CC_REGNUM to unsplit pattern.
16560
af6d44b5
RB
165612013-05-23 Richard Biener <rguenther@suse.de>
16562
16563 PR middle-end/57381
16564 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
16565 OEP_CONSTANT_ADDRESS_OF retained.
16566
bd3647bf
JJ
165672013-05-23 Jakub Jelinek <jakub@redhat.com>
16568
16569 PR middle-end/57344
70cc1536
UB
16570 * expmed.c (store_split_bit_field): If op0 is a REG or SUBREG of a REG,
16571 don't lower unit. Handle unit not being always BITS_PER_WORD.
bd3647bf 16572
a55757ea
RB
165732013-05-23 Richard Biener <rguenther@suse.de>
16574
16575 PR rtl-optimization/57341
16576 * ira.c (validate_equiv_mem_from_store): Use anti_dependence
16577 instead of true_dependence.
16578
cfb00b41
DM
165792013-05-22 David Malcolm <dmalcolm@redhat.com>
16580
dd1c676f
DM
16581 * bb-reorder.c (branch_threshold): Make const.
16582 (exec_threshold): Ditto.
cfb00b41 16583
f62511da 165842013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
16585 Pat Haugen <pthaugen@us.ibm.com>
16586 Peter Bergner <bergner@vnet.ibm.com>
f62511da
MM
16587
16588 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Add
16589 documentation for the power8 crypto builtins.
16590
16591 * config/rs6000/t-rs6000 (MD_INCLUDES): Add crypto.md.
16592
16593 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_1): Add support
16594 macros for defining power8 builtin functions.
16595 (BU_P8V_AV_2): Likewise.
16596 (BU_P8V_AV_P): Likewise.
16597 (BU_P8V_VSX_1): Likewise.
16598 (BU_P8V_OVERLOAD_1): Likewise.
16599 (BU_P8V_OVERLOAD_2): Likewise.
16600 (BU_CRYPTO_1): Likewise.
16601 (BU_CRYPTO_2): Likewise.
16602 (BU_CRYPTO_3): Likewise.
16603 (BU_CRYPTO_OVERLOAD_1): Likewise.
16604 (BU_CRYPTO_OVERLOAD_2): Likewise.
16605 (XSCVSPDP): Fix typo, point to the correct instruction.
16606 (VCIPHER): Add power8 crypto builtins.
16607 (VCIPHERLAST): Likewise.
16608 (VNCIPHER): Likewise.
16609 (VNCIPHERLAST): Likewise.
16610 (VPMSUMB): Likewise.
16611 (VPMSUMH): Likewise.
16612 (VPMSUMW): Likewise.
16613 (VPERMXOR_V2DI): Likewise.
16614 (VPERMXOR_V4SI: Likewise.
16615 (VPERMXOR_V8HI: Likewise.
16616 (VPERMXOR_V16QI: Likewise.
16617 (VSHASIGMAW): Likewise.
16618 (VSHASIGMAD): Likewise.
16619 (VPMSUM): Likewise.
16620 (VPERMXOR): Likewise.
16621 (VSHASIGMA): Likewise.
16622
16623 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
16624 __CRYPTO__ if the crypto instructions are available.
16625 (altivec_overloaded_builtins): Add support for overloaded power8
16626 builtins.
16627
16628 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
16629 support for power8 crypto builtins.
16630 (builtin_function_type): Likewise.
16631 (altivec_init_builtins): Add support for builtins that take vector
16632 long long (V2DI) arguments.
16633
16634 * config/rs6000/crypto.md: New file, define power8 crypto
16635 instructions.
16636
166372013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
16638 Pat Haugen <pthaugen@us.ibm.com>
16639 Peter Bergner <bergner@vnet.ibm.com>
f62511da
MM
16640
16641 * doc/invoke.texi (Option Summary): Add power8 options.
16642 (RS/6000 and PowerPC Options): Likewise.
16643
16644 * doc/md.texi (PowerPC and IBM RS6000 constraints): Update to use
16645 constraints.md instead of rs6000.h. Reorder w* constraints. Add
16646 wm, wn, wr documentation.
16647
f43245d1 16648 * config/rs6000/constraints.md (wm): New constraint for VSX
f62511da
MM
16649 registers if direct move instructions are enabled.
16650 (wn): New constraint for no registers.
16651 (wq): New constraint for quad word even GPR registers.
16652 (wr): New constraint if 64-bit instructions are enabled.
16653 (wv): New constraint if power8 vector instructions are enabled.
16654 (wQ): New constraint for quad word memory locations.
16655
f43245d1 16656 * config/rs6000/predicates.md (const_0_to_15_operand): New
f62511da
MM
16657 constraint for 0..15 for crypto instructions.
16658 (gpc_reg_operand): If VSX allow registers in VSX registers as well
16659 as GPR and floating point registers.
16660 (int_reg_operand): New predicate to match only GPR registers.
16661 (base_reg_operand): New predicate to match base registers.
16662 (quad_int_reg_operand): New predicate to match even GPR registers
16663 for quad memory operations.
16664 (vsx_reg_or_cint_operand): New predicate to allow vector logical
16665 operations in both GPR and VSX registers.
16666 (quad_memory_operand): New predicate for quad memory operations.
16667 (reg_or_indexed_operand): New predicate for direct move support.
16668
f43245d1 16669 * config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED):
f62511da
MM
16670 Inherit from ISA_2_4_MASKS, not ISA_2_2_MASKS.
16671 (ISA_2_7_MASKS_SERVER): New mask for ISA 2.07 (i.e. power8).
16672 (POWERPC_MASKS): Add power8 options.
16673 (power8 cpu): Use ISA_2_7_MASKS_SERVER instead of specifying the
16674 various options.
16675
f43245d1 16676 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
f62511da
MM
16677 Define _ARCH_PWR8 and __POWER8_VECTOR__ for power8.
16678
f43245d1 16679 * config/rs6000/rs6000.opt (-mvsx-timode): Add documentation.
f62511da
MM
16680 (-mpower8-fusion): New power8 options.
16681 (-mpower8-fusion-sign): Likewise.
16682 (-mpower8-vector): Likewise.
16683 (-mcrypto): Likewise.
16684 (-mdirect-move): Likewise.
16685 (-mquad-memory): Likewise.
16686
f43245d1 16687 * config/rs6000/rs6000.c (power8_cost): Initial definition for power8.
f62511da
MM
16688 (rs6000_hard_regno_mode_ok): Make PTImode only match even GPR
16689 registers.
70cc1536 16690 (rs6000_debug_reg_print): Print the base register class if -mdebug=reg.
f62511da
MM
16691 (rs6000_debug_vector_unit): Add p8_vector.
16692 (rs6000_debug_reg_global): If -mdebug=reg, print power8 constraint
16693 definitions. Also print fusion state.
16694 (rs6000_init_hard_regno_mode_ok): Set up power8 constraints.
16695 (rs6000_builtin_mask_calculate): Add power8 builtin support.
16696 (rs6000_option_override_internal): Add support for power8.
16697 (rs6000_common_init_builtins): Add debugging for skipped builtins
16698 if -mdebug=builtin.
16699 (rs6000_adjust_cost): Add power8 support.
16700 (rs6000_issue_rate): Likewise.
16701 (insn_must_be_first_in_group): Likewise.
16702 (insn_must_be_last_in_group): Likewise.
16703 (force_new_group): Likewise.
16704 (rs6000_register_move_cost): Likewise.
16705 (rs6000_opt_masks): Likewise.
16706
16707 * config/rs6000/rs6000.h (ASM_CPU_POWER8_SPEC): If we don't have a
16708 power8 capable assembler, default to power7 options.
16709 (TARGET_DIRECT_MOVE): Likewise.
16710 (TARGET_CRYPTO): Likewise.
16711 (TARGET_P8_VECTOR): Likewise.
16712 (VECTOR_UNIT_P8_VECTOR_P): Define power8 vector support.
16713 (VECTOR_UNIT_VSX_OR_P8_VECTOR_P): Likewise.
16714 (VECTOR_MEM_P8_VECTOR_P): Likewise.
16715 (VECTOR_MEM_VSX_OR_P8_VECTOR_P): Likewise.
16716 (VECTOR_MEM_ALTIVEC_OR_VSX_P): Likewise.
16717 (TARGET_XSCVDPSPN): Likewise.
16718 (TARGET_XSCVSPDPN): Likewsie.
16719 (TARGET_SYNC_HI_QI): Likewise.
16720 (TARGET_SYNC_TI): Likewise.
16721 (MASK_CRYPTO): Likewise.
16722 (MASK_DIRECT_MOVE): Likewise.
16723 (MASK_P8_FUSION): Likewise.
16724 (MASK_P8_VECTOR): Likewise.
70cc1536
UB
16725 (REG_ALLOC_ORDER): Move fr13 to be lower in priority so that the TFmode
16726 temporary used by some of the direct move instructions to get two FP
16727 temporary registers does not force creation of a stack frame.
f62511da
MM
16728 (VLOGICAL_REGNO_P): Allow vector logical operations in GPRs.
16729 (MODES_TIEABLE_P): Move the VSX tests above the Altivec tests so
16730 that any VSX registers are tieable, even if they are also an
16731 Altivec vector mode.
16732 (r6000_reg_class_enum): Add wm, wr, wv constraints.
16733 (RS6000_BTM_P8_VECTOR): Power8 builtin support.
16734 (RS6000_BTM_CRYPTO): Likewise.
16735 (RS6000_BTM_COMMON): Likewise.
16736
16737 * config/rs6000/rs6000.md (cpu attribute): Add power8.
16738 * config/rs6000/rs6000-opts.h (PROCESSOR_POWER8): Likewise.
16739 (enum rs6000_vector): Add power8 vector support.
16740
73a1a707
RR
167412013-05-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16742
16743 PR target/19599
16744 PR target/57340
16745 * config/arm/arm.c (any_sibcall_uses_r3): Rename to ..
16746 (any_sibcall_could_use_r3): this and handle indirect calls.
16747 (arm_get_frame_offsets): Rename use of any_sibcall_uses_r3.
16748
d28073d4
BS
167492013-05-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16750
16751 * config/rs6000/rs6000.h (MALLOC_ABI_ALIGNMENT): New #define.
16752
bee0b10c
RB
167532013-05-22 Richard Biener <rguenther@suse.de>
16754
16755 PR middle-end/57349
16756 * profile.c (branch_prob): Do not split blocks that are
16757 abnormally receiving from ECF_RETURNS_TWICE functions.
16758
98409b51
RS
167592013-05-22 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
16760
16761 * recog.c (offsettable_address_addr_space_p): Fix calculation of
16762 address mode. Move pointer mode initialization to the same place.
16763
c0602ab8
MZ
167642013-05-22 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
16765
16766 * read-rtl.c (copy_rtx_for_iterators): Continue applying iterators
16767 while it has any effect.
16768
4f7a634e
ER
167692013-05-21 Easwaran Raman <eraman@google.com>
16770
16771 PR tree-optimization/57322
9daf6dbb
ER
16772 * tree-ssa-reassoc.c (build_and_add_sum): If a BB is empty, set the
16773 UID of the statement added to the BB to be 1.
4f7a634e 16774
a4ce1258
JJ
167752013-05-21 Jakub Jelinek <jakub@redhat.com>
16776
16777 PR tree-optimization/57331
70cc1536
UB
16778 * tree-vrp.c (simplify_cond_using_ranges): Don't optimize comparison
16779 of conversion from pointer type to integral type with integer.
a4ce1258 16780
1b14621a
MJ
167812013-05-21 Martin Jambor <mjambor@suse.cz>
16782
16783 PR lto/57289
16784 * ipa-prop.c (ipa_read_node_info): Process param_used and
16785 controlled_uses in the same order as when writing.
16786
e60661f0
MG
167872013-05-21 Magnus Granberg <baldrick@free.fr>
16788
16789 PR plugins/56754
ee49aa34 16790 * Makefile.in (PLUGIN_HEADERS): Add $(TARGET_H).
e60661f0 16791
4a61be9a
RB
167922013-05-21 Richard Biener <rguenther@suse.de>
16793
16794 PR tree-optimization/57318
16795 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Do not
16796 estimate stmts with side-effects as likely eliminated.
16797
c52da5f7
RB
167982013-05-21 Richard Biener <rguenther@suse.de>
16799
16800 PR tree-optimization/57330
16801 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Properly
16802 preserve the call stmts fntype.
16803
7ec67e2a
RB
168042013-05-21 Richard Biener <rguenther@suse.de>
16805
16806 PR tree-optimization/57303
16807 * tree-ssa-sink.c (statement_sink_location): Improve killing
16808 stmt detection and properly handle self-assignments.
16809
b112d513
CB
168102013-05-21 Christian Bruel <christian.bruel@st.com>
16811
55805e54
YR
16812 * dwarf2out.c (multiple_reg_loc_descriptor): Use dbx_reg_number for
16813 spanning registers. LEAF_REG_REMAP is supported only for contiguous
b112d513
CB
16814 registers. Set register size out of the PARALLEL loop.
16815
14c2ec26
OE
168162013-05-20 Oleg Endo <olegendo@gcc.gnu.org>
16817
16818 PR target/56547
16819 * config/sh/sh.md (fmasf4): Remove empty constraints strings.
16820 (*fmasf4, *fmasf4_media): New insns.
16821
da734fa1
RS
168222013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
16823
16824 * config/mips/mips.h (BASE_INSN_LENGTH, NOP_INSN_LENGTH): New macros.
16825 * config/mips/mips.c (mips_symbol_insns, mips_address_insns)
16826 (mips_const_insns, mips_split_const_insns, mips_load_store_insns)
16827 (mips_idiv_insns): Update the comments to say that the returned
16828 instruction counts are in units of BASE_INSN_LENGTH.
16829 (mips_adjust_insn_length): Multiply the mips_load_label_num_insns
16830 by BASE_INSN_LENGTH rather than 4. Add the jump separately,
16831 using 2 rather than 4 as the length of indirect MIPS16 and
16832 microMIPS jumps. Use NOP_INSN_LENGTH rather than 4 as the
16833 length of a NOP. Don't divide MIPS16 lengths by 2.
16834 (mips16_split_long_branches): Assume a branch is long if the
16835 length is greater than 4 rather than 8.
16836 * config/mips/mips.md (length): Give MIPS16 lengths directly,
16837 rather than multiplying them by 2. Multiply instruction counts
16838 by BASE_INSN_LENGTH rather than 4.
16839 (*jump_mips16, tls_get_tp_mips16_<mode>)
16840 (*tls_get_tp_mips16_call_<mode>): Divide lengths by 2.
16841
13719e8b
RS
168422013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
16843
16844 * config/mips/mips.md (extended_mips16): Remove branch case.
16845 (length): Remove duplicated extended_mips16 test.
16846
c3850d14
RS
168472013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
16848
16849 * config/mips/t-sde: Don't build 64-bit microMIPS multilibs.
16850
8da2e059
RS
168512013-05-18 Richard Sandiford <rdsandiford@googlemail.com>
16852
16853 * recog.h (Recog_data): Rename to...
16854 (recog_data_d): ...this.
16855 (recog_data): Update accordingly.
16856 * recog.c (recog_data): Likewise.
16857 * reload.c (save_recog_data): Likewise.
16858 * config/picochip/picochip.c (picochip_saved_recog_data): Likewise.
16859 (picochip_save_recog_data, picochip_restore_recog_data): Likewise.
16860
2df013f3
JB
168612013-05-17 Julian Brown <julian@codesourcery.com>
16862
16863 * gcse.c (compute_ld_motion_mems): If a non-simple MEM is
16864 found in a REG_EQUAL note, invalidate it.
16865
371e77e3 168662013-05-17 Easwaran Raman <eraman@google.com>
933f507d
ER
16867
16868 * tree-ssa-reassoc.c (find_insert_point): New function.
16869 (insert_stmt_after): Likewise.
16870 (get_def_stmt): Likewise.
16871 (ensure_ops_are_available): Likewise.
16872 (not_dominated_by): Likewise.
16873 (rewrite_expr_tree): Do not move statements beyond what is
16874 necessary. Remove call to swap_ops_for_binary_stmt...
16875 (reassociate_bb): ... and move it here.
16876 (build_and_add_sum): Assign UIDs for new statements.
16877 (linearize_expr): Likewise.
16878 (do_reassoc): Renumber gimple statement UIDs.
16879
e01c7cca
JH
168802013-05-17 Jan Hubicka <jh@suse.cz>
16881
16882 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Resolve cross module
16883 weakrefs.
16884 * cgraph.c (dump_cgraph_node): Do not ice on unresolved alias.
e2420687
UB
16885 * cgraphunit.c (handle_alias_pairs): Store target of unresolved
16886 weakrefs.
e01c7cca
JH
16887 (output_weakrefs): Update.
16888
c3272a92
PCC
168892013-05-17 Po-Chun Chang <pchang9@cs.wisc.edu>
16890 Martin Jambor <mjambor@suse.cz>
16891
16892 PR middle-end/57276
16893 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Break when a
16894 value that corresponds to the given aggval is found in values vector.
16895
11c2aa39
UB
168962013-05-17 Uros Bizjak <ubizjak@gmail.com>
16897
16898 * config/i386/driver-i386.c (host_detect_local_cpu): Pass mmx, 3dnow,
16899 sse, sse2, sse3, ssse3 and sse4a flags to options.
16900
abecc8c6
DM
169012013-05-17 David Malcolm <dmalcolm@redhat.com>
16902
16903 * gengtype-state.c: (s_expr_writer): New class, to handle
16904 prettifying of output layout of s-expressions.
16905 (state_writer): New class, to write out gtype.state.
16906 (state_written_type_count): Move this variable into member data of
16907 state_writer.
16908 (s_expr_writer::s_expr_writer): New code: constructor for new class
16909 (state_writer::state_writer(): ditto
16910 (s_expr_writer::write_new_line): New function
16911 (s_expr_writer::write_any_indent): ditto
16912 (s_expr_writer::begin_s_expr): ditto
16913 (s_expr_writer::end_s_expr): ditto
16914 (write_state_fileloc): convert to method of state_writer...
16915 (state_writer:: write_state_fileloc): ...and use methods of
16916 s_expr_writer to write indentation into the gtype.state output file
16917 to visually represent the hierarchical structure of the list
16918 structures
16919 (write_state_fields): ditto, renaming to...
16920 (state_writer::write_state_fields)
16921 (write_state_a_string): ditto, renaming to...
16922 (state_writer::write_state_a_string)
16923 (write_state_string_option): ditto, renaming to...
16924 (state_writer::write_state_string_option)
16925 (write_state_type_option): ditto, renaming to...
16926 (state_writer::write_state_type_option)
16927 (write_state_nested_option): ditto, renaming to...
16928 (state_writer::write_state_nested_option)
16929 (write_state_option): ditto, renaming to...
16930 (state_writer::write_state_option)
16931 (write_state_options): ditto, renaming to...
16932 (state_writer::write_state_options)
16933 (write_state_lang_bitmap): ditto, renaming to...
16934 (state_writer::write_state_lang_bitmap)
16935 (write_state_version): ditto, renaming to...
16936 (state_writer::write_state_version)
16937 (write_state_scalar_type): ditto, renaming to...
16938 (state_writer::write_state_scalar_type)
16939 (write_state_string_type): ditto, renaming to...
16940 (state_writer::write_state_string_type)
16941 (write_state_undefined_type): ditto, renaming to...
16942 (state_writer::write_state_undefined_type)
16943 (write_state_struct_union_type): ditto, renaming to...
16944 (state_writer::write_state_struct_union_type)
16945 (write_state_struct_type): ditto, renaming to...
16946 (state_writer::write_state_struct_type)
16947 (write_state_user_struct_type): ditto, renaming to...
16948 (state_writer::write_state_user_struct_type)
16949 (write_state_lang_struct_type): ditto, renaming to...
16950 (state_writer::write_state_lang_struct_type)
16951 (write_state_param_struct_type): ditto, renaming to...
16952 (state_writer::write_state_param_struct_type)
16953 (write_state_pointer_type): ditto, renaming to...
16954 (state_writer::write_state_pointer_type)
16955 (write_state_array_type): ditto, renaming to...
16956 (state_writer::write_state_array_type)
16957 (write_state_gc_used): ditto, renaming to...
16958 (state_writer::write_state_gc_used)
16959 (write_state_common_type_content): ditto, renaming to...
16960 (state_writer::write_state_common_type_content)
16961 (write_state_type): ditto, renaming to...
16962 (state_writer::write_state_type)
16963 (write_state_pair_list): ditto, renaming to...
16964 (state_writer::write_state_pair_list)
16965 (write_state_pair): ditto, renaming to...
16966 (state_writer::write_state_pair)
16967 (write_state_typedefs): ditto, renaming to...
16968 (state_writer::write_state_typedefs)
16969 (write_state_structures): ditto, renaming to...
16970 (state_writer::write_state_structures)
16971 (write_state_param_structs): ditto, renaming to...
16972 (state_writer::write_state_param_structs)
16973 (write_state_variables): ditto, renaming to...
16974 (state_writer::write_state_variables)
16975 (write_state_srcdir): ditto, renaming to...
16976 (state_writer::write_state_srcdir)
16977 (write_state_files_list): ditto, renaming to...
16978 (state_writer::write_state_files_list)
16979 (write_state_languages): ditto, renaming to...
16980 (state_writer::write_state_languages)
16981 (write_state): create a state_writer instance and use it when
16982 writing out the state file
16983
d6545f29
MS
169842013-05-17 Mike Stump <mikestump@comcast.net>
16985
816a3f73 16986 PR rtl-optimization/57304
d6545f29
MS
16987 * web.c (union_match_dups): Ensure that DF_REF_LOC exists before
16988 accessing DF_REF_REAL_LOC.
16989
38c821cf
JJ
169902013-05-17 Jakub Jelinek <jakub@redhat.com>
16991
16992 PR rtl-optimization/57281
16993 PR rtl-optimization/57300
16994 * config/i386/i386.md (extendsidi2_1 dead reg splitter): Remove.
16995 (extendsidi2_1 peephole2s): Add instead 2 new peephole2s, that undo
16996 what the other splitter did if the registers are dead.
16997
2a293391
RB
169982013-05-17 Richard Biener <rguenther@suse.de>
16999
17000 * tree-ssa-alias.c (stmt_kills_ref_p_1): Properly compare
17001 MEM_REF offsets.
17002
17042d2b
JJ
170032013-05-17 Jakub Jelinek <jakub@redhat.com>
17004
17005 * gcc.c (SANITIZER_SPEC): Reject -fsanitize=address -fsanitize=thread
17006 linking.
17007
5b115c1f
MP
170082013-05-17 Marek Polacek <polacek@redhat.com>
17009
11c2aa39
UB
17010 * tree-ssa-strlen.c (handle_char_store): Don't invalidate cached
17011 length when doing non-zero store of storing '\0' to '\0'.
5b115c1f 17012
52d84413
JJ
170132013-05-17 Jakub Jelinek <jakub@redhat.com>
17014
68119618
JJ
17015 * tree-vect-patterns.c (vect_recog_rotate_pattern): For
17016 vect_external_def oprnd1 with loop_vinfo, try to emit
17017 optional cast, negation and and stmts on the loop preheader
17018 edge instead of into the pattern def seq.
17019
52d84413
JJ
17020 PR tree-optimization/57051
17021 * fold-const.c (const_binop) <case VEC_LSHIFT_EXPR,
17022 case VEC_RSHIFT_EXPR>: Fix BYTES_BIG_ENDIAN handling.
17023
17b962bd
NC
170242013-05-16 Nick Clifton <nickc@redhat.com>
17025
17026 * config/rl78/rl78.c (rl78_attribute_table): Add naked.
17027 (rl78_is_naked_func): New function.
56aefbf7
UB
17028 (rl78_expand_prologue): Skip prologue generation for naked functions.
17029 (rl78_expand_epilogue): Skip epilogue generation for naked functions.
17b962bd
NC
17030 * doc/extend.texi (naked): Add RL78 to the list of processors
17031 that supports this attribute.
17032
b1a0f84e
JL
170332013-05-16 Jeff Law <law@redhat.com>
17034
17035 * Makefile.in (tree-switch-conversion.o): Depend on $(OPTABS_H).
17036
af0e415b
UB
170372013-05-16 Uros Bizjak <ubizjak@gmail.com>
17038
17039 * config/i386/driver-i386.c (host_detect_local_cpu): Determine
17040 cache parameters using detect_caches_amd also for CYRIX,
17041 NSC and TM2 signatures.
17042
19db293a
UB
170432013-05-16 Uros Bizjak <ubizjak@gmail.com>
17044 Dzianis Kahanovich <mahatma@eu.by>
17045
17046 PR target/45359
17047 PR target/46396
17048 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
17049 VIA/Centaur processors and determine their cache parameters
17050 using detect_caches_amd.
17051
251a41b9
TJ
170522013-05-16 Teresa Johnson <tejohnson@google.com>
17053
17054 * cfgrtl.c (verify_hot_cold_block_grouping): Return err.
17055 (rtl_verify_edges): New function.
17056 (rtl_verify_bb_insns): Ditto.
17057 (rtl_verify_bb_pointers): Ditto.
17058 (rtl_verify_bb_insn_chain): Ditto.
17059 (rtl_verify_fallthru): Ditto.
17060 (rtl_verify_bb_layout): Ditto.
17061 (rtl_verify_flow_info_1): Outline checks into new functions.
17062 (rtl_verify_flow_info): Ditto.
17063
f14540b6
SE
170642013-05-16 Steve Ellcey <sellcey@imgtec.com>
17065
17066 * cfghooks.c (copy_bbs): Add update_dominance argument.
17067 * cfghooks.h (copy_bbs): Update prototype.
17068 * tree-cfg.c (gimple_duplicate_sese_region):
17069 Add update_dominance argument.
17070 * tree-flow.h (gimple_duplicate_sese_region): Update prototype.
17071 * tree-ssa-loop-ch.c (copy_loop_headers): Update
17072 gimple_duplicate_sese_region call.
17073 * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg):
17074 Update copy_bbs call.
17075 * cfgloopmanip.c (duplicate_loop_to_header_edge): Ditto.
17076 * trans-mem.c (ipa_uninstrument_transaction): Ditto.
17077
7e9a3abb
JJ
170782013-05-16 Jakub Jelinek <jakub@redhat.com>
17079
17080 * tree-vectorizer.h (NUM_PATTERNS): Increment.
17081 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
17082 vect_recog_rotate_pattern.
17083 (vect_recog_rotate_pattern): New function.
17084
427b248d
JM
170852013-05-16 Jason Merrill <jason@redhat.com>
17086
17087 * Makefile.in (LLINKER): New variable.
17088 (mostlyclean): Remove link mutex.
17089 * configure.ac: Handle --enable-link-mutex.
17090 * lock-and-run.sh: New script.
17091
b871e3d2
RR
170922013-05-16 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
17093
17094 PR target/19599
17095 * config/arm/arm.c (arm_function_ok_for_sibcall): Add check
17096 for NULL decl.
17097
ce858126
RO
170982013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17099
17100 * reorg.c (link_cc0_insns): Wrap in #ifdef HAVE_cc0.
17101
798d3d04
GY
171022013-05-16 Greta Yorsh <Greta.Yorsh@arm.com>
17103
17104 * config/arm/arm-protos.h (gen_movmem_ldrd_strd): New declaration.
17105 * config/arm/arm.c (next_consecutive_mem): New function.
17106 (gen_movmem_ldrd_strd): Likewise.
17107 * config/arm/arm.md (movmemqi): Update condition and code.
17108 (unaligned_loaddi, unaligned_storedi): New patterns.
17109
0baddc45
RO
171102013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17111
17112 * config.gcc: Obsolete *-*-solaris2.9*.
17113 * doc/install.texi (Specific, *-*-solaris2*): Document it.
17114
aa9d5bcf
RB
171152013-05-16 Richard Biener <rguenther@suse.de>
17116
17117 * passes.c (init_optimization_passes): Move pass_parallelize_loops
17118 earlier, after GRAPHITE transforms and IV canonicalization.
17119
5a0f4dd3
JJ
171202013-05-16 Jakub Jelinek <jakub@redhat.com>
17121
17122 * omp-low.c (extract_omp_for_data): For collapsed loops,
17123 if at least one of the loops is known at compile time to
17124 iterate zero times, set count to 0.
17125 (expand_omp_regimplify_p): New function.
17126 (expand_omp_for_generic): For collapsed loops, if at least
17127 one of the loops isn't known to iterate at least once,
17128 add runtime check with setting count to 0.
17129 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
17130 For unsigned types if it isn't known at compile time that
17131 the loop will iterate at least once, add runtime check to bypass
17132 the whole loop if initial condition isn't true.
17133
e3753785
NS
171342013-05-16 Nathan Sidwell <nathan@codesourcery.com>
17135
17136 * varasm.c (default_use_anchors_for_symbol_p): Use decl_replaceable_p.
17137
43bb4dd1
MG
171382013-05-16 Marc Glisse <marc.glisse@inria.fr>
17139
17140 PR middle-end/57286
17141 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Disable some
17142 transformations to avoid an infinite loop.
17143
3571dde6
MP
171442013-05-16 Marek Polacek <polacek@redhat.com>
17145
17146 * tree-scalar-evolution.c (scev_const_prop): Add more dumps.
17147
b8b3f0ca
LE
171482013-05-15 Leif Ekblad <leif@rdos.net>
17149
17150 * config/i386/i386.c (ix86_decompose_address): Use
17151 DEFAULT_TLS_SEG_REG to access TLS segment register.
17152 * config/i386/i386.h (DEFAULT_TLS_SEG_REG): New define.
17153 * config/i386/rdos.h (DEFAULT_TLS_SEG_REG): Ditto.
17154 (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Ditto.
17155
e299a383
RS
171562013-05-15 Richard Sandiford <rdsandiford@googlemail.com>
17157
17158 PR target/57260
17159 * config/mips/mips.c (mips_function_ok_for_sibcall): Don't allow
17160 sibling calls to functions that would normally be lazily bound,
17161 unless $gp is call-clobbered.
17162
e7208ea3
UB
171632013-05-15 Uros Bizjak <ubizjak@gmail.com>
17164
19db293a 17165 * config/i386/i386.c (ix86_option_override_internal): Update
e7208ea3 17166 processor_alias_table for missing PTA_PRFCHW and PTA_FXSR flags. Add
5d280e2b
UB
17167 PTA_POPCNT to corei7 entry. Do not enable SSE prefetch on
17168 non-SSE 3dNow! targets. Enable TARGET_PRFCHW for TARGET_3DNOW targets.
e7208ea3
UB
17169 * config/i386/i386.md (prefetch): Enable for TARGET_PRFCHW instead
17170 of TARGET_3DNOW.
17171 (*prefetch_3dnow): Enable for TARGET_PRFCHW only.
17172
e7413f3d
AS
171732013-05-15 Andreas Schwab <schwab@suse.de>
17174
17175 * config/m68k/m68k.md (*rotlhi3_lowpart, *rotlqi3_lowpart): Name
17176 for rotlhi3+1 and rotlqi3+1, resp. Fix reference to non-existing
17177 third operand.
17178
ad4db775
TJ
171792013-05-15 Teresa Johnson <tejohnson@google.com>
17180
17181 * loop-unroll.c (report_unroll_peel): Check decision before
17182 emitting unroll/peel message.
17183
af205f67
TJ
171842013-05-15 Teresa Johnson <tejohnson@google.com>
17185
17186 * function.h (has_bb_partition): New rtl_data flag.
17187 (bb_reorder_complete): Ditto.
17188 * cfgcleanup.c (try_crossjump_to_edge): Check for has_bb_partition
17189 instead of flag_reorder_blocks_and_partition.
17190 * cfgrtl.c (verify_hot_cold_block_grouping): Moved from bb-reorder.c,
17191 with some enhancements.
17192 (rtl_verify_flow_info_1): Call verify_hot_cold_block_grouping.
17193 * bb-reorder.c (connect_traces): Check for has_bb_partition
17194 instead of flag_reorder_blocks_and_partition.
17195 (verify_hot_cold_block_grouping): Moved to cfgrtl.c.
17196 (reorder_basic_blocks): Set bb_reorder_complete flag, remove call to
17197 verify_hot_cold_block_grouping.
17198 (partition_hot_cold_basic_blocks): Set has_bb_partition.
17199
9adcfa3c
RR
172002013-05-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
17201
17202 PR target/19599
17203 * config/arm/predicates.md (call_insn_operand): New predicate.
17204 * config/arm/constraints.md ("Cs", "Ss"): New constraints.
17205 * config/arm/arm.md (*call_insn, *call_value_insn): Match only
17206 if insn is not a tail call.
17207 (*sibcall_insn, *sibcall_value_insn): Adjust for tailcalling through
17208 registers.
17209 * config/arm/arm.h (enum reg_class): New caller save register class.
17210 (REG_CLASS_NAMES): Likewise.
17211 (REG_CLASS_CONTENTS): Likewise.
17212 * config/arm/arm.c (arm_function_ok_for_sibcall): Allow tailcalling
17213 without decls.
17214
ccb3ad87
RB
172152013-05-15 Richard Biener <rguenther@suse.de>
17216
17217 * tree-vect-loop.c (vect_transform_loop): Use MSG_NOTE instead
17218 of MSG_OPTIMIZED_LOCATIONS.
17219 * tree-vect-slp.c (vect_make_slp_decision): Likewise.
17220 (vect_slp_transform_bb): Indicate location in MSG_OPTIMIZED_LOCATIONS
17221 message.
17222 * tree-vectorizer.c (vectorize_loops): Use MSG_NOTE instead
17223 of MSG_OPTIMIZED_LOCATIONS.
17224 (execute_vect_slp): Likewise.
17225 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
17226 (vect_create_cond_for_alias_checks): Likewise.
17227 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Likewise.
17228 (vect_recog_widen_mult_pattern): Likewise.
17229 (vect_recog_widen_sum_pattern): Likewise.
17230 (vect_recog_over_widening_pattern): Likewise.
17231 (vect_recog_widen_shift_pattern): Likewise.
17232 (vect_recog_vector_vector_shift_pattern): Likewise.
17233 (vect_recog_divmod_pattern): Likewise.
17234 (vect_recog_mixed_size_cond_pattern): Likewise.
17235 (vect_recog_bool_pattern): Likewise.
17236 (vect_pattern_recog_1): Likewise.
17237
48b1474e
MJ
172382013-05-15 Martin Jambor <mjambor@suse.cz>
17239
17240 * ipa-prop.c (ipa_make_edge_direct_to_target): Redirect calls to
17241 non-functions to builtin_unreachable.
17242 * ipa-inline-transform.c (inline_call): Do not assert estimates were
17243 correct when new direct edges were discovered.
17244
9de04252
MJ
172452013-05-15 Martin Jambor <mjambor@suse.cz>
17246
17247 * ipa-prop.c (ipa_print_node_jump_functions): Print symbol order in
17248 header, print symbol order instead of node uid, print more information
17249 about indirect edge targets.
17250 (ipa_make_edge_direct_to_target): Print symbol order instead of node
17251 uids.
17252 (ipa_make_edge_direct_to_target): Likewise.
17253 (remove_described_reference): Likewise.
17254 (propagate_controlled_uses): Likewise.
17255 (ipa_print_node_params): Also print symbol order.
17256 (ipcp_transform_function): Print symbol order instead of node uids.
17257 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Likewise.
17258 (cgraph_get_create_real_symbol_node): Likewise.
17259 * ipa-cp.c (print_lattice): Likewise.
17260 (print_all_lattices): Likewise.
17261 (determine_versionability): Likewise.
17262 (initialize_node_lattices): Likewise.
17263 (estimate_local_effects): Likewise.
17264 (update_profiling_info): Likewise.
17265 (create_specialized_node): Likewise.
17266 (perhaps_add_new_callers): Likewise.
17267 (decide_about_value): Likewise.
17268 (decide_whether_version_node): Likewise.
17269 (identify_dead_nodes): Likewise.
17270 * ipa-inline-analysis.c (dump_inline_edge_summary): Likewise.
17271 (dump_inline_summary): Likewise.
17272 (estimate_node_size_and_time): Likewise.
17273 (inline_analyze_function): Likewise.
17274 * ipa-inline.c (report_inline_failed_reason): Likewise.
17275 (want_early_inline_function_p): Likewise.
17276 (edge_badness): Likewise.
17277 (update_edge_key): Likewise.
17278 (inline_small_functions): Likewise. Add dumping of order to two other
17279 dumps.
17280 * ipa-pure-const.c (pure_const_read_summary): Print symbol order
17281 instead of node uids.
17282 (propagate_pure_const): Likewise.
17283 (propagate_pure_const): Likewise.
17284 * ipa-utils.c (dump_cgraph_node_set): Likewise.
17285 * lto-cgraph.c (input_node): Explicitly specify we dump uid.
17286 * lto-symtab.c (lto_cgraph_replace_node): Print symbol order instead
17287 of node uids.
17288 * tree-pretty-print.c (dump_function_header): Likewise.
17289 * tree-sra.c (convert_callers_for_node): Dump in traditional format.
17290 Print symbol order instead of node uids.
17291
1dd03b91
AK
172922013-05-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17293
17294 * config/s390/s390.c (s390_register_move_cost): Don't impose the
17295 FPR<->GPR move cost penalty if ldgr/lgdr can be used.
17296
fdf6a7b9
RB
172972013-05-15 Richard Biener <rguenther@suse.de>
17298
17299 PR tree-optimization/57275
17300 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Fix
17301 return value for fail to do runtime alias checks for gather loads.
17302
2d6e4603
JH
173032013-05-15 Jan Hubicka <jh@suse.cz>
17304
17305 PR lto/57038
17306 PR lto/47375
e7208ea3
UB
17307 * lto-symtab.c (lto_symtab_symbol_p): Add external symbol;
17308 weakrefs are not external.
17309 (lto_symtab_merge_decls): Fix thinko when dealing with
17310 non-lto_symtab decls.
2d6e4603
JH
17311 (lto_symtab_merge_cgraph_nodes): Use lto_symtab_symbol_p.
17312 (lto_symtab_prevailing_decl): Get int sync with lto_symtab_symbol_p.
17313 * varpool.c (dump_varpool_node): Dump more flags.
17314
83f44b39
GG
173152013-05-15 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
17316
17317 * config/i386/i386.c (processor_alias_table): Add instruction
17318 FSGSBASE for AMD bdver3 architecture.
17319
2e55d062
JJ
173202013-05-14 Jakub Jelinek <jakub@redhat.com>
17321
17322 * tree.c (warn_deprecated_use): Print file:line using locus color.
17323 * diagnostic.c (diagnostic_report_current_module): Print file:line
17324 and file:line:column using locus color.
17325
0bfdb81e
MS
173262013-05-14 Mike Stump <mikestump@comcast.net>
17327
17328 * gdbinit.in: Add __null.
17329
a508ef22
MS
173302013-05-14 Mike Stump <mikestump@comcast.net>
17331
17332 * recog.h: Rename struct recog_data to Recog_data.
17333 * recog.c: Likewise.
17334 * reload.c (can_reload_into): Likewise.
17335 * config/picochip/picochip.c: Likewise.
17336
e7180acb
MS
173372013-05-14 Mike Stump <mikestump@comcast.net>
17338
17339 * web.c (union_match_dups): Also check DF_REF_REAL_LOC.
17340
61216c26
SB
173412013-05-14 Steven Bosscher <steven@gcc.gnu.org>
17342
fd6beed4
SB
17343 * resource.h (struct resources): Remove unch_memory member.
17344 (CLEAR_RESOURCE): Don't clear unch_memory.
17345 * resource.c (mark_referenced_resources): Don't set it.
17346 (mark_set_resources): Likewise.
17347 (mark_target_live_regs): Don't clear it.
17348 (init_resource_info): Likewise.
17349 * reorg.c (resource_conflicts_p): Don't compare it.
17350 (redundant_insn): Don't set it.
17351
61216c26
SB
17352 * rtl.h (next_label, skip_consecutive_labels, link_cc0_insns):
17353 Remove prototypes.
17354 * emit-rtl.c (next_label): Remove unused function.
17355 (skip_consecutive_labels, link_cc0_insns): Move to ...
17356 * reorg.c (skip_consecutive_labels, link_cc0_insns): ... here, the
17357 only place where these functions are used, and make them static.
17358
418d1b87
MG
173592013-05-14 Marc Glisse <marc.glisse@inria.fr>
17360
17361 * fold-const.c (fold_negate_expr): Handle vectors.
17362 (fold_truth_not_expr): Make it static.
17363 (fold_invert_truthvalue): New static function.
17364 (invert_truthvalue_loc): Handle vectors. Do not call
17365 fold_truth_not_expr directly.
17366 (fold_unary_loc) <BIT_NOT_EXPR>: Handle comparisons.
17367 <TRUTH_NOT_EXPR>: Do not cast to boolean.
17368 (fold_comparison): Handle vector constants.
17369 (fold_binary_loc) <TRUTH_XOR_EXPR>: Remove redundant code.
17370 (fold_ternary_loc) <VEC_COND_EXPR>: Adapt more COND_EXPR optimizations.
17371 * tree.h (fold_truth_not_expr): Remove declaration.
17372
fc21784d
JG
173732013-05-14 James Greenhalgh <james.greenhalgh@arm.com>
17374
17375 * config/aarch64/aarch64-simd.md
17376 (aarch64_vcond_internal<mode>): Rename to...
17377 (aarch64_vcond_internal<mode><mode>): ...This, for integer modes.
17378 (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): ...This for
17379 float modes. Clarify all iterator modes.
17380 (vcond<mode><mode>): Use new name for vcond expanders.
17381 (vcond<v_cmp_result><mode>): Likewise.
17382 (vcondu<mode><mode>: Likewise.
17383 * config/aarch64/iterators.md (VDQF_COND): New.
17384
d4c52634
MG
173852013-05-14 Marc Glisse <marc.glisse@inria.fr>
17386
17387 PR bootstrap/57266
17388 * fold-const.c (fold_binary_loc) <shift>: Use an unsigned
17389 variable for the shift amount. Check that we shift by non-negative
17390 amounts.
17391
2b261262
CLT
173922013-05-14 Chung-Lin Tang <cltang@codesourcery.com>
17393
17394 PR target/42017
17395 * config/arm/arm.h (EPILOGUE_USES): Only return true
17396 for LR_REGNUM after epilogue_completed.
17397
12211b99 173982013-05-14 Joern Rennecke <joern.rennecke@embecosm.com>
6e022d7b
JR
17399
17400 * config/avr/avr.c (avr_encode_section_info): Bail out if the type
e7208ea3 17401 is error_mark_node.
6e022d7b 17402
56cf7859
RO
174032013-05-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17404
17405 PR target/57261
17406 * configure.ac (gcc_cv_ld_as_needed): Disable before Solaris 11
17407 and Solaris 11+/x86 with gld.
17408 * configure: Regenerate.
17409
75776c6d
JJ
174102013-05-14 Jakub Jelinek <jakub@redhat.com>
17411
17412 * expmed.c (expand_shift_1): Canonicalize rotates by
17413 constant bitsize / 2 to bitsize - 1.
7f998021 17414 * simplify-rtx.c (simplify_binary_operation_1) <case ROTATE,
75776c6d
JJ
17415 case ROTATERT>: Likewise.
17416
17417 Revert:
17418 2013-05-10 Jakub Jelinek <jakub@redhat.com>
17419
17420 * config/i386/i386.md (rotateinv): New code attr.
17421 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
17422 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
17423 roll $31, %eax, etc.
17424
df35498a
RB
174252013-05-14 Richard Biener <rguenther@suse.de>
17426
17427 PR middle-end/57235
17428 * tree-eh.c (sink_clobbers): Give up for successors with
17429 multiple predecessors and no virtual uses.
17430
cc6e7ece
EB
174312013-05-14 Eric Botcazou <ebotcazou@adacore.com>
17432
17433 * config/sparc/sp64-elf.h (CPP_SUBTARGET_SPEC): Delete.
17434 * config/sparc/openbsd64.h (CPP_SUBTARGET_SPEC): Likewise.
17435
f778dd4d
JJ
174362013-05-14 Jakub Jelinek <jakub@redhat.com>
17437
17438 PR middle-end/57251
17439 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Handle
17440 the case when both op0 and op1 have VOIDmode.
17441
bad4df9b
KP
174422013-05-14 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
17443
17444 * config/rl78/rl78.md(mulsi3_g13): Add additional 'nop' required
17445 in multiply-accumulate mode.
17446
56f3e9ac
GW
174472013-05-13 Guozhi Wei <carrot@google.com>
17448
17449 * dwarf2asm.c (dw2_output_indirect_constant_1): Mark new decl STATIC.
17450
a3d7ab92
KT
174512013-05-13 Kai Tietz <ktietz@redhat.com>
17452
17453 PR target/56975
17454 * config/i386/cygming.h (TARGET_PECOFF): Define as true.
e7208ea3 17455 * config/i386/i386.h (TARGET_PECOFF): Define by default as false.
a3d7ab92 17456 (PIC_OFFSET_TABLE_REGNUM): Use TARGET_PECOFF.
e7208ea3 17457 * config/i386/i386.c (ix86_option_override_internal): Likewise.
a3d7ab92
KT
17458 (ix86_expand_prologue): Likewise.
17459 (ix86_expand_split_stack_prologue): Likewise.
17460 (legitimate_pic_address_disp_p): Likewise.
17461 (legitimize_pic_address): Likewise.
17462 (legitimize_tls_address): Likewise.
17463 (legitimize_pe_coff_symbol): Likewise.
17464 (output_pic_addr_const): Likewise.
17465 (construct_plt_address): Likewise.
17466 (ix86_expand_call): Likewise.
17467 (x86_output_mi_thunk): Likewise.
17468 (x86_function_profiler): Likewise.
17469
c59b7e28
SN
174702013-05-13 Sofiane Naci <sofiane.naci@arm.com>
17471
17472 * config/aarch64/aarch64-simd.md (aarch64_simd_mov<mode>): Group
17473 similar switch cases.
17474 (aarch64_simd_mov): Rename to aarch64_split_simd_mov. Update.
17475 (aarch64_simd_mov_to_<mode>low): Delete.
17476 (aarch64_simd_mov_to_<mode>high): Delete.
17477 (move_lo_quad_<mode>): Add w<-r alternative.
17478 (aarch64_simd_move_hi_quad_<mode>): Likewise.
17479 (aarch64_simd_mov_from_*): Update type attribute.
17480 * config/aarch64/aarch64.c (aarch64_split_simd_move): Refacror switch
17481 statement.
17482
5f28524a
JH
174832013-05-13 Jan Hubicka <jh@suse.cz>
17484
17485 * mode-switching.c (optimize_mode_switching): Set correct RTL profile.
17486 * config/i386/i386.c (ix86_compute_frame_layout,
e7208ea3
UB
17487 ix86_expand_epilogue, emit_i387_cw_initialization,
17488 ix86_expand_vector_move_misalign, ix86_fp_comparison_strategy,
17489 ix86_local_alignment): Fix use of size/speed predicates.
5f28524a 17490
ae6fa899
JJ
174912013-05-13 Jakub Jelinek <jakub@redhat.com>
17492
17493 PR tree-optimization/45216
17494 PR tree-optimization/57157
17495 * tree-ssa-forwprop.c (simplify_rotate): Only recognize
17496 the (-Y) & (B - 1) variant if OP is |.
17497 * expmed.c (expand_shift_1): For rotations by const0_rtx just
17498 return shifted. Use (-op1) & (prec - 1) as other_amount
17499 instead of prec - op1.
17500
4502fe8d
MJ
175012013-05-13 Martin Jambor <mjambor@suse.cz>
17502
17503 PR middle-end/42371
17504 * ipa-prop.h (IPA_UNDESCRIBED_USE): New macro.
17505 (ipa_constant_data): New type.
17506 (ipa_jump_func): Use ipa_constant_data to hold information about
17507 constant jump functions.
17508 (ipa_get_jf_constant): Adjust to jump function type changes.
17509 (ipa_get_jf_constant_rdesc): New function.
17510 (ipa_param_descriptor): New field controlled_uses.
17511 (ipa_get_controlled_uses): New function.
17512 (ipa_set_controlled_uses): Likewise.
17513 * ipa-ref.h (ipa_find_reference): Declare.
17514 * ipa-prop.c (ipa_cst_ref_desc): New type.
17515 (ipa_print_node_jump_functions_for_edge): Adjust for jump function type
17516 changes.
17517 (ipa_set_jf_constant): Likewise. Also create reference descriptions.
17518 New parameter cs. Adjust all callers.
17519 (ipa_analyze_params_uses): Detect uncontrolled and controlled uses.
17520 (remove_described_reference): New function.
17521 (jfunc_rdesc_usable): Likewise.
17522 (try_make_edge_direct_simple_call): Decrement controlled use count,
17523 attempt to remove reference if it hits zero.
17524 (combine_controlled_uses_counters): New function.
17525 (propagate_controlled_uses): Likewise.
17526 (ipa_propagate_indirect_call_infos): Call propagate_controlled_uses.
17527 (ipa_edge_duplication_hook): Duplicate reference descriptions.
17528 (ipa_print_node_params): Print described use counter.
17529 (ipa_write_jump_function): Adjust to jump function type changes.
17530 (ipa_read_jump_function): New parameter CS, pass it to
17531 ipa_set_jf_constant. Adjust caller.
17532 (ipa_write_node_info): Stream controlled use count
17533 (ipa_read_node_info): Likewise.
17534 * cgraph.c (cgraph_mark_address_taken_node): Bail out instead of
17535 asserting.
17536 * ipa-cp.c (ipcp_discover_new_direct_edges): Decrement controlled use
17537 count. Remove cloning-added reference if it reaches zero.
17538 * ipa-ref.c (ipa_find_reference): New function.
17539
0864bfc2
GG
175402013-05-13 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
17541
e7208ea3 17542 * config/i386/i386.c (processor_target_table): Modified default
0864bfc2
GG
17543 alignment values for AMD BD and BT architectures.
17544
640bfeb2
MG
175452013-05-13 Marc Glisse <marc.glisse@inria.fr>
17546
17547 * tree-vect-generic.c (uniform_vector_p): Move ...
17548 * tree.c (uniform_vector_p): ... here.
17549 * tree.h (uniform_vector_p): Declare it.
17550 * fold-const.c (fold_binary_loc) <shift>: Turn the second argument
17551 into a scalar.
17552
3a60f32b
JJ
175532013-05-13 Jakub Jelinek <jakub@redhat.com>
17554
198fe1bf
JJ
17555 PR tree-optimization/57230
17556 * tree-ssa-strlen.c (handle_char_store): Record length for
17557 array store from STRING_CST.
17558
3a60f32b
JJ
17559 PR tree-optimization/57230
17560 * tree-ssa-strlen.c (handle_char_store): Add missing integer_zerop
17561 check.
17562
566be57c
JR
175632013-05-12 Joern Rennecke <joern.rennecke@embecosm.com>
17564
17565 * config/epiphany/epiphany.c (epiphany_init): Check size of
17566 NUM_MODES_FOR_MODE_SWITCHING.
17567 (epiphany_expand_prologue):
17568 Remove CONFIG_REGNUM initial value handling code.
17569 (epiphany_optimize_mode_switching): Handle EPIPHANY_MSW_ENTITY_CONFIG.
17570 (epiphany_mode_needed, epiphany_mode_entry_exit): Likewise.
2710a27a 17571 (emit_set_fp_mode, epiphany_mode_after): Likewise.
566be57c
JR
17572 (epiphany_mode_needed) <Handle EPIPHANY_MSW_ENTITY_AND>:
17573 Don't return 1 for FP_MODE_NONE.
17574 * config/epiphany/epiphany.h (NUM_MODES_FOR_MODE_SWITCHING):
17575 Add value for EPIPHANY_MSW_ENTITY_CONFIG.
17576 (EPIPHANY_MSW_ENTITY_CONFIG, EPIPHANY_MSW_ENTITY_NUM): Define.
17577 * config/epiphany/epiphany.md (save_config): New pattern.
17578
0f2c2331
UB
175792013-05-12 Uros Bizjak <ubizjak@gmail.com>
17580
17581 * config/i386/i386.md (*zero_extendsidi2): Add *x->?r alternative.
17582
5b3f93c7
UB
175832013-05-10 Uros Bizjak <ubizjak@gmail.com>
17584
17585 * config/i386/i386.md (memory): Handle sseishft1.
17586 * config/i386/sse.md (*vec_extractv4si): Remove memory attribute.
17587 (*vec_extractv2di_1): Ditto.
17588
1f873f0e
VM
175892013-05-10 Vladimir Makarov <vmakarov@redhat.com>
17590
17591 * lra-assigns.c (find_hard_regno_for): Add 1 to the cost of call
17592 saved registers.
17593
341427fa 175942013-05-10 Sebastian Huber <sebastian.huber@embedded-brains.de>
d7de6455
SH
17595
17596 * config/arm/t-rtems-eabi: Remove mthumb/march=armv7 multilib.
17597 Add mthumb/march=armv7-a multilib.
17598 Add mthumb/march=armv7-r multilib.
17599 Add mthumb/march=armv7-a/mfpu=neon/mfloat-abi=hard multilib.
17600
9e69bdde
RC
176012013-05-10 Ralf Corsépius <ralf.corsepius@rtems.org>
17602
17603 * config/v850/t-rtems: Add more multilibs.
17604
9ff09a22
RB
176052013-05-10 Richard Biener <rguenther@suse.de>
17606
17607 PR tree-optimization/57214
17608 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling): Do
17609 not propagate from SSA names that occur in abnormal PHI nodes.
17610
a5e0cd1d
MG
176112013-05-10 Marc Glisse <marc.glisse@inria.fr>
17612
17613 * stor-layout.c (element_precision): New function.
17614 * machmode.h (element_precision): Declare it.
17615 * tree.c (build_minus_one_cst): New function.
17616 (element_precision): Likewise.
17617 * tree.h (build_minus_one_cst): Declare new function.
17618 (element_precision): Likewise.
17619 * fold-const.c (operand_equal_p): Use element_precision.
17620 (fold_binary_loc): Handle vector types.
17621 * convert.c (convert_to_integer): Use element_precision.
17622 * gimple.c (iterative_hash_canonical_type): Handle complex and vectors
17623 separately.
17624
cb2558bc
RS
176252013-05-10 Richard Sandiford <rdsandiford@googlemail.com>
17626
17627 * config/mips/mips-protos.h (m16_uimm3_b, m16_simm4_1, m16_nsimm4_1)
17628 (m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4, m16_simm8_1)
17629 (m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1, m16_uimm8_4)
17630 (m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
17631 * config/mips/mips.c (m16_check_op, m16_uimm3_b, m16_simm4_1)
17632 (m16_nsimm4_1, m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4)
17633 (m16_simm8_1, m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1)
17634 (m16_uimm8_4, m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
17635 * config/mips/constraints.md (Udb8, Usb5, Usb8, Usd8, Uub8, Uuw5)
17636 (Uuw8): New constraints.
17637 (Usb4): Move into alphabetical order.
17638 * config/mips/predicates.md (db8_operand, sb5_operand, sb8_operand)
17639 (sd8_operand, ub8_operand, uw8_operand): New predicates.
17640 * config/mips/mips.md (*xor<mode>3, *xor<mode>3_mips16): Name
17641 previously unnamed patterns.
17642 (*add<mode>3_mips16, *xor<mode>3_mips16, *<optab>si3_mips16)
17643 (*ashldi3_mips16, *ashrdi3_mips16, *lshrdi3_mips16)
17644 (*slt<u>_<GPR:mode><GPR2:mode>_mips16)
17645 (*sle<u>_<GPR:mode><GPR2:mode>_mips16): Use constraints instead
17646 of set_attr_alternative/if_then_else. Use extended_mips16 instead
17647 of specific lengths.
17648
cb3b8d33
JJ
176492013-05-10 Jakub Jelinek <jakub@redhat.com>
17650
6f93c008
JJ
17651 * config/i386/i386.md (rotateinv): New code attr.
17652 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
17653 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
17654 roll $31, %eax, etc.
17655
cb3b8d33
JJ
17656 PR tree-optimization/45216
17657 PR tree-optimization/57157
17658 * tree-ssa-forwprop.c (simplify_rotate): New function.
17659 (ssa_forward_propagate_and_combine): Call it.
17660
afb119be
RB
176612013-05-10 Richard Biener <rguenther@suse.de>
17662
17663 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
17664 disable peeling when we version for aliasing.
17665 (vector_alignment_reachable_p): Honor explicit user alignment.
17666 (vect_supportable_dr_alignment): Likewise.
17667 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Use
17668 STMT_VINFO_LOOP_PHI_EVOLUTION_PART instead of recomputing it.
17669 * tree-vect-loop.c (vect_transform_loop): First apply versioning,
17670 then peeling to arrange for the cost-model check to come first.
17671
01ae4861
AM
176722013-05-10 Alan Modra <amodra@gmail.com>
17673
17674 * configure.ac (HAVE_AS_TLS): Swap powerpc64 and powerpc cases.
17675 (HAVE_LD_LARGE_TOC): Don't mention AIX in help text.
17676 * configure: Regenerate.
17677
ebc9a431
AM
176782013-05-10 Alan Modra <amodra@gmail.com>
17679
17680 PR target/55033
17681 * varasm.c (default_elf_select_section): Move !DECL_P check..
17682 (get_named_section): ..to here before calling get_section_name.
17683 Adjust assertion.
17684 (default_section_type_flags): Add DECL_P check.
17685 * config/i386/winnt.c (i386_pe_section_type_flags): Likewise.
17686 * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags): Likewise.
17687
d4bca93c
JR
176882013-05-09 Joern Rennecke <joern.rennecke@embecosm.com>
17689
17690 * config/epiphany/epiphany.c (epiphany_expand_prologue):
17691 When using gen_stack_adjust_str with a register offset, add a
17692 REG_FRAME_RELATED_EXPR note.
17693
60ca9a65
UB
176942013-05-09 Uros Bizjak <ubizjak@gmail.com>
17695
17696 * config/i386/sse.md (*vec_extractv4si_0_zext): New pattern.
17697 (*vec_extractv4si_zext_mem): Ditto.
17698 (*vec_extractv2di): Add 0->x and x->x alternatives.
17699 * config/i386/mmx.md (*vec_extractv2si_zext_mem): New pattern.
17700 * config/i386/i386.md (*zero_extendsidi2): Add *Yj->?r alternative.
17701
a3409c02
JM
177022013-05-09 Jason Merrill <jason@redhat.com>
17703
0138d6b2
JM
17704 N3639 C++1y VLA support
17705 * gimplify.c (gimplify_vla_decl): Don't touch an existing
17706 DECL_VALUE_EXPR.
17707
a3409c02
JM
17708 * tree.c (build_constructor_va): New.
17709 * tree.h: Declare it.
17710
66e6b990
MJ
177112013-05-09 Martin Jambor <mjambor@suse.cz>
17712
17713 PR lto/57084
17714 * gimple-fold.c (canonicalize_constructor_val): Call
17715 cgraph_get_create_real_symbol_node instead of cgraph_get_create_node.
17716
64cfa6c0
JH
177172013-05-09 Jan Hubicka <jh@suse.cz>
17718 Richard Biener <rguenther@suse.de>
17719
17720 PR lto/54095
17721 * symtab.c (symtab_make_decl_local): Do not add private names.
17722
c3167b00
JH
177232013-05-09 Jan Hubicka <jh@suse.cz>
17724
17725 PR lto/54095
17726 * symtab.c (insert_to_assembler_name_hash): Handle clones.
17727 (unlink_from_assembler_name_hash): Likewise.
17728 (symtab_prevail_in_asm_name_hash, symtab_register_node,
17729 symtab_unregister_node, symtab_initialize_asm_name_hash,
17730 change_decl_assembler_name): Update.
17731
12dc6974
SN
177322013-05-09 Sofiane Naci <sofiane.naci@arm.com>
17733
17734 * config/aarch64/aarch64.md: New movtf split.
17735 (*movtf_aarch64): Update.
17736 (aarch64_movdi_tilow): Handle TF modes and rename to
17737 aarch64_movdi_<mode>low.
17738 (aarch64_movdi_tihigh): Handle TF modes and rename to
17739 aarch64_movdi_<mode>high
17740 (aarch64_movtihigh_di): Handle TF modes and rename to
17741 aarch64_mov<mode>high_di
17742 (aarch64_movtilow_di): Handle TF modes and rename to
17743 aarch64_mov<mode>low_di
17744 (aarch64_movtilow_tilow): Remove spurious whitespace.
17745 * config/aarch64/aarch64.c (aarch64_split_128bit_move): Handle TFmode
17746 splits.
17747 (aarch64_print_operand): Update.
17748
227eb343
AM
177492013-05-09 Alan Modra <amodra@gmail.com>
17750
17751 * configure.ac (HAVE_AS_TLS): Enable tests for powerpcle and
17752 powerpc64le.
17753 * configure: Regenerate.
17754
0b013847
UB
177552013-05-08 Uros Bizjak <ubizjak@gmail.com>
17756
17757 * config/i386/mmx.md (*vec_extract* splitters): Simplify post-reload
17758 splitter preparation statements.
17759 * config/i386/sse.md (*vec_extract* splitters): Ditto.
17760 (*avx_vperm_broadcast_<mode>): Use adjust_address instead of
17761 adjust_address_nv.
17762
1dc3d6e9
BS
177632013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17764
17765 * gimple-ssa-strength-reduction.c (count_candidates): Change
17766 return value to int.
17767 (analyze_candidates_and_replace): Change type of length to int.
17768
e61e7d28
UB
177692013-05-08 Uros Bizjak <ubizjak@gmail.com>
17770
17771 * config/i386/sse.md (PEXTR_MODE, PEXTR_MODEx): Remove.
17772 (*vec_extract<mode>): Use VI12_128 mode iterator.
17773 (*vec_extract<mode>_mem): Ditto.
17774 (*vec_extract*_mem splitters): Merge splitters using VI_128 mode
17775 attribute.
17776
4fbfcf44
DN
177772013-05-08 Diego Novillo <dnovillo@google.com>
17778
17779 PR bootstrap/54659
17780
17781 Revert:
4fbfcf44
DN
17782 2012-08-17 Diego Novillo <dnovillo@google.com>
17783
e61e7d28
UB
17784 PR bootstrap/54281
17785 * configure.ac: Add libintl.h to AC_CHECK_HEADERS list.
17786 * config.in: Regenerate.
17787 * configure: Regenerate.
17788 * intl.h: Always include libintl.h if HAVE_LIBINTL_H is set.
4fbfcf44 17789
702d8703
JH
177902013-05-08 Jan Hubicka <jh@suse.cz>
17791
17792 PR lto/54095
17793 * cgraph.c (cgraph_make_node_local_1): Se unique_name.
17794 * cgraph.h (symtab_node_base): Add unique_name.
17795 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
17796 input_overwrite_node, input_varpool_node): Stream unique_name.
17797 * cgraphclones.c (cgraph_create_virtual_clone,
17798 cgraph_function_versioning): Set unique_name.
17799 * ipa.c (function_and_variable_visibility): Set unique_name.
17800
8b28cf47
BS
178012013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17802
17803 * gimple-ssa-strength-reduction.c (find_phi_def): Revert former "fix."
17804 (alloc_cand_and_find_basis): Restrict conditional candidate
17805 processing to CAND_MULTs.
17806
e86074fd
JH
178072013-05-08 Jan Hubicka <jh@suse.cz>
17808
17809 PR lto/54095
17810 lto-symtab.c (lto_symtab_symbol_p): New function.
17811 (lto_symtab_resolve_can_prevail_p, lto_symtab_resolve_symbols,
17812 lto_symtab_resolve_symbols, lto_symtab_merge_decls_2,
17813 lto_symtab_merge_decls_1, lto_symtab_merge_cgraph_nodes_1):
17814 Skip static symbols.
17815
44398cbe
PC
178162013-05-08 Paolo Carlini <paolo.carlini@oracle.com>
17817
17818 PR tree-optimization/57200
17819 * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
17820 Only call inform if the preceding warning_at returns true.
17821
f6bc1c4a
HS
178222013-05-07 Han Shen <shenhan@google.com>
17823
17824 * cfgexpand.c (record_or_union_type_has_array_p): New function.
17825 (expand_used_vars): Add logic handling '-fstack-protector-strong'.
17826 * common.opt (fstack-protector-strong): New option.
17827 * doc/cpp.texi (__SSP_STRONG__): New builtin "__SSP_STRONG__".
17828 * doc/invoke.texi (Optimization Options): Document
17829 "-fstack-protector-strong".
17830 * gcc.c (LINK_SSP_SPEC): Add 'fstack-protector-strong'.
17831
4ffecb1f
SB
178322013-05-06 Steven Bosscher <steven@gcc.gnu.org>
17833
17834 * config/mips/mips.c (mips_machine_reorg2): Return 0.
17835
5a107a0f
VM
178362013-05-07 Vladimir Makarov <vmakarov@redhat.com>
17837
17838 * ira.c (update_equiv_regs): Add insn having equiv memory even if
17839 it is not lhs of the insn.
17840 (setup_reg_equiv): Remove insn having equiv memory which it is not
17841 lhs of the insn.
17842 * lra-constraints.c (process_address): Try to improve generation
17843 code for address base + disp.
17844 (lra_constraints): Make correct the code for checking insn setting
17845 up backward equivalence. Remove insn only if it is in the init
17846 insn list.
17847 * lra-eliminations.c (update_reg_eliminate): Change return value.
17848 (lra_eliminate): Use the result.
17849
3f5783ea
UB
178502013-05-07 Uros Bizjak <ubizjak@gmail.com>
17851
17852 * config/i386/sse.md (ssescalarnummask): New mode attribute.
17853 (PEXTR_MODE, PEXTR_MODEx): New mode iterators.
17854 (*vec_extract<mode>): Merge from *sse4_1_pextrb_memory and
17855 *sse4_1_pextrw_memory using PEXTR_MODE mode iterator. Handle
17856 register target operands.
17857 (*vec_extractv8hi_sse2): New pattern.
17858 (*vec_extractv16qi_zext): Rename from *sse4_1_pextrb_<mode>.
17859 (*vec_extractv8hi_zext): Rename from *sse2_pextrw_<mode>.
17860 (*vec_extract<mode>_mem): New insn and split pattern.
17861
8a5800b8
CL
178622013-05-07 Christophe Lyon <christophe.lyon@linaro.org>
17863
17864 * config/arm/arm.c (arm_asan_shadow_offset): New function.
17865 (TARGET_ASAN_SHADOW_OFFSET): Define.
17866 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Define.
17867 (LINUX_OR_ANDROID_CC): Add ASAN_CC1_SPEC.
17868
7bf55a70
BS
178692013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17870
17871 * gimple-ssa-strength-reduction.c (MAX_INCR_VEC_LEN): New constant.
17872 (incr_vec_index): Return -1 if increment not found.
17873 (create_add_on_incoming_edge): Assert if increment not found.
17874 (record_increment): Limit number of increments recorded.
17875 (all_phi_incrs_profitable): Return false if an increment not found.
17876 (replace_profitable_candidates): Don't process increments that were
17877 not recorded.
17878 (analyze_candidates_and_replace): Limit size of incr_vec.
17879
3f8825c0
RB
178802013-05-07 Richard Biener <rguenther@suse.de>
17881
17882 * calls.c (special_function_p): setjmp-like functions are leaf.
17883 * builtins.def (BUILT_IN_SETJMP): setjmp is leaf.
17884 * tree-inline.c (update_ssa_across_abnormal_edges): Remove assert.
17885
fd4842cd
SN
178862013-05-07 Sofiane Naci <sofiane.naci@arm.com>
17887
17888 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): call splitter.
17889 (aarch64_simd_mov<mode>): New expander.
17890 (aarch64_simd_mov_to_<mode>low): New instruction pattern.
17891 (aarch64_simd_mov_to_<mode>high): Likewise.
17892 (aarch64_simd_mov_from_<mode>low): Likewise.
17893 (aarch64_simd_mov_from_<mode>high): Likewise.
17894 (aarch64_dup_lane<mode>): Update.
17895 (aarch64_dup_lanedi): New instruction pattern.
17896 * config/aarch64/aarch64-protos.h (aarch64_split_simd_move): New prototype.
17897 * config/aarch64/aarch64.c (aarch64_split_simd_move): New function.
17898
a7a7d10e
BS
178992013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17900
17901 * gimple-ssa-strength-reduction.c (lazy_create_slsr_reg): Remove.
17902 (replace_mult_candidate): Remove unnecessary argument; remove
17903 unnecessary parameter from call to introduce_cast_before_cand.
17904 (replace_unconditional_candidate): Remove unnecessary parameter
17905 from call to replace_mult_candidate.
17906 (replace_conditional_candidate): Likewise.
17907 (insert_initializers): Use make_temp_ssa_name.
17908 (introduce_cast_before_cand): Remove unnecessary argument; use
17909 make_temp_ssa_name.
17910 (replace_one_candidate): Remove unnecessary argument; remove
17911 unnecessary parameter from calls to introduce_cast_before_cand.
17912 (replace_profitable_candidates): Remove unnecessary parameters
17913 from calls to replace_one_candidate.
17914
29105868
BS
179152013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17916
17917 * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
17918 phi def as possibly hiding a basis for a CAND_ADD whose operands
17919 have been commuted in the analysis.
17920 (alloc_cand_and_find_basis): Add parms to call to find_phi_def.
17921
4095f9fa
N
179222013-05-07 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
17923
17924 * config/aarch64/aarch64.md
17925 (cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): Restrict the
17926 shift value between 0-4.
17927
39e843e8
RB
179282013-05-07 Richard Biener <rguenther@suse.de>
17929
17930 * double-int.h (rshift): New overload.
17931 * double-int.c (rshift): New function.
17932 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Optimize.
17933 (create_reference_ops_from_ref): Remove.
17934 (vn_reference_insert): Use shared ops for constructing the
17935 reference and copy it.
17936
0a1a83cb
RB
179372013-05-07 Richard Biener <rguenther@suse.de>
17938
17939 PR middle-end/57190
17940 * tree-eh.c (sink_clobbers): Properly propagate
17941 SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
17942
43303d6f
JJ
179432013-05-07 Jakub Jelinek <jakub@redhat.com>
17944
ba7e83f8
JJ
17945 PR tree-optimization/57149
17946 * tree-ssa-uninit.c (uninit_undefined_value_p): New inline.
17947 (can_skip_redundant_opnd, compute_uninit_opnds_pos,
17948 collect_phi_def_edges, execute_late_warn_uninitialized): Use
17949 uninit_undefined_value_p instead of ssa_undefined_value_p.
17950
43303d6f
JJ
17951 PR debug/57184
17952 * expr.c (expand_expr_addr_expr_1): Handle COMPOUND_LITERAL_EXPR
17953 for modifier == EXPAND_INITIALIZER.
17954
14523c25
AB
179552013-05-07 Anton Blanchard <anton@samba.org>
17956
17957 * configure.ac (HAVE_LD_LARGE_TOC): Use correct linker emulation
17958 for powerpc64 little endian.
17959 * configure: Regenerate.
17960
cb7c8be9
GS
179612013-05-06 Graham Stott <grahams@btinternet.com>
17962
17963 * expmed.c (init_expmed_rtl): Remove unused fields reg_fld, plus_fld,
17964 mult_fld, sdiv_fld1, udiv_fld1, sdiv_32_fld1, smod_32_fld1,
17965 wide_mult_fld1, wide_lshr_fld1, shift_fld1, shift_mult_fld1,
17966 shift_add_fld1, shift_sub0_fld1, shift_sub1_fld1.
17967
179682013-05-06 Graham Stott <grahams@btinternet.com>
a8fd4225
GS
17969
17970 * gensupport.c (add_predicate_code): Also exclude SCRATCH from rtx
17971 codes which allow non-lvalues.
17972
9a0ee7b0
MG
179732013-05-06 Marc Glisse <marc.glisse@inria.fr>
17974
17975 * tree.c (integer_all_onesp) <COMPLEX_CST>: Test that both
17976 components are all 1s.
17977 (integer_minus_onep): New function.
17978 * tree.h (integer_minus_onep): Declare it.
17979 * fold-const.c (fold_binary_loc) <MULT_EXPR>: Test
17980 integer_minus_onep instead of integer_all_onesp.
17981
f2c17ea9
OE
179822013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
17983
17984 PR target/52933
17985 * config/sh/sh.md (*cmp_div0s_0, *cmp_div0s_1, *movsicc_div0s): Add
17986 variations of these patterns.
17987
f75e6a51
UB
179882013-05-06 Uros Bizjak <ubizjak@gmail.com>
17989
17990 * config/i386/i386.md (isa): Add x64_sse4 member.
17991 (enabled): Handle x64_sse4.
17992 (*movdi_internal): Add *x->?r alternative to emit pextrq $0,%xmm,%reg
17993 instruction for 64bit SSE4_1 targets. Update insn attributes.
17994 (*movsi_internal): Add *x->?r alternative to emit pextrd $0,%xmm,%reg
17995 instruction for SSE4_1 targets. Update insn attributes.
17996 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
17997 with *sse4_1_pextrd and *sse4_1_pextrq having const_0 selector.
17998 (*vec_extractv2di_1): Merge with *sse4_1_pextrq having
17999 const_1 selector.
18000 (*vec_extractv4si): Rename from *sse4_1_pextrd.
18001 (*vec_extractv4si_zext): Rename from *sse4_1_pextrd_zext.
18002 (*vec_extract<ssevecmodelower>_0 splitters): Merge splitters together.
18003
a986d468
OE
180042013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
18005
18006 PR target/57108
18007 * config/sh/sh.md (tstsi_t_zero_extract_eq): Use QIHISIDI mode iterator.
18008
382522cb
MK
180092013-05-06 Maxim Kuznetsov <maks.kuznetsov@gmail.com>
18010
18011 * final.c (do_assembler_dialects): Don't handle curly braces and
18012 vertical bar escaped by % as dialect delimiters.
18013 (output_asm_insn): Print curly braces and vertical bar if escaped
18014 by % and ASSEMBLER_DIALECT defined.
18015 * doc/tm.texi.in (ASSEMBLER_DIALECT): Document new standard escapes.
18016 * doc/tm.texi: Regenerated.
18017
fb0d5c60
SB
180182013-05-06 Steven Bosscher <steven@gcc.gnu.org>
18019
fb0d5c60
SB
18020 * config/mips/mips.c: Include tree-pass.h.
18021 (mips_reorg): Split in pre- and post-dbr_schedule parts.
18022 (mips_machine_reorg2): Move mips_reorg post-dbr_schedule parts here.
18023 (pass_mips_machine_reorg2): New machine specific pass.
18024 (insert_pass_mips_machine_reorg2): New pass plugin definition.
18025 (mips_option_override): Register the new pass.
18026 * rtl.h (cleanup_barriers): Remove prototype.
18027 (dbr_schedule): Likewise.
18028 * jump.c (cleanup_barriers): Make static.
18029 * reorg.c (dbr_schedule): Likewise.
18030
aa06a978
RB
180312013-05-06 Richard Biener <rguenther@suse.de>
18032
18033 PR tree-optimization/57185
18034 * tree-parloops.c (add_field_for_reduction): Handle anonymous
18035 SSA names properly.
18036
0b953bec
UB
180372013-05-06 Uros Bizjak <ubizjak@gmail.com>
18038
18039 PR target/57106
18040 * config/i386/i386.c (add_parameter_dependencies): Add dependence
18041 between "first_arg" and "insn", not "last" and "insn".
18042
28708525
WS
180432013-05-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18044
18045 * gimple-ssa-strength-reduction.c (slsr_process_phi): Re-enable.
18046 (find_candidates_in_block): Re-enable slsr_process_phi.
18047 (create_phi_basis): Fix double counting of candidate adjustment.
18048
0107dca2
RB
180492013-05-06 Richard Biener <rguenther@suse.de>
18050
18051 PR middle-end/57147
18052 * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): If
18053 the edge is also fallthru, preserve it and just clear the
18054 abnormal flag.
18055 * tree-cfgcleanup.c (remove_fallthru_edge): If the edge is
18056 also complex, preserve that and just clear the fallthru flag.
18057 * tree-inline.c (update_ssa_across_abnormal_edges): Also
18058 update virtual operands.
18059
470d4d13
AM
180602013-05-06 Alan Modra <amodra@gmail.com>
18061
18062 * config/rs6000/linux.h (DEFAULT_ASM_ENDIAN): Define.
18063 (LINK_OS_LINUX_EMUL): Use ENDIAN_SELECT.
18064 * config/rs6000/linux64.h (DEFAULT_ASM_ENDIAN): Define.
18065 * config/rs6000/sysv4le.h (DEFAULT_ASM_ENDIAN): Define.
18066 (LINK_TARGET_SPEC): Use ENDIAN_SELECT.
18067 * config/rs6000/sysv4.h (DEFAULT_ASM_ENDIAN): Define as -mbig.
18068
8f1dbf8d
AM
180692013-05-06 Alan Modra <amodra@gmail.com>
18070
18071 * config/rs6000/sysv4.h (ENDIAN_SELECT): Define, extracted from
18072 (ASM_SPEC): ..here. Emit DEFAULT_ASM_ENDIAN too.
18073 (DEFAULT_ASM_ENDIAN): Define.
18074 (CC1_SPEC, LINK_TARGET_SPEC): Use ENDIAN_SELECT.
18075 * config/rs6000/linux64.h (ASM_SPEC32): Remove endian options.
18076 Update -K PIC clause from sysv4.h.
18077 (ASM_SPEC_COMMON): Use ENDIAN_SELECT.
18078 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Likewise.
18079
54890767
AM
180802013-05-06 Alan Modra <amodra@gmail.com>
18081
18082 * config/rs6000/rs6000.md (bswapdi 2nd splitter): Don't swap words
18083 twice for little-endian.
18084 (ashrdi3_no_power, ashrdi3): Support little-endian.
18085
2353515d
OE
180862013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
18087
18088 PR target/55303
18089 * config/sh/sh.c (sh_rtx_costs): Handle SMIN and SMAX cases.
18090 * config/sh/sh.md (*clips, uminsi3, *clipu, clipu_one): New insns and
18091 related expanders.
18092 * config/sh/iterators.md (SMIN_SMAX): New code iterator.
18093 * config/sh/predicates.md (arith_reg_or_0_or_1_operand,
18094 clips_min_const_int, clips_max_const_int, clipu_max_const_int):
18095 New predicates.
18096
33e67557
SB
180972013-05-05 Steven Bosscher <steven@gcc.gnu.org>
18098 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
18099
18100 * config.gcc (hppa*-*-*): Remove MASK_BIG_SWITCH from CPU default.
18101 * config/pa/pa.opt: Make mbig-switch a no-op.
18102 * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_BIG_SWITCH.
18103 (CASE_VECTOR_MODE): Always return SImode.
18104 (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove code
18105 for the !TARGET_BIG_SWITCH case.
18106 * config/pa/pa-linux.h: Likewise.
18107 * config/pa/pa-openbsd.h: Likewise.
18108 * config/pa/pa-hpux.h: Define TARGET_DEFAULT to 0.
18109 * config/pa/pa.md (short_jump): Remove define_insn.
18110 (casesi): Remove code for the !TARGET_BIG_SWITCH case.
18111 (casesi0): Remove define_insn.
18112 (type): Remove btable_branch.
18113 (pa_combine_type): Likewise.
18114 (in_nullified_branch_delay): Likewise.
18115 (in_call_delay): Likewise.
18116 (define_delay): Likewise.
18117 (define_insn_reservation "Z3"): Likewise.
18118 (define_insn_reservation "Z4"): Likewise.
18119 * config/pa/pa.c (pa_reorg): Remove code for !TARGET_BIG_SWITCH.
18120 (pa_adjust_insn_length): Remove adjustment for btable branches.
18121 * doc/invoke.texi (HPPA Options): Delete documentation for mbig-switch
18122 and mno-big-switch
18123
3095685e
UB
181242013-05-05 Uros Bizjak <ubizjak@gmail.com>
18125
18126 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
18127 from sse2_stored and *sse2_storeq_rex64 using SWI48 mode iterator.
18128 Add m->r,x alternatives.
18129 (*vec_extract<ssevecmodelower>_0 splitters): Merge V2DI and V4SI
18130 splitters using SWI48x mode iterator.
18131 (*vec_extract_v2di_0_sse): Rename from *sse2_storeq. Disable for
18132 TARGET_64BIT. Add m->x alternative.
18133 (*vec_extractv4si_mem): Rename from *vec_ext_v4si_mem.
18134 Add o->x alternative. Enable for TARGET_SSE.
18135 (sse_storeq): Remove expander.
18136 (*vec_extractv2di_1): Enable for TARGET_SSE. Split alternatives
18137 with memory input operand.
18138 (*vec_extractv2di_1 splitter): New.
18139 (*vec_extractv4sf_mem): Rename from *vec_extract_v4sf_mem.
18140 * config/i386/i386.md (ssevecmodelower): New mode attribute.
18141
4b36ae28
SB
181422013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
18143
18144 * config/rs6000/rs6000.c (INT_P): Reformat. Delete obsolete comment.
18145 (INT_LOWPART): Delete.
18146 (extract_MB): Adjust.
18147 (extract_ME): Adjust.
18148 (print_operand): Adjust.
18149
da226db2
SB
181502013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
18151
18152 * config/rs6000/predicates.md (reg_or_add_cint_operand,
18153 reg_or_sub_cint_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
18154 (reg_or_logical_cint_operand, easy_fp_constant,
18155 logical_const_operand): Delete "CONST_DOUBLE" case.
18156 * config/rs6000/rs6000.c (num_insns_constant_wide): Delete
18157 "HOST_BITS_PER_WIDE_INT == 64" test.
3095685e 18158 (num_insns_constant): Ditto. Delete CONST_DOUBLE DImode/VOIDmode case.
da226db2
SB
18159 (build_mask64_2_operands): Delete "HOST_BITS_PER_WIDE_INT >= 64" test.
18160 (rs6000_emit_set_const): Delete CONST_DOUBLE case.
18161 (rs6000_emit_set_long_const): Delete "HOST_BITS_PER_WIDE_INT >= 64"
18162 test.
18163 (includes_rldic_lshift_p, includes_rldicr_lshift_p): Delete
18164 CONST_DOUBLE DImode/VOIDmode case.
18165 (INT_P, INT_LOWPART): Delete CONST_DOUBLE case.
18166 (print_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case. Delete
18167 CONST_DOUBLE VOIDmode case.
18168 (output_toc): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
18169 (rs6000_rtx_costs): Delete CONST_DOUBLE DImode/VOIDmode case.
18170 * config/rs6000/rs6000.md (iordi3, xordi3, splitter for these):
18171 Delete CONST_DOUBLE case.
18172 (splitters for mov FMOVE64 const_double): Delete
18173 "HOST_BITS_PER_WIDE_INT == 32" case. Delete
18174 "HOST_BITS_PER_WIDE_INT >= 64" test.
18175 (splitter for mov DI const_int): Delete "HOST_BITS_PER_WIDE_INT == 32"
18176 case.
18177 (mov DI const_double): Delete.
18178
40de22d6
JJ
181792013-05-04 Jakub Jelinek <jakub@redhat.com>
18180
18181 * combine.c (combine_simplify_rtx) <case SUBREG>: If nonzero_bits
18182 on op shows all bits zero in mode of a lowpart subreg, return zero.
18183
5ec6aff2
MM
181842013-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
18185
18186 PR target/57150
18187 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Use DFmode
18188 to save TFmode registers and DImode to save TImode registers for
18189 caller save operations.
18190 (HARD_REGNO_CALL_PART_CLOBBERED): TFmode and TDmode do not need to
18191 mark being partially clobbered since they only use the first
18192 double word.
18193
18194 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): TFmode
18195 and TDmode only use the upper 64-bits of each VSX register.
18196
2cefad90
BS
181972013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18198
18199 * gimple-ssa-strength-reduction.c (slsr_process_phi): Disable.
18200 (find_candidates_in_block): Disable slsr_process_phi.
18201
d6d7eee1
GW
182022013-05-03 Guozhi Wei <carrot@google.com>
18203
18204 * coverage.c (coverage_obj_init): Move the construction of gcov
3095685e
UB
18205 constructor to ...
18206 (build_init_ctor): ... here.
d6d7eee1 18207
9b92d12b
BS
182082013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18209
18210 * gimple-ssa-strength-reduction.c (cand_kind): Add CAND_PHI.
18211 (slsr_cand_d): Redefine def_phi.
18212 (stride_status, phi_adjust_status, count_phis_status): New enums.
18213 (find_phi_def): New.
18214 (find_basis_for_base_expr): New.
18215 (find_basis_for_candidate): Handle hidden bases.
18216 (alloc_cand_and_find_basis): Handle phi candidates.
18217 (slsr_process_phi): New.
18218 (create_mul_ssa_cand): Exclude phi base candidates; use integer_onep.
18219 (create_mul_imm_cand): Likewise.
18220 (create_add_ssa_cand): Exclude phi base candidates.
18221 (create_add_imm_cand): Likewise.
18222 (slsr_process_cast): Likewise.
18223 (slsr_process_copy): Likewise.
18224 (find_candidates_in_block): Handle phi candidates.
18225 (dump_candidate): Likewise.
18226 (unconditional_cands): Delete.
18227 (unconditional_cands_with_known_stride_p): Delete.
18228 (phi_dependent_cand_p): New.
18229 (cand_increment): Handle phi-dependent candidates.
18230 (replace_dependent): Delete.
18231 (replace_mult_candidate): New.
18232 (replace_unconditional_candidate): New.
18233 (incr_vec_index): Move to avoid forward reference.
18234 (create_add_on_incoming_edge): New.
18235 (create_phi_basis): New.
18236 (replace_dependents): Delete.
18237 (replace_conditional_candidate): New.
18238 (phi_add_costs): New.
18239 (replace_uncond_cands_and_profitable_phis): New.
18240 (record_increment): Handle phi adjustments.
18241 (record_phi_increments): New.
18242 (record_increments): Handle phi adjustments.
18243 (phi_incr_cost): New.
18244 (lowest_cost_path): Handle phis.
18245 (total_savings): Likewise.
18246 (analyze_increments): Likewise.
18247 (ncd_with_phi): New.
18248 (ncd_of_cand_and_phis): New.
18249 (nearest_common_dominator_for_cands): Handle phi increments.
18250 (all_phi_incrs_profitable): New.
18251 (replace_profitable_candidates): Handle phi-dependent candidates.
18252 (analyze_candidates_and_replace): Likewise.
18253
68f073d4
TJ
182542013-05-03 Teresa Johnson <tejohnson@google.com>
18255
18256 PR bootstrap/57154
18257 * sched-rgn.c (compute_dom_prob_ps): Ensure accumulated probabilities
18258 do not exceed REG_BR_PROB_BASE.
18259
a4ee7cb9
JL
182602013-05-03 Jeff Law <law@redhat.com>
18261
ade67f70 18262 PR tree-optimization/57144
a4ee7cb9
JL
18263 * tree-vrp.c (simplify_cond_using_ranges): Verify the constant
18264 operand of the condition will bit into the new type when eliminating
18265 a cast feeding a condition.
18266
47954c4e
JJ
182672013-05-03 Jakub Jelinek <jakub@redhat.com>
18268
18269 PR rtl-optimization/57130
3095685e
UB
18270 * combine.c (make_compound_operation) <case SUBREG>: Pass SET instead
18271 of COMPARE as in_code to the recursive call if needed.
47954c4e 18272
3c21604f
UB
182732013-05-03 Uros Bizjak <ubizjak@gmail.com>
18274
18275 * config/i386/i386.md (isa): Add x64_sse4_noavx and x64_avx members.
18276 (enabled): Handle new members.
18277 * config/i386/sse.md (*vec_concatv2si): Merge from
18278 *vec_concatv2si_sse2 and vec_concatv2si_sse.
18279 (vec_concatv2di): Merge with *vec_concatv2di_rex64.
18280
12211b99 182812013-05-03 Joern Rennecke <joern.rennecke@embecosm.com>
95c03b36
JR
18282
18283 PR tree-optimization/57027
18284 * tree-ssa-math-opts.c (convert_mult_to_fma): When checking
18285 for fnms opportunity, check we got the prerequisite kind
18286 of tree / gimple before using accessor functions.
18287
07bfc9ec
RB
182882013-05-03 Richard Biener <rguenther@suse.de>
18289
18290 * double-int.h (lshift): New overload without precision
18291 and arith argument.
18292 (operator *=, operator +=, operator -=): Move ...
18293 * double-int.c (operator *=, operator +=, operator -=): ... here
18294 and implement more efficiently.
18295 (mul_double_with_sign): Remove.
18296 (lshift_double): Adjust to take unsinged shift argument, push
18297 dispatching code to callers.
18298 (mul_double_wide_with_sign): Add early out for callers that
18299 are not interested in high parts or overflow.
18300 (lshift): New function.
18301 (lshift, rshift, alshift, arshift, llshift, lrshift): Add
18302 dispatch code here.
18303 (lrotate, rrotate): Use logical shifts.
18304 * expr.c (get_inner_reference): Use lshift.
18305 * fixed-value.c (do_fixed_divide): Likewise.
18306 * tree-dfa.c (get_ref_base_and_extent): Likewise.
18307 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
18308 (indirect_refs_may_alias_p): Likewise.
18309 (stmt_kills_ref_p_1): Likewise.
18310
7769bb64
VP
183112013-05-03 Vidya Praveen <vidyapraveen@arm.com>
18312
18313 * config/aarch64/aarch64-simd.md (simd_fabd): Correct the description.
18314
1d0c8e5c
VP
183152013-05-03 Vidya Praveen <vidyapraveen@arm.com>
18316
18317 * config/aarch64/aarch64-simd.md (*fabd_scalar<mode>3): Support
18318 scalar form of FABD instruction.
18319
f15feaf9
VM
183202013-05-02 Vladimir Makarov <vmakarov@redhat.com>
18321
18322 * lra-constraints.c (process_alt_operands): Add checking alt
18323 number to choose the best alternative.
18324
d90e76d4
RB
183252013-05-02 Richard Biener <rguenther@suse.de>
18326
18327 * tree-eh.c (cleanup_empty_eh_merge_phis): Remove rename_virts
18328 bitmap and its handling.
18329 (pass_cleanup_eh): Set todo_flags_finish to TODO_verify_ssa.
18330
9f8e7a96
RB
183312013-05-02 Richard Biener <rguenther@suse.de>
18332
18333 PR middle-end/57140
18334 * tree-inline.c (copy_loops): Properly handle removed loops.
18335 (copy_cfg_body): Mark destination loops for fixup if source
18336 loops needed fixup.
18337
f3a81b39
GY
183382013-05-02 Greta Yorsh <Greta.Yorsh@arm.com>
18339
18340 PR target/56732
18341 * config/arm/arm.c (arm_expand_epilogue): Check really_return before
18342 generating simple_return for naked functions.
18343
7b920a9a
MJ
183442013-05-02 Martin Jambor <mjambor@suse.cz>
18345
18346 PR middle-end/56988
18347 * ipa-prop.h (ipa_agg_replacement_value): New flag by_ref.
18348 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also check that by_ref
18349 flags match.
18350 (find_aggregate_values_for_callers_subset): Fill in the by_ref flag of
18351 ipa_agg_replacement_value structures.
18352 (known_aggs_to_agg_replacement_list): Likewise.
18353 * ipa-prop.c (write_agg_replacement_chain): Stream by_ref flag.
18354 (read_agg_replacement_chain): Likewise.
18355 (ipcp_transform_function): Also check that by_ref flags match.
18356
2c41c19d
RB
183572013-05-02 Richard Biener <rguenther@suse.de>
18358
18359 * graphds.h (struct graph): Add obstack member.
18360 * graphds.c (new_graph): Initialize obstack and allocate
18361 vertices from it.
18362 (add_edge): Allocate edge from the obstack.
3c21604f 18363 (free_graph): Free the obstack instead of all edges and vertices.
2c41c19d 18364
8b47039c
TJ
183652013-05-02 Teresa Johnson <tejohnson@google.com>
18366
18367 * loop-unswitch.c (unswitch_loop): Use helper routines with rounding
18368 divides.
18369 * cfg.c (update_bb_profile_for_threading): Ditto.
18370 * tree-inline.c (copy_bb): Ditto.
18371 (copy_edges_for_bb): Ditto.
18372 (initialize_cfun): Ditto.
18373 (copy_cfg_body): Ditto.
18374 (expand_call_inline): Ditto.
18375 * ipa-inline-analysis.c (estimate_edge_size_and_time): Ditto.
18376 (estimate_node_size_and_time): Ditto.
18377 (inline_merge_summary): Ditto.
18378 * cgraphclones.c (cgraph_clone_edge): Ditto.
18379 (cgraph_clone_node): Ditto.
18380 * sched-rgn.c (compute_dom_prob_ps): Ditto.
18381 (compute_trg_info): Ditto.
18382
da65928c
IB
183832013-05-02 Ian Bolton <ian.bolton@arm.com>
18384
18385 * config/aarch64/aarch64.md (movsi_aarch64): Only allow to/from
18386 S reg when fp attribute set.
18387 (movdi_aarch64): Only allow to/from D reg when fp attribute set.
18388
add3c965
IB
183892013-05-02 Ian Bolton <ian.bolton@arm.com>
18390
18391 * config/aarch64/aarch64.md (*and_one_cmpl<mode>3_compare0):
18392 New pattern.
18393 (*and_one_cmplsi3_compare0_uxtw): Likewise.
18394 (*and_one_cmpl_<SHIFT:optab><mode>3_compare0): Likewise.
18395 (*and_one_cmpl_<SHIFT:optab>si3_compare0_uxtw): Likewise.
18396
fdd43ac4
RB
183972013-05-02 Richard Biener <rguenther@suse.de>
18398
18399 * tree-scalar-evolution.c (scev_info_hasher): Remove.
18400 (struct instantiate_cache_entry): New type.
18401 (struct instantiate_cache_entry_hasher): New hashtable descriptor.
18402 (struct instantiate_cache_type): New type.
18403 (set_instantiated_value, get_instantiated_value): Remove.
18404 (get_instantiated_value_entry): New function.
18405 (instantiate_scev_name): Use the new cache and adjust.
18406 (instantiate_scev_poly): Adjust.
18407 (instantiate_scev_binary): Likewise.
18408 (instantiate_array_ref): Likewise.
18409 (instantiate_scev_convert): Likewise.
18410 (instantiate_scev_not): Likewise.
18411 (instantiate_scev_3): Likewise.
18412 (instantiate_scev_2): Likewise.
18413 (instantiate_scev_r): Likewise.
18414 (instantiate_scev): Likewise.
18415 (resolve_mixers): Likewise.
18416
36ff9dfb
VM
184172013-05-01 Vladimir Makarov <vmakarov@redhat.com>
18418
18419 PR target/57091
18420 * lra-constraints.c (best_small_class_operands_num): Remove.
18421 (process_alt_operands): Remove small_class_operands_num. Take
18422 small classes operands into losers and only if the operand is not
18423 matched. Modify debugging output.
18424 (curr_insn_transform): Remove best_small_class_operands_num.
18425 Print insn name.
18426
36054fab
JG
184272013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18428
18429 * config/aarch64/aarch64-builtins.c
18430 (aarch64_gimple_fold_builtin.c): Fold more modes for reduc_splus_.
18431 * config/aarch64/aarch64-simd-builtins.def
18432 (reduc_splus_): Add new modes.
18433 (reduc_uplus_): New.
18434 * config/aarch64/aarch64-simd.md (aarch64_addvv4sf): Remove.
18435 (reduc_uplus_v4sf): Likewise.
18436 (reduc_splus_v4sf): Likewise.
18437 (aarch64_addv<mode>): Likewise.
18438 (reduc_uplus_<mode>): Likewise.
18439 (reduc_splus_<mode>): Likewise.
18440 (aarch64_addvv2di): Likewise.
18441 (reduc_uplus_v2di): Likewise.
18442 (reduc_splus_v2di): Likewise.
18443 (aarch64_addvv2si): Likewise.
18444 (reduc_uplus_v2si): Likewise.
18445 (reduc_splus_v2si): Likewise.
18446 (reduc_<sur>plus_<mode>): New.
18447 (reduc_<sur>plus_v2di): Likewise.
18448 (reduc_<sur>plus_v2si): Likewise.
18449 (reduc_<sur>plus_v4sf): Likewise.
18450 (aarch64_addpv4sf): Likewise.
18451 * config/aarch64/arm_neon.h
18452 (vaddv<q>_<s,u,f><8, 16, 32, 64): Rewrite using builtins.
18453 * config/aarch64/iterators.md (unspec): Remove UNSPEC_ADDV,
18454 add UNSPEC_SADDV, UNSPEC_UADDV.
18455 (SUADDV): New.
18456 (sur): Add UNSPEC_SADDV, UNSPEC_UADDV.
18457
6dce23a8
JG
184582013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18459
18460 * config/aarch64/arm_neon.h
18461 (v<max,min><nm><q><v>_<sfu><8, 16, 32, 64>): Rewrite using builtins.
18462
1598945b
JG
184632013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18464
18465 * config/aarch64/aarch64-builtins
18466 (aarch64_gimple_fold_builtin): Fold reduc_<su><maxmin>_ builtins.
18467
998eaf97
JG
184682013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18469
18470 * config/aarch64/aarch64-simd-builtins.def
18471 (reduc_smax_): New.
18472 (reduc_smin_): Likewise.
18473 (reduc_umax_): Likewise.
18474 (reduc_umin_): Likewise.
18475 (reduc_smax_nan_): Likewise.
18476 (reduc_smin_nan_): Likewise.
18477 (fmax): Remove.
18478 (fmin): Likewise.
18479 (smax): Update for V2SF, V4SF and V2DF modes.
18480 (smin): Likewise.
18481 (smax_nan): New.
18482 (smin_nan): Likewise.
18483 * config/aarch64/aarch64-simd.md (<maxmin><mode>3): Rename to...
18484 (<su><maxmin><mode>3): ...This, refactor.
18485 (s<maxmin><mode>3): New.
18486 (<maxmin_uns><mode>3): Likewise.
18487 (reduc_<maxmin_uns>_<mode>): Refactor.
18488 (reduc_<maxmin_uns>_v4sf): Likewise.
18489 (reduc_<maxmin_uns>_v2si): Likewise.
18490 (aarch64_<fmaxmin><mode>: Remove.
18491 * config/aarch64/arm_neon.h (vmax<q>_f<32,64>): Rewrite to use
18492 new builtin names.
18493 (vmin<q>_f<32,64>): Likewise.
18494 * config/iterators.md (unspec): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
18495 (FMAXMIN): New.
18496 (su): Add mappings for smax, smin, umax, umin.
18497 (maxmin): New.
18498 (FMAXMINV): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
18499 (FMAXMIN): Rename as...
18500 (FMAXMIN_UNS): ...This.
18501 (maxminv): Remove.
18502 (fmaxminv): Likewise.
18503 (fmaxmin): Likewise.
18504 (maxmin_uns): New.
18505 (maxmin_uns_op): Likewise.
18506
bd11644e
JG
185072013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18508
18509 * config/aarch64/arm_neon.h
18510 (vac<ge, gt><sd>_f<32, 64>): Rename to...
18511 (vca<ge, gt><sd>_f<32, 64>): ...this, reimpliment in C.
18512 (vca<ge, gt, lt, le><q>_f<32, 64>): Reimpliment in C.
18513
75dd5ace
JG
185142013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18515
18516 * config/aarch64/aarch64-simd.md (*aarch64_fac<optab><mode>): New.
18517 * config/aarch64/iterators.md (FAC_COMPARISONS): New.
18518
7c19979f
JG
185192013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18520
18521 * config/aarch64/aarch64-simd.md
18522 (vcond<mode>_internal): Handle special cases for constant masks.
18523 (vcond<mode><mode>): Allow nonmemory_operands for outcome vectors.
18524 (vcondu<mode><mode>): Likewise.
18525 (vcond<v_cmp_result><mode>): New.
18526
bb60efd9
JG
185272013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18528
18529 * config/aarch64/aarch64-builtins.c (BUILTIN_VALLDI): Define.
18530 (aarch64_fold_builtin): Add folding for cm<eq,ge,gt,tst>.
18531 * config/aarch64/aarch64-simd-builtins.def
18532 (cmeq): Update to BUILTIN_VALLDI.
18533 (cmgt): Likewise.
18534 (cmge): Likewise.
18535 (cmle): Likewise.
18536 (cmlt): Likewise.
18537 * config/aarch64/arm_neon.h
18538 (vc<eq, lt, le, gt, ge, tst><z><qsd>_<fpsu><8,16,32,64>): Remap
18539 to builtins or C as appropriate.
18540
889b9412
JG
185412013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18542
18543 * config/aarch64/aarch64-simd-builtins.def (cmhs): Rename to...
18544 (cmgeu): ...This.
18545 (cmhi): Rename to...
18546 (cmgtu): ...This.
18547 * config/aarch64/aarch64-simd.md
18548 (simd_mode): Add SF.
18549 (aarch64_vcond_internal): Use new names for unsigned comparison insns.
18550 (aarch64_cm<optab><mode>): Rewrite to not use UNSPECs.
18551 * config/aarch64/aarch64.md (*cstore<mode>_neg): Rename to...
18552 (cstore<mode>_neg): ...This.
18553 * config/aarch64/iterators.md
18554 (VALLF): new.
18555 (unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>.
18556 (COMPARISONS): New.
18557 (UCOMPARISONS): Likewise.
18558 (optab): Add missing comparisons.
18559 (n_optab): New.
18560 (cmp_1): Likewise.
18561 (cmp_2): Likewise.
18562 (CMP): Likewise.
18563 (cmp): Remove.
18564 (VCMP_S): Likewise.
18565 (VCMP_U): Likewise.
18566 (V_cmp_result): Add DF, SF modes.
18567 (v_cmp_result): Likewise.
18568 (v): Likewise.
18569 (vmtype): Likewise.
18570 * config/aarch64/predicates.md (aarch64_reg_or_fp_zero): New.
18571
0a7dbb76
GY
185722013-05-01 Greta Yorsh <Greta.Yorsh@arm.com>
18573
18574 * config/arm/thumb2.md (thumb2_smaxsi3,thumb2_sminsi3): Convert
18575 define_insn to define_insn_and_split.
18576 (thumb32_umaxsi3,thumb2_uminsi3): Likewise.
18577 (thumb2_negdi2,thumb2_abssi2,thumb2_neg_abssi2): Likewise.
18578 (thumb2_mov_scc,thumb2_mov_negscc,thumb2_mov_notscc): Likewise.
18579 (thumb2_movsicc_insn,thumb2_and_scc,thumb2_ior_scc): Likewise.
18580 (thumb2_negscc): Likewise.
18581
fb614ca6
GY
185822013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
18583
18584 * config/arm/thumb2.md (thumb2_incscc, thumb2_decscc): Delete.
18585
9e64a0bf
GY
185862013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
18587
18588 * config/arm/thumb2.md: Remove trailing whitespaces.
18589
d6b28156
RS
185902013-04-30 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
18591
18592 * explow.c (plus_constant): Pass "mode" to immed_double_int_const.
18593 Use gen_int_mode rather than GEN_INT.
18594
f91674c3
L
185952013-04-30 H.J. Lu <hongjiu.lu@intel.com>
18596
b0dec607 18597 * value-prof.c (stream_in_histogram_value): Remove the strayed
f91674c3
L
18598 debug_gimple_stmt.
18599
3551257c
RB
186002013-04-30 Richard Biener <rguenther@suse.de>
18601
18602 PR middle-end/57122
3c21604f 18603 * cfghooks.c (split_edge): Properly check for the loop latch edge.
3551257c 18604
4c1aff1c
RB
186052013-04-30 Richard Biener <rguenther@suse.de>
18606
18607 PR middle-end/57107
18608 * tree-eh.c (sink_clobbers): Preserve virtual SSA form.
18609
54b8379a
AB
186102013-04-30 Andrey Belevantsev <abel@ispras.ru>
18611
18612 PR rtl-optimization/56957
18613 PR rtl-optimization/57105
54b8379a
AB
18614 * sel-sched.c (move_op_orig_expr_found): Remove insn_emitted
18615 variable. Use just INSN_UID for determining whether an insn
18616 should be only disconnected from the insn stream.
18617 * sel-sched-ir.h (EXPR_WAS_CHANGED): Remove.
18618
abc27962
JJ
186192013-04-30 Jakub Jelinek <jakub@redhat.com>
18620
18621 PR tree-optimization/57104
18622 * tsan.c (instrument_expr): Don't instrument accesses to
18623 DECL_HARD_REGISTER VAR_DECLs.
18624
0fc822d0
RB
186252013-04-30 Richard Biener <rguenther@suse.de>
18626
18627 * function.h (loops_for_fn): New inline function.
18628 (set_loops_for_fn): Likewise.
18629 * cfgloop.h (place_new_loop): Add struct function parameter.
18630 (get_loop): Likewise.
18631 (get_loops): Likewise.
18632 (number_of_loops): Likewise.
18633 (fel_next): Adjust.
18634 (fel_init): Likewise.
18635 * cfg.c (get_loop_copy): Adjust.
18636 * cfgloop.c (flow_loops_dump): Likewise.
18637 (record_loop_exits): Likewise.
18638 (verify_loop_structure): Likewise.
18639 * cfgloopanal.c (mark_irreducible_loops): Likewise.
18640 (estimate_reg_pressure_cost): Likewise.
18641 (mark_loop_exit_edges): Likewise.
18642 * cfgloopmanip.c (place_new_loop): Likewise.
18643 (add_loop): Likewise.
18644 (duplicate_loop): Likewise.
18645 * graph.c (draw_cfg_nodes): Likewise.
18646 * graphite-clast-to-gimple.c (translate_clast_user): Likewise.
18647 * graphite-sese-to-poly.c (build_scop_scattering): Likewise.
18648 (extract_affine_chrec): Likewise.
18649 (build_scop_iteration_domain): Likewise.
18650 * graphite.c (graphite_initialize): Likewise.
18651 * ira-build.c (create_loop_tree_nodes): Likewise.
18652 (more_one_region_p): Likewise.
18653 (rebuild_regno_allocno_maps): Likewise.
18654 (mark_loops_for_removal): Likewise.
18655 (mark_all_loops_for_removal): Likewise.
18656 (remove_unnecessary_regions): Likewise.
18657 (ira_build): Likewise.
18658 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
18659 * loop-init.c (fix_loop_structure): Likewise.
18660 (gate_rtl_move_loop_invariants): Likewise.
18661 (gate_rtl_unswitch): Likewise.
18662 (gate_rtl_unroll_and_peel_loops): Likewise.
18663 (rtl_doloop): Likewise.
18664 * lto-streamer-in.c (input_cfg): Likewise.
18665 * lto-streamer-out.c (output_cfg): Likewise.
18666 * modulo-sched.c (sms_schedule): Likewise.
18667 * predict.c (tree_estimate_probability): Likewise.
18668 (tree_estimate_probability_driver): Likewise.
18669 (estimate_loops): Likewise.
18670 * tree-cfg.c (fixup_loop_arrays_after_move): Likewise.
18671 (move_sese_region_to_fn): Likewise.
18672 (debug_loop_num): Likewise.
18673 * tree-chrec.c (chrec_evaluate): Likewise.
18674 (hide_evolution_in_other_loops_than_loop): Likewise.
18675 (chrec_component_in_loop_num): Likewise.
18676 (reset_evolution_in_loop): Likewise.
18677 (evolution_function_is_invariant_rec_p): Likewise.
18678 * tree-if-conv.c (main_tree_if_conversion): Likewise.
18679 * tree-inline.c (copy_loops): Likewise.
18680 (copy_cfg_body): Likewise.
18681 (tree_function_versioning): Likewise.
18682 * tree-loop-distribution.c (rdg_flag_loop_exits): Likewise.
18683 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
18684 Likewise.
18685 (add_to_evolution_1): Likewise.
18686 (scev_const_prop): Likewise.
18687 * tree-scalar-evolution.h (get_chrec_loop): Likewise.
18688 * tree-ssa-loop-ch.c (copy_loop_headers): Likewise.
18689 * tree-ssa-loop-im.c (analyze_memory_references): Likewise.
18690 (tree_ssa_lim_initialize): Likewise.
18691 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Likewise.
18692 (verify_loop_closed_ssa): Likewise.
18693 * tree-ssa-loop.c (tree_ssa_loop_init): Likewise.
18694 (tree_ssa_loop_im): Likewise.
18695 (tree_ssa_loop_unswitch): Likewise.
18696 (tree_vectorize): Likewise.
18697 (check_data_deps): Likewise.
18698 (tree_ssa_loop_ivcanon): Likewise.
18699 (tree_ssa_loop_bounds): Likewise.
18700 (tree_complete_unroll): Likewise.
18701 (tree_complete_unroll_inner): Likewise.
18702 (tree_parallelize_loops): Likewise.
18703 (tree_ssa_loop_prefetch): Likewise.
18704 (tree_ssa_loop_ivopts): Likewise.
18705 * tree-ssa.c (execute_update_addresses_taken): Liekwise.
18706 * tree-vectorizer.c (vectorize_loops): Likewise.
18707
37953bd3
MF
187082013-04-29 Mike Frysinger <vapier@gentoo.org>
18709
18710 * config/arm/bpabi.h (EABI_LINK_SPEC): Define.
18711 (BPABI_LINK_SPEC): Use new EABI_LINK_SPEC.
18712 * config/arm/linux-eabi.h (LINK_SPEC): Replace BE8_LINK_SPEC
18713 with EABI_LINK_SPEC.
18714
f9ed28db
UB
187152013-04-29 Uros Bizjak <ubizjak@gmail.com>
18716
18717 PR target/44578
18718 * config/i386/i386.md (*zero_extendsidi2): Add "!" to m->?*y
18719 alternative.
18720
deca73f5
VM
187212013-04-29 Vladimir Makarov <vmakarov@redhat.com>
18722
18723 PR target/57097
37953bd3 18724 * lra-constraints.c (process_alt_operands): Discourage a bit more
deca73f5
VM
18725 using memory for pseudos. Print cost dump for alternatives.
18726 Modify cost values for conflicts with early clobbers.
18727 (curr_insn_transform): Spill pseudos reassigned to NO_REGS.
18728
fdca7d03
UB
187292013-04-29 Uros Bizjak <ubizjak@gmail.com>
18730
18731 PR target/57098
18732 * config/i386/i386.c (ix86_expand_vec_perm): Validize constant memory.
18733
0b064172
IB
187342013-04-29 Ian Bolton <ian.bolton@arm.com>
18735
18736 * config/aarch64/aarch64.md (movsi_aarch64): Support LDR/STR
18737 from/to S register.
18738 (movdi_aarch64): Support LDR/STR from/to D register.
18739
473cec55
IB
187402013-04-29 Ian Bolton <ian.bolton@arm.com>
18741
18742 * common/config/aarch64/aarch64-common.c: Enable REE pass at O2
18743 or higher by default.
18744
a6f30e66
RB
187452013-04-29 Richard Biener <rguenther@suse.de>
18746
18747 PR middle-end/57075
18748 * tree-inline.c (copy_edges_for_bb): Still split the bbs,
18749 even if not adding abnormal edges for calls that can make
18750 abnormal gotos.
18751
0c2b2040
RB
187522013-04-29 Richard Biener <rguenther@suse.de>
18753
18754 PR middle-end/57103
18755 * tree-cfg.c (move_stmt_op): Fix condition under which to update
18756 TREE_BLOCK.
18757 (move_stmt_r): Remove redundant checking.
18758
f41f80f9
TJ
187592013-04-29 Teresa Johnson <tejohnson@google.com>
18760
18761 PR bootstrap/57077
18762 * basic-block.h (apply_scale): New function.
18763 (apply_probability): Use apply_scale.
18764 * gimple-streamer-in.c (input_bb): Ditto.
18765 * lto-streamer-in.c (input_cfg): Ditto.
18766 * lto-cgraph.c (merge_profile_summaries): Ditto.
18767 * tree-optimize.c (execute_fixup_cfg): Ditto.
fdca7d03 18768 * tree-inline.c (copy_bb): Update comment to use apply_scale.
f41f80f9
TJ
18769 (copy_edges_for_bb): Ditto.
18770 (copy_cfg_body): Ditto.
18771
315bbd2e
TV
187722013-04-29 Tom de Vries <tom@codesourcery.com>
18773
18774 * tree-ssa-tail-merge.c (find_same_succ_bb): Skip loop latch bbs.
18775 (replace_block_by): Don't set LOOPS_NEED_FIXUP.
18776 (tail_merge_optimize): Handle current_loops == NULL.
18777
ebbd90d8
JL
187782013-04-26 Jeff Law <law@redhat.com>
18779
18780 * tree-vrp.c (range_fits_type_p): Move to earlier point in file.
18781 (simplify_cond_using_ranges): Generalize code to simplify
18782 COND_EXPRs where one argument is a constant and the other
18783 is an SSA_NAME created by an integral type conversion.
18784
8b9b57eb
KT
187852013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18786
18787 * config/arm/arm.md (store_minmaxsi): Use only when
18788 optimize_insn_for_size_p.
18789
9498e5dc
CB
187902013-04-29 Christian Bruel <christian.bruel@st.com>
18791
18792 PR target/57108
18793 * sh.md (tstsi_t_zero_extract_eq): Set mode for operand 0.
18794
6093bc06
RB
187952013-04-29 Richard Biener <rguenther@suse.de>
18796
18797 PR middle-end/57089
fdca7d03
UB
18798 * omp-low.c (expand_omp_taskreg): If the parent function had a broken
18799 loop tree make sure to schedule a fixup for the child as well.
6093bc06
RB
18800 (expand_omp_for_generic): Properly add loops.
18801 (expand_omp_for_static_nochunk): Likewise.
18802 (expand_omp_for_static_chunk): Likewise.
18803 (expand_omp_for): For the degenerate case fixup loops.
18804 (expand_omp_sections): Fix default bb placement in loops.
18805 (expand_omp_atomic_pipeline): Properly add loops.
18806
84aacbfd
KT
188072013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18808
18809 * predict.c: Fix typo in comment above #define PROB_VERY_UNLIKELY.
18810
8dee4479
TV
188112013-04-29 Tom de Vries <tom@codesourcery.com>
18812
18813 * tree-ssa-tail-merge.c: Update header comment.
18814
47934dc4
JG
188152013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18816
18817 * config/aarch64/arm_neon.h
18818 (vcvt<sd>_f<32,64>_s<32,64>): Rewrite in C.
18819 (vcvt<q>_f<32,64>_s<32,64>): Rewrite using builtins.
18820 (vcvt_<high_>_f<32,64>_f<32,64>): Likewise.
18821 (vcvt<qsd>_<su><32,64>_f<32,64>): Likewise.
18822 (vcvta<qsd>_<su><32,64>_f<32,64>): Likewise.
18823 (vcvtm<qsd>_<su><32,64>_f<32,64>): Likewise.
18824 (vcvtn<qsd>_<su><32,64>_f<32,64>): Likewise.
18825 (vcvtp<qsd>_<su><32,64>_f<32,64>): Likewise.
18826
384be29f
JG
188272013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18828
18829 * config/aarch64/aarch64-simd.md
18830 (<optab><VDQF:mode><fcvt_target>2): New, maps to fix, fixuns.
18831 (<fix_trunc_optab><VDQF:mode><fcvt_target>2): New, maps to
18832 fix_trunc, fixuns_trunc.
18833 (ftrunc<VDQF:mode>2): New.
18834 * config/aarch64/iterators.md (optab): Add fix, fixuns.
18835 (fix_trunc_optab): New.
18836
0386b123
JG
188372013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18838
18839 * config/aarch64/aarch64-builtins.c
18840 (aarch64_builtin_vectorized_function): Vectorize over ifloorf,
18841 iceilf, lround, iroundf.
18842
00fcb892
UB
188432013-04-29 Uros Bizjak <ubizjak@gmail.com>
18844
18845 PR target/54349
18846 * config/i386/i386.h (enum ix86_tune_indices)
18847 <X86_TUNE_INTER_UNIT_MOVES_TO_VEC, X86_TUNE_INTER_UNIT_MOVES_FROM_VEC>:
18848 New, split from X86_TUNE_INTER_UNIT_MOVES.
18849 <X86_TUNE_INTER_UNIT_MOVES>: Remove.
18850 (TARGET_INTER_UNIT_MOVES_TO_VEC): New define.
18851 (TARGET_INTER_UNIT_MOVES_FROM_VEC): Ditto.
18852 (TARGET_INTER_UNIT_MOVES): Remove.
18853 * config/i386/i386.c (initial_ix86_tune_features): Update.
18854 Disable X86_TUNE_INTER_UNIT_MOVES_FROM_VEC for m_ATHLON_K8 only.
18855 (ix86_expand_convert_uns_didf_sse): Use
18856 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
18857 (ix86_expand_vector_init_one_nonzero): Ditto.
18858 (ix86_expand_vector_init_interleave): Ditto.
18859 (inline_secondary_memory_needed): Return true for moves from SSE class
18860 registers for !TARGET_INTER_UNIT_MOVES_FROM_VEC targets and for moves
18861 to SSE class registers for !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
18862 * config/i386/constraints.md (Yi, Ym): Depend on
18863 TARGET_INTER_UNIT_MOVES_TO_VEC.
18864 (Yj, Yn): New constraints.
18865 * config/i386/i386.md (*movdi_internal): Change constraints of
18866 operand 1 from Yi to Yj and from Ym to Yn.
18867 (*movsi_internal): Ditto.
18868 (*movdf_internal): Ditto.
18869 (*movsf_internal): Ditto.
18870 (*float<SWI48x:mode><X87MODEF:mode>2_1): Use
18871 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
18872 (*float<SWI48x:mode><X87MODEF:mode>2_1 splitters): Ditto.
18873 (floatdi<X87MODEF:mode>2_i387_with_xmm): Ditto.
18874 (floatdi<X87MODEF:mode>2_i387_with_xmm splitters): Ditto.
18875 * config/i386/sse.md (movdi_to_sse): Ditto.
18876 (sse2_stored): Change constraint of operand 1 from Yi to Yj.
18877 Use TARGET_INTER_UNIT_MOVES_FROM_VEC instead of
18878 TARGET_INTER_UNIT_MOVES.
18879 (sse_storeq_rex64): Change constraint of operand 1 from Yi to Yj.
18880 (sse_storeq_rex64 splitter): Use TARGET_INTER_UNIT_MOVES_FROM_VEC
18881 instead of TARGET_INTER_UNIT_MOVES.
18882 * config/i386/mmx.md (*mov<mode>_internal): Change constraint of
18883 operand 1 from Yi to Yj and from Ym to Yn.
18884
4c871069
JG
188852013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18886
18887 * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi_): New.
18888 (float_truncate_hi_): Likewise.
18889 (float_extend_lo_): Likewise.
18890 (float_truncate_lo_): Likewise.
18891 * config/aarch64/aarch64-simd.md (vec_unpacks_lo_v4sf): New.
18892 (aarch64_float_extend_lo_v2df): Likewise.
18893 (vec_unpacks_hi_v4sf): Likewise.
18894 (aarch64_float_truncate_lo_v2sf): Likewise.
18895 (aarch64_float_truncate_hi_v4sf): Likewise.
18896 (vec_pack_trunc_v2df): Likewise.
18897 (vec_pack_trunc_df): Likewise.
18898
1709ff9b
JG
188992013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18900
18901 * config/aarch64/aarch64-builtins.c
18902 (aarch64_fold_builtin): Fold float conversions.
18903 * config/aarch64/aarch64-simd-builtins.def
18904 (floatv2si, floatv4si, floatv2di): New.
18905 (floatunsv2si, floatunsv4si, floatunsv2di): Likewise.
18906 * config/aarch64/aarch64-simd.md
18907 (<optab><fcvt_target><VDQF:mode>2): New, expands to float and floatuns.
18908 * config/aarch64/iterators.md (FLOATUORS): New.
18909 (optab): Add float, floatuns.
18910 (su_optab): Likewise.
18911
ce966824
JG
189122013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18913
18914 * config/aarch64/aarch64-builtins.c
18915 (aarch64_builtin_vectorized_function): Use new names for
18916 fcvt builtins.
18917 * config/aarch64/aarch64-simd-builtins.def (fcvtzs): Split as...
18918 (lbtruncv2sf, lbtruncv4sf, lbtruncv2df): ...This.
18919 (fcvtzu): Split as...
18920 (lbtruncuv2sf, lbtruncuv4sf, lbtruncuv2df): ...This.
18921 (fcvtas): Split as...
18922 (lroundv2sf, lroundv4sf, lroundv2df, lroundsf, lrounddf): ...This.
18923 (fcvtau): Split as...
18924 (lrounduv2sf, lrounduv4sf, lrounduv2df, lroundusf, lroundudf): ...This.
18925 (fcvtps): Split as...
18926 (lceilv2sf, lceilv4sf, lceilv2df): ...This.
18927 (fcvtpu): Split as...
18928 (lceiluv2sf, lceiluv4sf, lceiluv2df, lceilusf, lceiludf): ...This.
18929 (fcvtms): Split as...
18930 (lfloorv2sf, lfloorv4sf, lfloorv2df): ...This.
18931 (fcvtmu): Split as...
18932 (lflooruv2sf, lflooruv4sf, lflooruv2df, lfloorusf, lfloorudf): ...This.
18933 (lfrintnv2sf, lfrintnv4sf, lfrintnv2df, lfrintnsf, lfrintndf): New.
18934 (lfrintnuv2sf, lfrintnuv4sf, lfrintnuv2df): Likewise.
18935 (lfrintnusf, lfrintnudf): Likewise.
18936 * config/aarch64/aarch64-simd.md
18937 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Convert to
18938 define_insn.
18939 (aarch64_fcvt<frint_suffix><su><mode>): Remove.
18940 * config/aarch64/iterators.md (FCVT): Include UNSPEC_FRINTN.
18941 (fcvt_pattern): Likewise.
18942
b9de24fe
JG
189432013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18944
18945 * config/aarch64/aarch64-simd.md
18946 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Rename to...
18947 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): ... This.
18948
77a205be
JG
189492013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18950
18951 * config/aarch64/arm_neon.h (vrndq<a,m,n,p>_f<32, 64>): Rename to...
18952 (vrnd<a,m,n,p>q_f<32, 64>): ...This, implement using builtin.
18953 (vrnd<a,m,n,p>_f32): Implement using builtins.
18954 (vrnd<i,x><q>_f<32, 64>): New.
18955
0659ce6f
JG
189562013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18957
18958 * config/aarch64/aarch64-builtins.c
18959 (aarch64_builtin_vectorized_function): Fold to standard pattern names.
18960 * config/aarch64/aarch64-simd-builtins.def (frintn): New.
18961 (frintz): Rename to...
18962 (btrunc): ...this.
18963 (frintp): Rename to...
18964 (ceil): ...this.
18965 (frintm): Rename to...
18966 (floor): ...this.
18967 (frinti): Rename to...
18968 (nearbyint): ...this.
18969 (frintx): Rename to...
18970 (rint): ...this.
18971 (frinta): Rename to...
18972 (round): ...this.
18973 * config/aarch64/aarch64-simd.md
18974 (aarch64_frint<frint_suffix><mode>): Delete.
18975 (<frint_pattern><mode>2): Convert to insn.
18976 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRINTN.
18977 * config/aarch64/iterators.md (FRINT): Add UNSPEC_FRINTN.
18978 (frint_pattern): Likewise.
18979 (frint_suffix): Likewise.
18980
ea78906a
RB
189812013-04-29 Richard Biener <rguenther@suse.de>
18982
18983 PR tree-optimization/57081
18984 * loop-init.c: Include tree-flow.h.
18985 (loop_optimizer_finalize): Free number of iteration estimates.
18986 * Makefile.in (loop-init.o): Add $(TREE_FLOW_H) dependency.
18987
baee1763
JJ
189882013-04-29 Jakub Jelinek <jakub@redhat.com>
18989
94dc5332
JJ
18990 PR tree-optimization/57083
18991 * tree-vrp.c (extract_range_from_binary_expr_1): For LSHIFT_EXPR with
18992 non-singleton shift count range, zero extend low_bound for uns case.
18993
baee1763
JJ
18994 * config/i386/predicates.md (general_vector_operand): New predicate.
18995 * config/i386/i386.c (const_vector_equal_evenodd_p): New function.
18996 (ix86_expand_mul_widen_evenodd): Force op1 resp. op2 into register
18997 if they aren't nonimmediate operands. If their original values
18998 satisfy const_vector_equal_evenodd_p, don't shift them.
18999 * config/i386/sse.md (mul<mode>3): Use general_vector_operand
19000 predicates. For the SSE4.1 case force operands[{1,2}] into registers
19001 if not nonimmediate_operand.
19002 (vec_widen_smult_even_v4si): Use nonimmediate_operand predicates
19003 instead of register_operand.
19004 (vec_widen_<s>mult_odd_<mode>): Use general_vector_operand predicates.
19005
a9073727 190062013-04-28 Eric Botcazou <ebotcazou@adacore.com>
22ad5e0a
EB
19007
19008 * stor-layout.c (finalize_size_functions): Allocate a structure and
19009 reset cfun before dumping the functions.
19010
ba8011e6
JJ
190112013-04-27 Jakub Jelinek <jakub@redhat.com>
19012
d6fde69e
JJ
19013 * config/i386/i386.c (ix86_expand_call): Make cregs_size unsigned.
19014
ba8011e6
JJ
19015 PR target/56866
19016 * config/i386/i386.c (ix86_expand_mul_widen_evenodd): Don't
19017 use xop_pmacsdqh if uns_p.
19018 * config/i386/sse.md (xop_rotr<mode>3): Fix up computation of
19019 the immediate rotate count.
19020
2c62cbaa
VM
190212013-04-26 Vladimir Makarov <vmakarov@redhat.com>
19022
19023 * rtl.h (struct rtx_def): Add comment for field jump.
19024 (LRA_SUBREG_P): New macro.
19025 * recog.c (register_operand): Check LRA_SUBREG_P.
19026 * lra.c (lra): Add note at the end of RTL code. Align non-empty
19027 stack frame.
19028 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
19029 (lra_final_code_change): Skip subreg change for operators.
19030 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
19031 if there are no operand changes.
19032 * lra-constraints.c (curr_insn_set): New.
19033 (match_reload): Set LRA_SUBREG_P.
19034 (emit_spill_move): Ditto.
19035 (check_and_process_move): Use curr_insn_set. Process only single
19036 set insns. Don't initialize sec_mem_p and change_p.
19037 (simplify_operand_subreg): Use LRA_SUBREG_P.
19038 (reg_in_class_p): New function.
19039 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
19040 of #ifdef. Add code to remove cycling.
19041 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
19042 non-null disp. Reload inner instead of disp when base and index
19043 are null. Try to put lo_sum into register.
19044 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
19045 (check_and_process_move): Move code for move cost check to
19046 simple_move_p. Remove equiv_substitution.
19047 (simple_move_p): New function.
19048 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
19049 curr_insn_set. Call check_and_process_move only for single set
19050 insns. Use the new function. Move call of check_and_process_move
19051 after operand equiv substitution and address process.
19052
e7d764f3
JJ
190532013-04-26 Jakub Jelinek <jakub@redhat.com>
19054
19055 PR go/57045
19056 * tree-ssa-uninit.c (compute_uninit_opnds_pos): In functions
19057 with nonlocal goto receivers or returns twice calls, ignore
19058 unininitialized values from abnormal edges to nl goto receiver
19059 or returns twice call.
19060
41e10689
JJ
190612013-04-26 Jakub Jelinek <jakub@redhat.com>
19062
19063 PR tree-optimization/57051
19064 * fold-const.c (const_binop): Handle VEC_LSHIFT_EXPR
19065 and VEC_RSHIFT_EXPR if shift count is a multiple of element
19066 bitsize.
19067
d7ed20db
RB
190682013-04-26 Richard Biener <rguenther@suse.de>
19069
19070 * omp-low.c (finalize_task_copyfn): Do not drop PROP_loops.
19071 (expand_omp_taskreg): Likewise. Mark loops for fixup.
19072 * tree-cfg.c (move_block_to_fn): Remap loop fathers.
19073 (fixup_loop_arrays_after_move): New function.
19074 (move_sese_region_to_fn): Properly outline the loop tree parts
19075 of the SESE region.
19076
df93505e
UB
190772013-04-26 Uros Bizjak <ubizjak@gmail.com>
19078
19079 * config/i386/i386.md (type, unit): Fix long lines.
19080
dd366ec3
RB
190812013-04-26 Richard Biener <rguenther@suse.de>
19082
19083 * Makefile.in (lto-streamer-in.o): Add $(CFGLOOP_H) dependency.
19084 (lto-streamer-out.o): Likewise.
19085 * cfgloop.c (init_loops_structure): Export, add struct function
19086 argument and adjust.
19087 (flow_loops_find): Adjust.
19088 * cfgloop.h (enum loop_estimation): Add EST_LAST.
19089 (init_loops_structure): Declare.
19090 * lto-streamer-in.c: Include cfgloop.h.
19091 (input_cfg): Input the loop tree.
19092 * lto-streamer-out.c: Include cfgloop.h.
19093 (output_cfg): Output the loop tree.
19094 (output_struct_function_base): Do not drop PROP_loops.
19095
a9e0d843
RB
190962013-03-26 Richard Biener <rguenther@suse.de>
19097
19098 * tree-cfg.c (execute_build_cfg): Build the loop tree.
19099 (pass_build_cfg): Provide PROP_loops.
19100 (move_sese_region_to_fn): Remove loops that are outlined into fn
19101 for now.
19102 * tree-inline.c: Include cfgloop.h.
19103 (initialize_cfun): Do not drop PROP_loops.
19104 (copy_loops): New function.
19105 (copy_cfg_body): Copy loop structure.
19106 (tree_function_versioning): Initialize destination loop tree.
19107 * tree-ssa-loop.c (pass_tree_loop_init): Do not provide PROP_loops.
19108 (pass_parallelize_loops): Do IL verification.
19109 * loop-init.c (loop_optimizer_init): Fixup loops if required.
19110 * tree-optimize.c (execute_fixup_cfg): If we need to cleanup
19111 the CFG make sure we fixup loops as well.
19112 * tree-ssa-tail-merge.c: Include cfgloop.h.
19113 (replace_block_by): When merging loop latches mark loops for fixup.
19114 * lto-streamer-out.c (output_struct_function_base): Drop
19115 PROP_loops for now.
19116 * tree-ssa-phiopt.c: Include tree-scalar-evolution.h.
19117 (tree_ssa_cs_elim): Initialize the loop optimizer and SCEV.
19118 * ipa-split.c: Include cfgloop.h.
19119 (split_function): Add the new return block to the loop tree root.
19120 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Return
19121 whether we have removed the forwarder block.
19122 (merge_phi_nodes): If we removed a forwarder mark loops for fixup.
19123 * cfgloop.h (place_new_loop): Declare.
19124 * cfgloopmanip.c (place_new_loop): Export.
19125 * Makefile.in (asan.o): Add $(CFGLOOP_H) dependency.
19126 (tree-switch-conversion.o): Likewise.
19127 (tree-complex.o): Likewise.
19128 (tree-inline.o): Likewise.
19129 (tree-ssa-tailmerge.o): Likewise.
19130 (ipa-split.o): Likewise.
19131 (tree-ssa-phiopt.o): Add $(SCEV_H) dependency.
19132 (tree-ssa-copy.o): Likewise.
19133 * tree-switch-conversion.c: Include cfgloop.h
19134 (process_switch): If we emit a bit-test cascade, schedule loops
19135 for fixup.
19136 * tree-complex.c: Include cfgloop.h.
19137 (expand_complex_div_wide): Properly add new basic-blocks to loops.
19138 * asan.c: Include cfgloop.h.
19139 (create_cond_insert_point): Properly add new basic-blocks to
19140 loops, schedule loop fixup.
19141 * cfgloop.c (verify_loop_structure): Check that looks are not
19142 marked for fixup.
19143 * omp-low.c (expand_parallel_call): Properly add new basic-blocks
19144 to loops.
19145 (expand_omp_for_generic): Likewise.
19146 (expand_omp_sections): Likewise.
19147 (expand_omp_atomic_pipeline): Schedule loops for fixup.
19148 * tree-ssa-copy.c: Include tree-scalar-evolution.h.
19149 (fini_copy_prop): Disable DCE in substitute_and_fold if SCEV
19150 is initialized, not when loops are present.
19151 * tree-parloops.c (parallelize_loops): Remove checking here.
19152 * passes.c (init_optimization_passes): Schedule a copy-propagation
19153 pass before complete unrolling of inner loops.
19154
e78e8a0b
JJ
191552013-04-26 Jakub Jelinek <jakub@redhat.com>
19156
a2e836b2
JJ
19157 * Makefile.in (toplev.o): Depend on diagnostic-color.h.
19158 * diagnostic-color.c (should_colorize): Remove _WIN32 version.
19159 (colorize_init): Add argument to _WIN32 version.
19160 * toplev.c: Include diagnostic-color.h.
19161 (process_options): Default to -fdiagnostics-color=auto if
19162 GCC_COLORS env var is in the environment.
19163 * common.opt (fdiagnostics-color=): Add Var and Init.
df93505e
UB
19164 * doc/invoke.texi (-fdiagnostics-color=): Document that if GCC_COLORS
19165 env var is in the environment, the default is auto rather than never.
a2e836b2 19166
e78e8a0b
JJ
19167 * diagnostic.h (file_name_as_prefix): Add context argument.
19168 * diagnostic.c (file_name_as_prefix): Likewise. Colorize
19169 the string as locus.
19170 * langhooks.c (lhd_print_error_function): Adjust caller.
19171
013e5ef9
LC
191722013-04-25 Lawrence Crowl <crowl@google.com>
19173
19174 * var-tracking.c (shared_hash_def::htab):
19175 Change type to hash_table. Update dependent calls and types.
19176
4a8fb1a1
LC
191772013-04-25 Lawrence Crowl <crowl@google.com>
19178
19179 * Makefile.in: Update as needed below.
19180
19181 * alloc-pool.c (static hash_table <alloc_pool_hasher> alloc_pool_hash):
19182 Move declaration to after the type's method definitons.
19183
19184 * attribs.c (htab_t scoped_attributes::attribute_hash):
19185 Change type to hash_table. Update dependent calls and types.
19186
19187 * bitmap.c (htab_t bitmap_desc_hash):
19188 Change type to hash_table. Update dependent calls and types.
19189
19190 * cselib.c (htab_t cselib_hash_table):
19191 Change type to hash_table. Update dependent calls and types.
19192
19193 * data-streamer.h (struct string_slot): Move to lto-streamer.h.
19194 (hash_string_slot_node): Move implementation into lto-streamer.h
19195 struct string_slot_hasher.
19196 (eq_string_slot_node): Likewise.
19197
19198 * data-streamer-out.c: Update output_block::string_hash_table
19199 dependent calls and types.
19200
19201 * dwarf2cfi.c (htab_t trace_index):
19202 Change type to hash_table. Update dependent calls and types.
19203
19204 * dwarf2out.c (htab_t break_out_includes::cu_hash_table):
19205 Change type to hash_table. Update dependent calls and types.
19206 (htab_t copy_decls_for_unworthy_types::decl_table): Likewise.
19207 (htab_t optimize_external_refs::map): Likewise.
19208 (htab_t output_comp_unit::extern_map): Likewise.
19209 (htab_t output_comdat_type_unit::extern_map): Likewise.
19210 (htab_t output_macinfo::macinfo_htab): Likewise.
19211 (htab_t optimize_location_lists::htab): Likewise.
19212 (htab_t dwarf2out_finish::comdat_type_table): Likewise.
19213
19214 * except.c (htab_t ehspec_hash_type):
19215 Change type to hash_table. Update dependent calls and types.
19216 (assign_filter_values::ttypes): Likewise.
19217 (assign_filter_values::ehspec): Likewise.
19218 (sjlj_assign_call_site_values::ar_hash): Likewise.
19219 (convert_to_eh_region_ranges::ar_hash): Likewise.
19220
19221 * gcse.c (htab_t pre_ldst_table):
19222 Change type to hash_table. Update dependent calls and types.
19223
19224 * ggc-common.c (htab_t saving_htab):
19225 Change type to hash_table. Update dependent calls and types.
19226 (htab_t loc_hash): Likewise.
19227 (htab_t ptr_hash): Likewise.
19228 (call_count): Rename ggc_call_count.
19229 (call_alloc): Rename ggc_call_alloc.
19230 (loc_descriptor): Rename make_loc_descriptor.
19231 (add_statistics): Rename ggc_add_statistics.
19232
19233 * ggc-common.c (saving_htab):
19234 Change type to hash_table. Update dependent calls and types.
19235
19236 * gimple.h (struct gimplify_ctx): Move to gimplify-ctx.h.
19237 (push_gimplify_context): Likewise.
19238 (pop_gimplify_context): Likewise.
19239 (struct gimple_temp_hash_elt): Added.
19240 (struct gimplify_hasher): Likewise.
19241 (struct gimplify_ctx.temp_htab):
19242 Change type to hash_table. Update dependent calls and types.
19243
19244 * gimple-fold.c: Include gimplify-ctx.h.
19245
19246 * gimple-ssa-strength-reduction.c (htab_t base_cand_map):
19247 Change type to hash_table. Update dependent calls and types.
19248 (base_cand_dump_callback): Rename to ssa_base_cand_dump_callback to
19249 avoid potential global name collision.
19250
19251 * gimplify.c: Include gimplify-ctx.h.
19252 (struct gimple_temp_hash_elt): Move to gimplify-ctx.h.
19253 (htab_t gimplify_ctx::temp_htab):
19254 Update dependent calls and types for new type hash_table.
19255 (gimple_tree_hash): Move into gimplify_hasher in gimplify-ctx.h.
19256 (gimple_tree_eq): Move into gimplify_hasher in gimplify-ctx.h.
19257
19258 * gimplify-ctx.h: New.
19259 (struct gimple_temp_hash_elt): Move from gimplify.c.
19260 (class gimplify_hasher): New.
19261 (struct gimplify_ctx): Move from gimple.h.
19262 (htab_t gimplify_ctx::temp_htab):
19263 Change type to hash_table. Update dependent calls and types.
19264
19265 * graphite-clast-to-gimple.c: Include graphite-htab.h.
19266 (htab_t ivs_params::newivs_index):
19267 Change type to hash_table. Update dependent calls and types.
19268 (htab_t ivs_params::params_index): Likewise.
19269 (htab_t print_generated_program::params_index): Likewise.
19270 (htab_t gloog::newivs_index): Likewise.
19271 (htab_t gloog::params_index): Likewise.
19272
19273 * graphite.c: Include graphite-htab.h.
19274 4htab_t graphite_transform_loops::bb_pbb_mapping):
19275 Change type to hash_table. Update dependent calls and types.
19276
19277 * graphite-clast-to-gimple.h: (extern gloog) Move to graphite-htab.h.
19278 (bb_pbb_map_hash): Fold into bb_pbb_htab_type in graphite-htab.h.
19279 (eq_bb_pbb_map): Fold into bb_pbb_htab_type in graphite-htab.h.
19280
19281 * graphite-dependences.c: Include graphite-htab.h.
19282 (loop_is_parallel_p): Change hash table type of parameter.
19283
19284 * graphite-htab.h: New.
19285 (typedef hash_table <bb_pbb_hasher> bb_pbb_htab_type): New.
19286 (extern find_pbb_via_hash): Move from graphite-poly.h.
19287 (extern loop_is_parallel_p): Move from graphite-poly.h.
19288 (extern get_loop_body_pbbs): Move from graphite-poly.h.
19289
19290 * graphite-poly.h (extern find_pbb_via_hash): Move to graphite-htab.h.
19291 (extern loop_is_parallel_p): Move to graphite-htab.h.
19292 (extern get_loop_body_pbbs): Move to graphite-htab.h.
19293
19294 * haifa-sched.c (htab_t delay_htab):
19295 Change type to hash_table. Update dependent calls and types.
19296 (htab_t delay_htab_i2): Likewise.
19297
19298 * ira-color.c (htab_t allocno_hard_regs_htab):
19299 Change type to hash_table. Update dependent calls and types.
19300
19301 * ira-costs.c (htab_t cost_classes_htab):
19302 Change type to hash_table. Update dependent calls and types.
19303
19304 * loop-invariant.c (htab_t merge_identical_invariants::eq):
19305 Change type to hash_table. Update dependent calls and types.
19306
19307 * loop-iv.c (htab_t bivs):
19308 Change type to hash_table. Update dependent calls and types.
19309
19310 * loop-unroll.c (htab_t opt_info::insns_to_split):
19311 Change type to hash_table. Update dependent calls and types.
19312 (htab_t opt_info::insns_with_var_to_expand): Likewise.
19313
19314 * lto-streamer.h (struct string_slot): Move from data-streamer.h
19315 (struct string_slot_hasher): New.
19316 (htab_t output_block::string_hash_table):
19317 Change type to hash_table. Update dependent calls and types.
19318
19319 * lto-streamer-in.c (freeing_string_slot_hasher): New.
19320 (htab_t file_name_hash_table):
19321 Change type to hash_table. Update dependent calls and types.
19322
19323 * lto-streamer-out.c: Update output_block::string_hash_table dependent
19324 calls and types.
19325
19326 * lto-streamer.c (htab_t tree_htab):
19327 Change type to hash_table. Update dependent calls and types.
19328
19329 * omp-low.c: Include gimplify-ctx.h.
19330
19331 * passes.c (htab_t name_to_pass_map):
19332 Change type to hash_table. Update dependent calls and types.
19333 (pass_traverse): Rename to passes_pass_traverse.
19334
19335 * plugin.c (htab_t event_tab):
19336 Change type to hash_table. Update dependent calls and types.
19337
19338 * postreload-gcse.c (htab_t expr_table):
19339 Change type to hash_table. Update dependent calls and types.
19340 (dump_hash_table_entry): Rename dump_expr_hash_table_entry.
19341
19342 * sese.c (debug_rename_map_1): Make extern.
19343 (htab_t copy_bb_and_scalar_dependences::rename_map):
19344 Change type to hash_table. Update dependent calls and types.
19345
19346 * sese.h (extern debug_rename_map): Move to .c file.
19347
19348 * store-motion.c (htab_t store_motion_mems_table):
19349 Change type to hash_table. Update dependent calls and types.
19350
19351 * trans-mem.c (htab_t tm_new_mem_hash):
19352 Change type to hash_table. Update dependent calls and types.
19353
19354 * tree-browser.c (htab_t TB_up_ht):
19355 Change type to hash_table. Update dependent calls and types.
19356
19357 * tree-cfg.c (htab_t discriminator_per_locus):
19358 Change type to hash_table. Update dependent calls and types.
19359
19360 * tree-complex.c: Include tree-hasher.h
19361 (htab_t complex_variable_components):
19362 Change type to hash_table. Update dependent calls and types.
19363
19364 * tree-eh.c (htab_t finally_tree):
19365 Change type to hash_table. Update dependent calls and types.
19366
19367 * tree-flow.h (extern int_tree_map_hash): Moved into tree-hasher
19368 struct int_tree_hasher.
19369 (extern int_tree_map_eq): Likewise.
19370 (uid_decl_map_hash): Removed.
19371 (extern decl_tree_map_eq): Likewise.
19372
19373 * tree-hasher.h: New.
19374 (struct int_tree_hasher): New.
19375 (typedef int_tree_htab_type): New.
19376
19377 * tree-inline.c: Include gimplify-ctx.h.
19378
19379 * tree-mudflap.c: Include gimplify-ctx.h.
19380
19381 * tree-parloops.c: Include tree-hasher.h.
19382 (htab_t eliminate_local_variables_stmt::decl_address):
19383 Change type to hash_table. Update dependent calls and types.
19384 (htab_t separate_decls_in_region::decl_copies): Likewise.
19385
19386 * tree-scalar-evolution.c (htab_t resolve_mixers::cache):
19387 Change type to hash_table. Update dependent calls and types.
19388
19389 * tree-sra.c (candidates):
19390 Change type to hash_table. Update dependent calls and types.
19391
19392 * tree-ssa.c (int_tree_map_eq): Moved into struct int_tree_hasher
19393 in tree-flow.h.
19394 (int_tree_map_hash): Likewise.
19395
19396 * tree-ssa-dom.c (htab_t avail_exprs):
19397 Change type to hash_table. Update dependent calls and types.
19398
19399 * tree-ssa-live.c (var_map_base_init::tree_to_index):
19400 Change type to hash_table. Update dependent calls and types.
19401
19402 * tree-ssa-loop-ivopts.c (struct ivopts_data.inv_expr_tab):
19403 Change type to hash_table. Update dependent calls and types.
19404
19405 * tree-ssa-phiopt.c (seen_ssa_names):
19406 Change type to hash_table. Update dependent calls and types.
19407
19408 * tree-ssa-strlen.c (decl_to_stridxlist_htab):
19409 Change type to hash_table. Update dependent calls and types.
19410
19411 * tree-ssa-uncprop.c (equiv):
19412 Change type to hash_table. Update dependent calls and types.
19413
c5a44004
JJ
194142013-04-25 Jakub Jelinek <jakub@redhat.com>
19415
19416 PR rtl-optimization/57003
19417 * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
19418 call note_stores with kill_clobbered_value callback again after
19419 killing regs_invalidated_by_call.
19420
09962a4a
JG
194212013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
19422
19423 * config/aarch64/aarch64-simd.md
19424 (aarch64_simd_bsl<mode>_internal): Rewrite RTL to not use UNSPEC_BSL.
19425 (aarch64_simd_bsl<mode>): Likewise.
19426 * config/aarch64/iterators.md (unspec): Remove UNSPEC_BSL.
19427
ea28bb0b
MP
194282013-04-25 Marek Polacek <polacek@redhat.com>
19429
19430 PR tree-optimization/57066
3c21604f 19431 * builtins.c (fold_builtin_logb): Return +Inf for -Inf.
ea28bb0b 19432
96659611
JG
194332013-04-25 James Greenhalgh <jame.greenhalgh@arm.com>
19434
19435 * config/aarch64/aarch64-simd.md (neg<mode>2): Use VDQ iterator.
19436
9697e620
JG
194372013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
19438
19439 * config/aarch64/aarch64-builtins.c
19440 (aarch64_fold_builtin): New.
19441 * config/aarch64/aarch64-protos.h (aarch64_fold_builtin): New.
19442 * config/aarch64/aarch64.c (TARGET_FOLD_BUILTIN): Define.
19443 * config/aarch64/aarch64-simd-builtins.def (abs): New.
19444 * config/aarch64/arm_neon.h
19445 (vabs<q>_<f32, 64>): Implement using __builtin_aarch64_fabs.
19446
0ac198d3
JG
194472013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
19448 Tejas Belagod <tejas.belagod@arm.com>
19449
19450 * config/aarch64/aarch64-builtins.c
19451 (aarch64_gimple_fold_builtin): New.
19452 * config/aarch64/aarch64-protos.h (aarch64_gimple_fold_builtin): New.
19453 * config/aarch64/aarch64-simd-builtins.def (addv): New.
19454 * config/aarch64/aarch64-simd.md (addpv4sf): New.
19455 (addvv4sf): Update.
19456 * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define.
19457
58cff58c
N
194582013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
19459
df93505e 19460 * config/aarch64/aarch64.md
58cff58c
N
19461 (*cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): New pattern.
19462
7e0228bf
N
194632013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
19464
19465 * config/aarch64/aarch64.md (*ngc<mode>): New pattern.
19466 (*ngcsi_uxtw): New pattern.
19467
5819f96f 194682013-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3c21604f 19469 Julian Brown <julian@codesourcery.com>
5819f96f
KT
19470
19471 * config/arm/arm.c (neon_builtin_type_mode): Add T_V4HF.
19472 (TB_DREG): Add T_V4HF.
19473 (v4hf_UP): New macro.
19474 (neon_itype): Add NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
df93505e 19475 (arm_init_neon_builtins): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
5819f96f
KT
19476 Handle initialisation of V4HF. Adjust initialisation of reinterpret
19477 built-ins.
df93505e 19478 (arm_expand_neon_builtin): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
5819f96f
KT
19479 (arm_vector_mode_supported_p): Handle V4HF.
19480 (arm_mangle_map): Handle V4HFmode.
19481 * config/arm/arm.h (VALID_NEON_DREG_MODE): Add V4HF.
19482 * config/arm/arm_neon_builtins.def: Add entries for
19483 vcvtv4hfv4sf, vcvtv4sfv4hf.
19484 * config/arm/neon.md (neon_vcvtv4sfv4hf): New pattern.
19485 (neon_vcvtv4hfv4sf): Likewise.
19486 * config/arm/neon-gen.ml: Handle half-precision floating point
19487 features.
19488 * config/arm/neon-testgen.ml: Handle Requires_FP_bit feature.
19489 * config/arm/arm_neon.h: Regenerate.
19490 * config/arm/neon.ml (type elts): Add F16.
19491 (type vectype): Add T_float16x4, T_floatHF.
19492 (type vecmode): Add V4HF.
19493 (type features): Add Requires_FP_bit feature.
19494 (elt_width): Handle F16.
19495 (elt_class): Likewise.
19496 (elt_of_class_width): Likewise.
19497 (mode_of_elt): Refactor.
19498 (type_for_elt): Handle F16, fix error messages.
19499 (vectype_size): Handle T_float16x4.
19500 (vcvt_sh): New function.
19501 (ops): Add entries for vcvt_f16_f32, vcvt_f32_f16.
19502 (string_of_vectype): Handle T_floatHF, T_float16, T_float16x4.
19503 (string_of_mode): Handle V4HF.
19504 * doc/arm-neon-intrinsics.texi: Regenerate.
19505
1ef395e4
JG
195062013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
19507
19508 * config/aarch64/aarch64.c (aarch64_print_operand): Fix asm_fprintf
19509 format specifier in 'X' case.
19510
41c34e94
AM
195112013-04-25 Alan Modra <amodra@gmail.com>
19512
19513 PR target/57052
19514 * config/rs6000/rs6000.md (rotlsi3_internal7): Rename to
19515 rotlsi3_internal7le and condition on !BYTES_BIG_ENDIAN.
19516 (rotlsi3_internal8be): New BYTES_BIG_ENDIAN insn.
19517 Repeat for many other rotate/shift and mask patterns using subregs.
19518 Name lshiftrt insns.
19519 (ashrdisi3_noppc64): Rename to ashrdisi3_noppc64be and condition
19520 on WORDS_BIG_ENDIAN.
19521
b9a7eb5d
AM
195222013-04-25 Alan Modra <amodra@gmail.com>
19523
19524 * config.gcc: Support little-endian powerpc-linux targets.
19525 * config/rs6000/linux.h (LINK_OS_LINUX_EMUL): Define.
19526 (LINK_OS_LINUX_SPEC): Define.
19527 * config/rs6000/linuxspe.h (TARGET_DEFAULT):
19528 Preserve MASK_LITTLE_ENDIAN.
19529 * config/rs6000/default64.h (TARGET_DEFAULT): Likewise.
19530 * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Likewise.
19531 * config/rs6000/linux64.h (OPTION_LITTLE_ENDIAN): Don't zero.
19532 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Define.
19533 (LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Use above.
19534 * config/rs6000/rs6000.c (output_toc): Don't use .tc for TARGET_ELF.
19535 Correct fp word order for little-endian. Don't shift toc entries
19536 smaller than a word for little-endian.
19537 * config/rs6000/rs6000.md (bswaphi2, bswapsi2 split): Comment.
19538 (bswapdi2 splits): Correct low-part subreg for little-endian.
19539 Remove wrong BYTES_BIG_ENDIAN tests, and rename vars to remove
19540 low/high where such is correct only for be.
19541 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Allow
19542 little-endian for -mcall-aixdesc.
19543
87f73374
AM
195442013-04-25 Alan Modra <amodra@gmail.com>
19545
19546 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
19547 replace_equiv_address_nv.
19548
cabf91cd
AM
195492013-04-25 Alan Modra <amodra@gmail.com>
19550
19551 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Tidy.
19552
0ae24cc8
VM
195532013-04-24 Vladimir Makarov <vmakarov@redhat.com>
19554
19555 Revert:
19556 2013-04-24 Vladimir Makarov <vmakarov@redhat.com>
19557 * rtl.h (struct rtx_def): ...
cabf91cd 19558
77bce07c
VM
195592013-04-24 Vladimir Makarov <vmakarov@redhat.com>
19560
19561 PR rtl-optimizations/57046
19562 * lra-constraints (split_reg): Set up lra_risky_transformations_p
19563 for multi-reg splits.
19564
0db63e7f
L
195652013-04-24 H.J. Lu <hongjiu.lu@intel.com>
19566
19567 * config/i386/x86-64.h (ASM_SPEC): Support -mx32.
19568
3362b6b6
SA
195692013-04-24 Sterling Augustine <saugustine@google.com>
19570
19571 * dwarf2out.c (skeleton_debug_str_hash, add_skeleton_AT_string)
19572 (comp_dir_string, debug_str_dwo_section): New.
19573 (DEBUG_STR_DWO_SECTION): Rename to ...
19574 (DEBUG_DWO_STR_SECTION): ... this.
19575 (DEBUG_NORM_STR_SECTION): Delete.
19576 (DEBUG_STR_SECTION, DEBUG_STR_SECTION_FLAGS): Edit definitions.
19577 (DEBUG_STR_DWO_SECTION_FLAGS): New.
19578 (find_AT_string): Move most logic to ...
19579 (find_AT_string_in_table): ... here. New.
19580 (add_top_level_skeleton_die_attrs): Call comp_dir_string and
19581 add_skeleton_AT_string. Delete logic.
19582 (output_skeleton_debug_sections): Remove call to
19583 add_top_level_skeleton_die_attrs.
19584 (add_comp_dir_attribute): Move logic to comp_dir_string.
19585 (dwarf2out_init): Initialize debug_str_dwo_section.
19586 (output_indirect_string): Call find_string_form.
19587 (output_indirect_strings): Rewrite.
19588 (prune_unused_types): Empty skeleton_debug_str_hash.
19589 Call get_skeleton_type_unit and add_top_level_skeleton_die_attrs.
19590 (dwarf2out_finish): Call output_indirect_strings.
19591
e93e18e9
PC
195922013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
19593
19594 * doc/cpp.texi: Remove __GXX_EXPERIMENTAL_CXX1Y__.
19595
f6ce35ac
VM
195962013-04-24 Vladimir Makarov <vmakarov@redhat.com>
19597
cabf91cd 19598 * rtl.h (struct rtx_def): Add comment for field jump.
f6ce35ac
VM
19599 (LRA_SUBREG_P): New macro.
19600 * recog.c (register_operand): Check LRA_SUBREG_P.
19601 * lra.c (lra): Add note at the end of RTL code. Align non-empty
19602 stack frame.
19603 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
19604 (lra_final_code_change): Skip subreg change for operators.
19605 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
19606 if there are no operand changes.
19607 * lra-constraints.c (curr_insn_set): New.
19608 (match_reload): Set LRA_SUBREG_P.
19609 (emit_spill_move): Ditto.
19610 (check_and_process_move): Use curr_insn_set. Process only single
19611 set insns. Don't initialize sec_mem_p and change_p.
19612 (simplify_operand_subreg): Use LRA_SUBREG_P.
19613 (reg_in_class_p): New function.
19614 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
19615 of #ifdef. Add code to remove cycling.
19616 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
19617 non-null disp. Reload inner instead of disp when base and index
19618 are null. Try to put lo_sum into register.
19619 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
cabf91cd 19620 (check_and_process_move): Move code for move cost check to
f6ce35ac 19621 simple_move_p. Remove equiv_substitution.
cabf91cd 19622 (simple_move_p): New function.
f6ce35ac
VM
19623 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
19624 curr_insn_set. Call check_and_process_move only for single set
19625 insns. Use the new function. Move call of check_and_process_move
19626 after operand equiv substitution and address process.
19627
38047d90
JG
196282013-04-24 James Greenhalgh <james.greenhalgh@arm.com>
19629
19630 * config/aarch64/arm_neon.h (vld1<q>_lane*): Fix constraints.
19631 (vld1<q>_dup_<sufp><8, 16, 32, 64>): Likewise.
19632 (vld1<q>_<sufp><8, 16, 32, 64>): Likewise.
19633
13f39b2e
PC
196342013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
19635
19636 * doc/cpp.texi: Document __GXX_EXPERIMENTAL_CXX1Y__.
19637
97c116dc
MP
196382013-04-24 Marek Polacek <polacek@redhat.com>
19639
19640 * tree-scalar-evolution.h (analyze_scalar_evolution): Remove.
19641 * tree-scalar-evolution.c (get_exit_conditions_rec): Likewise.
19642 (select_loops_exit_conditions): Likewise.
19643 (number_of_iterations_for_all_loops): Likewise.
19644 (analyze_scalar_evolution_for_all_loop_phi_nodes): Likewise.
19645 (scev_analysis): Likewise.
19646
83082391 196472013-04-02 Catherine Moore <clm@codesourcery.com>
12211b99 19648 Chao-ying Fu <fu@mips.com>
83082391 19649
cabf91cd
AM
19650 * config/mips/micromips.md (jraddiusp): New pattern.
19651 * config/mips/mips.c (mips_expand_epilogue): Use the JRADDIUSP
19652 instruction if possible.
83082391 19653
19e34aa2
AM
196542013-04-24 Alan Modra <amodra@gmail.com>
19655
19656 * config/rs6000/driver-rs6000.c (elf_dcachebsize): Fix comment pasto.
19657
fdb6603c
JB
196582013-04-24 Julian Brown <julian@codesourcery.com>
19659 Chung-Lin Tang <cltang@codesourcery.com>
19660
19661 * dwarf2out.c (gen_enumeration_type_die): Fix HOST_BITS_PER_WIDE_INT
df93505e
UB
19662 dependency behavior in enumeration type DIE generation. Add TODO note
19663 to comments about future DW_FORM_sdata/udata re-work of related code.
fdb6603c 19664
bf190e8d
LC
196652013-04-23 Lawrence Crowl <crowl@google.com>
19666
19667 * Makefile.in: Update as needed below.
19668
19669 * hash-table.h (class hash_table):
19670 Correct many methods with parameter types compare_type to the correct
19671 value_type. (Correct code was unlikely to notice the change.)
19672 (hash_table::elements_with_deleted) New.
19673 (class hashtable::iterator): New.
19674 (hashtable::begin()): New.
19675 (hashtable::end()): New.
19676 (FOR_EACH_HASH_TABLE_ELEMENT): New.
19677
19678 * statistics.c (statistics_hashes):
19679 Change type to hash_table. Update dependent calls and types.
19680
19681 * tree-into-ssa.c (var_infos):
19682 Change type to hash_table. Update dependent calls and types.
19683
19684 * tree-ssa-coalesce.c (struct coalesce_list_d.list):
19685 Change type to hash_table. Update dependent calls and types.
19686
19687 * tree-ssa-loop-im.c (struct mem_ref.refs):
19688 Change type to hash_table. Update dependent calls and types.
19689
19690 * tree-ssa-reassoc.c (undistribute_ops_list::ctable):
19691 Change type to hash_table. Update dependent calls and types.
19692
19693 * tree-ssa-sccvn.c (vn_tables_s::nary):
19694 Change type to hash_table. Update dependent calls and types.
19695 (vn_tables_s::phis): Likewise.
19696 (vn_tables_s::references): Likewise.
19697
19698 * tree-ssa-sccvn.h (vn_nary_op_eq): Update parameter and return types.
19699 (vn_reference_eq): Update parameter and return types.
19700
19701 * tree-ssa-structalias.c (pointer_equiv_class_table):
19702 Change type to hash_table. Update dependent calls and types.
19703 (location_equiv_class_table): Likewise.
19704
19705 * tree-vect-data-refs.c: Consequential changes for making
19706 peeling a hash_table.
19707
19708 * tree-vect-loop.c (new_loop_vec_info): Dependent hash_table update.
19709 (destroy_loop_vec_info): Dependent hash_table update.
19710
19711 * tree-vectorizer.h (peeling_htab):
19712 Change type to hash_table. Update dependent calls and types.
19713
d70a81dd
SC
197142013-04-23 Shiva Chen <shiva0217@gmail.com>
19715
cabf91cd
AM
19716 * lra-assigns.c (find_hard_regno_for): Use lra_reg_val_equal_p
19717 to check the register content is equal or not.
19718 * lra-constraints.c (match_reload): Use lra_assign_reg_val
19719 to assign register content record.
19720 * lra-eliminations.c (update_reg_eliminate): Use
d70a81dd 19721 lra_update_reg_val_offset to update register content offset.
cabf91cd
AM
19722 * lra-int.h (struct lra_reg): Add offset member.
19723 (lra_reg_val_equal_p): New static inline function.
19724 (lra_update_reg_val_offset): New static inline function.
19725 (lra_assign_reg_val): New static inline function.
19726 * lra.c (lra_create_new_reg): Use lra_assign_reg_val
19727 to assign register content record.
19728 (initialize_lra_reg_info_element): Initial offset to zero.
d70a81dd 19729
b894a1f3
CM
197302013-04-23 Catherine Moore <clm@codesourcery.com>
19731
19732 * config/mips/mips.md (*movhi_internal, *movqi_internal): New
19733 operands. Record compression.
19734
ecd14de9
XDL
197352013-04-23 Xinliang David Li <davidxl@google.com>
19736
19737 * cfghhooks.c (dump_bb_for_graph): Support 'slim' graph dump.
19738
92e776e9
RB
197392013-04-23 Richard Biener <rguenther@suse.de>
19740
19741 PR middle-end/57036
19742 * tree-inline.c (copy_edges_for_bb): Add can_make_abnormal_goto
19743 parameter, only add abnormal goto edges from the copied body
19744 if the call could perform abnormal gotos.
19745 (copy_cfg_body): Adjust.
19746
a15ee567
SN
197472013-04-23 Sofiane Naci <sofiane.naci@arm.com>
19748
19749 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add simd attribute.
19750
08c52234
AS
197512013-04-23 Andreas Schwab <schwab@linux-m68k.org>
19752
19753 * coretypes.h (gimple_stmt_iterator): Add struct to make
19754 compatible with C.
19755
999c1171
RB
197562013-04-23 Richard Biener <rguenther@suse.de>
19757
19758 PR tree-optimization/57026
19759 * tree-vrp.c (simplify_conversion_using_ranges): Do not propagate
19760 from SSA names occuring in abnormal PHI nodes.
19761
53669259
AK
197622013-04-22 Andi Kleen <ak@linux.intel.com>
19763
19764 * lto/lto.c (print_lto_report_1): Fix LTO report names.
19765
1a0ad150
AK
197662013-04-22 Andi Kleen <ak@linux.intel.com>
19767
19768 * lto/lto.c (print_lto_report_1): Declare early.
19769 (read_cgraph_and_symbols): Call print_lto_report_1 early.
19770
057f8f20
AK
197712013-04-22 Andi Kleen <ak@linux.intel.com>
19772
19773 * common.opt (-flto-report-wpa): Add.
19774 * doc/invoke.texi (-flto-report-wpa): Add.
19775 * lto/lto.c (do_whole_program_analysis): Check for lto-report-wpa.
19776 (lto_main): dito.
19777
473b1e05
XDL
197782013-04-22 Xinliang David Li <davidxl@google.com>
19779
19780 * graph.c (draw_cfg_node_succ_edges): Add branch probility as label.
19781 * cfghhooks.c (dump_bb_for_graph): Dump profile count and frquency.
19782 * Makefile.in: New dependency
19783
cabf91cd 19784 David Daney <ddaney.cavm@gmail.com>
b1485a33 19785
cabf91cd
AM
19786 * configure.ac (gcc_cv_as_micromips_support): Use the
19787 --fatal-warnings option.
19788 * configure: Regenerate.
b1485a33 19789
829d0168
MP
197902013-04-22 Marek Polacek <polacek@redhat.com>
19791
19792 PR sanitizer/56990
19793 * tsan.c (instrument_expr): Don't instrument expression
19794 in case its size is zero.
19795
6d9b7208
UB
197962013-04-22 Uros Bizjak <ubizjak@gmail.com>
19797
19798 PR target/57032
19799 Revert:
19800 2013-03-17 Uros Bizjak <ubizjak@gmail.com>
19801
19802 * config/alpha/alpha.c (TARGET_LRA_P): New define.
19803
ea679d55
JG
198042013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
19805
19806 * coretypes.h (gimple_stmt_iterator_d): Forward declare.
19807 (gimple_stmt_iterator): New typedef.
19808 * gimple.h (gimple_stmt_iterator): Rename to...
19809 (gimple_stmt_iterator_d): ... This.
19810 * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Detail restriction that
19811 trees be valid for GIMPLE and GENERIC.
19812 (TARGET_GIMPLE_FOLD_BUILTIN): New.
19813 * gimple-fold.c (gimple_fold_call): Call target hook
19814 gimple_fold_builtin.
19815 * hooks.c (hook_bool_gsiptr_false): New.
19816 * hooks.h (hook_bool_gsiptr_false): New.
19817 * target.def (fold_stmt): New.
19818 * doc/tm.texi: Regenerate.
19819
88a581da
VM
198202013-04-22 Vladimir Makarov <vmakarov@redhat.com>
19821
19822 PR target/57018
19823 * lra-eliminations.c (mark_not_eliminable): Prevent elimination of
19824 a set sp if no stack realignment.
19825
92be22dc
NC
198262013-04-22 Nick Clifton <nickc@redhat.com>
19827
19828 * config.gcc (tilegx-linux): Extend extra_objs rather than
19829 overwriting it.
19830 (tilepro-linux): Likewise.
19831
0ddec79f
JG
198322013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
19833
19834 * config/aarch64/aarch64-builtins.c
19835 (CF): Remove.
19836 (CF0, CF1, CF2, CF3, CF4, CF10): New.
19837 (VAR<1-12>): Add MAP parameter.
19838 (BUILTIN_*): Likewise.
19839 * config/aarch64/aarch64-simd-builtins.def: Set MAP parameter.
19840 * config/aarch64/aarch64-simd.md (aarch64_sshl_n<mode>): Remove.
19841 (aarch64_ushl_n<mode>): Likewise.
19842 (aarch64_sshr_n<mode>): Likewise.
19843 (aarch64_ushr_n<mode>): Likewise.
19844 (aarch64_<maxmin><mode>): Likewise.
19845 (aarch64_sqrt<mode>): Likewise.
19846 * config/aarch64/arm_neon.h (vshl<q>_n_*): Use new builtin names.
19847 (vshr<q>_n_*): Likewise.
19848
0050faf8
JG
198492013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
19850
19851 * config/aarch64/aarch64-builtins.c
19852 (aarch64_simd_builtin_type_mode): Handle SF types.
19853 (sf_UP): Define.
19854 (BUILTIN_GPF): Define.
19855 (aarch64_init_simd_builtins): Handle SF types.
19856 * config/aarch64/aarch64-simd-builtins.def (frecpe): Add support.
19857 (frecps): Likewise.
19858 (frecpx): Likewise.
19859 * config/aarch64/aarch64-simd.md
19860 (simd_types): Update simd_frcp<esx> to simd_frecp<esx>.
19861 (aarch64_frecpe<mode>): New.
19862 (aarch64_frecps<mode>): Likewise.
19863 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRECP<ESX>.
19864 (v8type): Add frecp<esx>.
19865 (aarch64_frecp<FRECP:frecp_suffix><mode>): New.
19866 (aarch64_frecps<mode>): Likewise.
19867 * config/aarch64/iterators.md (FRECP): New.
19868 (frecp_suffix): Likewise.
19869 * config/aarch64/arm_neon.h
19870 (vrecp<esx><qsd>_<fd><32, 64>): Convert to using builtins.
19871
0fad3dbc 198722013-04-22 Christian Bruel <christian.bruel@st.com>
1818d01c
CB
19873
19874 PR target/56995
19875 * config/sh/sh.h (enum reg_class): Remove DF_HI_REGS.
19876 (REG_CLASS_NAMES): Idem.
19877 (REG_CLASS_CONTENTS): Idem.
19878 (REGCLASS_HAS_FP_REG): Idem.
19879 * config/sh/sh.c (sh_cannot_change_mode_class): Idem.
19880 (sh_conditional_register_usage): Idem.
19881
3e8a33f9
JL
198822013-04-21 Jeff Law <law@redhat.com>
19883
19884 * tree-ssa-forwprop.c (simplify_conversion_from_bitmask): New function.
19885 (ssa_forward_propagate_and_combine): Use it.
19886
f38e1b0a
VM
198872013-04-19 Vladimir Makarov <vmakarov@redhat.com>
19888
19889 * lra.c: Update the flow chart diagram.
19890
682303da
VM
198912013-04-19 Vladimir Makarov <vmakarov@redhat.com>
19892
19893 PR rtl-optimization/56847
19894 * lra-constraints.c (process_alt_operands): Discourage alternative
19895 with non-matche doffsettable memory constraint fro memory with
19896 known offset.
19897
f6b64c35
RB
198982013-04-19 Richard Biener <rguenther@suse.de>
19899
19900 PR tree-optimization/56982
19901 * builtins.def (BUILT_IN_LONGJMP): longjmp is not a leaf
19902 function.
19903 * gimplify.c (gimplify_call_expr): Notice special calls.
19904 (gimplify_modify_expr): Likewise.
19905 * tree-cfg.c (make_abnormal_goto_edges): Handle setjmp-like
19906 abnormal control flow receivers.
19907 (call_can_make_abnormal_goto): Handle cfun->calls_setjmp
19908 in the same way as cfun->has_nonlocal_labels.
19909 (gimple_purge_dead_abnormal_call_edges): Likewise.
19910 (stmt_starts_bb_p): Make setjmp-like abnormal control flow
19911 receivers start a basic-block.
19912
01d8bf07
RB
199132013-04-19 Richard Biener <rguenther@suse.de>
19914
19915 * tree-vectorizer.h (struct _slp_instance): Move load_permutation
19916 member ...
19917 (struct _slp_tree): ... here. Make it a vector of unsigned ints.
19918 (SLP_INSTANCE_LOAD_PERMUTATION): Remove.
19919 (SLP_TREE_LOAD_PERMUTATION): Add.
19920 (vect_transform_slp_perm_load): Adjust prototype.
19921 * tree-vect-slp.c (vect_free_slp_tree): Adjust.
19922 (vect_free_slp_instance): Likewise.
19923 (vect_create_new_slp_node): Likewise.
19924 (vect_supported_slp_permutation_p): Remove.
19925 (vect_slp_rearrange_stmts): Adjust.
19926 (vect_supported_load_permutation_p): Likewise. Inline
19927 vect_supported_slp_permutation_p here.
19928 (vect_analyze_slp_instance): Compute load permutations per
19929 slp node instead of per instance.
19930 (vect_get_slp_defs): Adjust.
19931 (vect_transform_slp_perm_load): Likewise.
19932 (vect_schedule_slp_instance): Remove redundant code.
19933 (vect_schedule_slp): Remove hack for PR56270, add it ...
19934 * tree-vect-stmts.c (vectorizable_load): ... here, do not
19935 CSE loads for SLP. Adjust.
19936
ede22fc3
GY
199372013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
19938
19939 * config/arm/arm.c (load_multiple_sequence, ldm_stm_operation_p): Fix
19940 spelling in two comments.
19941
67bc84fb
GY
199422013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
19943
19944 PR target/56797
19945 * config/arm/arm.c (load_multiple_sequence): Require SP
19946 as base register for loads if SP is in the register list.
19947
e248d83f
MJ
199482013-04-19 Martin Jambor <mjambor@suse.cz>
19949
19950 PR tree-optimization/56718
19951 * ipa-cp.c (ipa_value_from_known_type_jfunc): Moved...
19952 * ipa-prop.c (ipa_binfo_from_known_type_jfunc): ...here, renamed
19953 and made public. Adjusted all callers.
19954 (ipa_intraprocedural_devirtualization): New function.
19955 * ipa-prop.h (ipa_binfo_from_known_type_jfunc): Declare.
19956 (ipa_intraprocedural_devirtualization): Likewise.
19957 * Makefile.in (tree-ssa-pre.o): Add ipa-prop.h to dependencies.
19958
4891e8f8
RB
199592013-04-19 Richard Biener <rguenther@suse.de>
19960
19961 PR tree-optimization/57000
19962 * tree-ssa-reassoc.c (pass_reassoc): Add TODO_update_ssa_only_virtuals.
19963
dad89f7c
TG
199642013-04-19 Terry Guo <terry.guo@arm.com>
19965
19966 * config/arm/cortex-m4-fpu.md (cortex_m4_v): Delete cpu unit.
19967 Replace with ...
19968 (cortex_m4_v_a, cortex_m4_v_b): ... new cpu units.
19969 (cortex_m4_v, cortex_m4_exa_va, cortex_m4_exb_vb): New reservations.
19970 (cortex_m4_fmacs): Use new reservations.
19971 (cortex_m4_f_load, cortex_m4_f_store): Likewise.
19972
72ea0d47
VM
199732013-04-18 Vladimir Makarov <vmakarov@redhat.com>
19974
f1e6512c 19975 PR rtl-optimization/56999
72ea0d47
VM
19976 * lra-coalesce.c (coalescable_pseudo_p): Remove 2nd parameter and
19977 related code.
19978 (lra_coalesce): Remove split_origin_bitmap and related code.
19979 * lra.c (lra): Coalesce after undoing inheritance. Recreate live
19980 ranges if necessary.
19981
780a5b71
UB
199822013-04-18 Uros Bizjak <ubizjak@gmail.com>
19983
19984 * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers):
19985 New array.
19986 (ix86_expand_call): Remove clobbered_registers array and use
19987 x86_64_ms_sysv_extra_clobbered_registers instead.
19988 * config/i386/i386.h (x86_64_ms_sysv_extra_clobbered_registers):
19989 Declare here.
19990 * config/i386/predicates.md (call_rex64_ms_sysv_operation): New
19991 predicate.
19992 * config/i386/i386.md (*call_rex64_ms_sysv): Use
19993 call_rex64_ms_sysv_operation predicate. Remove explicit clobbers.
19994 (*call_value_rex64_ms_sysv): Ditto.
19995
6f5a366a
CC
199962013-04-18 Cary Coutant <ccoutant@google.com>
19997
19998 * dwarf2out.c (output_pubnames): Check die_perennial_p of
19999 parent instead of die_mark.
20000
475b8f37
DN
200012013-04-18 Diego Novillo <dnovillo@google.com>
20002
20003 * gimple.c (create_gimple_tmp): New.
20004 (get_expr_type): New.
20005 (build_assign): New.
20006 (build_type_cast): New.
20007 * gimple.h (enum ssa_mode): Define.
20008 (gimple_seq_set_location): New.
20009 * asan.c (build_check_stmt): Change some gimple_build_* calls
780a5b71 20010 to use build_assign and build_type_cast.
475b8f37 20011
08940f33
RB
200122013-04-18 Richard Biener <rguenther@suse.de>
20013
20014 * tree-vect-data-refs.c (vect_analyze_group_access): Properly
20015 handle negative step. Remove redundant checks.
20016 (vect_create_data_ref_ptr): Avoid ICEs with non-constant steps.
20017 * tree-vect-stmts.c (vectorizable_load): Instead of asserting
20018 for negative step and grouped loads fail to vectorize.
20019
0e0f87d4
SB
200202013-04-18 Steven Bosscher <steven@gcc.gnu.org>
20021
20022 * emit-rtl.c (reset_insn_used_flags): New function.
20023 (reset_all_used_flags): Use it.
20024 (verify_insn_sharing): New function.
20025 (verify_rtl_sharing): Fix verification for SEQUENCEs.
20026
4c445590
JJ
200272013-04-18 Jakub Jelinek <jakub@redhat.com>
20028
20029 PR tree-optimization/56984
20030 * tree-vrp.c (register_edge_assert_for_2): For (x >> M) < N
20031 and (x >> M) >= N don't register any assertion if N << M is the
20032 minimum value.
20033
6873ecab
SB
200342013-04-18 Steven Bosscher <steven@gcc.gnu.org>
20035
20036 * lower-subreg.c (resolve_simple_move): If called self-recursive,
20037 do not delete_insn insns that have not yet been emitted, only
20038 unlink them with remove_insn.
20039 * df-scan.c (df_insn_delete): Revert r197492.
20040
3ccb989e
SB
200412013-04-17 Steven Bosscher <steven@gcc.gnu.org>
20042
20043 * emit-rtl.c (link_insn_into_chain): Handle chaining of SEQUENCEs.
20044 * reorg.c (emit_delay_sequence): Simplify with emit-rtl API.
20045
200462013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
0480fff0
GY
20047
20048 * config/arm/arm.md (movsicc_insn): Convert define_insn into
20049 define_insn_and_split.
20050 (and_scc,ior_scc,negscc): Likewise.
20051 (cmpsi2_addneg, subsi3_compare): Convert to named patterns.
20052
3ccb989e 200532013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
367075fe
GY
20054
20055 * config/arm/arm.c (use_return_insn): Return 0 for targets that
20056 can benefit from using a sequence of LDRD instructions in epilogue
20057 instead of a single LDM instruction.
20058
6d10a203
MLI
200592013-04-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
20060
20061 PR 45688
20062 * doc/extend.texi: Fix typo.
20063
6983e6b5
RB
200642013-04-17 Richard Biener <rguenther@suse.de>
20065
20066 * tree-vect-slp.c (vect_build_slp_tree_1): Split out from ...
20067 (vect_build_slp_tree): ... here.
20068 (vect_build_slp_tree_1): Compute which stmts of the SLP group
20069 match. Remove special-casing of mismatched complex loads.
20070 (vect_build_slp_tree): Based on the result from vect_build_slp_tree_1
20071 re-try the match with swapped commutative operands.
20072 (vect_supported_load_permutation_p): Remove special-casing of
20073 mismatched complex loads.
20074 (vect_analyze_slp_instance): Adjust.
20075
ef23e6a2
RB
200762013-04-17 Richard Biener <rguenther@suse.de>
20077
20078 PR rtl-optimization/56921
20079 * cfgloop.h (struct loop): Add simple_loop_desc member.
20080 (struct niter_desc): Mark with GTY(()).
20081 (simple_loop_desc): Do not use aux field but simple_loop_desc.
20082 * loop-iv.c (get_simple_loop_desc): Likewise.
20083 (free_simple_loop_desc): Likewise.
20084
20085 Revert
20086 2013-04-16 Richard Biener <rguenther@suse.de>
20087
20088 PR rtl-optimization/56921
20089 * loop-init.c (pass_rtl_move_loop_invariants): Add
20090 TODO_do_not_ggc_collect to todo_flags_finish.
20091 (pass_rtl_unswitch): Same.
20092 (pass_rtl_unroll_and_peel_loops): Same.
20093 (pass_rtl_doloop): Same.
20094
fc6f94f5
EB
200952013-04-17 Eric Botcazou <ebotcazou@adacore.com>
20096
20097 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): New.
20098 (decl_refs_may_alias_p): Add REF1 and REF2 parameters.
20099 Use nonoverlapping_component_refs_of_decl_p to disambiguate component
20100 references.
20101 (refs_may_alias_p_1): Adjust call to decl_refs_may_alias_p.
20102 * tree-streamer.c (record_common_node): Adjust reference in comment.
20103
10a88311
TG
201042013-04-17 Terry Guo <terry.guo@arm.com>
20105
20106 * config/arm/cortex-m4.md: Add a new bypass.
20107
6d9b7208 201082013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
f3d096b0
N
20109
20110 * config/aarch64/aarch64.md (*adds_<optab><mode>_multp2):
20111 New pattern.
20112 (*subs_<optab><mode>_multp2): New pattern.
20113 (*adds_<optab><ALLX:mode>_<GPI:mode>): New pattern.
20114 (*subs_<optab><ALLX:mode>_<GPI:mode>): New pattern.
20115
6d9b7208 201162013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
860ad33f
N
20117
20118 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>): New pattern.
20119 (*subs_mul_imm_<mode>): New pattern.
20120
18a6701e
DE
201212013-04-16 David Edelsohn <dje.gcc@gmail.com>
20122
20123 PR target/56948
20124 * config/rs6000/vsx.md (vsx_mov<mode>): Add j->r alternative.
20125 (vsx_movti_64bit): Change j->wa to O->wa. Add n->r alternative.
20126 (vsx_movti_32bit): Change j->wa to O->wa.
20127
07c37b2f
RB
201282013-04-16 Richard Biener <rguenther@suse.de>
20129
20130 PR rtl-optimization/56921
20131 * loop-init.c (pass_rtl_move_loop_invariants): Add
20132 TODO_do_not_ggc_collect to todo_flags_finish.
20133 (pass_rtl_unswitch): Same.
20134 (pass_rtl_unroll_and_peel_loops): Same.
20135 (pass_rtl_doloop): Same.
20136
0e0f87d4 201372013-04-16 Greta Yorsh <Greta.Yorsh@arm.com>
974ba22d
GY
20138
20139 * config/arm/arm.c (emit_multi_reg_push): New declaration
20140 for an existing function.
20141 (arm_emit_strd_push): New function.
20142 (arm_expand_prologue): Used here.
20143 (arm_emit_ldrd_pop): New function.
20144 (arm_expand_epilogue): Used here.
20145 (arm_get_frame_offsets): Update condition.
20146 (arm_emit_multi_reg_pop): Add a special case for load of a single
20147 register with writeback.
20148
5e8e2af4
UB
201492013-04-16 Uros Bizjak <ubizjak@gmail.com>
20150
20151 * doc/invoke.texi (i386 Option): Reword -mstack-protector-guard
20152 description.
20153
9fd9ccf7
RB
201542013-04-16 Richard Biener <rguenther@suse.de>
20155
20156 PR tree-optimization/56756
20157 * tree-ssa-loop-im.c (struct first_mem_ref_loc_1): New functor.
20158 (first_mem_ref_loc): New.
20159 (execute_sm): Place the load temporarily before a previous
20160 access instead of in the latch edge to ensure its SSA dependencies
20161 are defined at points dominating the load.
20162
96fba521
SB
201632013-04-16 Steven Bosscher <steven@gcc.gnu.org>
20164
4c8af858
SB
20165 * cfgrtl.c (cfg_layout_merge_blocks): Revert r184005, implement
20166 correct fix by moving header and footer insn to the footer of
20167 the merged basic block. Clear BB_END of the merged-away block.
20168
96fba521
SB
20169 PR middle-end/43631
20170 * emit-rtl.c (make_note_raw): New function.
20171 (link_insn_into_chain): New static inline function.
20172 (add_insn): Use it.
20173 (add_insn_before, add_insn_after): Factor insn chain linking code...
20174 (add_insn_before_nobb, add_insn_after_nobb): ...here, new functions
20175 using link_insn_into_chain.
20176 (note_outside_basic_block_p): New helper function for emit_note_after
20177 and emit_note_before.
20178 (emit_note_after): Use nobb variant of add_insn_after if the note
20179 should not be contained in a basic block.
20180 (emit_note_before): Use nobb variant of add_insn_before if the note
20181 should not be contained in a basic block.
20182 (emit_note_copy): Use make_note_raw.
20183 (emit_note): Likewise.
20184 * bb-reorder.c (insert_section_boundary_note): Remove hack to set
20185 BLOCK_FOR_INSN to NULL manually for NOTE_INSN_SWITCH_TEXT_SECTIONS.
20186 * jump.c (cleanup_barriers): Use reorder_insns_nobb to avoid making
20187 the moved barrier the tail of the basic block it follows.
20188 * var-tracking.c (pass_variable_tracking): Add TODO_verify_flow.
20189
7b8265ba
JJ
201902013-04-15 Jakub Jelinek <jakub@redhat.com>
20191
20192 PR tree-optimization/56962
20193 * gimple-ssa-strength-reduction.c (record_increment): Only set
20194 initializer if gimple_assign_rhs_code is {,POINTER_}PLUS_EXPR and
20195 either rhs1 or rhs2 is equal to c->base_expr.
20196
5185d248
RB
201972013-04-15 Richard Biener <rguenther@suse.de>
20198
20199 PR tree-optimization/56933
20200 * tree-vectorizer.h (struct _stmt_vec_info): Remove read_write_dep
20201 member.
20202 (GROUP_READ_WRITE_DEPENDENCE): Remove.
20203 (STMT_VINFO_GROUP_READ_WRITE_DEPENDENCE): Likewise.
20204 * tree-vect-data-refs.c (vect_analyze_group_access): Move
20205 dependence check ...
20206 vect_analyze_data_ref_dependence (vect_analyze_data_ref_dependence):
20207 ... here.
20208 * tree-vect-stmts.c (new_stmt_vec_info): Do not initialize
20209 GROUP_READ_WRITE_DEPENDENCE.
20210
a24243a0
AK
202112013-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20212
20213 * emit-rtl.c (reset_all_used_flags): New function.
20214 (verify_rtl_sharing): Call reset_all_used_flags before and after
20215 performing the checks.
20216
1c50eada
KT
202172013-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20218
20219 * config/arm/arm.c (const_ok_for_dimode_op): Handle AND case.
20220 * config/arm/arm.md (*anddi3_insn): Change to insn_and_split.
20221 * config/arm/constraints.md (De): New constraint.
20222 * config/arm/neon.md (anddi3_neon): Delete.
20223 (neon_vand<mode>): Expand to standard anddi3 pattern.
20224 * config/arm/predicates.md (imm_for_neon_inv_logic_operand):
20225 Move earlier in the file.
20226 (neon_inv_logic_op2): Likewise.
20227 (arm_anddi_operand_neon): New predicate.
20228
e927b6ad
RO
202292013-04-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20230
20231 * configure.ac (gcc_cv_ld_as_needed): Set
20232 gcc_cv_ld_as_needed_option, gcc_cv_no_as_needed_option.
20233 Use -z ignore, -z record on *-*-solaris2*.
20234 (HAVE_LD_AS_NEEDED): Update comment.
20235 (LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION): Define.
20236 * configure: Regenerate.
20237 * config.in: Regenerate.
20238 * gcc.c (init_gcc_specs) [USE_LD_AS_NEEDED]: Use
20239 LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION.
20240 * config/sol2.h [HAVE_LD_AS_NEEDED] (USE_LD_AS_NEEDED): Define.
20241 * doc/tm.texi.in (USE_LD_AS_NEEDED): Allow for --as-needed
20242 equivalents. Fix markup.
20243 * doc/tm.texi: Regenerate.
20244
e0ea8797
AH
202452013-04-15 Andrew Hsieh <andrewhsieh.google.com>
20246
20247 * config/i386/i386.opt: New option mstack-protector-guard=.
20248 * config/i386/i386-opts.h: Add enum stack_protector_guard.
20249 * config/i386/i386.h: Define TARGET_SSP_GLOBAL_GUARD and
20250 TARGET_SSP_TLS_GUARD.
20251 * config/i386/i386.c (ix86_option_override_internal): Set
20252 ix86_stack_protector_guard.
20253 * config/i386/i386.md (stack_protect_set): Enable for
20254 TARGET_SSP_TLS_GUARD only.
20255 (stack_protect_set_<mode>): Ditto.
20256 (stack_protect_test): Ditto.
20257 (stack_protect_test_<mode>): Ditto.
20258 * doc/invoke.texi (i386 Option): Document.
20259
811b72f9
EB
202602013-04-15 Eric Botcazou <ebotcazou@adacore.com>
20261
20262 PR target/56890
20263 * config/sparc/sparc.c (enum sparc_mode_class): Add H_MODE value.
20264 (S_MODES): Set H_MODE bit.
20265 (SF_MODES): Set only S_MODE and SF_MODE bits.
20266 (DF_MODES): Set SF_MODES and only D_MODE and DF_MODE bits.
20267 (sparc_init_modes) <MODE_INT>: Set H_MODE bit for sub-word modes.
20268 <MODE_VECTOR_INT>: Do not set SF_MODE for sub-word modes.
20269 <MODE_FLOAT>: Likewise.
20270
5529fdd6
JY
202712013-04-15 Joey Ye <joey.ye@arm.com>
20272
20273 * config/arm/arm.c (thumb_far_jump_used_p): Fix typo in comments.
20274
517b1da2
JY
202752013-04-15 Joey Ye <joey.ye@arm.com>
20276
20277 * config/arm/arm.c (thumb1_final_prescan_insn): Assert lr save
20278 for real far jump.
20279 (thumb_far_jump_used_p): Count instruction size and set
20280 far_jump_used.
20281
01007ae0
EB
202822013-04-14 Eric Botcazou <ebotcazou@adacore.com>
20283
20284 * reorg.c (fill_simple_delay_slots): Reindent block of code.
20285 * resource.c (mark_target_live_regs): Reformat conditional block.
20286
c46f6580
SB
202872013-04-13 Steven Bosscher <steven@gcc.gnu.org>
20288
20289 * sched-deps.c (deps_analyze_insn): Do not check for EH_REGION insn
20290 notes, they are emitted only just before final.
20291 * sched-int.h: Include insn-attr.h before checking INSN_SCHEDULING.
20292
1f397f45
SB
202932013-04-13 Steven Bosscher <steven@gcc.gnu.org>
20294
20295 * emit-rtl.c (remove_insn): Do not call df_insn_delete here.
20296 * cfgrtl.c (delete_insn): Call it here instead.
20297 * lra-spills.c (lra_final_code_change): Use delete_insn.
20298 * haifa-sched.c (sched_remove_insn): Likewise.
20299 * sel-sched-ir.c (return_nop_to_pool): Clear INSN_DELETED_P for nops
20300 returning to the nop pool.
20301 (sel_remove_insn): Simplify the only_disconnect case via remove_insn,
20302 use delete_insn for definitive removal. Clear BLOCK_FOR_INSN.
20303
58a51369
SB
203042013-04-12 Steven Bosscher <steven@gcc.gnu.org>
20305
20306 * doc/tm.texi.in (LOOP_ALIGN): Remove loop note references.
20307 * doc/tm.texi: Regenerated.
20308
33159866
UB
203092013-04-12 Uros Bizjak <ubizjak@gmail.com>
20310
20311 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use ANY_QI_REGNO_P in
20312 QImode checks.
20313
226e378f
SB
203142013-04-12 Steven Bosscher <steven@gcc.gnu.org>
20315
20316 * df-core.c (df_find_def): Compare register numbers.
20317 (df_find_use): Likewise.
20318
fafb9b18
VM
203192013-04-12 Vladimir Makarov <vmakarov@redhat.com>
20320
20321 PR target/56903
20322 * config/i386/i386.c (ix86_hard_regno_mode_ok): Add
20323 lra_in_progress for return.
20324
9a946fd6
GY
203252013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
20326
20327 * config/arm/arm.md (mov_scc,mov_negscc,mov_notscc): Convert
20328 define_insn into define_insn_and_split and emit movsicc patterns.
20329
41b83758
GY
203302013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
20331
20332 * config/arm/arm.c (gen_operands_ldrd_strd): Initialize "base".
20333
d3afd9aa
RB
203342013-04-12 Richard Biener <rguenther@suse.de>
20335
20336 * tree-pass.h (TODO_do_not_ggc_collect): New.
20337 * passes.c (execute_one_ipa_transform_pass): Honor
20338 TODO_do_not_ggc_collect.
20339 (execute_one_pass): Likewise.
20340
20341 Revert
20342 2013-04-10 Richard Biener <rguenther@suse.de>
20343
20344 * passes.c (init_optimization_passes): Remove reload pass.
20345 * ira.c (do_reload): Merge into ...
20346 (ira): ... this.
20347 (rest_of_handle_reload): Remove.
20348 (pass_reload): Likewise.
20349 * config/i386/i386.c (ix86_option_override): Refer to ira instead
20350 of reload for vzeroupper pass placement.
20351
06f9b387
JJ
203522013-04-12 Jakub Jelinek <jakub@redhat.com>
20353
20354 PR tree-optimization/56918
20355 PR tree-optimization/56920
20356 * fold-const.c (int_const_binop_1): Use op1.mul_with_sign (op2, ...)
20357 instead of op1 - op2. Pass 2 * TYPE_PRECISION (type) as second
20358 argument to rshift method. For 2 * HOST_BITS_PER_WIDE_INT precision
20359 use wide_mul_with_sign method.
20360
953094d2
RB
203612013-04-12 Richard Biener <rguenther@suse.de>
20362
20363 * gimple.c (is_gimple_constant): Vector CONSTRUCTORs should
20364 not be considered a gimple constant.
20365
bb506982
MG
203662013-04-12 Marc Glisse <marc.glisse@inria.fr>
20367
20368 * fold-const.c (const_binop): Handle vector shifts by a scalar.
20369 (fold_binary_loc): Call const_binop also for mixed vector-scalar
20370 operations.
20371
4b84d650
JJ
203722013-04-12 Manuel López-Ibáñez <manu@gcc.gnu.org>
20373 Jakub Jelinek <jakub@redhat.com>
20374
20375 * opts.c: Include diagnostic-color.h.
20376 (common_handle_option): Handle OPT_fdiagnostics_color_.
20377 * Makefile.in (OBJS-libcommon): Add diagnostic-color.o.
20378 (diagnostic.o, opts.o, pretty-print.o): Depend on diagnostic-color.h.
20379 (diagnostic-color.o): New.
20380 * common.opt (fdiagnostics-color, fdiagnostics-color=): New options.
20381 (diagnostic_color_rule): New enum.
20382 * dwarf2out.c (gen_producer_string): Don't print -fdiagnostics-color*.
20383 * langhooks.c (lhd_print_error_function): Add %r "locus" and %R around
20384 the location string.
20385 * diagnostic.def: Add 3rd argument to DEFINE_DIAGNOSTIC_KIND macros,
20386 either NULL, or color kind.
20387 * diagnostic-color.c: New file.
20388 * diagnostic-color.h: New file.
20389 * diagnostic-core.h (DEFINE_DIAGNOSTIC_KIND): Adjust macro for 3
20390 arguments.
20391 * doc/invoke.texi (-fdiagnostics-color): Document.
20392 * pretty-print.h (pp_show_color): Define.
20393 (struct pretty_print_info): Add show_color field.
20394 * diagnostic.c: Include diagnostic-color.h.
20395 (diagnostic_build_prefix): Adjust for 3 argument DEFINE_DIAGNOSTIC_KIND
20396 macros. Colorize error:, warning: etc. strings and also the location
20397 string.
20398 (diagnostic_show_locus): Colorize the caret line.
20399 * pretty-print.c: Include diagnostic-color.h.
20400 (pp_base_format): Handle %r and %R format specifiers. Colorize strings
20401 inside of %< %> quotes or quoted through q format modifier.
20402
067a1e71
AK
204032013-04-12 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20404
33159866 20405 * ifcvt.c (end_ifcvt_sequence): Mark a and b for unsharing as well.
067a1e71 20406
33159866 204072013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
b056c910
N
20408
20409 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Allow NEG
20410 code in CC_NZ mode.
20411 * config/aarch64/aarch64.md (*neg_<shift><mode>3_compare0): New
20412 pattern.
20413
7b55f98f
MP
204142013-04-11 Marek Polacek <polacek@redhat.com>
20415
20416 PR tree-optimization/48184
33159866 20417 * params.def (PARAM_ALIGN_THRESHOLD): Increase the minimum value to 1.
7b55f98f 20418
966b587e
EB
204192013-04-11 Eric Botcazou <ebotcazou@adacore.com>
20420
20421 * stor-layout.c (skip_simple_constant_arithmetic): Move to...
20422 * tree.c (skip_simple_constant_arithmetic): ...here and make public.
20423 (skip_simple_arithmetic): Tidy up.
20424 * tree.h (skip_simple_constant_arithmetic): Declare.
20425
33159866 204262013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
f8bf91ab
N
20427
20428 * config/aarch64/aarch64.h (REVERSIBLE_CC_MODE): Define.
20429
1d42c1ec
RB
204302013-04-11 Richard Biener <rguenther@suse.de>
20431
20432 * tree-vect-loop.c (get_initial_def_for_induction): Properly
20433 generate vector constants.
20434
4ba5ea11
RB
204352013-04-11 Richard Biener <rguenther@suse.de>
20436
20437 PR tree-optimization/56878
20438 * tree-flow.h (outermost_invariant_loop_for_expr): Declare.
20439 * tree-ssa-loop-ivopts.c (outermost_invariant_loop_for_expr):
20440 New function.
20441 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
20442 Prefer to align the DR with the most invariant base address.
20443
f0defe58
SKS
204442013-04-11 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
20445
20446 * opts.c (common_handle_option): Fix formatting and add FALLTHRU
20447 comment.
20448
d07458be
JG
204492013-04-11 James Greenhalgh <james.greenhalgh@arm.com>
20450
20451 * config/aarch64/aarch64-simd.md (aarch64_vcond_internal): Fix
20452 floating-point vector comparisons against 0.
20453
146b8692
JJ
204542013-04-11 Jakub Jelinek <jakub@redhat.com>
20455
20456 PR tree-optimization/56899
20457 * fold-const.c (extract_muldiv_1): Apply distributive law
20458 only if TYPE_OVERFLOW_WRAPS (ctype).
20459
b8578ff7
BC
204602013-04-11 Bin Cheng <bin.cheng@arm.com>
20461
20462 PR target/56124
20463 * ira-costs.c (scan_one_insn): Check whether the source rtx of
20464 loading has side effect.
20465
0ea8a6f9
SB
204662013-04-10 Steven Bosscher <steven@gcc.gnu.org>
20467
20468 * config/sparc/sparc.c: Include tree-pass.h.
20469 (TARGET_MACHINE_DEPENDENT_REORG): Do not redefine.
20470 (sparc_reorg): Rename to sparc_do_work_around_errata. Move to
20471 head of file. Change return type. Split off gate function.
20472 (sparc_gate_work_around_errata): New function.
20473 (pass_work_around_errata): New pass definition.
20474 (insert_pass_work_around_errata) New pass insert definition to
20475 insert pass_work_around_errata just after delayed-branch scheduling.
20476 (sparc_option_override): Insert the pass.
20477 * config/sparc/t-sparc (sparc.o): Add TREE_PASS_H dependence.
20478
42e37616
DM
204792013-04-10 David S. Miller <davem@davemloft.net>
20480
89deeb3b
DM
20481 * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=supersparc
20482 or -mcpu=hypersparc.
20483
42e37616
DM
20484 * target.def (cstore_mode): New hook.
20485 * target.h: Include insn-codes.h
20486 * targhooks.c: Likewise.
20487 (default_cstore_mode): New function.
20488 * targhooks.h: Declare it.
20489 * doc/tm.texi.in: New hook slot for TARGET_CSTORE_MODE.
20490 * doc/tm.texi: Rebuild.
20491 * expmed.c (emit_cstore): Obtain cstore boolean result mode using
20492 target hook, rather than inspecting the insn_data.
20493 * config/sparc/sparc.c (sparc_cstore_mode): New function.
20494 (TARGET_CSTORE_MODE): Redefine.
20495 (emit_scc_insn): When TARGET_ARCH64, emit new 64-bit boolean
20496 result patterns.
20497 * config/sparc/predicates.md (cstore_result_operand): New special
20498 predicate.
20499 * config/sparc/sparc.md (cstoresi4, cstoredi4, cstore<F:mode>4):
20500 Use it for operand 0.
20501 (*seqsi_special): Rewrite using 'P' mode iterator on operand 0.
20502 (*snesi_special): Likewise.
20503 (*snesi_zero): Likewise.
20504 (*seqsi_zero): Likewise.
20505 (*sltu_insn): Likewise.
20506 (*sgeu_insn): Likewise.
20507 (*seqdi_special): Make operand 0 and comparison operation be of
20508 DImode.
20509 (*snedi_special): Likewise.
20510 (*snedi_special_vis3): Likewise.
20511 (*neg_snesi_zero): Rename to *neg_snesisi_zero.
20512 (*neg_snesi_sign_extend): Rename to *neg_snesidi_zero.
20513 (*snesi_zero_extend): Delete, covered by 'P' mode iterator.
20514 (*neg_seqsi_zero): Rename to *neg_seqsisi_zero.
20515 (*neg_seqsi_sign_extend): Rename to *neg_seqsidi_zero.
20516 (*seqsi_zero_extend): Delete, covered by 'P' mode iterator.
20517 (*sltu_extend_sp64): Likewise.
20518 (*neg_sltu_insn): Rename to *neg_sltusi_insn.
20519 (*neg_sltu_extend_sp64): Rename to *neg_sltudi_insn.
20520 (*sgeu_extend_sp64): Delete, covered by 'P' mode iterator.
20521 (*neg_sgeu_insn): Rename to *neg_sgeusi_insn.
20522 (*neg_sgeu_extend_sp64): Rename to *neg_sgeudi_insn.
20523
95ca411e
YZ
205242013-04-10 Yufeng Zhang <yufeng.zhang@arm.com>
20525
20526 * config/aarch64/aarch64.c (aarch64_print_extension): New function.
20527 (aarch64_start_file): Use the new function.
20528
6782438d 205292013-04-10 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
33159866 20530 Jason Merrill <jason@redhat.com>
6782438d
SKS
20531
20532 * common.opt: Add -gdwarf.
20533 * opts.c (common_handle_option): Handle it.
20534 * gcc.c (ASM_DEBUG_SPEC): Don't expect "-2" for DWARF.
20535
bb313b93
RB
205362013-04-10 Richard Biener <rguenther@suse.de>
20537
20538 * passes.c (execute_todo): Do not call ggc_collect conditional here.
20539 (execute_one_ipa_transform_pass): But unconditionally here.
20540 (execute_one_pass): And here.
20541 (init_optimization_passes): Remove reload pass.
20542 * tree-pass.h (TODO_ggc_collect): Remove.
20543 (pass_reload): Likewise.
20544 * ira.c (do_reload): Merge into ...
20545 (ira): ... this.
20546 (rest_of_handle_reload): Remove.
20547 (pass_reload): Likewise.
20548 * config/i386/i386.c (ix86_option_override): Refer to ira instead
20549 of reload for vzeroupper pass placement.
20550 * <everywhere>: Remove TODO_ggc_collect from todo_flags_start
20551 and todo_flags_finish of all passes.
20552
793d9a16
RB
205532013-04-10 Richard Biener <rguenther@suse.de>
20554
20555 * tree-vectorizer.h (struct _slp_oprnd_info): Remove
20556 first_const_oprnd field, rename first_def_type to first_op_type.
20557 * tree-vect-slp.c (vect_create_oprnd_info): Adjust.
20558 (vect_get_and_check_slp_defs): Always use the type of the
20559 operand. Allow mixed vect_external_def, vect_constant_def types.
20560 (vect_get_constant_vectors): Handle mixed vect_external_def,
20561 vect_constant_def types.
20562
12211b99 205632013-04-10 Joern Rennecke <joern.rennecke@embecosm.com>
ee8a9b7b
JR
20564
20565 PR tree-optimization/55524
20566 * tree-ssa-math-opts.c
20567 (convert_mult_to_fma): Don't use an fms construct
20568 when we don't have an fms operation, but fnma, and it looks
20569 likely that we'll be able to use the latter.
20570
12211b99 205712013-04-10 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
6957a6f6
ZZ
20572
20573 * cif-code.def (OVERWRITABLE): Correct the comment for overwritable
20574 function.
20575 * ipa-inline.c (can_inline_edge_p): Let dump mechanism report the
20576 inline fail caused by overwritable functions.
20577
34ab4a5b
CJW
205782013-04-10 Chung-Ju Wu <jasonwucj@gmail.com>
20579
20580 * combine.c (simplify_compare_const): Use GET_MODE_MASK to filter out
20581 unnecessary bits in the constant power of two case.
20582
abf9bfbc
RB
205832013-04-10 Richard Biener <rguenther@suse.de>
20584
20585 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove
20586 broken code swapping operands.
20587 (vect_build_slp_tree): Do not compute load permutations here.
20588 (vect_analyze_slp_instance): Compute load permutations here,
20589 after building the SLP tree.
20590
f408477e
CB
205912013-04-09 Christian Bruel <christian.bruel@st.com>
20592
20593 * config/sh/sh.md (barrier_align): Use next/prev_active_insn instead
20594 of next/prev_real_insn.
20595
5ac42672
JH
205962013-04-09 Jan Hubicka <jh@suse.cz>
20597
abf9bfbc
RB
20598 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
20599 Drop aliased parameter.
5ac42672
JH
20600 (function_and_variable_visibility): Do not handle alias pairs.
20601 * cgraph.c (varpool_externally_visible_p): Update prototype.
20602 * varpool.c (varpool_add_new_variable): Update.
20603
5017f1d2
KT
206042013-04-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20605
20606 * config/arm/arm.md (minmax_arithsi_non_canon): New pattern.
20607
48eecbee
SB
206082013-04-09 Steven Bosscher <steven@gcc.gnu.org>
20609
a949cf1c
SB
20610 * sched-vis.c (print_pattern): Print SEQUENCE of insns as insns.
20611
48eecbee
SB
20612 * config/sparc/sparc.md: Use define_c_enum for "unspec" and "unspecv".
20613
75ef8e3d
MP
206142013-04-09 Marek Polacek <polacek@redhat.com>
20615
20616 PR tree-optimization/48762
33159866 20617 * params.def (PARAM_MAX_CSE_INSNS): Increase the minimum value to 1.
75ef8e3d 20618
23847df4
RB
206192013-04-09 Richard Biener <rguenther@suse.de>
20620
20621 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove code
20622 dealing with cost.
20623 (vect_build_slp_tree): Likewise.
20624 (vect_analyze_slp_cost_1, vect_analyze_slp_cost): New functions
20625 calculating the cost of a SLP instance.
20626 (vect_analyze_slp_instance): Use it from here, after building
20627 the SLP tree.
20628
ea3a0fde
JJ
206292013-04-09 Jakub Jelinek <jakub@redhat.com>
20630
20631 PR middle-end/56883
20632 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
20633 expand_omp_for_static_chunk): Use simple_p = true in
20634 force_gimple_operand_gsi calls when assigning to addressable decls.
20635
a32dfe9d
JL
206362013-04-09 Jeff Law <law@redhat.com>
20637
20638 * tree-vrp.c (simplify_cond_using_ranges): Simplify test of boolean
20639 when the boolean was created by converting a wider object which
20640 had a boolean range.
20641
d755c7ef
RB
206422013-04-09 Richard Biener <rguenther@suse.de>
20643
20644 * tree-vectorizer.h (slp_void_p): Remove.
20645 (slp_tree): Typedef before _slp_tree declaration.
20646 (struct _slp_tree): Use a vector of slp_tree as children.
20647 (vect_get_place_in_interleaving_chain): Remove.
20648 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain):
20649 Move ...
20650 * tree-vect-slp.c (vect_get_place_in_interleaving_chain): ... here
20651 and make static.
20652 (vect_free_slp_tree, vect_print_slp_tree, vect_mark_slp_stmts,
20653 vect_mark_slp_stmts_relevant, vect_slp_rearrange_stmts,
20654 vect_detect_hybrid_slp_stmts, vect_slp_analyze_node_operations,
20655 vect_schedule_slp_instance, vect_remove_slp_scalar_calls):
20656 Use slp_node instead of slp_void_p and adjust.
20657
3d741091
RB
206582013-04-09 Richard Biener <rguenther@suse.de>
20659
20660 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Avoid
20661 work that is not necessary.
20662
39307ba7
JJ
206632013-04-09 Jakub Jelinek <jakub@redhat.com>
20664
20665 PR tree-optimization/56854
20666 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't
20667 forward into clobber stmts if it would change MEM_REF lhs into
20668 non-MEM_REF.
20669
343881fd
MK
206702013-04-09 Maxim Kuvyrkov <maxim@kugelworks.com>
20671
20672 * tree.c (type_hash_lookup, type_hash_add): Make static.
20673 * tree.h (type_hash_lookup, type_hash_add): Remove global declarations.
20674
3922658a
RB
206752013-04-09 Richard Biener <rguenther@suse.de>
20676
20677 * tree.h (unsave_expr_now): Remove.
20678 * tree-inline.c (mark_local_for_remap_r): Remove.
20679 (unsave_expr_1): Likewise.
20680 (unsave_r): Likewise.
20681 (unsave_expr_now): Likewise.
20682 * tree-ssa-copy.c (replace_exp_1): Use unshare_expr.
20683 (propagate_tree_value): Likewise.
20684
9fb6b620
SB
206852013-04-08 Steven Bosscher <steven@gcc.gnu.org>
20686
20687 * doc/rtl.texi (sequence): Rewrite documentation to match the
20688 current use of SEQUENCE rtl objects.
20689 * rtl.def (SEQUENCE): Likewise.
20690
20691 * doc/rtl.texi (NOTE_INSN_EH_REGION_BEG, NOTE_INSN_EH_REGION_END):
20692 Update documentation.
20693 (NOTE_INSN_LOOP_BEG, NOTE_INSN_LOOP_END, NOTE_INSN_LOOP_CONT,
20694 NOTE_INSN_LOOP_VTOP): Remove documentation for non-existing notes.
20695
20696 * reg-notes.def (REG_EH_CONTEXT): Remove unused note.
20697
8ddb5a29
TJ
206982013-04-08 Teresa Johnson <tejohnson@google.com>
20699
20700 * basic-block.h (GCOV_COMPUTE_SCALE): Define.
20701 * ipa-inline-analysis.c (param_change_prob): Use helper rounding divide
33159866 20702 methods.
8ddb5a29
TJ
20703 (estimate_edge_size_and_time): Add comment to suggest using rounding
20704 methods.
20705 (estimate_node_size_and_time): Ditto.
20706 (remap_edge_change_prob): Use helper rounding divide methods.
20707 * value-prof.c (gimple_divmod_fixed_value_transform): Ditto.
20708 (gimple_mod_pow2_value_transform): Ditto.
20709 (gimple_mod_subtract_transform): Ditto.
20710 (gimple_ic_transform): Ditto.
20711 (gimple_stringops_transform): Ditto.
20712 * stmt.c (conditional_probability): Ditto.
20713 (emit_case_dispatch_table): Ditto.
20714 * lto-cgraph.c (merge_profile_summaries): Ditto.
20715 * tree-optimize.c (execute_fixup_cfg): Ditto.
20716 * cfgcleanup.c (try_forward_edges): Ditto.
20717 * cfgloopmanip.c (scale_loop_profile): Ditto.
20718 (loopify): Ditto.
20719 (duplicate_loop_to_header_edge): Ditto.
20720 (lv_adjust_loop_entry_edge): Ditto.
20721 * tree-vect-loop.c (vect_transform_loop): Ditto.
20722 * profile.c (compute_branch_probabilities): Ditto.
20723 * cfgbuild.c (compute_outgoing_frequencies): Ditto.
20724 * lto-streamer-in.c (input_cfg): Ditto.
20725 * gimple-streamer-in.c (input_bb): Ditto.
20726 * ipa-cp.c (update_profiling_info): Ditto.
20727 (update_specialized_profile): Ditto.
20728 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Ditto.
20729 * cfg.c (update_bb_profile_for_threading): Add comment to suggest using
33159866 20730 rounding methods.
8ddb5a29
TJ
20731 * sched-rgn.c (compute_dom_prob_ps): Ditto.
20732 (compute_trg_info): Ditto.
20733 * cfgrtl.c (force_nonfallthru_and_redirect): Ditto.
20734 (purge_dead_edges): Ditto.
20735 * loop-unswitch.c (unswitch_loop): Ditto.
20736 * cgraphclones.c (cgraph_clone_edge): Ditto.
20737 (cgraph_clone_node): Ditto.
20738 * tree-inline.c (copy_bb): Ditto.
20739 (copy_edges_for_bb): Ditto.
20740 (initialize_cfun): Ditto.
20741 (copy_cfg_body): Ditto.
20742 (expand_call_inline): Ditto.
20743
661e6bd7
KT
207442013-04-08 Kai Tietz <ktietz@redhat.com>
20745
20746 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Replaced
20747 TARGET_CYGWIN64 by TARGET_64BIT.
20748
105766f3
JR
207492013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
20750
20751 * config/epiphany/epiphany.md (GPR_1): New constant.
20752 (define_expand "mov<mode>cc): FAIL if gen_compare_reg returned 0.
20753 * config/epiphany/epiphany.c (gen_compare_reg):
20754 For flag_finite_math_only, avoid swapping operands when r0 and/or r1
20755 is already in place.
20756 Use GPR_0 / GPR_1 instead of 0/1 for r0/r1 register numbers.
20757 Don't require being called during rtl expansion; If y operlaps r0,
20758 return 0.
20759 (epiphany_compute_frame_size, epiphany_expand_prologue): Use GPR_1.
20760 (epiphany_expand_epilogue): Likewise.
20761
8afab237
JR
20762 * config/epiphany/epiphany.c (epiphany_select_cc_mode):
20763 Don't use CC_FPmode for ORDERED / UNORDERED.
33159866 20764 * config/epiphany/epiphany.md (cmpsf_ord): Make pattern unconditional.
8afab237 20765
fa7707d6
JR
20766 * config/epiphany/constraints.md (CnL): New constraint.
20767 * config/epiphany/epiphany.md (addsi3_i): Add r/r/CnL alternative.
20768 * config/epiphany/predicates.md (add_operand): Allow 1024.
20769
5138e18d
JR
20770 * config/epiphany/epiphany.md (logical_op): New code iterator.
20771 (op_mnc): New code attribute.
20772 (<op_mnc>_f, mov_f, cstoresi4): New patterns.
20773 (mov_f+1, mov_f+2): New peephole2 patterns.
20774
2ccc703d
JR
20775 * config/epiphany/epiphany.md (mov_f+2): New peephole2 pattern.
20776 (cstoresi4): Also allow re-use of zero result when doing a NE
20777 comparison to a non-zero operand.
aefb0819 20778 Use (clobber (scratch)) for first insn if the gpr output is not needed.
2ccc703d 20779
093ac0a5
JR
20780 * config/epiphany/epiphany.md (<insn_opname>v2si3):
20781 Use gen_addsi3_i / gen_subsi3_i.
20782
f223bb13
JJ
207832013-04-08 Jakub Jelinek <jakub@redhat.com>
20784
20785 PR c++/34949
20786 PR c++/50243
20787 * tree-eh.c (optimize_clobbers): Only remove clobbers if bb doesn't
20788 contain anything but clobbers, at most one __builtin_stack_restore,
20789 optionally debug stmts and final resx, and if it has at least one
20790 incoming EH edge. Don't check for SSA_NAME on LHS of a clobber.
20791 (sink_clobbers): Don't check for SSA_NAME on LHS of a clobber.
20792 Instead of moving clobbers with MEM_REF LHS with SSA_NAME address
20793 which isn't defaut definition, remove them.
20794 (unsplit_eh, cleanup_empty_eh): Use single_{pred,succ}_{p,edge}
20795 instead of EDGE_COUNT comparisons or EDGE_{PRED,SUCC}.
20796 * tree-ssa-ccp.c (execute_fold_all_builtins): Remove clobbers
20797 with MEM_REF LHS with SSA_NAME address.
20798
4481581f
JL
207992013-04-08 Jeff Law <law@redhat.com>
20800
20801 * gimple.c (canonicalize_cond_expr_cond): Rewrite x ^ y into x != y.
a32dfe9d 20802
451dabda
RB
208032013-04-08 Richard Biener <rguenther@suse.de>
20804
20805 * gimple-pretty-print.c (debug_gimple_stmt): Do not print
20806 extra newline.
20807 * tree-vect-loop.c (vect_determine_vectorization_factor): Dump
20808 determined vector type.
20809 (vect_analyze_data_refs): Likewise.
20810 (vect_get_new_vect_var): Adjust.
20811 (vect_create_destination_var): Preserve SSA name versions.
20812 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Do
20813 not dump anything here.
20814
3b088b47
JR
208152013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
20816
20817 * config/epiphany/epiphany.h (struct GTY (()) machine_function):
20818 Add member lr_slot_known.
20819 * config/epiphany/epiphany.md (reload_insi_ra): Compute lr_slot_offs
20820 if necessary.
20821 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
20822 Remove code that sets lr_slot_offset according to what a previous
20823 version of epiphany_emit_save_restore used to do.
20824 (epiphany_emit_save_restore): When doing an lr save or restore,
20825 set/verify lr_slot_known and lr_slot_offset.
20826
d8484d41
XQ
208272013-04-08 Xinyu Qi <xyqi@marvell.com>
20828
33159866
UB
20829 PR target/54338
20830 * config/arm/arm.h (REG_CLASS_CONTENTS): Include IWMMXT_GR_REGS
d8484d41
XQ
20831 in ALL_REGS.
20832
481be1c4
RB
208332013-04-08 Richard Biener <rguenther@suse.de>
20834
20835 * alias.c (find_base_term): Fix thinko in previous change.
20836
401f3a81
JJ
208372013-04-08 Jakub Jelinek <jakub@redhat.com>
20838
20839 * tree-loop-distribution.c (const_with_all_bytes_same): New function.
20840 (generate_memset_builtin): Only handle integer_all_onesp as -1 val if
20841 TYPE_PRECISION is equal to mode bitsize. Use const_with_all_bytes_same
20842 if possible to compute val.
20843 (classify_partition): Verify CONSTRUCTOR doesn't have any elts.
20844 For QImode integers don't require anything about precision. Use
20845 const_with_all_bytes_same to find out if the constant doesn't have
20846 repeated bytes in it.
20847
03ed99a8
AK
208482013-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20849
20850 * config/s390/s390.c (s390_expand_insv): Only accept insertions
20851 within mode size.
20852
781b2e62
MP
208532013-04-08 Marek Polacek <polacek@redhat.com>
20854
20855 PR rtl-optimization/48182
20856 * params.def (PARAM_MIN_CROSSJUMP_INSNS): Increase the minimum
20857 value to 1.
20858
27e430a2
JDA
208592013-04-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20860
20861 PR target/55487
20862 * config/pa/pa.c (legitimize_pic_address): Before incrementing label
20863 nuses, make sure we have a label.
20864
4902aa64
BS
208652013-04-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
20866
20867 PR target/56843
20868 * config/rs6000/rs6000.c (rs6000_emit_swdiv_high_precision): Remove.
20869 (rs6000_emit_swdiv_low_precision): Remove.
20870 (rs6000_emit_swdiv): Rewrite to handle between one and four
20871 iterations of Newton-Raphson generally; modify required number of
20872 iterations for some cases.
20873 * config/rs6000/rs6000.h (RS6000_RECIP_HIGH_PRECISION_P): Remove.
20874
7bca81dc
SB
208752013-04-05 Steven Bosscher <steven@gcc.gnu.org>
20876
20877 * bb-reorder.c (fix_crossing_unconditional_branches): Remove a
20878 set-but-unused variable.
20879
20880 * cgraph.c (cgraph_release_function_body): Clear cfun->cfg to make
20881 basic blocks of released function bodies garbage-collectable.
20882
20883 * ree.c (find_and_remove_re): Do not call df_finish_pass here.
20884 (struct rtl_opt_pass): Add TODO_df_finish.
20885
20886 * rtl.def (DEFINE_SUBST, DEFINE_SUBST_ATTR): Add documentation.
20887
4542a38a
GY
208882013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20889
20890 * config/arm/constraints.md (q): New constraint.
20891 * config/arm/ldrdstrd.md: New file.
20892 * config/arm/arm.md (ldrdstrd.md) New include.
20893 (arm_movdi): Use "q" instead of "r" constraint
20894 for double-word memory access.
20895 (movdf_soft_insn): Likewise.
20896 * config/arm/vfp.md (movdi_vfp): Likewise.
20897 * config/arm/t-arm (MD_INCLUDES): Add ldrdstrd.md.
33159866 20898 * config/arm/arm-protos.h (gen_operands_ldrd_strd): New declaration.
4542a38a
GY
20899 * config/arm/arm.c (gen_operands_ldrd_strd): New function.
20900 (mem_ok_for_ldrd_strd): Likewise.
20901 (output_move_double): Update assertion.
20902
2385b218
GY
209032013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20904
20905 * config/arm/arm.md: Comment on splitting Thumb1 patterns.
20906
75fe1cb5
GY
209072013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20908
20909 * config/arm/arm.md (arm_smax_insn): Convert define_insn into
20910 define_insn_and_split.
20911 (arm_smin_insn,arm_umaxsi3,arm_uminsi3): Likewise.
20912
dd660e8e
GY
209132013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20914
20915 * config/arm/arm.md (arm_ashldi3_1bit): Convert define_insn into
20916 define_insn_and_split.
33159866 20917 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
dd660e8e
GY
20918 (shiftsi3_compare): New pattern.
20919 (rrx): New pattern.
20920 * config/arm/unspecs.md (UNSPEC_RRX): New.
20921
045e472c
GY
209222013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20923
20924 * config/arm/arm.md (negdi_extendsidi): New pattern.
20925 (negdi_zero_extendsidi): Likewise.
20926
3f3bf1a8
GY
209272013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20928
20929 * config/arm/arm.md (andsi_iorsi3_notsi): Convert define_insn into
20930 define_insn_and_split.
20931 (arm_negdi2,arm_abssi2,arm_neg_abssi2): Likewise.
20932 (arm_cmpdi_insn,arm_cmpdi_unsigned): Likewise.
20933
b0b49556
GY
209342013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20935
20936 * config/arm/arm.md (arm_subdi3): Convert define_insn into
20937 define_insn_and_split.
20938 (subdi_di_zesidi,subdi_di_sesidi): Likewise.
20939 (subdi_zesidi_di,subdi_sesidi_di,subdi_zesidi_zesidi): Likewise.
20940
d633dd84
GY
209412013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20942
20943 * config/arm/arm.md (subsi3_carryin): New pattern.
20944 (subsi3_carryin_const): Likewise.
20945 (subsi3_carryin_compare,subsi3_carryin_compare_const): Likewise.
20946 (subsi3_carryin_shift,rsbsi3_carryin_shift): Likewise.
20947
f4499066
GY
209482013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20949
20950 * config/arm/arm.md (incscc,arm_incscc,decscc,arm_decscc): Delete.
20951
ceef6fd9
GY
209522013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20953
20954 * config/arm/arm.md (addsi3_carryin_<optab>): Set attribute predicable.
d633dd84 20955 (addsi3_carryin_alt2_<optab>,addsi3_carryin_shift_<optab>): Likewise.
ceef6fd9 20956
ddbdd8a7
KT
209572013-04-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20958
20959 * config/arm/arm.c (arm_expand_builtin): Change fcode
20960 type to unsigned int.
20961
8456d78a
RR
209622013-04-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
20963
20964 * doc/invoke.texi (ARM Options): Document cortex-a53 support.
20965
526c230f
ILT
209662013-04-04 Ian Lance Taylor <iant@google.com>
20967
33159866
UB
20968 * doc/standards.texi (Standards): The Go frontend supports the Go 1
20969 language standard.
526c230f 20970
3cfbe04d
SB
209712013-04-04 Steven Bosscher <steven@gcc.gnu.org>
20972
20973 PR middle-end/56729
20974 * df-scan.c (df_insn_delete): Disable failing assert.
20975
dfa3f8d0
KT
209762013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20977
20978 * config/arm/arm-protos.h (arm_builtin_vectorized_function):
20979 New function prototype.
20980 * config/arm/arm.c (TARGET_VECTORIZE_BUILTINS): Define.
20981 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Likewise.
20982 (arm_builtin_vectorized_function): New function.
20983
f7837758
KT
209842013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20985
20986 * config/arm/arm_neon_builtins.def: New file.
20987 * config/arm/arm.c (neon_builtin_data): Move contents to
20988 arm_neon_builtins.def.
20989 (enum arm_builtins): Include neon builtin definitions.
20990 (ARM_BUILTIN_NEON_BASE): Move from enum to macro.
33159866 20991 * config/arm/t-arm (arm.o): Add dependency on arm_neon_builtins.def.
f7837758 20992
39c1b6db
MP
209932013-04-04 Marek Polacek <polacek@redhat.com>
20994
20995 PR tree-optimization/48186
20996 * predict.c (maybe_hot_frequency_p): Return false if
20997 HOT_BB_FREQUENCY_FRACTION is 0.
20998 (cgraph_maybe_hot_edge_p): Likewise.
20999
314f64eb
RB
210002013-04-04 Richard Biener <rguenther@suse.de>
21001
21002 PR tree-optimization/56826
21003 * tree-vect-slp.c (vect_build_slp_tree): Compute ncopies
21004 more accurately.
21005
51a905b2
RB
210062013-04-04 Richard Biener <rguenther@suse.de>
21007
21008 PR tree-optimization/56213
21009 * tree-vect-data-refs.c (vect_check_strided_load): Remove.
33159866 21010 (vect_analyze_data_refs): Allow all non-nested loads as strided loads.
51a905b2 21011
f1bf4f3a
RB
210122013-04-04 Richard Biener <rguenther@suse.de>
21013
21014 PR tree-optimization/56837
21015 * tree-loop-distribution.c (classify_partition): For non-zero
21016 values require that the value has the same precision as its
21017 mode to be useful as memset value.
21018
0bca7ded
NC
210192013-04-03 Nick Clifton <nickc@redhat.com>
21020
33159866 21021 * config/v850/v850e3v5.md (fmasf4): Use fmaf.s on E3V5 architectures.
0bca7ded
NC
21022 (fmssf4): Use fmsf.s on E3V5 architectures.
21023 (fnmasf4): Use fnmaf.s on E3V5 architectures.
21024 (fnmssf4): Use fnmsf.s on E3V5 architectures.
21025
b4019227
JL
210262013-04-03 Jeff Law <law@redhat.com>
21027
21028 * Makefile.in (lra-constraints.o): Depend on $(OPTABS_H).
21029 (lra-eliminations.o): Likewise.
21030
f57ddb5b
TJ
210312013-04-03 Teresa Johnson <tejohnson@google.com>
21032
21033 * gcov-io.c (compute_working_sets): Moved most of body of old
33159866 21034 compute_working_sets here from profile.c.
f57ddb5b 21035 * gcov-io.h (NUM_GCOV_WORKING_SETS): Moved here from profile.c.
33159866
UB
21036 (gcov_working_set_t): Moved typedef here from basic-block.h
21037 (compute_working_set): Declare.
f57ddb5b
TJ
21038 * profile.c (NUM_GCOV_WORKING_SETS): Moved to gcov-io.h.
21039 (get_working_sets): Renamed from compute_working_set,
33159866 21040 replace most of body with call to new compute_working_sets.
f57ddb5b 21041 (get_exec_counts): Replace call to compute_working_sets
33159866
UB
21042 to get_working_sets.
21043 * profile.h (get_working_sets): Renamed from compute_working_set.
f57ddb5b 21044 * lto-cgraph.c (input_symtab): Replace call to compute_working_sets
33159866 21045 to get_working_sets.
f57ddb5b
TJ
21046 * basic-block.h (gcov_working_set_t): Moved to gcov-io.h.
21047 * gcov-dump.c (dump_working_sets): New function.
21048
12211b99 210492013-04-03 Kenneth Zadeck <zadeck@naturalbridge.com>
5e0919f1
KZ
21050
21051 * hwint.c (sext_hwi, zext_hwi): New functions.
21052 * hwint.h (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT,
21053 HOST_HALF_WIDE_INT_PRINT, HOST_HALF_WIDE_INT_PRINT_C,
21054 HOST_HALF_WIDE_INT_PRINT_DEC, HOST_HALF_WIDE_INT_PRINT_DEC_C,
21055 HOST_HALF_WIDE_INT_PRINT_UNSIGNED, HOST_HALF_WIDE_INT_PRINT_HEX,
21056 HOST_HALF_WIDE_INT_PRINT_HEX_PURE): New symbols.
21057 (sext_hwi, zext_hwi): New functions.
0bca7ded 21058
be672e08
JL
210592013-04-03 Jeff Law <law@redhat.com>
21060
21061 PR tree-optimization/56799
33159866
UB
21062 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Bring
21063 back test for widening conversion erroneously dropped in prior change.
be672e08 21064
9d821fa5
KT
210652013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21066
21067 PR target/56809
21068 * config/aarch64/aarch64.c (is_jump_table): Use next_active_insn
21069 instead of next_real_insn.
21070
71c581e7
MP
210712013-04-03 Marek Polacek <polacek@redhat.com>
21072
21073 PR sanitizer/55702
33159866 21074 * tsan.c (instrument_func_exit): Allow BUILT_IN_RETURN functions.
71c581e7 21075
4a32ef80
KT
210762013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21077
21078 PR target/56809
21079 * config/arm/arm.c (is_jump_table): Use next_active_insn instead of
21080 next_real_insn.
21081 (thumb1_output_casesi): Likewise.
21082 (thumb2_output_casesi): Likewise.
21083
1b2253d4
RB
210842013-04-03 Richard Biener <rguenther@suse.de>
21085
21086 PR tree-optimization/56817
21087 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
21088 Split out ...
21089 (tree_unroll_loops_completely_1): ... new function to manually
21090 walk the loop tree, properly defering outer loops of unrolled
21091 loops to later iterations.
21092
38000232
MG
210932013-04-03 Marc Glisse <marc.glisse@inria.fr>
21094
21095 * tree-vect-stmts.c (vectorizable_store): Accept BIT_FIELD_REF.
21096 (vectorizable_load): Likewise.
21097 * tree-vect-slp.c (vect_build_slp_tree): Likewise.
21098 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Handle VECTOR_TYPE.
21099
3fa35298
MG
211002013-04-03 Marc Glisse <marc.glisse@inria.fr>
21101
21102 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Handle
21103 BIT_FIELD_REF.
21104
b3d45ff0
UW
211052013-04-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
21106
21107 * config/spu/spu.c (emit_nop_for_insn): Handle JUMP_TABLE_DATA.
21108
ec9202a8
BC
211092013-04-03 Bin Cheng <bin.cheng@arm.com>
21110
21111 * rtl.h (AUTO_INC_DEC): Fix typo of HAVE_POST_MODIFY_DISP.
21112
6805bd36
MG
211132013-04-03 Marc Glisse <marc.glisse@inria.fr>
21114
21115 PR tree-optimization/56790
33159866
UB
21116 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Add constant
21117 folding.
6805bd36 21118
da694a77
MG
211192013-04-03 Marc Glisse <marc.glisse@inria.fr>
21120
21121 * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
21122 Handle VEC_MERGE.
21123 (simplify_ternary_operation) <VEC_MERGE>: Use unsigned HOST_WIDE_INT
21124 for masks. Test for side effects. Handle nested VEC_MERGE. Handle
21125 equal arguments.
21126
4e7d7b3d
JJ
211272013-04-03 Jakub Jelinek <jakub@redhat.com>
21128
21129 PR c/19449
21130 * tree.h (force_folding_builtin_constant_p): New decl.
21131 * builtins.c (force_folding_builtin_constant_p): New variable.
21132 (fold_builtin_constant_p): Fold immediately also if
21133 force_folding_builtin_constant_p.
21134
e6c9d234
RB
211352013-04-03 Richard Biener <rguenther@suse.de>
21136
21137 PR tree-optimization/56812
21138 * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependence):
21139 DRs of the same interleaving chain are independent.
21140
984d07dd
JM
211412013-04-02 Jason Merrill <jason@redhat.com>
21142
21143 * gdbinit.in (pbb): Use debug fn.
21144
622849c9
LC
211452013-04-02 Lawrence Crowl <crowl@google.com>
21146
21147 * sese.h (struct ivtype_map_elt_s): Remove unused.
21148 (extern debug_ivtype_map): Remove unused.
21149 (extern eq_ivtype_map_elts): Remove unused.
21150 * sese.c (debug_ivtype_map): Removed unused.
21151 (debug_ivtype_map_1): Removed unused.
21152 (debug_ivtype_elt): Remove unused.
21153 (eq_ivtype_map_elts): Remove unused.
21154
21155
82c0e1a0
KT
211562013-04-02 Kai Tietz <ktietz@redhat.com>
21157
21158 PR target/52790
21159 * config/i386/cygming.h (SUB_TARGET_RECORD_STUB): New sub-target macro.
21160 * config/i386/i386-protos.h (i386_pe_record_stub): Add new prototype.
33159866
UB
21161 * config/i386/i386.c (legitimize_pe_coff_extern_decl): New static
21162 function.
82c0e1a0
KT
21163 (legitimize_pe_coff_symbol): Likewise.
21164 (is_imported_p): New helper-function.
21165 (ix86_option_override_internal): Make MEDIUM_PIC the default code-model
21166 for Windows x64 targets.
21167 (ix86_expand_prologue): Optimize for pe-coff targets.
21168 (ix86_expand_split_stack_prologue): Adjust for pe-coff targets.
21169 (legitimate_pic_address_disp_p): Adjust for x64 pe-coff to support
21170 medium/large code-model.
21171 (legitimize_pic_address): Likewise.
21172 (legitimize_tls_address): Likewise.
21173 (ix86_expand_call): Likewise.
21174 (x86_output_mi_thunk): Likewise.
21175 (get_dllimport_decl): Add new beimport argument.
21176 (construct_plt_address): Don't assert for x64 pe-coff targets.
21177 * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Adjust for x64 pe-coff
21178 targets.
21179 (SYMBOL_FLAG_STUBVAR): New macro.
21180 (SYMBOL_REF_STUBVAR_P): Likewise.
21181 * config/i386/winnt.c (stub_list): New structure.
21182 (stub_head): New local variable.
21183 (i386_pe_record_stub): New function.
21184 (i386_pe_file_end): Emit refptr-stubs.
21185
5d751b0c
JJ
211862013-04-02 Jakub Jelinek <jakub@redhat.com>
21187
09bb4c99
JJ
21188 PR rtl-optimization/56745
21189 * ifcvt.c (cond_exec_find_if_block): Don't try to optimize
21190 if then_bb has no successors and else_bb is EXIT_BLOCK_PTR.
21191
a1d8947a
JJ
21192 PR c++/34949
21193 * tree-ssa-alias.c (stmt_kills_ref_p_1): If base != ref->base
21194 and both of them are MEM_REFs, just compare first argument for
21195 equality and attempt to deal even with differing offsets.
21196
5d751b0c
JJ
21197 PR c++/34949
21198 * tree-cfg.c (verify_gimple_assign_single): Allow lhs
21199 of gimple_clobber_p to be MEM_REF.
21200 * gimplify.c (gimplify_modify_expr): Gimplify *to_p of
21201 an assignment from TREE_CLOBBER_P. Allow it to be MEM_REF
21202 after gimplification.
21203 * asan.c (get_mem_ref_of_assignment): Don't instrument
21204 gimple_clobber_p stmts.
21205 * tree-ssa-dse.c (dse_optimize_stmt): Allow DSE of
21206 gimple_clobber_p stmt if they have MEM_REF lhs and
21207 are dead because of another gimple_clobber_p stmt.
21208 * tree-ssa-live.c (clear_unused_block_pointer): Treat
21209 gimple_clobber_p stmts like debug stmts.
21210 (remove_unused_locals): Remove clobbers with MEM_REF lhs
21211 that refer to unused VAR_DECLs or uninitialized values.
21212 * tree-sra.c (sra_ipa_reset_debug_stmts): Also remove
21213 gimple_clobber_p stmts if they refer to removed parameters.
21214 (get_repl_default_def_ssa_name, sra_ipa_modify_expr): Fix up
21215 formatting.
21216
e594716a
UB
212172013-04-02 Uros Bizjak <ubizjak@gmail.com>
21218
21219 * config/i386/i386.md (*testqi_ext_3): Merge with *testqi_ext_3_rex64
21220 using SWI48 mode attribute.
21221
7a80735b
WM
212222013-04-02 Wei Mi <wmi@google.com>
21223
21224 * config/i386/i386.c (ix86_rtx_costs): Set proper rtx cost for
21225 ashl<mode>3_mask, *<shift_insn><mode>3_mask and
21226 *<rotate_insn><mode>3_mask in i386.md.
21227
f423a9e4
AI
212282013-04-02 Alexander Ivchenko <alexander.ivchenko@intel.com>
21229
21230 * config.gcc (arm*-*-linux-*): Remove duplicate t-linux-android.
21231
90eb75f2
RB
212322013-04-02 Richard Biener <rguenther@suse.de>
21233
21234 PR tree-optimization/56778
21235 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
21236 Runtime alias tests are not supported for gather loads.
21237 * tree-vect-loop-manip.c (vect_loop_versioning): Insert
21238 stmts referenced from SSA operands before updating SSA form.
21239
d8c69a92
IC
212402013-04-02 Ian Caulfield <ian.caulfield@arm.com>
21241 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
21242
21243 * config/arm/arm-arches.def (armv8-a): Default to cortex-a53.
e594716a
UB
21244 * config/arm/t-arm (MD_INCLUDES): Depend on cortex-a53.md.
21245 * config/arm/cortex-a53.md: New file.
21246 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle cortex-a53.
21247 * config/arm/arm.md (generic_sched, generic_vfp): Handle cortex-a53.
21248 * config/arm/arm.c (arm_issue_rate): Likewise.
21249 * config/arm/arm-tune.md: Regenerate
21250 * config/arm/arm-tables.opt: Regenerate.
21251 * config/arm/arm-cores.def: Add cortex-a53.
d8c69a92 21252
239eb04c
ZC
212532013-04-02 Zhenqiang Chen <zhenqiang.chen@arm.com>
21254
21255 * config/arm/uclinux-elf.h: Add %L to LINK_GCC_C_SEQUENCE_SPEC for
21256 non-static link.
21257
c902d3c8
SN
212582013-04-02 Sofiane Naci <sofiane.naci@arm.com>
21259
d8c69a92
IC
21260 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add variants for
21261 scalar load/store operations using B/H registers.
c902d3c8
SN
21262 (*zero_extend<SHORT:mode><GPI:mode>2_aarch64): Likewise.
21263
051d0e2f
SN
212642013-04-02 Sofiane Naci <sofiane.naci@arm.com>
21265
21266 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add alternatives for
21267 scalar move.
21268 * config/aarch64/aarch64.c
21269 (aarch64_simd_scalar_immediate_valid_for_move): New.
21270 * config/aarch64/aarch64-protos.h
21271 (aarch64_simd_scalar_immediate_valid_for_move): New.
21272 * config/aarch64/constraints.md (Dh, Dq): New.
21273 * config/aarch64/iterators.md (hq): New.
21274
0ee1e3d9
EB
212752013-04-02 Eric Botcazou <ebotcazou@adacore.com>
21276
21277 * reorg.c (get_branch_condition): Deal with conditional returns.
21278 (fill_simple_delay_slots): Remove dead code dealing with jumps.
21279
136fb3f7
WM
212802013-04-01 Wei Mi <wmi@google.com>
21281
21282 * config/i386/i386.md (*ashl<mode>3_mask): Rewrite as define_insn.
21283 Truncate operand 2 using %b asm operand modifier.
21284 (*<shift_insn><mode>3_mask): Ditto.
21285 (*<rotate_insn><mode>3_mask): Ditto.
21286
6388c738
SB
212872013-04-01 Steven Bosscher <steven@gcc.gnu.org>
21288
21289 PR middle-end/56798
21290 * cfgbuild.c (inside_basic_block_p): Restore check broken at r197234.
21291
f7a4d826
KK
212922013-03-31 Kaz Kojima <kkojima@gcc.gnu.org>
21293
21294 * config/sh/sh.md (casesi_worker_1): Use next_active_insn instead
21295 of next_real_insn.
21296 (casesi_worker_2, casesi_shift_media, casesi_load_media): Likewise.
21297
4b943a49
LC
212982013-03-30 Lawrence Crowl <crowl@google.com>
21299
21300 * dse.c (clear_alias_sets): Remove never set.
21301 (disqualified_clear_alias_sets): Remove never set.
21302 (clear_alias_mode_pool): Remove never set.
21303 (dse_step0): Remove condition that is never true.
21304 (canon_address): Remove condition that is never true.
21305 (dse_step7): Remove condition that is never true.
21306 (rest_of_handle_dse): Remove condition that is never true.
21307 (rest_of_handle_dse::did_global): Remove never read from above.
21308 (dse_step2_spill): Remove never called from above.
21309 (dse_step5_spill): Remove never called from above.
21310
39718607
SB
213112013-03-30 Steven Bosscher <steven@gcc.gnu.org>
21312
da5c6bde
SB
21313 * doc/md.texi (Standard Names) <casesi>: Update documentation for
21314 JUMP_TABLE_DATA changes.
21315 * doc/tm.texi.in (Dispatch Tables) <ASM_OUTPUT_CASE_LABEL>: Likewise.
21316 * doc/rtl.texi (Flags) <INSN_DELETED_P, SCHED_GROUP_P>: Likewise.
21317 (Insns) <jump_table_data>: New entry.
21318 * doc/tm.texi: Regenerate.
21319
39718607
SB
21320 * cfgrtl.c (fixup_reorder_chain): Do not emit barriers to BB_FOOTER.
21321
21322 * postreload-gcse.c (bb_has_well_behaved_predecessors): Correct test
21323 for table jump at the end of a basic block using tablejump_p.
21324 * targhooks.c (default_invalid_within_doloop): Likewise.
21325 * config/rs6000/rs6000.c (TARGET_INVALID_WITHIN_DOLOOP): Remove
21326 target hook implementation that is identical to the default hook.
21327 (rs6000_invalid_within_doloop): Remove.
21328
21329 * bb-reorder.c (fix_crossing_unconditional_branches): Remove set but
21330 unused variable from tablejump_p call.
21331
21332 * rtl.def (JUMP_TABLE_DATA): New RTX_INSN object.
21333 * rtl.h (RTX_PREV, RTX_NEXT): Adjust for new JUMP_TABLE_DATA.
21334 (INSN_DELETED_P): Likewise.
21335 (emit_jump_table_data): New prototype.
21336 * gengtype.c (adjust_field_rtx_def): Handle JUMP_TABLE_DATA fields
21337 after 4th as unused.
21338 * print-rtl.c (print_rtl): Handle JUMP_TABLE_DATA.
21339 * sched-vis.c (print_insn): Likewise.
21340 * emit-rtl.c (active_insn_p): Consider JUMP_TABLE_DATA an active
21341 insn for compatibility with back ends that use next_active_insn to
21342 identify jump table data.
21343 (set_insn_deleted): Remove no longer useful JUMP_TABLE_DATA_P check.
21344 (remove_insn): Likewise.
21345 (emit_insn): Do not accept JUMP_TABLE_DATA objects in insn chains
21346 to be emitted.
21347 (emit_debug_insn, emit_jump_insn, emit_call_insn, emit_label): Idem.
21348 (emit_jump_table_data): New function.
21349
21350 * cfgbuild.c (inside_basic_block_p): A JUMP_INSN is always inside a
21351 basic block, a JUMP_TABLE_DATA never is.
21352 (control_flow_insn_p): JUMP_TABLE_DATA is not a control flow insn.
21353 * cfgrtl.c (duplicate_insn_chain): Split handling of JUMP_TABLE_DATA
21354 off from code handling real insns.
21355 * final.c (get_attr_length_1): Simplify for JUMP_INSNs.
21356 * function.c (instantiate_virtual_regs): Remove JUMP_TABLE_DATA_P
21357 test, now redundant because JUMP_TABLE_DATA is not an INSN_P insn.
21358 * gcse.c (insert_insn_end_basic_block): Likewise, JUMP_TABLE_DATA_P
21359 is not a NONDEBUG_INSN_P.
21360 * ira-costs.c (scan_one_insn): Likewise.
21361 * jump.c (mark_all_labels): Likewise.
21362 (mark_jump_label_1): Likewise.
21363 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
21364 * lra.c (get_insn_freq): Expect all insns reaching here to be in
21365 a basic block.
21366 (check_rtl): Remove JUMP_TABLE_DATA_P test, not a NONDEBUG_INSN_P insn.
21367 * predict.c (expensive_function_p): Use FOR_BB_INSNS.
21368 * reload1.c (calculate_needs_all_insns): Call set_label_offsets for
21369 JUMP_TABLE_DATA_P insns.
21370 (calculate_elim_costs_all_insns): Likewise.
21371 (set_label_offsets): Recurse on the PATTERN of JUMP_TABLE_DATA insns.
21372 (elimination_costs_in_insn): Remove redundant JUMP_TABLE_DATA_P test.
21373 (delete_output_reload): Code style fixups.
21374 * reorg.c (dbr_schedule): Move JUMP_TABLE_DATA_P up to avoid setting
21375 insn flags on this non-insn.
21376 * sched-rgn.c (add_branch_dependences): Treat JUMP_TABLE_DATA insns
21377 as scheduling barriers, for pre-change compatibility.
21378 * stmt.c (emit_case_dispatch_table): Emit jump table data not as
21379 JUMP_INSN objects but instead as JUMP_TABLE_DATA objects.
21380
21381 * config/alpha/alpha.c (alpha_does_function_need_gp): Remove
21382 redundant JUMP_TABLE_DATA_P test.
21383 * config/arm/arm.c (thumb_far_jump_used_p): Likewise.
21384 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
21385 (frv_for_each_packet): Likewise.
21386 * config/i386/i386.c (min_insn_size): Likewise.
21387 (ix86_avoid_jump_mispredicts): Likewise.
21388 * config/m32r/m32r.c (m32r_is_insn): Likewise.
21389 * config/mep/mep.c (mep_reorg_erepeat): Likewise.
21390 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
21391 (mips16_insn_length): Robustify.
21392 (mips_has_long_branch_p): Remove redundant JUMP_TABLE_DATA_P test.
21393 (mips16_split_long_branches): Likewise.
21394 * config/pa/pa.c (pa_combine_instructions): Likewise.
21395 * config/rs6000/rs6000.c (get_next_active_insn): Treat
21396 JUMP_TABLE_DATA objects as active insns, like in active_insn_p.
21397 * config/s390/s390.c (s390_chunkify_start): Treat JUMP_TABLE_DATA
21398 as contributing to pool range lengths.
21399 * config/sh/sh.c (find_barrier): Restore check for ADDR_DIFF_VEC.
21400 Remove redundant JUMP_TABLE_DATA_P test.
21401 (sh_loop_align): Likewise.
21402 (split_branches): Likewise.
21403 (sh_insn_length_adjustment): Likewise.
21404 * config/spu/spu.c (get_branch_target): Likewise.
21405
0208f7da
JH
214062013-03-29 Jan Hubicka <jh@suse.cz>
21407
21408 * lto-cgraph.c (output_profile_summary, input_profile_summary): Use
21409 gcov streaming; stream hot bb threshold to ltrans.
21410 * predict.c (get_hot_bb_threshold): Break out from ....
21411 (maybe_hot_count_p): ... here.
21412 (set_hot_bb_threshold): New function.
21413 * lto-section-in.c (lto_section_name): Add profile.
21414 * profile.h (get_hot_bb_threshold, set_hot_bb_threshold): Declare.
21415 * ipa.c: Include hash-table.h, tree-inline.h, profile.h, lto-streamer.h
21416 and data-streamer.h
21417 (histogram_entry): New structure.
21418 (histogram, histogram_pool): New global vars.
21419 (histogram_hash): New structure.
21420 (histogram_hash::hash): New method.
21421 (histogram_hash::equal): Likewise.
21422 (account_time_size): New function.
21423 (cmp_counts): New function.
21424 (dump_histogram): New function.
21425 (ipa_profile_generate_summary): New function.
21426 (ipa_profile_write_summary): New function.
21427 (ipa_profile_read_summary): New function.
21428 (ipa_profile): Decide on threshold.
e594716a
UB
21429 (pass_ipa_profile): Add ipa_profile_write_summary and
21430 ipa_profile_read_summary.
0208f7da
JH
21431 * Makefile.in (ipa.o): Update dependencies.
21432 * lto-streamer.h (LTO_section_ipa_profile): New section.
21433
5a6ccc94
GDR
214342013-03-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
21435
21436 * tree.h (VAR_P): New.
21437
39385fa6
PC
214382013-03-29 Paolo Carlini <paolo.carlini@oracle.com>
21439
21440 PR lto/56777
21441 * doc/invoke.texi ([-fwhole-program]): Fix typo.
21442
34f0d87a
SB
214432013-03-29 Steven Bosscher <steven@gcc.gnu.org>
21444
21445 * cfgbuild.c (inside_basic_block_p): Use JUMP_TABLE_DATA_P in lieu
21446 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
21447 (control_flow_insn_p): Likewise.
21448 * cfgrtl.c (duplicate_insn_chain): Likewise.
21449 * final.c (get_attr_length_1): Likewise.
21450 (shorten_branches): Likewise.
21451 (final_scan_insn): Likewise.
21452 * function.c (instantiate_virtual_regs): Likewise.
21453 * gcse.c (insert_insn_end_basic_block): Likewise.
21454 * ira-costs.c (scan_one_insn): Likewise.
21455 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
21456 * lra.c (check_rtl): Likewise.
21457 * reload1.c (elimination_costs_in_insn): Likewise.
21458 * reorg.c (follow_jumps): Likewise.
21459
21460 * config/arm/arm.c (is_jump_table): Use JUMP_TABLE_DATA_P in lieu
21461 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
21462 (thumb_far_jump_used_p): Likewise.
21463 * config/bfin/bfin.c (workaround_rts_anomaly): Likewise.
21464 (workaround_speculation): Likewise.
21465 (add_sched_insns_for_speculation): Likewise.
21466 * config/c6x/c6x.c (reorg_emit_nops): Likewise.
21467 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
21468 (frv_for_each_packet): Likewise.
21469 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Likewise.
21470 * config/ia64/ia64.c (emit_all_insn_group_barriers): Likewise.
21471 (final_emit_insn_group_barriers): Likewise.
21472 * config/m32r/m32r.c (m32r_is_insn): Likewise.
21473 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
21474 (mips16_insn_length): Likewise.
21475 * config/pa/pa.c (pa_reorg): Likewise.
21476 (pa_combine_instructions): Likewise.
21477 * config/rs6000/rs6000.c (rs6000_invalid_within_doloop): Likewise.
21478 * config/sh/sh.c (fixup_addr_diff_vecs): Likewise.
21479 (sh_reorg): Likewise.
21480 (split_branches): Likewise.
21481 * config/spu/spu.c (get_branch_target): Likewise.
21482
21483 * config/s390/s390.c (s390_chunkify_start): Simplify logic using
21484 JUMP_TABLE_DATA_P.
21485
4ac761b0
KY
214862013-03-29 Kirill Yukhin <kirill.yukhin@intel.com>
21487
39385fa6 21488 * config/i386/avx2intrin.h (_mm256_broadcastsi128_si256):
4ac761b0
KY
21489 Fix declaration name.
21490
58a49189
LC
214912013-03-28 Lawrence Crowl <crowl@google.com>
21492
21493 * graphds.h (struct graph.indicies): Remove unused.
21494 * graphite-poly.h (struct graph.original_pddrs): Remove unused.
21495 (SCOP_ORIGINAL_PDDRS): Remove unused.
21496 * sese.h (extern insert_loop_close_phis): Removed unused.
21497 (extern insert_guard_phis): Removed unused.
21498 (extern ivtype_map_elt_info): Removed unused.
21499 (new_ivtype_map_elt): Removed unused.
21500 * sese.c (ivtype_map_elt_info): Removed unused.
21501
7b3b6ae4
LC
215022013-03-28 Lawrence Crowl <crowl@google.com>
21503
21504 * Makefile.in: Add several missing include dependences.
21505 (DUMPFILE_H): New.
21506 (test-dump.o): New. This object is not added to any executable,
21507 but is present for ad-hoc testing.
21508 * bitmap.c
21509 (debug (const bitmap_head_def &)): New.
21510 (debug (const bitmap_head_def *)): New.
21511 * bitmap.h
21512 (extern debug (const bitmap_head_def &)): New.
21513 (extern debug (const bitmap_head_def *)): New.
21514 * cfg.c
21515 (debug (edge_def &)): New.
21516 (debug (edge_def *)): New.
21517 * cfghooks.c
21518 (debug (basic_block_def &)): New.
21519 (debug (basic_block_def *)): New.
21520 * dumpfile.h
21521 (dump_node (const_tree, int, FILE *)): Correct source file.
21522 * dwarf2out.c
21523 (debug (die_struct &)): New.
21524 (debug (die_struct *)): New.
21525 * dwarf2out.h
21526 (extern debug (die_struct &)): New.
21527 (extern debug (die_struct *)): New.
21528 * gimple-pretty-print.c
21529 (debug (gimple_statement_d &)): New.
21530 (debug (gimple_statement_d *)): New.
21531 * gimple-pretty-print.h
21532 (extern debug (gimple_statement_d &)): New.
21533 (extern debug (gimple_statement_d *)): New.
21534 * ira-build.c
21535 (debug (ira_allocno_copy &)): New.
21536 (debug (ira_allocno_copy *)): New.
21537 (debug (ira_allocno &)): New.
21538 (debug (ira_allocno *)): New.
21539 * ira-int.h
21540 (extern debug (ira_allocno_copy &)): New.
21541 (extern debug (ira_allocno_copy *)): New.
21542 (extern debug (ira_allocno &)): New.
21543 (extern debug (ira_allocno *)): New.
21544 * ira-lives.c
21545 (debug (live_range &)): New.
21546 (debug (live_range *)): New.
21547 * lra-int.h
21548 (debug (lra_live_range &)): New.
21549 (debug (lra_live_range *)): New.
21550 * lra-lives.c
21551 (debug (lra_live_range &)): New.
21552 (debug (lra_live_range *)): New.
21553 * omega.c
21554 (debug (omega_pb_d &)): New.
21555 (debug (omega_pb_d *)): New.
21556 * omega.h
21557 (extern debug (omega_pb_d &)): New.
21558 (extern debug (omega_pb_d *)): New.
21559 * print-rtl.c
21560 (debug (const rtx_def &)): New.
21561 (debug (const rtx_def *)): New.
21562 * print-tree.c
21563 (debug_tree (tree): Move within file.
21564 (debug_raw (const tree_node &)): New.
21565 (debug_raw (const tree_node *)): New.
21566 (dump_tree_via_hooks (const tree_node *, int)): New.
21567 (debug (const tree_node &)): New.
21568 (debug (const tree_node *)): New.
21569 (debug_verbose (const tree_node &)): New.
21570 (debug_verbose (const tree_node *)): New.
21571 (debug_head (const tree_node &)): New.
21572 (debug_head (const tree_node *)): New.
21573 (debug_body (const tree_node &)): New.
21574 (debug_body (const tree_node *)): New.
21575 (debug_vec_tree (tree): Move and reimplement in terms of dump.
21576 (debug (vec<tree, va_gc> &)): New.
21577 (debug (vec<tree, va_gc> *)): New.
21578 * rtl.h
21579 (extern debug (const rtx_def &)): New.
21580 (extern debug (const rtx_def *)): New.
21581 * sbitmap.c
21582 (debug_raw (simple_bitmap_def &)): New.
21583 (debug_raw (simple_bitmap_def *)): New.
21584 (debug (simple_bitmap_def &)): New.
21585 (debug (simple_bitmap_def *)): New.
21586 * sbitmap.h
21587 (extern debug (simple_bitmap_def &)): New.
21588 (extern debug (simple_bitmap_def *)): New.
21589 (extern debug_raw (simple_bitmap_def &)): New.
21590 (extern debug_raw (simple_bitmap_def *)): New.
21591 * sel-sched-dump.c
21592 (debug (vinsn_def &)): New.
21593 (debug (vinsn_def *)): New.
21594 (debug_verbose (vinsn_def &)): New.
21595 (debug_verbose (vinsn_def *)): New.
21596 (debug (expr_def &)): New.
21597 (debug (expr_def *)): New.
21598 (debug_verbose (expr_def &)): New.
21599 (debug_verbose (expr_def *)): New.
21600 (debug (vec<rtx> &)): New.
21601 (debug (vec<rtx> *)): New.
21602 * sel-sched-dump.h
21603 (extern debug (vinsn_def &)): New.
21604 (extern debug (vinsn_def *)): New.
21605 (extern debug_verbose (vinsn_def &)): New.
21606 (extern debug_verbose (vinsn_def *)): New.
21607 (extern debug (expr_def &)): New.
21608 (extern debug (expr_def *)): New.
21609 (extern debug_verbose (expr_def &)): New.
21610 (extern debug_verbose (expr_def *)): New.
21611 (extern debug (vec<rtx> &)): New.
21612 (extern debug (vec<rtx> *)): New.
21613 * sel-sched-ir.h
21614 (_list_iter_cond_expr): Make inline instead of static.
21615 * sreal.c
21616 (debug (sreal &)): New.
21617 (debug (sreal *)): New.
21618 * sreal.h
21619 (extern debug (sreal &)): New.
21620 (extern debug (sreal *)): New.
21621 * tree.h
21622 (extern debug_raw (const tree_node &)): New.
21623 (extern debug_raw (const tree_node *)): New.
21624 (extern debug (const tree_node &)): New.
21625 (extern debug (const tree_node *)): New.
21626 (extern debug_verbose (const tree_node &)): New.
21627 (extern debug_verbose (const tree_node *)): New.
21628 (extern debug_head (const tree_node &)): New.
21629 (extern debug_head (const tree_node *)): New.
21630 (extern debug_body (const tree_node &)): New.
21631 (extern debug_body (const tree_node *)): New.
21632 (extern debug (vec<tree, va_gc> &)): New.
21633 (extern debug (vec<tree, va_gc> *)): New.
21634 * tree-cfg.c
21635 (debug (struct loop &)): New.
21636 (debug (struct loop *)): New.
21637 (debug_verbose (struct loop &)): New.
21638 (debug_verbose (struct loop *)): New.
21639 * tree-dump.c: Add header dependence.
21640 * tree-flow.h
21641 (extern debug (struct loop &)): New.
21642 (extern debug (struct loop *)): New.
21643 (extern debug_verbose (struct loop &)): New.
21644 (extern debug_verbose (struct loop *)): New.
21645 * tree-data-ref.c
21646 (debug (data_reference &)): New.
21647 (debug (data_reference *)): New.
21648 (debug (vec<data_reference_p> &)): New.
21649 (debug (vec<data_reference_p> *)): New.
21650 (debug (vec<ddr_p> &)): New.
21651 (debug (vec<ddr_p> *)): New.
21652 * tree-data-ref.h
21653 (extern debug (data_reference &)): New.
21654 (extern debug (data_reference *)): New.
21655 (extern debug (vec<data_reference_p> &)): New.
21656 (extern debug (vec<data_reference_p> *)): New.
21657 (extern debug (vec<ddr_p> &)): New.
21658 (extern debug (vec<ddr_p> *)): New.
21659 * tree-ssa-alias.c
21660 (debug (pt_solution &)): New.
21661 (debug (pt_solution *)): New.
21662 * tree-ssa-alias.h
21663 (extern debug (pt_solution &)): New.
21664 (extern debug (pt_solution *)): New.
21665 * tree-ssa-alias.c
21666 (debug (_var_map &)): New.
21667 (debug (_var_map *)): New.
21668 (debug (tree_live_info_d &)): New.
21669 (debug (tree_live_info_d *)): New.
21670 * tree-ssa-alias.h
21671 (extern debug (_var_map &)): New.
21672 (extern debug (_var_map *)): New.
21673 (extern debug (tree_live_info_d &)): New.
21674 (extern debug (tree_live_info_d *)): New.
21675
be77e1e5
JH
216762013-03-28 Jan Hubicka <jh@suse.cz>
21677
21678 * lto-cgraph.c (merge_profile_summaries): Fix overflows.
21679
777e6976
IB
216802013-03-28 Ian Bolton <ian.bolton@arm.com>
21681
21682 * config/aarch64/aarch64.md (aarch64_can_eliminate): Keep frame
21683 record only when desired or required.
21684
9cd347ae
UB
216852013-03-28 Uros Bizjak <ubizjak@gmail.com>
21686
21687 * config/i386/i386.md (*vec_extract2vdi_1): Merge with
21688 *vec_extractv2di_1_rex64. Use x64 isa attribute.
21689
33159866 216902013-03-28 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
2a1d1991
N
21691
21692 * config/aarch64/aarch64.md (*and<mode>3_compare0): New pattern.
21693 (*andsi3_compare0_uxtw): New pattern.
21694 (*and_<SHIFT:optab><mode>3_compare0): New pattern.
21695 (*and_<SHIFT:optab>si3_compare0_uxtw): New pattern.
21696
89ab31c1
JH
216972013-03-28 Jan Hubicka <jh@suse.cz>
21698
21699 * data-streamer-in.c (streamer_read_gcov_count): New function.
21700 * gimple-streamer-out.c: Include value-prof.h.
21701 (output_gimple_stmt): Output histogram.
21702 (output_bb): Use streamer_write_gcov_count.
21703 * value-prof.c: Include data-streamer.h
21704 (dump_histogram_value): Add HIST_TYPE_MAX.
21705 (stream_out_histogram_value): New function.
21706 (stream_in_histogram_value): New function.
21707 * value-prof.h (enum hist_type): Add HIST_TYPE_MAX.
21708 (stream_out_histogram_value, stream_in_histogram_value): Declare.
21709 * data-streamer-out.c (streamer_write_gcov_count): New function.
21710 (streamer_write_gcov_count_stream): New function.
21711 * lto-cgraph.c (lto_output_edge): Update counter streaming.
21712 (lto_output_node): Likewise.
21713 (input_node, input_edge): Likewise.
21714 * lto-streamer-out.c (output_cfg): Update streaming.
21715 * lto-streamer-in.c (input_cfg): Likewise.
21716 * data-streamer.h (streamer_write_gcov_count,
21717 streamer_write_gcov_count_stream, streamer_read_gcov_count): Declare.
21718 * gimple-streamer-in.c: Include value-prof.h
21719 (input_gimple_stmt): Input histograms.
21720 (input_bb): Update profile streaming.
21721
e594716a 217222013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
b4c73eed 21723
33159866 21724 * genmodes.c (emit_max_int): New function.
8697be17 21725 (emit_insn_modes_h): Added call to emit_max_function.
39385fa6
PC
21726 * doc/rtl.texi (MAX_BITSIZE_MODE_ANY_INT, MAX_BITSIZE_MODE_ANY_MODE):
21727 Added doc.
8697be17 21728 * machmode.def: Fixed comment.
89ab31c1 21729
e594716a 217302013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
8697be17
KZ
21731
21732 * combine.c (try_combine): Removed useless assert.
b4c73eed
KZ
21733 * cselib.c (rtx_equal_for_cselib_1): Removed unnecessary parens.
21734
74946978
MP
217352013-03-28 Marek Polacek <polacek@redhat.com>
21736 Richard Biener <rguenther@suse.de>
21737
21738 PR tree-optimization/56695
21739 * tree-vect-stmts.c (vectorizable_condition): Unconditionally
21740 build signed result of a vector comparison.
21741 * tree-cfg.c (verify_gimple_comparison): Check that a result
21742 of a vector comparison has signed type.
21743
a64b9c26
RB
217442013-03-28 Richard Biener <rguenther@suse.de>
21745
21746 PR tree-optimization/37021
21747 * tree-vect-slp.c (vect_build_slp_tree): When not unrolling
21748 do not restrict gaps between groups.
21749 * tree-vect-stmts.c (vectorizable_load): Properly account for
21750 a gap between groups.
21751
a9dc2a2f
EB
217522013-03-28 Eric Botcazou <ebotcazou@adacore.com>
21753
21754 * toplev.c (process_options): Do not disable -fomit-frame-pointer on a
21755 general basis if unwind info is requested and ACCUMULATE_OUTGOING_ARGS
21756 is not enabled.
21757
53cb97f9
GP
217582013-03-27 Gerald Pfeifer <gerald@pfeifer.com>
21759
21760 * doc/invoke.texi (AVR Options): Tweak link for AVR-LibC user manual.
21761 * doc/extend.texi (Named Address Spaces): Ditto.
21762 (Variable Attributes): Ditto.
21763
b802ae5c
KT
217642013-03-27 Kai Tietz <ktietz@redhat.com>
21765
eddae10a
KT
21766 * config.build: Add support for cygwin x64 target.
21767 * config.gcc: Likewise.
21768 * config.host: Likewise.
21769 * configure.ac: Likewise
21770 * configure: Regenerated.
b802ae5c 21771
371e77e3 217722013-03-27 Kai Tietz <ktietz@redhat.com>
8269de54
KT
21773
21774 * config/i386/cygwin-stdint.h: Add support for cygwin x64 target.
21775 * config/i386/t-cygwin-w64: New file.
21776 * config/i386/cygwin-w64.h: New file.
21777 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Extend
21778 and add support for x64-cygwin target.
21779 (CPP_SPEC): Likewise.
21780 (CXX_WRAP_SPEC_LIST): Undefine before define.
21781 (LIBGCJ_SONAME): Use 15 as version.
21782
f49b33cb
RB
217832013-03-27 Richard Biener <rguenther@suse.de>
21784
21785 PR tree-optimization/56716
21786 * tree-ssa-structalias.c (perform_var_substitution): Adjust
21787 dumping for ref nodes.
21788
b37a6ce5
MJ
217892013-03-27 Martin Jambor <mjambor@suse.cz>
21790
21791 PR tree-optimization/55334
21792 * ipa-cp.c (initialize_node_lattices): Allow IPA-CP through and to
21793 restricted pointers to arrays.
21794
9469b9b2
GDR
217952013-03-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
21796
21797 * Makefile.in (.SUFFIXES): Add .cc.
21798 (.c.o): Apply same recipe for implicit rule .cc.o.
21799
7d24f650
RB
218002013-03-27 Richard Biener <rguenther@suse.de>
21801
21802 PR tree-optimization/37021
21803 * tree-vect-data-refs.c (vect_check_strided_load): Allow
21804 REALPART/IMAGPART_EXPRs around the supported refs.
21805 * tree-ssa-structalias.c (find_func_aliases): Assume that
21806 floating-point values are not used to transfer pointers.
21807
2f251a05
AI
218082013-03-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
21809
f43245d1
UB
21810 * target.def (TARGET_HAS_IFUNC_P): New target hook.
21811 * doc/tm.texi.in (TARGET_HAS_IFUNC_P): New.
21812 * doc/tm.texi: Regenerate.
21813 * targhooks.h (default_has_ifunc_p): New.
21814 * targhooks.c (default_has_ifunc_p): Ditto.
21815 * config/linux-protos.h: New file.
21816 * config/linux-android.h (TARGET_HAS_IFUNC_P): Using version of this
21817 hook for linux which disables support of indirect functions in android.
21818 * config/linux-android.c: New file.
21819 * config/t-linux-android.c: Ditto.
21820 * config.gcc: Added new object file linux-android.o.
21821 * config/i386/i386.c (ix86_get_function_versions_dispatcher):
2f251a05 21822 Using TARGET_HAS_IFUNC hook instead of HAVE_GNU_INDIRECT_FUNCTION.
f43245d1 21823 * varasm.c (do_assemble_alias): Likewise.
2f251a05
AI
21824 * configure.ac: Define HAVE_GNU_INDIRECT_FUNCTION as zero if the target
21825 doesn't support indirect functions.
21826 * configure: Regenerate.
21827
78b4e425
BC
218282013-03-27 Bin Cheng <bin.cheng@arm.com>
21829
21830 PR target/56102
21831 * config/arm/arm.c (thumb1_rtx_costs, thumb1_size_rtx_costs): Fix
21832 rtx costs for SET/ASHIFT/ASHIFTRT/LSHIFTRT/ROTATERT patterns with
21833 mult-word mode.
21834
a5ba7b92
AK
218352013-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21836
21837 * config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Define.
21838
be624986
TG
218392013-03-27 Terry Guo <terry.guo@arm.com>
21840
21841 * config/arm/arm-cores.def: Added core cortex-r7.
21842 * config/arm/arm-tune.md: Regenerated.
21843 * config/arm/arm-tables.opt: Regenerated.
21844 * doc/invoke.texi: Added entry for core cortex-r7.
21845
0a514f47
WL
218462013-03-27 Walter Lee <walt@tilera.com>
21847
21848 * config/tilegx/tilegx.c (tilegx_expand_prologue): Avoid
21849 double-decrement of next_scratch_regno.
21850
9332b0d2
WL
218512013-03-27 Walter Lee <walt@tilera.com>
21852
801d9b2a 21853 * config/tilegx/tilegx.md (insn_v1mulu): Fix predicates on
9332b0d2
WL
21854 input operands.
21855 (insn_v1mulus): Ditto.
21856 (insn_v2muls): Ditto.
21857
f54ea5dd
WL
218582013-03-27 Walter Lee <walt@tilera.com>
21859
e594716a 21860 * config/tilegx/tilegx.h (ASM_OUTPUT_ADDR_VEC_ELT): Delete extra tab.
f54ea5dd
WL
21861 (ASM_OUTPUT_ADDR_DIFF_ELT): Ditto.
21862
bf60f4ca
WL
218632013-03-27 Walter Lee <walt@tilera.com>
21864
e594716a 21865 * config/tilegx/tilegx.md (*sibcall_insn): Fix type atribute for jr.
bf60f4ca
WL
21866 (*sibcall_value): Ditto.
21867
e3b51eeb
WL
218682013-03-27 Walter Lee <walt@tilera.com>
21869
21870 * config/tilegx/tilegx.md (insn_mnz_<mode>): Replaced by ...
21871 (insn_mnz_v8qi): ... this ...
21872 (insn_mnz_v4hi): ... and this. Replace (const_int 0) with the
21873 vector equivalent.
21874 (insn_v<n>mnz): Replaced by ...
21875 (insn_v1mnz): ... this ...
21876 (insn_v2mnz): ... and this. Replace (const_int 0) with the vector
21877 equivalent.
21878 (insn_mz_<mode>): Replaced by ...
21879 (insn_mz_v8qi): ... this ...
21880 (insn_mz_v4hi): ... and this. Replace (const_int 0) with the
21881 vector equivalent.
21882 (insn_v<n>mz): Replaced by ...
21883 (insn_v1mz): ... this ...
21884 (insn_v2mz): ... and this. Replace (const_int 0) with the vector
21885 equivalent.
21886
4fc7b145
EB
218872013-03-26 Eric Botcazou <ebotcazou@adacore.com>
21888
21889 * doc/invoke.texi (SPARC options): Remove -mlittle-endian.
21890
6f33817e
RM
218912013-03-26 Roland McGrath <mcgrathr@google.com>
21892
21893 * config/arm/arm.c (arm_print_operand: case 'w'): Use fputs rather
21894 than fprintf with a non-constant, non-format string.
21895
93a4145b
UB
218962013-03-26 Uros Bizjak <ubizjak@gmail.com>
21897
21898 * config/i386/i386.md (*cmpqi_ext_1): Merge with *cmpqi_ext_1_rex64
21899 using nox64 isa attribute. Use nonimmediate_x86nomem_operand as
21900 operand 0 predicate.
21901 (*cmpqi_ext_3): Merge with *cmpqi_ext_3_rex64 using nox64 isa
21902 attribute. Use general_x64nomem_operand as operand 1 predicate.
21903 (*movqi_extv_1): Merge with *movqi_extv_1_rex64 using nox64 isa
21904 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
21905 (*movqi_extzv_2): Merge with *movqi_extzv_2_rex64 using nox64 isa
21906 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
21907 (mov<mode>_insv_1): Remove expander. Merge insn with
21908 movsi_insv_1 using SWI48 mode iterator and nox64 isa attribute.
21909 Use general_x64nomem_operand as operand 1 predicate.
21910 (addqi_ext_1): Merge with *addqi_ext_1_rex64 using nox64 isa attribute.
21911 (*testqi_ext_1): Merge with *testqi_ext_1_rex64 using nox64 isa
21912 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
21913 (*andqi_ext_1): Merge with *andqi_ext_1_rex64 using nox64 isa
21914 attribute. Use nonimmediate_x64nomem_operand as operand 2 predicate.
21915 (*<code>qi_ext_1): Merge with *<code>qi_ext_1_rex64 using nox64 isa
21916 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
21917 (*xorqi_cc_ext_1): Merge with *xorqi_cc_ext_1_rex64 using nox64
21918 isa attribute. Use general_x64nomem_operand as operand 2 predicate.
21919 * config/i386/predicates.md (nonimmediate_x64nomem_operand): New.
21920 (general_x64nomem_operand): Ditto.
21921
c6a9ed5a 219222013-03-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
df599020
SH
21923
21924 * config/rtems.opt: Add -pthread option.
21925
31b0a960
RB
219262013-03-26 Richard Biener <rguenther@suse.de>
21927
93a4145b
UB
21928 * alias.c (find_base_term): Avoid redundant and not used recursion.
21929 (base_alias_check): Get the initial base term from the caller.
31b0a960
RB
21930 (true_dependence_1): Compute and pass base terms to base_alias_check.
21931 (write_dependence_p): Likewise.
21932 (may_alias_p): Likewise.
21933
79517551
SN
219342013-03-26 Sofiane Naci <sofiane.naci@arm.com>
21935
21936 * config/aarch64/aarch64.c (aarch64_classify_address): Support
21937 PC-relative load in SI modes and above only.
21938
a76213b9
XQ
219392013-03-26 Xinyu Qi <xyqi@marvell.com>
21940
21941 * config/arm/arm.h (FIRST_IWMMXT_GR_REGNUM): Add comment.
33159866
UB
21942 * config/arm/iwmmxt.md (WCGR0): Update.
21943 (WCGR1, WCGR2, WCGR3): Likewise.
a76213b9 21944
37ff9355
UB
219452013-03-26 Uros Bizjak <ubizjak@gmail.com>
21946
21947 * config/i386/i386.md (*movdfcc_1): Merge with *movdfcc_1_rex64.
21948 Use x64 and nox64 isa attributes.
21949
30b0317c
RB
219502013-03-26 Richard Biener <rguenther@suse.de>
21951
21952 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
21953 alignment computations and rely on get_object_alignment_1
21954 for the !TYPE_P case.
21955 Commonize DECL/COMPONENT_REF handling in the ARRAY_REF path.
21956
cbcdb140
WL
219572013-03-26 Walter Lee <walt@tilera.com>
21958
21959 * config/tilegx/tilegx.h (PROFILE_BEFORE_PROLOGUE): Define.
21960 * config/tilegx/tilepro.h (PROFILE_BEFORE_PROLOGUE): Define.
21961
dd884525 219622013-03-25 Jeff Law <law@redhat.com>
be672e08 21963
33159866
UB
21964 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Add missing
21965 check for INTEGRAL_TYPE_P that was missing due to checking in
dd884525
JL
21966 wrong version of prior patch.
21967
0051d3ec
WL
219682013-03-25 Walter Lee <walt@tilera.com>
21969
21970 * config/tilegx/tilegx-builtins.h (enum tilegx_builtin): Add
21971 TILEGX_INSN_SHUFFLEBYTES1.
21972 * config/tilegx/tilegx.c (tilegx_builtin_info): Add entry for
21973 shufflebytes1.
21974 (tilegx_builtins): Ditto.
21975 * config/tilegx/tilegx.md (insn_shufflebytes1): New pattern.
21976
065a3605
WL
219772013-03-25 Walter Lee <walt@tilera.com>
21978
21979 * config/tilegx/tilegx.md (floatsisf2): New pattern.
0051d3ec
WL
21980 (floatunssisf2): New pattern.
21981 (floatsidf2): New pattern.
21982 (floatunssidf2): New pattern.
065a3605 21983
5b2a3c82
WL
219842013-03-25 Walter Lee <walt@tilera.com>
21985
21986 * config/tilegx/tilegx.c (expand_set_cint64_one_inst): Inline
21987 tests for constraint J, K, N, P.
21988
192ea533
WL
219892013-03-25 Walter Lee <walt@tilera.com>
21990
21991 * config/tilegx/tilegx.c (tilegx_asm_preferred_eh_data_format):
21992 Use indirect/pcrel encoding.
21993 * config/tilepro/tilepro.c (tilepro_asm_preferred_eh_data_format):
21994 Ditto.
21995
855e0d0b
SE
219962013-03-25 Steve Ellcey <sellcey@mips.com>
21997
21998 * config/mips/mmips-cpus.def (74kc, 74kf2_1, 74kf, 74kf, 74kf1_1,
21999 74kfx, 74kx, 74kf3_2): Add PTF_AVOID_IMADD.
22000 * config/mips/mips.c (mips_option_override): Set IMADD default.
22001 * config/mips/mips.h (PTF_AVOID_IMADD): New.
22002 (ISA_HAS_MADD_MSUB): Remove MIPS16 check.
22003 (GENERATE_MADD_MSUB): Remove TUNE_74K check, add MIPS16 check.
22004 * config/mips/mips.md (mimadd): New flag for integer madd/msub.
22005 * doc/invoke.texi (-mimadd/-mno-imadd): New.
22006
39e45653
JL
220072013-03-25 Jeff Law <law@redhat.com>
22008
22009 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Rework
22010 slightly to avoid creating and folding useless trees. Simplify
22011 slightly by restricting to INTEGER_CSTs and using int_fits_type_p.
22012
7482c470
UB
220132013-03-25 Uros Bizjak <ubizjak@gmail.com>
22014
22015 * config/i386/i386.md (*zero_extendsidi2): Merge with
22016 *zero_extendsidi2_rex64. Use x64 and nox64 isa attributes.
22017 * config/i386/predicates.md (x86_64_zext_operand): Rename from
22018 x86_64_zext_general_operand. Use nonimmediate_operand on 32bit
22019 targets. Clarify comment.
22020
4a53743e
MJ
220212013-03-25 Martin Jambor <mjambor@suse.cz>
22022
22023 * ipa-prop.c (ipa_write_jump_function): Stream simple and aritmetic
22024 pass-through jump functions differently.
22025 (ipa_read_jump_function): Likewise. Also use setter functions to set
22026 up jump functions.
22027
162712de
MJ
220282013-03-25 Martin Jambor <mjambor@suse.cz>
22029
22030 * ipa-cp.c (ipa_get_indirect_edge_target): Renamed to
22031 ipa_get_indirect_edge_target_1, added parameter agg_reps and ability to
22032 process it.
22033 (ipa_get_indirect_edge_target): New function.
22034 (devirtualization_time_bonus): New parameter known_aggs, pass it to
22035 ipa_get_indirect_edge_target. Update all callers.
22036 (ipcp_discover_new_direct_edges): New parameter aggvals. Pass it to
22037 ipa_get_indirect_edge_target_1 instead of calling
22038 ipa_get_indirect_edge_target.
22039 (create_specialized_node): Pass aggvlas to
22040 ipcp_discover_new_direct_edges.
22041
a5a4c20a
KT
220422013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22043
22044 * config/arm/arm.md (f_sels, f_seld): New types.
22045 (*cmov<mode>): New pattern.
22046 * config/arm/predicates.md (arm_vsel_comparison_operator): New
22047 predicate.
22048
f992b9fc
KT
220492013-03-25 Kai Tietz <ktietz@redhat.com>
22050
22051 * config/i386/xm-mingw32.h (__USE_MINGW_ANSI_STDIO): Enable
22052 POSIX-printf for mingw-hosted builds.
22053
c16fd676
RB
220542013-03-25 Richard Biener <rguenther@suse.de>
22055
22056 PR middle-end/56694
22057 * tree-eh.c (lower_eh_must_not_throw): Strip BLOCKs from the
22058 must-not-throw stmt location.
22059
5ad29f12
KT
220602013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22061
22062 * config/arm/arm.c (arm_emit_load_exclusive): Add acq parameter.
22063 Emit load-acquire versions when acq is true.
22064 (arm_emit_store_exclusive): Add rel parameter.
22065 Emit store-release versions when rel is true.
22066 (arm_split_compare_and_swap): Use acquire-release instructions
22067 instead.
22068 of barriers when appropriate.
22069 (arm_split_atomic_op): Likewise.
22070 * config/arm/arm.h (TARGET_HAVE_LDACQ): New macro.
22071 * config/arm/unspecs.md (VUNSPEC_LAX): New unspec.
22072 (VUNSPEC_SLX): Likewise.
22073 (VUNSPEC_LDA): Likewise.
22074 (VUNSPEC_STL): Likewise.
22075 * config/arm/sync.md (atomic_load<mode>): New pattern.
22076 (atomic_store<mode>): Likewise.
22077 (arm_load_acquire_exclusive<mode>): Likewise.
22078 (arm_load_acquire_exclusivesi): Likewise.
22079 (arm_load_acquire_exclusivedi): Likewise.
22080 (arm_store_release_exclusive<mode>): Likewise.
22081
03a7dddb
CM
220822013-03-25 Catherine Moore <clm@codesourcery.com>
22083
22084 * config/mips/constraints.md (u, Udb7 Uead, Uean, Uesp, Uib3,
22085 Uuw6, Usb4, ZS, ZT, ZU, ZV, ZW): New constraints.
22086 * config/mip/predicates.md (lwsp_swsp_operand,
22087 lw16_sw16_operand, lhu16_sh16_operand, lbu16_operand,
22088 sb16_operand, db4_operand, db7_operand, ib3_operand,
22089 sb4_operand, ub4_operand, uh4_operand, uw4_operand,
22090 uw5_operand, uw6_operand, addiur2_operand, addiusp_operand,
22091 andi16_operand): New predicates.
22092 * config/mips/mips.md (compression): New attribute.
22093 (enabled): New attribute.
22094 (length): Consider compression in computing length.
22095 (shift_compression): New code attribute.
22096 (*add<mode>3): New operands. Record compression.
22097 (sub<mode>3): Likewise.
22098 (one_cmpl<mode>2): Likewise.
22099 (*and<mode>3): Likewise.
22100 (*ior<mode>3): Likewise.
22101 (unnamed pattern for xor): Likewise.
22102 (*zero_extend<SHORT:mode><GPR:mode>2): Likewise.
22103 (*<optab><mode>3): Likewise.
22104 (*mov<mode>_internal: Likewise.
22105 * config/mips/mips-protos.h (mips_signed_immediate_p): New.
22106 (mips_unsigned_immediate_p): New.
22107 (umips_lwsp_swsp_address_p): New.
22108 (m16_based_address_p): New.
22109 * config/mips/mips-protos.h (mips_signed_immediate_p): New prototype.
22110 (mips_unsigned_immediate_p): New prototype.
22111 (lwsp_swsp_address_p): New prototype.
22112 (m16_based_address_p): New prototype.
22113 * config/mips/mips.c (mips_unsigned_immediate_p): New function.
22114 (mips_signed_immediate_p): New function.
22115 (m16_based_address_p): New function.
22116 (lwsp_swsp_address_p): New function.
22117 (mips_print_operand_punctuation): Recognize short delay slot insns
22118 for microMIPS.add<mode>3"
22119
f35c297f 221202013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
a5784ce6 22121
f35c297f
KT
22122 PR target/56720
22123 * config/arm/iterators.md (v_cmp_result): New mode attribute.
22124 * config/arm/neon.md (vcond<mode><mode>): Handle unordered cases.
22125
051b9446
RB
221262013-03-25 Richard Biener <rguenther@suse.de>
22127
22128 PR tree-optimization/56689
22129 * tree-vrp.c (execute_vrp): Mark loops for fixup if we removed
22130 any edge.
22131
374001cb
RB
221322013-03-25 Richard Biener <rguenther@suse.de>
22133
22134 * tree-ssa-loop-im.c (struct mem_ref): Use bitmap_head instead
22135 of bitmap.
22136 (memory_references): Likewise.
22137 (outermost_indep_loop, mem_ref_alloc, mark_ref_stored,
22138 gather_mem_refs_stmt, record_dep_loop, ref_indep_loop_p_1,
22139 ref_indep_loop_p_2, find_refs_for_sm): Adjust.
22140 (gather_mem_refs_in_loops): Fold into ...
22141 (analyze_memory_references): ... this. Move initialization
22142 to tree_ssa_lim_initialize.
22143 (fill_always_executed_in): Rename to ...
22144 (fill_always_executed_in_1): ... this.
22145 (fill_always_executed_in): Move contains_call computation to
22146 this new function from ...
22147 (tree_ssa_lim_initialize): ... here.
22148 (tree_ssa_lim): Call fill_always_executed_in.
22149
57895947
EB
221502013-03-25 Eric Botcazou <ebotcazou@adacore.com>
22151
22152 * postreload.c (reload_combine): Fix code detecting returns.
22153
1e1b18c1
EB
221542013-03-25 Eric Botcazou <ebotcazou@adacore.com>
22155
22156 * function.c (emit_use_return_register_into_block): On cc0 targets,
22157 do not emit the sequence between cc0 setter and user.
22158
9216baf1
KT
221592013-03-25 Kai Tietz <ktietz@redhat.com>
22160
1e1b18c1
EB
22161 * config/i386/predicates.md (local_symbolic_operand): Interpret
22162 dll-imported symbols as none-local.
9216baf1 22163
76421b44
RB
221642013-03-25 Richard Biener <rguenther@suse.de>
22165
22166 * tree-ssa-loop-im.c (struct depend): Remove.
22167 (struct lim_aux_data): Make depends a vec of gimples.
22168 (free_lim_aux_data): Adjust.
22169 (add_dependency): Likewise.
22170 (set_level): Likewise.
22171
d154bfa2
RB
221722013-03-25 Richard Biener <rguenther@suse.de>
22173
22174 PR middle-end/56434
22175 * calls.c (expand_call): Use MALLOC_ABI_ALIGNMENT to annotate
22176 the pointer returned by calls with ECF_MALLOC set.
22177
2cd9804e
UB
221782013-03-24 Uros Bizjak <ubizjak@gmail.com>
22179
acef5fe0
UB
22180 * config/i386/mmx.md (mov<mode>): Add ?!Ym,r and r,?!Ym alternatives.
22181
221822013-03-24 Uros Bizjak <ubizjak@gmail.com>
22183
22184 * config/i386/mmx.md (mov<mode>): Merge with movv2sf expander
2cd9804e
UB
22185 using MMXMODE mode iterator.
22186 (*move<mode>_internal): Merge with *movv2sf_internal and
22187 *movv2sf_internal_rex64 using MMXMODE mode iterator.
22188
225ccc68
SB
221892013-03-23 Steven Bosscher <steven@gcc.gnu.org>
22190
85c0f02d
SB
22191 * gcse.c (oprs_unchanged_p): Respect flag_gcse_lm.
22192 (record_last_mem_set_info): Likewise.
22193
225ccc68
SB
22194 * df-core.c (rest_of_handle_df_initialize): Use XCNEWVEC instead
22195 of XNEWVEC followed by memset.
22196 (df_worklist_dataflow): Use XNEWVEC instead of xmalloc with a cast.
22197
b64925dc
SB
221982013-03-23 Steven Bosscher <steven@gcc.gnu.org>
22199
22200 * config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
22201 config/epiphany/epiphany.c, config/frv/frv.c, config/ia64/ia64.c,
22202 config/iq2000/iq2000.c, config/mcore/mcore.c, config/mep/mep.c,
22203 config/mmix/mmix.c, config/pa/pa.c, config/rs6000/rs6000.c,
22204 config/s390/s390.c, config/sparc/sparc.c, config/spu/spu.c,
22205 config/stormy16/stormy16.c, config/v850/v850.c, config/xtensa/xtensa.c,
22206 dwarf2out.c, hw-doloop.c, resource.c, rtl.h : Where applicable, use
22207 the predicates NOTE_P, NONJUMP_INSN_P, JUMP_P, CALL_P, LABEL_P, and
22208 BARRIER_P instead of GET_CODE.
22209
b9aaf52e
EB
222102013-03-23 Eric Botcazou <ebotcazou@adacore.com>
22211
22212 * config/sparc/sparc.c (sparc_emit_probe_stack_range): Fix small
22213 inaccuracy in the probing code.
22214
22215 * config/sparc/sparc.md (ctrapsi4): Add predicate for operand #3.
22216 (ctrapdi4): Likewise.
22217
66de4d7c
EB
222182013-03-23 Eric Botcazou <ebotcazou@adacore.com>
22219
22220 * calls.c (expand_call): Add missing guard to code handling return
22221 of non-BLKmode structures in MSB.
22222 * function.c (expand_function_end): Likewise.
22223
4f25c8fb
EB
222242013-03-23 Eric Botcazou <ebotcazou@adacore.com>
22225
22226 * combine.c (try_combine): Adjust comment. Do not add the set of
22227 insn #0 if the destination indirectly is set or dies in insn #2.
22228 Tidy up code to distribute a new note.
22229
23b7850d
UB
222302013-03-22 Uros Bizjak <ubizjak@gmail.com>
22231
22232 * config/i386/i386.md (*movdi_internal): Set prefix_rex attribute
22233 also for alternatives 16 and 17.
22234
bed852cf
UB
222352013-03-22 Uros Bizjak <ubizjak@gmail.com>
22236
22237 * config/i386/sse.md (*mov<mode>_internal): Merge with
22238 *mov<mode>_internal_rex64. Use x64 and nox64 isa attributes.
22239 Emit insn template depending on type attribute. Use
22240 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
22241 movd instead of movq mnemonic for interunit moves. Rewrite mode
22242 attribute calculation. Remove unit attribute calculation.
22243 Set prefix attribute to maybe_vex for sselog1 and ssemov types.
22244 Set prefix_data16 attribute for DImode ssemov types.
22245 Use Ym instead of y for SSE-MMX conversion alternatives.
22246 Reorder operand constraints.
22247
1e8a7937
SB
222482013-03-22 Steven Bosscher <steven@gcc.gnu.org>
22249
22250 * df.h (df_insn_delete): Adjust prototype.
22251 * emit-rtl.c (remove_insn): Pass a basic block to df_insn_delete
22252 and let it decide whether mark the basic block dirty.
22253 (set_insn_deleted): Only pass INSN_P insns to df_insn_delete.
22254 * df-scan.c (df_insn_info_delete): New helper function, split
22255 off from df_insn_delete.
22256 (df_scan_free_bb_info): Use it.
22257 (df_insn_rescan, df_insn_rescan_all, df_process_deferred_rescans):
22258 Likewise.
22259 (df_insn_delete): Likewise. Take insn rtx as argument. Verify
22260 that the insn is actually an insn and it has a non-NULL basic block.
22261 Do not mark basic block dirty if only deleting a DEBUG_INSN.
22262
e14d094c
RB
222632013-03-22 Richard Biener <rguenther@suse.de>
22264
22265 * tree-ssa-loop-im.c (struct mem_ref): Remove indep_ref and
22266 dep_ref members.
22267 (mem_ref_alloc): Do not allocate them.
22268 (refs_independent_p): Do not query or maintain a cache.
22269
e9cf7316
RB
222702013-03-22 Richard Biener <rguenther@suse.de>
22271
22272 * tree-ssa-loop-im.c (memory_references): Drop all_refs_in_loop.
22273 (gather_mem_refs_in_loops): Do not compute it.
22274 (analyze_memory_references): Do not allocate it.
22275 (tree_ssa_lim_finalize): Do not free it.
22276 (for_all_locs_in_loop): Do not query all_refs_in_loop.
22277
f046e81b
RB
222782013-03-22 Richard Biener <rguenther@suse.de>
22279
22280 * is-a.h (as_a): Use gcc_checking_assert.
bed852cf 22281
a05c0ddf
IB
222822013-03-22 Ian Bolton <ian.bolton@arm.com>
22283
22284 * config/aarch64/aarch64.c (aarch64_print_operand): New
22285 format specifier for printing a constant in hex.
22286 * config/aarch64/aarch64.md (insv_imm<mode>): Use the X
22287 format specifier for printing second operand.
22288
c00217fc
RB
222892013-03-22 Richard Biener <rguenther@suse.de>
22290
22291 * tree-ssa-loop-im.c (memory_references): Add refs_stored_in_loop
22292 bitmaps.
22293 (gather_mem_refs_in_loops): Perform store accumulation here.
22294 (create_vop_ref_mapping_loop): Remove.
22295 (create_vop_ref_mapping): Likewise.
22296 (analyze_memory_references): Initialize refs_stored_in_loop.
bed852cf 22297 (LOOP_DEP_BIT): New define to map to bits in (in)dep_loop bitmaps.
c00217fc
RB
22298 (record_indep_loop): Remove.
22299 (record_dep_loop): New function.
22300 (ref_indep_loop_p_1): Adjust to only walk over references
22301 in the loop, not its subloops.
22302 (ref_indep_loop_p): Rename to ...
22303 (ref_indep_loop_p_2): ... this and recurse over the loop tree,
22304 maintaining a more fine-grained cache.
22305 (ref_indep_loop_p): Wrap ref_indep_loop_p_2.
22306 (tree_ssa_lim_finalize): Free refs_stored_in_loop.
22307
15d19bf8
RB
223082013-03-22 Richard Biener <rguenther@suse.de>
22309
22310 * tree-ssa-loop-im.c (struct mem_ref_locs): Remove.
22311 (struct mem_ref): Make accesses_in_loop a vec of a vec of
22312 aggregate mem_ref_loc.
22313 (free_mem_ref_locs): Inline into ...
22314 (memref_free): ... this and adjust.
22315 (mem_ref_alloc): Adjust.
22316 (mem_ref_locs_alloc): Remove.
22317 (record_mem_ref_loc): Adjust.
22318 (get_all_locs_in_loop): Rewrite into ...
22319 (for_all_locs_in_loop): ... this iterator.
22320 (rewrite_mem_ref_loc): New functor.
22321 (rewrite_mem_refs): Use for_all_locs_in_loop.
22322 (sm_set_flag_if_changed): New functor.
22323 (execute_sm_if_changed_flag_set): Use for_all_locs_in_loop.
22324 (ref_always_accessed): New functor.
22325 (ref_always_accessed_p): Use for_all_locs_in_loop.
22326
6f37411d
MG
223272013-03-21 Marc Glisse <marc.glisse@inria.fr>
22328
22329 * tree-pass.h (PROP_gimple_lvec): New.
22330 * passes.c (dump_properties): Handle PROP_gimple_lvec.
22331 (init_optimization_passes): Move pass_lower_vector.
22332 * tree-vect-generic.c (gate_expand_vector_operations_ssa): Test
22333 PROP_gimple_lvec.
22334 (pass_lower_vector): Provide PROP_gimple_lvec.
22335 (pass_lower_vector_ssa): Likewise.
22336 * cfgexpand.c (pass_expand): Require PROP_gimple_lvec.
22337
511ef689
MW
223382013-03-21 Mark Wielaard <mjw@redhat.com>
22339
22340 * dwarf2out.c (size_of_aranges): Skip DECL_IGNORED_P functions.
22341
cc1df30b
UB
223422013-03-21 Uros Bizjak <ubizjak@gmail.com>
22343
22344 * config/i386/i386.md (*movdi_internal): Disparage slightly
22345 all MMX moves to/from memory. Use Yi instead of x for SSE-MMX
22346 conversion alternatives.
22347
c845cfe1
JJ
223482013-03-21 Jakub Jelinek <jakub@redhat.com>
22349
37e99116
JJ
22350 PR middle-end/48087
22351 * diagnostic.def (DK_WERROR): New kind.
22352 * diagnostic.h (werrorcount): Define.
22353 * diagnostic.c (diagnostic_report_diagnostic): For DK_WARNING
22354 promoted to DK_ERROR, increment DK_WERROR counter instead of
22355 DK_ERROR counter.
22356 * toplev.c (toplev_main): Call print_ignored_options even if
22357 just werrorcount is non-zero. Exit with FATAL_EXIT_CODE
22358 even if just werrorcount is non-zero.
22359
c845cfe1
JJ
22360 PR debug/55608
22361 * dwarf2out.c (tree_add_const_value_attribute): Call ggc_free (array)
22362 on failure.
22363 (resolve_one_addr): Fail if referenced STRING_CST hasn't been written.
22364 (string_cst_pool_decl): New function.
22365 (optimize_one_addr_into_implicit_ptr): New function.
22366 (resolve_addr_in_expr): Optimize DWARF location expression
22367 DW_OP_addr DW_OP_stack_value where DW_OP_addr refers to some variable
22368 which doesn't live in memory, but has DW_AT_location or
22369 DW_AT_const_value, or refers to a string literal, into
22370 DW_OP_GNU_implicit_pointer.
22371 (optimize_location_into_implicit_ptr): New function.
22372 (resolve_addr): If removing DW_AT_location of a variable because
22373 it was DW_OP_addr of address of the variable, but the variable doesn't
22374 live in memory, try to emit const value attribute for the initializer.
22375
08e0cda6
MG
223762013-03-21 Marc Glisse <marc.glisse@inria.fr>
22377
22378 * tree.h (VECTOR_TYPE_P): New macro.
22379 (VECTOR_INTEGER_TYPE_P, VECTOR_FLOAT_TYPE_P, FLOAT_TYPE_P,
22380 TYPE_MODE): Use it.
22381 * fold-const.c (fold_cond_expr_with_comparison): Use build_zero_cst.
22382 VEC_COND_EXPR cannot be lvalues.
22383 (fold_ternary_loc) <VEC_COND_EXPR>: Merge with the COND_EXPR case.
22384
d08633b4
MG
223852013-03-21 Marc Glisse <marc.glisse@inria.fr>
22386
22387 * simplify-rtx.c (simplify_binary_operation_1) <VEC_CONCAT>:
22388 Restrict the transformation to equal modes.
22389
e6647190
RB
223902013-03-21 Richard Biener <rguenther@suse.de>
22391
22392 PR tree-optimization/39326
22393 * tree-ssa-loop-im.c (UNANALYZABLE_MEM_ID): New define.
22394 (MEM_ANALYZABLE): Adjust.
22395 (record_mem_ref_loc): Move bitmap ops ...
22396 (gather_mem_refs_stmt): ... here. Use the shared mem-ref for
22397 unanalyzable refs, do not record locations for it.
22398 (analyze_memory_references): Allocate ref zero as shared
22399 unanalyzable ref.
22400 (refs_independent_p): Do not test for unanalyzed mems here.
22401 (ref_indep_loop_p_1): Special-case disambiguation against
22402 the unanalyzed ref.
cc1df30b 22403 (ref_indep_loop_p): Assert we are not queried for the unanalyzed mem.
e6647190 22404
65074f54
CL
224052013-03-21 Christophe Lyon <christophe.lyon@linaro.org>
22406
22407 * config/arm/arm-protos.h (tune_params): Add
22408 prefer_neon_for_64bits field.
22409 * config/arm/arm.c (prefer_neon_for_64bits): New variable.
22410 (arm_slowmul_tune): Default prefer_neon_for_64bits to false.
22411 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
22412 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
22413 (arm_cortex_a15_tune, arm_cortex_a5_tune): Ditto.
22414 (arm_cortex_a9_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
22415 (arm_option_override): Handle -mneon-for-64bits new option.
22416 * config/arm/arm.h (TARGET_PREFER_NEON_64BITS): New macro.
22417 (prefer_neon_for_64bits): Declare new variable.
22418 * config/arm/arm.md (arch): Rename neon_onlya8 and neon_nota8 to
cc1df30b 22419 avoid_neon_for_64bits and neon_for_64bits. Remove onlya8 and nota8.
65074f54
CL
22420 (arch_enabled): Handle new arch types. Remove support for onlya8
22421 and nota8.
22422 (one_cmpldi2): Use new arch names.
bc5faa5b 22423 (zero_extend<mode>di2, extend<mode>di2): Ditto.
65074f54
CL
22424 * config/arm/arm.opt (mneon-for-64bits): Add option.
22425 * config/arm/neon.md (adddi3_neon, subdi3_neon, iordi3_neon)
22426 (anddi3_neon, xordi3_neon, ashldi3_neon, <shift>di3_neon): Use
22427 neon_for_64bits instead of nota8 and avoid_neon_for_64bits instead
22428 of onlya8.
22429 * doc/invoke.texi (-mneon-for-64bits): Document.
22430
5a2d2a79
RB
224312013-03-21 Richard Biener <rguenther@suse.de>
22432
22433 PR tree-optimization/39326
22434 * tree-ssa-loop-im.c (bb_loop_postorder): New global static.
22435 (sort_bbs_in_loop_postorder_cmp): New function.
cc1df30b 22436 (gather_mem_refs_in_loops): Assign mem-ref IDs in loop postorder.
5a2d2a79 22437
5abe1e05
RB
224382013-03-21 Richard Biener <rguenther@suse.de>
22439
22440 * tree-vect-data-refs.c (vect_update_interleaving_chain): Remove.
22441 (vect_insert_into_interleaving_chain): Likewise.
22442 (vect_drs_dependent_in_basic_block): Inline ...
22443 (vect_slp_analyze_data_ref_dependence): ... here. New function,
22444 split out from ...
22445 (vect_analyze_data_ref_dependence): ... here. Simplify.
22446 (vect_check_interleaving): Simplify.
22447 (vect_analyze_data_ref_dependences): Likewise. Split out ...
22448 (vect_slp_analyze_data_ref_dependences): ... this new function.
22449 (dr_group_sort_cmp): New function.
22450 (vect_analyze_data_ref_accesses): Compute data-reference groups
22451 here instead of in vect_analyze_data_ref_dependence. Use
22452 a more efficient algorithm.
22453 * tree-vect-slp.c (vect_slp_analyze_bb_1): Use
22454 vect_slp_analyze_data_ref_dependences. Call
22455 vect_analyze_data_ref_accesses earlier.
22456 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
22457 * tree-vectorizer.h (vect_analyze_data_ref_dependences): Adjust.
22458 (vect_slp_analyze_data_ref_dependences): New prototype.
22459
cad1735b
RB
224602013-03-21 Richard Biener <rguenther@suse.de>
22461
22462 * tree-ssa-loop-im.c (can_sm_ref_p): Do not test whether
22463 ref is stored in the loop.
22464 (find_refs_for_sm): Walk only over all stores.
22465 (store_motion_loop): Allocate from lim_bitmap_obstack.
22466 (store_motion): Likewise.
22467
141310ef
RB
224682013-03-21 Richard Biener <rguenther@suse.de>
22469
22470 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge):
22471 Update virtual SSA form.
22472
5022315a
RO
224732013-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22474
22475 * configure.ac (gcc_cv_ld_eh_frame_ciev3): New test.
22476 * configure: Regenerate.
22477 * config.in: Regenerate.
22478 * config/sol2.c (solaris_override_options): Only enforce DWARF 2
22479 if !HAVE_LD_EH_FRAME_CIEV3.
22480
50d4421c
RB
224812013-03-21 Richard Biener <rguenther@suse.de>
22482
22483 * tree-cfg.c (verify_expr_no_block): New function.
22484 (verify_expr_location_1): Verify that neither DECL_DEBUG_EXPR
22485 nor DECL_VALUE_EXPR have locations with associated blocks.
22486 * tree-ssa-live.c (clear_unused_block_pointer_1): Remove.
22487 (clear_unused_block_pointer): Remove code dealing with
22488 blocks in DECL_DEBUG_EXPR locations.
22489
839b422f
RB
224902013-03-21 Richard Biener <rguenther@suse.de>
22491
22492 * tree.h (DECL_DEBUG_EXPR_IS_FROM): Rename to ...
22493 (DECL_HAS_DEBUG_EXPR_P): ... this. Guard properly.
22494 * tree.c (copy_node_stat): Do not copy DECL_HAS_DEBUG_EXPR_P.
22495 * dwarf2out.c (add_var_loc_to_decl): Use DECL_HAS_DEBUG_EXPR_P
22496 instead of DECL_DEBUG_EXPR_IS_FROM.
22497 * gimplify.c (gimplify_modify_expr): Likewise.
22498 * tree-cfg.c (verify_expr_location_1): Likewise.
22499 * tree-complex.c (create_one_component_var): Likewise.
22500 * tree-sra.c (create_access_replacement): Likewise.
22501 * tree-ssa-live.c (clear_unused_block_pointer_1): Likewise.
22502 (clear_unused_block_pointer): Likewise.
22503 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
22504 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
22505 * var-tracking.c (var_debug_decl): Likewise.
22506 (track_expr_p): Likewise.
22507 * tree-inline.c (add_local_variables): Likewise. Set
22508 DECL_HAS_DEBUG_EXPR_P after copying it.
22509 * tree-diagnostic.c (default_tree_printer): Use DECL_HAS_DEBUG_EXPR_P
22510 instead of DECL_DEBUG_EXPR_IS_FROM. Guard properly.
22511
fe04878d
UB
225122013-03-21 Uros Bizjak <ubizjak@gmail.com>
22513
22514 PR bootstrap/56656
22515 * configure.ac (HAVE_AS_IX86_INTERUNIT_MOVQ): New test.
22516 * configure: Regenerate.
22517 * config.in: Regenerate.
22518 * config/i386/i386.md (*movdf_internal): Use
22519 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
22520 movd instead of movq mnemonic for interunit moves.
22521 (*movdi_internal): Ditto.
22522
bd059b26 225232013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
fa2e9a58
N
22524
22525 * config/aarch64/aarch64-simd.md (simd_fabd): New Attribute.
22526 (abd<mode>_3): New pattern.
22527 (aba<mode>_3): New pattern.
22528 (fabd<mode>_3): New pattern.
22529
bd059b26 225302013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
50ce6f88
N
22531
22532 * config/aarch64/aarch64-elf.h (REGISTER_PREFIX): Remove.
22533 * config/aarch64/aarch64.c (aarch64_print_operand): Remove all
22534 occurrence of REGISTER_PREFIX as its empty string.
22535
4f1f78b9
JL
225362013-03-20 Jeff Law <law@redhat.com>
22537
22538 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Record
22539 addititional equivalences for equality comparisons between an SSA_NAME
22540 and a constant where the SSA_NAME was set from a widening conversion.
22541
327a1118
WL
225422013-03-20 Walter Lee <walt@tilera.com>
22543
22544 * config/tilegx/sync.md (atomic_test_and_set): New pattern.
22545
813e0036
UB
225462013-03-20 Uros Bizjak <ubizjak@gmail.com>
22547
22548 * config/i386/i386.md (*movoi_internal_avx): Emit insn template
22549 depending on type attribute.
22550 (*movti_internal): Ditto.
22551 (*movtf_internal): Ditto.
22552 (*movxf_internal): Ditto.
22553 (*movdf_internal): Ditto.
22554 (*movsf_internal): Ditto.
22555
7cf34aae
UB
225562013-03-20 Uros Bizjak <ubizjak@gmail.com>
22557
22558 * config/i386/i386.md (*movti_internal): Set prefix attribute to
22559 maybe_vex for sselog1 and ssemov types.
22560 (*movdi_internal): Reorder operand constraints.
22561 (*movsi_internal): Ditto. Set prefix attribute to
22562 maybe_vex for sselog1 and ssemov types.
22563 (*movtf_internal): Set prefix attribute to maybe_vex
22564 for sselog1 and ssemov types.
22565 (*movdf_internal): Ditto. Set prefix_data16 attribute for
22566 DImode ssemov types. Reorder operand constraints.
22567 (*movsf_internal): Set type of alternatives 3,4 to imov. Set prefix
22568 attribute to maybe_vex for sselog1 and ssemov types. Set prefix_data16
22569 attribute for SImode ssemov types. Reorder operand constraints.
22570
19321415
MJ
225712013-03-20 Martin Jambor <mjambor@suse.cz>
22572
22573 * params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): New parameter.
22574 * ipa-cp.c (hint_time_bonus): Add abonus for known array indices.
22575
12211b99 225762013-03-20 Pat Haugen <pthaugen@us.ibm.com>
c6d5ff83
MM
22577
22578 * config/rs6000/predicates.md (indexed_address, update_address_mem
22579 update_indexed_address_mem): New predicates.
22580 * config/rs6000/vsx.md (vsx_extract_<mode>_zero): Set correct "type"
22581 attribute for load/store instructions.
22582 * config/rs6000/dfp.md (movsd_store): Likewise.
22583 (movsd_load): Likewise.
22584 * config/rs6000/rs6000.md (zero_extend<mode>di2_internal1): Likewise.
22585 (unnamed HI->DI extend define_insn): Likewise.
22586 (unnamed SI->DI extend define_insn): Likewise.
22587 (unnamed QI->SI extend define_insn): Likewise.
22588 (unnamed QI->HI extend define_insn): Likewise.
22589 (unnamed HI->SI extend define_insn): Likewise.
22590 (unnamed HI->SI extend define_insn): Likewise.
22591 (extendsfdf2_fpr): Likewise.
22592 (movsi_internal1): Likewise.
22593 (movsi_internal1_single): Likewise.
22594 (movhi_internal): Likewise.
22595 (movqi_internal): Likewise.
22596 (movcc_internal1): Correct mnemonic for stw insn. Set correct "type"
22597 attribute for load/store instructions.
22598 (mov<mode>_hardfloat): Set correct "type" attribute for load/store
22599 instructions.
22600 (mov<mode>_softfloat): Likewise.
22601 (mov<mode>_hardfloat32): Likewise.
22602 (mov<mode>_hardfloat64): Likewise.
22603 (mov<mode>_softfloat64): Likewise.
22604 (movdi_internal32): Likewise.
22605 (movdi_internal64): Likewise.
22606 (probe_stack_<mode>): Likewise.
22607
226082013-03-20 Michael Meissner <meissner@linux.vnet.ibm.com>
22609
22610 * config/rs6000/vector.md (VEC_R): Add 32-bit integer, binary
22611 floating point, and decimal floating point to reload iterator.
22612
22613 * config/rs6000/constraints.md (wl constraint): New constraints to
22614 return FLOAT_REGS if certain options are used to reduce the number
22615 of separate patterns that exist in the file.
22616 (wx constraint): Likewise.
22617 (wz constraint): Likewise.
22618
22619 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
22620 -mdebug=reg, print wg, wl, wx, and wz constraints.
22621 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
22622 Initialize the reload functions for 64-bit binary/decimal floating
22623 point types.
22624 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
22625 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
22626 create the buffer on the stack to overcome not having a 32-bit
22627 load and store.
22628 (rs6000_emit_move): Likewise.
22629 (rs6000_secondary_memory_needed_rtx): Likewise.
22630 (rs6000_alloc_sdmode_stack_slot): Likewise.
22631 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
22632 via xxlxor, just like DFmode 0.0.
22633
22634 * config/rs6000/rs6000.h (TARGET_NO_SDMODE_STACK): New macro,
22635 define as 1 if we are running on a power7 or newer.
22636 (enum r6000_reg_class_enum): Add new constraints.
22637
22638 * config/rs6000/dfp.md (movsd): Delete, combine with binary
22639 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
22640 with other moves by using conditional constraits (wg). Use LFIWZX
bd059b26 22641 and STFIWX for loading SDmode on power7. Use xxlxor to create 0.0f.
c6d5ff83
MM
22642 (movsd splitter): Likewise.
22643 (movsd_hardfloat): Likewise.
22644 (movsd_softfloat): Likewise.
22645
22646 * config/rs6000/rs6000.md (FMOVE32): New iterators to combine
22647 binary and decimal floating point moves.
22648 (fmove_ok): New attributes to combine binary and decimal floating
22649 point moves, and to combine power6x (mfpgpr) moves along normal
22650 floating moves.
22651 (real_value_to_target): Likewise.
22652 (f32_lr): Likewise.
22653 (f32_lm): Likewise.
22654 (f32_li): Likewise.
22655 (f32_sr): Likewise.
22656 (f32_sm): Likewise.
22657 (f32_si): Likewise.
22658 (movsf): Combine binary and decimal floating point moves. Combine
22659 power6x (mfpgpr) moves with other moves by using conditional
bd059b26 22660 constraits (wg). Use LFIWZX and STFIWX for loading SDmode on power7.
c6d5ff83
MM
22661 (mov<mode> for SFmode/SDmode); Likewise.
22662 (SFmode/SDmode splitters): Likewise.
22663 (movsf_hardfloat): Likewise.
22664 (mov<mode>_hardfloat for SFmode/SDmode): Likewise.
22665 (movsf_softfloat): Likewise.
22666 (mov<mode>_softfloat for SFmode/SDmode): Likewise.
22667
22668 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wl,
22669 wx and wz constraints.
22670
22671 * config/rs6000/constraints.md (wg constraint): New constraint to
22672 return FLOAT_REGS if -mmfpgpr (power6x) was used.
22673
22674 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wg
22675 constraint.
22676
22677 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
22678 -mdebug=reg, print wg, wl, wx, and wz constraints.
22679 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
22680 Initialize the reload functions for 64-bit binary/decimal floating
22681 point types.
22682 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
22683 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
22684 create the buffer on the stack to overcome not having a 32-bit
22685 load and store.
22686 (rs6000_emit_move): Likewise.
22687 (rs6000_secondary_memory_needed_rtx): Likewise.
22688 (rs6000_alloc_sdmode_stack_slot): Likewise.
22689 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
22690 via xxlxor, just like DFmode 0.0.
22691
c6d5ff83
MM
22692 * config/rs6000/dfp.md (movdd): Delete, combine with binary
22693 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
22694 with other moves by using conditional constraits (wg). Use LFIWZX
22695 and STFIWX for loading SDmode on power7.
22696 (movdd splitters): Likewise.
22697 (movdd_hardfloat32): Likewise.
22698 (movdd_softfloat32): Likewise.
22699 (movdd_hardfloat64_mfpgpr): Likewise.
22700 (movdd_hardfloat64): Likewise.
22701 (movdd_softfloat64): Likewise.
22702
22703 * config/rs6000/rs6000.md (FMOVE64): New iterators to combine
22704 64-bit binary and decimal floating point moves.
22705 (FMOVE64X): Likewise.
22706 (movdf): Combine 64-bit binary and decimal floating point moves.
22707 Combine power6x (mfpgpr) moves with other moves by using
22708 conditional constraits (wg).
22709 (mov<mode> for DFmode/DDmode): Likewise.
22710 (DFmode/DDmode splitters): Likewise.
22711 (movdf_hardfloat32): Likewise.
22712 (mov<mode>_hardfloat32 for DFmode/DDmode): Likewise.
22713 (movdf_softfloat32): Likewise.
22714 (movdf_hardfloat64_mfpgpr): Likewise.
22715 (movdf_hardfloat64): Likewise.
22716 (mov<mode>_hardfloat64 for DFmode/DDmode): Likewise.
22717 (movdf_softfloat64): Likewise.
22718 (mov<mode>_softfloat64 for DFmode/DDmode): Likewise.
22719 (reload_<mode>_load): Move to later in the file so they aren't in
22720 the middle of the floating point move insns.
22721 (reload_<mode>_store): Likewise.
22722
22723 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wg
22724 constraint.
22725
22726 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print out wg
22727 constraint if -mdebug=reg.
bd059b26
UB
22728 (rs6000_initi_hard_regno_mode_ok): Enable wg constraint if -mfpgpr.
22729 Enable using dd reload support if needed.
c6d5ff83
MM
22730
22731 * config/rs6000/dfp.md (movtd): Delete, combine with 128-bit
22732 binary and decimal floating point moves in rs6000.md.
22733 (movtd_internal): Likewise.
22734
22735 * config/rs6000/rs6000.md (FMOVE128): Combine 128-bit binary and
22736 decimal floating point moves.
22737 (movtf): Likewise.
22738 (movtf_internal): Likewise.
22739 (mov<mode>_internal, TDmode/TFmode): Likewise.
22740 (movtf_softfloat): Likewise.
22741 (mov<mode>_softfloat, TDmode/TFmode): Likewise.
22742
22743 * config/rs6000/rs6000.md (movdi_mfpgpr): Delete, combine with
22744 movdi_internal64, using wg constraint for move direct operations.
22745 (movdi_internal64): Likewise.
22746
22747 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print
22748 MODES_TIEABLE_P for selected modes. Print the numerical value of
22749 the various virtual registers. Use GPR/FPR first/last values,
22750 instead of hard coding the register numbers. Print which modes
22751 have reload functions registered.
bd059b26
UB
22752 (rs6000_option_override_internal): If -mdebug=reg, trace the options
22753 settings before/after setting cpu, target and subtarget settings.
22754 (rs6000_secondary_reload_trace): Improve the RTL dump for -mdebug=addr
22755 and for secondary reload failures in rs6000_secondary_reload_inner.
c6d5ff83
MM
22756 (rs6000_secondary_reload_fail): Likewise.
22757 (rs6000_secondary_reload_inner): Likewise.
22758
22759 * config/rs6000/rs6000.md (FIRST_GPR_REGNO): Add convenience
22760 macros for first/last GPR and FPR registers.
22761 (LAST_GPR_REGNO): Likewise.
22762 (FIRST_FPR_REGNO): Likewise.
22763 (LAST_FPR_REGNO): Likewise.
22764
22765 * config/rs6000/vector.md (mul<mode>3): Use the combined macro
22766 VECTOR_UNIT_ALTIVEC_OR_VSX_P instead of separate calls to
22767 VECTOR_UNIT_ALTIVEC_P and VECTOR_UNIT_VSX_P.
22768 (vcond<mode><mode>): Likewise.
22769 (vcondu<mode><mode>): Likewise.
22770 (vector_gtu<mode>): Likewise.
22771 (vector_gte<mode>): Likewise.
22772 (xor<mode>3): Don't allow logical operations on TImode in 32-bit
bd059b26 22773 to prevent the compiler from converting DImode operations to TImode.
c6d5ff83
MM
22774 (ior<mode>3): Likewise.
22775 (and<mode>3): Likewise.
22776 (one_cmpl<mode>2): Likewise.
22777 (nor<mode>3): Likewise.
22778 (andc<mode>3): Likewise.
22779
22780 * config/rs6000/constraints.md (wt constraint): New constraint
22781 that returns VSX_REGS if TImode is allowed in VSX registers.
22782
22783 * config/rs6000/predicates.md (easy_fp_constant): 0.0f is an easy
22784 constant under VSX.
22785
22786 * config/rs6000/rs6000-modes.def (PTImode): Define, PTImode is
22787 similar to TImode, but it is restricted to being in the GPRs.
22788
22789 * config/rs6000/rs6000.opt (-mvsx-timode): New switch to allow
22790 TImode to occupy a single VSX register.
22791
22792 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Default to
22793 -mvsx-timode for power7/power8.
22794 (power7 cpu): Likewise.
22795 (power8 cpu): Likewise.
22796
22797 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Make
22798 sure that TFmode/TDmode take up two registers if they are ever
22799 allowed in the upper VSX registers.
22800 (rs6000_hard_regno_mode_ok): If -mvsx-timode, allow TImode in VSX
22801 registers.
22802 (rs6000_init_hard_regno_mode_ok): Likewise.
22803 (rs6000_debug_reg_global): Add debugging for PTImode and wt
22804 constraint. Print if LRA is turned on.
22805 (rs6000_option_override_internal): Give an error if -mvsx-timode
22806 and VSX is not enabled.
22807 (invalid_e500_subreg): Handle PTImode, restricting it to GPRs. If
22808 -mvsx-timode, restrict TImode to reg+reg addressing, and PTImode
22809 to reg+offset addressing. Use PTImode when checking offset
22810 addresses for validity.
22811 (reg_offset_addressing_ok_p): Likewise.
22812 (rs6000_legitimate_offset_address_p): Likewise.
22813 (rs6000_legitimize_address): Likewise.
22814 (rs6000_legitimize_reload_address): Likewise.
22815 (rs6000_legitimate_address_p): Likewise.
22816 (rs6000_eliminate_indexed_memrefs): Likewise.
22817 (rs6000_emit_move): Likewise.
22818 (rs6000_secondary_reload): Likewise.
22819 (rs6000_secondary_reload_inner): Handle PTImode. Allow 64-bit
22820 reloads to fpr registers to continue to use reg+offset addressing,
22821 but 64-bit reloads to altivec registers need reg+reg addressing.
22822 Drop test for PRE_MODIFY, since VSX loads/stores no longer support
22823 it. Treat LO_SUM like a PLUS operation.
22824 (rs6000_secondary_reload_class): If type is 64-bit, prefer to use
bd059b26 22825 FLOAT_REGS instead of VSX_RGS to allow use of reg+offset addressing.
c6d5ff83
MM
22826 (rs6000_cannot_change_mode_class): Do not allow TImode in VSX
22827 registers to share a register with a smaller sized type, since VSX
22828 puts scalars in the upper 64-bits.
22829 (print_operand): Add support for PTImode.
22830 (rs6000_register_move_cost): Use VECTOR_MEM_VSX_P instead of
22831 VECTOR_UNIT_VSX_P to catch types that can be loaded in VSX
22832 registers, but don't have arithmetic support.
22833 (rs6000_memory_move_cost): Add test for VSX.
22834 (rs6000_opt_masks): Add -mvsx-timode.
22835
22836 * config/rs6000/vsx.md (VSm): Change to use 64-bit aligned moves
22837 for TImode.
22838 (VSs): Likewise.
22839 (VSr): Use wt constraint for TImode.
22840 (VSv): Drop TImode support.
22841 (vsx_movti): Delete, replace with versions for 32-bit and 64-bit.
22842 (vsx_movti_64bit): Likewise.
22843 (vsx_movti_32bit): Likewise.
22844 (vec_store_<mode>): Use VSX iterator instead of vector iterator.
22845 (vsx_and<mode>3): Delete use of '?' constraint on inputs, just put
22846 one '?' on the appropriate output constraint. Do not allow TImode
22847 logical operations on 32-bit systems.
22848 (vsx_ior<mode>3): Likewise.
22849 (vsx_xor<mode>3): Likewise.
22850 (vsx_one_cmpl<mode>2): Likewise.
22851 (vsx_nor<mode>3): Likewise.
22852 (vsx_andc<mode>3): Likewise.
22853 (vsx_concat_<mode>): Likewise.
22854 (vsx_xxpermdi_<mode>): Fix thinko for non V2DF/V2DI modes.
22855
22856 * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Map from
22857 OPTION_MASK_VSX_TIMODE.
22858 (enum rs6000_reg_class_enum): Add RS6000_CONSTRAINT_wt.
22859 (STACK_SAVEAREA_MODE): Use PTImode instead of TImode.
22860
22861 * config/rs6000/rs6000.md (INT mode attribute): Add PTImode.
22862 (TI2 iterator): New iterator for TImode, PTImode.
22863 (wd mode attribute): Add values for vector types.
bd059b26
UB
22864 (movti_string): Replace TI move operations with operations for TImode
22865 and PTImode. Add support for TImode being allowed in VSX registers.
c6d5ff83
MM
22866 (mov<mode>_string, TImode/PTImode): Likewise.
22867 (movti_ppc64): Likewise.
22868 (mov<mode>_ppc64, TImode/PTImode): Likewise.
22869 (TI mode splitters): Likewise.
22870
22871 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wt
22872 constraint.
22873
1fc5eced
MG
228742013-03-20 Marc Glisse <marc.glisse@inria.fr>
22875
22876 PR tree-optimization/56355
22877 * fold-const.c (tree_binary_nonnegative_warnv_p) <MULT_EXPR>:
22878 Also handle integers with undefined overflow.
22879
22c4c869
CM
228802013-03-20 Catherine Moore <clm@codesourcery.com>
22881 Maciej W. Rozycki <macro@codesourcery.com>
22882 Tom de Vries <tom@codesourcery.com>
12211b99 22883 Nathan Sidwell <nathan@codesourcery.com>
22c4c869
CM
22884 Iain Sandoe <iain@codesourcery.com>
22885 Nathan Froyd <froydnj@codesourcery.com>
12211b99 22886 Chao-ying Fu <fu@mips.com>
22c4c869
CM
22887
22888 * doc/extend.texi: (micromips, nomicromips, nocompression):
7cf34aae 22889 Document new function attributes.
22c4c869
CM
22890 * doc/invoke.texi (minterlink-compressed, mmicromips,
22891 m14k, m14ke, m14kec): Document new options.
22892 (minterlink-mips16): Update documentation.
22893 * doc/md.texi (ZC, ZD): Document new constraints.
22894 * configure.ac (gcc_cv_as_micromips): Check if linker
22895 supports the .set micromips directive.
22896 * configure: Regenerate.
22897 * config.in: Regenerate.
22898 * config/mips/mips-tables.opt: Regenerate.
22899 * config/mips/micromips.md: New file.
22900 * constraints.md (ZC, ZD): New constraints.
22901 * config/mips/predicates.md (movep_src_register): New predicate.
22902 (movep_src_operand): New predicate.
22903 (non_volatile_mem_operand): New predicate.
22904 * config/mips/mips.md (multimem): New type.
22905 (length): Differentiate between 17-bit and 18-bit branch offsets.
22906 (MOVEP1, MOVEP2): New mode iterator.
33159866 22907 (mov_<load>l): Use ZC constraint.
22c4c869
CM
22908 (mov_<load>r): Likewise.
22909 (mov_<store>l): Likewise.
22910 (mov_<store>r): Likewise.
22911 (*branch_equality<mode>_inverted): Add microMIPS support.
22912 (*branch_equality<mode>): Likewise.
22913 (*jump_absolute): Likewise.
22914 (indirect_jump_<mode>): Likewise.
22915 (tablejump_<mode>): Likewise.
22916 (<optab>_internal): Likewise.
22917 (sibcall_internal): Likewise.
22918 (sibcall_value_internal): Likewise.
22919 (prefetch): Use constraint ZD.
22920 * config/mips/mips.opt (minterlink-compressed): New option.
22921 (minterlink-mips16): Now an alias for minterlink-compressed.
22922 (mmicromips): New option.
22923 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
22924 (compare_and_swap_12): Likewise.
22925 (sync_add<mode>): Likewise.
22926 (sync_<optab>_12): Likewise.
22927 (sync_old_<optab>_12): Likewise.
22928 (sync_new_<optab>_12): Likewise.
22929 (sync_nand_12): Likewise.
22930 (sync_old_nand_12): Likewise.
22931 (sync_new_nand_12): Likewise.
22932 (sync_sub<mode>): Likewise.
22933 (sync_old_add<mode>): Likewise.
22934 (sync_old_sub<mode>): Likewise.
22935 (sync_new_add<mode>): Likewise.
22936 (sync_new_sub<mode>): Likewise.
22937 (sync_<optab><mode>): Likewise.
22938 (sync_old_<optab><mode>): Likewise.
22939 (sync_new_<optab><mode>): Likewise.
22940 (sync_nand<mode>): Likewise.
22941 (sync_old_nand<mode>): Likewise.
22942 (sync_new_nand<mode>): Likewise.
22943 (sync_lock_test_and_set<mode>): Likewise.
22944 (test_and_set_12): Likewise.
22945 (atomic_compare_and_swap<mode>): Likewise.
22946 (atomic_exchange<mode>_llsc): Likewise.
22947 (atomic_fetch_add<mode>_llsc): Likewise.
22948 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
22949 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
22950 (umips_save_restore_pattern_p): Likewise.
22951 (umips_load_store_pair_p): Likewise.
22952 (umips_output_load_store_pair): Likewise.
22953 (umips_movep_target_p): Likewise.
22954 (umips_12bit_offset_address_p): Likewise.
22955 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
22956 (mips_base_mips16): Rename this...
22957 (mips_base_compression_flags): ...to this. Update all uses.
22958 (mips_attribute_table): Add micromips, nomicromips and nocompression.
22959 (mips_mips16_decl_p): Delete.
22960 (mips_nomips16_decl_p): Delete.
33159866 22961 (mips_get_compress_on_flags): New function.
22c4c869
CM
22962 (mips_get_compress_off_flags): New function.
22963 (mips_get_compress_mode): New function.
22964 (mips_get_compress_on_name): New function.
22965 (mips_get_compress_off_name): New function.
22966 (mips_insert_attributes): Support multiple compression types.
22967 (mips_merge_decl_attributes): Likewise.
22968 (umips_12bit_offset_address_p): New function.
22969 (mips_start_function_definition): Emit .set micromips directive.
22970 (mips_call_may_need_jalx_p): New function.
22971 (mips_function_ok_for_sibcall): Add microMIPS support.
22972 (mips_print_operand_punctuation): Support short delay slots and
22973 compact jumps.
22974 (umips_swm_mask, umips_swm_encoding): New.
22975 (umips_build_save_restore): New function.
22976 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
22977 (was_mips16_p): Remove.
22978 (old_compression_mode): New.
22979 (mips_set_compression_mode): New function.
22980 (mips_set_current_function): Add microMIPS support.
22981 (mips_option_override): Likewise.
22982 (umips_save_restore_pattern_p): New function.
22983 (umips_output_save_restore): New function.
22984 (umips_load_store_pair_p_1): New function.
22985 (umips_load_store_pair_p): New function.
22986 (umips_output_load_store_pair_1): New function.
22987 (umips_output_load_store_pair): New function.
22988 (umips_movep_target_p) New function.
22989 (mips_prepare_pch_save): Add microMIPS support.
22990 * config/mips/mips.h (TARGET_COMPRESSION): New.
22991 (TARGET_CPU_CPP_BUILTINS): Update macro
22992 to use new compression flags and to support microMIPS.
22993 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
22994 (MIPS_ARCH_FLOAT_SPEC): Likewise.
22995 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
22996 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
22997 (ASM_SPEC): Support mmicromips and mno-micromips.
22998 (M16STORE_REG_P): New macro.
22999 (MIPS_CALL): Support TARGET_MICROMIPS.
23000 (MICROMIPS_J): New macro.
23001 (mips_base_mips16): Rename this...
23002 (mips_base_compression_flags): ...to this.
23003 (UMIPS_12BIT_OFFSET_P): New macro.
23004 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
23005 (MULTILIB_DIRNAMES): Likewise.
92a8d7a7
RB
230062013-03-20 Richard Biener <rguenther@suse.de>
23007
23008 PR tree-optimization/56661
23009 * tree-ssa-sccvn.c (visit_use): Only value-number calls if
23010 the result does not have to be distinct.
23011
54714c68
RB
230122013-03-20 Richard Biener <rguenther@suse.de>
23013
23014 * tree-inline.c (copy_tree_body_r): Sync MEM_REF code with
23015 remap_gimple_op_r.
23016
cca1130d 230172013-03-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 23018 Steven Bosscher <steven@gcc.gnu.org>
cca1130d
BS
23019
23020 PR rtl-optimization/56605
23021 * loop-iv.c (implies_p): Handle equal RTXs and subregs.
23022
2a930377
UB
230232013-03-20 Uros Bizjak <ubizjak@gmail.com>
23024
23025 PR bootstrap/56656
23026 * config/i386/i386.md (*movdi_internal): Handle broken assemblers
23027 that require movd instead of movq.
23028
d6d305fe
RB
230292013-03-20 Richard Biener <rguenther@suse.de>
23030
23031 * tree-ssa-structalias.c (struct variable_info): Add pointer
23032 to the first field of an aggregate with sub-vars. Make
23033 this and the pointer to the next subfield its ID.
23034 (vi_next): New function.
23035 (nothing_id, anything_id, readonly_id, escaped_id, nonlocal_id,
23036 storedanything_id, integer_id): Increment by one.
23037 (new_var_info, get_call_vi, lookup_call_clobber_vi,
23038 get_call_clobber_vi): Adjust.
23039 (solution_set_expand): Simplify and speedup.
23040 (solution_set_add): Inline into ...
23041 (set_union_with_increment): ... this. Adjust accordingly.
23042 (do_sd_constraint): Likewise.
23043 (do_ds_constraint): Likewise.
23044 (do_complex_constraint): Simplify.
23045 (build_pred_graph): Adjust.
23046 (solve_graph): Likewise. Simplify and speedup.
23047 (get_constraint_for_ssa_var, get_constraint_for_ptr_offset,
23048 get_constraint_for_component_ref, get_constraint_for_1,
23049 first_vi_for_offset, first_or_preceding_vi_for_offset,
23050 create_function_info_for, create_variable_info_for_1,
23051 create_variable_info_for, intra_create_variable_infos): Adjust.
23052 (init_base_vars): Push NULL for ID zero.
23053 (compute_points_to_sets): Adjust.
23054
a271b42d
RB
230552013-03-20 Richard Biener <rguenther@suse.de>
23056
23057 * cfgloop.c (verify_loop_structure): Streamline and avoid
23058 ICEing on corrupt loop tree.
23059 * graph.c (draw_cfg_nodes_for_loop): Avoid ICEing on corrupt
23060 loop tree.
23061
ebd65954
RB
230622013-03-20 Richard Biener <rguenther@suse.de>
23063
23064 * tree-vect-loop-manip.c (slpeel_can_duplicate_loop_p): Do not
23065 check whether an SSA update is needed.
23066
4547b7ee
RS
230672013-03-20 Richard Sandiford <rdsandiford@googlemail.com>
23068
23069 * config/mips/constraints.md (T): Rename to...
23070 (Yf): ...this.
23071 (U): Rename to...
23072 (Yd): ...this.
23073 * config/mips/mips.md (*movdi_64bit, *movdi_64bit_mips16)
23074 (*mov<mode>_internal, *mov<mode>_mips16): Update accordingly.
23075
0b8cdc58
IB
230762013-03-19 Ian Bolton <ian.bolton@arm.com>
23077
23078 * config/aarch64/aarch64.md (*sub<mode>3_carryin): New pattern.
23079 (*subsi3_carryin_uxtw): Likewise.
23080
5977a10d
IB
230812013-03-19 Ian Bolton <ian.bolton@arm.com>
23082
23083 * config/aarch64/aarch64.md (*ror<mode>3_insn): New pattern.
23084 (*rorsi3_insn_uxtw): Likewise.
23085
bd83ff2c
IB
230862013-03-19 Ian Bolton <ian.bolton@arm.com>
23087
23088 * config/aarch64/aarch64.md (*extr<mode>5_insn): New pattern.
23089 (*extrsi5_insn_uxtw): Likewise.
23090
ba65123c
RB
230912013-03-19 Richard Biener <rguenther@suse.de>
23092
23093 PR tree-optimization/56273
23094 * passes.c (init_optimization_passes): Move second VRP after DOM.
23095
2eac0476
UB
230962013-03-19 Uros Bizjak <ubizjak@gmail.com>
23097
23098 * config/i386/i386.md (*movti_internal): Merge from
23099 *movti_internal_rex64 and *movti_internal_sse. Use x64 isa attribute.
23100 (*movdi_internal): Merge with *movdi_internal_rex64. Use x64 and
23101 nox64 isa attributes.
23102
6e55eda7
RB
231032013-03-18 Richard Biener <rguenther@suse.de>
23104
23105 * tree-ssa-structalias.c (find): Use gcc_checking_assert.
23106 (unite): Likewise.
23107 (merge_node_constraints): Likewise.
23108 (build_succ_graph): Likewise.
23109 (valid_graph_edge): Inline into single caller.
23110 (unify_nodes): Likewise. Use bitmap_set_bit return value
23111 and cache varinfo.
23112 (scc_visit): Fix formatting and variable use.
23113 (do_sd_constraint): Use gcc_checking_assert.
23114 (do_ds_constraint): Likewise.
23115 (do_complex_constraint): Likewise.
23116 (condense_visit): Likewise. Cleanup.
23117 (dump_pred_graph): New function.
23118 (perform_var_substitution): Dump the pred-graph before
23119 variable substitution.
23120 (find_equivalent_node): Use gcc_checking_assert.
23121 (rewrite_constraints): Guard checking loop with ENABLE_CHECKING.
23122
4bdd44c4
RB
231232013-03-18 Richard Biener <rguenther@suse.de>
23124
23125 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
23126 Remove cond_expr_stmt_list argument and do not gimplify the
23127 built expression.
23128 (vect_loop_versioning): Adjust.
23129 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
23130 Cleanup to use less temporaries.
23131 (vect_create_data_ref_ptr): Cleanup.
23132
38c56a5b
JJ
231332013-03-18 Jakub Jelinek <jakub@redhat.com>
23134
23135 PR tree-optimization/56635
23136 * fold-const.c (operand_equal_p): For MEM_REF and TARGET_MEM_REF,
23137 require types_compatible_p types.
23138
20b2e6a0
NC
231392013-03-18 Nick Clifton <nickc@redhat.com>
23140
a6178a25
NC
23141 * config/stormy16/stormy16.c (xstormy16_expand_prologue): Remove
23142 spurious backslash.
23143
20b2e6a0
NC
23144 * config/mn10300/mn10300.c (mn10300_get_live_callee_saved_regs):
23145 Add missing line to comment describing function.
23146
92608d0e
RB
231472013-03-18 Richard Biener <rguenther@suse.de>
23148
23149 PR tree-optimization/56210
23150 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
23151 Handle string / character search functions.
23152 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
23153
31348d52
RB
231542013-03-18 Richard Biener <rguenther@suse.de>
23155
23156 PR middle-end/56483
23157 * cfgexpand.c (expand_gimple_cond): Inline gimple_cond_single_var_p
23158 and implement properly.
23159 * gimple.h (gimple_cond_single_var_p): Remove.
23160
fcac74a1
RB
231612013-03-18 Richard Biener <rguenther@suse.de>
23162
23163 * tree-data-ref.h (find_data_references_in_loop): Declare.
23164 * tree-data-ref.c (get_references_in_stmt): Use a stack
23165 vector pre-allocated in the callers.
23166 (find_data_references_in_stmt): Adjust.
23167 (graphite_find_data_references_in_stmt): Likewise.
23168 (create_rdg_vertices): Likewise.
23169 (find_data_references_in_loop): Export.
23170 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
23171 Compute dependences here...
23172 (vect_analyze_data_refs): ...not here. When we encounter
23173 a non-vectorizable data reference in basic-block vectorization
23174 truncate the data reference vector. Do not bother to
23175 fixup data-dependence information for gather loads.
23176 * tree-vect-slp.c (vect_slp_analyze_bb_1): Check the number
23177 of data references, as reported.
23178
0d5a1b56
RB
231792013-03-18 Richard Biener <rguenther@suse.de>
23180
23181 PR tree-optimization/3713
23182 * tree-ssa-sccvn.c (visit_copy): Simplify. Always propagate
23183 has_constants and expr.
23184 (stmt_has_constants): Properly valueize SSA names when deciding
23185 whether the stmt has constants.
23186
789c34e3
RB
231872013-03-18 Richard Biener <rguenther@suse.de>
23188
23189 * tree-ssa-loop-manip.c (find_uses_to_rename): Do not scan the
23190 whole function when there is nothing to do.
23191 * tree-ssa-loop.c (pass_vectorize): Remove TODO_update_ssa.
23192 * tree-vectorizer.c (vectorize_loops): Update virtual and
23193 loop-closed SSA once.
23194 * tree-vect-loop.c (vect_transform_loop): Do not update SSA here.
23195
076b4605
RB
231962013-03-18 Richard Biener <rguenther@suse.de>
23197
23198 PR middle-end/56113
23199 * domwalk.c (bb_postorder): New global static.
23200 (cmp_bb_postorder): New function.
23201 (walk_dominator_tree): Replace scheme imposing an order for
23202 visiting dominator sons by one sorting them at the time they
23203 are pushed on the stack.
23204
bdb01696
RB
232052013-03-18 Richard Biener <rguenther@suse.de>
23206
23207 PR tree-optimization/39326
23208 * tree-ssa-loop-im.c (refs_independent_p): Exploit symmetry.
23209 (struct mem_ref): Replace mem member with ao_ref typed member.
23210 (MEM_ANALYZABLE): Adjust.
23211 (memref_eq): Likewise.
23212 (mem_ref_alloc): Likewise.
23213 (gather_mem_refs_stmt): Likewise.
23214 (mem_refs_may_alias_p): Use the ao_ref to query the alias oracle.
23215 (execute_sm_if_changed_flag_set): Adjust.
23216 (execute_sm): Likewise.
23217 (ref_always_accessed_p): Likewise.
23218 (refs_independent_p): Likewise.
23219 (can_sm_ref_p): Likewise.
23220
12d2dc5e
JJ
232212013-03-18 Jakub Jelinek <jakub@redhat.com>
23222
23223 PR c/56566
23224 * tree.c (tree_int_cst_min_precision): For integer_zerop (value)
23225 return 1 even for !unsignedp.
23226
286fb677
UB
232272013-03-17 Uros Bizjak <ubizjak@gmail.com>
23228
23229 * config/i386/i386.md (isa): Add x64 and nox64.
23230 (enabled): Define x64 for TARGET_64BIT and nox64 for !TARGET_64BIT.
23231 (*pushtf): Enable *roF alternative for x64 isa only.
23232 (*pushxf): Merge with *pushxf_nointeger. Use Yx*r constraint. Set
23233 mode attribute of integer alternatives to DImode for TARGET_64BIT.
23234 (*pushdf): Merge with *pushdf_rex64. Use x64 and nox64 isa attributes.
23235 (*movtf_internal): Merge from *movtf_internal_rex64 and
23236 *movtf_internal_sse. Use x64 and nox64 isa attributes.
23237 (*movxf_internal): Merge with *movxf_internal_rex64. Use x64 and
23238 nox64 isa attributes.
23239 (*movdf_internal): Merge with *movdf_internal_rex64. Use x64 and
23240 nox64 isa attributes.
23241 * config/i386/constraints.md (Yd): Do not set for TARGET_64BIT.
23242
88b97037
UB
232432013-03-17 Uros Bizjak <ubizjak@gmail.com>
23244
23245 * config/alpha/alpha.c (TARGET_LRA_P): New define.
23246
9f4f1735
JJ
232472013-03-17 Jakub Jelinek <jakub@redhat.com>
23248
23249 PR target/56640
23250 * config/arm/arm.h (REG_CLASS_NAMES): Add "SFP_REG" and "AFP_REG"
23251 class names. Remove trailing comma after "ALL_REGS".
23252
48f4a6fa
JH
232532013-03-16 Jan Hubicka <jh@suse.cz>
23254
23255 * cgraph.h (cgraph_get_create_real_symbol_node): Declare.
23256 * cgraph.c (cgraph_get_create_real_symbol_node): New function.
23257 * cgrpahbuild.c: Use cgraph_get_create_real_symbol_node instead
23258 of cgraph_get_create_node.
23259 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
23260
98e81123
JM
232612013-03-16 Jason Merrill <jason@redhat.com>
23262
23263 PR debug/49090
23264 * dwarf2out.c (gen_generic_params_dies): Indicate default arguments
23265 with DW_AT_default_value.
23266
8a298c04
JJ
232672013-03-16 Jakub Jelinek <jakub@redhat.com>
23268
23269 * BASE-VER: Set to 4.9.0.
23270
4323afa0
AK
232712013-03-14 Andi Kleen <ak@linux.intel.com>
23272
23273 PR target/56619
23274 * doc/extend.texi: Document __ATOMIC_HLE_ACQUIRE,
23275 __ATOMIC_HLE_RELEASE. Document __builtin_ia32 TSX intrincs.
23276 Document _x* TSX intrinsics.
23277
b3c0d469
JJ
232782013-03-14 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
23279 David Holsgrove <david.holsgrove@xilinx.com>
8cc9a5a5
EI
23280
23281 * configure.ac: Add MicroBlaze TLS support detection.
23282 * configure: Regenerate.
88b97037
UB
23283 * config/microblaze/microblaze-protos.h
23284 (microblaze_cannot_force_const_mem, microblaze_tls_referenced_p,
23285 symbol_mentioned_p, label_mentioned_p): Add prototypes.
23286 * config/microblaze/microblaze.c (microblaze_address_type): Add
23287 ADDRESS_TLS and tls_reloc address types.
8cc9a5a5
EI
23288 (microblaze_address_info): Add tls_reloc.
23289 (TARGET_HAVE_TLS): Define.
23290 (get_tls_get_addr, microblaze_tls_symbol_p, microblaze_tls_operand_p_1,
23291 microblaze_tls_referenced_p, microblaze_cannot_force_const_mem,
88b97037
UB
23292 symbol_mentioned_p, label_mentioned_p, tls_mentioned_p,
23293 load_tls_operand, microblaze_call_tls_get_addr,
23294 microblaze_legitimize_tls_address): New functions.
8cc9a5a5
EI
23295 (microblaze_classify_unspec): Handle UNSPEC_TLS.
23296 (get_base_reg): Use microblaze_tls_symbol_p.
23297 (microblaze_classify_address): Handle TLS.
88b97037
UB
23298 (microblaze_legitimate_pic_operand): Use symbol_mentioned_p,
23299 label_mentioned_p and microblaze_tls_referenced_p.
8cc9a5a5
EI
23300 (microblaze_legitimize_address): Handle TLS.
23301 (microblaze_address_insns): Handle ADDRESS_TLS.
23302 (pic_address_needs_scratch): Handle TLS.
23303 (print_operand_address): Handle TLS.
23304 (microblaze_expand_prologue): Check TLS_NEEDS_GOT.
23305 (microblaze_expand_move): Handle TLS.
88b97037
UB
23306 (microblaze_legitimate_constant_p): Check
23307 microblaze_cannot_force_const_mem and microblaze_tls_symbol_p.
8cc9a5a5
EI
23308 (TARGET_CANNOT_FORCE_CONST_MEM): Define.
23309 * config/microblaze/microblaze.h (TLS_NEEDS_GOT): Define
23310 (PIC_OFFSET_TABLE_REGNUM): Set.
23311 * config/microblaze/linux.h (TLS_NEEDS_GOT): Define.
23312 * config/microblaze/microblaze.md (UNSPEC_TLS): Define.
23313 (addsi3, movsi_internal2, movdf_internal): Update constraints
23314 * config/microblaze/predicates.md (arith_plus_operand): Define
88b97037
UB
23315 (move_operand): Redefine as move_src_operand,
23316 check microblaze_tls_referenced_p.
8cc9a5a5 23317
d803a491
IB
233182013-03-14 Ian Bolton <ian.bolton@arm.com>
23319
23320 * config/aarch64/aarch64.md: (*and<mode>3nr_compare0): Use CC_NZ.
23321 (*and_<SHIFT:optab><mode>3nr_compare0): Likewise.
23322
a8504f22
IB
233232013-03-14 Ian Bolton <ian.bolton@arm.com>
23324
23325 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return correct
23326 CC mode for AND.
23327
df2dfaea
JJ
233282013-03-14 Jakub Jelinek <jakub@redhat.com>
23329
fbd28bc3
JJ
23330 PR tree-optimization/53265
23331 * common.opt (Waggressive-loop-optimizations): New option.
23332 * tree-ssa-loop-niter.c: Include tree-pass.h.
23333 (do_warn_aggressive_loop_optimizations): New function.
23334 (record_estimate): Call it. Don't add !is_exit bounds to loop->bounds
23335 if number_of_latch_executions returned constant.
23336 (estimate_numbers_of_iterations_loop): Call number_of_latch_executions
23337 early. If number_of_latch_executions returned constant, set
23338 nb_iterations_upper_bound back to it.
23339 * cfgloop.h (struct loop): Add warned_aggressive_loop_optimizations
23340 field.
23341 * Makefile.in (tree-ssa-loop-niter.o): Depend on $(TREE_PASS_H).
23342 * doc/invoke.texi (-Wno-aggressive-loop-optimizations): Document.
23343
df2dfaea
JJ
23344 * config/aarch64/t-aarch64-linux (MULTARCH_DIRNAME): Remove.
23345 (MULTILIB_OSDIRNAMES): Set.
23346 * genmultilib: If defaultosdirname doesn't start with :: , set
23347 defaultosdirname2 instead, clear it and emit two . multilib_raw
23348 entries instead of just one.
23349
ee0d2b68
KK
233502013-03-14 Kaz Kojima <kkojima@gcc.gnu.org>
23351
23352 * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_USERMODE.
23353 (SUBTARGET_OVERRIDE_OPTIONS): Set TARGET_USERMODE as default.
23354 * config/sh/netbsd-elf.h (TARGET_DEFAULT): Remove MASK_USERMODE.
23355 (SUBTARGET_OVERRIDE_OPTIONS): New.
23356
decc676e
OE
233572013-03-13 Oleg Endo <olegendo@gcc.gnu.org>
23358
23359 PR target/49880
23360 * config/sh/sh.opt (FPU_SINGLE_ONLY): New mask.
23361 (musermode): Convert to Var(TARGET_USERMODE).
23362 * config/sh/sh.h (SELECT_SH2A_SINGLE_ONLY, SELECT_SH4_SINGLE_ONLY,
23363 MASK_ARCH): Add MASK_FPU_SINGLE_ONLY.
23364 * config/sh/sh.c (sh_option_override): Use
23365 TARGET_FPU_DOUBLE || TARGET_FPU_SINGLE_ONLY for call-fp case.
23366 * config/sh/sh.md (udivsi3_i1, divsi3_i1): Remove ! TARGET_SH4
23367 condition.
23368 (udivsi3_i4, divsi3_i4): Use TARGET_FPU_DOUBLE condition instead of
23369 TARGET_SH4.
23370 (udivsi3_i4_single, divsi3_i4_single): Use
23371 TARGET_FPU_SINGLE_ONLY || TARGET_FPU_DOUBLE instead of TARGET_HARD_SH4.
23372
f4b719c7
DK
233732013-03-13 Dave Korn <dave.korn.cygwin@....>
23374
23375 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): Make shared libgcc the
23376 default setting.
23377
c40eced0
RB
233782013-03-13 Richard Biener <rguenther@suse.de>
23379
23380 PR tree-optimization/56608
23381 * tree-vect-slp.c (vect_schedule_slp): Do not remove scalar
23382 calls when vectorizing basic-blocks.
23383
1bfa5973
JJ
233842013-03-13 Jakub Jelinek <jakub@redhat.com>
23385
23386 PR plugins/45078
23387 * config.gcc: On arm, mips, sh and sparc add vxworks-dummy.h to
23388 tm_file.
23389
6fcf5434
JJ
233902013-03-12 Jakub Jelinek <jakub@redhat.com>
23391
23392 * doc/invoke.texi (-Waddr-space-convert): Move into the table earlier.
23393
4f38fa8c
JH
233942013-03-11 Jan Hubicka <jh@suse.cz>
23395
23396 PR lto/56557
23397 * lto-streamer-out.c (output_symbol_p): Skip references from
23398 constructors of external variables.
23399
c5c5ba89
JH
234002013-03-11 Jan Hubicka <jh@suse.cz>
23401
23402 PR middle-end/56571
23403 * valtrack.c (cleanup_auto_inc_dec): Unshare clobbers originating
23404 from pseudos.
23405 * emit-rtl.c (verify_rtx_sharing): Likewise.
23406 (copy_insn_1): Likewise.
23407 * rtl.c (copy_rtx): Likewise.
23408
c2a939b1
GJL
234092013-03-11 Georg-Johann Lay <avr@gjlay.de>
23410
23411 PR target/56591
23412 * config/avr/avr.c (avr_print_operand): Add space after '%c' in
23413 output_operand_lossage message.
88b97037 23414
3c3279fb
RE
234152013-03-11 Richard Earnshaw <rearnsha@arm.com>
23416
23417 PR target/56470
23418 * arm.c (shift_op): Validate RTL pattern on the fly.
23419 (arm_print_operand, case 'S'): Don't use shift_operator to validate
23420 the RTL.
23421
aef5ef9d
JDA
234222013-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
23423
23424 PR target/56347
23425 * config/pa/pa.md (call_value): Check for calls to powf and direct to
23426 new call patterns that clobber %fr12.
23427 (call_val_powf, call_val_powf_pic, call_val_powf_64bit): New insn,
23428 split and postreload patterns.
23429 * config/pa/pa.c (pa_conditional_register_usage): Revert marking
23430 registers %fr12 and %fr12R as call used.
23431
456610d3
SB
234322013-03-09 Steven Bosscher <steven@gcc.gnu.org>
23433
23434 * dse.c (delete_dead_store_insn): Respect TDF_DETAILS.
23435 (canon_address, record_store, replace_read, check_mem_read_rtx,
23436 scan_insn, dse_step1, dse_step2_init, dse_step2_spill,
23437 dse_step4, dse_step5_nospill, dse_step5_spill, dse_step6,
23438 rest_of_handle_dse): Likewise.
23439
4b1baac8
RS
234402013-03-09 Richard Sandiford <rdsandiford@googlemail.com>
23441
23442 PR middle-end/56524
23443 * tree.h (tree_optimization_option): Rename target_optabs to optabs.
23444 Add base_optabs.
23445 (TREE_OPTIMIZATION_OPTABS): Update after previous field change.
23446 (TREE_OPTIMIZATION_BASE_OPTABS): New macro.
23447 (save_optabs_if_changed): Replace with...
23448 (init_tree_optimization_optabs): ...this.
23449 * optabs.c (save_optabs_if_changed): Rename to...
23450 (init_tree_optimization_optabs): ...this. Take the optimization node
23451 as argument. Do nothing if the base optabs are already correct.
23452 Reuse the existing TREE_OPTIMIZATION_OPTABS memory if we need
23453 to recompute optabs.
23454 * function.h (function): Remove optabs field.
23455 * function.c (invoke_set_current_function_hook): Call
23456 init_tree_optimization_optabs. Use the result to initialize
23457 this_fn_optabs.
23458
b7a78683
AH
234592013-02-27 Aldy Hernandez <aldyh@redhat.com>
23460
23461 * trans-mem.c (expand_transaction): Do not set PR_INSTRUMENTEDCODE
23462 if GTMA_HAS_NO_INSTRUMENTATION.
23463 (generate_tm_state): Keep GTMA_HAS_NO_INSTRUMENTATION bit.
23464 (ipa_tm_transform_transaction): Set GTMA_HAS_NO_INSTRUMENTATION.
23465 * gimple.h (GTMA_HAS_NO_INSTRUMENTATION): Define.
23466 * gimple-pretty-print.c (dump_gimple_transaction): Handle
23467 GTMA_HAS_NO_INSTRUMENTATION.
23468
6384c29b
JJ
234692013-03-08 Jakub Jelinek <jakub@redhat.com>
23470
23471 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Don't link against
23472 libasan_preinit.o.
23473
ecd4f20a
MP
234742013-03-08 Marek Polacek <polacek@redhat.com>
23475 Jakub Jelinek <jakub@redhat.com>
23476
23477 PR tree-optimization/56478
23478 * predict.c (is_comparison_with_loop_invariant_p): Change the
23479 type of loop_step to tree.
23480 (predict_loops): Adjust.
23481 (predict_iv_comparison): Perform the computations on double_ints.
23482
64366d35
RB
234832013-03-08 Richard Biener <rguenther@suse.de>
23484
23485 PR tree-optimization/56570
23486 * tree-cfg.c (verify_expr_location_1): Verify locations for
23487 DECL_DEBUG_EXPR.
23488 * tree-sra.c (create_access_replacement): Strip locations
23489 from DECL_DEBUG_EXPRs.
23490
a9d5a059
RB
234912013-03-08 Richard Biener <rguenther@suse.de>
23492
23493 * tree-inline.c (expand_call_inline): Do not associate
23494 a BLOCK with the location in BLOCK_SOURCE_LOCATION.
23495 * tree-cfg.c (verify_location): Verify BLOCK_SOURCE_LOCATION.
23496
b7aa4e9a
RB
234972013-03-08 Richard Biener <rguenther@suse.de>
23498
23499 * tree-ssa-ter.c (is_replaceable_p): Do not TER across location
23500 or block changes with -Og. Fix for location / block encoding
23501 changes and PHI arguments with locations.
23502
c4c2f9fa
SB
235032013-03-07 Steven Bosscher <steven@gcc.gnu.org>
23504
23505 * bitmap.c (struct bitmap_descriptor_d): Use unsigned HOST_WIDEST_INT
23506 for all counters.
23507 (struct output_info): Likewise.
23508 (register_overhead): Remove bad gcc_assert.
23509 (bitmap_find_bit): If there is only a single bitmap element, do not
23510 count a miss as a search.
23511 (print_statistics): Update for counter type changes.
23512 (dump_bitmap_statistics): Likewise. Print headers such that they
23513 are properly lined up with the printed counters.
23514
5bf6606a
JJ
235152013-03-07 Jakub Jelinek <jakub@redhat.com>
23516
23517 PR tree-optimization/56559
23518 * tree-ssa-reassoc.c (zero_one_operation): When looking at rhs2,
23519 check that it has only a single use.
23520
2c653d46
RB
235212013-03-07 Richard Biener <rguenther@suse.de>
23522
23523 * doc/invoke.texi (fwhole-program): Discourage use in combination
23524 with -flto.
23525
a72d8780
JJ
235262013-03-06 Jakub Jelinek <jakub@redhat.com>
23527
01a454df
JJ
23528 * config/arm/t-arm (TM_H, OPTIONS_H_EXTRA): Add arm-cores.def.
23529
c1781047
JJ
23530 PR tree-optimization/56539
23531 * tree-tailcall.c (adjust_return_value_with_ops): Use GSI_SAME_STMT
23532 instead of GSI_CONTINUE_LINKING as last argument to
23533 force_gimple_operand_gsi. Adjust function comment.
23534
9772c47a
JJ
23535 * config/aarch64/t-aarch64 (TM_H, OPTIONS_H_EXTRA): Add
23536 aarch64-cores.def.
23537
a72d8780
JJ
23538 PR middle-end/56548
23539 * expr.c (expand_cond_expr_using_cmove): When expanding cmove in
23540 promoted mode, convert the result back to the original mode.
23541
fa5556de
RB
235422013-03-06 Richard Biener <rguenther@suse.de>
23543
23544 PR middle-end/56294
23545 * tree-into-ssa.c (insert_phi_nodes_for): Add dumping.
23546 (insert_updated_phi_nodes_compare_uids): New function.
23547 (update_ssa): Sort symbols_to_rename after UID before
23548 traversing it to insert PHI nodes.
23549
010403d1
RB
235502013-03-06 Richard Biener <rguenther@suse.de>
23551
23552 PR middle-end/50494
23553 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p):
23554 Do not adjust alignment of DECL_IN_CONSTANT_POOL decls.
23555
23556 Revert
23557 2013-02-13 Richard Biener <rguenther@suse.de>
23558
23559 PR lto/50494
23560 * varasm.c (output_constant_def_1): Get the decl representing
23561 the constant as argument.
23562 (output_constant_def): Wrap output_constant_def_1.
23563 (make_decl_rtl): Use output_constant_def_1 with the decl
23564 representing the constant.
23565 (build_constant_desc): Optionally re-use a decl already
23566 representing the constant.
23567 (tree_output_constant_def): Adjust.
23568
3c27ce4c
JY
235692013-03-06 Joey Ye <joey.ye@arm.com>
23570
23571 PR lto/50293
23572 * gcc.c (convert_white_space): New function.
23573 (main): Handles white space in function name.
23574
8f6d1c86
OE
235752013-03-06 Oleg Endo <olegendo@gcc.gnu.org>
23576
23577 PR target/56529
23578 * config/sh/sh.c (sh_option_override): Check for TARGET_DYNSHIFT
23579 instead of TARGET_SH2 for call-table case. Do not set sh_div_strategy
23580 to SH_DIV_CALL_TABLE for TARGET_SH2.
23581 * config.gcc (sh_multilibs): Add m2 and m2a to sh*-*-linux* multilib
23582 list.
23583 * doc/invoke.texi (SH options): Document mdiv= call-div1, call-fp,
23584 call-table options.
23585
798a209f
SA
235862013-03-05 Sterling Augustine <saugustine@google.com>
23587 Cary Coutant <ccoutant@google.com>
23588
23589 PR debug/55364
23590 * dwarf2out.c (resolve_addr): Don't call
23591 remove_loc_list_addr_table_entries a second time for the same
23592 expression.
23593
6cfa417f 235942013-03-05 Jakub Jelinek <jakub@redhat.com>
ee61ea38 23595
6cfa417f
JJ
23596 PR debug/56510
23597 * cfgexpand.c (expand_debug_parm_decl): Call copy_rtx on incoming.
23598 (avoid_complex_debug_insns): New function.
23599 (expand_debug_locations): Call it.
23600
23601 PR rtl-optimization/56484
23602 * ifcvt.c (noce_process_if_block): If else_bb is NULL, avoid extending
23603 lifetimes of hard registers on small register class machines.
23604
236052013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
23606
23607 * config/microblaze/microblaze-protos.h: Rename
ee61ea38 23608 microblaze_is_interrupt_handler to microblaze_is_interrupt_variant.
6cfa417f 23609 * config/microblaze/microblaze.c (microblaze_attribute_table): Add
ee61ea38
DH
23610 fast_interrupt.
23611 (microblaze_fast_interrupt_function_p): New function.
23612 (microblaze_is_interrupt_handler): Rename to
23613 microblaze_is_interrupt_variant and add fast_interrupt check.
23614 (microblaze_must_save_register): Use microblaze_is_interrupt_variant.
23615 (save_restore_insns): Likewise.
23616 (compute_frame_size): Likewise.
23617 (microblaze_function_prologue): Add FAST_INTERRUPT_NAME.
23618 (microblaze_globalize_label): Likewise.
6cfa417f
JJ
23619 * config/microblaze/microblaze.h: Define FAST_INTERRUPT_NAME.
23620 * config/microblaze/microblaze.md: Use wrapper
ee61ea38
DH
23621 microblaze_is_interrupt_variant.
23622
731aefac
KT
236232013-03-05 Kai Tietz <ktietz@redhat.com>
23624
23625 * sdbout.c (sdbout_one_type): Switch to current function's section
23626 supporting cold/hot.
23627
a72d8780 236282013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
e34fd5a7
DH
23629
23630 * doc/invoke.texi (MicroBlaze): Add -mbig-endian, -mlittle-endian,
23631 -mxl-reorder.
23632
334e71e8
JJ
236332013-03-05 Jakub Jelinek <jakub@redhat.com>
23634
0b50e654
JJ
23635 PR middle-end/56461
23636 * ggc-common.c (gt_pch_save): For ENABLE_VALGRIND_CHECKING,
23637 if VALGRIND_GET_VBITS is defined, temporarily make object
23638 memory all defined, and restore previous valgrind addressability
23639 and definability afterwards. Free this_object at the end.
23640
4ccf8f43
JJ
23641 PR middle-end/56461
23642 * lra.c (lra): Call lra_clear_live_ranges if live_p,
23643 right before calling lra_create_live_ranges, also call it
23644 when clearing live_p. Only call lra_clear_live_ranges
23645 at the end if live_p.
23646
334e71e8
JJ
23647 PR middle-end/56461
23648 * sched-deps.c (delete_dep_node): Free DEP_REPLACE.
23649
9ca966ca
RB
236502013-03-05 Richard Biener <rguenther@suse.de>
23651
23652 PR tree-optimization/56521
23653 * tree-ssa-sccvn.c (set_value_id_for_result): Always initialize
23654 value-id.
23655
d273b176
SB
236562013-03-05 Steven Bosscher <steven@gcc.gnu.org>
23657
23658 PR c++/55135
23659 * except.h (remove_unreachable_eh_regions): New prototype.
23660 * except.c (remove_eh_handler_splicer): New function, split out
23661 of remove_eh_handler.
23662 (remove_eh_handler): Use remove_eh_handler_splicer. Add comment
23663 warning about running it on many EH regions one at a time.
23664 (remove_unreachable_eh_regions_worker): New function, walk the
23665 EH tree in depth-first order and remove non-marked regions.
23666 (remove_unreachable_eh_regions): New function.
23667 * tree-eh.c (mark_reachable_handlers): New function, split out
23668 from remove_unreachable_handlers.
23669 (remove_unreachable_handlers): Use mark_reachable_handlers and
23670 remove_unreachable_eh_regions.
23671 (remove_unreachable_handlers_no_lp): Use mark_reachable_handlers
23672 and remove_unreachable_eh_regions.
23673
5e7f1aef
RB
236742013-03-05 Richard Biener <rguenther@suse.de>
23675
23676 PR middle-end/56525
23677 * loop-init.c (fix_loop_structure): Remove loops in two stages,
23678 not freeing them until the end.
23679
f276b762
AK
236802013-03-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
23681
23682 * config/s390/s390.h: Define DWARF2_ASM_LINE_DEBUG_INFO.
23683
12a43ab8
RB
236842013-03-05 Richard Biener <rguenther@suse.de>
23685
23686 PR tree-optimization/56270
23687 * tree-vect-slp.c (vect_schedule_slp): Clear vectorized stmts
23688 of loads after scheduling an SLP instance.
23689
93675444
JJ
236902013-03-05 Jakub Jelinek <jakub@redhat.com>
23691
db4138e3
JJ
23692 * Makefile.in (dg_target_exps): Add aarch64.exp, epiphany.exp and
23693 tic6x.exp.
23694 (check_gcc_parallelize): Run guality.exp as a separate job from
23695 vect.exp with unsorted.exp and $(dg_target_exps) separately from
23696 struct-layout-1.exp with stackalign.exp.
23697
dd3d1ec0
JJ
23698 * alias.c (init_alias_analysis): Clear reg_known_equiv_p bitmap.
23699
b8d381a3
JJ
23700 PR middle-end/56461
23701 * tree-vect-slp.c (vect_supported_load_permutation_p): Free
23702 load_index sbitmap even if some bit in it isn't set.
23703
b4f9786b
JJ
23704 PR middle-end/56461
23705 * tree-ssa-loop-niter.c (bb_queue): Remove typedef.
23706 (discover_iteration_bound_by_body_walk): Change queues to
23707 vec<vec<basic_block> > and queue to vec<basic_block>. Fix up
23708 spelling in comment. Call safe_push on queues[bound_index] directly.
23709 Release queues[queue_index] in every iteration unconditionally.
23710 Release bounds vector.
23711
93675444
JJ
23712 PR middle-end/56461
23713 * tree-vect-stmts.c (free_stmt_vec_info_vec): Call
23714 free_stmt_vec_info on any left-over stmt_vec_info in the vector.
23715 * tree-vect-loop.c (vect_create_epilog_for_reduction): Release
23716 inner_phis vector.
23717
3e492e9c
RB
237182013-03-05 Richard Biener <rguenther@suse.de>
23719
23720 PR lto/56515
23721 * tree-inline.c (remap_blocks_to_null): New function.
23722 (expand_call_inline): When expanding a call stmt without
23723 an associated block inline remap all callee blocks to NULL.
23724
a5d1569a
JJ
237252013-03-05 Jakub Jelinek <jakub@redhat.com>
23726
86efb5cd
JJ
23727 PR rtl-optimization/56494
23728 * simplify-rtx.c (simplify_truncation): If C is narrower than A,
23729 optimize (truncate:A (subreg:B (truncate:C X) 0)) into
23730 (subreg:A (truncate:C X) 0) instead of (truncate:A X).
23731
85f5dbea
JJ
23732 PR middle-end/56461
23733 * sel-sched-ir.c (free_sched_pools): Release
23734 succs_info_pool.stack[succs_info_pool.max_top] vectors too
23735 if succs_info_pool.max_top isn't -1.
23736
a5d1569a
JJ
23737 PR bootstrap/56509
23738 * opts.c (opts_obstack, opts_concat): Moved to...
23739 * opts-common.c (opts_obstack, opts_concat): ... here.
23740
4432aa6c
JJ
237412013-03-04 Jakub Jelinek <jakub@redhat.com>
23742
23743 PR middle-end/56461
23744 * diagnostic.c (diagnostic_append_note): Save and restore old prefix.
23745
f3a1fb91
MJ
237462013-03-04 Martin Jambor <mjambor@suse.cz>
23747
23748 * tree-dfa.c (get_or_create_ssa_default_def): Use parameter fn in
23749 all appropriate places.
23750
22110e6c
EB
237512013-01-04 Eric Botcazou <ebotcazou@adacore.com>
23752
23753 PR tree-optimization/56424
23754 * ipa-split.c (split_function): Do not set the RSO flag if result is
23755 not by reference and its type is a register type.
23756
a72d8780 237572013-03-04 David Holsgrove <david.holsgrove@xilinx.com>
91c4e421 23758
88b97037 23759 * config/microblaze/microblaze.c (microblaze_valid_pic_const): New
91c4e421 23760 (microblaze_legitimate_pic_operand): Likewise
88b97037 23761 * config/microblaze/microblaze.h (LEGITIMATE_PIC_OPERAND_P): calls
91c4e421
DH
23762 new function microblaze_legitimate_pic_operand
23763 * config/microblaze/microblaze-protos.h
23764 (microblaze_legitimate_pic_operand): Declare.
23765
a72d8780 237662013-03-04 Edgar E. Iglesias <edgar.iglesias@gmail.com>
82f8f53a 23767
a72d8780 23768 * config/microblaze/predicates.md (call_insn_simple_operand):
82f8f53a 23769 New predicate for supported rtx code types.
a72d8780 23770 * config/microblaze/microblaze.md (call_internal1): Use
82f8f53a
EI
23771 call_insn_simple_operand predicate.
23772
541d9ac8
JJ
237732013-03-04 Jakub Jelinek <jakub@redhat.com>
23774
5eb010bc
JJ
23775 PR middle-end/56461
23776 * tree-loop-distribution.c (ldist_gen): Call partition_free after each
23777 partitions.ordered_remove.
23778
30862efc
JJ
23779 PR middle-end/56461
23780 * tree-vect-stmts.c (vectorizable_conversion): Don't call
23781 vec_oprnds0.create (1) for modifier == NONE.
23782
8930f723
JJ
23783 PR middle-end/56461
23784 * tree-vect-stmts.c (vectorizable_shift): Don't call create methods
23785 on vec_oprnds0 or vec_oprnds1 before loop, only call it on
23786 vec_oprnds1 right before pushing anything to it for
23787 scalar_shift_arg.
23788
541d9ac8
JJ
23789 PR middle-end/56461
23790 * tree-vect-loop.c (destroy_loop_vec_info): For !clean_stmts, just
23791 set nbbs to 0 instead of having separate code path.
23792 (vect_analyze_loop_form): Call destroy_loop_vec_info with true
23793 instead of false as last argument if returning NULL.
23794
7aa7f2e3
SL
237952013-03-03 Sandra Loosemore <sandra@codesourcery.com>
23796
23797 * target.def (TARGET_OPTION_VALID_ATTRIBUTE_P): Update comments;
23798 the attribute is now called "target" instead of "option".
23799 (TARGET_OPTION_PRAGMA_PARSE): Likewise, for the pragma.
23800 * doc/tm.texi.in (Target Attributes): Likewise document the correct
23801 attribute/pragma name for TARGET_OPTION_VALID_P and
23802 TARGET_OPTION_PRAGMA_PARSE. Also copy-edit and correct markup.
23803 * doc/tm.texi: Regenerated.
23804
8930f723 238052013-03-02 David Holsgrove <david.holsgrove@xilinx.com>
cb8a1637 23806
8930f723 23807 * config/microblaze/microblaze.c:
cb8a1637 23808 Check mcpu, pcmp requirement and set TARGET_REORDER to 0 if not met.
8930f723
JJ
23809 * config/microblaze/microblaze.h: Add -mxl-reorder to
23810 DRIVER_SELF_SPECS.
23811 * config/microblaze/microblaze.md: New bswapsi2 and bswaphi2.
23812 instructions emitted if TARGET_REORDER.
88b97037
UB
23813 * config/microblaze/microblaze.opt: New option -mxl-reorder set to 1
23814 or 0 for -m/-mno case, but initialises as 2 to detect default use case
8930f723 23815 separately.
cb8a1637 23816
4dc1d68c
XDL
238172013-03-01 Xinliang David Li <davidxl@google.com>
23818
23819 * tree-ssa-uninit.c (compute_control_dep_chain): Limit post-dom
23820 walk length.
23821
689eaba3
JJ
238222013-03-01 Jakub Jelinek <jakub@redhat.com>
23823
9d676bf6
JJ
23824 PR middle-end/56461
23825 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Release path
23826 vector even when returning true. Fix up function comment formatting.
23827
caff7edf
JJ
23828 PR middle-end/56461
23829 * ira-build.c (ira_loop_nodes_count): New variable.
23830 (create_loop_tree_nodes): Initialize it.
23831 (finish_loop_tree_nodes): Use it instead of looking at current_loops.
23832
b6b9227d
JJ
23833 PR middle-end/56461
23834 * tree-vect-data-refs.c (vect_permute_store_chain): Avoid using copy
23835 method on dr_chain and result_chain.
23836 * tree-vect-stmts.c (vectorizable_store): Only call
23837 result_chain.create if j == 0.
23838
689eaba3
JJ
23839 PR middle-end/56461
23840 * tree-vect-stmts.c (vect_create_vectorized_promotion_stmts): Call
23841 vec_oprnds0->release (); rather than vec_oprnds0->truncate (0)
23842 before overwriting it.
23843
40bf31ed
TB
238442013-03-01 Tobias Burnus <burnus@net-b.de>
23845
23846 * doc/extended.texi (C Extensions): Change order in @menu
23847 to match @node.
23848 (Other MIPS Built-in Functions): Move last MIPS entry before
23849 "picoChip Built-in Functions".
23850 (SH Built-in Functions): Move after RX Built-in Functions.
23851 * doc/gcc.texi (Introduction): Change order in @menu
23852 to match @node.
23853 * doc/md.texi (Constraints): Ditto.
23854 * gty.texi (Type Information): Ditto.
23855 (User-provided marking routines for template types): Make
23856 subsection.
23857 * doc/invoke.texi (AArch64 Options): Move before
23858 "Adapteva Epiphany Options".
23859
e664c61c
KS
238602013-02-28 Konstantin Serebryany <konstantin.s.serebryany@gmail.com>
23861 Jakub Jelinek <jakub@redhat.com>
23862
23863 PR sanitizer/56454
23864 * asan.c (gate_asan): Lookup no_sanitize_address instead of
23865 no_address_safety_analysis attribute.
23866 * doc/extend.texi (no_address_safety_attribute): Rename to
23867 no_sanitize_address attribute, mention no_address_safety_analysis
23868 attribute as deprecated alias.
23869
37b5ec8f
JJ
238702013-02-28 Jakub Jelinek <jakub@redhat.com>
23871
23872 PR middle-end/56461
23873 * tree-vectorizer.h (vect_get_slp_defs): Change 3rd argument
23874 type to vec<vec<tree> > *.
23875 * tree-vect-slp.c (vect_get_slp_defs): Likewise. Change vec_defs
23876 to be vec<tree> instead of vec<tree> *, set vec_defs
23877 to vNULL and call vec_defs.create (number_of_vects), adjust other
23878 uses of vec_defs.
23879 * tree-vect-stmts.c (vect_get_vec_defs, vectorizable_call,
23880 vectorizable_condition): Adjust vect_get_slp_defs callers.
23881
ba96cdfb
JG
238822013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
23883
23884 * config/aarch64/aarch64.c
23885 (aarch64_float_const_representable): Remove unused variable.
23886
6f549691
JG
238872013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
23888
23889 * config/aarch64/aarch64.c (aarch64_mangle_type): Make static.
23890
af55e82d
JG
238912013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
23892
23893 * config/aarch64/aarch64-builtins.c
23894 (aarch64_init_simd_builtins): Make static.
23895
1df3f464
JG
238962013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
23897
23898 * config/aarch64/aarch64.c
23899 (aarch64_simd_make_constant): Make static.
23900
f8f42513
MJ
239012013-02-28 Martin Jambor <mjambor@suse.cz>
23902
23903 * tree-sra.c (load_assign_lhs_subreplacements): Do not put replacements
23904 with no initialization to the RHS of debug statements.
23905
b48b3fc4
MJ
239062013-02-28 Martin Jambor <mjambor@suse.cz>
23907
23908 PR tree-optimization/56294
23909 * tree-sra.c (analyze_access_subtree): Create replacement declarations.
23910 Adjust dumping.
23911 (get_access_replacement): Do not call create_access_replacement.
23912 Assert a replacement exists.
23913 (get_repl_default_def_ssa_name): Create the replacement declaration
23914 itself.
23915
c3ae224c
RR
239162013-02-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
23917
23918 * config/arm/arm.c (arm_output_mi_thunk): Call final_start_function and
23919 final_end_function.
23920
45fa0eef
MP
239212013-02-28 Marek Polacek <polacek@redhat.com>
23922
23923 PR rtl-optimization/56466
23924 * loop-unroll.c (unroll_and_peel_loops): Call fix_loop_structure
23925 if we're changing a loop.
23926 (peel_loops_completely): Likewise.
23927
502c067d
PC
239282013-02-28 Paolo Carlini <paolo.carlini@oracle.com>
23929
23930 PR c++/55813
23931 * doc/invoke.texi ([-Wctor-dtor-privacy]): Complete.
23932
ff24afc8
GJL
239332013-02-28 Georg-Johann Lay <avr@gjlay.de>
23934
23935 PR target/56445
23936 * config/avr/avr.c (avr_init_builtins): Use 'n' instead of empty
23937 macro parameters with: FX_FTYPE_FX, FX_FTYPE_FX_INT, INT_FTYPE_FX,
23938 INTX_FTYPE_FX, FX_FTYPE_INTX.
23939 * config/avr/builtins.def: Adjust respective DEF_BUILTIN.
23940
c7b1fc1b
GJL
239412013-02-28 Georg-Johann Lay <avr@gjlay.de>
23942
23943 * avr/avr-mcus.def (ata5272, ata5505, attiny1634, ata6285)
23944 (ata6286, atmega8a, atmega48pa, ata5790, ata5790n, ata5795)
23945 (atmega164pa, atmega165pa, atmega168pa, atmega16hva, atmega16hvb)
23946 (atmega16hvbrevb, atmega16m1, atmega16u4, atmega26hvg, atmega32a)
23947 (atmega32a, atmega3250pa, atmega3290pa, atmega32c1, atmega32m1)
23948 (atmega32u4, atmega32u6, atmega64a, atmega6490a, atmega6490p)
23949 (atmega64c1, atmega64m1, atmega64rfa2, atmega64rfr2, atmega32hvb)
23950 (atmega32hvbrevb, atmega16hva2, atmega48hvf, at90pwm161)
23951 (atmega128a, atmega1284, atmxt112sl, atmxt224, atmxt224e)
23952 (atmxt336s, atxmega16a4u, atxmega16c4, atxmega32a4u, atxmega32c4)
23953 (atxmega32e5, atxmega64a3u, atxmega64a4u, atxmega64b1, atxmega64b3)
23954 (atxmega64c3, atxmega64d4, atxmega128a3u, atxmega128b1)
23955 (atxmega128b3, atxmega128c3, atxmega128d4, atmxt540s, atmxt540sreva)
23956 (atxmega192a3u, atxmega192c3, atxmega256a3u, atxmega256c3)
23957 (atxmega384c3, atxmega384d3, atxmega128a4u): New AVR_MCU.
23958 (avrxmega6): Increase max flash segments from 5 to 6.
23959 * config/avr/t-multilib: Regenerate.
23960 * config/avr/avr-tables.opt: Regenerate.
23961 * doc/avr-mmcu.texi: Regenerate.
23962
4a0e3cfe
GJL
239632013-02-28 Georg-Johann Lay <avr@gjlay.de>
23964
23965 * config/avr/avr.h (device_to_arch): Rename to device_to_ld.
23966 (avr_device_to_arch): Rename to avr_device_to_ld.
23967 (avr_device_to_as): New prototype.
23968 (EXTRA_SPEC_FUNCTIONS): Add device_to_as.
23969 (ASM_SPEC): Use device_to_as to get -mmcu= and -mno-skip-bug=.
23970 * config/avr/driver-avr.c (avr_device_to_as): New.
23971 (avr_device_to_arch): Rename to avr_device_to_ld.
23972
97785e52
JJ
239732013-02-27 Jakub Jelinek <jakub@redhat.com>
23974
3f292312
JJ
23975 PR middle-end/56461
23976 * tree-vect-data-refs.c (vect_permute_load_chain): Avoid using copy
23977 method on dr_chain and result_chain.
23978
a344216b
JJ
23979 PR middle-end/56461
23980 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Call
23981 pointer_set_destroy on not_executed_last_iteration.
23982
f121ad02 23983 PR middle-end/56461
88b97037 23984 * tree-vect-loop.c (vectorizable_reduction): Release vect_defs vector.
f121ad02 23985
307f83a3
JJ
23986 PR middle-end/56461
23987 * ipa-pure-const.c (propagate): Use FOR_EACH_FUNCTION instead of
23988 FOR_EACH_DEFINED_FUNCTION when freeing state.
23989
e19624ee
JJ
23990 PR middle-end/56461
23991 * df-scan.c (df_insn_delete): Use df_scan_free_mws_vec before
23992 pool_free.
23993 (df_insn_rescan_debug_internal): Use df_scan_free_mws_vec before
23994 overwriting it.
23995
90e709fd
JJ
23996 PR middle-end/56461
23997 * ipa-cp.c (decide_whether_version_node): Call vec_free on
23998 known_aggs[i].items and release known_aggs vector.
23999
97785e52
JJ
24000 PR middle-end/56461
24001 * ipa-reference.c (propagate): Free node_info even for alias nodes.
24002
240032013-02-27 Edgar E. Iglesias <edgar.iglesias@gmail.com>
bbb3a9e2 24004
97785e52
JJ
24005 * config/microblaze/microblaze.c (microblaze_emit_compare):
24006 Use xor for EQ/NE comparisions.
24007 * config/microblaze/microblaze.md (cstoresf4): Add constraints
24008 (cbranchsf4): Adjust operator to comparison_operator.
bbb3a9e2 24009
6fa5e0ed
JJ
240102013-02-27 Jakub Jelinek <jakub@redhat.com>
24011
24012 PR middle-end/56461
24013 * tree-flow.h (edge_var_map_vector): Change into va_heap, vl_embed
24014 vector.
24015 * tree-ssa.c (redirect_edge_var_map_add): Use vec_safe_reserve and
24016 vec_safe_push, always update *slot.
24017 (redirect_edge_var_map_clear): Use vec_free.
24018 (redirect_edge_var_map_dup): Use vec_safe_copy and vec_safe_reserve.
24019 (free_var_map_entry): Use vec_free.
24020 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Use
24021 FOR_EACH_VEC_SAFE_ELT instead of FOR_EACH_VEC_ELT.
24022
436a956a
AB
240232013-02-27 Andrey Belevantsev <abel@ispras.ru>
24024
24025 PR middle-end/45472
436a956a
AB
24026 * sel-sched-ir.c (merge_expr): Also change vinsn of merged expr
24027 when the may_trap_p bit of the exprs being merged differs.
436a956a
AB
24028 Reorder tests for speculativeness in the logical and operator.
24029
f5c2caca
JJ
240302013-02-27 Jakub Jelinek <jakub@redhat.com>
24031
0fcb564b
JJ
24032 * incpath.c (add_standard_paths): Use reconcat instead of concat
24033 where appropriate and avoid leaking memory.
24034
dc357798
JJ
24035 * opts.h: Include obstack.h.
24036 (opts_concat): New prototype.
24037 (opts_obstack): New declaration.
24038 * opts.c (opts_concat): New function.
24039 (opts_obstack): New variable.
24040 (init_options_struct): Call gcc_init_obstack on opts_obstack.
24041 (finish_options): Use opts_concat instead of concat
24042 and XOBNEWVEC instead of XNEWVEC.
24043 * opts-common.c (generate_canonical_option, decode_cmdline_option,
24044 generate_option): Likewise.
24045 * Makefile.in (OPTS_H): Depend on $(OBSTACK_H).
24046 * lto-wrapper.c (main): Call gcc_init_obstack on opts_obstack.
24047
f5c2caca
JJ
24048 PR target/56455
24049 * stmt.c (expand_switch_as_decision_tree_p): If flag_pic
24050 and ASM_OUTPUT_ADDR_DIFF_ELT isn't defined, return true.
24051
d0163673
JJ
240522013-02-26 Jakub Jelinek <jakub@redhat.com>
24053
24054 PR middle-end/56461
24055 * lra-spills.c (lra_spill): Free spill_hard_reg at the end.
24056
b5ad2b8e
JR
240572013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
24058
24059 * config/arm/arm.c (const_ok_for_dimode_op): Back out last change.
24060 (arm_block_move_unaligned_straight): Likewise.
24061 (arm_adjust_block_mem): Likewise.
24062
9b639e2c
JR
240632013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
24064
24065 PR target/48901
24066 * config/lm32/lm32.c (gen_int_relational): Remove unused variables
24067 temp, cond and label.
24068 * config/lm32/lm32.md (ashlsi3): Remove unused variable one.
24069
e13a0ccb
JR
24070 PR target/52500
24071 * config/c6x/c6x.c (dbx_register_map): Change to unsigned.
24072 * config/c6x/c6x.h (dbx_register_map): Update declaration.
24073
fbe4f171
JR
24074 PR target/52501
24075 * config/cr16/cr16-protos.h: Move end of RTX_CODE guard below end
24076 of prologue/epilogue functions.
24077
ae006543
JR
24078 PR target/52550
24079 * config/tilegx/tilegx.c (tilegx_expand_prologue):
24080 Remove unused variable cfa_offset.
24081 * config/tilepro/tilepro.c (tilepro_expand_prologue): Likewise.
24082
c81369fa
JR
24083 PR target/54639
24084 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Avoid offset
24085 type promotion to unsigned.
24086
f8a8fea7
JR
24087 PR target/54640
24088 * config/arm/arm.c (const_ok_for_dimode_op): Make code consistent
24089 for HOST_WIDE_INT of 32 bit / same size as int.
24090 (arm_block_move_unaligned_straight): Likewise.
24091 (arm_adjust_block_mem): Likewise.
24092
f8be5169
JR
24093 PR target/54662
24094 * config/mep/t-mep (mep-pragma.o): Use ALL_COMPILERFLAGS instead of
24095 ALL_CFLAGS.
24096
f1ad3354
MP
240972013-02-26 Marek Polacek <polacek@redhat.com>
24098
24099 PR tree-optimization/56426
88b97037 24100 * tree-ssa-loop.c (tree_ssa_loop_init): Always call scev_initialize.
f1ad3354 24101
a6af0f42
RB
241022013-02-26 Richard Biener <rguenther@suse.de>
24103
24104 PR target/56444
24105 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): Remove
24106 unused variable loops.
24107
aca43c6c
JJ
241082013-02-26 Jakub Jelinek <jakub@redhat.com>
24109
cecbe5d9
JJ
24110 PR tree-optimization/56448
24111 * fold-const.c (operand_equal_p) <case tcc_reference>: Don't look at
24112 TREE_SIDE_EFFECTS if flags contain OEP_CONSTANT_ADDRESS_OF.
24113 Clear OEP_CONSTANT_ADDRESS_OF from flags before recursing on second or
24114 later operands of the references, or even first operand for
24115 INDIRECT_REF, TARGET_MEM_REF or MEM_REF.
24116
aca43c6c
JJ
24117 PR tree-optimization/56443
24118 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): For
24119 overaligned types, pass TYPE_UNSIGNED (scalar_type) as second argument
24120 to type_for_mode langhook.
24121
53e2e141
MT
241222013-02-25 Matt Turner <mattst88@gmail.com>
24123
24124 * doc/invoke.texi: Document r4700.
24125
259ee451
RB
241262013-02-25 Richard Biener <rguenther@suse.de>
24127
24128 PR tree-optimization/56175
24129 * tree-ssa-forwprop.c (hoist_conversion_for_bitop_p): New predicate,
24130 split out from ...
24131 (simplify_bitwise_binary): ... here. Also guard the conversion
24132 of (type) X op CST to (type) (X op ((type-x) CST)) with it.
24133
6d65e8f1
CM
241342013-02-25 Catherine Moore <clm@codesourcery.com>
24135
24136 Revert:
24137 2013-02-24 Catherine Moore <clm@codesourcery.com>
24138 Maciej W. Rozycki <macro@codesourcery.com>
24139 Tom de Vries <tom@codesourcery.com>
a72d8780 24140 Nathan Sidwell <nathan@codesourcery.com>
6d65e8f1
CM
24141 Iain Sandoe <iain@codesourcery.com>
24142 Nathan Froyd <froydnj@codesourcery.com>
a72d8780 24143 Chao-ying Fu <fu@mips.com>
88b97037 24144
6d65e8f1 24145 * doc/extend.texi: (micromips, nomicromips, nocompression):
88b97037 24146 Document new function attributes.
6d65e8f1
CM
24147 * doc/invoke.texi (minterlink-compressed, mmicromips,
24148 m14k, m14ke, m14kec): Document new options.
24149 (minterlink-mips16): Update documentation.
24150 * doc/md.texi (ZC, ZD): Document new constraints.
24151 * configure.ac (gcc_cv_as_micromips): Check if linker
24152 supports the .set micromips directive.
24153 * configure: Regenerate.
24154 * config.in: Regenerate.
24155 * config/mips/mips-tables.opt: Regenerate.
24156 * config/mips/micromips.md: New file.
24157 * constraints.md (ZC, AD): New constraints.
24158 * config/mips/predicates.md (movep_src_register): New predicate.
24159 (movep_src_operand): New predicate.
24160 (non_volatile_mem_operand): New predicate.
24161 * config/mips/mips.md (multimem): New type.
24162 (length): Differentiate between 17-bit and 18-bit branch offsets.
24163 (MOVEP1, MOVEP2): New mode iterator.
24164 (mov_<load>l): Use ZC constraint.
24165 (mov_<load>r): Likewise.
24166 (mov_<store>l): Likewise.
24167 (mov_<store>r): Likewise.
24168 (*branch_equality<mode>_inverted): Add microMIPS support.
24169 (*branch_equality<mode>): Likewise.
24170 (*jump_absolute): Likewise.
24171 (indirect_jump_<mode>): Likewise.
24172 (tablejump_<mode>): Likewise.
24173 (<optab>_internal): Likewise.
24174 (sibcall_internal): Likewise.
24175 (sibcall_value_internal): Likewise.
24176 (prefetch): Use constraint ZD.
24177 * config/mips/mips.opt (minterlink-compressed): New option.
24178 (minterlink-mips16): Now an alias for minterlink-compressed.
24179 (mmicromips): New option.
24180 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
24181 (compare_and_swap_12): Likewise.
24182 (sync_add<mode>): Likewise.
24183 (sync_<optab>_12): Likewise.
24184 (sync_old_<optab>_12): Likewise.
24185 (sync_new_<optab>_12): Likewise.
24186 (sync_nand_12): Likewise.
24187 (sync_old_nand_12): Likewise.
24188 (sync_new_nand_12): Likewise.
24189 (sync_sub<mode>): Likewise.
24190 (sync_old_add<mode>): Likewise.
24191 (sync_old_sub<mode>): Likewise.
24192 (sync_new_add<mode>): Likewise.
24193 (sync_new_sub<mode>): Likewise.
24194 (sync_<optab><mode>): Likewise.
24195 (sync_old_<optab><mode>): Likewise.
24196 (sync_new_<optab><mode>): Likewise.
24197 (sync_nand<mode>): Likewise.
24198 (sync_old_nand<mode>): Likewise.
24199 (sync_new_nand<mode>): Likewise.
24200 (sync_lock_test_and_set<mode>): Likewise.
24201 (test_and_set_12): Likewise.
24202 (atomic_compare_and_swap<mode>): Likewise.
24203 (atomic_exchange<mode>_llsc): Likewise.
24204 (atomic_fetch_add<mode>_llsc): Likewise.
24205 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
24206 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
24207 (umips_save_restore_pattern_p): Likewise.
24208 (umips_load_store_pair_p): Likewise.
24209 (umips_output_load_store_pair): Likewise.
24210 (umips_movep_target_p): Likewise.
24211 (umips_12bit_offset_address_p): Likewise.
24212 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
24213 (mips_base_mips16): Rename this...
24214 (mips_base_compression_flags): ...to this. Update all uses.
24215 (mips_attribute_table): Add micromips, nomicromips and nocompression.
24216 (mips_mips16_decl_p): Delete.
24217 (mips_nomips16_decl_p): Delete.
24218 (mips_get_compress_on_flags): New function.
24219 (mips_get_compress_off_flags): New function.
24220 (mips_get_compress_mode): New function.
24221 (mips_get_compress_on_name): New function.
24222 (mips_get_compress_off_name): New function.
24223 (mips_insert_attributes): Support multiple compression types.
24224 (mips_merge_decl_attributes): Likewise.
24225 (umips_12bit_offset_address_p): New function.
24226 (mips_start_function_definition): Emit .set micromips directive.
24227 (mips_call_may_need_jalx_p): New function.
24228 (mips_function_ok_for_sibcall): Add microMIPS support.
24229 (mips_print_operand_punctuation): Support short delay slots and
24230 compact jumps.
24231 (umips_swm_mask, umips_swm_encoding): New.
24232 (umips_build_save_restore): New function.
24233 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
24234 (was_mips16_p): Remove.
24235 (old_compression_mode): New.
24236 (mips_set_compression_mode): New function.
24237 (mips_set_current_function): Add microMIPS support.
24238 (mips_option_override): Likewise.
24239 (umips_save_restore_pattern_p): New function.
24240 (umips_output_save_restore): New function.
24241 (umips_load_store_pair_p_1): New function.
24242 (umips_load_store_pair_p): New function.
24243 (umips_output_load_store_pair_1): New function.
24244 (umips_output_load_store_pair): New function.
24245 (umips_movep_target_p) New function.
24246 (mips_prepare_pch_save): Add microMIPS support.
24247 * config/mips/mips.h (TARGET_COMPRESSION): New.
24248 (TARGET_CPU_CPP_BUILTINS): Update macro
24249 to use new compression flags and to support microMIPS.
24250 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
24251 (MIPS_ARCH_FLOAT_SPEC): Likewise.
24252 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
24253 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
24254 (ASM_SPEC): Support mmicromips and mno-micromips.
24255 (M16STORE_REG_P): New macro.
24256 (MIPS_CALL): Support TARGET_MICROMIPS.
24257 (MICROMIPS_J): New macro.
24258 (mips_base_mips16): Rename this...
24259 (mips_base_compression_flags): ...to this.
24260 (UMIPS_12BIT_OFFSET_P): New macro.
24261 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
24262 (MULTILIB_DIRNAMES): Likewise.
24263
5e5df392
TV
242642013-02-25 Tom de Vries <tom@codesourcery.com>
24265
24266 PR rtl-optimization/56131
24267 * insn-notes.def (INSN_NOTE_BASIC_BLOCK): Update comment.
24268 * cfgrtl.c (delete_insn): Don't reorder NOTE_INSN_DELETED_LABEL and
24269 NOTE_INSN_BASIC_BLOCK if BLOCK_FOR_INSN == NULL.
24270
3fdb53c1
TB
242712013-02-25 Tobias Burnus <burnus@net-b.de>
24272
24273 * doc/invoke.texi (-fsanitize=): Move from optimization
24274 to debugging options.
24275
ed358aea
AB
242762013-02-25 Andrey Belevantsev <abel@ispras.ru>
24277
24278 * sched-deps.c (sched_analyze_insn): Fix typo in comment.
24279
f45e9053
AB
242802013-02-25 Andrey Belevantsev <abel@ispras.ru>
24281 Alexander Monakov <amonakov@ispras.ru>
24282
24283 PR middle-end/56077
24284 * sched-deps.c (sched_analyze_insn): When reg_pending_barrier,
24285 flush pending lists also on non-jumps. Adjust comment.
24286
6941b508
CM
242872013-02-24 Catherine Moore <clm@codesourcery.com>
24288 Maciej W. Rozycki <macro@codesourcery.com>
24289 Tom de Vries <tom@codesourcery.com>
a72d8780 24290 Nathan Sidwell <nathan@codesourcery.com>
6941b508
CM
24291 Iain Sandoe <iain@codesourcery.com>
24292 Nathan Froyd <froydnj@codesourcery.com>
a72d8780 24293 Chao-ying Fu <fu@mips.com>
6941b508
CM
24294
24295 * doc/extend.texi: (micromips, nomicromips, nocompression):
88b97037 24296 Document new function attributes.
6941b508
CM
24297 * doc/invoke.texi (minterlink-compressed, mmicromips,
24298 m14k, m14ke, m14kec): Document new options.
24299 (minterlink-mips16): Update documentation.
24300 * doc/md.texi (ZC, ZD): Document new constraints.
24301 * configure.ac (gcc_cv_as_micromips): Check if linker
24302 supports the .set micromips directive.
24303 * configure: Regenerate.
24304 * config.in: Regenerate.
24305 * config/mips/mips-tables.opt: Regenerate.
24306 * config/mips/micromips.md: New file.
24307 * constraints.md (ZC, AD): New constraints.
24308 * config/mips/predicates.md (movep_src_register): New predicate.
24309 (movep_src_operand): New predicate.
24310 (non_volatile_mem_operand): New predicate.
24311 * config/mips/mips.md (multimem): New type.
24312 (length): Differentiate between 17-bit and 18-bit branch offsets.
24313 (MOVEP1, MOVEP2): New mode iterator.
3fdb53c1 24314 (mov_<load>l): Use ZC constraint.
6941b508
CM
24315 (mov_<load>r): Likewise.
24316 (mov_<store>l): Likewise.
24317 (mov_<store>r): Likewise.
24318 (*branch_equality<mode>_inverted): Add microMIPS support.
24319 (*branch_equality<mode>): Likewise.
24320 (*jump_absolute): Likewise.
24321 (indirect_jump_<mode>): Likewise.
24322 (tablejump_<mode>): Likewise.
24323 (<optab>_internal): Likewise.
24324 (sibcall_internal): Likewise.
24325 (sibcall_value_internal): Likewise.
24326 (prefetch): Use constraint ZD.
24327 * config/mips/mips.opt (minterlink-compressed): New option.
24328 (minterlink-mips16): Now an alias for minterlink-compressed.
24329 (mmicromips): New option.
24330 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
24331 (compare_and_swap_12): Likewise.
24332 (sync_add<mode>): Likewise.
24333 (sync_<optab>_12): Likewise.
24334 (sync_old_<optab>_12): Likewise.
24335 (sync_new_<optab>_12): Likewise.
24336 (sync_nand_12): Likewise.
24337 (sync_old_nand_12): Likewise.
24338 (sync_new_nand_12): Likewise.
24339 (sync_sub<mode>): Likewise.
24340 (sync_old_add<mode>): Likewise.
24341 (sync_old_sub<mode>): Likewise.
24342 (sync_new_add<mode>): Likewise.
24343 (sync_new_sub<mode>): Likewise.
24344 (sync_<optab><mode>): Likewise.
24345 (sync_old_<optab><mode>): Likewise.
24346 (sync_new_<optab><mode>): Likewise.
24347 (sync_nand<mode>): Likewise.
24348 (sync_old_nand<mode>): Likewise.
24349 (sync_new_nand<mode>): Likewise.
24350 (sync_lock_test_and_set<mode>): Likewise.
24351 (test_and_set_12): Likewise.
24352 (atomic_compare_and_swap<mode>): Likewise.
24353 (atomic_exchange<mode>_llsc): Likewise.
24354 (atomic_fetch_add<mode>_llsc): Likewise.
24355 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
24356 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
24357 (umips_save_restore_pattern_p): Likewise.
24358 (umips_load_store_pair_p): Likewise.
24359 (umips_output_load_store_pair): Likewise.
24360 (umips_movep_target_p): Likewise.
24361 (umips_12bit_offset_address_p): Likewise.
24362 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
24363 (mips_base_mips16): Rename this...
24364 (mips_base_compression_flags): ...to this. Update all uses.
24365 (mips_attribute_table): Add micromips, nomicromips and nocompression.
24366 (mips_mips16_decl_p): Delete.
24367 (mips_nomips16_decl_p): Delete.
3fdb53c1 24368 (mips_get_compress_on_flags): New function.
6941b508
CM
24369 (mips_get_compress_off_flags): New function.
24370 (mips_get_compress_mode): New function.
24371 (mips_get_compress_on_name): New function.
24372 (mips_get_compress_off_name): New function.
24373 (mips_insert_attributes): Support multiple compression types.
24374 (mips_merge_decl_attributes): Likewise.
24375 (umips_12bit_offset_address_p): New function.
24376 (mips_start_function_definition): Emit .set micromips directive.
24377 (mips_call_may_need_jalx_p): New function.
24378 (mips_function_ok_for_sibcall): Add microMIPS support.
24379 (mips_print_operand_punctuation): Support short delay slots and
24380 compact jumps.
24381 (umips_swm_mask, umips_swm_encoding): New.
24382 (umips_build_save_restore): New function.
24383 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
24384 (was_mips16_p): Remove.
24385 (old_compression_mode): New.
24386 (mips_set_compression_mode): New function.
24387 (mips_set_current_function): Add microMIPS support.
24388 (mips_option_override): Likewise.
24389 (umips_save_restore_pattern_p): New function.
24390 (umips_output_save_restore): New function.
24391 (umips_load_store_pair_p_1): New function.
24392 (umips_load_store_pair_p): New function.
24393 (umips_output_load_store_pair_1): New function.
24394 (umips_output_load_store_pair): New function.
24395 (umips_movep_target_p) New function.
24396 (mips_prepare_pch_save): Add microMIPS support.
24397 * config/mips/mips.h (TARGET_COMPRESSION): New.
24398 (TARGET_CPU_CPP_BUILTINS): Update macro
24399 to use new compression flags and to support microMIPS.
24400 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
24401 (MIPS_ARCH_FLOAT_SPEC): Likewise.
24402 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
24403 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
24404 (ASM_SPEC): Support mmicromips and mno-micromips.
24405 (M16STORE_REG_P): New macro.
24406 (MIPS_CALL): Support TARGET_MICROMIPS.
24407 (MICROMIPS_J): New macro.
24408 (mips_base_mips16): Rename this...
24409 (mips_base_compression_flags): ...to this.
24410 (UMIPS_12BIT_OFFSET_P): New macro.
24411 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
24412 (MULTILIB_DIRNAMES): Likewise.
24413
cdebbc6d
JJ
244142013-02-24 Jakub Jelinek <jakub@redhat.com>
24415
24416 PR target/52555
24417 * target-globals.c (save_target_globals): For init_reg_sets and
24418 target_reinit remporarily set this_fn_optabs to this_target_optabs.
24419
18c63565
JG
244202013-02-22 James Grennahlgh <james.greenhalgh@arm.com>
24421
24422 * config/aarch64/aarch64-simd-builtins.def: Add copyright header.
24423 * config/aarch64/t-aarch64
24424 (aarch64-builtins.o): Depend on aarch64-simd-builtins.def.
24425
2194f7a2
VM
244262013-02-22 Vladimir Makarov <vmakarov@redhat.com>
24427
24428 PR inline-asm/56148
24429 * lra-constraints.c (process_alt_operands): Reload operand
24430 conflicting with earlier clobber only if no more other conflicting
24431 operands.
24432
7d613735
JJ
244332013-02-22 Jakub Jelinek <jakub@redhat.com>
24434
24435 PR sanitizer/56393
24436 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Link in libasan_preinit.o
24437 if not linking a shared library.
24438
ac8d93a7
SL
244392013-02-22 Seth LaForge <sethml@google.com>
24440
24441 * config.gcc (arm*-*-eabi*): Treat arm*eb as big-endian.
24442
e0237780
GY
244432013-02-22 Greta Yorsh <Greta.Yorsh@arm.com>
24444
3fdb53c1
TB
24445 * config/arm/arm.md (split for extendsidi): Update condition.
24446 (zero_extend<mode>di2,extend<mode>di2): Add an alternative.
24447 * config/arm/iterators.md (qhs_extenddi_cstr): Likewise.
24448 (qhs_zextenddi_cstr): Likewise.
e0237780 24449
d7fde18c
JJ
244502013-02-21 Jakub Jelinek <jakub@redhat.com>
24451
be63b77d
JJ
24452 PR middle-end/56420
24453 * expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Do subtraction in uhwi, to
24454 avoid signed wrapping.
24455 (expand_mult): Handle properly multiplication by
24456 ((dword_type) -1) << (BITS_PER_WORD - 1). Improve multiplication by
24457 ((dword_type) 1) << (BITS_PER_WORD - 1). Avoid undefined behavior
24458 in the compiler if coeff is HOST_WIDE_INT_MIN.
24459 (expand_divmod): Don't make ext_op1 static, change it's type to
24460 uhwi. Avoid undefined behavior in -INTVAL (op1).
24461
d7fde18c
JJ
24462 PR rtl-optimization/50339
24463 * lower-subreg.h (struct lower_subreg_choices): Add splitting_ashiftrt
24464 field.
24465 * lower-subreg.c (compute_splitting_shift): Handle ASHIFTRT.
24466 (compute_costs): Call compute_splitting_shift also for ASHIFTRT
24467 into splitting_ashiftrt field.
24468 (find_decomposable_shift_zext, resolve_shift_zext): Handle also
24469 ASHIFTRT.
24470 (dump_choices): Fix up printing LSHIFTRT choices, print ASHIFTRT
24471 choices.
24472
6aad4455
AH
244732013-02-20 Aldy Hernandez <aldyh@redhat.com>
24474
24475 PR middle-end/56108
24476 * trans-mem.c (execute_tm_mark): Do not expand transactions that
24477 are sure to go irrevocable.
24478
38fe784d
HPN
244792013-02-21 Hans-Peter Nilsson <hp@axis.com>
24480
24481 * doc/rtl.texi (vec_concat, vec_duplicate): Mention that
24482 scalars are valid operands.
24483
0fd44da3
MJ
244842013-02-21 Martin Jambor <mjambor@suse.cz>
24485
24486 PR tree-optimization/56310
24487 * ipa-cp.c (agg_replacements_to_vector): New parameter index, copy
24488 only matching indices and non-negative final offsets.
24489 (intersect_aggregates_with_edge): Pass src_idx to
24490 agg_replacements_to_vector. Pass src_idx insstead of index to
24491 intersect_with_agg_replacements.
24492
7a92038b
MJ
244932013-02-21 Martin Jambor <mjambor@suse.cz>
24494
24495 * ipa-cp.c (good_cloning_opportunity_p): Dump the real threshold
24496 instead of hard-wired defaults.
24497
c0da9c37
MR
244982013-02-21 Maciej W. Rozycki <macro@codesourcery.com>
24499
24500 * doc/invoke.texi (MIPS Options): Update documentation of the
24501 floating-point multiply-accumulate instruction restrictions.
24502
d247ea0c 245032013-02-21 Kostya Serebryany <kcc@google.com>
7df59255
KS
24504
24505 * config/i386/i386.c (ix86_asan_shadow_offset): Use 0x7fff8000 as
24506 asan_shadow_offset on x86_64 linux.
24507
22deefcb
RB
245082013-02-21 Richard Biener <rguenther@suse.de>
24509
24510 PR tree-optimization/56415
24511 Revert
24512 2013-02-11 Richard Biener <rguenther@suse.de>
24513
24514 PR tree-optimization/56273
24515 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
24516 first VRP run.
24517
7bcc6e75
JJ
245182013-02-21 Jakub Jelinek <jakub@redhat.com>
24519
a0ad148f
JJ
24520 PR bootstrap/56258
24521 * doc/invoke.texi (-fdump-rtl-pro_and_epilogue): Use @item
24522 instead of @itemx.
24523
7bcc6e75
JJ
24524 PR inline-asm/56405
24525 * expr.c (expand_expr_real_1) <case TARGET_MEM_REF, MEM_REF>: Don't
24526 use movmisalign or extract_bit_field for EXPAND_MEMORY modifier.
24527
a0a7b611
JH
245282013-02-20 Jan Hubicka <jh@suse.cz>
24529
24530 PR tree-optimization/56265
88b97037
UB
24531 * ipa-prop.c (ipa_make_edge_direct_to_target): Fixup callgraph
24532 when target is referenced for first time.
a0a7b611 24533
c0e50f72
RB
245342013-02-20 Richard Biener <rguenther@suse.de>
24535
24536 * tree-call-cdce.c (tree_call_cdce): Do not remove unused locals.
24537 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise.
24538 * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
24539 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do
24540 not return anything.
24541 (rename_ssa_copies): Do not remove unused locals.
24542 * tree-ssa-ccp.c (do_ssa_ccp): Likewise.
88b97037 24543 * tree-ssanames.c (pass_release_ssa_names): Remove unused locals first.
c0e50f72
RB
24544 * passes.c (execute_function_todo): Do not schedule unused locals
24545 removal if cleanup_tree_cfg did something.
24546 * tree-ssa-live.c (remove_unused_locals): Dump statistics
24547 about the number of removed locals.
24548
a52ca739
RB
245492013-02-20 Richard Biener <rguenther@suse.de>
24550
24551 PR tree-optimization/56398
88b97037 24552 * tree-vect-loop-manip.c (adjust_debug_stmts): Skip SSA default defs.
a52ca739 24553
ec9c9d1b
MJ
245542013-02-20 Martin Jambor <mjambor@suse.cz>
24555
24556 PR tree-optimization/55334
24557 * ipa-cp.c (initialize_node_lattices): Disable IPA-CP through and to
24558 restricted pointers to arrays.
24559
e91c8ed6 245602013-02-20 Richard Biener <rguenther@suse.de>
88b97037 24561 Jakub Jelinek <jakub@redhat.com>
e91c8ed6
RB
24562
24563 PR tree-optimization/56396
24564 * tree-ssa-ccp.c (n_const_val): New static variable.
24565 (get_value): Return NULL for SSA names we don't have a lattice
24566 entry for.
24567 (ccp_initialize): Initialize n_const_val.
24568 * tree-ssa-copy.c (n_copy_of): New static variable.
24569 (init_copy_prop): Initialize n_copy_of.
24570 (get_value): Return NULL_TREE for SSA names we don't have a
24571 lattice entry for.
24572
3d916479
MJ
245732013-02-20 Martin Jambor <mjambor@suse.cz>
24574
24575 * ipa-cp.c (initialize_node_lattices): Fix dumping condition.
24576
71a86758
RB
245772013-02-20 Richard Biener <rguenther@suse.de>
24578
24579 * genpreds.c (write_lookup_constraint): Do not compare first
24580 letter of the constraint again.
24581
79836a12
RB
245822013-02-20 Richard Biener <rguenther@suse.de>
24583
24584 * tree-ssa-loop-ivopts.c (alloc_use_cost_map): Use bitmap_count_bits
24585 and ceil_log2.
24586 (get_use_iv_cost): Terminate hashtable walk when coming across
24587 an empty entry.
24588
bbe4fb2c
IZ
245892013-02-20 Igor Zamyatin <igor.zamyatin@intel.com>
24590
24591 * config/i386/i386.c (initial_ix86_tune_features): Turn on fp
24592 reassociation for avx2 targets.
24593
a72d8780 245942012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
79836a12 24595
c77f83d5
EI
24596 * config/microblaze/microblaze.c: microblaze_has_clz = 0
24597 Add version check for v8.10.a to enable microblaze_has_clz
88b97037 24598 * config/microblaze/microblaze.h: Add TARGET_HAS_CLZ as combined
c77f83d5
EI
24599 version and TARGET_PATTERN_COMPARE check
24600 * config/microblaze/microblaze.md: New clzsi2 instruction
3fdb53c1 24601
a72d8780 246022012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
959434e6 24603
a72d8780 24604 * config/microblaze/microblaze.md (call_value_intern): Check symbol is
959434e6
EI
24605 function before branching.
24606
242387fa
AB
246072012-02-19 Andrey Belevantsev <abel@ispras.ru>
24608
24609 * sel-sched-dump.c (dump_insn_rtx_flags): Explicitly set
24610 DUMP_INSN_RTX_UID.
24611 (dump_insn_rtx_1): Pass PATTERN (insn) to str_pattern_slim.
24612
b4979ab9
AB
246132012-02-19 Andrey Belevantsev <abel@ispras.ru>
24614
24615 PR middle-end/55889
b4979ab9
AB
24616 * sel-sched.c: Include ira.h.
24617 (implicit_clobber_conflict_p): New function.
24618 (moveup_expr): Use it.
88b97037 24619 * Makefile.in (sel-sched.o): Depend on ira.h.
b4979ab9 24620
24d63016
RB
246212013-02-19 Richard Biener <rguenther@suse.de>
24622
24623 PR tree-optimization/56384
24624 * tree-ssa-sccvn.h (struct vn_phi_s): Add type member.
24625 (vn_hash_type): Split out from ...
24626 (vn_hash_constant_with_type): ... here.
24627 * tree-ssa-sccvn.c (vn_phi_compute_hash): Use vn_hash_type.
24628 (vn_phi_eq): Compare types from vn_phi_s structure.
24629 (vn_phi_lookup): Populate vn_phi_s type.
24630 (vn_phi_insert): Likewise.
24631
a475fd3d
JJ
246322013-02-19 Jakub Jelinek <jakub@redhat.com>
24633
47cc28f5
JJ
24634 PR tree-optimization/56350
24635 * tree-vect-loop.c (vectorizable_reduction): If orig_stmt, return false
24636 if haven't found reduction or nested cycle operand, rather than
24637 asserting we must find it.
24638
a475fd3d
JJ
24639 PR tree-optimization/56381
24640 * tree-ssa-pre.c (create_expression_by_pieces): Fix up last argument
24641 to fold_build3.
24642
246432013-02-18 Aldy Hernandez <aldyh@redhat.com>
135204dd
AH
24644 Jakub Jelinek <jakub@redhat.com>
24645
24646 PR target/52555
24647 * genopinit.c (raw_optab_handler): Use this_fn_optabs.
24648 (swap_optab_enable): Same.
24649 (init_all_optabs): Use argument instead of global.
88b97037 24650 * tree.h (struct tree_optimization_option): New field target_optabs.
135204dd
AH
24651 * expr.h (init_all_optabs): Add argument to prototype.
24652 (TREE_OPTIMIZATION_OPTABS): New.
24653 (save_optabs_if_changed): Protoize.
24654 * optabs.h: Declare this_fn_optabs.
24655 * optabs.c (save_optabs_if_changed): New.
24656 Declare this_fn_optabs.
24657 (init_optabs): Add argument to init_all_optabs() call.
24658 * function.c (invoke_set_current_function_hook): Handle per
24659 function optabs.
24660 * function.h (struct function): New field optabs.
24661 * config/mips/mips.c (mips_set_mips16_mode): Handle when
24662 optimization_current_node has changed.
24663 * target-globals.h (save_target_globals_default_opts): Protoize.
24664 * target-globals.c (save_target_globals_default_opts): New.
24665
3f587ca3
JDA
246662013-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
24667
24668 PR target/56347
24669 * config/pa/pa.c (pa_conditional_register_usage): On HP-UX, mark
24670 registers %fr12 and %fr12R as call used.
ceaca33e
JDA
24671
24672 PR target/56214
24673 * config/pa/predicates.md (base14_operand): Except for BLKmode, QImode
88b97037
UB
24674 and HImode, require all displacements to be an integer multiple of
24675 their mode size.
ceaca33e
JDA
24676 * config/pa/pa.c (pa_legitimate_address_p): For REG+BASE addresses,
24677 only allow QImode and HImode when reload is in progress and strict is
24678 true. Likewise for symbolic addresses. Use base14_operand to check
24679 displacements in REG+BASE addresses.
24680
fe0b4796
RB
246812013-02-18 Richard Biener <rguenther@suse.de>
24682
24683 PR tree-optimization/56366
24684 * tree-vect-loop.c (get_initial_def_for_induction): Properly
24685 handle sign-conversion of outer-loop initial induction value.
24686
6aaf596b
RB
246872013-02-18 Richard Biener <rguenther@suse.de>
24688
73db8ff1 24689 PR middle-end/56349
6aaf596b
RB
24690 * cfghooks.c (merge_blocks): If we merge a latch into another
24691 block adjust references to it.
24692 * cfgloop.c (flow_loops_find): Reset latch before recomputing it.
24693 (verify_loop_structure): Verify that a recorded latch is in fact
24694 a latch.
24695
5e97dfb6
RB
246962013-02-18 Richard Biener <rguenther@suse.de>
24697
24698 PR tree-optimization/56321
24699 * tree-ssa-reassoc.c (propagate_op_to_single_use): Properly
24700 order SSA name release and virtual operand unlinking.
24701
825527e8
EI
247022013-02-17 Edgar E. Iglesias <edgar.iglesias@gmail.com>
24703
24704 * config/microblaze/microblaze.md (save_stack_block): Define.
24705 (restore_stack_block): Likewise.
24706
debd11d9
EI
247072013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
24708
24709 * config/microblaze/linux.h (TARGET_SUPPORTS_PIC): Define as 1.
24710 * config/microblaze/microblaze.h (TARGET_SUPPORTS_PIC): Define as 1.
24711 * config/microblaze/microblaze.c (microblaze_option_override):
24712 Bail out early for PIC modes when target does not support PIC.
24713
8ec77be0
EI
247142013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
24715
88b97037 24716 * config/microblaze/microblaze.c (microblaze_asm_trampoline_template):
8ec77be0
EI
24717 Replace with a microblaze version.
24718 (microblaze_trampoline_init): Adapt for microblaze.
a752b80f 24719 * config/microblaze/microblaze.h (TRAMPOLINE_SIZE): Adapt for
8ec77be0
EI
24720 microblaze.
24721
b41288b3
JJ
247222013-02-16 Jakub Jelinek <jakub@redhat.com>
24723 Dodji Seketeli <dodji@redhat.com>
24724
24725 PR asan/56330
88b97037 24726 * asan.c (get_mem_refs_of_builtin_call): White space and style cleanup.
b41288b3
JJ
24727 (instrument_mem_region_access): Do not forget to always put
24728 instrumentation of the of 'base' and 'base + len' in a "if (len !=
24729 0) statement, even for cases where either 'base' or 'base + len'
24730 are not instrumented -- because they have been previously
24731 instrumented. Simplify the logic by putting all the statements
24732 instrument 'base + len' inside a sequence, and then insert that
24733 sequence right before the current insertion point. Then, to
24734 instrument 'base + len', just get an iterator on that statement.
24735 And do not forget to update the pointer to iterator the function
24736 received as argument.
24737
47918951
VM
247382013-02-15 Vladimir Makarov <vmakarov@redhat.com>
24739
24740 PR rtl-optimization/56348
24741 * lra-assigns.c (reload_pseudo_compare_func): Prefer bigger pseudos.
24742
3fb7c699
SB
247432013-02-15 Steven Bosscher <steven@gcc.gnu.org>
24744
24745 * graph.c (start_graph_dump): Print dumpfile base as digraph label.
24746 (clean_graph_dump_file): Pass base to start_graph_dump.
24747
576fe41a
RH
247482013-02-14 Richard Henderson <rth@redhat.com>
24749
24750 PR target/55941
24751 * lower-subreg.c (simple_move): Check dest mode instead of src mode.
24752
bb3accfa
SB
247532013-02-14 Steven Bosscher <steven@gcc.gnu.org>
24754
24755 * collect2-aix.h: Define F_LOADONLY.
24756
03143140
RB
247572013-02-14 Richard Biener <rguenther@suse.de>
24758
24759 PR lto/50494
24760 * varasm.c (output_constant_def_1): Get the decl representing
24761 the constant as argument.
24762 (output_constant_def): Wrap output_constant_def_1.
24763 (make_decl_rtl): Use output_constant_def_1 with the decl
24764 representing the constant.
24765 (build_constant_desc): Optionally re-use a decl already
24766 representing the constant.
24767 (tree_output_constant_def): Adjust.
24768
8fb06726
DS
247692013-02-14 Dodji Seketeli <dodji@redhat.com>
24770
24771 Fix an asan crash
24772 * asan.c (instrument_builtin_call): Really put the length of the
24773 second source argument into src1_len.
24774
c4bfe8bf
JJ
247752013-02-13 Jakub Jelinek <jakub@redhat.com>
24776
24777 * asan.c (create_cond_insert_point): Add create_then_fallthru_edge
24778 argument. If it is false, don't create edge from then_bb to
24779 fallthru_bb.
24780 (insert_if_then_before_iter): Pass true to it.
24781 (build_check_stmt): Pass false to it.
24782 (transform_statements): Flush hash table only on extended basic
24783 block boundaries, rather than at the beginning of every bb.
24784 Don't flush hash table on nonfreeing_call_p calls.
24785 * tree-flow.h (nonfreeing_call_p): New prototype.
24786 * tree-ssa-phiopt.c (nonfreeing_call_p): No longer static.
24787
7afe2801
DM
247882013-02-13 David S. Miller <davem@davemloft.net>
24789
24790 * expmed.c (expand_shift_1): Only strip scalar integer subregs.
24791
70cc3288
VM
247922013-02-13 Vladimir Makarov <vmakarov@redhat.com>
24793
24794 PR target/56184
24795 * ira.c (max_regno_before_ira): Move from ...
24796 (ira): ... here.
24797 (fix_reg_equiv_init): Use max_regno_before_ira instead of
24798 vec_safe_length.
24799
6422242b
JJ
248002013-02-13 Jakub Jelinek <jakub@redhat.com>
24801
24802 * config/i386/i386.c (ix86_asan_shadow_offset): Revert last change.
24803
976a81ee
RB
248042013-02-13 Richard Biener <rguenther@suse.de>
24805
24806 PR lto/56295
24807 * gimple-streamer-out.c (output_gimple_stmt): Undo wrapping
24808 globals in MEM_REFs.
24809
c1874a87
RB
248102013-02-13 Richard Biener <rguenther@suse.de>
24811
24812 * loop-init.c (loop_optimizer_init): Clear loop state when
24813 re-initializing preserved loops.
24814 * loop-unswitch.c (unswitch_single_loop): Return whether
24815 we unswitched the loop. Do not verify loop state here.
88b97037 24816 (unswitch_loops): When we unswitched a loop discover new loops.
c1874a87 24817
b4ab7d34
KS
248182013-02-13 Kostya Serebryany <kcc@google.com>
24819
88b97037
UB
24820 * config/i386/i386.c: Use 0x7fff8000 as asan_shadow_offset
24821 on x86_64 linux.
b4ab7d34
KS
24822 * sanitizer.def: Rename __asan_init to __asan_init_v1.
24823
bdcbe80c
DS
248242013-02-12 Dodji Seketeli <dodji@redhat.com>
24825
24826 Avoid instrumenting duplicated memory access in the same basic block
24827 * Makefile.in (asan.o): Add new dependency on hash-table.h
24828 * asan.c (struct asan_mem_ref, struct mem_ref_hasher): New types.
24829 (asan_mem_ref_init, asan_mem_ref_get_end, get_mem_ref_hash_table)
24830 (has_stmt_been_instrumented_p, empty_mem_ref_hash_table)
24831 (free_mem_ref_resources, has_mem_ref_been_instrumented)
24832 (has_stmt_been_instrumented_p, update_mem_ref_hash_table)
24833 (get_mem_ref_of_assignment): New functions.
24834 (get_mem_refs_of_builtin_call): Extract from
24835 instrument_builtin_call and tweak a little bit to make it fit with
24836 the new signature.
24837 (instrument_builtin_call): Use the new
24838 get_mem_refs_of_builtin_call. Use gimple_call_builtin_p instead
24839 of is_gimple_builtin_call.
24840 (instrument_derefs, instrument_mem_region_access): Insert the
24841 instrumented memory reference into the hash table.
24842 (maybe_instrument_assignment): Renamed instrument_assignment into
24843 this, and change it to advance the iterator when instrumentation
24844 actually happened and return true in that case. This makes it
24845 homogeneous with maybe_instrument_assignment, and thus give a
24846 chance to callers to be more 'regular'.
24847 (transform_statements): Clear the memory reference hash table
24848 whenever we enter a new BB, when we cross a function call, or when
24849 we are done transforming statements. Use
24850 maybe_instrument_assignment instead of instrumentation. No more
24851 need to special case maybe_instrument_assignment and advance the
24852 iterator after calling it; it's now handled just like
24853 maybe_instrument_call. Update comment.
24854
4861a1f7
RB
248552013-02-13 Richard Biener <rguenther@suse.de>
24856
24857 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
24858 Fix loop discovery code.
24859
1c86bd80
VM
248602013-02-12 Vladimir Makarov <vmakarov@redhat.com>
24861
24862 PR inline-asm/56148
24863 * lra-constraints.c (process_alt_operands): Match early clobber
70cc3288 24864 operand with itself. Check conflicts with earlyclobber only if
1c86bd80
VM
24865 the operand is not reloaded. Prefer to reload conflicting operand
24866 if earlyclobber and matching operands are the same.
24867
7cbda518
RB
248682013-02-12 Richard Biener <rguenther@suse.de>
24869
24870 PR lto/56297
24871 * lto-streamer-out.c (write_symbol): Do not output symbols
24872 for hard register variables.
24873
e68a4ef6
GJL
248742013-02-12 Georg-Johann Lay <avr@gjlay.de>
24875
24876 PR target/54222
24877 * config/avr/avr-dimode.md (umulsidi3, mulsidi3): New expanders.
24878 (umulsidi3_insn, mulsidi3_insn): New insns.
24879
a72d8780 248802013-02-12 Christophe Lyon <christophe.lyon@linaro.org>
2597da22
CL
24881
24882 * config/arm/arm-protos.h (struct cpu_vec_costs): New struct type.
24883 (struct tune_params): Add vec_costs field.
24884 * config/arm/arm.c (arm_builtin_vectorization_cost)
24885 (arm_add_stmt_cost): New functions.
24886 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST)
24887 (TARGET_VECTORIZE_ADD_STMT_COST): Define.
24888 (arm_default_vec_cost): New struct of type cpu_vec_costs.
24889 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
24890 (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune)
24891 (arm_cortex_a15_tune, arm_cortex_a5_tune, arm_cortex_a9_tune)
24892 (arm_v6m_tune, arm_fa726te_tune): Define new vec_costs field.
24893
43320568
RB
248942013-02-12 Richard Biener <rguenther@suse.de>
24895
24896 PR lto/56295
24897 * gimple-streamer-in.c (input_gimple_stmt): Strip MEM_REFs off
24898 decls again if possible.
24899
a011aa39
RB
249002013-02-12 Richard Biener <rguenther@suse.de>
24901
24902 PR middle-end/56288
24903 * tree-ssa.c (verify_ssa_name): Fix check, move
24904 SSA_NAME_IN_FREE_LIST check up.
24905
6da26889
JJ
249062013-02-12 Jakub Jelinek <jakub@redhat.com>
24907 Steven Bosscher <steven@gcc.gnu.org>
24908
24909 PR rtl-optimization/56151
24910 * optabs.c (add_equal_note): Don't return 0 if target is a MEM,
24911 equal to op0 or op1, and last_insn pattern is CODE operation
24912 with MEM dest and one of the operands matches that MEM.
24913
f80e0faf
ST
249142013-02-11 Sriraman Tallam <tmsriramgoogle.com>
24915
24916 * doc/extend.texi: Document Function Multiversioning and "default"
24917 parameter string to target attribute.
24918 * config/i386/i386.c (get_builtin_code_for_version): Return 0 if
24919 target attribute parameter is "default".
24920 (ix86_compare_version_priority): Remove checks for target attribute.
24921 (ix86_mangle_function_version_assembler_name): Change error to sorry.
24922 Remove check for target attribute equal to NULL. Add assert.
24923 (ix86_generate_version_dispatcher_body): Change error to sorry.
24924
6c59ffd1
IS
249252013-02-11 Iain Sandoe <iain@codesourcery.com>
24926 Jack Howarth <howarth@bromo.med.uc.edu>
24927 Patrick Marlier <patrick.marlier@gmail.com>
24928
24929 PR libitm/55693
24930 * config/darwin.h: Replace ENDFILE_SPEC with TM_DESTRUCTOR and
24931 define ENDFILE_SPEC as TM_DESTRUCTOR.
24932 * config/i386/darwin.h (ENDFILE_SPEC): Use TM_DESTRUCTOR.
24933
a72d8780 249342013-02-11 Alexander Potapenko <glider@google.com>
6a52ccb3
AP
24935 Jack Howarth <howarth@bromo.med.uc.edu>
24936 Jakub Jelinek <jakub@redhat.com>
24937
24938 PR sanitizer/55617
24939 * config/darwin.c (cdtor_record): Rename ctor_record.
24940 (sort_cdtor_records): Rename sort_ctor_records.
24941 (finalize_dtors): New routine to sort destructors by
24942 priority before use in assemble_integer.
24943 (machopic_asm_out_destructor): Use finalize_dtors if needed.
24944
b63fe007
UB
249452013-02-11 Uros Bizjak <ubizjak@gmail.com>
24946
24947 PR rtl-optimization/56275
24948 * simplify-rtx.c (avoid_constant_pool_reference): Check that
24949 offset is non-negative and less than cmode size before
24950 calling simplify_subreg.
24951
8e89b5b5
RB
249522013-02-11 Richard Biener <rguenther@suse.de>
24953
24954 PR tree-optimization/56264
24955 * cfgloop.h (fix_loop_structure): Adjust prototype.
24956 * loop-init.c (fix_loop_structure): Return the number of
24957 newly discovered loops.
24958 * tree-cfgcleanup.c (repair_loop_structures): When new loops
24959 are discovered, do a full loop-closed SSA rewrite.
24960
b4a4b56d
RB
249612013-02-11 Richard Biener <rguenther@suse.de>
24962
24963 PR tree-optimization/56273
24964 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
24965 first VRP run.
24966 (check_array_ref): Fix missing newline in dumps.
24967 (search_for_addr_array): Likewise.
24968
0c885229
DE
249692013-02-09 David Edelsohn <dje.gcc@gmail.com>
24970
24971 * config/rs6000/aix61.h (OS_MISSING_ALTIVEC): Undefine.
24972
59ac9a55
JJ
249732013-02-09 Jakub Jelinek <jakub@redhat.com>
24974
24975 PR target/56256
24976 * config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Define.
24977
25bb0bb5
VM
249782013-02-08 Vladimir Makarov <vmakarov@redhat.com>
24979
24980 PR rtl-optimization/56246
0c885229 24981 * lra-constraints.c (simplify_operand_subreg): Try to reuse
25bb0bb5
VM
24982 reload pseudo.
24983 * lra.c (lra): Clear lra_optional_reload_pseudos only when all
24984 constraints are satisfied.
24985
a698cc03
JL
249862013-02-08 Jeff Law <law@redhat.com>
24987
24988 PR debug/53948
24989 * emit-rtl.c (reg_is_parm_p): New function.
24990 * regs.h (reg_is_parm_p): New prototype.
24991 * ira-conflicts.c (ira_build_conflicts): Allow parameters in
24992 callee-clobbered registers.
24993
e1122ddd
MM
249942013-02-08 Michael Meissner <meissner@linux.vnet.ibm.com>
24995
24996 PR target/56043
24997 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass):
24998 If there is no implicit builtin declaration, just return NULL.
24999
19c5f6e6
UB
250002013-02-08 Uros Bizjak <ubizjak@gmail.com>
25001
25002 * config/i386/sse.md (FMAMODEM): New mode iterator.
25003 (fma<mode>4, fms<mode>4, fnma<mode>4, fnms<mode>4): Use FMAMODEM
25004 mode iterator. Do not use TARGET_SSE_MATH in insn constraint.
25005
2480f2ca 250062013-02-08 Uros Bizjak <ubizjak@gmail.com>
76ef61fb 25007
2480f2ca
UB
25008 * config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Define only
25009 when HAVE_GAS_CFI_PERSONALITY_DIRECTIVE is set.
25010 * config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): Ditto.
25011
250122013-02-08 Edgar E. Iglesias <edgar.iglesias@gmail.com>
25013
25014 * config.gcc (microblaze*-linux*): Add TARGET_BIG_ENDIAN_DEFAULT.
25015 (microblaze*-*-elf): Likewise.
25016 * config/microblaze/linux.h: Add -mbig-endian / -mlittle-endian to
25017 LINK_SPEC.
25018 * config/microblaze/microblaze-c.c: Add builtin defines for
25019 _LITTLE_ENDIAN and _BIG_ENDIAN.
25020 * config/microblaze/microblaze.h: Add TARGET_ENDIAN_DEFAULT and
25021 add to TARGET_DEFAULT flags.
76ef61fb 25022 Expand ASM_SPEC and LINK_SPEC.
2480f2ca
UB
25023 Update BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN.
25024 * config/microblaze/microblaze.md: Update extendsidi2 and
25025 movdi_internal instructions to use low-order / high-order reg
25026 print_operands.
25027 * config/microblaze/microblaze.opt: Add mbig-endian and mlittle-endian
25028 options and inversemask / mask of LITTLE_ENDIAN.
25029 * config/microblaze/t-microblaze: Expand multilib options to
25030 include mlittle-endian (le) and update exceptions patterns.
25031
600a5961
JJ
250322013-02-08 Jakub Jelinek <jakub@redhat.com>
25033
5df81313
JJ
25034 PR rtl-optimization/56195
25035 * lra-constraints.c (get_reload_reg): Don't reuse regs
25036 if they have smaller mode than requested, if they have
25037 wider mode than requested, try to return a SUBREG.
25038
600a5961
JJ
25039 PR tree-optimization/56250
25040 * fold-const.c (extract_muldiv_1) <case NEGATE_EXPR>: Don't optimize
25041 if type is unsigned and code isn't MULT_EXPR.
25042
ff544649
GJL
250432013-02-08 Georg-Johann Lay <avr@gjlay.de>
25044
25045 PR tree-optimization/56064
25046 * fixed-value.c (fixed_from_double_int): Sign/zero extend payload
25047 bits according to mode.
25048 * fixed-value.h (fixed_from_double_int)
25049 (const_fixed_from_double_int): Adjust comments.
25050
e45cde98
RB
250512013-02-08 Richard Biener <rguenther@suse.de>
25052
25053 PR lto/56231
25054 * lto-streamer.h (struct data_in): Remove current_file, current_line
25055 and current_col members.
25056 * lto-streamer-out.c (lto_output_location): Stream changed bits
25057 en-block for efficiency.
25058 * lto-streamer-in.c (clear_line_info): Remove.
25059 (lto_input_location): Cache current file, line and column
25060 globally via local statics. Read changed bits en-block.
25061 (input_function): Do not call clear_line_info.
25062 (lto_read_body): Likewise.
25063 (lto_input_toplevel_asms): Likewise.
25064
c1ca73d8
MM
250652013-02-08 Michael Matz <matz@suse.de>
25066
25067 PR tree-optimization/52448
25068 * tree-ssa-phiopt.c (struct name_to_bb): Add phase member.
25069 (nt_call_phase): New static.
25070 (add_or_mark_expr): Only mark accesses with newer phase than any
25071 call seen.
25072 (nonfreeing_call_p): New.
25073 (nt_init_block): Update nt_call_phase, mark blocks as visited.
25074 (nt_fini_block): Keep blocks marked as visited.
25075 (get_non_trapping): Initialize nt_call_phase, and reset aux pointer.
25076
57548aa2
RB
250772013-02-08 Richard Biener <rguenther@suse.de>
25078
25079 * ira.c (ira): Free broken dominator information.
25080
8e10366f
UB
250812013-02-08 Uros Bizjak <ubizjak@gmail.com>
25082
25083 * config/i386/i386.c (ix86_spill_class): Use INTEGER_CLASS_P macro.
25084
f64fb0fa
MP
250852013-02-08 Marek Polacek <polacek@redhat.com>
25086
8e10366f 25087 * cfgloop.c (verify_loop_structure): Add more checking of headers.
f64fb0fa 25088
0375167b
RB
250892013-02-08 Richard Biener <rguenther@suse.de>
25090
25091 PR middle-end/56181
25092 * cfgloop.h (flow_loops_find): Adjust.
25093 (bb_loop_header_p): Declare.
25094 * cfgloop.c (bb_loop_header_p): New function split out from ...
25095 (flow_loops_find): ... here. Adjust function signature,
25096 support incremental loop structure update.
25097 (verify_loop_structure): Cleanup. Verify a loop is a loop.
25098 * cfgloopmanip.c (fix_loop_structure): Move ...
25099 * loop-init.c (fix_loop_structure): ... here.
25100 (apply_loop_flags): Split out from ...
25101 (loop_optimizer_init): ... here.
25102 (fix_loop_structure): Use apply_loop_flags. Use flow_loops_find
25103 in incremental mode, only remove dead loops here.
25104
85d768f3
GJL
251052013-02-08 Georg-Johann Lay <avr@gjlay.de>
25106
25107 PR target/54222
25108 * config/avr/avr.md (unspec) <UNSPEC_ROUND>: Add.
25109 * config/avr/avr-fixed.md (ALL4QA, ALL124QA): New mode iterators.
25110 (round<mode>3, round<mode>3_const): New expanders for fixed-mode.
25111 (*round<mode>3.libgcc): New insns for fixed-modes.
25112 * config/avr/builtins.def (ABSxx): Use a non-NULL LIBNAME.
25113 (ROUNDxx, COUNTLSxx, BITSxx, xxBITS): New DEF_BUILTINs.
25114 (ROUNDFX, COUNTLSFX, ABSFX): New DEF_BUILTINs.
25115 * config/avr/stdfix.h (absFX, bitsFX, FXbits): Remove inline
25116 implementations. Define to __builtin_avr_absFX,
25117 __builtin_avr_bitsFX, __builtin_avr_FXbits, respectively.
25118 (roundFX, countlsFX): Define to __builtin_avr_roundFX,
25119 __builtin_avr_countlsFX, respectively.
25120 * config/avr/avr-c.c (target.h): Include it.
25121 (enum avr_builtin_id): New enum.
25122 (avr_resolve_overloaded_builtin): New static function.
25123 (avr_register_target_pragmas): Use it to set
25124 targetm.resolve_overloaded_builtin.
25125 * config/avr/avr.c (avr_init_builtins): Supply myriads of local
25126 tree nodes used by DEF_BUILTIN.
25127 (avr_expand_builtin) <AVR_BUILTIN_ROUNDxx>: Sanity-check them.
25128 (avr_fold_builtin) <AVR_BUILTIN_BITSxx>: Fold to VIEW_COVERT_EXPR.
25129 <AVR_BUILTIN_xxBITS>: Same.
25130
661bc682
RB
251312013-02-08 Richard Biener <rguenther@suse.de>
25132
25133 * cfgloop.c (verify_loop_structure): Properly handle
25134 a loop exiting to another loop header.
25135 * ira-int.h (ira_loops): Remove.
25136 * ira.c (ira_loops): Remove.
25137 (ira): Use loop_optimizer_init and loop_optimizer_finalize.
25138 (do_reload): Use loop_optimizer_finalize.
25139 * ira-build.c (create_loop_tree_nodes): Use get_loops and
25140 number_of_loops to access the loop tree.
25141 (more_one_region_p): Likewise.
25142 (finish_loop_tree_nodes): Likewise.
25143 (rebuild_regno_allocno_maps): Likewise.
25144 (mark_loops_for_removal): Likewise.
25145 (mark_all_loops_for_removal): Likewise.
25146 (remove_unnecessary_regions): Likewise.
25147 (ira_build): Likewise.
25148 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
25149
0d5049b2
RB
251502013-02-08 Richard Biener <rguenther@suse.de>
25151
25152 * Makefile.in (tree-tailcall.o): Add $(CFGLOOP_H) dependency.
25153 * ipa-pure-const.c (analyze_function): Avoid calling
25154 mark_irreducible_loops twice.
8e10366f 25155 * tree-tailcall.c (tree_optimize_tail_calls_1): Mark loops for fixup.
0d5049b2 25156
499f32e8
DM
251572013-02-07 David S. Miller <davem@davemloft.net>
25158
25159 * dwarf2out.c (based_loc_descr): Perform leaf register remapping
25160 on 'reg'.
25161 * var-tracking.c (vt_add_function_parameter): Test the presence of
25162 HAVE_window_save properly and do not remap argument registers when
25163 we have a leaf function.
25164
6edc3e32
UB
251652013-02-07 Uros Bizjak <ubizjak@gmail.com>
25166
25167 PR bootstrap/56227
25168 * ggc-page.c (ggc_print_statistics): Use HOST_LONG_LONG_FORMAT
25169 instead of "ll".
25170 * config/i386/i386.c (ix86_print_operand): Ditto.
25171
5306401f
VM
251722013-02-07 Vladimir Makarov <vmakarov@redhat.com>
25173
6edc3e32 25174 * lra-constraints.c (process_alt_operands): Fix recently added comment.
5306401f 25175
027ece11
VM
251762013-02-07 Vladimir Makarov <vmakarov@redhat.com>
25177
25178 PR rtl-optimization/56225
25179 * lra-constraints.c (process_alt_operands): Check that reload hard
25180 reg can hold value for strict_low_part.
25181
f980dfdb
JJ
251822013-02-07 Jakub Jelinek <jakub@redhat.com>
25183
25184 PR debug/56154
25185 * dwarf2out.c (dwarf2_debug_hooks): Set end_function hook to
25186 dwarf2out_end_function.
25187 (in_first_function_p, maybe_at_text_label_p,
25188 first_loclabel_num_not_at_text_label): New variables.
25189 (dwarf2out_var_location): In the first function find out
6edc3e32 25190 lowest loclabel_num N where .LVLN is known not to be equal to .Ltext0.
f980dfdb
JJ
25191 (find_empty_loc_ranges_at_text_label, dwarf2out_end_function): New
25192 functions.
25193
73dd3123
EB
251942013-02-07 Eric Botcazou <ebotcazou@adacore.com>
25195
25196 PR rtl-optimization/56178
25197 * cse.c (cse_insn): Do not create a REG_EQUAL note if the source is a
25198 SUBREG of a register. Tidy up related block of code.
25199 * fwprop.c (forward_propagate_and_simplify): Do not create a REG_EQUAL
25200 note if the source is a register or a SUBREG of a register.
25201
e3936f47
JJ
252022013-02-07 Jakub Jelinek <jakub@redhat.com>
25203
25204 PR target/56228
25205 * config/rs6000/rs6000.md (ptrm): New mode attr.
25206 (call_indirect_aix<ptrsize>, call_indirect_aix<ptrsize>_nor11,
25207 call_value_indirect_aix<pttrsize>,
25208 call_value_indirect_aix<pttrsize>_nor11): Use <ptrm> instead of
25209 m in constraints.
25210
d96d674b
MH
252112013-02-07 Michael Haubenwallner <michael.haubenwallner@salomon.at>
25212
25213 * collect2.c (main): Set aix64_flag for -G and -bsvr4 too, disable
25214 if -bnortl. Convert to strcmp and strncmp.
25215
921f2dee
AM
252162013-02-07 Alan Modra <amodra@gmail.com>
25217
25218 PR target/54009
25219 * config/rs6000/rs6000.c (mem_operand_gpr): Check that LO_SUM
25220 addresses won't wrap when offsetting.
25221 (rs6000_secondary_reload): Provide secondary reloads needed for
25222 wrapping LO_SUM addresses.
25223
d09c7dba
TS
252242013-02-06 Thomas Schwinge <thomas@codesourcery.com>
25225
25226 * config/gnu.h (GNU_USER_TARGET_OS_CPP_BUILTINS): Never define
25227 MACH, just __MACH__.
25228
a44bbd48
RB
252292013-02-06 Richard Biener <rguenther@suse.de>
25230
25231 * tracer.c (tracer): Mark loops with LOOPS_NEED_FIXUP
25232 instead of calling fix_loop_structure.
25233
6d840d99
JJ
252342013-02-06 Jakub Jelinek <jakub@redhat.com>
25235
25236 PR middle-end/56217
25237 * omp-low.c (use_pointer_for_field): Return false if
25238 lower_send_shared_vars doesn't generate any copy-out code.
25239
0f33baa9
TV
252402013-02-06 Tom de Vries <tom@codesourcery.com>
25241
25242 PR rtl-optimization/56131
25243 * cfgrtl.c (delete_insn): Use NOTE_BASIC_BLOCK instead of BLOCK_FOR_INSN
25244 to get the bb of a NOTE_INSN_BASIC_BLOCK. Handle the case that the bb
25245 of the label is NULL. Add comment.
25246
11f1e3ab
JJ
252472013-02-05 Jakub Jelinek <jakub@redhat.com>
25248
31502f9f
JJ
25249 * tree.h (struct tree_decl_with_vis): Remove thread_local field.
25250
a74db9bd
JJ
25251 PR sanitizer/55374
25252 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Define.
25253 (STATIC_LIBTSAN_LIBS): Likewise.
25254 * gcc.c (ADD_STATIC_LIBTSAN_LIBS, LIBTSAN_EARLY_SPEC): Define.
25255 (LIBTSAN_SPEC): Add ADD_STATIC_LIBTSAN_LIBS, if LIBTSAN_EARLY_SPEC
25256 is defined, don't add anything else beyond that.
25257 (SANITIZER_EARLY_SPEC, SANITIZER_SPEC): Define.
25258 (LINK_COMMAND_SPEC): Use them.
25259
11f1e3ab
JJ
25260 PR tree-optimization/56205
25261 * tree-stdarg.c (check_all_va_list_escapes): Return true if
25262 there are any PHI nodes that set non-va_list_escape_vars SSA_NAME
25263 and some va_list_escape_vars SSA_NAME appears in some PHI argument.
25264
14ac6aa2
RB
252652013-02-05 Richard Biener <rguenther@suse.de>
25266
25267 PR tree-optimization/53342
25268 PR tree-optimization/53185
25269 * tree-vectorizer.h (vect_check_strided_load): Remove.
25270 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do
25271 not disallow peeling for vectorized strided loads.
25272 (vect_check_strided_load): Make static and simplify.
25273 (vect_analyze_data_refs): Adjust.
25274 * tree-vect-stmts.c (vectorizable_load): Handle peeled loops
25275 correctly when vectorizing strided loads.
25276
6f22445a
RB
252772013-02-05 Richard Biener <rguenther@suse.de>
25278
25279 * doc/install.texi: Refer to ISL, not PPL.
25280
39f9719e
JH
252812013-02-05 Jan Hubicka <jh@suse.cz>
25282
ec4224ac
JH
25283 PR tree-optimization/55789
25284 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): Drop to 1.
25285
252862013-02-05 Jan Hubicka <jh@suse.cz>
25287
25288 PR tree-optimization/55789
39f9719e
JH
25289 * cgraphclones.c (cgraph_remove_node_and_inline_clones): Remove
25290 the dead call anyway.
25291
956d3b33
EB
252922013-02-05 Eric Botcazou <ebotcazou@adacore.com>
25293
25294 PR sanitizer/55374
25295 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Add missing guard.
25296
252972013-02-04 Alexander Potapenko <glider@google.com>
25298 Jack Howarth <howarth@bromo.med.uc.edu>
ae526fe5
AP
25299 Jakub Jelinek <jakub@redhat.com>
25300
25301 PR sanitizer/55617
25302 * config/darwin.c (sort_ctor_records): Stabilized qsort
25303 on constructor priority by using original position.
25304 (finalize_ctors): New routine to sort constructors by
25305 priority before use in assemble_integer.
25306 (machopic_asm_out_constructor): Use finalize_ctors if needed.
25307
7ac3af38
JJ
253082013-02-04 Jakub Jelinek <jakub@redhat.com>
25309
25310 PR libstdc++/54314
25311 * config/i386/winnt.c (i386_pe_assemble_visibility): Don't warn
25312 about visibility on artificial decls.
25313 * config/sol2.c (solaris_assemble_visibility): Likewise.
25314
152689dc
KT
253152013-02-04 Kai Tietz <ktietz@redhat.com>
25316
25317 PR target/56186
25318 * config/i386/i386.c (function_value_ms_64): Add additional valtype
25319 argument and improve checking of return-argument types for 16-byte
25320 modes.
25321 (ix86_function_value_1): Add additional valtype argument on call
25322 of function_value_64.
25323 (return_in_memory_ms_64): Sync 16-byte sized mode handling with
25324 handling infunction_value_64 function.
25325
2b5987b5
MGD
253262013-02-04 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
25327
7ac3af38 25328 * reload.c (subst_reloads): Fix DEBUG_RELOAD build issue.
2b5987b5 25329
14597080
RB
253302013-02-04 Richard Biener <rguenther@suse.de>
25331
25332 PR tree-optimization/56188
25333 * tree-ssa-structalias.c (label_visit): Consider case with
25334 initially non-empty points-to set.
25335 (perform_var_substitution): Dump node mapping and clean up.
25336
ed73881e
RG
253372013-02-04 Richard Guenther <rguenther@suse.de>
25338
25339 PR lto/56168
25340 * lto-symtab.c (lto_symtab_merge_decls_1): Make non-builtin
25341 node prevail as last resort.
25342 (lto_symtab_merge_decls): Remove guard on LTRANS here.
6edc3e32 25343 (lto_symtab_prevailing_decl): Builtins are their own prevailing decl.
ed73881e 25344
139a0707
RB
253452013-02-04 Richard Biener <rguenther@suse.de>
25346
25347 PR tree-optimization/56113
25348 * tree-ssa-structalias.c (equiv_class_lookup, equiv_class_add):
25349 Merge into ...
25350 (equiv_class_lookup_or_add): ... this.
25351 (label_visit): Adjust and fix error in previous patch.
25352 (perform_var_substitution): Adjust.
25353
50fe8924
OE
253542013-02-03 Oleg Endo <olegendo@gcc.gnu.org>
25355
25356 * config/sh/divtab.c: Fix formatting and comments throughout the file.
25357 * config/sh/sh4-300.md: Likewise.
25358 * config/sh/sh4a.md: Likewise.
25359 * config/sh/constraints.md: Likewise.
25360 * config/sh/sh.md: Likewise.
25361 * config/sh/netbsd-elf.h: Likewise.
25362 * config/sh/predicates.md: Likewise.
25363 * config/sh/sh-protos.h: Likewise.
25364 * config/sh/ushmedia.h: Likewise.
25365 * config/sh/linux.h: Likewise.
25366 * config/sh/sh.c: Likewise.
25367 * config/sh/superh.h: Likewise.
25368 * config/sh/elf.h: Likewise.
25369 * config/sh/sh4.md: Likewise.
25370 * config/sh/sh.h: Likewise.
25371
1a04ac2b
JDA
253722013-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
25373
25374 * config/pa/constraints.md: Adjust unused letters. Change "T"
25375 constraint to match_test floating_point_store_memory_operand().
25376 * config/pa/predicates.md (reg_plus_base_memory_operand): New.
25377 (base14_operand): New.
25378 (floating_point_store_memory_operand): New.
25379 (integer_store_memory_operand): Revise to use base14_operand and
25380 reg_plus_base_memory_operand.
25381 (move_dest_operand): Allow symbolic_memory_operands.
25382 (symbolic_memory_operand): Check for LO_SOM.
25383 (symbolic_operand): Change default case to break.
25384 * config/pa/pa.md: Remove unamed DFmode and SFmode patterns to force
25385 CONST_DOUBLE values to be reloaded by putting them into memory when
25386 the destination is a floating point register.
25387 (movdf): Remove code to handle CONST_DOUBLE.
25388 (movsf): Likewise.
25389 (reload_indf_r1): New.
25390 (reload_insf_r1): New.
25391 Consistently use "Q" and "T" constraints with integer and floating
25392 point move instructions, respectively.
25393 (movdi): Remove FAIL.
25394 Change predicate for source operand unamed DImode move from
25395 general_operand to move_src_operand.
25396 (umulsidi3): Change predicate for destination operand to
25397 register_operand.
25398 Likewise for similar unamed patterns.
25399 * config/pa/pa-protos.h (pa_legitimize_reload_address): Declare.
25400 * config/pa/pa.c (pa_symbolic_expression_p): Remove extra parenthesis.
25401 (hppa_legitimize_address): Simplify mask calculation.
25402 (pa_emit_move_sequence): Revised handling of secondary reloads from
25403 REG+D addresses for floating point loads and stores. Directly handle
25404 loading CONST0_RTX (mode) to a floating point register.
25405 (pa_secondary_reload): Handle reloading DF and SFmode constant values
25406 to floating point registers. Don't restrict secondary reloads to
25407 floating point registers to integer modes. Revise some comments and
25408 cleanup some code.
25409 (TARGET_LEGITIMATE_ADDRESS_P): Define.
25410 (pa_legitimate_address_p): New.
25411 (pa_legitimize_reload_address): New.
25412 * config/pa/pa.h (STRICT_REG_OK_FOR_INDEX_P): New.
25413 (STRICT_REG_OK_FOR_BASE_P): New.
25414 (GO_IF_LEGITIMATE_ADDRESS): Delete. Update some related comments.
25415 (LEGITIMIZE_RELOAD_ADDRESS): Revise to use pa_legitimize_reload_address.
25416
3bf65591
DE
254172013-02-03 David Edelsohn <dje.gcc@gmail.com>
25418 Andrew Dixie <andrewd@gentrack.com>
25419
25420 * collect2.c (GCC_CHECK_HDR): Do not scan objects with F_LOADONLY
25421 flag set.
25422
c0a8a3e6
RS
254232013-02-03 Richard Sandiford <rdsandiford@googlemail.com>
25424
25425 * expmed.c (extract_bit_field_1): Pass the full width of the
25426 structure to get_best_reg_extraction_insn.
25427
99113dff
DE
254282013-02-01 David Edelsohn <dje.gcc@gmail.com>
25429
25430 PR target/54601
25431 * configure.ac (use_cxa_atexit): Add AIX.
25432 * configure: Regenerate.
25433
25434 * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtcxa.o.
25435
ddd84654
JJ
254362013-02-01 Jakub Jelinek <jakub@redhat.com>
25437
25438 PR debug/54793
25439 * final.c (need_profile_function): New variable.
25440 (final_start_function): Drop ATTRIBUTE_UNUSED from first argument.
25441 If first of NOTE_INSN_BASIC_BLOCK or NOTE_INSN_FUNCTION_BEG
25442 is only preceeded by NOTE_INSN_VAR_LOCATION or NOTE_INSN_DELETED
25443 notes, targetm.asm_out.function_prologue doesn't emit anything,
25444 HAVE_prologue and profiler should be emitted before prologue,
25445 set need_profile_function instead of emitting it.
25446 (final_scan_insn): If need_profile_function, emit
25447 profile_function on the first NOTE_INSN_BASIC_BLOCK or
25448 NOTE_INSN_FUNCTION_BEG note.
25449
254502013-02-01 Richard Henderson <rth@redhat.com>
749af8ee
RH
25451
25452 * config/rs6000/rs6000.md (smulditi3): New.
25453 (umulditi3): New.
25454
ff2a9d88
RH
25455 * config/alpha/alpha.md (umulditi3): New.
25456
14d52b90
DE
254572013-02-01 David Edelsohn <dje.gcc@gmail.com>
25458
25459 * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_COMMON): Use floor_log2.
25460 (ASM_OUTPUT_ALIGNED_LOCAL): New.
25461
8c7ca45c
RB
254622013-02-01 Richard Biener <rguenther@suse.de>
25463
25464 PR tree-optimization/56113
25465 * tree-ssa-structalias.c (label_visit): Reduce work for
25466 single-predecessor nodes.
25467
9f419393
EB
254682013-02-01 Eric Botcazou <ebotcazou@adacore.com>
25469
25470 * fold-const.c (make_range_step) <TRUTH_NOT_EXPR>: Bail out if the
25471 range isn't testing for zero.
25472
c5f4be84
SB
254732013-01-31 Steven Bosscher <steven@gcc.gnu.org>
25474
25475 PR middle-end/56113
25476 * fwprop.c (fwprop_init): Set up loops without CFG modifications.
25477
dbdbd982
NC
254782013-01-31 Hiroyuki Ono <hiroyuki.ono.jc@renesas.com>
25479 Nick Clifton <nickc@redhat.com>
25480
25481 * config/v850/constraints.md (Q): Define as a memory constraint.
25482 * config/v850/predicates.md (label_ref_operand): New predicate.
25483 (e3v5_shift_operand): New predicate.
25484 (ior_operator): New predicate.
25485 * config/v850/t-v850: Add e3v5 multilib.
25486 * config/v850/v850-protos.h (v850_adjust_insn_length): Prototype.
25487 (v850_gen_movdi): Prototype.
25488 * config/v850/v850.c: Add support for e3v5 architecture.
25489 Rename all uses of TARGET_V850E || TARGET_V850E2_ALL to
25490 TARGET_V850E_UP.
25491 (construct_save_jarl): Add e3v5 long JARL support.
25492 (v850_adjust_insn_length): New function. Adjust length of call
25493 insns when using e3v5 instructions.
25494 (v850_gen_movdi): New function: Generate instructions to move a
25495 DImode value.
25496 * config/v850/v850.h (TARGET_CPU_v850e3v5): Define.
25497 (CPP_SPEC): Define __v850e3v5__ as appropriate.
25498 (TARGET_USE_FPU): Enable for e3v5.
25499 (CONST_OK_FOR_W): New macro.
25500 (ADJUST_INSN_LENGTH): Define.
25501 * config/v850/v850.md (UNSPEC_LOOP): Define.
25502 (attr cpu): Add v850e3v5.
25503 Rename all uses of TARGET_V850E2 to TARGET_V850E2V3_UP.
25504 (movdi): New pattern.
25505 (movdi_internal): New pattern.
25506 (cbranchsf4): Conditionalize on TARGET_USE_FPU.
25507 (cbranchdf4): Conditionalize on TARGET_USE_FPU.
25508 (cstoresf4): Likewise.
25509 (cstoredf4): Likewise.
25510 (insv): New pattern.
25511 (rotlso3_a): New pattern.
25512 (rotlsi3_b): New pattern
25513 (rotlsi3_v850e3v5): New pattern.
25514 (doloop_begin): New pattern.
25515 (fix_loop_counter): New pattern.
25516 (doloop_end): New pattern.
25517 (branch_normal): Add e3v5 long branch support.
25518 (branch_invert): Likewise.
25519 (branch_z_normal): Likewise.
25520 (branch_z_invert): Likewise.
25521 (branch_nz_normal): Likewise.
25522 (branch_nz_invert): Likewise.
25523 (call_internal_short): Add e3v5 register-indirect JARL support.
25524 (call_internal_long): Likewise.
25525 (call_value_internal_short): Likewise.
25526 (call_value_internal_long): Likewise.
25527 * config/v850/v850.opt (mv850e3v5, mv850e2v4): New options.
25528 (mloop): New option.
25529 * config.gcc: Add support for configuring v840e3v5 target.
6edc3e32 25530 * doc/invoke.texi: Document new v850 specific command line options.
dbdbd982 25531
73861a41
PK
255322013-01-31 Paul Koning <ni1d@arrl.net>
25533
25534 PR debug/55059
25535 PR debug/54508
25536 * dwarf2out.c (prune_unused_types_mark): Mark all of parent's
25537 children if parent is a class.
25538 (prune_unused_types_prune): Don't add DW_AT_declaration.
25539
e44978dc
RB
255402013-01-31 Richard Biener <rguenther@suse.de>
25541
25542 PR tree-optimization/56157
25543 * tree-vect-slp.c (vect_get_slp_defs): More thoroughly try to
25544 match up operand with SLP child.
25545
90b10dec
JM
255462013-01-31 Jason Merrill <jason@redhat.com>
25547
04d2dadd 25548 PR debug/54410
90b10dec
JM
25549 * dwarf2out.c (gen_struct_or_union_type_die): Always schedule template
25550 parameters the first time.
25551 (gen_scheduled_generic_parms_dies): Check completeness here.
25552
6e616110
RB
255532013-01-31 Richard Biener <rguenther@suse.de>
25554
25555 PR middle-end/53073
25556 * common.opt (faggressive-loop-optimizations): New flag,
25557 enabled by default.
25558 * doc/invoke.texi (faggressive-loop-optimizations): Document.
25559 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Guard
25560 infer_loop_bounds_from_undefined by it.
25561
636f59cf
RB
255622013-01-31 Richard Biener <rguenther@suse.de>
25563
25564 PR tree-optimization/56150
25565 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Do not
25566 visit virtual operands.
25567 (find_uses_to_rename_bb): Likewise.
25568
255692013-01-31 Richard Biener <rguenther@suse.de>
fcfa87ac
RB
25570
25571 PR tree-optimization/56150
25572 * tree-ssa-tail-merge.c (gimple_equal_p): Properly handle
25573 mixed store non-store stmts.
25574
32887460
JJ
255752013-01-30 Jakub Jelinek <jakub@redhat.com>
25576
e60e09a0
JJ
25577 PR sanitizer/55374
25578 * gcc.c (LIBASAN_SPEC): Define just to ADD_STATIC_LIBASAN_LIBS if
25579 LIBASAN_EARLY_SPEC is defined.
25580 (LIBASAN_EARLY_SPEC): Define to empty string if not already defined.
25581 (LINK_COMMAND_SPEC): Add LIBASAN_EARLY_SPEC for -fsanitize=address,
25582 before %o.
25583 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Define.
25584
32887460
JJ
25585 PR c++/55742
25586 * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Diagnose
25587 invalid args instead of ICEing on it.
25588 (ix86_valid_target_attribute_tree): Return error_mark_node if
25589 ix86_valid_target_attribute_inner_p failed.
25590 (ix86_valid_target_attribute_p): Return false only if
25591 ix86_valid_target_attribute_tree returned error_mark_node. Allow
25592 target("default") attribute.
25593 (sorted_attr_string): Change argument from const char * to tree,
25594 merge in all target attribute arguments rather than just one.
25595 Formatting fix. Use XNEWVEC instead of xmalloc and XDELETEVEC
25596 instead of free. Avoid using strcat.
25597 (ix86_mangle_function_version_assembler_name): Mangle
25598 target("default") as if no target attribute is present. Adjust
25599 sorted_attr_string caller. Avoid leaking memory. Use XNEWVEC
25600 instead of xmalloc and XDELETEVEC instead of free.
25601 (ix86_function_versions): Don't return true if one of the decls
25602 doesn't have target attribute. If they don't and one of the decls
25603 is DECL_FUNCTION_VERSIONED, report an error. Adjust
25604 sorted_attr_string caller. Use XDELETEVEC instead of free.
25605 (ix86_supports_function_versions): Remove.
25606 (make_name): Fix up formatting.
25607 (make_dispatcher_decl): Remove resolver_name and its initialization.
25608 Avoid leaking memory.
25609 (is_function_default_version): Return true if there is
25610 target("default") attribute rather than no target attribute at all.
25611 (make_resolver_func): Avoid leaking memory.
25612 (ix86_generate_version_dispatcher_body): Likewise.
25613 (TARGET_OPTION_SUPPORTS_FUNCTION_VERSIONS): Remove.
25614 * target.def (supports_function_versions): Remove.
25615 * doc/tm.texi.in (SUPPORTS_FUNCTION_VERSIONS): Remove.
25616 * doc/tm.texi: Regenerated.
25617
73cca0cc
VM
256182013-01-30 Vladimir Makarov <vmakarov@redhat.com>
25619
25620 PR rtl-optimization/56144
25621 * lra-constraints.c (get_reload_reg): Don't reuse reload pseudo
25622 for values with side effects.
25623
11452e7b
RB
256242013-01-30 Richard Biener <rguenther@suse.de>
25625
25626 * sparseset.h (sparseset_bit_p): Use gcc_checking_assert.
25627 (sparseset_pop): Likewise.
25628 * cfganal.c (compute_idf): Likewise. Increase work-stack size
25629 to be able to use quick_push in the worker loop.
25630
01cb1ef5
MP
256312013-01-30 Marek Polacek <polacek@redhat.com>
25632
25633 * cfgcleanup.c (cleanup_cfg): Don't mark affected BBs.
25634
e892936e
RB
256352013-01-30 Richard Biener <rguenther@suse.de>
25636
25637 PR lto/56147
6edc3e32 25638 * lto-symtab.c (lto_symtab_merge_decls_1): Guard DECL_BUILT_IN check.
e892936e 25639
cc06c01d
GJL
256402013-01-30 Georg-Johann Lay <avr@gjlay.de>
25641
25642 PR tree-optimization/56064
25643 * fixed-value.c (fixed_from_double_int): New function.
25644 * fixed-value.h (fixed_from_double_int): New prototype.
25645 (const_fixed_from_double_int): New static inline function.
25646 * fold-const.c (native_interpret_fixed): New static function.
25647 (native_interpret_expr) <FIXED_POINT_TYPE>: Use it.
25648 (can_native_interpret_type_p) <FIXED_POINT_TYPE>: Return true.
25649 (native_encode_fixed): New static function.
25650 (native_encode_expr) <FIXED_CST>: Use it.
25651 (native_interpret_int): Move double_int worker code to...
25652 * double-int.c (double_int::from_buffer): ...this new static method.
25653 * double-int.h (double_int::from_buffer): Prototype it.
25654
d394a308
RB
256552013-01-30 Richard Biener <rguenther@suse.de>
25656
25657 * tree-ssa-structalias.c (final_solutions, final_solutions_obstack):
25658 New pointer-map and obstack.
25659 (init_alias_vars): Allocate pointer-map and obstack.
25660 (delete_points_to_sets): Free them.
25661 (find_what_var_points_to): Cache result.
25662 (find_what_p_points_to): Adjust for changed interface of
25663 find_what_var_points_to.
25664 (compute_points_to_sets): Likewise.
25665 (ipa_pta_execute): Likewise.
25666
20804d96
RO
256672013-01-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25668
25669 * configure.ac (HAVE_AS_SPARC_NOBITS): New test.
25670 * configure: Regenerate.
25671 * config.in: Regenerate.
25672 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Emit
25673 #nobits/#progbits if supported.
25674
a7ad88a2
OE
256752013-01-29 Oleg Endo <olegendo@gcc.gnu.org>
25676
25677 PR target/56121
25678 * config/sh/sh.md (bclr_m2a, bset_m2a, bst_m2a, bld_m2a, bldsign_m2a,
25679 bld_reg, *bld_regqi, band_m2a, bandreg_m2a, bor_m2a, borreg_m2a,
25680 bxor_m2a, bxorreg_m2a): Add satisfies_constraint_K03 condition.
25681
7af79f92
GY
256822013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
25683
91bfca59
OE
25684 * config/arm/cortex-a7.md (cortex_a7_neon, cortex_a7_all): Remove.
25685 (cortex_a7_idiv): Use cortex_a7_both instead of cortex_a7_all.
7af79f92 25686
753bcf7b
GY
256872013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
25688
91bfca59
OE
25689 * config/arm/arm.c (cortexa7_younger): Return true for TYPE_CALL.
25690 * config/arm/cortex-a7.md (cortex_a7_call): Update required units.
753bcf7b 25691
8cbc2ea8
GY
256922013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
25693
91bfca59
OE
25694 * config/arm/arm-protos.h (arm_mac_accumulator_is_result): New
25695 declaration.
25696 * config/arm/arm.c (arm_mac_accumulator_is_result): New function.
25697 * config/arm/cortex-a7.md: New bypasses using
25698 arm_mac_accumulator_is_result.
8cbc2ea8 25699
697a3325
GY
257002013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
25701
91bfca59 25702 * config/arm/cortex-a7.md (cortex_a7_neon_mul): New reservation.
697a3325 25703 (cortex_a7_neon_mla): Likewise.
91bfca59
OE
25704 (cortex_a7_fpfmad): New reservation.
25705 (cortex_a7_fpmacs): Use ffmas and update required units.
25706 (cortex_a7_fpmuld): Update required units and latency.
25707 (cortex_a7_fpmacd): Likewise.
25708 (cortex_a7_fdivs, cortex_a7_fdivd): Likewise.
25709 (cortex_a7_neon). Likewise.
25710 (bypass) Update participating units.
697a3325 25711
29637783
GY
257122013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
25713
91bfca59
OE
25714 * config/arm/arm.md (type): Add ffmas and ffmad to "type" attribute.
25715 * config/arm/vfp.md (fma,fmsub,fnmsub,fnmadd): Change type
25716 from fmac to ffma.
25717 * config/arm/vfp11.md (vfp_farith): Use ffmas.
25718 (vfp_fmul): Use ffmad.
25719 * config/arm/cortex-r4f.md (cortex_r4_fmacs): Use ffmas.
25720 (cortex_r4_fmacd): Use ffmad.
25721 * config/arm/cortex-m4-fpu.md (cortex_m4_fmacs): Use ffmas.
25722 * config/arm/cortex-a9.md (cortex_a9_fmacs): Use ffmas.
25723 (cortex_a9_fmacd): Use ffmad.
25724 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_macs): Use ffmas.
25725 (cortex_a8_vfp_macd): Use ffmad.
25726 * config/arm/cortex-a5.md (cortex_a5_fpmacs): Use ffmas.
25727 (cortex_a5_fpmacd): Use ffmad.
25728 * config/arm/cortex-a15-neon.md (cortex_a15_vfp_macs) Use ffmas.
25729 (cortex_a15_vfp_macd): Use ffmad.
25730 * config/arm/arm1020e.md (v10_fmul): Use ffmas and ffmad.
29637783 25731
2ee8a2d5
JM
257322013-01-29 Jason Merrill <jason@redhat.com>
25733
25734 PR libstdc++/54314
25735 * varasm.c (default_assemble_visibility): Don't warn about
25736 visibility on artificial decls.
25737
78d087bc
RB
257382013-01-29 Richard Biener <rguenther@suse.de>
25739
25740 PR tree-optimization/56113
25741 * tree-ssa-structalias.c (equiv_class_lookup): Also return
25742 the bitmap leader.
25743 (label_visit): Free duplicate bitmaps and record the leader instead.
25744 (perform_var_substitution): Adjust.
25745
83ba4d6f
RB
257462013-01-29 Richard Biener <rguenther@suse.de>
25747
25748 PR tree-optimization/55270
25749 * tree-ssa-dom.c (eliminate_degenerate_phis): If we changed
25750 the CFG, schedule loops for fixup.
25751
66dfe13f
NC
257522013-01-29 Nick Clifton <nickc@redhat.com>
25753
25754 * config/rl78/rl78.c (rl78_regno_mode_code_ok_for_base_p): Allow
25755 SP_REG.
25756
5a579c3b
LE
257572013-01-28 Leif Ekblad <leif@rdos.net>
25758
25759 * config.gcc (i[34567]86-*-rdos*, x86_64-*-rdos*): New targets.
25760 * config/i386/i386.h (TARGET_RDOS): New macro.
25761 (DEFAULT_LARGE_SECTION_THRESHOLD): New macro.
25762 * config/i386/i386.c (ix86_option_override_internal): For 64bit
25763 TARGET_RDOS, set ix86_cmodel to CM_MEDIUM_PIC and flag_pic to 1.
25764 * config/i386/i386.opt (mlarge-data-threshold): Initialize to
25765 DEFAULT_LARGE_SECTION_THRESHOLD.
25766 * config/i386/i386.md (R14_REG, R15_REG): New constants.
25767 * config/i386/rdos.h: New file.
25768 * config/i386/rdos64.h: New file.
25769
51e44392
BS
257702013-01-28 Bernd Schmidt <bernds@codesourcery.com>
25771
25772 PR other/54814
25773 * reload.c (find_valid_class_1): Use in_hard_reg_set_p instead of
25774 TEST_HARD_REG_BIT.
25775
db1fb332
JJ
257762013-01-28 Jakub Jelinek <jakub@redhat.com>
25777
25778 PR rtl-optimization/56117
25779 * sched-deps.c (sched_analyze_2) <case PREFETCH>: For use_cselib
25780 call cselib_lookup_from_insn on the MEM before calling
25781 add_insn_mem_dependence.
25782
16917761
RB
257832013-01-28 Richard Biener <rguenther@suse.de>
25784
25785 * tree-inline.c (remap_gimple_stmt): Do not assing a BLOCK
25786 to a stmt that didn't have one.
25787 (copy_phis_for_bb): Likewise for PHI arguments.
25788 (copy_debug_stmt): Likewise for debug stmts.
25789
b9fc0497
RB
257902013-01-28 Richard Biener <rguenther@suse.de>
25791
25792 PR tree-optimization/56034
6edc3e32 25793 * tree-loop-distribution.c (enum partition_kind): Add PKIND_REDUCTION.
b9fc0497
RB
25794 (partition_builtin_p): Adjust.
25795 (generate_code_for_partition): Handle PKIND_REDUCTION. Assert
25796 it is the last partition.
25797 (rdg_flag_uses): Check SSA_NAME_IS_DEFAULT_DEF before looking
25798 up the vertex for the definition.
25799 (classify_partition): Classify whether a partition is a
25800 PKIND_REDUCTION, thus has uses outside of the loop.
25801 (ldist_gen): Inherit PKIND_REDUCTION when merging partitions.
25802 Merge all PKIND_REDUCTION partitions into the last partition.
25803 (tree_loop_distribution): Seed partitions from reductions as well.
25804
aa710d25
JJ
258052013-01-28 Jakub Jelinek <jakub@redhat.com>
25806
0bfbca58
JJ
25807 PR tree-optimization/56125
25808 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Don't optimize
25809 pow(x,c) into sqrt(x) * powi(x, n/2) or
25810 1.0 / (sqrt(x) * powi(x, abs(n/2))) if c is an integer or when
25811 optimizing for size.
25812 Don't optimize pow(x,c) into powi(x, n/3) * powi(cbrt(x), n%3) or
25813 1.0 / (powi(x, abs(n)/3) * powi(cbrt(x), abs(n)%3)) if 2c is an
25814 integer.
25815
aa710d25
JJ
25816 PR tree-optimization/56094
25817 * gimplify.c (force_gimple_operand_1): Temporarily set input_location
25818 to UNKNOWN_LOCATION while gimplifying expr.
25819
77dc5297
UB
258202013-01-27 Uros Bizjak <ubizjak@gmail.com>
25821
25822 PR target/56114
25823 * config/i386/i386.md (*movabs<mode>_1): Add square brackets around
25824 operand 0 in movabs insn template for -masm=intel asm alternative.
25825 (*movabs<mode>_2): Ditto for operand 1.
25826
0bfbca58 258272013-01-26 David Holsgrove <david.holsgrove@xilinx.com>
fbf0cf90
DH
25828
25829 PR target/54663
25830 * config.gcc (microblaze*-linux*): Add tmake_file to allow building
25831 of microblaze-c.o
25832
0bfbca58 258332013-01-26 Edgar E. Iglesias <edgar.iglesias@gmail.com>
6f14eef2
EI
25834
25835 * config.gcc (microblaze*-*-*): Rename microblaze*-*-elf, update
25836 tm_file.
25837
0bfbca58 258382013-01-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
706b2314
N
25839
25840 * config/aarch64/aarch64.c (TARGET_FIXED_CONDITION_CODE_REGS):
25841 Undef to avoid warning.
25842
478f60f9
MH
258432013-01-25 Michael Haubenwallner <michael.haubenwallner@salomon.at>
25844
25845 * configure.ac (gcc_cv_ld_static_dynamic): Define for AIX native ld.
25846 * configure: Regenerate.
25847
d7fa6ee2
JJ
258482013-01-25 Jakub Jelinek <jakub@redhat.com>
25849
25850 PR tree-optimization/56098
25851 * tree-ssa-phiopt.c (nt_init_block): Don't call add_or_mark_expr
25852 for stmts with volatile ops.
25853 (cond_store_replacement): Don't optimize if assign has volatile ops.
25854 (cond_if_else_store_replacement_1): Don't optimize if either
25855 then_assign or else_assign have volatile ops.
25856 (hoist_adjacent_loads): Don't optimize if either def1 or def2 have
25857 volatile ops.
25858
f8fe87bd
GJL
258592013-01-25 Georg-Johann Lay <avr@gjlay.de>
25860
25861 * doc/invoke.texi (AVR Built-in Macros): Document __XMEGA__.
25862
28398d0d
GJL
258632013-01-25 Georg-Johann Lay <avr@gjlay.de>
25864
25865 * doc/extend.texi (Example of asm with clobbered asm reg): Fix
25866 missing ':' in asm example.
25867
b7d7d917
TB
258682013-01-25 Tejas Belagod <tejas.belagod@arm.com>
25869
25870 * config/aarch64/aarch64-simd-builtins.def: Separate sq<r>dmulh_lane
25871 entries into lane and laneq entries.
77dc5297
UB
25872 * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_lane<mode>):
25873 Remove AdvSIMD scalar modes.
b7d7d917
TB
25874 (aarch64_sq<r>dmulh_laneq<mode>): New.
25875 (aarch64_sq<r>dmulh_lane<mode>): New RTL pattern for Scalar AdvSIMD
25876 modes.
25877 * config/aarch64/arm_neon.h: Fix all the vq<r>dmulh_lane* intrinsics'
25878 builtin implementations to relfect changes in RTL in aarch64-simd.md.
25879 * config/aarch64/iterators.md (VCOND): New.
25880 (VCONQ): New.
25881
556f9906
GJL
258822013-01-25 Georg-Johann Lay <avr@gjlay.de>
25883
25884 PR target/54222
25885 * config/avr/builtins.def (DEF_BUILTIN): Add LIBNAME argument.
25886 Add NULL LIBNAME argument to existing definitions.
25887 (ABSHR, ABSR, ABSLR, ABSLLR, ABSHK, ABSK, ABSLK, ABSLLK): New.
25888 * config/avr/avr-c.c (DEF_BUILTIN): Add LIBNAME argument.
25889 * config/avr/avr.c (DEF_BUILTIN): Same.
25890 (avr_init_builtins): Pass down LIBNAME to add_builtin_function.
25891 (avr_expand_builtin): Expand to a vanilla call if a libgcc
25892 implementation is available (DECL_ASSEMBLER_NAME is set).
25893 (avr_fold_absfx): New static function.
25894 (avr_fold_builtin): Use it to handle: AVR_BUILTIN_ABSHR,
25895 AVR_BUILTIN_ABSR, AVR_BUILTIN_ABSLR, AVR_BUILTIN_ABSLLR,
25896 AVR_BUILTIN_ABSHK, AVR_BUILTIN_ABSK, AVR_BUILTIN_ABSLK,
25897 AVR_BUILTIN_ABSLLK.
25898 * config/avr/stdfix.h (abshr, absr, abslr, absllr)
25899 (abshk, absk, abslk, absllk): Provide as static inline functions.
25900
1f546bbb
MP
259012013-01-25 Marek Polacek <polacek@redhat.com>
25902
25903 PR tree-optimization/56035
25904 * cfgloopmanip.c (fix_loop_structure): Remove redundant condition.
25905
7e184bd7
UB
259062012-01-24 Uros Bizjak <ubizjak@gmail.com>
25907
25908 * config/i386/i386.md (*movti_internal_rex64): Add (o,e) alternative.
25909 (*movtf_internal_rex64): Add (!o,C) alternative
25910 (*movxf_internal_rex64): Ditto.
25911 (*movdf_internal_rex64): Add (?r,C) and (?m,C) alternatives.
25912
f5ba49ac
SM
259132013-01-24 Shenghou Ma <minux.ma@gmail.com>
25914
25915 * doc/invoke.texi: fix typo.
25916 * doc/objc.texi: fix typo.
25917
a6343728
RS
259182013-01-24 Richard Sandiford <rdsandiford@googlemail.com>
25919
25920 * config/mips/mips.md (*and<mode>3_mips16): Use the "W" constraint
25921 for the first two alternatives.
25922
cd030c07
DN
259232013-01-24 Diego Novillo <dnovillo@google.com>
25924
77dc5297 25925 * Makefile.in (GGC): Remove. Replace all instances with ggc-page.o.
cd030c07
DN
25926 (ggc-zone.o): Remove.
25927 * configure.ac: Remove option --with-gc.
25928 * configure: Re-generate.
25929 * doc/install.texi: Remove documentation for --with-gc.
25930 * gengtype.c (write_enum_defn): Remove. Update all users.
25931 (write_Types_process_field): Remove generation of gt_e_* argument.
25932 (output_type_enum): Remove. Update all users.
25933 (write_enum_defn): Remove. Update all users.
25934 (enum alloc_zone): Remove. Update all users.
77dc5297 25935 (write_splay_tree_allocator_def): Remove generation of gt_e_* argument.
cd030c07
DN
25936 * ggc-common.c (ggc_splay_alloc): Remove first argument.
25937 Update all callers.
25938 (struct ptr_data): Remove field TYPE. Update all users.
77dc5297 25939 (gt_pch_note_object): Remove argument TYPE. Update all users.
cd030c07
DN
25940 * ggc-internal.h (ggc_pch_alloc_object): Remove last argument.
25941 Update all users.
aaf1e810 25942 * ggc-none.c (ggc_alloc_typed_stat): Remove.
cd030c07
DN
25943 (struct alloc_zone): Remove.
25944 (ggc_internal_alloc_zone_stat): Remove.
25945 (ggc_internal_cleared_alloc_zone_stat): Remove.
25946 * ggc-page.c (ggc_alloc_typed_stat): Remove.
77dc5297
UB
25947 (ggc_pch_count_object): Remove last argument. Update all users.
25948 (ggc_pch_alloc_object): Remove last argument. Update all users.
cd030c07
DN
25949 (struct alloc_zone): Remove.
25950 * ggc-zone.c: Remove.
77dc5297 25951 * ggc.h (gt_pch_note_object): Remove last argument. Update all users.
cd030c07
DN
25952 (struct alloc_zone): Remove.
25953 (ggc_alloc_typed_stat): Remove.
25954 (ggc_alloc_typed): Remove.
25955 (ggc_splay_alloc): Remove first argument.
25956 (rtl_zone): Remove. Update all users.
25957 (tree_zone): Remove. Update all users.
25958 (tree_id_zone): Remove. Update all users.
25959 (ggc_internal_zone_alloc_stat): Remove. Update all users.
77dc5297 25960 (ggc_internal_zone_cleared_alloc_stat): Remove. Update all users.
cd030c07 25961 (ggc_internal_zone_vec_alloc_stat): Remove. Update all users.
77dc5297 25962 * tree-ssanames.c: Remove references to zone allocator in comments.
cd030c07 25963
a861ffa4
GJL
259642013-01-24 Georg-Johann Lay <avr@gjlay.de>
25965
25966 * config/avr/avr.c (avr_out_fract): Make register numbers that
25967 might be outside of source operand signed.
25968
593c0ddd
UB
259692013-01-24 Uros Bizjak <ubizjak@gmail.com>
25970
25971 * config/i386/constraints.md (Yf): New constraint.
25972 * config/i386/i386.md (*movdf_internal_rex64): Use Yf*f instead
25973 of f constraint to conditionaly disable x87 register preferences.
25974 (*movdf_internal): Ditto.
25975 (*movsf_internal): Ditto.
25976
e86c0101
SB
259772013-01-24 Steven Bosscher <steven@gcc.gnu.org>
25978
25979 PR inline-asm/55934
25980 * lra-assigns.c (assign_by_spills): Throw away the pattern of asms
25981 that have operands with impossible constraints.
25982 Add a FIXME for a speed-up opportunity.
25983 * lra-constraints.c (process_alt_operands): Verify that a class
25984 selected from constraints on asms is valid for the operand mode.
25985 (curr_insn_transform): Remove incorrect comment.
25986
f6fee35f
DE
259872013-01-23 David Edelsohn <dje.gcc@gmail.com>
25988
25989 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Check that
25990 TOC operand is a valid symbol ref in the constant pool.
25991
259922013-01-23 Edgar E. Iglesias <edgar.iglesias@gmail.com>
c7729184 25993
aaf1e810 25994 * config/microblaze/linux.h: Add TARGET_OS_CPP_BUILTINS
c7729184 25995
dc62d7d1
GJL
259962013-01-23 Georg-Johann Lay <avr@gjlay.de>
25997
25998 PR target/54222
25999 * config/avr/stdfix.h: New file.
26000 * t-avr (stdfix-gcc.h): New rule to build it.
26001 (EXTRA_HEADERS): Set it to install stdfix.h, stdfix-gcc.h.
26002
2660d12d
KS
260032013-01-23 Kostya Serebryany <kcc@google.com>
26004
77dc5297
UB
26005 * config/darwin.h: remove dependency on
26006 CoreFoundation (asan on Mac OS).
2660d12d 26007
a70418fc
JJ
260082013-01-23 Jakub Jelinek <jakub@redhat.com>
26009
26010 PR target/49069
26011 * config/arm/arm.md (cbranchdi4, cstoredi4): Use s_register_operand
26012 instead of cmpdi_operand for first comparison operand.
26013 Don't assert that comparison operands aren't both constants.
26014
47876a2a
JW
260152013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
26016
26017 * doc/install.texi (Downloading the Source): Update references to
26018 downloading separate components.
26019
260202013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
4ebd56a5
JW
26021
26022 * doc/extend.texi (__int128): Improve grammar.
26023
47876a2a 260242013-01-22 Uros Bizjak <ubizjak@gmail.com>
32fc5b8a
UB
26025
26026 PR target/56028
26027 * config/i386/i386.md (*movti_internal_rex64): Change (o,riF)
26028 alternative to (o,r).
26029 (*movdi_internal_rex64): Remove (!o,n) alternative.
26030 (DImode immediate->memory splitter): Remove.
26031 (DImode immediate->memory peephole2): Remove.
26032 (movtf): Enable for TARGET_64BIT || TARGET_SSE.
26033 (*movtf_internal_rex64): Rename from *movtf_internal. Change (!o,F*r)
26034 alternative to (!o,*r).
26035 (*movtf_internal_sse): New pattern.
26036 (*movxf_internal_rex64): New pattern.
26037 (*movxf_internal): Disable for TARGET_64BIT.
26038 (*movdf_internal_rex64): Remove (!o,F) alternative.
26039
3a984f10
JJ
260402013-01-22 Jakub Jelinek <jakub@redhat.com>
26041
502498d5
JJ
26042 PR middle-end/56074
26043 * dumpfile.c (dump_loc): Only print loc if LOCATION_LOCUS (loc)
26044 isn't UNKNOWN_LOCATION nor BUILTINS_LOCATION.
26045 * tree-vect-loop-manip.c (find_loop_location): Also ignore
26046 stmt locations where LOCATION_LOCUS of the stmt location is
26047 UNKNOWN_LOCATION or BUILTINS_LOCATION.
26048
3a984f10
JJ
26049 PR target/55686
26050 * config/i386/i386.md (UNSPEC_STOS): New.
26051 (strset_singleop, *strsetdi_rex_1, *strsetsi_1, *strsethi_1,
26052 *strsetqi_1): Add UNSPEC_STOS.
26053
fa817f7f
PC
260542013-01-22 Paolo Carlini <paolo.carlini@oracle.com>
26055
26056 PR c++/56067
26057 * doc/invoke.texi: Remove left over -Wsynth example.
26058
8f498c1b
JJ
260592013-01-21 Jakub Jelinek <jakub@redhat.com>
26060
26061 PR tree-optimization/56051
26062 * fold-const.c (fold_binary_loc): Don't fold
26063 X < (cast) (1 << Y) into (X >> Y) != 0 if cast is either
26064 a narrowing conversion, or widening conversion from signed
26065 to unsigned.
26066
47876a2a 260672013-01-21 Uros Bizjak <ubizjak@gmail.com>
35d59da7
UB
26068
26069 PR rtl-optimization/56023
26070 * haifa-sched.c (fix_inter_tick): Do not update ticks of instructions,
26071 dependent on debug instruction.
26072
5b9db1bc
MJ
260732013-01-21 Martin Jambor <mjambor@suse.cz>
26074
26075 PR middle-end/56022
26076 * function.c (allocate_struct_function): Call
26077 invoke_set_current_function_hook earlier.
26078
e8bb7d68
JJ
260792013-01-21 Jakub Jelinek <jakub@redhat.com>
26080
26081 * reload1.c (init_reload): Only initialize reload_obstack
26082 during the first call.
26083
616a4e32
MP
260842013-01-21 Marek Polacek <polacek@redhat.com>
26085
26086 * cfgloop.c (verify_loop_structure): Fix up grammar.
26087
4401981b
YHH
260882013-01-21 Yi-Hsiu Hsu <ahsu@marvell.com>
26089
26090 * config/arm/marvell-pj4.md (pj4_shift_conds, pj4_alu_shift,
26091 pj4_alu_shift_conds, pj4_shift): Handle simple_alu_shift.
26092
8e87740b
RR
260932013-01-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
26094
26095 PR target/56058
26096 * config/arm/marvell-pj4.md: Update copyright year.
26097 Fix up use of alu to alu_reg and simple_alu_imm.
26098
47876a2a 260992013-01-21 Uros Bizjak <ubizjak@gmail.com>
1f6bc337
UB
26100
26101 * config/i386/i386.md (enabled): Do not disable fma4 for TARGET_FMA.
26102
89d56d79
VM
261032013-01-20 Vladimir Makarov <vmakarov@redhat.com>
26104
26105 PR target/55433
26106 * lra-constraints.c (curr_insn_transform): Don't reuse original
1f6bc337 26107 insn for secondary memory move when memory mode should be different.
89d56d79 26108
fe603553
JDA
261092013-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
26110
26111 * config/pa/pa.md (atomic_loaddi, atomic_loaddi_1, atomic_storedi,
26112 atomic_storedi_1): New patterns.
26113
01284895
VK
261142013-01-20 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
26115
26116 btver2 pipeline descriptions.
26117 * config/i386/i386.c: Enable CPU_BTVER2 to use btver2 pipeline
26118 descriptions.
26119 * config/i386/i386.md (btver2_decode): New type attributes.
1f6bc337 26120 * config/i386/sse.md (btver2_decode, btver2_sse_attr): New
01284895
VK
26121 type attributes.
26122 * config/i386/btver2.md: New file describing btver2 pipelines.
26123
5630e3e1
JL
261242013-01-19 Andrew Pinski <apinski@cavium.com>
26125
26126 PR tree-optimization/52631
26127 * tree-ssa-sccvn (visit_use): Before looking up the original
26128 statement, try looking up the simplified expression.
26129
650ae806
AG
261302013-01-19 Anthony Green <green@moxielogic.com>
26131
26132 * config/moxie/moxie.c (moxie_expand_prologue): Set
26133 current_function_static_stack_size.
26134
e300ec2d
JJ
261352013-01-18 Jakub Jelinek <jakub@redhat.com>
26136
26137 PR tree-optimization/56029
26138 * tree-phinodes.c (reserve_phi_args_for_new_edge): Set
26139 gimple_phi_arg_location for the new arg to UNKNOWN_LOCATION.
26140
a3d7af04
SS
261412013-01-18 Sharad Singhai <singhai@google.com>
26142
26143 PR tree-optimization/55995
26144 * dumpfile.c (dump_loc): Print location only if available.
26145 * tree-vectorizer.c (increase_alignment): Intialize vect_location.
26146
66aa7879
VM
261472013-01-18 Vladimir Makarov <vmakarov@redhat.com>
26148
26149 PR target/55433
26150 * lra-constraints.c (curr_insn_transform): Reuse original insn for
26151 secondary memory move.
26152 (inherit_reload_reg): Use rclass instead of cl for
26153 check_secondary_memory_needed_p.
26154
3f0fee7b
JJ
261552013-01-18 Jakub Jelinek <jakub@redhat.com>
26156
26157 PR middle-end/56015
26158 * expr.c (expand_expr_real_2) <case COMPLEX_EXPR>: Handle
1f6bc337 26159 the case where writing real complex part of target modifies op1.
3f0fee7b 26160
70c67693
JG
261612013-01-18 James Greenhalgh <james.greenhalgh@arm.com>
26162
26163 * config/aarch64/aarch64-simd.md
26164 (aarch64_vcond_internal<mode>): Handle unordered cases.
26165 * config/aarch64/iterators.md (v_cmp_result): New.
26166
df8de9b3
YHH
261672013-01-18 Yi-Hsiu Hsu <ahsu@marvell.com>
26168 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
26169
26170 * config/arm/marvell-pj4.md: New file.
26171 * config/arm/arm.c (arm_issue_rate): Add marvell_pj4.
26172 * config/arm/arm.md (generic_sched): Add marvell_pj4.
26173 (generic_vfp): Likewise.
26174 * config/arm/arm-cores.def: Add marvell-pj4.
26175 * config/arm/arm-tune.md: Regenerate.
26176 * config/arm/arm-tables.opt: Regenerate.
26177 * config/arm/bpabi.h (BE8_LINK_SPEC): Add marvell_pj4.
26178 * doc/invoke.texi: Document marvell-pj4.
26179
be30c356
TB
261802013-01-18 Tejas Belagod <tejas.belagod@arm.com>
26181
26182 * config/aarch64/arm_neon.h: Map scalar types to standard types.
26183
0bfbca58 261842013-01-18 Alexandre Oliva <aoliva@redhat.com>
af6236c1
AO
26185
26186 PR debug/54114
26187 PR debug/54402
26188 PR debug/49888
26189 * var-tracking.c (negative_power_of_two_p): New.
26190 (global_get_addr_cache, local_get_addr_cache): New.
26191 (get_addr_from_global_cache, get_addr_from_local_cache): New.
26192 (vt_canonicalize_addr): Rewrite using the above. Adjust the
26193 heading comment.
26194 (vt_stack_offset_p): Remove.
26195 (vt_canon_true_dep): Always canonicalize loc's address.
26196 (clobber_overlapping_mems): Make sure we have a MEM.
26197 (local_get_addr_clear_given_value): New.
26198 (val_reset): Clear local cached entries.
26199 (compute_bb_dataflow): Create and release the local cache.
26200 Disable duplicate MEMs clobbering.
26201 (emit_notes_in_bb): Clobber MEMs likewise.
26202 (vt_emit_notes): Create and release the local cache.
26203 (vt_initialize, vt_finalize): Create and release the global
26204 cache, respectively.
1f6bc337 26205 * alias.c (rtx_equal_for_memref_p): Compare operands of ENTRY_VALUEs.
af6236c1 26206
0bfbca58 262072013-01-18 Alexandre Oliva <aoliva@redhat.com>
7ff37ffa
AO
26208
26209 PR libmudflap/53359
26210 * tree-mudflap.c (mudflap_finish_file): Skip deferred decls
26211 not found in the symtab.
26212
0bfbca58 262132013-01-18 Alexandre Oliva <aoliva@redhat.com>
3aa03517 26214
c350ba53 26215 PR debug/56006
3aa03517
AO
26216 PR rtl-optimization/55547
26217 PR rtl-optimization/53827
26218 PR debug/53671
26219 PR debug/49888
26220 * alias.c (offset_overlap_p): New, factored out of...
26221 (memrefs_conflict_p): ... this. Use absolute sizes. Retain
26222 the conservative special case for symbolic constants. Don't
26223 adjust zero sizes on alignment.
26224
c664546f
JL
262252013-01-18 Bernd Schmidt <bernds@codesourcery.com>
26226
26227 PR rtl-optimization/52573
26228 * regrename.c (build_def_use): Ignore REG_DEAD notes if there is a
26229 REG_UNUSED for the same register.
26230
1bd3f750
MP
262312013-01-17 Richard Biener <rguenther@suse.de>
26232 Marek Polacek <polacek@redhat.com>
26233
26234 PR rtl-optimization/55833
26235 * loop-unswitch.c (unswitch_loops): Move loop verification...
26236 (unswitch_single_loop): ...here. Call mark_irreducible_loops.
26237 * cfgloopmanip.c (fix_loop_placement): Add IRRED_INVALIDATED parameter.
26238 Set it to true when we're removing a loop from hierarchy tree in
26239 an irreducible region.
26240 (fix_bb_placements): Adjust caller.
26241 (fix_loop_placements): Likewise.
26242
e52a8b71
GJL
262432013-01-17 Georg-Johann Lay <avr@gjlay.de>
26244
26245 * config/avr/builtins.def (DEF_BUILTIN): Factor out
26246 "__builtin_avr_" from NAME, turn NAME to an uppercase identifier.
26247 Factor out 'CODE_FOR_' from ICODE, use 'nothing' instead of '-1'.
26248 Remove ID. Adjust comments.
26249 * config/avr/avr-c.c (avr_builtin_name): Remove.
26250 (avr_cpu_cpp_builtins): Use DEF_BUILTIN instead of for-loop.
26251 * config/avr/avr.c (avr_tolower): New static function.
26252 (DEF_BUILTIN): Remove parameter ID. Prefix ICODE by 'CODE_FOR_'.
26253 Stringify NAME, prefix it with "__builtin_avr_" and lowercase it.
26254 (avr_expand_builtin): Assert insn_code != CODE_FOR_nothing for
26255 default expansion.
26256
8386a7ea
JH
262572013-01-17 Jan Hubicka <jh@suse.cz>
26258
610fb637 26259 PR tree-optimization/55273
8386a7ea
JH
26260 * loop-iv.c (iv_number_of_iterations): Consider zero iteration case.
26261
47876a2a 262622013-01-17 Uros Bizjak <ubizjak@gmail.com>
8abaebcd
UB
26263
26264 PR target/55981
26265 * config/i386/sync.md (atomic_store<mode>): Always generate SWImode
26266 store through atomic_store<mode>_1.
26267 (atomic_store<mode>_1): Macroize insn using SWI mode iterator.
26268
8222c37e
MJ
262692013-01-17 Martin Jambor <mjambor@suse.cz>
26270
26271 PR tree-optimizations/55264
26272 * ipa-inline-transform.c (can_remove_node_now_p_1): Never return true
26273 for virtual methods.
26274 * ipa.c (symtab_remove_unreachable_nodes): Never return true for
26275 virtual methods before inlining is over.
26276 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Return false for
26277 virtual functions.
26278 * cgraphclones.c (cgraph_create_virtual_clone): Mark clones as
26279 non-virtual.
26280
79f01c76
VM
262812013-01-16 Vladimir Makarov <vmakarov@redhat.com>
26282
26283 PR rtl-optimization/56005
26284 * sched-deps.c (sched_analyze_2): Check deps->readonly for adding
26285 pending reads for prefetch.
26286
d0b6bb1b
IB
262872013-01-16 Ian Bolton <ian.bolton@arm.com>
26288
aaf1e810 26289 * config/aarch64/aarch64.md
d0b6bb1b
IB
26290 (*cstoresi_neg_uxtw): New pattern.
26291 (*cmovsi_insn_uxtw): New pattern.
26292 (*<optab>si3_uxtw): New pattern.
26293 (*<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): New pattern.
26294 (*<optab>si3_insn_uxtw): New pattern.
26295 (*bswapsi2_uxtw): New pattern.
26296
cb9cf03b
RB
262972013-01-16 Richard Biener <rguenther@suse.de>
26298
26299 * tree-inline.c (tree_function_versioning): Remove set but
26300 never used variable.
26301
2cfc56b9
RB
263022013-01-16 Richard Biener <rguenther@suse.de>
26303
26304 PR tree-optimization/55964
26305 * tree-flow.h (rename_variables_in_loop): Remove.
26306 (rename_variables_in_bb): Likewise.
26307 * tree-loop-distribution.c (update_phis_for_loop_copy): Remove.
26308 (copy_loop_before): Adjust and delete update-ssa status.
26309 * tree-vect-loop-manip.c (rename_variables_in_bb): Make static.
8abaebcd 26310 (rename_variables_in_bb): Likewise. Properly walk over predecessors.
2cfc56b9
RB
26311 (rename_variables_in_loop): Remove.
26312 (slpeel_update_phis_for_duplicate_loop): Likewise.
26313 (slpeel_tree_duplicate_loop_to_edge_cfg): Handle nested loops,
26314 use available cfg machinery instead of duplicating it.
26315 Update PHI nodes and perform poor-mans SSA update here.
26316 (slpeel_tree_peel_loop_to_edge): Adjust.
26317
c25a0c60
RB
263182013-01-16 Richard Biener <rguenther@suse.de>
26319
26320 PR tree-optimization/54767
26321 PR tree-optimization/53465
26322 * tree-vrp.c (vrp_meet_1): Revert original fix for PR53465.
26323 (vrp_visit_phi_node): For PHI arguments coming via backedges
26324 drop all symbolical range information.
26325 (execute_vrp): Compute backedges.
26326
04b535af
RB
263272013-01-16 Richard Biener <rguenther@suse.de>
26328
26329 * doc/install.texi: Update CLooG and ISL requirements to
26330 0.18.0 and 0.11.1.
26331
8b0a1e0b
CB
263322013-01-16 Christian Bruel <christian.bruel@st.com>
26333
26334 PR target/55301
26335 * config/sh/sh.c (sh_expand_prologue): Postpone new_stack mem symbol.
26336 (broken_move): Handle UNSPECV_SP_SWITCH_B.
26337 * config/sh/sh.md (sp_switch_1): Use set (reg:SI SP_REG).
26338
263392013-01-16 DJ Delorie <dj@redhat.com>
26340
26341 * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
26342 (UNSPECV_SP_SWITCH_E): New.
26343 (sp_switch_1): Change to an unspec.
26344 (sp_switch_2): Change to an unspec. Don't use post-inc when we
26345 replace $r15.
26346
263472013-01-16 Uros Bizjak <ubizjak@gmail.com>
88e784e6
UB
26348
26349 * emit-rtl.c (need_atomic_barrier_p): Mask memory model argument
26350 with MEMMODEL_MASK before comparing with MEMMODEL_* memory types.
26351 * optabs.c (maybe_emit_sync_lock_test_and_set): Ditto.
26352 (expand_mem_thread_fence): Ditto.
26353 (expand_mem_signal_fence): Ditto.
26354 (expand_atomic_load): Ditto.
26355 (expand_atomic_store): Ditto.
26356
0bfbca58 263572013-01-16 Alexandre Oliva <aoliva@redhat.com>
5147bf6a
AO
26358
26359 PR rtl-optimization/55547
26360 PR rtl-optimization/53827
26361 PR debug/53671
26362 PR debug/49888
26363 * alias.c (memrefs_conflict_p): Set sizes to negative after
26364 AND adjustments.
26365
305e3ac1
JJ
263662013-01-15 Jakub Jelinek <jakub@redhat.com>
26367
26368 PR target/55940
26369 * function.c (thread_prologue_and_epilogue_insns): Always
26370 add crtl->drap_reg to set_up_by_prologue.set, even if
26371 stack_realign_drap is false.
26372
f78ac4f2
JBG
263732013-01-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
26374
26375 * config/vax/vax.md (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3,
26376 and<mode>3, *and<mode>_const_int, ior<mode>3, xor<mode>3, ashrsi3,
26377 *call): Fix indention.
26378
a78a8cc4
TV
263792013-01-15 Tom de Vries <tom@codesourcery.com>
26380
26381 PR target/55876
26382 * optabs.c (widen_operand): Use gen_lowpart instead of gen_rtx_SUBREG.
26383 Update comment.
26384
0e80383f
VM
263852013-01-15 Vladimir Makarov <vmakarov@redhat.com>
26386
305e3ac1 26387 PR rtl-optimization/55153
0e80383f
VM
26388 * sched-deps.c (sched_analyze_2): Add pending reads for prefetch.
26389
207b5956
MJ
263902013-01-15 Martin Jambor <mjambor@suse.cz>
26391
26392 PR tree-optimization/55920
26393 * tree-sra.c (analyze_access_subtree): Do not mark non-removable
26394 accesses as grp_to_be_debug_replaced.
26395
a7818b54
JJ
263962013-01-15 Jakub Jelinek <jakub@redhat.com>
26397
26398 PR tree-optimization/55920
26399 * tree-sra.c (sra_modify_assign): If for lacc->grp_to_be_debug_replaced
26400 there is non-useless type conversion needed from debug rhs to lhs,
26401 use build_debug_ref_for_model and/or VIEW_CONVERT_EXPR.
26402
b0fe107e
JM
264032013-01-15 Joseph Myers <joseph@codesourcery.com>
26404 Mikael Pettersson <mikpe@it.uu.se>
26405
26406 PR target/43961
26407 * config/arm/arm.h (ADDR_VEC_ALIGN): Align SImode jump tables for
26408 Thumb.
26409 (ASM_OUTPUT_CASE_LABEL): Remove.
26410 (ASM_OUTPUT_BEFORE_CASE_LABEL): Define to empty.
26411 * final.c (shorten_branches): Update alignment of labels before
26412 jump tables if CASE_VECTOR_SHORTEN_MODE.
26413
34ab62ee
RB
264142013-01-15 Richard Biener <rguenther@suse.de>
26415
26416 PR bootstrap/55961
26417 * system.h: Do not include gmp.h for building host tools.
26418
783a3a05
RB
264192013-01-15 Richard Biener <rguenther@suse.de>
26420
26421 PR middle-end/55882
26422 * emit-rtl.c (set_mem_attributes_minus_bitpos): Correctly
26423 account for bitpos when computing alignment.
26424
3a579e09
VY
264252013-01-15 Vladimir Yakovlev <vladimir.b.yakovlev@intel.com>
26426
26427 * config/i386/i386-c.c (ix86_target_macros_internal): New case.
26428 (ix86_target_macros_internal): Likewise.
26429
26430 * config/i386/i386.c (m_CORE2I7): Removed.
26431 (m_CORE_HASWELL): New macro.
26432 (m_CORE_ALL): Likewise.
26433 (initial_ix86_tune_features): m_CORE2I7 is replaced by m_CORE_ALL.
26434 (initial_ix86_arch_features): Likewise.
26435 (processor_target_table): Initializations for Core avx2.
26436 (cpu_names): New names "core-avx2".
26437 (ix86_option_override_internal): Changed PROCESSOR_COREI7 by
26438 PROCESSOR_CORE_HASWELL.
26439 (ix86_issue_rate): New case.
26440 (ia32_multipass_dfa_lookahead): Likewise.
26441 (ix86_sched_init_global): Likewise.
26442
26443 * config/i386/i386.h (TARGET_HASWELL): New macro.
26444 (target_cpu_default): New TARGET_CPU_DEFAULT_haswell.
26445 (processor_type): New PROCESSOR_HASWELL.
26446
955f5a07
JJ
264472013-01-15 Jakub Jelinek <jakub@redhat.com>
26448
ff784829
JJ
26449 PR tree-optimization/55955
26450 * tree-vect-loop.c (vectorizable_reduction): Give up early on
26451 *SHIFT_EXPR and *ROTATE_EXPR codes.
26452
955f5a07
JJ
26453 PR tree-optimization/48766
26454 * opts.c (common_handle_option): For -fwrapv disable -ftrapv, for
26455 -ftrapv disable -fwrapv.
26456
aeb8b4e9
GJL
264572013-01-14 Georg-Johann Lay <avr@gjlay.de>
26458
26459 PR target/55974
26460 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Define __FLASH
26461 etc. to 1 and not to __flash.
26462 Use LL suffix for __INT24_MAX__ with -mint8.
26463 Use ULL suffix for __UINT24_MAX__ with -mint8.
26464
1c494c6a
GJL
264652013-01-14 Georg-Johann Lay <avr@gjlay.de>
26466
26467 * config/avr/avr-arch.h
26468 (struct base_arch_s): Use typedef avr_arch_t instead.
26469 (struct arch_info_s): Use typedef avr_arch_info_t instead.
26470 (struct mcu_type_s): Use typedef avr_mcu_t instead.
26471 * config/avr/avr.c: Same.
26472 * config/avr/avr-devices.c: Same.
26473 * config/avr/driver-avr.c: Same.
26474 * config/avr/gen-avr-mmcu-texi.c: Same.
26475 * config/avr/avr-mcus.def: Adjust comment.
26476
a50344cb
TB
264772013-01-14 Tejas Belagod <tejas.belagod@arm.com>
26478
88e784e6
UB
26479 * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): New.
26480 * config/aarch64/iterators.md (VALLDI): New.
a50344cb 26481
47876a2a 264822013-01-14 Uros Bizjak <ubizjak@gmail.com>
e6f0e052
UB
26483 Andi Kleen <ak@linux.intel.com>
26484
26485 PR target/55948
26486 * config/i386/sync.md (atomic_store<mode>_1): New pattern.
26487 (atomic_store<mode>): Call atomic_store<mode>_1 for IX86_HLE_RELEASE
26488 memmodel flag.
26489
00892272
GJL
264902013-01-14 Georg-Johann Lay <avr@gjlay.de>
26491
26492 * config/avr/avr-stdint.h: Remove trailing blanks.
26493 * config/avr/avr-log.h: Same.
26494 * config/avr/avr-arch.h: Same.
26495 * config/avr/avr-devices.c: Same.
26496 * config/avr/avr-dimode.md: Same.
26497 * config/avr/predicates.md: Same.
26498 * config/avr/avr-c.c: Same. And fix typo.
e6f0e052 26499
00892272
GJL
26500 * config/avr/avr-protos.h: Same. And:
26501 (function_arg_regno_p): Rename to avr_function_arg_regno_p.
26502 (init_cumulative_args): Rename to avr_init_cumulative_args.
26503 (expand_prologue): Rename to avr_expand_prologue.
26504 (expand_epilogue): Rename to avr_expand_epilogue.
26505 (adjust_insn_length): Rename to avr_adjust_insn_length.
26506 (notice_update_cc): Rename to avr_notice_update_cc.
26507 (final_prescan_insn): Rename to avr_final_prescan_insn.
26508 * config/avr/avr.c: Same.
26509 * config/avr/avr.h: Same.
26510 * config/avr/avr.md: Remove trailing blanks.
26511 (prologue): Use avr_expand_prologue.
26512 (epilogue, sibcall_epilogue): Use avr_expand_epilogue.
26513
7bb01996
RB
265142013-01-14 Richard Biener <rguenther@suse.de>
26515
26516 * tree-cfg.c (verify_expr_location, verify_expr_location_1,
26517 verify_location, collect_subblocks): New functions.
26518 (verify_gimple_in_cfg): Verify that locations only reference
26519 BLOCKs in the functions BLOCK tree.
26520
2724573f
RB
265212013-01-14 Richard Biener <rguenther@suse.de>
26522
26523 * tree-cfgcleanup.c (remove_forwarder_block): Unshare propagated
26524 PHI argument.
26525 * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Properly
26526 unshare reference.
26527 (insert_out_of_ssa_copy_on_edge): Likewise.
26528 (rewrite_close_phi_out_of_ssa): Likewise.
26529 * tree-ssa.c (insert_debug_temp_for_var_def): Properly unshare
26530 debug expressions.
26531 * tree-ssa-pre.c (insert_into_preds_of_block): Properly unshare
26532 propagated constants.
26533 * tree-cfg.c (tree_node_can_be_shared): Handled component-refs
26534 can not be shared.
26535
9a0bbab6
GJL
265362013-01-14 Georg-Johann Lay <avr@gjlay.de>
26537
26538 * config/avr/avr-modes.def: Add GPL copyright notice.
26539
45805f17
UB
265402013-01-13 Uros Bizjak <ubizjak@gmail.com>
26541
26542 * config/i386/sync.md (mem_thread_fence): Mask operands[0] with
26543 MEMMODEL_MASK to determine memory model.
26544 (atomic_store<mode>): Ditto from operands[2].
26545 * config/i386/i386.c (ix86_memmodel_check): Declare "strong" as bool.
26546
9d60be38
JJ
265472013-01-13 Jakub Jelinek <jakub@redhat.com>
26548
26549 PR fortran/55935
45805f17 26550 * gimple-fold.c (get_symbol_constant_value): Call unshare_expr.
9d60be38
JJ
26551 (fold_gimple_assign): Don't call unshare_expr here.
26552 (fold_ctor_reference): Call unshare_expr.
26553
e7f49d92
TG
265542013-01-13 Terry Guo <terry.guo@arm.com>
26555
aaf1e810
EB
26556 * Makefile.in (s-mlib): New argument MULTILIB_REUSE.
26557 * doc/fragments.texi: Document MULTILIB_REUSE.
26558 * gcc.c (multilib_reuse): New internal spec.
e7f49d92 26559 (set_multilib_dir): Also search multilib from multilib_reuse.
aaf1e810 26560 * genmultilib (tmpmultilib3): Refactor code.
e7f49d92
TG
26561 (tmpmultilib4): Ditto.
26562 (multilib_reuse): New multilib argument.
26563
fbd03a27
RS
265642013-01-13 Richard Sandiford <rdsandiford@googlemail.com>
26565
26566 * Makefile.in: Update copyright.
26567
b3681f13
TV
265682013-01-12 Tom de Vries <tom@codesourcery.com>
26569
26570 PR middle-end/55890
26571 * calls.c (expand_call): Check if arg_nr is valid.
26572
3f287e4b
MM
265732013-01-11 Michael Meissner <meissner@linux.vnet.ibm.com>
26574
26575 * doc/extend.texi (X86 Built-in Functions): Add whitespace in
26576 __builtin_ia32_paddb256 and __builtin_ia32_pavgb256
5bc35113
MM
26577 documentation. Add missing '__' in front of
26578 __builtin_ia32_packssdw256.
3f287e4b 26579
1abcd5eb
AK
265802013-01-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
26581
26582 PR target/55719
26583 * config/s390/s390.c (s390_preferred_reload_class): Do not return
26584 NO_REGS for larl operands.
26585 (s390_reload_larl_operand): Use s390_load_address instead of
26586 emit_move_insn.
26587
980d0812
RB
265882013-01-11 Richard Biener <rguenther@suse.de>
26589
26590 * tree-cfg.c (verify_node_sharing_1): Split out from ...
26591 (verify_node_sharing): ... here.
26592 (verify_gimple_in_cfg): Use verify_node_sharing_1 for walk_tree.
26593
7cb9fd07
EB
265942013-01-11 Eric Botcazou <ebotcazou@adacore.com>
26595
26596 * configure.ac (Tree checking): Set TREECHECKING to yes if enabled.
26597 Substitute TREECHECKING.
26598 * configure: Regenerate.
26599 * Makefile.in (TREECHECKING): New.
26600
47876a2a 266012013-01-11 Richard Guenther <rguenther@suse.de>
c7ab2530
RG
26602
26603 PR tree-optimization/44061
26604 * tree-vrp.c (extract_range_basic): Compute zero as
26605 value-range for __builtin_constant_p of function parameters.
26606
d1e082c2
RS
266072013-01-10 Richard Sandiford <rdsandiford@googlemail.com>
26608
45805f17 26609 Update copyright years.
d1e082c2 26610
f85021b0
VM
266112013-01-10 Vladimir Makarov <vmakarov@redhat.com>
26612
9d60be38 26613 PR rtl-optimization/55672
0160442c
VM
26614 * lra-eliminations.c (mark_not_eliminable): Permit addition with
26615 const to be eliminable.
f85021b0 26616
7a8b1ec4
DE
266172013-01-10 David Edelsohn <dje.gcc@gmail.com>
26618
26619 * configure.ac (HAVE_AS_TLS): Add check for powerpc-ibm-aix.
26620 * configure: Regenerate.
26621
ad2e5b71
RB
266222013-01-10 Richard Biener <rguenther@suse.de>
26623
ddf9322d 26624 * builtins.c (expand_builtin_init_trampoline): Use set_mem_attributes.
ad2e5b71 26625
ffc5b2bb
RB
266262013-01-10 Richard Biener <rguenther@suse.de>
26627
26628 PR bootstrap/55792
26629 * tree-into-ssa.c (rewrite_add_phi_arguments): Do not set
26630 locations for virtual PHI arguments.
26631 (rewrite_update_phi_arguments): Likewise.
26632
e1f674e4
JS
266332013-01-10 Joel Sherrill <joel.sherrill@OARcorp.com>
26634
26635 * config/v850/rtems.h (ASM_SPEC): Pass -m8byte-align and -mgcc-abi
26636 on to assembler.
26637
a57fc743
JJ
266382013-01-10 Jakub Jelinek <jakub@redhat.com>
26639
26640 PR tree-optimization/55921
26641 * tree-complex.c (expand_complex_asm): New function.
26642 (expand_complex_operations_1): Call it for GIMPLE_ASM.
26643
0ff4390d
AK
266442013-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
26645
26646 PR target/55718
26647 * config/s390/s390.c (s390_symref_operand_p)
26648 (s390_loadrelative_operand_p): Merge the two functions.
26649 (s390_check_qrst_address, print_operand_address): Add parameters
26650 to s390_loadrelative_operand_p invokation.
26651 (s390_check_symref_alignment): Use s390_loadrelative_operand_p.
26652 (s390_reload_larl_operand, s390_secondary_reload): Use
26653 s390_loadrelative_operand_p instead of s390_symref_operand_p.
26654 (legitimize_pic_address): Handle @GOTENT and @PLT + addend.
26655
6f557e0e
MS
266562013-01-09 Mike Stump <mikestump@comcast.net>
26657
26658 * dse.c (record_store): Remove unnecessary assert.
26659
7770c9e9
JH
266602013-01-09 Jan Hubicka <jh@suse.cz>
26661
26662 PR tree-optimization/55569
26663 * cfgloopmanip.c (scale_loop_profile): Make ITERATION_BOUND gcov_type.
26664 * cfgloop.h (scale_loop_profile): Likewise.
26665
a19b1432
JH
266662013-01-09 Jan Hubicka <jh@suse.cz>
26667
26668 PR lto/45375
ddf9322d
UB
26669 * ipa-inline.c (ipa_inline): Remove extern inlines and virtual
26670 functions.
a19b1432
JH
26671 * cgraphclones.c (cgraph_clone_node): Cpoy also LTO file data.
26672
9a002da8
RS
266732013-01-09 Richard Sandiford <rdsandiford@googlemail.com>
26674
26675 PR middle-end/55114
26676 * expr.h (maybe_emit_group_store): Declare.
26677 * expr.c (maybe_emit_group_store): New function.
26678 * builtins.c (expand_builtin_int_roundingfn): Call it.
26679 (expand_builtin_int_roundingfn_2): Likewise.
26680
511dcace
VM
266812013-01-09 Vladimir Makarov <vmakarov@redhat.com>
26682
e1f2b729 26683 PR rtl-optimization/55829
511dcace
VM
26684 * lra-constraints.c (match_reload): Add code for absent output.
26685 (curr_insn_transform): Add code for reloads of matched inputs
26686 without output.
26687
7b0fe4f4
UB
266882013-01-09 Uros Bizjak <ubizjak@gmail.com>
26689
26690 * config/i386/sse.md (*vec_interleave_highv2df): Change mode
26691 attribute of movddup insn to DF.
26692 (*vec_interleave_lowv2df): Ditto.
26693 (vec_dupv2df): Ditto.
26694
870ca331
JH
266952013-01-09 Jan Hubicka <jh@suse.cz>
26696
26697 PR tree-optimiation/55875
26698 * tree-ssa-loop-niter.c (number_of_iterations_cond): Add
26699 EVERY_ITERATION parameter.
7b0fe4f4 26700 (number_of_iterations_exit): Check if exit is executed every iteration.
870ca331
JH
26701 (idx_infer_loop_bounds): Similarly here.
26702 (n_of_executions_at_most): Simplify
26703 to only test for cases where statement is dominated by the
7b0fe4f4 26704 particular bound; handle correctly the "postdominance" test.
870ca331
JH
26705 (scev_probably_wraps_p): Use max loop iterations info
26706 as a global bound first.
26707
6f575fe4 267082013-01-09 Nguyen Duy Dat <dat.nguyen.yn@rvc.renesas.com>
3cd232b5
NDD
26709 Nick Clifton <nickc@redhat.com>
26710
26711 * config/v850/v850.md (cbranchsf4): New pattern.
26712 (cstoresf4): New pattern.
26713 (cbranchdf4): New pattern.
26714 (cstoredf4): New pattern.
26715 (movsicc): Disallow floating point comparisons.
26716 (cmpsf_le_insn): Fix order of operators.
26717 (cmpsf_lt_insn): Likewise.
26718 (cmpsf_eq_insn): Likewise.
26719 (cmpdf_le_insn): Likewise.
26720 (cmpdf_lt_insn): Likewise.
26721 (cmpdf_eq_insn): Likewise.
26722 (cmpsf_ge_insn): Use LE comparison.
26723 (cmpdf_ge_insn): Likewise.
26724 (cmpsf_gt_insn): Use LT comparison.
26725 (cmpdf_gt_insn): Likewise.
26726 (cmpsf_ne_insn): Delete pattern.
26727 (cmpdf_ne_insn): Delete pattern.
26728 * config/v850/v850.c (v850_gen_float_compare): Use
26729 gen_cmpdf_eq_insn for NE comparison.
26730 (v850_float_z_comparison_operator)
26731 (v850_float_nz_comparison_operator): Move from here ...
26732 * config/v850/predicates.md: ... to here. Move GT and GE
26733 comparisons into v850_float_z_comparison_operator.
26734 * config/v850/v850-protos.h (v850_float_z_comparison_operator):
26735 Delete prototype.
26736 (v850_float_nz_comparison_operator): Likewise.
26737
f0d54148
JDA
267382013-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
26739
26740 * config/pa/pa.c (pa_emit_move_sequence): Replace calls to gen_insv
26741 with calls to gen_insvsi/gen_insvdi.
26742
8f01beca
VK
267432013-01-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
26744
26745 * config/i386/i386.c (initial_ix86_tune_features): Set up
26746 X86_TUNE_AVX128_OPTIMAL for m_BTVER2.
26747
2aa579ad
JJ
267482013-01-09 Steven Bosscher <steven@gcc.gnu.org>
26749 Jakub Jelinek <jakub@redhat.com>
26750
26751 PR tree-optimization/48189
26752 * predict.c (predict_loops): If max is 0, don't call compare_tree_int.
26753 If nitercst is 0, don't predict the exit edge.
26754
6edc3e32 267552013-01-08 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
01a3a324
N
26756
26757 * config/aarch64/aarch64.c (aarch64_print_operand): Replace %r
26758 in asm_fprintf with reg_names.
26759 (aarch64_print_operand_address): Likewise.
26760 (aarch64_return_addr): Likewise.
26761 * config/aarch64/aarch64.h (ASM_FPRINTF_EXTENSIONS): Remove.
26762
f6f94d94
JDA
267632013-01-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
26764
26765 * config/pa/pa.h (VAL_U6_BITS_P): Define.
26766 (INT_U6_BITS): Likewise.
26767 * config/pa/predicates.md (uint6_operand): New predicate.
26768 (shift5_operand, shift6_operand): Likewise.
26769 * config/pa/pa.md (lshrsi3, rotrsi3): Use shift5_operand instead of
26770 arith32_operand.
26771 (lshrdi3): Use shift6_operand.
26772 (shrpsi4, shrpdi4): New insn patterns.
26773 (extzv): Delete expander.
26774 (extzvsi, extzvdi): New expanders. Use uint5_operand and uint6_operand
26775 predicates in unamed zero extract patterns. Tighten common constraint.
26776 (extv): Delete expander.
26777 (extvsi, extvdi): New expanders. Use uint5_operand and uint6_operand
26778 predicates in unamed sign extract patterns. Tighten common constraint.
26779 (insv): Delete expander.
26780 (insvsi, insvdi): New expanders. Use uint5_operand and uint6_operand
26781 predicates in unamed insert patterns. Tighten common constraint.
26782 Change uint32_operand predicate to uint6_operand predicate in unamed
26783 DImode pattern to insert constant values of type 1...1xxxx.
26784
36b72910
JH
267852013-01-04 Jan Hubicka <jh@suse.cz>
26786
26787 PR tree-optimization/55823
7b0fe4f4
UB
26788 * ipa-prop.c (update_indirect_edges_after_inlining): Fix ordering
26789 issue.
36b72910 26790
47876a2a 267912013-01-08 Jakub Jelinek <jakub@redhat.com>
c6d851b9
JJ
26792 Uros Bizjak <ubizjak@gmail.com>
26793
26794 PR rtl-optimization/55845
26795 * df-problems.c (can_move_insns_across): Stop scanning at
26796 volatile_insn_p source instruction or give up if
26797 across_from .. across_to range contains any volatile_insn_p
26798 instructions.
26799
4369c11e
TB
268002013-01-08 Tejas Belagod <tejas.belagod@arm.com>
26801
7b0fe4f4
UB
26802 * config/aarch64/aarch64-simd.md (vec_init<mode>): New.
26803 * config/aarch64/aarch64-protos.h (aarch64_expand_vector_init):
26804 Declare.
4369c11e 26805 * config/aarch64/aarch64.c (aarch64_simd_dup_constant,
7b0fe4f4 26806 aarch64_simd_make_constant, aarch64_expand_vector_init): New.
4369c11e 26807
aeb7e7c1
JJ
268082013-01-08 Jakub Jelinek <jakub@redhat.com>
26809
26810 PR fortran/55341
26811 * asan.c (asan_clear_shadow): New function.
26812 (asan_emit_stack_protection): Use it.
26813
a02ad1aa
TB
268142013-01-08 Tejas Belagod <tejas.belagod@arm.com>
26815
26816 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_<su>mult_lo_<mode>,
26817 aarch64_simd_vec_<su>mult_hi_<mode>): Separate instruction and operand
26818 with tab instead of space.
26819
f90d87f5
NC
268202013-01-08 Nick Clifton <nickc@redhat.com>
26821
26822 * config/rl78/rl78.c (rl78_expand_prologue): Always select
26823 register bank 0 at the start of an interrupt handler.
83ffd964
NC
26824 * config/rl78/rl78.md (mulsi3_g13): Correct values for MDBL and
26825 MDBH registers.
f90d87f5 26826
385eb93d
JG
268272013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
26828
26829 * config/aarch64/aarch64-simd.md
26830 (aarch64_simd_bsl<mode>_internal): Add floating-point modes.
26831 (aarch64_simd_bsl): Likewise.
26832 (aarch64_vcond_internal<mode>): Likewise.
26833 (vcond<mode><mode>): Likewise.
26834 (aarch64_cm<cmp><mode>): Fix constraints, add new modes.
26835 * config/aarch64/iterators.md (V_cmp_result): Add V2DF.
26836
4dcd1054
JG
268372013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
26838
26839 * config/aarch64/aarch64-builtins.c
26840 (aarch64_builtin_vectorized_function): Handle sqrt, sqrtf.
26841
4267a4a6
MJ
268422013-01-08 Martin Jambor <mjambor@suse.cz>
26843
26844 PR debug/55579
26845 * tree-sra.c (analyze_access_subtree): Return true also after
26846 potentially creating a debug-only replacement.
26847
5f4e6de3
JJ
268482013-01-08 Jakub Jelinek <jakub@redhat.com>
26849
3138f224
JJ
26850 PR middle-end/55890
26851 * tree-ssa-ccp.c (evaluate_stmt): Use gimple_call_builtin_p.
26852
5f4e6de3
JJ
26853 PR tree-optimization/54120
26854 * tree-vrp.c (range_fits_type_p): Don't allow
26855 src_precision < precision from signed vr to unsigned_p
26856 if vr->min or vr->max is negative.
26857 (simplify_float_conversion_using_ranges): Test can_float_p
26858 against CODE_FOR_nothing.
26859
f3ef18ff
JJ
268602013-01-08 Jakub Jelinek <jakub@redhat.com>
26861 Richard Biener <rguenther@suse.de>
26862
26863 PR middle-end/55851
26864 * fold-const.c (int_binop_types_match_p): Allow all INTEGRAL_TYPE_P
26865 types instead of just INTEGER_TYPE types.
26866
25c210f9
MK
268672013-01-07 Mark Kettenis <kettenis@openbsd.org>
26868
26869 * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT,
26870 TF_SIZE): Define.
f90d87f5 26871
81826a7b
SE
268722013-01-07 Steve Ellcey <sellcey@mips.com>
26873
26874 PR target/42661
26875 * config/mips/mips.opt: Change mad to mmad to match documentation.
26876
35678514
GJL
268772013-01-07 Georg-Johann Lay <avr@gjlay.de>
26878
26879 PR target/55897
26880 * doc/extend.texi (AVR Named Address Spaces): __memx goes into
26881 .progmemx.data now.
26882
e5669488
GJL
268832013-01-07 Georg-Johann Lay <avr@gjlay.de>
26884
26885 PR target/55897
26886 * config/avr/avr.h (ADDR_SPACE_COUNT): New enum.
26887 (avr_addrspace_t): Add .section_name field.
26888 * config/avr/avr.c (progmem_section): Use ADDR_SPACE_COUNT as
26889 array size.
26890 (avr_addrspace): Same. Initialize .section_name. Remove last
26891 NULL entry. Put __memx into .progmemx.data.
26892 (progmem_section_prefix): Remove.
26893 (avr_asm_init_sections): No need to initialize progmem_section.
26894 (avr_asm_named_section): Use avr_addrspace[].section_name to get
26895 section name prefix.
26896 (avr_asm_select_section): Ditto. And use get_unnamed_section to
26897 retrieve the progmem section.
26898 * avr-c.c (avr_cpu_cpp_builtins): Use ADDR_SPACE_COUNT as loop
26899 boundary to run over avr_addrspace[].
26900 (avr_register_target_pragmas): Ditto.
26901
656e6f37
JJ
269022013-01-06 Jakub Jelinek <jakub@redhat.com>
26903
26904 * varasm.c (output_constant_def_contents): For asan_protect_global
26905 protected strings, adjust DECL_ALIGN if needed, before testing for
26906 anchored symbols.
26907 (place_block_symbol): Adjust size for asan protected STRING_CSTs if
26908 TREE_CONSTANT_POOL_ADDRESS_P. Increase alignment for asan protected
26909 normal decls.
26910 (output_object_block): For asan protected decls, emit asan padding
26911 after their contents.
26912 * asan.c (asan_protect_global): Don't check TREE_ASM_WRITTEN here.
26913 (asan_finish_file): Test it here instead.
26914
6edc3e32
UB
269152013-01-07 Nick Clifton <nickc@redhat.com>
26916 Matthias Klose <doko@debian.org>
26917 Doug Kwan <dougkwan@google.com>
26918 H.J. Lu <hongjiu.lu@intel.com>
b352afba
NC
26919
26920 PR driver/55470
26921 * collect2.c (main): Support -fuse-ld=bfd and -fuse-ld=gold.
26922
26923 * common.opt: Add fuse-ld=bfd and fuse-ld=gold.
26924
26925 * gcc.c (LINK_COMMAND_SPEC): Pass -fuse-ld=* to collect2.
26926
7b0fe4f4 26927 * opts.c (comman_handle_option): Ignore -fuse-ld=bfd and -fuse-ld=gold.
b352afba
NC
26928
26929 * doc/invoke.texi: Document -fuse-ld=bfd and -fuse-ld=gold.
26930
2a095093
GJL
269312013-01-07 Georg-Johann Lay <avr@gjlay.de>
26932
f3b503f4 26933 PR target/54461
2a095093
GJL
26934 * doc/install.texi (Cross-Compiler-Specific Options): Document
26935 --with-avrlibc.
26936
383f9b34
TB
269372013-01-07 Tejas Belagod <tejas.belagod@arm.com>
26938
26939 * config/aarch64/arm_neon.h (vmovn_high_is16, vmovn_high_s32,
26940 vmovn_high_s64, vmovn_high_u16, vmovn_high_u32, vmovn_high_u64,
26941 vqmovn_high_s16, vqmovn_high_s32, vqmovn_high_s64, vqmovn_high_u16,
26942 vqmovn_high_u32, vqmovn_high_u64, vqmovun_high_s16, vqmovun_high_s32,
26943 vqmovun_high_s64): Fix source operand number and update copyright.
26944
3626621a
RB
269452013-01-07 Richard Biener <rguenther@suse.de>
26946
26947 PR middle-end/55890
26948 * gimple.h (gimple_call_builtin_p): New overload.
26949 * gimple.c (validate_call): New function.
26950 (gimple_call_builtin_p): Likewise.
26951 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
26952 Use gimple_call_builtin_p.
26953 (find_func_clobbers): Likewise.
26954 * tree-ssa-strlen.c (adjust_last_stmt): Likewise.
26955 (strlen_optimize_stmt): Likewise.
26956
8b2ea410
JG
269572013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
26958
26959 * config/aarch64/arm_neon.h (vld1_dup_*): Make argument const.
26960 (vld1q_dup_*): Likewise.
26961 (vld1_*): Likewise.
26962 (vld1q_*): Likewise.
26963 (vld1_lane_*): Likewise.
26964 (vld1q_lane_*): Likewise.
26965
9713d329
RB
269662013-01-07 Richard Biener <rguenther@suse.de>
26967
26968 * lto-streamer.h (LTO_minor_version): Bump to 2.
26969
3520f7cc
JG
269702013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
26971
26972 * config/aarch64/aarch64-protos.h
26973 (aarch64_const_double_zero_rtx_p): Rename to...
26974 (aarch64_float_const_zero_rtx_p): ...this.
26975 (aarch64_float_const_representable_p): New.
26976 (aarch64_output_simd_mov_immediate): Likewise.
26977 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): Refactor
26978 move immediate case.
26979 * config/aarch64/aarch64.c
26980 (aarch64_const_double_zero_rtx_p): Rename to...
26981 (aarch64_float_const_zero_rtx_p): ...this.
26982 (aarch64_print_operand): Allow printing of new constants.
26983 (aarch64_valid_floating_const): New.
26984 (aarch64_legitimate_constant_p): Check for valid floating-point
26985 constants.
26986 (aarch64_simd_valid_immediate): Likewise.
26987 (aarch64_vect_float_const_representable_p): New.
26988 (aarch64_float_const_representable_p): Likewise.
26989 (aarch64_simd_imm_zero_p): Also allow for floating-point 0.0.
26990 (aarch64_output_simd_mov_immediate): New.
26991 * config/aarch64/aarch64.md (*movsf_aarch64): Add new alternative.
26992 (*movdf_aarch64): Likewise.
26993 * config/aarch64/constraints.md (Ufc): New.
26994 (Y): call aarch64_float_const_zero_rtx.
26995 * config/aarch64/predicates.md (aarch64_fp_compare_operand): New.
26996
e167c04d
RB
269972013-01-07 Richard Biener <rguenther@suse.de>
26998
26999 PR tree-optimization/55888
27000 PR tree-optimization/55862
27001 * tree-ssa-pre.c (phi_translate_1): Revert previous change.
27002 (valid_in_sets): Check if a NAME has a leader in AVAIL_OUT,
27003 not if it is contained therein.
27004
0139aaab
GJL
270052013-01-07 Georg-Johann Lay <avr@gjlay.de>
27006
27007 * config/avr/t-avr: Typo.
27008
4a176b23
GJL
270092013-01-07 Georg-Johann Lay <avr@gjlay.de>
27010
27011 PR55243
27012 * config/avr/t-avr: Don't automatically rebuild
27013 $(srcdir)/config/avr/t-multilib
27014 $(srcdir)/config/avr/avr-tables.opt
27015 $(srcdir)/doc/avr-mmcu.texi
27016 (avr-mcus): New phony target to build them on request.
27017 (s-avr-mlib, s-avr-mmcu-texi): Remove.
27018 * avr/avr-mcus.def: Adjust comments.
27019
c7afdc98
UB
270202013-01-07 Uros Bizjak <ubizjak@gmail.com>
27021
27022 * config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Remove.
27023
1ab05c31
RS
270242013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
27025
27026 * file-find.c, file-find.h, realmpfr.c: Add FSF as copyright holder.
27027
488e3acc
RS
270282013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
27029
27030 * config/tilepro/gen-mul-tables.cc: Put copyright on one line.
27031
a89599d2
DE
270322013-01-05 David Edelsohn <dje.gcc@gmail.com>
27033
27034 * config/rs6000/aix53.h (LIB_SPEC): Add -lpthreads when compiling
27035 to generate profiling.
27036 * config/rs6000/aix64.h (LIB_SPEC): Same.
27037
70f09188
AP
270382013-01-04 Andrew Pinski <apinski@cavium.com>
27039
27040 * config/aarch64/aarch64.c (aarch64_fixed_condition_code_regs):
27041 New function.
27042 (TARGET_FIXED_CONDITION_CODE_REGS): Define.
27043
918d445f
UB
270442013-01-04 Uros Bizjak <ubizjak@gmail.com>
27045
27046 * config/i386/i386.c (ix86_legitimize_address): Call convert_to_mode
27047 unconditionally.
27048 (ix86_expand_move): Ditto.
27049 (ix86_zero_extend_to_Pmode): Ditto.
27050 (ix86_expand_call): Ditto.
27051 (ix86_expand_special_args_builtin): Ditto.
27052 (ix86_expand_builtin): Ditto.
27053
361618ec
RB
270542013-01-04 Richard Biener <rguenther@suse.de>
27055
27056 PR tree-optimization/55862
27057 * tree-ssa-pre.c (phi_translate_1): Valueize SSA names after
27058 translating them through PHI nodes.
27059
87eab554
MJ
270602013-01-04 Martin Jambor <mjambor@suse.cz>
27061
27062 PR tree-optimization/55755
27063 * tree-sra.c (sra_modify_assign): Do not check that an access has no
27064 children when trying to avoid producing a VIEW_CONVERT_EXPR.
27065
33879b9f
MP
270662013-01-04 Marek Polacek <polacek@redhat.com>
27067
27068 PR middle-end/55859
27069 * opts.c (default_options_optimization): Clarify error message.
27070
3068819a
RB
270712013-01-04 Richard Biener <rguenther@suse.de>
27072
27073 PR middle-end/55863
27074 * fold-const.c (split_tree): Undo -X - 1 to ~X folding for
27075 reassociation.
27076
0e4ae794
JDA
270772013-01-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
27078
27079 PR target/53789
27080 * config/pa/pa.md (movsi): Revert previous change.
e58d2e48
JDA
27081 * config/pa/pa.c (pa_legitimate_constant_p): Reject all TLS symbol
27082 references.
0e4ae794 27083
65c88cef
RH
270842013-01-03 Richard Henderson <rth@redhat.com>
27085
27086 * config/i386/i386.c (ix86_expand_move): Always assign to op1
27087 after eliminating TLS symbols.
27088
8ac16127
MG
270892013-01-03 Marc Glisse <marc.glisse@inria.fr>
27090
27091 PR bootstrap/50167
27092 * graphite-interchange.c (pdr_stride_in_loop): Use gmp_fprintf.
27093 * graphite-poly.c (debug_gmp_value): Likewise.
27094
bb664f09
UB
270952013-01-03 Uros Bizjak <ubizjak@gmail.com>
27096
27097 PR target/55712
27098 * config/i386/i386-c.c (ix86_target_macros_internal): Depending on
27099 selected code model, define __code_mode_small__, __code_model_medium__,
27100 __code_model_large__, __code_model_32__ or __code_model_kernel__.
27101 * config/i386/cpuid.h (__cpuid, __cpuid_count) [__i386__]: Prefix
27102 xchg temporary register with %k. Declare temporary register as
27103 early clobbered.
27104 [__x86_64__]: For medium and large code models, preserve %rbx register.
27105
bcf1ef00
RB
271062013-01-03 Richard Biener <rguenther@suse.de>
27107
0506634a 27108 * tree-data-ref.c (dump_conflict_function): Use less vertical spacing.
bcf1ef00
RB
27109 (dump_subscript): Adjust.
27110 (finalize_ddr_dependent): Do not dump redundant info.
27111 (analyze_siv_subscript): Adjust.
27112 (subscript_dependence_tester): Likewise.
27113 (compute_affine_dependence): Likewise.
27114
59fd17e3
RB
271152013-01-03 Richard Biener <rguenther@suse.de>
27116
27117 Revert
27118 2013-01-03 Richard Biener <rguenther@suse.de>
27119
27120 PR tree-optimization/55857
27121 * tree-vect-stmts.c (vectorizable_load): Do not setup
27122 re-alignment for invariant loads.
27123
27124 2013-01-02 Richard Biener <rguenther@suse.de>
27125
27126 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
0506634a 27127 invariant load do not generate a vector load from the scalar location.
59fd17e3 27128
595c2679
RB
271292013-01-03 Richard Biener <rguenther@suse.de>
27130
27131 * tree-vect-loop.c (vect_analyze_loop_form): Clarify reason
27132 for not vectorizing.
27133 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
27134 not build INDIRECT_REFs, call get_name once only.
27135 (vect_create_data_ref_ptr): Likewise. Dump base object kind
27136 based on DR_BASE_OBJECT, not DR_BASE_ADDRESS.
27137
90bb7d7a
RB
271382013-01-03 Richard Biener <rguenther@suse.de>
27139
27140 PR tree-optimization/55857
27141 * tree-vect-stmts.c (vectorizable_load): Do not setup
27142 re-alignment for invariant loads.
27143
f09b77ca
RB
271442013-01-03 Richard Biener <rguenther@suse.de>
27145
27146 PR lto/55848
27147 * lto-symtab.c (lto_symtab_merge_decls_1): As last resort, always
27148 prefer a built-in decl.
27149
3461a16e
JJ
271502013-01-03 Jakub Jelinek <jakub@redhat.com>
27151
df8e2b4f
JJ
27152 * gcc.c (process_command): Update copyright notice dates.
27153 * gcov.c (print_version): Likewise.
27154 * gcov-dump.c (print_version): Likewise.
27155
3461a16e
JJ
27156 PR rtl-optimization/55838
27157 * loop-iv.c (iv_number_of_iterations): Call lowpart_subreg on
27158 iv0.step, iv1.step and step.
27159
8b5546d6
JJ
271602013-01-03 Jakub Jelinek <jakub@redhat.com>
27161 Marc Glisse <marc.glisse@inria.fr>
27162
27163 PR tree-optimization/55832
27164 * fold-const.c (fold_binary_loc): For ABS_EXPR<x> >= 0 and
27165 ABS_EXPR<x> < 0 folding use constant_boolean_node instead of
27166 integer_{one,zero}_node.
27167
8ab1d2e9
JJ
271682013-01-03 Jakub Jelinek <jakub@redhat.com>
27169
27170 PR debug/54402
27171 * params.def (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE): New param.
27172 * var-tracking.c (reverse_op): Don't add reverse ops to
27173 VALUEs that have already
0506634a 27174 PARAM_VALUE (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE) or longer locs list.
8ab1d2e9 27175
5b9ad1d4
GP
271762013-01-02 Gerald Pfeifer <gerald@pfeifer.com>
27177
27178 * doc/contrib.texi: Note years as release manager for Mark Mitchell.
27179
e25a6711
TJ
271802013-01-02 Teresa Johnson <tejohnson@google.com>
27181
27182 * dumpfile.c (dump_loc): Print filename with location.
27183 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Use
27184 new location_t parameter to emit complete unroll message with
27185 new dump framework.
27186 (canonicalize_loop_induction_variables): Compute loops location
27187 and pass to try_unroll_loop_completely.
27188 * loop-unroll.c (report_unroll_peel): New function.
27189 (peel_loops_completely): Use new dump format with location
27190 for main dumpfile message, and invoke report_unroll_peel on success.
27191 (decide_unrolling_and_peeling): Ditto.
27192 (decide_peel_once_rolling): Remove old dumpfile message subsumed
27193 by report_unroll_peel.
27194 (decide_peel_completely): Ditto.
27195 (decide_unroll_constant_iterations): Ditto.
27196 (decide_unroll_runtime_iterations): Ditto.
27197 (decide_peel_simple): Ditto.
27198 (decide_unroll_stupid): Ditto.
27199 * cfgloop.c (get_loop_location): New function.
27200 * cfgloop.h (get_loop_location): Declare.
27201
77878621
ST
272022013-01-02 Sriraman Tallam <tmsriram@google.com>
27203
27204 * config/i386/i386.c (fold_builtin_cpu): Remove unnecessary checks for
27205 NULL.
27206
9e65d03e
JDA
272072013-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
27208
27209 PR middle-end/55198
27210 * expr.c (expand_expr_real_1): Don't use bitfield extraction for non
27211 BLKmode objects when EXPAND_MEMORY is specified.
27212
6a7da30f
ST
272132013-01-02 Sriraman Tallam <tmsriram@google.com>
27214
27215 * config/i386/i386.c (ix86_get_function_versions_dispatcher): Fix bug
27216 in loop predicate.
27217 (fold_builtin_cpu): Do not share cpu model decls across statements.
27218
e78167f2
JM
272192013-01-02 Jason Merrill <jason@redhat.com>
27220
27221 PR c++/55804
27222 * tree.c (build_array_type_1): Revert earlier change.
27223
8c075fb4
YZ
272242013-01-02 Yufeng Zhang <yufeng.zhang@arm.com>
27225
27226 * config/aarch64/aarch64-cores.def: Add entries for "cortex-a53" and
27227 "cortex-a57".
27228 * config/aarch64/aarch64-tune.md: Re-generate.
27229
0682ed3e
RB
272302013-01-02 Richard Biener <rguenther@suse.de>
27231
27232 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
0506634a 27233 invariant load do not generate a vector load from the scalar location.
0682ed3e 27234
b8f6a302
RB
272352013-01-02 Richard Biener <rguenther@suse.de>
27236
27237 PR bootstrap/55784
27238 * configure.ac: Add $GMPINC to CFLAGS/CXXFLAGS.
27239 * configure: Regenerate.
27240
04b80dbb
RS
272412013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
27242
27243 * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2)
27244 (expand_builtin_mathfn_ternary, expand_builtin_mathfn_3)
27245 (expand_builtin_int_roundingfn_2): Keep the original target around
27246 for the fallback case.
27247
635b0b0c
RS
272482013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
27249
27250 * tree-vrp.c (range_fits_type_p): Require the MSB of the double_int
27251 to be clear for sign changes.
27252
42d57399
JH
272532013-01-01 Jan Hubicka <jh@suse.cz>
27254
27255 * ipa-inline-analysis.c: Fix formatting.
27256
5bb6669d
JJ
272572013-01-01 Jakub Jelinek <jakub@redhat.com>
27258
27259 PR tree-optimization/55831
27260 * tree-vect-loop.c (get_initial_def_for_induction): Use
27261 gsi_after_labels instead of gsi_start_bb.
ad41bd84 27262\f
86a2db33 27263Copyright (C) 2013 Free Software Foundation, Inc.
ad41bd84
JM
27264
27265Copying and distribution of this file, with or without modification,
27266are permitted in any medium without royalty provided the copyright
27267notice and this notice are preserved.