]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
invoke.texi (Optimize Options): For -fno-toplevel-reorder, don't imply that attribute...
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
ce0770fc
ILT
12013-10-21 Ian Lance Taylor <iant@google.com>
2
3 * doc/invoke.texi (Optimize Options): For -fno-toplevel-reorder,
4 don't imply that attributes can solve all problems.
5 (Directory Options): Fix typo.
6
0e7504c8
KT
72013-10-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8
9 * config/arm/arm.c (cortexa9_extra_costs): Update mult costs for
10 extend and extend_add.
11
2445aeac
RB
122013-10-21 Richard Biener <rguenther@suse.de>
13
14 PR tree-optimization/58794
15 * fold-const.c (operand_equal_p): Compare FIELD_DECL operand
16 of COMPONENT_REFs with OEP_CONSTANT_ADDRESS_OF left in place.
17
d480e6a5
RB
182013-10-21 Richard Biener <rguenther@suse.de>
19
20 PR middle-end/58742
21 * fold-const.c (fold_binary_loc): Fold ((T) (X /[ex] C)) * C
22 to (T) X for sign-changing conversions (or no conversion).
23
54f9aba0
UB
242013-10-20 Uros Bizjak <ubizjak@gmail.com>
25
26 * config/i386/i386.md (kxnor<mode>): Add FLAGS_REG clobber.
27
d6c6ba3c
JH
282013-10-20 Jan Hubicka <jh@suse.cz>
29
30 * config/i386/i386-tune.def: Add comment; organize into categories
31
d606b917
MZ
322013-10-21 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
33
34 * config/i386/i386.c (expand_set_or_movmem_via_loop): Add issetmem
35 argument. Update function comment.
36 (expand_set_or_movmem_via_rep): New function combining
37 expand_movmem_via_rep_mov and expand_setmem_via_rep_stos.
38 (expand_movmem_via_rep_mov): Remove.
39 expand_setmem_via_rep_stos): Remove.
40 (expand_movmem_epilogue): Update calls correspondingly.
41 (expand_setmem_epilogue_via_loop): Likewise.
42 (emit_memset): New.
43 (expand_setmem_epilogue): Add VEC_VALUE argument, refactor.
44 (expand_set_or_movmem_prologue): New function combining
45 expand_movmem_prologue and expand_setmem_prologue.
46 (expand_movmem_prologue): Remove.
47 (expand_setmem_prologue): Remove.
48 (expand_set_or_movmem_constant_prologue): New function combining
49 expand_constant_movmem_prologue and expand_constant_setmem_prologue.
50 (expand_constant_movmem_prologue): Remove.
51 (expand_constant_setmem_prologue): Remove.
52 (promote_duplicated_reg): Allow vector-const0 value.
53 (ix86_expand_set_or_movmem): New function combining ix86_expand_movmem
54 and ix86_expand_setmem.
55 (ix86_expand_movmem): Call ix86_expand_set_or_movmem.
56 (ix86_expand_setmem): Call ix86_expand_set_or_movmem.
57
dd346f1f
BS
582013-10-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
59
60 * config/rs6000/altivec.md (vec_unpacku_hi_v16qi): Adjust for
61 little endian.
62 (vec_unpacku_hi_v8hi): Likewise.
63 (vec_unpacku_lo_v16qi): Likewise.
64 (vec_unpacku_lo_v8hi): Likewise.
65
915e8e6e
JH
662013-10-20 Jan Hubicka <jh@suse.cz>
67
68 * config/i386/x86-tune.def (X86_TUNE_SLOW_IMUL_IMM32_MEM,
69 X86_TUNE_SLOW_IMUL_IMM8): Keep enabled only for K8 and AMDFAM10.
70 (X86_TUNE_USE_VECTOR_FP_CONVERTS): Disable for generic.
71
0f37323c
RS
722013-10-20 Richard Sandiford <rdsandiford@googlemail.com>
73
74 * config/mips/mips.h (ISA_HAS_WSBH): Define.
75 * config/mips/mips.md (UNSPEC_WSBH, UNSPEC_DSBH, UNSPEC_DSHD): New
76 constants.
77 (bswaphi2, bswapsi2, bswapdi2, wsbh, dsbh, dshd): New patterns.
78
84935d25
JDA
792013-10-19 John David Anglin <danglin@gcc.gnu.org>
80
81 PR target/58603
82 * system.h: Undef m_slot.
83
d7d1451a
BS
842013-10-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
85
86 * config/rs6000/rs6000.c (vspltis_constant): Make sure we check
87 all elements for both endian flavors.
88
6eb793dd
UB
892013-10-19 Uros Bizjak <ubizjak@gmail.com>
90
91 PR target/58792
92 * config/i386/i386.c (ix86_function_value_regno): Add DX_REG,
93 ST1_REG and XMM1_REG for 32bit and 64bit targets. Also add DI_REG
94 and SI_REG for 64bit SYSV ABI targets.
95
c07757e5
UB
962013-10-19 Uros Bizjak <ubizjak@gmail.com>
97
98 * mode-switching.c (create_pre_exit): Rename maybe_builtin_apply
99 to multi_reg_return. Clarify that we are skipping USEs of multiple
100 return registers. Use bool type where appropriate.
101
41ee845b
JH
1022013-10-18 Jan Hubicka <jh@suse.cz>
103
104 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Disable accumulation
105 for cold functions.
106 * x86-tune.def (X86_TUNE_USE_LEAVE): Update comment.
107 (X86_TUNE_PUSH_MEMORY): Likewise.
108 (X86_TUNE_AVX256_UNALIGNED_LOAD_OPTIMAL,
109 X86_TUNE_AVX256_UNALIGNED_STORE_OPTIMAL): New.
c07757e5
UB
110 (X86_TUNE_ACCUMULATE_OUTGOING_ARGS, X86_TUNE_ALWAYS_FANCY_MATH_387):
111 New.
41ee845b
JH
112 * i386.c (x86_accumulate_outgoing_args, x86_arch_always_fancy_math_387,
113 x86_avx256_split_unaligned_load, x86_avx256_split_unaligned_store):
114 Remove.
115 (ix86_option_override_internal): Update to use tune features instead
116 of variables.
117
6f978a2a
CH
1182013-10-18 Cong Hou <congh@google.com>
119
120 PR tree-optimization/58508
121 * tree-vect-loop-manip.c (vect_loop_versioning): Hoist loop invariant
122 statement that contains data refs with zero-step.
123
4484a35a
AM
1242013-10-18 Andrew MacLeod <amacleod@redhat.com>
125
c07757e5
UB
126 * tree-ssa.h: Don't include gimple-low.h, tree-ssa-address.h,
127 sbitmap.h, tree-ssa-threadedge.h, tree-ssa-dom.h and tree-cfgcleanup.h.
4484a35a
AM
128 * gimple-low.c (gimple_check_call_arg,
129 gimple_check_call_matching_types): Move to cgraph.c.
130 * gimple-low.h: Remove prototype.
131 * cgraph.c: (gimple_check_call_arg, gimple_check_call_matching_types):
132 Relocate from gimple-low.c.
133 * cgraph.h: Add prototype. Don't include basic-block.h.
134 * gimplify.c: Add gimple-low to include list.
135 * omp-low.c: Add gimple-low and tree-cfgcleanup.h to include list.
136 * tree-eh.c: Add gimple-low to include list.
137 * tree-nested.c: Likewise.
138 * cfgexpand.c: Add tree-ssa-address.h to include list.
139 * expr.c: Likewise.
140 * gimple-fold.c: Likewise.
141 * gimple-ssa-strength-reduction.c: Likewise.
142 * trans-mem.c: Likewise.
143 * tree-mudflap.c: Likewise.
144 * tree-ssa-loop-ivopts.c: Likewise.
145 * tree-ssa-dom.c: Include tree-ssa-threadedge.h and tree-ssa-dom.h.
146 (degenerate_phi_result): Move to tree-phinodes.c.
147 * tree-ssa-loop-ch.c: Include tree-ssa-threadedge.h.
148 * tree-ssa-threadedge.c: Likewise.
149 * tree-vrp.c: Likewise.
150 * tree-phinodes.c (degenerate_phi_result): Relocate here.
151 * tree-ssa-dom.h (degenerate_phi_result): Remove Prototype.
152 * tree-phinodes.h (degenerate_phi_result): Add prototype.
153 * tree-ssa-copy.c: Include tree-ssa-dom.h.
154 * tree-ssa-forwprop.c: Likewise.
155 * tree-cfgcleanup.c (execute_cleanup_cfg_post_optimizing,
156 pass_data_cleanup_cfg_post_optimizing,
157 make_pass_cleanup_cfg_post_optimizing): Relocate from tree-optimize.c.
158 * tree-optimize.c: Delete File.
159 * graphite.c: Include tree-cfgcleanup.h.
160 * passes.c: Likewise.
161 * tree-cfg.c: Likewise.
162 * tree-profile.c: Likewise.
163 * tree-ssa-dse.c: Likewise.
164 * tree-ssa-loop-ivcanon.c: Likewise.
165 * tree-switch-conversion.c: Don't include tree-ssa-operands.h.
166 * tree-outof-ssa.c: Include sbitmap.h.
167 * tree-ssa-live.c: Likewise.
168 * tree-ssa-propagate.c: Likewise.
169 * tree-ssa-structalias.c: Likewise.
170 * tree-stdarg.c: Likewise.
171 * Makefile.in (OBJS): Delete tree-optimize.o.
172 * basic-block.h (gcov_type, gcov_type_unsigned): Move to coretypes.h.
173 * coretypes.h (gcov_type, gcov_type_unsigned): Relocate here.
174 * varasm.c: Include basic-block.h.
175 * cfgloop.h: Include function.h instead of basic-block.h
176 (bb_loop_depth): Move to cfgloop.c.
177 * cfgloop.c (bb_loop_depth): Relocate from cfgloop.h.
178
bfaa17c1
TJ
1792013-10-18 Teresa Johnson <tejohnson@google.com>
180
181 * predict.c (probably_never_executed): Compare frequency-based
182 count to number of training runs.
183 * params.def (UNLIKELY_BB_COUNT_FRACTION): New parameter.
184
f58883bd
KT
1852013-10-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
186
187 * config/arm/arm.c (cortexa9_extra_costs): New table.
188 (arm_cortex_a9_tune): Use cortexa9_extra_costs.
189
01e127b1
JL
1902013-10-18 Jeff Law <law@redhat.com>
191
192 * tree-ssa-threadupdate.c: Do not include "tm.h" or "tm_p.h".
193
194 * tree-ssa-threadupdate.c: Include "dbgcnt.h".
c07757e5
UB
195 (register_jump_thread): Add "registered_jump_thread" debug
196 counter support.
01e127b1
JL
197 * dbgcnt.def (registered_jump_thread): New debug counter.
198
f41b8848
AM
1992013-10-18 Andrew MacLeod <amacleod@redhat.com>
200
201 * config/rs6000/rs6000.c: Include cgraph.h.
202
adc7a812
TJ
2032013-10-18 Teresa Johnson <tejohnson@google.com>
204
205 * tree-ssa-tail-merge.c (replace_block_by): Update edge
206 weights during merging.
207
377d9792
AM
2082013-10-18 Andrew MacLeod <amacleod@redhat.com>
209
210 * tree-cfg.h: Rename from tree-flow.h. Remove #includes.
211 * tree-ssa.h: Relocate required #includes from tree-cfg.h.
212 * tree-ssa-operands.h: Remove prototype.
213 * tree-ssa-operands.c (virtual_operand_p): Move to gimple.c.
214 * gimple.c (virtual_operand_p): Relocate from gimple.c.
215 * gimple.h: Add prototype.
216 * gimple-ssa.h: Include tree-ssa-operands.h.
217 * tree-dump.c: Add tree-cfg.h to include list.
218 * tree-ssa-alias.c: Add ipa-reference.h to include list.
219 * config/alpha/alpha.c: Include gimple-ssa.h instead of tree-flow.h.
220 * config/i386/i386.c: Don't include tree-flow.h.
221 * config/rs6000/rs6000.c: Likewise.
222
8ad8afaf
JBG
2232013-10-18 Jan-Benedict Glaw <jbglaw@lug-owl.de>
224
225 * config/frv/frv.c (frv_init_cumulative_args): Fix wrong cast.
226
c0e081a9
RB
2272013-10-18 Richard Biener <rguenther@suse.de>
228
229 * stor-layout.c (layout_type): Do not change TYPE_PRECISION
230 or TYPE_UNSIGNED of integral types.
231 (set_min_and_max_values_for_integral_type): Leave TYPE_MIN/MAX_VALUE
232 NULL_TREE for zero-precision integral types.
233
054fceb5
JG
2342013-10-18 James Greenhalgh <james.greenhalgh@arm.com>
235
236 * config/aarch64/arm_neon.h
237 (vcvt<ds>_n_<fsu><32,64>_<fsu><32,64>): Correct argument types.
238
70e8b89b
ST
2392013-10-17 Sriraman Tallam <tmsriram@google.com>
240
241 * opth-gen.awk: Define target_flags_explicit.
242
3170766c 2432013-10-17 Michael Meissner <meissner@linux.vnet.ibm.com>
5845f602
MM
244
245 * config/rs6000/rs6000.c (enum rs6000_reload_reg_type): Add new
246 fields to the reg_addr array that describes the valid addressing
247 mode for any register, general purpose registers, floating point
248 registers, and Altivec registers.
249 (FIRST_RELOAD_REG_CLASS): Likewise.
250 (LAST_RELOAD_REG_CLASS): Likewise.
251 (struct reload_reg_map_type): Likewise.
252 (reload_reg_map_type): Likewise.
253 (RELOAD_REG_VALID): Likewise.
254 (RELOAD_REG_MULTIPLE): Likewise.
255 (RELOAD_REG_INDEXED): Likewise.
256 (RELOAD_REG_OFFSET): Likewise.
257 (RELOAD_REG_PRE_INCDEC): Likewise.
258 (RELOAD_REG_PRE_MODIFY): Likewise.
259 (reg_addr): Likewise.
260 (mode_supports_pre_incdec_p): New helper functions to say whether
261 a given mode supports PRE_INC, PRE_DEC, and PRE_MODIFY.
262 (mode_supports_pre_modify_p): Likewise.
263 (rs6000_debug_vector_unit): Rearrange the -mdebug=reg output to
264 print the valid address mode bits for each mode.
265 (rs6000_debug_print_mode): Likewise.
266 (rs6000_debug_reg_global): Likewise.
267 (rs6000_setup_reg_addr_masks): New function to set up the address
268 mask bits for each type.
269 (rs6000_init_hard_regno_mode_ok): Use memset to clear arrays.
270 Call rs6000_setup_reg_addr_masks to set up the address mask bits.
271 (rs6000_legitimate_address_p): Use mode_supports_pre_incdec_p and
272 mode_supports_pre_modify_p to determine if PRE_INC, PRE_DEC, and
273 PRE_MODIFY are supported.
3170766c
MM
274 (rs6000_output_move_128bit): Change to use {src,dest}_vmx_p for altivec
275 registers, instead of {src,dest}_av_p.
5845f602
MM
276 (rs6000_print_options_internal): Tweak the debug output slightly.
277
82e33890
UB
2782013-10-17 Uros Bizjak <ubizjak@gmail.com>
279
280 * config/i386/sse.md (*vec_widen_smult_even_v8si): Remove
281 isa attribute.
282
0645c1a2
AM
2832013-10-17 Andrew MacLeod <amacleod@redhat.com>
284
285 * tree-flow.h (struct omp_region): Move to omp-low.c.
286 Remove omp_ prototypes and variables.
287 * gimple.h (omp_reduction_init): Move prototype to omp-low.h.
288 (copy_var_decl): Relocate prototype from tree-flow.h.
289 * gimple.c (copy_var_decl): Relocate from omp-low.c.
290 * tree.h: Move prototype to omp-low.h.
291 * omp-low.h: New File. Relocate prototypes here.
292 * omp-low.c (struct omp_region): Make local here.
293 (root_omp_region): Make static.
294 (copy_var_decl) Move to gimple.c.
295 (new_omp_region): Make static.
296 (make_gimple_omp_edges): New. Refactored from tree-cfg.c make_edges.
297 * tree-cfg.c: Include omp-low.h.
298 (make_edges): Factor out OMP specific bits to make_gimple_omp_edges.
299 * gimplify.c: Include omp-low.h.
300 * tree-parloops.c: Likewise.
301
6f1abb55
UB
3022013-10-17 Uros Bizjak <ubizjak@gmail.com>
303
304 * config/i386/i386.c (ix86_fixup_binary_operands): When both source
305 operands are in memory, prefer to force non-matched operand 1 to
306 the register.
307
1ddbbbc0
MM
3082013-10-17 Michael Meissner <meissner@linux.vnet.ibm.com>
309
310 PR target/58673
311 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Only
312 restrict TImode addresses to single indirect registers if both
313 -mquad-memory and -mvsx-timode are used.
314 (rs6000_output_move_128bit): Use quad_load_store_p to determine if
315 we should emit load/store quad. Remove using %y for quad memory
316 addresses.
317
318 * config/rs6000/rs6000.md (mov<mode>_ppc64, TI/PTImode): Add
319 constraints to allow load/store quad on machines where TImode is
320 not allowed in VSX registers. Use 'n' instead of 'F' constraint
321 for TImode to load integer constants.
322
f541a481
KT
3232013-10-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
324
325 * config/aarch64/aarch64.c (aarch64_print_operand): Handle 'c'.
326
51bb310d
MS
3272013-10-17 Marcus Shawcroft <marcus.shawcroft@arm.com>
328
329 * config/aarch64/aarch64.c (aarch64_preferred_reload_class): Adjust
330 handling of STACK_REG.
331
f4bed77b
RB
3322013-10-17 Richard Biener <rguenther@suse.de>
333
334 PR tree-optimization/58143
335 * tree-ssa-loop-im.c (arith_code_with_undefined_signed_overflow):
336 New function.
337 (rewrite_to_defined_overflow): Likewise.
338 (move_computations_dom_walker::before_dom): Rewrite stmts
339 with undefined signed overflow that are not always executed
340 into unsigned arithmetic.
341
d358fb9d
MM
3422013-10-16 Michael Meissner <meissner@linux.vnet.ibm.com>
343
344 PR target/57756
345 * config/rs6000/rs6000.opt (rs6000_isa_flags_explicit): Move the
346 explicit isa flag to be an options variable, instead of using
347 global_options_set. Remove define from rs6000.h.
348 * config/rs6000/rs6000.h (rs6000_isa_flags_explicit): Likewise.
349
350 * config/rs6000/rs6000.c (rs6000_option_override_internal):
351 Initialize rs6000_isa_flags_explicit.
352 (rs6000_function_specific_save): Add gcc_options* parameter, so
353 that the powerpc builds after the 2013-10-15 changes.
354 (rs6000_function_specific_restore): Likewise.
355
c71aed47
DD
3562013-10-16 DJ Delorie <dj@redhat.com>
357
358 * config/rl78/rl78.c (rl78_alloc_address_registers_macax): Verify
359 op is a REG before checking REGNO.
360 (rl78_alloc_physical_registers): Verify pattern is a SET before
361 checking SET_SRC.
362
90d3bd51
BS
3632013-10-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
364
365 * gcc/config/rs6000/vector.md (vec_unpacks_hi_v4sf): Correct for
366 endianness.
367 (vec_unpacks_lo_v4sf): Likewise.
368 (vec_unpacks_float_hi_v4si): Likewise.
369 (vec_unpacks_float_lo_v4si): Likewise.
370 (vec_unpacku_float_hi_v4si): Likewise.
371 (vec_unpacku_float_lo_v4si): Likewise.
372
de75c876
BS
3732013-10-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
374
375 * config/rs6000/vsx.md (vsx_concat_<mode>): Adjust output for LE.
376 (vsx_concat_v2sf): Likewise.
377
21216998
JG
3782013-10-16 James Greenhalgh <james.greenhalgh@arm.com>
379
380 * config/aarch64/aarch64.md
381 (*mov<mode>_aarch64): Fix output template for DUP (element) Scalar.
382
1ef88893 3832013-10-16 Andrew MacLeod <amacleod@redhat.com>
7ab4168e 384
1ef88893 385 PR tree-optimization/58697
7ab4168e 386 * cfgloop.c (get_estimated_loop_iterations_int): Rename from
1ef88893
AM
387 estimated_loop_iterations_int.
388 (max_stmt_executions_int): Call get_max_loop_iterations_int.
7ab4168e 389 (get_max_loop_iterations_int): New. HWINT version of
1ef88893
AM
390 get_max_loop_iterations.
391 * cfgloop.h: Add prototypes.
392 * loop-iv.c (find_simple_exit): call get_estimated_loop_iterations_int.
7ab4168e 393 * loop-unroll.c (decide_peel_once_rolling): Call
1ef88893
AM
394 get_estimated_loop_iterations_int.
395 * tree-ssa-loop-niter.c (estimated_loop_iterations_int): Add back.
396 * tree-ssa-loop-niter.h: Tweak prototypes.
397
c22df64f
DM
3982013-10-16 David Malcolm <dmalcolm@redhat.com>
399
400 * gengtype-parse.c (struct_field_seq): Ignore access-control
401 keywords ("public:" etc).
402
f24bb080
MS
4032013-10-16 Marcus Shawcroft <marcus.shawcroft@arm.com>
404
405 * config/aarch64/aarch64.c (aarch64_regno_regclass): Classify
406 FRAME_POINTER_REGNUM and ARG_POINTER_REGNUM as POINTER_REGS.
407
c281bf26
YR
4082013-10-16 Yvan Roux <yvan.roux@linaro.org>
409
410 * config/arm/arm.opt (mlra): New option.
411 * config/arm/arm.c (arm_lra_p): New function.
412 (TARGET_LRA_P): Define.
413
5806f481
PM
4142013-10-16 Paulo Matos <pmatos@broadcom.com>
415
416 * tree-core.h (tree_code_name): Remove.
417 * tree.h (get_tree_code_name): New prototype.
418 * tree.c (tree_code_name): Make static.
419 (get_tree_code_name): New function.
420 (dump_tree_statistics, tree_check_failed, tree_not_check_failed,
421 tree_class_check_failed, tree_range_check_failed,
422 tree_not_class_check_failed, omp_clause_check_failed,
423 tree_contains_struct_check_failed, tree_operand_check_failed): Use new
424 wrapper get_tree_code_name instead of calling tree_code_name directly.
425 * tree-vrp.c (dump_asserts_for): Likewise.
426 * tree-dump.c (dequeue_and_dump): Likewise.
427 * tree-pretty-print.c (do_niy, dump_generic_node): Likewise.
428 * tree-pretty-print.h (pp_unsupported_tree): Likewise.
429 * lto-streamer-out.c (lto_write_tree, DFS_write_tree): Likewise.
430 * tree-ssa-dom.c (print_expr_hash_elt): Likewise.
431 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
432 dump_ternary_rhs, dump_gimple_assign, dump_gimple_cond,
433 dump_gimple_omp_for): Likewise.
434 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Likewise.
435 * tree-ssa-pre.c (print_pre_expr): Likewise.
436 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Likewise.
437 * print-tree.c (print_node_brief, print_node): Likewise.
438 * gimple.c (gimple_check_failed): Likewise.
439 * lto-streamer.c (lto_tag_name, print_lto_report): Likewise.
440 * config/frv/frv.c (frv_init_cumulative_args): Likewise.
441 * config/mep/mep.c (mep_validate_vliw): Likewise.
442 * config/iq2000/iq2000.c (init_cumulative_args): Likewise.
443 * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
444
82c9df56
GG
4452013-10-16 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
446
447 * config/i386/i386.c (ix86_option_override_internal): Enable FMA4
448 for AMD bdver3.
449
b82d0df9
HPN
4502013-10-16 Hans-Peter Nilsson <hp@axis.com>
451
452 * config/cris/t-elfmulti (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
453 (MULTILIB_MATCHES): Add multilib for -march=v8.
454
bf7b5747
ST
4552013-10-15 Sriraman Tallam <tmsriram@google.com>
456
457 PR target/57756
458 * optc-save-gen.awk: Add extra parameter to the save and restore
459 target calls.
460 * opth-gen.awk: Generate new TARGET_* macros to accept a parameter.
461 * tree.c (build_optimization_node): New parameter. Add extra parameter
462 to call to cl_optimization_save.
463 (build_target_option_node): New parameter. Add extra parameter
464 to call to cl_target_option_save.
465 * tree.h (build_optimization_node): New parameter.
466 (build_target_option_node): New parameter.
467 * c-family/c-common.c (handle_optimize_attribute): Fix calls to
468 build_optimization_node and build_target_option_node.
469 * c-family/c-pragma.c (handle_pragma_optimize): Ditto.
470 (handle_pragma_push_options): Ditto.
471 * toplev.c (process_options): Ditto.
472 * opts.c (init_options_struct): Check for opts_set non-null.
473 * target.def (target_option.save): New parameter.
474 (target_option.restore): New parameter.
475 * tm.texi: Generate.
476 * config/i386/i386-c.c (ix86_target_macros_internal): Ditto.
477 (ix86_pragma_target_parse): Ditto.
478 * config/i386/i386-protos.h (ix86_valid_target_attribute_tree): New
479 parameters.
480 * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix calls
481 to build_optimization_node and build_target_option_node.
482 (rs6000_valid_attribute_p): Ditto.
483 (rs6000_pragma_target_parse): Ditto.
484 * config/i386/i386.opt (x_ix86_target_flags_explicit): New TargetSave
485 data.
486 * config/i386/i386.h:
487 TARGET_64BIT_P: New Macro
488 TARGET_MMX_P: New Macro.
489 TARGET_3DNOW_P: New Macro.
490 TARGET_3DNOW_A_P: New Macro.
491 TARGET_SSE_P: New Macro.
492 TARGET_SSE2_P: New Macro.
493 TARGET_SSE3_P: New Macro.
494 TARGET_SSSE3_P: New Macro.
495 TARGET_SSE4_1_P: New Macro.
496 TARGET_SSE4_2_P: New Macro.
497 TARGET_AVX_P: New Macro.
498 TARGET_AVX2_P: New Macro.
499 TARGET_AVX512F_P: New Macro.
500 TARGET_AVX512PF_P: New Macro.
501 TARGET_AVX512ER_P: New Macro.
502 TARGET_AVX512CD_P: New Macro.
503 TARGET_FMA_P: New Macro.
504 TARGET_SSE4A_P: New Macro.
505 TARGET_FMA4_P: New Macro.
506 TARGET_XOP_P: New Macro.
507 TARGET_LWP_P: New Macro.
508 TARGET_ABM_P: New Macro.
509 TARGET_BMI_P: New Macro.
510 TARGET_BMI2_P: New Macro.
511 TARGET_LZCNT_P: New Macro.
512 TARGET_TBM_P: New Macro.
513 TARGET_POPCNT_P: New Macro.
514 TARGET_SAHF_P: New Macro.
515 TARGET_MOVBE_P: New Macro.
516 TARGET_CRC32_P: New Macro.
517 TARGET_AES_P: New Macro.
518 TARGET_PCLMUL_P: New Macro.
519 TARGET_CMPXCHG16B_P: New Macro.
520 TARGET_FSGSBASE_P: New Macro.
521 TARGET_RDRND_P: New Macro.
522 TARGET_F16C_P: New Macro.
523 TARGET_RTM_P: New Macro.
524 TARGET_HLE_P: New Macro.
525 TARGET_RDSEED_P: New Macro.
526 TARGET_PRFCHW_P: New Macro.
527 TARGET_ADX_P: New Macro.
528 TARGET_FXSR_P: New Macro.
529 TARGET_XSAVE_P: New Macro.
530 TARGET_XSAVEOPT_P: New Macro.
531 TARGET_LP64_P: New Macro.
532 TARGET_X32_P: New Macro.
533 TARGET_FPMATH_DEFAULT_P: New Macro.
534 TARGET_FLOAT_RETURNS_IN_80387_P: New Macro.
535 * config/i386/i386.c (ix86_option_override_internal): New parameters.
536 opts and opts_set.
537 Change ix86_tune_string to access opts->x_ix86_tune_string.
538 Change ix86_isa_flags to access opts->x_ix86_isa_flags.
539 Change ix86_arch_string to access opts->x_ix86_arch_string.
540 Change ix86_stringop_alg to access opts->x_ix86_stringop_alg.
541 Change ix86_pmode to access opts->x_ix86_pmode.
542 Change ix86_abi to access opts->x_ix86_abi.
543 Change ix86_cmodel to access opts->x_ix86_cmodel.
544 Change ix86_asm_dialect to access opts->x_ix86_asm_dialect.
545 Change ix86_isa_flags_explicit to access
546 opts->x_ix86_isa_flags_explicit.
547 Change ix86_dump_tunes to access opts->x_ix86_dump_tunes.
548 Change ix86_regparm to access opts->x_ix86_regparm.
549 Change ix86_branch_cost to access opts->x_ix86_branch_cost.
550 Change ix86_preferred_stack_boundary_arg to access
551 opts->x_ix86_preferred_stack_boundary_arg.
552 Change ix86_force_align_arg_pointer to access
553 opts->x_ix86_force_align_arg_pointer.
554 Change ix86_incoming_stack_boundar_arg to access
555 opts->x_ix86_incoming_stack_boundar_arg.
556 Change ix86_fpmath to access opts->x_ix86_fpmath.
557 Change ix86_veclibabi_type to access opts->x_ix86_veclibabi_type.
558 Change ix86_recip_name to access opts->x_ix86_recip_name.
559 Change ix86_stack_protector_guard to access
560 opts->x_ix86_stack_protector_guard.
561 Change ix86_tune_memcpy_strategy to access
562 opts->x_ix86_tune_memcpy_strategy.
563 Change ix86_tune_memset_strategy to access
564 opts->x_ix86_tune_memset_strategy.
565 Change global_options to access opts.
566 Change global_options_set to access opts_set.
6f1abb55
UB
567 Change TARGET_64BIT to TARGET_64BIT_P (opts->...).
568 Change TARGET_MMX to TARGET_MMX_P (opts->...).
569 Change TARGET_3DNOW to TARGET_3DNOW_P (opts->...).
570 Change TARGET_3DNOW_A to TARGET_3DNOW_A_P (opts->...).
571 Change TARGET_SSE to TARGET_SSE_P (opts->...).
572 Change TARGET_SSE2 to TARGET_SSE2_P (opts->...).
573 Change TARGET_SSE3 to TARGET_SSE3_P (opts->...).
574 Change TARGET_SSSE3 to TARGET_SSSE3_P (opts->...).
575 Change TARGET_SSE4_1 to TARGET_SSE4_1_P (opts->...).
576 Change TARGET_SSE4_2 to TARGET_SSE4_2_P (opts->...).
577 Change TARGET_AVX to TARGET_AVX_P (opts->...).
578 Change TARGET_AVX2 to TARGET_AVX2_P (opts->...).
579 Change TARGET_AVX512F to TARGET_AVX512F_P (opts->...).
580 Change TARGET_AVX512PF to TARGET_AVX512PF_P (opts->...).
581 Change TARGET_AVX512ER to TARGET_AVX512ER_P (opts->...).
582 Change TARGET_AVX512CD to TARGET_AVX512CD_P (opts->...).
583 Change TARGET_FMA to TARGET_FMA_P (opts->...).
584 Change TARGET_SSE4A to TARGET_SSE4A_P (opts->...).
585 Change TARGET_FMA4 to TARGET_FMA4_P (opts->...).
586 Change TARGET_XOP to TARGET_XOP_P (opts->...).
587 Change TARGET_LWP to TARGET_LWP_P (opts->...).
588 Change TARGET_ABM to TARGET_ABM_P (opts->...).
589 Change TARGET_BMI to TARGET_BMI_P (opts->...).
590 Change TARGET_BMI2 to TARGET_BMI2_P (opts->...).
591 Change TARGET_LZCNT to TARGET_LZCNT_P (opts->...).
592 Change TARGET_TBM to TARGET_TBM_P (opts->...).
593 Change TARGET_POPCNT to TARGET_POPCNT_P (opts->...).
594 Change TARGET_SAHF to TARGET_SAHF_P (opts->...).
595 Change TARGET_MOVBE to TARGET_MOVBE_P (opts->...).
596 Change TARGET_CRC32 to TARGET_CRC32_P (opts->...).
597 Change TARGET_AES to TARGET_AES_P (opts->...).
598 Change TARGET_PCLMUL to TARGET_PCLMUL_P (opts->...).
599 Change TARGET_CMPXCHG16B to TARGET_CMPXCHG16B_P (opts->...).
600 Change TARGET_FSGSBASE to TARGET_FSGSBASE_P (opts->...).
601 Change TARGET_RDRND to TARGET_RDRND_P (opts->...).
602 Change TARGET_F16C to TARGET_F16C_P (opts->...).
603 Change TARGET_RTM to TARGET_RTM_P (opts->...).
604 Change TARGET_HLE to TARGET_HLE_P (opts->...).
605 Change TARGET_RDSEED to TARGET_RDSEED_P (opts->...).
606 Change TARGET_PRFCHW to TARGET_PRFCHW_P (opts->...).
607 Change TARGET_ADX to TARGET_ADX_P (opts->...).
608 Change TARGET_FXSR to TARGET_FXSR_P (opts->...).
609 Change TARGET_XSAVE to TARGET_XSAVE_P (opts->...).
610 Change TARGET_XSAVEOPT to TARGET_XSAVEOPT_P (opts->...).
611 Change TARGET_LP64 to TARGET_LP64_P (opts->...).
612 Change TARGET_X32 to TARGET_X32_P (opts->...).
613 Change TARGET_FPMATH_DEFAULT to TARGET_FPMATH_DEFAULT_P (opts->...).
614 Change TARGET_FLOAT_RETURNS_IN_80387 to
615 TARGET_FLOAT_RETURNS_IN_80387_P (opts->...).
bf7b5747
ST
616 (ix86_function_specific_save): New parameter. Use opts-> fields
617 to replace global fields.
618 (ix86_function_specific_restore): Ditto.
619 (ix86_valid_target_attribute_inner_p): New parameters.
620 Fix recursive call.
621 Fix call to ix86_handle_option and set_option.
622 (ix86_valid_target_attribute_tree): New parameters.
623 Change global_options to access opts.
624 Change global_options_set to access opts_set.
625 Fix call to ix86_valid_target_attribute_inner_p.
626 Change ix86_tune_string to access opts->x_ix86_tune_string.
627 Change ix86_arch_string to access opts->x_ix86_arch_string.
628 Change ix86_fpmath to access opts->x_ix86_fpmath
629 Fix call to ix86_option_override_internal.
630 Fix call to ix86_add_new_builtins.
631 Fix calls to build_optimization_node and build_target_option_node.
632 (ix86_valid_target_attribute_p): Remove access to global_options.
633 Use new gcc_options structure func_options.
634 Fix call to ix86_valid_target_attribute_tree.
635 Fix call to build_optimization_node.
636 (get_builtin_code_for_version): Fix call to
637 ix86_valid_target_attribute_tree.
638
459260ec
DM
6392013-10-15 David Malcolm <dmalcolm@redhat.com>
640
641 * Makefile.in (PICFLAG): New.
642 (enable_host_shared): New.
643 (INTERNAL_CFLAGS): Use PICFLAG.
644 (LIBIBERTY): Use pic build of libiberty.a if configured with
645 --enable-host-shared.
646 * configure.ac: Add --enable-host-shared, setting up new
647 PICFLAG variable.
648 * configure: Regenerate.
6f1abb55 649 * doc/install.texi (--enable-shared): Add note contrasting it with ...
459260ec
DM
650 (--enable-host-shared): New option.
651
16022041
RS
6522013-10-15 Richard Biener <rguenther@suse.de>
653
654 * tree-tailcall.c (find_tail_calls): Don't use tail-call recursion
655 for built-in functions.
656
b114bfb4
ZC
6572013-10-15 Zhenqiang Chen <zhenqiang.chen@arm.com>
658
659 * tree-ssa-reassoc.c: Include rtl.h and tm_p.h.
660 (optimize_range_tests_1): New function,
661 extracted from optimize_range_tests.
662 (optimize_range_tests_xor): Similarly.
663 (optimize_range_tests_diff): New function.
664 (optimize_range_tests): Use optimize_range_tests_1.
665
69b8f2f9
CH
6662013-10-15 Cong Hou <congh@google.com>
667
7ab4168e
MS
668 * tree-vect-loop.c (vect_is_simple_reduction_1): Relax the
669 requirement of the reduction pattern so that one operand of the
69b8f2f9
CH
670 reduction operation can come from outside of the loop.
671
8ff5a4e4
JG
6722013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
673
674 * config/arm/neon-schedgen.ml: Remove.
675 * config/arm/cortex-a9-neon.md: Remove comment regarding
676 neon-schedgen.ml.
677
52b69ad2
JG
6782013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
679
680 * config/arm/types: Remove old neon types.
681
e7c6a556
JG
6822013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
683
684 * config/arm/cortex-a7.md
685 (cortex_a7_neon_type): New.
686 (cortex_a7_neon_mul): Update for new types.
687 (cortex_a7_neon_mla): Likewise.
688 (cortex_a7_neon): Likewise.
689
795dd8d5
JG
6902013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
691
692 * config/arm/cortex-a15-neon.md
693 (cortex_a15_neon_type): New,
694
695 (cortex_a15_neon_int_1): Remove.
696 (cortex_a15_neon_int_2): Likewise.
697 (cortex_a15_neon_int_3): Likewise.
698 (cortex_a15_neon_int_4): Likewise.
699 (cortex_a15_neon_int_5): Likewise.
700 (cortex_a15_neon_vqneg_vqabs): Likewise.
701 (cortex_a15_neon_vmov): Likewise.
702 (cortex_a15_neon_vaba): Likewise.
703 (cortex_a15_neon_vaba_qqq): Likewise.
704 (cortex_a15_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
705 (cortex_a15_neon_mul_qqq_8_16_32_ddd_32): Likewise.
706 (cortex_a15_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_long_scalar):
707 Likewise.
708 (cortex_a15_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
709 (cortex_a15_neon_mla_qqq_8_16): Likewise.
710 (cortex_a15_neon_mla_ddd_32_qqd_16_ddd_32_scalar): Likewise.
711 (cortex_a15_neon_mla_qqq_32_qqd_32_scalar): Likewise.
712 (cortex_a15_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
713 (cortex_a15_neon_mul_qqd_32_scalar): Likewise.
714 (cortex_a15_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
715 (cortex_a15_neon_shift_1): Likewise.
716 (cortex_a15_neon_shift_2): Likewise.
717 (cortex_a15_neon_shift_3): Likewise.
718 (cortex_a15_neon_vshl_ddd): Likewise.
719 (cortex_a15_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
720 (cortex_a15_neon_vsra_vrsra): Likewise.
721 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
722 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
723 (cortex_a15_neon_bp_3cycle): Likewise.
724 (cortex_a15_neon_ldm_2): Likewise.
725 (cortex_a15_neon_stm_2): Likewise.
726 (cortex_a15_neon_mcr): Likewise.
727 (cortex_a15_neon_mrc): Likewise.
728 (cortex_a15_neon_fp_vadd_ddd_vabs_dd): Likewise.
729 (cortex_a15_neon_fp_vadd_qqq_vabs_qq): Likewise.
730 (cortex_a15_neon_fp_vmul_ddd): Likewise.
731 (cortex_a15_neon_fp_vmul_qqd): Likewise.
732 (cortex_a15_neon_fp_vmla_ddd): Likewise.
733 (cortex_a15_neon_fp_vmla_qqq): Likewise.
734 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
735 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
736 (cortex_a15_neon_fp_vrecps_vrsqrts_ddd): Likewise.
737 (cortex_a15_neon_fp_vrecps_vrsqrts_qqq): Likewise.
738 (cortex_a15_neon_bp_simple): Likewise.
739 (cortex_a15_neon_bp_2cycle): Likewise.
740 (cortex_a15_neon_bp_3cycle): Likewise.
741 (cortex_a15_neon_vld1_1_2_regs): Likewise.
742 (cortex_a15_neon_vld1_3_4_regs): Likewise.
743 (cortex_a15_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
744 (cortex_a15_neon_vld2_4_regs): Likewise.
745 (cortex_a15_neon_vld3_vld4): Likewise.
746 (cortex_a15_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
747 (cortex_a15_neon_vst1_3_4_regs): Likewise.
748 (cortex_a15_neon_vst2_4_regs_vst3_vst4): Rename to...
749 (cortex_a15_neon_vst2_4_regs_vst3): ...This, update for new attributes.
750 (cortex_a15_neon_vst3_vst4): Rename to...
751 (cortex_a15_neon_vst4): This, update for new attributes.
752 (cortex_a15_neon_vld1_vld2_lane): Update for new attributes.
753 (cortex_a15_neon_vld3_vld4_lane): Likewise.
754 (cortex_a15_neon_vst1_vst2_lane): Likewise.
755 (cortex_a15_neon_vst3_vst4_lane): Likewise.
756 (cortex_a15_neon_vld3_vld4_all_lanes): Likewise.
757 (cortex_a15_neon_ldm_2): Likewise.
758 (cortex_a15_neon_stm_2): Likewise.
759 (cortex_a15_neon_mcr): Likewise.
760 (cortex_a15_neon_mcr_2_mcrr): Likewise.
761 (cortex_a15_neon_mrc): Likewise.
762 (cortex_a15_neon_mrrc): Likewise.
763
764 (cortex_a15_neon_abd): New.
765 (cortex_a15_neon_abd_q): Likewise.
766 (cortex_a15_neon_aba): Likewise.
767 (cortex_a15_neon_aba_q): Likewise.
768 (cortex_a15_neon_acc): Likewise.
769 (cortex_a15_neon_acc_q): Likewise.
770 (cortex_a15_neon_arith_basic): Likewise.
771 (cortex_a15_neon_arith_complex): Likewise.
772 (cortex_a15_neon_multiply): Likewise.
773 (cortex_a15_neon_multiply_q): Likewise.
774 (cortex_a15_neon_mla): Likewise.
775 (cortex_a15_neon_mla_q): Likewise.
776 (cortex_a15_neon_sat_mla_long): Likewise.
777 (cortex_a15_neon_shift_acc): Likewise.
778 (cortex_a15_neon_shift_imm_basic): Likewise.
779 (cortex_a15_neon_shift_imm_complex): Likewise.
780 (cortex_a15_neon_shift_reg_basic): Likewise.
781 (cortex_a15_neon_shift_reg_basic_q): Likewise.
782 (cortex_a15_neon_shift_reg_complex): Likewise.
783 (cortex_a15_neon_shift_reg_complex_q): Likewise.
784 (cortex_a15_neon_fp_negabs): Likewise
785 (cortex_a15_neon_fp_arith): Likewise
786 (cortex_a15_neon_fp_arith_q): Likewise
787 (cortex_a15_neon_fp_cvt_int): Likewise
788 (cortex_a15_neon_fp_cvt_int_q): Likewise
789 (cortex_a15_neon_fp_cvt_16): Likewise
790 (cortex_a15_neon_fp_mul): Likewise
791 (cortex_a15_neon_fp_mul_q): Likewise
792 (cortex_a15_neon_fp_mla): Likewise
793 (cortex_a15_neon_fp_mla_q): Likewise
794 (cortex_a15_neon_fp_recps_rsqrte): Likewise.
795 (cortex_a15_neon_fp_recps_rsqrte_q): Likewise.
796 (cortex_a15_neon_bitops): Likewise.
797 (cortex_a15_neon_bitops_q): Likewise.
798 (cortex_a15_neon_from_gp): Likewise.
799 (cortex_a15_neon_from_gp_q): Likewise.
800 (cortex_a15_neon_tbl3_tbl4): Likewise.
801 (cortex_a15_neon_zip_q): Likewise.
802 (cortex_a15_neon_to_gp): Likewise.
803 (cortex_a15_neon_load_a): Likewise.
804 (cortex_a15_neon_load_b): Likewise.
805 (cortex_a15_neon_load_c): Likewise.
806 (cortex_a15_neon_load_d): Likewise.
807 (cortex_a15_neon_load_e): Likewise.
808 (cortex_a15_neon_load_f): Likewise.
809 (cortex_a15_neon_store_a): Likewise.
810 (cortex_a15_neon_store_b): Likewise.
811 (cortex_a15_neon_store_c): Likewise.
812 (cortex_a15_neon_store_d): Likewise.
813 (cortex_a15_neon_store_e): Likewise.
814 (cortex_a15_neon_store_f): Likewise.
815 (cortex_a15_neon_store_g): Likewise.
816 (cortex_a15_neon_store_h): Likewise.
817 (cortex_a15_vfp_to_from_gp): Likewise.
818
bc5e57e3
JG
8192013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
820
821 * config/arm/cortex-a9-neon.md (cortex_a9_neon_type): New.
822
823 (cortex_a9_neon_vshl_ddd): Remove.
824 (cortex_a9_neon_vst3_vst4): Likewise.
825 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
826
827 (cortex_a9_neon_bit_ops_q): New.
828
829 (cortex_a9_neon_int_1): Use cortex_a8_neon_type.
830 (cortex_a9_neon_int_2): Likewise.
831 (cortex_a9_neon_int_3): Likewise.
832 (cortex_a9_neon_int_4): Likewise.
833 (cortex_a9_neon_int_5): Likewise.
834 (cortex_a9_neon_vqneg_vqabs): Likewise.
835 (cortex_a9_neon_vmov): Likewise.
836 (cortex_a9_neon_vaba): Likewise.
837 (cortex_a9_neon_vaba_qqq): Likewise.
838 (cortex_a9_neon_shift_1): Likewise.
839 (cortex_a9_neon_shift_2): Likewise.
840 (cortex_a9_neon_shift_3): Likewise.
841 (cortex_a9_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
842 (cortex_a9_neon_vsra_vrsra): Likewise.
843 (cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
844 (cortex_a9_neon_mul_qqq_8_16_32_ddd_32): Likewise.
845 (cortex_a9_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_long_scalar):
846 Likewise.
847 (cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
848 (cortex_a9_neon_mla_qqq_8_16): Likewise.
849 (cortex_a9_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_long_scalar_qdd_64_32_long):
850 Likewise.
851 (cortex_a9_neon_mla_qqq_32_qqd_32_scalar): Likewise.
852 (cortex_a9_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
853 (cortex_a9_neon_mul_qqd_32_scalar): Likewise.
854 (cortex_a9_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
855 (cortex_a9_neon_fp_vadd_ddd_vabs_dd): Likewise.
856 (cortex_a9_neon_fp_vadd_qqq_vabs_qq): Likewise.
857 (cortex_a9_neon_fp_vsum): Likewise.
858 (cortex_a9_neon_fp_vmul_ddd): Likewise.
859 (cortex_a9_neon_fp_vmul_qqd): Likewise.
860 (cortex_a9_neon_fp_vmla_ddd): Likewise.
861 (cortex_a9_neon_fp_vmla_qqq): Likewise.
862 (cortex_a9_neon_fp_vmla_ddd_scalar): Likewise.
863 (cortex_a9_neon_fp_vmla_qqq_scalar): Likewise.
864 (cortex_a9_neon_fp_vrecps_vrsqrts_ddd): Likewise.
865 (cortex_a9_neon_fp_vrecps_vrsqrts_qqq): Likewise.
866 (cortex_a9_neon_bp_simple): Likewise.
867 (cortex_a9_neon_bp_2cycle): Likewise.
868 (cortex_a9_neon_bp_3cycle): Likewise.
869 (cortex_a9_neon_ldr): Likewise.
870 (cortex_a9_neon_str): Likewise.
871 (cortex_a9_neon_vld1_1_2_regs): Likewise.
872 (cortex_a9_neon_vld1_3_4_regs): Likewise.
873 (cortex_a9_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
874 (cortex_a9_neon_vld2_4_regs): Likewise.
875 (cortex_a9_neon_vld3_vld4): Likewise.
876 (cortex_a9_neon_vld1_vld2_lane): Likewise.
877 (cortex_a9_neon_vld3_vld4_lane): Likewise.
878 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
879 (cortex_a9_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
880 (cortex_a9_neon_vst1_3_4_regs): Likewise.
881 (cortex_a9_neon_vst2_4_regs_vst3_vst4): Likewise.
882 (cortex_a9_neon_vst1_vst2_lane): Likewise.
883 (cortex_a9_neon_vst3_vst4_lane): Likewise.
884 (cortex_a9_neon_mcr): Likewise.
885 (cortex_a9_neon_mcr_2_mcrr): Likewise.
886 (cortex_a9_neon_mrc): Likewise.
887 (cortex_a9_neon_mrrc): Likewise.
888
9deda8cb
JG
8892013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
890
891 * config/arm/cortex-a8-neon.md (cortex_a8_neon_type): New.
892
893 (cortex_a8_neon_vshl_ddd): Remove.
894 (cortex_a8_neon_vst3_vst4): Likewise.
895 (cortex_a8_neon_vld3_vld4_all_lanes): Likewise.
896
897 (cortex_a8_neon_bit_ops_q): New.
898
899 (cortex_a8_neon_int_1): Use cortex_a8_neon_type.
900 (cortex_a8_neon_int_2): Likewise..
901 (cortex_a8_neon_int_3): Likewise.
902 (cortex_a8_neon_int_5): Likewise.
903 (cortex_a8_neon_vqneg_vqabs): Likewise.
904 (cortex_a8_neon_int_4): Likewise.
905 (cortex_a8_neon_vaba): Likewise.
906 (cortex_a8_neon_vaba_qqq): Likewise.
907 (cortex_a8_neon_shift_1): Likewise.
908 (cortex_a8_neon_shift_2): Likewise.
909 (cortex_a8_neon_shift_3): Likewise.
910 (cortex_a8_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
911 (cortex_a8_neon_vsra_vrsra): Likewise.
912 (cortex_a8_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
913 (cortex_a8_neon_mul_qqq_8_16_32_ddd_32): Likewise.
914 (cortex_a8_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_long_scalar):
915 Likewise.
916 (cortex_a8_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
917 (cortex_a8_neon_mla_qqq_8_16): Likewise.
918 (cortex_a8_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_long_scalar_qdd_64_32_long):
919 Likewise.
920 (cortex_a8_neon_mla_qqq_32_qqd_32_scalar): Likewise.
921 (cortex_a8_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
922 (cortex_a8_neon_mul_qqd_32_scalar): Likewise.
923 (cortex_a8_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
924 (cortex_a8_neon_fp_vadd_ddd_vabs_dd): Likewise.
925 (cortex_a8_neon_fp_vadd_qqq_vabs_qq): Likewise.
926 (cortex_a8_neon_fp_vsum): Likewise.
927 (cortex_a8_neon_fp_vmul_ddd): Likewise.
928 (cortex_a8_neon_fp_vmul_qqd): Likewise.
929 (cortex_a8_neon_fp_vmla_ddd): Likewise.
930 (cortex_a8_neon_fp_vmla_qqq): Likewise.
931 (cortex_a8_neon_fp_vmla_ddd_scalar): Likewise.
932 (cortex_a8_neon_fp_vmla_qqq_scalar): Likewise.
933 (cortex_a8_neon_fp_vrecps_vrsqrts_ddd): Likewise.
934 (cortex_a8_neon_fp_vrecps_vrsqrts_qqq): Likewise.
935 (cortex_a8_neon_bp_simple): Likewise.
936 (cortex_a8_neon_bp_2cycle): Likewise.
937 (cortex_a8_neon_bp_3cycle): Likewise.
938 (cortex_a8_neon_ldr): Likewise.
939 (cortex_a8_neon_str): Likewise.
940 (cortex_a8_neon_vld1_1_2_regs): Likewise.
941 (cortex_a8_neon_vld1_3_4_regs): Likewise.
942 (cortex_a8_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
943 (cortex_a8_neon_vld2_4_regs): Likewise.
944 (cortex_a8_neon_vld3_vld4): Likewise.
945 (cortex_a8_neon_vld1_vld2_lane): Likewise.
946 (cortex_a8_neon_vld3_vld4_lane): Likewise.
947 (cortex_a8_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
948 (cortex_a8_neon_vst1_3_4_regs): Likewise.
949 (cortex_a8_neon_vst2_4_regs_vst3_vst4): Likewise.
950 (cortex_a8_neon_vst1_vst2_lane): Likewise.
951 (cortex_a8_neon_vst3_vst4_lane): Likewise.
952 (cortex_a8_neon_mcr): Likewise.
953 (cortex_a8_neon_mcr_2_mcrr): Likewise.
954 (cortex_a8_neon_mrc): Likewise.
955 (cortex_a8_neon_mrrc): Likewise.
956
0f686aa9
JG
9572013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
958
959 * config/aarch64/iterators.md (Vetype): Add SF and DF modes.
960 (fp): New.
961 * config/aarch64/aarch64-simd.md (neon_type): Remove.
962 (aarch64_simd_dup<mode>): Add "type" attribute.
963 (aarch64_dup_lane<mode>): Likewise.
964 (aarch64_dup_lane_<vswap_width_name><mode>): Likewise.
965 (*aarch64_simd_mov<mode>): Likewise.
966 (aarch64_simd_mov_from_<mode>low): Likewise.
967 (aarch64_simd_mov_from_<mode>high): Likewise.
968 (orn<mode>3): Likewise.
969 (bic<mode>3): Likewise.
970 (add<mode>3): Likewise.
971 (sub<mode>3): Likewise.
972 (mul<mode>3): Likewise.
973 (*aarch64_mul3_elt<mode>): Likewise.
974 (*aarch64_mul3_elt_<vswap_width_name><mode>): Likewise.
975 (*aarch64_mul3_elt_to_128df): Likewise.
976 (*aarch64_mul3_elt_to_64v2df): Likewise.
977 (neg<mode>2): Likewise.
978 (abs<mode>2): Likewise.
979 (abd<mode>_3): Likewise.
980 (aba<mode>_3): Likewise.
981 (fabd<mode>_3): Likewise.
982 (*fabd_scalar<mode>3): Likewise.
983 (and<mode>3): Likewise.
984 (ior<mode>3): Likewise.
985 (xor<mode>3): Likewise.
986 (one_cmpl<mode>2): Likewise.
987 (aarch64_simd_vec_set<mode>): Likewise.
988 (aarch64_simd_lshr<mode>): Likewise.
989 (aarch64_simd_ashr<mode>): Likewise.
990 (aarch64_simd_imm_shl<mode>): Likewise.
991 (aarch64_simd_reg_sshl<mode): Likewise.
992 (aarch64_simd_reg_shl<mode>_unsigned): Likewise.
993 (aarch64_simd_reg_shl<mode>_signed): Likewise.
994 (aarch64_simd_vec_setv2di): Likewise.
995 (aarch64_simd_vec_set<mode>): Likewise.
996 (aarch64_mla<mode>): Likewise.
997 (*aarch64_mla_elt<mode>): Likewise.
998 (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
999 (aarch64_mls<mode>): Likewise.
1000 (*aarch64_mls_elt<mode>): Likewise.
1001 (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
1002 (<su><maxmin><mode>3): Likewise.
1003 (move_lo_quad_<mode>): Likewise.
1004 (aarch64_simd_move_hi_quad_<mode>): Likewise.
1005 (aarch64_simd_vec_pack_trunc_<mode>): Likewise.
1006 (vec_pack_trunc_<mode>): Likewise.
1007 (aarch64_simd_vec_unpack<su>_lo_<mode>): Likewise.
1008 (aarch64_simd_vec_unpack<su>_hi_<mode>): Likewise.
1009 (*aarch64_<su>mlal_lo<mode>): Likewise.
1010 (*aarch64_<su>mlal_hi<mode>): Likewise.
1011 (*aarch64_<su>mlsl_lo<mode>): Likewise.
1012 (*aarch64_<su>mlsl_hi<mode>): Likewise.
1013 (*aarch64_<su>mlal<mode>): Likewise.
1014 (*aarch64_<su>mlsl<mode>): Likewise.
1015 (aarch64_simd_vec_<su>mult_lo_<mode>): Likewise.
1016 (aarch64_simd_vec_<su>mult_hi_<mode>): Likewise.
1017 (add<mode>3): Likewise.
1018 (sub<mode>3): Likewise.
1019 (mul<mode>3): Likewise.
1020 (div<mode>3): Likewise.
1021 (neg<mode>2): Likewise.
1022 (abs<mode>2): Likewise.
1023 (fma<mode>4): Likewise.
1024 (*aarch64_fma4_elt<mode>): Likewise.
1025 (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
1026 (*aarch64_fma4_elt_to_128df): Likewise.
1027 (*aarch64_fma4_elt_to_64v2df): Likewise.
1028 (fnma<mode>4): Likewise.
1029 (*aarch64_fnma4_elt<mode>): Likewise.
1030 (*aarch64_fnma4_elt_<vswap_width_name><mode>
1031 (*aarch64_fnma4_elt_to_128df): Likewise.
1032 (*aarch64_fnma4_elt_to_64v2df): Likewise.
1033 (<frint_pattern><mode>2): Likewise.
1034 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): Likewise.
1035 (<optab><fcvt_target><VDQF:VDQF:mode>2): Likewise.
1036 (vec_unpacks_lo_v4sf): Likewise.
1037 (aarch64_float_extend_lo_v2df): Likewise.
1038 (vec_unpacks_hi_v4sf): Likewise.
1039 (aarch64_float_truncate_lo_v2sf): Likewise.
1040 (aarch64_float_truncate_hi_v4sf): Likewise.
1041 (aarch64_vmls<mode>): Likewise.
1042 (<su><maxmin><mode>3): Likewise.
1043 (<maxmin_uns><mode>3): Likewise.
1044 (reduc_<sur>plus_<mode>): Likewise.
1045 (reduc_<sur>plus_v2di): Likewise.
1046 (reduc_<sur>plus_v2si): Likewise.
1047 (reduc_<sur>plus_<mode>): Likewise.
1048 (aarch64_addpv4sf): Likewise.
1049 (clz<mode>2): Likewise.
1050 (reduc_<maxmin_uns>_<mode>): Likewise.
1051 (reduc_<maxmin_uns>_v2di): Likewise.
1052 (reduc_<maxmin_uns>_v2si): Likewise.
1053 (reduc_<maxmin_uns>_<mode>): Likewise.
1054 (reduc_<maxmin_uns>_v4sf): Likewise.
1055 (aarch64_simd_bsl<mode>_internal): Likewise.
1056 (*aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): Likewise.
1057 (*aarch64_get_lane_zero_extendsi<mode>): Likewise.
1058 (aarch64_get_lane<mode>): Likewise.
1059 (*aarch64_combinez<mode>): Likewise.
1060 (aarch64_combine<mode>): Likewise.
1061 (aarch64_simd_combine<mode>): Likewise.
1062 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_hi_internal): Likewise.
1063 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_lo_internal): Likewise.
1064 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>): Likewise.
1065 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>w<mode>): Likewise.
1066 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>w2<mode>_internal): Likewise.
1067 (aarch64_<sur>h<addsub><mode>): Likewise.
1068 (aarch64_<sur><addsub>hn<mode>): Likewise.
1069 (aarch64_<sur><addsub>hn2<mode>): Likewise.
1070 (aarch64_pmul<mode>): Likewise.
1071 (aarch64_<su_optab><optab><mode>): Likewise.
1072 (aarch64_<sur>qadd<mode>): Likewise.
1073 (aarch64_sqmovun<mode>): Likewise.
1074 (aarch64_<sur>qmovn<mode>): Likewise.
1075 (aarch64_s<optab><mode>): Likewise.
1076 (aarch64_sq<r>dmulh<mode>): Likewise.
1077 (aarch64_sq<r>dmulh_lane<mode>): Likewise.
1078 (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
1079 (aarch64_sq<r>dmulh_lane<mode>): Likewise.
1080 (aarch64_sqdml<SBINQOPS:as>l<mode>): Likewise.
1081 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
1082 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
1083 (aarch64_sqdml<SBINQOPS:as>l_n<mode>): Likewise.
1084 (aarch64_sqdml<SBINQOPS:as>l2<mode>_internal): Likewise.
1085 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
1086 (aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Likewise.
1087 (aarch64_sqdmull<mode>): Likewise.
1088 (aarch64_sqdmull_lane<mode>_internal): Likewise.
1089 (aarch64_sqdmull_n<mode>): Likewise.
1090 (aarch64_sqdmull2<mode>_internal): Likewise.
1091 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
1092 (aarch64_sqdmull2_n<mode>_internal): Likewise.
1093 (aarch64_<sur>shl<mode>): Likewise.
1094 (aarch64_<sur>q<r>shl<mode>
1095 (aarch64_<sur>shll_n<mode>): Likewise.
1096 (aarch64_<sur>shll2_n<mode>): Likewise.
1097 (aarch64_<sur>shr_n<mode>): Likewise.
1098 (aarch64_<sur>sra_n<mode>): Likewise.
1099 (aarch64_<sur>s<lr>i_n<mode>): Likewise.
1100 (aarch64_<sur>qshl<u>_n<mode>): Likewise.
1101 (aarch64_<sur>q<r>shr<u>n_n<mode>): Likewise.
1102 (aarch64_cm<optab><mode>): Likewise.
1103 (aarch64_cm<optab>di): Likewise.
1104 (aarch64_cm<optab><mode>): Likewise.
1105 (aarch64_cm<optab>di): Likewise.
1106 (aarch64_cmtst<mode>): Likewise.
1107 (aarch64_cmtstdi): Likewise.
1108 (aarch64_cm<optab><mode>): Likewise.
1109 (*aarch64_fac<optab><mode>): Likewise.
1110 (aarch64_addp<mode>): Likewise.
1111 (aarch64_addpdi): Likewise.
1112 (sqrt<mode>2): Likewise.
1113 (vec_load_lanesoi<mode>): Likewise.
1114 (vec_store_lanesoi<mode>): Likewise.
1115 (vec_load_lanesci<mode>): Likewise.
1116 (vec_store_lanesci<mode>): Likewise.
1117 (vec_load_lanesxi<mode>): Likewise.
1118 (vec_store_lanesxi<mode>): Likewise.
1119 (*aarch64_mov<mode>): Likewise.
1120 (aarch64_ld2<mode>_dreg): Likewise.
1121 (aarch64_ld2<mode>_dreg): Likewise.
1122 (aarch64_ld3<mode>_dreg): Likewise.
1123 (aarch64_ld3<mode>_dreg): Likewise.
1124 (aarch64_ld4<mode>_dreg): Likewise.
1125 (aarch64_ld4<mode>_dreg): Likewise.
1126 (aarch64_tbl1<mode>): Likewise.
1127 (aarch64_tbl2v16qi): Likewise.
1128 (aarch64_combinev16qi): Likewise.
1129 (aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>): Likewise.
1130 (aarch64_st2<mode>_dreg): Likewise.
1131 (aarch64_st2<mode>_dreg): Likewise.
1132 (aarch64_st3<mode>_dreg): Likewise.
1133 (aarch64_st3<mode>_dreg): Likewise.
1134 (aarch64_st4<mode>_dreg): Likewise.
1135 (aarch64_st4<mode>_dreg): Likewise.
1136 (*aarch64_simd_ld1r<mode>): Likewise.
1137 (aarch64_frecpe<mode>): Likewise.
1138 (aarch64_frecp<FRECP:frecp_suffix><mode>): Likewise.
1139 (aarch64_frecps<mode>): Likewise.
1140
f7379e5e
JG
11412013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
1142
1143 * config/arm/iterators.md (V_elem_ch): New.
1144 (q): Likewise.
1145 (VQH_type): Likewise.
1146 * config/arm/arm.md (is_neon_type): New.
1147 (conds): Use is_neon_type.
1148 (anddi3_insn): Update type attribute.
1149 (xordi3_insn): Likewise.
1150 (one_cmpldi2): Likewise.
1151 * gcc/config/arm/vfp.md (movhf_vfp_neon): Update type attribute.
1152 * gcc/config/arm/neon.md (neon_mov): Update type attribute.
1153 (*movmisalign<mode>_neon_store): Likewise.
1154 (*movmisalign<mode>_neon_load): Likewise.
1155 (vec_set<mode>_internal): Likewise.
1156 (vec_set<mode>_internal): Likewise.
1157 (vec_setv2di_internal): Likewise.
1158 (vec_extract<mode>): Likewise.
1159 (vec_extract<mode>): Likewise.
1160 (vec_extractv2di): Likewise.
1161 (*add<mode>3_neon): Likewise.
1162 (adddi3_neon): Likewise.
1163 (*sub<mode>3_neon): Likewise.
1164 (subdi3_neon): Likewise.
1165 (fma<VCVTF:mode>4): Likewise.
1166 (fma<VCVTF:mode>4_intrinsic): Likewise.
1167 (*fmsub<VCVTF:mode>4): Likewise.
1168 (fmsub<VCVTF:mode>4_intrinsic): Likewise.
1169 (neon_vrint<NEON_VRINT:nvrint_variant><VCVTF:mode>): Likewise.
1170 (ior<mode>3): Likewise.
1171 (and<mode>3): Likewise.
1172 (orn<mode>3_neon): Likewise.
1173 (orndi3_neon): Likewise.
1174 (bic<mode>3_neon): Likewise.
1175 (bicdi3_neon): Likewise.
1176 (xor<mode>3): Likewise.
1177 (one_cmpl<mode>2): Likewise.
1178 (abs<mode>2): Likewise.
1179 (neg<mode>2): Likewise.
1180 (negdi2_neon): Likewise.
1181 (*umin<mode>3_neon): Likewise.
1182 (*umax<mode>3_neon): Likewise.
1183 (*smin<mode>3_neon): Likewise.
1184 (*smax<mode>3_neon): Likewise.
1185 (vashl<mode>3): Likewise.
1186 (vashr<mode>3_imm): Likewise.
1187 (vlshr<mode>3_imm): Likewise.
1188 (ashl<mode>3_signed): Likewise.
1189 (ashl<mode>3_unsigned): Likewise.
1190 (neon_load_count): Likewise.
1191 (ashldi3_neon_noclobber): Likewise.
1192 (ashldi3_neon): Likewise.
1193 (signed_shift_di3_neon): Likewise.
1194 (unsigned_shift_di3_neon): Likewise.
1195 (ashrdi3_neon_imm_noclobber): Likewise.
1196 (lshrdi3_neon_imm_noclobber): Likewise.
1197 (<shift>di3_neon): Likewise.
1198 (widen_ssum<mode>3): Likewise.
1199 (widen_usum<mode>3): Likewise.
1200 (quad_halves_<code>v4si): Likewise.
1201 (quad_halves_<code>v4sf): Likewise.
1202 (quad_halves_<code>v8hi): Likewise.
1203 (quad_halves_<code>v16qi): Likewise.
1204 (reduc_splus_v2di): Likewise.
1205 (neon_vpadd_internal<mode>): Likewise.
1206 (neon_vpsmin<mode>): Likewise.
1207 (neon_vpsmax<mode>): Likewise.
1208 (neon_vpumin<mode>): Likewise.
1209 (neon_vpumax<mode>): Likewise.
1210 (*ss_add<mode>_neon): Likewise.
1211 (*us_add<mode>_neon): Likewise.
1212 (*ss_sub<mode>_neon): Likewise.
1213 (*us_sub<mode>_neon): Likewise.
1214 (neon_vadd<mode>_unspec): Likewise.
1215 (neon_vaddl<mode>): Likewise.
1216 (neon_vaddw<mode>): Likewise.
1217 (neon_vhadd<mode>): Likewise.
1218 (neon_vqadd<mode>): Likewise.
1219 (neon_vaddhn<mode>): Likewise.
1220 (neon_vmul<mode>): Likewise.
1221 (neon_vfms<VCVTF:mode>): Likewise.
1222 (neon_vmlal<mode>): Likewise.
1223 (neon_vmls<mode>): Likewise.
1224 (neon_vmlsl<mode>): Likewise.
1225 (neon_vqdmulh<mode>): Likewise.
1226 (neon_vqdmlal<mode>): Likewise.
1227 (neon_vqdmlsl<mode>): Likewise.
1228 (neon_vmull<mode>): Likewise.
1229 (neon_vqdmull<mode>): Likewise.
1230 (neon_vsub<mode>_unspec): Likewise.
1231 (neon_vsubl<mode>): Likewise.
1232 (neon_vsubw<mode>): Likewise.
1233 (neon_vqsub<mode>): Likewise.
1234 (neon_vhsub<mode>): Likewise.
1235 (neon_vsubhn<mode>): Likewise.
1236 (neon_vceq<mode>): Likewise.
1237 (neon_vcge<mode>): Likewise.
1238 (neon_vcgeu<mode>): Likewise.
1239 (neon_vcgt<mode>): Likewise.
1240 (neon_vcgtu<mode>): Likewise.
1241 (neon_vcle<mode>): Likewise.
1242 (neon_vclt<mode>): Likewise.
1243 (neon_vcage<mode>): Likewise.
1244 (neon_vcagt<mode>): Likewise.
1245 (neon_vtst<mode>): Likewise.
1246 (neon_vabd<mode>): Likewise.
1247 (neon_vabdl<mode>): Likewise.
1248 (neon_vaba<mode>): Likewise.
1249 (neon_vabal<mode>): Likewise.
1250 (neon_vmax<mode>): Likewise.
1251 (neon_vmin<mode>): Likewise.
1252 (neon_vpaddl<mode>): Likewise.
1253 (neon_vpadal<mode>): Likewise.
1254 (neon_vpmax<mode>): Likewise.
1255 (neon_vpmin<mode>): Likewise.
1256 (neon_vrecps<mode>): Likewise.
1257 (neon_vrsqrts<mode>): Likewise.
1258 (neon_vqabs<mode>): Likewise.
1259 (neon_vqneg<mode>): Likewise.
1260 (neon_vcls<mode>): Likewise.
1261 (clz<mode>2): Likewise.
1262 (popcount<mode>2): Likewise.
1263 (neon_vrecpe<mode>): Likewise.
1264 (neon_vrsqrte<mode>): Likewise.
1265 (neon_vget_lane<mode>_sext_internal): Likewise.
1266 (neon_vget_lane<mode>_zext_internal): Likewise.
1267 (neon_vdup_n<mode>): Likewise.
1268 (neon_vdup_n<mode>): Likewise.
1269 (neon_vdup_nv2di): Likewise.
1270 (neon_vdup_lane<mode>_interal): Likewise.
1271 (*neon_vswp<mode>): Likewise.
1272 (neon_vcombine<mode>): Likewise.
1273 (float<mode><V_cvtto>2): Likewise.
1274 (floatuns<mode><V_cvtto>2): Likewise.
1275 (fix_trunc<mode><V_cvtto>2): Likewise.
1276 (fixuns_trunc<mode><V_cvtto>2
1277 (neon_vcvt<mode>): Likewise.
1278 (neon_vcvt<mode>): Likewise.
1279 (neon_vcvtv4sfv4hf): Likewise.
1280 (neon_vcvtv4hfv4sf): Likewise.
1281 (neon_vcvt_n<mode>): Likewise.
1282 (neon_vcvt_n<mode>): Likewise.
1283 (neon_vmovn<mode>): Likewise.
1284 (neon_vqmovn<mode>): Likewise.
1285 (neon_vqmovun<mode>): Likewise.
1286 (neon_vmovl<mode>): Likewise.
1287 (neon_vmul_lane<mode>): Likewise.
1288 (neon_vmul_lane<mode>): Likewise.
1289 (neon_vmull_lane<mode>): Likewise.
1290 (neon_vqdmull_lane<mode>): Likewise.
1291 (neon_vqdmulh_lane<mode>): Likewise.
1292 (neon_vqdmulh_lane<mode>): Likewise.
1293 (neon_vmla_lane<mode>): Likewise.
1294 (neon_vmla_lane<mode>): Likewise.
1295 (neon_vmlal_lane<mode>): Likewise.
1296 (neon_vqdmlal_lane<mode>): Likewise.
1297 (neon_vmls_lane<mode>): Likewise.
1298 (neon_vmls_lane<mode>): Likewise.
1299 (neon_vmlsl_lane<mode>): Likewise.
1300 (neon_vqdmlsl_lane<mode>): Likewise.
1301 (neon_vext<mode>): Likewise.
1302 (neon_vrev64<mode>): Likewise.
1303 (neon_vrev32<mode>): Likewise.
1304 (neon_vrev16<mode>): Likewise.
1305 (neon_vbsl<mode>_internal): Likewise.
1306 (neon_vshl<mode>): Likewise.
1307 (neon_vqshl<mode>): Likewise.
1308 (neon_vshr_n<mode>): Likewise.
1309 (neon_vshrn_n<mode>): Likewise.
1310 (neon_vqshrn_n<mode>): Likewise.
1311 (neon_vqshrun_n<mode>): Likewise.
1312 (neon_vshl_n<mode>): Likewise.
1313 (neon_vqshl_n<mode>): Likewise.
1314 (neon_vqshlu_n<mode>): Likewise.
1315 (neon_vshll_n<mode>): Likewise.
1316 (neon_vsra_n<mode>): Likewise.
1317 (neon_vsri_n<mode>): Likewise.
1318 (neon_vsli_n<mode>): Likewise.
1319 (neon_vtbl1v8qi): Likewise.
1320 (neon_vtbl2v8qi): Likewise.
1321 (neon_vtbl3v8qi): Likewise.
1322 (neon_vtbl4v8qi): Likewise.
1323 (neon_vtbl1v16qi): Likewise.
1324 (neon_vtbl2v16qi): Likewise.
1325 (neon_vcombinev16qi): Likewise.
1326 (neon_vtbx1v8qi): Likewise.
1327 (neon_vtbx2v8qi): Likewise.
1328 (neon_vtbx3v8qi): Likewise.
1329 (neon_vtbx4v8qi): Likewise.
1330 (*neon_vtrn<mode>_insn): Likewise.
1331 (*neon_vzip<mode>_insn): Likewise.
1332 (*neon_vuzp<mode>_insn): Likewise.
1333 (neon_vld1<mode>): Likewise.
1334 (neon_vld1_lane<mode>): Likewise.
1335 (neon_vld1_lane<mode>): Likewise.
1336 (neon_vld1_dup<mode>): Likewise.
1337 (neon_vld1_dup<mode>): Likewise.
1338 (neon_vld1_dupv2di): Likewise.
1339 (neon_vst1<mode>): Likewise.
1340 (neon_vst1_lane<mode>): Likewise.
1341 (neon_vst1_lane<mode>): Likewise.
1342 (neon_vld2<mode>): Likewise.
1343 (neon_vld2<mode>): Likewise.
1344 (neon_vld2_lane<mode>): Likewise.
1345 (neon_vld2_lane<mode>): Likewise.
1346 (neon_vld2_dup<mode>): Likewise.
1347 (neon_vst2<mode>): Likewise.
1348 (neon_vst2<mode>): Likewise.
1349 (neon_vst2_lane<mode>): Likewise.
1350 (neon_vst2_lane<mode>): Likewise.
1351 (neon_vld3<mode>): Likewise.
1352 (neon_vld3qa<mode>): Likewise.
1353 (neon_vld3qb<mode>): Likewise.
1354 (neon_vld3_lane<mode>): Likewise.
1355 (neon_vld3_lane<mode>): Likewise.
1356 (neon_vld3_dup<mode>): Likewise.
1357 (neon_vst3<mode>): Likewise.
1358 (neon_vst3qa<mode>): Likewise.
1359 (neon_vst3qb<mode>): Likewise.
1360 (neon_vst3_lane<mode>): Likewise.
1361 (neon_vst3_lane<mode>): Likewise.
1362 (neon_vld4<mode>): Likewise.
1363 (neon_vld4qa<mode>): Likewise.
1364 (neon_vld4qb<mode>): Likewise.
1365 (neon_vld4_lane<mode>): Likewise.
1366 (neon_vld4_lane<mode>): Likewise.
1367 (neon_vld4_dup<mode>): Likewise.
1368 (neon_vst4<mode>): Likewise.
1369 (neon_vst4qa<mode>): Likewise.
1370 (neon_vst4qb<mode>): Likewise.
1371 (neon_vst4_lane<mode>): Likewise.
1372 (neon_vst4_lane<mode>): Likewise.
1373 (neon_vec_unpack<US>_lo_<mode>): Likewise.
1374 (neon_vec_unpack<US>_hi_<mode>): Likewise.
1375 (neon_vec_<US>mult_lo_<mode>): Likewise.
1376 (neon_vec_<US>mult_hi_<mode>): Likewise.
1377 (neon_vec_<US>shiftl_<mode>): Likewise.
1378 (neon_unpack<US>_<mode>): Likewise.
1379 (neon_vec_<US>mult_<mode>): Likewise.
1380 (vec_pack_trunc_<mode>): Likewise.
1381 (neon_vec_pack_trunc_<mode>): Likewise.
1382 (neon_vabd<mode>_2): Likewise.
1383 (neon_vabd<mode>_3): Likewise.
1384
a9e66678
JG
13852013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
1386
1387 * config/aarch64/aarch64.md (movtf_aarch64): Update type attribute.
1388 (load_pair): Update type attribute.
1389 (store_pair): Update type attribute.
1390 * config/aarch64/iterators.md (q): New.
1391
20445ed6
JG
13922013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
1393
1394 * config/arm/types.md: Add new types for Neon insns.
1395
afb4ac68
AI
13962013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
1397 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1398 Sergey Lega <sergey.s.lega@intel.com>
1399 Anna Tikhonova <anna.tikhonova@intel.com>
1400 Ilya Tocar <ilya.tocar@intel.com>
1401 Andrey Turetskiy <andrey.turetskiy@intel.com>
1402 Ilya Verbin <ilya.verbin@intel.com>
1403 Kirill Yukhin <kirill.yukhin@intel.com>
1404 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1405
1406 * config/i386/sse.md (unspec): Add UNSPEC_RCP14, UNSPEC_RSQRT14,
1407 UNSPEC_FIXUPIMM, UNSPEC_SCALEF, UNSPEC_GETEXP, UNSPEC_GETMANT,
1408 UNSPEC_EXP2, UNSPEC_RCP28, UNSPEC_RSQRT28.
1409 (rcp14<mode>): New.
1410 (srcp14<mode>): Ditto.
1411 (rsqrt14<mode>): Ditto.
1412 (rsqrt14<mode>): Ditto.
1413 (avx512f_vmscalef<mode>): Ditto.
1414 (avx512f_scalef<mode>): Ditto.
1415 (avx512f_getexp<mode>): Ditto.
1416 (avx512f_sgetexp<mode>): Ditto.
1417 (avx512f_fixupimm<mode>): Ditto.
1418 (avx512f_sfixupimm<mode>): Ditto.
1419 (avx512f_rndscale<mode>): Ditto.
1420 (*avx512er_exp2<mode>): Ditto.
1421 (*avx512er_rcp28<mode>): Ditto.
1422 (avx512er_rsqrt28<mode>): Ditto.
1423 (avx512f_getmant<mode>): Ditto.
1424 (avx512f_getmant<mode>): Ditto.
1425 (avx512f_rndscale<mode>): Fix formatting.
1426
a1b499a3
JL
14272013-10-15 Martin Jambor <mjambor@suse.cz>
1428
1429 * ipa-utils.h (ipa_edge_within_scc): Declare.
1430 * ipa-cp.c (edge_within_scc): Moved...
1431 * ipa-utils.c (ipa_edge_within_scc): ...here. Updated all callers.
afb4ac68 1432
2e2206fa
AI
14332013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
1434 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1435 Sergey Lega <sergey.s.lega@intel.com>
1436 Anna Tikhonova <anna.tikhonova@intel.com>
1437 Ilya Tocar <ilya.tocar@intel.com>
1438 Andrey Turetskiy <andrey.turetskiy@intel.com>
1439 Ilya Verbin <ilya.verbin@intel.com>
1440 Kirill Yukhin <kirill.yukhin@intel.com>
1441 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1442
1443 * config/i386/predicates.md (const_8_to_15_operand): New.
1444 (const_16_to_31_operand): Ditto.
1445 * config/i386/sse.md (V8FI): New.
1446 (V16FI): Ditto.
1447 (reduc_splus_v8df): Ditto.
1448 (reduc_splus_v16sf): Ditto.
1449 (avx512f_vextract<shuffletype>32x4_1): Ditto.
1450 (vec_extract_hi_<mode>): Ditto.
1451 (avx512f_vinsert<shuffletype>32x4_1): Ditto.
1452 (vec_set_lo_<mode>): Ditto.
1453 (vec_set_hi_<mode>): Ditto.
1454 (avx512f_shuf_<shuffletype>64x2_1): Ditto.
1455 (avx512f_shuf_<shuffletype>32x4_1): Ditto.
1456 (avx512f_pshufd_1): Ditto.
1457 (avx512f_broadcast<mode>): Ditto.
1458 (avx512f_broadcast<mode>): Ditto.
1459 (define_split): Split vec_extract_lo into move.
1460 (ssequartermode): Ditto.
1461 (ssedoublemode): Extened with wider modes.
1462 (vec_extract_lo_<mode>): Ditto.
1463
0fe65b75
AI
14642013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
1465 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1466 Sergey Lega <sergey.s.lega@intel.com>
1467 Anna Tikhonova <anna.tikhonova@intel.com>
1468 Ilya Tocar <ilya.tocar@intel.com>
1469 Andrey Turetskiy <andrey.turetskiy@intel.com>
1470 Ilya Verbin <ilya.verbin@intel.com>
1471 Kirill Yukhin <kirill.yukhin@intel.com>
1472 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1473
1474 * config/i386/predicates.md (register_or_constm1_operand): New.
1475 * config/i386/sse.md (unspec): Add UNSPEC_UNSIGNED_PCMP, UNSPEC_TESTM,
1476 UNSPEC_TESTNM, UNSPEC_VTERNLOG, UNSPEC_ALIGN, UNSPEC_CONFLICT,
1477 UNSPEC_MASKED_EQ, UNSPEC_MASKED_GT, UNSPEC_GATHER_PREFETCH,
1478 UNSPEC_SCATTER_PREFETCH
1479 (VI48_512): New.
1480 (avx512f_ucmp<mode>3): Ditto.
1481 (avx512f_vternlog<mode>): Ditto.
1482 (avx512f_align<mode>): Ditto.
1483 (<shift_insn><mode>3): Ditto.
1484 (avx512f_<rotate>v<mode>): Ditto.
1485 (avx512f_<rotate><mode>): Ditto.
1486 (avx512f_eq<mode>3): Ditto.
1487 (avx512f_eq<mode>3_1): Ditto.
1488 (avx512f_gt<mode>3): Ditto.
1489 (avx512f_testm<mode>3): Ditto.
1490 (avx512f_testnm<mode>3): Ditto.
1491 (avx512pf_gatherpf<mode>): Ditto.
1492 (*avx512pf_gatherpf<mode>_mask): Ditto.
1493 (*avx512pf_gatherpf<mode>): Ditto.
1494 (avx512pf_scatterpf<mode>): Ditto.
1495 (*avx512pf_scatterpf<mode>_mask): Ditto.
1496 (*avx512pf_scatterpf<mode>): Ditto.
1497 (avx512f_vec_dup_gpr<mode>): Ditto.
1498 (clz<mode>2): Ditto.
1499 (conflict<mode>): Ditto.
1500 (REDUC_SMINMAX_MODE): Extened with wider modes.
1501 (reduc_<code>_<mode>): Ditto.
1502 (vlshr<mode>3): Ditto.
1503 (vashl<mode>3): Ditto.
1504
ab931c71
AI
15052013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
1506 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1507 Sergey Lega <sergey.s.lega@intel.com>
1508 Anna Tikhonova <anna.tikhonova@intel.com>
1509 Ilya Tocar <ilya.tocar@intel.com>
1510 Andrey Turetskiy <andrey.turetskiy@intel.com>
1511 Ilya Verbin <ilya.verbin@intel.com>
1512 Kirill Yukhin <kirill.yukhin@intel.com>
1513 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1514
1515 * config/i386/sse.md (unspec): Added UNSPEC_VPERMI2, UNSPEC_VPERMT2,
1516 UNSPEC_SCATTER.
1517 (VI48F_512): New.
1518 (avx512fmaskmode): Ditto.
1519 (bcstscalarsuff): Ditto.
1520 (avx512f_blendm<mode>): Ditto.
1521 (cmp_imm_predicate): Ditto.
1522 (avx512f_cmp<mode>3): Ditto.
1523 (avx512f_vec_dup<mode>): Ditto.
1524 (avx512f_vec_dup_mem<mode>): Ditto.
1525 (avx512f_vpermi2var<mode>3): Ditto.
1526 (avx512f_vpermt2var<mode>3): Ditto.
1527 (vec_init<mode>): Ditto.
1528 (avx512f_gathersi<mode>): Ditto.
1529 (*avx512f_gathersi<mode>): Ditto.
1530 (*avx512f_gathersi<mode>_2): Ditto.
1531 (avx512f_gatherdi<mode>): Ditto.
1532 (*avx512f_gatherdi<mode>): Ditto.
1533 (*avx512f_gatherdi<mode>_2): Ditto.
1534 (avx512f_scattersi<mode>): Ditto.
1535 (*avx512f_scattersi<mode>): Ditto.
1536 (avx512f_scatterdi<mode>): Ditto.
1537 (*avx512f_scatterdi<mode>): Ditto.
1538 (sseintprefix): Extened with wider modes.
1539 (VEC_GATHER_IDXSI): Ditto.
1540 (VEC_GATHER_IDXDI): Ditto.
1541 (VEC_GATHER_SRCDI): Ditto.
1542
c9acb877
MGD
15432013-10-15 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
1544 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1545
1546 * config/arm/t-aprofile: New file.
1547 * config.gcc: Handle --with-multilib-list option.
1548
ecbda484
BS
15492013-10-15 Bernd Schmidt <bernds@codesourcery.com>
1550
6f1abb55
UB
1551 * reload1.c (reloads_unique_chain_p): Ensure that r1 is
1552 the input for r2.
ecbda484 1553
24f161fd
RB
15542013-10-15 Richard Biener <rguenther@suse.de>
1555
1556 * tree-loop-distribution.c (build_empty_rdg): Inline into
1557 single user.
1558 (rdg_flag_vertex): Inline into single user.
1559 (rdg_flag_vertex_and_dependent): Likewise.
1560 (build_rdg_partition_for_vertex): Remove processed bitmap.
1561 (rdg_build_partitions): Simplify.
1562
5de989ed
RB
15632013-10-15 Richard Biener <rguenther@suse.de>
1564
1565 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
1566 Restructure forwarding through conversions and copies to
1567 avoid performing copy-propagation the wrong way. Adjust
1568 recursion invocations.
1569 (forward_propagate_addr_expr): Add argument stating if we
1570 are recursing from a single-use.
1571 (ssa_forward_propagate_and_combine): Adjust.
1572
47e0da37
DM
15732013-10-14 David Malcolm <dmalcolm@redhat.com>
1574
1575 * dumpfile.h (gcc::dump_manager): New class, to hold state
1576 relating to dumpfile management.
1577 (get_dump_file_name): Remove in favor of method of dump_manager.
1578 (dump_initialized_p): Likewise.
1579 (dump_start): Likewise.
1580 (dump_finish): Likewise.
1581 (dump_switch_p): Likewise.
1582 (dump_register): Likewise.
1583 (get_dump_file_info): Likewise.
1584 * context.c (gcc::context::context): Construct the dump_manager
1585 instance.
1586 * context.h (gcc::context::get_dumps): New.
1587 (gcc::context::m_dumps): New.
1588 * coverage.c (coverage_init): Port to dump_manager API.
6f1abb55 1589 * dumpfile.c (extra_dump_files): Convert to field of gcc::dump_manager.
47e0da37
DM
1590 (extra_dump_files_in_use): Likewise.
1591 (extra_dump_files_alloced): Likewise.
1592 (gcc::dump_manager::dump_manager): New.
1593 (dump_register): Convert to...
1594 (gcc::dump_manager::dump_register): ...method, replacing
1595 function-static next_dump with m_next_dump field.
1596 (get_dump_file_info): Convert to...
1597 (gcc::dump_manager::get_dump_file_info): ...method.
1598 (get_dump_file_name): Convert to...
1599 (gcc::dump_manager::get_dump_file_name): ...method.
1600 (dump_start): Convert to...
1601 (gcc::dump_manager::dump_start): ...method.
1602 (dump_finish): Convert to...
1603 (gcc::dump_manager::dump_finish): ...method.
1604 (dump_begin): Replace body with...
1605 (gcc::dump_manager::dump_begin): ...new method.
1606 (dump_phase_enabled_p): Convert to...
1607 (gcc::dump_manager::dump_phase_enabled_p): ...method.
1608 (dump_phase_enabled_p): Convert to...
1609 (gcc::dump_manager::dump_phase_enabled_p): ...method.
1610 (dump_initialized_p): Convert to...
1611 (gcc::dump_manager::dump_initialized_p): ...method.
1612 (dump_flag_name): Replace body with...
1613 (gcc::dump_manager::dump_flag_name): ...new method.
1614 (dump_enable_all): Convert to...
1615 (gcc::dump_manager::dump_enable_all): ...new method.
1616 (opt_info_enable_passes): Convert to...
1617 (gcc::dump_manager::opt_info_enable_passes): ...new method.
1618 (dump_switch_p_1): Convert to...
1619 (gcc::dump_manager::dump_switch_p_1): ...new method.
1620 (dump_switch_p): Convert to...
1621 (gcc::dump_manager::dump_switch_p): ...new method.
1622 (opt_info_switch_p): Port to dump_manager API.
1623 (enable_rtl_dump_file): Likewise.
1624 * opts-global.c (handle_common_deferred_options): Port to new
1625 dump_manager API.
1626 * passes.c (pass_manager::finish_optimization_passes): Likewise.
1627 (pass_manager::register_one_dump_file): Likewise.
1628 (pass_manager::register_pass): Likewise.
1629 (pass_init_dump_file): Likewise.
1630 (pass_fini_dump_file): Likewise.
1631 * statistics.c (statistics_early_init): Likewise.
1632
83fd5d11
RB
16332013-10-14 Richard Biener <rguenther@suse.de>
1634
1635 * gimple.c (gimple_canonical_types, canonical_type_hash_cache,
1636 iterative_hash_canonical_type, gimple_canonical_type_hash,
1637 gimple_canonical_types_compatible_p, gimple_canonical_type_eq,
1638 gimple_register_canonical_type, print_gimple_types_stats,
1639 free_gimple_type_tables): Move to lto/lto.c
1640 (gt-gimple.h): Do not include.
1641 * gimple.h (gimple_register_canonical_type,
1642 print_gimple_types_stats, free_gimple_type_tables): Remove.
1643 * Makefile.in (GTFILES): Remove gimple.c.
1644
a6dbd0f7
TS
16452013-10-14 Travis Snoozy <quandary@remstate.com>
1646
1647 PR target/58716
1648 * config/msp430/msp430.c (msp430_option_override): Correct thinko
1649 scanning for msp430x targets.
1650
b5ccb9ed
EB
16512013-10-14 Eric Botcazou <ebotcazou@adacore.com>
1652
1653 PR bootstrap/58509
1654 * config/sparc/sparc-protos.h (widen_mem_for_ldd_peep): Declare.
1655 (registers_ok_for_ldd_peep): Move around.
1656 * config/sparc/sparc.c (widen_mem_for_ldd_peep): New.
1657 * config/sparc/sparc.md (widening peepholes): Use it.
1658
fd7e5084
RB
16592013-10-14 Richard Biener <rguenther@suse.de>
1660
1661 PR middle-end/58712
1662 PR middle-end/55358
1663 * gimple.c (iterative_hash_canonical_type): Make sure to
1664 record the hash into the correct hashtable slot.
1665
3246afaa
EB
16662013-10-13 Eric Botcazou <ebotcazou@adacore.com>
1667
1668 PR rtl-optimization/58662
1669 * combine.c (try_combine): Take into account death nodes on I2 when
1670 splitting a PARALLEL of two independent SETs. Fix dump message.
1671
5d30dc5b
OE
16722013-10-12 Oleg Endo <olegendo@gcc.gnu.org>
1673
1674 PR target/51244
1675 * config/sh/sh_treg_combine.cc: New SH specific RTL pass.
1676 * config.gcc (SH extra_objs): Add sh_ifcvt.o.
1677 * config/sh/t-sh (sh_treg_combine.o): New entry.
1678 * config/sh/sh.c (sh_fixed_condition_code_regs): New function that
1679 implements the target hook TARGET_FIXED_CONDITION_CODE_REGS.
1680 (register_sh_passes): New function. Register sh_treg_combine pass.
1681 (sh_option_override): Invoke it.
1682 (sh_canonicalize_comparison): Handle op0_preserve_value.
1683 * sh.md (*cbranch_t"): Do not try to optimize missed test and branch
1684 opportunities. Canonicalize branch condition.
1685 (nott): Allow only if pseudos can be created for non-SH2A.
1686
37d1c5db
L
16872013-10-12 H.J. Lu <hongjiu.lu@intel.com>
1688
1689 PR target/58690
1690 * config/i386/i386.c (ix86_copy_addr_to_reg): New function.
1691 (ix86_expand_movmem): Replace copy_addr_to_reg with
1692 ix86_copy_addr_to_reg.
1693 (ix86_expand_setmem): Likewise.
1694
b86a70ff
AM
16952013-10-12 Alexander Monakov <amonakov@ispras.ru>
1696
1697 * config/i386/i386.c (ix86_expand_sse_compare_and_jump): Use mode
1698 provided by ix86_fp_compare_mode instead of CCFPUmode.
1699
6e1d5961
JG
17002013-10-12 James Greenhalgh <james.greenhalgh@arm.com>
1701
1702 * config/aarch64/arm_neon.h
1703 (vtbx<1,3>_<psu>8): Fix register constriants.
1704
ef3cfba2
JL
17052013-10-11 Jeff Law <law@redhat.com>
1706
1707 PR tree-optimization/58640
adcfd489
UB
1708 * tree-ssa-threadupdate.c (mark_threaded_blocks): Truncate jump
1709 threading paths that cross over two loop entry points.
ef3cfba2 1710
6e8b7d9c
BS
17112013-10-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1712
1713 * config/rs6000/vsx.md (*vsx_le_perm_load_v2di): Generalize to
1714 handle vector float as well.
1715 (*vsx_le_perm_load_v4si): Likewise.
1716 (*vsx_le_perm_store_v2di): Likewise.
1717 (*vsx_le_perm_store_v4si): Likewise.
1718
f200869a
BS
17192013-10-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1720
1721 * config/rs6000/vector.md (vec_realign_load<mode>): Generate vperm
1722 directly to circumvent subtract from splat{31} workaround.
1723 * config/rs6000/rs6000-protos.h (altivec_expand_vec_perm_le): New
1724 prototype.
1725 * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): New.
1726 * config/rs6000/altivec.md (define_c_enum "unspec"): Add
1727 UNSPEC_VPERM_X and UNSPEC_VPERM_UNS_X.
1728 (altivec_vperm_<mode>): Convert to define_insn_and_split to
1729 separate big and little endian logic.
1730 (*altivec_vperm_<mode>_internal): New define_insn.
1731 (altivec_vperm_<mode>_uns): Convert to define_insn_and_split to
1732 separate big and little endian logic.
1733 (*altivec_vperm_<mode>_uns_internal): New define_insn.
1734 (vec_permv16qi): Add little endian logic.
1735
8d28e3fc
MG
17362013-10-11 Marc Glisse <marc.glisse@inria.fr>
1737
1738 * doc/extend.texi (returns_nonnull): Remove arguments.
1739
3c87b77b
AI
17402013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1741 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1742 Sergey Lega <sergey.s.lega@intel.com>
1743 Anna Tikhonova <anna.tikhonova@intel.com>
1744 Ilya Tocar <ilya.tocar@intel.com>
1745 Andrey Turetskiy <andrey.turetskiy@intel.com>
1746 Ilya Verbin <ilya.verbin@intel.com>
1747 Kirill Yukhin <kirill.yukhin@intel.com>
1748 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1749
1750 * config/i386/sse.md (VI48F_256_512): New.
1751 (avx2_permvar<mode>): Change to ...
1752 (<avx2_avx512f>_permvar<mode>): This.
1753
50e60d7d
AI
17542013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1755 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1756 Sergey Lega <sergey.s.lega@intel.com>
1757 Anna Tikhonova <anna.tikhonova@intel.com>
1758 Ilya Tocar <ilya.tocar@intel.com>
1759 Andrey Turetskiy <andrey.turetskiy@intel.com>
1760 Ilya Verbin <ilya.verbin@intel.com>
1761 Kirill Yukhin <kirill.yukhin@intel.com>
1762 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1763
6f1abb55 1764 * config/i386/i386.c (bdesc_args): Change corresponding pattern for
50e60d7d
AI
1765 __builtin_ia32_cvtps2dq, __builtin_ia32_cvtps2dq256.
1766 * config/i386/sse.md (VI4_AVX): New.
1767 (sf2simodelower): Ditto.
1768 (sse2_cvtps2dq): Change to ...
1769 (<sse2_avx_avx512f>_fix_notrunc<sf2simodelower><mode>): This.
1770
f62ce24f
AI
17712013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1772 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1773 Sergey Lega <sergey.s.lega@intel.com>
1774 Anna Tikhonova <anna.tikhonova@intel.com>
1775 Ilya Tocar <ilya.tocar@intel.com>
1776 Andrey Turetskiy <andrey.turetskiy@intel.com>
1777 Ilya Verbin <ilya.verbin@intel.com>
1778 Kirill Yukhin <kirill.yukhin@intel.com>
1779 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1780
1781 * config/i386/sse.md (V_512): New.
1782 (VI_512): Ditto.
1783 (vcond<V_512:mode><VF_512:mode>): Ditto.
1784 (vcond<V_512:mode><VI_512:mode>): Ditto.
1785 (vcondu<V_512:mode><VI_512:mode>): Ditto.
1786
558d9f79
AI
17872013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1788 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1789 Sergey Lega <sergey.s.lega@intel.com>
1790 Anna Tikhonova <anna.tikhonova@intel.com>
1791 Ilya Tocar <ilya.tocar@intel.com>
1792 Andrey Turetskiy <andrey.turetskiy@intel.com>
1793 Ilya Verbin <ilya.verbin@intel.com>
1794 Kirill Yukhin <kirill.yukhin@intel.com>
1795 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1796
1797 * config/i386/i386.c (ix86_rtx_costs): Enable fma for TARGET_AVX512F.
1798 * config/i386/sse.md (FMAMODEM): Changed modes and conditions.
1799 (FMAMODE): Ditto.
1800 (fma<mode>4): Removed condition.
1801 (fms<mode>4): Ditto.
1802 (fnma<mode>4): Ditto.
1803 (fnms<mode>4): Ditto.
1804 (fma4i_fmadd_<mode>): Ditto.
1805 (*fma_fmadd_<mode>): Ditto.
1806 (*fma_fmsub_<mode>): Ditto.
1807 (*fma_fnmadd_<mode>): Ditto.
1808 (*fma_fnmsub_<mode>): Ditto.
1809 (fmaddsub_<mode>): Allow for TARGET_AVX512F.
1810 (*fma_fmaddsub_<mode>): Ditto.
1811 (*fma_fmsubadd_<mode>): Ditto.
1812 (*fmai_fmadd_<mode>): Ditto.
1813 (*fmai_fmsub_<mode>): Ditto.
1814 (*fmai_fnmadd_<mode>): Ditto.
1815 (*fmai_fnmsub_<mode>): Ditto.
1816
e8d08206
AI
18172013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1818 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1819 Sergey Lega <sergey.s.lega@intel.com>
1820 Anna Tikhonova <anna.tikhonova@intel.com>
1821 Ilya Tocar <ilya.tocar@intel.com>
1822 Andrey Turetskiy <andrey.turetskiy@intel.com>
1823 Ilya Verbin <ilya.verbin@intel.com>
1824 Kirill Yukhin <kirill.yukhin@intel.com>
1825 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1826
1827 * config/i386/sse.md (VI248_AVX2_8_AVX512F): New.
1828 (VI124_256): Changed to ...
1829 (VI124_256_48_512): This.
1830 (ssepackmode): Extended with wider modes.
1831 (<code><mode>3): Changed iterator.
1832 (*avx2_<code><mode>3): Ditto.
1833 (vec_pack_trunc_<mode>): Ditto.
1834
16821545
AI
18352013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1836 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1837 Sergey Lega <sergey.s.lega@intel.com>
1838 Anna Tikhonova <anna.tikhonova@intel.com>
1839 Ilya Tocar <ilya.tocar@intel.com>
1840 Andrey Turetskiy <andrey.turetskiy@intel.com>
1841 Ilya Verbin <ilya.verbin@intel.com>
1842 Kirill Yukhin <kirill.yukhin@intel.com>
1843 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1844
1845 * config/i386/sse.md (VI124_AVX2_48_AVX512F): New.
1846 (VI8F_256_512): Ditto.
1847 (abs<mode>2): Changed iterator.
1848 (avx2_perm<mode>): Changed to ...
1849 (<avx2_avx512f>_perm<mode>): This.
1850 (avx2_perm<mode>_1): Changed to ...
1851 (<avx2_avx512f>_perm<mode>_1): This.
1852
5348cff8
AI
18532013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1854 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1855 Sergey Lega <sergey.s.lega@intel.com>
1856 Anna Tikhonova <anna.tikhonova@intel.com>
1857 Ilya Tocar <ilya.tocar@intel.com>
1858 Andrey Turetskiy <andrey.turetskiy@intel.com>
1859 Ilya Verbin <ilya.verbin@intel.com>
1860 Kirill Yukhin <kirill.yukhin@intel.com>
1861 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1862
1863 * config/i386/sse.md (VI48_AVX512F): New.
1864 (VI48_AVX2): Changed to ...
1865 (VI48_AVX2_48_AVX512F): This.
1866 (avx2_ashrv<mode>): Changed to ...
1867 (<avx2_avx512f>_ashrv<mode>): This.
1868 (avx2_<shift_insn>v<mode>): Changed to ...
1869 (<avx2_avx512f>_<shift_insn>v<mode>): This.
1870
f5f41d88
AI
18712013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1872 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1873 Sergey Lega <sergey.s.lega@intel.com>
1874 Anna Tikhonova <anna.tikhonova@intel.com>
1875 Ilya Tocar <ilya.tocar@intel.com>
1876 Andrey Turetskiy <andrey.turetskiy@intel.com>
1877 Ilya Verbin <ilya.verbin@intel.com>
1878 Kirill Yukhin <kirill.yukhin@intel.com>
1879 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1880
1881 * config/i386/sse.md (VI4_AVX512F): New.
1882 (VI8_AVX2_AVX512F): Ditto.
1883 (mul<mode>3): Extended with wider modes.
1884 (*<sse4_1_avx2>_mul<mode>3): Ditto.
1885 (mul<mode>3): Ditto.
1886 (vec_widen_<s>mult_odd_<mode>): Ditto.
1887
3bdf6340
AI
18882013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1889 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1890 Sergey Lega <sergey.s.lega@intel.com>
1891 Anna Tikhonova <anna.tikhonova@intel.com>
1892 Ilya Tocar <ilya.tocar@intel.com>
1893 Andrey Turetskiy <andrey.turetskiy@intel.com>
1894 Ilya Verbin <ilya.verbin@intel.com>
1895 Kirill Yukhin <kirill.yukhin@intel.com>
1896 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1897
1898 * config/i386/sse.md (VI2_AVX512F): New.
1899 (VI124_AVX512F): Ditto.
1900 (sseunpackmode): Extended with wider modes.
1901 (sseunpackfltmode): Ditto.
1902 (vec_unpacks_float_hi_<mode>): Ditto.
1903 (vec_unpacks_float_lo_<mode>): Ditto.
1904 (vec_unpacku_float_hi_<mode>): Ditto.
1905 (vec_unpacku_float_lo_<mode>): Ditto.
1906 (vec_unpacks_lo_<mode>): Ditto.
1907 (vec_unpacks_hi_<mode>): Ditto.
1908 (vec_unpacku_lo_<mode>): Ditto.
1909 (vec_unpacku_hi_<mode>): Ditto.
1910
67f783cb
AI
19112013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1912 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1913 Sergey Lega <sergey.s.lega@intel.com>
1914 Anna Tikhonova <anna.tikhonova@intel.com>
1915 Ilya Tocar <ilya.tocar@intel.com>
1916 Andrey Turetskiy <andrey.turetskiy@intel.com>
1917 Ilya Verbin <ilya.verbin@intel.com>
1918 Kirill Yukhin <kirill.yukhin@intel.com>
1919 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1920
1921 * config/i386/i386.md (multdiv): New.
1922 (multdiv_mnemonic): Ditto.
1923 * config/i386/sse.md (<sse>_vmmul<mode>3): Changed to...
1924 (<sse>_vm<multdiv_mnemonic><mode>3): This.
1925 (<sse>_vmdiv<mode>3): Removed.
1926
ec5e777c
AI
19272013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1928 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1929 Sergey Lega <sergey.s.lega@intel.com>
1930 Anna Tikhonova <anna.tikhonova@intel.com>
1931 Ilya Tocar <ilya.tocar@intel.com>
1932 Andrey Turetskiy <andrey.turetskiy@intel.com>
1933 Ilya Verbin <ilya.verbin@intel.com>
1934 Kirill Yukhin <kirill.yukhin@intel.com>
1935 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1936
1937 * config/i386/sse.md (V): Extended with wider modes.
1938 (VF2): Ditto.
1939 (ssehalfvecmode): Ditto.
1940 (i128): Ditto.
1941 (ssepackfltmode): Ditto.
1942 (avx_vec_concat<mode>): Ditto.
1943 (V_256_512): New iterator.
1944 (VF2_512_256): Ditto.
1945 (si2dfmode): New attribute.
1946 (si2dfmodelower): Ditto.
1947 (sf2dfmode): Ditto.
1948 (concat_tg_mode): Ditto.
1949 (floatv4siv4df2): Changed to ...
1950 (float<si2dfmodelower><mode>2): This.
1951 (avx_cvtps2pd256): Changed to ...
1952 (<sse2_avx_avx512f>_cvtps2pd<avxsizesuffix>): This.
1953 (vec_pack_trunc_v4df): Changed to ...
1954 (vec_pack_trunc_<mode>): This.
1955 (avx_vpermil<mode>): Changed to ...
1956 (<sse2_avx_avx512f>_vpermil<mode>): This.
1957 (<fixsuffix>fix_truncv8dfv8si2): New.
1958 (vec_pack_sfix_trunc_v8df): Ditto.
1959 (avx512f_rndscale<mode>): Ditto.
1960 (avx512f_roundpd512): Ditto.
1961 (vec_pack_ufix_trunc_<mode>): Updated iterator.
1962
a9ccbba2
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/i386.md (any_fix): New iterator.
1974 (fixsuffix): New attribute.
1975 * config/i386/sse.md (VF1): Extened with wider modes.
1976 (VI): Ditto.
1977 (VI_AVX2): Ditto.
1978 (VI8): Ditto.
1979 (sseintvecmodelower): Ditto.
1980 (ssescalarmode): Ditto.
1981 (ssescalarnum): Ditto.
1982 (VF1_128_256): New.
1983 (ssexmmmode): Ditto.
1984 (<fixsuffix>fix_truncv16sfv16si2): Ditto.
1985 (<sse>_rcp<mode>2): Change iterator.
1986 (rsqrt<mode>2): Ditto.
1987 (<sse>_rsqrt<mode>2): Ditto.
1988 (avx2_vec_dup<mode>): Ditto.
1989 (<sse4_1>_round<ssemodesuffix>_sfix<avxsizesuffix>): Ditto.
1990 (round<mode>2_sfix): Ditto.
1991 (avx2_pbroadcast<mode>): Ditto.
1992 (*andnot<mode>3): Handle XI mode.
1993 (*<code><mode>3): Ditto.
1994 (AVXTOSSEMODE): Removed.
1995 (avx_vpermil<mode>): Changed to ...
1996 (<sse2_avx_avx512f>_vpermil<mode>): This.
1997
2b1ebb0c
AI
19982013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1999 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2000 Sergey Lega <sergey.s.lega@intel.com>
2001 Anna Tikhonova <anna.tikhonova@intel.com>
2002 Ilya Tocar <ilya.tocar@intel.com>
2003 Andrey Turetskiy <andrey.turetskiy@intel.com>
2004 Ilya Verbin <ilya.verbin@intel.com>
2005 Kirill Yukhin <kirill.yukhin@intel.com>
2006 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2007
2008 * config/i386/sse.md (<sse2>_movnt<mode>): Update constraint to "v".
2009 (<sse>_comi): Ditto.
2010 (<sse>_ucomi): Ditto.
2011 (sse_cvtss2siq_2): Ditto.
2012 (sse2_cvtsd2si): Ditto.
2013 (sse2_cvtsd2siq): Ditto.
2014 (sse2_cvttsd2si): Ditto.
2015 (sse2_cvttsd2siq): Ditto.
2016 (<shift_insn><mode>3): Ditto.
2017 (sse2_cvtsi2sdq): Update constraint and prefix.
2018 (sse_cvtsi2ss): Update prefix.
2019 (sse_cvtsi2ssq): Ditto.
2020
d89124ed
JJ
20212013-10-11 Jakub Jelinek <jakub@redhat.com>
2022
2023 * tree-vrp.c (infer_nonnull_range): Use is_gimple_call,
2024 ignore internal calls.
2025
e6ad28c3
RB
20262013-10-11 Richard Biener <rguenther@suse.de>
2027
6f1abb55
UB
2028 * tree-pretty-print.c (dump_generic_node): Allow to dump both (D)
2029 and (ab) for SSA_NAMEs. Mark INTEGER_CSTs with (OVF) if
2030 TREE_OVERFLOW is set.
e6ad28c3 2031
d1227447
TS
20322013-10-11 Thomas Schwinge <thomas@codesourcery.com>
2033
1ac4b8e4
TS
2034 * tree.h (OMP_CLAUSE_CODE): Remove duplicate definition.
2035
7d05cebb
TS
2036 * gimple.c: GIMPLE statements have subcodes, not sub-codes.
2037 * gimple.h: Likewise.
2038
adcfd489 2039 * doc/generic.texi (OpenMP): OMP_CLAUSE_* are subcodes, not sub-codes.
6545f0b3 2040
1a79fb8a
TS
2041 * doc/generic.texi (Adding new DECL node types): Explain *_CHECK
2042 macros.
2043
3afd2873
TS
2044 * doc/gimple.texi (is_gimple_omp): Move into the correct section.
2045
adcfd489 2046 * acinclude.m4 (gcc_GAS_FLAGS): Add more gcc_cv_as_flags overrides.
d1227447
TS
2047 * configure: Regenerate.
2048
acf0174b
JJ
20492013-10-11 Jakub Jelinek <jakub@redhat.com>
2050
2051 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__LOOPTEMP_
2052 and new OpenMP 4.0 clauses, handle UDR OMP_CLAUSE_REDUCTION,
2053 formatting fixes, use pp_colon instead of pp_character (..., ':'),
2054 similarly pp_right_paren.
2055 (dump_generic_node): Handle OMP_DISTRIBUTE, OMP_TEAMS,
2056 OMP_TARGET_DATA, OMP_TARGET, OMP_TARGET_UPDATE, OMP_TASKGROUP,
2057 allow OMP_FOR_INIT to be NULL, handle OMP_ATOMIC_SEQ_CST.
2058 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add OpenMP 4.0
2059 clauses.
2060 (omp_declare_simd_clauses_equal,
2061 omp_remove_redundant_declare_simd_attrs): New functions.
2062 (attribute_value_equal): Use omp_declare_simd_clauses_equal.
2063 (walk_tree_1): Handle new OpenMP 4.0 clauses.
2064 * tree.h (OMP_LOOP_CHECK): Define.
2065 (OMP_FOR_BODY, OMP_FOR_CLAUSES, OMP_FOR_INIT, OMP_FOR_COND,
2066 OMP_FOR_INCR, OMP_FOR_PRE_BODY): Use it.
2067 (OMP_TASKGROUP_BODY, OMP_TEAMS_BODY, OMP_TEAMS_CLAUSES,
2068 OMP_TARGET_DATA_BODY, OMP_TARGET_DATA_CLAUSES, OMP_TARGET_BODY,
2069 OMP_TARGET_CLAUSES, OMP_TARGET_UPDATE_CLAUSES, OMP_CLAUSE_SIZE,
2070 OMP_ATOMIC_SEQ_CST, OMP_CLAUSE_DEPEND_KIND, OMP_CLAUSE_MAP_KIND,
2071 OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION, OMP_CLAUSE_PROC_BIND_KIND,
2072 OMP_CLAUSE_REDUCTION_OMP_ORIG_REF, OMP_CLAUSE_ALIGNED_ALIGNMENT,
2073 OMP_CLAUSE_NUM_TEAMS_EXPR, OMP_CLAUSE_THREAD_LIMIT_EXPR,
2074 OMP_CLAUSE_DEVICE_ID, OMP_CLAUSE_DIST_SCHEDULE_CHUNK_EXPR,
2075 OMP_CLAUSE_SIMDLEN_EXPR): Define.
2076 (OMP_CLAUSE_DECL): Change range up to OMP_CLAUSE__LOOPTEMP_.
2077 (omp_remove_redundant_declare_simd_attrs): New prototype.
2078 * gimple.def (GIMPLE_OMP_TASKGROUP, GIMPLE_OMP_TARGET,
2079 GIMPLE_OMP_TEAMS): New codes.
2080 (GIMPLE_OMP_RETURN): Use GSS_OMP_ATOMIC_STORE instead of GSS_BASE.
2081 * omp-low.c (struct omp_context): Add cancel_label and cancellable
2082 fields.
2083 (target_nesting_level): New variable.
2084 (extract_omp_for_data): Handle GF_OMP_FOR_KIND_DISTRIBUTE and
2085 OMP_CLAUSE_DIST_SCHEDULE. Don't fallback to library implementation
2086 for collapse > 1 static schedule unless ordered.
2087 (get_ws_args_for): Add par_stmt argument. Handle combined loops.
2088 (determine_parallel_type): Adjust get_ws_args_for caller.
2089 (install_var_field): Handle mask & 4 for double indirection.
2090 (scan_sharing_clauses): Ignore shared clause on teams construct.
2091 Handle OMP_CLAUSE__LOOPTEMP_ and new OpenMP 4.0 clauses.
2092 (create_omp_child_function): If inside target or declare target
adcfd489 2093 constructs, set "omp declare target" attribute on the child function.
acf0174b
JJ
2094 (find_combined_for): New function.
2095 (scan_omp_parallel): Handle combined loops.
2096 (scan_omp_target, scan_omp_teams): New functions.
2097 (check_omp_nesting_restrictions): Check new OpenMP 4.0 nesting
2098 restrictions and set ctx->cancellable for cancellable constructs.
2099 (scan_omp_1_stmt): Call check_omp_nesting_restrictions also on
2100 selected builtin calls. Handle GIMPLE_OMP_TASKGROUP,
2101 GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS.
adcfd489 2102 (build_omp_barrier): Add lhs argument, return gimple rather than tree.
acf0174b 2103 (omp_clause_aligned_alignment): New function.
6f1abb55 2104 (lower_rec_simd_input_clauses): Only call SET_DECL_VALUE_EXPR on decls.
acf0174b
JJ
2105 (lower_rec_input_clauses): Add FD argument. Ignore shared clauses
2106 on teams constructs. Handle user defined reductions and new
2107 OpenMP 4.0 clauses.
2108 (lower_reduction_clauses): Don't set placeholder to address of ref
2109 if it has already the right type.
2110 (lower_send_clauses): Handle OMP_CLAUSE__LOOPTEMP_.
2111 (expand_parallel_call): Use the new non-_start suffixed builtins,
2112 handle OMP_CLAUSE_PROC_BIND, don't call the outlined function
2113 and GOMP_parallel_end after the call.
2114 (expand_task_call): Handle OMP_CLAUSE_DEPEND.
2115 (expand_omp_for_init_counts): Handle combined loops.
2116 (expand_omp_for_init_vars): Add inner_stmt argument, handle combined
2117 loops.
2118 (expand_omp_for_generic): Likewise. Use GOMP_loop_end_cancel at the
2119 end of cancellable loops.
2120 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
2121 Likewise. Handle collapse > 1 loops.
2122 (expand_omp_simd): Handle combined loops.
2123 (expand_omp_for): Add inner_stmt argument, adjust callers of
2124 expand_omp_for* functions, use expand_omp_for_static*chunk even
2125 for collapse > 1 unless ordered.
2126 (expand_omp_sections): Use GOMP_sections_end_cancel at the end
2127 of cancellable sections.
2128 (expand_omp_single): Remove need_barrier variable, just rely on
2129 gimple_omp_return_nowait_p. Adjust build_omp_barrier caller.
2130 (expand_omp_synch): Allow GIMPLE_OMP_TASKGROUP and GIMPLE_OMP_TEAMS.
2131 (expand_omp_atomic_load, expand_omp_atomic_store,
2132 expand_omp_atomic_fetch_op): Handle gimple_omp_atomic_seq_cst_p.
2133 (expand_omp_target): New function.
2134 (expand_omp): Handle combined loops. Handle GIMPLE_OMP_TASKGROUP,
2135 GIMPLE_OMP_TEAMS, GIMPLE_OMP_TARGET.
2136 (build_omp_regions_1): Immediately close region for
2137 GF_OMP_TARGET_KIND_UPDATE.
2138 (maybe_add_implicit_barrier_cancel): New function.
2139 (lower_omp_sections): Adjust lower_rec_input_clauses caller. Handle
2140 cancellation.
2141 (lower_omp_single): Likewise. Add clobber after the barrier.
2142 (lower_omp_taskgroup): New function.
2143 (lower_omp_for): Handle combined loops. Adjust
2144 lower_rec_input_clauses caller. Handle cancellation.
2145 (lower_depend_clauses): New function.
2146 (lower_omp_taskreg): Lower depend clauses. Adjust
2147 lower_rec_input_clauses caller. Add clobber after the call. Handle
2148 cancellation.
2149 (lower_omp_target, lower_omp_teams): New functions.
2150 (lower_omp_1): Handle cancellation. Handle GIMPLE_OMP_TASKGROUP,
2151 GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GOMP_barrier, GOMP_cancel
2152 and GOMP_cancellation_point calls.
2153 (lower_omp): Fold stmts inside of target region.
2154 (diagnose_sb_1, diagnose_sb_2): Handle GIMPLE_OMP_TASKGROUP,
2155 GIMPLE_OMP_TARGET and GIMPLE_OMP_TEAMS.
2156 * builtin-types.def (DEF_FUNCTION_TYPE_8): Document.
2157 (BT_FN_VOID_OMPFN_PTR_UINT,
2158 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
2159 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG,
2160 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): Remove.
2161 (BT_FN_VOID_OMPFN_PTR_UINT_UINT_UINT,
2162 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_UINT,
2163 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG_UINT,
2164 BT_FN_BOOL_INT, BT_FN_BOOL_INT_BOOL, BT_FN_VOID_UINT_UINT,
2165 BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
2166 BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
2167 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): New.
2168 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
2169 call_may_clobber_ref_p_1): Handle BUILT_IN_GOMP_BARRIER_CANCEL,
2170 BUILT_IN_GOMP_TASKGROUP_END, BUILT_IN_GOMP_LOOP_END_CANCEL,
2171 BUILT_IN_GOMP_SECTIONS_END_CANCEL. Don't handle
2172 BUILT_IN_GOMP_PARALLEL_END.
2173 * gimple-low.c (lower_stmt): Handle GIMPLE_OMP_TASKGROUP,
2174 GIMPLE_OMP_TARGET and GIMPLE_OMP_TEAMS.
2175 * gimple-pretty-print.c (dump_gimple_omp_for): Handle
2176 GF_OMP_FOR_KIND_DISTRIBUTE.
2177 (dump_gimple_omp_target, dump_gimple_omp_teams): New functions.
2178 (dump_gimple_omp_block): Handle GIMPLE_OMP_TASKGROUP.
2179 (dump_gimple_omp_return): Print lhs if it has any.
2180 (dump_gimple_omp_atomic_load, dump_gimple_omp_atomic_store): Handle
2181 gimple_omp_atomic_seq_cst_p.
2182 (pp_gimple_stmt_1): Handle GIMPLE_OMP_TASKGROUP, GIMPLE_OMP_TARGET
2183 and GIMPLE_OMP_TEAMS.
2184 * langhooks.c (lhd_omp_mappable_type): New function.
2185 * tree-vectorizer.c (struct simd_array_to_simduid): Fix up comment.
2186 * langhooks.h (struct lang_hooks_for_types): Add omp_mappable_type
2187 hook.
2188 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP,
2189 GOVD_ALIGNED and GOVD_MAP_TO_ONLY.
6f1abb55 2190 (enum omp_region_type): Add ORT_TEAMS, ORT_TARGET_DATA and ORT_TARGET.
acf0174b
JJ
2191 (struct gimplify_omp_ctx): Add combined_loop field.
2192 (gimplify_call_expr, gimplify_modify_expr): Don't call fold_stmt
2193 on stmts inside of target region.
2194 (is_gimple_stmt): Return true for OMP_DISTRIBUTE and OMP_TASKGROUP.
2195 (omp_firstprivatize_variable): Handle GOVD_MAP, GOVD_ALIGNED,
2196 ORT_TARGET and ORT_TARGET_DATA.
2197 (omp_add_variable): Avoid checks on readding var for GOVD_ALIGNED.
2198 Handle GOVD_MAP.
2199 (omp_notice_threadprivate_variable): Complain about threadprivate
2200 variables in target region.
2201 (omp_notice_variable): Complain about vars with non-mappable type
2202 in target region. Handle ORT_TEAMS, ORT_TARGET and ORT_TARGET_DATA.
2203 (omp_check_private): Ignore ORT_TARGET* regions.
2204 (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1,
2205 gimplify_adjust_omp_clauses): Handle new OpenMP 4.0 clauses.
2206 (find_combined_omp_for): New function.
2207 (gimplify_omp_for): Handle gimplification of combined loops.
2208 (gimplify_omp_workshare): Gimplify also OMP_TARGET, OMP_TARGET_DATA,
2209 OMP_TEAMS.
2210 (gimplify_omp_target_update): New function.
2211 (gimplify_omp_atomic): Handle OMP_ATOMIC_SEQ_CST.
2212 (gimplify_expr): Handle OMP_DISTRIBUTE, OMP_TARGET, OMP_TARGET_DATA,
2213 OMP_TARGET_UPDATE, OMP_TEAMS, OMP_TASKGROUP.
2214 (gimplify_body): If fndecl has "omp declare target" attribute, add
2215 implicit ORT_TARGET context around it.
2216 * tree.def (OMP_DISTRIBUTE, OMP_TEAMS, OMP_TARGET_DATA, OMP_TARGET,
2217 OMP_TASKGROUP, OMP_TARGET_UPDATE): New tree codes.
2218 * tree-nested.c (convert_nonlocal_reference_stmt,
2219 convert_local_reference_stmt, convert_gimple_call): Handle
2220 GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
2221 * omp-builtins.def (BUILT_IN_GOMP_TASK): Use
2222 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR
2223 instead of BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT.
2224 (BUILT_IN_GOMP_TARGET, BUILT_IN_GOMP_TARGET_DATA,
2225 BUILT_IN_GOMP_TARGET_END_DATA, BUILT_IN_GOMP_TARGET_UPDATE,
2226 BUILT_IN_GOMP_TEAMS, BUILT_IN_BARRIER_CANCEL,
2227 BUILT_IN_GOMP_LOOP_END_CANCEL,
2228 BUILT_IN_GOMP_SECTIONS_END_CANCEL, BUILT_IN_OMP_GET_TEAM_NUM,
2229 BUILT_IN_OMP_GET_NUM_TEAMS, BUILT_IN_GOMP_TASKGROUP_START,
2230 BUILT_IN_GOMP_TASKGROUP_END, BUILT_IN_GOMP_PARALLEL_LOOP_STATIC,
2231 BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC,
2232 BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED,
2233 BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME, BUILT_IN_GOMP_PARALLEL,
2234 BUILT_IN_GOMP_PARALLEL_SECTIONS, BUILT_IN_GOMP_CANCEL,
2235 BUILT_IN_GOMP_CANCELLATION_POINT): New built-ins.
2236 (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
2237 BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
2238 BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
2239 BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
2240 BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END,
2241 BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Remove.
2242 * tree-inline.c (remap_gimple_stmt, estimate_num_insns):
2243 Handle GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
2244 * gimple.c (gimple_build_omp_taskgroup, gimple_build_omp_target,
2245 gimple_build_omp_teams): New functions.
2246 (walk_gimple_op): Handle GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and
2247 GIMPLE_OMP_TASKGROUP. Walk optional lhs on GIMPLE_OMP_RETURN.
2248 (walk_gimple_stmt, gimple_copy): Handle GIMPLE_OMP_TARGET,
2249 GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
2250 * gimple.h (enum gf_mask): GF_OMP_FOR_KIND_DISTRIBUTE,
2251 GF_OMP_FOR_COMBINED, GF_OMP_FOR_COMBINED_INTO,
2252 GF_OMP_TARGET_KIND_MASK, GF_OMP_TARGET_KIND_REGION,
2253 GF_OMP_TARGET_KIND_DATA, GF_OMP_TARGET_KIND_UPDATE,
2254 GF_OMP_ATOMIC_SEQ_CST): New.
2255 (gimple_build_omp_taskgroup, gimple_build_omp_target,
2256 gimple_build_omp_teams): New prototypes.
2257 (gimple_has_substatements): Handle GIMPLE_OMP_TARGET,
2258 GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
2259 (gimple_omp_subcode): Use GIMPLE_OMP_TEAMS instead of
2260 GIMPLE_OMP_SINGLE as end of range.
2261 (gimple_omp_return_set_lhs, gimple_omp_return_lhs,
2262 gimple_omp_return_lhs_ptr, gimple_omp_atomic_seq_cst_p,
2263 gimple_omp_atomic_set_seq_cst, gimple_omp_for_combined_p,
2264 gimple_omp_for_set_combined_p, gimple_omp_for_combined_into_p,
2265 gimple_omp_for_set_combined_into_p, gimple_omp_target_clauses,
2266 gimple_omp_target_clauses_ptr, gimple_omp_target_set_clauses,
2267 gimple_omp_target_kind, gimple_omp_target_set_kind,
2268 gimple_omp_target_child_fn, gimple_omp_target_child_fn_ptr,
2269 gimple_omp_target_set_child_fn, gimple_omp_target_data_arg,
2270 gimple_omp_target_data_arg_ptr, gimple_omp_target_set_data_arg,
2271 gimple_omp_teams_clauses, gimple_omp_teams_clauses_ptr,
2272 gimple_omp_teams_set_clauses): New inlines.
2273 (CASE_GIMPLE_OMP): Add GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS
2274 and GIMPLE_OMP_TASKGROUP.
adcfd489 2275 * tree-core.h (enum omp_clause_code): Add new OpenMP 4.0 clause codes.
acf0174b
JJ
2276 (enum omp_clause_depend_kind, enum omp_clause_map_kind,
2277 enum omp_clause_proc_bind_kind): New.
2278 (union omp_clause_subcode): Add depend_kind, map_kind and
2279 proc_bind_kind fields.
2280 * tree-cfg.c (make_edges): Handle GIMPLE_OMP_TARGET,
2281 GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
2282 * langhooks-def.h (lhd_omp_mappable_type): New prototype.
2283 (LANG_HOOKS_OMP_MAPPABLE_TYPE): Define.
2284 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
2285
67fa7880
TJ
22862013-10-10 Teresa Johnson <tejohnson@google.com>
2287
2288 * predict.c (tree_estimate_probability): Add new parameter
2289 for estimate_bb_frequencies.
2290 (estimate_bb_frequencies): Add new parameter to force estimation.
2291 (rebuild_frequencies): When max frequency in function is small,
2292 recompute counts from frequencies.
2293 * predict.h (estimate_bb_frequencies): New parameter.
2294
b591a8b7
DM
22952013-10-10 David Malcolm <dmalcolm@redhat.com>
2296
2297 * ipa-inline.c (ipa_inline): Fix leak of "order" when
2298 optimizations are disabled.
2299
782f0db2
DM
23002013-10-10 David Malcolm <dmalcolm@redhat.com>
2301
2302 * coverage.c (coverage_finish): Fix leak of da_file_name.
2303
13ef00fa
JH
23042013-10-10 Jan Hubicka <jh@suse.cz>
2305
2306 * config/i386/x86-tune.def: Enable X86_TUNE_SSE_TYPELESS_STORES
2307 for generic, enable X86_TUNE_SSE_LOAD0_BY_PXOR for Bulldozer,
2308 Bobcat and generic.
2309
a1d50386
JJ
23102013-10-10 Jakub Jelinek <jakub@redhat.com>
2311
2312 PR middle-end/58670
2313 * stmt.c (expand_asm_operands): Add FALLTHRU_BB argument,
2314 if any labels are in FALLTHRU_BB, use a special label emitted
2315 immediately after the asm goto insn rather than label_rtx
2316 of the LABEL_DECL.
2317 (expand_asm_stmt): Adjust caller.
2318 * cfgrtl.c (commit_one_edge_insertion): Force splitting of
2319 edge if the last insn in predecessor is a jump with single successor,
2320 but it isn't simplejump_p.
2321
e2c2fde2
RB
23222013-10-10 Richard Biener <rguenther@suse.de>
2323
2324 PR tree-optimization/58656
6f1abb55 2325 * tree-ssa-pre.c (phi_translate): Do not cache failed translations.
e2c2fde2 2326
de6a5608
AM
23272013-10-10 Andrew MacLeod <amacleod@redhat.com>
2328
adcfd489
UB
2329 * gimplify.c: Include expr.h and tm_p.h for targets with special
2330 va-arg padding requirements.
de6a5608 2331
b184c8f1
AM
23322013-10-10 Andrew MacLeod <amacleod@redhat.com>
2333
2334 * tree-flow.h: Move some prototypes to gimple.h.
2335 (gimple_fold_indirect_ref): Move prototype to gimple-fold.h.
2336 * gimple.h: Relocate some prototypes from tree-flow.h
2337 * builtins.c (std_gimplify_va_arg_expr, build_va_arg_indirect_ref):
2338 Move to gimplify.c.
2339 * gimplify.c (gimple_fold_indirect_ref): Move to gimple-fold.c.
2340 (build_va_arg_indirect_ref): Relocate and make static.
2341 (std_gimplify_va_arg_expr): Relocate here.
2342 * gimple-fold.c (gimple_fold_indirect_ref): Relocate here.
2343 * gimple-fold.h (gimple_fold_indirect_ref): Add prototype.
2344
13b72c22
AK
23452013-10-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2346
2347 * doc/md.texi: Document the mnemonic attribute.
2348
5db40447
AK
23492013-10-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2350
2351 PR target/57377
2352 * gensupport.c (gen_mnemonic_attr): Handle (set (attr x) y) and
2353 (set_attr_alternative x ...) when searching for user defined
2354 mnemonic attribute.
2355
ed018d4b
AM
23562013-10-10 Andrew MacLeod <amacleod@redhat.com>
2357
2358 * config/aplha/alpha.c: Add gimple-ssa.h to include list.
2359
4d5b5e9f
ER
23602013-10-09 Easwaran Raman <eraman@google.com>
2361
2362 * params.def (PARAM_MIN_SIZE_FOR_STACK_SHARING): New param...
2363 * cfgexpand.c (defer_stack_allocation): ...use here
2364 * doc/invoke.texi: Add documentation for min-size-for-stack-sharing.
2365
c9ef86a1
ZC
23662013-10-09 Zhenqiang Chen <zhenqiang.chen@arm.com>
2367
2368 * tree-ssa-phiopts.c (rhs_is_fed_for_value_replacement): New function.
2369 (operand_equal_for_value_replacement): New function, extracted from
2370 value_replacement and enhanced to catch more cases.
2371 (value_replacement): Use operand_equal_for_value_replacement.
2372
2431114f
AM
23732013-10-09 Andrew MacLeod <amacleod@redhat.com>
2374
adcfd489 2375 * loop-doloop.c (doloop_modify, doloop_optimize): Use
2431114f
AM
2376 get_max_loop_iterations.
2377
1dd2a9a0
KT
23782013-10-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2379
2380 * config/arm/aarch-common.c (arm_early_load_addr_dep):
2381 Place comment above function.
2382
c1bf2a39
AM
23832013-10-09 Andrew MacLeod <amacleod@redhat.com>
2384
2385 * tree-flow.h: Remove all remaining prototypes, enums and structs that
2386 are not related to tree-cfg.c.
2387 * tree-ssa-address.h: New file. Relocate prototypes.
2388 * tree-ssa-address.c: (struct mem_address): Relocate from tree-flow.h.
2389 (addr_for_mem_ref): New. Combine call to get_address_description and
2390 return addr_for_mem_ref.
2391 * expr.c (expand_expr_real_1): Use new addr_for_mem_ref routine.
2392 * tree-ssa-live.h: Adjust prototypes.
2393 * passes.c: Include tree-ssa-live.h.
2394 * gimple-pretty-print.h (gimple_dump_bb): Add prototype.
2395 * graphite.c (graphite_transform_loops): Make static.
2396 (graphite_transforms, gate_graphite_transforms, pass_data_graphite,
adcfd489 2397 make_pass_graphite, pass_data_graphite_transforms,
c1bf2a39
AM
2398 make_pass_graphite_transforms): Relocate here from tree-ssa-loop.c.
2399 * ipa-pure-const.c (warn_function_noreturn): Make static.
2400 (execute_warn_function_noreturn, gate_warn_function_noreturn,
2401 class pass_warn_function_noreturn, make_pass_warn_function_noreturn):
2402 Relocate from tree-cfg.c
2403 * tree-cfg.c (tree_node_can_be_shared, gimple_empty_block_p): Make
2404 static.
2405 (execute_warn_function_noreturn, gate_warn_function_noreturn,
2406 class pass_warn_function_noreturn, make_pass_warn_function_noreturn):
2407 Move to ipa-pure-const.c.
adcfd489
UB
2408 (execute_fixup_cfg, class pass_fixup_cfg, make_pass_fixup_cfg):
2409 Relocate from tree-optimize.c.
c1bf2a39
AM
2410 * tree-optimize.c (execute_fixup_cfg, class pass_fixup_cfg,
2411 make_pass_fixup_cfg): Move to tree-cfg.c.
2412 * tree-chrec.h: (enum ev_direction): Relocate here from tree-flow.h.
2413 Relocate some prototypes.
2414 * tree-data-ref.h (tree_check_data_deps) Add prototype.
2415 * tree-dump.c (dump_function_to_file): Remove prototype.
2416 Add tree-flow.h to the include file.
2417 * tree-dump.h: Remove prototype.
2418 * tree-parloops.h: New File. Add prototypes.
2419 * tree-parloops.c (gate_tree_parallelize_loops, tree_parallelize_loops,
2420 pass_data_parallelize_loops, make_pass_parallelize_loops): Relocate
2421 from tree-ssa-loop.c.
2422 * tree-predcom.c (run_tree_predictive_commoning,
2423 gate_tree_predictive_commoning, pass_data_predcom, make_pass_predcom):
2424 Relocate here from tree-ssa-loop.c.
adcfd489 2425 * tree-ssa-dom.c (tree_ssa_dominator_optimize) Don't call
c1bf2a39
AM
2426 ssa_name_values.release ().
2427 * tree-ssa-threadedge.h: New File. Relocate prototypes here.
2428 (ssa_name_values): Relocate from tree-flow.h.
2429 * tree-ssa.h: Include tree-ssa-threadedge.h and tree-ssa-address.h.
2430 * tree-ssa-loop.c (run_tree_predictive_commoning,
2431 gate_tree_predictive_commoning, pass_data_predcom, make_pass_predcom,
2432 graphite_transforms, gate_graphite_transforms, pass_data_graphite,
2433 make_pass_graphite, pass_data_graphite_transforms,
2434 make_pass_graphite_transforms, gate_tree_parallelize_loops,
2435 tree_parallelize_loops, pass_data_parallelize_loops,
2436 make_pass_parallelize_loops): Move to other files.
2437 * tree-vectorizer.h (lpeel_tree_duplicate_loop_to_edge_cfg): Prototype
2438 moved here.
2439 * tree.h: Remove prototypes from tree-address.c.
2440
cc524fc7
AM
24412013-10-09 Andrew MacLeod <amacleod@redhat.com>
2442
2443 * tree-flow.h (tm_restart_node, gimple_df): Move to gimple-ssa.h.
2444 (struct int_tree_map): Move to tree-hasher.h
2445 (SCALE, LABEL, PERCENT): Move to gimple.h
2446 * tree-flow-inline.h: Delete. Move functions to other files.
2447 (unmodifiable_var_p, ref_contains_array_ref): Unused, so delete.
2448 * gimple-ssa.h (tm_restart_node, gimple_df): Relocate from tree-flow.h.
2449 (gimple_in_ssa_p, gimple_vop): Relocate from tree-flow-inline.h
2450 * gimple.h (imple_stmt_max_uid, set_gimple_stmt_max_uid,
2451 inc_gimple_stmt_max_uid, get_lineno): Relocate from tree-flow-inline.h.
2452 (SCALE, LABEL, PERCENT): Relocate from tree-flow.h
2453 * tree-hasher.h: Don't include tree-flow.h.
2454 (struct int_tree_map): Relocate from tree-flow.h.
2455 * tree-sra.c (contains_view_convert_expr_p): Relocate from
2456 tree-flow-inline.h and make static.
adcfd489
UB
2457 * tree-ssa-alias.h (ranges_overlap_p): Relocate from
2458 tree-flow-inline.h.
cc524fc7
AM
2459 * tree-ssa-operands.c (gimple_ssa_operands): Relocate from
2460 tree-flow-inline.h and make static.
2461 * tree.h (is_global_var, may_be_aliased): Relocate from
2462 tree-flow-inline.h.
2463 * Makefile.in (GTFILES): Remove tree-flow.h and add gimple-ssa.h.
2464 * value-prof.c: No longer include tree-flow-inline.h.
2465 * tree-switch-conversion.c: No longer include tree-flow-inline.h.
2466
71343877
AM
24672013-10-09 Andrew MacLeod <amacleod@redhat.com>
2468
2469 * tree-flow.h: Move some protoypes. Include new tree-ssa-loop.h.
2470 (struct affine_iv, struct tree_niter_desc): Move to tree-ssa-loop.h.
2471 (enum move_pos): Move to tree-ssa-loop-im.h
2472 * cfgloop.h: Move some prototypes.
2473 (gcov_type_to_double_int): relocate from tree-ssa-loop.niter.c.
2474 * tree-flow-inline.h (loop_containing_stmt): Move to tree-ssa-loop.h.
2475 * tree-ssa-loop.h: New File. Include other tree-ssa-loop-*.h files.
2476 (struct affine_iv, struct tree_niter_desc): Relocate from tree-flow.h.
2477 (loop_containing_stmt): Relocate from tree-flow-inline.h.
2478 * tree-ssa-loop-ch.c: (do_while_loop_p): Make static.
2479 * tree-ssa-loop-im.c (for_each_index): Move to tree-ssa-loop.c.
2480 (enum move_pos): Relocate here.
2481 (lsm_tmp_name_add, gen_lsm_tmp_name, get_lsm_tmp_name): Move to
2482 tree-ssa-loop.c.
2483 (execute_sm_if_changed_flag_set): Change get_lsm_tmp_name call.
adcfd489
UB
2484 (tree_ssa_loop_im, gate_tree_ssa_loop_im, pass_data_lim,
2485 make_pass_lim): Relocate here from tree-ssa-loop.c.
2486 * tree-ssa-loop-ivcanon.c (tree_num_loop_insns): Move to
71343877
AM
2487 tree-ssa-loop.c.
2488 (loop_edge_to_cancel, unloop_loops): Make static.
2489 (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_data_iv_canon,
2490 make_pass_iv_canon): Relocate from tree-ssa-loop.c.
2491 (tree_complete_unroll, gate_tree_complete_unroll,
2492 pass_data_complete_unroll, make_pass_complete_unroll): Relocate here.
2493 (tree_complete_unroll_inner, gate_tree_complete_unroll_inner,
2494 pass_data_complete_unrolli, make_pass_complete_unrolli): Relocate here.
2495 * tree-ssa-loop-ivopts.c: Remove local prototypes.
2496 (stmt_invariant_in_loop_p): Remove unused function.
2497 * tree-ssa-loop-ivopts.h: New file. Add prototypes.
2498 * tree-ssa-loop-manip.h: New file. Add prototypes.
2499 * tree-ssa-loop-niter.c (record_niter_bound): Move to cfgloop.c.
2500 (gcov_type_to_double_int): Move to cfgloop.h.
2501 (double_int_cmp, bound_index,
2502 estimate_numbers_of_iterations_loop): Make static.
2503 (estimated_loop_iterations): Factor out get_estimated_loop_iterations.
2504 (max_loop_iterations): Factor out get_max_loop_iterations.
2505 (estimated_loop_iterations_int, max_stmt_executions_int): Move to
2506 cfgloop.c.
2507 * tree-ssa-loop-niter.h: New file. Add prototypes.
2508 * tree-ssa-loop-prefetch.c (tree_ssa_loop_prefetch,
2509 gate_tree_ssa_loop_prefetch, pass_data_loop_prefetch,
2510 make_pass_loop_prefetch): Relocate from tree-ssa-loop.c.
2511 * tree-ssa-loop-unswitch.c (tree_ssa_loop_unswitch,
2512 gate_tree_ssa_loop_unswitch, pass_data_tree_unswitch,
2513 make_pass_tree_unswitch): Relocate from tree-ssa-loop.c.
2514 * tree-ssa-loop.c (tree_ssa_loop_im, gate_tree_ssa_loop_im,
2515 pass_data_lim, make_pass_lim): Move to tree-ssa-loop-im.c.
2516 (tree_ssa_loop_unswitch, gate_tree_ssa_loop_unswitch,
2517 pass_data_tree_unswitch, make_pass_tree_unswitch): Move.
2518 (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_data_iv_canon,
2519 make_pass_iv_canon, tree_complete_unroll, gate_tree_complete_unroll,
2520 pass_data_complete_unroll, make_pass_complete_unroll,
2521 tree_complete_unroll_inner, gate_tree_complete_unroll_inner,
2522 pass_data_complete_unrolli, make_pass_complete_unrolli): Move to
2523 tree-ssa-loop-ivcanon.c.
2524 (tree_ssa_loop_prefetch, gate_tree_ssa_loop_prefetch,
2525 pass_data_loop_prefetch, make_pass_loop_prefetch): Move to
2526 tree-ssa-loop-prefetch.c.
2527 (for_each_index, lsm_tmp_name_add, gen_lsm_tmp_name): Relocate from
2528 tree-ssa-loop-im.c.
2529 (get_lsm_tmp_name): Relocate and add suffix parameter.
2530 (tree_num_loop_insns): Relocate from tree-ssa-ivcanon.c.
2531 * tree-scalar-evolution.h (simple_iv): Don't use affive_iv typedef.
2532 * cfgloop.c (record_niter_bound, estimated_loop_iterations_int,
2533 max_stmt_executions_int): Move from tree-ssa-loop-niter.c.
adcfd489 2534 (get_estimated_loop_iterations): Factor out accessor from
71343877 2535 estimated_loop_iterations in tree-ssa-loop-niter.c.
adcfd489
UB
2536 (get_max_loop_iterations): Factor out accessor from
2537 _max_loop_iterations in tree-ssa-niter.c.
71343877
AM
2538 * loop-unroll.c (decide_unroll_constant_iterations,
2539 decide_unroll_runtime_iterations, decide_peel_simple,
2540 decide_unroll_stupid): Use new get_* accessors.
2541
826cacfe
MG
25422013-10-09 Marc Glisse <marc.glisse@inria.fr>
2543
2544 PR tree-optimization/20318
2545 * doc/extend.texi (returns_nonnull): New function attribute.
2546 * fold-const.c (tree_expr_nonzero_warnv_p): Look for returns_nonnull
2547 attribute.
2548 * tree-vrp.c (gimple_stmt_nonzero_warnv_p): Likewise.
2549 (stmt_interesting_for_vrp): Accept all GIMPLE_CALL.
2550
378f8976
EB
25512013-10-09 Eric Botcazou <ebotcazou@adacore.com>
2552
2553 PR middle-end/58570
2554 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): Return
2555 false if both components are bitfields.
2556
0fe04f5c
AV
25572013-10-09 Alex Velenko <Alex.Velenko@arm.com>
2558
2559 * config/aarch64/arm_neon.h (vclz_s8, vclz_s16, vclz_s32)
2560 (vclzq_s8, vclzq_s16, vclzq_s32, vclz_u8, vclz_u16, vclz_u32)
2561 (vclzq_u8, vclzq_u16, vclzq_u32): Replace ASM with C.
2562 * config/aarch64/aarch64.h
2563 (CLZ_DEFINED_VALUE_AT_ZERO): Macro fixed for clz.
2564 * config/aarch64/aarch64-simd-builtins.def
2565 (VAR1 (UNOP, clz, 0, v4si)): Replaced with iterator.
2566
bed9bae4
AV
25672013-10-09 Alex Velenko <Alex.Velenko@arm.com>
2568
2569 * config/aarch64/arm_neon.h (vadd_f64, vsub_f64): Implementation added.
2570
7f3d8b19
AV
25712013-10-09 Alex Velenko <Alex.Velenko@arm.com>
2572
2573 * config/aarch64/arm_neon.h (vdiv_f64): Added.
2574
7df625a6
AV
25752013-10-09 Alex Velenko <Alex.Velenko@arm.com>
2576
2577 * config/aarch64/arm_neon.h (vneg_f32): Asm replaced with C.
2578 (vneg_f64): New intrinsic.
2579 (vneg_s8): Asm replaced with C.
2580 (vneg_s16): Likewise.
2581 (vneg_s32): Likewise.
2582 (vneg_s64): New intrinsic.
2583 (vnegq_f32): Asm replaced with C.
2584 (vnegq_f64): Likewise.
2585 (vnegq_s8): Likewise.
2586 (vnegq_s16): Likewise.
2587 (vnegq_s32): Likewise.
2588 (vnegq_s64): Likewise.
2589
2b86fca7
RL
25902013-10-09 Renlin Li <Renlin.Li@arm.com>
2591
2592 * config/arm/arm.c (arm_output_mi_thunk): Use plus_constant.
2593
e179df83
AK
25942013-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2595
2596 * config/s390/s390.c (s390_register_info_stdarg_fpr): Remove
2597 packed stack special handling.
2598 (s390_frame_info, s390_emit_prologue, s390_emit_epilogue): Switch
2599 back to fixed stack slots for FPRs saved due to stdarg.
2600
74129172
AK
26012013-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2602
2603 * config/s390/s390.c (s390_frame_info): Restructure function.
2604
6455a49e
AK
26052013-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2606
2607 * config/s390/s390.c (struct s390_frame_layout): New field
2608 gpr_save_slots.
2609 (cfun_save_arg_fprs_p, cfun_gpr_save_slot): New macros.
2610 (s390_reg_clobbered_rtx, s390_regs_ever_clobbered): Change type of
2611 regs_ever_clobbered to char*.
adcfd489
UB
2612 (s390_regs_ever_clobbered): Check crtl->saves_all_registers instead
2613 of cfun->has_nonlocal_label. Ignore frame related restore INSNs.
6455a49e
AK
2614 (s390_register_info): Enable FPR save slots. Move/Copy some
2615 functionality into ...
2616 (s390_register_info_gprtofpr, s390_register_info_stdarg_fpr)
2617 (s390_register_info_stdarg_gpr, s390_optimize_register_info): New
2618 function.
2619 (s390_frame_info): Do gpr slot allocation here now. stdarg does
2620 not imply a stack frame.
2621 (s390_init_frame_layout): Remove variable clobbered_regs.
2622 (s390_update_register_info): Remove function.
2623 (s390_hard_regno_rename_ok): Call-saved regs without a save slot
2624 cannot be used for register renaming.
2625 (s390_hard_regno_scratch_ok): New function.
2626 (TARGET_HARD_REGNO_SCRATCH_OK): Define target hook.
2627 (s390_initial_elimination_offset): Change offset calculation of
2628 the return address pointer.
adcfd489 2629 (save_gprs): Deal with only r6 being saved from the call-saved regs.
6455a49e 2630 (restore_gprs): Set frame related flag.
adcfd489 2631 (s390_save_gprs_to_fprs, s390_restore_gprs_from_fprs): New functions.
6455a49e
AK
2632 (s390_emit_prologue): Call s390_register_info instead of
2633 s390_update_frame_layout. Call s390_save_gprs_to_fprs.
2634 (s390_emit_epilogue): Call s390_restore_gprs_from_fprs.
2635 (s390_optimize_prologue): Call s390_optimize_register_info.
2636 Try to remove also FPR slot save/restore INSNs. Remove frame
2637 related flags from restore INSNs.
2638
59d96342
DD
26392013-10-08 DJ Delorie <dj@redhat.com>
2640
0dc7adad
DD
2641 * config/rl78/rl78-expand.md (movqi): use operands[] not operandN.
2642 (movhi): Likewise.
2643
59d96342
DD
2644 * config/rl78/rl78.c (rl78_print_operand_1): Change %c to %C to
2645 avoid conflict with the MI use of %c.
2646 * config/rl78/rl78-real.md: change %c to %C throughout.
2647 * config/rl78/rl78-virt.md: Likewise.
2648
a81169d8
JH
26492013-10-08 Jan Hubicka <jh@suse.cz>
2650
2651 * config/i386/i386.c (ix86_option_override_internal): Switch
2652 to SSE math for -ffast-math when target ISA supports SSE2.
2653
481d1b81
AM
26542013-10-08 Andrew MacLeod <amacleod@redhat.com>
2655
2656 * tree-flow.h: Remove some prototypes.
2657 * tree.h: Remove some protypes, add a couple.
2658 * tree.c (using_eh_for_cleanups_flag, using_eh_for_cleanups,
2659 using_eh_for_cleanups_p): Add interface routines for front ends.
2660 * tree-eh.h: New file. Add protoptyes.
2661 * tree-eh.c (using_eh_for_cleanups_p, using_eh_for_cleanups): Delete.
2662 (add_stmt_to_eh_lp_fn): Make static.
2663 (lower_try_finally): Use new using_eh_for_cleanups_p.
2664 * emit-rtl.c: Include tree-eh.h.
2665 * gimple.h: Include tree-eh.h.
2666
0e6a0e48
MG
26672013-10-08 Marc Glisse <marc.glisse@inria.fr>
2668
2669 PR tree-optimization/58480
2670 * tree-vrp.c (infer_nonnull_range): New function.
2671 (infer_value_range): Call infer_nonnull_range.
2672
ef6179d1
DC
26732013-10-08 Dehao Chen <dehao@google.com>
2674
2675 PR tree-optimization/58619
2676 * tree-inline.c (copy_phis_for_bb): Combine location data
2677 only if non-null.
2678
07d964d5
ZC
26792013-10-08 Zhenqiang Chen <zhenqiang.chen@linaro.org>
2680
2681 PR target/58423
2682 * config/arm/arm.c (arm_emit_ldrd_pop): Attach
2683 RTX_FRAME_RELATED_P on INSN.
2684
19e9b2a3
BS
26852013-10-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2686
2687 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const_le): New.
2688 (altivec_expand_vec_perm_const): Call it.
2689
0cf68694
BS
26902013-10-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2691
2692 * config/rs6000/vector.md (mov<mode>): Emit permuted move
2693 sequences for LE VSX loads and stores at expand time.
2694 * config/rs6000/rs6000-protos.h (rs6000_emit_le_vsx_move): New
2695 prototype.
2696 * config/rs6000/rs6000.c (rs6000_const_vec): New.
2697 (rs6000_gen_le_vsx_permute): New.
2698 (rs6000_gen_le_vsx_load): New.
2699 (rs6000_gen_le_vsx_store): New.
2700 (rs6000_gen_le_vsx_move): New.
2701 * config/rs6000/vsx.md (*vsx_le_perm_load_v2di): New.
2702 (*vsx_le_perm_load_v4si): New.
2703 (*vsx_le_perm_load_v8hi): New.
2704 (*vsx_le_perm_load_v16qi): New.
2705 (*vsx_le_perm_store_v2di): New.
2706 (*vsx_le_perm_store_v4si): New.
2707 (*vsx_le_perm_store_v8hi): New.
2708 (*vsx_le_perm_store_v16qi): New.
2709 (*vsx_xxpermdi2_le_<mode>): New.
2710 (*vsx_xxpermdi4_le_<mode>): New.
2711 (*vsx_xxpermdi8_le_V8HI): New.
2712 (*vsx_xxpermdi16_le_V16QI): New.
2713 (*vsx_lxvd2x2_le_<mode>): New.
2714 (*vsx_lxvd2x4_le_<mode>): New.
2715 (*vsx_lxvd2x8_le_V8HI): New.
2716 (*vsx_lxvd2x16_le_V16QI): New.
2717 (*vsx_stxvd2x2_le_<mode>): New.
2718 (*vsx_stxvd2x4_le_<mode>): New.
2719 (*vsx_stxvd2x8_le_V8HI): New.
2720 (*vsx_stxvd2x16_le_V16QI): New.
2721
9520e1eb
RL
27222013-10-07 Renlin Li <Renlin.Li@arm.com>
2723
2724 * config/arm/arm-cores.def (cortex-a53): Use cortex tuning.
2725
36c0bd4f
AK
27262013-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2727
2728 * config/s390/s390.c (s390_register_info): Make the call-saved FPR
2729 loop to work also for 31bit ABI.
2730 Save the stack pointer for frame_size > 0.
2731
ee163e72
AK
27322013-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2733
2734 * config/s390/s390.md ("tbegin", "tbegin_nofloat", "tbegin_retry")
2735 ("tbegin_retry_nofloat", "tend", "tabort", "tx_assist"): Remove
2736 constraint letters from expanders.
2737 ("tbegin_retry", "tbegin_retry_nofloat"): Change predicate of the
2738 retry count to general_operand.
2739 ("tabort"): Give operand 0 a mode.
2740 ("tabort_1"): Add mode and constraint letter for operand 0.
2741 * doc/extend.texi: Fix protoype of __builtin_non_tx_store.
2742
45d99234
JL
27432013-10-04 Jeff Law <law@redhat.com>
2744
2745 * tree-ssa-threadedge.c: Fix some trailing whitespace problems.
2746
adcfd489
UB
2747 * tree-ssa-threadedge.c (thread_through_normal_block): Broken
2748 out of ...
45d99234
JL
2749 (thread_across_edge): Here. Call it.
2750
7c327f7b
CC
27512013-10-04 Cary Coutant <ccoutant@google.com>
2752
2753 * dwarf2out.c (dw_sra_loc_expr): Release addr_table entries when
adcfd489 2754 discarding a location list expression (or a piece of one).
7c327f7b 2755
6867e128
JH
27562013-10-03 Jan Hubicka <jh@suse.cz>
2757
65efa7e7
UB
2758 * config/i386/i386.c (ix86_issue_rate): Pentium4, Nocona has issue
2759 rate of 2. Core2, Corei7 and Haswell has issue rate of 4.
3700bce3 2760 (ix86_adjust_cost): Remove Atom case; fix core2/corei7/Haswell case.
6867e128 2761
c7f36d55
JH
27622013-10-03 Jan Hubicka <jh@suse.cz>
2763
65efa7e7 2764 * config/i386/i386.c (ix86_option_override_internal): Do not enable
c7f36d55
JH
2765 accumulate-outgoing-args when producing unwind info.
2766
4f0bee4c
WM
27672013-10-03 Wei Mi <wmi@google.com>
2768
2769 * lra-constraints.c (insert_move_for_subreg): New function
2770 extracted from simplify_operand_subreg.
2771 (simplify_operand_subreg): Add reload for paradoxical subreg.
2772
111c3f39
RX
27732013-10-03 Rong Xu <xur@google.com>
2774
65efa7e7
UB
2775 * ipa-inline-analysis.c (find_foldable_builtin_expect): Find
2776 the candidate of builtin_expect such that we should fix the
2777 size/time estimation.
2778 (estimate_function_body_sizes): Do the acutally size/time fix-up
2779 for builtin_expect.
111c3f39 2780
942df739
RX
27812013-10-03 Rong Xu <xur@google.com>
2782
65efa7e7
UB
2783 * predict.c (tree_predict_by_opcode): Get the probability
2784 for builtin_expect from param builtin_expect_probability.
2785 * params.def (BUILTIN_EXPECT_PROBABILITY): New parameter.
2786 * predict.def (PRED_BUILTIN_EXPECT_RELAXED): Fix comments.
2787 * doc/invoke.texi: Add documentation for builtin-expect-probability.
942df739 2788
2284b034
MG
27892013-10-03 Marc Glisse <marc.glisse@inria.fr>
2790
2791 PR c++/19476
2792 * common.opt (fcheck-new): Moved from c.opt. Make it 'Common'.
2793 * calls.c (alloca_call_p): Use get_callee_fndecl.
2794 * fold-const.c (tree_expr_nonzero_warnv_p): Handle operator new.
2795 * tree-vrp.c (gimple_stmt_nonzero_warnv_p, stmt_interesting_for_vrp):
2796 Likewise.
2797 (vrp_visit_stmt): Remove duplicated code.
2798
0609bdf2
MM
27992013-10-03 Michael Meissner <meissner@linux.vnet.ibm.com>
2800
2801 * config/rs6000/rs6000-builtin.def (XSRDPIM): Use floatdf2,
2802 ceildf2, btruncdf2, instead of vsx_* name.
2803
2804 * config/rs6000/vsx.md (vsx_add<mode>3): Change arithmetic
2805 iterators to only do V2DF and V4SF here. Move the DF code to
2806 rs6000.md where it is combined with SF mode. Replace <VSv> with
2807 just 'v' since only vector operations are handled with these insns
2808 after moving the DF support to rs6000.md.
2809 (vsx_sub<mode>3): Likewise.
2810 (vsx_mul<mode>3): Likewise.
2811 (vsx_div<mode>3): Likewise.
2812 (vsx_fre<mode>2): Likewise.
2813 (vsx_neg<mode>2): Likewise.
2814 (vsx_abs<mode>2): Likewise.
2815 (vsx_nabs<mode>2): Likewise.
2816 (vsx_smax<mode>3): Likewise.
2817 (vsx_smin<mode>3): Likewise.
2818 (vsx_sqrt<mode>2): Likewise.
2819 (vsx_rsqrte<mode>2): Likewise.
2820 (vsx_fms<mode>4): Likewise.
2821 (vsx_nfma<mode>4): Likewise.
2822 (vsx_copysign<mode>3): Likewise.
2823 (vsx_btrunc<mode>2): Likewise.
2824 (vsx_floor<mode>2): Likewise.
2825 (vsx_ceil<mode>2): Likewise.
2826 (vsx_smaxsf3): Delete scalar ops that were moved to rs6000.md.
2827 (vsx_sminsf3): Likewise.
2828 (vsx_fmadf4): Likewise.
2829 (vsx_fmsdf4): Likewise.
2830 (vsx_nfmadf4): Likewise.
2831 (vsx_nfmsdf4): Likewise.
2832 (vsx_cmpdf_internal1): Likewise.
2833
2834 * config/rs6000/rs6000.h (TARGET_SF_SPE): Define macros to make it
2835 simpler to select whether a target has SPE or traditional floating
2836 point support in iterators.
2837 (TARGET_DF_SPE): Likewise.
2838 (TARGET_SF_FPR): Likewise.
2839 (TARGET_DF_FPR): Likewise.
2840 (TARGET_SF_INSN): Macros to say whether floating point support
2841 exists for a given operation for expanders.
2842 (TARGET_DF_INSN): Likewise.
2843
2844 * config/rs6000/rs6000.c (Ftrad): New mode attributes to allow
2845 combining of SF/DF mode operations, using both traditional and VSX
2846 registers.
2847 (Fvsx): Likewise.
2848 (Ff): Likewise.
2849 (Fv): Likewise.
2850 (Fs): Likewise.
2851 (Ffre): Likewise.
2852 (FFRE): Likewise.
2853 (abs<mode>2): Combine SF/DF modes using traditional floating point
2854 instructions. Add support for using the upper DF registers with
2855 VSX support, and SF registers with power8-vector support. Update
2856 expanders for operations supported by both the SPE and traditional
2857 floating point units.
2858 (abs<mode>2_fpr): Likewise.
2859 (nabs<mode>2): Likewise.
2860 (nabs<mode>2_fpr): Likewise.
2861 (neg<mode>2): Likewise.
2862 (neg<mode>2_fpr): Likewise.
2863 (add<mode>3): Likewise.
2864 (add<mode>3_fpr): Likewise.
2865 (sub<mode>3): Likewise.
2866 (sub<mode>3_fpr): Likewise.
2867 (mul<mode>3): Likewise.
2868 (mul<mode>3_fpr): Likewise.
2869 (div<mode>3): Likewise.
2870 (div<mode>3_fpr): Likewise.
2871 (sqrt<mode>3): Likewise.
2872 (sqrt<mode>3_fpr): Likewise.
2873 (fre<Fs>): Likewise.
2874 (rsqrt<mode>2): Likewise.
2875 (cmp<mode>_fpr): Likewise.
2876 (smax<mode>3): Likewise.
2877 (smin<mode>3): Likewise.
2878 (smax<mode>3_vsx): Likewise.
2879 (smin<mode>3_vsx): Likewise.
2880 (negsf2): Delete SF operations that are merged with DF.
2881 (abssf2): Likewise.
2882 (addsf3): Likewise.
2883 (subsf3): Likewise.
2884 (mulsf3): Likewise.
2885 (divsf3): Likewise.
2886 (fres): Likewise.
2887 (fmasf4_fpr): Likewise.
2888 (fmssf4_fpr): Likewise.
2889 (nfmasf4_fpr): Likewise.
2890 (nfmssf4_fpr): Likewise.
2891 (sqrtsf2): Likewise.
2892 (rsqrtsf_internal1): Likewise.
2893 (smaxsf3): Likewise.
2894 (sminsf3): Likewise.
2895 (cmpsf_internal1): Likewise.
2896 (copysign<mode>3_fcpsgn): Add VSX/power8-vector support.
2897 (negdf2): Delete DF operations that are merged with SF.
2898 (absdf2): Likewise.
2899 (nabsdf2): Likewise.
2900 (adddf3): Likewise.
2901 (subdf3): Likewise.
2902 (muldf3): Likewise.
2903 (divdf3): Likewise.
2904 (fred): Likewise.
2905 (rsqrtdf_internal1): Likewise.
2906 (fmadf4_fpr): Likewise.
2907 (fmsdf4_fpr): Likewise.
2908 (nfmadf4_fpr): Likewise.
2909 (nfmsdf4_fpr): Likewise.
2910 (sqrtdf2): Likewise.
2911 (smaxdf3): Likewise.
2912 (smindf3): Likewise.
2913 (cmpdf_internal1): Likewise.
2914 (lrint<mode>di2): Use TARGET_<MODE>_FPR macro.
2915 (btrunc<mode>2): Delete separate expander, and combine with the
2916 insn and add VSX instruction support. Use TARGET_<MODE>_FPR.
2917 (btrunc<mode>2_fpr): Likewise.
2918 (ceil<mode>2): Likewise.
2919 (ceil<mode>2_fpr): Likewise.
2920 (floor<mode>2): Likewise.
2921 (floor<mode>2_fpr): Likewise.
2922 (fma<mode>4_fpr): Combine SF and DF fused multiply/add support.
2923 Add support for using the upper registers with VSX and
2924 power8-vector. Move insns to be closer to the define_expands. On
2925 VSX systems, prefer the traditional form of FMA over the VSX
2926 version, since the traditional form allows the target not to
2927 overlap with the inputs.
2928 (fms<mode>4_fpr): Likewise.
2929 (nfma<mode>4_fpr): Likewise.
2930 (nfms<mode>4_fpr): Likewise.
2931
5bea0c6c 29322013-10-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
65efa7e7 2933 Richard Earnshaw <richard.earnshaw@arm.com>
5bea0c6c
KT
2934
2935 * config/arm/aarch-common-protos.h (struct alu_cost_table): New.
2936 (struct mult_cost_table): Likewise.
2937 (struct mem_cost_table): Likewise.
2938 (struct fp_cost_table): Likewise.
2939 (struct vector_cost_table): Likewise.
2940 (cpu_cost_table): Likewise.
2941 * config/arm/arm.opt (mold-rts-costs): New option.
2942 (mnew-generic-costs): Likewise.
2943 * config/arm/arm.c (generic_extra_costs): New table.
2944 (cortexa15_extra_costs): Likewise.
2945 (arm_slowmul_tune): Use NULL as new costs.
2946 (arm_fastmul_tune): Likewise.
2947 (arm_strongarm_tune): Likewise.
2948 (arm_xscale_tune): Likewise.
2949 (arm_9e_tune): Likewise.
2950 (arm_v6t2_tune): Likewise.
2951 (arm_cortex_a5_tune): Likewise.
2952 (arm_cortex_a9_tune): Likewise.
2953 (arm_v6m_tune): Likewise.
2954 (arm_fa726te_tune): Likewise.
2955 (arm_cortex_a15_tune): Use cortex15_extra_costs.
2956 (arm_cortex_tune): Use generict_extra_costs.
2957 (shifter_op_p): New function.
2958 (arm_unspec_cost): Likewise.
2959 (LIBCALL_COST): Define.
2960 (arm_new_rtx_costs): New function.
2961 (arm_rtx_costs): Use arm_new_rtx_costs when core-specific
2962 table is available. Use old costs otherwise unless mnew-generic-costs
2963 is specified.
2964 * config/arm/arm-protos.h (tune_params): Add insn_extra_cost field.
2965 (cpu_cost_table): Declare.
2966
24c56925
MS
29672013-10-03 Marcus Shawcroft <marcus.shawcroft@arm.com>
2968
2969 PR target/58460
2970 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>)
2971 (*subs_mul_imm_<mode>)
2972 (*add_<shift>_<mode>, *add_<shift>_si_uxtw,*add_mul_imm_<mode>)
2973 (*sub_<shift>_<mode>)
2974 (*sub_<shift>_si_uxtw,*sub_mul_imm_<mode>, *sub_mul_imm_si_uxtw):
2975 Remove k constraint.
2976
2ab8f063
IB
29772013-10-03 Ian Bolton <ian.bolton@arm.com>
2978
2979 * config/aarch64/aarch64.c (aarch64_secondary_reload): Remove legacy
2980 code.
2981 * config/aarch64/aarch64.md (reload_sp_immediate): Likewise.
2982
79221839
TJ
29832013-10-02 Teresa Johnson <tejohnson@google.com>
2984
2985 * predict.c (probably_never_executed): New function.
2986 (probably_never_executed_bb_p): Invoke probably_never_executed.
2987 (probably_never_executed_edge_p): Ditto.
2988 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
2989 Treat profile insanities conservatively.
2990
d441afe0
JDA
29912013-10-02 John David Anglin <danglin@gcc.gnu.org>
2992
2993 * config.gcc (hppa*64*-*-linux*): Don't add pa/t-linux to tmake_file.
2994
80f466c4
VM
29952013-10-02 Vladimir Makarov <vmakarov@redhat.com>
2996
2997 * lra-constraints.c (process_alt_operand): Calculate scratch_p and
2998 use it. Use smaller increase for scratch. Don't increase reject
2999 for early clobber scratch.
3000 * lra-eliminations.c (eliminate_regs_in_insn): Remove all insns
3001 setting eliminated regs except setting fp from hfp.
3002 (lra_eliminate): Check lra_insn_recog_data on NULL.
3003
6e228b4b
MM
30042013-10-02 Michael Meissner <meissner@linux.vnet.ibm.com>
3005
3006 PR target/58587
3007 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Turn off
65efa7e7 3008 setting -mvsx-timode by default until the underlying problem is fixed.
6e228b4b
MM
3009 (RS6000_CPU, power7 defaults): Likewise.
3010
11b54a5a
UB
30112013-10-02 Uros Bizjak <ubizjak@gmail.com>
3012
3013 * config/x-linux (host-linux.o): Remove header dependencies.
3014 Use $(COMPILE) and $(POSTCOMPILE).
3015 * config/t-linux-android (linux-android.o): Ditto.
3016
bbc02b69
UB
30172013-10-02 Uros Bizjak <ubizjak@gmail.com>
3018
3019 * Makefile.in (expmed.o-warn): Remove.
3020
440917de
AM
30212013-10-02 Andrew MacLeod <amacleod@redhat.com>
3022
3023 * graphite-scop-detection.c: Include tree-ssa-propagate,h.
3024 * graphite-sese-to-poly.c: Include tree-ssa-propagate.h.
3025
99206ca9
TJ
30262013-10-02 Teresa Johnson <tejohnson@google.com>
3027
3028 * dojump.c (do_jump_1): Divide probability between
3029 both conditions of a TRUTH_ANDIF_EXPR/TRUTH_ORIF_EXPR.
3030
56e82b14
TT
30312013-10-02 Tom Tromey <tromey@redhat.com>
3032
3033 * Makefile.in (DRIVER_DEFINES): Use $(if), not $(and).
3034
3d9c733e
AM
30352013-10-02 Andrew MacLeod <amacleod@redhat.com>
3036
3037 * tree-flow.h: Remove some prototypes.
3038 * tree-ssa-dce.c (mark_virtual_operand_for_renaming,
3039 mark_virtual_phi_result_for_renaming): Move to tree-into-ssa.c.
3040 * tree-into-ssa.c (mark_virtual_operand_for_renaming,
3041 mark_virtual_phi_result_for_renaming): Relocate here.
3042 * tree-into-ssa.h: Add prototypes.
bbc02b69 3043 * tree-ssa-phiopt.c: (tree_ssa_phiopt_worker) Use
3d9c733e
AM
3044 single_pred_before_succ_order.
3045 (blocks_in_phiopt_order): Rename and move to cfganal.c.
3046 (nonfreeing_call_p) Move to gimple.c.
3047 * cfganal.c (single_pred_before_succ_order): Move and renamed from
3048 tree-ssa-phiopt.c.
3049 * basic-block.h (single_pred_before_succ_order): Add prototype.
3050 * gimple.c (nonfreeing_call_p): Relocate here.
3051 * gimple.h: Add prototype.
3052 * tree-ssa-ifcombine.c: Include tree-ssa-phiopt.h.
3053 * tree-ssa-dom.h: New file. Relocate prototypes here.
3054 * tree-ssa.h: Include tree-ssa-dom.h.
3055
78cedfb1
UB
30562013-10-02 Uros Bizjak <ubizjak@gmail.com>
3057
3058 * config/i386/x-i386 (driver-i386.o): Remove header dependencies.
3059 Use $(COMPILE) and $(POSTCOMPILE).
3060
3061 * config/alpha/x-alpha (driver-alpha.o): Ditto.
3062
744730a4
AM
30632013-10-02 Andrew MacLeod <amacleod@redhat.com>
3064
3065 * tree-flow.h: Remove some prototypes.
3066 * gimple-fold.h: Add prototypes from gimple.h and tree-flow.h.
3067 * tree-ssa-propagate.h: Relocate prototypes from tree-flow.h.
3068 * tree-ssa-copy.c (may_propagate*, propagate_value, replace_exp,
3069 propagate_tree_value*): Move from here to...
3070 * tree-ssa-propagate.c (may_propagate*, propagate_value, replace_exp,
3071 propagate_tree_value*): Relocate here.
3072 * tree-ssa-propagate.h: Relocate prototypes from tree-flow.h.
3073 * gimple.h: Include gimple-fold.h, move prototypes into gimple-fold.h.
3074 * gimple-fold.c: Remove gimple-fold.h from include list.
3075 * tree-vrp.c: Remove gimple-fold.h from include list.
3076 * tree-ssa-sccvn.c: Remove gimple-fold.h from include list.
3077 * tree-ssa-ccp.c: Remove gimple-fold.h from include list.
3078 * tree-scalar-evolution.c: Add tree-ssa-propagate.h to include list.
3079 * tree-ssa-pre.c: Add tree-ssa-propagate.h to include list.
3080 * sese.c: Add tree-ssa-propagate.h to include list.
3081
826a536d
RB
30822013-10-02 Richard Biener <rguenther@suse.de>
3083
3084 * tree-loop-distribution.c: Include tree-vectorizer.h for
3085 find_loop_location.
3086 (enum partition_kind): Remove PKIND_REDUCTION.
78cedfb1 3087 (struct partition_s): Remove has_writes member, add reduction_p member.
826a536d
RB
3088 (partition_alloc): Adjust.
3089 (partition_builtin_p): Likewise.
3090 (partition_has_writes): Remove.
3091 (partition_reduction_p): New function.
3092 (partition_merge_into): Likewise.
3093 (generate_code_for_partition): Commonize builtin partition
3094 handling tail.
3095 (rdg_cannot_recompute_vertex_p): Remove.
3096 (already_processed_vertex_p): Likewise.
3097 (rdg_flag_vertex): Do not set has_writes.
3098 (classify_partition): Adjust.
3099 (rdg_build_partitions): Do not set has_writes, treat all
3100 partitions as useful.
78cedfb1 3101 (distribute_loop): Record number of library calls generated. Adjust.
826a536d
RB
3102 (tree_loop_distribution): Report number of loops and library
3103 calls generated as opt-info.
3104
4b403ece
AM
31052013-10-02 Andrew MacLeod <amacleod@redhat.com>
3106
3107 * tree-flow.h: Include new .h files. Move prototypes.
3108 * tree-cfgcleanup.h: New file. Add prototypes from tree-flow.h.
3109 * tree-dfa.h: New File. Add prototypes from tree-flow.h.
3110 (get_addr_base_and_unit_offset_1) Move from tree-flow-inline.h.
3111 * tree-pretty-print.h: Add prototypes from tree-flow.h.
3112 * tree-into-ssa.h: New File. Add prototypes from tree-flow.h.
3113 ({debug|dump}*): Move debugging prototypes out of tree-into-ssa.c.
3114 * tree-into-ssa.c ({debug|dump}*): Move prototypes to header file.
3115 * tree.h (get_ref_base_and_extent): Move prototype out.
78cedfb1 3116 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Move to
4b403ece
AM
3117 tree-dfa.h.
3118 * gimple-low.h: New File. Add prototypes from tree-flow.h.
3119 * gimple-low.c (try_catch_may_fallthru, block_may_fallthru): Move to...
3120 * tree.c (try_catch_may_fallthru, block_may_fallthru): Here.
3121 * tree-scalar-evolution.c: Include tree.h.
3122 * sese.c: Include tree.h.
3123 * dumpfile.c: Move gimple-pretty-print.h include after tree.h.
3124 * dwarf2out.c: Include tree-dfa.h.
3125 * tree-chrec.c: Include tree.h.
3126 * tree-data-ref.c: Include tree.h.
3127
1d2151c6
YZ
31282013-10-02 Yufeng Zhang <yufeng.zhang@arm.com>
3129
3130 * gimple-ssa-strength-reduction.c (backtrace_base_for_ref):
3131 Fix whitespace.
3132
441ad147
RO
31332013-10-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3134
3135 * config/t-sol2 (sol2-c.o): Remove header dependencies.
3136 Use $(COMPILE) and $(POSTCOMPILE).
3137 (sol2-cxx.o): Likewise.
3138 (sol2-stubs.o): Likewise.
3139 (sol2.o): Likewise.
3140 * config/x-solaris (host-solaris.o): Likewise.
3141
3142 * config/sparc/t-sparc (sparc.o): Remove.
3143 (sparc-c.o): Remove header dependencies.
3144 Use $(COMPILE) and $(POSTCOMPILE).
3145 * config/sparc/x-sparc: Likewise.
3146
2deaf8b0
JR
31472013-10-02 Joern Rennecke <joern.rennecke@embecosm.com>
3148
3149 * config/arc/arc-opts.h: Add 2013 to Copyright years.
3150 * config/arc/arc700.md: Likewise.
3151 * config/arc/arc-modes.def: Likewise.
3152 * config/arc/arc-simd.h: Likewise.
3153 * config/arc/t-arc-uClibc: Likewise.
3154 * config/arc/t-arc-newlib: Likewise.
3155
f6fe771a
RL
31562013-10-02 Renlin Li <renlin.li@arm.com>
3157
78cedfb1
UB
3158 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use
3159 plus_constant.
f6fe771a
RL
3160 (aarch64_expand_epilogue): Likewise.
3161
0916f876
YZ
31622013-10-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3163 Yufeng Zhang <yufeng.zhang@arm.com>
3164
3165 * gimple-ssa-strength-reduction.c (legal_cast_p_1): Forward
3166 declaration.
3167 (backtrace_base_for_ref): Call get_unwidened with 'base_in' if
3168 'base_in' represent a conversion and legal_cast_p_1 holds; set
3169 'base_in' with the returned value from get_unwidened.
3170
ebfcd719
KT
31712013-10-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3172
3173 * config/arm/arm.c (arm_legitimize_reload_address): Explain why
3174 plus_constant is not used.
3175
157ca3e9
WM
31762013-10-01 Wei Mi <wmi@google.com>
3177
78cedfb1 3178 * config/i386/x86-tune.def (DEF_TUNE): Remove m_CORE_ALL.
157ca3e9
WM
3179 * config/i386/i386.md: Add define_peephole2 to
3180 break partial reg stall for cvtss2sd/cvtsd2ss.
3181
cd4dd8f0
JR
31822013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
3183
3184 * config/arc/arc.c (pass_arc_ifcvt::clone):
78cedfb1 3185 Update for ctxt_ -> m_ctxt change.
cd4dd8f0 3186
1465e5cf
JL
31872013-10-01 Jeff Law <law@redhat.com>
3188
3189 * tree-ssa-threadupdate.c (struct redirection_data): Delete
3190 outgoing_edge and intermediate_edge fields. Instead store the path.
3191 (redirection_data::hash): Hash on the last edge's destination index.
3192 (redirection_data::equal): Check the entire thread path.
3193 (lookup_redirectio_data): Corresponding changes.
3194 (create_edge_and_update_destination_phis): Likewise.
3195 (thread_single_edge): Likewise.
3196
25c606cb 31972013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
0ccbc132 3198 Diego Novillo <dnovillo@google.com>
25c606cb
JR
3199
3200 * config/arc/simdext.md (UNSPEC_ARC_SIMD_VLD32WH): Delete.
3201 (UNSPEC_ARC_SIMD_VLD32WL): Likewise.
3202 (vld32wh_insn, vld32wl_insn): Delete commented-out old
3203 versions of these patterns.
3204
0ccbc132
JR
3205 * doc/extend.texi (long_call/medium_call/short_call): Typo fix.
3206 (__builtin_arc_aligned): Likewise.
3207
f55d4a20
JR
3208 * config/arc/arc.md: Expand adc_0 comment stating the intended
3209 purpose and why it isn't ready.
3210 Replace commented out call_value_via_label_mixed with a
3211 plain comment about bl_s.
3212
5719867d 3213 * config/arc/arc.c (stdio.h): Don't include directly.
5719867d
JR
3214 (arc_expand_epilogue): Remove [0]: Remove fp_restored_p.
3215 Remove if (1) condition.
3216 (arc_encode_section_info): Fix comment.
3217
6462fab0
JR
32182013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
3219
3220 * config/arc/arc.c (arc_conditional_register_usage):
3221 Use ARC_FIRST_SIMD_VR_REG / ARC_LAST_SIMD_VR_REG.
3222 Also set reg_alloc_order for DMA config regs.
3223
5d5f6720
JR
32242013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
3225 Jeremy Bennett <jeremy.bennett@embecosm.com>
3226
3227 * doc/install.texi (--with-cpu): Mention ARC.
3228 (arc-*-elf32): New paragraph.
3229 (arc-linux-uclibc): Likewise.
3230 * doc/md.texi (Machine Constraints): Add ARC part.
3231 * doc/invoke.texi: (menu): Add ARC Options.
3232 (Machine Dependent Options) <ARC Options>: Add synopsis.
3233 (node ARC Options): Add.
3234 * doc/extend.texi (long_call / short_call attribute): Add ARC.
3235 (ARC Built-in Functions): New section defining
3236 generic ARC built-in functions.
3237 (ARC SIMD Built-in Functions): New section defining SIMD specific
3238 built-in functions.
3239 (Declaring Attributes of Functions): Extended
3240 description of short_call and long_call attributes for ARC and
3241 added index entries.
3242
526b7aee
SV
32432013-10-01 Saurabh Verma <saurabh.verma@codito.com>
3244 Ramana Radhakrishnan <ramana.radhakrishnan@codito.com>
3245 Joern Rennecke <joern.rennecke@embecosm.com>
3246 Muhammad Khurram Riaz <khurram.riaz@arc.com>
3247 Brendan Kehoe <brendan@zen.org>
3248 Michael Eager <eager@eagercon.com>
3249 Simon Cook <simon.cook@embecosm.com>
3250 Jeremy Bennett <jeremy.bennett@embecosm.com>
3251
3252 * config/arc, common/config/arc: New directories.
3253
53426f6c
JR
32542013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
3255 Brendan Kehoe <brendan@zen.org>
3256 Simon Cook <simon.cook@embecosm.com>
3257
3258 * config.gcc (arc*-*-elf*, arc*-*-linux-uclibc*): New configurations.
3259
1df9f5a9
AM
32602013-10-01 Andrew MacLeod <amacleod@redhat.com>
3261
3262 * tree-ssa-live.h (coalesce_ssa_name): Move Prototype to...
3263 * tree-ssa-coalesce.h: New. Move prototype to here.
3264 * tree-outof-ssa.h: Include tree-ssa-coalesce.h.
3265 * tree-ssa-coalesce.c: Include tree-outof-ssa.h.
3266 (gimple_can_coalesce_p): Move to...
3267 * gimple.c (gimple_can_coalesce_p): Here.
3268
80560f95
AM
32692013-10-01 Andrew MacLeod <amacleod@redhat.com>
3270
3271 * tree-into-ssa.c (enum need_phi_state): Relocate from tree-flow.h.
3272 (dump_decl_set): Move to gimple.c.
3273 * gimple.h: Don't include tree-ssa-operands.h.
3274 (dump_decl_set): Add prototype.
3275 (gimple_vuse_op, gimple_vdef_op, update_stmt, update_stmt_if_modified):
3276 Move to gimple-ssa.h.
3277 (phi_ssa_name_p, phi_nodes, phi_nodes_ptr, gimple_phi_arg_def,
3278 gimple_phi_arg_def_ptr, gimple_phi_arg_edge, gimple_phi_arg_location,
3279 gimple_phi_arg_location_from_edge, gimple_phi_arg_set_location,
3280 gimple_phi_arg_has_location): Relocate from tree-flow-inline.h
3281 * gimple.c (walk_stmt_load_store_ops): Use gimple_phi_arg_def rather
3282 than PHI_ARG_DEF.
3283 (dump_decl_set): Relocate here.
3284 * gimple-ssa.h: New file.
3285 (gimple_vuse_op, gimple_vdef_op, update_stmt, update_stmt_if_modified):
3286 Relocate from gimple.h.
3287 * tree-cfg.c (has_zero_uses_1, single_imm_use_1): Move to...
3288 * tree-ssa-operands.c (swap_ssa_operands): Rename from
3289 swap_tree_operands and remove non-ssa path.
3290 (has_zero_uses_1, single_imm_use_1): Relocate from tree-cfg.c.
3291 * tree-ssa-reassoc.c (linearize_expr_tree, repropagate_negates): Use
3292 swap_ssa_operands.
3293 * tree-vect-loop.c (destroy_loop_vec_info, vect_is_slp_reduction,
3294 vect_is_simple_reduction_1): Use swap_ssa_operands.
3295 * tree-flow.h: Move various prototypes to tree-phinodes.h.
3296 (enum need_phi_state): Move to tree-into-ssa.c.
3297 (struct immediate_use_iterator_d, FOR_EACH_IMM_*,
3298 BREAK_FROM_IMM_USE_STMT): Move to ssa-iterators.h.
3299 (swap_tree_operands): Rename and move prototype to tree-ssa-operands.h.
3300 * tree-flow-inline.h (delink_imm_use, link_imm_use_to_list,
3301 link_imm_use, set_ssa_use_from_ptr, link_imm_use_stmt, relink_imm_use,
3302 relink_imm_use_stmt, end_readonly_imm_use_p, first_readonly_imm_use,
3303 next_readonly_imm_use, has_zero_uses, has_single_use, single_imm_use,
3304 num_imm_uses): Move to ssa-iterators.h.
3305 (get_use_from_ptr, get_def_from_ptr): Move to tree-ssa-operands.h
7ab4168e 3306 (gimple_phi_arg_imm_use_ptr, phi_arg_index_from_use): Move to
80560f95
AM
3307 tree-phinodes.h.
3308 (op_iter_done, op_iter_next_def, op_iter_next_tree,
3309 clear_and_done_ssa_iter, op_iter_init, op_iter_init_use,
3310 op_iter_init_def, op_iter_init_tree, single_ssa_tree_operand,
3311 single_ssa_use_operand, single_ssa_def_operand, zero_ssa_operands,
3312 num_ssa_operands, delink_stmt_imm_use, single_phi_def,
3313 op_iter_init_phiuse, op_iter_init_phidef, end_imm_use_stmt_p,
3314 end_imm_use_stmt_traverse, move_use_after_head, link_use_stmts_after,
3315 first_imm_use_stmt, next_imm_use_stmt, first_imm_use_on_stmt,
3316 end_imm_use_on_stmt_p, next_imm_use_on_stmt): Move to ssa-iterators.h.
3317 (gimple_phi_arg_def, gimple_phi_arg_def_ptr, gimple_phi_arg_edge,
3318 gimple_phi_arg_location, gimple_phi_arg_location_from_edge,
3319 gimple_phi_arg_set_location, gimple_phi_arg_has_location, phi_nodes,
3320 phi_nodes_ptr, phi_ssa_name_p): Move to gimple.h.
3321 (set_phi_nodes): Move to tree-phinodes.h.
3322 * tree-ssa-operands.h (enum ssa_op_iter_type,
3323 struct ssa_operand_iterator_d, SSA_OP*, FOR_EACH_SSA*, SINGLE_SSA*,
3324 ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS): Move to ssa-iterators.h.
3325 (dump_decl_set): Remove prototype.
3326 (get_use_from_ptr, get_def_from_ptr): Relocate from tree-flow.h.
3327 * tree-phinodes.h: New file. Move some prototypes from tree-flow.h.
3328 (set_phi_nodes): Relocate from tree-flow-inline.h.
3329 (gimple_phi_arg_imm_use_ptr, phi_arg_index_from_use): Relocate from
3330 tree-flow-inline.h
3331 * tree-ssa.h: Add tree-phinodes.h, gimple-ssa.h, ssa-iterators.h to
3332 include list. Temporarily add gimple.h to include list.
3333 * ssa-iterators.h: New file.
3334 (struct immediate_use_iterator_d, FOR_EACH_IMM_*,
3335 BREAK_FROM_IMM_USE_STMT): Relocate from tree-flow.h.
3336 (enum ssa_op_iter_type, struct ssa_operand_iterator_d, SSA_OP*,
3337 FOR_EACH_SSA*, SINGLE_SSA*, ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS):
3338 Relocate from tree-ssa-operands.h.
3339 (delink_imm_use, link_imm_use_to_list, link_imm_use,
3340 set_ssa_use_from_ptr, link_imm_use_stmt, relink_imm_use,
3341 relink_imm_use_stmt, end_readonly_imm_use_p, first_readonly_imm_use,
3342 next_readonly_imm_use, has_zero_uses, has_single_use, single_imm_use,
3343 num_imm_uses, get_use_from_ptr, get_def_from_ptr,
3344 phi_arg_index_from_use, op_iter_done, op_iter_next_def,
3345 op_iter_next_tree, clear_and_done_ssa_iter, op_iter_init,
3346 op_iter_init_use, op_iter_init_def, op_iter_init_tree,
3347 single_ssa_tree_operand, single_ssa_use_operand, single_ssa_def_operand,
3348 zero_ssa_operands, num_ssa_operands, delink_stmt_imm_use,
3349 single_phi_def, op_iter_init_phiuse, op_iter_init_phidef,
3350 end_imm_use_stmt_p, end_imm_use_stmt_traverse, move_use_after_head,
3351 link_use_stmts_after, first_imm_use_stmt, next_imm_use_stmt,
3352 first_imm_use_on_stmt, end_imm_use_on_stmt_p, next_imm_use_on_stmt):
3353 Relocate from tree-flow-inline.h.
3354 * tree-outof-ssa.h: Change _SSAEXPAND_H macro to GCC_TREE_OUTOF_SSA_H.
3355
8da00d65
VP
33562013-10-01 Vidya Praveen <vidyapraveen@arm.com>
3357
3358 * aarch64-simd.md
3359 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l2<mode>_internal): Rename to ...
3360 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_hi_internal): ... this;
3361 Insert '\t' to output template.
3362 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_lo_internal): New.
3363 (aarch64_saddl2<mode>, aarch64_uaddl2<mode>): Modify to call
3364 gen_aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_hi_internal() instead.
3365 (aarch64_ssubl2<mode>, aarch64_usubl2<mode>): Ditto.
3366
e2ebe1c2
UB
33672013-10-01 Uros Bizjak <ubizjak@gmail.com>
3368
3369 * doc/install.texi (Host/target specific installation notes for GCC):
3370 Put @anchor before @heading.
3371 * doc/gcc.texi (titlepage): Use @uref and http:// prefix for website.
3372 Use @email for email addresses.
3373
aee2d611
JL
33742013-10-01 Jeff Law <law@redhat.com>
3375
3376 * tree-ssa-threadedge.c (thread_across_edge): Make path a pointer to
3377 a vec. Only delete the path if we create one without successfully
3378 registering a jump thread.
3379 * tree-ssa-threadupdate.h (register_jump_thread): Pass in path vector
3380 as a pointer.
3381 * tree-ssa-threadupdate.c (threaded_edges): Remove. No longer used
3382 (paths): New vector of jump threading paths.
3383 (THREAD_TARGET, THREAD_TARGET2): Remove accessor macros.
3384 (THREAD_PATH): New accessor macro for the entire thread path.
3385 (lookup_redirection_data): Get intermediate and final outgoing edge
3386 from the thread path.
3387 (create_edge_and_update_destination_phis): Copy the threading path.
3388 (ssa_fix_duplicate_block_edges): Get edges and block types from the
3389 jump threading path.
3390 (ssa_redirect_edges): Get edges and block types from the jump threading
3391 path. Free the path vector.
3392 (thread_block): Get edges from the jump threading path. Look at the
3393 entire path to see if we thread to a loop exit. If we cancel a jump
3394 thread request, then free the path vector.
3395 (thread_single_edge): Get edges and block types from the jump threading
3396 path. Free the path vector.
3397 (thread_through_loop_header): Get edges and block types from the jump
3398 threading path. Free the path vector.
3399 (mark_threaded_blocks): Iterate over the vector of paths and store
3400 the path on the appropriate edge. Get edges and block types from the
3401 jump threading path.
3402 (mark_threaded_blocks): Get edges and block types from the jump
3403 threading path. Free the path vector.
3404 (thread_through_all_blocks): Use the vector of paths rather than
3405 a vector of 3-edge sets.
3406 (register_jump_thread): Accept pointer to a path vector rather
3407 than the path vector itself. Store the path vector for later use.
3408 Simplify.
3409
966f97ac 34102013-10-01 Jakub Jelinek <jakub@redhat.com>
8da00d65 3411 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
966f97ac
JJ
3412
3413 PR target/58574
3414 * config/s390/s390.c (s390_split_branches): Modify check for table
3415 jump insns.
3416 (s390_chunkify_start): Rearrange table jump insn check in order to
3417 deal with compare and branch insns correctly.
3418
3a323a38
KV
34192013-10-01 Kugan Vivekanandarajah <kuganv@linaro.org>
3420
3421 PR target/58578
3422 Revert
3423 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
3424 * config/arm/arm.md (arm_ashldi3_1bit): define_insn into
3425 define_insn_and_split.
3426 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
3427 (shiftsi3_compare): New pattern.
3428 (rrx): New pattern.
3429 * config/arm/unspecs.md (UNSPEC_RRX): New.
3430
90444831
AM
34312013-10-01 Alan Modra <amodra@gmail.com>
3432
3433 * stmt.c (expand_asm_operands): Revert part of 2013-09-24 special
3434 casing inout operands.
3435
818625cf
RB
34362013-10-01 Richard Biener <rguenther@suse.de>
3437
3438 PR tree-optimization/58553
3439 * tree-loop-distribution.c (struct partition_s): Add niter member.
3440 (classify_partition): Populate niter member for the partition
3441 and properly identify whether the relevant store happens before
3442 or after the loop exit.
3443 (generate_memset_builtin): Use niter member from the partition.
3444 (generate_memcpy_builtin): Likewise.
3445
30f641cd
RS
34462013-09-30 Richard Sandiford <rdsandiford@googlemail.com>
3447
3448 * vec.h (vec_prefix, vec): Prefix member names with "m_".
3449 * vec.c (vec_prefix::calculate_allocation): Update accordingly.
3450
65d3284b
RS
34512013-09-30 Richard Sandiford <rdsandiford@googlemail.com>
3452
3453 * basic-block.h (edge_list): Prefix member names with "m_".
3454 * context.h (context): Likewise.
3455 * domwalk.h (dom_walker): Likewise.
3456 * gengtype-state.c (s_expr_writer, state_writer): Likewise.
3457 * graphite-sese-to-poly.c (sese_dom_walker): Likewise.
3458 * hash-table.h (hash_table): Likewise.
3459 * machmode.h (bit_field_mode_iterator): Likewise.
3460 * pass_manager.h (pass_list): Likewise.
3461 * tree-into-ssa.c (mark_def_dom_walker): Likewise.
3462 * tree-pass.h (pass_data): Likewise.
3463 * tree-ssa-dom.c (dom_opt_dom_walker): Likewise.
3464 * tree-ssa-phiopt.c (nontrapping_dom_walker): Likewise,
3465 * tree-ssa-uncprop.c (uncprop_dom_walker): Likewise.
3466 * asan.c (pass_data_asan): Update accordingly.
3467 * cfganal.c (control_dependences::find_control_dependence): Likewise.
3468 (control_dependences::control_dependences): Likewise.
3469 (control_dependences::~control_dependences): Likewise.
3470 (control_dependences::~control_dependences): Likewise.
3471 (control_dependences::get_edges_dependent_on): Likewise.
3472 * cgraphbuild.c (pass_data_rebuild_cgraph_edges::clone): Likewise.
3473 (pass_data_remove_cgraph_callee_edges::clone): Likewise.
3474 * context.c (gcc::context::context): Likewise.
3475 * cprop.c (pass_rtl_cprop::clone): Likewise.
3476 * domwalk.c (dom_walker::walk): Likewise.
3477 * ipa-inline-analysis.c (pass_inline_parameters::clone): Likewise.
3478 * ipa-pure-const.c (pass_local_pure_const::clone): Likewise.
3479 * mode-switching.c (pass_mode_switching::clone): Likewise.
3480 * passes.c (opt_pass::opt_pass): Likewise.
3481 (pass_manager::pass_manager): Likewise.
3482 * predict.c (pass_strip_predict_hints::clone): Likewise.
3483 * recog.c (pass_data pass_data_peephole2::clone): Likewise.
3484 (pass_split_all_insns::clone): Likewise.
3485 * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator):
3486 Likewise.
3487 (bit_field_mode_iterator::next_mode): Likewise.
3488 (bit_field_mode_iterator::prefer_smaller_modes): Likewise.
3489 * tree-cfg.c (pass_split_crit_edges::clone): Likewise.
3490 * tree-cfgcleanup.c (pass_merge_phi::clone): Likewise.
3491 * tree-complex.c (pass_lower_complex::clone): Likewise.
3492 * tree-eh.c (pass_cleanup_eh::clone): Likewise.
3493 * tree-object-size.c (pass_object_sizes::clone): Likewise.
3494 * tree-optimize.c (pass_fixup_cfg::clone): Likewise.
3495 * tree-ssa-ccp.c (pass_data_ccp::clone): Likewise.
3496 (pass_fold_builtins::clone): Likewise.
3497 * tree-ssa-copy.c (pass_data_copy_prop::clone): Likewise.
3498 * tree-ssa-copyrename.c (pass_rename_ssa_copies::clone): Likewise.
3499 * tree-ssa-dce.c (pass_dce::clone, pass_dce_loop::clone): Likewise.
3500 (pass_cd_dce::clone): Likewise.
3501 * tree-ssa-dom.c (pass_dominator::clone): Likewise.
3502 (pass_phi_only_cprop::clone): Likewise.
3503 * tree-ssa-dse.c (pass_dse::clone): Likewise.
3504 * tree-ssa-forwprop.c (pass_forwprop::clone): Likewise.
3505 * tree-ssa-loop.c (pass_lim::clone): Likewise.
3506 * tree-ssa-phiopt.c (pass_phiopt::clone): Likewise.
3507 * tree-ssa-pre.c (pass_fre::clone): Likewise.
3508 * tree-ssa-reassoc.c (pass_reassoc::clone): Likewise.
3509 * tree-ssa-uninit.c (pass_late_warn_uninitialized::clone): Likewise.
3510 * tree-tailcall.c (pass_tail_recursion::clone): Likewise.
3511 * tree-vect-generic.c (pass_lower_vector_ssa::clone): Likewise.
3512 * tree-vrp.c (pass_vrp::clone): Likewise.
3513 * tsan.c (pass_tsan::clone): Likewise.
3514
f66d0891
JJ
35152013-09-30 Jakub Jelinek <jakub@redhat.com>
3516
d2a365a8
JJ
3517 PR middle-end/58564
3518 * fold-const.c (tree_unary_nonnegative_warnv_p): Use
3519 INTEGRAL_TYPE_P (t) instead of TREE_CODE (t) == INTEGER_TYPE.
3520
f66d0891
JJ
3521 PR middle-end/58564
3522 * fold-const.c (fold_ternary_loc): For A < 0 : <sign bit of A> : 0
3523 optimization, punt if sign_bit_p looked through any zero extension.
3524
05357ac3
TJ
35252013-09-30 Teresa Johnson <tejohnson@google.com>
3526
3527 * tree-ssa-threadupdate.c (ssa_fix_duplicate_block_edges):
3528 Update redirected out edge count in joiner case.
3529 (ssa_redirect_edges): Common the joiner and non-joiner cases
3530 so that joiner case gets profile updates.
3531
ca406576
RB
35322013-09-30 Richard Biener <rguenther@suse.de>
3533
3534 PR tree-optimization/58554
e2ebe1c2
UB
3535 * tree-loop-distribution.c (classify_partition): Require
3536 unconditionally executed stores for memcpy and memset recognition.
ca406576
RB
3537 (tree_loop_distribution): Calculate dominance info.
3538
92d649c4
VK
35392013-09-30 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
3540
3541 * config/aarch64/aarch64.h (MCOUNT_NAME): Define.
3542 (NO_PROFILE_COUNTERS): Likewise.
3543 (PROFILE_HOOK): Likewise.
3544 (FUNCTION_PROFILER): Likewise.
3545 * config/aarch64/aarch64.c (aarch64_function_profiler): Remove.
3546
bd9534e2
IS
35472013-09-30 Iain Sandoe <iain@codesourcery.com>
3548
3549 * config/rs6000/darwin.md (load_macho_picbase_si): Wrap machopic
3550 calls and defines in TARGET_MACHO conditional.
3551 (load_macho_picbase_di): Likewise.
3552 (reload_macho_picbase): Likewise.
3553 (reload_macho_picbase_si): Likewise.
3554 (reload_macho_picbase_di): Likewise.
3555 (nonlocal_goto_receiver): Likewise.
3556
4494fbc9
NC
35572013-09-30 Nick Clifton <nickc@redhat.com>
3558
3559 * config/msp430/msp430.c (msp430x_names): New array. Lists MCUs
3560 that use the MSP430X ISA.
3561 (msp430_option_override): Scan -mmcu command line option for any
3562 MCU name that supports the MSP430X ISA.
3563 * config/msp430/t-msp430 (MULTILIB_MATCHES): Add matches for known
3564 -mmcu options which enable the MSP430X ISA.
3565
791d9044
RB
35662013-09-30 Richard Biener <rguenther@suse.de>
3567
3568 PR middle-end/58532
3569 * tree-cfg.c (make_abnormal_goto_edges): Skip debug statements
3570 before looking for setjmp-like calls.
3571
e1c5c877
IS
35722013-09-29 Iain Sandoe <iain@codesourcery.com>
3573
3574 PR target/10901
3575 * config/darwin-protos.h (machopic_get_function_picbase): New.
3576 * config/darwin.c (machopic_get_function_picbase): New.
3577 * config/rs6000/darwin.md (load_macho_picbase_si): Update picbase
3578 label for a new func. (load_macho_picbase_di): Likewise.
3579 (reload_macho_picbase): New expand.
3580 (reload_macho_picbase_si): New insn.
3581 (reload_macho_picbase_di): New insn.
3582 (nonlocal_goto_receiver): New define and split.
3583 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_RELD_MPIC.
3584 (unspecv enum): Add UNSPECV_NLGR.
3585
749278c5
IS
35862013-09-29 Iain Sandoe <iain@codesourcery.com>
3587
3588 * config/rs6000/rs6000.c (rs6000_init_dwarf_reg_sizes_extra): Ensure
3589 that altivec registers are correctly sized on Darwin.
3590
2c43a51c
IS
35912013-09-29 Iain Sandoe <iain@codesourcery.com>
3592
3593 * config/t-darwin (darwin.o, darwin-c.o, darwin-f.o,
3594 darwin-driver.o): Use COMPILE and POSTCOMPILE.
3595 * config/x-darwin (host-darwin.o): Likewise.
3596 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
3597 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
3598 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
3599
7a5911d3
UB
36002013-09-29 Uros Bizjak <ubizjak@gmail.com>
3601
3602 * doc/invoke.texi: Fix usage of @tie{} command.
3603
3f67a73d
EB
36042013-09-29 Eric Botcazou <ebotcazou@adacore.com>
3605
3606 * config/sparc/sync.md: Add peephole for consecutive memory barriers.
3607
9ac2f538
JH
36082013-09-28 Jan Hubicka <jh@suse.cz>
3609
3610 * config/i386/x86-tune.def: Add documentation for each of the options;
3611 add whitespace.
3612
b0ff06da
JH
36132013-09-28 Jan Hubicka <jh@suse.cz>
3614
7a5911d3
UB
3615 * x86-tune.def (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL): Enable for
3616 generic.
b0ff06da
JH
3617 (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Likewise.
3618 (X86_TUNE_FOUR_JUMP_LIMIT): Drop for generic and buldozer.
3619 (X86_TUNE_PAD_RETURNS): Drop for buldozer chips.
3620 (X86_TUNE_AVOID_VECTOR_DECODE): Drop for generic.
3621 (X86_TUNE_REASSOC_FP_TO_PARALLEL): Enable for generic.
3622
c3284718
RS
36232013-09-28 Richard Sandiford <rdsandiford@googlemail.com>
3624
3625 * alloc-pool.c, asan.c, auto-inc-dec.c, basic-block.h, bb-reorder.c,
3626 bitmap.c, bitmap.h, bt-load.c, builtins.c, calls.c, cfgcleanup.c,
3627 cfgexpand.c, cfghooks.c, cfgloop.c, cfgloopmanip.c, cfgrtl.c, cgraph.c,
3628 cgraph.h, cgraphbuild.c, cgraphclones.c, cgraphunit.c, collect2.c,
3629 combine-stack-adj.c, combine.c, compare-elim.c, context.c, context.h,
3630 cprop.c, cse.c, cselib.c, dbxout.c, dce.c, defaults.h, df-core.c,
3631 df-problems.c, df-scan.c, df.h, diagnostic.c, double-int.c, dse.c,
3632 dumpfile.c, dwarf2asm.c, dwarf2cfi.c, dwarf2out.c, emit-rtl.c,
3633 errors.c, except.c, expmed.c, expr.c, file-find.c, final.c,
3634 fixed-value.c, fold-const.c, function.c, fwprop.c, gcc-ar.c, gcc.c,
3635 gcov-io.c, gcov-io.h, gcov.c, gcse.c, genattr-common.c, genattr.c,
3636 genattrtab.c, genautomata.c, genconfig.c, genemit.c, genextract.c,
3637 genflags.c, gengenrtl.c, gengtype-state.c, gengtype.c, genmodes.c,
3638 genopinit.c, genoutput.c, genpeep.c, genpreds.c, genrecog.c,
3639 gensupport.c, ggc-common.c, ggc-page.c, gimple-fold.c, gimple-low.c,
3640 gimple-pretty-print.c, gimple-ssa-strength-reduction.c, gimple.c,
3641 gimple.h, godump.c, graphite-clast-to-gimple.c,
3642 graphite-optimize-isl.c, graphite-poly.h, graphite-sese-to-poly.c,
3643 graphite.c, haifa-sched.c, hash-table.c, hash-table.h, hwint.c,
3644 hwint.h, ifcvt.c, incpath.c, init-regs.c, input.h, intl.c, intl.h,
3645 ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
3646 ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c,
3647 ipa-utils.c, ipa.c, ira-build.c, ira.c, jump.c, loop-doloop.c,
3648 loop-init.c, loop-invariant.c, loop-iv.c, lower-subreg.c, lto-cgraph.c,
3649 lto-streamer-in.c, lto-streamer-out.c, lto-wrapper.c, mcf.c,
3650 mode-switching.c, modulo-sched.c, omp-low.c, optabs.c, opts.c,
3651 pass_manager.h, passes.c, plugin.c, postreload-gcse.c, postreload.c,
3652 predict.c, prefix.c, pretty-print.c, print-rtl.c, print-tree.c,
3653 profile.c, read-md.c, real.c, real.h, recog.c, ree.c, reg-stack.c,
3654 regcprop.c, reginfo.c, regmove.c, regrename.c, regs.h, regstat.c,
3655 reload1.c, reorg.c, rtl.c, rtl.h, rtlanal.c, sbitmap.c, sched-rgn.c,
3656 sdbout.c, sel-sched-ir.c, sel-sched.c, sparseset.c, stack-ptr-mod.c,
3657 statistics.c, stmt.c, stor-layout.c, store-motion.c, streamer-hooks.h,
3658 system.h, target-hooks-macros.h, targhooks.c, targhooks.h, toplev.c,
3659 tracer.c, trans-mem.c, tree-browser.c, tree-call-cdce.c, tree-cfg.c,
3660 tree-cfgcleanup.c, tree-complex.c, tree-data-ref.c, tree-data-ref.h,
3661 tree-eh.c, tree-emutls.c, tree-flow.h, tree-if-conv.c, tree-into-ssa.c,
3662 tree-iterator.c, tree-loop-distribution.c, tree-mudflap.c,
3663 tree-nested.c, tree-nomudflap.c, tree-nrv.c, tree-object-size.c,
3664 tree-optimize.c, tree-pass.h, tree-pretty-print.c, tree-profile.c,
3665 tree-scalar-evolution.c, tree-sra.c, tree-ssa-ccp.c,
3666 tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
3667 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
3668 tree-ssa-ifcombine.c, tree-ssa-live.c, tree-ssa-loop-ch.c,
3669 tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-loop-prefetch.c,
3670 tree-ssa-loop.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
3671 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
3672 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
3673 tree-ssa-structalias.c, tree-ssa-threadedge.c, tree-ssa-threadupdate.c,
3674 tree-ssa-uncprop.c, tree-ssa-uninit.c, tree-ssa.c, tree-ssanames.c,
3675 tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
3676 tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
3677 tree-vect-stmts.c, tree-vectorizer.c, tree-vectorizer.h, tree-vrp.c,
3678 tree.c, tree.h, tsan.c, tsystem.h, value-prof.c, var-tracking.c,
3679 varasm.c, vec.h, vmsdbgout.c, vtable-verify.c, web.c: Add missing
3680 whitespace before "(".
3681
c6285bd7
SL
36822013-09-28 Sandra Loosemore <sandra@codesourcery.com>
3683
3684 * expr.h (extract_bit_field): Remove packedp parameter.
3685 * expmed.c (extract_fixed_bit_field): Remove packedp parameter
3686 from forward declaration.
3687 (store_split_bit_field): Remove packedp arg from calls to
3688 extract_fixed_bit_field.
3689 (extract_bit_field_1): Remove packedp parameter and packedp
3690 argument from recursive calls and calls to extract_fixed_bit_field.
3691 (extract_bit_field): Remove packedp parameter and corresponding
3692 arg to extract_bit_field_1.
3693 (extract_fixed_bit_field): Remove packedp parameter. Remove code
3694 to issue warnings.
3695 (extract_split_bit_field): Remove packedp arg from call to
3696 extract_fixed_bit_field.
3697 * expr.c (emit_group_load_1): Adjust calls to extract_bit_field.
3698 (copy_blkmode_from_reg): Likewise.
3699 (copy_blkmode_to_reg): Likewise.
3700 (read_complex_part): Likewise.
3701 (store_field): Likewise.
3702 (expand_expr_real_1): Likewise.
3703 * calls.c (store_unaligned_arguments_into_pseudos): Adjust call
3704 to extract_bit_field.
3705 * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Adjust
3706 call to extract_bit_field.
3707 * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Adjust
3708 call to extract_bit_field.
3709 * doc/invoke.texi (Code Gen Options): Remove mention of warnings
3710 and special packedp behavior from -fstrict-volatile-bitfields
3711 documentation.
3712
522d4efc
JBG
37132013-09-27 Jan-Benedict Glaw <jbglaw@lug-owl.de>
3714
3715 * lra-eliminations.c (init_elim_table): Guard value_p.
3716
19cdb489
MM
37172013-09-27 Michael Meissner <meissner@linux.vnet.ibm.com>
3718
3719 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Allow
3720 DFmode, DImode, and SFmode in the upper VSX registers based on the
3721 -mupper-regs-{df,sf} flags. Fix wu constraint to be ALTIVEC_REGS
3722 if -mpower8-vector. Combine -mvsx-timode handling with the rest
3723 of the VSX register handling.
3724
3725 * config/rs6000/rs6000.md (f32_lv): Use %x0 for VSX regsters.
3726 (f32_sv): Likewise.
3727 (zero_extendsidi2_lfiwzx): Add support for loading into the
3728 Altivec registers with -mpower8-vector. Use wu/wv constraints to
3729 only do VSX memory options on Altivec registers.
3730 (extendsidi2_lfiwax): Likewise.
3731 (extendsfdf2_fpr): Likewise.
3732 (mov<mode>_hardfloat, SF/SD modes): Likewise.
3733 (mov<mode>_hardfloat32, DF/DD modes): Likewise.
3734 (mov<mode>_hardfloat64, DF/DD modes): Likewise.
3735 (movdi_internal64): Likewise.
3736
d6d11272
XDL
37372013-09-27 Xinliang David Li <davidxl@google.com>
3738
3739 * opts.c (finish_options): Adjust parameters
3740 according to vect cost model.
3741 (common_handle_option): Set dynamic vect cost
3742 model for FDO.
3743 targhooks.c (default_add_stmt_cost): Compute stmt cost
3744 unconditionally.
3745 * tree-vect-loop.c (vect_estimate_min_profitable_iters):
3746 Use helper function.
3747 * tree-vectorizer.h (unlimited_cost_model): New function.
3748 * tree-vect-slp.c (vect_slp_analyze_bb_1): Use helper function.
3749 * tree-vect-data-refs.c (vect_peeling_hash_insert): Use helper
3750 function.
3751 (vect_enhance_data_refs_alignment): Ditto.
3752 * flag-types.h: New enum.
3753 * common/config/i386/i386-common.c (ix86_option_init_struct):
3754 No need to initialize vect_cost_model flag.
3755 * config/i386/i386.c (ix86_add_stmt_cost): Compute stmt cost
3756 unconditionally.
3757
ac1857a3
DN
37582013-09-27 Diego Novillo <dnovillo@google.com>
3759
3760 * gimple.h (enum ssa_mode): Remove.
3761
0d0e2af6
PM
37622013-09-27 Paulo Matos <pmatos@broadcom.com>
3763
3764 * cfgloop.h (number_of_loops): Fix typo in check for null.
3765
09dc585e
JJ
37662013-09-27 Jakub Jelinek <jakub@redhat.com>
3767
3768 PR middle-end/58551
3769 * tree-cfg.c (move_sese_region_to_fn): Also move loops that
3770 are children of outermost saved_cfun's loop, and set it up to
3771 be moved to dest_cfun's outermost loop. Fix up num_nodes adjustments
3772 if loop != loop0 and SESE region contains bbs that belong to loop0.
3773
ec5a3504
RS
37742013-09-27 Richard Sandiford <rdsandiford@googlemail.com>
3775
3776 * rtlanal.c (must_be_base_p, must_be_index_p): Delete.
3777 (binary_scale_code_p, get_base_term, get_index_term): New functions.
3778 (set_address_segment, set_address_base, set_address_index)
3779 (set_address_disp): Accept the argument unconditionally.
3780 (baseness): Remove must_be_base_p and must_be_index_p checks.
3781 (decompose_normal_address): Classify as much as possible in the
3782 main loop.
3783
f91aec98
RS
37842013-09-27 Richard Sandiford <rdsandiford@googlemail.com>
3785
3786 * cse.c (count_reg_usage): Handle INT_LIST.
3787 * lra-eliminations.c (lra_eliminate_regs_1): Likewise.
3788 * reginfo.c (reg_scan_mark_refs): Likewise.
3789 * reload1.c (eliminate_regs_1): Likewise.
3790
a9195970
IS
37912013-09-27 Iain Sandoe <iain@codesourcery.com>
3792
3793 PR middle-end/58547
3794 * rtlanal.c (lsb_bitfield_op_p): Make both parts of the comparison
3795 signed.
3796
e6f1c509
RB
37972013-09-27 Richard Biener <rguenther@suse.de>
3798
3799 PR tree-optimization/58459
3800 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Remove
3801 restriction not propagating into loops.
3802
84f48495
FW
38032013-09-26 Florian Weimer <fw@deneb.enyo.de>
3804
3805 * tree-ssa.h (walk_use_def_chains_fn, walk_use_def_chains): Delete.
3806 * tree-ssa.c (walk_use_def_chains_1, walk_use_def_chains): Delete.
3807 * doc/tree-ssa.texi (Walking use-def chains): Delete.
3808
74fc8b8a
RB
38092013-09-26 Richard Biener <rguenther@suse.de>
3810
7a5911d3 3811 * tree-into-ssa.c (rewrite_into_ssa): Make more SSA names to anonymous.
74fc8b8a 3812
b4ada065
RB
38132013-09-26 Richard Biener <rguenther@suse.de>
3814
3815 * alias.h (component_uses_parent_alias_set): Rename to ...
3816 (component_uses_parent_alias_set_from): ... this.
3817 * alias.c (component_uses_parent_alias_set): Rename to ...
3818 (component_uses_parent_alias_set_from): ... this and return
3819 the desired parent.
3820 (reference_alias_ptr_type_1): Use the result from
3821 component_uses_parent_alias_set_from instead of stripping
3822 components one at a time.
3823 * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust.
3824
78bca40d
AM
38252013-09-26 Andrew MacLeod <amacleod@redhat.com>
3826
7a5911d3
UB
3827 * tree-ssa-live.h (find_replaceable_exprs, dump_replaceable_exprs):
3828 Move prototypes to...
78bca40d
AM
3829 * tree-ssa-ter.h: New File. Move prototypes here.
3830 * tree-flow.h (stmt_is_replaceable_p): Remove prototype.
3831 * tree-outof-ssa.h: New. Rename ssaexpand.h, include tree-ssa-ter.h.
3832 * tree-outof-ssa.c (ssa_is_replaceable_p): New. Refactor common bits
7a5911d3 3833 from is_replaceable_p.
78bca40d
AM
3834 * tree-ssa-ter.c (is_replaceable_p, stmt_is_replaceable_p): Delete.
3835 (ter_is_replaceable_p): New. Use new refactored ssa_is_replaceable_p.
3836 (process_replaceable): Use ter_is_replaceable_p.
3837 (find_replaceable_in_bb): Use ter_is_replaceable_p.
3838 * expr.c (stmt_is_replaceable_p): Relocate from tree-ssa-ter.c. Use
3839 newly refactored ssa_is_replaceable_p.
3840 * cfgexpand.c: Include tree-outof-ssa.h.
3841 * ssaexpand.h: Delete.
3842
ff2a63a7
AM
38432013-09-26 Andrew MacLeod <amacleod@redhat.com>
3844
3845 * gimple.c (gimple_replace_lhs): Move to tree-ssa.c and rename.
3846 (struct count_ptr_d, count_ptr_derefs, count_uses_and_derefs): Move to
3847 tree-ssa.c
3848 (create_gimple_tmp): Delete.
3849 (get_expr_type, build_assign, build_type_cast): Move to...
3850 * gimple-builder.c: New File.
3851 (get_expr_type): Relocate from gimple.c.
3852 (build_assign, build_type_cast): Change to only create ssanames.
3853 * gimple.h: Move prototypes to...
3854 * gimple-builder.h: New File. Here.
3855 * tree-ssa.h: And here.
3856 * tree-ssa.c (struct count_ptr_d, count_ptr_derefs,
3857 count_uses_and_derefs): Relocate from gimple.c.
3858 (gimple_replace_ssa_lhs): Renamed gimple_replace_ssa from gimple.c
3859 * tree-ssa-reassoc.c (repropagate_negates): Use gimple_replace_ssa_lhs.
3860 * tree-ssa-math-opts (execute_cse_reciprocals): Use
3861 gimple_replace_ssa_lhs.
3862 * asan.c: Include gimple-builder.h.
3863 * Makefile.in: Add gimple-builder.o.
3864
a2544177
RB
38652013-09-26 Richard Biener <rguenther@suse.de>
3866
3867 * tree-ssa-live.c (var_map_base_init): Handle SSA names with
3868 DECL_IGNORED_P base VAR_DECLs like anonymous SSA names.
3869 (loe_visit_block): Use gcc_checking_assert.
3870 * tree-ssa-coalesce.c (create_outofssa_var_map): Use
3871 gimple_assign_ssa_name_copy_p.
3872 (gimple_can_coalesce_p): Adjust according to the var_map_base_init
3873 change.
3874
6d1ca9a0
DE
38752013-09-26 David Edelsohn <dje.gcc@gmail.com>
3876
3877 * config/rs6000/t-rs6000 (rs6000.o): Remove.
3878 (rs6000-c.o): Use COMPILE and POSTCOMPILE.
3879
46e950db
RB
38802013-09-26 Richard Biener <rguenther@suse.de>
3881
3882 PR tree-optimization/58539
3883 * tree-vect-loop.c (vect_create_epilog_for_reduction): Honor
3884 the fact that debug statements are not taking part in loop-closed
3885 SSA construction.
3886
40ada30a
NC
38872013-09-26 Nick Clifton <nickc@redhat.com>
3888
3889 * config/msp430/msp430.c (msp430_expand_epilogue): Fix compile
3890 time warning message.
3891 (msp430_print_operand_raw): Delete unused letter parameter.
3892 (TARGET_PRINT_OPERAND_ADDRESS): Define.
3893 (msp430_print_operand_address): New function.
3894 (msp430_print_operand): Move address printing code from here to
3895 new function.
3896 * config/msp430/msp430.md (movsipsi2): Add comment in generated
3897 assembler.
3898 (zero_extendpsisi2): Likewise.
3899 (extendpsisi2): New pattern.
3900 (andneghi3): New pattern.
3901
38e8f663
YR
39022013-09-26 Yvan Roux <yvan.roux@linaro.org>
3903
3904 * config/aarch64/aarch64.opt (mlra): New option.
3905 * config/aarch64/aarch64.c (aarch64_lra_p): New function.
3906 (TARGET_LRA_P): Define.
3907
4167e8d4
EB
39082013-09-26 Eric Botcazou <ebotcazou@adacore.com>
3909
3910 * expr.c (expand_assignment): Remove obsolete comment.
3911
5254eac4
JL
39122013-09-25 Jeff Law <law@redhat.com>
3913
3914 * tree-flow.h (thread_through_all_blocks): Prototype moved into
3915 tree-ssa-threadupdate.h.
3916 (register_jump_thread): Similarly.
3917 * tree-ssa-threadupdate.h: New header file.
3918 * tree-ssa-dom.c: Include tree-ssa-threadupdate.h.
3919 * tree-vrp.c: Likewise.
3920 * tree-ssa-threadedge.c: Include tree-ssa-threadupdate.h.
3921 (thread_around_empty_blocks): Change type of path vector argument to
3922 an edge,type pair from just an edge. Initialize both elements when
3923 appending to a jump threading path. Tweak references to elements
3924 appropriately.
3925 (thread_across_edge): Similarly. Release memory for the elements
3926 as needed.
3927 * tree-ssa-threadupdate.c: Include tree-ssa-threadupdate.h.
3928 (dump_jump_thread_path): New function broken out from
3929 register_jump_thread.
3930 (register_jump_thread): Use dump_jump_thread_path. Change type of
3931 path vector entries. Search the path for NULL edges and dump
3932 the path if one is found. Tweak the conversion of path to 3-edge
3933 form to use the block copy type information embedded in the path.
3934
20f114a3
YR
39352013-09-25 Yvan Roux <yvan.roux@linaro.org>
3936
3937 * lra.c (update_inc_notes): Remove all REG_DEAD and REG_UNUSED notes.
3938
3936bafc
YR
39392013-09-25 Yvan Roux <yvan.roux@linaro.org>
3940 Vladimir Makarov <vmakarov@redhat.com>
3941
3942 * rtlanal.c (lsb_bitfield_op_p): New predicate for bitfield operations
3943 from the least significant bit.
3944 (strip_address_mutations): Add bitfield operations handling.
3945 (must_be_index_p): Add shifting and rotate operations handling.
3946 (set_address_base): Use must_be_base_p predicate.
4167e8d4 3947 (set_address_index): Use must_be_index_p predicate.
3936bafc 3948
b86f6e9e
AI
39492013-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
3950 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
3951 Sergey Lega <sergey.s.lega@intel.com>
3952 Anna Tikhonova <anna.tikhonova@intel.com>
3953 Ilya Tocar <ilya.tocar@intel.com>
3954 Andrey Turetskiy <andrey.turetskiy@intel.com>
3955 Ilya Verbin <ilya.verbin@intel.com>
3956 Kirill Yukhin <kirill.yukhin@intel.com>
3957 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
3958
3959 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
3960 Use new names.
3961 (ix86_expand_vector_move_misalign): Support new unaligned load and
3962 stores and use new names.
3963 (CODE_FOR_sse2_storedqu): Rename to ...
3964 (CODE_FOR_sse2_storedquv16qi): ... this.
3965 (CODE_FOR_sse2_loaddqu): Rename to ...
3966 (CODE_FOR_sse2_loaddquv16qi): ... this.
3967 (CODE_FOR_avx_loaddqu256): Rename to ...
3968 (CODE_FOR_avx_loaddquv32qi): ... this.
3969 (CODE_FOR_avx_storedqu256): Rename to ...
3970 (CODE_FOR_avx_storedquv32qi): ... this.
3971 * config/i386/i386.md (fpint_logic): New.
3972 * config/i386/sse.md (VMOVE): Extend for AVX512.
3973 (VF): Ditto.
3974 (VF_128_256): New.
3975 (VF_512): Ditto.
3976 (VI_UNALIGNED_LOADSTORE): Ditto.
3977 (sse2_avx_avx512f): Ditto.
3978 (sse2_avx2): Extend for AVX512.
3979 (sse4_1_avx2): Ditto.
3980 (avx2_avx512f): New.
3981 (sse): Extend for AVX512.
3982 (sse2): Ditto.
3983 (sse4_1): Ditto.
3984 (avxsizesuffix): Ditto.
3985 (sseintvecmode): Ditto.
3986 (ssePSmode): Ditto.
3987 (<sse>_loadu<ssemodesuffix><avxsizesuffix>): Ditto.
3988 (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Ditto.
3989 (<sse2>_loaddqu<avxsizesuffix>): Extend for AVX512 and rename to ...
3990 (<sse2_avx_avx512f>_loaddqu<mode>): ... this.
3991 (<sse2>_storedqu<avxsizesuffix>): Extend for AVX512 and rename to ...
3992 (<sse2_avx_avx512f>_storedqu<mode): ... this.
3993 (<sse>_movnt<mode>): Replace constraint "x" with "v".
3994 (STORENT_MODE): Extend for AVX512.
3995 (*absneg<mode>2): Replace constraint "x" with "v".
3996 (*mul<mode>3): Ditto.
3997 (*ieee_smin<mode>3): Ditto.
3998 (*ieee_smax<mode>3): Ditto.
3999 (avx_cmp<mode>3): Replace VF with VF_128_256.
4000 (*<sse>_maskcmp<mode>3_comm): Ditto.
4001 (<sse>_maskcmp<mode>3): Ditto.
4002 (<sse>_andnot<mode>3): Extend for AVX512.
4003 (<code><mode>3, anylogic): Replace VF with VF_128_256.
4004 (<code><mode>3, fpint_logic): New.
4005 (*<code><mode>3): Extend for AVX512.
4006 (avx512flogicsuff): New.
4007 (avx512f_<logic><mode>): Ditto.
4008 (<sse>_movmsk<ssemodesuffix><avxsizesuffix>): Replace VF with
4009 VF_128_256.
4010 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Ditto.
4011 (<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>): Ditto.
4012 (<sse4_1>_dp<ssemodesuffix><avxsizesuffix>): Ditto.
4013 (avx_vtest<ssemodesuffix><avxsizesuffix>): Ditto.
4014 (<sse4_1>_round<ssemodesuffix><avxsizesuffix>): Ditto.
4015 (xop_vpermil2<mode>3): Ditto.
4016 (*avx_vpermilp<mode>): Extend for AVX512 and rename to ...
4017 (*<sse2_avx_avx512f>_vpermilp<mode>): ... this.
4018 (avx_vpermilvar<mode>3): Extend for AVX512 and rename to ...
4019 (<sse2_avx_avx512f>_vpermilvar<mode>3): ... this.
4020
4d44d03c
TT
40212013-09-25 Tom Tromey <tromey@redhat.com>
4022
4023 * Makefile.in (PARTITION_H, LTO_SYMTAB_H, COMMON_TARGET_DEF_H)
4024 (RTL_ERROR_H, TRANS_MEM_H, COVERAGE_H, DEMANGLE_H, ALIAS_H)
4025 (SCHED_INT_H, SEL_SCHED_IR_H, SEL_SCHED_DUMP_H, VALTRACK_H, DDG_H)
4026 (GGC_INTERNAL_H, DECNUM_H, BACKTRACE_H, MKDEPS_H, TREE_HASHER_H)
4027 (TREE_SSA_LIVE_H, SSAEXPAND_H, DWARF2OUT_H, SCEV_H, OMEGA_H)
4028 (TREE_DATA_REF_H, IRA_INT_H, LRA_INT_H, DBGCNT_H, DATA_STREAMER_H)
4029 (GIMPLE_STREAMER_H, TREE_STREAMER_H, STREAMER_HOOKS_H)
4030 (TREE_VECTORIZER_H, IPA_INLINE_H, GSTAB_H, LIBFUNCS_H)
4031 (GRAPHITE_HTAB_H): Remove.
4032
86aaf68d
TT
40332013-09-25 Tom Tromey <tromey@redhat.com>
4034
4035 * config/mcore/t-mcore (CROSS_FLOAT_H): Remove.
4036
c987deb8
TT
40372013-09-25 Tom Tromey <tromey@redhat.com>
4038
4039 * config/t-glibc (glibc-c.o): Use COMPILE and POSTCOMPILE.
4040
9439747e
TT
40412013-09-25 Tom Tromey <tromey@redhat.com>
4042
4043 * config/i386/t-i386 (i386.o): Remove.
4044 (i386-c.o): Use COMPILE and POSTCOMPILE.
4045
aefc31a1
TT
40462013-09-25 Tom Tromey <tromey@redhat.com>
4047
4048 * Makefile.in ($(out_object_file)): Use COMPILE and POSTCOMPILE.
4049
b6541edc
TT
40502013-09-25 Tom Tromey <tromey@redhat.com>
4051
4052 * Makefile.in (graph.o, sbitmap.o, sparseset.o, gcc-ar.o)
4053 (gcc-ranlib.o, gcc-nm.o, collect2.o, collect2-aix.o, tlink.o)
4054 (lto-wrapper.o, default-c.o, attribs.o, incpath.o, prefix.o)
4055 (gcc.o, options.o, options-save.o, version.o, gtype-desc.o)
4056 (trans-mem.o, ggc-common.o, ggc-page.o, ggc-none.o, stringpool.o)
4057 (convert.o, double-int.o, lto-compress.o, data-streamer-in.o)
4058 (data-streamer-out.o, data-streamer.o, gimple-streamer-in.o)
4059 (gimple-streamer-out.o, tree-streamer.o, tree-streamer-in.o)
4060 (tree-streamer-out.o, streamer-hooks.o, lto-cgraph.o)
4061 (lto-streamer-in.o, lto-streamer-out.o, lto-section-in.o)
4062 (lto-section-out.o, lto-opts.o, lto-streamer.o, langhooks.o)
4063 (test-dump.o, tree.o, tree-dump.o, tree-inline.o, print-tree.o)
4064 (stor-layout.o, asan.o, tsan.o, ubsan.o, tree-ssa-tail-merge.o)
4065 (tree-ssa-structalias.o, tree-ssa-uninit.o, tree-ssa.o)
4066 (tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o)
4067 (tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o)
4068 (tree-ssa-phiprop.o, tree-ssa-ifcombine.o, tree-ssa-phiopt.o)
4069 (tree-nrv.o, tree-ssa-copy.o, tree-ssa-propagate.o)
4070 (tree-ssa-dom.o, tree-ssa-uncprop.o, tree-ssa-threadedge.o)
4071 (tree-ssa-threadupdate.o, tree-ssanames.o, tree-phinodes.o)
4072 (domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o)
4073 (tree-ssa-pre.o, tree-ssa-sccvn.o)
4074 (gimple-ssa-strength-reduction.o, tree-vrp.o, tree-cfg.o)
4075 (tree-cfgcleanup.o, tree-tailcall.o, tree-ssa-sink.o)
4076 (tree-nested.o, tree-if-conv.o, tree-iterator.o, tree-dfa.o)
4077 (tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o)
4078 (tree-ssa-loop-unswitch.o, tree-ssa-address.o)
4079 (tree-ssa-loop-niter.o, tree-ssa-loop-ivcanon.o)
4080 (tree-ssa-loop-ch.o, tree-ssa-loop-prefetch.o, tree-predcom.o)
4081 (tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-manip.o)
4082 (tree-ssa-loop-im.o, tree-ssa-math-opts.o, tree-ssa-alias.o)
4083 (tree-ssa-reassoc.o, tree-optimize.o, gimplify.o)
4084 (gimple-iterator.o, gimple-fold.o, gimple-low.o, omp-low.o)
4085 (tree-browser.o, omega.o, tree-chrec.o, tree-scalar-evolution.o)
4086 (tree-data-ref.o, sese.o, graphite.o, graphite-blocking.o)
4087 (graphite-clast-to-gimple.o, graphite-dependences.o)
4088 (graphite-interchange.o, graphite-poly.o)
4089 (graphite-scop-detection.o, graphite-sese-to-poly.o)
4090 (graphite-optimize-isl.o, tree-vect-loop.o)
4091 (tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o)
4092 (tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o)
4093 (vtable-verify.o, tree-loop-distribution.o, tree-parloops.o)
4094 (tree-stdarg.o, tree-object-size.o, internal-fn.o, gimple.o)
4095 (gimple-pretty-print.o, tree-mudflap.o, tree-nomudflap.o)
4096 (tree-pretty-print.o, tree-diagnostic.o, fold-const.o)
4097 (diagnostic.o, diagnostic-color.o, opts.o, opts-global.o)
4098 (opts-common.o, targhooks.o, common/common-targhooks.o, input.o)
4099 (toplev.o, hwint.o, passes.o, plugin.o, main.o, host-default.o)
4100 (rtl-error.o, rtl.o, print-rtl.o, rtlanal.o, varasm.o, function.o)
4101 (statistics.o, stmt.o, except.o, expr.o, dojump.o, builtins.o)
4102 (calls.o, expmed.o, explow.o, optabs.o, dbxout.o, debug.o)
4103 (sdbout.o, dwarf2out.o, dwarf2cfi.o, dwarf2asm.o, vmsdbgout.o)
4104 (xcoffout.o, godump.o, emit-rtl.o, real.o, realmpfr.o, dfp.o)
4105 (fixed-value.o, jump.o, simplify-rtx.o, symtab.o, cgraph.o)
4106 (cgraphunit.o, cgraphclones.o, cgraphbuild.o, varpool.o, ipa.o)
4107 (ipa-profile.o, ipa-devirt.o, ipa-prop.o, ipa-ref.o, ipa-cp.o)
4108 (ipa-split.o, ipa-inline.o, ipa-inline-analysis.o)
4109 (ipa-inline-transform.o, ipa-utils.o, ipa-reference.o)
4110 (ipa-pure-const.o, coverage.o, cselib.o, cse.o, dce.o, dumpfile.o)
4111 (dse.o, fwprop.o, web.o, ree.o, cprop.o, gcse.o, store-motion.o)
4112 (resource.o, lcm.o, mode-switching.o, tree-ssa-dce.o)
4113 (tree-call-cdce.o, tree-ssa-ccp.o, tree-ssa-strlen.o, tree-sra.o)
4114 (tree-switch-conversion.o, tree-complex.o, tree-emutls.o)
4115 (tree-vect-generic.o, df-core.o, df-problems.o, df-scan.o)
4116 (regstat.o, valtrack.o, var-tracking.o, profile.o, mcf.o)
4117 (tree-profile.o, value-prof.o, loop-doloop.o, alloc-pool.o)
4118 (auto-inc-dec.o, cfg.o, cfghooks.o, cfgexpand.o, cfgrtl.o)
4119 (cfganal.o, cfgbuild.o, cfgcleanup.o, cfgloop.o, cfgloopanal.o)
4120 (graphds.o, loop-iv.o, loop-invariant.o, cfgloopmanip.o)
4121 (loop-init.o, loop-unswitch.o, loop-unroll.o, dominance.o)
4122 (et-forest.o, combine.o, reginfo.o, bitmap.o, vec.o, hash-table.o)
4123 (reload.o, reload1.o, rtlhooks.o, postreload.o, postreload-gcse.o)
4124 (caller-save.o, bt-load.o, reorg.o, alias.o, stack-ptr-mod.o)
4125 (init-regs.o, ira-build.o, ira-costs.o, ira-conflicts.o)
4126 (ira-color.o, ira-emit.o, ira-lives.o, ira.o, lra.o)
4127 (lra-assigns.o, lra-coalesce.o, lra-constraints.o)
4128 (lra-eliminations.o, lra-lives.o, lra-spills.o, regmove.o)
4129 (combine-stack-adj.o, compare-elim.o, ddg.o, modulo-sched.o)
4130 (haifa-sched.o, sched-deps.o, sched-rgn.o, sched-ebb.o)
4131 (sched-vis.o, sel-sched.o, sel-sched-dump.o, sel-sched-ir.o)
4132 (final.o, recog.o, reg-stack.o, sreal.o, predict.o, lists.o)
4133 (bb-reorder.o, tracer.o, timevar.o, regcprop.o, regrename.o)
4134 (ifcvt.o, params.o, pointer-set.o, hooks.o, pretty-print.o)
4135 (errors.o, dbgcnt.o, lower-subreg.o, target-globals.o)
4136 (hw-doloop.o, file-find.o, context.o, $(common_out_object_file))
4137 (insn-attrtab.o, insn-automata.o, insn-dfatab.o, insn-emit.o)
4138 (insn-enums.o, insn-extract.o, insn-latencytab.o, insn-modes.o)
4139 (insn-opinit.o, insn-output.o, insn-peep.o, insn-preds.o)
4140 (insn-recog.o, intl.o, cppbuiltin.o, cppdefault.o, gcov.o)
4141 (gcov-dump.o): Remove.
4142 (default-c.o): Use COMPILE and POSTCOMPILE.
4143 (CFLAGS-gcc.o): New variable.
4144 ($(common_out_object_file)): Use COMPILE and POSTCOMPILE.
4145
8c796d19
TT
41462013-09-25 Tom Tromey <tromey@redhat.com>
4147
4148 * Makefile.in (c-family/cppspec.o, c-family/c-common.o)
4149 (c-family/c-cppbuiltin.o, c-family/c-dump.o, c-family/c-format.o)
4150 (c-family/c-gimplify.o, c-family/c-lex.o, c-family/c-omp.o)
4151 (c-family/c-opts.o, c-family/c-pch.o, c-family/c-ppoutput.o)
4152 (c-family/c-pragma.o, c-family/c-pretty-print.o)
4153 (c-family/c-semantics.o, c-family/c-ada-spec.o)
4154 (c-family/array-notation-common.o, c-family/stub-objc.o)
4155 (c-family/c-ubsan.o): Remove.
4156
0a6c2227
TT
41572013-09-25 Tom Tromey <tromey@redhat.com>
4158
4159 * Makefile.in (C_TREE_H): Reference c/c-tree.h.
4160
f3bc55f0
TT
41612013-09-25 Tom Tromey <tromey@redhat.com>
4162
4163 * Makefile.in (DRIVER_DEFINES): Use $(and), not shell code,
4164 to add -DENABLE_SHARED_LIBGCC.
4165 (gcc.o): Don't use subshell.
4166
c11c795e
TT
41672013-09-25 Tom Tromey <tromey@redhat.com>
4168
4169 * Makefile.in (OUTPUT_OPTION): Define as "-o $@".
4170 * configure.ac: Don't invoke AM_PROG_CC_C_O.
4171 (NO_MINUS_C_MINUS_O, OUTPUT_OPTION): Don't subst.
4172 * configure, config.in: Rebuild.
4173
043378c3
TT
41742013-09-25 Tom Tromey <tromey@redhat.com>
4175
4176 * Makefile.in (CCDEPMODE, DEPDIR, depcomp, COMPILE.base)
4177 (COMPILE, POSTCOMPILE): New variables.
4178 (.cc.o .c.o): Use COMPILE, POSTCOMPILE.
4179 (DEPFILES): New variable.
4180 Include ".Po" files.
4181 * configure.ac: Add checks for dependency checking.
4182 * configure, aclocal.m4: Regenerate.
4183
eab34643
TT
41842013-09-25 Tom Tromey <tromey@redhat.com>
4185
4186 * Makefile.in (ALL_HOST_BACKEND_OBJS): Add lto-wrapper.o.
7a5911d3 4187 ($(ALL_HOST_OBJS)): Move order-only dependency to end of file.
eab34643 4188
d2db5e91
TT
41892013-09-25 Tom Tromey <tromey@redhat.com>
4190
4191 * Makefile.in (generated_files): Add options.h,
4192 target-hooks-def.h, insn-opinit.h,
4193 common/common-target-hooks-def.h, pass-instances.def,
4194 c-family/c-target-hooks-def.h.
4195
af33629e
JL
41962013-09-25 Jeff Law <law@redhat.com>
4197
4198 * tree-ssa-threadedge.c (thread_across_edge): Use foo.last () rather
4199 than foo[foo.length () - 1] to access last member in a vec.
4200 * tree-ssa-threadupdate.c (register_jump_thread): Similarly.
4201
ed0d3051
RB
42022013-09-25 Richard Biener <rguenther@suse.de>
4203
4204 PR middle-end/58521
4205 * tree.c (iterative_hash_expr): Remove MEM_REF special handling.
4206
123485ca
JH
42072013-09-25 Jan Hubicka <jh@suse.cz>
4208
4209 * cgraph.c (cgraph_resolve_speculation): Use semantical equivalency
4210 test.
4211
d70b0f1f
MP
42122013-09-25 Marek Polacek <polacek@redhat.com>
4213
4214 PR sanitizer/58420
4215 * ubsan.c (ubsan_type_descriptor): Handle IDENTIFIER_NODEs
4216 when determining the type name.
4217
e3f02798
OE
42182013-09-24 Oleg Endo <olegendo@gcc.gnu.org>
4219
4220 * config/sh/sh.md: Fix formatting.
4221
7a5911d3 42222013-09-24 Xinliang David Li <davidxl@google.com>
4f17aa0b 4223
7a5911d3
UB
4224 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Check
4225 max peel iterations parameter.
4f17aa0b
XDL
4226 * param.def: New parameter.
4227 * doc/invoke.texi: Document New parameter.
4228
0498471b
CL
42292013-09-24 Christophe Lyon <christophe.lyon@linaro.org>
4230
4231 * gimple-pretty-print.c: Various whitespace tweaks.
4232 * tree-core.h: Likewise.
4233 * tree-pretty-print.c: Likewise.
4234 * tree-ssa-alias.c: Likewise.
4235 * tree-ssa-copy.c: Likewise.
4236 * tree-ssanames.c: Likewise.
4237 * tree-ssanames.h: Likewise.
4238 * tree-vrp.c: Likewise.
4239
5a8c2b57
AM
42402013-09-24 Alan Modra <amodra@gmail.com>
4241
4242 PR middle-end/57134
4243 PR middle-end/57586
7a5911d3
UB
4244 * stmt.c (expand_asm_operands): Call expand_expr with EXPAND_MEMORY
4245 for output operands that disallow regs. Don't use EXPAND_WRITE on
4246 inout operands.
5a8c2b57 4247
f40333af
RB
42482013-09-24 Richard Biener <rguenther@suse.de>
4249
4250 PR middle-end/58513
4251 * tree.c (reference_alias_ptr_type): Move ...
4252 * alias.c (reference_alias_ptr_type): ... here and implement
4253 in terms of the new reference_alias_ptr_type_1.
4254 (ref_all_alias_ptr_type_p): New helper.
4255 (get_deref_alias_set_1): Drop flag_strict_aliasing here,
4256 use ref_all_alias_ptr_type_p.
4257 (get_deref_alias_set): Add flag_strict_aliasing check here.
4258 (reference_alias_ptr_type_1): New function, split out from ...
4259 (get_alias_set): ... here.
4260 (alias_ptr_types_compatible_p): New function.
4261 * alias.h (reference_alias_ptr_type): Declare.
4262 (alias_ptr_types_compatible_p): Likewise.
4263 * tree.h (reference_alias_ptr_type): Remove.
4264 * fold-const.c (operand_equal_p): Use alias_ptr_types_compatible_p
4265 to compare MEM_REF alias types.
4266
583e8bf5
RB
42672013-09-24 Richard Biener <rguenther@suse.de>
4268
4269 * tree-vrp.c (vrp_finalize): Check for SSA name presence.
4270
5e8586d7
MM
42712013-09-23 Michael Meissner <meissner@linux.vnet.ibm.com>
4272
19c3e797
MM
4273 * config/rs6000/rs6000.c (rs6000_vector_reload): Delete, combine
4274 reload helper function arrays into a single array reg_addr.
4275 (reload_fpr_gpr): Likewise.
4276 (reload_gpr_vsx): Likewise.
4277 (reload_vsx_gpr): Likewise.
4278 (struct rs6000_reg_addr): Likewise.
4279 (reg_addr): Likewise.
4280 (rs6000_debug_reg_global): Change rs6000_vector_reload,
4281 reload_fpr_gpr, reload_gpr_vsx, reload_vsx_gpr uses to reg_addr.
4282 (rs6000_init_hard_regno_mode_ok): Likewise.
4283 (rs6000_secondary_reload_direct_move): Likewise.
4284 (rs6000_secondary_reload): Likewise.
4285
5e8586d7
MM
4286 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add new
4287 constraints: wu, ww, and wy. Repurpose wv constraint added during
4288 power8 changes. Put wg constraint in alphabetical order.
4289
4290 * config/rs6000/rs6000.opt (-mvsx-scalar-float): New debug switch
4291 for future work to add ISA 2.07 VSX single precision support.
4292 (-mvsx-scalar-double): Change default from -1 to 1, update
4293 documentation comment.
4294 (-mvsx-scalar-memory): Rename debug switch to -mupper-regs-df.
4295 (-mupper-regs-df): New debug switch to control whether DF values
4296 can go in the traditional Altivec registers.
4297 (-mupper-regs-sf): New debug switch to control whether SF values
4298 can go in the traditional Altivec registers.
4299
4300 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print wu, ww,
4301 and wy constraints.
4302 (rs6000_init_hard_regno_mode_ok): Use ssize_t instead of int for
4303 loop variables. Rename -mvsx-scalar-memory to -mupper-regs-df.
4304 Add new constraints, wu/ww/wy. Repurpose wv constraint.
4305 (rs6000_debug_legitimate_address_p): Print if we are running
4306 before, during, or after reload.
4307 (rs6000_secondary_reload): Add a comment.
4308 (rs6000_opt_masks): Add -mupper-regs-df, -mupper-regs-sf.
4309
4310 * config/rs6000/constraints.md (wa constraint): Sort w<x>
4311 constraints. Update documentation string.
4312 (wd constraint): Likewise.
4313 (wf constraint): Likewise.
4314 (wg constraint): Likewise.
4315 (wn constraint): Likewise.
4316 (ws constraint): Likewise.
4317 (wt constraint): Likewise.
4318 (wx constraint): Likewise.
4319 (wz constraint): Likewise.
4320 (wu constraint): New constraint for ISA 2.07 SFmode scalar
4321 instructions.
4322 (ww constraint): Likewise.
4323 (wy constraint): Likewise.
358e1993
MM
4324 (wv constraint): Repurpose ISA 2.07 constraint that we did not use
4325 in the previous submissions.
5e8586d7
MM
4326 * doc/md.texi (PowerPC and IBM RS6000): Likewise.
4327
e5af9ddd
RS
43282013-09-23 Richard Sandiford <rdsandiford@googlemail.com>
4329
4330 * doc/rtl.texi (REG_NOTES): Say that int_list can also be used.
4331 (REG_BR_PROB): Say that the probability is stored in an int_list.
4332 * reg-notes.def: Update commentary to mention INT_LIST.
4333 * rtl.def (EXPR_LIST, INSN_LIST): Capitalize comments.
4334 (INT_LIST): New rtx.
4335 * rtl.h (add_int_reg_note, add_shallow_copy_of_reg_note): Declare.
4336 * rtlanal.c (int_reg_note_p): New function.
4337 (alloc_reg_note): Assert that the note does not have an int argument.
4338 (add_int_reg_note, add_shallow_copy_of_reg_note): New functions.
4339 * combine.c (distribute_notes): Use add_shallow_copy_of_rtx.
4340 * cse.c (cse_process_notes_1): Expect REG_EQUAL to be an EXPR_LIST
4341 rather than an INSN_LIST. Handle INT_LIST.
4342 * ifcvt.c (cond_exec_process_insns): Take the probability as an int
4343 rather than an rtx. Use gen_rtx_INT_LIST to create a REG_BR_PROB note.
4344 (cond_exec_process_if_block): Use XINT to extract REG_BR_PROB values.
4345 Manipulate them as ints rather than rtxes.
4346 * reg-stack.c (subst_asm_stack_regs): Only handle EXPR_LIST notes.
4347 * regmove.c (copy_src_to_dest): Likewise.
4348 * sched-vis.c (print_insn_with_notes): Handle INT_LIST.
4349
4350 * config/i386/winnt.c (i386_pe_seh_unwind_emit): Sink pat assignment
4351 into the cases that need it.
4352 * config/arm/arm.c (arm_unwind_emit): Likewise.
4353
4354 * asan.c (asan_clear_shadow): Use add_int_reg_note for REG_BR_PROB.
4355 * emit-rtl.c (try_split, emit_copy_of_insn_after): Likewise.
4356 * loop-doloop.c (add_test, doloop_modify): Likewise.
4357 * loop-unswitch.c (compare_and_jump_seq): Likewise.
4358 * optabs.c (emit_cmp_and_jump_insn_1): Likewise.
4359 * predict.c (combine_predictions_for_insn): Likewise.
4360 * print-rtl.c (print_rtx): Handle INT_LIST.
4361 * config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): Likewise.
4362 * config/alpha/alpha.c (emit_unlikely_jump): Likewise.
4363 * config/arm/arm.c (emit_unlikely_jump): Likewise.
4364 * config/i386/i386.c (ix86_expand_split_stack_prologue): Likewise.
4365 (ix86_split_fp_branch, predict_jump): Likewise.
4366 * config/rs6000/rs6000.c (emit_unlikely_jump): Likewise.
4367 * config/sh/sh.c (expand_cbranchsi4): Likewise.
4368 * config/spu/spu.c (ea_load_store_inline): Likewise.
4369
4370 * cfgbuild.c (compute_outgoing_frequencies): Use XINT to access the
4371 value of a REG_BR_PROB note.
4372 * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
4373 (update_br_prob_note, rtl_verify_edges, purge_dead_edges): Likewise.
4374 * emit-rtl.c (try_split): Likewise.
4375 * predict.c (br_prob_note_reliable_p): Likewise.
4376 (invert_br_probabilities, combine_predictions_for_insn): Likewise.
4377 * reorg.c (mostly_true_jump): Likewise.
4378 * config/bfin/bfin.c (cbranch_predicted_taken_p): Likewise.
4379 * config/frv/frv.c (frv_print_operand_jump_hint): Likewise.
4380 * config/i386/i386.c (ix86_print_operand): Likewise.
4381 * config/ia64/ia64.c (ia64_print_operand): Likewise.
4382 * config/mmix/mmix.c (mmix_print_operand): Likewise.
4383 * config/rs6000/rs6000.c (output_cbranch): Likewise.
4384 * config/s390/s390.c (s390_expand_tbegin): Likewise.
4385 * config/sh/sh.c (sh_print_operand, sh_adjust_cost): Likewise.
4386 * config/sparc/sparc.c (output_cbranch): Likewise.
4387 * config/spu/spu.c (get_branch_target): Likewise.
4388 * config/tilegx/tilegx.c (cbranch_predicted_p): Likewise.
4389 * config/tilepro/tilepro.c (cbranch_predicted_p): Likewise.
4390
450ad0cd
JH
43912013-09-23 Jan Hubicka <jh@suse.cz>
4392
4393 * ipa-cp.c (ipa_get_indirect_edge_target_1): Add sanity check
4394 for ipa-devirt.
4395 * ipa-utils.h (possible_polymorphic_call_target_p): New function.
4396 * ipa-devirt.c (possible_polymorphic_call_target_p): Be tolerant
4397 of external calls
4398 * gimple-fold.c: Include ipa-utils.h and gimple-pretty-print.h
4399 (gimple_fold_call): Dump inconsistent devirtualizations; add
4400 sanity check for type based devirtualizations.
4401 * ipa-prop.c: Include ipa-utils.h
4402 (ipa_intraprocedural_devirtualization): Add sanity check.
4403 (try_make_edge_direct_virtual_call): Likewise.
4404
cefce769
EB
44052013-09-23 Eric Botcazou <ebotcazou@adacore.com>
4406
4407 * tree-ssa-ccp.c (insert_clobber_before_stack_restore): Recurse on copy
4408 assignment statements.
4409
a895a2b8
KV
44102013-09-23 Kugan Vivekanandarajah <kuganv@linaro.org>
4411
4412 * gimple-pretty-print.c (dump_ssaname_info): New function.
4413 (dump_gimple_phi): Call it.
4414 (pp_gimple_stmt_1): Likewise.
4415 * tree-core.h (tree_ssa_name): New union ssa_name_info_type field.
4416 (range_info_def): Declare.
4417 * tree-pretty-print.c (pp_double_int): New function.
4418 (dump_generic_node): Call it.
4419 * tree-pretty-print.h (pp_double_int): Declare.
4420 * tree-ssa-alias.c (dump_alias_info): Check pointer type.
4421 * tree-ssanames.h (range_info_def): New structure.
4422 (value_range_type): Move definition here.
4423 (set_range_info, value_range_type, duplicate_ssa_name_range_info):
4424 Declare.
4425 * tree-ssanames.c (make_ssa_name_fn): Check pointer type at
4426 initialization.
4427 (set_range_info): New function.
4428 (get_range_info): Likewise.
4429 (duplicate_ssa_name_range_info): Likewise.
4430 (duplicate_ssa_name_fn): Check pointer type and call
4431 duplicate_ssa_name_range_info.
4432 * tree-ssa-copy.c (fini_copy_prop): Likewise.
4433 * tree-vrp.c (value_range_type): Remove definition, now in
4434 tree-ssanames.h.
7a5911d3 4435 (vrp_finalize): Call set_range_info to update value range of SSA_NAMEs.
a895a2b8
KV
4436 * tree.h (SSA_NAME_PTR_INFO): Macro changed to access via union.
4437 (SSA_NAME_RANGE_INFO): New macro.
4438
984af6ac
RB
44392013-09-23 Richard Biener <rguenther@suse.de>
4440
4441 PR tree-optimization/58464
4442 * tree-ssa-pre.c (phi_trans_lookup): Remove.
7a5911d3 4443 (phi_trans_add): Change to add conditionally on being not present.
984af6ac
RB
4444 (phi_translate_1): Remove recursion detection here.
4445 (phi_translate): Pre-seed the cache with NULL to catch
4446 recursion here in a more generic way.
4447 (bitmap_find_leader): Adjust comment.
4448 (get_representative_for): Dump value-numbers.
4449 (create_expression_by_pieces): Likewise.
4450 (insert_into_preds_of_block): Likewise.
4451
0e26cf79
CB
44522013-09-23 Christian Bruel <christian.bruel@st.com>
4453
4454 PR target/58475
4455 * config/sh/sh.md (movsf_ie): Allow fpul_operand.
4456 * config/sh/predicate.md (arith_reg_operand): Disallow FPUL_REG.
4457
4d0e5b54
JG
44582013-09-23 James Greenhalgh <james.greenhalgh@arm.com>
4459
4460 Revert r202780:
4461 2013-09-20 Renlin Li <renlin.li@arm.com>
4462
7a5911d3
UB
4463 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use
4464 plus_constant.
4d0e5b54
JG
4465 (aarch64_expand_epilogue): Likewise.
4466 (aarch64_legitimize_reload_address): Likewise.
4467
ca081cc8
EB
44682013-09-22 Eric Botcazou <ebotcazou@adacore.com>
4469
4470 * gimplify.c (gimplify_asm_expr): Reset the TREE_CHAIN of clobbers to
4471 NULL_TREE before pushing them onto the vector. Likewise for labels.
4472
8fc53a5f
EB
44732013-09-21 Eric Botcazou <ebotcazou@adacore.com>
4474
4475 * config/ia64/predicates.md (ia64_cbranch_operator): Accept unordered
4476 comparison operators when -fno-trapping-math is in effect.
4477 * config/ia64/ia64.c (ia64_expand_compare): Add support for unordered
4478 comparison operators in TFmode and assert that unsupported operators
4479 cannot reach here.
4480 (ia64_print_operand): Likewise.
4481
44822013-09-21 Jan Hubicka <jh@suse.cz>
0ca6c49f
JH
4483
4484 * x86-tune.def (partial_reg_stall): Disable for CoreI7 and newer.
4485 (sse_typeless_stores): Enable for core
4486 (sse_load0_by_pxor): Likewise.
4487 (four_jump_limit): Disable for core.
4488 (pad_returns): Likewise.
4489 (avoid_vector_decode): Likewise.
4490 (fuse_cmp_and_branch): Enable for cores.
4491 * i386.c (x86_accumulate_outgoing_args): Disable for cores.
4492
578e51e6
JDA
44932013-09-20 John David Anglin <danglin@gcc.gnu.org>
4494
96ce28a3
JDA
4495 PR middle-end/56791
4496 * config/pa/pa.c (pa_option_override): Disable auto increment and
4497 decrement instructions until reload is completed.
4498
578e51e6
JDA
4499 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Define
4500 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2,
4501 and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
4502
6fcd3a13 45032013-09-20 DJ Delorie <dj@redhat.com>
7a5911d3 4504 Nick Clifton <nickc@redhat.com>
6fcd3a13
DD
4505
4506 * config/rl78/rl78.c: Various whitespace and comment tweaks.
4507 (need_to_save): Save bank 0 on interrupts.
4508 (characterize_address): Strip far address wrappers.
4509 (rl78_as_legitimate_address): Likewise.
4510 (transcode_memory_rtx): Likewise.
4511 (rl78_peep_movhi_p): Disable this peephole after devirt.
4512 (rl78_propogate_register_origins): Forget all origins when a
4513 CLOBBER is seen.
4514 * config/rl78/rl78-virt.md: Various whitespace tweaks.
4515 * config/rl78/rl78-real.md: Various whitespace tweaks. Additional
4516 peephole2's.
4517 * config/rl78/rl78.md (sel_rb): Disable for G10 just in case.
4518 * config/rl78/rl78-expand.md (movqi): Check for subregs of consts.
4519 * config/rl78/rl78.h (LINK_SPEC): Pass -gc-sections unless
4520 relocating.
4521 * config/rl78/constraints.md: Various whitespace and paren tweaks.
4522
4a08db33
JDA
45232013-09-20 John David Anglin <danglin@gcc.gnu.org>
4524
4525 * config/pa/pa.md: In "scc" insn patterns, change output template to
4526 handle const0_rtx in reg_or_0_operand operands.
4527
7691132c
JBG
45282013-09-20 Martin Husemann <martin@NetBSD.org>
4529
4530 PR target/56875
4531 * config/vax/vax.c (vax_output_int_move): Use D format specifier.
4532 * config/vax/vax.md (ashldi3, <unnamed>): Ditto.
4533
a3cc13cc
RB
45342013-09-20 Richard Biener <rguenther@suse.de>
4535
4536 PR middle-end/58484
4537 * tree-scalar-evolution.c (struct scev_info_str): Shrink by
4538 remembering SSA name version and block index.
4539 (new_scev_info_str): Adjust.
4540 (hash_scev_info): Likewise. Also hash the block index.
4541 (eq_scev_info): Adjust.
4542 (find_var_scev_info): Likewise.
4543 (struct instantiate_cache_entry): Remove.
4544 (struct instantiate_cache_type): Use a htab to map name, block
4545 to chrec.
4546 (instantiate_cache_type::~instantiate_cache_type): Adjust.
4547 (get_instantiated_value_entry): Likewise.
4548 (hash_idx_scev_info, eq_idx_scev_info): New functions.
4549 (instantiate_scev_name): Adjust.
4550
925f3871
JL
45512013-09-20 Jeff Law <law@redhat.com>
4552
4553 * tree-ssa-dom.c (record_temporary_equivalences): Add comment.
4554
2888c331
YZ
45552013-09-20 Yufeng Zhang <yufeng.zhang@arm.com>
4556
4557 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args):
4558 Call aarch64_simd_expand_args to update op[argc].
4559
0a811e96
BS
45602013-09-20 Basile Starynkevitch <basile@starynkevitch.net>
4561
7a5911d3
UB
4562 * plugin.c (parse_plugin_arg_opt): Accept equal sign inside
4563 plugin argument.
0a811e96 4564
0078f462
BS
45652013-09-20 Basile Starynkevitch <basile@starynkevitch.net>
4566
7a5911d3
UB
4567 * gengtype.c (file_rules): Added rule for *.cc files.
4568 (get_output_file_with_visibility): Give fatal message when no
4569 rules found.
0078f462 4570
d20e48b0
RL
45712013-09-20 Renlin Li <renlin.li@arm.com>
4572
4573 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use plus_constant.
4574 (aarch64_expand_epilogue): Likewise.
4575 (aarch64_legitimize_reload_address): Likewise.
4576
59bb1544
BE
45772013-09-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
4578
4579 PR middle-end/57748
4580 * expr.c (expand_assignment): Remove misalignp code path.
4581
a5430019
MP
45822013-09-20 Marek Polacek <polacek@redhat.com>
4583
4584 PR sanitizer/58413
4585 * ubsan.c (get_ubsan_type_info_for_type): Use TYPE_SIZE instead of
4586 TYPE_PRECISION. Add asserts.
4587
9fed7f3a
RB
45882013-09-20 Richard Biener <rguenther@suse.de>
4589
4590 PR tree-optimization/58453
4591 * tree-loop-distribution.c (distribute_loop): Apply the cost
4592 model for -ftree-loop-distribute-patterns, too.
4593
a820c834
RB
45942013-09-20 Richard Biener <rguenther@suse.de>
4595
4596 PR middle-end/58473
4597 * tree-chrec.h (build_polynomial_chrec): Use gcc_checking_assert,
4598 make type comparison less strict.
4599
3cbe17f7
AM
46002013-09-20 Alan Modra <amodra@gmail.com>
4601
4602 * configure: Regenerate.
4603 * aclocal.m4: Regenerate.
4604
87fccdbb
MP
46052013-09-20 Marek Polacek <polacek@redhat.com>
4606
4607 PR other/58467
4608 * doc/extend.texi: Document that attribute used is meant to be used
4609 on variables with static storage duration.
4610
8928eff3
JJ
46112013-09-19 Jakub Jelinek <jakub@redhat.com>
4612
4613 PR tree-optimization/58472
4614 * tree-vect-stmts.c (vectorizable_store, vectorizable_load): For
4615 simd_lane_access set inv_p = false.
4616 * omp-low.c (lower_rec_input_clauses): Set TREE_NO_WARNING on
4617 the simduid magic VAR_DECL.
4618
b7b28c53
JH
46192013-09-19 Jan Hubicka <jh@suse.cz>
4620
4621 * i386.c (generic_memcpy, generic_memset): Fix 32bit template.
4622
83ae86f5
JL
46232013-09-17 Jeff Law <law@redhat.com>
4624
4625 * tree-ssa-dom.c (record_temporary_equivalences): New function
4626 split out of dom_opt_dom_walker::after_dom_children.
4627 (dom_opt_dom_walker::thread_across_edge): Move common code
4628 in here from dom_opt_dom_walker::after_dom_children.
4629 (dom_opt_dom_walker::after_dom_children): Corresponding simplifictions.
4630
9d532162
JH
46312013-09-19 Jan Hubicka <jh@suse.cz>
4632
4633 * i386.h (TARGET_GENERIC32, TARGET_GENERIC64): Remove.
4634 (TARGET_GENERIC): Use PROCESOR_GENERIC
4635 (enum processor_type): Unify generic32 and 64.
4636 * i386.md (cpu): Likewise.
4637 * x86-tune.def (use_leave): Enable for generic32.
4638 (avoid_vector_decode, slow_imul_imm32_mem, slow_imul_imm8): Likewise.
4639 * athlon.md: Change generic64 to generic in all occurences.
4640 * i386-c.c (ix86_target_macros_internal): Unify generic64 and 32.
4641 (ix86_target_macros_internal): Likewise.
4642 * driver-i386.c (host_detect_local_cpu): Likewise.
7a5911d3
UB
4643 * i386.c (generic64_memcpy, generic64_memset, generic64_cost): Rename
4644 to ..
9d532162
JH
4645 (generic_memcpy, generic_memset, generic_cost): This one.
4646 (generic32_memcpy, generic32_memset, generic32_cost): Remove.
4647 (m_GENERIC32, m_GENERIC64): Remove.
4648 (m_GENERIC): Turn into one flag.
4649 (processor_target): Unify generic tunnings.
4650 (ix86_option_override_internal): Replace generic32/64 by generic.
4651 (ix86_issue_rate): Likewise.
4652 (ix86_adjust_cost): Likewise.
4653
188c7d00
JH
46542013-09-19 Jan Hubicka <jh@suse.cz>
4655
4656 * cgraph.c (cgraph_create_edge_1): Avoid uninitialized read
4657 of speculative flag.
4658
4befd127
JJ
46592013-09-19 Jakub Jelinek <jakub@redhat.com>
4660
4661 * omp-low.c (expand_omp_sections): Always pass len - 1 to
4662 GOMP_sections_start, even if !exit_reachable.
4663
8a26ad39
VM
46642013-09-18 Vladimir Makarov <vmakarov@redhat.com>
4665
4666 * lra-constraints.c (need_for_all_save_p): Use macro
4667 HARD_REGNO_CALL_PART_CLOBBERED.
4668 * lra-lives.c (check_pseudos_live_through_calls): Use the macro to
4669 set up pseudo conflict hard regs.
4670
09487185
MM
46712013-09-18 Michael Meissner <meissner@linux.vnet.ibm.com>
4672
4673 PR target/58452
4674 * config/rs6000/paired.md (movmisalignv2sf): Fix to allow memory
4675 operands.
4676
080cbf9e
VM
46772013-09-18 Vladimir Makarov <vmakarov@redhat.com>
4678
4679 PR rtl-optimization/58438
4680 * lra.c (lra): Clear lra_optional_reload_pseudos in upper loop.
4681 * lra-constraints.c (undo_optional_reloads): Keep optional reloads
4682 from previous subpasses.
4683
a0f70fcb
RE
46842013-09-18 Richard Earnshaw <rearnsha@arm.com>
4685
4686 * arm.c (arm_get_frame_offsets): Validate architecture supports
4687 LDRD/STRD before accepting the tuning preference.
4688 (arm_expand_prologue): Likewise.
4689 (arm_expand_epilogue): Likewise.
4690
0547c9b6
RB
46912013-09-18 Richard Biener <rguenther@suse.de>
4692
4693 PR tree-optimization/58417
4694 * tree-chrec.c (chrec_fold_plus_1): Assert that we do not
4695 have chrecs with symbols defined in the loop as operands.
4696 (chrec_fold_multiply): Likewise.
4697 * tree-scalar-evolution.c (interpret_rhs_expr): Instantiate
4698 parameters before folding binary operations.
4699 (struct instantiate_cache_entry_hasher): Remove.
4700 (struct instantiate_cache_type): Use a pointer-map.
4701 (instantiate_cache_type::instantiate_cache_type): New function.
4702 (instantiate_cache_type::get): Likewise.
4703 (instantiate_cache_type::set): Likewise.
4704 (instantiate_cache_type::~instantiate_cache_type): Adjust.
4705 (get_instantiated_value_entry): Likewise.
4706 (global_cache): New global.
4707 (instantiate_scev_r, instantiate_scev_poly, instantiate_scev_binary,
4708 instantiate_array_ref, instantiate_scev_convert, instantiate_scev_3,
4709 instantiate_scev_2, instantiate_scev_1): Do not pass along cache.
4710 (instantiate_scev_name): Adjust.
4711 (instantiate_scev): Construct global instead of local cache.
4712 (resolve_mixers): Likewise.
4713
309dc1aa
DM
47142013-09-18 Daniel Morris <danielm@ecoscentric.com>
4715 Paolo Carlini <paolo.carlini@oracle.com>
4716
4717 PR c++/58458
4718 * doc/implement-cxx.texi: Fix references to the C++ standards.
4719
995a1b4a
JJ
47202013-09-18 Jakub Jelinek <jakub@redhat.com>
4721
4722 * omp-low.c (copy_var_decl): Copy DECL_ATTRIBUTES.
4723 * tree-vect-data-refs.c (vect_analyze_data_refs): For
4724 simd_lane_access drs, update also DR_ALIGNED_TO.
4725
ce6923c5
MP
47262013-09-18 Marek Polacek <polacek@redhat.com>
4727
4728 PR sanitizer/58411
4729 * doc/extend.texi: Document no_sanitize_undefined attribute.
4730 * builtins.c (fold_builtin_0): Don't sanitize function if it has the
4731 no_sanitize_undefined attribute.
4732
d30d00a2
NC
47332013-09-18 Nick Clifton <nickc@redhat.com>
4734
4735 * config/msp430/msp430.h (ASM_SPEC): Pass -md on to the assembler.
4736 (ASM_DECLARE_FUNCTION_NAME): Define.
4737
4d9192b5
TS
47382013-09-17 Trevor Saunders <tsaunders@mozilla.com>
4739
4740 * compare-elim.c (find_comparison_dom_walker): New class
4741 (find_comparisons_in_bb): Rename to
4742 find_comparison_dom_walker::before_dom_children
4743 (find_comparisons): Adjust
4744 * domwalk.c (walk_dominator_tree): Rename to dom_walker::walk, and
4745 adjust.
4746 (init_walk_dominator_tree, fini_walk_dominator_tree): Remove
4747 * domwalk.h (dom_walk_data): Convert it To a class dom_walker.
4748 (init_walk_dominator_tree): Remove declaration.
4749 (fini_walk_dominator_tree): Remove declaration.
4750 * fwprop.c (single_def_use_dom_walker): New class
4751 (single_def_use_enter_block): Convert to
4752 single_def_use_dom_walker::before_dom_children.
4753 (single_def_use_leave_block): Convert to
4754 single_def_use_dom_walker::after_dom_children.
4755 (build_single_def_use_links): Adjust.
4756 * gimple-ssa-strength-reduction.c (find_candidates_dom_walker): New
4757 class.
4758 (find_candidates_in_block): Convert to
4759 find_candidates_dom_walker::before_dom_children.
4760 (execute_strength_reduction): Adjust.
4761 * graphite-sese-to-poly.c (struct bsc, build_sese_conditions): Remove.
4762 (sese_dom_walker): New class.
4763 (sese_dom_walker::sese_dom_walker): New constructor.
4764 (sese_dom_walker::~sese_dom_walker): New destructor.
4765 (build_sese_conditions_before): Convert to
4766 sese_dom_walker::before_dom_children.
4767 (build_sese_conditions_after): Convert to
4768 sese_dom_walker::after_dom_children.
4769 (build_poly_scop): Adjust
4770 * tree-into-ssa.c (rewrite_dom_walker): New class
4771 (rewrite_enter_block): Convert to
4772 rewrite_dom_walker::before_dom_children.
4773 (rewrite_leave_block): Convert to
4774 rewrite_dom_walker::after_dom_children.
4775 (rewrite_update_dom_walker): New class.
4776 (rewrite_update_enter_block): Convert to
4777 rewrite_update_dom_walker::before_dom_children.
4778 (rewrite_update_leave_block): Convert to
4779 rewrite_update_dom_walker::after_dom_children.
4780 (rewrite_blocks, rewrite_into_ssa): Adjust.
4781 (mark_def_dom_walker): New class.
4782 (mark_def_dom_walker::mark_def_dom_walker): New constructor.
4783 (mark_def_dom_walker::~mark_def_dom_walker): New destructor.
4784 (mark_def_sites_blocks): Convert to
4785 mark_def_dom_walker::before_dom_children.
4786 (mark_def_site_blocks): Remove.
4787 * tree-ssa-dom.c (dom_opt_dom_walker): New class.
4788 (tree_ssa_dominator_optimize): Adjust.
4789 (dom_thread_across_edge): Convert to method
4790 dom_opt_dom_walker::thread_across_edge.
4791 (dom_opt_enter_block): Convert to member function
4792 dom_opt_dom_walker::before_dom_children.
4793 (dom_opt_leave_block): Convert to member function
4794 dom_opt_dom_walker::after_dom_children.
4795 * tree-ssa-dse.c (dse_dom_walker): New class.
4796 (dse_enter_block): Convert to member function
4797 dse_dom_walker::before_dom_children.
4798 (tree_ssa_dse): Adjust.
4799 * tree-ssa-loop-im.c (invariantness_dom_walker): New class.
4800 (determine_invariantness_stmt): Convert to method
4801 invariantness_dom_walker::before_dom_children.
4802 (determine_invariantness): Remove
4803 (move_computations_dom_walker): New class.
4804 (move_computations_stmt): Convert to method
4805 move_computations_dom_walker::before_dom_children.
4806 (move_computations, tree_ssa_lim): Adjust.
4807 * tree-ssa-phiopt.c (nontrapping_dom_walker): new class
4808 (nt_init_block): Make method
4809 notrappping_dom_walker::before_dom_children.
4810 (nt_fini_block): Make
4811 method nontrapping_dom_walker::after_dom_children.
4812 (get_non_trapping): Adjust.
4813 * tree-ssa-pre.c (eliminate_dom_walker): New class.
4814 (eliminate_bb): Make method eliminate_dom_walker::before_dom_children.
4815 (eliminate_leave_block): Make method.
4816 eliminate_dom_walker::after_dom_children.
4817 (eliminate): Adjust
4818 * tree-ssa-strlen.c (strlen_dom_walker): New class.
4819 (strlen_enter_block): Make method
4820 strlen_dom_walker::before_dom_children.
4821 (strlen_leave_block): Make
4822 method strlen_dom_walker::after_dom_children.
4823 (tree_ssa_strlen): Adjust.
4824 * tree-ssa-uncprop.c (uncprop_dom_walker): New class.
4825 (tree_ssa_uncprop): Adjust.
4826 (uncprop_leave_block): Make method
4827 uncprop_dom_walker::after_dom_children.
4828 (uncprop_leave_block): Make method
4829 uncprop_dom_walker::before_dom_children.
4830
3b3cc26b
BC
48312013-09-18 Bin Cheng <bin.cheng@arm.com>
4832
7a5911d3
UB
4833 * config/arm/arm.c (thumb1_reorg): Search for flag setting insn before
4834 branch in same basic block. Check both src and dest of the move insn.
3b3cc26b 4835
b5ba3a9b
NC
48362013-09-17 Nick Clifton <nickc@redhat.com>
4837
4838 * config/rl78/rl78-real.md (bf): New pattern.
4839 (bt): New pattern.
4840 * config/rl78/rl78.c (rl78_print_operand_1): Handle %B.
4841 (rl78_print_operand): Do not put a # before a %B.
4842 * config/rl78/rl78.opt: Tweak doc strings.
4843
09d5094b
DD
48442013-09-17 DJ Delorie <dj@redhat.com>
4845
4846 * config/rl78/constraints.md (Wcv): Allow up to $r31.
4847 * config/rl78/rl78.c (rl78_asm_file_start: Likewise.
4848 (rl78_option_override): Likewise, if -mallregs.
4849 (is_virtual_register): Likewise.
4850 * config/rl78/rl78.h (reg_class): Extend VREGS to $r31.
4851 (REGNO_OK_FOR_BASE_P): Likewise.
4852 * config/rl78/rl78.opt (-mallregs): New.
4853
2ba1dca1
NC
48542013-09-17 Nick Clifton <nickc@redhat.com>
4855
4856 * config/rl78/rl78.c (need_to_save): Change return type to bool.
4857 For interrupt functions: save all call clobbered registers if the
4858 interrupt handler is not a leaf function.
4859 (rl78_expand_prologue): Always recompute the frame information.
4860 For interrupt functions: only select bank 0 if one of the bank 0
4861 registers is going to be psuhed.
4862
2e7c3f21
DD
48632013-09-17 DJ Delorie <dj@redhat.com>
4864
4865 * config/rl78/constraints.md: For each W* constraint, rename to C*
4866 and create a W* constraint that checks for an optional ES: prefix
4867 pattern also.
4868 * config/rl78/rl78.md (UNS_ES_ADDR): New.
4869 (es_addr): New. Used to wrap far addresses.
4870 * config/rl78/rl78-protos.h (rl78_es_addr): New.
4871 (rl78_es_base): New.
4872 * config/rl78/rl78.c (rl78_as_legitimate_address): Accept "unspec"
4873 wrapped far addresses.
4874 (rl78_print_operand_1): Unwrap far addresses before processing.
4875 (rl78_lo16): Wrap far addresses in unspecs.
4876 (rl78_es_addr): New.
4877 (rl78_es_base): New.
4878 (insn_ok_now): Check for not-yet-wrapped far addresses.
4879 (transcode_memory_rtx): Properly re-wrap far addresses.
4880
5c26a69a
SH
48812013-09-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
4882
4883 * config/sparc/t-rtems: Add leon3 multilibs.
4884
181f5f3e
CH
48852013-09-17 Cong Hou <congh@google.com>
4886
4887 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Fix a bug
4888 when checking the dot production pattern. The type of rhs operand
4889 of multiply is now checked correctly.
4890
8d34e421
JL
48912013-09-17 Jeff Law <law@redhat.com>
4892
4893 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
4894 edge implied equivalences into successor phis.
4895 * tree-ssa-threadupdate.c (phi_args_equal_on_edges): Moved into
4896 here from tree-ssa-threadedge.c.
4897 (mark_threaded_blocks): When threading through a joiner, if both
4898 successors of the joiner's clone reach the same block, verify the
4899 PHI arguments are equal. If not, cancel the jump threading request.
4900 * tree-ssa-threadedge.c (phi_args_equal_on_edges): Moved into
4901 tree-ssa-threadupdate.c
4902 (thread_across_edge): Don't check PHI argument equality when
4903 threading through joiner block here.
7a5911d3 4904
c152901f
AM
49052013-09-17 Andrew MacLeod <amacleod@redhat.com>
4906
4907 * tree-flow.h (ssa_undefined_value_p): Remove prototype.
4908 * tree-ssa.c (ssa_undefined_value_p): Move pass independent parts here.
7a5911d3
UB
4909 (warn_uninit, warn_uninitialized_vars,
4910 execute_early_warn_uninitialized, make_pass_early_warn_uninitialized):
4911 Move to tree-ssa-uninit.c.
78cedfb1 4912 * tree-ssa-uninit.c (ssa_undefined_value_p): Move to tree-ssa.c.
7a5911d3 4913 (has_undefined_value_p): New. Pass dependant parts of
c152901f
AM
4914 ssa_undefined_value_p.
4915 (uninit_undefined_value_p): Use has_undefined_value_p.
7a5911d3
UB
4916 (warn_uninit, warn_uninitialized_vars,
4917 execute_early_warn_uninitialized, make_pass_early_warn_uninitialized):
4918 Move from tree-ssa.c.
4919 * tree-ssa.h: Adjust prototypes.
c152901f 4920
b631d45a
JH
49212013-09-17 Jan Hubicka <jh@suse.cz>
4922
4923 PR middle-end/58332
4924 * cif-code.def (FUNCTION_NOT_OPTIMIZED): New CIF code.
4925 * ipa-inline.c (can_inline_edge_p): Do not downgrade
4926 FUNCTION_NOT_OPTIMIZED.
4927 * ipa-inline-analysis.c (compute_inline_parameters): Function
4928 not optimized is not inlinable unless it is alwaysinline.
4929 (inline_analyze_function): Force calls in not optimized
4930 function not inlinable.
4931
5b79657a
JH
49322013-09-17 Jan Hubicka <jh@suse.cz>
4933
4934 PR middle-end/58329
4935 * ipa-devirt.c (ipa_devirt): Be ready for symtab_nonoverwritable_alias
4936 to return NULL.
4937 * ipa.c (function_and_variable_visibility): Likewise.
4938 * ipa-profile.c (ipa_profile): Likewise.
4939
27442c24
BE
49402013-09-17 Bernd Edlinger <bernd.edlinger@hotmail.de>
4941
4942 PR ipa/58398
4943 * cgraph.c (cgraph_function_body_availability): Check for ifunc
4944 attribute, and don't inline the resolver in this case.
4945
753b9bc3
TJ
49462013-09-17 Teresa Johnson <tejohnson@google.com>
4947
4948 * coverage.c (get_coverage_counts): Add missing newline.
4949
e3d3cfb4
KT
49502013-09-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4951
4952 PR tree-optimization/58088
4953 * fold-const.c (mask_with_trailing_zeros): New function.
4954 (fold_binary_loc): Make sure we don't recurse infinitely
4955 when the X in (X & C1) | C2 is a tree of the form (Y * K1) & K2.
4956 Use mask_with_trailing_zeros where appropriate.
4957
9a0ac98f
YR
49582013-09-17 Yuri Rumyantsev <ysrumyan@gmail.com>
4959
4960 * config/i386/i386.c (distance_agu_use_in_bb) : Proper initialization
4961 of 'prev' var to get better distance estimation.
4962
78bbd765
EB
49632013-09-17 Eric Botcazou <ebotcazou@adacore.com>
4964
4965 * tree-inline.h (struct copy_body_data): Add transform_parameter.
4966 * tree-inline.c (is_parameter_of): New predicate.
4967 (remap_gimple_op_r): Do not propagate TREE_THIS_NOTRAP on MEM_REF if
4968 a parameter has been remapped.
4969 (copy_tree_body_r): Likewise on INDIRECT_REF and MEM_REF.
4970 (optimize_inline_calls): Initialize transform_parameter.
4971 (copy_gimple_seq_and_replace_locals): Likewise.
4972 (tree_function_versioning): Likewise.
4973 (maybe_inline_call_in_expr): Likewise.
4974
cad055a4
NC
49752013-09-17 Nick Clifton <nickc@redhat.com>
4976
4977 * config/msp430/msp430-protos.h: Add prototypes for new functions.
4978 * config/msp430/msp430.c (msp430_preserve_reg_p): Add support for
4979 interrupt handlers.
4980 (is_attr_func): New function.
4981 (msp430_is_interrupt_func): New function.
4982 (is_naked_func): New function.
4983 (is_reentrant_func): New function.
4984 (is_critical_func): New function.
4985 (msp430_start_function): Add annotations for function attributes.
4986 (msp430_attr): New function.
4987 (msp430_attribute_table): New.
4988 (msp430_function_section): New function.
4989 (TARGET_ASM_FUNCTION_SECTION): Define.
4990 (msp430_builtin): New enum.
4991 (msp430_init_builtins): New function.
4992 (msp430_builtin_devl): New function.
4993 (msp430_expand_builtin): New function.
4994 (TARGET_INIT_BUILTINS): Define.
4995 (TARGET_EXPAND_BUILTINS): Define.
4996 (TARGET_BUILTIN_DECL): Define.
4997 (msp430_expand_prologue): Add support for naked, interrupt,
4998 critical and reentrant functions.
4999 (msp430_expand_epilogue): Likewise.
5000 (msp430_print_operand): Handle 'O' character.
5001 * config/msp430/msp430.h (TARGET_CPU_CPP_BUILTINS): Define
5002 NO_TRAMPOLINES.
5003 * config/msp430/msp430.md (unspec): Add UNS_DINT, UNS_EINT,
5004 UNS_PUSH_INTR, UNS_POP_INTR, UNS_BIC_SR, UNS_BIS_SR.
5005 (pushm): Use a 'n' rather than an 'i' constraint.
5006 (msp_return): Add generation of the interrupt return instruction.
5007 (disable_interrupts): New pattern.
5008 (enable_interrupts): New pattern.
5009 (push_intr_state): New pattern.
5010 (pop_intr_state): New pattern.
5011 (bic_SR): New pattern.
5012 (bis_SR): New pattern.
5013 * doc/extend.texi: Document MSP430 function attributes and builtin
5014 functions.
5015
deb6c11a
RB
50162013-09-17 Richard Biener <rguenther@suse.de>
5017
5018 PR tree-optimization/58432
5019 * tree-loop-distribution.c (tree_loop_distribution): Also
5020 scan PHIs for outside loop uses and seed a partition from them.
5021
c068654b
BC
50222013-09-17 Bin Cheng <bin.cheng@arm.com>
5023
5024 * gimple-ssa-strength-reduction.c (backtrace_base_for_ref): New.
5025 (restructure_reference): Call backtrace_base_for_ref.
5026
567969e4
AM
50272013-09-17 Alan Modra <amodra@gmail.com>
5028
5029 PR target/57589
7a5911d3
UB
5030 * config/rs6000/driver-rs6000.c (elf_platform): Revert 2013-06-11
5031 patch.
567969e4 5032
5c0029de
DD
50332013-09-16 DJ Delorie <dj@redhat.com>
5034
5035 * config/rl78/rl78.c (rl78_asm_file_start): Specify alternate
5036 vregs location for RL78/G10.
5037 (rl78_expand_prologue): Avoid SEL on G10.
5038 (rl78_expand_epilogue): Likewise.
5039 (rl78_peep_movhi_p): Can't move a constant to memory in HImode.
5040 * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
5041 __RL78_G10__ when appropriate.
5042 (ASM_SPEC): Pass -mg10 along to the assembler.
5043 * config/rl78/rl78.md (sel_rb): Disable for G10.
5044 * config/rl78/rl78.opt: Add -mg10 option.
5045 * config/rl78/t-rl78: Add -mg10 multilib.
5046
ea0f3e87
XDL
50472013-09-16 Xinliang David Li <davidxl@google.com>
5048
5049 * tree-if-conv.c (main_tree_if_conversion): Check new flag.
5050 * omp-low.c (omp_max_vf): Ditto.
5051 (expand_omp_simd): Ditto.
5052 * tree-vectorizer.c (vectorize_loops): Ditto.
5053 (gate_vect_slp): Ditto.
5054 (gate_increase_alignment): Ditto.
5055 * tree-ssa-pre.c (inhibit_phi_insertion): Ditto.
5056 * tree-ssa-loop.c (gate_tree_vectorize): Ditto.
5057 (gate_tree_vectorize): Name change.
5058 (tree_vectorize): Ditto.
5059 (pass_vectorize::gate): Call new function.
5060 (pass_vectorize::execute): Ditto.
7a5911d3 5061 * opts.c: O3 default setting change.
ea0f3e87
XDL
5062 (finish_options): Check new flag.
5063 * doc/invoke.texi: Document new flags.
5064 * common.opt: New flags.
5065
4f3da2e5
AS
50662013-09-16 Andreas Schwab <schwab@linux-m68k.org>
5067
5068 * doc/tm.texi.in (Cond Exec Macros): Remove node.
5069 (Condition Code): Don't reference it.
5070 * doc/tm.texi: Regenerate.
5071
aa940f7c
VM
50722013-09-16 Vladimir Makarov <vmakarov@redhat.com>
5073
5074 PR middle-end/58418
5075 * lra-constraints.c (undo_optional_reloads): Consider all optional
5076 reload even if it did not get a hard reg.
5077
e645e942
TJ
50782013-09-16 Teresa Johnson <tejohnson@google.com>
5079
5080 * dumpfile.c (dump_loc): Remove newline emission.
5081 * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Add newline
5082 emission to dump_printf_loc calls where missing.
5083 (vect_mark_for_runtime_alias_test): Ditto.
5084 (vect_analyze_data_ref_dependence): Ditto.
5085 (vect_analyze_data_ref_dependences): Ditto.
5086 (vect_slp_analyze_data_ref_dependence): Ditto.
5087 (vect_slp_analyze_data_ref_dependences): Ditto.
5088 (vect_compute_data_ref_alignment): Ditto.
5089 (vect_update_misalignment_for_peel): Ditto.
5090 (vect_verify_datarefs_alignment): Ditto.
5091 (vector_alignment_reachable_p): Ditto.
5092 (vect_get_data_access_cost): Ditto.
5093 (vect_enhance_data_refs_alignment): Ditto.
5094 (vect_find_same_alignment_drs): Ditto.
5095 (vect_analyze_data_refs_alignment): Ditto.
5096 (vect_analyze_group_access): Ditto.
5097 (vect_analyze_data_ref_access): Ditto.
5098 (vect_analyze_data_ref_accesses): Ditto.
5099 (vect_prune_runtime_alias_test_list): Ditto.
5100 (vect_analyze_data_refs): Ditto.
5101 (vect_create_addr_base_for_vector_ref): Ditto.
5102 (vect_create_data_ref_ptr): Ditto.
5103 (vect_grouped_store_supported): Ditto.
5104 (vect_grouped_load_supported): Ditto.
5105 * value-prof.c (check_counter): Ditto.
5106 (check_ic_target): Ditto.
5107 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Ditto.
5108 (vect_recog_widen_mult_pattern): Ditto.
5109 (vect_recog_widen_sum_pattern): Ditto.
5110 (vect_recog_over_widening_pattern): Ditto.
5111 (vect_recog_widen_shift_pattern): Ditto.
5112 (vect_recog_rotate_pattern): Ditto.
5113 (vect_recog_vector_vector_shift_pattern): Ditto.
5114 (vect_recog_divmod_pattern): Ditto.
5115 (vect_recog_mixed_size_cond_pattern): Ditto.
5116 (vect_recog_bool_pattern): Ditto.
5117 (vect_pattern_recog_1): Ditto.
5118 (vect_pattern_recog): Ditto.
5119 * tree-vect-loop.c (vect_determine_vectorization_factor): Ditto.
5120 (vect_is_simple_iv_evolution): Ditto.
5121 (vect_analyze_scalar_cycles_1): Ditto.
5122 (vect_get_loop_niters): Ditto.
5123 (vect_analyze_loop_1): Ditto.
5124 (vect_analyze_loop_form): Ditto.
5125 (vect_analyze_loop_operations): Ditto.
5126 (vect_analyze_loop_2): Ditto.
5127 (vect_analyze_loop): Ditto.
5128 (report_vect_op): Ditto.
5129 (vect_is_slp_reduction): Ditto.
5130 (vect_is_simple_reduction_1): Ditto.
5131 (vect_get_known_peeling_cost): Ditto.
5132 (vect_estimate_min_profitable_iters): Ditto.
5133 (vect_model_reduction_cost): Ditto.
5134 (vect_model_induction_cost): Ditto.
5135 (get_initial_def_for_induction): Ditto.
5136 (vect_create_epilog_for_reduction): Ditto.
5137 (vectorizable_reduction): Ditto.
5138 (vectorizable_induction): Ditto.
5139 (vectorizable_live_operation): Ditto.
5140 (vect_loop_kill_debug_uses): Ditto.
5141 (vect_transform_loop): Ditto.
5142 * tree-vect-stmts.c (vect_mark_relevant): Ditto.
5143 (vect_stmt_relevant_p): Ditto.
5144 (process_use): Ditto.
5145 (vect_mark_stmts_to_be_vectorized): Ditto.
5146 (vect_model_simple_cost): Ditto.
5147 (vect_model_promotion_demotion_cost): Ditto.
5148 (vect_model_store_cost): Ditto.
5149 (vect_get_store_cost): Ditto.
5150 (vect_model_load_cost): Ditto.
5151 (vect_get_load_cost): Ditto.
5152 (vect_init_vector_1): Ditto.
5153 (vect_get_vec_def_for_operand): Ditto.
5154 (vect_finish_stmt_generation): Ditto.
5155 (vectorizable_call): Ditto.
5156 (vectorizable_conversion): Ditto.
5157 (vectorizable_assignment): Ditto.
5158 (vectorizable_shift): Ditto.
5159 (vectorizable_operation): Ditto.
5160 (vectorizable_store): Ditto.
5161 (vectorizable_load): Ditto.
5162 (vectorizable_condition): Ditto.
5163 (vect_analyze_stmt): Ditto.
5164 (vect_transform_stmt): Ditto.
5165 (vect_is_simple_use): Ditto.
5166 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): Ditto.
5167 (vect_can_advance_ivs_p): Ditto.
5168 (vect_update_ivs_after_vectorizer): Ditto.
5169 (vect_do_peeling_for_loop_bound): Ditto.
5170 (vect_gen_niters_for_prolog_loop): Ditto.
5171 (vect_update_inits_of_drs): Ditto.
5172 (vect_create_cond_for_alias_checks): Ditto.
5173 * tree-vect-slp.c (vect_get_and_check_slp_defs): Ditto.
5174 (vect_build_slp_tree_1): Ditto.
5175 (vect_supported_load_permutation_p): Ditto.
5176 (vect_analyze_slp_instance): Ditto.
5177 (vect_analyze_slp): Ditto.
5178 (vect_make_slp_decision): Ditto.
5179 (vect_detect_hybrid_slp): Ditto.
5180 (vect_bb_vectorization_profitable_p): Ditto.
5181 (vect_slp_analyze_bb_1): Ditto.
5182 (vect_update_slp_costs_according_to_vf): Ditto.
5183 (vect_get_mask_element): Ditto.
5184 (vect_transform_slp_perm_load): Ditto.
5185 (vect_schedule_slp_instance): Ditto.
5186 (vect_schedule_slp): Ditto.
5187 (vect_slp_transform_bb): Ditto.
5188 * profile.c (read_profile_edge_counts): Ditto.
5189 (compute_branch_probabilities): Ditto.
5190 * coverage.c (get_coverage_counts): Ditto.
5191
46f851f3
DN
51922013-09-16 Diego Novillo <dnovillo@google.com>
5193
7a5911d3 5194 * tree-core.h: Add missing comment lines from refactoring of tree.h.
46f851f3 5195
1632a686
JH
51962013-09-16 Jan Hubicka <jh@suse.cz>
5197
5198 * gimple-fold.c (can_refer_decl_in_current_unit_p): Do not accept
7a5911d3 5199 abstract functions; for static functions check the presence of body.
1632a686 5200
828e70c1
JG
52012013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
5202
5203 * config/aarch64/aarch64-simd-builtins.def (fma): New.
5204 * config/aarch64/aarch64-simd.md
5205 (aarch64_mla_elt<mode>): New.
5206 (aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
5207 (aarch64_mls_elt<mode>): Likewise.
5208 (aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
5209 (aarch64_fma4_elt<mode>): Likewise.
5210 (aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
5211 (aarch64_fma4_elt_to_128v2df): Likewise.
5212 (aarch64_fma4_elt_to_64df): Likewise.
5213 (fnma<mode>4): Likewise.
5214 (aarch64_fnma4_elt<mode>): Likewise.
5215 (aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
5216 (aarch64_fnma4_elt_to_128v2df): Likewise.
5217 (aarch64_fnma4_elt_to_64df): Likewise.
5218 * config/aarch64/iterators.md (VDQSF): New.
5219 * config/aarch64/arm_neon.h
5220 (vfm<as><sdq>_lane<q>_f<32, 64>): Convert to C implementation.
5221 (vml<sa><q>_lane<q>_<fsu><16, 32, 64>): Likewise.
5222
779aea46
JG
52232013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
5224
5225 * config/aarch64/aarch64-simd.md (aarch64_mul3_elt<mode>): New.
5226 (aarch64_mul3_elt_<vswap_width_name><mode>): Likewise.
5227 (aarch64_mul3_elt_to_128df): Likewise.
5228 (aarch64_mul3_elt_to_64v2df): Likewise.
5229 * config/aarch64/iterators.md (VEL): Also handle DFmode.
5230 (VMUL): New.
5231 (VMUL_CHANGE_NLANES) Likewise.
5232 (h_con): Likewise.
5233 (f): Likewise.
5234 * config/aarch64/arm_neon.h
5235 (vmul<q>_lane<q>_<suf><16,32,64>): Convert to C implementation.
5236
a407a750
JG
52372013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
5238
5239 * config/aarch64/arm_neon.h
5240 (vcvtx_high_f32_f64): Fix parameters.
5241
f77e2d2d 52422013-09-16 Jan-Benedict Glaw <jbglaw@lug-owl.de>
a5bd71fa 5243 Uros Bizjak <ubizjak@gmail.com>
f77e2d2d 5244
a5bd71fa 5245 * config/alpha.c: Include tree-ssanames.h.
f77e2d2d 5246
36875e8f
RB
52472013-09-16 Richard Biener <rguenther@suse.de>
5248
5249 * tree-loop-distribution.c (enum rdg_dep_type): Add control_dd.
5250 (dot_rdg_1): Handle control_dd.
5251 (create_edge_for_control_dependence): New function.
5252 (create_rdg_edges): Add control dependences if asked for.
5253 (build_rdg): Likewise.
5254 (generate_loops_for_partition): If there are not necessary
5255 control stmts remove all their dependencies.
5256 (collect_condition_stmts, rdg_flag_loop_exits): Remove.
5257 (distribute_loop): Pass on control dependences.
5258 (tree_loop_distribution): Compute control dependences and remove
5259 restriction on number of loop nodes.
5260
96e24d49
JJ
52612013-09-16 Jakub Jelinek <jakub@redhat.com>
5262
5263 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Return early
5264 for internal calls.
5265
40dbb05c
RS
52662013-09-16 Richard Sandiford <rdsandiford@googlemail.com>
5267
5268 * cse.c (try_const_anchors): Punt on CC modes.
5269
97191ad0
JBG
52702013-09-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
5271
5272 * config/vax/constraints.md (T): Add missing CONSTANT_P check.
5273
403a3fb7
JDA
52742013-09-14 John David Anglin <danglin@gcc.gnu.org>
5275
5276 PR target/58382
5277 * config/pa/pa.c (pa_expand_prologue): Change mode in gen_rtx_POST_INC
5278 calls to word_mode.
5279
fb5610fb
IS
52802013-09-14 Iain Sandoe <iain@codesourcery.com>
5281
5282 PR target/48094
5283 * config/darwin.c (darwin_objc2_section): Note if ObjC Metadata is
f77e2d2d
JBG
5284 seen.
5285 (darwin_objc1_section): Likewise.
fb5610fb
IS
5286 (darwin_file_end): Emit Image Info section when required.
5287
afdec9bd
JH
52882013-09-14 Jan Hubicka <jh@suse.cz>
5289
5290 * tree-into-ssa.c (gate_into_ssa): New.
5291 (pass_data_build_ssa): Use it.
5292 * cgraph.h (expand_thunk): Update prototype.
5293 * cgraphunit.c (analyze_function): Expand thunks early.
5294 (expand_thunk): Fix DECL_CONTEXT of reust_decl;
5295 build proper cgraph; set in_ssa_p; clear bogus TREE_ASM_WRITTEN;
5296 set lowered flag; do not add new function.
5297 (assemble_thunks_and_aliases): Update.
5298 * tree-ssa.c (gate_init_datastructures): New gate.
5299 (pass_data_init_datastructures): Use it.
5300
492d1e0a
IS
53012013-09-14 Iain Sandoe <iain@codesourcery.com>
5302
5303 PR target/58269
f77e2d2d 5304 * config/i386/i386.c (ix86_function_arg_regno_p): Make Darwin use the
492d1e0a
IS
5305 xmm register set described in the psABI.
5306
d13c6b70
EG
53072013-09-13 Evgeny Gavrin <e.gavrin@samsung.com>
5308
f77e2d2d
JBG
5309 * dwarf2out.c (should_emit_struct_debug): Add check
5310 for type_decl variable is not NULL.
d13c6b70 5311
88b0e79e
JC
53122013-09-13 Jacek Caban <jacek@codeweavers.com>
5313
5314 * config.gcc: Use new winnt-c.c target hooks
5315 * config/t-winnt: New file
5316 * config/winnt-c.c: New file
5317 * doc/tm.texi.in: Document new hook
5318 * doc/tm.texi: Regenerated
5319
19ba6aab
JH
53202013-09-13 Jan Hubicka <jh@suse.cz>
5321
5322 PR middle-end/58094
5323 * ipa-inline.c (check_callers): New function.
5324 (check_caller_edge): Remove.
5325 (want_inline_function_to_all_callers_p): Also permit alises that are
5326 called dirrectly.
5327 (inline_to_all_callers): Terminate the walk when devirtualization
5328 introduce new calls.
5329
a93c18c8
JH
53302013-09-13 Jan Hubicka <jh@suse.cz>
5331
5332 * ipa-inline-analysis.c (struct growth_data): Add node.
5333 (do_estimate_growth_1): Fix detection of recursion.
5334
f3b331d1
JJ
53352013-09-13 Jakub Jelinek <jakub@redhat.com>
5336
5337 PR tree-optimization/58392
5338 * tree-cfg.c (move_sese_region_to_fn): Rename loop variable
5339 to avoid shadowing of outer loop variable. If
5340 saved_cfun->has_simduid_loops or saved_cfun->has_force_vect_loops,
5341 replace_by_duplicate_decl simduid of loops that have it set and
5342 set dest_cfun->has_simduid_loops and/or
5343 dest_cfun->has_force_vect_loops.
5344 * omp-low.c (build_outer_var_ref): Call maybe_lookup_decl_in_outer_ctx
5345 instead of maybe_lookup_decl.
5346 * tree-inline.c (copy_loops): Change blocks_to_copy argument to id.
5347 Use id->blocks_to_copy instead of blocks_to_copy. Adjust recursive
5348 call. Copy over force_vect and copy and remap simduid. Set
5349 cfun->has_simduid_loops and/or cfun->has_force_vect_loops.
5350 (copy_cfg_body): Remove blocks_to_copy argument. Use
5351 id->blocks_to_copy instead of blocks_to_copy. Adjust copy_loops
5352 caller. Don't set cfun->has_simduid_loops and/or
5353 cfun->has_force_vect_loops here.
5354 (copy_body): Remove blocks_to_copy argument. Adjust copy_cfg_body
5355 caller.
5356 (expand_call_inline, tree_function_versioning): Adjust copy_body
5357 callers.
5358
ae6d0907
MJ
53592013-09-13 Martin Jambor <mjambor@suse.cz>
5360
5361 PR bootstrap/58388
5362 * ipa-prop.c (try_make_edge_direct_simple_call): Be less strict in
5363 the assert if the edge was a speculative one.
5364
2fd5894f
RB
53652013-09-13 Richard Biener <rguenther@suse.de>
5366
5367 * tree-data-ref.h (known_dependences_p): Move here ...
5368 * tree-loop-distribution.c (known_dependences_p): ... from here.
5369 (dump_rdg_component, debug_rdg_component): Remove.
5370 (dump_rdg): Adjust.
5371 (generate_loops_for_partition): Use gimple_uid instead of
5372 relying on matching stmt visit order.
5373 (rdg_build_partitions): Take starting stmt vector.
5374 (ldist_gen): Merge into ...
5375 (distribute_loop): ... this function. Do not compute starting
5376 vertices vector.
5377 * tree-cfg.c (gimple_duplicate_bb): Copy UID for PHIs.
5378
86eb4bd7
KT
53792013-09-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5380
5381 * config/arm/arm.md (arm_cmpsi_insn): Split rI alternative.
5382 Set type attribute correctly. Set predicable_short_it attribute.
5383 (cmpsi_shiftsi): Remove %? from output template.
5384
83a95546
RB
53852013-09-13 Richard Biener <rguenther@suse.de>
5386
5387 * tree-loop-distribution.c (struct rdg_component,
5388 rdg_defs_used_in_other_loops_p, free_rdg_components,
5389 rdg_build_components): Remove.
5390 (stmts_from_loop): Do not record virtual PHIs.
5391 (generate_loops_for_partition): Skip virtual PHIs.
5392 (build_rdg_partition_for_component): Rename to ...
5393 (build_rdg_partition_for_vertex): ... this and adjust.
5394 (rdg_build_partitions): Take a vector of starting vertices
5395 instead of components. Remove unnecessary leftover handling.
5396 (ldist_gen): Do not build components or record other stores.
5397 (distribute_loop): Do not distribute loops containing stmts
5398 with side-effects.
5399
c0ecf7f1
CB
54002013-09-13 Christian Bruel <christian.bruel@st.com>
5401
5402 PR target/58314
5403 * config/sh/sh.md (mov<mode>_reg_reg): Allow memory reloads.
5404
34f56efc
KT
54052013-09-13 Kai Tietz <ktietz@redhat.com>
5406
740f2bf3
KT
5407 * config.gcc: Separate cases for mingw and cygwin targets,
5408 and add 64-bit cygwin target case.
5409
34f56efc
KT
5410 * config/i386/winnt-cxx.c (i386_pe_type_dllexport_p): Don't
5411 dll-export inline-functions.
5412 * config/i386/winnt.c (i386_pe_determine_dllexport_p): Likewise.
5413
5414
54152013-09-13 Jeff Law <law@redhat.com>
823b5d6b
JL
5416
5417 PR middle-end/58387
5418 Revert:
5419 2013-09-06 Jeff Law <law@redhat.com>
5420
5421 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
5422 edge implied equivalences into successor phis.
5423
aadb52ad
DD
54242013-09-12 DJ Delorie <dj@redhat.com>
5425
5426 * config/rl78/rl78-virt.md: Change from | to \; for asm line
5427 separators.
5428
90ae7019
BM
54292013-09-12 Brooks Moses <bmoses@google.com>
5430
5431 PR driver/42955
5432 * Makefile.in: Do not install driver binaries in $(target)/bin.
5433
17b2557c
DD
54342013-09-12 DJ Delorie <dj@redhat.com>
5435
c5215a9b
DD
5436 * config/rl78/rl78.opt (mrelax): New.
5437 * config/rl78/rl78.h (ASM_SPEC): New, pass on -mrelax to gas.
5438 * config/rl78/rl78.h (LINK_SPEC): New, pass on -mrelax to ld.
5439
17b2557c
DD
5440 * config/rl78/rl78.c (rl78_expand_prologue): Use AX to copy
5441 between SP and FP.
5442 (rl78_expand_epilogue): Likewise.
5443
ecafcf05
VM
54442013-09-12 Vladimir Makarov <vmakarov@redhat.com>
5445
5446 PR middle-end/58335
84f6d9fa 5447 * lra-eliminations.c (remove_reg_equal_offset_note): New.
ecafcf05
VM
5448 (eliminate_regs_in_insn): Rewrite frame pointer to hard frame
5449 pointer elimination with using remove_reg_equal_offset_note.
5450
8369f38a
DD
54512013-09-12 DJ Delorie <dj@redhat.com>
5452
f6a83b4a
DD
5453 * config/msp430/: New port.
5454 * config.gcc (msp430): Added.
5455 * doc/invoke.texi: Document MSP430 options.
5456 * doc/install.texi: Document msp430-elf
5457 * doc/md.texi: Document msp430-elf
5458 * doc/contrib.texi: Document msp430-elf
5459
8369f38a
DD
5460 * cfgexpand.c (expand_debug_expr): Avoid sign-extending SImode to
5461 PSImode.
5462
a854f856
MJ
54632013-09-12 Martin Jambor <mjambor@suse.cz>
5464
5465 PR ipa/58389
5466 * ipa-prop.c (remove_described_reference): Give up if the edge in the
5467 reference descriptor is NULL.
5468 (ipa_edge_removal_hook): If owning a reference descriptor, set its
5469 edge to NULL.
5470
b12ebd96
AM
54712013-09-12 Andrew MacLeod <amacleod@redhat.com>
5472
5473 * tree-flow.h (FREE_SSANAMES): Move to tree-ssanames.c
5474 (SSANAMES, MODIFIED_NORETURN_CALLS, DEFAULT_DEFS, ptr_info_def,
5475 num_ssa_names, ssa_name): Move to tree-ssanames.h + prototypes.
5476 * tree-flow-inline.h (make_ssa_name, copy_ssa_name, duplicate_ssa_name,
5477 make_temp_ssa_name): move to tree-ssanames.h
5478 * tree-ssa-alias.h: Move prototype.
5479 * tree-ssa.h: Include tree-ssanames.h.
5480 * tree-ssanames.c (FREE_SSANAMES): Move to here.
5481 * tree-ssanames.h: New. Move items from tree-flow*.h
5482 * Makefile.in (tree-ssanames.h): Add to tree-ssanames.o and GTFILES.
5483
e1fb4ad3
RB
54842013-09-12 Richard Biener <rguenther@suse.de>
5485
5486 PR tree-optimization/58404
5487 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
5488 propagate non-invariant addresses into dereferences wrapped
5489 in component references.
5490
154c9188
RB
54912013-09-12 Richard Biener <rguenther@suse.de>
5492
5493 PR tree-optimization/58402
5494 * passes.def: Move pass_late_warn_uninitialized later.
5495
7a300452
AM
54962013-09-12 Andrew MacLeod <amacleod@redhat.com>
5497
5498 * tree-ssa.h: New. Move content from tree-flow.h and
5499 tree-flow-inline.h.
5500 * tree-flow.h (_edge_var_map, edge_var_map_vector): Move to tree-ssa.h.
5501 Move prototypes belonging to tree-ssa.c.
f77e2d2d 5502 * tree-flow-inline.h (redirect_edge_var_map_def,
7a300452
AM
5503 redirect_edge_var_map_result, redirect_edge_var_map_location): Move to
5504 tree-ssa.h.
5505 * gimple.h: Adjust prototypes.
f77e2d2d
JBG
5506 * tree-ssa.c (useless_type_conversion_p, types_compatible_p): Move
5507 to...
5508 * gimple.c (useless_type_conversion_p, types_compatible_p): Here.
7a300452
AM
5509 * tree.h: Move prototype to tree-ssa.h.
5510 * gengtype.c (open_base_files): Replace tree-flow.h with tree-ssa.h.
5511 * Makefile.in: (TREE_SSA_H, TREE_FLOW_H): Adjust dependencies.
5512 * alias.c, asan.c, builtins.c, calls.c, cfgexpand.c, cfghooks.c,
5513 cfgloop.c, cfgloopmanip.c, cgraph.c, cgraphbuild.c, cgraphclones.c,
5514 cgraphunit.c, dse.c, except.c, expr.c, final.c, fold-const.c,
5515 ggc-page.c, gimple-fold.c, gimple-iterator.c, gimple-low.c,
5516 gimple-pretty-print.c, gimple-ssa-strength-reduction.c,
5517 gimple-streamer-in.c, gimple-streamer-out.c, gimple.c, gimplify.c,
f77e2d2d
JBG
5518 graphite-blocking.c, graphite-clast-to-gimple.c,
5519 graphite-dependences.c, graphite-interchange.c,
5520 graphite-optimize-isl.c, graphite-poly.c, graphite-scop-detection.c,
5521 graphite-sese-to-poly.c, graphite.c, ipa-cp.c, ipa-inline-analysis.c,
5522 ipa-inline-transform.c, ipa-inline.c, ipa-prop.c, ipa-pure-const.c,
5523 ipa-reference.c, ipa-split.c, ipa-utils.c,
7a300452
AM
5524 loop-init.c, lto-cgraph.c, lto-section-in.c, lto-section-out.c,
5525 lto-streamer-in.c, lto-streamer-out.c, lto-streamer.c, omp-low.c,
5526 passes.c, predict.c, print-tree.c, profile.c, sese.c, targhooks.c,
5527 tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
5528 tree-chrec.c, tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-eh.c,
5529 tree-emutls.c, tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
5530 tree-loop-distribution.c, tree-mudflap.c, tree-nested.c, tree-nrv.c,
5531 tree-object-size.c, tree-optimize.c, tree-outof-ssa.c, tree-parloops.c,
5532 tree-phinodes.c, tree-predcom.c, tree-pretty-print.c, tree-profile.c,
5533 tree-scalar-evolution.c, tree-sra.c, tree-ssa*.c, tree-stdarg.c,
5534 tree-streamer-in.c, tree-switch-conversion.c, tree-tailcall.c,
5535 tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
5536 tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
5537 tree-vect-stmts.c, tree-vectorizer.c, tree-vrp.c, tsan.c,
5538 value-prof.c, var-tracking.c,
5539 varpool.c, vtable-verify.c: Replace tree-flow.h with tree-ssa.h
5540
97463b2b
RB
55412013-09-12 Richard Biener <rguenther@suse.de>
5542
5543 PR tree-optimization/58396
5544 * tree-loop-distribution.c (create_rdg_edges): Free unused DDRs.
5545 (build_rdg): Take a loop-nest parameter, fix memleaks.
5546 (distribute_loop): Compute loop-nest here and pass it to build_rdg.
5547
80ecd89d
YR
55482013-09-12 Yuri Rumyantsev <ysrumyan@gmail.com>
5549
5550 * config/i386/x86-tune.def: Turn on X86_TUNE_AVOID_MEM_OPND_FOR_CMOVE
5551 for SLM.
5552
893e85fa
CM
55532013-09-12 Cameron McInally <cameron.mcinally@nyu.edu>
5554
5555 * doc/extend.texi: Fix errors in x86 FMA builtin naming.
5556 The FMA instruction names should have a 'v' prefix.
5557
174ec470
RB
55582013-09-12 Richard Biener <rguenther@suse.de>
5559
5560 * tree-loop-distribution.c (dot_rdg_1): Make graph prettier.
5561 (dot_rdg): Use popen instead of system in optional code.
5562 (remaining_stmts, upstream_mem_writes): Remove global bitmaps.
5563 (already_processed_vertex_p): Adjust.
5564 (has_anti_or_output_dependence, predecessor_has_mem_write,
5565 mark_nodes_having_upstream_mem_writes, has_upstream_mem_writes,
5566 rdg_flag_uses): Remove.
5567 (rdg_flag_vertex): Simplify.
5568 (rdg_flag_vertex_and_dependent): Rely on a correct RDG and
5569 remove recursion.
5570 (build_rdg_partition_for_component): Process the first vertex
5571 of a component only.
5572 (ldist_gen): Do not compute remaining_stmts or upstream_mem_writes.
5573
38c89763
AM
55742013-09-12 Alan Modra <amodra@gmail.com>
5575
5576 * config/rs6000/rs6000.c (toc_relative_expr_p): Use add_cint_operand.
5577
3e3d9d17
DD
55782013-09-11 DJ Delorie <dj@redhat.com>
5579 Nick Clifton <nickc@redhat.com>
5580
5581 * config/rl78/predicates.md (rl78_cmp_operator_signed): New.
5582 (rl78_stack_based_mem): New.
5583 * config/rl78/constraints.md (Iv08): New.
5584 (Iv16): New.
5585 (Iv24): New.
5586 (Is09): New.
5587 (Is17): New.
5588 (Is25): New.
5589 (ISsi): New.
5590 (IShi): New.
5591 (ISqi): New.
5592 * config/rl78/rl78-expand.md (movqi): Reject more SUBREG operands.
5593 (movhi): Likewise.
5594 (movsi): Change from expand to insn-and-split.
5595 (ashrsi3): Clobber AX.
5596 (lshrsi3): New.
5597 (ashlsi3): New.
5598 (cbranchsi4): New.
5599 * config/rl78/rl78.md (CC_REG): Fix.
5600 (addsi3): Allow memory and immediate operands.
5601 (addsi3_internal): Split into...
5602 (addsi3_internal_virt): ...new, and ...
5603 (addsi3_internal_real): ...new.
5604 (subsi): New.
5605 (subsi3_internal_virt): New.
5606 (subsi3_internal_real): New.
5607 (mulsi3): Add memory operand.
5608 (mulsi3_rl78): Likewise.
5609 (mulsi3_g13): Likewise.
5610 * config/rl78/rl78-real.md (cbranchqi4_real_signed): New.
5611 (cbranchqi4_real): Add more constraint options.
5612 (cbranchhi4_real): Expand pattern.
5613 (cbranchhi4_real_signed): New.
5614 (cbranchhi4_real_inverted): New.
5615 (cbranchsi4_real_lt): New.
5616 (cbranchsi4_real_ge): New.
5617 (cbranchsi4_real_signed): New.
5618 (cbranchsi4_real): New.
5619 (peephole2): New.
893e85fa
CM
5620 * config/rl78/rl78-virt.md (ashrsi3_virt): Add custom cases for
5621 constant shifts.
3e3d9d17
DD
5622 (lshrsi3_virt): Likewise.
5623 (ashlsi3_virt): Likewise.
5624 (cbranchqi4_virt_signed): New.
5625 (cbranchhi4_virt_signed): New.
5626 (cbranchsi4_virt): New.
5627 * config/rl78/rl78.c: Whitespace fixes throughout.
5628 (move_elim_pass): New.
5629 (pass_data_rl78_move_elim): New.
5630 (pass_rl78_move_elim): New.
5631 (make_pass_rl78_move_elim): New.
5632 (rl78_devirt_info): Run devirt earlier.
5633 (rl78_move_elim_info): New.
5634 (rl78_asm_file_start): Register it.
5635 (rl78_split_movsi): New.
5636 (rl78_as_legitimate_address): Allow virtual base registers when
5637 appropriate.
5638 (rl78_addr_space_convert): Remove spurious debug stuff.
5639 (rl78_print_operand_1): Add z,s,S,r,E modifiers.
5640 (rl78_print_operand): More cases for not printing '#'.
5641 (rl78_expand_compare): Remove most of the logic.
5642 (content_memory): New.
5643 (clear_content_memory): New.
5644 (get_content_index): New.
5645 (get_content_name): New.
5646 (display_content_memory): New.
5647 (update_content): New.
5648 (record_content): New.
5649 (already_contains): New.
5650 (insn_ok_now): Re-recog insns with virtual registers.
5651 (add_postponed_content_update): New.
5652 (process_postponed_content_update): New.
5653 (gen_and_emit_move): New.
893e85fa
CM
5654 (transcode_memory_rtx): Record new location content.
5655 Use gen_and_emit_move.
3e3d9d17
DD
5656 (force_into_acc): New.
5657 (move_to_acc): Use gen_and_emit_move.
5658 (move_from_acc): Likewise.
5659 (move_acc_to_reg): Likewise.
5660 (move_to_x): Likewise.
5661 (move_to_hl): Likewise.
5662 (move_to_de): Likewise.
5663 (rl78_alloc_physical_registers_op1): Record location content.
5664 (has_constraint): New.
5665 (rl78_alloc_physical_registers_op2): Record location content.
5666 Optimize use of HL.
5667 (rl78_alloc_physical_registers_ro1): Likewise.
5668 (rl78_alloc_physical_registers_cmp): Likewise.
5669 (rl78_alloc_physical_registers_umul): Likewise.
5670 (rl78_alloc_address_registers_macax): New.
5671 (rl78_alloc_physical_registers): Initialize and set location
5672 content memory as needed.
5673 (rl78_reorg): Make sure split2 is called.
5674 (rl78_rtx_costs): New.
5675
088845a5
RS
56762013-09-11 Richard Sandiford <rdsandiford@googlemail.com>
5677
5678 * simplify-rtx.c (simplify_unary_operation_1): Use simplify_gen_binary
5679 for (not (neg ...)) and (neg (not ...)) cases.
5680
5c2961cf
RB
56812013-09-11 Richard Biener <rguenther@suse.de>
5682
5683 PR middle-end/58377
5684 * passes.def: Split critical edges before late uninit warning passes.
5685 * tree-cfg.c (pass_split_crit_edges): Implement clone method.
5686
427e6a14
JJ
56872013-09-11 Jakub Jelinek <jakub@redhat.com>
5688
5689 PR tree-optimization/58385
5690 * fold-const.c (build_range_check): If both low and high are NULL,
5691 use omit_one_operand_loc to preserve exp side-effects.
5692
df45c0cc
KT
56932013-09-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5694
5695 * config/arm/arm.md (arm_shiftsi3): New alternative l/l/M.
5696
80ab0b19
RB
56972013-09-11 Richard Biener <rguenther@suse.de>
5698
5699 * tree-data-ref.c (dump_rdg_vertex, debug_rdg_vertex,
5700 dump_rdg_component, debug_rdg_component, dump_rdg, debug_rdg,
5701 dot_rdg_1, dot_rdg, rdg_vertex_for_stmt, create_rdg_edge_for_ddr,
5702 create_rdg_edges_for_scalar, create_rdg_edges, create_rdg_vertices,
5703 stmts_from_loop, known_dependences_p, build_empty_rdg,
5704 build_rdg, free_rdg, rdg_defs_used_in_other_loops_p): Move ...
5705 * tree-loop-distribution.c: ... here.
5706 * tree-data-ref.h (struct rdg_vertex, RDGV_STMT, RDGV_DATAREFS,
5707 RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT, RDG_DATAREFS,
5708 RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT, enum rdg_dep_type,
5709 struct rdg_edge, RDGE_TYPE, RDGE_LEVEL, RDGE_RELATION): Move ...
5710 * tree-loop-distribution.c: ... here.
5711 * tree-loop-distribution.c: Include gimple-pretty-print.h.
5712 (struct partition_s): Add loops member.
5713 (partition_alloc, partition_free, rdg_flag_uses, rdg_flag_vertex,
5714 rdg_flag_vertex_and_dependent, rdg_flag_loop_exits,
5715 build_rdg_partition_for_component, rdg_build_partitions): Adjust.
5716
85a77221
AI
57172013-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
5718 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
5719 Sergey Lega <sergey.s.lega@intel.com>
5720 Anna Tikhonova <anna.tikhonova@intel.com>
5721 Ilya Tocar <ilya.tocar@intel.com>
5722 Andrey Turetskiy <andrey.turetskiy@intel.com>
5723 Ilya Verbin <ilya.verbin@intel.com>
5724 Kirill Yukhin <kirill.yukhin@intel.com>
5725 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
5726
5727 * config/i386/constraints.md (k): New.
5728 (Yk): Ditto.
5729 * config/i386/i386.c (const regclass_map): Add new mask registers.
5730 (dbx_register_map): Ditto.
5731 (dbx64_register_map): Ditto.
5732 (svr4_dbx_register_map): Ditto.
5733 (ix86_conditional_register_usage): Squash mask registers if AVX512F is
5734 disabled.
5735 (ix86_preferred_reload_class): Disable constants for mask registers.
5736 (ix86_secondary_reload): Do spill of mask register using 32-bit insn.
5737 (ix86_hard_regno_mode_ok): Support new mask registers.
5738 (x86_order_regs_for_local_alloc): Ditto.
5739 * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Update.
5740 (FIXED_REGISTERS): Add new mask registers.
5741 (CALL_USED_REGISTERS): Ditto.
5742 (REG_ALLOC_ORDER): Ditto.
5743 (VALID_MASK_REG_MODE): New.
5744 (FIRST_MASK_REG): Ditto.
5745 (LAST_MASK_REG): Ditto.
5746 (reg_class): Add MASK_EVEX_REGS, MASK_REGS.
5747 (MAYBE_MASK_CLASS_P): New.
5748 (REG_CLASS_NAMES): Add MASK_EVEX_REGS, MASK_REGS.
5749 (REG_CLASS_CONTENTS): Ditto.
5750 (MASK_REGNO_P): New.
5751 (ANY_MASK_REG_P): Ditto.
5752 (HI_REGISTER_NAMES): Add new mask registers.
893e85fa
CM
5753 * config/i386/i386.md (MASK0_REG, MASK1_REG, MASK2_REG, MASK3_REG,
5754 MASK4_REG, MASK5_REG, MASK6_REG, MASK7_REG): Constants for new
5755 mask registers.
85a77221
AI
5756 (attribute "type"): Add mskmov, msklog.
5757 (attribute "length_immediate"): Support them.
5758 (attribute "memory"): Ditto.
5759 (attribute "prefix_0f"): Ditto.
5760 (*movhi_internal): Support new mask registers.
5761 (*movqi_internal): Ditto.
5762 (define_split): Split out clobber pattern is a logic
5763 insn on mask registers.
5764 (*k<logic><mode>): New.
5765 (*andhi_1): Extend to support mask regs.
5766 (*andqi_1): Extend to support mask regs.
5767 (kandn<mode>): New.
5768 (define_split): Split and-not to and and not if operands
5769 are not mask regs.
5770 (*<code><mode>_1): Separate HI mode to new pattern...
5771 (*<code>hi_1): This.
5772 (*<code>qi_1): Extend to support mask regs.
5773 (kxnor<mode>): New.
5774 (kortestzhi): Ditto.
5775 (kortestchi): Ditto.
5776 (kunpckhi): Ditto.
5777 (*one_cmpl<mode>2_1): Remove HImode and handle it...
5778 (*one_cmplhi2_1): ...Here, now with mask registers support.
5779 (*one_cmplqi2_1): Support new mask registers.
893e85fa
CM
5780 (HI/QImode arithmetics splitter): Don't split if mask registers
5781 are used.
85a77221
AI
5782 (HI/QImode not splitter): Ditto.
5783 * config/i386/predicated.md (mask_reg_operand): New.
5784 (general_reg_operand): Ditto.
5785
7e570821
AI
57862013-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
5787
5788 * doc/invoke.texi: Document fxsr, xsave and xsaveopt options.
5789 * doc/extend.texi: Document fxsr, xsave and xsaveopt builtins.
5790
9e1376e9
JL
57912013-09-10 Jeff Law <law@redhat.com>
5792
5793 PR tree-optimization/58380
5794 * tree-ssa-threadupdate.c (thread_block): Recognize another case
5795 of threading through a buried loop header.
5796
5797 * tree-ssa-threadedge.c (thread_around_empty_blocks): Correct
5798 return value for single successor case.
5799
5bbcb888
JH
58002013-09-10 Jan Hubicka <jh@suse.cz>
5801
5802 * ipa-devirt.c (ipa_devirt): Enable with LTO.
5803
d742ff4b
RE
58042013-09-10 Richard Earnshaw <rearnsha@arm.com>
5805
5806 PR target/58361
5807 * arm/vfp.md (combine_vcvt_f32_<FCVTI32typename>): Fix pattern to
5808 support conditional execution.
5809 (combine_vcvt_f64_<FCVTI32typename>): Likewise.
5810
b0681c9e
VM
58112013-09-10 Vladimir Makarov <vmakarov@redhat.com>
5812
5813 * lra.c (lra): Clear lra_optional_reload_pseudos before every
5814 constraint pass.
f77e2d2d
JBG
5815 * lra-constraints.c (curr_insn_transform): Switch on optional reloads.
5816 Check destination too to check move insn.
b0681c9e 5817 (undo_optional_reloads): Add check that the original peudo did not
f77e2d2d
JBG
5818 changed its allocation and the optional reload was inherited on last
5819 inheritance pass. Break loop after deciding to keep optional reload.
b0681c9e
VM
5820 (lra_undo_inheritance): Add check that inherited pseudo still in
5821 memory.
5822
c9b1c957
JG
58232013-09-10 James Greenhalgh <james.greenhalgh@arm.com>
5824
5825 * config/aarch64/aarch64.md (generic_sched): New.
5826 * config/aarch64/aarch64-generic.md (load): Make conditional
5827 on generic_sched attribute.
5828 (nonload): Likewise.
5829
82d618d3
JH
58302013-09-10 Jan Hubicka <jh@suse.cz>
5831
5832 * lto-cgraph.c: Include ipa-utils.h.
5833 (compute_ltrans_boundary): Also add possible targets into the boundary.
5834
668b6894
JH
58352013-09-10 Jan Hubicka <jh@suse.cz>
5836
5837 * gimple-fold.c (gimple_get_virt_method_for_binfo): Pass real
5838 VAR_DECL of vtable rather than full expression.
5839
4f90d3e0
JH
58402013-09-10 Jan Hubicka <jh@suse.cz>
5841 Paolo Carlini <paolo.carlini@oracle.com>
5842
5843 * cgraphunit.c (analyze_functions): Save input_location, set it
5844 to UNKNOWN_LOCATION and restore it at the end.
5845
39e87baf
MJ
58462013-09-10 Martin Jambor <mjambor@suse.cz>
5847
5848 * ipa-cp.c (propagate_constants_topo): Do not ignore SCC
5849 represented by a thunk.
5850
581aedec
JL
58512013-09-10 Jeff Law <law@redhat.com>
5852
5853 PR tree-optimization/58343
5854 * tree-ssa-threadupdate.c (thread_block): Identify and disable
5855 jump threading requests through loop headers buried in the middle
5856 of a jump threading path.
5857
5858 * tree-ssa-threadedge.c (thread_around_empty_blocks): Fix thinko
5859 in return value/type.
5860
84cf4ab6
JJ
58612013-09-10 Jakub Jelinek <jakub@redhat.com>
5862
5863 PR rtl-optimization/58365
5864 * cfgcleanup.c (merge_memattrs): Also clear MEM_READONLY_P
5865 resp. MEM_NOTRAP_P if they differ, or set MEM_VOLATILE_P if
5866 it differs.
5867
447dd906
RB
58682013-09-10 Richard Biener <rguenther@suse.de>
5869
5870 * tree-data-ref.h (build_rdg): Drop all parameters but loop.
5871 * tree-data-ref.c (create_rdg_vertices): Collect all data
5872 references, signal failure to the caller, use data-ref API.
893e85fa
CM
5873 (build_rdg): Compute data references only once. Maintain lifetime
5874 of data references and data dependences from within RDG.
447dd906
RB
5875 (free_rdg): Free dependence relations.
5876 * tree-loop-distribution.c (rdg_flag_uses): Drop weird code
5877 inventing extra dependences.
5878 (distribute_loop): Update for RDG API changes.
5879
f14a7324
KT
58802013-09-10 Kai Tietz <ktietz@redhat.com>
5881
5882 * doc/invoke.texi (fms-extensions): Document changed
5883 behavior for ms-abi targets.
5884 * config/i386/i386.c (ix86_option_override_internal):
5885 Set default value of option -fms-extension for ms-abi targets.
5886
ff131f26
MZ
58872013-09-10 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
5888
5889 * config/i386/i386.c (ix86_expand_movmem): Fix epilogue generation.
5890
33115a2c
AM
58912013-09-10 Alan Modra <amodra@gmail.com>
5892
5893 PR target/58330
5894 * config/rs6000/rs6000.md (bswapdi2_64bit): Disable for volatile mems.
5895
b6872a13
AM
58962013-09-10 Alan Modra <amodra@gmail.com>
5897
5898 * config/rs6000/predicates.md (add_cint_operand): New.
5899 (reg_or_add_cint_operand, small_toc_ref): Use add_cint_operand.
5900 * config/rs6000/rs6000.md (largetoc_high_plus): Restrict offset
5901 using add_cint_operand.
5902 (largetoc_high_plus_aix): Likewise.
5903
28fd0ba2
JJ
59042013-09-09 Jakub Jelinek <jakub@redhat.com>
5905
5906 PR tree-optimization/58364
5907 * tree-ssa-reassoc.c (init_range_entry): For BIT_NOT_EXPR on
5908 BOOLEAN_TYPE, only invert in_p and continue with arg0 if
5909 the current range can't be an unconditional true or false.
5910
552d99fe
JG
59112013-09-09 James Greenhalgh <james.greenhalgh@arm.com>
5912
5913 * config/aarch64/arm_neon.h (vrsqrte_f64): Fix parameter type.
5914
f43245d1
UB
59152013-09-09 Uros Bizjak <ubizjak@gmail.com>
5916
5917 * ipa-prop.c (ipa_modify_call_arguments): Initialize deref_align.
5918
c9b0866a
PC
59192013-09-09 Paolo Carlini <paolo.carlini@oracle.com>
5920
5921 PR c++/43452
5922 * doc/invoke.texi (-Wdelete-incomplete): Document it.
5923
78d8b9f0
IB
59242013-09-09 Ian Bolton <ian.bolton@arm.com>
5925
5926 * config/aarch64/aarch64.c (aarch64_preferred_reload_class): Return
5927 NO_REGS for immediate that can't be moved directly into FP_REGS.
5928
274b2532
KT
59292013-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5930
5931 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
5932 comparison with negated operand.
c9b0866a
PC
5933 * config/aarch64/aarch64.md (compare_neg<mode>): Match canonical
5934 RTL form.
274b2532 5935
467a3558
RB
59362013-09-09 Richard Biener <rguenther@suse.de>
5937
5938 PR middle-end/58326
5939 * cfgloopmanip.c (fix_bb_placements): When fixing the placement
5940 of a subloop record all its block as affecting loop-closed SSA form.
5941
088c5368
RS
59422013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
5943
5944 * expmed.c (lshift_value): Take an unsigned HOST_WIDE_INT instead
5945 of an rtx/bitpos pair.
5946 (store_fixed_bit_field): Update accordingly.
5947
69db2d57
RS
59482013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
5949
5950 * asan.c (asan_emit_stack_protection): Use gen_int_mode instead of
5951 GEN_INT.
5952 * builtins.c (expand_errno_check): Likewise.
5953 * dwarf2cfi.c (init_return_column_size): Likewise.
5954 * except.c (sjlj_mark_call_sites): Likewise.
5955 * expr.c (move_by_pieces_1, store_by_pieces_2): Likewise.
5956 * lra-constraints.c (emit_inc): Likewise.
5957 * ree.c (combine_set_extension): Likewise.
5958 * regmove.c (fixup_match_2): Likewise.
5959 * reload1.c (inc_for_reload): Likewise.
5960
69a59f0f
RS
59612013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
5962
5963 * combine.c (simplify_set, expand_field_assignment, extract_left_shift)
5964 (force_to_mode, simplify_shift_const_1, simplify_comparison):
5965 Use gen_int_mode with the mode of the associated simplify_* call.
5966 * explow.c (probe_stack_range, anti_adjust_stack_and_probe): Likewise.
5967 * expmed.c (expand_shift_1): Likewise.
5968 * function.c (instantiate_virtual_regs_in_insn): Likewise.
5969 * loop-iv.c (iv_number_of_iterations): Likewise.
5970 * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
5971 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
5972
2f1cd2eb
RS
59732013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
5974
5975 * asan.c (asan_clear_shadow): Use gen_int_mode with the mode
5976 of the associated expand_* call.
5977 (asan_emit_stack_protection): Likewise.
5978 * builtins.c (round_trampoline_addr): Likewise.
5979 * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise.
5980 * expmed.c (expand_smod_pow2, expand_sdiv_pow2, expand_divmod)
5981 (emit_store_flag): Likewise.
5982 * expr.c (emit_move_resolve_push, push_block, emit_single_push_insn_1)
5983 (emit_push_insn, optimize_bitfield_assignment_op, expand_expr_real_1):
5984 Likewise.
5985 * function.c (instantiate_virtual_regs_in_insn): Likewise.
5986 * ifcvt.c (noce_try_store_flag_constants): Likewise.
5987 * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
5988 * modulo-sched.c (generate_prolog_epilog): Likewise.
5989 * optabs.c (expand_binop, widen_leading, expand_doubleword_clz)
5990 (expand_ctz, expand_ffs, expand_unop): Likewise.
5991
4789c0ce
RS
59922013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
5993
5994 * alias.c (addr_side_effect_eval): Use gen_int_mode with the mode
5995 of the associated gen_rtx_* call.
5996 * caller-save.c (init_caller_save): Likewise.
5997 * combine.c (find_split_point, make_extraction): Likewise.
5998 (make_compound_operation): Likewise.
5999 * dwarf2out.c (mem_loc_descriptor): Likewise.
6000 * explow.c (plus_constant, probe_stack_range): Likewise.
6001 * expmed.c (expand_mult_const): Likewise.
6002 * expr.c (emit_single_push_insn_1, do_tablejump): Likewise.
6003 * reload1.c (init_reload): Likewise.
6004 * valtrack.c (cleanup_auto_inc_dec): Likewise.
6005 * var-tracking.c (adjust_mems): Likewise.
6006 * modulo-sched.c (sms_schedule): Likewise, but use gen_rtx_GT
6007 rather than gen_rtx_fmt_ee.
6008
a811f7cb
JH
60092013-09-09 Jan Hubicka <jh@suse.cz>
6010
6011 PR middle-end/58294
6012 * value-prof.c (gimple_ic): Copy also abnormal edges.
6013
dcad1dd3
RS
60142013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
6015
6016 * asan.c (asan_shadow_cst): Use gen_int_mode.
6017
daf5c770
JH
60182013-09-08 Jan Hubicka <jh@suse.cz>
6019
6020 * ipa-profile.c: Add toplevel comment.
6021 (ipa_propagate_frequency_1): Be more conservative when profile is read.
6022 (contains_hot_call_p): New function.
6023 (ipa_propagate_frequency): Set frequencies based on counts when
6024 profile is read.
6025 * predict.c (compute_function_frequency): Use PROFILE_READ gueard for
6026 profile; do not tamper with profile after inlining if it is read.
6027
a12cd2db
JH
60282013-09-08 Jan Hubicka <jh@suse.cz>
6029
6030 * ipa-prop.c (try_make_edge_direct_simple_call): Do not special case
6031 speculative edges.
6032
856a1588
JH
60332013-09-08 Jan Hubicka <jh@suse.cz>
6034
6035 * ipa.c (walk_polymorphic_call_targets): Fix redirection before IPA
6036 summary generation.
6037
4f4b0b73
JL
60382013-09-08 Jeff Law <law@redhat.com>
6039
6040 PR bootstrap/58340
6041 * tree-ssa-threadedge.c (thread_across_edge): Fix initialization
6042 of 'found'.
6043
cc4029ee
AK
60442013-09-08 Andi Kleen <ak@linux.intel.com>
6045
6046 * tree-inline.c (estimate_num_insns): Limit asm cost to 1000.
6047
7b395ddd
JH
60482013-09-08 Jan Hubicka <jh@suse.cz>
6049
6050 * ipa.c (walk_polymorphic_call_targets): Fix inliner summary update.
6051
c34c46dd
RS
60522013-09-08 Richard Sandiford <rdsandiford@googlemail.com>
6053
6054 * ira.c (update_equiv_regs): Only call set_paradoxical_subreg
6055 for non-debug insns.
6056 * lra.c (new_insn_reg): Take the containing insn as a parameter.
6057 Only modify lra_reg_info[].biggest_mode if it's non-debug insn.
6058 (collect_non_operand_hard_regs, add_regs_to_insn_regno_info): Update
6059 accordingly.
6060
3462aa02
JH
60612013-09-08 Jan Hubicka <jh@suse.cz>
6062
6063 * cgraphunit.c (walk_polymorphic_call_targets): Permit 0 possible
6064 targets and devirtualize to BUILT_IN_UNREACHABLE.
6065 * timevar.def (TV_IPA_UNREACHABLE): New timevar.
6066 * ipa.c (walk_polymorphic_call_targets): New function.
6067 (symtab_remove_unreachable_nodes): Use it; do not keep all virtual
6068 functions; use the new timevar.
6069 * ipa-devirt.c (maybe_record_node): Do not insert static nodes that
6070 was removed from the program.
6071 (record_binfo): If BINFO corresponds to an anonymous namespace, we may
6072 not consider it in the walk when its vtable is dead.
6073 (possible_polymorphic_call_targets_1): Pass anonymous flag to
6074 record_binfo.
6075 (devirt_variable_node_removal_hook): New function.
6076 (possible_polymorphic_call_targets): Also register
6077 devirt_variable_node_removal_hook.
6078 (ipa_devirt): Do not do non-speculative devirtualization.
6079 (gate_ipa_devirt): One execute if devirtualizing speculatively.
6080
26e5b0fd
JH
60812013-09-08 Jan Hubicka <jh@suse.cz>
6082
6083 * cgraph.h (varpool_node_hook, varpool_node_hook_list,
6084 varpool_add_node_removal_hook, varpool_add_variable_insertion_hook,
6085 varpool_remove_variable_insertion_hook): Declare.
6086 * varpool.c (varpool_node_hook_list): New structure.
6087 (first_varpool_node_removal_hook,
6088 first_varpool_variable_insertion_hook): New variables.
6089 (varpool_add_node_removal_hook, varpool_remove_node_removal_hook,
6090 varpool_call_node_removal_hooks, varpool_add_variable_insertion_hook,
6091 varpool_remove_variable_insertion_hook,
6092 varpool_call_variable_insertion_hooks): New functions.
6093 (varpool_remove_node): Use it.
6094
97f1f314 60952013-09-08 Paolo Carlini <paolo.carlini@oracle.com>
6df2ca09 6096
97f1f314
PC
6097 PR c++/54941
6098 * diagnostic.c (diagnostic_build_prefix): When s.file is
6099 "<built-in>" don't output line and column numbers.
6df2ca09 6100
bcb650cb
JH
61012013-09-06 Jan Hubicka <jh@suse.cz>
6102
6103 * cgraphunit.c (expand_thunk): Get body before touching arguments.
6104 * lto-streamer-out.c: Stream thunks, too.
6105 * lto-streamer-in.c (input_function): Pop cfun here
6106 (lto_read_body): Instead of here.
6107
87f3fea8
CT
61082013-09-06 Caroline Tice <cmtice@google.com>
6109
6110 * doc/install.texi: Add documentation for the --enable-vtable-verify
6111 and the --disable-libvtv configure options.
6112
5e8d9b45
JL
61132013-09-06 Jeff Law <law@redhat.com>
6114
6115 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
6116 edge implied equivalences into successor phis.
6117
3a001aff
JR
61182013-09-06 Joern Rennecke <joern.rennecke@embecosm.com>
6119
6120 * resource.c (mark_referenced_resources): Handle COND_EXEC.
6121
61222013-09-06 Claudiu Zissulescu <claziss@synopsys.com>
c42091c1
CZ
6123
6124 * resource.c (mark_target_live_regs): Compute resources taking
6125 into account if a call is predicated or not.
6126
2c641f8b
EB
61272013-09-06 Eric Botcazou <ebotcazou@adacore.com>
6128
6129 * toplev.c (output_stack_usage): Be prepared for suffixes created by
6130 the compiler in the function names.
6131
a81b0a3d
JH
61322013-09-06 Jan Hubicka <jh@suse.cz>
6133
6134 PR middle-end/58094
6135 * ipa-inline.c (has_caller_p): New function.
6136 (want_inline_function_to_all_callers_p): Use it.
6137 (sum_callers, inline_to_all_callers): Break out from ...
6138 (ipa_inline): ... here.
6139
68e4ca7e
JH
61402013-09-06 Jan Hubicka <jh@suse.cz>
6141
2c641f8b
EB
6142 * config/i386/i386.c (ix86_hard_regno_mode_ok): AVX modes are valid
6143 only when AVX is enabled.
68e4ca7e 6144
3c73e2fe
JG
61452013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
6146
6147 * config/aarch64/aarch64.md
6148 (*movtf_aarch64): Use neon_<ls>dm_2 as type where v8type
6149 is fpsimd_<load/store>2.
6150 (load_pair<mode>): Likewise.
6151 (store_pair<mode>): Likewise.
6152
8c48eecd
JG
61532013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
6154
6155 * config/arm/types.md (type): Add "mrs" type.
6156 * config/aarch64/aarch64.md
6157 (aarch64_load_tp_hard): Make type "mrs".
6158 * config/arm/arm.md
6159 (load_tp_hard): Make type "mrs".
6160 * config/arm/cortex-a15.md: Update with new attributes.
6161 * config/arm/cortex-a5.md: Update with new attributes.
6162 * config/arm/cortex-a53.md: Update with new attributes.
6163 * config/arm/cortex-a7.md: Update with new attributes.
6164 * config/arm/cortex-a8.md: Update with new attributes.
6165 * config/arm/cortex-a9.md: Update with new attributes.
6166 * config/arm/cortex-m4.md: Update with new attributes.
6167 * config/arm/cortex-r4.md: Update with new attributes.
6168 * config/arm/fa526.md: Update with new attributes.
6169 * config/arm/fa606te.md: Update with new attributes.
6170 * config/arm/fa626te.md: Update with new attributes.
6171 * config/arm/fa726te.md: Update with new attributes.
6172
9ea187a5
JG
61732013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
6174
6175 * config/aarch64/aarch64.md
6176 (*movti_aarch64): Use "multiple" for type where v8type is "move2".
6177 (*movtf_aarch64): Likewise.
6178 * config/arm/arm.md
6179 (thumb1_movdi_insn): Use "multiple" for type where more than one
6180 instruction is used for a move.
6181 (*arm32_movhf): Likewise.
6182 (*thumb_movdf_insn): Likewise.
6183
292b89b3
JG
61842013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
6185
6186 * config/arm/types.md (type): Rename fcpys to fmov.
6187 * config/arm/vfp.md
6188 (*arm_movsi_vfp): Rename type fcpys as fmov.
6189 (*thumb2_movsi_vfp): Likewise
6190 (*movhf_vfp_neon): Likewise
6191 (*movhf_vfp): Likewise
6192 (*movsf_vfp): Likewise
6193 (*thumb2_movsf_vfp): Likewise
6194 (*movsfcc_vfp): Likewise
6195 (*thumb2_movsfcc_vfp): Likewise
6196 * config/aarch64/aarch64-simd.md
6197 (move_lo_quad_<mode>): Replace type mov_reg with fmovs.
6198 * config/aarch64/aarch64.md
6199 (*movsi_aarch64): Replace type mov_reg with fmovs.
6200 (*movdi_aarch64): Likewise
6201 (*movsf_aarch64): Likewise
6202 (*movdf_aarch64): Likewise
6203 * config/arm/arm.c
6204 (cortexa7_older_only): Rename TYPE_FCPYS to TYPE_FMOV.
6205 * config/arm/iwmmxt.md
6206 (*iwmmxt_movsi_insn): Rename type fcpys as fmov.
6207 * config/arm/arm1020e.md: Update with new attributes.
6208 * config/arm/cortex-a15-neon.md: Update with new attributes.
6209 * config/arm/cortex-a5.md: Update with new attributes.
6210 * config/arm/cortex-a53.md: Update with new attributes.
6211 * config/arm/cortex-a7.md: Update with new attributes.
6212 * config/arm/cortex-a8-neon.md: Update with new attributes.
6213 * config/arm/cortex-a9.md: Update with new attributes.
6214 * config/arm/cortex-m4-fpu.md: Update with new attributes.
6215 * config/arm/cortex-r4f.md: Update with new attributes.
6216 * config/arm/marvell-pj4.md: Update with new attributes.
6217 * config/arm/vfp11.md: Update with new attributes.
6218
6a24a83e
JG
62192013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
6220
6221 * config/aarch64/aarch64.md
6222 (*madd<mode>): Fix type attribute.
6223 (*maddsi_uxtw): Likewise.
6224 (*msub<mode>): Likewise.
6225 (*msubsi_uxtw): Likewise.
6226 (<su_optab>maddsidi4): Likewise.
6227 (<su_optab>msubsidi4): Likewise.
6228
b86923f0
JG
62292013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
6230
6231 * config/arm/types.md: Split fdiv<sd> as fsqrt<sd>, fdiv<sd>.
6232 * config/arm/arm.md (core_cycles): Remove fdiv.
6233 * config/arm/vfp.md:
6234 (*sqrtsf2_vfp): Update for attribute changes.
6235 (*sqrtdf2_vfp): Likewise.
6236 * config/aarch64/aarch64.md:
6237 (sqrt<mode>2): Update for attribute changes.
6238 * config/arm/arm1020e.md: Update with new attributes.
6239 * config/arm/cortex-a15-neon.md: Update with new attributes.
6240 * config/arm/cortex-a5.md: Update with new attributes.
6241 * config/arm/cortex-a53.md: Update with new attributes.
6242 * config/arm/cortex-a7.md: Update with new attributes.
6243 * config/arm/cortex-a8-neon.md: Update with new attributes.
6244 * config/arm/cortex-a9.md: Update with new attributes.
6245 * config/arm/cortex-m4-fpu.md: Update with new attributes.
6246 * config/arm/cortex-r4f.md: Update with new attributes.
6247 * config/arm/marvell-pj4.md: Update with new attributes.
6248 * config/arm/vfp11.md: Update with new attributes.
6249
7b49c9e1
JG
62502013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
6251
6252 * config/arm/types.md
6253 (type): Split f_cvt as f_cvt, f_cvtf2i, f_cvti2f.
6254 * config/aarch64/aarch64.md
6255 (l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): Update with
6256 new attributes.
6257 (fix_trunc<GPF:mode><GPI:mode>2): Likewise.
6258 (fixuns_trunc<GPF:mode><GPI:mode>2): Likewise.
6259 (float<GPI:mode><GPF:mode>2): Likewise.
6260 * config/arm/vfp.md
6261 (*truncsisf2_vfp): Update with new attributes.
6262 (*truncsidf2_vfp): Likewise.
6263 (fixuns_truncsfsi2): Likewise.
6264 (fixuns_truncdfsi2): Likewise.
6265 (*floatsisf2_vfp): Likewise.
6266 (*floatsidf2_vfp): Likewise.
6267 (floatunssisf2): Likewise.
6268 (floatunssidf2): Likewise.
6269 (*combine_vcvt_f32_<FCVTI32typename>): Likewise.
6270 (*combine_vcvt_f64_<FCVTI32typename>): Likewise.
6271 * config/arm/arm1020e.md: Update with new attributes.
6272 * config/arm/cortex-a15-neon.md: Update with new attributes.
6273 * config/arm/cortex-a5.md: Update with new attributes.
6274 * config/arm/cortex-a53.md: Update with new attributes.
6275 * config/arm/cortex-a7.md: Update with new attributes.
6276 * config/arm/cortex-a8-neon.md: Update with new attributes.
6277 * config/arm/cortex-a9.md: Update with new attributes.
6278 * config/arm/cortex-m4-fpu.md: Update with new attributes.
6279 * config/arm/cortex-r4f.md: Update with new attributes.
6280 * config/arm/marvell-pj4.md: Update with new attributes.
6281 * config/arm/vfp11.md: Update with new attributes.
6282
e7df8af8
JG
62832013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
6284
6285 * config/aarch64/arm_neon.h
6286 (vqtbl<1,2,3,4><q>_s8): Fix control vector parameter type.
6287 (vqtbx<1,2,3,4><q>_s8): Likewise.
6288
594726e4
JG
62892013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
6290
f43245d1
UB
6291 * config/arm/types.md: Add "no_insn", "multiple" and "untyped" types.
6292 * config/arm/arm-fixed.md: Add type attribute to all insn patterns.
594726e4
JG
6293 (add<mode>3): Add type attribute.
6294 (add<mode>3): Likewise.
6295 (usadd<mode>3): Likewise.
6296 (ssadd<mode>3): Likewise.
6297 (sub<mode>3): Likewise.
6298 (sub<mode>3): Likewise.
6299 (ussub<mode>3): Likewise.
6300 (sssub<mode>3): Likewise.
6301 (ssmulsa3): Likewise.
6302 (usmulusa3): Likewise.
6303 (arm_usatsihi): Likewise.
6304 * config/arm/vfp.md
6305 (*movdi_vfp): Add types for all instructions.
6306 (*movdi_vfp_cortexa8): Likewise.
6307 (*movhf_vfp_neon): Likewise.
6308 (*movhf_vfp): Likewise.
6309 (*movdf_vfp): Likewise.
6310 (*thumb2_movdf_vfp): Likewise.
6311 (*thumb2_movdfcc_vfp): Likewise.
6312 * config/arm/arm.md: Add type attribute to all insn patterns.
6313 (*thumb1_adddi3): Add type attribute.
6314 (*arm_adddi3): Likewise.
6315 (*adddi_sesidi_di): Likewise.
6316 (*adddi_zesidi_di): Likewise.
6317 (*thumb1_addsi3): Likewise.
6318 (addsi3_compare0): Likewise.
6319 (*addsi3_compare0_scratch): Likewise.
6320 (*compare_negsi_si): Likewise.
6321 (cmpsi2_addneg): Likewise.
6322 (*addsi3_carryin_<optab>): Likewise.
6323 (*addsi3_carryin_alt2_<optab>): Likewise.
6324 (*addsi3_carryin_clobercc_<optab>): Likewise.
6325 (*subsi3_carryin): Likewise.
6326 (*subsi3_carryin_const): Likewise.
6327 (*subsi3_carryin_compare): Likewise.
6328 (*subsi3_carryin_compare_const): Likewise.
6329 (*arm_subdi3): Likewise.
6330 (*thumb_subdi3): Likewise.
6331 (*subdi_di_zesidi): Likewise.
6332 (*subdi_di_sesidi): Likewise.
6333 (*subdi_zesidi_di): Likewise.
6334 (*subdi_sesidi_di): Likewise.
6335 (*subdi_zesidi_ze): Likewise.
6336 (thumb1_subsi3_insn): Likewise.
6337 (*arm_subsi3_insn): Likewise.
6338 (*anddi3_insn): Likewise.
6339 (*anddi_zesidi_di): Likewise.
6340 (*anddi_sesdi_di): Likewise.
6341 (*ne_zeroextracts): Likewise.
6342 (*ne_zeroextracts): Likewise.
6343 (*ite_ne_zeroextr): Likewise.
6344 (*ite_ne_zeroextr): Likewise.
6345 (*anddi_notdi_di): Likewise.
6346 (*anddi_notzesidi): Likewise.
6347 (*anddi_notsesidi): Likewise.
6348 (andsi_notsi_si): Likewise.
6349 (thumb1_bicsi3): Likewise.
6350 (*iordi3_insn): Likewise.
6351 (*iordi_zesidi_di): Likewise.
6352 (*iordi_sesidi_di): Likewise.
6353 (*thumb1_iorsi3_insn): Likewise.
6354 (*xordi3_insn): Likewise.
6355 (*xordi_zesidi_di): Likewise.
6356 (*xordi_sesidi_di): Likewise.
6357 (*arm_xorsi3): Likewise.
6358 (*andsi_iorsi3_no): Likewise.
6359 (*smax_0): Likewise.
6360 (*smax_m1): Likewise.
6361 (*arm_smax_insn): Likewise.
6362 (*smin_0): Likewise.
6363 (*arm_smin_insn): Likewise.
6364 (*arm_umaxsi3): Likewise.
6365 (*arm_uminsi3): Likewise.
6366 (*minmax_arithsi): Likewise.
6367 (*minmax_arithsi_): Likewise.
6368 (*satsi_<SAT:code>): Likewise.
6369 (arm_ashldi3_1bit): Likewise.
6370 (arm_ashrdi3_1bit): Likewise.
6371 (arm_lshrdi3_1bit): Likewise.
6372 (*arm_negdi2): Likewise.
6373 (*thumb1_negdi2): Likewise.
6374 (*arm_negsi2): Likewise.
6375 (*thumb1_negsi2): Likewise.
6376 (*negdi_extendsid): Likewise.
6377 (*negdi_zero_extend): Likewise.
6378 (*arm_abssi2): Likewise.
6379 (*thumb1_abssi2): Likewise.
6380 (*arm_neg_abssi2): Likewise.
6381 (*thumb1_neg_abss): Likewise.
6382 (one_cmpldi2): Likewise.
6383 (extend<mode>di2): Likewise.
6384 (*compareqi_eq0): Likewise.
6385 (*arm_extendhisi2addsi): Likewise.
6386 (*arm_movdi): Likewise.
6387 (*thumb1_movdi_insn): Likewise.
6388 (*arm_movt): Likewise.
6389 (*thumb1_movsi_insn): Likewise.
6390 (pic_add_dot_plus_four): Likewise.
6391 (pic_add_dot_plus_eight): Likewise.
6392 (tls_load_dot_plus_eight): Likewise.
6393 (*thumb1_movhi_insn): Likewise.
6394 (*thumb1_movsf_insn): Likewise.
6395 (*movdf_soft_insn): Likewise.
6396 (*thumb_movdf_insn): Likewise.
6397 (cbranchsi4_insn): Likewise.
6398 (cbranchsi4_scratch): Likewise.
6399 (*negated_cbranchsi4): Likewise.
6400 (*tbit_cbranch): Likewise.
6401 (*tlobits_cbranch): Likewise.
6402 (*tstsi3_cbranch): Likewise.
6403 (*cbranchne_decr1): Likewise.
6404 (*addsi3_cbranch): Likewise.
6405 (*addsi3_cbranch_scratch): Likewise.
6406 (*arm_cmpdi_insn): Likewise.
6407 (*arm_cmpdi_unsig): Likewise.
6408 (*arm_cmpdi_zero): Likewise.
6409 (*thumb_cmpdi_zero): Likewise.
6410 (*deleted_compare): Likewise.
6411 (*mov_scc): Likewise.
6412 (*mov_negscc): Likewise.
6413 (*mov_notscc): Likewise.
6414 (*cstoresi_eq0_thumb1_insn): Likewise.
6415 (cstoresi_nltu_thumb1): Likewise.
6416 (cstoresi_ltu_thu): Likewise.
6417 (thumb1_addsi3_addgeu): Likewise.
6418 (*arm_jump): Likewise.
6419 (*thumb_jump): Likewise.
6420 (*check_arch2): Likewise.
6421 (arm_casesi_internal): Likewise.
6422 (thumb1_casesi_dispatch): Likewise.
6423 (*arm_indirect_jump): Likewise.
6424 (*thumb1_indirect_jump): Likewise.
6425 (nop): Likewise.
6426 (*and_scc): Likewise.
6427 (*ior_scc): Likewise.
6428 (*compare_scc): Likewise.
6429 (*cond_move): Likewise.
6430 (*cond_arith): Likewise.
6431 (*cond_sub): Likewise.
6432 (*cmp_ite0): Likewise.
6433 (*cmp_ite1): Likewise.
6434 (*cmp_and): Likewise.
6435 (*cmp_ior): Likewise.
6436 (*ior_scc_scc): Likewise.
6437 (*ior_scc_scc_cmp): Likewise.
6438 (*and_scc_scc): Likewise.
6439 (*and_scc_scc_cmp): Likewise.
6440 (*and_scc_scc_nod): Likewise.
6441 (*negscc): Likewise.
6442 (movcond_addsi): Likewise.
6443 (movcond): Likewise.
6444 (*ifcompare_plus_move): Likewise.
6445 (*if_plus_move): Likewise.
6446 (*ifcompare_move_plus): Likewise.
6447 (*if_move_plus): Likewise.
6448 (*ifcompare_arith_arith): Likewise.
6449 (*if_arith_arith): Likewise.
6450 (*ifcompare_arith_move): Likewise.
6451 (*if_arith_move): Likewise.
6452 (*ifcompare_move_arith): Likewise.
6453 (*if_move_arith): Likewise.
6454 (*ifcompare_move_not): Likewise.
6455 (*if_move_not): Likewise.
6456 (*ifcompare_not_move): Likewise.
6457 (*if_not_move): Likewise.
6458 (*ifcompare_shift_move): Likewise.
6459 (*if_shift_move): Likewise.
6460 (*ifcompare_move_shift): Likewise.
6461 (*if_move_shift): Likewise.
6462 (*ifcompare_shift_shift): Likewise.
6463 (*ifcompare_not_arith): Likewise.
6464 (*ifcompare_arith_not): Likewise.
6465 (*if_arith_not): Likewise.
6466 (*ifcompare_neg_move): Likewise.
6467 (*if_neg_move): Likewise.
6468 (*ifcompare_move_neg): Likewise.
6469 (*if_move_neg): Likewise.
6470 (prologue_thumb1_interwork): Likewise.
6471 (*cond_move_not): Likewise.
6472 (*sign_extract_onebit): Likewise.
6473 (*not_signextract_onebit): Likewise.
6474 (stack_tie): Likewise.
6475 (align_4): Likewise.
6476 (align_8): Likewise.
6477 (consttable_end): Likewise.
6478 (consttable_1): Likewise.
6479 (consttable_2): Likewise.
6480 (consttable_4): Likewise.
6481 (consttable_8): Likewise.
6482 (consttable_16): Likewise.
6483 (*thumb1_tablejump): Likewise.
6484 (prefetch): Likewise.
6485 (force_register_use): Likewise.
6486 (thumb_eh_return): Likewise.
6487 (load_tp_hard): Likewise.
6488 (load_tp_soft): Likewise.
6489 (tlscall): Likewise.
6490 (*arm_movtas_ze): Likewise.
6491 (*arm_rev): Likewise.
6492 (*arm_revsh): Likewise.
6493 (*arm_rev16): Likewise.
6494 * config/arm/thumb2.md
6495 (*thumb2_smaxsi3): Likewise.
6496 (*thumb2_sminsi3): Likewise.
6497 (*thumb32_umaxsi3): Likewise.
6498 (*thumb2_uminsi3): Likewise.
6499 (*thumb2_negdi2): Likewise.
6500 (*thumb2_abssi2): Likewise.
6501 (*thumb2_neg_abss): Likewise.
6502 (*thumb2_movsi_insn): Likewise.
6503 (tls_load_dot_plus_four): Likewise.
6504 (*thumb2_movhi_insn): Likewise.
6505 (*thumb2_mov_scc): Likewise.
6506 (*thumb2_mov_negs): Likewise.
6507 (*thumb2_mov_negs): Likewise.
6508 (*thumb2_mov_nots): Likewise.
6509 (*thumb2_mov_nots): Likewise.
6510 (*thumb2_movsicc_): Likewise.
6511 (*thumb2_movsfcc_soft_insn): Likewise.
6512 (*thumb2_indirect_jump): Likewise.
6513 (*thumb2_and_scc): Likewise.
6514 (*thumb2_ior_scc): Likewise.
6515 (*thumb2_ior_scc_strict_it): Likewise.
6516 (*thumb2_cond_move): Likewise.
6517 (*thumb2_cond_arith): Likewise.
6518 (*thumb2_cond_ari): Likewise.
6519 (*thumb2_cond_sub): Likewise.
6520 (*thumb2_negscc): Likewise.
6521 (*thumb2_movcond): Likewise.
6522 (thumb2_casesi_internal): Likewise.
6523 (thumb2_casesi_internal_pic): Likewise.
6524 (*thumb2_alusi3_short): Likewise.
6525 (*thumb2_mov<mode>_shortim): Likewise.
6526 (*thumb2_addsi_short): Likewise.
6527 (*thumb2_subsi_short): Likewise.
6528 (thumb2_addsi3_compare0): Likewise.
6529 (*thumb2_cbz): Likewise.
6530 (*thumb2_cbnz): Likewise.
6531 (*thumb2_one_cmplsi2_short): Likewise.
6532 (*thumb2_negsi2_short): Likewise.
6533 (*orsi_notsi_si): Likewise.
6534 * config/arm/arm1020e.md: Update with new attributes.
6535 * config/arm/arm1026ejs.md: Update with new attributes.
6536 * config/arm/arm1136jfs.md: Update with new attributes.
6537 * config/arm/arm926ejs.md: Update with new attributes.
6538 * config/arm/cortex-a15.md: Update with new attributes.
6539 * config/arm/cortex-a5.md: Update with new attributes.
6540 * config/arm/cortex-a53.md: Update with new attributes.
6541 * config/arm/cortex-a7.md: Update with new attributes.
6542 * config/arm/cortex-a8.md: Update with new attributes.
6543 * config/arm/cortex-a9.md: Update with new attributes.
6544 * config/arm/cortex-m4.md: Update with new attributes.
6545 * config/arm/cortex-r4.md: Update with new attributes.
6546 * config/arm/fa526.md: Update with new attributes.
6547 * config/arm/fa606te.md: Update with new attributes.
6548 * config/arm/fa626te.md: Update with new attributes.
6549 * config/arm/fa726te.md: Update with new attributes.
6550
1c83b673
JG
65512013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
6552
6553 * config/aarch64/aarch64-simd.md
6554 (aarch64_sqdml<SBINQOPS:as>l_n<mode>_internal): Use
6555 <vwx> iterator to ensure correct register choice.
6556 (aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Likewise.
6557 (aarch64_sqdmull_n<mode>): Likewise.
6558 (aarch64_sqdmull2_n<mode>_internal): Likewise.
6559 * config/aarch64/arm_neon.h
6560 (vml<as><q>_lane<q>_<su>16): Use 'x' constraint for element vector.
6561 (vml<as><q>_n_<su>16): Likewise.
6562 (vml<as>l_high_lane<q>_<su>16): Likewise.
6563 (vml<as>l_high_n_<su>16): Likewise.
6564 (vml<as>l_lane<q>_<su>16): Likewise.
6565 (vml<as>l_n_<su>16): Likewise.
6566 (vmul<q>_lane<q>_<su>16): Likewise.
6567 (vmul<q>_n_<su>16): Likewise.
6568 (vmull_lane<q>_<su>16): Likewise.
6569 (vmull_n_<su>16): Likewise.
6570 (vmull_high_lane<q>_<su>16): Likewise.
6571 (vmull_high_n_<su>16): Likewise.
6572 (vqrdmulh<q>_n_s16): Likewise.
6573
bb1ae543
TB
65742013-09-06 Tejas Belagod <tejas.belagod@arm.com>
6575
6576 * config/aarch64/arm_neon.h: Fix all vdup<bhsd_lane<q> intrinsics to
6577 have the correct lane parameter.
6578
f23c0742
RB
65792013-09-06 Richard Biener <rguenther@suse.de>
6580
6581 * cfganal.c (control_dependences::~control_dependences):
6582 Properly free all of the vector.
6583
c1d49770
KY
65842013-09-06 Kirill Yukhin <kirill.yukhin@intel.com>
6585
6586 PR target/58269
6587 * config/i386/i386.c (ix86_conditional_register_usage):
6588 Proper initialize extended SSE registers.
6589
6da47f52
JH
65902013-09-06 Jan Hubicka <jh@suse.cz>
6591
6592 PR tree-optimization/58311
6593 * ipa-devirt.c (gate_ipa_devirt): Only execute when optimizing.
6594
65952013-09-06 Jan Hubicka <jh@suse.cz>
6596
6597 * Makefile.in (tree-sra.o): Update dependencies.
6598 * tree-sra.c: Include ipa-utils.h
6599 (scan_function): Use recursive_call_p.
6600 (has_caller_p): New function.
6601 (cgraph_for_node_and_aliases): Count also callers of aliases.
6602
fc11f321
JH
66032013-09-06 Jan Hubicka <jh@suse.cz>
6604
6605 PR middle-end/58094
6606 * cgraph.h (symtab_semantically_equivalent_p): Declare.
6607 * tree-tailcall.c: Include ipa-utils.h.
6608 (find_tail_calls): Use it.
6609 * ipa-pure-const.c (check_call): Likewise.
6610 * ipa-utils.c (recursive_call_p): New function.
6611 * ipa-utils.h (recursive_call_p): Dclare.
6612 * symtab.c (symtab_nonoverwritable_alias): Fix formatting.
6613 (symtab_semantically_equivalent_p): New function.
6614 * Makefile.in (tree-tailcall.o): Update dependencies.
6615
9a6af450
EB
66162013-09-06 Eric Botcazou <ebotcazou@adacore.com>
6617
6618 * ipa-split.c (split_function): Set DECL_NO_INLINE_WARNING_P on the
6619 non-inlinable part.
6620
35f32ad4
RB
66212013-09-06 Richard Biener <rguenther@suse.de>
6622
6623 * lto-streamer.h (lto_global_var_decls): Remove.
6624 * Makefile.in (OBJS): Remove lto-symtab.o.
6625 (lto-symtab.o): Remove.
6626 (GTFILES): Remove lto-symtab.c
6627 * lto-symtab.c: Move to lto/
6628
d12a76f3
AK
66292013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6630
6631 * config/s390/s390.md (UNSPEC_FPINT_FLOOR, UNSPEC_FPINT_BTRUNC)
6632 (UNSPEC_FPINT_ROUND, UNSPEC_FPINT_CEIL, UNSPEC_FPINT_NEARBYINT)
6633 (UNSPEC_FPINT_RINT): New constant definitions.
6634 (FPINT, fpint_name, fpint_roundingmode): New integer iterator
6635 definition with 2 attributes.
6636 ("<FPINT:fpint_name><BFP:mode>2", "rint<BFP:mode>2")
6637 ("<FPINT:fpint_name><DFP:mode>2", "rint<DFP:mode>2"): New pattern
6638 definitions.
6639
66402013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6641
f43245d1 6642 * config/s390/s390.md: Add "bcr_flush" value to mnemonic attribute.
d12a76f3
AK
6643 ("mem_thread_fence_1"): Use bcr 14,0 for z196 and later.
6644 Set the mnemonic attribute to "bcr_flush". Set the "z196prop"
6645 attribute to "z196_alone".
6646 * config/s390/2827.md: Add "bcr_flush" to "ooo_groupalone" and
6647 "zEC12_simple".
6648
c8e9d8c3
RB
66492013-09-06 Richard Biener <rguenther@suse.de>
6650
6651 * basic-block.h (class control_dependences): New.
6652 * tree-ssa-dce.c (control_dependence_map): Remove.
6653 (cd): New global.
6654 (EXECUTE_IF_CONTROL_DEPENDENT): Remove.
6655 (set_control_dependence_map_bit, clear_control_dependence_bitmap,
6656 find_pdom, find_control_dependence, find_all_control_dependences):
6657 Move to cfganal.c.
f43245d1
UB
6658 (mark_control_dependent_edges_necessary,
6659 find_obviously_necessary_stmts, propagate_necessity, tree_dce_init,
6660 tree_dce_done, perform_tree_ssa_dce): Adjust.
c8e9d8c3
RB
6661 * cfganal.c (set_control_dependence_map_bit,
6662 clear_control_dependence_bitmap, find_pdom, find_control_dependence,
6663 find_all_control_dependences): Move from tree-ssa-dce.c and
6664 implement as methods of control_dependences class.
6665 (control_dependences::control_dependences): New.
6666 (control_dependences::~control_dependences): Likewise.
6667 (control_dependences::get_edges_dependent_on): Likewise.
6668 (control_dependences::get_edge): Likewise.
6669
7d2ba471
JH
66702013-09-04 Jan Hubicka <jh@suse.cz>
6671
6672 * tree.c (types_same_for_odr): Drop overactive check.
6673 * ipa-devirt.c (hash_type_name): Likewise.
6674
e18412fc
JH
66752013-09-04 Jan Hubicka <jh@suse.cz>
6676
6677 * cgraphunit.c (walk_polymorphic_call_targets): Break out from ...
6678 (analyze_functions): ... here.
6679
d352b245
JH
66802013-09-04 Jan Hubicka <jh@suse.cz>
6681
6682 PR middle-end/58201
6683 * cgraphunit.c (analyze_functions): Clear AUX fields
6684 after processing; initialize assembler name has.
6685
770da076
JL
66862013-09-05 Jeff Law <law@redhat.com>
6687
6688 * tree-ssa-threadedge.c (thread_around_empty_blocks): Renamed
6689 from thread_around_empty_block. Record threading path into PATH.
6690 Recurse if threading through the initial block is successful.
6691 (thread_across_edge): Corresponding changes to slightly simplify.
6692
fe6f68e2
JG
66932013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
6694
6695 * config/aarch64/aarch64.md
6696 (type): Remove frecpe, frecps, frecpx.
6697 (aarch64_frecp<FRECP:frecp_suffix><mode>): Move to aarch64-simd.md,
6698 fix to be a TARGET_SIMD instruction.
6699 (aarch64_frecps): Remove.
6700 * config/aarch64/aarch64-simd.md
6701 (aarch64_frecp<FRECP:frecp_suffix><mode>): New, moved from aarch64.md
6702 (aarch64_frecps<mode>): Handle all float/vector of float modes.
6703
6e4150e1
JG
67042013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
6705 Sofiane Naci <sofiane.naci@arm.com>
6706
f43245d1 6707 * config/arm/types.md (define_attr "type"): Expand "arlo_imm"
6e4150e1 6708 into "adr", "alu_imm", "alus_imm", "logic_imm", "logics_imm".
f43245d1
UB
6709 Expand "arlo_reg" into "adc_reg", "adc_imm", "adcs_reg", "adcs_imm",
6710 "alu_ext", "alu_reg", "alus_ext", "alus_reg", "bfm", "csel",
6711 "logic_reg", "logics_reg", "rev". Expand "arlo_shift" into
6712 "alu_shift_imm", "alus_shift_imm", "logic_shift_imm",
6713 "logics_shift_imm". Expand "arlo_shift_reg" into "alu_shift_reg",
6714 "alus_shift_reg", "logic_shift_reg", "logics_shift_reg". Expand "clz"
6715 into "clz, "rbit". Rename "shift" to "shift_imm".
6e4150e1 6716 * config/arm/arm.md (define_attr "core_cycles"): Update for attribute
f43245d1 6717 changes. Update for attribute changes all occurrences of arlo_* and
6e4150e1
JG
6718 shift* types.
6719 * config/arm/arm-fixed.md: Update for attribute changes
6720 all occurrences of arlo_* types.
6721 * config/arm/thumb2.md: Update for attribute changes all occurrences
6722 of arlo_* types.
6723 * config/arm/arm.c (xscale_sched_adjust_cost): (rtx insn, rtx
6724 (cortexa7_older_only): Likewise.
6725 (cortexa7_younger): Likewise.
6726 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
6727 (1020alu_shift_op): Likewise.
6728 (1020alu_shift_reg_op): Likewise.
6729 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
6730 (alu_shift_op): Likewise.
6731 (alu_shift_reg_op): Likewise.
f43245d1 6732 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
6e4150e1
JG
6733 (11_alu_shift_op): Likewise.
6734 (11_alu_shift_reg_op): Likewise.
6735 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
6736 (9_alu_shift_reg_op): Likewise.
6737 * config/arm/cortex-a15.md (cortex_a15_alu): Update for
6738 attribute changes.
6739 (cortex_a15_alu_shift): Likewise.
6740 (cortex_a15_alu_shift_reg): Likewise.
6741 * config/arm/cortex-a5.md (cortex_a5_alu): Update for
6742 attribute changes.
6743 (cortex_a5_alu_shift): Likewise.
f43245d1
UB
6744 * config/arm/cortex-a53.md (cortex_a53_alu): Update for
6745 attribute changes.
6e4150e1 6746 (cortex_a53_alu_shift): Likewise.
f43245d1
UB
6747 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for
6748 attribute changes.
6e4150e1
JG
6749 (cortex_a7_alu_reg): Likewise.
6750 (cortex_a7_alu_shift): Likewise.
f43245d1
UB
6751 * config/arm/cortex-a8.md (cortex_a8_alu): Update for
6752 attribute changes.
6e4150e1
JG
6753 (cortex_a8_alu_shift): Likewise.
6754 (cortex_a8_alu_shift_reg): Likewise.
f43245d1 6755 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
6e4150e1 6756 (cortex_a9_dp_shift): Likewise.
f43245d1
UB
6757 * config/arm/cortex-m4.md (cortex_m4_alu): Update for
6758 attribute changes.
6e4150e1
JG
6759 * config/arm/cortex-r4.md
6760 (cortex_r4_alu): Update for attribute changes.
6761 (cortex_r4_mov): Likewise.
6762 (cortex_r4_alu_shift_reg): Likewise.
f43245d1 6763 * config/arm/fa526.md (526_alu_op): Update for attribute changes.
6e4150e1 6764 (526_alu_shift_op): Likewise.
f43245d1
UB
6765 * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
6766 * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
6e4150e1 6767 (626te_alu_shift_op): Likewise.
f43245d1 6768 * config/arm/fa726te.md (726te_alu_op): Update for attribute changes.
6e4150e1
JG
6769 (726te_alu_shift_op): Likewise.
6770 (726te_alu_shift_reg_op): Likewise.
6771 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
6772 (mp626_alu_shift_op): Likewise.
6773 * config/arm/marvell-pj4.md (pj4_alu): Update for attribute changes.
6774 (pj4_alu_conds): Likewise.
6775 (pj4_shift): Likewise.
6776 (pj4_shift_conds): Likewise.
6777 (pj4_alu_shift): Likewise.
6778 (pj4_alu_shift_conds): Likewise.
6779 * config/aarch64/aarch64.md: Update for attribute change
6780 all occurrences of arlo_* and shift* types.
6781
e6523306
MS
67822013-09-05 Mike Stump <mikestump@comcast.net>
6783
6784 * tree.h: Move documentation for tree_function_decl to tree-core.h
6785 with the declaration.
6786
80a18161
PB
67872013-09-05 Peter Bergner <bergner@vnet.ibm.com>
6788
6789 PR target/58139
6790 * reginfo.c (choose_hard_reg_mode): Scan through all mode classes
6791 looking for widest mode.
6792
6994430a
EB
67932013-09-05 Eric Botcazou <ebotcazou@adacore.com>
6794
6795 * config.gcc (*-*-vxworks*): Do not override an existing extra_objs.
6796
e67f39f7
RB
67972013-09-05 Richard Biener <rguenther@suse.de>
6798
6799 PR tree-optimization/58137
6800 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
6801 Do not create vectors of pointers.
6802 * tree-vect-loop.c (get_initial_def_for_induction): Use proper
6803 types for the components of the vector initializer.
6804 * tree-cfg.c (verify_gimple_assign_binary): Remove special-casing
6805 allowing pointer vectors with PLUS_EXPR/MINUS_EXPR.
6806
568cda29
MJ
68072013-09-05 Martin Jambor <mjambor@suse.cz>
6808
6809 * ipa-prop.c (remove_described_reference): Accept missing references,
6810 return false if that hppens, otherwise return true.
6811 (cgraph_node_for_jfunc): New function.
6812 (try_decrement_rdesc_refcount): Likewise.
6813 (try_make_edge_direct_simple_call): Use them.
6814 (ipa_edge_removal_hook): Remove references from rdescs.
6815 (ipa_edge_duplication_hook): Clone rdescs and their references
6816 when the new edge has the same caller as the old one.
6817 * cgraph.c (cgraph_resolve_speculation): Remove speculative
6818 reference before removing any edges.
6819
5a200acb
RE
68202013-09-05 Richard Earnshaw <rearnsha@arm.com>
6821
6822 * arm.c (thumb2_emit_strd_push): Rewrite to use pre-decrement on
6823 initial store.
6824 * thumb2.md (thumb2_storewb_parisi): New pattern.
6825
5922847b
YZ
68262013-09-05 Yufeng Zhang <yufeng.zhang@arm.com>
6827
6828 * config/aarch64/aarch64-option-extensions.def: Add
6829 AARCH64_OPT_EXTENSION of 'crc'.
6830 * config/aarch64/aarch64.h (AARCH64_FL_CRC): New define.
6831 (AARCH64_ISA_CRC): Ditto.
6832 * doc/invoke.texi (-march and -mcpu feature modifiers): Add
6833 description of the CRC extension.
6834
996746aa
AI
68352013-09-05 Alexander Ivchenko <alexander.ivchenko@intel.com>
6836
6837 * config/rs6000/linux64.h: Define OPTION_BIONIC and OPTION_UCLIBC.
6838 * config/rs6000/linux.h: Ditto.
6839 * alpha/linux.h: Ditto.
6840 * config/bfin/uclinux.h: Define TARGET_LIBC_HAS_FUNCTION as
6841 no_c99_libc_has_function.
6842 * config/c6x/uclinux-elf.h: Ditto.
6843 * config/lm32/uclinux-elf.h: Ditto.
6844 * config/m68k/uclinux.h: Ditto.
6845 * config/moxie/uclinux.h: Ditto.
6846 * config.gcc (bfin*-linux-uclibc*): Add t-linux-android to tmake_file.
6847 (crisv32-*-linux*, cris-*-linux*): Ditto.
6848 * config/bfin/bfin.c: Include "tm_p.h".
6849
c370d99f
RB
68502013-09-05 Richard Biener <rguenther@suse.de>
6851
6852 * tree-vect-loop.c (vect_analyze_loop_operations): Properly
6853 check for a definition without a basic-block.
6854
003bb7f3
JG
68552013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
6856 Sofiane Naci <sofiane.naci@arm.com>
6857
6858 * config/aarch64/aarch64.md
6859 (*movti_aarch64): Rename r_2_f and f_2_r.
6860 (*movsf_aarch64): Likewise.
6861 (*movdf_aarch64): Likewise.
6862 (*movtf_aarch64): Likewise.
6863 (aarch64_movdi_<mode>low): Likewise.
6864 (aarch64_movdi_<mode>high): Likewise.
6865 (aarch64_mov<mode>high_di): Likewise.
6866 (aarch64_mov<mode>low_di): Likewise.
6867 (aarch64_movtilow_tilow): Likewise.
6868 * config/arm/arm.md (attribute "neon_type"): Delete. Move attribute
6869 values to config/arm/types.md
6870 (attribute "conds"): Update for attribute change.
6871 (anddi3_insn): Likewise.
6872 (iordi3_insn): Likewise.
6873 (xordi3_insn): Likewise.
6874 (one_cmpldi2): Likewise.
6875 * config/arm/types.md (type): Add Neon types.
6876 * config/arm/neon.md (neon_mov<mode>): Remove "neon_type" attribute,
6877 use "type" attribute.
6878 (movmisalign<mode>_neon_store): Likewise.
6879 (movmisalign<mode>_neon_load): Likewise.
6880 (vec_set<mode>_internal): Likewise.
6881 (vec_setv2di_internal): Likewise.
6882 (vec_extract<mode>): Likewise.
6883 (vec_extractv2di): Likewise.
6884 (add<mode>3_neon): Likewise.
6885 (adddi3_neon): Likewise.
6886 (sub<mode>3_neon): Likewise.
6887 (subdi3_neon): Likewise.
6888 (mul<mode>3_neon): Likewise.
6889 (mul<mode>3add<mode>_neon): Likewise.
6890 (mul<mode>3neg<mode>add<mode>_neon): Likewise.
6891 (fma<VCVTF:mode>4)): Likewise.
6892 (fma<VCVTF:mode>4_intrinsic): Likewise.
6893 (fmsub<VCVTF:mode>4)): Likewise.
6894 (fmsub<VCVTF:mode>4_intrinsic): Likewise.
6895 (neon_vrint<NEON_VRINT:nvrint_variant><VCVTF:mode>): Likewise.
6896 (ior<mode>3): Likewise.
6897 (and<mode>3): Likewise.
6898 (anddi3_neon): Likewise.
6899 (orn<mode>3_neon): Likewise.
6900 (orndi3_neon): Likewise.
6901 (bic<mode>3_neon): Likewise.
6902 (bicdi3_neon): Likewise.
6903 (xor<mode>3): Likewise.
6904 (one_cmpl<mode>2): Likewise.
6905 (abs<mode>2): Likewise.
6906 (neg<mode>2): Likewise.
6907 (umin<mode>3_neon): Likewise.
6908 (umax<mode>3_neon): Likewise.
6909 (smin<mode>3_neon): Likewise.
6910 (smax<mode>3_neon): Likewise.
6911 (vashl<mode>3): Likewise.
6912 (vashr<mode>3_imm): Likewise.
6913 (vlshr<mode>3_imm): Likewise.
6914 (ashl<mode>3_signed): Likewise.
6915 (ashl<mode>3_unsigned): Likewise.
6916 (neon_load_count): Likewise.
6917 (ashldi3_neon_noclobber): Likewise.
6918 (signed_shift_di3_neon): Likewise.
6919 (unsigned_shift_di3_neon): Likewise.
6920 (ashrdi3_neon_imm_noclobber): Likewise.
6921 (lshrdi3_neon_imm_noclobber): Likewise.
6922 (widen_ssum<mode>3): Likewise.
6923 (widen_usum<mode>3): Likewise.
6924 (quad_halves_<code>v4si): Likewise.
6925 (quad_halves_<code>v4sf): Likewise.
6926 (quad_halves_<code>v8hi): Likewise.
6927 (quad_halves_<code>v16qi): Likewise.
6928 (reduc_splus_v2di): Likewise.
6929 (neon_vpadd_internal<mode>): Likewise.
6930 (neon_vpsmin<mode>): Likewise.
6931 (neon_vpsmax<mode>): Likewise.
6932 (neon_vpumin<mode>): Likewise.
6933 (neon_vpumax<mode>): Likewise.
6934 (ss_add<mode>_neon): Likewise.
6935 (us_add<mode>_neon): Likewise.
6936 (ss_sub<mode>_neon): Likewise.
6937 (us_sub<mode>_neon): Likewise.
6938 (neon_vadd<mode>_unspec): Likewise.
6939 (neon_vaddl<mode>): Likewise.
6940 (neon_vaddw<mode>): Likewise.
6941 (neon_vhadd<mode>): Likewise.
6942 (neon_vqadd<mode>): Likewise.
6943 (neon_vaddhn<mode>): Likewise.
6944 (neon_vmul<mode>): Likewise.
6945 (neon_vmla<mode>): Likewise.
6946 (neon_vmlal<mode>): Likewise.
6947 (neon_vmls<mode>): Likewise.
6948 (neon_vmlsl<mode>): Likewise.
6949 (neon_vqdmulh<mode>): Likewise.
6950 (neon_vqdmlal<mode>): Likewise.
6951 (neon_vqdmlsl<mode>): Likewise.
6952 (neon_vmull<mode>): Likewise.
6953 (neon_vqdmull<mode>): Likewise.
6954 (neon_vsub<mode>_unspec): Likewise.
6955 (neon_vsubl<mode>): Likewise.
6956 (neon_vsubw<mode>): Likewise.
6957 (neon_vqsub<mode>): Likewise.
6958 (neon_vhsub<mode>): Likewise.
6959 (neon_vsubhn<mode>): Likewise.
6960 (neon_vceq<mode>): Likewise.
6961 (neon_vcge<mode>): Likewise.
6962 (neon_vcgeu<mode>): Likewise.
6963 (neon_vcgt<mode>): Likewise.
6964 (neon_vcgtu<mode>): Likewise.
6965 (neon_vcle<mode>): Likewise.
6966 (neon_vclt<mode>): Likewise.
6967 (neon_vcage<mode>): Likewise.
6968 (neon_vcagt<mode>): Likewise.
6969 (neon_vtst<mode>): Likewise.
6970 (neon_vabd<mode>): Likewise.
6971 (neon_vabdl<mode>): Likewise.
6972 (neon_vaba<mode>): Likewise.
6973 (neon_vabal<mode>): Likewise.
6974 (neon_vmax<mode>): Likewise.
6975 (neon_vmin<mode>): Likewise.
6976 (neon_vpaddl<mode>): Likewise.
6977 (neon_vpadal<mode>): Likewise.
6978 (neon_vpmax<mode>): Likewise.
6979 (neon_vpmin<mode>): Likewise.
6980 (neon_vrecps<mode>): Likewise.
6981 (neon_vrsqrts<mode>): Likewise.
6982 (neon_vqabs<mode>): Likewise.
6983 (neon_vqneg<mode>): Likewise.
6984 (neon_vcls<mode>): Likewise.
6985 (clz<mode>2): Likewise.
6986 (popcount<mode>2): Likewise.
6987 (neon_vrecpe): Likewise.
6988 (neon_vrsqrte): Likewise.
6989 (neon_vget_lane<mode>_sext_internal): Likewise.
6990 (neon_vget_lane<mode>_zext_internal): Likewise.
6991 (neon_vdup_n<mode>): Likewise.
6992 (neon_vdup_nv2di): Likewise.
6993 (neon_vdpu_lane<mode>_internal): Likewise.
6994 (neon_vswp<mode>): Likewise.
6995 (float<mode><V_cvtto>2): Likewise.
6996 (floatuns<mode><V_cvtto>2): Likewise.
6997 (fix_trunc<mode><V_cvtto>)2): Likewise
6998 (fixuns_trunc<mode><V_cvtto)2): Likewise.
6999 (neon_vcvt<mode>): Likewise.
7000 (neon_vcvtv4sfv4hf): Likewise.
7001 (neon_vcvtv4hfv4sf): Likewise.
7002 (neon_vcvt_n<mode>): Likewise.
7003 (neon_vmovn<mode>): Likewise.
7004 (neon_vqmovn<mode>): Likewise.
7005 (neon_vqmovun<mode>): Likewise.
7006 (neon_vmovl<mode>): Likewise.
7007 (neon_vmul_lane<mode>): Likewise.
7008 (neon_vmull_lane<mode>): Likewise.
7009 (neon_vqdmull_lane<mode>): Likewise.
7010 (neon_vqdmulh_lane<mode>): Likewise.
7011 (neon_vmla_lane<mode>): Likewise.
7012 (neon_vmlal_lane<mode>): Likewise.
7013 (neon_vqdmlal_lane<mode>): Likewise.
7014 (neon_vmls_lane<mode>): Likewise.
7015 (neon_vmlsl_lane<mode>): Likewise.
7016 (neon_vqdmlsl_lane<mode>): Likewise.
7017 (neon_vext<mode>): Likewise.
7018 (neon_vrev64<mode>): Likewise.
7019 (neon_vrev32<mode>): Likewise.
7020 (neon_vrev16<mode>): Likewise.
7021 (neon_vbsl<mode>_internal): Likewise.
7022 (neon_vshl<mode>): Likewise.
7023 (neon_vqshl<mode>): Likewise.
7024 (neon_vshr_n<mode>): Likewise.
7025 (neon_vshrn_n<mode>): Likewise.
7026 (neon_vqshrn_n<mode>): Likewise.
7027 (neon_vqshrun_n<mode>): Likewise.
7028 (neon_vshl_n<mode>): Likewise.
7029 (neon_vqshl_n<mode>): Likewise.
7030 (neon_vqshlu_n<mode>): Likewise.
7031 (neon_vshll_n<mode>): Likewise.
7032 (neon_vsra_n<mode>): Likewise.
7033 (neon_vsri_n<mode>): Likewise.
7034 (neon_vsli_n<mode>): Likewise.
7035 (neon_vtbl1v8qi): Likewise.
7036 (neon_vtbl2v8qi): Likewise.
7037 (neon_vtbl3v8qi): Likewise.
7038 (neon_vtbl4v8qi): Likewise.
7039 (neon_vtbx1v8qi): Likewise.
7040 (neon_vtbx2v8qi): Likewise.
7041 (neon_vtbx3v8qi): Likewise.
7042 (neon_vtbx4v8qi): Likewise.
7043 (neon_vtrn<mode>_internal): Likewise.
7044 (neon_vzip<mode>_internal): Likewise.
7045 (neon_vuzp<mode>_internal): Likewise.
7046 (neon_vld1<mode>): Likewise.
7047 (neon_vld1_lane<mode>): Likewise.
7048 (neon_vld1_dup<mode>): Likewise.
7049 (neon_vld1_dupv2di): Likewise.
7050 (neon_vst1<mode>): Likewise.
7051 (neon_vst1_lane<mode>): Likewise.
7052 (neon_vld2<mode>): Likewise.
7053 (neon_vld2_lane<mode>): Likewise.
7054 (neon_vld2_dup<mode>): Likewise.
7055 (neon_vst2<mode>): Likewise.
7056 (neon_vst2_lane<mode>): Likewise.
7057 (neon_vld3<mode>): Likewise.
7058 (neon_vld3qa<mode>): Likewise.
7059 (neon_vld3qb<mode>): Likewise.
7060 (neon_vld3_lane<mode>): Likewise.
7061 (neon_vld3_dup<mode>): Likewise.
7062 (neon_vst3<mode>): Likewise.
7063 (neon_vst3qa<mode>): Likewise.
7064 (neon_vst3qb<mode>): Likewise.
7065 (neon_vst3_lane<mode>): Likewise.
7066 (neon_vld4<mode>): Likewise.
7067 (neon_vld4qa<mode>): Likewise.
7068 (neon_vld4qb<mode>): Likewise.
7069 (neon_vld4_lane<mode>): Likewise.
7070 (neon_vld4_dup<mode>): Likewise.
7071 (neon_vst4<mode>): Likewise.
7072 (neon_vst4qa<mode>): Likewise.
7073 (neon_vst4qb<mode>): Likewise.
7074 (neon_vst4_lane<mode>): Likewise.
7075 (neon_vec_unpack<US>_lo_<mode>): Likewise.
7076 (neon_vec_unpack<US>_hi_<mode>): Likewise.
7077 (neon_vec_<US>mult_lo_<mode>): Likewise.
7078 (neon_vec_<US>mult_hi_<mode>): Likewise.
7079 (neon_vec_<US>shiftl_<mode>): Likewise.
7080 (neon_unpack<US>_<mode>): Likewise.
7081 (neon_vec_<US>mult_<mode>): Likewise.
7082 (vec_pack_trunc_<mode>): Likewise.
7083 (neon_vec_pack_trunk_<mode>): Likewise.
7084 (neon_vabd<mode>_2): Likewise.
7085 (neon_vabd<mode>_3): Likewise.
7086 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
7087 (thumb2_movsi_vfp): Likewise.
7088 (movdi_vfp): Likewise.
7089 (movdi_vfp_cortexa8): Likewise.
7090 (movhf_vfp_neon): Likewise.
7091 (movhf_vfp): Likewiwse.
7092 (movsf_vfp): Likewiwse.
7093 (thumb2_movsf_vfp): Likewiwse.
7094 (movdf_vfp): Likewise.
7095 (thumb2_movdf_vfp): Likewise.
7096 (movsfcc_vfp): Likewise.
7097 (thumb2_movsfcc_vfp): Likewise.
7098 (movdfcc_vfp): Likewise.
7099 (thumb2_movdfcc_vfp): Likewise.
7100 * config/arm/arm.c (cortexa7_older_only): Update for attribute change.
7101 * config/arm/arm1020e.md (v10_c2v): Update for attribute change.
7102 (v10_v2c): Likewise.
7103 * config/arm/cortex-a15-neon.md (cortex_a15_neon_int_1): Update for
7104 attribute change.
7105 (cortex_a15_neon_int_2): Likewise.
7106 (cortex_a15_neon_int_3): Likewise.
7107 (cortex_a15_neon_int_4): Likewise.
7108 (cortex_a15_neon_int_5): Likewise.
7109 (cortex_a15_neon_vqneg_vqabs): Likewise.
7110 (cortex_a15_neon_vmov): Likewise.
7111 (cortex_a15_neon_vaba): Likewise.
7112 (cortex_a15_neon_vaba_qqq): Likewise.
7113 (cortex_a15_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
7114 (cortex_a15_neon_mul_qqq_8_16_32_ddd_32): Likewise.
7115 (cortex_a15_neon_mul_qdd_64_32_long_qqd_16_ddd_32_\
7116 scalar_64_32_long_scalar): Likewise.
7117 (cortex_a15_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
7118 (cortex_a15_neon_mla_qqq_8_16): Likewise.
7119 (cortex_a15_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
7120 lotype_qdd_64_32_long): Likewise.
7121 (cortex_a15_neon_mla_qqq_32_qqd_32_scalar): Likewise.
7122 (cortex_a15_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
7123 (cortex_a15_neon_mul_qqd_32_scalar): Likewise.
7124 (cortex_a15_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
7125 (cortex_a15_neon_shift_1): Likewise.
7126 (cortex_a15_neon_shift_2): Likewise.
7127 (cortex_a15_neon_shift_3): Likewise.
7128 (cortex_a15_neon_vshl_ddd): Likewise.
7129 (cortex_a15_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
7130 (cortex_a15_neon_vsra_vrsra): Likewise.
7131 (cortex_a15_neon_fp_vadd_ddd_vabs_dd): Likewise.
7132 (cortex_a15_neon_fp_vadd_qqq_vabs_qq): Likewise.
7133 (cortex_a15_neon_fp_vmul_ddd): Likewise.
7134 (cortex_a15_neon_fp_vmul_qqd): Likewise.
7135 (cortex_a15_neon_fp_vmla_ddd): Likewise.
7136 (cortex_a15_neon_fp_vmla_qqq): Likewise.
7137 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
7138 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
7139 (cortex_a15_neon_fp_vrecps_vrsqrts_ddd): Likewise.
7140 (cortex_a15_neon_fp_vrecps_vrsqrts_qqq): Likewise.
7141 (cortex_a15_neon_bp_simple): Likewise.
7142 (cortex_a15_neon_bp_2cycle): Likewise.
7143 (cortex_a15_neon_bp_3cycle): Likewise.
7144 (cortex_a15_neon_vld1_1_2_regs): Likewise.
7145 (cortex_a15_neon_vld1_3_4_regs): Likewise.
7146 (cortex_a15_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
7147 (cortex_a15_neon_vld2_4_regs): Likewise.
7148 (cortex_a15_neon_vld3_vld4): Likewise.
7149 (cortex_a15_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
7150 (cortex_a15_neon_vst1_3_4_regs): Likewise.
7151 (cortex_a15_neon_vst2_4_regs_vst3_vst4): Likewise.
7152 (cortex_a15_neon_vst3_vst4): Likewise.
7153 (cortex_a15_neon_vld1_vld2_lane): Likewise.
7154 (cortex_a15_neon_vld3_vld4_lane" 10
7155 (cortex_a15_neon_vst1_vst2_lane): Likewise.
7156 (cortex_a15_neon_vst3_vst4_lane): Likewise.
7157 (cortex_a15_neon_vld3_vld4_all_lanes): Likewise.
7158 (cortex_a15_neon_ldm_2): Likewise.0
7159 (cortex_a15_neon_stm_2): Likewise.
7160 (cortex_a15_neon_mcr): Likewise.
7161 (cortex_a15_neon_mcr_2_mcrr): Likewise.
7162 (cortex_a15_neon_mrc): Likewise.
7163 (cortex_a15_neon_mrrc): Likewise.
7164 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
7165 change.
7166 (cortex_a15_alu_shift): Likewise.
7167 (cortex_a15_alu_shift_reg): Likewise.
7168 (cortex_a15_mult32): Likewise.
7169 (cortex_a15_mult64): Likewise.
7170 (cortex_a15_block): Likewise.
7171 (cortex_a15_branch): Likewise.
7172 (cortex_a15_load1): Likewise.
7173 (cortex_a15_load3): Likewise.
7174 (cortex_a15_store1): Likewise.
7175 (cortex_a15_store3): Likewise.
7176 (cortex_a15_call): Likewise.
f43245d1 7177 * config/arm/cortex-a5.md (cortex_a5_r2f): Update for attribute change.
003bb7f3
JG
7178 (cortex_a5_f2r): Likewise.
7179 * config/arm/cortex-a53.md (cortex_a53_r2f): Update for attribute
7180 change.
7181 (cortex_a53_f2r): Likewise.
7182 * config/arm/cortex-a7.md
7183 (cortex_a7_branch): Update for attribute change.
7184 (cortex_a7_call): Likewise.
7185 (cortex_a7_alu_imm): Likewise.
7186 (cortex_a7_alu_reg): Likewise.
7187 (cortex_a7_alu_shift): Likewise.
7188 (cortex_a7_mul): Likewise.
7189 (cortex_a7_load1): Likewise.
7190 (cortex_a7_store1): Likewise.
7191 (cortex_a7_load2): Likewise.
7192 (cortex_a7_store2): Likewise.
7193 (cortex_a7_load3): Likewise.
7194 (cortex_a7_store3): Likewise.
7195 (cortex_a7_load4): Likewise.
7196 (cortex_a7_store4): Likewise.
7197 (cortex_a7_fpalu): Likewise.
7198 (cortex_a7_fconst): Likewise.
7199 (cortex_a7_fpmuls): Likewise.
7200 (cortex_a7_neon_mul): Likewise.
7201 (cortex_a7_fpmacs): Likewise.
7202 (cortex_a7_neon_mla: Likewise.
7203 (cortex_a7_fpmuld: Likewise.
7204 (cortex_a7_fpmacd: Likewise.
7205 (cortex_a7_fpfmad: Likewise.
7206 (cortex_a7_fdivs: Likewise.
7207 (cortex_a7_fdivd: Likewise.
7208 (cortex_a7_r2f: Likewise.
7209 (cortex_a7_f2r: Likewise.
7210 (cortex_a7_f_flags: Likewise.
7211 (cortex_a7_f_loads: Likewise.
7212 (cortex_a7_f_loadd: Likewise.
7213 (cortex_a7_f_stores: Likewise.
7214 (cortex_a7_f_stored: Likewise.
7215 (cortex_a7_neon): Likewise.
7216 * config/arm/cortex-a8-neon.md
7217 (cortex_a8_neon_mrc): Update for attribute change.
7218 (cortex_a8_neon_mrrc): Likewise.
7219 (cortex_a8_neon_int_1): Likewise.
7220 (cortex_a8_neon_int_2): Likewise.
7221 (cortex_a8_neon_int_3): Likewise.
7222 (cortex_a8_neon_int_4): Likewise.
7223 (cortex_a8_neon_int_5): Likewise.
7224 (cortex_a8_neon_vqneg_vqabs): Likewise.
7225 (cortex_a8_neon_vmov): Likewise.
7226 (cortex_a8_neon_vaba): Likewise.
7227 (cortex_a8_neon_vaba_qqq): Likewise.
7228 (cortex_a8_neon_vsma): Likewise.
7229 (cortex_a8_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
7230 (cortex_a8_neon_mul_qqq_8_16_32_ddd_32): Likewise.
f43245d1
UB
7231 (cortex_a8_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_\
7232 long_scalar): Likewise.
003bb7f3
JG
7233 (cortex_a8_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
7234 (cortex_a8_neon_mla_qqq_8_16): Likewise.
7235 (cortex_a8_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
7236 long_scalar_qdd_64_32_long): Likewise.
7237 (cortex_a8_neon_mla_qqq_32_qqd_32_scalar): Likewise.
7238 (cortex_a8_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
7239 (cortex_a8_neon_mul_qqd_32_scalar): Likewise.
7240 (cortex_a8_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
7241 (cortex_a8_neon_shift_1): Likewise.
7242 (cortex_a8_neon_shift_2): Likewise.
7243 (cortex_a8_neon_shift_3): Likewise.
7244 (cortex_a8_neon_vshl_ddd): Likewise.
7245 (cortex_a8_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
7246 (cortex_a8_neon_vsra_vrsra): Likewise.
7247 (cortex_a8_neon_fp_vadd_ddd_vabs_dd): Likewise.
7248 (cortex_a8_neon_fp_vadd_qqq_vabs_qq): Likewise.
7249 (cortex_a8_neon_fp_vsum): Likewise.
7250 (cortex_a8_neon_fp_vmul_ddd): Likewise.
7251 (cortex_a8_neon_fp_vmul_qqd): Likewise.
7252 (cortex_a8_neon_fp_vmla_ddd): Likewise.
7253 (cortex_a8_neon_fp_vmla_qqq): Likewise.
7254 (cortex_a8_neon_fp_vmla_ddd_scalar): Likewise.
7255 (cortex_a8_neon_fp_vmla_qqq_scalar): Likewise.
7256 (cortex_a8_neon_fp_vrecps_vrsqrts_ddd): Likewise.
7257 (cortex_a8_neon_fp_vrecps_vrsqrts_qqq): Likewise.
7258 (cortex_a8_neon_bp_simple): Likewise.
7259 (cortex_a8_neon_bp_2cycle): Likewise.
7260 (cortex_a8_neon_bp_3cycle): Likewise.
7261 (cortex_a8_neon_ldr): Likewise.
7262 (cortex_a8_neon_str): Likewise.
7263 (cortex_a8_neon_vld1_1_2_regs): Likewise.
7264 (cortex_a8_neon_vld1_3_4_regs): Likewise.
7265 (cortex_a8_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
7266 (cortex_a8_neon_vld2_4_regs): Likewise.
7267 (cortex_a8_neon_vld3_vld4): Likewise.
7268 (cortex_a8_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
7269 (cortex_a8_neon_vst1_3_4_regs): Likewise.
7270 (cortex_a8_neon_vst2_4_regs_vst3_vst4): Likewise.
7271 (cortex_a8_neon_vst3_vst4): Likewise.
7272 (cortex_a8_neon_vld1_vld2_lane): Likewise.
7273 (cortex_a8_neon_vld3_vld4_lane): Likewise.
7274 (cortex_a8_neon_vst1_vst2_lane): Likewise.
7275 (cortex_a8_neon_vst3_vst4_lane): Likewise.
7276 (cortex_a8_neon_vld3_vld4_all_lanes): Likewise.
7277 (cortex_a8_neon_mcr): Likewise.
7278 (cortex_a8_neon_mcr_2_mcrr): Likewise.
f43245d1 7279 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
003bb7f3
JG
7280 * config/arm/cortex-a9-neon.md (ca9_neon_mrc): Update for attribute
7281 change.
7282 (ca9_neon_mrrc): Likewise.
7283 (cortex_a9_neon_int_1): Likewise.
7284 (cortex_a9_neon_int_2): Likewise.
7285 (cortex_a9_neon_int_3): Likewise.
7286 (cortex_a9_neon_int_4): Likewise.
7287 (cortex_a9_neon_int_5): Likewise.
7288 (cortex_a9_neon_vqneg_vqabs): Likewise.
7289 (cortex_a9_neon_vmov): Likewise.
7290 (cortex_a9_neon_vaba): Likewise.
7291 (cortex_a9_neon_vaba_qqq): Likewise.
7292 (cortex_a9_neon_vsma): Likewise.
7293 (cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
7294 (cortex_a9_neon_mul_qqq_8_16_32_ddd_32): Likewise.
f43245d1
UB
7295 (cortex_a9_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_\
7296 long_scalar): Likewise.
003bb7f3
JG
7297 (cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
7298 (cortex_a9_neon_mla_qqq_8_16): Likewise.
7299 (cortex_a9_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
7300 long_scalar_qdd_64_32_long): Likewise.
7301 (cortex_a9_neon_mla_qqq_32_qqd_32_scalar): Likewise.
7302 (cortex_a9_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
7303 (cortex_a9_neon_mul_qqd_32_scalar): Likewise.
7304 (cortex_a9_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
7305 (cortex_a9_neon_shift_1): Likewise.
7306 (cortex_a9_neon_shift_2): Likewise.
7307 (cortex_a9_neon_shift_3): Likewise.
7308 (cortex_a9_neon_vshl_ddd): Likewise.
7309 (cortex_a9_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
7310 (cortex_a9_neon_vsra_vrsra): Likewise.
7311 (cortex_a9_neon_fp_vadd_ddd_vabs_dd): Likewise.
7312 (cortex_a9_neon_fp_vadd_qqq_vabs_qq): Likewise.
7313 (cortex_a9_neon_fp_vsum): Likewise.
7314 (cortex_a9_neon_fp_vmul_ddd): Likewise.
7315 (cortex_a9_neon_fp_vmul_qqd): Likewise.
7316 (cortex_a9_neon_fp_vmla_ddd): Likewise.
7317 (cortex_a9_neon_fp_vmla_qqq): Likewise.
7318 (cortex_a9_neon_fp_vmla_ddd_scalar): Likewise.
7319 (cortex_a9_neon_fp_vmla_qqq_scalar): Likewise.
7320 (cortex_a9_neon_fp_vrecps_vrsqrts_ddd): Likewise.
7321 (cortex_a9_neon_fp_vrecps_vrsqrts_qqq): Likewise.
7322 (cortex_a9_neon_bp_simple): Likewise.
7323 (cortex_a9_neon_bp_2cycle): Likewise.
7324 (cortex_a9_neon_bp_3cycle): Likewise.
7325 (cortex_a9_neon_ldr): Likewise.
7326 (cortex_a9_neon_str): Likewise.
7327 (cortex_a9_neon_vld1_1_2_regs): Likewise.
7328 (cortex_a9_neon_vld1_3_4_regs): Likewise.
7329 (cortex_a9_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
7330 (cortex_a9_neon_vld2_4_regs): Likewise.
7331 (cortex_a9_neon_vld3_vld4): Likewise.
7332 (cortex_a9_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
7333 (cortex_a9_neon_vst1_3_4_regs): Likewise.
7334 (cortex_a9_neon_vst2_4_regs_vst3_vst4): Likewise.
7335 (cortex_a9_neon_vst3_vst4): Likewise.
7336 (cortex_a9_neon_vld1_vld2_lane): Likewise.
7337 (cortex_a9_neon_vld3_vld4_lane): Likewise.
7338 (cortex_a9_neon_vst1_vst2_lane): Likewise.
7339 (cortex_a9_neon_vst3_vst4_lane): Likewise.
7340 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
7341 (cortex_a9_neon_mcr): Likewise.
7342 (cortex_a9_neon_mcr_2_mcrr): Likewise.
7343 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
7344 (cortex_a9_fps): Likewise.
7345 * config/arm/cortex-m4-fpu.md (cortex_m4_vmov_2): Update for attribute
7346 change.
7347 (cortex_m4_fmuls): Likewise.
7348 * config/arm/cortex-r4f.md (cortex_r4_mcr): Update for attribute
7349 change.
7350 (cortex_r4_mrc): Likewise.
7351 * config/arm/iterators.md: Update comment referring to neon_type.
f43245d1 7352 * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Update for attribute change.
003bb7f3 7353 (iwmmxt_movsi_insn): Likewise.
f43245d1
UB
7354 * config/arm/marvell-pj4.md (pj4_vfp_to_core): Update for
7355 attribute change.
003bb7f3
JG
7356 (pj4_core_to_vfp): Likewise.
7357 * config/arm/neon-schedgen.ml (emit_insn_reservations): Update for
7358 attribute change.
7359 * config/arm/vfp11.md (vfp_fload): Update for attribute change.
7360 (vfp_fstore): Likewise.
7361 * doc/md.texi: Change references to neon_type to refer to type.
7362
fbe0dc78
DS
73632013-09-04 Dodji Seketeli <dodji@redhat.com>
7364
7365 * tree.h (DECL_BUILT_IN): Fix typo in comment.
7366
c167bc5b
DE
73672013-09-04 David Edelsohn <dje.gcc@gmail.com>
7368
7369 * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Only emit
7370 lglobl if not weak.
7371
035cb59f
ER
73722013-09-04 Easwaran Raman <eraman@google.com>
7373
7374 PR middle-end/57370
7375 * tree-ssa-reassoc.c (get_stmt_uid_with_default): New function,
7376 (build_and_add_sum): Use it.
7377 (appears_later_in_bb): Simplify code.
7378
71191083
TJ
73792013-09-04 Teresa Johnson <tejohnson@google.com>
7380
7381 * dumpfile.c (dump_finish): Don't close stderr/stdout.
7382
0c488213
JG
73832013-09-04 James Greenhalgh <james.greenhalgh@arm.com>
7384
7385 * config/aarch64/arm_neon.h (vaddvq_<su>64): Fix return types.
7386
61a74079
JH
73872013-09-04 Jan Hubicka <jh@suse.cz>
7388
7389 * Makefile.in (ipa-devirt.o): Add dependency on diagnostic.h
7390 * ipa-devirt.c: Include diganostic.h
7391 (odr_type_d): Add types and types_set.
7392 (hash_type_name): Work for types with vtables during LTO.
7393 (odr_hasher::remove): Fix comment; destroy types_set.
7394 (add_type_duplicate): New function,
7395 (get_odr_type): Use it.
7396 (dump_type_inheritance_graph): Dump type duplicates.
7397 * ipa.c (symtab_remove_unreachable_nodes): Build type inheritance
7398 graph.
7399 * tree.c (types_same_for_odr): Give exact answers on types with
7400 virtual tables.
7401
24ba8195
DS
74022013-09-04 Dodji Seketeli <dodji@redhat.com>
7403
7404 * tree.h (DECL_BUILT_IN, DECL_IS_BUILTIN): Add more comments
7a5911d3 7405 explaining their differences.
24ba8195 7406
0a04869e
SKS
74072013-09-04 Sandeep Kumar Singh<Sandeep.Singh2@kpitcummins.com>
7408
7409 * config/rx/rx.h: Add option -mcpu for target variants RX100 and RX200.
7410
3b18bc42
JL
74112013-09-03 Jeff Law <law@redhat.com>
7412
7413 * tree-ssa-threadedge.c (thread_across_edge): Record entire path
7414 when not threading through a joiner block. Pass joiner/no joiner
7415 state to register_jump_thread.
7416 * tree-ssa-threadupdate.c (register_jump_thread): Get joiner/no joiner
7417 state from argument rather than implying on path length.
7418 Dump the entire jump thread path into debugging dump.
7419 * tree-flow.h (register_jump_thread): Update prototype.
7420
ae84e151
XDL
74212013-08-29 Xinliang David Li <davidxl@google.com>
7422
7423 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
7424 Remove a trivial gcc_assert.
7425
c716e67f
XDL
74262013-08-29 Xinliang David Li <davidxl@google.com>
7427
7428 * tree-vect-slp.c (destroy_bb_vec_info): Data ref cleanup.
7429 * tree-vect-loop.c (destroy_bb_vec_info): Ditto.
7430 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
7431 Delay base decl alignment adjustment.
7432 * tree-vectorizer.c (vect_destroy_datarefs): New function.
7433 * tree-vectorizer.h: New data structure.
7434 (set_dr_misalignment): New function.
7435 (dr_misalignment): Ditto.
7436 * tree-vect-stmts.c (vectorizable_store): Ensure alignment.
7437 (vectorizable_load): Ditto.
7438 (ensure_base_align): New function.
7439 (vectorize_loops): Add dbg_cnt support.
7440 (execute_vect_slp): Ditto.
7441 * dbgcnt.def: New debug counter.
7442 * Makefile: New dependency.
7443
db8800bc
MI
74442013-09-03 Meador Inge <meadori@codesourcery.com>
7445
7446 Revert:
7447
7448 2013-08-30 Meador Inge <meadori@codesourcery.com>
7449
7450 * tree-vrp.c (check_array_ref): Bail out on zero-length arrays.
7451
0d9b4f5c
DE
74522013-09-03 David Edelsohn <dje.gcc@gmail.com>
7453
7454 * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Emit lglobl for
7455 function descriptor.
7456
29e810b9
RB
74572013-09-03 Richard Biener <rguenther@suse.de>
7458
7459 * tree-affine.c (add_elt_to_tree): Fix association issue,
7460 avoid useless converts and make sure to always return a
7461 properly typed result.
7462
dbfc2894
RB
74632013-09-03 Richard Biener <rguenther@suse.de>
7464
7465 PR middle-end/57656
7466 * fold-const.c (negate_expr_p): Fix division case.
7467 (negate_expr): Likewise.
7468
fa3bf4ce
RB
74692013-09-03 Richard Biener <rguenther@suse.de>
7470
7471 PR lto/58285
7472 * tree-streamer-out.c: Include tm.h.
7473 * Makefile.in (tree-streamer-out.o): Depend on $(TM_H).
7474
a64bbb3f
JH
74752013-09-03 Jan Hubicka <jh@suse.cz>
7476
7477 * tree-profile.c (tree_profiling): Cleanup CFG when done.
7478
93ed07e2
AM
74792013-09-03 Alan Modra <amodra@gmail.com>
7480
7481 * config.gcc (powerpc*-*-linux*): Add support for little-endian
7482 multilibs to big-endian target and vice versa.
7483 * config/rs6000/t-linux64: Use := assignment on all vars.
7484 (MULTILIB_EXTRA_OPTS): Remove fPIC.
7485 (MULTILIB_OSDIRNAMES): Specify using mapping from multilib_options.
7486 * config/rs6000/t-linux64le: New file.
7487 * config/rs6000/t-linux64bele: New file.
7488 * config/rs6000/t-linux64lebe: New file.
7489
07d6cd64
JH
74902013-09-02 Jan Hubicka <jh@suse.cz>
7491
7492 * ipa-inline-transform.c (inline_transform): Do not
7493 optimize_inline_calls when not optimizing.
7494
8e4c9a10
JH
74952013-09-02 Jan Hubicka <jh@suse.cz>
7496
7497 * lto-symtab.c (lto_symtab_merge_symbols): Add comments; merge
7498 duplicated nodes for assembler names.
7499 * symtab.c (symtab_unregister_node): Do not attempt to unlink
7500 hard registers from assembler name hash.
7501
c91061e6
JH
75022013-09-02 Jan Hubicka <jh@suse.cz>
7503
7504 * ipa-split.c (execute_split_functions): Split externally visible
7505 functions called once.
7506
2fd0985c
MJ
75072013-09-02 Martin Jambor <mjambor@suse.cz>
7508
7509 PR ipa/58106
7510 * ipa-prop.c (ipa_edge_duplication_hook): Always put new rdesc to the
7511 linked list. When finding the correct duplicate, also consider also
7512 the caller in additon to its inlined_to node.
7513
91bd4114
JG
75142013-09-02 James Greenhalgh <james.greenhalgh@arm.com>
7515
7516 * config/aarch64/aarch64-simd-builtins.def
7517 (dup_lane_scalar): Remove.
7518 * config/aarch64/aarch64-simd.md
7519 (aarch64_simd_dup): Add 'w->w' alternative.
7520 (aarch64_dup_lane<mode>): Allow for VALL.
7521 (aarch64_dup_lane_scalar<mode>): Remove.
7522 (aarch64_dup_lane_<vswap_width_name><mode>): New.
7523 (aarch64_get_lane_signed<mode>): Add w->w altenative.
7524 (aarch64_get_lane_unsigned<mode>): Likewise.
7525 (aarch64_get_lane<mode>): Likewise.
7526 * config/aarch64/aarch64.c (aarch64_evpc_dup): New.
7527 (aarch64_expand_vec_perm_const_1): Use aarch64_evpc_dup.
7528 * config/aarch64/iterators.md (VSWAP_WIDTH): New.
7529 (VCON): Change container of V2SF.
7530 (vswap_width_name): Likewise.
7531 * config/aarch64/arm_neon.h
7532 (__aarch64_vdup_lane_any): New.
7533 (__aarch64_vdup<q>_lane<q>_<fpsu><8,16,32,64>): Likewise.
7534 (vdup<q>_n_<psuf><8,16,32,64>): Convert to C implementation.
7535 (vdup<q>_lane<q>_<fpsu><8,16,32,64>): Likewise.
7536
d617d2d8
EB
75372013-09-02 Eric Botcazou <ebotcazou@adacore.com>
7538
7539 PR middle-end/56382
7540 * expr.c (emit_move_complex): Do not move complex FP values as parts if
7541 the source or the destination is a single hard register.
7542
63fdb7be
RB
75432013-09-02 Richard Biener <rguenther@suse.de>
7544
7545 PR middle-end/57511
7546 * tree-scalar-evolution.c (instantiate_scev_name): Allow
7547 non-linear SCEVs.
7548
78de2333
RB
75492013-09-02 Richard Biener <rguenther@suse.de>
7550
7551 * tree-affine.c (add_elt_to_tree): Avoid converting all pointer
7552 arithmetic to sizetype.
7553
85ff4ec6
BC
75542013-09-02 Bin Cheng <bin.cheng@arm.com>
7555
7556 * tree-ssa-loop-ivopts.c (set_autoinc_for_original_candidates):
7557 Find auto-increment use both before and after candidate.
7558
576016fe
MP
75592013-09-02 Marek Polacek <polacek@redhat.com>
7560
7561 * Makefile.in (ubsan.o): Add $(TM_P_H) dependency.
7562
08f835dc
JH
75632013-09-01 Jan Hubicka <jh@suse.cz>
7564
7565 * Makefile.in: Add ipa-profile.o
7566 (ipa.o, ipa-devrit.o, ipa-inline-analysis.o): Adjust dependencies.
7567 * cgraph.c (struct cgraph_propagate_frequency_data,
7568 cgraph_propagate_frequency_1, cgraph_propagate_frequency): Move to
7569 ipa-profile.c; replace cgraph_ by ipa_ prefix.
7570 * cgraph.h (cgraph_propagate_frequency): Remove.
f43245d1
UB
7571 * ipa-inline-analysis.c: Include ipa-utils.h;
7572 drop duplicated cfgloop.h.
08f835dc
JH
7573 (inline_update_callee_summaries): Update.
7574 * ipa-profile.c: New file.
7575 * ipa-utils.h (ipa_propagate_frequency): Declare.
7576 * ipa.c: Do not include pointer-set.h, hash-table.h, lto-streamer.h,
f43245d1 7577 data-streamer.h, value-prof.h.
08f835dc
JH
7578 (symtab_remove_unreachable_nodes): Update profile.
7579 (struct histogram_entry, histogram, histogram_pool, histogram_hash,
7580 account_time_size, cmp_counts, dump_histogram,
7581 ipa_profile_generate_summary, ipa_profile_write_summary,
7582 ipa_profile_read_summary, ipa_profile, gate_ipa_profile,
7583 pass_data_ipa_profile, pass_ipa_profile, make_pass_ipa_profile):
f43245d1 7584 Move to ipa-profile.c.
08f835dc 7585
cec8583c
JDA
75862013-09-01 John David Anglin <danglin@gcc.gnu.org>
7587
7588 * config/pa/pa.md: Allow "const 0" operand 1 in "scc" insns.
7589
bbc9396b
JH
75902013-09-01 Jan Hubicka <jh@suse.cz>
7591
7592 * common.opt (fdevirtualize-speculatively): New function.
7593 * invoke.texi (fdevirtualize-speculatively): Document.
7594 * ipa-devirt.c: Include ipa-inline.h
7595 (likely_target_p): New function.
7596 (ipa_devirt): New function.
7597 (gate_ipa_devirt): New function.
7598 (pass_data_ipa_devirt): New static var.
7599 (pass_ipa_devirt): Likewise.
7600 (make_pass_ipa_devirt): New function.
7601 * opts.c (default_options): Add OPT_fdevirtualize_speculatively.
7602 (common_handle_option): Disable devirtualization when
7603 value range profiling is available.
7604 * passes.def (pass_ipa_devirt): Add.
7605 * timever.def (TV_IPA_DEVIRT): New timevar.
f43245d1 7606 * tree-pass.h (make_pass_ipa_devirt):
bbc9396b 7607
0cea211e
IS
76082013-09-01 Iain Sandoe <iain@codesourcery.com>
7609
7610 * config/darwin.h (LINK_COMMAND_SPEC_A): Revise sanitizer specs to
7611 include sanitize(undefined).
7612
5e351e96
DN
76132013-08-31 Diego Novillo <dnovillo@google.com>
7614
7615 * Makefile.in (TREE_CORE_H): Define.
7616 (TREE_H): Use.
7617 (GTFILES): Add tree-core.h.
7618 * builtins.c (built_in_class_names): Use BUILT_IN_LAST to
7619 size the array.
7620 * tree-core.h: New file.
7621 Move all data structures, enum, typedefs, global
7622 declarations and constants from ...
7623 * tree.h: ... here.
7624
63bf9a90
JH
76252013-08-31 Jan Hubicka <jh@suse.cz>
7626
7627 * bulitins.c (expand_builtin): Do not early exit for gcov
7628 instrumented functions.
7629
5c0abd6a
MP
76302013-08-31 Marek Polacek <polacek@redhat.com>
7631
7632 * ubsan.c: Include tm_p.h.
7633
4843f032
JH
76342013-08-31 Jan Hubicka <jh@suse.cz>
7635
8356c89c
JH
7636 * gimple-streamer-in.c (input_gimple_stmt): Silence parameter unused
7637 warning.
7638
4843f032
JH
7639 * cgraph.c (cgraph_get_body): Update call of lto_input_function_body.
7640 * gimple-streamer-in.c (input_gimple_stmt): Move sanity check to ...
5e581212 7641 * tree-cfg.c (verify_gimple_label): ... here.
4843f032
JH
7642 * ipa-utils.c: Include lto-streamer.h, ipa-inline.h
7643 (ipa_merge_profiles): New function.
7644 * lto-streamer-in.c (lto_read_body): Take node instead of fn_decl.
7645 (lto_input_function_body): Likewise.
5e581212
JH
7646 * ipa-utils.h (ipa_merge_profiles): Declare.
7647 * lto-streamer.h (lto_input_function_body): Update prototype.
7648 (emit_label_in_global_context_p): Remove.
7649 * lto-symtab.c: Include ipa-utils.h
7650 (lto_cgraph_replace_node): Use ipa_merge_profiles.
4843f032 7651
57292ce9
JH
76522013-08-31 Jan Hubicka <jh@suse.cz>
7653
7654 * cgraph.c (cgraph_speculative_call_info): Fix ref lookup
7655
b9cbfeeb
JH
76562013-08-31 Jan Hubicka <jh@suse.cz>
7657
7658 * basic-block.h (apply_scale): Make scale parmeter gcov_type.
7659
41dedebd
UB
76602013-08-31 Uros Bizjak <ubizjak@gmail.com>
7661
7662 * config/alpha/alpha.c (alpha_emit_conditional_move): Update
7663 "cmp" RTX before signed_comparison_operator check to account
7664 for "code" changes.
7665
06d65050
JH
76662013-08-30 Jan Hubicka <jh@suse.cz>
7667
41dedebd 7668 * ipa-prop.c (ipa_set_jf_known_type): Check that we add only records.
06d65050
JH
7669 (detect_type_change_1): Rename to ...
7670 (detect_type_change): ... this one; early return on non-polymorphic
7671 types.
41dedebd 7672 (detect_type_change_ssa): Add comp_type parameter; update
06d65050
JH
7673 use of detect_type_change.
7674 (compute_complex_assign_jump_func): Add param_type parameter;
7675 update use of detect_type_change_ssa.
7676 (compute_complex_ancestor_jump_func): Likewise.
7677 (ipa_get_callee_param_type): New function.
7678 (ipa_compute_jump_functions_for_edge): Compute parameter type;
7679 update calls to the jump function computation functions.
7680
600b5b1d
TJ
76812013-08-30 Teresa Johnson <tejohnson@google.com>
7682 Steven Bosscher <steven@gcc.gnu.org>
7683
7684 * cfgrtl.c (fixup_new_cold_bb): New routine.
7685 (commit_edge_insertions): Invoke fixup_partitions.
7686 (find_partition_fixes): New routine.
7687 (fixup_partitions): Ditto.
7688 (verify_hot_cold_block_grouping): Update comments.
7689 (rtl_verify_edges): Invoke find_partition_fixes.
7690 (rtl_verify_bb_pointers): Update comments.
7691 (rtl_verify_bb_layout): Ditto.
7692 * basic-block.h (probably_never_executed_edge_p): Declare.
7693 (fixup_partitions): Ditto.
7694 * cfgcleanup.c (try_optimize_cfg): Invoke fixup_partitions.
7695 * bb-reorder.c (sanitize_hot_paths): New function.
7696 (find_rarely_executed_basic_blocks_and_crossing_edges): Invoke
7697 sanitize_hot_paths.
7698 * predict.c (probably_never_executed_edge_p): New routine.
7699 * cfg.c (check_bb_profile): Add partition insanity warnings.
7700
0a6ea5c9
MI
77012013-08-30 Meador Inge <meadori@codesourcery.com>
7702
7703 * tree-vrp.c (check_array_ref): Bail out on zero-length arrays.
7704
de5a5fa1
MP
77052013-08-30 Marek Polacek <polacek@redhat.com>
7706
7707 * Makefile.in (ubsan.o): Add.
7708 (c-family/c-ubsan.o): Add.
7709 (builtins.o): Add ubsan.h dependency.
7710 * ubsan.h: New file.
7711 * ubsan.c: New file.
7712 * common.opt: Add -fsanitize=undefined option.
7713 (flag_sanitize): Add variable.
7714 (fsanitize=): Add option. Add Driver.
7715 (fsanitize=thread): Remove option.
7716 (fsanitize=address): Likewise.
7717 (static-libubsan): New option.
7718 * doc/invoke.texi: Document the new flag and -static-libubsan.
7719 * sanitizer.def (DEF_SANITIZER_BUILTIN): Define.
7720 (BUILT_IN_UBSAN_HANDLE_BUILTIN_UNREACHABLE): Define.
7721 * builtin-attrs.def (ATTR_COLD): Define.
7722 (ATTR_COLD_NOTHROW_LEAF_LIST): Define.
7723 * builtins.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW,
7724 BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS): Define.
7725 * flag-types.h (sanitize_code): New enum.
7726 * opts.c (common_handle_option): Parse command line arguments
7727 of -fsanitize=. Add -fsanitize=unreachable option.
7728 * varasm.c (get_variable_section): Adjust.
7729 (assemble_noswitch_variable): Likewise.
7730 (assemble_variable): Likewise.
7731 (output_constant_def_contents): Likewise.
7732 (categorize_decl_for_section): Likewise.
7733 (place_block_symbol): Likewise.
7734 (output_object_block): Likewise.
7735 * builtins.def: Likewise.
7736 * toplev.c (compile_file): Likewise.
7737 (process_options): Likewise.
7738 * cppbuiltin.c: Likewise.
7739 * tsan.c (tsan_pass): Likewise.
7740 (tsan_gate): Likewise.
7741 (tsan_gate_O0): Likewise.
7742 * cfgexpand.c (partition_stack_vars): Likewise.
7743 (expand_stack_vars): Likewise.
7744 (defer_stack_allocation): Likewise.
7745 (expand_used_vars): Likewise.
7746 * cfgcleanup.c (old_insns_match_p): Likewise.
7747 * asan.c (asan_finish_file): Likewise.
7748 (asan_instrument): Likewise.
7749 (gate_asan): Likewise.
7750 (initialize_sanitizer_builtins): Build BT_FN_VOID_PTR_PTR_PTR.
7751 (ATTR_COLD_NOTHROW_LEAF_LIST): Define.
7752 (asan_global_struct): Use pointer_sized_int_node instead
7753 calling build_nonstandard_integer_type.
7754 (initialize_sanitizer_builtins): Likewise.
7755 (asan_finish_file): Likewise.
7756 * gcc.c: Document %{%:function(args):X}.
7757 (static_spec_functions): Add sanitize.
7758 (handle_spec_function): Add retval_nonnull argument and if non-NULL,
7759 store funcval != NULL there.
7760 (do_spec_1): Adjust handle_spec_function caller.
7761 (handle_braces): Allow %:function(args) as condition.
7762 (sanitize_spec_function): New function.
7763 (ADD_STATIC_LIBUBSAN_LIBS): Define.
7764 (LIBUBSAN_SPEC): Likewise.
7765 (LIBUBSAN_EARLY_SPEC): Likewise.
7766 (SANITIZER_SPEC): Handle libubsan.
7767 (SANITIZER_EARLY_SPEC): Likewise.
7768 * config/darwin.h (LINK_COMMAND_SPEC_A): Use %:sanitize(address)
7769 instead of fsanitize=address.
7770 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Use %:sanitize(address)
7771 instead of fsanitize=address*.
7772 * builtins.c: Include ubsan.h.
7773 (fold_builtin_0): Instrument __builtin_unreachable.
7774 * config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Use flag_sanitize
7775 instead of flag_asan.
7776 * tree.h (enum tree_index): Add TI_POINTER_SIZED_TYPE.
7777 (pointer_sized_int_node): Define.
41dedebd 7778 * tree.c (build_common_tree_nodes): Initialize pointer_sized_int_node.
de5a5fa1 7779
f07f30cf
MS
77802013-08-30 Mike Stump <mikestump@comcast.net>
7781
7782 * doc/install.texi (Prerequisites): Note regression in Tcl 8.6
7783 with RE patterns.
7784
8a41354f
JH
77852013-08-29 Jan Hubicka <jh@suse.cz>
7786
7787 * cgraph.c (cgraph_function_body_availability): Handle weakref
7788 correctly.
7789 * passes.def: Remove pass_fixup_cfg.
7790 * ipa-inline.c (ipa_inline): When not optimizing, do not inline;
7791 track when we need to remove functions.
7792 (gate_ipa_inline): Execute inlining always; add comment why.
7793 (pass_data_ipa_inline): Remove TODO_remove_functions.
7794 * ipa-inline-analysis.c (inline_generate_summary): When not optimizing
7795 do not produce summaries.
7796 * symtab.c (change_decl_assembler_name): Handle renaming of weakrefs.
7797 (symtab_nonoverwritable_alias): Assert we are not called on weakref.
7798 * varpool.c (cgraph_variable_initializer_availability): Fix weakrefs,
7799 constant pool and vtable.
7800
dc8d7a0f
TB
78012013-08-30 Tejas Belagod <tejas.belagod@arm.com>
7802
41dedebd
UB
7803 * config/aarch64/arm_neon.h (__AARCH64_UINT64_C, __AARCH64_INT64_C):
7804 New arm_neon.h's internal macros to specify 64-bit constants.
7805 Avoid using stdint.h's macros.
dc8d7a0f 7806
ac7eacd2
JR
78072013-08-30 Joern Rennecke <joern.rennecke@embecosm.com>
7808
7809 * recog.c (verify_changes): Verify that changes[i].old is non-zero
7810 before applying REG_P.
7811
8b29fd4e
JJ
78122013-08-30 Jakub Jelinek <jakub@redhat.com>
7813
7814 PR tree-optimization/58277
7815 * tree-ssa-strlen.c (strlen_enter_block): If do_invalidate gave up
7816 after seeing too many stmts with vdef in between dombb and current
7817 bb, invalidate everything.
7818
26d75703
RB
78192013-08-30 Richard Biener <rguenther@suse.de>
7820
7821 * fold-const.c (fold_single_bit_test): Fix overflow test.
7822
f7e088e7
EB
78232013-08-30 Eric Botcazou <ebotcazou@adacore.com>
7824
7825 * function.c (assign_parm_setup_reg): For a parameter passed by pointer
7826 and which can live in a register, always retrieve the value on entry.
7827 * var-tracking.c (add_stores): Treat the copy on entry for a parameter
7828 passed by invisible reference specially.
7829 (emit_notes_in_bb) <MO_VAL_USE>: Emit notes before the instruction.
7830 (vt_add_function_parameter): Correctly deal with a parameter passed by
7831 invisible reference.
7832
78332013-08-30 Jan Hubicka <jh@suse.cz>
47500756
JH
7834
7835 * tree.c (set_call_expr_flags): Fix handling of TM_PURE.
7836
6e8dad05
RB
78372013-08-30 Richard Biener <rguenther@suse.de>
7838
7839 PR tree-optimization/58228
7840 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Do not
7841 allow invariant loads in nested loop vectorization.
7842
062ef2c8
RB
78432013-08-30 Richard Biener <rguenther@suse.de>
7844
7845 PR tree-optimization/58223
7846 * tree-loop-distribution.c (has_anti_dependence): Rename to ...
7847 (has_anti_or_output_dependence): ... this and adjust to also
7848 look for output dependences.
7849 (mark_nodes_having_upstream_mem_writes): Adjust.
7850 (rdg_flag_uses): Likewise.
7851
7a764c60
RB
78522013-08-30 Richard Biener <rguenther@suse.de>
7853
7854 PR tree-optimization/58010
7855 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
7856 assert that we have a loop-closed PHI.
7857
82e9d642
JH
78582013-08-29 Jan Hubicka <jh@suse.cz>
7859
7860 * lto-symtab.c (lto_cgraph_replace_node): Free decl_in_state.
7861 * cgraph.c (cgraph_release_function_body): Free decl_in_state.
7862 * lto-section-in.c (lto_free_function_in_decl_state): New function.
7863 (lto_free_function_in_decl_state_for_node): New function.
7864
9cc1fb4b
XDL
78652013-08-29 Xinliang David Li <davidxl@google.com>
7866
41dedebd 7867 * loop-unroll.c (report_unroll_peel): Minor message change.
9cc1fb4b
XDL
7868 * tree-vect-loop-manip.c (vect_do_peeling_for_alignment):
7869 Emit alignment peeling message with default -fopt-info.
7870 (vect_loop_versioning): Emit loop version info message.
41dedebd 7871 * tree-vectorizer.c (vectorize_loops): Minor message change.
9cc1fb4b
XDL
7872 (execute_vect_slp): Ditto.
7873
440a5082
EB
78742013-08-29 Eric Botcazou <ebotcazou@adacore.com>
7875
7876 * cgraphclones.c (cgraph_create_virtual_clone): Compute the DECL_NAME
7877 of the clone from the DECL_NAME of the original function.
7878
3fa3690d
OE
78792013-08-29 Oleg Endo <olegendo@gcc.gnu.org>
7880
7881 * passes.c (register_pass): Add overload.
7882 * tree-pass.h (register_pass): Forward declare it. Add comment.
7883
0170f33c
JH
78842013-08-29 Jan Hubicka <jh@suse.cz>
7885
41dedebd
UB
7886 * lto-streamer-out.c (hash_tree): Stream DECL_FINAL_P,
7887 DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P and TYPE_FINAL_P.
7888 * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Stream
7889 DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
0170f33c
JH
7890 (unpack_ts_type_common_value_fields): Stream TYPE_FINAL_P.
7891 * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields):
41dedebd 7892 Add DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
0170f33c
JH
7893 (pack_ts_type_common_value_fields): Add TYPE_FINAL_P.
7894
103ff0d6
TJ
78952013-08-29 Teresa Johnson <tejohnson@google.com>
7896
7897 * dumpfile.c (dump_loc): Output column number.
7898 * dumpfile.h (OPTGROUP_OTHER): Add and enable under OPTGROUP_ALL.
7899 * doc/invoke.texi: Document optall -fopt-info flag.
7900 * profile.c (read_profile_edge_counts): Use new dump framework.
7901 (compute_branch_probabilities): Ditto.
7902 * passes.c (pass_manager::register_one_dump_file): Use OPTGROUP_OTHER
7903 when pass not in any opt group.
7904 * pass_manager.h (pass_manager::get_pass_profile): New method.
7905 * value-prof.c (check_counter): Use new dump framework.
7906 (check_ic_target): Ditto.
7907 * coverage.c (get_coverage_counts): Ditto.
7908 (coverage_init): Setup new dump framework.
7909
301bbc16
RB
79102013-08-29 Richard Biener <rguenther@suse.de>
7911
7912 PR tree-optimization/58246
7913 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Properly
7914 handle the dominance check inside a basic-block.
7915
1b275000
RB
79162013-08-29 Richard Biener <rguenther@suse.de>
7917
7918 PR middle-end/57287
7919 * tree-ssa-copy.c (may_propagate_copy): Allow propagating
7920 of default defs that appear in abnormal PHI nodes.
7921
6b1184ba
RB
79222013-08-29 Richard Biener <rguenther@suse.de>
7923
7924 PR tree-optimization/57685
7925 * tree-vrp.c (register_edge_assert_for_1): Recurse only for
7926 single-use operands to avoid exponential complexity.
7927
1b08b734
DC
79282013-08-28 Dehao Chen <dehao@google.com>
7929
7930 * ipa-inline.c (edge_badness): Fix integer underflow.
7931
48a3fa69
UB
79322013-08-28 Uros Bizjak <ubizjak@gmail.com>
7933
7934 * gtm-builtins.def (_ITM_free): Declare leaf.
7935
215f73e6
JJ
79362013-08-28 Jakub Jelinek <jakub@redhat.com>
7937
7938 PR target/58067
7939 * config/i386/i386.md (*tls_global_dynamic_64_largepic): New insn.
7940 (*tls_local_dynamic_base_64_largepic): Likewise.
7941 (tls_global_dynamic_64_<mode>, tls_local_dynamic_base_64_<mode>):
7942 Remove predicate from call operand.
7943 * config/i386/i386.c (ix86_tls_get_addr): For -mcmodel=large -fpic
7944 return sum of pic_offset_table_rtx and UNSPEC_PLTOFF of the symbol.
7945
34554d1a
JL
79462013-08-28 Jeff Law <law@redhat.com>
7947
7948 * tree-ssa-threadedge.c (thread_around_empty_block): Remove
7949 checks for the number of predecessors and successors allowed.
7950 * tree-ssa-threadupdate.c (mark_threaded_blocks): Ignore requests
7951 which require copying a joiner block if there is a request which
7952 is a subpath that requires no joiner block copying.
7953
c01c111b
JH
79542013-08-28 Jan Hubicka <jh@suse.cz>
7955
7956 * lto-streamer-out.c (DFS_write_tree_body): Drop
7957 BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX and BINFO_VPTR_INDEX.
7958 (hash_tree): Do not hash DECL_DEFER_OUTPUT, BINFO_INHERITANCE_CHAIN,
7959 BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, DECL_IN_TEXT_SECTION.
7960 * tree-streamer-in.c (unpack_ts_decl_common_value_fields):
7961 Do not read DECL_ERROR_ISSUED.
7962 (unpack_ts_decl_with_vis_value_fields): Do not read
7963 DECL_DEFER_OUTPUT.
48a3fa69
UB
7964 (lto_input_ts_binfo_tree_pointers): Do not read
7965 BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX
c01c111b
JH
7966 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Do not
7967 write DECL_ERROR_ISSUED..
7968 (pack_ts_decl_with_vis_value_fields): Do not write
7969 DECL_DEFER_OUTPUT.
7970 (write_ts_binfo_tree_pointers): Do not read BINFO_INHERITANCE_CHAIN,
48a3fa69 7971 BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX.
c01c111b
JH
7972 * print-tree.c (print_node): Do not print DECL_ERROR_ISSUED.
7973 * tree.h (tree_decl_common): Update comment.
7974 (DECL_ERROR_ISSUED): Remove.
7975
4b128ece
JJ
79762013-08-28 Jakub Jelinek <jakub@redhat.com>
7977
7978 PR middle-end/58257
7979 * omp-low.c (copy_var_decl): Copy over TREE_NO_WARNING flag.
7980
12211b99 79812013-08-28 Jan Hubicka <jh@suse.cz>
9e57846a
JH
7982
7983 * builtins.def (free): Declare leaf.
7984
8dce4dbc
DM
79852013-08-27 David Malcolm <dmalcolm@redhat.com>
7986
7987 * gdbhooks.py: New.
7988 * configure.ac (gdbinit.in): Add import of gcc/gdbhooks.py.
7989 * configure: Regenerate.
7990
b8f6e610
MJ
79912013-08-27 Martin Jambor <mjambor@suse.cz>
7992
7993 * ipa-prop.h (ipa_pass_through_data): New field type_preserved.
7994 (ipa_ancestor_jf_data): Likewise.
7995 (ipa_get_jf_pass_through_agg_preserved): Fix comment typo.
7996 (ipa_get_jf_pass_through_type_preserved): New function.
7997 (ipa_get_jf_ancestor_agg_preserved): Fix comment typo.
7998 (ipa_get_jf_ancestor_type_preserved): New function.
12211b99 7999 * ipa-cp.c (ipa_get_jf_pass_through_result): Honor type_preserved flag.
b8f6e610
MJ
8000 (ipa_get_jf_ancestor_result): Likewise.
8001 (propagate_vals_accross_pass_through): Use
8002 ipa_get_jf_pass_through_result to do all the value mappings.
8003 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Dump the
8004 type_preserved flag.
8005 (ipa_set_jf_cst_copy): New function.
8006 (ipa_set_jf_simple_pass_through): Set the type_preserved flag.
8007 (ipa_set_jf_arith_pass_through): Likewise.
8008 (ipa_set_ancestor_jf): Likewise.
8009 (compute_complex_assign_jump_func): Set type_preserved instead of
8010 punting.
8011 (ipa_compute_jump_functions_for_edge): Likewise.
8012 (combine_known_type_and_ancestor_jfs): Honor type_preserved.
8013 (update_jump_functions_after_inlining): Update type_preserved.
12211b99 8014 Explicitely create jump functions when combining one with pass_through.
b8f6e610
MJ
8015 (ipa_write_jump_function): Stream the type_preserved flags.
8016 (ipa_read_jump_function): Likewise.
8017
74bf76ed
JJ
80182013-08-27 Jakub Jelinek <jakub@redhat.com>
8019 Aldy Hernandez <aldyh@redhat.com>
8020
8021 * Makefile.in (omp-low.o): Depend on $(TARGET_H).
8022 * cfgloop.h (struct loop): Add safelen, force_vect, simduid.
8023 * function.h (struct function): Add has_force_vect_loops and
8024 has_simduid_loops.
12211b99 8025 * gimple-pretty-print.c (dump_gimple_omp_for): Handle GF_OMP_FOR_KIND*.
74bf76ed
JJ
8026 * gimple.c (gimple_build_omp_critical): Add KIND argument and
8027 handle it.
8028 * gimple.def: Update CLAUSES comments.
8029 * gimple.h (enum gf_mask): Add GF_OMP_FOR_KIND_{FOR,SIMD}.
8030 (gimple_build_omp_for): Add argument to prototype.
8031 (gimple_omp_for_kind): New.
8032 (gimple_omp_for_set_kind): New.
8033 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_LINEAR to
8034 GOVD_DATA_SHARE_CLASS.
8035 (enum omp_region_type): Add ORT_SIMD.
8036 (gimple_add_tmp_var): Handle ORT_SIMD.
8037 (gimplify_var_or_parm_decl): Same.
8038 (is_gimple_stmt): Same.
8039 (omp_firstprivatize_variable): Same.
8040 (omp_add_variable): Only use splay_tree_insert if lookup failed.
8041 (omp_notice_variable): Handle ORT_SIMD.
12211b99 8042 (omp_is_private): Add SIMD argument and handle it as well as ORT_SIMD.
74bf76ed
JJ
8043 (omp_check_private): Handle ORT_SIMD.
8044 (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_LINEAR and
8045 OMP_CLAUSE_SAFELEN.
8046 (gimplify_adjust_omp_clauses_1): Handle GOVD_LINEAR.
8047 Handle OMP_CLAUSE_LASTPRIVATE.
8048 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_LINEAR and
8049 OMP_CLAUSE_SAFELEN.
8050 (gimplify_omp_for): Handle OMP_SIMD and OMP_CLAUSE_LINEAR.
8051 (gimplify_expr): Handle OMP_SIMD.
8052 * internal-fn.c (expand_GOMP_SIMD_LANE): New.
8053 (expand_GOMP_SIMD_VF): New.
8054 (expand_GOMP_SIMD_LAST_LANE): New.
8055 * internal-fn.def (GOMP_SIMD_LANE): New.
8056 (GOMP_SIMD_VF): New.
8057 (GOMP_SIMD_LAST_LANE): New.
8058 * omp-low.c: Include target.h.
8059 (extract_omp_for_data): Handle OMP_SIMD, OMP_CLAUSE_LINEAR,
8060 OMP_CLAUSE_SAFELEN.
8061 (check_omp_nesting_restrictions): Same.
8062 (omp_max_vf): New.
8063 (lower_rec_simd_input_clauses): New.
8064 (lower_rec_input_clauses): Handle OMP_SIMD, GF_OMP_FOR_KIND_SIMD,
8065 OMP_CLAUSE_LINEAR.
8066 (lower_lastprivate_clauses): Handle OMP_CLAUSE_LINEAR,
8067 GF_OMP_FOR_KIND_SIMD, OMP_SIMD.
8068 (expand_omp_build_assign): New.
8069 (expand_omp_for_init_counts): New.
8070 (expand_omp_for_init_vars): New.
8071 (extract_omp_for_update_vars): New.
8072 (expand_omp_for_generic): Use expand_omp_for_{init,update}_vars
8073 and rewrite accordingly.
8074 (expand_omp_simd): New.
8075 (expand_omp_for): Use expand_omp_simd.
8076 (lower_omp_for_lastprivate): Unshare vinit when appropriate.
8077 (lower_omp_for): Do not lower the body.
8078 * tree-data-ref (get_references_in_stmt): Allow IFN_GOMP_SIMD_LANE
8079 in their own loops.
8080 * tree-flow.h (find_omp_clause): Remove prototype.
12211b99
UB
8081 * tree-if-conv.c (main_tree_if_conversion): Run if doing if conversion,
8082 forcing vectorization of the loop, or if flag_tree_vectorize.
74bf76ed
JJ
8083 (gate_tree_if_conversion): Similarly.
8084 * tree-inline.c (remap_gimple_stmt): Pass for kind argument to
8085 gimple_build_omp_for.
8086 (copy_cfg_body): set has_force_vect_loops and has_simduid_loops.
8087 * tree-parloops (create_parallel_loop): Pass kind argument to
8088 gimple_build_omp_for.
8089 * tree-pretty-print.c (dump_omp_clause): Add cases for
8090 OMP_CLAUSE_UNIFORM, OMP_CLAUSE_LINEAR, OMP_CLAUSE_SAFELEN,
8091 OMP_CLAUSE__SIMDUID_.
8092 (dump_generic_node): Handle OMP_SIMD.
8093 * tree-ssa-ccp.c (likely_value): Handle IFN_GOMP_SIMD*.
8094 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Do not
8095 unroll OMP_SIMD loops here.
12211b99 8096 * tree-ssa-loop.c (gate_tree_vectorize): Run if has_force_vect_loops.
74bf76ed 8097 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Handle
12211b99 8098 loop->safelen.
74bf76ed
JJ
8099 (vect_analyze_data_refs): Handle simd loops.
8100 * tree-vect-loop.c (vectorizable_live_operation): Handle
8101 IFN_GOMP_SIMD*.
12211b99 8102 * tree-vect-stmts.c (vectorizable_call): Handle IFN_GOMP_SIMD_LANE.
74bf76ed
JJ
8103 (vectorizable_store): Handle STMT_VINFO_SIMD_LANE_ACCESS_P.
8104 (vectorizable_load): Same.
12211b99 8105 * tree-vectorizer.c: Include hash-table.h and tree-ssa-propagate.h.
74bf76ed
JJ
8106 (struct simduid_to_vf): New.
8107 (simduid_to_vf::hash): New.
8108 (simduid_to-vf::equal): New.
8109 (struct simd_array_to_simduid): New.
8110 (simd_array_to_simduid::hash): New.
8111 (simd_array_to_simduid::equal): New.
8112 (adjust_simduid_builtins): New.
8113 (struct note_simd_array_uses_struct): New.
8114 (note_simd_array_uses_cb): New.
8115 (note_simd_array_uses): New.
8116 (vectorize_loops): Handle simd hints and adjust simd builtins
8117 accordingly.
8118 * tree-vectorizer.h (struct _stmt_vec_info): Add
8119 simd_lane_access_p field.
8120 (STMT_VINFO_SIMD_LANE_ACCESS_P): New macro.
8121 * tree.c (omp_clause_num_ops): Add entries for OMP_CLAUSE_LINEAR,
8122 OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_UNIFORM.
8123 (omp_clause_code_name): Same.
8124 (walk_tree_1): Handle OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN,
8125 OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_LINEAR.
8126 * tree.def (OMP_SIMD): New entry.
12211b99
UB
8127 * tree.h (enum omp_clause_code): Add entries for OMP_CLAUSE_LINEAR,
8128 OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_.
74bf76ed
JJ
8129 (OMP_CLAUSE_DECL): Adjust range for new clauses.
8130 (OMP_CLAUSE_LINEAR_NO_COPYIN): New.
8131 (OMP_CLAUSE_LINEAR_NO_COPYOUT): New.
8132 (OMP_CLAUSE_LINEAR_STEP): New.
8133 (OMP_CLAUSE_SAFELEN_EXPR): New.
8134 (OMP_CLAUSE__SIMDUID__DECL): New.
8135 (find_omp_clause): New prototype.
8136
d0cf4e84
L
81372013-08-27 H.J. Lu <hongjiu.lu@intel.com>
8138
8139 * config/i386/driver-i386.c (host_detect_local_cpu): Update
8140 Haswell processor detection.
8141
992592ec
CW
81422013-08-27 Christian Widmer <shadow@umbrox.de>
8143
8144 PR target/57927
8145 * config/i386/driver-i386.c (host_detect_local_cpu): Add detection
8146 of Ivy Bridge and Haswell processors. Assume core-avx2 for unknown
8147 AVX2 capable processors.
8148
9116eb22
TB
81492013-08-27 Tejas Belagod <tejas.belagod@arm.com>
8150
8151 * config/aarch64/arm_neon.h: Replace all inline asm implementations
8152 of vget_low_* with implementations in terms of other intrinsics.
8153
1c5abb53
MG
81542013-08-27 Marc Glisse <marc.glisse@inria.fr>
8155
8156 PR middle-end/57219
8157 * doc/extend.texi (__builtin_isinf_sign): Restrict the return
8158 values to -1, 0 and 1.
8159
2e100703
VP
81602013-08-27 Vidya Praveen <vidyapraveen@arm.com>
8161
8162 * config/aarch64/aarch64.md (unspec): Add UNSPEC_SISD_SSHL,
8163 UNSPEC_SISD_USHL, UNSPEC_USHL_2S, UNSPEC_SSHL_2S, UNSPEC_SISD_NEG.
8164 (<optab><mode>3_insn): Remove.
8165 (aarch64_ashl_sisd_or_int_<mode>3): New Pattern.
8166 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
8167 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
8168 (define_split for aarch64_lshr_sisd_or_int_di3): Likewise.
8169 (define_split for aarch64_lshr_sisd_or_int_si3): Likewise.
8170 (define_split for aarch64_ashr_sisd_or_int_di3): Likewise.
8171 (define_split for aarch64_ashr_sisd_or_int_si3): Likewise.
8172 (aarch64_sisd_ushl, aarch64_sisd_sshl): Likewise.
8173 (aarch64_ushl_2s, aarch64_sshl_2s, aarch64_sisd_neg_qi): Likewise.
8174 (ror<mode>3_insn): Likewise.
8175 * config/aarch64/predicates.md (aarch64_simd_register): New.
8176
4ded8276
RB
81772013-08-27 Richard Biener <rguenther@suse.de>
8178
8179 PR tree-optimization/57521
8180 * tree-if-conv.c (if_convertible_bb_p): Verify that at least
8181 one edge is non-critical.
8182 (find_phi_replacement_condition): Make sure to use a non-critical
8183 edge. Cleanup and remove old bug workarounds.
8184 (bb_postdominates_preds): Remove.
8185 (if_convertible_loop_p_1): Do not compute post-dominators.
8186 (combine_blocks): Do not free post-dominators.
8187 (main_tree_if_conversion): Likewise.
8188 (pass_data_if_conversion): Add TODO_verify_ssa.
8189
5aa11061
DD
81902013-08-27 DJ Delorie <dj@redhat.com>
8191
8192 * config/i386/djgpp.h (ASM_DECLARE_FUNCTION_NAME): New.
8193
fd91cfe3
YZ
81942013-08-27 Yufeng Zhang <yufeng.zhang@arm.com>
8195
8196 * function.c (assign_parm_find_data_types): Set passed_mode and
8197 nominal_mode to the TYPE_MODE of nominal_type for the built
8198 pointer type in case of the struct-pass-by-reference.
8199
907555ce
JR
82002013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
8201
8202 * config/avr/avr-stdint.h (INT16_TYPE): Change default to "int".
8203 (UINT16_TYPE): Change default to "unsigned int".
8204
67518c93
JR
8205 * config/avr/avr.opt (mfract-convert-truncate): New option.
8206 * config/avr/avr.c (avr_out_fract): Unless TARGET_FRACT_CONV_TRUNC
8207 is set, round negative fractional integers according to n1169
8208 when converting to integer types.
8209
d6d989fc
JH
82102013-08-26 Jan Hubicka <jh@suse.cz>
8211
8212 * cgraph.c (cgraph_propagate_frequency): Do not assume that virtual
8213 methods can not be called indirectly when their address is not taken.
8214
2aa3da06
JH
82152013-08-26 Jan Hubicka <jh@suse.cz>
8216
12211b99
UB
8217 * gimple-fold.c (gimple_get_virt_method_for_binfo): Use
8218 ctor_for_folding.
2aa3da06 8219
0987ffe7
JH
82202013-08-26 Jan Hubicka <jh@suse.cz>
8221
8222 * ipa.c (comdat_can_be_unshared_p_1): C++ constructors and destructors
8223 can be unshared.
8224
befe8647
JR
82252013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
8226
8227 * reload.c (find_valid_class): Allow classes that do not include
8228 FIRST_PSEUDO_REGISTER - 1.
8229
a21e735e
JH
82302013-08-26 Jan Hubicka <jh@suse.cz>
8231
8232 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix formatting;
8233 fix edge count/frequency when speculation failed; fix type check
8234 for the direct call.
8235
e067bd43
JH
82362013-08-26 Jan Hubicka <jh@suse.cz>
8237
8238 * ipa-prop.c (ipa_print_node_params): Do not ICE during WPA.
8239
e8aec975
JH
82402013-08-26 Jan Hubicka <jh@suse.cz>
8241
8242 * ipa-inline-transform.c (inline_transform): Be ready for basic block
8243 to be changed by edge redirection.
8244
d0b66480
JH
82452013-08-26 Jan Hubicka <jh@suse.cz>
8246
12211b99
UB
8247 * cgraph.c (cgraph_speculative_call_info): Fix parameter order and
8248 formating; add sanity check.
d0b66480
JH
8249 (cgraph_resolve_speculation): Add FIXME about scaling profiles.
8250 (cgraph_redirect_edge_call_stmt_to_callee): Fix ICE in debug dump.
8251 * ipa-inline.c (heap_edge_removal_hook): Reset node growth cache.
8252 (resolve_noninline_speculation): Update callee keys, too.
8253
0f9aaac7
JH
82542013-08-26 Jan Hubicka <jh@suse.cz>
8255
8256 * tree.h (tree_decl_with_vis): Add cxx_constructor, cxx_destructor.
8257 (DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P): New macros.
8258
4b37444e
JR
82592013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
8260
8261 * config/i386/i386.c (x86_64_elf_select_section): Put ATTRIBUTE_UNUSED
8262 into proper place.
8263
5339fc0c
UB
82642013-08-26 Uros Bizjak <ubizjak@gmail.com>
8265
8266 * config/i386/i386.c (ix86_debug_options): Remove prototype.
8267 (x86_64_elf_select_section): Ditto.
8268 (ix86_handle_tm_regparm_attribute): Remove ATTRIBUTE_UNUSED on used
8269 arguments.
8270 (ix86_pass_by_reference): Ditto.
5339fc0c
UB
8271 (output_set_got): Ditto.
8272 (ix86_unary_operator_ok): Ditto.
8273 (ix86_expand_builtin): Ditto.
8274
d5c3d3ef
JH
82752013-08-23 Jan Hubicka <jh@suse.cz>
8276
5339fc0c 8277 * cgraph.c (cgraph_turn_edge_to_speculative): Fix debug output.
d5c3d3ef 8278
5b1e7435
JH
82792013-08-23 Jan Hubicka <jh@suse.cz>
8280
8281 * tree.h (TYPE_FINAL_P, DECL_FINAL_P): New macros.
8282 (tree_decl_with_vis): Add FINAL field.
8283
ead69dac
JL
82842013-08-23 Jeff Law <law@redhat.com>
8285
8286 * tree-ssa-pre.c (do_regular_insertion): Include the expression in
8287 the debugging dump when the expression is fully redundant.
8288
025311c4
GDR
82892013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
8290
8291 * diagnostic.c (diagnostic_set_caret_max_width): Use pp_buffer.
8292 * gimple-pretty-print.c (gimple_dump_bb_buff): Likewise.
8293 * pretty-print.c (pp_formatted_text_data): Likewise.
8294 (pp_write_text_to_stream): Likewise.
8295 (pp_write_text_as_dot_label_to_stream): Likewise.
8296 (pp_append_r): Likewise.
8297 (pp_format): Likewise.
8298 (pp_flush): Likewise.
8299 (pp_clear_output_area): Likewise.
8300 (pp_append_text): Likewise.
8301 (pp_formatted_text): Likewise.
8302 (pp_remaining_character_count_for_line): Likewise.
8303 (pp_newline): Likewise.
8304 (pp_character): Likewise.
8305 (output_buffer::~output_buffer): Define.
8306 (pretty_printer::~pretty_printer): Destruct output buffer.
8307 * pretty-print.h (output_buffer::~output_buffer): Declare.
8308 (pretty_printer::~pretty_printer): Declare virtual.
8309
0cadbfaa
MG
83102013-08-24 Marc Glisse <marc.glisse@inria.fr>
8311
8312 PR other/57324
8313 * hwint.h (HOST_WIDE_INT_UC, HOST_WIDE_INT_1U, HOST_WIDE_INT_M1,
8314 HOST_WIDE_INT_M1U): New macros.
8315 * fold-const.c (sign_bit_p, build_range_check, fold_unary_loc,
8316 fold_binary_loc, fold_ternary_loc): Use the new macros. Use an
8317 unsigned -1 for lshift.
8318 * cse.c (cse_insn): Likewise.
8319 * double-int.c (rshift_double, lshift_double): Likewise.
8320 * builtins.c (fold_builtin_bitop): Likewise.
8321 * combine.c (force_to_mode): Likewise.
8322 * tree.c (integer_pow2p, tree_log2, tree_floor_log2): Likewise.
8323 * simplify-rtx.c (simplify_const_unary_operation,
8324 simplify_const_binary_operation): Likewise.
8325 * tree-stdarg.c (va_list_counter_bump, va_list_ptr_read,
8326 check_va_list_escapes): Likewise.
8327 * rtlanal.c (nonzero_bits1): Likewise.
8328 * expmed.c (expand_smod_pow2): Likewise.
8329 * tree-ssa-structalias.c (UNKNOWN_OFFSET): Use HOST_WIDE_INT_MIN.
8330
009e5353
JH
83312013-08-23 Jan Hubicka <jh@suse.cz>
8332
8333 * cgraph.c (cgraph_turn_edge_to_speculative): Mark target node
8334 as having address taken.
8335
c4be6568
JH
83362013-08-23 Jan Hubicka <jh@suse.cz>
8337
64cbf23d
JH
8338 * ipa-utils.h (method_class_type): Declare.
8339 * ipa-devirt.c (method_class_type): Export.
8340
c4be6568
JH
8341 * cgraphunit.c (analyze_functions): Do basic devirtualization;
8342 do not walk base classes of anonymous types.
8343
97aba8e9
KK
83442013-08-23 Kaz Kojima <kkojima@gcc.gnu.org>
8345
8346 PR rtl-optimization/58220
8347 PR regression/58221
8348 * final.c (reemit_insn_block_notes): Use NEXT_INSN to
8349 handle SEQUENCE insns properly.
8350
0fc80001
GDR
83512013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
8352
8353 * pretty-print.h (pp_newline_and_flush): Declare. Remove macro
8354 definition.
8355 (pp_newline_and_indent): Likewise.
8356 (pp_separate_with): Likewise.
8357 * pretty-print.c (pp_newline_and_flush): Define.
8358 (pp_newline_and_indent): Likewise.
8359 (pp_separate_with): Likewise.
8360
520a5868
JJ
83612013-08-23 Jakub Jelinek <jakub@redhat.com>
8362
8363 PR target/58218
8364 * config/i386/x86-64.h (TARGET_SECTION_TYPE_FLAGS): Define.
8365 * config/i386/i386.c (x86_64_elf_section_type_flags): New function.
8366
e500c62a
KY
83672013-08-23 Kirill Yukhin <kirill.yukhin@intel.com>
8368
f43245d1
UB
8369 * config/i386/predicates.md (ext_sse_reg_operand): New.
8370 * config/i386/i386.md (*movti_internal): Use
e500c62a
KY
8371 predicate to determine if EVEX is needed.
8372 (*movsi_internal): Ditto.
8373 (*movdf_internal): Ditto.
8374 (*movsf_internal): Ditto.
f43245d1 8375 * config/i386/mmx.md (*mov<mode>_internal): Ditto.
e500c62a 8376
6b00d7dd
JJ
83772013-08-23 Jakub Jelinek <jakub@redhat.com>
8378
8379 PR tree-optimization/58209
8380 * tree-tailcall.c (process_assignment): Handle POINTER_PLUS_EXPR.
8381 (find_tail_calls): Give up for pointer result types if m is non-NULL.
8382 (adjust_return_value_with_ops): For PLUS_EXPR and pointer result type
8383 emit POINTER_PLUS_EXPR.
8384 (create_tailcall_accumulator): For pointer result type accumulate in
8385 sizetype type.
8386
4f2a9f90
PC
83872013-08-22 Paolo Carlini <paolo.carlini@oracle.com>
8388
8389 * configure.ac: Add backslashes missing from the last change.
8390 * configure: Regenerate.
8391
7bf4274e
JH
83922013-08-22 Jan Hubicka <jh@susue.cz>
8393
4f2a9f90
PC
8394 * ipa.c (function_and_variable_visibility): First remember function
8395 was global and then make it local.
7bf4274e 8396
1bea243d
JB
83972013-08-22 Julian Brown <julian@codesourcery.com>
8398
8399 * configure.ac: Add aarch64 to list of arches which use "nop" in
8400 debug_line test.
8401 * configure: Regenerate.
8402
bcba7ecc
AK
84032013-08-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8404
8405 * config/s390/linux.h (TARGET_LIBC_HAS_FUNCTION): Define as
8406 gnu_libc_has_function.
8407 * config/s390/tpf.h: Likewise.
8408
4c495b0d
JH
84092013-08-22 Jan Hubicka <jh@susue.cz>
8410
8411 * timevar.c (validate_phases): Add cast.
8412
5e302bca
JH
84132013-08-22 Jan Hubicka <jh@susue.cz>
8414
8415 * timevar.c (validate_phases): Use size_t for memory.
8416 * timevar.h (struct timevar_time_def): Use size_t for ggc_mem.
8417
da6ca2b5
GDR
84182013-08-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
8419
8420 * pretty-print.h (output_buffer::output_buffer): Declare.
8421 (pretty_printer::pretty_printer): Likewise.
8422 (pp_construct): Remove.
8423 * pretty-print.c (output_buffer::output_buffer): Define.
8424 (pretty_printer::pretty_printer): Rename from pp_construct. Simplify.
8425 * gimple-pretty-print.c (print_gimple_stmt): Do not call pp_construct.
8426 (print_gimple_expr): Likewise.
8427 (print_gimple_seq): Likewise.
8428 (gimple_dump_bb): Likewise.
8429 * sched-vis.c (dump_value_slim): Likewise.
8430 (dump_insn_slim): Likewise.
8431 (dump_rtl_slim): Likewise.
8432 (str_pattern_slim): Likewise.
8433 * tree-mudflap.c (mf_varname_tree): Likewise.
8434 * graph.c (print_graph_cfg): Likewise.
8435 (start_graph_dump): Likewise.
8436 * tree-pretty-print.c (maybe_init_pretty_print): Likewise. Use
8437 placement-new.
8438 * diagnostic.c (diagnostic_initialize): Simplify early diagnostic
8439 pretty printer initialization.
8440 * coretypes.h (diagnostic_context): Remove superflous type alias
8441 declaration.
8442 (pretty_printer): Likewise. Declare directly as a class.
8443 (pretty_print_info): Remove declaration as class.
8444 * asan.c (asan_emit_stack_protection): Remove call to pp_construct
8445 and pp_clear_output_area.
8446 (asan_add_global): Likewise.
8447
0e1474e5
JH
84482013-08-22 Jan Hubicka <jh@suse.cz>
8449
8450 * cgraphunit.c (analyze_functions) Use update_type_inheritance_graph.
8451 * ipa-utils.h (update_type_inheritance_graph): Declare.
8452 (possible_polymorphic_call_target_p): Declare.
8453 (possible_polymorphic_call_target_p): New.
8454 * ipa-devirt.c: Update toplevel comments.
8455 (cached_polymorphic_call_targets): Move up.
8456 (odr_type_d): Move ID down.
8457 (polymorphic_type_binfo_p): Update comment.
8458 (odr_hasher::remove): Likewise;
8459 (get_odr_type): Set anonymous_namespace.
8460 (dump_odr_type): Dump it.
8461 (dump_type_inheritance_graph): Do not ICE when there are no ODR types.
8462 (maybe_record_node): Record node in cached_polymorphic_call_targets.
8463 (record_binfo): Add comment.
5339fc0c
UB
8464 (free_polymorphic_call_targets_hash): Do not ICE when cache is not
8465 built.
0e1474e5
JH
8466 (devirt_node_removal_hook): Do not iCE when cache is freed.
8467 (possible_polymorphic_call_target_p): New predicate.
8468 (update_type_inheritance_graph): New function.
8469
3f97cb0b
AI
84702013-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
8471 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
8472 Sergey Lega <sergey.s.lega@intel.com>
8473 Anna Tikhonova <anna.tikhonova@intel.com>
8474 Ilya Tocar <ilya.tocar@intel.com>
8475 Andrey Turetskiy <andrey.turetskiy@intel.com>
8476 Ilya Verbin <ilya.verbin@intel.com>
8477 Kirill Yukhin <kirill.yukhin@intel.com>
8478 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
8479
8480 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512F_SET): New.
8481 (OPTION_MASK_ISA_AVX512CD_SET): Ditto.
8482 (OPTION_MASK_ISA_AVX512PF_SET): Ditto.
8483 (OPTION_MASK_ISA_AVX512ER_SET): Ditto.
8484 (OPTION_MASK_ISA_AVX2_UNSET): Update.
8485 (OPTION_MASK_ISA_AVX512F_UNSET): New.
8486 (OPTION_MASK_ISA_AVX512CD_UNSET): Ditto.
8487 (OPTION_MASK_ISA_AVX512PF_UNSET): Ditto.
8488 (OPTION_MASK_ISA_AVX512ER_UNSET): Ditto.
8489 (ix86_handle_option): Handle OPT_mavx512f, OPT_mavx512cd,
8490 OPT_mavx512pf, OPT_mavx512er cases.
8491 * config/i386/constraints.md (v): New constraint.
8492 (Yi, Yj): Replace SSE_REGS with ALL_SSE_REGS.
8493 * config/i386/cpuid.h (bit_AVX512F, bit_AVX512PF, bit_AVX512ER)
8494 (bit_AVX512CD): New.
8495 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
8496 AVX512F, AVX512ER, AVX512PF, AVX512CD features.
8497 * config/i386/i386-c.c (ix86_target_macros_internal):
8498 Conditionally define __AVX512F__, __AVX512ER__, __AVX512CD__,
8499 __AVX512PF__.
8500 * config/i386/i386-modes.def (VECTOR_MODES (INT, 128))
8501 (VECTOR_MODES (FLOAT, 128), INT_MODE (XI, 64)): New modes.
8502 * config/i386/i386.c (regclass_map, dbx_register_map)
8503 (dbx64_register_map, svr4_dbx_register_map): Add new SSE registers.
8504 (gate_insert_vzeroupper): Disable vzeroupper for TARGET_AVX512F.
8505 (ix86_target_string): Define -mavx512f, -mavx512er, -mavx512cd,
8506 -mavx512pf options.
8507 (ix86_option_override_internal): Define PTA_AVX512F, PTA_AVX512ER,
8508 PTA_AVX512PF, PTA_AVX512CD. Handle -mavx512f, -mavx512er, -mavx512cd,
8509 -mavx512pf options. Fix formatting.
8510 (ix86_conditional_register_usage): Squash EXT_REX_SSE_REGs for 32-bit
8511 targets. Squash EVEX_SSE_REGS if AVX512F is disabled.
8512 (ix86_valid_target_attribute_inner_p): Handle -mavx512f, -mavx512er,
8513 -mavx512cd, -mavx512pf options.
8514 (standard_sse_constant_opcode): Add vpternlogd for 512-bit modes.
8515 (print_reg, ix86_print_operand): Handle 'g' to output 512-bit operands.
8516 (ix86_preferred_output_reload_class): Replace SSE_REGS with
8517 ALL_SSE_REGS.
8518 (ix86_hard_regno_mode_ok): Support 512-bit registers.
8519 (ix86_set_reg_reg_cost): Ditto.
8520 (x86_order_regs_for_local_alloc): Ditto.
8521 (MAX_VECT_LEN): Extend to 64-byte.
8522 (ix86_spill_class): Replace SSE_REGS with ALL_SSE_REGS.
8523 * config/i386/i386.h (TARGET_AVX512F, TARGET_AVX512PF)
8524 (TARGET_AVX512ER, TARGET_AVX512CD): New.
8525 (BIGGEST_ALIGNMENT): Extend to 512-bits.
8526 (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS): Add new registers.
8527 (CALL_USED_REGISTERS, REG_ALLOC_ORDER): Likewise.
8528 (VALID_AVX512F_SCALAR_MODE, VALID_AVX512F_REG_MODE): New.
8529 (SSE_REG_MODE_P): Support new modes.
8530 (FIRST_MMX_REG, FIRST_REX_INT_REG, FIRST_REX_SSE_REG): Add comments.
8531 (FIRST_EXT_REX_SSE_REG, LAST_EXT_REX_SSE_REG): New.
8532 (reg_class, REG_CLASS_NAMES): Add EVEX_SSE_REGS, ALL_SSE_REGS.
8533 (SSE_CLASS_P, MAYBE_SSE_CLASS_P): Replace SSE_REGS with ALL_SSE_REGS.
8534 (REG_CLASS_CONTENTS): Add new registers.
8535 (SSE_REGNO_P, SSE_REGNO, HARD_REGNO_RENAME_OK): Support new registers.
8536 (EXT_REX_SSE_REGNO_P): New.
8537 (HI_REGISTER_NAMES): Add new registers.
8538 * config/i386/i386.md: Define constants for new registers.
8539 (mode): Add new 512-bit modes.
8540 (prefix): Support evex prefix.
8541 (isa): Support avx512f, noavx512f, fma_avx512f.
8542 (ssemodesuffix): Add new 512-bit modes.
8543 (movxi): New.
8544 (*movxi_internal_avx512f): Ditto.
8545 (*movdi_internal): Replace constraint "x" with the new constraint "v".
8546 Support MODE_XI.
8547 (*movsi_internal): Likewise.
8548 (*movdf_internal): Likewise.
8549 (*movsf_internal): Likewise.
8550 (*fop_<mode>_comm_sse): Replace constraint "x" with new constraint "v".
8551 (<code><mode>3): Likewise.
5339fc0c
UB
8552 * config/i386/i386.opt (mavx512f, mavx512pf, mavx512er, mavx512cd):
8553 New.
3f97cb0b
AI
8554 * config/i386/mmx.md (*mov<mode>_internal): Replace constraint "x"
8555 with the new constraint "v".
8556 * config/i386/sse.md (*mov<mode>_internal): Support new registers and
8557 modes.
8558 (<sse>_loadu<ssemodesuffix><avxsizesuffix>): Replace constraint "x"
8559 with the new constraint "v".
8560 (<sse2>_loaddqu<avxsizesuffix>): Likewise.
8561 (<sse2>_storedqu<avxsizesuffix>): Likewise.
8562 (*<plusminus_insn><mode>3): Likewise.
8563 (<sse>_vm<plusminus_insn><mode>3): Likewise.
8564 (*mul<mode>3): Likewise.
8565 (<sse>_vmmul<mode>3): Likewise.
8566 (<sse>_div<mode>3): Likewise.
8567 (<sse>_vmdiv<mode>3): Likewise.
8568 (<sse>_sqrt<mode>2): Likewise.
8569 (<sse>_vmsqrt<mode>2): Likewise.
8570 (*<code><mode>3_finite): Likewise.
8571 (*<code><mode>3) <smaxmin>: Likewise.
8572 (<sse>_vm<code><mode>3): Likewise.
8573 (*<code><mode>3) <any_logic>: Likewise.
8574 (*fma_fmadd_<mode>): Likewise.
8575 (*fma_fmsub_<mode>): Likewise.
8576 (*fma_fnmadd_<mode>): Likewise.
8577 (*fma_fnmsub_<mode>): Likewise.
8578 (*fma_fmaddsub_<mode>): Likewise.
8579 (*fma_fmsubadd_<mode>): Likewise.
8580 (*fmai_fmadd_<mode>): Likewise.
8581 (*fmai_fmsub_<mode>): Likewise.
8582 (*fmai_fnmadd_<mode>): Likewise.
8583 (*fmai_fnmsub_<mode>): Likewise.
8584 (sse_cvtsi2ss): Likewise.
8585 (sse_cvtsi2ssq): Likewise.
8586 (sse_cvtss2si): Likewise.
8587 (sse_cvtss2si_2): Likewise.
8588 (sse_cvtss2siq): Likewise.
8589 (sse_cvtss2siq_2): Likewise.
8590 (sse_cvttss2si): Likewise.
8591 (sse_cvtss2siq_2): Likewise.
8592 (float<sseintvecmodelower><mode>2): Likewise.
8593 (sse2_cvtsd2si_2): Likewise.
8594 (sse2_cvtsd2siq_2): Likewise.
8595 (*<plusminus_insn><mode>3): Likewise.
8596 (*<sse2_avx2>_<plusminus_insn><mode>3): Likewise.
8597 (*<sse4_1_avx2>_mul<mode>3): Likewise.
8598 (ashr<mode>3): Likewise.
8599 (<shift_insn><mode>3): Likewise.
8600 (avx2_<code><mode>3): Likewise.
8601 (*avx2_<code><mode>3): Likewise.
8602 (*andnot<mode>3): Likewise.
8603 (*<code><mode>3) <any_logic>: Likewise.
8604 (abs<mode>2): Likewise.
8605 (avx2_permvar<mode>): Likewise.
8606 (avx2_perm<mode>_1): Likewise.
8607 (*avx_vpermilp<mode>): Likewise.
8608 (avx_vpermilvar<mode>3): Likewise.
8609 (avx2_ashrv<mode>): Likewise.
8610 (avx2_<shift_insn>v<mode>): Likewise.
8611 * doc/invoke.texi: Document -mavx512f, -mavx512pf, -mavx512er,
8612 -mavx512cd.
8613 * doc/rtl.texi: Document XImode.
8614
dd5e8423
JL
86152013-08-21 Jeff Law <law@redhat.com>
8616
b9ebee5d
JL
8617 * tree-flow.h (register_jump_thread): Pass vector of edges
8618 instead of each important edge.
8619 * tree-ssa-threadedge.c (thread_across_edge): Build the jump
8620 thread path into a vector and pass that to register_jump_thread.
8621 * tree-ssa-threadupdate.c (register_jump_thread): Conver the
8622 passed in edge vector to the current 3-edge form.
8623
dd5e8423
JL
8624 Revert:
8625 2013-08-20 Alexey Makhalov <makhaloff@gmail.com>
8626
9bb6628e 8627 * dce.c (fini_dce): Call df_analyze again just in case
dd5e8423
JL
8628 delete_unmarked_insns removed anything.
8629
445dc8df
JR
86302013-08-21 Joern Rennecke <joern.rennecke@embecosm.com>
8631
8632 * reload.h (struct reg_equivs): Rename to ..
8633 (struct reg_equivs_s): .. this.
8634
e0df53dd
ML
86352013-08-20 Martin Liska <marxin.liska@gmail.com>
8636
8637 * ipa.c (ipa_profile_read_summary): Fix buffer overflow.
8638
e7d1d3eb
RO
86392013-08-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8640
5339fc0c 8641 * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Don't nest comment.
e7d1d3eb 8642
5562e26e
JL
86432013-08-21 Jeff Law <law@redhat.com>
8644
8645 * tree-vrp.c (simplify_stmt_for_jump_threading): Try to
8646 simplify assignments too. If the RHS collapses to a singleton
8647 range, then return the value for the range.
8648
c7ecdec6
KY
86492013-08-21 Kirill Yukhin <kirill.yukhin@intel.com>
8650
7a5911d3
UB
8651 * config/i386/sse.md (V16): Rename to...
8652 (VMOVE): this.
8653 (mov<mode>): Update iterator name.
8654 (*mov<mode>_internal): Ditto.
8655 (push<mode>1): Ditto.
8656 (movmisalign<mode>): Ditto.
c7ecdec6 8657
bfa3b50a
JH
86582013-08-20 Jan Hubicka <jh@suse.cz>
8659
8660 PR bootstrap/58186
8661 * cgraph.c (cgraph_add_edge_to_call_site_hash): Overwrite hash
8662 entry for direct edges.
8663 (cgraph_turn_edge_to_speculative): Fix setting of can_throw_external.
8664
6cd4d135
DM
86652013-08-20 David Malcolm <dmalcolm@redhat.com>
8666
8667 Revert my last two changes, r201865 and r201864:
8668
8669 Revert r201865:
8670 2013-08-20 David Malcolm <dmalcolm@redhat.com>
8671
8672 Make opt_pass and gcc::pass_manager be GC-managed, so that pass
8673 instances can own GC refs.
8674
8675 * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h.
8676 * context.c (gcc::context::gt_ggc_mx): Traverse passes_.
8677 (gcc::context::gt_pch_nx): Likewise.
8678 (gcc::context::gt_pch_nx): Likewise.
8679 * ggc.h (gt_ggc_mx <T>): New.
8680 (gt_pch_nx_with_op <T>): New.
8681 (gt_pch_nx <T>): New.
8682 * passes.c (opt_pass::gt_ggc_mx): New.
8683 (opt_pass::gt_pch_nx): New.
8684 (opt_pass::gt_pch_nx_with_op): New.
8685 (pass_manager::gt_ggc_mx): New.
8686 (pass_manager::gt_pch_nx): New.
8687 (pass_manager::gt_pch_nx_with_op): New.
8688 (pass_manager::operator new): Use
8689 ggc_internal_cleared_alloc_stat rather than xcalloc.
8690 * pass_manager.h (class pass_manager): Add GTY((user)) marking.
8691 (pass_manager::gt_ggc_mx): New.
8692 (pass_manager::gt_pch_nx): New.
8693 (pass_manager::gt_pch_nx_with_op): New.
8694 * tree-pass.h (class opt_pass): Add GTY((user)) marking.
8695 (opt_pass::operator new): New.
8696 (opt_pass::gt_ggc_mx): New.
8697 (opt_pass::gt_pch_nx): New.
8698 (opt_pass::gt_pch_nx_with_op): New.
8699
8700 Revert r201864:
8701 2013-08-20 David Malcolm <dmalcolm@redhat.com>
8702
8703 * Makefile.in (GTFILES): Add context.h.
8704 * context.c (gcc::context::operator new): New.
8705 (gcc::context::gt_ggc_mx): New.
8706 (gcc::context::gt_pch_nx): New.
8707 (gcc::context::gt_pch_nx): New.
8708 * context.h (gcc::context): Add GTY((user)) marking.
8709 (gcc::context::operator new): New.
8710 (gcc::context::gt_ggc_mx): New.
8711 (gcc::context::gt_pch_nx): New.
8712 (gcc::context::gt_pch_nx): New.
8713 (g): Add GTY marking.
8714 (gt_ggc_mx (gcc::context *)): New.
8715 (gt_pch_nx (gcc::context *)): New.
8716 (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op,
8717 void *cookie)): New.
8718 * gengtype.c (open_base_files) <ifiles>: Add context.h.
8719
a046136a
AM
87202013-08-20 Alexey Makhalov <makhaloff@gmail.com>
8721
8722 * dce.c (fini_dce): Call df_analyze again just in case
8723 delete_unmarked_insns removed anything.
8724
67598720
TJ
87252013-08-20 Teresa Johnson <tejohnson@google.com>
8726
8727 PR rtl-optimizations/57451
8728 * final.c (reemit_insn_block_notes): Prevent lexical blocks
8729 from crossing split section boundaries.
8730
f8693faf
MGD
87312013-08-20 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
8732
8733 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Remove definition.
8734 * config/arm/t-linux-eabi (MULTILIB_OPTIONS): Document association
8735 with MULTLIB_DEFAULTS.
8736
7d0b9a9c
NC
87372013-08-20 Nick Clifton <nickc@redhat.com>
8738
8739 * target.def (narrow_volatile_bitfield): Note that the default
8740 value is false, not !TARGET_STRICT_ALIGN.
8741 * doc/tm.texi: Regenerate.
8742
8edb8dc8
PC
87432013-08-20 Pavel Chupin <pavel.v.chupin@intel.com>
8744
8745 Fix LIB_SPEC for systems without libpthread.
8746
8747 * config/gnu-user.h: Introduce GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC.
8748 * config/arm/linux-eabi.h: Use GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC
8749 for Android.
8750 * config/i386/linux-common.h: Likewise.
8751 * config/mips/linux-common.h: Likewise.
8752
12211b99 87532013-08-20 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
d71ff3fa
ZZ
8754
8755 * tree-ssa-ccp.c (get_default_value): Remove redundant condition
8756 checks.
8757
e42c64cb
DM
87582013-08-20 David Malcolm <dmalcolm@redhat.com>
8759
8760 Make opt_pass and gcc::pass_manager be GC-managed, so that pass
8761 instances can own GC refs.
8762
8763 * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h.
8764 * context.c (gcc::context::gt_ggc_mx): Traverse passes_.
8765 (gcc::context::gt_pch_nx): Likewise.
8766 (gcc::context::gt_pch_nx): Likewise.
8767 * ggc.h (gt_ggc_mx <T>): New.
8768 (gt_pch_nx_with_op <T>): New.
8769 (gt_pch_nx <T>): New.
8770 * passes.c (opt_pass::gt_ggc_mx): New.
8771 (opt_pass::gt_pch_nx): New.
8772 (opt_pass::gt_pch_nx_with_op): New.
8773 (pass_manager::gt_ggc_mx): New.
8774 (pass_manager::gt_pch_nx): New.
8775 (pass_manager::gt_pch_nx_with_op): New.
8776 (pass_manager::operator new): Use
8777 ggc_internal_cleared_alloc_stat rather than xcalloc.
8778 * pass_manager.h (class pass_manager): Add GTY((user)) marking.
8779 (pass_manager::gt_ggc_mx): New.
8780 (pass_manager::gt_pch_nx): New.
8781 (pass_manager::gt_pch_nx_with_op): New.
8782 * tree-pass.h (class opt_pass): Add GTY((user)) marking.
8783 (opt_pass::operator new): New.
8784 (opt_pass::gt_ggc_mx): New.
8785 (opt_pass::gt_pch_nx): New.
8786 (opt_pass::gt_pch_nx_with_op): New.
8787
910c02a0
DM
87882013-08-20 David Malcolm <dmalcolm@redhat.com>
8789
8790 * Makefile.in (GTFILES): Add context.h.
8791 * context.c (gcc::context::operator new): New.
8792 (gcc::context::gt_ggc_mx): New.
8793 (gcc::context::gt_pch_nx): New.
8794 (gcc::context::gt_pch_nx): New.
8795 * context.h (gcc::context): Add GTY((user)) marking.
8796 (gcc::context::operator new): New.
8797 (gcc::context::gt_ggc_mx): New.
8798 (gcc::context::gt_pch_nx): New.
8799 (gcc::context::gt_pch_nx): New.
8800 (g): Add GTY marking.
8801 (gt_ggc_mx (gcc::context *)): New.
8802 (gt_pch_nx (gcc::context *)): New.
8803 (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op,
8804 void *cookie)): New.
8805 * gengtype.c (open_base_files) <ifiles>: Add context.h.
8806
af4b4236
AM
88072013-08-20 Alan Modra <amodra@gmail.com>
8808
8809 PR target/57865
8810 * config/rs6000/rs6000.c (rs6000_emit_prologue): Correct ool_adjust.
8811 (rs6000_emit_epilogue): Likewise.
8812
12211b99 88132013-08-19 Dehao Chen <dehao@google.com>
0d633222
DC
8814
8815 * value-prof.c (gimple_ic): Fix the bug of adding EH edge.
8816
e2323f5b
PB
88172013-08-19 Peter Bergner <bergner@vnet.ibm.com>
8818 Jakub Jelinek <jakub@redhat.com>
8819
8820 * builtins.def (BUILT_IN_FABSD32): New DFP ABS builtin.
8821 (BUILT_IN_FABSD64): Likewise.
8822 (BUILT_IN_FABSD128): Likewise.
8823 * builtins.c (expand_builtin): Add support for new DFP ABS builtins.
8824 (fold_builtin_1): Likewise.
5339fc0c
UB
8825 * config/rs6000/dfp.md (*negtd2_fpr): Handle non-overlapping
8826 destination and source operands.
e2323f5b
PB
8827 (*abstd2_fpr): Likewise.
8828 (*nabstd2_fpr): Likewise.
8829
cfbf3ee8
RS
88302013-08-19 Richard Sandiford <rdsandiford@googlemail.com>
8831
8832 * config/mips/mips.c (mips_adjust_insn_length): Add checks for
8833 JUMP_P and INSN_P.
8834
d3136aeb
AH
88352013-08-19 Aldy Hernandez <aldyh@redhat.com>
8836
8837 * doc/invoke.texi (-fcilkplus): Clarify that implementation is
8838 incomplete.
8839
d33d9e47
AI
88402013-08-19 Alexander Ivchenko <alexander.ivchenko@intel.com>
8841
8842 * target.def (TARGET_LIBC_HAS_FUNCTION): New target hook.
8843 * builtins.c (default_libc_has_function): New.
8844 (gnu_libc_has_function): Ditto.
8845 (no_c99_libc_has_function): Ditto.
8846 (expand_builtin_cexpi): Using new target hook TARGET_LIBC_HAS_FUNCTION
8847 instead of TARGET_HAS_SINCOS and TARGET_C99_FUNCTIONS.
8848 (fold_builtin_sincos): Likewise.
8849 (fold_builtin_cexp): Likewise.
8850 * builtins.def (DEF_C94_BUILTIN): Likewise.
8851 (DEF_C99_BUILTIN): Likewise.
8852 (DEF_C99_C90RES_BUILTIN): Likewise.
8853 (DEF_C99_COMPL_BUILTIN): New define. Change all complex c99 builtin
8854 definitions to using this define.
8855 * config/darwin-protos.h (darwin_libc_has_function): New.
5339fc0c 8856 * config/darwin.c (darwin_libc_has_function): Ditto.
d33d9e47
AI
8857 * config/alpha/linux.h: Remove TARGET_C99_FUNCTIONS and
8858 TARGET_HAS_SINCOS. Redefine TARGET_LIBC_HAS_FUNCTION.
8859 * config/darwin.h: Ditto.
8860 * config/elfos.h: Ditto.
8861 * config/freebsd.h: Ditto.
8862 * config/i386/cygming.h: Ditto.
8863 * config/i386/djgpp.h: Ditto.
8864 * config/i386/i386-interix.h: Ditto.
8865 * config/microblaze/microblaze.h: Ditto.
8866 * config/mmix/mmix.h: Ditto.
8867 * config/gnu-user.h: Ditto.
8868 * config/ia64/hpux.h: Ditto.
8869 * config/pa/pa-hpux.h: Ditto.
8870 * config/pdp11/pdp11.h: Ditto.
8871 * config/picochip/picochip.h: Ditto.
8872 * config/linux.h: Ditto.
8873 * config/netbsd.h: Ditto.
8874 * config/openbsd.h: Ditto.
8875 * config/rs6000/aix43.h: Ditto.
8876 * config/rs6000/aix51.h: Ditto.
8877 * config/rs6000/aix52.h: Ditto.
8878 * config/rs6000/aix53.h: Ditto.
8879 * config/rs6000/aix61.h: Ditto.
8880 * config/rs6000/darwin.h: Ditto.
8881 * config/rs6000/linux.h: Ditto.
8882 * config/rs6000/linux64.h: Ditto.
8883 * config/s390/tpf.h: Ditto.
8884 * config/sol2-10.h: Ditto.
8885 * config/sol2.h: Ditto.
8886 * config/vms/vms.h: Ditto.
8887 * config/vxworks.h: Ditto.
8888 * config/linux-android.c (linux_android_libc_has_function):
8889 New linux-specific implementation of TARGET_LIBC_HAS_FUNCTION.
8890 * config/linux-protos.h (linux_android_libc_has_function):
8891 New declaration.
8892 * config/i386/i386.c (ix86_libc_has_function): New.
8893 * config/i386/i386-protos.h
8894 (ix86_libc_has_function): New declaration.
8895 * config/i386/i386.md
8896 ("isinfxf2"): Change condition for TARGET_LIBC_HAS_FUNCTION.
8897 ("isinf<mode>2): Likewise.
8898 * convert.c (convert_to_integer): Using new target hook
8899 TARGET_LIBC_HAS_FUNCTION istead of TARGET_HAS_SINCOS and
8900 TARGET_C99_FUNCTIONS.
8901 * fortran/f95-lang.c (gfc_init_builtin_functions): Ditto.
8902 * tree-ssa-math-opts.c (execute_cse_sincos): Ditto.
8903 * coretypes.h (function_class): New enum for different
8904 classes of functions.
8905 * defaults.h: Remove TARGET_C99_FUNCTIONS and TARGET_HAS_SINCOS.
8906 * doc/tm.texi.in (TARGET_C99_FUNCTIONS): Remove documentation.
8907 (TARGET_HAS_SINCOS): Likewise.
8908 (TARGET_LIBC_HAS_FUNCTION): New.
8909 * doc/tm.texi: Regenerated.
8910 * targhooks.h (default_libc_has_function): New declaration.
8911 (no_c99_libc_has_function): Ditto.
8912 (gnu_libc_has_function): Ditto.
8913 * system.h: Add the poisoning of TARGET_C99_FUNCTIONS
8914 and TARGET_HAS_SINCOS.
8915
eefe9a99
JH
89162013-08-18 Jan Hubicka <jh@suse.cz>
8917
8918 * Makeifle-in (ipa-devirt.o): New.
8919 (GTFILES): Add ipa-utils.h and ipa-devirt.c
8920 * cgraphunit.c (decide_is_symbol_needed): Do not care about virtuals.
8921 (analyze_functions): Look into possible targets of polymorphic call.
8922 * dumpfile.c (dump_files): Add type-inheritance dump.
8923 * dumpfile.h (TDI_inheritance): New.
8924 * ipa-devirt.c: New file.
8925 * ipa-utils.h (odr_type_d): Forward declare.
8926 (odr_type): New type.
8927 (build_type_inheritance_graph): Declare.
8928 (possible_polymorphic_call_targets): Declare and introduce inline
8929 variant when only edge is pased.
8930 (dump_possible_polymorphic_call_targets): Likewise.
8931 * timevar.def (TV_IPA_INHERITANCE, TV_IPA_VIRTUAL_CALL): New.
8932 * tree.c (type_in_anonymous_namespace_p): Break out from ...
8933 (types_same_for_odr): ... here.
8934 * tree.h (type_in_anonymous_namespace_p): Declare.
8935
29b89442
JJ
89362013-08-18 Jakub Jelinek <jakub@redhat.com>
8937
8938 PR tree-optimization/58006
8939 * tree-parloops.c (take_address_of): Don't ICE if get_name
8940 returns NULL.
8941 (eliminate_local_variables_stmt): Remove clobber stmts.
8942
4f219961
EB
89432013-08-18 Eric Botcazou <ebotcazou@adacore.com>
8944
8945 * cgraphunit.c (handle_alias_pairs): Reset the alias flag after the
8946 error message is issued for an alias to undefined symbol.
8947
1d5755ef
JH
89482013-08-18 Jan Hubicka <jh@suse.cz>
8949
8950 * cgraph.c (cgraph_create_indirect_edge): Discover
8951 polymorphic calls and record basic info into indirect_info.
8952 * gimple-fold.c (gimple_fold_call): When doing BINFO based
8953 devirtualization, ignore objc function calls.
8954 * ipa-cp.c (initialize_node_lattices): Be ready for polymorphic
8955 call with no parm index info.
8956 * ipa-prop.c (ipa_analyze_call_uses): Likewise.
8957 * tree.c (virtual_method_call_p): New function.
8958 * tree.h (virtual_method_call_p): Declare.
8959
5945bebf
JH
89602013-08-16 Jan Hubicka <jh@suse.cz>
8961
8962 PR middle-end/58179
8963 * tree.c (obj_type_ref_class): Do not ICE on non-method calls.
8964
47fa5d23
DE
89652013-08-16 David Edelsohn <dje.gcc@gmail.com>
8966
8967 * config/rs6000/rs6000.md (rs6000_get_timebase_ppc32): Add length
8968 attribute.
8969
c74f54a0
DM
89702013-08-16 David Malcolm <dmalcolm@redhat.com>
8971
8972 * gengtype.c (type_for_name): Add special-case support for
8973 locating types within the "gcc::" namespace.
8974 (open_base_files): Emit a "using namespace gcc" directive.
8975
f758f299
MM
89762013-08-16 Michael Meissner <meissner@linux.vnet.ibm.com>
8977
8978 PR target/58160
8979 * config/rs6000/predicates.md (fusion_gpr_mem_load): Allow the
8980 memory rtx to contain ZERO_EXTEND and SIGN_EXTEND.
8981
8982 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Pass operands
8983 array instead of each individual operand as a separate argument.
8984 (emit_fusion_gpr_load): Likewise.
8985 (expand_fusion_gpr_load): Add new function declaration.
8986
8987 * config/rs6000/rs6000.c (fusion_gpr_load_p): Change the calling
8988 signature to have the operands passed as an array, instead of as
8989 separate arguments. Allow ZERO_EXTEND to be in the memory
8990 address, and also SIGN_EXTEND if -mpower8-fusion-sign. Do not
8991 depend on the register live/dead flags when peepholes are run.
8992 (expand_fusion_gpr_load): New function to be called from the
8993 peephole2 pass, to change the register that addis sets to be the
8994 target register.
8995 (emit_fusion_gpr_load): Change the calling signature to have the
8996 operands passed as an array, instead of as separate arguments.
8997 Allow ZERO_EXTEND to be in the memory address, and also
8998 SIGN_EXTEND if -mpower8-fusion-sign.
8999
9000 * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): Delete unused
9001 unspec enumeration.
9002 (power8 fusion peephole/peephole2): Rework the fusion peepholes to
9003 adjust the register addis loads up in the peephole2 pass. Do not
5339fc0c 9004 depend on the register live/dead state when the peephole pass is done.
f758f299 9005
158f4e4f
DM
90062013-08-16 David Malcolm <dmalcolm@redhat.com>
9007
9008 * gengtype.c (create_user_defined_type): Ensure that the kind
9009 is set to TYPE_USER_STRUCT, fixing a bug seen when an incomplete
9010 declaration is seen before the GTY((user)) marking.
9011
22f8cea5
BE
90122013-08-16 Bernd Edlinger <bernd.edlinger@hotmail.de>
9013
9014 PR target/58105
9015 * config/i386/i386.c (make_resolver_func): Set DECL_UNINLINABLE.
9016
c49bdb2e
JH
90172013-08-16 Jan Hubicka <jh@suse.cz>
9018
9019 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Add new
9020 arugment expected_type.
9021 (gimple_fold_call): Use it.
9022 * gimple.h (gimple_extract_devirt_binfo_from_cst): Update prototype.
9023 * ipa-cp.c (ipa_get_indirect_edge_target_1): Update.
22f8cea5 9024 * ipa-prop.c (ipa_analyze_virtual_call_uses): Use obj_type_ref_class.
c49bdb2e
JH
9025 (try_make_edge_direct_virtual_call): Likewise.
9026 * tree.c (obj_type_ref_class): New.
9027 * tree.h (obj_type_ref_class): Use it.
9028
4042dca9
GDR
90292013-08-16 Gabriel Dos Reis <gdr@integrable-solutions.net>
9030
9031 * sched-vis.c (rtl_slim_pp_initialized): Remove.
9032 (rtl_slim_pp): Likewise.
9033 (init_rtl_slim_pretty_print): Likewise.
9034 (dump_value_slim): Don't call it. Use local pretty printer.
9035 (dump_insn_slim): Likewise.
9036 (dump_rtl_slim): Likewise.
9037 (str_pattern_slim): Likewise.
9038 * tree-mudflap.c (mf_varname_tree): Use local pretty printer.
9039 Simplify.
9040
7a460594
JJ
90412013-08-16 Jakub Jelinek <jakub@redhat.com>
9042
639dc669
JJ
9043 PR tree-optimization/58164
9044 * gimple.c (walk_stmt_load_store_addr_ops): For visit_addr
9045 walk gimple_goto_dest of GIMPLE_GOTO.
9046
7a460594
JJ
9047 PR tree-optimization/58165
9048 * tree-call-cdce.c (shrink_wrap_one_built_in_call): If
9049 bi_call must be the last stmt in a bb, don't split_block, instead
9050 use fallthru edge from it and give up if there is none.
9051 Release conds vector when returning early.
9052
e3c02cc7
XDL
90532013-08-14 Xinliang David Li <davidxl@google.com>
9054
9055 * config/i386/i386.c (ix86_option_override_internal):
9056 Remove unused variable and field.
9057
6469da2c
BS
90582013-08-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9059
9060 PR target/57949
22f8cea5 9061 * doc/invoke.texi: Add documentation of mcompat-align-parm option.
6469da2c
BS
9062 * config/rs6000/rs6000.opt: Add mcompat-align-parm option.
9063 * config/rs6000/rs6000.c (rs6000_function_arg_boundary): For AIX
9064 and Linux, correct BLKmode alignment when 128-bit alignment is
9065 required and compatibility flag is not set.
22f8cea5
BE
9066 (rs6000_gimplify_va_arg): For AIX and Linux, honor specified alignment
9067 for zero-size arguments when compatibility flag is not set.
6469da2c 9068
4ca890e2
JJ
90692013-08-14 Jakub Jelinek <jakub@redhat.com>
9070
9071 PR tree-optimization/58145
9072 * tree-sra.c (build_ref_for_offset): If prev_base has
9073 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS, propagate it to MEM_REF.
9074
daec1759 90752013-08-14 Xinliang David Li <davidxl@google.com>
4ca890e2 9076
daec1759 9077 * config/i386/i386.c (ix86_option_override_internal):
e3c02cc7 9078 Fix uninitialized variable error.
daec1759 9079
3ad20bd4
XDL
90802013-08-14 Xinliang David Li <davidxl@google.com>
9081
9082 * config/i386/i386.opt: Define two new options.
9083 * config/i386/x86-tune.def: Add arch selector field in macros.
9084 * config/i386/i386.h: Adjust macro definition.
9085 * config/i386/i386.c (ix86_option_override_internal):
9086 Refactor the code.
9087 (parse_mtune_ctrl_str): New function.
9088 (set_ix86_tune_features): New function.
9089 (ix86_function_specific_restore): Call the new helper function.
9090
e839e2a9
AB
90912013-08-14 Andrey Belevantsev <abel@ispras.ru>
9092
9093 PR rtl-optimization/57662
9094 * sel-sched.c (code_motion_process_successors): When the current insn
9095 is removed after the recursive traversal, break from the loop.
9096 Add comments and debug printouts.
9097
27ed665f
JJ
90982013-08-14 Jakub Jelinek <jakub@redhat.com>
9099 Alexandre Oliva <aoliva@redhat.com>
9100
9101 PR target/58067
9102 * config/i386/i386.c (ix86_delegitimize_address): For CM_MEDIUM_PIC
9103 and CM_LARGE_PIC ix86_cmodel fall thru into the -m32 code, handle
9104 there also UNSPEC_PLTOFF.
9105
61c1a609
MP
91062013-08-14 Marek Polacek <polacek@redhat.com>
9107
9108 * ipa-inline-analysis.c (add_clause): Avoid shifting integer
9109 NUM_CONDITIONS bit positions.
9110
0e901c67
CC
91112013-08-13 Cary Coutant <ccoutant@google.com>
9112
9113 * dwarf2out.c (CHECKSUM_BLOCK): New macro.
9114 (attr_checksum): Hash vector contents instead of pointer.
9115 (attr_checksum_ordered): Likewise.
9116
061eff6d
UB
91172013-08-13 Uros Bizjak <ubizjak@gmail.com>
9118
9119 * config/i386/sse.md (*sse2_maskmovdqu): Emit addr32 prefix
9120 when Pmode != word_mode. Add length_address attribute.
9121 (sse3_monitor_<mode>): Merge from sse3_monitor and
9122 sse3_monitor64_<mode> insn patterns. Emit addr32 prefix when
9123 Pmode != word_mode. Update insn length attribute.
9124 * config/i386/i386.c (ix86_option_override_internal): Update
9125 ix86_gen_monitor selection for merged sse3_monitor insn.
9126
8ec9249b
JB
91272013-08-13 Julian Brown <julian@codesourcery.com>
9128
9129 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
9130 perform invalid legitimization on greater-than-word-size modes for
9131 TARGET_E500_DOUBLE.
9132
761a8eb7
VM
91332013-08-13 Vladimir Makarov <vmakarov@redhat.com>
9134
9135 * ira.c (setup_class_translate_array): Use aclass instead of cl
9136 for classes not fully covered by allocno classes.
9137
99c2bd54
JJ
91382013-08-13 Jakub Jelinek <jakub@redhat.com>
9139
4029a5e0
JJ
9140 PR tree-optimization/57661
9141 * tree-inline.h (struct copy_body_data): Add blocks_to_copy field.
9142 * tree-inline.c (tree_function_versioning): Initialize it.
9143 (remap_gimple_stmt): Return GIMPLE_NOP for MEM_REF lhs clobber stmts
9144 if id->blocks_to_copy and MEM_REF's SSA_NAME is defined in a block
9145 that is not being copied.
9146
99c2bd54
JJ
9147 PR sanitizer/56417
9148 * asan.c (instrument_strlen_call): Fix typo in comment.
9149 Use char * type even for the lhs of POINTER_PLUS_EXPR.
9150
b5f8f063
SE
91512013-08-13 Steve Ellcey <sellcey@mips.com>
9152
9153 * config/mips/mips.md (prefetch): Use lw instead of ld on
9154 loongson in 32bit mode.
9155
4de80584
NC
91562013-08-13 Nick Clifton <nickc@redhat.com>
9157
9158 * config.gcc: (avr-linux): Allow for tmake_file not being empty.
9159
09ce3660
JH
91602013-08-13 Jan Hubicka <jh@suse.cz>
9161
9162 * cgraph.c (cgraph_turn_edge_to_speculative): Return newly
9163 introduced edge; fix typo in sanity check.
9164 (cgraph_resolve_speculation): Export; improve diagnostic.
9165 (cgraph_redirect_edge_call_stmt_to_callee): Better diagnostic; cancel
9166 speculation at type mismatch.
9167 * cgraph.h (cgraph_turn_edge_to_speculative): Update.
9168 (cgraph_resolve_speculation): Declare.
9169 (symtab_can_be_discarded): New function.
9170 * value-prof.c (gimple_ic_transform): Remove actual transform code.
9171 * ipa-inline-transform.c (speculation_removed): New global var.
9172 (clone_inlined_nodes): See if speculation can be removed.
9173 (inline_call): If speculations was removed, we growths may not match.
9174 * ipa-inline.c (can_inline_edge_p): Add DISREGARD_LIMITS parameter.
9175 (speculation_useful_p): New function.
9176 (resolve_noninline_speculation): New function.
9177 (inline_small_functions): Resolve useless speculations.
9178 * ipa-inline.h (speculation_useful_p): Declare
9179 * ipa.c (can_replace_by_local_alias): Simplify.
9180 (ipa_profile): Produce speculative calls in non-lto, too;
9181 add simple cost model; produce local aliases.
9182
f971dc24
DM
91832013-08-13 David Malcolm <dmalcolm@redhat.com>
9184
9185 * config/i386/t-i386 (i386.o): Rename stray PIPELINE_H to
061eff6d 9186 PASS_MANAGER_H.
f971dc24 9187
2e507b9a
PC
91882013-08-12 Paolo Carlini <paolo.carlini@oracle.com>
9189
9190 * config/i386/i386.c (ix86_function_versions): Use error + inform.
9191
c97fd4b8
UB
91922013-08-12 Uros Bizjak <ubizjak@gmail.com>
9193
9194 * config/i386/i386.md (floatunssi<mode>2 expand): Use MODEF mode
9195 iterator instead of X87MODEF.
9196
91972013-08-12 Perez Read <netfirewall@gmail.com>
9198
9199 PR target/58132
9200 * config/i386/i386.md (*movabs<mode>_1): Add <ptrsize> PTR before
9201 operand 0 for intel asm alternative.
9202 (*movabs<mode>_2): Ditto for operand 1.
9203
f4f4204c
JG
92042013-08-12 James Greenhalgh <james.greenhalgh@arm.com>
9205
9206 * config/aarch64/arm_none.h
9207 (vdup<bhsd>_lane_<su><8,16,32,64>): Fix macro call.
9208
133b1a8e
NC
92092013-08-12 Nick Clifton <nickc@redhat.com>
9210
9211 * config.gcc (m32r-linux): Allow for tmake_file not being empty.
9212
15dd8b3a
YR
92132013-08-12 Yuri Rumyantsev <ysrumyan@gmail.com>
9214
9215 * config/i386/i386.md (floatunssi<mode>2 expand): Add new
9216 expand for QI/HImode operand to produce more effictive code for
9217 unsigned char(short) --> float(double) conversion.
9218
94109a6a
AM
92192013-08-12 Alexander Monakov <amonakov@ispras.ru>
9220
9221 * doc/invoke.texi: Mention that -ftls-model does not force the final
9222 model.
9223
4e115102
MP
92242013-08-12 Marek Polacek <polacek@redhat.com>
9225 Marc Glisse <marc.glisse@inria.fr>
9226
9227 PR tree-optimization/57980
9228 * tree-tailcall.c (process_assignment): Call build_minus_one_cst
9229 when creating -1 constant.
9230
748d71f3
JH
92312013-08-10 Jan Hubicka <jh@suse.cz>
9232
1f97e193 9233 Workaround binutils PR14342.
748d71f3
JH
9234 * tree-profile.c (init_ic_make_global_vars): Add LTO path.
9235 (gimple_init_edge_profiler): Likewise.
9236 (gimple_gen_ic_func_profiler): Likewise.
9237
5979aa54
JH
92382013-08-09 Jan Hubicka <jh@suse.cz>
9239
9240 * cgraph.c (cgraph_create_edge_1): Clear speculative flag.
9241
ad83025e
XDL
92422013-08-09 Xinliang David Li <davidxl@google.com>
9243
9244 * config/i386/stringop.def: New file.
9245 * config/i386/stringop.opt: New file.
9246 * config/i386/i386-opts.h: Include stringopt.def.
9247 * config/i386/i386.opt: Include stringopt.opt.
9248 * config/i386/i386.c (ix86_option_override_internal):
c97fd4b8 9249 Override default size based stringop inline strategies with options.
ad83025e
XDL
9250 * config/i386/i386.c (ix86_parse_stringop_strategy_string):
9251 New function.
9252
e59df5fd
JH
92532013-08-09 Jan Hubicka <jh@suse.cz>
9254
c97fd4b8 9255 * ipa-ref.c (ipa_clear_stmts_in_references): Clear lto_stmt_uid, too.
e59df5fd 9256
634ab819
JH
92572013-08-09 Jan Hubicka <jh@suse.cz>
9258
9259 * cgraph.c (cgraph_resolve_speculation): Cut frequency to
9260 CGRAPH_FREQ_MAX.
9261 (dump_cgraph_node): Dump profile-id.
9262 * cgraph.h (cgraph_indirect_call_info): Add common_target_id
9263 and common_target_probability.
9264 * lto-cgraph.c (lto_output_edge): Stream common targets.
9265 (lto_output_node): Stream profile ids.
9266 (input_node): Stream profile ids.
9267 (input_edge): Stream common targets.
9268 * lto-streamer-in.c (fixup_call_stmt_edges_1): Fix formatting.
9269 * ipa.c: Include value-prof.h
9270 (ipa_profile_generate_summary): Turn indirect call statement histograms
9271 into common targets.
9272 (ipa_profile): Turn common targets into speculative edges.
9273
2fa3d31b
JH
92742013-08-09 Jan Hubicka <jh@suse.cz>
9275
9276 * cgraph.h (cgraph_node): Add profile_id.
9277 * value-prof.c (cgraph_node_map): Turn into pointer_map.
c97fd4b8 9278 (init_node_map): Rewrite to handle hashes increas of incremental IDs.
2fa3d31b
JH
9279 (del_node_map): Update.
9280 (find_func_by_funcdef_no): Replace by ...
9281 (find_func_by_profile_id): ... this one.
9282 (gimple_ic_transform): Do not remove useful histograms when
9283 speculation is not done; dump info when indirect call removal
9284 can happen at LTO.
9285 * value-prof.h (find_func_by_profile_id, gimple_ic): Declare.
9286 * gcov-io.h (__gcov_indirect_call_profiler): Replace by ...
9287 (__gcov_indirect_call_profiler_v2): .. this one.
9288 * profile.h (init_node_map): Update.
9289 * coverage.c (coverage_compute_profile_id): New function.
9290 * coverage.h (coverage_compute_profile_id): Declare.
9291 * tree-profile.c (init_ic_make_global_vars): Make
9292 __gcov_indirect_call_callee and __gcov_indirect_call_counters global.
9293 (gimple_init_edge_profiler): Update prototype of
9294 __gcov_indirect_call_profiler.
9295 (gimple_gen_ic_func_profiler): Simplify.
9296 (tree_profiling): Use init_node_map
9297
042ae7d2
JH
92982013-08-09 Jan Hubicka <jh@suse.cz>
9299
c97fd4b8
UB
9300 * cgraphbuild.c (cgraph_rebuild_references): Rebuild only
9301 non-speculative refs.
042ae7d2
JH
9302 * cgraph.c (cgraph_update_edge_in_call_site_hash): New function.
9303 (cgraph_add_edge_to_call_site_hash): Deal with speculative calls.
9304 (cgraph_set_call_stmt): Likewise.
9305 (cgraph_create_edge_1): Fix release checking compilatoin;
9306 clear lto_stmt_uid.
9307 (cgraph_free_edge): Free indirect info.
9308 (cgraph_turn_edge_to_speculative): New function.
9309 (cgraph_speculative_call_info): New function.
9310 (cgraph_make_edge_direct): Return direct edge; handle speculation.
c97fd4b8 9311 (cgraph_redirect_edge_call_stmt_to_callee): Expand speculative edges.
042ae7d2
JH
9312 (dump_cgraph_node): Dump speculation.
9313 (verify_edge_count_and_frequency): Accept speculative edges.
9314 (verify_edge_corresponds_to_fndecl): Handle partitioned cgraph.
9315 (verify_cgraph_node): Handle speculation.
9316 * cgraph.h (cgraph_edge): Add SPECULATIVE flag.
9317 (cgraph_set_call_stmt): Update prototype.
9318 (cgraph_make_edge_direct): Update prototype.
9319 (cgraph_speculative_call_info): Declare.
9320 * ipa-cp.c (ipcp_discover_new_direct_edges): Be ready for edge
9321 to change; update call of ipa_find_references.
9322 * ipa-ref.c (ipa_record_reference): Fix return value; clear
9323 lto_stmt_uid and speculative flags.
9324 (ipa_dump_references): Dump speculation.
9325 (ipa_clone_references): Clone speculative flag.
9326 (ipa_clone_referring): Likewise.
9327 (ipa_clone_ref): New function.
9328 (ipa_find_reference): Look into lto_stmt_uids
9329 (ipa_clear_stmts_in_references): Do not clear speculative calls.
9330 * ipa-ref.h (ipa_ref): Add lto_stmt_uid and speculative flags.
9331 (ipa_find_reference): Update declaration.
9332 (ipa_clone_ref): Declare.
9333 * lto-cgraph.c (lto_output_edge): Make lto_stmt_uids start from 0;
9334 stream speculative flag.
9335 (lto_output_ref): Stream statements uids and speculation.
9336 (input_ref): Likewise.
9337 (input_edge): Stream speuclation.
9338 * cgraphclones.c (cgraph_clone_edge): Clone speculation.
9339 (cgraph_set_call_stmt_including_clones): Handle speculation.
9340 * ipa-inline.c (heap_edge_removal_hook): New function.
9341 (inline_small_functions): Register it.
9342 * lto-streamer-in.c (fixup_call_stmt_edges_1): Bounds checking;
9343 also initialize refs.
9344 * ipa-prop.c (ipa_make_edge_direct_to_target): Be ready for
9345 edge to change.
9346 (try_make_edge_direct_simple_call): Likewise.
9347 (try_make_edge_direct_simple_call): Likewise.
9348 (update_indirect_edges_after_inlining): Likewise.
9349 (remove_described_reference): Look proper lto_stmt_uid.
9350 (propagate_controlled_uses): Likewise.
9351 (propagate_controlled_uses): Liekwise.
9352 * tree-inline.c (copy_bb): Copy speculative edges.
9353 (redirect_all_calls): New function.
c97fd4b8
UB
9354 (copy_cfg_body): Do redirection after loop info is updated.
9355 (delete_unreachable_blocks_update_callgraph): Updadte speculation.
042ae7d2 9356
aa1e10cc
JH
93572013-08-09 Jan Hubicka <jh@suse.cz>
9358
9359 * lto-streamer-out.c (output_function): Renumber PHIs.
9360 * lto-streamer-in.c (input_function): Likewise.
9361
66adb8eb
JG
93622013-08-09 James Greenhalgh <james.greenhalgh@arm.com>
9363
9364 * config/aarch64/aarch64-simd-builtins.def (get_lane_signed): Remove.
9365 (get_lane_unsigned): Likewise.
9366 (dup_lane_scalar): Likewise.
9367 (get_lane): enable for VALL.
9368 * config/aarch64/aarch64-simd.md
9369 (aarch64_dup_lane_scalar<mode>): Remove.
9370 (aarch64_get_lane_signed<mode>): Likewise.
9371 (aarch64_get_lane_unsigned<mode>): Likewise.
9372 (aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): New.
9373 (aarch64_get_lane_zero_extendsi<mode>): Likewise.
9374 (aarch64_get_lane<mode>): Enable for all vector modes.
9375 (aarch64_get_lanedi): Remove misleading constraints.
9376 * config/aarch64/arm_neon.h
9377 (__aarch64_vget_lane_any): Define.
9378 (__aarch64_vget<q>_lane_<fpsu><8,16,32,64>): Likewise.
9379 (vget<q>_lane_<fpsu><8,16,32,64>): Use __aarch64_vget_lane macros.
9380 (vdup<bhsd>_lane_<su><8,16,32,64>): Likewise.
9381 * config/aarch64/iterators.md (VDQQH): New.
9382 (VDQQHS): Likewise.
9383 (vwcore): Likewise.
9384
1f65ae7a
EB
93852013-08-09 Eric Botcazou <ebotcazou@adacore.com>
9386
9387 * configure.ac: Add GAS check for LEON instructions on SPARC.
9388 * configure: Regenerate.
9389 * config.in: Likewise.
9390 * config.gcc (with_cpu): Remove sparc-leon*-* and deal with LEON in the
9391 sparc*-*-* block.
9392 * config/sparc/sparc.opt (LEON, LEON3): New masks.
9393 * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Set to AS_LEON_FLAG
9394 for LEON or LEON3.
9395 (ASM_CPU_SPEC): Pass AS_LEON_FLAG if -mcpu=leon or -mcpu=leon3.
9396 (AS_LEON_FLAG): New macro.
9397 * config/sparc/sparc.c (sparc_option_override): Set MASK_LEON for leon
9398 and MASK_LEON3 for leon3 and unset them if HAVE_AS_LEON is not defined.
9399 Deal with LEON and LEON3 for the memory model.
23a6cb78 9400 * config/sparc/sync.md (atomic_compare_and_swap<mode>): Enable if LEON3
1f65ae7a
EB
9401 (atomic_compare_and_swap<mode>_1): Likewise.
9402 (*atomic_compare_and_swap<mode>_1): Likewise.
9403
ff522f7f
ZC
94042013-08-09 Zhenqiang Chen <zhenqiang.chen@linaro.org>
9405
9406 * config/arm/neon.md (vcond): Fix floating-point vector
9407 comparisons against 0.
9408
cb1cca12
VM
94092013-08-08 Vladimir Makarov <vmakarov@redhat.com>
9410
9411 * lra-constraints.c (emit_spill_move): Remove assert.
9412 (process_alt_operands): Add more debugging
9413 output. Increase reject for spilling into memory. Decrease
9414 reject for reloading scratch.
9415 (split_reg): Use HARD_REGNO_CALLER_SAVE_MODE.
9416
a3719e31
SE
94172013-08-08 Steve Ellcey <sellcey@mips.com>
9418
9419 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add nan2008.
9420 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Make mips16 and
9421 micromips incompatible. Add nan2008.
9422 (MULTILIB_DIRNAMES): Add nan2008.
9423 (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
9424 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Make mips16
9425 and micromips incompatible. Add nan2008.
9426 (MULTILIB_DIRNAMES): Add nan2008.
9427 (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
9428
f40423e2
RS
94292013-08-08 Richard Sandiford <rdsandiford@googlemail.com>
9430
9431 PR rtl-optimization/58079
9432 * combine.c (combine_simplify_rtx): Avoid using SUBST if
9433 simplify_comparison has widened a comparison with an integer.
9434
869b9125
KT
94352013-08-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9436
9437 * config/arm/neon.md (movmisalign<mode>): Disable when we
9438 don't allow unaligned accesses.
9439 (*movmisalign<mode>_neon_store): Likewise.
9440 (*movmisalign<mode>_neon_load): Likewise.
9441 (*movmisalign<mode>_neon_store): Likewise.
9442 (*movmisalign<mode>_neon_load): Likewise.
9443
71cafea9
JH
94442013-08-08 Jan Hubicka <jh@suse.cz>
9445
9446 * cgraphbuild.c (build_cgraph_edges): Do not walk into debugs.
9447 (make_pass_rebuild_cgraph_edges): Also clear references.
9448 * cgraph.c (verify_cgraph_node): Add basic ipa-ref verifier.
9449 * ipa-inline-transform.c (inline_transform): Remove all references
9450 after inlining.
c97fd4b8
UB
9451 * cgraphunit.c (expand_function): Remove all references after
9452 expansion.
71cafea9
JH
9453 * ipa-ref.c (ipa_ref_has_aliases_p): Fix formatting.
9454 (ipa_find_reference): Rewrite to iterator.
9455 (remove_stmt_references): Likewise.
9456 (ipa_clear_stmts_in_references): New function.
9457 * ipa-ref.h (ipa_clear_stmts_in_references): Declare.
03b0ee0a
UB
9458 * cgraphclones.c (cgraph_materialize_all_clones): Remove or
9459 clear references.
71cafea9
JH
9460 * ipa-split.c (split_function): Remove references in split function.
9461
27d2e612
RE
94622013-08-08 Richard Earnshaw <rearnsha@arm.com>
9463
9464 PR target/57431
1f65ae7a 9465 * config/arm/arm/neon.md (neon_vld1_dupdi): New expand pattern.
27d2e612
RE
9466 (neon_vld1_dup<mode> VD iterator): Iterate over VD not VDX.
9467
5efc661c
RE
94682013-08-08 Richard Earnshaw <rearnsha@arm.com>
9469
9470 PR target/56979
1f65ae7a 9471 * config/arm/arm.c (aapcs_vfp_allocate): Decompose the argument if the
5efc661c
RE
9472 suggested mode for the assignment isn't compatible with the
9473 registers required.
9474
f276d31d
BE
94752013-08-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
9476
9477 PR target/58065
9478 * config/arm/arm.h (MALLOC_ABI_ALIGNMENT): Define.
9479
4b8bc035
XDL
94802013-08-07 Xinliang David Li <davidxl@google.com>
9481
9482 * config/i386/i386.opt: New option -mtune-ctrl=.
9483 * config/i386/x86-tune.def: New file.
9484 * config/i386/i386.h: include x86-tune.def.
9485 * config/i386/i386.c (ix86_option_override_internal):
9486 Parsing -mtune-ctrl= option and set tune features.
9487
12211b99 94882013-08-07 Oleg Endo <olegendo@gcc.gnu.org>
a5b38740
OE
9489
9490 PR other/12081
03b0ee0a 9491 * config/rs6000/rs6000.c (gen_2arg_fn_t): Remove typedef.
a5b38740
OE
9492 (rs6000_emit_swdiv, rs6000_emit_swrsqrt): Don't cast result of GEN_FCN
9493 to gen_2arg_fn_t.
9494
5cf6635b
EB
94952013-08-07 Eric Botcazou <ebotcazou@adacore.com>
9496
9497 * rtl.h (update_alignments): Declare.
9498 * final.c (grow_label_align): New function extracted from...
9499 (shorten_branches): ...here. Call it.
9500 (update_alignments): New function.
9501 * reorg.c (sibling_labels): New variable.
9502 (get_label_before): Add SIBLING parameter. If it is non-zero, push
9503 the new label along with it onto the sibling_labels vector.
9504 (fill_simple_delay_slots): Adjust call to get_label_before.
9505 (fill_slots_from_thread): Likewise.
9506 (relax_delay_slots): Likewise.
9507 (make_return_insns): Likewise.
9508 (dbr_schedule): Invoke update_alignment on the sibling_labels vector.
9509
3c8ca1ab
EB
95102013-08-07 Eric Botcazou <ebotcazou@adacore.com>
9511
9512 * diagnostic.c (diagnostic_classify_diagnostic): Accept zero index and
9513 document its semantics.
9514 (diagnostic_report_diagnostic): Adjust accordingly.
9515
5ee5b32c
DM
95162013-08-07 David Malcolm <dmalcolm@redhat.com>
9517
03b0ee0a 9518 * config/sparc/sparc.c (insert_pass_work_around_errata): Move into...
5ee5b32c
DM
9519 (sparc_option_override): ...and port to new C++ pass API.
9520 * config/sparc/t-sparc (sparc.o): Add dep on CONTEXT_H
9521
abd566fa
PB
95222013-08-07 Peter Bergner <bergner@vnet.ibm.com>
9523
9524 * config/rs6000/rs6000.c (htm_expand_builtin) <case 0>: Remove.
9525
2077db1b
CT
95262013-08-06 Caroline Tice <cmtice@google.com>
9527
9528 * gcc.c (VTABLE_VERIFICATION_SPEC): New definition.
9529 (LINK_COMMAND_SPEC): Add VTABLE_VERIFICATION_SPEC.
9530 * tree-pass.h: Add pass_vtable_verify.
9531 * varasm.c (assemble_variable): Add code to properly set the comdat
9532 section and name for the .vtable_map_vars section.
9533 (assemble_vtyv_preinit_initializer): New function.
9534 (default_sectin_type_flags): Make sure .vtable_map_vars section has
9535 LINK_ONCE flag.
9536 * output.h: Add function decl for assemble_vtv_preinit_initializer.
9537 * vtable-verify.c: New file.
9538 * vtable-verify.h: New file.
9539 * flag-types.h (enum vtv_priority): Defintions for flag_vtable_verify
9540 initialiation levels.
9541 * timevar.def (TV_VTABLE_VERIFICATION): New definition.
9542 * passes.def: Insert pass_vtable_verify.
9543 * aclocal.m4: Reorder includes.
9544 * doc/invoke.texi: Document the -fvtable-verify=, -fvtv-debug, and
9545 -fvtv-counts options.
9546 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add vtv_start*.o,
9547 as appropriate, if -fvtable-verify=... is used.
9548 (GNU_USER_TARGET_ENDFILE_SPEC): Add vtv_end*.o as appropriate, if
9549 -fvtable-verify=... is used.
9550 * Makefile.in (OBJS): Add vtable-verify.o to list.
9551 (vtable-verify.o): Add new build rule.
9552 (GTFILES): Add vtable-verify.c to list.
9553 * common.opt (fvtable-verify=): New flag.
9554 (vtv_priority): Values for fvtable-verify= flag.
9555 (fvtv-counts): New flag.
9556 (fvtv-debug): New flag.
9557 * tree.h (save_vtable_map_decl): New extern function decl.
9558
03085d1c
DM
95592013-08-07 David Malcolm <dmalcolm@redhat.com>
9560
9561 * config/rl78/rl78.c (rl78_devirt_pass): Convert from a struct to...
9562 (pass_rl78_devirt): ...new subclass of rtl_opt_pass along with...
9563 (pass_data_rl78_devirt): ...new pass_data instance and...
9564 (make_pass_rl78_devirt): ...new function.
9565 (rl78_asm_file_start): Port pass registration to new C++ API.
9566
05555c4a
DM
95672013-08-07 David Malcolm <dmalcolm@redhat.com>
9568
9569 * coretypes.h (rtl_opt_pass): Add.
9570 (gcc::context): Add.
9571 * config/epiphany/epiphany.c (pass_mode_switch_use): New.
9572 (epiphany_init): Port to new C++ pass API.
9573 (epiphany_optimize_mode_switching): Likewise.
9574 * pass_manager.h (pass_manager::get_pass_split_all_insns): New.
9575 (pass_manager::get_pass_mode_switching): New.
9576 (pass_manager::get_pass_peephole2): New.
9577 * mode-switching.c (pass_mode_switching): Add clone method.
9578 * recog.c (pass_peephole2): Add clone method.
9579 (pass_split_all_insns): Add clone method.
9580
c5a12e26
DM
95812013-08-06 David Malcolm <dmalcolm@redhat.com>
9582
03b0ee0a
UB
9583 * config/mips/mips.c (insert_pass_mips_machine_reorg2): Move into...
9584 (mips_option_override): ...here, porting to new C++ API for passes.
c5a12e26 9585
a2e2a668
JH
95862013-08-06 Jan Hubicka <jh@suse.cz>
9587
9588 * cgraph.c (cgraph_get_body): New function based on lto.c
9589 implementation.
9590 * cgraph.h (cgraph_get_body): Declare.
03b0ee0a
UB
9591 * cgraphclones.c (cgraph_create_virtual_clone): Commonize WPA and
9592 LTO paths.
a2e2a668
JH
9593 * cgraphunit.c (expand_function): Get body prior expanding.
9594 * ipa.c (function_and_variable_visibility): Use gimple_has_body_p test.
03b0ee0a
UB
9595 * lto-cgraph.c (lto_output_node): Do not stream bodies we don't
9596 really need.
a2e2a668
JH
9597 * passes.c (do_per_function_toporder): Get body.
9598 * tree-inline.c (expand_call_inline): Get body prior inlining it.
9599 * tree-ssa-structalias.c (ipa_pta_execute): Get body; skip clones.
9600
15682f24
MJ
96012013-08-06 Martin Jambor <mjambor@suse.cz>
9602
9603 PR fortran/57987
9604 * cgraphunit.c (cgraph_finalize_function): Assert that nested function
9605 is not re-finalized. Rename second parameter to no_collect.
9606
78f6dd68
MJ
96072013-08-06 Martin Jambor <mjambor@suse.cz>
9608
9609 PR middle-end/58041
9610 * gimple-ssa-strength-reduction.c (replace_ref): Make sure built
9611 MEM_REF has proper alignment information.
9612
12211b99 96132013-08-05 Oleg Endo <olegendo@gcc.gnu.org>
eb923e54
OE
9614
9615 PR other/12081
9616 * recog.h (rtx (*insn_gen_fn) (rtx, ...)): Replace typedef with new
9617 class insn_gen_fn.
9618 * expr.c (move_by_pieces_1, store_by_pieces_2): Replace argument
9619 rtx (*) (rtx, ...) with insn_gen_fn.
9620 * genoutput.c (output_insn_data): Cast gen_? function pointers to
9621 insn_gen_fn::stored_funcptr. Add initializer braces.
9622
8ac69a6c
DM
96232013-08-05 David Malcolm <dmalcolm@redhat.com>
9624
9625 Rewrite how instances of passes are cloned to remove assumptions
9626 about their sizes (thus allowing pass subclasses to have
9627 additional data fields, albeit non-GC-managed ones at this point).
9628
9629 * passes.c (make_pass_instance): Now that passes have clone
9630 methods, rewrite this function to eliminate XNEW and memcpy
9631 calls that used hardcoded sizes. Since this function no longer
9632 creates pass instances, rename it to...
03b0ee0a
UB
9633 (add_pass_instance): ...this. Document the old way that passes were
9634 numbered and flagged, and rework this function to continue using it.
8ac69a6c
DM
9635 (next_pass_1): Add an initial_pass argument for use by
9636 add_pass_instance.
9637 (position_pass): When adding multiple instances of a pass, use
9638 the pass's clone method, rather than relying on the XNEW/memcpy
9639 within the former make_pass_instance (now add_pass_instance).
03b0ee0a
UB
9640 (pass_manager::pass_manager): When invoking next_pass_1, also supply
9641 the initial instance of the current pass within the pass manager.
8ac69a6c 9642
27a4cd48
DM
96432013-08-05 David Malcolm <dmalcolm@redhat.com>
9644
9645 This is the automated part of the conversion of passes from C
9646 structs to C++ classes.
9647
9648 Patch autogenerated by refactor_passes.py from
9649 https://github.com/davidmalcolm/gcc-refactoring-scripts
9650 revision 03fe39476a4c4ea450b49e087cfa817b5f92021e
9651
9652 * asan.c (pass_asan): Convert from a global struct to a subclass of
9653 gimple_opt_pass along with...
9654 (pass_data_asan): ...new pass_data instance and...
9655 (make_pass_asan): ...new function.
9656 (pass_asan_O0): Convert from a global struct to a subclass of
9657 gimple_opt_pass along with...
9658 (pass_data_asan_O0): ...new pass_data instance and...
9659 (make_pass_asan_O0): ...new function.
9660 * auto-inc-dec.c (pass_inc_dec): Convert from a global struct to a
9661 subclass of rtl_opt_pass along with...
9662 (pass_data_inc_dec): ...new pass_data instance and...
9663 (make_pass_inc_dec): ...new function.
9664 * bb-reorder.c (pass_reorder_blocks): Convert from a global struct to
9665 a subclass of rtl_opt_pass along with...
9666 (pass_data_reorder_blocks): ...new pass_data instance and...
9667 (make_pass_reorder_blocks): ...new function.
9668 (pass_duplicate_computed_gotos): Convert from a global struct to a
9669 subclass of rtl_opt_pass along with...
9670 (pass_data_duplicate_computed_gotos): ...new pass_data instance and...
9671 (make_pass_duplicate_computed_gotos): ...new function.
9672 (pass_partition_blocks): Convert from a global struct to a subclass of
9673 rtl_opt_pass along with...
9674 (pass_data_partition_blocks): ...new pass_data instance and...
9675 (make_pass_partition_blocks): ...new function.
9676 * bt-load.c (pass_branch_target_load_optimize1): Convert from a global
9677 struct to a subclass of rtl_opt_pass along with...
9678 (pass_data_branch_target_load_optimize1): ...new pass_data instance
9679 and...
9680 (make_pass_branch_target_load_optimize1): ...new function.
9681 (pass_branch_target_load_optimize2): Convert from a global struct to a
9682 subclass of rtl_opt_pass along with...
9683 (pass_data_branch_target_load_optimize2): ...new pass_data instance
9684 and...
9685 (make_pass_branch_target_load_optimize2): ...new function.
9686 * cfgcleanup.c (pass_jump): Convert from a global struct to a subclass
9687 of rtl_opt_pass along with...
9688 (pass_data_jump): ...new pass_data instance and...
9689 (make_pass_jump): ...new function.
9690 (pass_jump2): Convert from a global struct to a subclass of
9691 rtl_opt_pass along with...
9692 (pass_data_jump2): ...new pass_data instance and...
9693 (make_pass_jump2): ...new function.
9694 * cfgexpand.c (pass_expand): Convert from a global struct to a
9695 subclass of rtl_opt_pass along with...
9696 (pass_data_expand): ...new pass_data instance and...
9697 (make_pass_expand): ...new function.
9698 * cfgrtl.c (pass_free_cfg): Convert from a global struct to a subclass
9699 of rtl_opt_pass along with...
9700 (pass_data_free_cfg): ...new pass_data instance and...
9701 (make_pass_free_cfg): ...new function.
9702 (pass_into_cfg_layout_mode): Convert from a global struct to a
9703 subclass of rtl_opt_pass along with...
9704 (pass_data_into_cfg_layout_mode): ...new pass_data instance and...
9705 (make_pass_into_cfg_layout_mode): ...new function.
9706 (pass_outof_cfg_layout_mode): Convert from a global struct to a
9707 subclass of rtl_opt_pass along with...
9708 (pass_data_outof_cfg_layout_mode): ...new pass_data instance and...
9709 (make_pass_outof_cfg_layout_mode): ...new function.
9710 * cgraphbuild.c (pass_build_cgraph_edges): Convert from a global
9711 struct to a subclass of gimple_opt_pass along with...
9712 (pass_data_build_cgraph_edges): ...new pass_data instance and...
9713 (make_pass_build_cgraph_edges): ...new function.
9714 (pass_rebuild_cgraph_edges): Convert from a global struct to a
9715 subclass of gimple_opt_pass along with...
9716 (pass_data_rebuild_cgraph_edges): ...new pass_data instance and...
9717 (make_pass_rebuild_cgraph_edges): ...new function.
9718 (pass_remove_cgraph_callee_edges): Convert from a global struct to a
9719 subclass of gimple_opt_pass along with...
9720 (pass_data_remove_cgraph_callee_edges): ...new pass_data instance
9721 and...
9722 (make_pass_remove_cgraph_callee_edges): ...new function.
9723 * combine-stack-adj.c (pass_stack_adjustments): Convert from a global
9724 struct to a subclass of rtl_opt_pass along with...
9725 (pass_data_stack_adjustments): ...new pass_data instance and...
9726 (make_pass_stack_adjustments): ...new function.
9727 * combine.c (pass_combine): Convert from a global struct to a subclass
9728 of rtl_opt_pass along with...
9729 (pass_data_combine): ...new pass_data instance and...
9730 (make_pass_combine): ...new function.
9731 * compare-elim.c (pass_compare_elim_after_reload): Convert from a
9732 global struct to a subclass of rtl_opt_pass along with...
9733 (pass_data_compare_elim_after_reload): ...new pass_data instance
9734 and...
9735 (make_pass_compare_elim_after_reload): ...new function.
9736 * cprop.c (pass_rtl_cprop): Convert from a global struct to a subclass
9737 of rtl_opt_pass along with...
9738 (pass_data_rtl_cprop): ...new pass_data instance and...
9739 (make_pass_rtl_cprop): ...new function.
9740 * cse.c (pass_cse): Convert from a global struct to a subclass of
9741 rtl_opt_pass along with...
9742 (pass_data_cse): ...new pass_data instance and...
9743 (make_pass_cse): ...new function.
9744 (pass_cse2): Convert from a global struct to a subclass of
9745 rtl_opt_pass along with...
9746 (pass_data_cse2): ...new pass_data instance and...
9747 (make_pass_cse2): ...new function.
9748 (pass_cse_after_global_opts): Convert from a global struct to a
9749 subclass of rtl_opt_pass along with...
9750 (pass_data_cse_after_global_opts): ...new pass_data instance and...
9751 (make_pass_cse_after_global_opts): ...new function.
9752 * dce.c (pass_ud_rtl_dce): Convert from a global struct to a subclass
9753 of rtl_opt_pass along with...
9754 (pass_data_ud_rtl_dce): ...new pass_data instance and...
9755 (make_pass_ud_rtl_dce): ...new function.
9756 (pass_fast_rtl_dce): Convert from a global struct to a subclass of
9757 rtl_opt_pass along with...
9758 (pass_data_fast_rtl_dce): ...new pass_data instance and...
9759 (make_pass_fast_rtl_dce): ...new function.
9760 * df-core.c (pass_df_initialize_opt): Convert from a global struct to
9761 a subclass of rtl_opt_pass along with...
9762 (pass_data_df_initialize_opt): ...new pass_data instance and...
9763 (make_pass_df_initialize_opt): ...new function.
9764 (pass_df_initialize_no_opt): Convert from a global struct to a
9765 subclass of rtl_opt_pass along with...
9766 (pass_data_df_initialize_no_opt): ...new pass_data instance and...
9767 (make_pass_df_initialize_no_opt): ...new function.
9768 (pass_df_finish): Convert from a global struct to a subclass of
9769 rtl_opt_pass along with...
9770 (pass_data_df_finish): ...new pass_data instance and...
9771 (make_pass_df_finish): ...new function.
9772 * dse.c (pass_rtl_dse1): Convert from a global struct to a subclass of
9773 rtl_opt_pass along with...
9774 (pass_data_rtl_dse1): ...new pass_data instance and...
9775 (make_pass_rtl_dse1): ...new function.
9776 (pass_rtl_dse2): Convert from a global struct to a subclass of
9777 rtl_opt_pass along with...
9778 (pass_data_rtl_dse2): ...new pass_data instance and...
9779 (make_pass_rtl_dse2): ...new function.
9780 * dwarf2cfi.c (pass_dwarf2_frame): Convert from a global struct to a
9781 subclass of rtl_opt_pass along with...
9782 (pass_data_dwarf2_frame): ...new pass_data instance and...
9783 (make_pass_dwarf2_frame): ...new function.
9784 * except.c (pass_set_nothrow_function_flags): Convert from a global
9785 struct to a subclass of rtl_opt_pass along with...
9786 (pass_data_set_nothrow_function_flags): ...new pass_data instance
9787 and...
9788 (make_pass_set_nothrow_function_flags): ...new function.
9789 (pass_convert_to_eh_region_ranges): Convert from a global struct to a
9790 subclass of rtl_opt_pass along with...
9791 (pass_data_convert_to_eh_region_ranges): ...new pass_data instance
9792 and...
9793 (make_pass_convert_to_eh_region_ranges): ...new function.
9794 * final.c (pass_compute_alignments): Convert from a global struct to a
9795 subclass of rtl_opt_pass along with...
9796 (pass_data_compute_alignments): ...new pass_data instance and...
9797 (make_pass_compute_alignments): ...new function.
9798 (pass_final): Convert from a global struct to a subclass of
9799 rtl_opt_pass along with...
9800 (pass_data_final): ...new pass_data instance and...
9801 (make_pass_final): ...new function.
9802 (pass_shorten_branches): Convert from a global struct to a subclass of
9803 rtl_opt_pass along with...
9804 (pass_data_shorten_branches): ...new pass_data instance and...
9805 (make_pass_shorten_branches): ...new function.
9806 (pass_clean_state): Convert from a global struct to a subclass of
9807 rtl_opt_pass along with...
9808 (pass_data_clean_state): ...new pass_data instance and...
9809 (make_pass_clean_state): ...new function.
9810 * function.c (pass_instantiate_virtual_regs): Convert from a global
9811 struct to a subclass of rtl_opt_pass along with...
9812 (pass_data_instantiate_virtual_regs): ...new pass_data instance and...
9813 (make_pass_instantiate_virtual_regs): ...new function.
9814 (pass_leaf_regs): Convert from a global struct to a subclass of
9815 rtl_opt_pass along with...
9816 (pass_data_leaf_regs): ...new pass_data instance and...
9817 (make_pass_leaf_regs): ...new function.
9818 (pass_thread_prologue_and_epilogue): Convert from a global struct to a
9819 subclass of rtl_opt_pass along with...
9820 (pass_data_thread_prologue_and_epilogue): ...new pass_data instance
9821 and...
9822 (make_pass_thread_prologue_and_epilogue): ...new function.
9823 (pass_match_asm_constraints): Convert from a global struct to a
9824 subclass of rtl_opt_pass along with...
9825 (pass_data_match_asm_constraints): ...new pass_data instance and...
9826 (make_pass_match_asm_constraints): ...new function.
9827 * fwprop.c (pass_rtl_fwprop): Convert from a global struct to a
9828 subclass of rtl_opt_pass along with...
9829 (pass_data_rtl_fwprop): ...new pass_data instance and...
9830 (make_pass_rtl_fwprop): ...new function.
9831 (pass_rtl_fwprop_addr): Convert from a global struct to a subclass of
9832 rtl_opt_pass along with...
9833 (pass_data_rtl_fwprop_addr): ...new pass_data instance and...
9834 (make_pass_rtl_fwprop_addr): ...new function.
9835 * gcse.c (pass_rtl_pre): Convert from a global struct to a subclass of
9836 rtl_opt_pass along with...
9837 (pass_data_rtl_pre): ...new pass_data instance and...
9838 (make_pass_rtl_pre): ...new function.
9839 (pass_rtl_hoist): Convert from a global struct to a subclass of
9840 rtl_opt_pass along with...
9841 (pass_data_rtl_hoist): ...new pass_data instance and...
9842 (make_pass_rtl_hoist): ...new function.
9843 * gimple-low.c (pass_lower_cf): Convert from a global struct to a
9844 subclass of gimple_opt_pass along with...
9845 (pass_data_lower_cf): ...new pass_data instance and...
9846 (make_pass_lower_cf): ...new function.
9847 * gimple-ssa-strength-reduction.c (pass_strength_reduction): Convert
9848 from a global struct to a subclass of gimple_opt_pass along with...
9849 (pass_data_strength_reduction): ...new pass_data instance and...
9850 (make_pass_strength_reduction): ...new function.
9851 * ifcvt.c (pass_rtl_ifcvt): Convert from a global struct to a subclass
9852 of rtl_opt_pass along with...
9853 (pass_data_rtl_ifcvt): ...new pass_data instance and...
9854 (make_pass_rtl_ifcvt): ...new function.
9855 (pass_if_after_combine): Convert from a global struct to a subclass of
9856 rtl_opt_pass along with...
9857 (pass_data_if_after_combine): ...new pass_data instance and...
9858 (make_pass_if_after_combine): ...new function.
9859 (pass_if_after_reload): Convert from a global struct to a subclass of
9860 rtl_opt_pass along with...
9861 (pass_data_if_after_reload): ...new pass_data instance and...
9862 (make_pass_if_after_reload): ...new function.
9863 * init-regs.c (pass_initialize_regs): Convert from a global struct to
9864 a subclass of rtl_opt_pass along with...
9865 (pass_data_initialize_regs): ...new pass_data instance and...
9866 (make_pass_initialize_regs): ...new function.
9867 * ipa-cp.c (pass_ipa_cp): Convert from a global struct to a subclass
9868 of ipa_opt_pass_d along with...
9869 (pass_data_ipa_cp): ...new pass_data instance and...
9870 (make_pass_ipa_cp): ...new function.
9871 * ipa-inline-analysis.c (pass_inline_parameters): Convert from a
9872 global struct to a subclass of gimple_opt_pass along with...
9873 (pass_data_inline_parameters): ...new pass_data instance and...
9874 (make_pass_inline_parameters): ...new function.
9875 * ipa-inline.c (pass_early_inline): Convert from a global struct to a
9876 subclass of gimple_opt_pass along with...
9877 (pass_data_early_inline): ...new pass_data instance and...
9878 (make_pass_early_inline): ...new function.
9879 (pass_ipa_inline): Convert from a global struct to a subclass of
9880 ipa_opt_pass_d along with...
9881 (pass_data_ipa_inline): ...new pass_data instance and...
9882 (make_pass_ipa_inline): ...new function.
9883 * ipa-pure-const.c (pass_local_pure_const): Convert from a global
9884 struct to a subclass of gimple_opt_pass along with...
9885 (pass_data_local_pure_const): ...new pass_data instance and...
9886 (make_pass_local_pure_const): ...new function.
9887 (pass_ipa_pure_const): Convert from a global struct to a subclass of
9888 ipa_opt_pass_d along with...
9889 (pass_data_ipa_pure_const): ...new pass_data instance and...
9890 (make_pass_ipa_pure_const): ...new function.
9891 * ipa-reference.c (pass_ipa_reference): Convert from a global struct
9892 to a subclass of ipa_opt_pass_d along with...
9893 (pass_data_ipa_reference): ...new pass_data instance and...
9894 (make_pass_ipa_reference): ...new function.
9895 * ipa-split.c (pass_split_functions): Convert from a global struct to
9896 a subclass of gimple_opt_pass along with...
9897 (pass_data_split_functions): ...new pass_data instance and...
9898 (make_pass_split_functions): ...new function.
9899 (pass_feedback_split_functions): Convert from a global struct to a
9900 subclass of gimple_opt_pass along with...
9901 (pass_data_feedback_split_functions): ...new pass_data instance and...
9902 (make_pass_feedback_split_functions): ...new function.
9903 * ipa.c (pass_ipa_function_and_variable_visibility): Convert from a
9904 global struct to a subclass of simple_ipa_opt_pass along with...
9905 (pass_data_ipa_function_and_variable_visibility): ...new pass_data
9906 instance and...
9907 (make_pass_ipa_function_and_variable_visibility): ...new function.
9908 (pass_ipa_free_inline_summary): Convert from a global struct to a
9909 subclass of simple_ipa_opt_pass along with...
9910 (pass_data_ipa_free_inline_summary): ...new pass_data instance and...
9911 (make_pass_ipa_free_inline_summary): ...new function.
9912 (pass_ipa_whole_program_visibility): Convert from a global struct to a
9913 subclass of ipa_opt_pass_d along with...
9914 (pass_data_ipa_whole_program_visibility): ...new pass_data instance
9915 and...
9916 (make_pass_ipa_whole_program_visibility): ...new function.
9917 (pass_ipa_profile): Convert from a global struct to a subclass of
9918 ipa_opt_pass_d along with...
9919 (pass_data_ipa_profile): ...new pass_data instance and...
9920 (make_pass_ipa_profile): ...new function.
9921 (pass_ipa_cdtor_merge): Convert from a global struct to a subclass of
9922 ipa_opt_pass_d along with...
9923 (pass_data_ipa_cdtor_merge): ...new pass_data instance and...
9924 (make_pass_ipa_cdtor_merge): ...new function.
9925 * ira.c (pass_ira): Convert from a global struct to a subclass of
9926 rtl_opt_pass along with...
9927 (pass_data_ira): ...new pass_data instance and...
9928 (make_pass_ira): ...new function.
9929 (pass_reload): Convert from a global struct to a subclass of
9930 rtl_opt_pass along with...
9931 (pass_data_reload): ...new pass_data instance and...
9932 (make_pass_reload): ...new function.
9933 * jump.c (pass_cleanup_barriers): Convert from a global struct to a
9934 subclass of rtl_opt_pass along with...
9935 (pass_data_cleanup_barriers): ...new pass_data instance and...
9936 (make_pass_cleanup_barriers): ...new function.
9937 * loop-init.c (pass_loop2): Convert from a global struct to a subclass
9938 of rtl_opt_pass along with...
9939 (pass_data_loop2): ...new pass_data instance and...
9940 (make_pass_loop2): ...new function.
9941 (pass_rtl_loop_init): Convert from a global struct to a subclass of
9942 rtl_opt_pass along with...
9943 (pass_data_rtl_loop_init): ...new pass_data instance and...
9944 (make_pass_rtl_loop_init): ...new function.
9945 (pass_rtl_loop_done): Convert from a global struct to a subclass of
9946 rtl_opt_pass along with...
9947 (pass_data_rtl_loop_done): ...new pass_data instance and...
9948 (make_pass_rtl_loop_done): ...new function.
9949 (pass_rtl_move_loop_invariants): Convert from a global struct to a
9950 subclass of rtl_opt_pass along with...
9951 (pass_data_rtl_move_loop_invariants): ...new pass_data instance and...
9952 (make_pass_rtl_move_loop_invariants): ...new function.
9953 (pass_rtl_unswitch): Convert from a global struct to a subclass of
9954 rtl_opt_pass along with...
9955 (pass_data_rtl_unswitch): ...new pass_data instance and...
9956 (make_pass_rtl_unswitch): ...new function.
9957 (pass_rtl_unroll_and_peel_loops): Convert from a global struct to a
9958 subclass of rtl_opt_pass along with...
9959 (pass_data_rtl_unroll_and_peel_loops): ...new pass_data instance
9960 and...
9961 (make_pass_rtl_unroll_and_peel_loops): ...new function.
9962 (pass_rtl_doloop): Convert from a global struct to a subclass of
9963 rtl_opt_pass along with...
9964 (pass_data_rtl_doloop): ...new pass_data instance and...
9965 (make_pass_rtl_doloop): ...new function.
9966 * lower-subreg.c (pass_lower_subreg): Convert from a global struct to
9967 a subclass of rtl_opt_pass along with...
9968 (pass_data_lower_subreg): ...new pass_data instance and...
9969 (make_pass_lower_subreg): ...new function.
9970 (pass_lower_subreg2): Convert from a global struct to a subclass of
9971 rtl_opt_pass along with...
9972 (pass_data_lower_subreg2): ...new pass_data instance and...
9973 (make_pass_lower_subreg2): ...new function.
9974 * lto-streamer-out.c (pass_ipa_lto_gimple_out): Convert from a global
9975 struct to a subclass of ipa_opt_pass_d along with...
9976 (pass_data_ipa_lto_gimple_out): ...new pass_data instance and...
9977 (make_pass_ipa_lto_gimple_out): ...new function.
9978 (pass_ipa_lto_finish_out): Convert from a global struct to a subclass
9979 of ipa_opt_pass_d along with...
9980 (pass_data_ipa_lto_finish_out): ...new pass_data instance and...
9981 (make_pass_ipa_lto_finish_out): ...new function.
9982 * mode-switching.c (pass_mode_switching): Convert from a global struct
9983 to a subclass of rtl_opt_pass along with...
9984 (pass_data_mode_switching): ...new pass_data instance and...
9985 (make_pass_mode_switching): ...new function.
9986 * modulo-sched.c (pass_sms): Convert from a global struct to a
9987 subclass of rtl_opt_pass along with...
9988 (pass_data_sms): ...new pass_data instance and...
9989 (make_pass_sms): ...new function.
9990 * omp-low.c (pass_expand_omp): Convert from a global struct to a
9991 subclass of gimple_opt_pass along with...
9992 (pass_data_expand_omp): ...new pass_data instance and...
9993 (make_pass_expand_omp): ...new function.
9994 (pass_lower_omp): Convert from a global struct to a subclass of
9995 gimple_opt_pass along with...
9996 (pass_data_lower_omp): ...new pass_data instance and...
9997 (make_pass_lower_omp): ...new function.
9998 (pass_diagnose_omp_blocks): Convert from a global struct to a subclass
9999 of gimple_opt_pass along with...
10000 (pass_data_diagnose_omp_blocks): ...new pass_data instance and...
10001 (make_pass_diagnose_omp_blocks): ...new function.
10002 * passes.c (pass_early_local_passes): Convert from a global struct to
10003 a subclass of simple_ipa_opt_pass along with...
10004 (pass_data_early_local_passes): ...new pass_data instance and...
10005 (make_pass_early_local_passes): ...new function.
10006 (pass_all_early_optimizations): Convert from a global struct to a
10007 subclass of gimple_opt_pass along with...
10008 (pass_data_all_early_optimizations): ...new pass_data instance and...
10009 (make_pass_all_early_optimizations): ...new function.
10010 (pass_all_optimizations): Convert from a global struct to a subclass
10011 of gimple_opt_pass along with...
10012 (pass_data_all_optimizations): ...new pass_data instance and...
10013 (make_pass_all_optimizations): ...new function.
10014 (pass_all_optimizations_g): Convert from a global struct to a subclass
10015 of gimple_opt_pass along with...
10016 (pass_data_all_optimizations_g): ...new pass_data instance and...
10017 (make_pass_all_optimizations_g): ...new function.
10018 (pass_rest_of_compilation): Convert from a global struct to a subclass
10019 of rtl_opt_pass along with...
10020 (pass_data_rest_of_compilation): ...new pass_data instance and...
10021 (make_pass_rest_of_compilation): ...new function.
10022 (pass_postreload): Convert from a global struct to a subclass of
10023 rtl_opt_pass along with...
10024 (pass_data_postreload): ...new pass_data instance and...
10025 (make_pass_postreload): ...new function.
10026 * postreload-gcse.c (pass_gcse2): Convert from a global struct to a
10027 subclass of rtl_opt_pass along with...
10028 (pass_data_gcse2): ...new pass_data instance and...
10029 (make_pass_gcse2): ...new function.
10030 * postreload.c (pass_postreload_cse): Convert from a global struct to
10031 a subclass of rtl_opt_pass along with...
10032 (pass_data_postreload_cse): ...new pass_data instance and...
10033 (make_pass_postreload_cse): ...new function.
10034 * predict.c (pass_profile): Convert from a global struct to a subclass
10035 of gimple_opt_pass along with...
10036 (pass_data_profile): ...new pass_data instance and...
10037 (make_pass_profile): ...new function.
10038 (pass_strip_predict_hints): Convert from a global struct to a subclass
10039 of gimple_opt_pass along with...
10040 (pass_data_strip_predict_hints): ...new pass_data instance and...
10041 (make_pass_strip_predict_hints): ...new function.
10042 * recog.c (pass_peephole2): Convert from a global struct to a subclass
10043 of rtl_opt_pass along with...
10044 (pass_data_peephole2): ...new pass_data instance and...
10045 (make_pass_peephole2): ...new function.
10046 (pass_split_all_insns): Convert from a global struct to a subclass of
10047 rtl_opt_pass along with...
10048 (pass_data_split_all_insns): ...new pass_data instance and...
10049 (make_pass_split_all_insns): ...new function.
10050 (pass_split_after_reload): Convert from a global struct to a subclass
10051 of rtl_opt_pass along with...
10052 (pass_data_split_after_reload): ...new pass_data instance and...
10053 (make_pass_split_after_reload): ...new function.
10054 (pass_split_before_regstack): Convert from a global struct to a
10055 subclass of rtl_opt_pass along with...
10056 (pass_data_split_before_regstack): ...new pass_data instance and...
10057 (make_pass_split_before_regstack): ...new function.
10058 (pass_split_before_sched2): Convert from a global struct to a subclass
10059 of rtl_opt_pass along with...
10060 (pass_data_split_before_sched2): ...new pass_data instance and...
10061 (make_pass_split_before_sched2): ...new function.
10062 (pass_split_for_shorten_branches): Convert from a global struct to a
10063 subclass of rtl_opt_pass along with...
10064 (pass_data_split_for_shorten_branches): ...new pass_data instance
10065 and...
10066 (make_pass_split_for_shorten_branches): ...new function.
10067 * ree.c (pass_ree): Convert from a global struct to a subclass of
10068 rtl_opt_pass along with...
10069 (pass_data_ree): ...new pass_data instance and...
10070 (make_pass_ree): ...new function.
10071 * reg-stack.c (pass_stack_regs): Convert from a global struct to a
10072 subclass of rtl_opt_pass along with...
10073 (pass_data_stack_regs): ...new pass_data instance and...
10074 (make_pass_stack_regs): ...new function.
10075 (pass_stack_regs_run): Convert from a global struct to a subclass of
10076 rtl_opt_pass along with...
10077 (pass_data_stack_regs_run): ...new pass_data instance and...
10078 (make_pass_stack_regs_run): ...new function.
10079 * regcprop.c (pass_cprop_hardreg): Convert from a global struct to a
10080 subclass of rtl_opt_pass along with...
10081 (pass_data_cprop_hardreg): ...new pass_data instance and...
10082 (make_pass_cprop_hardreg): ...new function.
10083 * reginfo.c (pass_reginfo_init): Convert from a global struct to a
10084 subclass of rtl_opt_pass along with...
10085 (pass_data_reginfo_init): ...new pass_data instance and...
10086 (make_pass_reginfo_init): ...new function.
10087 * regmove.c (pass_regmove): Convert from a global struct to a subclass
10088 of rtl_opt_pass along with...
10089 (pass_data_regmove): ...new pass_data instance and...
10090 (make_pass_regmove): ...new function.
10091 * regrename.c (pass_regrename): Convert from a global struct to a
10092 subclass of rtl_opt_pass along with...
10093 (pass_data_regrename): ...new pass_data instance and...
10094 (make_pass_regrename): ...new function.
10095 * reorg.c (pass_delay_slots): Convert from a global struct to a
10096 subclass of rtl_opt_pass along with...
10097 (pass_data_delay_slots): ...new pass_data instance and...
10098 (make_pass_delay_slots): ...new function.
10099 (pass_machine_reorg): Convert from a global struct to a subclass of
10100 rtl_opt_pass along with...
10101 (pass_data_machine_reorg): ...new pass_data instance and...
10102 (make_pass_machine_reorg): ...new function.
10103 * sched-rgn.c (pass_sched): Convert from a global struct to a subclass
10104 of rtl_opt_pass along with...
10105 (pass_data_sched): ...new pass_data instance and...
10106 (make_pass_sched): ...new function.
10107 (pass_sched2): Convert from a global struct to a subclass of
10108 rtl_opt_pass along with...
10109 (pass_data_sched2): ...new pass_data instance and...
10110 (make_pass_sched2): ...new function.
10111 * stack-ptr-mod.c (pass_stack_ptr_mod): Convert from a global struct
10112 to a subclass of rtl_opt_pass along with...
10113 (pass_data_stack_ptr_mod): ...new pass_data instance and...
10114 (make_pass_stack_ptr_mod): ...new function.
10115 * store-motion.c (pass_rtl_store_motion): Convert from a global struct
10116 to a subclass of rtl_opt_pass along with...
10117 (pass_data_rtl_store_motion): ...new pass_data instance and...
10118 (make_pass_rtl_store_motion): ...new function.
10119 * tracer.c (pass_tracer): Convert from a global struct to a subclass
10120 of gimple_opt_pass along with...
10121 (pass_data_tracer): ...new pass_data instance and...
10122 (make_pass_tracer): ...new function.
10123 * trans-mem.c (pass_diagnose_tm_blocks): Convert from a global struct
10124 to a subclass of gimple_opt_pass along with...
10125 (pass_data_diagnose_tm_blocks): ...new pass_data instance and...
10126 (make_pass_diagnose_tm_blocks): ...new function.
10127 (pass_lower_tm): Convert from a global struct to a subclass of
10128 gimple_opt_pass along with...
10129 (pass_data_lower_tm): ...new pass_data instance and...
10130 (make_pass_lower_tm): ...new function.
10131 (pass_tm_init): Convert from a global struct to a subclass of
10132 gimple_opt_pass along with...
10133 (pass_data_tm_init): ...new pass_data instance and...
10134 (make_pass_tm_init): ...new function.
10135 (pass_tm_mark): Convert from a global struct to a subclass of
10136 gimple_opt_pass along with...
10137 (pass_data_tm_mark): ...new pass_data instance and...
10138 (make_pass_tm_mark): ...new function.
10139 (pass_tm_edges): Convert from a global struct to a subclass of
10140 gimple_opt_pass along with...
10141 (pass_data_tm_edges): ...new pass_data instance and...
10142 (make_pass_tm_edges): ...new function.
10143 (pass_tm_memopt): Convert from a global struct to a subclass of
10144 gimple_opt_pass along with...
10145 (pass_data_tm_memopt): ...new pass_data instance and...
10146 (make_pass_tm_memopt): ...new function.
10147 (pass_ipa_tm): Convert from a global struct to a subclass of
10148 simple_ipa_opt_pass along with...
10149 (pass_data_ipa_tm): ...new pass_data instance and...
10150 (make_pass_ipa_tm): ...new function.
10151 * tree-call-cdce.c (pass_call_cdce): Convert from a global struct to a
10152 subclass of gimple_opt_pass along with...
10153 (pass_data_call_cdce): ...new pass_data instance and...
10154 (make_pass_call_cdce): ...new function.
10155 * tree-cfg.c (pass_build_cfg): Convert from a global struct to a
10156 subclass of gimple_opt_pass along with...
10157 (pass_data_build_cfg): ...new pass_data instance and...
10158 (make_pass_build_cfg): ...new function.
10159 (pass_split_crit_edges): Convert from a global struct to a subclass of
10160 gimple_opt_pass along with...
10161 (pass_data_split_crit_edges): ...new pass_data instance and...
10162 (make_pass_split_crit_edges): ...new function.
10163 (pass_warn_function_return): Convert from a global struct to a
10164 subclass of gimple_opt_pass along with...
10165 (pass_data_warn_function_return): ...new pass_data instance and...
10166 (make_pass_warn_function_return): ...new function.
10167 (pass_warn_function_noreturn): Convert from a global struct to a
10168 subclass of gimple_opt_pass along with...
10169 (pass_data_warn_function_noreturn): ...new pass_data instance and...
10170 (make_pass_warn_function_noreturn): ...new function.
10171 (pass_warn_unused_result): Convert from a global struct to a subclass
10172 of gimple_opt_pass along with...
10173 (pass_data_warn_unused_result): ...new pass_data instance and...
10174 (make_pass_warn_unused_result): ...new function.
10175 * tree-cfgcleanup.c (pass_merge_phi): Convert from a global struct to
10176 a subclass of gimple_opt_pass along with...
10177 (pass_data_merge_phi): ...new pass_data instance and...
10178 (make_pass_merge_phi): ...new function.
10179 * tree-complex.c (pass_lower_complex): Convert from a global struct to
10180 a subclass of gimple_opt_pass along with...
10181 (pass_data_lower_complex): ...new pass_data instance and...
10182 (make_pass_lower_complex): ...new function.
10183 (pass_lower_complex_O0): Convert from a global struct to a subclass of
10184 gimple_opt_pass along with...
10185 (pass_data_lower_complex_O0): ...new pass_data instance and...
10186 (make_pass_lower_complex_O0): ...new function.
10187 * tree-eh.c (pass_lower_eh): Convert from a global struct to a
10188 subclass of gimple_opt_pass along with...
10189 (pass_data_lower_eh): ...new pass_data instance and...
10190 (make_pass_lower_eh): ...new function.
10191 (pass_refactor_eh): Convert from a global struct to a subclass of
10192 gimple_opt_pass along with...
10193 (pass_data_refactor_eh): ...new pass_data instance and...
10194 (make_pass_refactor_eh): ...new function.
10195 (pass_lower_resx): Convert from a global struct to a subclass of
10196 gimple_opt_pass along with...
10197 (pass_data_lower_resx): ...new pass_data instance and...
10198 (make_pass_lower_resx): ...new function.
10199 (pass_lower_eh_dispatch): Convert from a global struct to a subclass
10200 of gimple_opt_pass along with...
10201 (pass_data_lower_eh_dispatch): ...new pass_data instance and...
10202 (make_pass_lower_eh_dispatch): ...new function.
10203 (pass_cleanup_eh): Convert from a global struct to a subclass of
10204 gimple_opt_pass along with...
10205 (pass_data_cleanup_eh): ...new pass_data instance and...
10206 (make_pass_cleanup_eh): ...new function.
10207 * tree-emutls.c (pass_ipa_lower_emutls): Convert from a global struct
10208 to a subclass of simple_ipa_opt_pass along with...
10209 (pass_data_ipa_lower_emutls): ...new pass_data instance and...
10210 (make_pass_ipa_lower_emutls): ...new function.
10211 * tree-if-conv.c (pass_if_conversion): Convert from a global struct to
10212 a subclass of gimple_opt_pass along with...
10213 (pass_data_if_conversion): ...new pass_data instance and...
10214 (make_pass_if_conversion): ...new function.
10215 * tree-into-ssa.c (pass_build_ssa): Convert from a global struct to a
10216 subclass of gimple_opt_pass along with...
10217 (pass_data_build_ssa): ...new pass_data instance and...
10218 (make_pass_build_ssa): ...new function.
10219 * tree-loop-distribution.c (pass_loop_distribution): Convert from a
10220 global struct to a subclass of gimple_opt_pass along with...
10221 (pass_data_loop_distribution): ...new pass_data instance and...
10222 (make_pass_loop_distribution): ...new function.
10223 * tree-mudflap.c (pass_mudflap_1): Convert from a global struct to a
10224 subclass of gimple_opt_pass along with...
10225 (pass_data_mudflap_1): ...new pass_data instance and...
10226 (make_pass_mudflap_1): ...new function.
10227 (pass_mudflap_2): Convert from a global struct to a subclass of
10228 gimple_opt_pass along with...
10229 (pass_data_mudflap_2): ...new pass_data instance and...
10230 (make_pass_mudflap_2): ...new function.
10231 * tree-nomudflap.c (pass_mudflap_1): Convert from a global struct to a
10232 subclass of gimple_opt_pass along with...
10233 (pass_data_mudflap_1): ...new pass_data instance and...
10234 (make_pass_mudflap_1): ...new function.
10235 (pass_mudflap_2): Convert from a global struct to a subclass of
10236 gimple_opt_pass along with...
10237 (pass_data_mudflap_2): ...new pass_data instance and...
10238 (make_pass_mudflap_2): ...new function.
10239 * tree-nrv.c (pass_nrv): Convert from a global struct to a subclass of
10240 gimple_opt_pass along with...
10241 (pass_data_nrv): ...new pass_data instance and...
10242 (make_pass_nrv): ...new function.
10243 (pass_return_slot): Convert from a global struct to a subclass of
10244 gimple_opt_pass along with...
10245 (pass_data_return_slot): ...new pass_data instance and...
10246 (make_pass_return_slot): ...new function.
10247 * tree-object-size.c (pass_object_sizes): Convert from a global struct
10248 to a subclass of gimple_opt_pass along with...
10249 (pass_data_object_sizes): ...new pass_data instance and...
10250 (make_pass_object_sizes): ...new function.
10251 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Convert from a
10252 global struct to a subclass of gimple_opt_pass along with...
10253 (pass_data_cleanup_cfg_post_optimizing): ...new pass_data instance
10254 and...
10255 (make_pass_cleanup_cfg_post_optimizing): ...new function.
10256 (pass_fixup_cfg): Convert from a global struct to a subclass of
10257 gimple_opt_pass along with...
10258 (pass_data_fixup_cfg): ...new pass_data instance and...
10259 (make_pass_fixup_cfg): ...new function.
10260 * tree-pass.h (pass_mudflap_1): Replace declaration with that of...
10261 (make_pass_mudflap_1): ...new function.
10262 (pass_mudflap_2): Replace declaration with that of...
10263 (make_pass_mudflap_2): ...new function.
10264 (pass_asan): Replace declaration with that of...
10265 (make_pass_asan): ...new function.
10266 (pass_asan_O0): Replace declaration with that of...
10267 (make_pass_asan_O0): ...new function.
10268 (pass_tsan): Replace declaration with that of...
10269 (make_pass_tsan): ...new function.
10270 (pass_tsan_O0): Replace declaration with that of...
10271 (make_pass_tsan_O0): ...new function.
10272 (pass_lower_cf): Replace declaration with that of...
10273 (make_pass_lower_cf): ...new function.
10274 (pass_refactor_eh): Replace declaration with that of...
10275 (make_pass_refactor_eh): ...new function.
10276 (pass_lower_eh): Replace declaration with that of...
10277 (make_pass_lower_eh): ...new function.
10278 (pass_lower_eh_dispatch): Replace declaration with that of...
10279 (make_pass_lower_eh_dispatch): ...new function.
10280 (pass_lower_resx): Replace declaration with that of...
10281 (make_pass_lower_resx): ...new function.
10282 (pass_build_cfg): Replace declaration with that of...
10283 (make_pass_build_cfg): ...new function.
10284 (pass_early_tree_profile): Replace declaration with that of...
10285 (make_pass_early_tree_profile): ...new function.
10286 (pass_cleanup_eh): Replace declaration with that of...
10287 (make_pass_cleanup_eh): ...new function.
10288 (pass_sra): Replace declaration with that of...
10289 (make_pass_sra): ...new function.
10290 (pass_sra_early): Replace declaration with that of...
10291 (make_pass_sra_early): ...new function.
10292 (pass_early_ipa_sra): Replace declaration with that of...
10293 (make_pass_early_ipa_sra): ...new function.
10294 (pass_tail_recursion): Replace declaration with that of...
10295 (make_pass_tail_recursion): ...new function.
10296 (pass_tail_calls): Replace declaration with that of...
10297 (make_pass_tail_calls): ...new function.
10298 (pass_tree_loop): Replace declaration with that of...
10299 (make_pass_tree_loop): ...new function.
10300 (pass_tree_loop_init): Replace declaration with that of...
10301 (make_pass_tree_loop_init): ...new function.
10302 (pass_lim): Replace declaration with that of...
10303 (make_pass_lim): ...new function.
10304 (pass_tree_unswitch): Replace declaration with that of...
10305 (make_pass_tree_unswitch): ...new function.
10306 (pass_predcom): Replace declaration with that of...
10307 (make_pass_predcom): ...new function.
10308 (pass_iv_canon): Replace declaration with that of...
10309 (make_pass_iv_canon): ...new function.
10310 (pass_scev_cprop): Replace declaration with that of...
10311 (make_pass_scev_cprop): ...new function.
10312 (pass_empty_loop): Replace declaration with that of...
10313 (make_pass_empty_loop): ...new function.
10314 (pass_record_bounds): Replace declaration with that of...
10315 (make_pass_record_bounds): ...new function.
10316 (pass_graphite): Replace declaration with that of...
10317 (make_pass_graphite): ...new function.
10318 (pass_graphite_transforms): Replace declaration with that of...
10319 (make_pass_graphite_transforms): ...new function.
10320 (pass_if_conversion): Replace declaration with that of...
10321 (make_pass_if_conversion): ...new function.
10322 (pass_loop_distribution): Replace declaration with that of...
10323 (make_pass_loop_distribution): ...new function.
10324 (pass_vectorize): Replace declaration with that of...
10325 (make_pass_vectorize): ...new function.
10326 (pass_slp_vectorize): Replace declaration with that of...
10327 (make_pass_slp_vectorize): ...new function.
10328 (pass_complete_unroll): Replace declaration with that of...
10329 (make_pass_complete_unroll): ...new function.
10330 (pass_complete_unrolli): Replace declaration with that of...
10331 (make_pass_complete_unrolli): ...new function.
10332 (pass_parallelize_loops): Replace declaration with that of...
10333 (make_pass_parallelize_loops): ...new function.
10334 (pass_loop_prefetch): Replace declaration with that of...
10335 (make_pass_loop_prefetch): ...new function.
10336 (pass_iv_optimize): Replace declaration with that of...
10337 (make_pass_iv_optimize): ...new function.
10338 (pass_tree_loop_done): Replace declaration with that of...
10339 (make_pass_tree_loop_done): ...new function.
10340 (pass_ch): Replace declaration with that of...
10341 (make_pass_ch): ...new function.
10342 (pass_ccp): Replace declaration with that of...
10343 (make_pass_ccp): ...new function.
10344 (pass_phi_only_cprop): Replace declaration with that of...
10345 (make_pass_phi_only_cprop): ...new function.
10346 (pass_build_ssa): Replace declaration with that of...
10347 (make_pass_build_ssa): ...new function.
10348 (pass_build_alias): Replace declaration with that of...
10349 (make_pass_build_alias): ...new function.
10350 (pass_build_ealias): Replace declaration with that of...
10351 (make_pass_build_ealias): ...new function.
10352 (pass_dominator): Replace declaration with that of...
10353 (make_pass_dominator): ...new function.
10354 (pass_dce): Replace declaration with that of...
10355 (make_pass_dce): ...new function.
10356 (pass_dce_loop): Replace declaration with that of...
10357 (make_pass_dce_loop): ...new function.
10358 (pass_cd_dce): Replace declaration with that of...
10359 (make_pass_cd_dce): ...new function.
10360 (pass_call_cdce): Replace declaration with that of...
10361 (make_pass_call_cdce): ...new function.
10362 (pass_merge_phi): Replace declaration with that of...
10363 (make_pass_merge_phi): ...new function.
10364 (pass_split_crit_edges): Replace declaration with that of...
10365 (make_pass_split_crit_edges): ...new function.
10366 (pass_pre): Replace declaration with that of...
10367 (make_pass_pre): ...new function.
10368 (pass_profile): Replace declaration with that of...
10369 (make_pass_profile): ...new function.
10370 (pass_strip_predict_hints): Replace declaration with that of...
10371 (make_pass_strip_predict_hints): ...new function.
10372 (pass_lower_complex_O0): Replace declaration with that of...
10373 (make_pass_lower_complex_O0): ...new function.
10374 (pass_lower_complex): Replace declaration with that of...
10375 (make_pass_lower_complex): ...new function.
10376 (pass_lower_vector): Replace declaration with that of...
10377 (make_pass_lower_vector): ...new function.
10378 (pass_lower_vector_ssa): Replace declaration with that of...
10379 (make_pass_lower_vector_ssa): ...new function.
10380 (pass_lower_omp): Replace declaration with that of...
10381 (make_pass_lower_omp): ...new function.
10382 (pass_diagnose_omp_blocks): Replace declaration with that of...
10383 (make_pass_diagnose_omp_blocks): ...new function.
10384 (pass_expand_omp): Replace declaration with that of...
10385 (make_pass_expand_omp): ...new function.
10386 (pass_expand_omp_ssa): Replace declaration with that of...
10387 (make_pass_expand_omp_ssa): ...new function.
10388 (pass_object_sizes): Replace declaration with that of...
10389 (make_pass_object_sizes): ...new function.
10390 (pass_strlen): Replace declaration with that of...
10391 (make_pass_strlen): ...new function.
10392 (pass_fold_builtins): Replace declaration with that of...
10393 (make_pass_fold_builtins): ...new function.
10394 (pass_stdarg): Replace declaration with that of...
10395 (make_pass_stdarg): ...new function.
10396 (pass_early_warn_uninitialized): Replace declaration with that of...
10397 (make_pass_early_warn_uninitialized): ...new function.
10398 (pass_late_warn_uninitialized): Replace declaration with that of...
10399 (make_pass_late_warn_uninitialized): ...new function.
10400 (pass_cse_reciprocals): Replace declaration with that of...
10401 (make_pass_cse_reciprocals): ...new function.
10402 (pass_cse_sincos): Replace declaration with that of...
10403 (make_pass_cse_sincos): ...new function.
10404 (pass_optimize_bswap): Replace declaration with that of...
10405 (make_pass_optimize_bswap): ...new function.
10406 (pass_optimize_widening_mul): Replace declaration with that of...
10407 (make_pass_optimize_widening_mul): ...new function.
10408 (pass_warn_function_return): Replace declaration with that of...
10409 (make_pass_warn_function_return): ...new function.
10410 (pass_warn_function_noreturn): Replace declaration with that of...
10411 (make_pass_warn_function_noreturn): ...new function.
10412 (pass_cselim): Replace declaration with that of...
10413 (make_pass_cselim): ...new function.
10414 (pass_phiopt): Replace declaration with that of...
10415 (make_pass_phiopt): ...new function.
10416 (pass_forwprop): Replace declaration with that of...
10417 (make_pass_forwprop): ...new function.
10418 (pass_phiprop): Replace declaration with that of...
10419 (make_pass_phiprop): ...new function.
10420 (pass_tree_ifcombine): Replace declaration with that of...
10421 (make_pass_tree_ifcombine): ...new function.
10422 (pass_dse): Replace declaration with that of...
10423 (make_pass_dse): ...new function.
10424 (pass_nrv): Replace declaration with that of...
10425 (make_pass_nrv): ...new function.
10426 (pass_rename_ssa_copies): Replace declaration with that of...
10427 (make_pass_rename_ssa_copies): ...new function.
10428 (pass_sink_code): Replace declaration with that of...
10429 (make_pass_sink_code): ...new function.
10430 (pass_fre): Replace declaration with that of...
10431 (make_pass_fre): ...new function.
10432 (pass_check_data_deps): Replace declaration with that of...
10433 (make_pass_check_data_deps): ...new function.
10434 (pass_copy_prop): Replace declaration with that of...
10435 (make_pass_copy_prop): ...new function.
10436 (pass_vrp): Replace declaration with that of...
10437 (make_pass_vrp): ...new function.
10438 (pass_uncprop): Replace declaration with that of...
10439 (make_pass_uncprop): ...new function.
10440 (pass_return_slot): Replace declaration with that of...
10441 (make_pass_return_slot): ...new function.
10442 (pass_reassoc): Replace declaration with that of...
10443 (make_pass_reassoc): ...new function.
10444 (pass_rebuild_cgraph_edges): Replace declaration with that of...
10445 (make_pass_rebuild_cgraph_edges): ...new function.
10446 (pass_remove_cgraph_callee_edges): Replace declaration with that of...
10447 (make_pass_remove_cgraph_callee_edges): ...new function.
10448 (pass_build_cgraph_edges): Replace declaration with that of...
10449 (make_pass_build_cgraph_edges): ...new function.
10450 (pass_local_pure_const): Replace declaration with that of...
10451 (make_pass_local_pure_const): ...new function.
10452 (pass_tracer): Replace declaration with that of...
10453 (make_pass_tracer): ...new function.
10454 (pass_warn_unused_result): Replace declaration with that of...
10455 (make_pass_warn_unused_result): ...new function.
10456 (pass_diagnose_tm_blocks): Replace declaration with that of...
10457 (make_pass_diagnose_tm_blocks): ...new function.
10458 (pass_lower_tm): Replace declaration with that of...
10459 (make_pass_lower_tm): ...new function.
10460 (pass_tm_init): Replace declaration with that of...
10461 (make_pass_tm_init): ...new function.
10462 (pass_tm_mark): Replace declaration with that of...
10463 (make_pass_tm_mark): ...new function.
10464 (pass_tm_memopt): Replace declaration with that of...
10465 (make_pass_tm_memopt): ...new function.
10466 (pass_tm_edges): Replace declaration with that of...
10467 (make_pass_tm_edges): ...new function.
10468 (pass_split_functions): Replace declaration with that of...
10469 (make_pass_split_functions): ...new function.
10470 (pass_feedback_split_functions): Replace declaration with that of...
10471 (make_pass_feedback_split_functions): ...new function.
10472 (pass_strength_reduction): Replace declaration with that of...
10473 (make_pass_strength_reduction): ...new function.
10474 (pass_ipa_lower_emutls): Replace declaration with that of...
10475 (make_pass_ipa_lower_emutls): ...new function.
10476 (pass_ipa_function_and_variable_visibility): Replace declaration with
10477 that of...
10478 (make_pass_ipa_function_and_variable_visibility): ...new function.
10479 (pass_ipa_tree_profile): Replace declaration with that of...
10480 (make_pass_ipa_tree_profile): ...new function.
10481 (pass_early_local_passes): Replace declaration with that of...
10482 (make_pass_early_local_passes): ...new function.
10483 (pass_ipa_whole_program_visibility): Replace declaration with that
10484 of...
10485 (make_pass_ipa_whole_program_visibility): ...new function.
10486 (pass_ipa_lto_gimple_out): Replace declaration with that of...
10487 (make_pass_ipa_lto_gimple_out): ...new function.
10488 (pass_ipa_increase_alignment): Replace declaration with that of...
10489 (make_pass_ipa_increase_alignment): ...new function.
10490 (pass_ipa_inline): Replace declaration with that of...
10491 (make_pass_ipa_inline): ...new function.
10492 (pass_ipa_free_lang_data): Replace declaration with that of...
10493 (make_pass_ipa_free_lang_data): ...new function.
10494 (pass_ipa_free_inline_summary): Replace declaration with that of...
10495 (make_pass_ipa_free_inline_summary): ...new function.
10496 (pass_ipa_cp): Replace declaration with that of...
10497 (make_pass_ipa_cp): ...new function.
10498 (pass_ipa_reference): Replace declaration with that of...
10499 (make_pass_ipa_reference): ...new function.
10500 (pass_ipa_pure_const): Replace declaration with that of...
10501 (make_pass_ipa_pure_const): ...new function.
10502 (pass_ipa_pta): Replace declaration with that of...
10503 (make_pass_ipa_pta): ...new function.
10504 (pass_ipa_lto_finish_out): Replace declaration with that of...
10505 (make_pass_ipa_lto_finish_out): ...new function.
10506 (pass_ipa_tm): Replace declaration with that of...
10507 (make_pass_ipa_tm): ...new function.
10508 (pass_ipa_profile): Replace declaration with that of...
10509 (make_pass_ipa_profile): ...new function.
10510 (pass_ipa_cdtor_merge): Replace declaration with that of...
10511 (make_pass_ipa_cdtor_merge): ...new function.
10512 (pass_cleanup_cfg_post_optimizing): Replace declaration with that
10513 of...
10514 (make_pass_cleanup_cfg_post_optimizing): ...new function.
10515 (pass_init_datastructures): Replace declaration with that of...
10516 (make_pass_init_datastructures): ...new function.
10517 (pass_fixup_cfg): Replace declaration with that of...
10518 (make_pass_fixup_cfg): ...new function.
10519 (pass_expand): Replace declaration with that of...
10520 (make_pass_expand): ...new function.
10521 (pass_instantiate_virtual_regs): Replace declaration with that of...
10522 (make_pass_instantiate_virtual_regs): ...new function.
10523 (pass_rtl_fwprop): Replace declaration with that of...
10524 (make_pass_rtl_fwprop): ...new function.
10525 (pass_rtl_fwprop_addr): Replace declaration with that of...
10526 (make_pass_rtl_fwprop_addr): ...new function.
10527 (pass_jump): Replace declaration with that of...
10528 (make_pass_jump): ...new function.
10529 (pass_jump2): Replace declaration with that of...
10530 (make_pass_jump2): ...new function.
10531 (pass_lower_subreg): Replace declaration with that of...
10532 (make_pass_lower_subreg): ...new function.
10533 (pass_cse): Replace declaration with that of...
10534 (make_pass_cse): ...new function.
10535 (pass_fast_rtl_dce): Replace declaration with that of...
10536 (make_pass_fast_rtl_dce): ...new function.
10537 (pass_ud_rtl_dce): Replace declaration with that of...
10538 (make_pass_ud_rtl_dce): ...new function.
10539 (pass_rtl_dce): Replace declaration with that of...
10540 (make_pass_rtl_dce): ...new function.
10541 (pass_rtl_dse1): Replace declaration with that of...
10542 (make_pass_rtl_dse1): ...new function.
10543 (pass_rtl_dse2): Replace declaration with that of...
10544 (make_pass_rtl_dse2): ...new function.
10545 (pass_rtl_dse3): Replace declaration with that of...
10546 (make_pass_rtl_dse3): ...new function.
10547 (pass_rtl_cprop): Replace declaration with that of...
10548 (make_pass_rtl_cprop): ...new function.
10549 (pass_rtl_pre): Replace declaration with that of...
10550 (make_pass_rtl_pre): ...new function.
10551 (pass_rtl_hoist): Replace declaration with that of...
10552 (make_pass_rtl_hoist): ...new function.
10553 (pass_rtl_store_motion): Replace declaration with that of...
10554 (make_pass_rtl_store_motion): ...new function.
10555 (pass_cse_after_global_opts): Replace declaration with that of...
10556 (make_pass_cse_after_global_opts): ...new function.
10557 (pass_rtl_ifcvt): Replace declaration with that of...
10558 (make_pass_rtl_ifcvt): ...new function.
10559 (pass_into_cfg_layout_mode): Replace declaration with that of...
10560 (make_pass_into_cfg_layout_mode): ...new function.
10561 (pass_outof_cfg_layout_mode): Replace declaration with that of...
10562 (make_pass_outof_cfg_layout_mode): ...new function.
10563 (pass_loop2): Replace declaration with that of...
10564 (make_pass_loop2): ...new function.
10565 (pass_rtl_loop_init): Replace declaration with that of...
10566 (make_pass_rtl_loop_init): ...new function.
10567 (pass_rtl_move_loop_invariants): Replace declaration with that of...
10568 (make_pass_rtl_move_loop_invariants): ...new function.
10569 (pass_rtl_unswitch): Replace declaration with that of...
10570 (make_pass_rtl_unswitch): ...new function.
10571 (pass_rtl_unroll_and_peel_loops): Replace declaration with that of...
10572 (make_pass_rtl_unroll_and_peel_loops): ...new function.
10573 (pass_rtl_doloop): Replace declaration with that of...
10574 (make_pass_rtl_doloop): ...new function.
10575 (pass_rtl_loop_done): Replace declaration with that of...
10576 (make_pass_rtl_loop_done): ...new function.
10577 (pass_web): Replace declaration with that of...
10578 (make_pass_web): ...new function.
10579 (pass_cse2): Replace declaration with that of...
10580 (make_pass_cse2): ...new function.
10581 (pass_df_initialize_opt): Replace declaration with that of...
10582 (make_pass_df_initialize_opt): ...new function.
10583 (pass_df_initialize_no_opt): Replace declaration with that of...
10584 (make_pass_df_initialize_no_opt): ...new function.
10585 (pass_reginfo_init): Replace declaration with that of...
10586 (make_pass_reginfo_init): ...new function.
10587 (pass_inc_dec): Replace declaration with that of...
10588 (make_pass_inc_dec): ...new function.
10589 (pass_stack_ptr_mod): Replace declaration with that of...
10590 (make_pass_stack_ptr_mod): ...new function.
10591 (pass_initialize_regs): Replace declaration with that of...
10592 (make_pass_initialize_regs): ...new function.
10593 (pass_combine): Replace declaration with that of...
10594 (make_pass_combine): ...new function.
10595 (pass_if_after_combine): Replace declaration with that of...
10596 (make_pass_if_after_combine): ...new function.
10597 (pass_ree): Replace declaration with that of...
10598 (make_pass_ree): ...new function.
10599 (pass_partition_blocks): Replace declaration with that of...
10600 (make_pass_partition_blocks): ...new function.
10601 (pass_match_asm_constraints): Replace declaration with that of...
10602 (make_pass_match_asm_constraints): ...new function.
10603 (pass_regmove): Replace declaration with that of...
10604 (make_pass_regmove): ...new function.
10605 (pass_split_all_insns): Replace declaration with that of...
10606 (make_pass_split_all_insns): ...new function.
10607 (pass_fast_rtl_byte_dce): Replace declaration with that of...
10608 (make_pass_fast_rtl_byte_dce): ...new function.
10609 (pass_lower_subreg2): Replace declaration with that of...
10610 (make_pass_lower_subreg2): ...new function.
10611 (pass_mode_switching): Replace declaration with that of...
10612 (make_pass_mode_switching): ...new function.
10613 (pass_sms): Replace declaration with that of...
10614 (make_pass_sms): ...new function.
10615 (pass_sched): Replace declaration with that of...
10616 (make_pass_sched): ...new function.
10617 (pass_ira): Replace declaration with that of...
10618 (make_pass_ira): ...new function.
10619 (pass_reload): Replace declaration with that of...
10620 (make_pass_reload): ...new function.
10621 (pass_clean_state): Replace declaration with that of...
10622 (make_pass_clean_state): ...new function.
10623 (pass_branch_prob): Replace declaration with that of...
10624 (make_pass_branch_prob): ...new function.
10625 (pass_value_profile_transformations): Replace declaration with that
10626 of...
10627 (make_pass_value_profile_transformations): ...new function.
10628 (pass_postreload_cse): Replace declaration with that of...
10629 (make_pass_postreload_cse): ...new function.
10630 (pass_gcse2): Replace declaration with that of...
10631 (make_pass_gcse2): ...new function.
10632 (pass_split_after_reload): Replace declaration with that of...
10633 (make_pass_split_after_reload): ...new function.
10634 (pass_branch_target_load_optimize1): Replace declaration with that
10635 of...
10636 (make_pass_branch_target_load_optimize1): ...new function.
10637 (pass_thread_prologue_and_epilogue): Replace declaration with that
10638 of...
10639 (make_pass_thread_prologue_and_epilogue): ...new function.
10640 (pass_stack_adjustments): Replace declaration with that of...
10641 (make_pass_stack_adjustments): ...new function.
10642 (pass_peephole2): Replace declaration with that of...
10643 (make_pass_peephole2): ...new function.
10644 (pass_if_after_reload): Replace declaration with that of...
10645 (make_pass_if_after_reload): ...new function.
10646 (pass_regrename): Replace declaration with that of...
10647 (make_pass_regrename): ...new function.
10648 (pass_cprop_hardreg): Replace declaration with that of...
10649 (make_pass_cprop_hardreg): ...new function.
10650 (pass_reorder_blocks): Replace declaration with that of...
10651 (make_pass_reorder_blocks): ...new function.
10652 (pass_branch_target_load_optimize2): Replace declaration with that
10653 of...
10654 (make_pass_branch_target_load_optimize2): ...new function.
10655 (pass_leaf_regs): Replace declaration with that of...
10656 (make_pass_leaf_regs): ...new function.
10657 (pass_split_before_sched2): Replace declaration with that of...
10658 (make_pass_split_before_sched2): ...new function.
10659 (pass_compare_elim_after_reload): Replace declaration with that of...
10660 (make_pass_compare_elim_after_reload): ...new function.
10661 (pass_sched2): Replace declaration with that of...
10662 (make_pass_sched2): ...new function.
10663 (pass_stack_regs): Replace declaration with that of...
10664 (make_pass_stack_regs): ...new function.
10665 (pass_stack_regs_run): Replace declaration with that of...
10666 (make_pass_stack_regs_run): ...new function.
10667 (pass_df_finish): Replace declaration with that of...
10668 (make_pass_df_finish): ...new function.
10669 (pass_compute_alignments): Replace declaration with that of...
10670 (make_pass_compute_alignments): ...new function.
10671 (pass_duplicate_computed_gotos): Replace declaration with that of...
10672 (make_pass_duplicate_computed_gotos): ...new function.
10673 (pass_variable_tracking): Replace declaration with that of...
10674 (make_pass_variable_tracking): ...new function.
10675 (pass_free_cfg): Replace declaration with that of...
10676 (make_pass_free_cfg): ...new function.
10677 (pass_machine_reorg): Replace declaration with that of...
10678 (make_pass_machine_reorg): ...new function.
10679 (pass_cleanup_barriers): Replace declaration with that of...
10680 (make_pass_cleanup_barriers): ...new function.
10681 (pass_delay_slots): Replace declaration with that of...
10682 (make_pass_delay_slots): ...new function.
10683 (pass_split_for_shorten_branches): Replace declaration with that of...
10684 (make_pass_split_for_shorten_branches): ...new function.
10685 (pass_split_before_regstack): Replace declaration with that of...
10686 (make_pass_split_before_regstack): ...new function.
10687 (pass_convert_to_eh_region_ranges): Replace declaration with that
10688 of...
10689 (make_pass_convert_to_eh_region_ranges): ...new function.
10690 (pass_shorten_branches): Replace declaration with that of...
10691 (make_pass_shorten_branches): ...new function.
10692 (pass_set_nothrow_function_flags): Replace declaration with that of...
10693 (make_pass_set_nothrow_function_flags): ...new function.
10694 (pass_dwarf2_frame): Replace declaration with that of...
10695 (make_pass_dwarf2_frame): ...new function.
10696 (pass_final): Replace declaration with that of...
10697 (make_pass_final): ...new function.
10698 (pass_rtl_seqabstr): Replace declaration with that of...
10699 (make_pass_rtl_seqabstr): ...new function.
10700 (pass_release_ssa_names): Replace declaration with that of...
10701 (make_pass_release_ssa_names): ...new function.
10702 (pass_early_inline): Replace declaration with that of...
10703 (make_pass_early_inline): ...new function.
10704 (pass_inline_parameters): Replace declaration with that of...
10705 (make_pass_inline_parameters): ...new function.
10706 (pass_update_address_taken): Replace declaration with that of...
10707 (make_pass_update_address_taken): ...new function.
10708 (pass_convert_switch): Replace declaration with that of...
10709 (make_pass_convert_switch): ...new function.
10710 * tree-profile.c (pass_ipa_tree_profile): Convert from a global struct
10711 to a subclass of simple_ipa_opt_pass along with...
10712 (pass_data_ipa_tree_profile): ...new pass_data instance and...
10713 (make_pass_ipa_tree_profile): ...new function.
10714 * tree-sra.c (pass_sra_early): Convert from a global struct to a
10715 subclass of gimple_opt_pass along with...
10716 (pass_data_sra_early): ...new pass_data instance and...
10717 (make_pass_sra_early): ...new function.
10718 (pass_sra): Convert from a global struct to a subclass of
10719 gimple_opt_pass along with...
10720 (pass_data_sra): ...new pass_data instance and...
10721 (make_pass_sra): ...new function.
10722 (pass_early_ipa_sra): Convert from a global struct to a subclass of
10723 gimple_opt_pass along with...
10724 (pass_data_early_ipa_sra): ...new pass_data instance and...
10725 (make_pass_early_ipa_sra): ...new function.
10726 * tree-ssa-ccp.c (pass_ccp): Convert from a global struct to a
10727 subclass of gimple_opt_pass along with...
10728 (pass_data_ccp): ...new pass_data instance and...
10729 (make_pass_ccp): ...new function.
10730 (pass_fold_builtins): Convert from a global struct to a subclass of
10731 gimple_opt_pass along with...
10732 (pass_data_fold_builtins): ...new pass_data instance and...
10733 (make_pass_fold_builtins): ...new function.
10734 * tree-ssa-copy.c (pass_copy_prop): Convert from a global struct to a
10735 subclass of gimple_opt_pass along with...
10736 (pass_data_copy_prop): ...new pass_data instance and...
10737 (make_pass_copy_prop): ...new function.
10738 * tree-ssa-copyrename.c (pass_rename_ssa_copies): Convert from a
10739 global struct to a subclass of gimple_opt_pass along with...
10740 (pass_data_rename_ssa_copies): ...new pass_data instance and...
10741 (make_pass_rename_ssa_copies): ...new function.
10742 * tree-ssa-dce.c (pass_dce): Convert from a global struct to a
10743 subclass of gimple_opt_pass along with...
10744 (pass_data_dce): ...new pass_data instance and...
10745 (make_pass_dce): ...new function.
10746 (pass_dce_loop): Convert from a global struct to a subclass of
10747 gimple_opt_pass along with...
10748 (pass_data_dce_loop): ...new pass_data instance and...
10749 (make_pass_dce_loop): ...new function.
10750 (pass_cd_dce): Convert from a global struct to a subclass of
10751 gimple_opt_pass along with...
10752 (pass_data_cd_dce): ...new pass_data instance and...
10753 (make_pass_cd_dce): ...new function.
10754 * tree-ssa-dom.c (pass_dominator): Convert from a global struct to a
10755 subclass of gimple_opt_pass along with...
10756 (pass_data_dominator): ...new pass_data instance and...
10757 (make_pass_dominator): ...new function.
10758 (pass_phi_only_cprop): Convert from a global struct to a subclass of
10759 gimple_opt_pass along with...
10760 (pass_data_phi_only_cprop): ...new pass_data instance and...
10761 (make_pass_phi_only_cprop): ...new function.
10762 * tree-ssa-dse.c (pass_dse): Convert from a global struct to a
10763 subclass of gimple_opt_pass along with...
10764 (pass_data_dse): ...new pass_data instance and...
10765 (make_pass_dse): ...new function.
10766 * tree-ssa-forwprop.c (pass_forwprop): Convert from a global struct to
10767 a subclass of gimple_opt_pass along with...
10768 (pass_data_forwprop): ...new pass_data instance and...
10769 (make_pass_forwprop): ...new function.
10770 * tree-ssa-ifcombine.c (pass_tree_ifcombine): Convert from a global
10771 struct to a subclass of gimple_opt_pass along with...
10772 (pass_data_tree_ifcombine): ...new pass_data instance and...
10773 (make_pass_tree_ifcombine): ...new function.
10774 * tree-ssa-loop-ch.c (pass_ch): Convert from a global struct to a
10775 subclass of gimple_opt_pass along with...
10776 (pass_data_ch): ...new pass_data instance and...
10777 (make_pass_ch): ...new function.
10778 * tree-ssa-loop.c (pass_tree_loop): Convert from a global struct to a
10779 subclass of gimple_opt_pass along with...
10780 (pass_data_tree_loop): ...new pass_data instance and...
10781 (make_pass_tree_loop): ...new function.
10782 (pass_tree_loop_init): Convert from a global struct to a subclass of
10783 gimple_opt_pass along with...
10784 (pass_data_tree_loop_init): ...new pass_data instance and...
10785 (make_pass_tree_loop_init): ...new function.
10786 (pass_lim): Convert from a global struct to a subclass of
10787 gimple_opt_pass along with...
10788 (pass_data_lim): ...new pass_data instance and...
10789 (make_pass_lim): ...new function.
10790 (pass_tree_unswitch): Convert from a global struct to a subclass of
10791 gimple_opt_pass along with...
10792 (pass_data_tree_unswitch): ...new pass_data instance and...
10793 (make_pass_tree_unswitch): ...new function.
10794 (pass_predcom): Convert from a global struct to a subclass of
10795 gimple_opt_pass along with...
10796 (pass_data_predcom): ...new pass_data instance and...
10797 (make_pass_predcom): ...new function.
10798 (pass_vectorize): Convert from a global struct to a subclass of
10799 gimple_opt_pass along with...
10800 (pass_data_vectorize): ...new pass_data instance and...
10801 (make_pass_vectorize): ...new function.
10802 (pass_graphite): Convert from a global struct to a subclass of
10803 gimple_opt_pass along with...
10804 (pass_data_graphite): ...new pass_data instance and...
10805 (make_pass_graphite): ...new function.
10806 (pass_graphite_transforms): Convert from a global struct to a subclass
10807 of gimple_opt_pass along with...
10808 (pass_data_graphite_transforms): ...new pass_data instance and...
10809 (make_pass_graphite_transforms): ...new function.
10810 (pass_check_data_deps): Convert from a global struct to a subclass of
10811 gimple_opt_pass along with...
10812 (pass_data_check_data_deps): ...new pass_data instance and...
10813 (make_pass_check_data_deps): ...new function.
10814 (pass_iv_canon): Convert from a global struct to a subclass of
10815 gimple_opt_pass along with...
10816 (pass_data_iv_canon): ...new pass_data instance and...
10817 (make_pass_iv_canon): ...new function.
10818 (pass_scev_cprop): Convert from a global struct to a subclass of
10819 gimple_opt_pass along with...
10820 (pass_data_scev_cprop): ...new pass_data instance and...
10821 (make_pass_scev_cprop): ...new function.
10822 (pass_record_bounds): Convert from a global struct to a subclass of
10823 gimple_opt_pass along with...
10824 (pass_data_record_bounds): ...new pass_data instance and...
10825 (make_pass_record_bounds): ...new function.
10826 (pass_complete_unroll): Convert from a global struct to a subclass of
10827 gimple_opt_pass along with...
10828 (pass_data_complete_unroll): ...new pass_data instance and...
10829 (make_pass_complete_unroll): ...new function.
10830 (pass_complete_unrolli): Convert from a global struct to a subclass of
10831 gimple_opt_pass along with...
10832 (pass_data_complete_unrolli): ...new pass_data instance and...
10833 (make_pass_complete_unrolli): ...new function.
10834 (pass_parallelize_loops): Convert from a global struct to a subclass
10835 of gimple_opt_pass along with...
10836 (pass_data_parallelize_loops): ...new pass_data instance and...
10837 (make_pass_parallelize_loops): ...new function.
10838 (pass_loop_prefetch): Convert from a global struct to a subclass of
10839 gimple_opt_pass along with...
10840 (pass_data_loop_prefetch): ...new pass_data instance and...
10841 (make_pass_loop_prefetch): ...new function.
10842 (pass_iv_optimize): Convert from a global struct to a subclass of
10843 gimple_opt_pass along with...
10844 (pass_data_iv_optimize): ...new pass_data instance and...
10845 (make_pass_iv_optimize): ...new function.
10846 (pass_tree_loop_done): Convert from a global struct to a subclass of
10847 gimple_opt_pass along with...
10848 (pass_data_tree_loop_done): ...new pass_data instance and...
10849 (make_pass_tree_loop_done): ...new function.
10850 * tree-ssa-math-opts.c (pass_cse_reciprocals): Convert from a global
10851 struct to a subclass of gimple_opt_pass along with...
10852 (pass_data_cse_reciprocals): ...new pass_data instance and...
10853 (make_pass_cse_reciprocals): ...new function.
10854 (pass_cse_sincos): Convert from a global struct to a subclass of
10855 gimple_opt_pass along with...
10856 (pass_data_cse_sincos): ...new pass_data instance and...
10857 (make_pass_cse_sincos): ...new function.
10858 (pass_optimize_bswap): Convert from a global struct to a subclass of
10859 gimple_opt_pass along with...
10860 (pass_data_optimize_bswap): ...new pass_data instance and...
10861 (make_pass_optimize_bswap): ...new function.
10862 (pass_optimize_widening_mul): Convert from a global struct to a
10863 subclass of gimple_opt_pass along with...
10864 (pass_data_optimize_widening_mul): ...new pass_data instance and...
10865 (make_pass_optimize_widening_mul): ...new function.
10866 * tree-ssa-phiopt.c (pass_phiopt): Convert from a global struct to a
10867 subclass of gimple_opt_pass along with...
10868 (pass_data_phiopt): ...new pass_data instance and...
10869 (make_pass_phiopt): ...new function.
10870 (pass_cselim): Convert from a global struct to a subclass of
10871 gimple_opt_pass along with...
10872 (pass_data_cselim): ...new pass_data instance and...
10873 (make_pass_cselim): ...new function.
10874 * tree-ssa-phiprop.c (pass_phiprop): Convert from a global struct to a
10875 subclass of gimple_opt_pass along with...
10876 (pass_data_phiprop): ...new pass_data instance and...
10877 (make_pass_phiprop): ...new function.
10878 * tree-ssa-pre.c (pass_pre): Convert from a global struct to a
10879 subclass of gimple_opt_pass along with...
10880 (pass_data_pre): ...new pass_data instance and...
10881 (make_pass_pre): ...new function.
10882 (pass_fre): Convert from a global struct to a subclass of
10883 gimple_opt_pass along with...
10884 (pass_data_fre): ...new pass_data instance and...
10885 (make_pass_fre): ...new function.
10886 * tree-ssa-reassoc.c (pass_reassoc): Convert from a global struct to a
10887 subclass of gimple_opt_pass along with...
10888 (pass_data_reassoc): ...new pass_data instance and...
10889 (make_pass_reassoc): ...new function.
10890 * tree-ssa-sink.c (pass_sink_code): Convert from a global struct to a
10891 subclass of gimple_opt_pass along with...
10892 (pass_data_sink_code): ...new pass_data instance and...
10893 (make_pass_sink_code): ...new function.
10894 * tree-ssa-strlen.c (pass_strlen): Convert from a global struct to a
10895 subclass of gimple_opt_pass along with...
10896 (pass_data_strlen): ...new pass_data instance and...
10897 (make_pass_strlen): ...new function.
10898 * tree-ssa-structalias.c (pass_build_alias): Convert from a global
10899 struct to a subclass of gimple_opt_pass along with...
10900 (pass_data_build_alias): ...new pass_data instance and...
10901 (make_pass_build_alias): ...new function.
10902 (pass_build_ealias): Convert from a global struct to a subclass of
10903 gimple_opt_pass along with...
10904 (pass_data_build_ealias): ...new pass_data instance and...
10905 (make_pass_build_ealias): ...new function.
10906 (pass_ipa_pta): Convert from a global struct to a subclass of
10907 simple_ipa_opt_pass along with...
10908 (pass_data_ipa_pta): ...new pass_data instance and...
10909 (make_pass_ipa_pta): ...new function.
10910 * tree-ssa-uncprop.c (pass_uncprop): Convert from a global struct to a
10911 subclass of gimple_opt_pass along with...
10912 (pass_data_uncprop): ...new pass_data instance and...
10913 (make_pass_uncprop): ...new function.
10914 * tree-ssa-uninit.c (pass_late_warn_uninitialized): Convert from a
10915 global struct to a subclass of gimple_opt_pass along with...
10916 (pass_data_late_warn_uninitialized): ...new pass_data instance and...
10917 (make_pass_late_warn_uninitialized): ...new function.
10918 * tree-ssa.c (pass_init_datastructures): Convert from a global struct
10919 to a subclass of gimple_opt_pass along with...
10920 (pass_data_init_datastructures): ...new pass_data instance and...
10921 (make_pass_init_datastructures): ...new function.
10922 (pass_early_warn_uninitialized): Convert from a global struct to a
10923 subclass of gimple_opt_pass along with...
10924 (pass_data_early_warn_uninitialized): ...new pass_data instance and...
10925 (make_pass_early_warn_uninitialized): ...new function.
10926 (pass_update_address_taken): Convert from a global struct to a
10927 subclass of gimple_opt_pass along with...
10928 (pass_data_update_address_taken): ...new pass_data instance and...
10929 (make_pass_update_address_taken): ...new function.
10930 * tree-ssanames.c (pass_release_ssa_names): Convert from a global
10931 struct to a subclass of gimple_opt_pass along with...
10932 (pass_data_release_ssa_names): ...new pass_data instance and...
10933 (make_pass_release_ssa_names): ...new function.
10934 * tree-stdarg.c (pass_stdarg): Convert from a global struct to a
10935 subclass of gimple_opt_pass along with...
10936 (pass_data_stdarg): ...new pass_data instance and...
10937 (make_pass_stdarg): ...new function.
10938 * tree-switch-conversion.c (pass_convert_switch): Convert from a
10939 global struct to a subclass of gimple_opt_pass along with...
10940 (pass_data_convert_switch): ...new pass_data instance and...
10941 (make_pass_convert_switch): ...new function.
10942 * tree-tailcall.c (pass_tail_recursion): Convert from a global struct
10943 to a subclass of gimple_opt_pass along with...
10944 (pass_data_tail_recursion): ...new pass_data instance and...
10945 (make_pass_tail_recursion): ...new function.
10946 (pass_tail_calls): Convert from a global struct to a subclass of
10947 gimple_opt_pass along with...
10948 (pass_data_tail_calls): ...new pass_data instance and...
10949 (make_pass_tail_calls): ...new function.
10950 * tree-vect-generic.c (pass_lower_vector): Convert from a global
10951 struct to a subclass of gimple_opt_pass along with...
10952 (pass_data_lower_vector): ...new pass_data instance and...
10953 (make_pass_lower_vector): ...new function.
10954 (pass_lower_vector_ssa): Convert from a global struct to a subclass of
10955 gimple_opt_pass along with...
10956 (pass_data_lower_vector_ssa): ...new pass_data instance and...
10957 (make_pass_lower_vector_ssa): ...new function.
10958 * tree-vectorizer.c (pass_slp_vectorize): Convert from a global struct
10959 to a subclass of gimple_opt_pass along with...
10960 (pass_data_slp_vectorize): ...new pass_data instance and...
10961 (make_pass_slp_vectorize): ...new function.
10962 (pass_ipa_increase_alignment): Convert from a global struct to a
10963 subclass of simple_ipa_opt_pass along with...
10964 (pass_data_ipa_increase_alignment): ...new pass_data instance and...
10965 (make_pass_ipa_increase_alignment): ...new function.
10966 * tree-vrp.c (pass_vrp): Convert from a global struct to a subclass of
10967 gimple_opt_pass along with...
10968 (pass_data_vrp): ...new pass_data instance and...
10969 (make_pass_vrp): ...new function.
10970 * tree.c (pass_ipa_free_lang_data): Convert from a global struct to a
10971 subclass of simple_ipa_opt_pass along with...
10972 (pass_data_ipa_free_lang_data): ...new pass_data instance and...
10973 (make_pass_ipa_free_lang_data): ...new function.
10974 * tsan.c (pass_tsan): Convert from a global struct to a subclass of
10975 gimple_opt_pass along with...
10976 (pass_data_tsan): ...new pass_data instance and...
10977 (make_pass_tsan): ...new function.
10978 (pass_tsan_O0): Convert from a global struct to a subclass of
10979 gimple_opt_pass along with...
10980 (pass_data_tsan_O0): ...new pass_data instance and...
10981 (make_pass_tsan_O0): ...new function.
10982 * var-tracking.c (pass_variable_tracking): Convert from a global
10983 struct to a subclass of rtl_opt_pass along with...
10984 (pass_data_variable_tracking): ...new pass_data instance and...
10985 (make_pass_variable_tracking): ...new function.
10986 * web.c (pass_web): Convert from a global struct to a subclass of
10987 rtl_opt_pass along with...
10988 (pass_data_web): ...new pass_data instance and...
10989 (make_pass_web): ...new function.
10990 * config/epiphany/epiphany.h (pass_mode_switch_use): Replace
10991 declaration with that of...
10992 (make_pass_mode_switch_use): ...new function.
10993 (pass_resolve_sw_modes): Replace declaration with that of...
10994 (make_pass_resolve_sw_modes): ...new function.
10995 * config/epiphany/mode-switch-use.c (pass_mode_switch_use): Convert
10996 from a global struct to a subclass of rtl_opt_pass along with...
10997 (pass_data_mode_switch_use): ...new pass_data instance and...
10998 (make_pass_mode_switch_use): ...new function.
10999 * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes): Convert
11000 from a global struct to a subclass of rtl_opt_pass along with...
11001 (pass_data_resolve_sw_modes): ...new pass_data instance and...
11002 (make_pass_resolve_sw_modes): ...new function.
11003 * config/i386/i386.c (pass_insert_vzeroupper): Convert from a global
11004 struct to a subclass of rtl_opt_pass along with...
11005 (pass_data_insert_vzeroupper): ...new pass_data instance and...
11006 (make_pass_insert_vzeroupper): ...new function.
11007 * config/sparc/sparc.c (pass_work_around_errata): Convert from a
11008 global struct to a subclass of rtl_opt_pass along with...
11009 (pass_data_work_around_errata): ...new pass_data instance and...
11010 (make_pass_work_around_errata): ...new function.
11011 * config/mips/mips.c (pass_mips_machine_reorg2): Convert from a global
11012 struct to a subclass of rtl_opt_pass along with...
11013 (pass_data_mips_machine_reorg2): ...new pass_data instance and...
11014 (make_pass_mips_machine_reorg2): ...new function.
11015
6a389ed5
DM
110162013-08-05 David Malcolm <dmalcolm@redhat.com>
11017
11018 * passes.c (pass_manager::operator new): New.
11019
f7695dbf
DM
110202013-08-05 David Malcolm <dmalcolm@redhat.com>
11021
11022 Handwritten part of conversion of passes to C++ classes.
11023
11024 * Makefile.in (PASS_MANAGER_H): Add dep on pass-instances.def.
11025 (toplev.o): Add dep on PASS_MANAGER_H.
11026 * cgraphunit.c (cgraph_process_new_functions): Rework invocation
11027 of early local pases to reflect this moving from a global to a
11028 member of gcc::pass_manager.
11029 (cgraph_add_new_function): Likewise.
11030 * lto-cgraph.c (lto_output_node): Update for conversion of
11031 struct ipa_opt_pass_d to a C++ subclass of opt_pass.
11032 * passes.c (opt_pass::clone): New.
11033 (opt_pass::gate): New.
11034 (opt_pass::execute): New.
11035 (opt_pass::opt_pass): New.
11036 (pass_manager::execute_early_local_passes): New.
11037 (pass_manager::execute_pass_mode_switching): new.
11038 (finish_optimization_passes): Convert to...
11039 (pass_manager::finish_optimization_passes): ...this.
11040 (finish_optimization_passes): Update for conversion of passes to
11041 C++ classes.
11042 (register_dump_files_1): Use has_gate since we cannot portably
11043 check a vtable entry against NULL.
11044 (dump_one_pass): Likewise.
11045 (ipa_write_summaries_2): Likewise.
11046 (ipa_write_optimization_summaries_1): Likewise.
11047 (ipa_read_summaries_1): Likewise.
11048 (ipa_read_optimization_summaries_1): Likewise.
11049 (execute_ipa_stmt_fixups): Likewise.
11050 (pass_manager::pass_manager): Rewrite pass-creation, invoking
11051 pass-creation functions rather than wiring up globals, and
11052 storing the results in fields of pass_manager generated using
11053 pass-instances.def.
11054 (pass_manager::dump_profile_report): Update for conversion of
11055 passes to C++ classes.
11056 (pass_manager::execute_ipa_summary_passes): Likewise.
11057 (execute_one_ipa_transform_pass): Likewise.
11058 (execute_one_pass): Use has_gate and has_execute since we cannot
11059 portably check a vtable entry against NULL.
11060 * pass_manager.h (pass_manager::finish_optimization_passes): New.
11061 (pass_manager): Use pass-instances.def to add fields for the
11062 various pass instances.
11063 * toplev.c (finalize): Update for move of
11064 finish_optimization_passes to a method of gcc::pass_manager.
11065 * toplev.h (finish_optimization_passes): Move to method of class
11066 pass_manager.
11067 * tree-pass.h (struct pass_data): New.
03b0ee0a 11068 (opt_pass): Convert to C++ class, make it a subclass of pass_data.
f7695dbf
DM
11069 (opt_pass::gate): Convert to virtual function.
11070 (opt_pass::~opt_pass): New.
11071 (opt_pass::clone): New.
11072 (opt_pass::execute): Convert to virtual function.
11073 (opt_pass::opt_pass): New.
11074 (opt_pass::ctxt_): new.
11075 (gimple_opt_pass): Convert to subclass of opt_pass.
11076 (gimple_opt_pass::gimple_opt_pass): New.
11077 (rtl_opt_pass): Convert to subclass of opt_pass.
11078 (rtl_opt_pass::rtl_opt_pass): New.
11079 (ipa_opt_pass_d): Convert to subclass of opt_pass.
11080 (ipa_opt_pass_d::ipa_opt_pass_d): New.
11081 (simple_ipa_opt_pass): Convert to subclass of opt_pass.
11082 (simple_ipa_opt_pass::simple_ipa_opt_pass): New.
11083 * config/i386/i386.c (rest_of_handle_insert_vzeroupper): Rework
11084 invocation of pass_mode_switching to reflect this moving from a
11085 global to a member of gcc::pass_manager.
11086 (ix86_option_override): Rework how pass_insert_vzeroupper is
11087 added to the pass_manager to reflect autogenerated changes.
03b0ee0a 11088 * config/i386/t-i386 (i386.o) Add deps on CONTEXT_H and PASS_MANAGER_H.
f7695dbf 11089
d0b2f831
RE
110902013-08-05 Richard Earnshaw <rearnsha@arm.com>
11091
11092 PR rtl-optimization/57708
11093 * recog.c (peep2_find_free_register): Validate all regs in a
11094 multi-reg mode.
11095
51a5c0c2
JH
110962013-08-05 Jan Hubicka <jh@suse.cz>
11097
11098 PR lto/57602
03b0ee0a
UB
11099 * cgraph.c (verify_cgraph_node): Accept local flags from other
11100 partitions.
51a5c0c2
JH
11101 * ipa.c (symtab_remove_unreachable_nodes): Do not clear local flag.
11102 (function_and_variable_visibility): Likewise.
11103 * trans-mem.c (ipa_tm_create_version): TM versions are not local.
11104
65f0a120
GDR
111052013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
11106
11107 * graph.c (init_graph_slim_pretty_print): Remove.
11108 (print_graph_cfg): Do not call it. Use local pretty printer.
11109 (start_graph_dump): Likewise.
11110
b3f80694
GDR
111112013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
11112
11113 * gimple-pretty-print.c (buffer): Remove.
11114 (initialized): Likewise.
11115 (maybe_init_pretty_print): Likewise.
11116 (print_gimple_stmt): Do not call it. Use non-static local
11117 pretty_printer variable.
11118 (print_gimple_expr): Likewise.
11119 (print_gimple_seq): Likewise.
11120 (gimple_dump_bb): Likewise.
11121
11a877b3
GDR
111222013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
11123
11124 * asan.c (asan_pp): Remove.
11125 (asan_pp_initialized): Likewise.
11126 (asan_pp_initialize): Likewise.
11127 (asan_pp_string): Take a pretty_printer parameter. Adjust callers.
11128 (asan_emit_stack_protection): Tidy. Use local pretty printer.
11129 (asan_add_global): Likewise.
11130
b066401f
GDR
111312013-08-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
11132
11133 * pretty-print.h (pp_base): Remove. Adjust dependent macros.
11134 * diagnostic.h (diagnostic_flush_buffer): Adjust.
11135 * pretty-print.c (pp_formatted_text_data): Likewise.
11136 (pp_indent): Rename from pp_base_indent.
11137 (pp_format): Rename from pp_base_format.
11138 (pp_output_formatted_text): Rename from pp_base_output_formatted_text.
11139 (pp_format_verbatim): Rename from pp_base_format_verbatim.
11140 (pp_flush): Rename from pp_base_flush.
11141 (pp_set_line_maximum_length): Rename from
11142 pp_base_set_line_maximum_length.
11143 (pp_clear_output_area): Rename from pp_base_clear_output_area.
11144 (pp_set_prefix): Rename from pp_base_set_prefix.
11145 (pp_destroy_prefix): Rename from pp_base_destroy_prefix.
11146 (pp_emit_prefix): Rename from pp_base_emit_prefix.
11147 (pp_append_text): Rename from pp_base_append_text.
11148 (pp_formatted_text): Rename from pp_base_formatted_text.
11149 (pp_last_position_in_text): Rename from pp_base_last_position_in_text.
11150 (pp_remaining_character_count_for_line): Rename from
11151 pp_base_remaining_character_count_for_line.
11152 (pp_newline): Rename from pp_base_newline.
11153 (pp_character): Rename from pp_base_character.
11154 (pp_string): Rename from pp_base_string.
11155 (pp_maybe_space): Rename from pp_base_maybe_space.
11156 * asan.c (asan_pp_string): Adjust.
11157 (asan_emit_stack_protection): Likewise.
11158 (asan_add_global): Likewise.
11159 * sched-vis.c (str_pattern_slim): Adjust pretty printer function call.
11160 * tree-mudflap.c (mf_varname_tree): Likewise.
11161 * tree-pretty-print.c (pp_tree_identifier): Rename from
11162 pp_base_tree_identifier.
11163 * tree-pretty-print.h (pp_tree_identifier): Remove macro definition.
11164 Declare as function.
11165
137a1a27
GDR
111662013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
11167
11168 * pretty-print.h (pp_bar_bar): New.
11169 (pp_ampersand_ampersand): Likewise.
11170 (pp_less_equal): Likewise.
11171 (pp_greater_equal): Likewise.
11172 * gimple-pretty-print.c (dump_ternary_rhs): Use specialized pretty
11173 printer functions instead of pp_string or operators and punctuators.
11174 (dump_gimple_call): Likewise.
11175 (dump_gimple_omp_for): Likewise.
11176 (dump_gimple_transaction): Likewise.
11177 (dump_gimple_phi): Likewise.
11178 (pp_gimple_stmt_1): Likewise.
11179 * sched-vis.c (print_insn): Likewise.
11180 * tree-mudflap.c (mf_varname_tree): Likewise.
11181 * tree-pretty-print.c (dump_block_node): Likewise.
11182 (dump_generic_node): Likewise.
11183
815effe1
JH
111842013-08-02 Jan Hubicka <jh@suse.cz>
11185
11186 * lto-cgraph.c (compute_ltrans_boundary): Add abstract origins into
11187 boundaries.
11188 * lto-streamer-out.c (tree_is_indexable): Results decls and
11189 parm decls are not indexable.
11190 (DFS_write_tree_body): Do not follow args and results.
11191 (hash_tree): Likewise.
11192 (output_functions): Rearrange so struct function is needed
11193 only when real body is output; be able to also ouptut abstract
11194 functions; output DECL_ARGUMENTS and DECL_RESULT.
11195 (lto_output): When not in WPA, ale store abstract functions.
11196 (write_symbol): Do not care about RESULT_DECL.
11197 (output_symbol_p): Handle correctly sbtract decls.
11198 * lto-streamer-in.c (input_function): Rearrange so struct
11199 function can be NULL at entry; allow streaming of
11200 functions w/o body; store DECL_ARGUMENTS and DECL_RESULT.
11201 * ipa.c (symtab_remove_unreachable_nodes): Silence confused
11202 sanity check during LTO.
11203 * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Skip
11204 RESULT_DECl and DECL_ARGUMENTS.
11205 * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
11206 Likewise.
11207
07838b13
GDR
112082013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
11209
11210 * pretty-print.h (pp_underscore): New.
11211 (pp_comma): Tidy.
11212 * gimple-pretty-print.c (dump_unary_rhs): Use specialized pretty
11213 printer functions instead of pp_character.
11214 (dump_binary_rhs): Likewise.
11215 (dump_ternary_rhs): Likewise.
11216 (dump_gimple_call_args): Likewise.
11217 (pp_points_to_solution): Likewise.
11218 (dump_gimple_call): Likewise.
11219 (dump_gimple_switch): Likewise.
11220 (dump_gimple_cond): Likewise.
11221 (dump_gimple_bind): Likewise.
11222 (dump_gimple_try): Likewise.
11223 (dump_gimple_omp_for): Likewise.
11224 (dump_gimple_omp_continue): Likewise.
11225 (dump_gimple_omp_single): Likewise.
11226 (dump_gimple_omp_sections): Likewise.
11227 (dump_gimple_omp_block): Likewise.
11228 (dump_gimple_omp_critical): Likewise.
11229 (dump_gimple_transaction): Likewise.
11230 (dump_gimple_asm): Likewise.
11231 (dump_gimple_phi): Likewise.
11232 (dump_gimple_omp_parallel): Likewise.
11233 (dump_gimple_omp_task): Likewise.
11234 (dump_gimple_omp_atomic_load): Likewise.
11235 (dump_gimple_omp_atomic_store): Likewise.
11236 (dump_gimple_mem_ops): Likewise.
11237 (pp_gimple_stmt_1): Likewise.
11238 (pp_cfg_jump): Likewise.
11239 (dump_implicit_edges): Likewise.
11240 (gimple_dump_bb_for_graph): Likewise.
11241 * graph.c (draw_cfg_node): Likewise.
11242 * langhooks.c (lhd_print_error_function): Likewise.
11243 * sched-vis.c (print_exp): Likewise.
11244 (print_value): Likewise.
11245 (print_pattern): Likewise.
11246 (print_insn): Likewise.
11247 (rtl_dump_bb_for_graph): Likewise.
11248 * tree-pretty-print.c (dump_function_declaration): Likewise.
11249 (dump_array_domain): Likewise.
11250 (dump_omp_clause): Likewise.
11251 (dump_location): Likewise.
11252 (dump_generic_node): Likewise.
11253 (print_struct_decl): Likewise.
11254 * diagnostic.c (diagnostic_show_locus): Use pp_space.
11255
bb0d2039
BS
112562013-08-03 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
11257
11258 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Update
11259 candidate table when replacing a candidate statement.
11260 (replace_rhs_if_not_dup): Likewise.
11261 (replace_one_candidate): Likewise.
11262
bc0ec027 112632013-08-02 Jan Hubicka <jh@suse.cz>
cdaa808a 11264 Martin Liska <marxin.liska@gmail.com>
bc0ec027
JH
11265
11266 * cgraphunit.c (add_new_function): Fix logic when adding from
11267 late IPA pass.
11268 (assemble_thunk): Rename to ...
03b0ee0a
UB
11269 (expand_thunk); .. this one; export; get it working with
11270 general functions; make produced gimple valid.
bc0ec027
JH
11271 * cgraph.h (expand_thunk): Declare.
11272
0e8853ee
JH
112732013-08-02 Jan Hubicka <jh@suse.cz>
11274
03b0ee0a
UB
11275 * ipa-cp.c (gather_context_independent_values): Use
11276 ipa_get_param_move_cost.
11277 (get_replacement_map): Remove PARAM; move parameter folding
11278 into tree-inline.c
0e8853ee
JH
11279 (create_specialized_node): Update.
11280 * ipa-prop.c (ipa_populate_param_decls): Do not look for origins;
11281 assert that we have gimple body; update move_cost.
11282 (count_formal_params): Assert that we have gimple body.
11283 (ipa_dump_param): New function.
11284 (ipa_alloc_node_params): Break out from ...
11285 (ipa_initialize_node_params): ... here.
11286 (ipa_get_vector_of_formal_parms): ICE when used in WPA.
11287 (ipa_write_node_info): Stream move costs.
11288 (ipa_read_node_info): Read move costs.
11289 (ipa_update_after_lto_read): Do not recompute node params.
11290 * ipa-prop.h (ipa_param_descriptor): Add move_cost.
11291 (ipa_get_param): Check we are not in WPA.
11292 (ipa_get_param_move_cost): New.
11293 * tree-inline.c (tree_function_versioning): Fold replacement as needed.
11294 * ipa-inline-analysis.c (inline_node_duplication_hook): Expect only
11295 parm numbers to be present.
11296
ecee672b
VM
112972013-08-02 Vladimir Makarov <vmakarov@redhat.com>
11298
11299 PR rtl-optimization/58048
11300 * lra-constraints.c (process_alt_operands): Don't check asm
11301 operand on register.
11302
13ec0527
EB
113032013-08-02 Eric Botcazou <ebotcazou@adacore.com>
11304
11305 * config/sparc/sparc.c (sparc_emit_membar_for_model) <SMM_TSO>: Add
11306 the implied StoreLoad barrier for atomic operations if before.
11307
af15184a
JH
113082013-08-02 Jan Hubicka <jh@suse.cz>
11309 Martin Liska <marxin.liska@gmail.com>
11310
03b0ee0a
UB
11311 * cgraph.c (cgraph_function_body_availability): Do not check
11312 cgraph flags.
af15184a
JH
11313 * cgraph.h (symtab_for_node_and_aliases, symtab_nonoverwritable_alias,
11314 symtab_node_availability): Declare.
11315 * ipa.c (can_replace_by_local_alias): New.
11316 (function_and_variable_visibility): Use it.
03b0ee0a
UB
11317 * symtab.c (symtab_for_node_and_aliases,
11318 symtab_nonoverwritable_alias_1, symtab_nonoverwritable_alias): New.
af15184a 11319
01e54ef8
VM
113202013-08-02 Vladimir Makarov <vmakarov@redhat.com>
11321
11322 PR rtl-optimization/57963
03b0ee0a 11323 * lra-constraints.c (reverse_equiv_p, contains_reloaded_insn_p): New.
01e54ef8
VM
11324 (lra_constraints): Use them.
11325
e2fd7ca7
SN
113262013-08-02 Sofiane Naci <sofiane.naci@arm.com>
11327
03b0ee0a
UB
11328 * config/arm/types.md (define_attr "type"): Add "load_acq"
11329 and "store_rel".
e2fd7ca7
SN
11330 * config/arm/cortex-a53.md (cortex_a53_load1): Update for attribute
11331 changes.
11332 (cortex_a53_store1): Likewise.
11333
0dcc26c3
JH
113342013-08-01 Jan Hubicka <jh@suse.cz>
11335
03b0ee0a
UB
11336 * ipa.c (symtab_remove_unreachable_nodes): Nodes in other
11337 partitions are not needed.
0dcc26c3 11338
0bd72901
UB
113392013-08-01 Uros Bizjak <ubizjak@gmail.com>
11340
11341 * config/i386/i386.h (MAYBE_NON_Q_CLASS_P): New.
11342 * config/i386/i386.c (ix86_secondary_reload): Use INTEGER_CLASS_P and
11343 MAYBE_NON_Q_CLASS_P where appropriate.
11344
12123452
JH
113452013-08-01 Jan Hubicka <jh@suse.cz>
11346
11347 * cgraph.h (release_function_body): Declare.
11348 * tree.c (free_lang_data_in_decl): Free, parameters and return values
11349 of unused delcarations.
11350
ce852f9c
KT
113512013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11352
03b0ee0a
UB
11353 * config/arm/arm.md (minmax_arithsi_non_canon): Emit canonical
11354 RTL form when subtracting a constant.
ce852f9c 11355
c743b246
KT
113562013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11357
11358 * config/arm/arm.md (peepholes for eq (reg1) (reg2/imm)):
11359 Generate canonical plus rtx with negated immediate instead of minus
11360 where appropriate.
11361 * config/arm/arm.c (thumb2_reorg): Handle ADCS <Rd>, <Rn> case.
11362
c0c123ef
JH
113632013-08-01 Jan Hubicka <jh@suse.cz>
11364
11365 * cgraph.c (cgraph_release_function_body): Use used_as_abstract_origin.
11366 (cgraph_release_function_body): Likewise.
11367 (cgraph_can_remove_if_no_direct_calls_p): Likewise.
11368 * cgraph.h (cgrpah_node): Rename abstract_and_needed
11369 to used_as_abstract_origin.
11370 * tree-inline-transfrom.c (can_remove_node_now_p_1): Do not remove
11371 symbols used as abstract origins.
11372 * cgraphunit.c (analyze_functions): Update.
0bd72901
UB
11373 * ipa.c (symtab_remove_unreachable_nodes): Recompute
11374 used_as_abstract_origin.
c0c123ef 11375 * tree-inline.c (tree_function_versioning): Update
0bd72901
UB
11376 used_as_abstract_origin; be ready for DECL_RESULT and
11377 DECL_ARGUMENTS to be NULL.
c0c123ef 11378
0bd72901
UB
11379 * lto-symtab.c (lto_symtab_merge_symbols): Merge duplicated nodes
11380 for abstract functions.
11381 * cgraph.h (symtab_real_symbol_p): Abstract declarations are not
11382 real symbols.
c0c123ef 11383
1f029433
JH
113842013-08-01 Jan Hubicka <jh@suse.cz>
11385
11386 * profile.c (compute_value_histograms): Fix thinko.
11387
c451f4d6
SN
113882013-08-01 Sofiane Naci <sofiane.naci@arm.com>
11389
11390 * config.gcc (aarch64*-*-*): Add aarch-common.o to extra_objs. Add
11391 aarch-common-protos.h to extra_headers.
11392 (aarch64*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
11393 * config/aarch64/aarch64.md: Include "../arm/cortex-a53.md".
11394 * config/aarch64/t-aarch64 (aarch-common.o): Define.
11395
34b512f5
SN
113962013-08-01 Sofiane Naci <sofiane.naci@arm.com>
11397
11398 * config/aarch64/aarch64.md (define_attr "type"): Delete.
11399 Include "../arm/types.md". Define "type" attribute for all patterns.
11400 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update for
11401 attribute changes.
11402
d86e633a
MM
114032013-07-31 Michael Meissner <meissner@linux.vnet.ibm.com>
11404
11405 * config/rs6000/predicates.md (fusion_gpr_addis): New predicates
11406 to support power8 load fusion.
11407 (fusion_gpr_mem_load): Likewise.
11408
11409 * config/rs6000/rs6000-modes.def (PTImode): Update a comment.
11410
11411 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): New
11412 declarations for power8 load fusion.
11413 (emit_fusion_gpr_load): Likewise.
11414
11415 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
11416 tuning for power8, turn on fusion mode by default. Turn on sign
11417 extending fusion mode if normal fusion mode is on, and we are at
11418 -O2 or -O3.
11419 (fusion_gpr_load_p): New function, return true if we can fuse an
11420 addis instruction with a dependent load to a GPR.
11421 (emit_fusion_gpr_load): Emit the instructions for power8 load
11422 fusion to GPRs.
11423
0bd72901 11424 * config/rs6000/vsx.md (VSX_M2): New iterator for fusion peepholes.
d86e633a
MM
11425 (VSX load fusion peepholes): New peepholes to fuse together an
11426 addi instruction with a VSX load instruction.
11427
11428 * config/rs6000/rs6000.md (GPR load fusion peepholes): New
11429 peepholes to fuse an addis instruction with a load to a GPR base
11430 register. If we are supporting sign extending fusions, convert
11431 sign extending loads to zero extending loads and add an explicit
11432 sign extension.
11433
c3f35647
SN
114342013-07-31 Sofiane Naci <sofiane.naci@arm.com>
11435
11436 * config.gcc (arm*-*-*): Add aarch-common.o to extra_objs. Add
11437 aarch-common-protos.h to extra_headers.
11438 (arm*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
11439 * config/arm/arm.c (arm_early_load_addr_dep): Move from here to ...
11440 (arm_early_store_addr_dep): Likewise.
0bd72901
UB
11441 (arm_no_early_alu_shift_dep): Likewise.
11442 (arm_no_early_alu_shift_value_dep): Likewise.
11443 (arm_no_early_mul_dep): Likewise.
11444 (arm_no_early_store_addr_dep): Likewise.
11445 (arm_mac_accumulator_is_mul_result): Likewise.
11446 (arm_mac_accumulator_is_result): Likewise.
c3f35647 11447 * config/arm/aarch-common.c: ... here. New file.
0bd72901
UB
11448 * config/arm/arm-protos.h (arm_early_load_addr_dep): Move from
11449 here to ...
c3f35647 11450 (arm_early_store_addr_dep): Likewise.
0bd72901
UB
11451 (arm_no_early_alu_shift_dep): Likewise.
11452 (arm_no_early_alu_shift_value_dep): Likewise.
11453 (arm_no_early_mul_dep): Likewise.
11454 (arm_no_early_store_addr_dep): Likewise.
11455 (arm_mac_accumulator_is_mul_result): Likewise.
11456 (arm_mac_accumulator_is_result): Likewise.
c3f35647
SN
11457 * config/arm/aarch-common-protos.h: ... here. New file.
11458 * config/arm/t-arm (aarch-common.o): Define.
11459
114602013-07-31 Sofiane Naci <sofiane.naci@arm.com>
11461
11462 * config/arm/arm.md: Include new file "types.md".
11463 (define_attr "type"): Move from here to ...
11464 (define_attr "mul32"): Likewise.
11465 (define_attr "mul64"): Likewise.
11466 * config/arm/types.md: ... here. New file.
11467
228c1313
SH
114682013-07-31 Sebastian Huber <sebastian.huber@embedded-brains.de>
11469
11470 * config.gcc (*-*-rtems*): Use __cxa_atexit by default.
11471 * config/rs6000/rtems.h (TARGET_LIBGCC_SDATA_SECTION): Define.
11472
d6e9046d 114732013-07-31 Jan-Benedict Glaw <jbglaw@lug-owl.de>
8ac499bb
JBG
11474
11475 * gen-pass-instances.awk: Fix offset of substr().
11476
a167b052
DM
114772013-07-31 David Malcolm <dmalcolm@redhat.com>
11478
11479 * Makefile.in (pass-instances.def): New.
11480 (passes.o): Replace dependency on passes.def with one on
11481 pass-instances.def
11482
11483 * gen-pass-instances.awk: New.
11484
11485 * passes.c (pass_manager::pass_manager): Use pass-instances.def
11486 rather than passes.def, updating local definition of NEXT_PASS
11487 macro to add an extra NUM parameter (currently unused).
11488
315f8c0e
DM
114892013-07-30 David Malcolm <dmalcolm@redhat.com>
11490
11491 * Makefile.in (PASS_MANAGER_H): New.
11492 (lto-cgraph.o): Depend on CONTEXT_H and PASS_MANAGER_H.
11493 (passes.o): Likewise.
11494 (statistics.o): Likewise.
11495 (cgraphunit.o): Likewise.
11496 (context.o): Depend on PASS_MANAGER_H.
11497
11498 * pass_manager.h: New.
11499
11500 * cgraphunit.c (cgraph_add_new_function): Update for moves
11501 of globals to fields of pass_manager.
11502 (analyze_function): Likewise.
11503 (expand_function): Likewise.
11504 (ipa_passes): Likewise.
11505 (compile): Likewise.
11506
11507 * context.c (context::context): New.
11508 * context.h (context::context): New.
11509 (context::get_passes): New.
11510 (context::passes_): New.
11511
11512 * lto-cgraph.c (input_node): Update for moves of globals to
11513 fields of pass_manager.
11514
11515 * passes.c (all_passes): Remove, in favor of a field of the
11516 same name within the new class pass_manager.
11517 (all_small_ipa_passes): Likewise.
11518 (all_lowering_passes): Likewise.
11519 (all_regular_ipa_passes): Likewise.
11520 (all_late_ipa_passes): Likewise.
11521 (all_lto_gen_passes): Likewise.
11522 (passes_by_id): Likewise.
11523 (passes_by_id_size): Likewise.
11524 (gcc_pass_lists): Remove, in favor of "pass_lists" field within
11525 the new class pass_manager.
11526 (set_pass_for_id): Convert to...
11527 (pass_manager::set_pass_for_id): ...method.
11528 (get_pass_for_id): Convert to...
11529 (pass_manager::get_pass_for_id): ...method.
11530 (register_one_dump_file): Move body of implementation into...
11531 (pass_manager::register_one_dump_file): ...here.
11532 (register_dump_files_1): Convert to...
11533 (pass_manager::register_dump_files_1): ...method.
11534 (register_dump_files): Convert to...
11535 (pass_manager::register_dump_files): ...method.
11536 (create_pass_tab): Update for moves of globals to fields of
11537 pass_manager.
11538 (dump_passes): Move body of implementation into...
11539 (pass_manager::dump_passes): ...here.
11540 (register_pass): Move body of implementation into...
11541 (pass_manager::register_pass): ...here.
11542 (init_optimization_passes): Convert into...
11543 (pass_manager::pass_manager): ...constructor for new
11544 pass_manager class, and initialize the pass_lists array.
11545 (check_profile_consistency): Update for moves of globals to
11546 fields of pass_manager.
11547 (dump_profile_report): Move body of implementation into...
11548 (pass_manager::dump_profile_report): ...here.
11549 (ipa_write_summaries_1): Update for moves of pass lists from
11550 being globals to fields of pass_manager.
11551 (ipa_write_optimization_summaries): Likewise.
11552 (ipa_read_summaries): Likewise.
11553 (ipa_read_optimization_summaries): Likewise.
11554 (execute_all_ipa_stmt_fixups): Likewise.
11555
11556 * statistics.c (statistics_fini): Update for moves of globals to
11557 fields of pass_manager.
11558
11559 * toplev.c (general_init): Replace call to
11560 init_optimization_passes with construction of the pass_manager
11561 instance.
11562
11563 * tree-pass.h (all_passes): Remove, in favor of a field of the
11564 same name within the new class pass_manager.
11565 (all_small_ipa_passes): Likewise.
11566 (all_lowering_passes): Likewise.
11567 (all_regular_ipa_passes): Likewise.
11568 (all_lto_gen_passes): Likewise.
11569 (all_late_ipa_passes): Likewise.
11570 (passes_by_id): Likewise.
11571 (passes_by_id_size): Likewise.
11572 (gcc_pass_lists): Remove, in favor of "pass_lists" field within
11573 the new class pass_manager.
11574 (get_pass_for_id): Remove.
11575
02cab1c1
RE
115762013-07-30 Richard Earnshaw <rearnsha@arm.com>
11577
11578 * config.gcc (arm): Require 64-bit host-wide-int for all ARM target
11579 configs.
11580
b2d3f886
RE
115812013-07-30 Richard Earnshaw <rearnsha@arm.com>
11582
11583 * arm.md (mulhi3): New expand pattern.
11584
605e86fa
JH
115852013-07-30 Jan Hubicka <jh@suse.cz>
11586 Martin Liska <marxin.liska@gmail.com>
11587
11588 * profile.c (compute_value_histograms): Do not ICE when
11589 there is mismatch only on some counters.
11590
14a87636
ZC
115912013-07-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
11592
11593 PR rtl-optimization/57637
11594 * function.c (move_insn_for_shrink_wrap): Also check the
11595 GEN set of the LIVE problem for the liveness analysis
11596 if it exists, otherwise give up.
11597
0100cd3f
BS
115982013-07-29 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
11599
11600 PR tree-optimization/57993
11601 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Record
11602 replaced statement in the candidate table.
11603 (phi_add_costs): Return infinite cost when the hidden basis does
11604 not dominate all phis on which the candidate is dependent.
11605 (replace_one_candidate): Record replaced statement in the
11606 candidate table.
11607
f0d811f7
JR
116082013-07-29 Joern Rennecke <joern.rennecke@embecosm.com>
11609
11610 * config/epiphany/epiphany.md (*isub_i+2): New peephole.
11611 (ashlv2si3): New expander.
11612 (*ashlv2si3_i): New define_insn_and_split.
11613 * predicates.md (float_operation): Allow patterns with three
11614 basic sub-patterns.
11615
bba33211
JR
11616 PR rtl-optimization/58021
11617 * mode-switching.c (create_pre_exit): Always split off preceding
11618 insns if we are not at the basic block head.
11619
ff3f3951
MR
116202013-07-29 Maciej W. Rozycki <macro@codesourcery.com>
11621
11622 * config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Handle `-mnan=2008'.
11623 (UCLIBC_DYNAMIC_LINKER): New macro.
11624 * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32): Handle
11625 `-mnan=2008'.
11626 (GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32): Likewise.
11627 (UCLIBC_DYNAMIC_LINKER32): Undefine macro first. Handle
11628 `-mnan=2008'.
11629 (UCLIBC_DYNAMIC_LINKER64): Redefine macro.
11630 (UCLIBC_DYNAMIC_LINKERN32): Likewise.
11631 * config/mips/mips-modes.def: Remove RESET_FLOAT_FORMAT calls
11632 for SF and DF modes. Use ieee_quad_format for TF mode.
11633 * config/mips/mips-opts.h (mips_ieee_754_setting): New enum.
11634 * config/mips/mips.c (mips_file_start): Output a `.nan' directive.
11635 (mips_option_override): Handle `-mnan=legacy'.
11636 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Handle
11637 `-mabs=2008' and `-mnan=2008'.
11638 (OPTION_DEFAULT_SPECS): Add "nan" default.
11639 (ASM_SPEC): Handle `-mnan='.
11640 [!HAVE_AS_NAN] (HAVE_AS_NAN): New macro.
11641 * config/mips/mips.md (abs<mode>2): Handle `-mabs=2008', update
11642 comment accordingly.
11643 (neg<mode>2): Likewise.
11644 * config/mips/mips.opt (mabs, mnan): New options.
11645 * doc/install.texi (Configuration): Document `--with-nan=' option.
11646 * doc/invoke.texi (Option Summary): List MIPS `-mabs=' and
11647 `-mnan=' options.
11648 (MIPS Options): Document them.
11649 * config.gcc <mips*-*-*>: Handle `--with-nan='.
11650 * configure.ac <mips*-*-*>: Check for GAS `-mnan=2008' support.
11651 * configure: Regenerate.
11652 * config.in: Regenerate.
11653
576e2f37
UB
116542013-07-29 Uros Bizjak <ubizjak@gmail.com>
11655
11656 * config/i386/i386.md (float post-reload splitters): Do not check
11657 for subregs of SSE registers.
11658
116592013-07-29 Uros Bizjak <ubizjak@gmail.com>
11660 H.J. Lu <hongjiu.lu@intel.com>
11661
11662 PR target/57954
11663 PR target/57988
11664 * config/i386/i386.md (post-reload splitter
11665 to avoid partial SSE reg dependency stalls): New pattern.
11666
a71f0749
DV
116672013-07-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
11668
11669 * config/s390/s390.md ("movcc"): Swap load and store instructions.
11670
4c97f1cc
JR
116712013-07-27 Joern Rennecke <joern.rennecke@embecosm.com>
11672
11673 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
11674 Also reserve space for saving UNKNOWN_REGNUM for leaf functions.
11675
b0c733d8
CC
116762013-07-26 Cary Coutant <ccoutant@google.com>
11677
11678 * dwarf2out.c (die_checksum_ordered): Don't include template
11679 instantiations in signature.
11680 (is_template_parameter): New function.
11681 (is_template_instantiation): New function.
11682 (generate_skeleton_bottom_up): Don't include template instantiations
11683 in type unit DIE.
11684 (generate_skeleton): Likewise.
11685 (break_out_comdat_types): Move recursive call to break out nested
11686 types earlier.
11687 (prune_unused_types_mark_generic_parms_dies): Call
11688 is_template_parameter.
11689
040d8a1c
IB
116902013-07-26 Ian Bolton <ian.bolton@arm.com>
11691
11692 * config/aarch64/aarch64.md (neg<mode>2): Offer alternative that
11693 uses vector registers.
89fdc743 11694 * config/aarch64/iterators.md: Add attributes rtn and vas.
040d8a1c 11695
85bd4ac6 116962013-07-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
576e2f37 11697 Richard Earnshaw <richard.earnshaw@arm.com>
85bd4ac6
KT
11698
11699 * combine.c (simplify_comparison): Re-canonicalize operands
576e2f37 11700 where appropriate.
85bd4ac6
KT
11701 * config/arm/arm.md (movcond_addsi): New splitter.
11702
b6051207
SA
117032013-07-25 Sterling Augustine <saugustine@google.com>
11704
11705 * dwarf2out.c (size_of_pubnames): Move code to...
11706 (include_pubname_in_output): ...here. New.
11707 (want_pubnames): Rearrange.
11708 (output_pubnames): Call include_pubname_in_output. Move assertion.
11709
41a7c215
CM
117102013-07-25 Cameron McInally <cameron.mcinally@nyu.edu>
11711
11712 * doc/extend.texi: Fix return types for __builtin_ia32_cmp*s builtins.
11713
117142013-07-25 Cameron McInally <cameron.mcinally@nyu.edu>
11715
11716 PR target/38836
11717 * doc/extend.texi: Remove obsolete builtins. Fix
11718 typo for __builtin_ia32_loadss and __builtin_ia32_cmpnltss.
11719
49bde175
JH
117202013-07-25 Jan Hubicka <jh@suse.cz>
11721
11722 * cgraph.c (release_function_body): Break out from ...
11723 (cgraph_release_function_body): ... this one; also release DECL_RESULT
11724 and DECL_ARGUMENTS.
11725 * ipa-cp.c (get_replacement_map): Add parm_num argument; do not set
11726 old_tree in the map.
11727 (create_specialized_node): Update.
11728 * lto-cgraph.c (output_node_opt_summary): Do not translate old_tree
11729 into index.
41a7c215
CM
11730 * cgraphclones.c (cgraph_create_virtual_clone): Do not copy
11731 DECL_ARGUMENTS, DECL_INITIAL and DECL_RESULT.
49bde175
JH
11732 * ipa-prop.c (ipa_populate_param_decls): Look for origin of clones.
11733 * tree-inline.c (initialize_cfun): Initialize DECL_ARGUMENTS and
11734 DECL_RESULT.
11735
4870352d
KT
117362013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11737
11738 * config/arm/arm.md (arm_addsi3, addsi3_carryin_<optab>,
11739 addsi3_carryin_alt2_<optab>): Correct output template.
11740
1d6aee1c
KT
117412013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11742
11743 * config/arm/arm-fixed.md (ssmulsa3, usmulusa3):
11744 Adjust for arm_restrict_it.
11745 Remove trailing whitespace.
11746
c7cafd75
MK
117472013-07-25  Mark Kettenis  <kettenis@openbsd.org>
11748
017d38f5
MK
11749 * config/pa/pa.c (pa_trampoline_init): Emit __enable_execute_stack
11750 libcall if HAVE_ENABLE_EXECUTE_STACK is defined.
11751
c7cafd75
MK
11752 * config.gcc (hppa-*-openbsd*): Don't set tmake_file.
11753
00b7527b
VM
117542013-07-25 Vladimir Makarov <vmakarov@redhat.com>
11755
11756 PR rtl-optimization/57960
11757 * lra-constraints.c (process_alt_operands): Use the right mode
11758 when checking strict_low.
11759
4f63dfc6
JH
117602013-07-25 Jan Hubicka <jh@suse.cz>
11761
11762 * lto-symtab.c (lto_cgraph_replace_node): Release function body.
11763 * cgraph.c (cgraph_remove_node): Do not release function body
11764 when in cgraph streaming.
11765 * ipa.c (process_references, symtab_remove_unreachable_nodes): Objects
41a7c215
CM
11766 in other partitions are not considered reachable; fix handling of
11767 clones.
4f63dfc6 11768
e6dcfa18
RR
117692013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11770
11771 * config/arm/arm.md (*sibcall_insn): Remove unnecessary space.
11772
0b93d3b6
RR
117732013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11774
11775 PR target/19599
11776 PR target/57731
bb80c2eb 11777 PR target/57837
e6dcfa18 11778 * config/arm/arm.md ("*sibcall_insn): Replace use of
0b93d3b6 11779 Ss with US. Adjust output for v5 and v4t.
41a7c215 11780 (*sibcall_value_insn): Likewise and loosen predicate on operand0.
e6dcfa18 11781
0b93d3b6
RR
11782 * config/arm/constraints.md ("Ss"): Rename to US.
11783
690688b3
TG
117842013-07-25 Terry Guo <terry.guo@arm.com>
11785
11786 * config/arm/arm.c (thumb1_size_rtx_costs): Assign proper cost for
11787 shift_add/shift_sub0/shift_sub1 RTXs.
11788
a4ad093b 117892013-07-24 Bill Schmidt <wschmidt@linux.ibm.com>
12211b99 11790 Anton Blanchard <anton@au1.ibm.com>
a4ad093b
BS
11791
11792 * config/rs6000/altivec.md (altivec_vpkpx): Handle little endian.
11793 (altivec_vpks<VI_char>ss): Likewise.
11794 (altivec_vpks<VI_char>us): Likewise.
11795 (altivec_vpku<VI_char>us): Likewise.
11796 (altivec_vpku<VI_char>um): Likewise.
11797
8c5005ce
DM
117982013-07-24 David Malcolm <dmalcolm@redhat.com>
11799
11800 Introduce context class.
11801
11802 * Makefile.in (CONTEXT_H): New.
11803 (OBJS): Add context.o.
11804 (toplev.o): Add CONTEXT_H to dependencies.
11805 (context.o): New.
11806
41a7c215 11807 * toplev.c (general_init): Create the singleton gcc::context instance.
8c5005ce
DM
11808
11809 * context.c: New.
11810
11811 * context.h: New.
11812
ce4a9422
JR
118132013-07-24 Joern Rennecke <joern.rennecke@embecosm.com>
11814
11815 PR rtl-optimization/57968
11816 * mode-switching.c (create_pre_exit): Allow instructions that
11817 don't set a return register to need a non-exit mode.
11818
493f4c9e 118192013-07-24 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
12211b99 11820 Anton Blanchard <anton@au1.ibm.com>
493f4c9e 11821
b5860fd3
WS
11822 * config/rs6000/vector.md (vec_realign_load_<mode>): Reorder input
11823 operands to vperm for little endian.
11824 * config/rs6000/rs6000.c (rs6000_expand_builtin): Use lvsr instead
11825 of lvsl to create the control mask for a vperm for little endian.
493f4c9e 11826
73792b92 118272013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 11828 Anton Blanchard <anton@au1.ibm.com>
73792b92
BS
11829
11830 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Reverse
11831 two operands for little-endian.
11832
14c21302
SE
118332013-07-23 Steve Ellcey <sellcey@mips.com>
11834
11835 * config/mips/mips.c (mips_case_values_threshold): New.
11836 (TARGET_CASE_VALUES_THRESHOLD): Define.
11837
a6056198 118382013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 11839 Anton Blanchard <anton@au1.ibm.com>
a6056198
BS
11840
11841 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Correct
11842 selection of field for vector splat in little endian mode.
11843
dd7a40e1
MM
118442013-07-23 Michael Meissner <meissner@linux.vnet.ibm.com>
11845
11846 * config/rs6000/vector.md (xor<mode>3): Move 128-bit boolean
11847 expanders to rs6000.md.
11848 (ior<mode>3): Likewise.
11849 (and<mode>3): Likewise.
11850 (one_cmpl<mode>2): Likewise.
11851 (nor<mode>3): Likewise.
11852 (andc<mode>3): Likewise.
11853 (eqv<mode>3): Likewise.
11854 (nand<mode>3): Likewise.
11855 (orc<mode>3): Likewise.
11856
11857 * config/rs6000/rs6000-protos.h (rs6000_split_logical): New
11858 declaration.
11859
11860 * config/rs6000/rs6000.c (rs6000_split_logical_inner): Add support
11861 to split multi-word logical operations.
11862 (rs6000_split_logical_di): Likewise.
11863 (rs6000_split_logical): Likewise.
11864
11865 * config/rs6000/vsx.md (VSX_L2): Delete, no longer used.
11866 (vsx_and<mode>3_32bit): Move 128-bit logical insns to rs6000.md,
11867 and allow TImode operations in 32-bit.
11868 (vsx_and<mode>3_64bit): Likewise.
11869 (vsx_ior<mode>3_32bit): Likewise.
11870 (vsx_ior<mode>3_64bit): Likewise.
11871 (vsx_xor<mode>3_32bit): Likewise.
11872 (vsx_xor<mode>3_64bit): Likewise.
11873 (vsx_one_cmpl<mode>2_32bit): Likewise.
11874 (vsx_one_cmpl<mode>2_64bit): Likewise.
11875 (vsx_nor<mode>3_32bit): Likewise.
11876 (vsx_nor<mode>3_64bit): Likewise.
11877 (vsx_andc<mode>3_32bit): Likewise.
11878 (vsx_andc<mode>3_64bit): Likewise.
11879 (vsx_eqv<mode>3_32bit): Likewise.
11880 (vsx_eqv<mode>3_64bit): Likewise.
11881 (vsx_nand<mode>3_32bit): Likewise.
11882 (vsx_nand<mode>3_64bit): Likewise.
11883 (vsx_orc<mode>3_32bit): Likewise.
11884 (vsx_orc<mode>3_64bit): Likewise.
11885
11886 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Always allow vector
11887 logical types in GPRs.
11888
11889 * config/rs6000/altivec.md (altivec_and<mode>3): Move 128-bit
11890 logical insns to rs6000.md, and allow TImode operations in
11891 32-bit.
11892 (altivec_ior<mode>3): Likewise.
11893 (altivec_xor<mode>3): Likewise.
11894 (altivec_one_cmpl<mode>2): Likewise.
11895 (altivec_nor<mode>3): Likewise.
11896 (altivec_andc<mode>3): Likewise.
11897
11898 * config/rs6000/rs6000.md (BOOL_128): New mode iterators and mode
11899 attributes for moving the 128-bit logical operations into
11900 rs6000.md.
11901 (BOOL_REGS_OUTPUT): Likewise.
11902 (BOOL_REGS_OP1): Likewise.
11903 (BOOL_REGS_OP2): Likewise.
11904 (BOOL_REGS_UNARY): Likewise.
11905 (BOOL_REGS_AND_CR0): Likewise.
11906 (one_cmpl<mode>2): Add support for DI logical operations on
11907 32-bit, splitting the operations to 32-bit.
11908 (anddi3): Likewise.
11909 (iordi3): Likewise.
11910 (xordi3): Likewise.
11911 (and<mode>3, 128-bit types): Rewrite 2013-06-06 logical operator
11912 changes to combine the 32/64-bit code, allow logical operations on
11913 TI mode in 32-bit, and to use similar match_operator patterns like
11914 scalar mode uses. Combine the Altivec and VSX code for logical
11915 operations, and move it here.
11916 (ior<mode>3, 128-bit types): Likewise.
11917 (xor<mode>3, 128-bit types): Likewise.
11918 (one_cmpl<mode>3, 128-bit types): Likewise.
11919 (nor<mode>3, 128-bit types): Likewise.
11920 (andc<mode>3, 128-bit types): Likewise.
11921 (eqv<mode>3, 128-bit types): Likewise.
11922 (nand<mode>3, 128-bit types): Likewise.
11923 (orc<mode>3, 128-bit types): Likewise.
11924 (and<mode>3_internal): Likewise.
11925 (bool<mode>3_internal): Likewise.
11926 (boolc<mode>3_internal1): Likewise.
11927 (boolc<mode>3_internal2): Likewise.
11928 (boolcc<mode>3_internal1): Likewise.
11929 (boolcc<mode>3_internal2): Likewise.
11930 (eqv<mode>3_internal1): Likewise.
11931 (eqv<mode>3_internal2): Likewise.
11932 (one_cmpl1<mode>3_internal): Likewise.
11933
12211b99 119342013-07-23 David Holsgrove <david.holsgrove@xilinx.com>
9b69d4b4
DH
11935
11936 * config/microblaze/microblaze.c (microblaze_expand_prologue):
11937 Rename flag_stack_usage to flag_stack_usage_info.
11938
12211b99 119392013-07-23 David Holsgrove <david.holsgrove@xilinx.com>
450b0ebb 11940
a5f257fd
ME
11941 * config/microblaze/sync.md: New file.
11942 * config/microblaze/microblaze.md: Include sync.md
11943 * config/microblaze/microblaze.c: Add print_operand 'y'.
11944 * config/microblaze/constraints.md: Add memory_contraint
11945 'Q' which is a single register.
450b0ebb 11946
49fba14f
EB
119472013-07-23 Eric Botcazou <ebotcazou@adacore.com>
11948
11949 * doc/invoke.texi (SPARC Options): Document new leon3 processor value.
11950
c7b3b99f
PCC
119512013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu>
11952
11953 * reload.c (find_reloads): Exit loop once we find this operand
11954 cannot be reloaded somehow for this alternative.
11955
11956 * reload.c (find_reloads): Exit loop once we find a hard register.
11957
11958 * rtlanal.c (computed_jump_p): Exit loop once we find label
11959 reference is used.
11960
11961 * i386.c (ix86_pad_returns): Exit loop after setting replace.
11962
11963 * cfgloopmanip.c (remove_path): Exit loop after setting
11964 irred_invalidated.
11965
11966 * gensupport.c (subst_dup): Avoid loop if code is not
11967 MATCH_DUP nor MATCH_OP_DUP.
11968
c8fbf1fa
NBJ
119692013-07-23 Nicklas Bo Jensen <nbjensen@gmail.com>
11970
11971 * doc/md.texi (Machine-Specific Peephole Optimizers): Fix a typo.
11972
9259db42
YZ
119732013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
11974
11975 * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Also return
11976 true for SP_REGNUM if mode == ptr_mode.
11977 * config/aarch64/aarch64.h (ADDITIONAL_REGISTER_NAMES): Add "wsp"
11978 with value R0_REGNUM + 31.
11979
00edcfbe
YZ
119802013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
11981
11982 * config/aarch64/aarch64.c (aarch64_pad_arg_upward): In big-endian,
11983 pad pointer-typed argument downward.
11984
43be9a95
YZ
119852013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
11986
11987 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define _ILP32
11988 and __ILP32__ when the ILP32 model is in use.
11989
28514dda
YZ
119902013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
11991
11992 * config/aarch64/aarch64.c (POINTER_BYTES): New define.
11993 (aarch64_load_symref_appropriately): In the case of
11994 SYMBOL_SMALL_ABSOLUTE, use the mode of 'dest' instead of Pmode
11995 to generate new rtx; likewise to the case of SYMBOL_SMALL_GOT.
11996 (aarch64_expand_mov_immediate): In the case of SYMBOL_FORCE_TO_MEM,
11997 change to pass 'ptr_mode' to force_const_mem and zero-extend 'mem'
11998 if 'mode' doesn't equal to 'ptr_mode'.
11999 (aarch64_output_mi_thunk): Add an assertion on the alignment of
12000 'vcall_offset'; change to call aarch64_emit_move differently depending
12001 on whether 'Pmode' equals to 'ptr_mode' or not; use 'POINTER_BYTES'
12002 to calculate the upper bound of 'vcall_offset'.
12003 (aarch64_cannot_force_const_mem): Change to also return true if
12004 mode != ptr_mode.
12005 (aarch64_legitimize_reload_address): In the case of large
12006 displacements, add new local variable 'xmode' and an assertion
12007 based on it; change to use 'xmode' to generate the new rtx and
12008 reload.
12009 (aarch64_asm_trampoline_template): Change to generate the template
12010 differently depending on TARGET_ILP32 or not; change to use
12011 'POINTER_BYTES' in the argument passed to assemble_aligned_integer.
12012 (aarch64_trampoline_size): Removed.
12013 (aarch64_trampoline_init): Add new local constant 'tramp_code_sz'
12014 and replace immediate literals with it. Change to use 'ptr_mode'
12015 instead of 'DImode' and call convert_memory_address if the mode
12016 of 'fnaddr' doesn't equal to 'ptr_mode'.
12017 (aarch64_elf_asm_constructor): Change to use assemble_aligned_integer
12018 to output symbol.
12019 (aarch64_elf_asm_destructor): Likewise.
12020 * config/aarch64/aarch64.h (TRAMPOLINE_SIZE): Change to be dependent
12021 on TARGET_ILP32 instead of aarch64_trampoline_size.
12022 * config/aarch64/aarch64.md (movsi_aarch64): Add new alternatives
12023 of 'mov' between WSP and W registers as well as 'adr' and 'adrp'.
12024 (loadwb_pair<GPI:mode>_<PTR:mode>): Rename to ...
12025 (loadwb_pair<GPI:mode>_<P:mode>): ... this. Replace PTR with P.
12026 (storewb_pair<GPI:mode>_<PTR:mode>): Likewise; rename to ...
12027 (storewb_pair<GPI:mode>_<P:mode>): ... this.
12028 (add_losym): Change to 'define_expand' and call gen_add_losym_<mode>
12029 depending on the value of 'mode'.
12030 (add_losym_<mode>): New.
12031 (ldr_got_small_<mode>): New, based on ldr_got_small.
12032 (ldr_got_small): Remove.
12033 (ldr_got_small_sidi): New.
12034 * config/aarch64/iterators.md (P): New.
12035 (PTR): Change to 'ptr_mode' in the condition.
12036
17a819cb
YZ
120372013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
12038
12039 * config.gcc (aarch64*-*-*): Support --with-abi.
12040 (aarch64*-*-elf): Support --with-multilib-list.
12041 (aarch64*-*-linux*): Likewise.
12042 (supported_defaults): Add abi to aarch64*-*-*.
12043 * configure.ac: Mention AArch64 for --with-multilib-list.
12044 * configure: Re-generated.
12045 * config/aarch64/biarchilp32.h: New file.
12046 * config/aarch64/biarchlp64.h: New file.
12047 * config/aarch64/aarch64-elf.h (ENDIAN_SPEC): New define.
12048 (ABI_SPEC): Ditto.
12049 (MULTILIB_DEFAULTS): Ditto.
12050 (DRIVER_SELF_SPECS): Ditto.
12051 (ASM_SPEC): Update to also substitute -mabi.
12052 * config/aarch64/aarch64-elf-raw.h (LINK_SPEC): Add linker script
12053 file whose name depends on -mabi= and -mbig-endian.
12054 * config/aarch64/aarch64.h (LONG_TYPE_SIZE): Change to depend on
12055 TARGET_ILP32.
12056 (POINTER_SIZE): New define.
12057 (POINTERS_EXTEND_UNSIGNED): Ditto.
12058 (enum aarch64_abi_type): New enumeration tag.
12059 (AARCH64_ABI_LP64, AARCH64_ABI_ILP32): New enumerators.
12060 (AARCH64_ABI_DEFAULT): Define to AARCH64_ABI_LP64 if undefined.
12061 (TARGET_ILP32): New define.
12062 * config/aarch64/aarch64.opt (mabi): New.
12063 (aarch64_abi): New.
12064 (ilp32, lp64): New values for -mabi.
12065 * config/aarch64/t-aarch64 (comma): New define.
12066 (MULTILIB_OPTIONS): Ditto.
12067 (MULTILIB_DIRNAMES): Ditto.
12068 * config/aarch64/t-aarch64-linux (MULTIARCH_DIRNAME): New define.
12069 * doc/invoke.texi: Document -mabi for AArch64.
12070
9f9cbdce
GJL
120712013-07-23 Georg-Johann Lay <avr@gjlay.de>
12072
12073 * config/avr/avr.md: Explain asm print modifier 'r' for REG.
12074
7061977b 120752013-07-22 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
12211b99 12076 Anton Blanchard <anton@au1.ibm.com>
7061977b
BS
12077
12078 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Fix
12079 endianness when selecting field to splat.
12080
75a41878
EC
120812013-07-22 Eric Christopher <echristo@gmail.com>
12082
12083 * dwarf2out.c (die_odr_checksum): New function to use
12084 CHECKSUM_ macros and ULEB128 for DIE tag.
12085 (generate_type_signature): Use.
41a7c215 12086
38ae58ca
EB
120872013-07-22 Eric Botcazou <ebotcazou@adacore.com>
12088
12089 * config.gcc (sparc*-*-*): Accept leon3 processor.
12090 (sparc-leon*-*): Merge with sparc*-*-* and add leon3 support.
12091 * doc/invoke.texi (SPARC Options): Adjust -mfix-ut699 entry.
12092 * config/sparc/sparc-opts.h (enum processor_type): Add PROCESSOR_LEON3.
12093 * config/sparc/sparc.opt (enum processor_type): Add leon3.
12094 (mfix-ut699): Adjust comment.
12095 * config/sparc/sparc.h (TARGET_CPU_leon3): New define.
12096 (CPP_CPU32_DEFAULT_SPEC): Add leon3 support.
12097 (CPP_CPU_SPEC): Likewise.
12098 (ASM_CPU_SPEC): Likewise.
12099 * config/sparc/sparc.c (leon3_cost): New constant.
12100 (sparc_option_override): Add leon3 support.
12101 (mem_ref): New function.
12102 (sparc_gate_work_around_errata): Return true if -mfix-ut699 is enabled.
12103 (sparc_do_work_around_errata): Look into the instruction in the delay
12104 slot and adjust accordingly. Add fix for the data cache nullify issues
12105 of the UT699. Change insertion position for the NOP.
12106 * config/sparc/leon.md (leon_fpalu, leon_fpmds, write_buf): Delete.
12107 (leon3_load): New reservation.
12108 (leon_store): Bump latency to 2.
12109 (grfpu): New automaton.
12110 (grfpu_alu): New unit.
12111 (grfpu_ds): Likewise.
12112 (leon_fp_alu): Adjust.
12113 (leon_fp_mult): Delete.
12114 (leon_fp_div): Split into leon_fp_divs and leon_fp_divd.
12115 (leon_fp_sqrt): Split into leon_fp_sqrts and leon_fp_sqrtd.
12116 * config/sparc/sparc.md (cpu): Add leon3.
12117 * config/sparc/sync.md (atomic_exchangesi): Disable if -mfix-ut699.
12118 (swapsi): Likewise.
12119 (atomic_test_and_set): Likewise.
12120 (ldstub): Likewise.
12121
04dfc6df
JU
121222013-07-22 Jürgen Urban <JuergenUrban@gmx.de>
12123
12124 * config.gcc (mips*-*-*): Add --with-fpu support. Make single the
12125 default for R5900 targets.
12126 * config/mips/mips.h (OPTION_DEFAULT_SPECS): Handle --with-fpu.
12127 (ISA_HAS_LDC1_SDC1): Set to false for TARGET_MIPS5900.
12128 * config/mips/mips.c (mips_option_override): Report an error for
12129 -march=r5900 -mhard-float -mdouble-float. Use spu_single_format
12130 for -march=r5900 -mhard-float.
12131
c7b3b99f 121322013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu>
ae382ebd
PCC
12133
12134 * df-problems.c (can_move_insns_across): Exit loop once we
12135 find a non-fixed, non-global register.
12136
12137 * ipa-pure-const.c (propagate_nothrow): Exit loop after
12138 setting can_throw.
12139
12140 * omega.c (omega_eliminate_red): Break after setting red_found.
12141 (omega_problem_has_red_equations): Similarly after setting found.
12142 (omega_query_variable): Similarly after setting coupled.
12143
9b6e6981
MP
121442013-07-22 Marek Polacek <polacek@redhat.com>
12145
12146 * gimplify.c: Don't include gimple.h twice.
12147
5e5f7673
KT
121482013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12149
12150 * config/arm/constraints.md (Pd): Allow TARGET_THUMB
12151 instead of TARGET_THUMB1.
12152 (Pz): New constraint.
12153 * config/arm/arm.md (arm_addsi3): Add alternatives for 16-bit
12154 encodings.
12155 (compare_negsi_si): Likewise.
12156 (compare_addsi2_op0): Likewise.
12157 (compare_addsi2_op1): Likewise.
12158 (addsi3_carryin_<optab>): Likewise.
12159 (addsi3_carryin_alt2_<optab>): Likewise.
12160 (addsi3_carryin_shift_<optab>): Disable cond_exec variant
12161 for arm_restrict_it.
12162 (subsi3_carryin): Likewise.
12163 (arm_subsi3_insn): Add alternatives for 16-bit encoding.
12164 (minmax_arithsi): Disable for arm_restrict_it.
12165 (minmax_arithsi_non_canon): Adjust for arm_restrict_it.
12166 (satsi_<SAT:code>): Disable cond_exec variant for arm_restrict_it.
12167 (satsi_<SAT:code>_shift): Likewise.
12168 (arm_shiftsi3): Add alternative for 16-bit encoding.
12169 (arm32_movhf): Disable for arm_restrict_it.
12170 (arm_cmpdi_unsigned): Add alternatives for 16-bit encoding.
12171 (arm_movtas_ze): Disable cond_exec variant for arm_restrict_it.
12172
859abddd
SN
121732013-07-22 Sofiane Naci <sofiane.naci@arm.com>
12174
12175 * config/arm/arm.md (attribute "insn"): Delete.
12176 (attribute "type"): Add "mov_imm", "mov_reg", "mov_shift",
12177 "mov_shift_reg", "mvn_imm", "mvn_reg", "mvn_shift" and "mvn_shift_reg".
12178 (not_shiftsi): Update for attribute change.
12179 (not_shiftsi_compare0): Likewise.
12180 (not_shiftsi_compare0_scratch): Likewise.
12181 (arm_one_cmplsi2): Likewise.
12182 (thumb1_one_cmplsi2): Likewise.
12183 (notsi_compare0): Likewise.
12184 (notsi_compare0_scratch): Likewise.
12185 (thumb1_movdi_insn): Likewise.
12186 (arm_movsi_insn): Likewise.
12187 (movhi_insn_arch4): Likewise.
12188 (movhi_bytes): Likewise.
12189 (arm_movqi_insn): Likewise.
12190 (thumb1_movqi_insn): Likewise.
12191 (arm32_movhf): Likewise.
12192 (thumb1_movhf): Likewise.
12193 (arm_movsf_soft_insn): Likewise.
12194 (thumb1_movsf_insn): Likewise.
12195 (thumb_movdf_insn): Likewise.
12196 (movsicc_insn): Likewise.
12197 (movsfcc_soft_insn): Likewise.
12198 (and_scc): Likewise.
12199 (cond_move): Likewise.
12200 (if_move_not): Likewise.
12201 (if_not_move): Likewise.
12202 (if_shift_move): Likewise.
12203 (if_move_shift): Likewise.
12204 (if_shift_shift): Likewise.
12205 (if_not_arith): Likewise.
12206 (if_arith_not): Likewise.
12207 (cond_move_not): Likewise.
12208 * config/arm/neon.md (neon_mov<mode>): Update for attribute change.
12209 (neon_mov<mode>): Likewise.
12210 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute change.
12211 (thumb2_movsi_vfp): Likewise.
12212 (movsf_vfp): Likewise.
12213 (thumb2_movsf_vfp): Likewise.
371e77e3
UB
12214 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute
12215 change.
859abddd
SN
12216 (cortexa7_older_only): Likewise.
12217 (cortexa7_younger): Likewise.
12218 * config/arm/arm1020e.md (1020alu_op): Update for attribute change.
12219 (1020alu_shift_op): Likewise.
12220 (1020alu_shift_reg_op): Likewise.
12221 * config/arm/arm1026ejs.md (alu_op): Update for attribute change.
12222 (alu_shift_op): Likewise.
12223 (alu_shift_reg_op): Likewise.
12224 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute change.
12225 (11_alu_shift_op): Likewise.
12226 (11_alu_shift_reg_op): Likewise.
12227 * config/arm/arm926ejs.md (9_alu_op): Update for attribute change.
12228 (9_alu_shift_reg_op): Likewise.
371e77e3
UB
12229 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
12230 change.
859abddd
SN
12231 (cortex_a15_alu_shift): Likewise.
12232 (cortex_a15_alu_shift_reg): Likewise.
12233 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute change.
12234 (cortex_a5_alu_shift): Likewise.
371e77e3
UB
12235 * config/arm/cortex-a53.md (cortex_a53_alu): Update for attribute
12236 change.
859abddd 12237 (cortex_a53_alu_shift): Likewise.
371e77e3
UB
12238 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
12239 change.
859abddd
SN
12240 (cortex_a7_alu_reg): Likewise.
12241 (cortex_a7_alu_shift): Likewise.
12242 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
12243 (cortex_a8_alu_shift): Likewise.
12244 (cortex_a8_alu_shift_reg): Likewise.
12245 (cortex_a8_mov): Likewise.
12246 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
12247 (cortex_a9_dp_shift): Likewise.
12248 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute change.
12249 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute change.
12250 (cortex_r4_mov): Likewise.
12251 (cortex_r4_alu_shift): Likewise.
12252 (cortex_r4_alu_shift_reg): Likewise.
12253 * config/arm/fa526.md (526_alu_op): Update for attribute change.
12254 (526_alu_shift_op): Likewise.
12255 * config/arm/fa606te.md (606te_alu_op): Update for attribute change.
12256 * config/arm/fa626te.md (626te_alu_op): Update for attribute change.
12257 (626te_alu_shift_op): Likewise.
12258 * config/arm/fa726te.md (726te_shift_op): Update for attribute change.
12259 (726te_alu_op): Likewise.
12260 (726te_alu_shift_op): Likewise.
12261 (726te_alu_shift_reg_op): Likewise.
12262 * config/arm/fmp626.md (mp626_alu_op): Update for attribute change.
12263 (mp626_alu_shift_op): Likewise.
12264 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute change.
12265 (pj4_alu_e1_conds): Likewise.
12266 (pj4_alu): Likewise.
12267 (pj4_alu_conds): Likewise.
12268 (pj4_shift): Likewise.
12269 (pj4_shift_conds): Likewise.
12270 (pj4_alu_shift): Likewise.
12271 (pj4_alu_shift_conds): Likewise.
12272
95b97fac
KT
122732013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12274
12275 * config/arm/predicates.md (shiftable_operator_strict_it):
12276 New predicate.
12277 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si):
12278 Disable cond_exec version for arm_restrict_it.
12279 (thumb2_smaxsi3): Convert to generate cond_exec.
12280 (thumb2_sminsi3): Likewise.
12281 (thumb32_umaxsi3): Likewise.
12282 (thumb2_uminsi3): Likewise.
12283 (thumb2_abssi2): Adjust constraints for arm_restrict_it.
12284 (thumb2_neg_abssi2): Likewise.
12285 (thumb2_mov_scc): Add alternative for 16-bit encoding.
12286 (thumb2_movsicc_insn): Adjust alternatives.
12287 (thumb2_mov_negscc): Disable for arm_restrict_it.
12288 (thumb2_mov_negscc_strict_it): New pattern.
12289 (thumb2_mov_notscc_strict_it): New pattern.
12290 (thumb2_mov_notscc): Disable for arm_restrict_it.
12291 (thumb2_ior_scc): Likewise.
12292 (thumb2_ior_scc_strict_it): New pattern.
12293 (thumb2_cond_move): Adjust for arm_restrict_it.
12294 (thumb2_cond_arith): Disable for arm_restrict_it.
12295 (thumb2_cond_arith_strict_it): New pattern.
12296 (thumb2_cond_sub): Adjust for arm_restrict_it.
12297 (thumb2_movcond): Likewise.
12298 (thumb2_extendqisi_v6): Disable cond_exec variant for arm_restrict_it.
12299 (thumb2_zero_extendhisi2_v6): Likewise.
12300 (thumb2_zero_extendqisi2_v6): Likewise.
12301 (orsi_notsi_si): Likewise.
12302 (orsi_not_shiftsi_si): Likewise.
12303
d5a6ef82
GJL
123042013-07-22 Georg-Johann Lay <avr@gjlay.de>
12305
12306 * config/avr/avr.c (avr_out_xload): No SBIS around LPM so that
12307 instruction sequence is 1 byte shorter.
12308
d9e71154
UB
123092013-07-22 Uros Bizjak <ubizjak@gmail.com>
12310
12311 * config/i386/i386.md (nonlocal_goto_receiver): Delete insn if
12312 it is not needed after split.
12313
8c6381ec
IS
123142013-07-20 Iain Sandoe <iain@codesourcery.com>
12315
12316 PR target/51784
12317 * config/i386/i386.c (output_set_got) [TARGET_MACHO]: Adjust to emit a
12318 second label for nonlocal goto receivers. Don't output pic base labels
12319 unless we're producing PIC; mark that action unreachable().
12320 (ix86_save_reg): If the function contains a nonlocal label, save the
12321 PIC base reg.
12322 * config/darwin-protos.h (machopic_should_output_picbase_label): New.
f43245d1 12323 * config/darwin.c (emitted_pic_label_num): New GTY.
8c6381ec
IS
12324 (update_pic_label_number_if_needed): New.
12325 (machopic_output_function_base_name): Adjust for nonlocal receiver
12326 case.
12327 (machopic_should_output_picbase_label): New.
12328 * config/i386/i386.md (enum unspecv): UNSPECV_NLGR: New.
12329 (nonlocal_goto_receiver): New insn and split.
12330
d05d0709
JG
123312013-07-20 James Greenhalgh <james.greenhalgh@arm.com>
12332
12333 * config/aarch64/aarch64-builtins.c
12334 (aarch64_fold_builtin): Fold abs in all modes.
12335 * config/aarch64/aarch64-simd-builtins.def
12336 (abs): Enable for all modes.
12337 * config/aarch64/arm_neon.h
12338 (vabs<q>_s<8,16,32,64): Rewrite using builtins.
12339 (vabs_f64): Add missing intrinsic.
12340
ba590e63
IB
123412013-07-19 Ian Bolton <ian.bolton@arm.com>
12342
12343 * config/aarch64/arm_neon.h (vabs_s64): New function
12344
02371798
GJL
123452013-07-19 Georg-Johann Lay <avr@gjlay.de>
12346
12347 PR target/57516
12348 * config/avr/avr-fixed.md (round<mode>3_const): Turn expander to insn.
12349 * config/avr/avr.md (adjust_len): Add `round'.
12350 * config/avr/avr-protos.h (avr_out_round): New prototype.
12351 (avr_out_plus): Add `out_label' argument.
12352 * config/avr/avr.c (avr_out_plus_1): Add `out_label' argument.
12353 (avr_out_plus): Pass down `out_label' to avr_out_plus_1.
12354 Handle the case where `insn' is just a pattern.
12355 (avr_out_bitop): Handle the case where `insn' is just a pattern.
12356 (avr_out_round): New function.
12357 (avr_adjust_insn_length): Handle ADJUST_LEN_ROUND.
12358
12211b99 123592013-07-18 David Holsgrove <david.holsgrove@xilinx.com>
b950ac25
DH
12360
12361 * config/microblaze/microblaze.c (microblaze_expand_prologue):
12362 Add check for flag_stack_usage to handle -fstack-usage support
12363
12211b99 123642013-07-18 Pat Haugen <pthaugen@us.ibm.com>
ed1fd999
PH
12365
12366 * config/rs6000/rs6000.c (rs6000_option_override_internal): Adjust flag
12367 interaction for new Power8 flags and VSX.
12368
df9dda2d
ST
123692013-07-18 Sriraman Tallam <tmsriram@google.com>
12370
12371 PR middle-end/57698
12372 * tree-inline.c (expand_call_inline): Emit errors during
12373 early_inlining only if optimization is not turned on.
12374
0f9cdef4
DM
123752013-07-18 David Malcolm <dmalcolm@redhat.com>
12376
12377 * passes.def: New.
12378
12379 * passes.c (init_optimization_passes): Move the construction of
12380 the pass hierarchy into a new passes.def file.
12381
12382 * Makefile.in (passes.o): Add dependency on passes.def.
12383
2efa4087
DM
123842013-07-18 David Malcolm <dmalcolm@redhat.com>
12385
12386 * passes.c (init_optimization_passes): Introduce macros for
12387 constructing the tree of passes (INSERT_PASSES_AFTER,
12388 PUSH_INSERT_PASSES_WITHIN, POP_INSERT_PASSES,
12389 TERMINATE_PASS_LIST).
12390
bc404e1b
VM
123912013-07-18 Vladimir Makarov <vmakarov@redhat.com>
12392 Wei Mi <wmi@google.com>
12393
12394 PR rtl-optimization/57878
12395 * lra-assigns.c (assign_by_spills): Move non_reload_pseudos to the
12396 top.
12397 (reload_pseudo_compare_func): Check nregs first for reload
12398 pseudos.
12399
d675843f
DM
124002013-07-18 David Malcolm <dmalcolm@redhat.com>
12401
12402 * tree-pass.h (pass_ipa_lto_wpa_fixup): Remove redundant decl.
12403
c7b3b99f 124042013-07-18 Po-Chun Chang <pchang9@cs.wisc.edu>
bcb97fbd
PCC
12405
12406 * read-rtl.c (validate_const_int): Once an invalid character is
12407 seen, quit the loop.
12408
12409 * gengtype.c (write_roots): Similarly once we find the "deletable"
12410 or "if_marked" option.
12411
52fceb44
SN
124122013-07-18 Sofiane Naci <sofiane.naci@arm.com>
12413
12414 * config/arm/arm.md (attribute "insn"): Delete values "mrs", "msr",
12415 "xtab" and "sat". Move value "clz" from here to ...
12416 (attriubte "type"): ... here.
12417 (satsi_<SAT:code>): Delete "insn" attribute.
12418 (satsi_<SAT:code>_shift): Likewise.
12419 (arm_zero_extendqisi2addsi): Likewise.
12420 (arm_extendqisi2addsi): Likewise.
12421 (clzsi2): Update for attribute changes.
12422 (rbitsi2): Likewise.
371e77e3
UB
12423 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Delete "insn"
12424 attribute.
52fceb44
SN
12425 (arm_usatsihi): Likewise.
12426 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
12427
006bd006
SN
124282013-07-18 Sofiane Naci <sofiane.naci@arm.com>
12429
12430 * config/arm/arm.md (attribute "type"): Rename "simple_alu_imm" to
371e77e3
UB
12431 "arlo_imm". Rename "alu_reg" to "arlo_reg". Rename "simple_alu_shift"
12432 to "extend". Split "alu_shift" into "shift" and "arlo_shift". Split
006bd006
SN
12433 "alu_shift_reg" into "shift_reg" and "arlo_shift_reg". List types
12434 in alphabetical order.
12435 (attribute "core_cycles"): Update for attribute changes.
12436 (arm_addsi3): Likewise.
12437 (addsi3_compare0): Likewise.
12438 (addsi3_compare0_scratch): Likewise.
12439 (addsi3_compare_op1): Likewise.
12440 (addsi3_compare_op2): Likewise.
12441 (compare_addsi2_op0): Likewise.
12442 (compare_addsi2_op1): Likewise.
12443 (addsi3_carryin_shift_<optab>): Likewise.
12444 (subsi3_carryin_shift): Likewise.
12445 (rsbsi3_carryin_shift): Likewise.
12446 (arm_subsi3_insn): Likewise.
12447 (subsi3_compare0): Likewise.
12448 (subsi3_compare): Likewise.
12449 (arm_andsi3_insn): Likewise.
12450 (thumb1_andsi3_insn): Likewise.
12451 (andsi3_compare0): Likewise.
12452 (andsi3_compare0_scratch): Likewise.
12453 (zeroextractsi_compare0_scratch
12454 (andsi_not_shiftsi_si): Likewise.
12455 (iorsi3_insn): Likewise.
12456 (iorsi3_compare0): Likewise.
12457 (iorsi3_compare0_scratch): Likewise.
12458 (arm_xorsi3): Likewise.
12459 (thumb1_xorsi3_insn): Likewise.
12460 (xorsi3_compare0): Likewise.
12461 (xorsi3_compare0_scratch): Likewise.
12462 (satsi_<SAT:code>_shift): Likewise.
12463 (rrx): Likewise.
12464 (arm_shiftsi3): Likewise.
12465 (shiftsi3_compare0): Likewise.
12466 (not_shiftsi): Likewise.
12467 (not_shiftsi_compare0): Likewise.
12468 (not_shiftsi_compare0_scratch): Likewise.
12469 (arm_one_cmplsi2): Likewise.
12470 (thumb_one_complsi2): Likewise.
12471 (notsi_compare0): Likewise.
12472 (notsi_compare0_scratch): Likewise.
12473 (thumb1_zero_extendhisi2): Likewise.
12474 (arm_zero_extendhisi2): Likewise.
12475 (arm_zero_extendhisi2_v6): Likewise.
12476 (arm_zero_extendhisi2addsi): Likewise.
12477 (thumb1_zero_extendqisi2): Likewise.
12478 (thumb1_zero_extendqisi2_v6): Likewise.
12479 (arm_zero_extendqisi2): Likewise.
12480 (arm_zero_extendqisi2_v6): Likewise.
12481 (arm_zero_extendqisi2addsi): Likewise.
12482 (thumb1_extendhisi2): Likewise.
12483 (arm_extendhisi2): Likewise.
12484 (arm_extendhisi2_v6): Likewise.
12485 (arm_extendqisi): Likewise.
12486 (arm_extendqisi_v6): Likewise.
12487 (arm_extendqisi2addsi): Likewise.
12488 (thumb1_extendqisi2): Likewise.
12489 (thumb1_movdi_insn): Likewise.
12490 (arm_movsi_insn): Likewise.
12491 (movsi_compare0): Likewise.
12492 (movhi_insn_arch4): Likewise.
12493 (movhi_bytes): Likewise.
12494 (arm_movqi_insn): Likewise.
12495 (thumb1_movqi_insn): Likewise.
12496 (arm32_movhf): Likewise.
12497 (thumb1_movhf): Likewise.
12498 (arm_movsf_soft_insn): Likewise.
12499 (thumb1_movsf_insn): Likewise.
12500 (movdf_soft_insn): Likewise.
12501 (thumb_movdf_insn): Likewise.
12502 (arm_cmpsi_insn): Likewise.
12503 (cmpsi_shiftsi): Likewise.
12504 (cmpsi_shiftsi_swp): Likewise.
12505 (arm_cmpsi_negshiftsi_si): Likewise.
12506 (movsicc_insn): Likewise.
12507 (movsfcc_soft_insn): Likewise.
12508 (arith_shiftsi): Likewise.
12509 (arith_shiftsi_compare0
12510 (arith_shiftsi_compare0_scratch
12511 (sub_shiftsi): Likewise.
12512 (sub_shiftsi_compare0
12513 (sub_shiftsi_compare0_scratch
12514 (and_scc): Likewise.
12515 (cond_move): Likewise.
12516 (if_plus_move): Likewise.
12517 (if_move_plus): Likewise.
12518 (if_move_not): Likewise.
12519 (if_not_move): Likewise.
12520 (if_shift_move): Likewise.
12521 (if_move_shift): Likewise.
12522 (if_shift_shift): Likewise.
12523 (if_not_arith): Likewise.
12524 (if_arith_not): Likewise.
12525 (cond_move_not): Likewise.
12526 (thumb1_ashlsi3): Set type attribute.
12527 (thumb1_ashrsi3): Likewise.
12528 (thumb1_lshrsi3): Likewise.
12529 (thumb1_rotrsi3): Likewise.
12530 (shiftsi3_compare0_scratch): Likewise.
12531 * config/arm/neon.md (neon_mov<mode>): Update for attribute changes.
12532 (neon_mov<mode>): Likewise.
371e77e3
UB
12533 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si): Update for
12534 attribute changes.
006bd006
SN
12535 (thumb2_movsi_insn): Likewise.
12536 (thumb2_cmpsi_neg_shiftsi): Likewise.
12537 (thumb2_extendqisi_v6): Likewise.
12538 (thumb2_zero_extendhisi2_v6): Likewise.
12539 (thumb2_zero_extendqisi2_v6): Likewise.
12540 (thumb2_shiftsi3_short): Likewise.
12541 (thumb2_addsi3_compare0_scratch): Likewise.
12542 (orsi_not_shiftsi_si): Likewise.
12543 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
12544 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Update for attribute
12545 changes.
12546 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
12547 (1020alu_shift_op): Likewise.
12548 (1020alu_shift_reg_op): Likewise.
12549 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
12550 (alu_shift_op): Likewise.
12551 (alu_shift_reg_op): Likewise.
12552 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
12553 (11_alu_shift_op): Likewise.
12554 (11_alu_shift_reg_op): Likewise.
12555 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
12556 (9_alu_shift_reg_op): Likewise.
371e77e3
UB
12557 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
12558 changes.
006bd006
SN
12559 (cortex_a15_alu_shift): Likewise.
12560 (cortex_a15_alu_shift_reg): Likewise.
371e77e3
UB
12561 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute
12562 changes.
006bd006
SN
12563 (cortex_a5_alu_shift): Likewise.
12564 * config/arm/cortex-a53.md (cortex_a53_alu) : Update for attribute
12565 changes.
12566 (cortex_a53_alu_shift): Likewise.
12567 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
12568 changes.
12569 (cortex_a7_alu_reg): Likewise.
12570 (cortex_a7_alu_shift): Likewise.
371e77e3
UB
12571 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute
12572 changes.
006bd006
SN
12573 (cortex_a8_alu_shift): Likewise.
12574 (cortex_a8_alu_shift_reg): Likewise.
12575 (cortex_a8_mov): Likewise.
12576 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
12577 (cortex_a9_dp_shift): Likewise.
371e77e3
UB
12578 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute
12579 changes.
12580 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute
12581 changes.
006bd006
SN
12582 (cortex_r4_mov): Likewise.
12583 (cortex_r4_alu_shift): Likewise.
12584 (cortex_r4_alu_shift_reg): Likewise.
12585 * config/arm/fa526.md (526_alu_op): Update for attribute changes.
12586 (526_alu_shift_op): Likewise.
12587 * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
12588 * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
12589 (626te_alu_shift_op): Likewise.
12590 * config/arm/fa726te.md (726te_shift_op): Update for attribute changes.
12591 (726te_alu_op): Likewise.
12592 (726te_alu_shift_op): Likewise.
12593 (726te_alu_shift_reg_op): Likewise.
12594 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
12595 (mp626_alu_shift_op): Likewise.
12596 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute changes.
12597 (pj4_alu_e1_conds): Likewise.
12598 (pj4_alu): Likewise.
12599 (pj4_alu_conds): Likewise.
12600 (pj4_shift): Likewise.
12601 (pj4_shift_conds): Likewise.
12602 (pj4_alu_shift): Likewise.
12603 (pj4_alu_shift_conds): Likewise.
371e77e3
UB
12604 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute
12605 changes.
006bd006
SN
12606 (cortexa7_older_only): Likewise.
12607 (cortexa7_younger): Likewise.
12608
651df1b2
DM
126092013-07-18 David Malcolm <dmalcolm@redhat.com>
12610
12611 * ipa-pure-const.c (generate_summary): Rename to...
12612 (pure_const_generate_summary): ... this.
12613
ea717bd7
IS
126142013-07-17 Iain Sandoe <iain@codesourcery.com>
12615
12616 * config/rs6000/darwin.h (REGISTER_NAMES): Add HTM registers.
12617
a1259a13
YR
126182013-07-17 Yvan Roux <yvan.roux@linaro.org>
12619
12620 PR target/57909
12621 * config/arm/arm.c (gen_movmem_ldrd_strd): Fix unaligned load/store
12622 usage in HI mode.
12623
167f68ed
AK
126242013-07-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12625
12626 * config/s390/s390.c: (s390_expand_builtin): Allow -mhtm to be
12627 enabled without -march=zEC12.
12628 * config/s390/s390.h (TARGET_HTM): Do not require EC12 machine
12629 flags to be set.
12630
f900a982
MR
126312013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
12632
12633 * config/mips/mips.h (ISA_HAS_FP4): Correct formatting.
12634 (ISA_HAS_FP_MADD4_MSUB4): Also enable for ISA_MIPS32R2.
12635 (ISA_HAS_NMADD4_NMSUB4): Remove the MODE argument; rewrite in
12636 terms of ISA_HAS_FP4, and also enable for ISA_MIPS32R2.
12637 (ISA_HAS_NMADD3_NMSUB3): Remove the MODE argument.
12638 * config/mips/mips.c (mips_rtx_costs) <PLUS>: Check for
12639 ISA_HAS_FP_MADD4_MSUB4 || ISA_HAS_FP_MADD3_MSUB3 rather than
12640 ISA_HAS_FP4.
12641 <MINUS, NEG>: Update according to changes to ISA_HAS_NMADD4_NMSUB4
12642 and ISA_HAS_NMADD3_NMSUB3.
12643 * config/mips/mips.md (nmadd4<mode>, nmadd3<mode>): Likewise.
12644 (nmadd4<mode>_fastmath, nmadd3<mode>_fastmath): Likewise.
12645 (nmsub4<mode>, nmsub3<mode>): Likewise.
12646 (nmsub4<mode>_fastmath, nmsub3<mode>_fastmath): Likewise.
12647
d4ed27eb
MR
126482013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
12649
12650 * config/mips/mips.h (ISA_HAS_NMADD4_NMSUB4): Remove
12651 TARGET_MIPS5400 checking.
12652
7a5add18
PB
126532013-07-16 Jakub Jelinek <jakub@redhat.com>
12654 Peter Bergner <bergner@vnet.ibm.com>
12655
12656 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTERS): Mention HTM
12657 registers in the comment.
12658 (DWARF_FRAME_REGISTERS): Subtract also the 3 HTM registers.
12659 (DWARF_REG_TO_UNWIND_COLUMN): Use DWARF_FRAME_REGISTERS
12660 rather than FIRST_PSEUDO_REGISTERS.
12661
126622013-07-16 Peter Bergner <bergner@vnet.ibm.com>
c694dc01
PB
12663
12664 * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
12665 enable extra ISA flags with TARGET_HTM.
12666
d2ab0929
MR
126672013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
12668
12669 * config/mips/mips.h (ISA_HAS_MULS, ISA_HAS_MSAC, ISA_HAS_MACC):
12670 Fix comment typos.
12671
839c74bc
CH
126722013-07-15 Cong Hou <congh@google.com>
12673
12674 * tree-vect-data-refs.c (dr_group_sort_cmp): Do not use hash function
12675 in compare function for sorting.
12676
7a5add18 126772013-07-15 Peter Bergner <bergner@vnet.ibm.com>
0258b6e4
PB
12678
12679 * config.gcc (powerpc*-*-*): Install htmintrin.h and htmxlintrin.h.
12680 * config/rs6000/t-rs6000 (MD_INCLUDES): Add htm.md.
12681 * config/rs6000/rs6000.opt: Add -mhtm option.
12682 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add OPTION_MASK_HTM.
12683 (ISA_2_7_MASKS_SERVER): Add OPTION_MASK_HTM.
12684 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
12685 __HTM__ if the HTM instructions are available.
12686 * config/rs6000/predicates.md (u3bit_cint_operand, u10bit_cint_operand,
12687 htm_spr_reg_operand): New define_predicates.
12688 * config/rs6000/rs6000.md (define_attr "type"): Add htm.
12689 (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO): New define_constants.
12690 Include htm.md.
12691 * config/rs6000/rs6000-builtin.def (BU_HTM_0, BU_HTM_1, BU_HTM_2,
12692 BU_HTM_3, BU_HTM_SPR0, BU_HTM_SPR1): Add support macros for defining
12693 HTM builtin functions.
12694 * config/rs6000/rs6000.c (RS6000_BUILTIN_H): New macro.
12695 (rs6000_reg_names, alt_reg_names): Add HTM SPR register names.
12696 (rs6000_init_hard_regno_mode_ok): Add support for HTM instructions.
12697 (rs6000_builtin_mask_calculate): Likewise.
12698 (rs6000_option_override_internal): Likewise.
12699 (bdesc_htm): Add new HTM builtin support.
12700 (htm_spr_num): New function.
12701 (htm_spr_regno): Likewise.
12702 (rs6000_htm_spr_icode): Likewise.
12703 (htm_expand_builtin): Likewise.
12704 (htm_init_builtins): Likewise.
12705 (rs6000_expand_builtin): Add support for HTM builtin functions.
12706 (rs6000_init_builtins): Likewise.
371e77e3
UB
12707 (rs6000_invalid_builtin, rs6000_opt_mask): Add support for -mhtm
12708 option.
0258b6e4
PB
12709 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for -mhtm.
12710 (TARGET_HTM, MASK_HTM): Define macros.
12711 (FIRST_PSEUDO_REGISTER): Adjust for new HTM SPR registers.
12712 (FIXED_REGISTERS): Likewise.
12713 (CALL_USED_REGISTERS): Likewise.
12714 (CALL_REALLY_USED_REGISTERS): Likewise.
12715 (REG_ALLOC_ORDER): Likewise.
12716 (enum reg_class): Likewise.
12717 (REG_CLASS_NAMES): Likewise.
12718 (REG_CLASS_CONTENTS): Likewise.
12719 (REGISTER_NAMES): Likewise.
12720 (ADDITIONAL_REGISTER_NAMES): Likewise.
12721 (RS6000_BTC_SPR, RS6000_BTC_VOID, RS6000_BTC_32BIT, RS6000_BTC_64BIT,
12722 RS6000_BTC_MISC_MASK, RS6000_BTM_HTM): New macros.
12723 (RS6000_BTM_COMMON): Add RS6000_BTM_HTM.
12724 * config/rs6000/htm.md: New file.
12725 * config/rs6000/htmintrin.h: New file.
12726 * config/rs6000/htmxlintrin.h: New file.
12727
87dd8ab0
MS
127282013-07-15 Marcus Shawcroft <marcus.shawcroft@arm.com>
12729
12730 * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
12731 Define SYMBOL_TINY_GOT, update comment.
12732 * config/aarch64/aarch64.c
12733 (aarch64_load_symref_appropriately): Handle SYMBOL_TINY_GOT.
12734 (aarch64_expand_mov_immediate): Likewise.
12735 (aarch64_print_operand): Likewise.
12736 (aarch64_classify_symbol): Likewise.
12737 * config/aarch64/aarch64.md (UNSPEC_GOTTINYPIC): Define.
12738 (ldr_got_tiny): Define.
12739
52d676b6
TG
127402013-07-13 Tobias Grosser <tobias@grosser.es>
12741
12742 PR tree-optimization/54094
12743 * graphite-clast-to-gimple.c (translate_clast_for_loop): Derive the
12744 scheduling dimension for the parallelism check from the polyhedral
12745 information in the AST.
12746 * graphite-dependences.c (carries_deps): Do not assume the schedule is
12747 in 2D + 1 form.
12748
286e8fc1
JM
127492013-07-13 Jason Merrill <jason@redhat.com>
12750
12751 * print-tree.c (debug_vec_tree): Use debug_raw.
12752 (debug_raw (vec<tree, va_gc> &)): New.
12753 (debug_raw (vec<tree, va_gc> *)): New.
12754 * tree.h: Declare them.
12755
e43257e8
BC
127562013-07-13 Bin Cheng <bin.cheng@arm.com>
12757
12758 * ifcvt.c (ifcvt_after_combine): New static variable.
12759 (cheap_bb_rtx_cost_p): Set scale to REG_BR_PROB_BASE when optimizing
12760 for size.
12761 (if_convert): New parameter after_combine. Set ifcvt_after_combine.
12762 (rest_of_handle_if_conversion, rest_of_handle_if_after_combine,
12763 rest_of_handle_if_after_reload): Pass new argument for if_convert.
12764
da582d46
MR
127652013-07-12 Maciej W. Rozycki <macro@codesourcery.com>
12766
12767 * config/mips/mips.c (mips_expand_call): Remove empty statement.
12768
18b0ea8f
MM
127692013-07-12 Michael Matz <matz@suse.de>
12770
12771 PR middle-end/55771
12772 * convert.c (convert_to_real): Reject non-float inner types.
12773
e4f0f84d
TB
127742013-07-12 Tejas Belagod <tejas.belagod@arm.com>
12775
12776 * config/aarch64/aarch64-protos.h
12777 (aarch64_simd_immediate_valid_for_move): Remove.
12778 * config/aarch64/aarch64.c (simd_immediate_info): New member.
12779 (aarch64_simd_valid_immediate): Recognize idioms for shifting ones
12780 cases.
12781 (aarch64_output_simd_mov_immediate): Print the correct shift specifier.
12782
76500022
SE
127832013-07-11 Steve Ellcey <sellcey@mips.com>
12784
12785 * config/mips/mips.c (mips_conditional_register_usage): Do not
12786 use t[0-7] registers in MIPS16 mode when optimizing for size.
12787
78039734
ST
127882013-07-11 Sriraman Tallam <tmsriram@google.com>
12789
12790 * config/i386/i386.c (dispatch_function_versions): Fix array
12791 indexing of function_version_info to match actual_versions.
12792
7b24b675
TJ
127932013-07-11 Teresa Johnson <tejohnson@google.com>
12794
12795 * vec.h (struct va_gc): Move release out-of-line.
12796 (va_gc::release): Call ggc_free on released vec.
12797
85d4cbb8
UW
127982013-07-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12799
12800 * config/rs6000/rs6000.md (""*tls_gd_low<TLSmode:tls_abi_suffix>"):
12801 Require GOT register as additional operand in UNSPEC.
12802 ("*tls_ld_low<TLSmode:tls_abi_suffix>"): Likewise.
12803 ("*tls_got_dtprel_low<TLSmode:tls_abi_suffix>"): Likewise.
12804 ("*tls_got_tprel_low<TLSmode:tls_abi_suffix>"): Likewise.
12805 ("*tls_gd<TLSmode:tls_abi_suffix>"): Update splitter.
12806 ("*tls_ld<TLSmode:tls_abi_suffix>"): Likewise.
12807 ("tls_got_dtprel_<TLSmode:tls_abi_suffix>"): Likewise.
12808 ("tls_got_tprel_<TLSmode:tls_abi_suffix>"): Likewise.
12809
52b3f9e2
GJL
128102013-07-11 Georg-Johann Lay <avr@gjlay.de>
12811
12812 PR target/57631
12813 * config/avr/avr.c (avr_set_current_function): Sanity-check signal
12814 name seen by assembler/linker rather if available.
12815
3f3e266e
AS
128162013-07-11 Andreas Schwab <schwab@suse.de>
12817
12818 * config/aarch64/aarch64-linux.h (CPP_SPEC): Define.
12819
21231ca6
VM
128202013-07-10 Vladimir Makarov <vmakarov@redhat.com>
12821
371e77e3 12822 * lra-constraints.c (curr_insn_transform): Switch off optional reloads.
21231ca6 12823
d331d374
JM
128242013-07-10 Joseph Myers <joseph@codesourcery.com>
12825
673c2f63
JM
12826 * doc/tm.texi.in: Move hook documentation to ....
12827 * target.def: ... here.
12828
d331d374
JM
12829 * doc/tm.texi.in (TARGET_CANONICALIZE_COMPARISON): Remove stray
12830 text on @hook line.
12831 * doc/tm.texi: Regenerate.
12832
dfeadaa0
PC
128332013-07-10 Paolo Carlini <paolo.carlini@oracle.com>
12834
12835 PR c++/57869
12836 * doc/invoke.texi: Document -Wconditionally-supported.
12837
bb6f2bac
GJL
128382013-07-10 Georg-Johann Lay <avr@gjlay.de>
12839
12840 PR target/57844
12841 * config/avr/avr.c (avr_prologue_setup_frame): Trunk -size to mode
12842 of my_fp.
12843
5219b232
GJL
128442013-07-10 Georg-Johann Lay <avr@gjlay.de>
12845
12846 PR target/57506
12847 * config/avr/avr-mcus.def (atmega16hva, atmega16hva2, atmega16hvb)
12848 (atmega16m1, atmega16u4, atmega32a, atmega32c1, atmega32hvb)
12849 (atmega32m1, atmega32u4, atmega32u6, atmega64c1, atmega64m1):
12850 Remove duplicate devices.
12851 * config/avr/gen-avr-mmcu-texi.c (print_mcus): Fail on duplicate MCUs.
12852 * config/avr/t-multilib: Regenerate.
12853 * config/avr/avr-tables.opt: Regenerate.
12854 * doc/avr-mmcu.texi: Regenerate.
12855
283045c0
GJL
128562013-07-10 Georg-Johann Lay <avr@gjlay.de>
12857
12858 PR target/56987
12859 * config/avr/avr.opt (Waddr-space-convert): Fix typo.
12860
ceb2d59f 128612013-07-10 Graham Stott <graham.stott@btinternet.com>
6a2fa4b2 12862
ceb2d59f
GS
12863 * config/mips/mips.c (mips_rtx_costs): Very slightly increase
12864 the cost of MULT when optimizing for size.
12865
055e0a99
JBG
128662013-07-10 Jan-Benedict Glaw <jbglaw@lug-owl.de>
12867
12868 * config/cr16/cr16-protos.h: Don't include target.h.
12869
ef43e868
JM
128702013-07-09 Joseph Myers <joseph@codesourcery.com>
12871
12872 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Only
12873 adjust register size for TDmode and TFmode for VSX registers.
12874
4a283fdf
KT
128752013-07-08 Kai Tietz <ktietz@redhat.com>
12876
12877 PR target/56892
12878 * config/i386/i386.c (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): Define as
12879 hook_bool_const_tree_true.
12880
2cf4c39e
AK
128812013-07-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12882
12883 * config/s390/s390.c: Replace F*_REGNUM with FPR*_REGNUM.
12884 * config/s390/s390.h: Remove F*_REGNUM macro definitions.
12885 * config/s390/s390.md: Define FPR*_REGNUM constants.
12886 Fix FPR2_REGNUM constant (18 -> 17).
12887 ("*trunc<BFP:mode><DFP_ALL:mode>2")
12888 ("*trunc<DFP_ALL:mode><BFP:mode>2")
12889 ("trunc<BFP:mode><DFP_ALL:mode>2")
12890 ("trunc<DFP_ALL:mode><BFP:mode>2")
12891 ("*extend<BFP:mode><DFP_ALL:mode>2")
12892 ("*extend<DFP_ALL:mode><BFP:mode>2")
12893 ("extend<BFP:mode><DFP_ALL:mode>2")
12894 ("extend<DFP_ALL:mode><BFP:mode>2"): Replace FPR2_REGNUM with
12895 FPR4_REGNUM.
12896
e6ac0270 128972013-07-08 Graham Stott <graham.stott@btinternet.com>
e6ac0270 12898
6a2fa4b2 12899 * Makefile.in: (c-family-warn): Define to $(STRICT_WARN)
64a92610 12900
b89b22fc
AK
129012013-07-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12902
12903 * config/s390/s390.c: Rename cfun_set_fpr_bit to cfun_set_fpr_save
12904 and cfun_fpr_bit_p to cfun_fpr_save_p.
12905 (s390_frame_area, s390_register_info, s390_frame_info)
12906 (s390_emit_prologue, s390_emit_epilogue)
12907 (s390_conditional_register_usage): Use the *_REGNUM macros for FPR
12908 register numbers.
12909 * config/s390/s390.h: Define *_REGNUM macros for floating point
12910 register numbers.
12911
07f398aa
EB
129122013-07-08 Eric Botcazou <ebotcazou@adacore.com>
12913
12914 * Makefile.in (tree-ssa-reassoc.o): Add dependency on $(PARAMS_H).
12915
75fefa91
PCC
129162013-07-08 Po-Chun Chang <pchang9@cs.wisc.edu>
12917
12918 PR rtl-optimization/57786
12919 * combine.c (distribute_notes) <case REG_DEAD>: Change all_used to bool
12920 and break out of the loop when it is set to false.
12921
046f1eee
JJ
129222013-07-08 Jakub Jelinek <jakub@redhat.com>
12923
8140c065
JJ
12924 PR target/57819
12925 * simplify-rtx.c (simplify_unary_operation_1) <case ZERO_EXTEND>:
12926 Simplify (zero_extend:SI (subreg:QI (and:SI (reg:SI)
12927 (const_int 63)) 0)).
12928 * combine.c (make_extraction): Create ZERO_EXTEND or SIGN_EXTEND
12929 using simplify_gen_unary instead of gen_rtx_*_EXTEND.
12930 * config/i386/i386.md (*jcc_bt<mode>_1): New define_insn_and_split.
12931
046f1eee
JJ
12932 PR rtl-optimization/57829
12933 * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Ensure that
12934 mask bits outside of mode are just sign-extension from mode to HWI.
12935
930b700b
MZ
129362013-07-08 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
12937
12938 * config/i386/i386-opts.h (enum stringop_alg): Add vector_loop.
12939 * config/i386/i386.c (expand_set_or_movmem_via_loop): Use
12940 adjust_address instead of change_address to keep info about alignment.
12941 (emit_strmov): Remove.
12942 (emit_memmov): New function.
12943 (expand_movmem_epilogue): Refactor to properly handle bigger sizes.
12944 (expand_movmem_epilogue): Likewise and return updated rtx for
12945 destination.
12946 (expand_constant_movmem_prologue): Likewise and return updated rtx for
12947 destination and source.
12948 (decide_alignment): Refactor, handle vector_loop.
12949 (ix86_expand_movmem): Likewise.
12950 (ix86_expand_setmem): Likewise.
12951 * config/i386/i386.opt (Enum): Add vector_loop to option stringop_alg.
12952
7b9d1bd8
UB
129532013-07-07 Uros Bizjak <ubizjak@gmail.com>
12954
12955 * config/i386/driver-i386.c (host_detect_local_cpu): Do not check
12956 signature_TM2_ebx, it interferes with signature_INTEL_ebx.
12957
eabb5f48
UB
129582013-07-06 Uros Bizjak <ubizjak@gmail.com>
12959
12960 * config/i386/sse.md (sse_movlhps): Change alternative 3
12961 of operand 2 to "m".
12962
129632013-07-06 Uros Bizjak <ubizjak@gmail.com>
12964
12965 PR target/57807
12966 * config/i386/sse.md (iptr): New mode attribute.
12967 (sse2_movq128): Add pointer size overrides for Intel asm dialect.
12968 (<sse>_vm<plusminus_insn><mode>3): Ditto.
12969 (<sse>_vmmul<mode>3): Ditto.
12970 (<sse>_vmdiv<mode>3): Ditto.
12971 (sse_vmrcpv4sf2): Ditto.
12972 (<sse>_vmsqrt<mode>2): Ditto.
12973 (sse_vmrsqrtv4sf2): Ditto.
12974 (<sse>_vm<code><mode>3): Ditto.
12975 (avx_vmcmp<mode>3): Ditto.
12976 (<sse>_vmmaskcmp<mode>3): Ditto.
12977 (<sse>_comi): Ditto.
12978 (<sse>_ucomi): Ditto.
12979 (*xop_vmfrcz_<mode>): Ditto.
12980 (*fmai_fmadd_<mode>): Ditto.
12981 (*fmai_fmsub_<mode>): Ditto.
12982 (*fmai_fnmadd_<mode>): Ditto.
12983 (*fmai_fnmsub_<mode>): Ditto.
12984 (*fma4i_vmfmadd_<mode>): Ditto.
12985 (*fma4i_vmfmsub_<mode>): Ditto.
12986 (*fma4i_vmfnmadd_<mode>): Ditto.
12987 (*fma4i_vmfnmsub_<mode>): Ditto.
12988 (*xop_vmfrcz_<mode>): Ditto.
12989 (sse_cvtps2pi): Ditto.
12990 (sse_cvttps2pi): Ditto.
12991 (sse_cvtss2si): Ditto.
12992 (sse_cvtss2si_2): Ditto.
12993 (sse_cvtss2siq_2): Ditto.
12994 (sse_cvttss2si): Ditto.
12995 (sse_cvttss2siq): Ditto.
12996 (sse_cvtsd2si): Ditto.
12997 (sse_cvtsd2si_2): Ditto.
12998 (sse_cvtsd2siq_2): Ditto.
12999 (sse_cvttsd2si): Ditto.
13000 (sse_cvttsd2siq): Ditto.
13001 (sse_cvtsd2ss): Ditto.
13002 (sse_cvtss2sd): Ditto.
13003 (avx2_pbroadcast<mode>): Ditto.
13004 (avx2_pbroadcast<mode>_1): Ditto.
13005 (*avx_vperm_broadcast_v4sf): Ditto.
13006
13007 (sse_movhlps): Ditto for movlp[sd]/movhp[sd] alternatives.
13008 (sse_movlhps): Ditto.
13009 (sse_storehps): Ditto.
13010 (sse_loadhps): Ditto.
13011 (sse_storelps): Ditto.
13012 (sse_loadlps): Ditto.
13013 (*vec_concatv4sf): Ditto.
13014 (*vec_interleave_highv2df): Ditto.
13015 (*vec_interleave_lowv2df): Ditto.
13016 (*vec_extractv2df_1_sse): Ditto.
13017 (*vec_extractv2df_0_sse): Ditto.
13018 (sse2_storelpd): Ditto.
13019 (sse2_loadlpd): Ditto.
13020 (sse2_movsd): Ditto.
13021 (*vec_concatv4si): Ditto.
13022 (vec_concatv2di): Ditto.
13023
13024 * config/i386/mmx.md (mmx_punpcklbw): Add pointer size overrides
13025 for Intel asm dialect.
13026 (mmx_punpcklwd): Ditto.
13027 (mmx_punpckldq): Ditto.
13028
13029 * config/i386/i386.c (ix86_print_operand) ['H']: Output 'qword ptr'
13030 for intel assembler dialect.
13031
1f6eac90
JJ
130322013-07-06 Jakub Jelinek <jakub@redhat.com>
13033
13034 PR target/29776
13035 * fold-const.c (tree_call_nonnegative_warnv_p): Return true
13036 for BUILT_IN_C{LZ,LRSB}*.
13037 * tree.h (CASE_INT_FN): Add FN##IMAX case.
13038 * tree-vrp.c (extract_range_basic): Handle
13039 BUILT_IN_{FFS,PARITY,POPCOUNT,C{LZ,TZ,LRSB}}*. For
13040 BUILT_IN_CONSTANT_P if argument isn't (D) of PARM_DECL,
13041 fall thru to code calling set_value*.
13042 * builtins.c (expand_builtin): Remove *IMAX cases.
13043 (fold_builtin_bitop): For BUILT_IN_CLRSB* return NULL_TREE
13044 if width is bigger than 2*HWI.
13045
2b778c9d
VM
130462013-07-05 Vladimir Makarov <vmakarov@redhat.com>
13047
13048 PR rtl-optimization/55342
13049 * lra-int.h (lra_subreg_reload_pseudos): New.
13050 * lra.c: Add undoing optional reloads to the block diagram.
13051 (lra_subreg_reload_pseudos): New.
13052 (lra_optional_reload_pseudos): Change comments.
13053 (lra): Init and clear lra_subreg_reload_pseudos. Clear
13054 lra_optional_reload_pseudos after undo transformations.
13055 * lra-assigns.c (pseudo_prefix_title): New.
13056 (lra_setup_reg_renumber): Use it.
13057 (spill_for): Ditto. Check subreg reload pseudos too.
13058 (assign_by_spills): Consider subreg reload pseudos too.
13059 * lra-constraints.c (simplify_operand_subreg): Use
13060 lra_subreg_reload_pseudos instead of lra_optional_reload_pseudos.
13061 (curr_insn_transform): Recognize and do optional reloads.
13062 (undo_optional_reloads): New.
13063 (lra_undo_inheritance): Call undo_optional_reloads.
13064
207156e4
TQ
130652013-07-05 Thomas Quinot <quinot@adacore.com>
13066
13067 * tree-complex.c (expand_complex_operations_1): Fix typo.
13068
8990e73a
TB
130692013-07-04 Tejas Belagod <tejas.belagod@arm.com>
13070
13071 * config/aarch64/aarch64-protos.h (cpu_vector_cost): New.
13072 (tune_params): New member 'const vec_costs'.
13073 * config/aarch64/aarch64.c (generic_vector_cost): New.
13074 (generic_tunings): New member 'generic_vector_cost'.
13075 (aarch64_builtin_vectorization_cost): New.
13076 (aarch64_add_stmt_cost): New.
13077 (TARGET_VECTORIZE_ADD_STMT_COST): New.
13078 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): New.
13079
f7bc421d
JJ
130802013-07-03 Jakub Jelinek <jakub@redhat.com>
13081
13082 PR target/57777
13083 * config/i386/predicates.md (vsib_address_operand): Disallow
13084 SYMBOL_REF or LABEL_REF in parts.disp if TARGET_64BIT && flag_pic.
13085
e90d1568
HPN
130862013-07-03 Hans-Peter Nilsson <hp@bitrange.com>
13087
13088 PR middle-end/55030
13089 * stmt.c (expand_nl_goto_receiver): Remove almost-copy of
13090 expand_builtin_setjmp_receiver.
13091 (expand_label): Adjust, call expand_builtin_setjmp_receiver
13092 with NULL for the label parameter.
13093 * builtins.c (expand_builtin_setjmp_receiver): Don't clobber
13094 the frame-pointer. Adjust comments.
13095 [HAVE_builtin_setjmp_receiver]: Emit builtin_setjmp_receiver
13096 only if LABEL is non-NULL.
13097
cbd7413b
YZ
130982013-07-03 Yufeng Zhang <yufeng.zhang@arm.com>
13099
13100 * config/aarch64/aarch64.h (enum arm_abi_type): Remove.
13101 (ARM_ABI_AAPCS64): Ditto.
13102 (arm_abi): Ditto.
13103 (ARM_DEFAULT_ABI): Ditto.
13104
dec11868
JG
131052013-07-03 James Greenhalgh <james.greenhalgh@arm.com>
13106
13107 * config/aarch64/aarch64-builtins.c
13108 (aarch64_simd_expand_builtin): Handle AARCH64_SIMD_STORE1.
13109 * config/aarch64/aarch64-simd-builtins.def (ld1): New.
13110 (st1): Likewise.
13111 * config/aarch64/aarch64-simd.md
13112 (aarch64_ld1<VALL:mode>): New.
13113 (aarch64_st1<VALL:mode>): Likewise.
13114 * config/aarch64/arm_neon.h
13115 (vld1<q>_<fpsu><8, 16, 32, 64>): Convert to RTL builtins.
13116
786fb9b6
ST
131172013-07-02 Sriraman Tallam <tmsriram@google.com>
13118
0ba6aff3
UB
13119 * config/i386/i386.c (gate_insert_vzeroupper): Check if
13120 target ISA is AVX.
786fb9b6
ST
13121 (ix86_option_override_internal):Turn on all -mavx target flags by
13122 default as they are dependent on AVX anyway.
13123
4b043553
CC
131242013-07-02 Cary Coutant <ccoutant@google.com>
13125
13126 * dwarf2out.c (loc_checksum): Call hash_loc_operands for a
13127 deterministic hash.
13128 (loc_checksum_ordered): Likewise.
13129 (hash_loc_operands): Remove inline keyword.
13130
c4e87a13
JJ
131312013-07-02 Jakub Jelinek <jakub@redhat.com>
13132
13133 PR tree-optimization/57741
13134 * tree-vect-loop.c (vect_is_simple_iv_evolution): Disallow
13135 non-INTEGRAL_TYPE_P non-SCALAR_FLOAT_TYPE_P SSA_NAME step_exprs,
13136 or SCALAR_FLOAT_TYPE_P SSA_NAMEs if !flag_associative_math.
13137 Allow REAL_CST step_exprs if flag_associative_math.
13138 (get_initial_def_for_induction): Handle SCALAR_FLOAT_TYPE_P step_expr.
13139
26366d28
IB
131402013-07-02 Ian Bolton <ian.bolton@arm.com>
13141
0ba6aff3 13142 * config/aarch64/aarch64-simd.md (absdi2): Support abs for DI mode.
26366d28 13143
2879bb2b
IB
131442013-07-02 Ian Bolton <ian.bolton@arm.com>
13145
13146 * config/aarch64/aarch64.md (*extr_insv_reg<mode>): New pattern.
13147
afc5e8a6
KT
131482013-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13149
13150 * config/arm/arm.md (arm_andsi3_insn): Add alternatives for 16-bit
13151 encoding.
13152 (iorsi3_insn): Likewise.
13153 (arm_xorsi3): Likewise.
13154
31f8442b
SN
131552013-07-01 Sofiane Naci <sofiane.naci@arm.com>
13156
13157 * arm.md (attribute "wtype"): Delete. Move attribute values from here
13158 to ...
13159 (attribute "type"): ... here, and prefix with "wmmx_".
13160 (attribute "core_cycles"): Update for attribute changes.
13161 * iwmmxt.md (tbcstv8qi): Update for attribute changes.
13162 (tbcstv4hi): Likewise.
13163 (tbcstv2si): Likewise.
13164 (iwmmxt_iordi3): Likewise.
13165 (iwmmxt_xordi3): Likewise.
13166 (iwmmxt_anddi3): Likewise.
13167 (iwmmxt_nanddi3): Likewise.
13168 (iwmmxt_arm_movdi): Likewise.
13169 (iwmmxt_movsi_insn): Likewise.
13170 (mov<mode>_internal): Likewise.
13171 (and<mode>3_iwmmxt): Likewise.
13172 (ior<mode>3_iwmmxt): Likewise.
13173 (xor<mode>3_iwmmxt): Likewise.
13174 (add<mode>3_iwmmxt): Likewise.
13175 (ssaddv8qi3): Likewise.
13176 (ssaddv4hi3): Likewise.
13177 (ssaddv2si3): Likewise.
13178 (usaddv8qi3): Likewise.
13179 (usaddv4hi3): Likewise.
13180 (usaddv2si3): Likewise.
13181 (sub<mode>3_iwmmxt): Likewise.
13182 (sssubv8qi3): Likewise.
13183 (sssubv4hi3): Likewise.
13184 (sssubv2si3): Likewise.
13185 (ussubv8qi3): Likewise.
13186 (ussubv4hi3): Likewise.
13187 (ussubv2si3): Likewise.
13188 (mulv4hi3_iwmmxt): Likewise.
13189 (smulv4hi3_highpart): Likewise.
13190 (umulv4hi3_highpart): Likewise.
13191 (iwmmxt_wmacs): Likewise.
13192 (iwmmxt_wmacsz): Likewise.
13193 (iwmmxt_wmacu): Likewise.
13194 (iwmmxt_wmacuz): Likewise.
13195 (iwmmxt_clrdi): Likewise.
13196 (iwmmxt_clrv8qi): Likewise.
13197 (iwmmxt_clr4hi): Likewise.
13198 (iwmmxt_clr2si): Likewise.
13199 (iwmmxt_uavgrndv8qi3): Likewise.
13200 (iwmmxt_uavgrndv4hi3): Likewise.
13201 (iwmmxt_uavgv8qi3): Likewise.
13202 (iwmmxt_uavgv4hi3): Likewise.
13203 (iwmmxt_tinsrb): Likewise.
13204 (iwmmxt_tinsrh): Likewise.
13205 (iwmmxt_tinsrw): Likewise.
13206 (iwmmxt_textrmub): Likewise.
13207 (iwmmxt_textrmsb): Likewise.
13208 (iwmmxt_textrmuh): Likewise.
13209 (iwmmxt_textrmsh): Likewise.
13210 (iwmmxt_textrmw): Likewise.
13211 (iwmxxt_wshufh): Likewise.
13212 (eqv8qi3): Likewise.
13213 (eqv4hi3): Likewise.
13214 (eqv2si3): Likewise.
13215 (gtuv8qi3): Likewise.
13216 (gtuv4hi3): Likewise.
13217 (gtuv2si3): Likewise.
13218 (gtv8qi3): Likewise.
13219 (gtv4hi3): Likewise.
13220 (gtv2si3): Likewise.
13221 (smax<mode>3_iwmmxt): Likewise.
13222 (umax<mode>3_iwmmxt): Likewise.
13223 (smin<mode>3_iwmmxt): Likewise.
13224 (umin<mode>3_iwmmxt): Likewise.
13225 (iwmmxt_wpackhss): Likewise.
13226 (iwmmxt_wpackwss): Likewise.
13227 (iwmmxt_wpackdss): Likewise.
13228 (iwmmxt_wpackhus): Likewise.
13229 (iwmmxt_wpackwus): Likewise.
13230 (iwmmxt_wpackdus): Likewise.
13231 (iwmmxt_wunpckihb): Likewise.
13232 (iwmmxt_wunpckihh): Likewise.
13233 (iwmmxt_wunpckihw): Likewise.
13234 (iwmmxt_wunpckilb): Likewise.
13235 (iwmmxt_wunpckilh): Likewise.
13236 (iwmmxt_wunpckilw): Likewise.
13237 (iwmmxt_wunpckehub): Likewise.
13238 (iwmmxt_wunpckehuh): Likewise.
13239 (iwmmxt_wunpckehuw): Likewise.
13240 (iwmmxt_wunpckehsb): Likewise.
13241 (iwmmxt_wunpckehsh): Likewise.
13242 (iwmmxt_wunpckehsw): Likewise.
13243 (iwmmxt_wunpckelub): Likewise.
13244 (iwmmxt_wunpckeluh): Likewise.
13245 (iwmmxt_wunpckeluw): Likewise.
13246 (iwmmxt_wunpckelsb): Likewise.
13247 (iwmmxt_wunpckelsh): Likewise.
13248 (iwmmxt_wunpckelsw): Likewise.
13249 (ror<mode>3): Likewise.
13250 (ashr<mode>3_iwmmxt): Likewise.
13251 (lshr<mode>3_iwmmxt): Likewise.
13252 (ashl<mode>3_iwmmxt): Likewise.
13253 (ror<mode>3_di): Likewise.
13254 (ashr<mode>3_di): Likewise.
13255 (lshr<mode>3_di): Likewise.
13256 (ashl<mode>3_di): Likewise.
13257 (iwmmxt_wmadds): Likewise.
13258 (iwmmxt_wmaddu): Likewise.
13259 (iwmmxt_tmia): Likewise.
13260 (iwmmxt_tmiaph): Likewise.
13261 (iwmmxt_tmiabb): Likewise.
13262 (iwmmxt_tmiatb): Likewise.
13263 (iwmmxt_tmiabt): Likewise.
13264 (iwmmxt_tmiatt): Likewise.
13265 (iwmmxt_tmovmskb): Likewise.
13266 (iwmmxt_tmovmskh): Likewise.
13267 (iwmmxt_tmovmskw): Likewise.
13268 (iwmmxt_waccb): Likewise.
13269 (iwmmxt_wacch): Likewise.
13270 (iwmmxt_waccw): Likewise.
13271 (iwmmxt_waligni): Likewise.
13272 (iwmmxt_walignr): Likewise.
13273 (iwmmxt_walignr0): Likewise.
13274 (iwmmxt_walignr1): Likewise.
13275 (iwmmxt_walignr2): Likewise.
13276 (iwmmxt_walignr3): Likewise.
13277 (iwmmxt_wsadb): Likewise.
13278 (iwmmxt_wsadh): Likewise.
13279 (iwmmxt_wsadbz): Likewise.
13280 (iwmmxt_wsadhz): Likewise.
13281 * iwmmxt2.md (iwmmxt_wabs<mode>3): Update for attribute changes.
13282 (iwmmxt_wabsdiffb): Likewise.
13283 (iwmmxt_wabsdiffh): Likewise.
13284 (iwmmxt_wabsdiffw): Likewise.
13285 (iwmmxt_waddsubhx): Likewise
13286 (iwmmxt_wsubaddhx): Likewise.
13287 (addc<mode>3): Likewise.
13288 (iwmmxt_avg4): Likewise.
13289 (iwmmxt_avg4r): Likewise.
13290 (iwmmxt_wmaddsx): Likewise.
13291 (iwmmxt_wmaddux): Likewise.
13292 (iwmmxt_wmaddsn): Likewise.
13293 (iwmmxt_wmaddun): Likewise.
13294 (iwmmxt_wmulwsm): Likewise.
13295 (iwmmxt_wmulwum): Likewise.
13296 (iwmmxt_wmulsmr): Likewise.
13297 (iwmmxt_wmulumr): Likewise.
13298 (iwmmxt_wmulwsmr): Likewise.
13299 (iwmmxt_wmulwumr): Likewise.
13300 (iwmmxt_wmulwl): Likewise.
13301 (iwmmxt_wqmulm): Likewise.
13302 (iwmmxt_wqmulwm): Likewise.
13303 (iwmmxt_wqmulmr): Likewise.
13304 (iwmmxt_wqmulwmr): Likewise.
13305 (iwmmxt_waddbhusm): Likewise.
13306 (iwmmxt_waddbhusl): Likewise.
13307 (iwmmxt_wqmiabb): Likewise.
13308 (iwmmxt_wqmiabt): Likewise.
13309 (iwmmxt_wqmiatb): Likewise.
13310 (iwmmxt_wqmiatt): Likewise.
13311 (iwmmxt_wqmiabbn): Likewise.
13312 (iwmmxt_wqmiabtn): Likewise.
13313 (iwmmxt_wqmiatbn): Likewise.
13314 (iwmmxt_wqmiattn): Likewise.
13315 (iwmmxt_wmiabb): Likewise.
13316 (iwmmxt_wmiabt): Likewise.
13317 (iwmmxt_wmiatb): Likewise.
13318 (iwmmxt_wmiatt): Likewise.
13319 (iwmmxt_wmiabbn): Likewise.
13320 (iwmmxt_wmiabtn): Likewise.
13321 (iwmmxt_wmiatbn): Likewise.
13322 (iwmmxt_wmiattn): Likewise.
13323 (iwmmxt_wmiawbb): Likewise.
13324 (iwmmxt_wmiawbt): Likewise.
13325 (iwmmxt_wmiawtb): Likewise.
13326 (iwmmxt_wmiawtt): Likewise.
13327 (iwmmxt_wmiawbbn): Likewise.
13328 (iwmmxt_wmiawbtn): Likewise.
13329 (iwmmxt_wmiawtbn): Likewise.
13330 (iwmmxt_wmiawttn): Likewise.
13331 (iwmmxt_wmerge): Likewise.
13332 (iwmmxt_tandc<mode>3): Likewise.
13333 (iwmmxt_torc<mode>3): Likewise.
13334 (iwmmxt_torvsc<mode>3): Likewise.
13335 (iwmmxt_textrc<mode>3): Likewise.
13336 * marvell-f-iwmmxt.md (wmmxt_shift): Update for attribute changes.
13337 (wmmxt_pack): Likewise.
13338 (wmmxt_mult_c1): Likewise.
13339 (wmmxt_mult_c2): Likewise.
13340 (wmmxt_alu_c1): Likewise.
13341 (wmmxt_alu_c2): Likewise.
13342 (wmmxt_alu_c3): Likewise.
13343 (wmmxt_transfer_c1): Likewise.
13344 (wmmxt_transfer_c2): Likewise.
13345 (wmmxt_transfer_c3): Likewise.
13346 (marvell_f_iwmmxt_wstr): Likewise.
13347 (marvell_f_iwmmxt_wldr): Likewise.
13348
bdb7bf8a
YZ
133492013-06-29 Yufeng Zhang <yufeng.zhang@arm.com>
13350
0ba6aff3 13351 * config/aarch64/aarch64.c: Remove junk from the beginning of the file.
bdb7bf8a 13352
e6631d38
VM
133532013-06-28 Vladimir Makarov <vmakarov@redhat.com>
13354
13355 Revert:
13356 2013-06-28 Vladimir Makarov <vmakarov@redhat.com>
13357 * lra-constraints.c (need_for_split_p): Check call used hard regs
13358 living through calls.
13359
13360 * lra-constraints.c (inherit_in_ebb): Reset live_hard_regs for
13361 call used regs for call insn.
13362
53c1275b
JJ
133632013-06-28 Jakub Jelinek <jakub@redhat.com>
13364
13365 PR target/57736
0ba6aff3
UB
13366 * config/i386/i386.c (ix86_expand_builtin): If target == NULL and
13367 mode is VOIDmode, don't create a VOIDmode pseudo to copy result into.
53c1275b 13368
1141ed3f
BI
133692013-06-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
13370
13371 * builtins.def: Fixed the function type of CILKPLUS_BUILTIN.
e6631d38 13372
e32e4c4a
VM
133732013-06-28 Vladimir Makarov <vmakarov@redhat.com>
13374
13375 * lra-constraints.c (need_for_split_p): Check call used hard regs
13376 living through calls.
13377
f161bfd3
MM
133782013-06-28 Michael Meissner <meissner@linux.vnet.ibm.com>
13379
13380 PR target/57744
13381 * config/rs6000/rs6000.h (MODES_TIEABLE_P): Do not allow PTImode
13382 to tie with any other modes. Eliminate Altivec vector mode tests,
13383 since these are a subset of ALTIVEC or VSX vector modes. Simplify
13384 code, to return 0 if testing MODE2 for a condition, if we've
13385 already tested MODE1 for the same condition.
13386
7eda14e1
MS
133872013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
13388
13389 * config/aarch64/aarch64.c (aarch64_cannot_force_const_mem): Adjust
13390 layout.
13391
c822f852
MS
133922013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
13393
13394 * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
13395 Update comment w.r.t SYMBOL_TINY_ABSOLUTE.
13396
da4f13a4
MS
133972013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
13398
0ba6aff3
UB
13399 * config/aarch64/aarch64-protos.h (aarch64_classify_symbol_expression):
13400 Define.
da4f13a4
MS
13401 (aarch64_symbolic_constant_p): Remove.
13402 * config/aarch64/aarch64.c (aarch64_classify_symbol_expression): Remove
13403 static. Fix line length and white space.
13404 (aarch64_symbolic_constant_p): Remove.
13405 * config/aarch64/predicates.md (aarch64_valid_symref):
13406 Use aarch64_classify_symbol_expression.
13407
956a95a5
KT
134082013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13409
13410 * config/arm/constraints.md (Ts): New constraint.
13411 * config/arm/arm.md (arm_movqi_insn): Add alternatives for
13412 16-bit encodings.
13413 (compare_scc): Use "Ts" constraint for operand 0.
13414 (ior_scc_scc): Likewise.
13415 (and_scc_scc): Likewise.
13416 (and_scc_scc_nodom): Likewise.
13417 (ior_scc_scc_cmp): Likewise for operand 7.
13418 (and_scc_scc_cmp): Likewise.
13419 * config/arm/thumb2.md (thumb2_movsi_insn):
13420 Add alternatives for 16-bit encodings.
13421 (thumb2_movhi_insn): Likewise.
13422 (thumb2_movsicc_insn): Likewise.
13423 (thumb2_and_scc): Take 'and' outside cond_exec. Use "Ts" constraint.
13424 (thumb2_negscc): Use "Ts" constraint.
13425 Move mvn instruction outside cond_exec block.
13426 * config/arm/vfp.md (thumb2_movsi_vfp): Add alternatives
13427 for 16-bit encodings.
13428
31dfce10
KT
134292013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13430
13431 * config/arm/arm.md (arm_mulsi3_v6): Add alternative for 16-bit
13432 encoding.
13433 (mulsi3addsi_v6): Disable predicable variant for arm_restrict_it.
13434 (mulsi3subsi): Likewise.
13435 (mulsidi3adddi): Likewise.
13436 (mulsidi3_v6): Likewise.
13437 (umulsidi3_v6): Likewise.
13438 (umulsidi3adddi_v6): Likewise.
13439 (smulsi3_highpart_v6): Likewise.
13440 (umulsi3_highpart_v6): Likewise.
13441 (mulhisi3tb): Likewise.
13442 (mulhisi3bt): Likewise.
13443 (mulhisi3tt): Likewise.
13444 (maddhisi4): Likewise.
13445 (maddhisi4tb): Likewise.
13446 (maddhisi4tt): Likewise.
13447 (maddhidi4): Likewise.
13448 (maddhidi4tb): Likewise.
13449 (maddhidi4tt): Likewise.
13450 (zeroextractsi_compare0_scratch): Likewise.
13451 (insv_zero): Likewise.
13452 (insv_t2): Likewise.
13453 (anddi_notzesidi_di): Likewise.
13454 (anddi_notsesidi_di): Likewise.
13455 (andsi_notsi_si): Likewise.
13456 (iordi_zesidi_di): Likewise.
13457 (xordi_zesidi_di): Likewise.
13458 (andsi_iorsi3_notsi): Likewise.
13459 (smax_0): Likewise.
13460 (smax_m1): Likewise.
13461 (smin_0): Likewise.
13462 (not_shiftsi): Likewise.
13463 (unaligned_loadsi): Likewise.
13464 (unaligned_loadhis): Likewise.
13465 (unaligned_loadhiu): Likewise.
13466 (unaligned_storesi): Likewise.
13467 (unaligned_storehi): Likewise.
13468 (extv_reg): Likewise.
13469 (extzv_t2): Likewise.
13470 (divsi3): Likewise.
13471 (udivsi3): Likewise.
13472 (arm_zero_extendhisi2addsi): Likewise.
13473 (arm_zero_extendqisi2addsi): Likewise.
13474 (compareqi_eq0): Likewise.
13475 (arm_extendhisi2_v6): Likewise.
13476 (arm_extendqisi2addsi): Likewise.
13477 (arm_movt): Likewise.
13478 (thumb2_ldrd): Likewise.
13479 (thumb2_ldrd_base): Likewise.
13480 (thumb2_ldrd_base_neg): Likewise.
13481 (thumb2_strd): Likewise.
13482 (thumb2_strd_base): Likewise.
13483 (thumb2_strd_base_neg): Likewise.
13484 (arm_negsi2): Add alternative for 16-bit encoding.
13485 (arm_one_cmplsi2): Likewise.
13486
1572e697
KT
134872013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13488
13489 * config/arm/predicates.md (arm_cond_move_operator): New predicate.
13490 * config/arm/arm.md (movsfcc): Use arm_cond_move_operator predicate.
13491 (movdfcc): Likewise.
13492 * config/arm/vfp.md (*thumb2_movsf_vfp):
13493 Disable predication for arm_restrict_it.
13494 (*thumb2_movsfcc_vfp): Disable for arm_restrict_it.
13495 (*thumb2_movdfcc_vfp): Likewise.
13496 (*abssf2_vfp, *absdf2_vfp, *negsf2_vfp, *negdf2_vfp,*addsf3_vfp,
13497 *adddf3_vfp, *subsf3_vfp, *subdf3_vfpc, *divsf3_vfp,*divdf3_vfp,
13498 *mulsf3_vfp, *muldf3_vfp, *mulsf3negsf_vfp, *muldf3negdf_vfp,
13499 *mulsf3addsf_vfp, *muldf3adddf_vfp, *mulsf3subsf_vfp,
13500 *muldf3subdf_vfp, *mulsf3negsfaddsf_vfp, *fmuldf3negdfadddf_vfp,
13501 *mulsf3negsfsubsf_vfp, *muldf3negdfsubdf_vfp, *fma<SDF:mode>4,
13502 *fmsub<SDF:mode>4, *fnmsub<SDF:mode>4, *fnmadd<SDF:mode>4,
13503 *extendsfdf2_vfp, *truncdfsf2_vfp, *extendhfsf2, *truncsfhf2,
13504 *truncsisf2_vfp, *truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2,
13505 *floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2, floatunssidf2,
13506 *sqrtsf2_vfp, *sqrtdf2_vfp, *cmpsf_vfp, *cmpsf_trap_vfp, *cmpdf_vfp,
13507 *cmpdf_trap_vfp, <vrint_pattern><SDF:mode>2):
13508 Disable predication for arm_restrict_it.
13509
ebf8f0ea
KY
135102013-06-28 Kirill Yukhin <kirill.yukhin@intel.com>
13511
13512 * config/i386/bmiintrin.h (_bextr_u32): New.
13513 (_bextr_u64): Ditto.
13514
a290fcda
RS
135152013-06-27 Richard Sandiford <rdsandiford@googlemail.com>
13516
13517 * config.gcc (mips*-mti-elf*, mips*-sde-elf*, mips64r5900-*-elf*)
13518 (mips64r5900el-*-elf*): Include mips/n32-elf.h.
13519 * config/mips/sde.h (LOCAL_LABEL_PREFIX, NO_DOLLAR_IN_LABEL)
13520 (LONG_DOUBLE_TYPE_SIZE, LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Move to...
13521 * config/mips/n32-elf.h: ...this new file.
13522
ea169996
MG
135232013-06-27 Marc Glisse <marc.glisse@inria.fr>
13524
13525 PR target/57224
13526 * config/i386/i386.c (enum ix86_builtins, bdesc_args): Remove
13527 IX86_BUILTIN_CMPNGTSS and IX86_BUILTIN_CMPNGESS.
13528
12211b99 135292013-06-27 Catherine Moore <clm@codesourcery.com>
8e932114
CM
13530
13531 * config/mips/mips-tables.opt: Regenerate.
13532 * config/mips/mips-cpus.def: Add m14ke and m14kec.
0ba6aff3 13533 * config/mips/mips.h (BASE_DRIVER_SELF_SPECS): m14ke* implies -mdspr2.
8e932114 13534 * doc/invoke.texi: Add -m14kc.
ebf8f0ea 13535
2444244e
JJ
135362013-06-27 Jakub Jelinek <jakub@redhat.com>
13537
cd06d2a2
JJ
13538 PR target/57623
13539 * config/i386/i386.md (bmi_bextr_<mode>): Swap predicates and
13540 constraints of operand 1 and 2.
13541
2444244e
JJ
13542 PR target/57623
13543 * config/i386/i386.md (bmi2_bzhi_<mode>3): Swap AND arguments
13544 to match RTL canonicalization. Swap predicates and
13545 constraints of operand 1 and 2.
13546
2f259720
VM
135472013-06-27 Vladimir Makarov <vmakarov@redhat.com>
13548
0ba6aff3
UB
13549 * lra-constraints.c (inherit_in_ebb): Process static hard regs too.
13550 Process OP_INOUT regs for splitting too.
2f259720 13551
fef4d2b3
JJ
135522013-06-27 Jakub Jelinek <jakub@redhat.com>
13553
13554 * tree-vect-stmts.c (vectorizable_store): Move ptr_incr var
13555 decl before the loop, initialize to NULL.
13556 (vectorizable_load): Initialize ptr_incr to NULL.
13557
79ee9826
MJ
135582013-06-27 Martin Jambor <mjambor@suse.cz>
13559
13560 PR lto/57208
13561 * ipa-ref.h (ipa_maybe_record_reference): Declare.
13562 * ipa-ref.c (ipa_maybe_record_reference): New function.
13563 * cgraphclones.c (cgraph_create_virtual_clone): Use it.
13564 * ipa-cp.c (create_specialized_node): Record potential references from
13565 aggvals.
13566 * Makefile.in (ipa-ref.o): Add IPA_REF_H to dependencies.
13567
e18b4a81
YZ
135682013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
13569
13570 * config/aarch64/aarch64.c (aarch64_force_temporary): Add an extra
13571 parameter 'mode' of type 'enum machine_mode mode'; change to pass
13572 'mode' to force_reg.
13573 (aarch64_add_offset): Update calls to aarch64_force_temporary.
13574 (aarch64_expand_mov_immediate): Likewise.
13575
9c023bf0
YZ
135762013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
13577
13578 * config/aarch64/aarch64.c (aarch64_add_offset): Change to pass
13579 'mode' to aarch64_plus_immediate and gen_rtx_PLUS.
13580
5a3fe9b6
AK
135812013-06-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13582
13583 * config/s390/s390.c: Rename UNSPEC_CCU_TO_INT to
13584 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
13585 (struct machine_function): Add tbegin_p.
13586 (s390_canonicalize_comparison): Fold CC mode compares to
13587 conditional jump if possible.
13588 (s390_emit_jump): Return the emitted jump.
13589 (s390_branch_condition_mask, s390_branch_condition_mnemonic):
13590 Handle CCRAWmode compares.
13591 (s390_option_override): Default to -mhtm if available.
13592 (s390_reg_clobbered_rtx): Handle floating point regs as well.
13593 (s390_regs_ever_clobbered): Use s390_regs_ever_clobbered also for
13594 FPRs instead of df_regs_ever_live_p.
13595 (s390_optimize_nonescaping_tx): New function.
13596 (s390_init_frame_layout): Extend clobbered_regs array to cover
13597 FPRs as well.
13598 (s390_emit_prologue): Call s390_optimize_nonescaping_tx.
13599 (s390_expand_tbegin): New function.
13600 (enum s390_builtin): New enum definition.
13601 (code_for_builtin): New array definition.
13602 (s390_init_builtins): New function.
13603 (s390_expand_builtin): New function.
13604 (TARGET_INIT_BUILTINS): Define.
13605 (TARGET_EXPAND_BUILTIN): Define.
0ba6aff3 13606 * common/config/s390/s390-common.c (processor_flags_table): Add PF_TX.
5a3fe9b6
AK
13607 * config/s390/predicates.md (s390_comparison): Handle CCRAWmode.
13608 (s390_alc_comparison): Likewise.
13609 * config/s390/s390-modes.def: Add CCRAWmode.
13610 * config/s390/s390.h (processor_flags): Add PF_TX.
13611 (TARGET_CPU_HTM): Define macro.
13612 (TARGET_HTM): Define macro.
13613 (TARGET_CPU_CPP_BUILTINS): Define __HTM__ for htm.
13614 * config/s390/s390.md: Rename UNSPEC_CCU_TO_INT to
13615 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
13616 (UNSPECV_TBEGIN, UNSPECV_TBEGINC, UNSPECV_TEND, UNSPECV_TABORT)
0ba6aff3 13617 (UNSPECV_ETND, UNSPECV_NTSTG, UNSPECV_PPA): New unspecv enum values.
5a3fe9b6
AK
13618 (TBEGIN_MASK, TBEGINC_MASK): New constants.
13619 ("*cc_to_int"): Move up.
13620 ("*mov<mode>cc", "*cjump_64", "*cjump_31"): Accept integer
13621 constants other than 0.
13622 ("*ccraw_to_int"): New insn and splitter definition.
13623 ("tbegin", "tbegin_nofloat", "tbegin_retry")
13624 ("tbegin_retry_nofloat", "tbeginc", "tend", "tabort")
13625 ("tx_assist"): New expander.
13626 ("tbegin_1", "tbegin_nofloat_1", "*tbeginc_1", "*tend_1")
13627 ("*tabort_1", "etnd", "ntstg", "*ppa"): New insn definition.
13628 * config/s390/s390.opt: Add -mhtm option.
13629 * config/s390/s390-protos.h (s390_emit_jump): Add return type.
13630 * config/s390/htmxlintrin.h: New file.
13631 * config/s390/htmintrin.h: New file.
13632 * config/s390/s390intrin.h: New file.
13633 * doc/extend.texi: Document htm builtins.
13634 * config.gcc: Add the new header files to extra_headers.
13635
9e216629
TS
136362013-06-26 Thomas Schwinge <thomas@codesourcery.com>
13637
13638 * config/i386/gnu.h [TARGET_LIBC_PROVIDES_SSP]
0ba6aff3 13639 (TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Undefine.
9e216629 13640
fd8c65e7 136412013-06-26 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
13642 Pat Haugen <pthaugen@us.ibm.com>
13643 Peter Bergner <bergner@vnet.ibm.com>
fd8c65e7
MM
13644
13645 * config/rs6000/power8.md: New.
13646 * config/rs6000/rs6000-cpus.def (RS6000_CPU table): Adjust processor
13647 setting for power8 entry.
13648 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power8.md.
13649 * config/rs6000/rs6000.c (is_microcoded_insn, is_cracked_insn): Adjust
13650 test for Power4/Power5 only.
13651 (insn_must_be_first_in_group, insn_must_be_last_in_group): Add Power8
13652 support.
13653 (force_new_group): Adjust comment.
13654 * config/rs6000/rs6000.md: Include power8.md.
13655
b24a2ce5
GY
136562013-06-26 Greta Yorsh <Greta.Yorsh@arm.com>
13657
13658 * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Define macro.
13659 * config/arm/arm-protos.h (arm_max_conditional_execute): New
13660 declaration.
13661 (tune_params): Update comment.
13662 * config/arm/arm.c (arm_cortex_a15_tune): Set max_cond_insns to 2.
13663 (arm_max_conditional_execute): New function.
13664 (thumb2_final_prescan_insn): Use max_insn_skipped and
13665 MAX_INSN_PER_IT_BLOCK to compute maximum instructions in a block.
13666
f6fdeb62
JJ
136672013-06-25 Jakub Jelinek <jakub@redhat.com>
13668
13669 PR tree-optimization/57705
13670 * tree-vect-loop.c (vect_is_simple_iv_evolution): Allow
13671 SSA_NAME step, provided that it is not defined inside the loop.
0ba6aff3 13672 (vect_analyze_scalar_cycles_1): Disallow SSA_NAME step in nested loop.
f6fdeb62
JJ
13673 (get_initial_def_for_induction): Handle SSA_NAME IV step.
13674
c13bc3d9
MJ
136752013-06-25 Martin Jambor <mjambor@suse.cz>
13676
13677 PR middle-end/57670
13678 * cgraph.h (cgraph_indirect_call_info): New flag member_ptr.
13679 * ipa-prop.c (ipa_print_node_jump_functions): Mark member pointer
13680 calls in the dump.
13681 (ipa_note_param_call): Initialize member_ptr flag.
13682 (ipa_analyze_indirect_call_uses): Set member_ptr flag.
13683 (ipa_make_edge_direct_to_target): Bail out if member_ptr is set.
13684 (ipa_write_indirect_edge_info): Stream member_ptr flag.
13685 (ipa_read_indirect_edge_info): Likewise.
13686
8a845901
RB
136872013-06-25 Richard Biener <rguenther@suse.de>
13688
13689 PR middle-end/56977
13690 * passes.c (init_optimization_passes): Move pass_fold_builtins
13691 and pass_dce earlier with -Og.
13692
33be0bec
EB
136932013-06-25 Eric Botcazou <ebotcazou@adacore.com>
13694
13695 * expr.c (expand_expr_real_1) <ARRAY_REF>: Fix formatting glitches.
13696 <BIT_FIELD_REF>: Remove trailing TAB.
13697 * varasm.c (output_constructor_bitfield): Fix formatting glitch and
13698 remove blank line.
13699
5fe8e757
MJ
137002013-06-24 Martin Jambor <mjambor@suse.cz>
13701
13702 PR tree-optimization/57358
13703 * ipa-prop.c (ipa_func_spec_opts_forbid_analysis_p): New function.
13704 (ipa_compute_jump_functions_for_edge): Bail out if it returns true.
13705 (ipa_analyze_params_uses): Generate pessimistic info when true.
13706
44a60244
MJ
137072013-06-24 Martin Jambor <mjambor@suse.cz>
13708
13709 PR tree-optimization/57539
13710 * cgraphclones.c (cgraph_clone_node): Add parameter new_inlined_to, set
13711 global.inlined_to of the new node to it. All callers changed.
13712 * ipa-inline-transform.c (clone_inlined_nodes): New variable
13713 inlining_into, pass it to cgraph_clone_node.
13714 * ipa-prop.c (ipa_propagate_indirect_call_infos): Do not call
13715 ipa_free_edge_args_substructures.
13716 (ipa_edge_duplication_hook): Only add edges from inlined nodes to
13717 rdesc linked list. Do not assert rdesc edges have inlined caller.
13718 Assert we have found an rdesc in the rdesc list.
13719
7c5848b8
RB
137202013-06-24 Richard Biener <rguenther@suse.de>
13721
0ba6aff3 13722 * pointer-set.h (struct pointer_set_t): Move here from pointer-set.c.
7c5848b8
RB
13723 (pointer_set_lookup): Declare.
13724 (class pointer_map): New template class implementing a
13725 generic pointer to T map.
13726 (pointer_map<T>::pointer_map, pointer_map<T>::~pointer_map,
13727 pointer_map<T>::contains, pointer_map<T>::insert,
13728 pointer_map<T>::traverse): New functions.
13729 * pointer-set.c (struct pointer_set_t): Moved to pointer-set.h.
13730 (pointer_set_lookup): New function.
13731 (pointer_set_contains): Use pointer_set_lookup.
13732 (pointer_set_insert): Likewise.
13733 (insert_aux): Remove.
13734 (struct pointer_map_t): Embed a pointer_set_t.
13735 (pointer_map_create): Adjust.
13736 (pointer_map_destroy): Likewise.
13737 (pointer_map_contains): Likewise.
13738 (pointer_map_insert): Likewise.
13739 (pointer_map_traverse): Likewise.
13740 * tree-streamer.h (struct streamer_tree_cache_d): Use a
13741 pointer_map<unsigned> instead of a pointer_map_t.
13742 * tree-streamer.c (streamer_tree_cache_insert_1): Adjust.
13743 (streamer_tree_cache_lookup): Likewise.
13744 (streamer_tree_cache_create): Likewise.
13745 (streamer_tree_cache_delete): Likewise.
13746 * lto-streamer.h (struct lto_tree_ref_encoder): Use a
13747 pointer_map<unsigned> instead of a pointer_map_t.
13748 (lto_init_tree_ref_encoder): Adjust.
13749 (lto_destroy_tree_ref_encoder): Likewise.
13750 * lto-section-out.c (lto_output_decl_index): Likewise.
13751 (lto_record_function_out_decl_state): Likewise.
13752 * dominance.c (iterate_fix_dominators): Use pointer_map<int>.
13753
3dbc97a9
RB
137542013-06-24 Richard Biener <rguenther@suse.de>
13755
13756 PR tree-optimization/57488
13757 * tree-ssa-pre.c (insert): Clear NEW sets before each iteration.
13758
8345965a
AM
137592013-06-24 Alan Modra <amodra@gmail.com>
13760
13761 * config/rs6000/rs6000.c (vspltis_constant): Correct for little-endian.
13762 (gen_easy_altivec_constant): Likewise.
13763 * config/rs6000/predicates.md (easy_vector_constant_add_self,
13764 easy_vector_constant_msb): Likewise.
13765
b7df379f
JJ
137662013-06-23 Jakub Jelinek <jakub@redhat.com>
13767
13768 PR target/57688
13769 * common/config/i386/i386-common.c (ix86_handle_option): For OPT_mlzcnt
13770 add missing return true.
13771
12211b99 137722013-06-23 Oleg Endo <olegendo@gcc.gnu.org>
0bcf9a09
OE
13773
13774 PR target/52483
13775 * config/sh/predicates.md (general_extend_operand): Invoke
13776 general_movsrc_operand for memory operands.
13777 (general_movsrc_operand): Allow reg+reg addressing, do not use
13778 general_operand for memory operands.
13779
97db2bf7
ST
137802013-06-23 Sriraman Tallam <tmsriram@google.com>
13781
13782 * config/i386/i386.c (ix86_pragma_target_parse): Restore target
13783 when current target options does not apply.
13784 * config/i386/i386-protos.h (ix86_reset_previous_fndecl): New function.
13785 * config/i386/i386.c (ix86_reset_previous_fndecl): Ditto.
0ba6aff3
UB
13786 * config/i386/bmiintrin.h: Pass appropriate target
13787 attributes to header.
97db2bf7
ST
13788 * config/i386/mmintrin.h: Ditto.
13789 * config/i386/nmmintrin.h: Ditto.
13790 * config/i386/avx2intrin.h: Ditto.
13791 * config/i386/fxsrintrin.h: Ditto.
13792 * config/i386/tbmintrin.h: Ditto.
13793 * config/i386/xsaveintrin.h: Ditto.
13794 * config/i386/f16cintrin.h: Ditto.
13795 * config/i386/xtestintrin.h: Ditto.
13796 * config/i386/xsaveoptintrin.h: Ditto.
13797 * config/i386/bmi2intrin.h: Ditto.
13798 * config/i386/lzcntintrin.h: Ditto.
13799 * config/i386/smmintrin.h: Ditto.
13800 * config/i386/wmmintrin.h: Ditto.
13801 * config/i386/x86intrin.h: Remove all header include guards.
13802 * config/i386/prfchwintrin.h: Ditto.
13803 * config/i386/pmmintrin.h: Ditto.
13804 * config/i386/tmmintrin.h: Ditto.
13805 * config/i386/xmmintrin.h: Ditto.
13806 * config/i386/popcntintrin.h: Ditto.
13807 * config/i386/rdseedintrin.h: Ditto.
13808 * config/i386/ammintrin.h: Ditto.
13809 * config/i386/emmintrin.h: Ditto.
13810 * config/i386/immintrin.h: Remove all header include guards.
13811 * config/i386/fma4intrin.h: Ditto.
13812 * config/i386/lwpintrin.h: Ditto.
13813 * config/i386/xopintrin.h: Ditto.
13814 * config/i386/ia32intrin.h: Ditto.
13815 * config/i386/avxintrin.h: Ditto.
13816 * config/i386/rtmintrin.h: Ditto.
13817 * config/i386/fmaintrin.h: Ditto.
13818 * config/i386/mm3dnow.h: Ditto.
13819
495e6879
ST
138202013-06-22 Sriraman Tallam <tmsriram@google.com>
13821
13822 * common/config/i386/i386-common.c: Handle LZCNT.
13823
11e8f687
AK
138242013-06-22 Andi Kleen <ak@linux.intel.com>
13825
13826 * doc/extend.texi: Use __atomic_store_n instead of
13827 __atomic_store in HLE example.
13828
12211b99 138292013-06-22 Oleg Endo <olegendo@gcc.gnu.org>
664dd721
OE
13830
13831 * config/sh/sh.c: Remove <cstdlib> workaround.
13832
927f908b
AK
138332013-06-21 Andi Kleen <ak@linux.intel.com>
13834
0ba6aff3 13835 * doc/extend.texi: Dont use __atomic_clear in HLE example. Fix typo.
927f908b 13836
cca410b6
AK
138372013-06-21 Andi Kleen <ak@linux.intel.com>
13838
13839 * doc/extend.texi: Document that __atomic_clear and
13840 __atomic_test_and_set should only be used with bool.
13841
d84db1ed
JH
138422013-06-20 Jan Hubicka <jh@suse.cz>
13843
13844 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Use
13845 types_same_for_odr.
13846 * tree.c (decls_same_for_odr): New function.
13847 (same_for_edr): New function.
13848 (types_same_for_odr): New function.
13849 (get_binfo_at_offset): Use it.
13850 * tree.h (types_same_for_odr): Declare.
13851
12211b99 138522013-06-20 Oleg Endo <olegendo@gcc.gnu.org>
469a31a9
OE
13853 Jason Merrill <jason@redhat.com>
13854
13855 * system.h: Include <cstdlib> as well as <stdlib.h>.
13856
49b4ff63
UB
138572013-06-20 Uros Bizjak <ubizjak@gmail.com>
13858
13859 PR target/57655
13860 * config/i386/i386.c (construct_container): Report error if
13861 long double is used with disabled x87 float returns.
13862
7a89ad00
JH
138632013-06-20 Jan Hubicka <jh@suse.cz>
13864
13865 * lto-cgraph.c (input_symtab): Do not set cgraph state.
13866
12211b99 138672013-06-20 Joern Rennecke <joern.rennecke@embecosm.com>
bd280792
JR
13868
13869 PR rtl-optimization/57425
13870 PR rtl-optimization/57569
13871 * alias.c (write_dependence_p): Remove parameters mem_mode and
13872 canon_mem_addr. Add parameters x_mode, x_addr and x_canonicalized.
13873 Changed all callers.
13874 (canon_anti_dependence): Get comments and semantics in sync.
13875 Add parameter mem_canonicalized. Changed all callers.
13876 * rtl.h (canon_anti_dependence): Update prototype.
13877
d16e9a99
RB
138782013-06-20 Richard Biener <rguenther@suse.de>
13879
13880 * data-streamer-in.c (streamer_read_uhwi): Optimize single
13881 byte case, inline streamer_read_uchar and defer section
13882 overrun check.
13883
c3a9b91b
RB
138842013-06-20 Richard Biener <rguenther@suse.de>
13885
13886 PR tree-optimization/57584
13887 * tree-ssa-loop-niter.c (expand_simple_operations): Avoid including
13888 SSA names into the expanded expression that take part in
13889 abnormal coalescing.
13890
371e77e3 138912013-06-19 Sharad Singhai <singhai@google.com>
fc8a650e
SS
13892
13893 * gcov.c (print_usage): Handle new option.
13894 (process_args): Ditto.
13895 (get_gcov_intermediate_filename): New function.
13896 (output_intermediate_file): New function.
13897 (output_gcov_file): New function
13898 (generate_results): Handle new option.
13899 (release_function): Relase demangled name.
13900 (read_graph_file): Handle demangled name.
13901 (output_lines): Ditto.
13902 * doc/gcov.texi: Document gcov intermediate format.
13903
11f5b71a
VM
139042013-06-19 Vladimir Makarov <vmakarov@redhat.com>
13905
13906 PR bootstrap/57604
13907 * lra.c (emit_add3_insn, emit_add2_insn): New functions.
13908 (lra_emit_add): Use the functions. Add comment about Y as an
13909 address segment.
13910
e1f9340b
DE
139112013-06-19 David Edelsohn <dje.gcc@gmail.com>
13912
13913 PR driver/57652
13914 * collect2.c (collect_atexit): New.
13915 (collect_exit): Delete.
13916 (main): Register collect_atexit with atexit.
13917 (collect_wait): Change collect_exit to exit.
13918 (do_wait): Same.
13919 * collect2.h (collect_exit): Delete.
13920 * tlink.c (do_tlink): Rename exit to ret. Change collect_exit to exit.
13921
e3f9e0ac
WM
139222013-06-19 Wei Mi <wmi@google.com>
13923
13924 PR rtl-optimization/57518
13925 * ira.c (set_paradoxical_subreg): Set pdx_subregs[regno]
13926 if regno is used in paradoxical subreg.
13927 (update_equiv_regs): Check pdx_subregs[regno] before
13928 set a reg to be equivalent with a mem.
13929
a09f1a76
MK
139302013-06-19 Matthias Klose <doko@ubuntu.com>
13931
13932 PR driver/57651
13933 * file-find.h (find_a_file): Add a mode parameter.
13934 * file-find.c (find_a_file): Likewise.
13935 * gcc-ar.c (main): Call find_a_file with R_OK for the plugin,
13936 with X_OK for the executables.
13937 * collect2.c (main): Call find_a_file with X_OK.
13938
7d18b0ad
SE
139392013-06-19 Steve Ellcey <sellcey@mips.com>
13940
13941 PR target/56942
13942 * config/mips/mips.md (casesi_internal_mips16_<mode>):
13943 Use NEXT_INSN instead of next_real_insn.
13944
6a6dac52
JH
139452013-06-19 Jan Hubicka <jh@suse.cz>
13946
13947 * cgraph.h (const_value_known_p): Replace by ...
13948 (ctor_for_folding): .. this one.
13949 * cgraphunit.c (process_function_and_variable_attributes): Use it.
13950 * lto-cgraph.c (compute_ltrans_boundary): Use ctor_for_folding.
13951 * expr.c (expand_expr_real_1): Likewise.
13952 (string_constant): Likewise.
13953 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
13954 * ipa.c (process_references): Likewise.
13955 (symtab_remove_unreachable_nodes): Likewise.
13956 * ipa-inline-analysis.c (param_change_prob): Likewise.
13957 * gimple-fold.c (canonicalize_constructor_val): Likewise.
13958 (get_base_constructor): Likwise.
13959 * varpool.c (varpool_remove_node): Likewise.
13960 (varpool_remove_initializer): LIkewise.
13961 (dump_varpool_node): LIkwise.
13962 (const_value_known_p): Rewrite to ...
13963 (ctor_for_folding): ... this one.
13964
216c12ab
JJ
139652013-06-19 Jakub Jelinek <jakub@redhat.com>
13966
13967 PR driver/57651
13968 * gcc-ar.c (main): If not CROSS_DIRECTORY_STRUCTURE, look for
13969 PERSONALITY in $PATH derived prefixes.
13970
d53e2f99
JL
139712013-06-19 Jeff Law <law@redhat.com>
13972
ecdbf306
JL
13973 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): Fix typo
13974 in comment.
13975
d53e2f99
JL
13976 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): New function.
13977 (simplify_bitwise_binary): Use it to simpify certain binary ops on
13978 booleans.
13979
89e7fc04
SN
139802013-06-19 Sofiane Naci <sofiane.naci@arm.com>
13981
13982 * config/arm/vfp.md: Move VFP instruction classification documentation
13983 to ...
13984 * config/arm/arm.md: ... here. Update instruction classification
13985 documentation.
13986
5e7f6aaa
RE
139872013-06-19 Richard Earnshaw <rearnsha@arm.com>
13988
13989 arm.md (split for eq(reg, 0)): Add variants for ARMv5 and Thumb2.
13990 (peepholes for eq(reg, not-0)): Ensure condition register is dead after
13991 pattern. Use more efficient sequences on ARMv5 and Thumb2.
13992
5fdc1e5d
SB
139932013-06-19 Steven Bosscher <steven@gcc.gnu.org>
13994
13995 PR target/57609
13996 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
13997 with NEXT_INSN. Use tablejump_p to check for jump table data
13998 insns.
13999
e952afba
PC
140002013-06-19 Paolo Carlini <paolo.carlini@oracle.com>
14001
14002 PR c++/56544
14003 * doc/cpp.texi [Standard Predefined Macros, __cplusplus]: Document
14004 that now in C++ the value is correct per the C++ standards.
14005
3fd0303a
RB
140062013-06-19 Richard Biener <rguenther@suse.de>
14007
14008 * expr.c (expand_expr_real_1): Use SCOPE_FILE_SCOPE_P to check
14009 for global context.
14010
b04e4b08
AK
140112013-06-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14012
14013 Revert:
14014 2013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14015
14016 PR target/57609
14017 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
14018 with next_active_insn.
14019
bef8491a
ST
140202013-06-18 Sriraman Tallam <tmsriram@google.com>
14021
14022 * ipa-inline.c (inline_always_inline_functions): Pretend always_inline
14023 functions are inlined during failures to flag an error.
14024 * tree-inline.c (expand_call_inline): Allow the error to be flagged
14025 in early inline pass.
22fc7d3d 14026
c21b257d
L
140272013-06-18 H.J. Lu <hongjiu.lu@intel.com>
14028
14029 * config/i386/i386.c (initial_ix86_tune_features): Fix a typo
14030 in comments.
14031
33255ae3
JB
140322013-06-18 Julian Brown <julian@codesourcery.com>
14033
14034 * config/arm/arm.c (neon_vector_mem_operand): Add strict argument.
14035 Permit virtual register pre-reload if !strict.
14036 (coproc_secondary_reload_class): Adjust for neon_vector_mem_operand
14037 change.
14038 * config/arm/arm-protos.h (neon_vector_mem_operand): Adjust
14039 prototype.
14040 * config/arm/neon.md (movmisalign<mode>): Use
14041 neon_perm_struct_or_reg_operand instead of
14042 neon_struct_or_register_operand.
14043 (*movmisalign<mode>_neon_load, *movmisalign<mode>_neon_store): Use
14044 neon_permissive_struct_operand instead of neon_struct_operand.
14045 * config/arm/constraints.md (Un, Um, Us): Adjust calls to
14046 neon_vector_mem_operand.
14047 * config/arm/predicates.md (neon_struct_operand): Adjust call to
14048 neon_vector_mem_operand.
14049 (neon_permissive_struct_operand): New.
14050 (neon_struct_or_register_operand): Rename to...
14051 (neon_perm_struct_or_reg_operand): This. Adjust call to
14052 neon_vector_mem_operand.
14053
d579fcda
RB
140542013-06-18 Richard Biener <rguenther@suse.de>
14055
14056 * Makefile.in (LTO_STREAMER_H): Add pointer-set.h dependency.
14057 * lto-streamer.h: Include pointer-set.h.
14058 (struct lto_decl_slot): Remove.
14059 (struct lto_tree_ref_encoder): Make tree_hash_table a pointer-map.
14060 Remove next_index entry.
14061 (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
14062 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
14063 (lto_init_tree_ref_encoder): Adjust.
14064 (lto_destroy_tree_ref_encoder): Likewise.
14065 * lto-section-out.c (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
14066 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
14067 (lto_output_decl_index): Adjust.
14068 (lto_new_out_decl_state): Likewise.
14069 (lto_record_function_out_decl_state): Likewise.
14070 * lto-streamer-out.c (copy_function): Likewise.
14071
31ee20ba
RB
140722013-06-18 Richard Biener <rguenther@suse.de>
14073
14074 * Makefile.in (cgraphunit.o): Add $(CFGLOOP_H) dependency.
14075 * cgraphunit.c: Include cfgloop.h.
14076 (init_lowered_empty_function): Initialize the loop tree.
14077 (assemble_thunk): Insert new BBs into loops.
14078
ac0511f2
RB
140792013-06-18 Richard Biener <rguenther@suse.de>
14080
14081 * tree-streamer.h (streamer_tree_cache_create): Adjust prototype.
14082 * tree-streamer.c (streamer_tree_cache_create): Make maintaining
14083 the map from cache entry to cache index optional.
14084 (streamer_tree_cache_replace_tree): Adjust accordingly.
14085 (streamer_tree_cache_append): Likewise.
14086 (streamer_tree_cache_delete): Likewise.
14087 * lto-streamer-in.c (lto_data_in_create): Do not maintain the
14088 streamer cache map from cache entry to cache index.
14089 * lto-streamer-out.c (create_output_block): Adjust.
14090
09485a08
SN
140912013-06-18 Sofiane Naci <sofiane.naci@arm.com>
14092
22fc7d3d
UB
14093 * config/arm/arm.md (attribute "insn"): Move multiplication and
14094 division attributes to...
09485a08
SN
14095 (attribute "type"): ... here. Remove mult.
14096 (attribute "mul32"): New attribute.
14097 (attribute "mul64"): Add umaal.
14098 (*arm_mulsi3): Update attributes.
14099 (*arm_mulsi3_v6): Likewise.
14100 (*thumb_mulsi3): Likewise.
14101 (*thumb_mulsi3_v6): Likewise.
14102 (*mulsi3_compare0): Likewise.
14103 (*mulsi3_compare0_v6): Likewise.
14104 (*mulsi_compare0_scratch): Likewise.
14105 (*mulsi_compare0_scratch_v6): Likewise.
14106 (*mulsi3addsi): Likewise.
14107 (*mulsi3addsi_v6): Likewise.
14108 (*mulsi3addsi_compare0): Likewise.
14109 (*mulsi3addsi_compare0_v6): Likewise.
14110 (*mulsi3addsi_compare0_scratch): Likewise.
14111 (*mulsi3addsi_compare0_scratch_v6): Likewise.
14112 (*mulsi3subsi): Likewise.
14113 (*mulsidi3adddi): Likewise.
14114 (*mulsi3addsi_v6): Likewise.
14115 (*mulsidi3adddi_v6): Likewise.
14116 (*mulsidi3_nov6): Likewise.
14117 (*mulsidi3_v6): Likewise.
14118 (*umulsidi3_nov6): Likewise.
14119 (*umulsidi3_v6): Likewise.
14120 (*umulsidi3adddi): Likewise.
14121 (*umulsidi3adddi_v6): Likewise.
14122 (*smulsi3_highpart_nov6): Likewise.
14123 (*smulsi3_highpart_v6): Likewise.
14124 (*umulsi3_highpart_nov6): Likewise.
14125 (*umulsi3_highpart_v6): Likewise.
14126 (mulhisi3): Likewise.
14127 (*mulhisi3tb): Likewise.
14128 (*mulhisi3bt): Likewise.
14129 (*mulhisi3tt): Likewise.
14130 (maddhisi4): Likewise.
14131 (*maddhisi4tb): Likewise.
14132 (*maddhisi4tt): Likewise.
14133 (maddhidi4): Likewise.
14134 (*maddhidi4tb): Likewise.
14135 (*maddhidi4tt): Likewise.
14136 (divsi3): Likewise.
14137 (udivsi3): Likewise.
14138 * config/arm/thumb2.md (thumb2_mulsi_short): Update attributes.
14139 (thumb2_mulsi_short_compare0): Likewise.
14140 (thumb2_mulsi_short_compare0_scratch): Likewise.
14141 * config/arm/arm1020e.md (1020mult1): Update attribute change.
14142 (1020mult2): Likewise.
14143 (1020mult3): Likewise.
14144 (1020mult4): Likewise.
14145 (1020mult5): Likewise.
14146 (1020mult6): Likewise.
22fc7d3d
UB
14147 * config/arm/cortex-a15.md (cortex_a15_mult32): Update attribute
14148 change.
09485a08
SN
14149 (cortex_a15_mult64): Likewise.
14150 (cortex_a15_sdiv): Likewise.
14151 (cortex_a15_udiv): Likewise.
14152 * config/arm/arm1026ejs.md (mult1): Update attribute change.
14153 (mult2): Likewise.
14154 (mult3): Likewise.
14155 (mult4): Likewise.
14156 (mult5): Likewise.
14157 (mult6): Likewise.
14158 * config/arm/marvell-pj4.md (pj4_ir_mul): Update attribute change.
14159 (pj4_ir_div): Likewise.
14160 * config/arm/arm1136jfs.md (11_mult1): Update attribute change.
14161 (11_mult2): Likewise.
14162 (11_mult3): Likewise.
14163 (11_mult4): Likewise.
14164 (11_mult5): Likewise.
14165 (11_mult6): Likewise.
14166 (11_mult7): Likewise.
14167 * config/arm/cortex-a8.md (cortex_a8_mul): Update attribute change.
14168 (cortex_a8_mla): Likewise.
14169 (cortex_a8_mull): Likewise.
14170 (cortex_a8_smulwy): Likewise.
14171 (cortex_a8_smlald): Likewise.
14172 * config/arm/cortex-m4.md (cortex_m4_alu): Update attribute change.
14173 * config/arm/cortex-r4.md (cortex_r4_mul_4): Update attribute change.
14174 (cortex_r4_mul_3): Likewise.
14175 (cortex_r4_mla_4): Likewise.
14176 (cortex_r4_mla_3): Likewise.
14177 (cortex_r4_smlald): Likewise.
14178 (cortex_r4_mull): Likewise.
14179 (cortex_r4_sdiv): Likewise.
14180 (cortex_r4_udiv): Likewise.
14181 * config/arm/cortex-a7.md (cortex_a7_mul): Update attribute change.
14182 (cortex_a7_idiv): Likewise.
14183 * config/arm/arm926ejs.md (9_mult1): Update attribute change.
14184 (9_mult2): Likewise.
14185 (9_mult3): Likewise.
14186 (9_mult4): Likewise.
14187 (9_mult5): Likewise.
14188 (9_mult6): Likewise.
14189 * config/arm/cortex-a53.md (cortex_a53_mul): Update attribute change.
14190 (cortex_a53_sdiv): Likewise.
14191 (cortex_a53_udiv): Likewise.
14192 * config/arm/fa726te.md (726te_mult_op): Update attribute change.
14193 * config/arm/fmp626.md (mp626_mult1): Update attribute change.
14194 (mp626_mult2): Likewise.
14195 (mp626_mult3): Likewise.
14196 (mp626_mult4): Likewise.
14197 * config/arm/fa526.md (526_mult1): Update attribute change.
14198 (526_mult2): Likewise.
14199 * config/arm/arm-generic.md (mult): Update attribute change.
14200 (mult_ldsched_strongarm): Likewise.
14201 (mult_ldsched): Likewise.
14202 (multi_cycle): Likewise.
14203 * config/arm/cortex-a5.md (cortex_a5_mul): Update attribute change.
14204 * config/arm/fa606te.md (606te_mult1): Update attribute change.
14205 (606te_mult2): Likewise.
14206 (606te_mult3): Likewise.
14207 (606te_mult4): Likewise.
14208 * config/arm/cortex-a9.md (cortex_a9_mult16): Update attribute change.
14209 (cortex_a9_mac16): Likewise.
14210 (cortex_a9_multiply): Likewise.
14211 (cortex_a9_mac): Likewise.
14212 (cortex_a9_multiply_long): Likewise.
14213 * config/arm/fa626te.md (626te_mult1): Update attribute change.
14214 (626te_mult2): Likewise.
14215 (626te_mult3): Likewise.
14216 (626te_mult4): Likewise.
14217
8951f345
RB
142182013-06-18 Richard Biener <rguenther@suse.de>
14219
14220 PR lto/57334
14221 * lto-symtab.c (lto_symtab_merge_decls): Process nodes properly.
14222
d8101d05
AK
142232013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14224
14225 PR target/57609
14226 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
14227 with next_active_insn.
14228
69eff9da
AM
142292013-06-18 Alan Modra <amodra@gmail.com>
14230
14231 * config/rs6000/rs6000.h (enum data_align): New.
14232 (LOCAL_ALIGNMENT, DATA_ALIGNMENT): Use rs6000_data_alignment.
14233 (DATA_ABI_ALIGNMENT): Define.
14234 (CONSTANT_ALIGNMENT): Correct comment.
14235 * config/rs6000/rs6000-protos.h (rs6000_data_alignment): Declare.
14236 * config/rs6000/rs6000.c (rs6000_data_alignment): New function.
14237
8ed00d76
DM
142382013-06-17 David Malcolm <dmalcolm@redhat.com>
14239
14240 * ggc-page.c (ggc_pch_write_object) <d>: Remove erroneous
14241 ATTRIBUTE_UNUSED marking.
14242
3d33d06b
SN
142432013-06-17 Sofiane Naci <sofiane.naci@arm.com>
14244
14245 * config/aarch64/aarch64-simd.md (aarch64_dup_lane<mode>): Add r<-w
14246 alternative and update.
14247 (aarch64_dup_lanedi): Delete.
14248 * config/aarch64/arm_neon.h (vdup<bhsd>_lane_*): Update.
14249 * config/aarch64/aarch64-simd-builtins.def: Update.
14250
ee03e71d
RB
142512013-06-17 Richard Biener <rguenther@suse.de>
14252
14253 * lto-streamer.h (enum LTO_tags): Add LTO_tree_scc.
14254 (lto_input_scc): Declare.
14255 (lto_input_tree_1): Likewise.
14256 (struct lto_stats_d): Add num_tree_bodies_output and
14257 num_pickle_refs_output.
14258 * lto-streamer-in.c (lto_read_body): Use streamer_tree_cache_get_tree.
14259 (lto_read_tree_1): Split out from ...
14260 (lto_read_tree): ... this.
14261 (lto_input_scc): New function.
14262 (lto_input_tree_1): Split out from ...
14263 (lto_input_tree): ... this. Handle LTO_tree_scc.
14264 (lto_data_in_create): Create the streamer cache without hashes.
14265 * lto-streamer-out.c (create_output_block): Create the streamer
14266 cache with hashes when not doing WPA.
14267 (lto_write_tree_1): Split out from ...
14268 (lto_write_tree): ... this.
14269 (get_symbol_initial_value): New function.
14270 (lto_output_tree_1): Split out from ...
14271 (lto_output_tree): ... this. Write trees as series of SCCs
14272 using a DFS walk via DFS_write_tree.
14273 (struct sccs, struct scc_entry): New types.
14274 (next_dfs_num, sccstack, sccstate, sccstate_obstack): New globals.
14275 (DFS_write_tree_body): New function.
14276 (DFS_write_tree): Likewise.
14277 (hash_tree): Likewise.
14278 (scc_entry_compare): Likewise.
14279 (hash_scc): Likewise.
14280 (tree_is_indexable): DEBUG_EXPR_DECLs are local entities.
14281 * tree-streamer-in.c (lto_input_ts_list_tree_pointers): Stream
14282 TREE_CHAIN as regular reference.
14283 (streamer_read_integer_cst): Remove.
14284 (streamer_get_pickled_tree): Adjust.
14285 * tree-streamer-out.c (streamer_write_chain): Disable streaming
14286 of DECL_EXTERNALs in BLOCK_VARS for now.
14287 (write_ts_list_tree_pointers): Stream TREE_CHAIN as regular
14288 reference.
14289 * tree-streamer.c (streamer_tree_cache_add_to_node_array):
14290 Add hash value argument and record that if hashes are recorded
14291 in the cache.
14292 (streamer_tree_cache_insert_1): Adjust.
14293 (streamer_tree_cache_insert): Likewise.
14294 (streamer_tree_cache_insert_at): Rename to ...
14295 (streamer_tree_cache_replace_tree): ... this and adjust.
14296 (streamer_tree_cache_append): Adjust.
14297 (record_common_node): Likewise.
14298 (streamer_tree_cache_create): Add argument whether to
14299 record hash values together with trees.
14300 (streamer_tree_cache_delete): Adjust.
14301 * tree-streamer.h (struct streamer_tree_cache_d): Add
14302 vector of hashes.
14303 (streamer_read_integer_cst): Remove.
14304 (streamer_tree_cache_insert): Adjust.
14305 (streamer_tree_cache_append): Likewise.
14306 (streamer_tree_cache_insert_at): Rename to ...
14307 (streamer_tree_cache_replace_tree): ... this and adjust.
14308 (streamer_tree_cache_create): Add argument whether to record hashes.
14309 (streamer_tree_cache_get): Rename to ...
14310 (streamer_tree_cache_get_tree): ... this.
14311 (streamer_tree_cache_get_hash): New function.
14312 * tree.c (cache_integer_cst): New function.
14313 * tree.h (cache_integer_cst): Declare.
14314 (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Move here from cp/cp-tree.h.
14315 * lto-symtab.c (lto_varpool_replace_node): Only release
14316 DECL_INITIAL of non-prevailing decls.
14317 * varpool.c (varpool_remove_initializer): Do not release
14318 DECL_INITIAL when we are still in CGRAPH_LTO_STREAMING.
14319
0de86a92
JU
143202013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
14321
14322 * config/mips/mips.h (ISA_HAS_MUL3): Include TARGET_MIPS5900.
14323 (ISA_HAS_MULT, ISA_HAS_DMULT, ISA_HAS_DIV, ISA_HAS_DDIV): New macros.
14324 * config/mips/mips.md (mul<mode>3, mul<mode>3_internal)
14325 (mul<mode>3_r4000): Require ISA_HAS_<D>MULT.
14326 (mul<mode>3_mul3): Handle TARGET_MIPS5900.
14327 (mulsidi3_64bit_dmul): Remove redundant TARGET_64BIT test.
14328 (<su>muldi3_highpart, <su>muldi3_highpart_internal, <u>mulditi3)
14329 (<u>mulditi3_internal, <u>mulditi3_r4000): Require ISA_HAS_DMULT
14330 instead of TARGET_64BIT.
14331 (divmod<mode>4, udivmod<mode>4, <u>divmod<GPR:mode>4_hilo_<HILO:mode>):
14332 Require ISA_HAS_<D>DIV.
14333
74240413
RS
143342013-06-16 Richard Sandiford <rdsandiford@googlemail.com>
14335
14336 * config.gcc (mips*-mti-linux*, mips64*-*-linux*, mipsisa64*-*-linux*)
14337 (mips*-*-linux*): Move default with_llsc setting to where other
14338 defaults are set.
14339 (mips*-*-vxworks*): Move with_arch default from with_cpu block to
14340 with_arch block.
14341 (mips64r5900-*-*, mips64r5900el-*-*, mipsr5900-*-*, mipsr5900el-*-*):
14342 Likewise. Remove default with_tune setting. Move default float
14343 setting to its own block. Handle with_llsc in the same block as above.
14344
12211b99 143452013-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
393f9fed
JR
14346
14347 PR rtl-optimization/57425
14348 PR rtl-optimization/57569
299a5f6a 14349 * alias.c (write_dependence_p): Add new parameters mem_mode,
393f9fed
JR
14350 canon_mem_addr and mem_canonicalized. Change type of writep to bool.
14351 Changed all callers.
14352 (canon_anti_dependence): New function.
14353 * cse.c (check_dependence): Use canon_anti_dependence.
14354 * cselib.c (cselib_invalidate_mem): Likewise.
14355 * rtl.h (canon_anti_dependence): Declare.
14356
b259d352
JU
143572013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
14358
14359 * config/mips/mips.h (ISA_HAS_LL_SC): Exclude TARGET_MIPS5900.
14360 * config/mips/mips.c (mips_start_ll_sc_sync_block): Output
14361 ".set mips3" for 64-bit targets.
14362
4de09b85
DC
143632013-06-15 Dehao Chen <dehao@google.com>
14364
14365 * tree-flow.h (gimple_check_call_matching_types): Add new argument.
14366 * gimple-low.c (gimple_check_call_matching_types): Likewise.
14367 (gimple_check_call_args): Likewise.
14368 * value-prof.c (check_ic_target): Likewise.
14369 * ipa-inline.c (early_inliner): Likewise.
14370 * ipa-prop.c (update_indirect_edges_after_inlining): Likewise.
14371 * cgraph.c (cgraph_create_edge_1): Likewise.
14372 (cgraph_make_edge_direct): Likewise.
14373
d1aa4a76
MM
143742013-06-14 Michael Meissner <meissner@linux.vnet.ibm.com>
14375
14376 PR target/57615
14377 * config/rs6000/rs6000.md (mov<mode>_ppc64): Call
14378 rs6000_output_move_128bit to handle emitting quad memory
14379 operations. Set attribute length to 8 bytes.
14380
12211b99 143812013-06-14 Vidya Praveen <vidyapraveen@arm.com>
24244e4d
VP
14382
14383 * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_lo<mode>):
14384 New pattern.
14385 (aarch64_<su>mlal_hi<mode>, aarch64_<su>mlsl_lo<mode>): Likewise.
14386 (aarch64_<su>mlsl_hi<mode>, aarch64_<su>mlal<mode>): Likewise.
14387 (aarch64_<su>mlsl<mode>): Likewise.
14388
f5273574
MS
143892013-06-14 Mike Stump <mikestump@comcast.net>
14390
14391 * Makefile.in (TARGET_H): Add insn-codes.h.
14392
ef7e7ab2
AM
143932013-06-14 Alan Modra <amodra@gmail.com>
14394
14395 PR middle-end/57134
14396 PR middle-end/57586
14397 * expr.c (expand_expr_real_1 <normal_inner_ref>): Pass
14398 EXPAND_MEMORY and EXPAND_WRITE to recursive call. Don't use
14399 bitfield expansion when EXPAND_MEMORY.
14400 (expand_expr_real_1 <VIEW_CONVERT_EXPR>): Pass modifier likewise.
14401
135faab6
MM
144022013-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
14403
14404 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
14405 test for clearing quad memory on 32-bit later.
14406
948a1fd9
MG
144072013-06-13 Marc Glisse <marc.glisse@inria.fr>
14408
14409 * fold-const.c (negate_expr_p): Handle VECTOR_CST.
14410 (fold_negate_expr): Likewise.
14411 (fold_real_zero_addition_p): Handle vectors.
14412 (fold_binary_loc) <PLUS_EXPR, MINUS_EXPR>: Likewise.
14413
0597fb9c
AM
144142013-06-14 Alan Modra <amodra@gmail.com>
14415
14416 * varasm.c (force_const_mem): Revert 2013-06-07 change.
14417
e5b962d0
JH
144182013-06-13 Jan Hubicka <jh@suse.cz>
14419
14420 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
14421 Local comdats are not externally visible.
14422 * symtab.c (dump_symtab_base): Dump externally visible.
14423 (verify_symtab_base): Verify back links in the symtab hash.
14424
a8355e51
BC
144252013-06-13 Bin Cheng <bin.cheng@arm.com>
14426
14427 * fold-const.c (operand_equal_p): Consider NOP_EXPR and
14428 CONVERT_EXPR as equal nodes.
14429
8f7e6e33
BC
144302013-06-13 Bin Cheng <bin.cheng@arm.com>
14431
22fc7d3d 14432 * rtlanal.c (noop_move_p): Check the code to be executed for COND_EXEC.
8f7e6e33 14433
5d418483
MG
144342013-06-13 Marc Glisse <marc.glisse@inria.fr>
14435
14436 * tree-ssa-forwprop.c (simplify_bitwise_binary, associate_plusminus):
14437 Generalize to complex and vector.
14438 * tree.c (build_all_ones_cst): New function.
14439 * tree.h (build_all_ones_cst): Declare it.
14440
50751417
AM
144412013-06-13 Alan Modra <amodra@gmail.com>
14442
14443 * config/rs6000/rs6000.h (LONG_DOUBLE_LARGE_FIRST): Define.
14444 * config/rs6000/rs6000.md (signbittf2): New insn.
14445 (extenddftf2_internal): Use LONG_DOUBLE_LARGE_FIRST.
14446 (abstf2_internal, cmptf_internal2): Likewise.
14447 * config/rs6000/spe.md (spe_abstf2_cmp, spe_abstf2_tst): Likewise.
14448
4b02c962 144492013-06-12 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
14450 Pat Haugen <pthaugen@us.ibm.com>
14451 Peter Bergner <bergner@vnet.ibm.com>
4b02c962
MM
14452
14453 * config/rs6000/rs6000.c (emit_load_locked): Add support for
14454 power8 byte, half-word, and quad-word atomic instructions.
14455 (emit_store_conditional): Likewise.
14456 (rs6000_expand_atomic_compare_and_swap): Likewise.
14457 (rs6000_expand_atomic_op): Likewise.
14458
14459 * config/rs6000/sync.md (larx): Add new modes for power8.
14460 (stcx): Likewise.
14461 (AINT): New mode iterator to include TImode as well as normal
14462 integer modes on power8.
14463 (fetchop_pred): Use int_reg_operand instead of gpc_reg_operand so
14464 that VSX registers are not considered. Use AINT mode iterator
14465 instead of INT1 to allow inclusion of quad word atomic operations
14466 on power8.
14467 (load_locked<mode>): Likewise.
14468 (store_conditional<mode>): Likewise.
14469 (atomic_compare_and_swap<mode>): Likewise.
14470 (atomic_exchange<mode>): Likewise.
14471 (atomic_nand<mode>): Likewise.
14472 (atomic_fetch_<fetchop_name><mode>): Likewise.
14473 (atomic_nand_fetch<mode>): Likewise.
14474 (mem_thread_fence): Use gen_loadsync_<mode> instead of enumerating
14475 each type.
14476 (ATOMIC): On power8, add QImode, HImode modes.
14477 (load_locked<QHI:mode>_si): Varients of load_locked for QI/HI
14478 modes that promote to SImode.
14479 (load_lockedti): Convert TImode arguments to PTImode, so that we
14480 get a guaranteed even/odd register pair.
14481 (load_lockedpti): Likewise.
14482 (store_conditionalti): Likewise.
14483 (store_conditionalpti): Likewise.
14484
14485 * config/rs6000/rs6000.md (QHI): New mode iterator for power8
14486 atomic load/store instructions.
14487 (HSI): Likewise.
14488
710b6cc1
RS
144892013-06-12 Richard Sandiford <rdsandiford@googlemail.com>
14490
14491 * config/mips/mips.md (extended_mips16): Include GOT and constant-pool
14492 loads.
14493 (insn_count): New attribute, with most cases extracted from...
14494 (length): ...here. Redefine most cases in terms of insn_count.
14495 (single_insn): Delete.
14496 (can_delay): Use insn_count to check for single instructions.
14497 (*mul<mode>3_r4300, mul<mode>3_r4000, *mul_acc_si, *mul_acc_si_r3900)
14498 (*msac_using_macc, *mul_sub_si, <u>mulsidi3_32bit_r4000)
14499 (<u>mulsidi3_64bit_r4000, <su>muldi3_highpart_internal)
14500 (<su>mulsi3_highpart_split, <su>muldi3_highpart_internal)
14501 (<u>mulditi3_r4000, *div<mode>3, *recip<mode>3, divmod<mode>4)
14502 (udivmod<mode>4, sqrt<mode>2, *rsqrt<mode>a, *rsqrt<mode>b)
14503 (fix_truncdfsi2_macro, fix_truncsfsi2_macro, *lea_high64)
14504 (*lea64, cprestore_<mode>, clear_hazard_<mode>, <unnamed insn>)
14505 (casesi_internal_mips16_<mode>, *tls_get_tp_<mode>_split)
14506 (tls_get_tp_mips16, *tls_get_tp_mips16_call_<mode>): Use "insn_count"
14507 rather than "length".
14508 (tls_get_tp_<mode>): Likewise. Remove redundant "no_delay" attribute.
14509 * config/mips/mips-ps-3d.md (mips_c_cond_4s, mips_cabs_cond_4s):
14510 Use "insn_count" rather than "length".
14511 * config/mips/mips-dsp.md
14512 (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>)
14513 (mips_l<GPR:size>x_<P:mode>, *mips_lw<u>x_<P:mode>_ext): Remove
14514 length attributes.
14515
1951f101
MG
145162013-06-12 Marc Glisse <marc.glisse@inria.fr>
14517
14518 PR tree-optimization/57361
14519 * tree-ssa-dse.c (dse_possible_dead_store_p): Handle self-assignment.
14520
8b033a8a
SN
145212013-06-12 Sofiane Naci <sofiane.naci@arm.com>
14522
22fc7d3d
UB
14523 * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Convert
14524 to split.
8b033a8a
SN
14525 (aarch64_simd_combine<mode>): New instruction expansion.
14526 * config/aarch64/aarch64-protos.h (aarch64_split_simd_combine): New
14527 function prototype.
14528 * config/aarch64/aarch64.c (aarch64_split_combine): New function.
14529 * config/aarch64/iterators.md (Vdbl): Add entry for DF.
14530
ca0f62a8
JH
145312013-06-12 Jan Hubicka <jh@suse.cz>
14532
14533 * cgraph.c (verify_edge_corresponds_to_fndecl): Be lax about
14534 decl has when in streaming stage.
14535 * lto-symtab.c (lto_symtab_merge_symbols): Likewise.
14536 * cgraph.h (cgraph_state): Add CGRAPH_LTO_STREAMING.
14537
12211b99 145382013-06-12 Roland Stigge <stigge@antcom.de>
cddd69eb
RS
14539
14540 PR target/57578
14541 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Fix SPE version detection.
14542
bfdeda2c
JJ
145432013-06-12 Jakub Jelinek <jakub@redhat.com>
14544
14545 PR tree-optimization/57537
14546 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): If
14547 vect_handle_widen_op_by_const, convert oprnd1 to half_type1.
14548
a4fa02d1
RB
145492013-06-12 Richard Biener <rguenther@suse.de>
14550
14551 * data-streamer.h (streamer_write_char_stream): CSE
14552 obs->current_pointer.
14553 * data-streamer-out.c (streamer_write_uhwi_stream): Inline
14554 streamer_write_char_stream manually and optimize the resulting loop.
14555 (streamer_write_hwi_stream): Likewise.
14556
bbf9ad07
JH
145572013-06-12 Jan Hubicka <jh@suse.cz>
14558
14559 * lto-symtab.c (lto_symtab_merge_symbols): Populate symtab hashtable.
14560 * cgraph.h (varpool_create_empty_node): Declare.
14561 * lto-cgraph.c (input_node, input_varpool_node): Forcingly create
14562 duplicated nodes.
14563 * symtab.c (symtab_unregister_node): Be lax about missin entries
14564 in node hash.
14565 (symtab_get_node): Update comment.
14566 * varpool.c (varpool_create_empty_node): Break out from ...
14567 (varpool_node_for_decl): ... here.
14568 * lto-streamer.h (lto_file_decl_data): Add RESOLUTION_MAP.
14569
a53f90ad
EB
145702013-06-12 Eric Botcazou <ebotcazou@adacore.com>
14571
14572 * expr.c (expand_expr_real_1) <TARGET_MEM_REF>: Use straight-line flow.
14573 <MEM_REF>: Use 'type' instead of TREE_TYPE (exp) and tidy up the first
14574 part. Use straight-line flow at the end.
14575 <COMPONENT_REF>: Remove superfluous else.
14576 <VIEW_CONVERT_EXPR>: Use 'type' instead of TREE_TYPE (exp).
14577
946f9306
JJ
145782013-06-12 Jakub Jelinek <jakub@redhat.com>
14579
14580 PR target/56564
14581 * varasm.c (decl_binds_to_current_def_p): Call binds_local_p
14582 target hook even for !TREE_PUBLIC decls. If no resolution info
14583 is available, return false for common and external decls.
14584
a7fca6f0
KP
145852013-06-12 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
14586
14587 * config/rl78/constraints.md (U): New constraint.
14588 * config/rl78/rl78.md (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): Add
14589 valloc attribute.
14590
c7d8f446
MM
145912013-06-11 Michael Meissner <meissner@linux.vnet.ibm.com>
14592
14593 PR target/57589
14594 * config/rs6000/driver-rs6000.c (elf_platform): Make buffer static
14595 to allow returning address to AT_PLATFORM name.
14596
08346abd
JH
145972013-06-11 Jan Hubicka <jh@suse.cz>
14598
14599 * cgraph.c (cgraph_create_function_alias): Set weakref flag.
14600 * cgraph.h (symtab_node_base): Add weakref flag.
14601 * cgraphunit.c (cgraph_reset_node): Clear weakref flag.
14602 (handle_alias_pairs): Set weakref flag, do not set DECL_EXTERNAL.
14603 (output_weakrefs): Use weakref flag.
14604 * fold-const.c (simple_operand_p): Handle WEAK.
14605 * gimple-fold.c (can_refer_decl_in_current_unit_p): Drop weakref.
14606 * ipa.c (varpool_externally_visible_p): Drop weakref.
14607 (function_and_variable_visibility): Update comment; fix weakref
14608 sanity checks; do not clear DECL_WEAK on them.
14609 * lto-cgraph.c (lto_output_node): update.
14610 (lto_output_varpool_node): Update.
14611 (input_overwrite_node): Update.
14612 (input_node): Update.
14613 (input_varpool_node): Update.
14614 * lto-symtab.c (lto_symtab_symbol_p): Do not special case weakrefs.
14615 (lto_symtab_merge_symbols): Add sanity check.
14616 (lto_symtab_prevailing_decl): Do not special case weakrefs.
14617 * passes.c (rest_of_decl_compilation): Set static flag, too.
14618 * symtab.c (dump_symtab_base): Dump weakref.
14619 (verify_symtab_base): Sanity check weakrefs.
14620 (symtab_make_decl_local): Remove duplicated code.
14621 (symtab_alias_ultimate_target): Simplify.
14622 * varpool.c (varpool_create_variable_alias): Set weakref flag.
c7d8f446 14623
2e6a2f88
TV
146242013-06-11 Tom de Vries <tom@codesourcery.com>
14625
14626 * genautomata.c (gen_regexp_sequence): Handle els_num == -1. Handle
14627 sequence_vect == NULL.
14628
d9af3652
DD
146292013-06-11 DJ Delorie <dj@redhat.com>
14630
14631 * config/rl78/rl78.c (TARGET_UNWIND_WORD_MODE): Define.
14632 (rl78_unwind_word_mode): New.
14633
ffa66012
DM
146342013-06-11 David Malcolm <dmalcolm@redhat.com>
14635
14636 * final.c (debug_prefix_maps): Make static.
14637
783f2d35
DM
146382013-06-11 David Malcolm <dmalcolm@redhat.com>
14639
14640 * function.c (initial_trampoline): Remove stray copy.
14641
7af26def
SN
146422013-06-11 Sofiane Naci <sofiane.naci@arm.com>
14643
14644 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update.
14645
97756c0e
MJ
146462013-06-11 Martin Jambor <mjambor@suse.cz>
14647
14648 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that param_index is
14649 within bounds at the beginning of the function.
14650
2c7b8bf6
AM
146512013-06-11 Alan Modra <amodra@gmail.com>
14652
14653 * varasm.c (get_section): Don't die on !DECL_P decl. Tidy error
14654 reporting.
14655 (get_named_section): Don't NULL !DECL_P decl.
14656
77cea46e
IZ
146572013-06-11 Igor Zamyatin <igor.zamyatin@intel.com>
14658
14659 * doc/invoke.texi (core-avx2): Document.
14660 (slm): Likewise.
14661 (atom): Updated with MOVBE.
14662
888f0920
RB
146632013-06-11 Richard Biener <rguenther@suse.de>
14664
22fc7d3d 14665 * collect2.c (main): Do not redirect ld stdout/stderr when debugging.
888f0920 14666
6b438d58
AB
146672013-06-11 Anton Blanchard <anton@samba.org>
14668
14669 * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Calculate
14670 correct shift value in little-endian mode.
14671
3bc66938
JJ
146722013-06-11 Jakub Jelinek <jakub@redhat.com>
14673
14674 PR target/56564
14675 * varasm.c (get_variable_align): Move #endif to the right place.
14676
a5dc7f88
CC
146772013-06-10 Cary Coutant <ccoutant@google.com>
14678
14679 * dwarf2out.c (hash_external_ref): Use die_symbol or signature
14680 for hash so that hash table traversal order is deterministic.
14681
19be72ab 146822013-06-10 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
14683 Pat Haugen <pthaugen@us.ibm.com>
14684 Peter Bergner <bergner@vnet.ibm.com>
19be72ab
MM
14685
14686 * config/rs6000/vector.md (GPR move splitter): Do not split moves
14687 of vectors in GPRS if they are direct moves or quad word load or
14688 store moves.
14689
14690 * config/rs6000/rs6000-protos.h (rs6000_output_move_128bit): Add
14691 declaration.
14692 (direct_move_p): Likewise.
14693 (quad_load_store_p): Likewise.
14694
14695 * config/rs6000/rs6000.c (enum rs6000_reg_type): Simplify register
14696 classes into bins based on the physical register type.
14697 (reg_class_to_reg_type): Likewise.
14698 (IS_STD_REG_TYPE): Likewise.
14699 (IS_FP_VECT_REG_TYPE): Likewise.
14700 (reload_fpr_gpr): Arrays to determine what insn to use if we can
14701 use direct move instructions.
14702 (reload_gpr_vsx): Likewise.
14703 (reload_vsx_gpr): Likewise.
14704 (rs6000_init_hard_regno_mode_ok): Precalculate the register type
14705 information that is a simplification of register classes. Also
14706 precalculate direct move reload helpers.
14707 (direct_move_p): New function to return true if the operation can
14708 be done as a direct move instruciton.
14709 (quad_load_store_p): New function to return true if the operation
14710 is a quad memory operation.
14711 (rs6000_legitimize_address): If quad memory, only allow register
14712 indirect for TImode addresses.
14713 (rs6000_legitimate_address_p): Likewise.
14714 (enum reload_reg_type): Delete, replace with rs6000_reg_type.
14715 (rs6000_reload_register_type): Likewise.
14716 (register_to_reg_type): Return register type.
14717 (rs6000_secondary_reload_simple_move): New helper function for
14718 secondary reload and secondary memory needed to identify anything
14719 that is a simple move, and does not need reloading.
14720 (rs6000_secondary_reload_direct_move): New helper function for
14721 secondary reload to identify cases that can be done with several
14722 instructions via the direct move instructions.
14723 (rs6000_secondary_reload_move): New helper function for secondary
14724 reload to identify moves between register types that can be done.
14725 (rs6000_secondary_reload): Add support for quad memory operations
14726 and for direct move.
14727 (rs6000_secondary_memory_needed): Likewise.
14728 (rs6000_debug_secondary_memory_needed): Change argument names.
14729 (rs6000_output_move_128bit): New function to return the move to
14730 use for 128-bit moves, including knowing about the various
14731 limitations of quad memory operations.
14732
14733 * config/rs6000/vsx.md (vsx_mov<mode>): Add support for quad
14734 memory operations. call rs6000_output_move_128bit for the actual
14735 instruciton(s) to generate.
14736 (vsx_movti_64bit): Likewise.
14737
14738 * config/rs6000/rs6000.md (UNSPEC_P8V_FMRGOW): New unspec values.
14739 (UNSPEC_P8V_MTVSRWZ): Likewise.
14740 (UNSPEC_P8V_RELOAD_FROM_GPR): Likewise.
14741 (UNSPEC_P8V_MTVSRD): Likewise.
14742 (UNSPEC_P8V_XXPERMDI): Likewise.
14743 (UNSPEC_P8V_RELOAD_FROM_VSX): Likewise.
14744 (UNSPEC_FUSION_GPR): Likewise.
14745 (FMOVE128_GPR): New iterator for direct move.
22fc7d3d 14746 (f32_lv): New mode attribute for load/store of SFmode/SDmode values.
19be72ab
MM
14747 (f32_sv): Likewise.
14748 (f32_dm): Likewise.
14749 (zero_extend<mode>di2_internal1): Add support for power8 32-bit
14750 loads and direct move instructions.
14751 (zero_extendsidi2_lfiwzx): Likewise.
14752 (extendsidi2_lfiwax): Likewise.
14753 (extendsidi2_nocell): Likewise.
14754 (floatsi<mode>2_lfiwax): Likewise.
14755 (lfiwax): Likewise.
14756 (floatunssi<mode>2_lfiwzx): Likewise.
14757 (lfiwzx): Likewise.
14758 (fix_trunc<mode>_stfiwx): Likewise.
14759 (fixuns_trunc<mode>_stfiwx): Likewise.
14760 (mov<mode>_hardfloat, 32-bit floating point): Likewise.
14761 (mov<move>_hardfloat64, 64-bit floating point): Likewise.
14762 (parity<mode>2_cmpb): Set length/type attr.
14763 (unnamed shift right patterns, mov<mode>_internal2): Change type attr
14764 for 'mr.' to fast_compare.
14765 (bpermd_<mode>): Change type attr to popcnt.
14766 (p8_fmrgow_<mode>): New insns for power8 direct move support.
14767 (p8_mtvsrwz_1): Likewise.
14768 (p8_mtvsrwz_2): Likewise.
14769 (reload_fpr_from_gpr<mode>): Likewise.
14770 (p8_mtvsrd_1): Likewise.
14771 (p8_mtvsrd_2): Likewise.
14772 (p8_xxpermdi_<mode>): Likewise.
14773 (reload_vsx_from_gpr<mode>): Likewise.
14774 (reload_vsx_from_gprsf): Likewise.
14775 (p8_mfvsrd_3_<mode>): LIkewise.
14776 (reload_gpr_from_vsx<mode>): Likewise.
14777 (reload_gpr_from_vsxsf): Likewise.
14778 (p8_mfvsrd_4_disf): Likewise.
14779 (multi-word GPR splits): Do not split direct moves or quad memory
14780 operations.
14781
16876bdc
DM
147822013-06-10 David Malcolm <dmalcolm@redhat.com>
14783
14784 * tree-into-ssa.c (interesting_blocks): Make static.
14785
df8a1d28
JJ
147862013-06-10 Jakub Jelinek <jakub@redhat.com>
14787
14788 PR target/56564
14789 * varasm.c (align_variable): Don't use DATA_ALIGNMENT or
14790 CONSTANT_ALIGNMENT if !decl_binds_to_current_def_p (decl).
14791 Use DATA_ABI_ALIGNMENT for that case instead if defined.
14792 (get_variable_align): New function.
14793 (get_variable_section, emit_bss, emit_common,
14794 assemble_variable_contents, place_block_symbol): Use
14795 get_variable_align instead of DECL_ALIGN.
14796 (assemble_noswitch_variable): Add align argument, use it
14797 instead of DECL_ALIGN.
14798 (assemble_variable): Adjust caller. Use get_variable_align
14799 instead of DECL_ALIGN.
14800 * config/i386/i386.h (DATA_ALIGNMENT): Adjust x86_data_alignment
14801 caller.
14802 (DATA_ABI_ALIGNMENT): Define.
14803 * config/i386/i386-protos.h (x86_data_alignment): Adjust prototype.
14804 * config/i386/i386.c (x86_data_alignment): Add opt argument. If
14805 opt is false, only return the psABI mandated alignment increase.
14806 * config/c6x/c6x.h (DATA_ALIGNMENT): Renamed to...
14807 (DATA_ABI_ALIGNMENT): ... this.
14808 * config/mmix/mmix.h (DATA_ALIGNMENT): Renamed to...
14809 (DATA_ABI_ALIGNMENT): ... this.
14810 * config/mmix/mmix.c (mmix_data_alignment): Adjust function comment.
14811 * config/s390/s390.h (DATA_ALIGNMENT): Renamed to...
14812 (DATA_ABI_ALIGNMENT): ... this.
14813 * doc/tm.texi.in (DATA_ABI_ALIGNMENT): Document.
14814 * doc/tm.texi: Regenerated.
14815
57b29ca6
UB
148162013-06-10 Uros Bizjak <ubizjak@gmail.com>
14817
14818 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Also use
14819 cmp_code to construct REG_EQUAL note.
14820
3e56ed50
JJ
148212013-06-09 Jakub Jelinek <jakub@redhat.com>
14822
14823 PR target/57568
14824 * config/i386/i386.md (TARGET_READ_MODIFY_WRITE peepholes): Ensure
14825 that operands[2] doesn't overlap with operands[0].
14826
74fe2a1d
DE
148272013-06-09 David Edelsohn <dje.gcc@gmail.com>
14828 Jan Hubicka <jh@suse.cz>
14829
14830 * config/rs6000/rs6000.c (print_operand, 'z'): Remove historical
14831 hack to mark symbols as used.
14832
ed52a84e
VM
148332013-06-08 Vladimir Makarov <vmakarov@redhat.com>
14834
14835 PR rtl-optimization/57559
14836 * lra-constraints.c (process_alt_operands): Don't discourage
14837 memory with known offset for offsetable memory constraint.
14838 * lra.c (lra_emit_add): Exchange y and z for 2-op add insn.
14839
299316ed
EB
148402013-06-08 Eric Botcazou <ebotcazou@adacore.com>
14841
14842 * varasm.c (struct oc_local_state): Reorder fields.
14843 (output_constructor_bitfield): Replace OUTER parameter with BIT_OFFSET
14844 and adjust accordingly.
14845 (output_constructor): Reorder initialization code and adjust call to
14846 output_constructor_bitfield.
14847
88ac60d3
JH
148482013-06-07 Jan Hubicka <jh@suse.cz>
14849
14850 * symtab.c (symtab_resolve_alias): Do not remove alias attribute.
14851
4cdce1a8
DM
148522013-06-07 David Malcolm <dmalcolm@redhat.com>
14853
14854 * tree-object-size.c (unknown): Make const.
14855
b5e0425c
AK
148562013-06-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14857
14858 * config/s390/s390.md (cpu_facility): Add cpu_zarch.
14859 ("*movmem_short", "*clrmem_short", "*cmpmem_short): Use cpu_zarch
14860 for last alternative in the cpu_facility attribute.
14861
79678d04
KT
148622013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14863
14864 PR target/56315
14865 * config/arm/arm.md (*xordi3_insn): Change to insn_and_split.
14866 (xordi3): Change operand 2 constraint to arm_xordi_operand.
14867 * config/arm/arm.c (const_ok_for_dimode_op): Handle XOR.
14868 * config/arm/constraints.md (Dg): New constraint.
14869 * config/arm/neon.md (xordi3_neon): Remove.
14870 (neon_veor<mode>): Generate xordi3 instead of xordi3_neon.
14871 * config/arm/predicates.md (arm_xordi_operand): New predicate.
14872
b31ddbdb
KT
148732013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14874
14875 * config/arm/arm.md (anddi3_insn): Remove duplicate alternatives.
14876 Clean up alternatives.
14877
8f90b7d4
AM
148782013-06-07 Alan Modra <amodra@gmail.com>
14879
14880 * config/rs6000/rs6000.c (setup_incoming_varargs): Round up
14881 va_list_gpr_size.
14882
961ce119
AM
148832013-06-07 Alan Modra <amodra@gmail.com>
14884
14885 * varasm.c (force_const_mem): Assert mode is not VOID or BLK.
14886
33e49835
KT
148872013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14888
14889 * config/arm/constraints.md (Df): New constraint.
14890 * config/arm/arm.md (iordi3_insn): Use Df constraint instead of De.
14891 Correct length attribute for last two alternatives.
14892
acd17ae6
AM
148932013-06-07 Alan Modra <amodra@gmail.com>
14894
14895 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
14896 override user -mfp-in-toc.
14897 (offsettable_ok_by_alignment): Consider just the current access
14898 rather than the whole object, unless BLKmode. Handle
14899 CONSTANT_POOL_ADDRESS_P constants that lack a decl too.
14900 (use_toc_relative_ref): Allow CONSTANT_POOL_ADDRESS_P constants
14901 for -mcmodel=medium.
14902 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't
14903 override user -mfp-in-toc or -msum-in-toc. Default to
14904 -mno-fp-in-toc for -mcmodel=medium.
14905
73310b0e
DD
149062013-06-06 DJ Delorie <dj@redhat.com>
14907
14908 * config/rl78/rl78.c (rl78_valid_pointer_mode): New, implements
14909 TARGET_VALID_POINTER_MODE.
14910
0bd62dca 149112013-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
14912 Pat Haugen <pthaugen@us.ibm.com>
14913 Peter Bergner <bergner@vnet.ibm.com>
0bd62dca
MM
14914
14915 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
14916 Document new power8 builtins.
14917
14918 * config/rs6000/vector.md (and<mode>3): Add a clobber/scratch of a
14919 condition code register, to allow 128-bit logical operations to be
14920 done in the VSX or GPR registers.
14921 (nor<mode>3): Use the canonical form for nor.
14922 (eqv<mode>3): Add expanders for power8 xxleqv, xxlnand, xxlorc,
14923 vclz*, and vpopcnt* vector instructions.
14924 (nand<mode>3): Likewise.
14925 (orc<mode>3): Likewise.
14926 (clz<mode>2): LIkewise.
14927 (popcount<mode>2): Likewise.
14928
14929 * config/rs6000/predicates.md (int_reg_operand): Rework tests so
14930 that only the GPRs are recognized.
14931
14932 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
14933 support for new power8 builtins.
14934
14935 * config/rs6000/rs6000-builtin.def (xscvspdpn): Add new power8
14936 builtin functions.
14937 (xscvdpspn): Likewise.
14938 (vclz): Likewise.
14939 (vclzb): Likewise.
14940 (vclzh): Likewise.
14941 (vclzw): Likewise.
14942 (vclzd): Likewise.
14943 (vpopcnt): Likewise.
14944 (vpopcntb): Likewise.
14945 (vpopcnth): Likewise.
14946 (vpopcntw): Likewise.
14947 (vpopcntd): Likewise.
14948 (vgbbd): Likewise.
14949 (vmrgew): Likewise.
14950 (vmrgow): Likewise.
14951 (eqv): Likewise.
14952 (eqv_v16qi3): Likewise.
14953 (eqv_v8hi3): Likewise.
14954 (eqv_v4si3): Likewise.
14955 (eqv_v2di3): Likewise.
14956 (eqv_v4sf3): Likewise.
14957 (eqv_v2df3): Likewise.
14958 (nand): Likewise.
14959 (nand_v16qi3): Likewise.
14960 (nand_v8hi3): Likewise.
14961 (nand_v4si3): Likewise.
14962 (nand_v2di3): Likewise.
14963 (nand_v4sf3): Likewise.
14964 (nand_v2df3): Likewise.
14965 (orc): Likewise.
14966 (orc_v16qi3): Likewise.
14967 (orc_v8hi3): Likewise.
14968 (orc_v4si3): Likewise.
14969 (orc_v2di3): Likewise.
14970 (orc_v4sf3): Likewise.
14971 (orc_v2df3): Likewise.
14972
14973 * config/rs6000/rs6000.c (rs6000_option_override_internal): Only
14974 allow power8 quad mode in 64-bit.
14975 (rs6000_builtin_vectorized_function): Add support to vectorize
14976 ISA 2.07 count leading zeros, population count builtins.
14977 (rs6000_expand_vector_init): On ISA 2.07 use xscvdpspn to form
14978 V4SF vectors instead of xscvdpsp to avoid IEEE related traps.
14979 (builtin_function_type): Add vgbbd builtin function which takes an
14980 unsigned argument.
14981 (altivec_expand_vec_perm_const): Add support for new power8 merge
14982 instructions.
14983
14984 * config/rs6000/vsx.md (VSX_L2): New iterator for 128-bit types,
14985 that does not include TImdoe for use with 32-bit.
14986 (UNSPEC_VSX_CVSPDPN): Support for power8 xscvdpspn and xscvspdpn
14987 instructions.
14988 (UNSPEC_VSX_CVDPSPN): Likewise.
14989 (vsx_xscvdpspn): Likewise.
14990 (vsx_xscvspdpn): Likewise.
14991 (vsx_xscvdpspn_scalar): Likewise.
14992 (vsx_xscvspdpn_directmove): Likewise.
14993 (vsx_and<mode>3): Split logical operations into 32-bit and
14994 64-bit. Add support to do logical operations on TImode as well as
14995 VSX vector types. Allow logical operations to be done in either
14996 VSX registers or in general purpose registers in 64-bit mode. Add
14997 splitters if GPRs were used. For AND, add clobber of CCmode to
14998 allow use of ANDI on GPRs. Rewrite nor to use the canonical RTL
14999 encoding.
15000 (vsx_and<mode>3_32bit): Likewise.
15001 (vsx_and<mode>3_64bit): Likewise.
15002 (vsx_ior<mode>3): Likewise.
15003 (vsx_ior<mode>3_32bit): Likewise.
15004 (vsx_ior<mode>3_64bit): Likewise.
15005 (vsx_xor<mode>3): Likewise.
15006 (vsx_xor<mode>3_32bit): Likewise.
15007 (vsx_xor<mode>3_64bit): Likewise.
15008 (vsx_one_cmpl<mode>2): Likewise.
15009 (vsx_one_cmpl<mode>2_32bit): Likewise.
15010 (vsx_one_cmpl<mode>2_64bit): Likewise.
15011 (vsx_nor<mode>3): Likewise.
15012 (vsx_nor<mode>3_32bit): Likewise.
15013 (vsx_nor<mode>3_64bit): Likewise.
15014 (vsx_andc<mode>3): Likewise.
15015 (vsx_andc<mode>3_32bit): Likewise.
15016 (vsx_andc<mode>3_64bit): Likewise.
15017 (vsx_eqv<mode>3_32bit): Add support for power8 xxleqv, xxlnand,
15018 and xxlorc instructions.
15019 (vsx_eqv<mode>3_64bit): Likewise.
15020 (vsx_nand<mode>3_32bit): Likewise.
15021 (vsx_nand<mode>3_64bit): Likewise.
15022 (vsx_orc<mode>3_32bit): Likewise.
15023 (vsx_orc<mode>3_64bit): Likewise.
15024
15025 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Update comment.
15026
15027 * config/rs6000/altivec.md (UNSPEC_VGBBD): Add power8 vgbbd
15028 instruction.
15029 (p8_vmrgew): Add power8 vmrgew and vmrgow instructions.
15030 (p8_vmrgow): Likewise.
15031 (altivec_and<mode>3): Add clobber of CCmode to allow AND using
15032 GPRs to be split under VSX.
15033 (p8v_clz<mode>2): Add power8 count leading zero support.
15034 (p8v_popcount<mode>2): Add power8 population count support.
15035 (p8v_vgbbd): Add power8 gather bits by bytes by doubleword
15036 support.
15037
15038 * config/rs6000/rs6000.md (eqv<mode>3): Add support for powerp eqv
15039 instruction.
15040
15041 * config/rs6000/altivec.h (vec_eqv): Add defines to export power8
15042 builtin functions.
15043 (vec_nand): Likewise.
15044 (vec_vclz): Likewise.
15045 (vec_vclzb): Likewise.
15046 (vec_vclzd): Likewise.
15047 (vec_vclzh): Likewise.
15048 (vec_vclzw): Likewise.
15049 (vec_vgbbd): Likewise.
15050 (vec_vmrgew): Likewise.
15051 (vec_vmrgow): Likewise.
15052 (vec_vpopcnt): Likewise.
15053 (vec_vpopcntb): Likewise.
15054 (vec_vpopcntd): Likewise.
15055 (vec_vpopcnth): Likewise.
15056 (vec_vpopcntw): Likewise.
15057
37684c46
VM
150582013-06-06 Vladimir Makarov <vmakarov@redhat.com>
15059
15060 PR rtl-optimization/57468
15061 * config/i386/i386.c (inline_secondary_memory_needed): Ignore
15062 spilled pseudos.
15063
d89ae27c
VM
150642013-06-06 Vladimir Makarov <vmakarov@redhat.com>
15065
15066 PR rtl-optimization/57459
15067 * lra-constraints.c (update_ebb_live_info): Fix typo for operand
15068 type when setting live regs.
15069
3597e113
VM
150702013-06-06 Vladimir Makarov <vmakarov@redhat.com>
15071
15072 * config/s390/s390.opt (mlra): New option.
15073 * config/s390/s390.c (s390_decompose_address): Check displacement
15074 for all registers for LRA.
15075 (s390_secondary_reload): Don't used secondary reloads for LRA.
15076 (s390_lra_p): New function.
15077 (TARGET_LRA_P): Define.
15078 * config/s390/s390.md (*movmem_short, *clrmem_short): Change value
15079 of attribute cpu_facility to zarch for the last alternative.
15080 (*cmpmem_short): Ditto.
15081
01037aeb
EB
150822013-06-06 Eric Botcazou <ebotcazou@adacore.com>
15083
15084 * config/arm/arm.c (arm_r3_live_at_start_p): New predicate.
15085 (arm_compute_static_chain_stack_bytes): Use it. Tidy up.
15086 (arm_expand_prologue): Likewise.
15087
3371a64f
TJ
150882013-06-06 Teresa Johnson <tejohnson@google.com>
15089
15090 PR c++/53743
15091 * ifcvt.c (find_if_case_1): Replace BB_COPY_PARTITION with assert
15092 as this is now done by redirect_edge_and_branch_force.
15093 * function.c (thread_prologue_and_epilogue_insns): Insert new bb after
15094 barriers, and fix interaction with splitting.
15095 * emit-rtl.c (try_split): Copy REG_CROSSING_JUMP notes.
15096 * cfgcleanup.c (try_forward_edges): Fix early return value to properly
15097 reflect changes made in the routine.
15098 * bb-reorder.c (emit_barrier_after_bb): Move to cfgrtl.c.
15099 (fix_up_fall_thru_edges): Remove incorrect check for bb layout order
15100 since this is called in cfglayout mode, and replace partition fixup
15101 with assert as that is now done by force_nonfallthru_and_redirect.
15102 (add_reg_crossing_jump_notes): Handle the fact that some jumps may
15103 already be marked with region crossing note.
15104 (insert_section_boundary_note): Make non-static, gate on flag
15105 has_bb_partition, rewrite to also check for multiple partitions.
15106 (rest_of_handle_reorder_blocks): Remove call to
15107 insert_section_boundary_note, now done later during free_cfg.
15108 (duplicate_computed_gotos): Don't duplicate partition crossing edge.
15109 * bb-reorder.h (insert_section_boundary_note): Declare.
15110 * Makefile.in (cfgrtl.o): Depend on bb-reorder.h
15111 * cfgrtl.c (rest_of_pass_free_cfg): If partitions exist
15112 invoke insert_section_boundary_note.
15113 (try_redirect_by_replacing_jump): Remove unnecessary
15114 check for region crossing note.
15115 (fixup_partition_crossing): New function.
15116 (rtl_redirect_edge_and_branch): Fixup partition boundaries.
15117 (emit_barrier_after_bb): Move here from bb-reorder.c, handle insertion
15118 in non-cfglayout mode.
15119 (force_nonfallthru_and_redirect): Fixup partition boundaries,
15120 remove old code that tried to do this. Emit barrier correctly
15121 when we are in cfglayout mode.
15122 (last_bb_in_partition): New function.
15123 (rtl_split_edge): Correctly fixup partition boundaries.
15124 (commit_one_edge_insertion): Remove old code that tried to
15125 fixup region crossing edge since this is now handled in
15126 split_block, and set up insertion point correctly since
15127 block may now end in a jump.
15128 (verify_hot_cold_block_grouping): Guard against checking when not in
15129 linearized RTL mode.
15130 (rtl_verify_edges): Add checks for incorrect/missing REG_CROSSING_JUMP
15131 notes.
15132 (rtl_verify_flow_info_1): Move verify_hot_cold_block_grouping to
15133 rtl_verify_flow_info, so not called in cfglayout mode.
15134 (rtl_verify_flow_info): Move verify_hot_cold_block_grouping here.
15135 (fixup_reorder_chain): Remove old code that attempted to fixup region
15136 crossing note as this is now handled in force_nonfallthru_and_redirect.
15137 (duplicate_insn_chain): Don't duplicate switch section notes.
15138 (rtl_can_remove_branch_p): Remove unnecessary check for region crossing
15139 note.
15140 * basic-block.h (emit_barrier_after_bb): Declare.
15141
66071e10
KT
151422013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15143
15144 * config/arm/arm-fixed.md (add<mode>3,usadd<mode>3,ssadd<mode>3,
15145 sub<mode>3, ussub<mode>3, sssub<mode>3, arm_ssatsihi_shift,
15146 arm_usatsihi): Adjust alternatives for arm_restrict_it.
15147
0e26bf3d
KT
151482013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15149
15150 * config/arm/arm-ldmstm.ml: Set "predicable_short_it" to "no"
15151 where appropriate.
15152 * config/arm/ldmstm.md: Regenerate.
15153
12b4e7ef
KT
151542013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15155
15156 * config/arm/sync.md (atomic_loaddi_1):
15157 Disable predication for arm_restrict_it.
15158 (arm_load_exclusive<mode>): Likewise.
15159 (arm_load_exclusivesi): Likewise.
15160 (arm_load_exclusivedi): Likewise.
15161 (arm_load_acquire_exclusive<mode>): Likewise.
15162 (arm_load_acquire_exclusivesi): Likewise.
15163 (arm_load_acquire_exclusivedi): Likewise.
15164 (arm_store_exclusive<mode>): Likewise.
15165 (arm_store_exclusive<mode>): Likewise.
15166 (arm_store_release_exclusivedi): Likewise.
15167 (arm_store_release_exclusive<mode>): Likewise.
15168
15d16c8a
RB
151692013-06-06 Richard Biener <rguenther@suse.de>
15170
15171 * lto-streamer.h (enum LTO_tags): Move LTO_tree_pickle_reference
15172 after LTO_null.
15173 (lto_tag_is_tree_code_p): Adjust.
15174 (lto_tag_is_gimple_code_p): Likewise.
15175 (lto_gimple_code_to_tag): Likewise.
15176 (lto_tag_to_gimple_code): Likewise.
15177 (lto_tree_code_to_tag): Likewise.
15178 (lto_tag_to_tree_code): Likewise.
15179 * data-streamer.h (streamer_write_hwi_in_range): Use
15180 uhwi streaming to stream the normalized range.
15181 (streamer_read_hwi_in_range): Likewise.
15182
17a7fc37
KT
151832013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15184
15185 * config/arm/arm.md (enabled_for_depr_it): New attribute.
15186 (predicable_short_it): Likewise.
15187 (predicated): Likewise.
15188 (enabled): Handle above.
15189 (define_cond_exec): Set predicated attribute to yes.
15190
b57ca59b
MS
151912013-06-05 Mike Stump <mikestump@comcast.net>
15192
15193 * gdbinit.in (__FUNCTION__): Add.
15194
c1e183a9
UB
151952013-06-05 Uros Bizjak <ubizjak@gmail.com>
15196
15197 * config/alpha/alpha.c (alpha_emit_conditional_move): Swap all
15198 GE, GT, GEU and GTU compares, modulo DImode compares with zero.
15199
0378bddb
JH
152002013-06-05 Jan Hubicka <jh@suse.cz>
15201
15202 * varasm.c (mark_decl_referenced): Revert the removal until targets
15203 are fixed.
15204
8f8a2057
DE
152052013-06-05 David Edelsohn <dje.gcc@gmail.com>
15206
15207 * config/rs6000/rs6000.c (print_operand, 'z'): Use DECL_PRESERVE_P
15208 instead of mark_decl_referenced.
15209
edb983b2
JH
152102013-06-05 Jan Hubicka <jh@suse.cz>
15211
15212 * cgraph.c (cgraph_remove_node): Clear forced_by_abi.
15213 (cgraph_node_cannot_be_local_p_1): Honnor symbol.forced_by_abi
15214 and symtab_used_from_object_file_p.
15215 (cgraph_make_node_local_1): Clear forced_by_abi.
15216 (cgraph_can_remove_if_no_direct_calls_and): Use forced_by_abi
15217 * cgraph.h (symtab_node_base): Add forced_by_abi.
15218 (decide_is_variable_needed): Remove.
15219 (varpool_can_remove_if_no_refs): Honnor symbol.forced_by_abi.
15220 * cgraphunit.c (cgraph_decide_is_function_needed): Rename to ..
15221 (decide_is_symbol_needed): ... this one; handle symbols in general;
15222 always analyze virtuals; honnor forced_by_abi.
15223 (cgraph_finalize_function): Update.
15224 (varpool_finalize_decl): Update.
15225 (symbol_defined_and_needed): Remove.
15226 (analyze_functions): Update.
15227 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
15228 output_refs, input_overwrite_node): Handle forced_by_abi.
15229 * ipa.c (cgraph_address_taken_from_non_vtable_p): Rename to ...
15230 (address_taken_from_non_vtable_p): ... this one.
15231 (comdat_can_be_unshared_p_1): New function.
15232 (cgraph_comdat_can_be_unshared_p): Rename to ...
15233 (comdat_can_be_unshared_p): ... this one; handle symbols in general.
15234 (varpool_externally_visible_p): Use comdat_can_be_unshared_p.
15235 (function_and_variable_visibility): Clear forced_by_abi as needed.
15236 * trans-mem.c (ipa_tm_mark_forced_by_abi_node): New functoin.
15237 (ipa_tm_create_version_alias, ipa_tm_create_version): Update.
edb983b2
JH
15238 * symtab.c (dump_symtab_base): Dump forced_by_abi.
15239 * varpool.c (decide_is_variable_needed): Remove.
15240
9912dbe5
KT
152412013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15242
15243 * config/arm/arm.c (MAX_INSN_PER_IT_BLOCK): New macro.
15244 (arm_option_override): Override arm_restrict_it where appropriate.
15245 (thumb2_final_prescan_insn): Use MAX_INSN_PER_IT_BLOCK.
15246 * config/arm/arm.opt (mrestrict-it): New command-line option.
15247 * doc/invoke.texi: Document -mrestrict-it.
15248
34c136b6
DM
152492013-06-05 David Malcolm <dmalcolm@redhat.com>
15250
15251 * tsan.c (tsan_atomic_table): Make const.
15252
a367df53
RB
152532013-06-05 Richard Biener <rguenther@suse.de>
15254
15255 * tree-streamer.c (streamer_tree_cache_insert_1): Update the
15256 index associated with the tree we are supposed to replace.
15257 * tree-streamer-out.c (pack_ts_base_value_fields): Output
15258 TREE_ASM_WRITTEN as zero for everything but SSA names.
15259
70d51a19
DM
152602013-06-05 David Malcolm <dmalcolm@redhat.com>
15261
15262 * tree-ssa-structalias.c (call_stmt_vars): Make static.
15263
b9bd2075
JH
152642013-06-04 Jan Hubicka <jh@suse.cz>
15265
15266 * lto-cgraph.c (get_alias_symbol): Remove weakref sanity check.
15267 (input_node, input_varpool_node): Handle correctly external same
15268 body aliases.
15269 * ipa.c (symtab_remove_unreachable_nodes): Do not remove external
15270 nodes at ltrans stage.
15271
aaae719d
JH
152722013-06-04 Jan Hubicka <jh@suse.cz>
15273
15274 * ipa-inline.c (update_caller_keys): Fix availability test.
15275 (update_callee_keys): Likewise.
15276 * symtab.c (symtab_alias_ultimate_target): Make availaiblity logic
15277 to follow ELF standard.
15278
107eea2c
JU
152792013-06-04 Jürgen Urban <JuergenUrban@gmx.de>
15280
15281 * config.gcc (mipsr5900-*-elf*, mipsr5900el-*-elf*, mips64r5900-*-elf*)
15282 (mips64r5900el-*-elf*): New configurations.
15283 * config/mips/mips-cpus.def (r5900): New processor.
15284 * config/mips/mips-tables.opt: Regenerate.
15285 * config/mips/mips.c (mips_rtx_cost_data): Add an R5900 entry.
15286 (mips_issue_rate): Handle PROCESSOR_R5900.
15287 (mips_reorg_process_insns): Force reorder mode for the R5900.
15288 * config/mips/mips.h (TARGET_MIPS5900): Define.
15289 (ISA_HAS_CONDMOVE, ISA_HAS_PREFETCH, ISA_HAS_HILO_INTERLOCKS): Include
15290 TARGET_MIPS5900.
15291 (ISA_HAS_LOAD_DELAY, ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY): Exclude
15292 TARGET_MIPS5900.
15293 * config/mips/mips.md (processor): Add r5900.
15294 (MOVECC): Disallow CCmode conditions for TARGET_MIPS5900.
15295
b7342d25
IB
152962013-06-04 Ian Bolton <ian.bolton@arm.com>
15297
15298 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Call
15299 into function to generate MOVI instruction.
c1e183a9 15300 * config/aarch64/aarch64.c (aarch64_simd_container_mode): New function.
b7342d25
IB
15301 (aarch64_preferred_simd_mode): Turn into wrapper.
15302 (aarch64_output_scalar_simd_mov_immediate): New function.
15303 * config/aarch64/aarch64-protos.h: Add prototype for above.
15304
81c2dfb9
IB
153052013-06-04 Ian Bolton <ian.bolton@arm.com>
15306
15307 * config/aarch64/aarch64.c (simd_immediate_info): Remove
15308 element_char member.
15309 (sizetochar): Return signed char.
15310 (aarch64_simd_valid_immediate): Remove elchar and other
15311 unnecessary variables.
15312 (aarch64_output_simd_mov_immediate): Take rtx instead of &rtx.
15313 Calculate element_char as required.
15314 * config/aarch64/aarch64-protos.h: Update and move prototype
15315 for aarch64_output_simd_mov_immediate.
15316 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
15317 Update arguments.
15318
48063b9d
IB
153192013-06-04 Ian Bolton <ian.bolton@arm.com>
15320
15321 * config/aarch64/aarch64.c (simd_immediate_info): Struct to hold
15322 information completed by aarch64_simd_valid_immediate.
15323 (aarch64_legitimate_constant_p): Update arguments.
15324 (aarch64_simd_valid_immediate): Work with struct rather than many
15325 pointers.
15326 (aarch64_simd_scalar_immediate_valid_for_move): Update arguments.
15327 (aarch64_simd_make_constant): Update arguments.
15328 (aarch64_output_simd_mov_immediate): Work with struct rather than
15329 many pointers. Output immediate directly rather than as operand.
15330 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
15331 Update prototype.
15332 * config/aarch64/constraints.md (Dn): Update arguments.
15333
3ea63f60
IB
153342013-06-04 Ian Bolton <ian.bolton@arm.com>
15335
15336 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): No
15337 longer static.
15338 (aarch64_simd_immediate_valid_for_move): Remove.
15339 (aarch64_simd_scalar_immediate_valid_for_move): Update call.
15340 (aarch64_simd_make_constant): Update call.
15341 (aarch64_output_simd_mov_immediate): Update call.
15342 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
15343 Add prototype.
15344 * config/aarch64/constraints.md (Dn): Update call.
15345
d8edd899
IB
153462013-06-04 Ian Bolton <ian.bolton@arm.com>
15347
15348 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Change
15349 return type to bool for prototype.
15350 (aarch64_legitimate_constant_p): Check for true instead of not -1.
15351 (aarch64_simd_valid_immediate): Fix up each return to return a bool.
15352 (aarch64_simd_immediate_valid_for_move): Update retval for bool.
15353
44b20bb8
CM
153542013-06-04 Catherine Moore <clm@codesourcery.com>
15355
15356 * config/mips/mips.opt (meva): New.
c1e183a9 15357 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_eva.
44b20bb8
CM
15358 (ASM_SPEC): Handle -meva.
15359 * doc/invoke.texi (meva): Document.
15360
52befbd8
AM
153612013-06-04 Alan Modra <amodra@gmail.com>
15362
15363 * config/rs6000/rs6000.c (output_toc): Correct little-endian float
15364 constant output.
15365
aadaf24e
KT
153662013-06-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15367
15368 * rtl.def: Add extra fourth optional field to define_cond_exec.
15369 * gensupport.c (process_one_cond_exec): Process attributes from
15370 define_cond_exec.
15371 * doc/md.texi: Document fourth field in define_cond_exec.
15372
0cd9e9ee
EB
153732013-06-04 Eric Botcazou <ebotcazou@adacore.com>
15374
15375 * expmed.c (extract_bit_field_1): In the larger-than-a-word case, factor
15376 out the processing order as in store_bit_field_1.
15377
cb0f665d
JH
153782013-06-04 Jan Hubicka <jh@suse.cz>
15379
15380 PR middle-end/57500
15381 * cgraphunit.c (cgraph_process_same_body_aliases): Create
15382 non-VAR_DECL node if it does not exist yet.
15383
53984b9b
RS
153842013-06-03 Richard Sandiford <rdsandiford@googlemail.com>
15385
15386 * config.gcc (mipsisa64sr71k-*-elf*, mipsisa64sb1-*-elf*)
15387 (mipsisa64sb1el-*-elf*, mips64-*-elf*, mips64el-*-elf*)
15388 (mips64orion-*-elf*, mips64orionel-*-elf*): Remove
15389 target_cpu_default setting.
15390
5d318fd4
TJ
153912013-06-03 Teresa Johnson <tejohnson@google.com>
15392
15393 * dumpfile.c (opt_info_switch_p): Change -fopt-info
15394 default to -fopt-info=optimized instead of all.
15395 * doc/invoke.texi: Ditto.
15396 * tree-vectorizer.c (vectorize_loops): Emit loop vectorization
15397 success under MSG_OPTIMIZED_LOCATIONS, and use dump_printf_loc.
15398 (execute_vect_slp): Emit BB vectorization success under
15399 MSG_OPTIMIZED_LOCATIONS.
15400 * tree-vect-slp.c (vect_slp_transform_bb): Change
15401 MSG_OPTIMIZED_LOCATIONS to MSG_NOTE.
15402 * tree-vect-loop.c (vect_transform_loop): Ditto.
15403
ec3af349
JM
154042013-06-03 Jason Merrill <jason@redhat.com>
15405
15406 PR c++/57415
15407 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
15408 Use TARGET_EXPR for C++.
15409
1baf9159
JJ
154102013-06-03 Jakub Jelinek <jakub@redhat.com>
15411
15412 PR rtl-optimization/57268
0cd9e9ee 15413 * sched-deps.c (sched_analyze_2): Don't flush_pending_lists
1baf9159
JJ
15414 if DEBUG_INSN_P (insn).
15415
15416 Reapply
15417 2013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
15418
15419 PR rtl-optimization/57268
15420 * sched-deps.c (sched_analyze_2): Flush dependence lists if
15421 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
15422
0f1d3965
YR
154232013-06-03 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
15424
15425 * config/i386/i386.c (ix86_lea_outperforms): Fix formatting.
15426 (ix86_avoid_lea_for_addr): Likewise.
15427 (exact_dependency_1): Likewise.
15428 (ix86_adjust_cost): Likewise.
15429 (swap_top_of_ready_list): Fix formatting and !reload_completed check
15430 removed.
15431 (do_reorder_for_imul): Fix typo, formatting and
15432 !reload_completed check removed.
15433 (ix86_sched_reorder): Fix typo and formatting.
15434 (fold_builtin_cpu): Move M_INTEL_SLM at the end of processor types
15435 list.
15436
3bc30db4
SN
154372013-06-03 Sofiane Naci <sofiane.naci@arm.com>
15438
15439 * config/aarch64/aarch64.md (*movdi_aarch64): Define "simd" attribute.
15440
19cc6fac
EB
154412013-06-03 Eric Botcazou <ebotcazou@adacore.com>
15442
15443 * varasm.c (output_constant) <CONSTRUCTOR>: Minor formatting tweak.
15444 <STRING_CST>: Likewise.
15445 <VECTOR_CST>: Likewise.
15446
c68a6e08
JW
154472013-06-01 Janus Weil <janus@gcc.gnu.org>
15448 Mikael Morin <mikael@gcc.gnu.org>
15449
15450 * configure.ac: Add AC_HEADER_TIOCGWINSZ macro.
15451 * config.in: Regenerated.
15452 * configure: Regenerated.
15453
38e55e5c
JH
154542013-06-01 Jan Hubicka <jh@suse.cz>
15455
15456 PR middle-end/57366
15457 * cgraphunit.c (compile): When weakref is not supported,
15458 set up transparent aliases before final output pass.
15459 * varasm.c (assemble_alias): Do not try to do it here.
15460
eb51d2ff
JH
154612013-06-01 Jan Hubicka <jh@suse.cz>
15462
15463 PR middle-end/57467
15464 * passes.c (for_per_function): Skip unanalyzed functions.
15465
40a7fe1e
JH
154662013-06-01 Jan Hubicka <jh@suse.cz>
15467
15468 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Rename to ...
15469 (lto_symtab_merge_symbols_1): ... this one.
15470 (lto_symtab_merge_cgraph_nodes): Rename to ...
15471 (lto_symtab_merge_symbols): ... this one; simplify.
15472 * cgraph.c (same_body_aliases_done): Rename to ...
15473 (cpp_implicit_aliases_done): ... this one.
15474 (cgraph_create_function_alias): Update.
15475 (cgraph_same_body_alias): Update.
c1e183a9 15476 (dump_cgraph_node): Remove alias dumping; simplify thunk dumping.
40a7fe1e 15477 (verify_edge_corresponds_to_fndecl): Simplify.
c1e183a9 15478 * cgraph.h (symtab_node_base): Add cpp_implicit_alias, alias_target.
40a7fe1e
JH
15479 (cgraph_node): Remove same_body_alias.
15480 (varpool_node): Remove alias_of and extra_name_alias.
15481 (same_body_aliases_done): Rename to ..
15482 (cpp_implicit_aliases_done): ... this one.
15483 (symtab_alias_ultimate_target): Add default parameter.
15484 (symtab_resolve_alias): New function.
15485 (fixup_same_cpp_alias_visibility): Declare.
15486 (cgraph_function_node): Add default parameter.
15487 (cgraph_node_asm_name): Likewise.
15488 (cgraph_function_or_thunk_node): Add default parameter; do
15489 not ICE when it is NULL.
15490 (varpool_variable_node): Likewise.
15491 * tree-emutls.c (create_emultls_var): Update.
15492 (ipa_lower_emutls): Update.
15493 * cgraphunit.c (cgraph_decide_is_function_needed): Update.
15494 (cgraph_reset_node): Reset alias info.
15495 (cgraph_finalize_function): Update.
15496 (fixup_same_cpp_alias_visibility): Move to symtab.c.
15497 (analyze_function): Simplify.
15498 (cgraph_process_same_body_aliases): Simplify.
15499 (analyze_functions): Fixup same body aliases.
15500 (handle_alias_pairs): Simplify.
15501 (assemble_thunk): Update.
15502 (assemble_thunks_and_aliases): Update.
15503 (output_weakrefs): Rewrite.
15504 * lto-cgraph.c (lto_output_node): Rewrite alias handling.
15505 (lto_output_varpool_node): Likewise.
15506 (compute_ltrans_boundary): Remve assert.
15507 (get_alias_symbol): New functoin.
15508 (input_node): Rewrite alias handling.
15509 (input_varpool_node): Likewise.
15510 * ipa-pure-const.c (propagate_pure_const): Fix formating.
15511 * ipa.c (process_references): Handle weakrefs correctly.
15512 (symtab_remove_unreachable_nodes): Likewise.
15513 * trans-mem.c (get_cg_data): Update.
15514 (ipa_tm_create_version_alias): Update.
15515 (ipa_tm_execute): Update.
15516 * symtab.c (dump_symtab_base): Dump aliases.
15517 (verify_symtab_base): Verify aliases.
15518 (symtab_node_availability): New function.
15519 (symtab_alias_ultimate_target): Simplify.
15520 (fixup_same_cpp_alias_visibility): Move here from cgraphunit.c;
15521 handle all the fixup cases.
15522 (symtab_resolve_alias): New function.
15523 * passes.c (ipa_write_summaries): Handle weakrefs.
15524 * varpool.c (varpool_analyze_node): Simplify.
15525 (assemble_aliases): Update.
15526 (varpool_create_variable_alias): Simplify.
15527 (varpool_extra_name_alias): Simplify.
15528 * lto-streamer.h (lto_symtab_merge_cgraph_nodes): Rename to...
15529 (lto_symtab_merge_symbols): ... this one.
15530
21759881
DT
155312013-06-01 Dinar Temirbulatov <dinar@kugelworks.com>
15532
15533 Revert
15534 PR rtl-optimization/57268
15535 * sched-deps.c (sched_analyze_2): Flush dependence lists if
15536 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
15537
daf4e940
TB
155382013-06-01 Tobias Burnus <burnus@net-b.de>
15539
15540 Partially reverted:
15541 2013-05-31 Tobias Burnus <burnus@net-b.de>
15542
15543 PR middle-end/57073
15544 * tree-ssa-math-opts.c (execute_cse_sincos): Move check
15545 further up.
15546
c359d8d0
DT
155472013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
15548
15549 PR rtl-optimization/57268
15550 * sched-deps.c (sched_analyze_2): Flush dependence lists if
15551 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
15552
4172215d
EB
155532013-05-31 Eric Botcazou <ebotcazou@adacore.com>
15554
15555 * config/rs6000/predicates.md (rs6000_cbranch_operator): Accept some
15556 unordered comparison operators when -fno-trapping-math is in effect
15557 on the e500.
15558 * config/rs6000/rs6000.c (rs6000_generate_compare): Remove dead code
15559 and implement unordered comparison operators properly on the e500.
15560
a8c50132
EB
155612013-05-31 Eric Botcazou <ebotcazou@adacore.com>
15562
15563 * simplify-rtx.c (simplify_byte_swapping_operation): Use proper macro
15564 for constant scalar integers.
15565 (simplify_relational_operation_1): Likewise.
15566
44626634
SB
155672013-05-31 Segher Boessenkool <segher@kernel.crashing.org>
15568
15569 * config/rs6000/rs6000-opts.h (enum processor_type): Reorder.
15570 * config/rs6000/rs6000.md (cpu): Reorder. Split long line.
15571 Fix comment.
15572
55805e54
YR
155732013-05-31 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
15574 Igor Zamyatin <igor.zamyatin@intel.com>
15575
15576 Silvermont (SLM) architecture performance tuning.
15577 * config/i386/i386.h (enum ix86_tune_indices): Add
15578 X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS.
15579 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS): New define.
15580
15581 * config/i386/i386.c (initial_ix86_tune_features)
15582 <X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS>: Initialize.
15583 (ix86_lea_outperforms): Handle Silvermont tuning.
15584 (ix86_avoid_lea_for_add): Add new argument to ix86_lea_outperforms
15585 call.
15586 (ix86_use_lea_for_mov): Likewise.
15587 (ix86_avoid_lea_for_addr): Likewise.
15588 (ix86_lea_for_add_ok): Likewise.
15589 (exact_dependency_1): New function.
15590 (exact_store_load_dependency): Likewise.
15591 (ix86_adjust_cost): Handle Silvermont tuning.
15592 (do_reoder_for_imul): Likewise.
15593 (swap_top_of_ready_list): New function.
15594 (ix86_sched_reorder): Changed to handle Silvermont tuning.
15595
15596 * config/i386/i386.md (peepholes that split memory operand in fp
15597 converts): New.
15598
e19c9de2
MS
155992013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
15600
15601 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
15602 Remove un-necessary braces.
15603
38e6c9a6
MS
156042013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
15605
15606 * config/aarch64/aarch64.c (aarch64_classify_symbol):
15607 Use SYMBOL_TINY_ABSOLUTE for AARCH64_CMODEL_TINY_PIC.
15608
e3530904
TB
156092013-05-31 Tobias Burnus <burnus@net-b.de>
15610
15611 PR middle-end/57073
c1e183a9 15612 * tree-ssa-math-opts.c (execute_cse_sincos): Move check further up.
e3530904 15613
b6af05a9
KT
156142013-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15615
15616 PR target/56315
15617 * config/arm/arm.c (const_ok_for_dimode_op): Handle IOR.
15618 * config/arm/arm.md (*iordi3_insn): Change to insn_and_split.
15619 * config/arm/neon.md (iordi3_neon): Remove.
15620 (neon_vorr<mode>): Generate iordi3 instead of iordi3_neon.
15621 * config/arm/predicates.md (imm_for_neon_logic_operand):
15622 Move to earlier in the file.
15623 (neon_logic_op2): Likewise.
15624 (arm_iordi_operand_neon): New predicate.
15625
f800c166
RB
156262013-05-31 Richard Biener <rguenther@suse.de>
15627
15628 PR tree-optimization/57478
15629 PR tree-optimization/57453
15630 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Uses in PHI nodes
15631 are life as well.
15632
e571fa59
KP
156332013-05-31 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
15634
15635 * config/rl78/rl78.md (mulqi3,mulhi3): New define_expands.
15636 (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): New define_insns.
15637
0fa6e0ef
TB
156382013-05-30 Tobias Burnus <burnus@net-b.de>
15639 Thomas Koenig <tkoenig@gcc.gnu.org>
15640
15641 PR middle-end/57073
15642 * tree-ssa-math-opts.c (execute_cse_sincos): Optimize
15643 powi (-1.0, k) to (k & 1) ? -1.0 : 1.0.
15644
4688ddf5
SB
156452013-05-30 Steven Bosscher <steven@gcc.gnu.org>
15646
0fa6e0ef 15647 * rtlanal.c (tablejump_p): Expect table and label to be adjacent.
4688ddf5 15648
3b9ceb4b
VM
156492013-05-30 Vladimir Makarov <vmakarov@redhat.com>
15650
15651 * target.def (register_usage_leveling_p): New hook.
15652 * targhooks.c (default_register_usage_leveling_p): New.
15653 * targhooks.h (default_register_usage_leveling_p): New prototype.
15654 * lra-assigns.c (register_usage_leveling_p): Use the hook.
15655 * doc/tm.texi.in (TARGET_REGISTER_USAGE_LEVELING_P): New hook.
15656 * doc/tm.texi: Update.
15657 * config/i386/i386.c (TARGET_REGISTER_USAGE_LEVELING_P): Define.
15658
65f9e789
IB
156592013-05-30 Ian Bolton <ian.bolton@arm.com>
15660
15661 * config/aarch64/aarch64.md (insv<mode>): New define_expand.
15662 (*insv_reg<mode>): New define_insn.
15663
12211b99 156642013-05-30 Joern Rennecke <joern.rennecke@embecosm.com>
ca035367
JR
15665
15666 PR rtl-optimization/57439
15667 * postreload.c (move2add_valid_value_p): Check that we have
15668 a zero subreg_regno_offset when accessing the register in
15669 the requested mode.
15670
0b871ccf
YR
156712013-05-30 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
15672 Igor Zamyatin <igor.zamyatin@intel.com>
15673
15674 Silvermont (SLM) architecture pipeline model, tuning and
15675 insn selection.
15676 * config.gcc: Add slm config options and target.
15677
15678 * config/i386/slm.md: New.
15679
15680 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
15681
f43245d1 15682 * config/i386/i386-c.c (ix86_target_macros_internal): New case
0b871ccf
YR
15683 PROCESSOR_SLM.
15684 (ix86_target_macros_internal): Likewise.
15685
f43245d1 15686 * config/i386/i386.c (slm_cost): New cost.
0b871ccf
YR
15687 (m_SLM): New macro flag.
15688 (initial_ix86_tune_features): Set m_SLM.
15689 (x86_accumulate_outgoing_args): Likewise.
15690 (x86_arch_always_fancy_math_387): Likewise.
15691 (processor_target_table): Add slm cost.
15692 (cpu_names): Add slm cpu name.
15693 (x86_option_override_internal): Set SLM ISA.
15694 (ix86_issue_rate): New case PROCESSOR_SLM.
15695 (ia32_multipass_dfa_lookahead): Likewise.
15696 (fold_builtin_cpu): Add slm.
15697
15698 * config/i386/i386.h (TARGET_SLM): New target macro.
15699 (target_cpu_default): Add TARGET_CPU_DEFAULT_slm.
15700 (processor_type): Add PROCESSOR_SLM.
15701
15702 * config/i386/i386.md (cpu): Add new value "slm".
15703 (slm.md): Include slm.md.
15704
24d5b097
XG
157052013-05-30 Bernd Schmidt <bernds@codesourcery.com>
15706 Zhenqiang Chen <zhenqiang.chen@linaro.org>
15707
15708 * config/arm/arm-protos.h: Add and update function protos.
15709 * config/arm/arm.c (use_simple_return_p): New added.
15710 (thumb2_expand_return): Check simple_return flag.
15711 * config/arm/arm.md: Add simple_return and conditional simple_return.
15712 * config/arm/iterators.md: Add iterator for return and simple_return.
15713
c1cccc15
ZC
157142013-05-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
15715
15716 * config/arm/arm.c (arm_add_cfa_adjust_cfa_note): New added.
15717 (arm_emit_multi_reg_pop): Add REG_CFA_ADJUST_CFA notes.
15718 (arm_emit_vfp_multi_reg_pop): Likewise.
15719 (thumb2_emit_ldrd_pop): Likewise.
15720 (arm_expand_epilogue): Add misc REG_CFA notes.
15721 (arm_unwind_emit): Skip REG_CFA_ADJUST_CFA and REG_CFA_RESTORE.
15722
3a4f280b
LC
157232013-05-29 Lawrence Crowl <crowl@google.com>
15724
15725 * config/arm/t-arm: Update for below.
15726
15727 * config/arm/arm.c (arm_libcall_uses_aapcs_base::libcall_htab):
15728 Change type to hash_table. Update dependent calls and types.
15729
15730 * config/i386/t-cygming: Update for below.
15731
15732 * config/i386/t-interix: Update for below.
15733
15734 * config/i386/winnt.c (i386_pe_section_type_flags::htab):
15735 Change type to hash_table. Update dependent calls and types.
15736 (i386_find_on_wrapper_list::wrappers): Likewise.
15737
15738 * config/ia64/t-ia64: Update for below.
15739
15740 * config/ia64/ia64.c (bundle_state_table):
15741 Change type to hash_table. Update dependent calls and types.
15742
15743 * config/mips/mips.c (mips_reorg_process_insns::htab):
15744 Change type to hash_table. Update dependent calls and types.
15745
15746 * config/sol2.c (solaris_comdat_htab):
15747 Change type to hash_table. Update dependent calls and types.
15748
15749 * config/t-sol2: Update for above.
15750
1388a0e3
TJ
157512013-05-29 Teresa Johnson <tejohnson@google.com>
15752
15753 * passes.c (dump_passes): Use FOR_EACH_FUNCTION since
15754 functions are not yet marked as defined.
15755
a5965b52 157562013-05-29 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
15757 Pat Haugen <pthaugen@us.ibm.com>
15758 Peter Bergner <bergner@vnet.ibm.com>
a5965b52
MM
15759
15760 * config/rs6000/vector.md (VEC_I): Add support for new power8 V2DI
15761 instructions.
15762 (VEC_A): Likewise.
15763 (VEC_C): Likewise.
15764 (vrotl<mode>3): Likewise.
15765 (vashl<mode>3): Likewise.
15766 (vlshr<mode>3): Likewise.
15767 (vashr<mode>3): Likewise.
15768
15769 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
15770 support for power8 V2DI builtins.
15771
15772 * config/rs6000/rs6000-builtin.def (abs_v2di): Add support for
15773 power8 V2DI builtins.
15774 (vupkhsw): Likewise.
15775 (vupklsw): Likewise.
15776 (vaddudm): Likewise.
15777 (vminsd): Likewise.
15778 (vmaxsd): Likewise.
15779 (vminud): Likewise.
15780 (vmaxud): Likewise.
15781 (vpkudum): Likewise.
15782 (vpksdss): Likewise.
15783 (vpkudus): Likewise.
15784 (vpksdus): Likewise.
15785 (vrld): Likewise.
15786 (vsld): Likewise.
15787 (vsrd): Likewise.
15788 (vsrad): Likewise.
15789 (vsubudm): Likewise.
15790 (vcmpequd): Likewise.
15791 (vcmpgtsd): Likewise.
15792 (vcmpgtud): Likewise.
15793 (vcmpequd_p): Likewise.
15794 (vcmpgtsd_p): Likewise.
15795 (vcmpgtud_p): Likewise.
15796 (vupkhsw): Likewise.
15797 (vupklsw): Likewise.
15798 (vaddudm): Likewise.
15799 (vmaxsd): Likewise.
15800 (vmaxud): Likewise.
15801 (vminsd): Likewise.
15802 (vminud): Likewise.
15803 (vpksdss): Likewise.
15804 (vpksdus): Likewise.
15805 (vpkudum): Likewise.
15806 (vpkudus): Likewise.
15807 (vrld): Likewise.
15808 (vsld): Likewise.
15809 (vsrad): Likewise.
15810 (vsrd): Likewise.
15811 (vsubudm): Likewise.
15812
15813 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
15814 support for power8 V2DI instructions.
15815
15816 * config/rs6000/altivec.md (UNSPEC_VPKUHUM): Add support for
15817 power8 V2DI instructions. Combine pack and unpack insns to use an
15818 iterator for each mode. Check whether a particular mode supports
15819 Altivec instructions instead of just checking TARGET_ALTIVEC.
15820 (UNSPEC_VPKUWUM): Likewise.
15821 (UNSPEC_VPKSHSS): Likewise.
15822 (UNSPEC_VPKSWSS): Likewise.
15823 (UNSPEC_VPKUHUS): Likewise.
15824 (UNSPEC_VPKSHUS): Likewise.
15825 (UNSPEC_VPKUWUS): Likewise.
15826 (UNSPEC_VPKSWUS): Likewise.
15827 (UNSPEC_VPACK_SIGN_SIGN_SAT): Likewise.
15828 (UNSPEC_VPACK_SIGN_UNS_SAT): Likewise.
15829 (UNSPEC_VPACK_UNS_UNS_SAT): Likewise.
15830 (UNSPEC_VPACK_UNS_UNS_MOD): Likewise.
15831 (UNSPEC_VUPKHSB): Likewise.
15832 (UNSPEC_VUNPACK_HI_SIGN): Likewise.
15833 (UNSPEC_VUNPACK_LO_SIGN): Likewise.
15834 (UNSPEC_VUPKHSH): Likewise.
15835 (UNSPEC_VUPKLSB): Likewise.
15836 (UNSPEC_VUPKLSH): Likewise.
15837 (VI2): Likewise.
15838 (VI_char): Likewise.
15839 (VI_scalar): Likewise.
15840 (VI_unit): Likewise.
15841 (VP): Likewise.
15842 (VP_small): Likewise.
15843 (VP_small_lc): Likewise.
15844 (VU_char): Likewise.
15845 (add<mode>3): Likewise.
15846 (altivec_vaddcuw): Likewise.
15847 (altivec_vaddu<VI_char>s): Likewise.
15848 (altivec_vadds<VI_char>s): Likewise.
15849 (sub<mode>3): Likewise.
15850 (altivec_vsubcuw): Likewise.
15851 (altivec_vsubu<VI_char>s): Likewise.
15852 (altivec_vsubs<VI_char>s): Likewise.
15853 (altivec_vavgs<VI_char>): Likewise.
15854 (altivec_vcmpbfp): Likewise.
15855 (altivec_eq<mode>): Likewise.
15856 (altivec_gt<mode>): Likewise.
15857 (altivec_gtu<mode>): Likewise.
15858 (umax<mode>3): Likewise.
15859 (smax<mode>3): Likewise.
15860 (umin<mode>3): Likewise.
15861 (smin<mode>3): Likewise.
15862 (altivec_vpkuhum): Likewise.
15863 (altivec_vpkuwum): Likewise.
15864 (altivec_vpkshss): Likewise.
15865 (altivec_vpkswss): Likewise.
15866 (altivec_vpkuhus): Likewise.
15867 (altivec_vpkshus): Likewise.
15868 (altivec_vpkuwus): Likewise.
15869 (altivec_vpkswus): Likewise.
15870 (altivec_vpks<VI_char>ss): Likewise.
15871 (altivec_vpks<VI_char>us): Likewise.
15872 (altivec_vpku<VI_char>us): Likewise.
15873 (altivec_vpku<VI_char>um): Likewise.
15874 (altivec_vrl<VI_char>): Likewise.
15875 (altivec_vsl<VI_char>): Likewise.
15876 (altivec_vsr<VI_char>): Likewise.
15877 (altivec_vsra<VI_char>): Likewise.
15878 (altivec_vsldoi_<mode>): Likewise.
15879 (altivec_vupkhsb): Likewise.
15880 (altivec_vupkhs<VU_char>): Likewise.
15881 (altivec_vupkls<VU_char>): Likewise.
15882 (altivec_vupkhsh): Likewise.
15883 (altivec_vupklsb): Likewise.
15884 (altivec_vupklsh): Likewise.
15885 (altivec_vcmpequ<VI_char>_p): Likewise.
15886 (altivec_vcmpgts<VI_char>_p): Likewise.
15887 (altivec_vcmpgtu<VI_char>_p): Likewise.
15888 (abs<mode>2): Likewise.
15889 (vec_unpacks_hi_v16qi): Likewise.
15890 (vec_unpacks_hi_v8hi): Likewise.
15891 (vec_unpacks_lo_v16qi): Likewise.
15892 (vec_unpacks_hi_<VP_small_lc>): Likewise.
15893 (vec_unpacks_lo_v8hi): Likewise.
15894 (vec_unpacks_lo_<VP_small_lc>): Likewise.
15895 (vec_pack_trunc_v8h): Likewise.
15896 (vec_pack_trunc_v4si): Likewise.
15897 (vec_pack_trunc_<mode>): Likewise.
15898
15899 * config/rs6000/altivec.h (vec_vaddudm): Add defines for power8
15900 V2DI builtins.
15901 (vec_vmaxsd): Likewise.
15902 (vec_vmaxud): Likewise.
15903 (vec_vminsd): Likewise.
15904 (vec_vminud): Likewise.
15905 (vec_vpksdss): Likewise.
15906 (vec_vpksdus): Likewise.
15907 (vec_vpkudum): Likewise.
15908 (vec_vpkudus): Likewise.
15909 (vec_vrld): Likewise.
15910 (vec_vsld): Likewise.
15911 (vec_vsrad): Likewise.
15912 (vec_vsrd): Likewise.
15913 (vec_vsubudm): Likewise.
15914 (vec_vupkhsw): Likewise.
15915 (vec_vupklsw): Likewise.
15916
e70670cf
JH
159172013-05-29 Jan Hubicka <jh@suse.cz>
15918
15919 * cgraph.h (symtab_node_base): Add definition, alias and analyzed
15920 flags; reorder rest of fields in more consistent way.
15921 (varpool_node): Remove analyzed, finalized and alias.
15922 (cgraph_ndoe): Likewise.
15923 (symtab_alias_ultimate_target): New function.
15924 (cgraph_function_node): Move offline.
15925 (cgraph_reset_node): Declare.
15926 (cgraph_comdat_can_be_unshared_p): Remove.
15927 (varpool_remove_initializer): Declare.
15928 (varpool_first_defined_variable, varpool_next_defined_variable
15929 cgraph_first_defined_function, cgraph_next_defined_function): Update.
15930 (cgraph_function_with_gimple_body_p): Update.
15931 (varpool_all_refs_explicit_p): Update.
15932 (symtab_alias_target): New function.
15933 (cgraph_alias_aliased_node, varpool_alias_aliased_node): Rename to ...
15934 (cgraph_alias_target, varpool_alias_target): .. this one; simplify.
c1e183a9
UB
15935 (cgraph_function_or_thunk_node): Simplify using
15936 symtab_alias_ultimate_target.
e70670cf
JH
15937 (varpool_variable_node): Likewise.
15938 * cgraph.c (cgraph_create_function_alias): Update.
15939 (cgraph_add_thunk): Update.
15940 (cgraph_remove_node): Update.
15941 (dump_cgraph_node): Do not dump removed flags.
15942 (cgraph_function_body_availability): Update.
15943 (cgraph_propagate_frequency): Update.
15944 (verify_cgraph_node): Check sanity of local flag.
15945 (cgraph_function_node): Move here from cgraph.h; revamp for
15946 cgraph_function_or_thunk_node.
15947 * lto-symtab.c (lto_varpool_replace_node): Update.
15948 (lto_symtab_resolve_can_prevail_p): Update.
15949 (lto_symtab_merge_cgraph_nodes): Update.
15950 * ipa-cp.c (determine_versionability, initialize_node_lattices,
15951 propagate_constants_accross_call, devirtualization_time_bonus,
15952 ipcp_propagate_stage): Update.
15953 * tree-emutls.c (create_emultls_var, ipa_lower_emutls): Update.
c1e183a9
UB
15954 * ipa-inline-transform.c (clone_inlined_nodes,
15955 preserve_function_body_p): Update.
e70670cf
JH
15956 * ipa-reference.c (propagate): Update.
15957 (write_node_summary_p): Update.
15958 * toplev.c (wrapup_global_declaration_2): Update.
15959 * cgraphunit.c (cgraph_analyze_function): Rename to ...
15960 (analyze_function) ... this one.
15961 (cgraph_process_new_functions): Update.
15962 (cgraph_reset_node): Export.
15963 (cgraph_finalize_function): Update.
15964 (cgraph_add_new_function): Update.
15965 (process_function_and_variable_attributes): Update.
15966 (varpool_finalize_decl): Update.
15967 (symbol_finalized): Remove.
15968 (symbol_finalized_and_needed): Rename to ...
15969 (symbol_defined_and_needed): ... update.
15970 (cgraph_analyze_functions): Update.
15971 (handle_alias_pairs): Update.
15972 (mark_functions_to_output): Update.
15973 (assemble_thunk): Update.
15974 (output_in_order): Update.
15975 (output_weakrefs): Update.
15976 (finalize_compilation_unit): Update.
15977 * lto-cgraph.c (reachable_from_other_partition_p, lto_output_node,
15978 lto_output_varpool_node, compute_ltrans_boundary, input_overwrite_node,
15979 input_node, input_varpool_node): Update.
15980 * dbxout.c (dbxout_expand_expr): Update.
15981 * cgraphclones.c (cgraph_clone_node): Update.
15982 (cgraph_copy_node_for_versioning): Update.
15983 (cgraph_materialize_clone): Update.
15984 (cgraph_materialize_all_clones): Update.
15985 * ipa-pure-const.c (analyze_function, pure_const_write_summary,
15986 propagate_pure_const, propagate_nothrow): Update.
15987 * lto-streamer-out.c (lto_output, write_symbol): Update.
15988 * ipa-utils.c (ipa_reverse_postorder): Update.
15989 * ipa-inline.c (can_inline_edge_p): Update.
15990 (update_caller_keys, ipa_inline): Update.
15991 * dwarf2out.c (reference_to_unused,
15992 premark_types_used_by_global_vars_helper): Update.
15993 * tree-eh.c (tree_could_trap_p): Update.
15994 * ipa-split.c (consider_split, execute_split_functions): Update.
15995 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
c1e183a9
UB
15996 has_addr_references_p): Update; move ahead in file for better
15997 readability.
e70670cf
JH
15998 (process_references): Simplify.
15999 (symtab_remove_unreachable_nodes): Update; cleanup way function/var
16000 bodies are removed.
16001 (cgraph_comdat_can_be_unshared_p): Make static.
16002 (cgraph_externally_visible_p): Update.
16003 (varpool_externally_visible_p): Update.
16004 (function_and_variable_visibility): Update.
16005 * trans-mem.c (get_cg_data, ipa_tm_mayenterirr_function,
16006 ipa_tm_mark_force_output_node): Update.
16007 * ipa-inline-analysis.c (dump_inline_summary, initialize_inline_failed,
16008 estimate_edge_devirt_benefit, inline_generate_summary,
16009 inline_write_summary): Update.
16010 * gimple-fold.c (can_refer_decl_in_current_unit_p): Update.
16011 * ipa-prop.c (ipa_compute_jump_functions): Update.
c1e183a9
UB
16012 (ipa_print_node_params, ipa_prop_read_section,
16013 ipa_update_after_lto_read, read_replacements_section): Update.
e70670cf
JH
16014 * varasm.c (mark_decl_referenced): Update.
16015 (assemble_alias, dump_tm_clone_pairs): Update.
16016 * tree-inline.c (copy_bb): Update.
16017 (estimate_num_insns, optimize_inline_calls, tree_function_versioning):
16018 Update.
16019 * symtab.c (dump_symtab_base): Print new flags.
16020 (verify_symtab_base): Verify new flags.
16021 (symtab_alias_ultimate_target): New function.
16022 * tree-ssa-structalias.c (get_constraint_for_ssa_var,
16023 create_variable_info_for, associate_varinfo_to_alias, ipa_pta_execute):
16024 Update.
c1e183a9
UB
16025 * passes.c (ipa_write_summaries, ipa_write_optimization_summaries):
16026 Update.
e70670cf
JH
16027 * i386.c (ix86_get_function_versions_dispatcher,
16028 ix86_generate_version_dispatcher_body): Update.
16029 (fold_builtin_cpu): Use varpool_add_new_variable.
16030 * varpool.c (varpool_remove_initializer): Break out from ...
16031 (varpool_remove_node): ... this one.
16032 (dump_varpool_node, varpool_node_for_asm,
16033 cgraph_variable_initializer_availability, varpool_analyze_node,
16034 varpool_assemble_decl, varpool_remove_unreferenced_decls,
c1e183a9
UB
16035 varpool_finalize_named_section_flags, varpool_create_variable_alias):
16036 Update.
e70670cf 16037
182802ad
JH
160382013-05-29 Jan Hubicka <jh@suse.cz>
16039
16040 * passes.c (init_optimization_passes): Move OMP expansion into lowering.
16041
8190b609
ER
160422013-05-29 Easwaran Raman <eraman@google.com>
16043
16044 PR tree-optimization/57442
16045 * tree-ssa-reassoc.c (appears_later_in_bb): Return correct value
16046 when control exits the main loop.
16047
69f5aa9b
SKS
160482013-05-29 Sandeep Kumar Singh <Sandeep.Singh2@kpitcummins.com>
16049
16050 * rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add macros for RX100, RX200,
16051 and RX600.
c1e183a9 16052 * rx/rx.opt: Add macro for rx100 with string rx100 and value RX100.
69f5aa9b
SKS
16053 * rx/rx-opts.h (rx_cpu_types): Add new cpu type rx100.
16054 * rx/t-rx: Add rx100 under multi library matches option for nofpu
16055 option.
16056
4b847da9
BS
160572013-05-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16058
16059 PR tree-optimization/57441
16060 * gimple-ssa-strength-reduction.c (analyze_candidates_and_replace):
16061 Don't limit size of incr_vec to number of candidates.
16062
4fc43c39
SE
160632013-05-29 Steve Ellcey <sellcey@imgtec.com>
16064
16065 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add micromips
16066 and mips16 directories.
c1e183a9 16067 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Add micromips and mips16.
4fc43c39
SE
16068 (MULTILIB_DIRNAMES): Ditto.
16069 (MULTILIB_EXCEPTIONS): Add new exceptions.
16070 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Add micromips.
16071 (MULTILIB_DIRNAMES): Ditto.
16072 (MULTILIB_EXCEPTIONS): Add new exceptions.
16073
12211b99 160742012-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
a5350ddc
CSS
16075 Marcus Shawcroft <marcus.shawcroft@arm.com>
16076
16077 * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
16078 SYMBOL_TINY_ABSOLUTE.
16079 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Handle
16080 SYMBOL_TINY_ABSOLUTE.
16081 (aarch64_expand_mov_immediate): Likewise.
16082 (aarch64_classify_symbol): Likewise.
16083 (aarch64_mov_operand_p): Remove ATTRIBUTE_UNUSED.
16084 Permit SYMBOL_TINY_ABSOLUTE.
16085 * config/aarch64/predicates.md (aarch64_mov_operand): Permit CONST.
16086
12211b99 160872013-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
17f4d4bf
CSS
16088 Marcus Shawcroft <marcus.shawcroft@arm.com>
16089
16090 * config/aarch64/aarch64.c (aarch64_classify_symbol): Remove comment.
16091 Refactor if/switch. Replace gcc_assert with if.
16092
c0186656
GG
160932013-05-29 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
16094
16095 * config/i386/i386.c (initial_ix86_tune_features): Enable
16096 FP Reassociation for AMD bdver1 and bdver2.
16097
d20188f3
MJ
160982013-05-29 Martin Jambor <mjambor@suse.cz>
16099
16100 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REF, REALPART_EXPR
16101 and IMAGPART_EXPR do not occur within other handled_components.
16102
292cba13
RB
161032013-05-29 Richard Biener <rguenther@suse.de>
16104
16105 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Guard vinfo
16106 access on whether the use is in the BB we currently try to
16107 vectorize.
16108 (vect_bb_vectorization_profitable_p): Pass the BB we currently
16109 vectorize to vect_bb_slp_scalar_cost.
16110
6eddf228
RB
161112013-05-29 Richard Biener <rguenther@suse.de>
16112
16113 * tree-vect-slp.c (vect_bb_slp_scalar_cost): New function
16114 computing scalar cost offsetted by stmts that are kept live
16115 by scalar uses.
16116 (vect_bb_vectorization_profitable_p): Use vect_bb_slp_scalar_cost
16117 for computation of scalar cost.
16118
7df36117
SE
161192013-05-28 Steve Ellcey <sellcey@mips.com>
16120
16121 * config/mips/mips-cpus.def (mips32r2): Change processor type.
16122
36536d79
BI
161232013-05-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
16124
16125 * doc/extend.texi (C Extensions): Added documentation about Cilk Plus
16126 array notation built-in reduction functions.
16127 * doc/passes.texi (Passes): Added documentation about changes done
16128 for Cilk Plus.
16129 * doc/invoke.texi (C Dialect Options): Added documentation about
16130 the -fcilkplus flag.
16131 * Makefile.in (C_COMMON_OBJS): Added c-family/array-notation-common.o.
16132 (BUILTINS_DEF): Depend on cilkplus.def.
16133 * builtins.def: Include cilkplus.def. Define DEF_CILKPLUS_BUILTIN.
16134 * builtin-types.def: Define BT_FN_INT_PTR_PTR_PTR.
16135 * cilkplus.def: New file.
16136
12211b99 161372013-05-28 Joern Rennecke <joern.rennecke@embecosm.com>
b49eefa5
JR
16138
16139 PR rtl-optimization/57439
16140 * postreload.c (move2add_use_add2_insn): Use gen_lowpart_common.
16141
9daf6dbb
ER
161422013-05-28 Easwaran Raman <eraman@google.com>
16143
16144 PR tree-optimization/57337
16145 * tree-ssa-reassoc.c (appears_later_in_bb): New function.
16146 (find_insert_point): Correctly identify the insertion point
16147 when two statements with the same UID is compared.
16148
fbd7e877
RB
161492013-05-28 Richard Biener <rguenther@suse.de>
16150
16151 PR tree-optimization/56787
16152 * tree-vect-data-refs.c (vect_analyze_data_refs): Drop clobbers
16153 from the list of data references.
16154 * tree-vect-loop.c (vect_determine_vectorization_factor): Skip
16155 clobbers.
16156 (vect_analyze_loop_operations): Likewise.
16157 (vect_transform_loop): Remove clobbers.
16158
bbba1117
MJ
161592013-05-28 Martin Jambor <mjambor@suse.cz>
16160
16161 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REFs, IMAGPART_EXPRs
16162 and REALPART_EXPRs have scalar type.
16163
bd388c2a
RB
161642013-05-28 Richard Biener <rguenther@suse.de>
16165
16166 PR tree-optimization/57411
16167 * tree-ssa-copy.c (may_propagate_copy): Cannot propagate
16168 virtual operands.
16169 * tree-ssa-dom.c (eliminate_const_or_copy): Special-case
16170 virtual operand propagation.
16171
2f56a311
EB
161722013-05-28 Eric Botcazou <ebotcazou@adacore.com>
16173
16174 * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): Use %g0 as
16175 destination register for bmasksi_vis.
16176 (vector_init_bshuffle): Likewise.
16177 * config/sparc/sparc.md (vec_perm_constv8qi): Likewise.
16178
5c3eacbb
EB
161792013-05-28 Eric Botcazou <ebotcazou@adacore.com>
16180
16181 * doc/invoke.texi (SPARC Options): Document -mfix-ut699.
16182 * builtins.c (expand_builtin_mathfn) <BUILT_IN_SQRT>: Try to widen the
16183 mode if the instruction isn't available in the original mode.
16184 * config/sparc/sparc.opt (mfix-ut699): New option.
16185 * config/sparc/sparc.md (muldf3_extend): Disable if -mfix-ut699.
16186 (divdf3): Turn into expander.
16187 (divdf3_nofix): New insn.
16188 (divdf3_fix): Likewise.
16189 (divsf3): Disable if -mfix-ut699.
16190 (sqrtdf2): Turn into expander.
16191 (sqrtdf2_nofix): New insn.
16192 (sqrtdf2_fix): Likewise.
16193 (sqrtsf2): Disable if -mfix-ut699.
16194
a1756c0a
RB
161952013-05-27 Richard Biener <rguenther@suse.de>
16196
16197 PR middle-end/57412
16198 * omp-low.c (expand_omp_atomic_pipeline): Use the correct latch
16199 block for the new loop.
16200
5a892248
RB
162012013-05-27 Richard Biener <rguenther@suse.de>
16202
16203 PR tree-optimization/57343
16204 * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Do not
16205 use multiple_of_p if not TYPE_OVERFLOW_UNDEFINED.
16206 (number_of_iterations_cond): Do not build the folded tree.
16207
d1de852b
RB
162082013-05-27 Richard Biener <rguenther@suse.de>
16209
16210 Revert
16211 PR middle-end/57381
16212 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
16213 OEP_CONSTANT_ADDRESS_OF retained.
16214
16215 PR tree-optimization/57417
16216 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Fix test
16217 for unchanged base.
16218 (set_ssa_val_to): Compare addresses using
16219 get_addr_base_and_unit_offset.
16220
12211b99 162212013-05-27 Joern Rennecke <joern.rennecke@embecosm.com>
7894bc6b
JR
16222
16223 PR rtl-optimization/56833
16224 * postreload.c (move2add_record_mode): New function.
16225 (move2add_record_sym_value, move2add_valid_value_p): Likewise.
16226 (move2add_use_add2_insn): Use move2add_record_sym_value.
16227 (move2add_use_add3_insn): Likewise.
16228 (reload_cse_move2add): Use move2add_valid_value_p and
16229 move2add_record_mode. Invalidate call-clobbered and REG_INC
16230 affected regs by setting reg_mode to VOIDmode.
16231 (move2add_note_store): Don't pretend the inside of a SUBREG is
16232 the actual destination. Invalidate single/leading registers by
16233 setting reg_mode to VOIDmode.
16234 Use move2add_record_sym_value, move2add_valid_value_p and
16235 move2add_record_mode.
16236
b03be25f
RB
162372013-05-27 Richard Biener <rguenther@suse.de>
16238
16239 PR tree-optimization/57396
16240 * tree-affine.c (double_int_constant_multiple_p): Properly
16241 return false for val == 0 and div != 0.
16242
44e88db2
RS
162432013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
16244
16245 * config/mips/mips.h: Use #elif in preprocessor conditions.
16246
3b859704
RS
162472013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
16248
16249 PR target/53916
16250 * config/mips/constraints.md (kl): New constraint.
16251 * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Delete.
16252 (divmod<mode>4_internal): Rename to divmod<mode>4. Use "kl" as the
16253 constraint for operand 0. Split after CSE for MIPS16. Emit a move
16254 from LO for MIPS16.
16255 (udivmod<mode>4_internal): Likewise udivmod<mode>4.
16256
c979d5f5
RS
162572013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
16258
16259 PR target/55777
16260 * config/mips/mips.c (mips_can_inline_p): New function.
16261 (TARGET_CAN_INLINE_P): Define.
16262
8e90de43
SB
162632013-05-25 Steven Bosscher <steven@gcc.gnu.org>
16264
16265 * sched-int.h (ds_t, dw_t): Make unsigned int.
16266 Fix documentation that describes how all the ds_t bits are used.
16267 Reserve the last bit for delayed-branch scheduling.
16268 (BITS_PER_DEP_STATUS): Move to ds_t typedef.
16269 (BITS_PER_DEP_WEAK): Fix definition and documentation.
16270 (gen_dep_weak_1): Remove prototype.
16271 * sched-deps.c (get_dep_weak_1): Make static.
16272 * target.def (speculate_insn, needs_block_p, gen_spec_check,
16273 get_insn_spec_ds, get_insn_checked_ds): Adjust hook prototypes.
16274 * doc/tm.texi: Regenerate.
16275 * config/ia64/ia64.c (ia64_needs_block_p): Update prototype.
16276
cb5cb194
SB
162772013-05-24 Steven Bosscher <steven@gcc.gnu.org>
16278
16279 PR debug/56950
16280 * haifa-sched.c (sched_extend_bb): Ignore DEBUG_INSNs.
16281
5bd93ff6
NS
162822013-05-24 Nathan Sidwell <nathan@codesourcery.com>
16283 Sandra Loosemore <sandra@codesourcery.com>
16284
16285 * config.gcc (powerpc-*): Allow native for with-cpu.
16286
2343af65
JL
162872013-05-24 Jeff Law <law@redhat.com>
16288
16289 PR tree-optimization/57124
16290 * tree-vrp.c (simplify_cond_using_ranges): Only simplify a
16291 conversion feeding a condition if the range has an overflow
16292 if -fstrict-overflow. Add warnings for when we do make the
16293 transformation.
16294
3ad695b9
DC
162952013-05-24 Dehao Chen <dehao@google.com>
16296
04960246 16297 * tree-cfg.c (locus_discrim_map): Fix the typo.
3ad695b9
DC
16298 (locus_discrim_hasher): Likewise.
16299 (locus_discrim_hasher::hash): Likewise.
16300 (locus_discrim_hasher::equal): Likewise.
16301
82338059
MJ
163022013-05-24 Martin Jambor <mjambor@suse.cz>
16303
16304 PR tree-optimization/57294
16305 * cgraph.h (ipa_record_stmt_references): Declare.
16306 * cgraphbuild.c (ipa_record_stmt_references): New function.
16307 (build_cgraph_edges): Use ipa_record_stmt_references.
16308 (rebuild_cgraph_edges): Likewise.
16309 (cgraph_rebuild_references): Likewise.
16310 * ipa-prop.c (ipa_modify_call_arguments): Discard references
16311 associated with the old statement and build references from the
16312 newly built statements.
16313 * ipa-ref.c (ipa_remove_stmt_references): New function.
16314 * ipa-ref.h (ipa_remove_stmt_references): Declare.
16315
1ccd4874
VM
163162013-05-24 Vladimir Makarov <vmakarov@redhat.com>
16317
55805e54 16318 * lra-constraints.c (emit_spill_move): Use smaller mode for
1ccd4874 16319 mem-mem moves.
55805e54 16320 (check_and_process_move): Consider mem-reg moves for secondary
1ccd4874 16321 too.
55805e54 16322 (curr_insn_transform): Don't lose insns emitted before for
1ccd4874
VM
16323 secondary memory moves.
16324 (inherit_in_ebb): Mark defined reg. Add usage only if it is not a
16325 reg set up in the current insn.
16326
25e25c73
DC
163272013-05-24 Dehao Chen <dehao@google.com>
16328
04960246 16329 * tree-cfg.c (locus_descrim_hasher::hash): Change discriminator
25e25c73
DC
16330 hash function.
16331 (locus_descrim_hasher::equal): Likewise.
04960246 16332 (build_gimple_cfg): New discriminator assignment algorithm.
25e25c73
DC
16333 (make_edges): Likewise.
16334 (next_discriminator_for_locus): Likewise.
16335 (same_line_p): Likewise.
16336 (assign_discriminators): Likewise.
16337 (make_cond_expr_edges): Likewise.
16338 (make_gimple_switch_edges): Likewise.
16339 (make_goto_expr_edges): Likewise.
16340 (make_gimple_asm_edges): Likewise.
16341
50d38551
IB
163422013-05-24 Ian Bolton <ian.bolton@arm.com>
16343
16344 * config/aarch64/aarch64.c (aarch64_print_operand): Change the
16345 X format specifier to only display bottom 16 bits.
16346 * config/aarch64/aarch64.md (insv_imm<mode>): Allow any size of
16347 immediate to match for operand 2, since it will be masked.
16348
aea0101d
RB
163492013-05-24 Richard Biener <rguenther@suse.de>
16350
16351 PR tree-optimization/57287
16352 * tree-ssa-uninit.c (compute_uninit_opnds_pos): Disregard
16353 all SSA names that occur in abnormal PHIs.
16354
634e03d3
AI
163552013-05-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
16356
16357 PR tree-ssa/57385
16358 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Check
16359 that index is not negative.
16360
b17c024f
EB
163612013-05-24 Eric Botcazou <ebotcazou@adacore.com>
16362
16363 PR rtl-optimization/55177
16364 * simplify-rtx.c (simplify_unary_operation_1) <NOT>: Deal with BSWAP.
16365 (simplify_byte_swapping_operation): New.
16366 (simplify_binary_operation_1): Call it for AND, IOR and XOR.
16367 (simplify_relational_operation_1): Deal with BSWAP.
16368
46aeac1b
RH
163692013-05-23 Richard Henderson <rth@redhat.com>
16370
16371 PR target/56742
16372 * config/i386/i386.c (ix86_seh_fixup_eh_fallthru): New.
16373 (ix86_reorg): Call it.
16374
70cc1536
UB
163752013-05-23 Uros Bizjak <ubizjak@gmail.com>
16376
16377 PR target/57379
16378 * config/alpha/alpha.md (unspec): Add UNSPEC_XFLT_COMPARE.
16379 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Construct
16380 REG_EQUAL note as UNSPEC_XFLT_COMPARE unspec.
16381
b3851501
CB
163822013-05-23 Christian Bruel <christian.bruel@st.com>
16383
16384 PR debug/57351
16385 * config/arm/arm.c (arm_dwarf_register_span): Do not use dbx number.
16386
12211b99 163872013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
4e194912
CSS
16388 Marcus Shawcroft <marcus.shawcroft@arm.com>
16389
16390 * config/aarch64/aarch64.md (*movdi_aarch64): Replace Usa with S.
16391 * config/aarch64/constraints.md (Usa): Remove.
16392 * doc/md.texi (AArch64 Usa): Remove.
16393
12211b99 163942013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
83f8c414
CSS
16395 Marcus Shawcroft <marcus.shawcroft@arm.com>
16396
16397 * config/aarch64/aarch64-protos.h (aarch64_mov_operand_p): Define.
16398 * config/aarch64/aarch64.c (aarch64_mov_operand_p): Define.
16399 * config/aarch64/predicates.md (aarch64_const_address): Remove.
16400 (aarch64_mov_operand): Use aarch64_mov_operand_p.
16401
12211b99 164022013-05-23 Vidya Praveen <vidyapraveen@arm.com>
b5574232
VP
16403
16404 * config/aarch64/aarch64-simd.md (clzv4si2): Support for CLZ
16405 instruction (AdvSIMD).
16406 * config/aarch64/aarch64-builtins.c
16407 (aarch64_builtin_vectorized_function): Handler for BUILT_IN_CLZ.
16408 * config/aarch64/aarch-simd-builtins.def: Entry for CLZ.
16409
76c36cb1 164102013-05-23 Martin Jambor <mjambor@suse.cz>
7d2fb524
MJ
16411
16412 PR middle-end/57347
16413 * tree.h (contains_bitfld_component_ref_p): Declare.
16414 * tree-sra.c (contains_bitfld_comp_ref_p): Move...
70cc1536
UB
16415 * tree.c (contains_bitfld_component_ref_p): ...here. Adjust its
16416 caller.
7d2fb524
MJ
16417 * ipa-prop.c (determine_known_aggregate_parts): Check that LHS does
16418 not access a bit-field. Assert all final offsets are byte-aligned.
16419
ce521ae6
RB
164202013-05-23 Richard Biener <rguenther@suse.de>
16421
16422 PR tree-optimization/57380
16423 * tree-ssa-phiprop.c (propagate_with_phi): Do not require at
16424 least one invariant or re-used load.
16425 * passes.c (init_optimization_passes): Move pass_phiprop before
16426 pass_forwprop.
16427
75c7257f
JG
164282013-05-23 James Greenhalgh <james.greenhalgh@arm.com>
16429
16430 * config/aarch64/aarch64-simd.md
16431 (aarch64_cm<optab>di): Add clobber of CC_REGNUM to unsplit pattern.
16432
af6d44b5
RB
164332013-05-23 Richard Biener <rguenther@suse.de>
16434
16435 PR middle-end/57381
16436 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
16437 OEP_CONSTANT_ADDRESS_OF retained.
16438
bd3647bf
JJ
164392013-05-23 Jakub Jelinek <jakub@redhat.com>
16440
16441 PR middle-end/57344
70cc1536
UB
16442 * expmed.c (store_split_bit_field): If op0 is a REG or SUBREG of a REG,
16443 don't lower unit. Handle unit not being always BITS_PER_WORD.
bd3647bf 16444
a55757ea
RB
164452013-05-23 Richard Biener <rguenther@suse.de>
16446
16447 PR rtl-optimization/57341
16448 * ira.c (validate_equiv_mem_from_store): Use anti_dependence
16449 instead of true_dependence.
16450
cfb00b41
DM
164512013-05-22 David Malcolm <dmalcolm@redhat.com>
16452
dd1c676f
DM
16453 * bb-reorder.c (branch_threshold): Make const.
16454 (exec_threshold): Ditto.
cfb00b41 16455
f62511da 164562013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
16457 Pat Haugen <pthaugen@us.ibm.com>
16458 Peter Bergner <bergner@vnet.ibm.com>
f62511da
MM
16459
16460 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Add
16461 documentation for the power8 crypto builtins.
16462
16463 * config/rs6000/t-rs6000 (MD_INCLUDES): Add crypto.md.
16464
16465 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_1): Add support
16466 macros for defining power8 builtin functions.
16467 (BU_P8V_AV_2): Likewise.
16468 (BU_P8V_AV_P): Likewise.
16469 (BU_P8V_VSX_1): Likewise.
16470 (BU_P8V_OVERLOAD_1): Likewise.
16471 (BU_P8V_OVERLOAD_2): Likewise.
16472 (BU_CRYPTO_1): Likewise.
16473 (BU_CRYPTO_2): Likewise.
16474 (BU_CRYPTO_3): Likewise.
16475 (BU_CRYPTO_OVERLOAD_1): Likewise.
16476 (BU_CRYPTO_OVERLOAD_2): Likewise.
16477 (XSCVSPDP): Fix typo, point to the correct instruction.
16478 (VCIPHER): Add power8 crypto builtins.
16479 (VCIPHERLAST): Likewise.
16480 (VNCIPHER): Likewise.
16481 (VNCIPHERLAST): Likewise.
16482 (VPMSUMB): Likewise.
16483 (VPMSUMH): Likewise.
16484 (VPMSUMW): Likewise.
16485 (VPERMXOR_V2DI): Likewise.
16486 (VPERMXOR_V4SI: Likewise.
16487 (VPERMXOR_V8HI: Likewise.
16488 (VPERMXOR_V16QI: Likewise.
16489 (VSHASIGMAW): Likewise.
16490 (VSHASIGMAD): Likewise.
16491 (VPMSUM): Likewise.
16492 (VPERMXOR): Likewise.
16493 (VSHASIGMA): Likewise.
16494
16495 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
16496 __CRYPTO__ if the crypto instructions are available.
16497 (altivec_overloaded_builtins): Add support for overloaded power8
16498 builtins.
16499
16500 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
16501 support for power8 crypto builtins.
16502 (builtin_function_type): Likewise.
16503 (altivec_init_builtins): Add support for builtins that take vector
16504 long long (V2DI) arguments.
16505
16506 * config/rs6000/crypto.md: New file, define power8 crypto
16507 instructions.
16508
165092013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
16510 Pat Haugen <pthaugen@us.ibm.com>
16511 Peter Bergner <bergner@vnet.ibm.com>
f62511da
MM
16512
16513 * doc/invoke.texi (Option Summary): Add power8 options.
16514 (RS/6000 and PowerPC Options): Likewise.
16515
16516 * doc/md.texi (PowerPC and IBM RS6000 constraints): Update to use
16517 constraints.md instead of rs6000.h. Reorder w* constraints. Add
16518 wm, wn, wr documentation.
16519
f43245d1 16520 * config/rs6000/constraints.md (wm): New constraint for VSX
f62511da
MM
16521 registers if direct move instructions are enabled.
16522 (wn): New constraint for no registers.
16523 (wq): New constraint for quad word even GPR registers.
16524 (wr): New constraint if 64-bit instructions are enabled.
16525 (wv): New constraint if power8 vector instructions are enabled.
16526 (wQ): New constraint for quad word memory locations.
16527
f43245d1 16528 * config/rs6000/predicates.md (const_0_to_15_operand): New
f62511da
MM
16529 constraint for 0..15 for crypto instructions.
16530 (gpc_reg_operand): If VSX allow registers in VSX registers as well
16531 as GPR and floating point registers.
16532 (int_reg_operand): New predicate to match only GPR registers.
16533 (base_reg_operand): New predicate to match base registers.
16534 (quad_int_reg_operand): New predicate to match even GPR registers
16535 for quad memory operations.
16536 (vsx_reg_or_cint_operand): New predicate to allow vector logical
16537 operations in both GPR and VSX registers.
16538 (quad_memory_operand): New predicate for quad memory operations.
16539 (reg_or_indexed_operand): New predicate for direct move support.
16540
f43245d1 16541 * config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED):
f62511da
MM
16542 Inherit from ISA_2_4_MASKS, not ISA_2_2_MASKS.
16543 (ISA_2_7_MASKS_SERVER): New mask for ISA 2.07 (i.e. power8).
16544 (POWERPC_MASKS): Add power8 options.
16545 (power8 cpu): Use ISA_2_7_MASKS_SERVER instead of specifying the
16546 various options.
16547
f43245d1 16548 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
f62511da
MM
16549 Define _ARCH_PWR8 and __POWER8_VECTOR__ for power8.
16550
f43245d1 16551 * config/rs6000/rs6000.opt (-mvsx-timode): Add documentation.
f62511da
MM
16552 (-mpower8-fusion): New power8 options.
16553 (-mpower8-fusion-sign): Likewise.
16554 (-mpower8-vector): Likewise.
16555 (-mcrypto): Likewise.
16556 (-mdirect-move): Likewise.
16557 (-mquad-memory): Likewise.
16558
f43245d1 16559 * config/rs6000/rs6000.c (power8_cost): Initial definition for power8.
f62511da
MM
16560 (rs6000_hard_regno_mode_ok): Make PTImode only match even GPR
16561 registers.
70cc1536 16562 (rs6000_debug_reg_print): Print the base register class if -mdebug=reg.
f62511da
MM
16563 (rs6000_debug_vector_unit): Add p8_vector.
16564 (rs6000_debug_reg_global): If -mdebug=reg, print power8 constraint
16565 definitions. Also print fusion state.
16566 (rs6000_init_hard_regno_mode_ok): Set up power8 constraints.
16567 (rs6000_builtin_mask_calculate): Add power8 builtin support.
16568 (rs6000_option_override_internal): Add support for power8.
16569 (rs6000_common_init_builtins): Add debugging for skipped builtins
16570 if -mdebug=builtin.
16571 (rs6000_adjust_cost): Add power8 support.
16572 (rs6000_issue_rate): Likewise.
16573 (insn_must_be_first_in_group): Likewise.
16574 (insn_must_be_last_in_group): Likewise.
16575 (force_new_group): Likewise.
16576 (rs6000_register_move_cost): Likewise.
16577 (rs6000_opt_masks): Likewise.
16578
16579 * config/rs6000/rs6000.h (ASM_CPU_POWER8_SPEC): If we don't have a
16580 power8 capable assembler, default to power7 options.
16581 (TARGET_DIRECT_MOVE): Likewise.
16582 (TARGET_CRYPTO): Likewise.
16583 (TARGET_P8_VECTOR): Likewise.
16584 (VECTOR_UNIT_P8_VECTOR_P): Define power8 vector support.
16585 (VECTOR_UNIT_VSX_OR_P8_VECTOR_P): Likewise.
16586 (VECTOR_MEM_P8_VECTOR_P): Likewise.
16587 (VECTOR_MEM_VSX_OR_P8_VECTOR_P): Likewise.
16588 (VECTOR_MEM_ALTIVEC_OR_VSX_P): Likewise.
16589 (TARGET_XSCVDPSPN): Likewise.
16590 (TARGET_XSCVSPDPN): Likewsie.
16591 (TARGET_SYNC_HI_QI): Likewise.
16592 (TARGET_SYNC_TI): Likewise.
16593 (MASK_CRYPTO): Likewise.
16594 (MASK_DIRECT_MOVE): Likewise.
16595 (MASK_P8_FUSION): Likewise.
16596 (MASK_P8_VECTOR): Likewise.
70cc1536
UB
16597 (REG_ALLOC_ORDER): Move fr13 to be lower in priority so that the TFmode
16598 temporary used by some of the direct move instructions to get two FP
16599 temporary registers does not force creation of a stack frame.
f62511da
MM
16600 (VLOGICAL_REGNO_P): Allow vector logical operations in GPRs.
16601 (MODES_TIEABLE_P): Move the VSX tests above the Altivec tests so
16602 that any VSX registers are tieable, even if they are also an
16603 Altivec vector mode.
16604 (r6000_reg_class_enum): Add wm, wr, wv constraints.
16605 (RS6000_BTM_P8_VECTOR): Power8 builtin support.
16606 (RS6000_BTM_CRYPTO): Likewise.
16607 (RS6000_BTM_COMMON): Likewise.
16608
16609 * config/rs6000/rs6000.md (cpu attribute): Add power8.
16610 * config/rs6000/rs6000-opts.h (PROCESSOR_POWER8): Likewise.
16611 (enum rs6000_vector): Add power8 vector support.
16612
73a1a707
RR
166132013-05-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16614
16615 PR target/19599
16616 PR target/57340
16617 * config/arm/arm.c (any_sibcall_uses_r3): Rename to ..
16618 (any_sibcall_could_use_r3): this and handle indirect calls.
16619 (arm_get_frame_offsets): Rename use of any_sibcall_uses_r3.
16620
d28073d4
BS
166212013-05-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16622
16623 * config/rs6000/rs6000.h (MALLOC_ABI_ALIGNMENT): New #define.
16624
bee0b10c
RB
166252013-05-22 Richard Biener <rguenther@suse.de>
16626
16627 PR middle-end/57349
16628 * profile.c (branch_prob): Do not split blocks that are
16629 abnormally receiving from ECF_RETURNS_TWICE functions.
16630
98409b51
RS
166312013-05-22 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
16632
16633 * recog.c (offsettable_address_addr_space_p): Fix calculation of
16634 address mode. Move pointer mode initialization to the same place.
16635
c0602ab8
MZ
166362013-05-22 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
16637
16638 * read-rtl.c (copy_rtx_for_iterators): Continue applying iterators
16639 while it has any effect.
16640
4f7a634e
ER
166412013-05-21 Easwaran Raman <eraman@google.com>
16642
16643 PR tree-optimization/57322
9daf6dbb
ER
16644 * tree-ssa-reassoc.c (build_and_add_sum): If a BB is empty, set the
16645 UID of the statement added to the BB to be 1.
4f7a634e 16646
a4ce1258
JJ
166472013-05-21 Jakub Jelinek <jakub@redhat.com>
16648
16649 PR tree-optimization/57331
70cc1536
UB
16650 * tree-vrp.c (simplify_cond_using_ranges): Don't optimize comparison
16651 of conversion from pointer type to integral type with integer.
a4ce1258 16652
1b14621a
MJ
166532013-05-21 Martin Jambor <mjambor@suse.cz>
16654
16655 PR lto/57289
16656 * ipa-prop.c (ipa_read_node_info): Process param_used and
16657 controlled_uses in the same order as when writing.
16658
e60661f0
MG
166592013-05-21 Magnus Granberg <baldrick@free.fr>
16660
16661 PR plugins/56754
ee49aa34 16662 * Makefile.in (PLUGIN_HEADERS): Add $(TARGET_H).
e60661f0 16663
4a61be9a
RB
166642013-05-21 Richard Biener <rguenther@suse.de>
16665
16666 PR tree-optimization/57318
16667 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Do not
16668 estimate stmts with side-effects as likely eliminated.
16669
c52da5f7
RB
166702013-05-21 Richard Biener <rguenther@suse.de>
16671
16672 PR tree-optimization/57330
16673 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Properly
16674 preserve the call stmts fntype.
16675
7ec67e2a
RB
166762013-05-21 Richard Biener <rguenther@suse.de>
16677
16678 PR tree-optimization/57303
16679 * tree-ssa-sink.c (statement_sink_location): Improve killing
16680 stmt detection and properly handle self-assignments.
16681
b112d513
CB
166822013-05-21 Christian Bruel <christian.bruel@st.com>
16683
55805e54
YR
16684 * dwarf2out.c (multiple_reg_loc_descriptor): Use dbx_reg_number for
16685 spanning registers. LEAF_REG_REMAP is supported only for contiguous
b112d513
CB
16686 registers. Set register size out of the PARALLEL loop.
16687
14c2ec26
OE
166882013-05-20 Oleg Endo <olegendo@gcc.gnu.org>
16689
16690 PR target/56547
16691 * config/sh/sh.md (fmasf4): Remove empty constraints strings.
16692 (*fmasf4, *fmasf4_media): New insns.
16693
da734fa1
RS
166942013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
16695
16696 * config/mips/mips.h (BASE_INSN_LENGTH, NOP_INSN_LENGTH): New macros.
16697 * config/mips/mips.c (mips_symbol_insns, mips_address_insns)
16698 (mips_const_insns, mips_split_const_insns, mips_load_store_insns)
16699 (mips_idiv_insns): Update the comments to say that the returned
16700 instruction counts are in units of BASE_INSN_LENGTH.
16701 (mips_adjust_insn_length): Multiply the mips_load_label_num_insns
16702 by BASE_INSN_LENGTH rather than 4. Add the jump separately,
16703 using 2 rather than 4 as the length of indirect MIPS16 and
16704 microMIPS jumps. Use NOP_INSN_LENGTH rather than 4 as the
16705 length of a NOP. Don't divide MIPS16 lengths by 2.
16706 (mips16_split_long_branches): Assume a branch is long if the
16707 length is greater than 4 rather than 8.
16708 * config/mips/mips.md (length): Give MIPS16 lengths directly,
16709 rather than multiplying them by 2. Multiply instruction counts
16710 by BASE_INSN_LENGTH rather than 4.
16711 (*jump_mips16, tls_get_tp_mips16_<mode>)
16712 (*tls_get_tp_mips16_call_<mode>): Divide lengths by 2.
16713
13719e8b
RS
167142013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
16715
16716 * config/mips/mips.md (extended_mips16): Remove branch case.
16717 (length): Remove duplicated extended_mips16 test.
16718
c3850d14
RS
167192013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
16720
16721 * config/mips/t-sde: Don't build 64-bit microMIPS multilibs.
16722
8da2e059
RS
167232013-05-18 Richard Sandiford <rdsandiford@googlemail.com>
16724
16725 * recog.h (Recog_data): Rename to...
16726 (recog_data_d): ...this.
16727 (recog_data): Update accordingly.
16728 * recog.c (recog_data): Likewise.
16729 * reload.c (save_recog_data): Likewise.
16730 * config/picochip/picochip.c (picochip_saved_recog_data): Likewise.
16731 (picochip_save_recog_data, picochip_restore_recog_data): Likewise.
16732
2df013f3
JB
167332013-05-17 Julian Brown <julian@codesourcery.com>
16734
16735 * gcse.c (compute_ld_motion_mems): If a non-simple MEM is
16736 found in a REG_EQUAL note, invalidate it.
16737
371e77e3 167382013-05-17 Easwaran Raman <eraman@google.com>
933f507d
ER
16739
16740 * tree-ssa-reassoc.c (find_insert_point): New function.
16741 (insert_stmt_after): Likewise.
16742 (get_def_stmt): Likewise.
16743 (ensure_ops_are_available): Likewise.
16744 (not_dominated_by): Likewise.
16745 (rewrite_expr_tree): Do not move statements beyond what is
16746 necessary. Remove call to swap_ops_for_binary_stmt...
16747 (reassociate_bb): ... and move it here.
16748 (build_and_add_sum): Assign UIDs for new statements.
16749 (linearize_expr): Likewise.
16750 (do_reassoc): Renumber gimple statement UIDs.
16751
e01c7cca
JH
167522013-05-17 Jan Hubicka <jh@suse.cz>
16753
16754 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Resolve cross module
16755 weakrefs.
16756 * cgraph.c (dump_cgraph_node): Do not ice on unresolved alias.
e2420687
UB
16757 * cgraphunit.c (handle_alias_pairs): Store target of unresolved
16758 weakrefs.
e01c7cca
JH
16759 (output_weakrefs): Update.
16760
c3272a92
PCC
167612013-05-17 Po-Chun Chang <pchang9@cs.wisc.edu>
16762 Martin Jambor <mjambor@suse.cz>
16763
16764 PR middle-end/57276
16765 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Break when a
16766 value that corresponds to the given aggval is found in values vector.
16767
11c2aa39
UB
167682013-05-17 Uros Bizjak <ubizjak@gmail.com>
16769
16770 * config/i386/driver-i386.c (host_detect_local_cpu): Pass mmx, 3dnow,
16771 sse, sse2, sse3, ssse3 and sse4a flags to options.
16772
abecc8c6
DM
167732013-05-17 David Malcolm <dmalcolm@redhat.com>
16774
16775 * gengtype-state.c: (s_expr_writer): New class, to handle
16776 prettifying of output layout of s-expressions.
16777 (state_writer): New class, to write out gtype.state.
16778 (state_written_type_count): Move this variable into member data of
16779 state_writer.
16780 (s_expr_writer::s_expr_writer): New code: constructor for new class
16781 (state_writer::state_writer(): ditto
16782 (s_expr_writer::write_new_line): New function
16783 (s_expr_writer::write_any_indent): ditto
16784 (s_expr_writer::begin_s_expr): ditto
16785 (s_expr_writer::end_s_expr): ditto
16786 (write_state_fileloc): convert to method of state_writer...
16787 (state_writer:: write_state_fileloc): ...and use methods of
16788 s_expr_writer to write indentation into the gtype.state output file
16789 to visually represent the hierarchical structure of the list
16790 structures
16791 (write_state_fields): ditto, renaming to...
16792 (state_writer::write_state_fields)
16793 (write_state_a_string): ditto, renaming to...
16794 (state_writer::write_state_a_string)
16795 (write_state_string_option): ditto, renaming to...
16796 (state_writer::write_state_string_option)
16797 (write_state_type_option): ditto, renaming to...
16798 (state_writer::write_state_type_option)
16799 (write_state_nested_option): ditto, renaming to...
16800 (state_writer::write_state_nested_option)
16801 (write_state_option): ditto, renaming to...
16802 (state_writer::write_state_option)
16803 (write_state_options): ditto, renaming to...
16804 (state_writer::write_state_options)
16805 (write_state_lang_bitmap): ditto, renaming to...
16806 (state_writer::write_state_lang_bitmap)
16807 (write_state_version): ditto, renaming to...
16808 (state_writer::write_state_version)
16809 (write_state_scalar_type): ditto, renaming to...
16810 (state_writer::write_state_scalar_type)
16811 (write_state_string_type): ditto, renaming to...
16812 (state_writer::write_state_string_type)
16813 (write_state_undefined_type): ditto, renaming to...
16814 (state_writer::write_state_undefined_type)
16815 (write_state_struct_union_type): ditto, renaming to...
16816 (state_writer::write_state_struct_union_type)
16817 (write_state_struct_type): ditto, renaming to...
16818 (state_writer::write_state_struct_type)
16819 (write_state_user_struct_type): ditto, renaming to...
16820 (state_writer::write_state_user_struct_type)
16821 (write_state_lang_struct_type): ditto, renaming to...
16822 (state_writer::write_state_lang_struct_type)
16823 (write_state_param_struct_type): ditto, renaming to...
16824 (state_writer::write_state_param_struct_type)
16825 (write_state_pointer_type): ditto, renaming to...
16826 (state_writer::write_state_pointer_type)
16827 (write_state_array_type): ditto, renaming to...
16828 (state_writer::write_state_array_type)
16829 (write_state_gc_used): ditto, renaming to...
16830 (state_writer::write_state_gc_used)
16831 (write_state_common_type_content): ditto, renaming to...
16832 (state_writer::write_state_common_type_content)
16833 (write_state_type): ditto, renaming to...
16834 (state_writer::write_state_type)
16835 (write_state_pair_list): ditto, renaming to...
16836 (state_writer::write_state_pair_list)
16837 (write_state_pair): ditto, renaming to...
16838 (state_writer::write_state_pair)
16839 (write_state_typedefs): ditto, renaming to...
16840 (state_writer::write_state_typedefs)
16841 (write_state_structures): ditto, renaming to...
16842 (state_writer::write_state_structures)
16843 (write_state_param_structs): ditto, renaming to...
16844 (state_writer::write_state_param_structs)
16845 (write_state_variables): ditto, renaming to...
16846 (state_writer::write_state_variables)
16847 (write_state_srcdir): ditto, renaming to...
16848 (state_writer::write_state_srcdir)
16849 (write_state_files_list): ditto, renaming to...
16850 (state_writer::write_state_files_list)
16851 (write_state_languages): ditto, renaming to...
16852 (state_writer::write_state_languages)
16853 (write_state): create a state_writer instance and use it when
16854 writing out the state file
16855
d6545f29
MS
168562013-05-17 Mike Stump <mikestump@comcast.net>
16857
816a3f73 16858 PR rtl-optimization/57304
d6545f29
MS
16859 * web.c (union_match_dups): Ensure that DF_REF_LOC exists before
16860 accessing DF_REF_REAL_LOC.
16861
38c821cf
JJ
168622013-05-17 Jakub Jelinek <jakub@redhat.com>
16863
16864 PR rtl-optimization/57281
16865 PR rtl-optimization/57300
16866 * config/i386/i386.md (extendsidi2_1 dead reg splitter): Remove.
16867 (extendsidi2_1 peephole2s): Add instead 2 new peephole2s, that undo
16868 what the other splitter did if the registers are dead.
16869
2a293391
RB
168702013-05-17 Richard Biener <rguenther@suse.de>
16871
16872 * tree-ssa-alias.c (stmt_kills_ref_p_1): Properly compare
16873 MEM_REF offsets.
16874
17042d2b
JJ
168752013-05-17 Jakub Jelinek <jakub@redhat.com>
16876
16877 * gcc.c (SANITIZER_SPEC): Reject -fsanitize=address -fsanitize=thread
16878 linking.
16879
5b115c1f
MP
168802013-05-17 Marek Polacek <polacek@redhat.com>
16881
11c2aa39
UB
16882 * tree-ssa-strlen.c (handle_char_store): Don't invalidate cached
16883 length when doing non-zero store of storing '\0' to '\0'.
5b115c1f 16884
52d84413
JJ
168852013-05-17 Jakub Jelinek <jakub@redhat.com>
16886
68119618
JJ
16887 * tree-vect-patterns.c (vect_recog_rotate_pattern): For
16888 vect_external_def oprnd1 with loop_vinfo, try to emit
16889 optional cast, negation and and stmts on the loop preheader
16890 edge instead of into the pattern def seq.
16891
52d84413
JJ
16892 PR tree-optimization/57051
16893 * fold-const.c (const_binop) <case VEC_LSHIFT_EXPR,
16894 case VEC_RSHIFT_EXPR>: Fix BYTES_BIG_ENDIAN handling.
16895
17b962bd
NC
168962013-05-16 Nick Clifton <nickc@redhat.com>
16897
16898 * config/rl78/rl78.c (rl78_attribute_table): Add naked.
16899 (rl78_is_naked_func): New function.
56aefbf7
UB
16900 (rl78_expand_prologue): Skip prologue generation for naked functions.
16901 (rl78_expand_epilogue): Skip epilogue generation for naked functions.
17b962bd
NC
16902 * doc/extend.texi (naked): Add RL78 to the list of processors
16903 that supports this attribute.
16904
b1a0f84e
JL
169052013-05-16 Jeff Law <law@redhat.com>
16906
16907 * Makefile.in (tree-switch-conversion.o): Depend on $(OPTABS_H).
16908
af0e415b
UB
169092013-05-16 Uros Bizjak <ubizjak@gmail.com>
16910
16911 * config/i386/driver-i386.c (host_detect_local_cpu): Determine
16912 cache parameters using detect_caches_amd also for CYRIX,
16913 NSC and TM2 signatures.
16914
19db293a
UB
169152013-05-16 Uros Bizjak <ubizjak@gmail.com>
16916 Dzianis Kahanovich <mahatma@eu.by>
16917
16918 PR target/45359
16919 PR target/46396
16920 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
16921 VIA/Centaur processors and determine their cache parameters
16922 using detect_caches_amd.
16923
251a41b9
TJ
169242013-05-16 Teresa Johnson <tejohnson@google.com>
16925
16926 * cfgrtl.c (verify_hot_cold_block_grouping): Return err.
16927 (rtl_verify_edges): New function.
16928 (rtl_verify_bb_insns): Ditto.
16929 (rtl_verify_bb_pointers): Ditto.
16930 (rtl_verify_bb_insn_chain): Ditto.
16931 (rtl_verify_fallthru): Ditto.
16932 (rtl_verify_bb_layout): Ditto.
16933 (rtl_verify_flow_info_1): Outline checks into new functions.
16934 (rtl_verify_flow_info): Ditto.
16935
f14540b6
SE
169362013-05-16 Steve Ellcey <sellcey@imgtec.com>
16937
16938 * cfghooks.c (copy_bbs): Add update_dominance argument.
16939 * cfghooks.h (copy_bbs): Update prototype.
16940 * tree-cfg.c (gimple_duplicate_sese_region):
16941 Add update_dominance argument.
16942 * tree-flow.h (gimple_duplicate_sese_region): Update prototype.
16943 * tree-ssa-loop-ch.c (copy_loop_headers): Update
16944 gimple_duplicate_sese_region call.
16945 * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg):
16946 Update copy_bbs call.
16947 * cfgloopmanip.c (duplicate_loop_to_header_edge): Ditto.
16948 * trans-mem.c (ipa_uninstrument_transaction): Ditto.
16949
7e9a3abb
JJ
169502013-05-16 Jakub Jelinek <jakub@redhat.com>
16951
16952 * tree-vectorizer.h (NUM_PATTERNS): Increment.
16953 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
16954 vect_recog_rotate_pattern.
16955 (vect_recog_rotate_pattern): New function.
16956
427b248d
JM
169572013-05-16 Jason Merrill <jason@redhat.com>
16958
16959 * Makefile.in (LLINKER): New variable.
16960 (mostlyclean): Remove link mutex.
16961 * configure.ac: Handle --enable-link-mutex.
16962 * lock-and-run.sh: New script.
16963
b871e3d2
RR
169642013-05-16 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16965
16966 PR target/19599
16967 * config/arm/arm.c (arm_function_ok_for_sibcall): Add check
16968 for NULL decl.
16969
ce858126
RO
169702013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16971
16972 * reorg.c (link_cc0_insns): Wrap in #ifdef HAVE_cc0.
16973
798d3d04
GY
169742013-05-16 Greta Yorsh <Greta.Yorsh@arm.com>
16975
16976 * config/arm/arm-protos.h (gen_movmem_ldrd_strd): New declaration.
16977 * config/arm/arm.c (next_consecutive_mem): New function.
16978 (gen_movmem_ldrd_strd): Likewise.
16979 * config/arm/arm.md (movmemqi): Update condition and code.
16980 (unaligned_loaddi, unaligned_storedi): New patterns.
16981
0baddc45
RO
169822013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16983
16984 * config.gcc: Obsolete *-*-solaris2.9*.
16985 * doc/install.texi (Specific, *-*-solaris2*): Document it.
16986
aa9d5bcf
RB
169872013-05-16 Richard Biener <rguenther@suse.de>
16988
16989 * passes.c (init_optimization_passes): Move pass_parallelize_loops
16990 earlier, after GRAPHITE transforms and IV canonicalization.
16991
5a0f4dd3
JJ
169922013-05-16 Jakub Jelinek <jakub@redhat.com>
16993
16994 * omp-low.c (extract_omp_for_data): For collapsed loops,
16995 if at least one of the loops is known at compile time to
16996 iterate zero times, set count to 0.
16997 (expand_omp_regimplify_p): New function.
16998 (expand_omp_for_generic): For collapsed loops, if at least
16999 one of the loops isn't known to iterate at least once,
17000 add runtime check with setting count to 0.
17001 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
17002 For unsigned types if it isn't known at compile time that
17003 the loop will iterate at least once, add runtime check to bypass
17004 the whole loop if initial condition isn't true.
17005
e3753785
NS
170062013-05-16 Nathan Sidwell <nathan@codesourcery.com>
17007
17008 * varasm.c (default_use_anchors_for_symbol_p): Use decl_replaceable_p.
17009
43bb4dd1
MG
170102013-05-16 Marc Glisse <marc.glisse@inria.fr>
17011
17012 PR middle-end/57286
17013 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Disable some
17014 transformations to avoid an infinite loop.
17015
3571dde6
MP
170162013-05-16 Marek Polacek <polacek@redhat.com>
17017
17018 * tree-scalar-evolution.c (scev_const_prop): Add more dumps.
17019
b8b3f0ca
LE
170202013-05-15 Leif Ekblad <leif@rdos.net>
17021
17022 * config/i386/i386.c (ix86_decompose_address): Use
17023 DEFAULT_TLS_SEG_REG to access TLS segment register.
17024 * config/i386/i386.h (DEFAULT_TLS_SEG_REG): New define.
17025 * config/i386/rdos.h (DEFAULT_TLS_SEG_REG): Ditto.
17026 (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Ditto.
17027
e299a383
RS
170282013-05-15 Richard Sandiford <rdsandiford@googlemail.com>
17029
17030 PR target/57260
17031 * config/mips/mips.c (mips_function_ok_for_sibcall): Don't allow
17032 sibling calls to functions that would normally be lazily bound,
17033 unless $gp is call-clobbered.
17034
e7208ea3
UB
170352013-05-15 Uros Bizjak <ubizjak@gmail.com>
17036
19db293a 17037 * config/i386/i386.c (ix86_option_override_internal): Update
e7208ea3 17038 processor_alias_table for missing PTA_PRFCHW and PTA_FXSR flags. Add
5d280e2b
UB
17039 PTA_POPCNT to corei7 entry. Do not enable SSE prefetch on
17040 non-SSE 3dNow! targets. Enable TARGET_PRFCHW for TARGET_3DNOW targets.
e7208ea3
UB
17041 * config/i386/i386.md (prefetch): Enable for TARGET_PRFCHW instead
17042 of TARGET_3DNOW.
17043 (*prefetch_3dnow): Enable for TARGET_PRFCHW only.
17044
e7413f3d
AS
170452013-05-15 Andreas Schwab <schwab@suse.de>
17046
17047 * config/m68k/m68k.md (*rotlhi3_lowpart, *rotlqi3_lowpart): Name
17048 for rotlhi3+1 and rotlqi3+1, resp. Fix reference to non-existing
17049 third operand.
17050
ad4db775
TJ
170512013-05-15 Teresa Johnson <tejohnson@google.com>
17052
17053 * loop-unroll.c (report_unroll_peel): Check decision before
17054 emitting unroll/peel message.
17055
af205f67
TJ
170562013-05-15 Teresa Johnson <tejohnson@google.com>
17057
17058 * function.h (has_bb_partition): New rtl_data flag.
17059 (bb_reorder_complete): Ditto.
17060 * cfgcleanup.c (try_crossjump_to_edge): Check for has_bb_partition
17061 instead of flag_reorder_blocks_and_partition.
17062 * cfgrtl.c (verify_hot_cold_block_grouping): Moved from bb-reorder.c,
17063 with some enhancements.
17064 (rtl_verify_flow_info_1): Call verify_hot_cold_block_grouping.
17065 * bb-reorder.c (connect_traces): Check for has_bb_partition
17066 instead of flag_reorder_blocks_and_partition.
17067 (verify_hot_cold_block_grouping): Moved to cfgrtl.c.
17068 (reorder_basic_blocks): Set bb_reorder_complete flag, remove call to
17069 verify_hot_cold_block_grouping.
17070 (partition_hot_cold_basic_blocks): Set has_bb_partition.
17071
9adcfa3c
RR
170722013-05-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
17073
17074 PR target/19599
17075 * config/arm/predicates.md (call_insn_operand): New predicate.
17076 * config/arm/constraints.md ("Cs", "Ss"): New constraints.
17077 * config/arm/arm.md (*call_insn, *call_value_insn): Match only
17078 if insn is not a tail call.
17079 (*sibcall_insn, *sibcall_value_insn): Adjust for tailcalling through
17080 registers.
17081 * config/arm/arm.h (enum reg_class): New caller save register class.
17082 (REG_CLASS_NAMES): Likewise.
17083 (REG_CLASS_CONTENTS): Likewise.
17084 * config/arm/arm.c (arm_function_ok_for_sibcall): Allow tailcalling
17085 without decls.
17086
ccb3ad87
RB
170872013-05-15 Richard Biener <rguenther@suse.de>
17088
17089 * tree-vect-loop.c (vect_transform_loop): Use MSG_NOTE instead
17090 of MSG_OPTIMIZED_LOCATIONS.
17091 * tree-vect-slp.c (vect_make_slp_decision): Likewise.
17092 (vect_slp_transform_bb): Indicate location in MSG_OPTIMIZED_LOCATIONS
17093 message.
17094 * tree-vectorizer.c (vectorize_loops): Use MSG_NOTE instead
17095 of MSG_OPTIMIZED_LOCATIONS.
17096 (execute_vect_slp): Likewise.
17097 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
17098 (vect_create_cond_for_alias_checks): Likewise.
17099 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Likewise.
17100 (vect_recog_widen_mult_pattern): Likewise.
17101 (vect_recog_widen_sum_pattern): Likewise.
17102 (vect_recog_over_widening_pattern): Likewise.
17103 (vect_recog_widen_shift_pattern): Likewise.
17104 (vect_recog_vector_vector_shift_pattern): Likewise.
17105 (vect_recog_divmod_pattern): Likewise.
17106 (vect_recog_mixed_size_cond_pattern): Likewise.
17107 (vect_recog_bool_pattern): Likewise.
17108 (vect_pattern_recog_1): Likewise.
17109
48b1474e
MJ
171102013-05-15 Martin Jambor <mjambor@suse.cz>
17111
17112 * ipa-prop.c (ipa_make_edge_direct_to_target): Redirect calls to
17113 non-functions to builtin_unreachable.
17114 * ipa-inline-transform.c (inline_call): Do not assert estimates were
17115 correct when new direct edges were discovered.
17116
9de04252
MJ
171172013-05-15 Martin Jambor <mjambor@suse.cz>
17118
17119 * ipa-prop.c (ipa_print_node_jump_functions): Print symbol order in
17120 header, print symbol order instead of node uid, print more information
17121 about indirect edge targets.
17122 (ipa_make_edge_direct_to_target): Print symbol order instead of node
17123 uids.
17124 (ipa_make_edge_direct_to_target): Likewise.
17125 (remove_described_reference): Likewise.
17126 (propagate_controlled_uses): Likewise.
17127 (ipa_print_node_params): Also print symbol order.
17128 (ipcp_transform_function): Print symbol order instead of node uids.
17129 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Likewise.
17130 (cgraph_get_create_real_symbol_node): Likewise.
17131 * ipa-cp.c (print_lattice): Likewise.
17132 (print_all_lattices): Likewise.
17133 (determine_versionability): Likewise.
17134 (initialize_node_lattices): Likewise.
17135 (estimate_local_effects): Likewise.
17136 (update_profiling_info): Likewise.
17137 (create_specialized_node): Likewise.
17138 (perhaps_add_new_callers): Likewise.
17139 (decide_about_value): Likewise.
17140 (decide_whether_version_node): Likewise.
17141 (identify_dead_nodes): Likewise.
17142 * ipa-inline-analysis.c (dump_inline_edge_summary): Likewise.
17143 (dump_inline_summary): Likewise.
17144 (estimate_node_size_and_time): Likewise.
17145 (inline_analyze_function): Likewise.
17146 * ipa-inline.c (report_inline_failed_reason): Likewise.
17147 (want_early_inline_function_p): Likewise.
17148 (edge_badness): Likewise.
17149 (update_edge_key): Likewise.
17150 (inline_small_functions): Likewise. Add dumping of order to two other
17151 dumps.
17152 * ipa-pure-const.c (pure_const_read_summary): Print symbol order
17153 instead of node uids.
17154 (propagate_pure_const): Likewise.
17155 (propagate_pure_const): Likewise.
17156 * ipa-utils.c (dump_cgraph_node_set): Likewise.
17157 * lto-cgraph.c (input_node): Explicitly specify we dump uid.
17158 * lto-symtab.c (lto_cgraph_replace_node): Print symbol order instead
17159 of node uids.
17160 * tree-pretty-print.c (dump_function_header): Likewise.
17161 * tree-sra.c (convert_callers_for_node): Dump in traditional format.
17162 Print symbol order instead of node uids.
17163
1dd03b91
AK
171642013-05-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17165
17166 * config/s390/s390.c (s390_register_move_cost): Don't impose the
17167 FPR<->GPR move cost penalty if ldgr/lgdr can be used.
17168
fdf6a7b9
RB
171692013-05-15 Richard Biener <rguenther@suse.de>
17170
17171 PR tree-optimization/57275
17172 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Fix
17173 return value for fail to do runtime alias checks for gather loads.
17174
2d6e4603
JH
171752013-05-15 Jan Hubicka <jh@suse.cz>
17176
17177 PR lto/57038
17178 PR lto/47375
e7208ea3
UB
17179 * lto-symtab.c (lto_symtab_symbol_p): Add external symbol;
17180 weakrefs are not external.
17181 (lto_symtab_merge_decls): Fix thinko when dealing with
17182 non-lto_symtab decls.
2d6e4603
JH
17183 (lto_symtab_merge_cgraph_nodes): Use lto_symtab_symbol_p.
17184 (lto_symtab_prevailing_decl): Get int sync with lto_symtab_symbol_p.
17185 * varpool.c (dump_varpool_node): Dump more flags.
17186
83f44b39
GG
171872013-05-15 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
17188
17189 * config/i386/i386.c (processor_alias_table): Add instruction
17190 FSGSBASE for AMD bdver3 architecture.
17191
2e55d062
JJ
171922013-05-14 Jakub Jelinek <jakub@redhat.com>
17193
17194 * tree.c (warn_deprecated_use): Print file:line using locus color.
17195 * diagnostic.c (diagnostic_report_current_module): Print file:line
17196 and file:line:column using locus color.
17197
0bfdb81e
MS
171982013-05-14 Mike Stump <mikestump@comcast.net>
17199
17200 * gdbinit.in: Add __null.
17201
a508ef22
MS
172022013-05-14 Mike Stump <mikestump@comcast.net>
17203
17204 * recog.h: Rename struct recog_data to Recog_data.
17205 * recog.c: Likewise.
17206 * reload.c (can_reload_into): Likewise.
17207 * config/picochip/picochip.c: Likewise.
17208
e7180acb
MS
172092013-05-14 Mike Stump <mikestump@comcast.net>
17210
17211 * web.c (union_match_dups): Also check DF_REF_REAL_LOC.
17212
61216c26
SB
172132013-05-14 Steven Bosscher <steven@gcc.gnu.org>
17214
fd6beed4
SB
17215 * resource.h (struct resources): Remove unch_memory member.
17216 (CLEAR_RESOURCE): Don't clear unch_memory.
17217 * resource.c (mark_referenced_resources): Don't set it.
17218 (mark_set_resources): Likewise.
17219 (mark_target_live_regs): Don't clear it.
17220 (init_resource_info): Likewise.
17221 * reorg.c (resource_conflicts_p): Don't compare it.
17222 (redundant_insn): Don't set it.
17223
61216c26
SB
17224 * rtl.h (next_label, skip_consecutive_labels, link_cc0_insns):
17225 Remove prototypes.
17226 * emit-rtl.c (next_label): Remove unused function.
17227 (skip_consecutive_labels, link_cc0_insns): Move to ...
17228 * reorg.c (skip_consecutive_labels, link_cc0_insns): ... here, the
17229 only place where these functions are used, and make them static.
17230
418d1b87
MG
172312013-05-14 Marc Glisse <marc.glisse@inria.fr>
17232
17233 * fold-const.c (fold_negate_expr): Handle vectors.
17234 (fold_truth_not_expr): Make it static.
17235 (fold_invert_truthvalue): New static function.
17236 (invert_truthvalue_loc): Handle vectors. Do not call
17237 fold_truth_not_expr directly.
17238 (fold_unary_loc) <BIT_NOT_EXPR>: Handle comparisons.
17239 <TRUTH_NOT_EXPR>: Do not cast to boolean.
17240 (fold_comparison): Handle vector constants.
17241 (fold_binary_loc) <TRUTH_XOR_EXPR>: Remove redundant code.
17242 (fold_ternary_loc) <VEC_COND_EXPR>: Adapt more COND_EXPR optimizations.
17243 * tree.h (fold_truth_not_expr): Remove declaration.
17244
fc21784d
JG
172452013-05-14 James Greenhalgh <james.greenhalgh@arm.com>
17246
17247 * config/aarch64/aarch64-simd.md
17248 (aarch64_vcond_internal<mode>): Rename to...
17249 (aarch64_vcond_internal<mode><mode>): ...This, for integer modes.
17250 (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): ...This for
17251 float modes. Clarify all iterator modes.
17252 (vcond<mode><mode>): Use new name for vcond expanders.
17253 (vcond<v_cmp_result><mode>): Likewise.
17254 (vcondu<mode><mode>: Likewise.
17255 * config/aarch64/iterators.md (VDQF_COND): New.
17256
d4c52634
MG
172572013-05-14 Marc Glisse <marc.glisse@inria.fr>
17258
17259 PR bootstrap/57266
17260 * fold-const.c (fold_binary_loc) <shift>: Use an unsigned
17261 variable for the shift amount. Check that we shift by non-negative
17262 amounts.
17263
2b261262
CLT
172642013-05-14 Chung-Lin Tang <cltang@codesourcery.com>
17265
17266 PR target/42017
17267 * config/arm/arm.h (EPILOGUE_USES): Only return true
17268 for LR_REGNUM after epilogue_completed.
17269
12211b99 172702013-05-14 Joern Rennecke <joern.rennecke@embecosm.com>
6e022d7b
JR
17271
17272 * config/avr/avr.c (avr_encode_section_info): Bail out if the type
e7208ea3 17273 is error_mark_node.
6e022d7b 17274
56cf7859
RO
172752013-05-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17276
17277 PR target/57261
17278 * configure.ac (gcc_cv_ld_as_needed): Disable before Solaris 11
17279 and Solaris 11+/x86 with gld.
17280 * configure: Regenerate.
17281
75776c6d
JJ
172822013-05-14 Jakub Jelinek <jakub@redhat.com>
17283
17284 * expmed.c (expand_shift_1): Canonicalize rotates by
17285 constant bitsize / 2 to bitsize - 1.
7f998021 17286 * simplify-rtx.c (simplify_binary_operation_1) <case ROTATE,
75776c6d
JJ
17287 case ROTATERT>: Likewise.
17288
17289 Revert:
17290 2013-05-10 Jakub Jelinek <jakub@redhat.com>
17291
17292 * config/i386/i386.md (rotateinv): New code attr.
17293 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
17294 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
17295 roll $31, %eax, etc.
17296
df35498a
RB
172972013-05-14 Richard Biener <rguenther@suse.de>
17298
17299 PR middle-end/57235
17300 * tree-eh.c (sink_clobbers): Give up for successors with
17301 multiple predecessors and no virtual uses.
17302
cc6e7ece
EB
173032013-05-14 Eric Botcazou <ebotcazou@adacore.com>
17304
17305 * config/sparc/sp64-elf.h (CPP_SUBTARGET_SPEC): Delete.
17306 * config/sparc/openbsd64.h (CPP_SUBTARGET_SPEC): Likewise.
17307
f778dd4d
JJ
173082013-05-14 Jakub Jelinek <jakub@redhat.com>
17309
17310 PR middle-end/57251
17311 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Handle
17312 the case when both op0 and op1 have VOIDmode.
17313
bad4df9b
KP
173142013-05-14 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
17315
17316 * config/rl78/rl78.md(mulsi3_g13): Add additional 'nop' required
17317 in multiply-accumulate mode.
17318
56f3e9ac
GW
173192013-05-13 Guozhi Wei <carrot@google.com>
17320
17321 * dwarf2asm.c (dw2_output_indirect_constant_1): Mark new decl STATIC.
17322
a3d7ab92
KT
173232013-05-13 Kai Tietz <ktietz@redhat.com>
17324
17325 PR target/56975
17326 * config/i386/cygming.h (TARGET_PECOFF): Define as true.
e7208ea3 17327 * config/i386/i386.h (TARGET_PECOFF): Define by default as false.
a3d7ab92 17328 (PIC_OFFSET_TABLE_REGNUM): Use TARGET_PECOFF.
e7208ea3 17329 * config/i386/i386.c (ix86_option_override_internal): Likewise.
a3d7ab92
KT
17330 (ix86_expand_prologue): Likewise.
17331 (ix86_expand_split_stack_prologue): Likewise.
17332 (legitimate_pic_address_disp_p): Likewise.
17333 (legitimize_pic_address): Likewise.
17334 (legitimize_tls_address): Likewise.
17335 (legitimize_pe_coff_symbol): Likewise.
17336 (output_pic_addr_const): Likewise.
17337 (construct_plt_address): Likewise.
17338 (ix86_expand_call): Likewise.
17339 (x86_output_mi_thunk): Likewise.
17340 (x86_function_profiler): Likewise.
17341
c59b7e28
SN
173422013-05-13 Sofiane Naci <sofiane.naci@arm.com>
17343
17344 * config/aarch64/aarch64-simd.md (aarch64_simd_mov<mode>): Group
17345 similar switch cases.
17346 (aarch64_simd_mov): Rename to aarch64_split_simd_mov. Update.
17347 (aarch64_simd_mov_to_<mode>low): Delete.
17348 (aarch64_simd_mov_to_<mode>high): Delete.
17349 (move_lo_quad_<mode>): Add w<-r alternative.
17350 (aarch64_simd_move_hi_quad_<mode>): Likewise.
17351 (aarch64_simd_mov_from_*): Update type attribute.
17352 * config/aarch64/aarch64.c (aarch64_split_simd_move): Refacror switch
17353 statement.
17354
5f28524a
JH
173552013-05-13 Jan Hubicka <jh@suse.cz>
17356
17357 * mode-switching.c (optimize_mode_switching): Set correct RTL profile.
17358 * config/i386/i386.c (ix86_compute_frame_layout,
e7208ea3
UB
17359 ix86_expand_epilogue, emit_i387_cw_initialization,
17360 ix86_expand_vector_move_misalign, ix86_fp_comparison_strategy,
17361 ix86_local_alignment): Fix use of size/speed predicates.
5f28524a 17362
ae6fa899
JJ
173632013-05-13 Jakub Jelinek <jakub@redhat.com>
17364
17365 PR tree-optimization/45216
17366 PR tree-optimization/57157
17367 * tree-ssa-forwprop.c (simplify_rotate): Only recognize
17368 the (-Y) & (B - 1) variant if OP is |.
17369 * expmed.c (expand_shift_1): For rotations by const0_rtx just
17370 return shifted. Use (-op1) & (prec - 1) as other_amount
17371 instead of prec - op1.
17372
4502fe8d
MJ
173732013-05-13 Martin Jambor <mjambor@suse.cz>
17374
17375 PR middle-end/42371
17376 * ipa-prop.h (IPA_UNDESCRIBED_USE): New macro.
17377 (ipa_constant_data): New type.
17378 (ipa_jump_func): Use ipa_constant_data to hold information about
17379 constant jump functions.
17380 (ipa_get_jf_constant): Adjust to jump function type changes.
17381 (ipa_get_jf_constant_rdesc): New function.
17382 (ipa_param_descriptor): New field controlled_uses.
17383 (ipa_get_controlled_uses): New function.
17384 (ipa_set_controlled_uses): Likewise.
17385 * ipa-ref.h (ipa_find_reference): Declare.
17386 * ipa-prop.c (ipa_cst_ref_desc): New type.
17387 (ipa_print_node_jump_functions_for_edge): Adjust for jump function type
17388 changes.
17389 (ipa_set_jf_constant): Likewise. Also create reference descriptions.
17390 New parameter cs. Adjust all callers.
17391 (ipa_analyze_params_uses): Detect uncontrolled and controlled uses.
17392 (remove_described_reference): New function.
17393 (jfunc_rdesc_usable): Likewise.
17394 (try_make_edge_direct_simple_call): Decrement controlled use count,
17395 attempt to remove reference if it hits zero.
17396 (combine_controlled_uses_counters): New function.
17397 (propagate_controlled_uses): Likewise.
17398 (ipa_propagate_indirect_call_infos): Call propagate_controlled_uses.
17399 (ipa_edge_duplication_hook): Duplicate reference descriptions.
17400 (ipa_print_node_params): Print described use counter.
17401 (ipa_write_jump_function): Adjust to jump function type changes.
17402 (ipa_read_jump_function): New parameter CS, pass it to
17403 ipa_set_jf_constant. Adjust caller.
17404 (ipa_write_node_info): Stream controlled use count
17405 (ipa_read_node_info): Likewise.
17406 * cgraph.c (cgraph_mark_address_taken_node): Bail out instead of
17407 asserting.
17408 * ipa-cp.c (ipcp_discover_new_direct_edges): Decrement controlled use
17409 count. Remove cloning-added reference if it reaches zero.
17410 * ipa-ref.c (ipa_find_reference): New function.
17411
0864bfc2
GG
174122013-05-13 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
17413
e7208ea3 17414 * config/i386/i386.c (processor_target_table): Modified default
0864bfc2
GG
17415 alignment values for AMD BD and BT architectures.
17416
640bfeb2
MG
174172013-05-13 Marc Glisse <marc.glisse@inria.fr>
17418
17419 * tree-vect-generic.c (uniform_vector_p): Move ...
17420 * tree.c (uniform_vector_p): ... here.
17421 * tree.h (uniform_vector_p): Declare it.
17422 * fold-const.c (fold_binary_loc) <shift>: Turn the second argument
17423 into a scalar.
17424
3a60f32b
JJ
174252013-05-13 Jakub Jelinek <jakub@redhat.com>
17426
198fe1bf
JJ
17427 PR tree-optimization/57230
17428 * tree-ssa-strlen.c (handle_char_store): Record length for
17429 array store from STRING_CST.
17430
3a60f32b
JJ
17431 PR tree-optimization/57230
17432 * tree-ssa-strlen.c (handle_char_store): Add missing integer_zerop
17433 check.
17434
566be57c
JR
174352013-05-12 Joern Rennecke <joern.rennecke@embecosm.com>
17436
17437 * config/epiphany/epiphany.c (epiphany_init): Check size of
17438 NUM_MODES_FOR_MODE_SWITCHING.
17439 (epiphany_expand_prologue):
17440 Remove CONFIG_REGNUM initial value handling code.
17441 (epiphany_optimize_mode_switching): Handle EPIPHANY_MSW_ENTITY_CONFIG.
17442 (epiphany_mode_needed, epiphany_mode_entry_exit): Likewise.
2710a27a 17443 (emit_set_fp_mode, epiphany_mode_after): Likewise.
566be57c
JR
17444 (epiphany_mode_needed) <Handle EPIPHANY_MSW_ENTITY_AND>:
17445 Don't return 1 for FP_MODE_NONE.
17446 * config/epiphany/epiphany.h (NUM_MODES_FOR_MODE_SWITCHING):
17447 Add value for EPIPHANY_MSW_ENTITY_CONFIG.
17448 (EPIPHANY_MSW_ENTITY_CONFIG, EPIPHANY_MSW_ENTITY_NUM): Define.
17449 * config/epiphany/epiphany.md (save_config): New pattern.
17450
0f2c2331
UB
174512013-05-12 Uros Bizjak <ubizjak@gmail.com>
17452
17453 * config/i386/i386.md (*zero_extendsidi2): Add *x->?r alternative.
17454
5b3f93c7
UB
174552013-05-10 Uros Bizjak <ubizjak@gmail.com>
17456
17457 * config/i386/i386.md (memory): Handle sseishft1.
17458 * config/i386/sse.md (*vec_extractv4si): Remove memory attribute.
17459 (*vec_extractv2di_1): Ditto.
17460
1f873f0e
VM
174612013-05-10 Vladimir Makarov <vmakarov@redhat.com>
17462
17463 * lra-assigns.c (find_hard_regno_for): Add 1 to the cost of call
17464 saved registers.
17465
341427fa 174662013-05-10 Sebastian Huber <sebastian.huber@embedded-brains.de>
d7de6455
SH
17467
17468 * config/arm/t-rtems-eabi: Remove mthumb/march=armv7 multilib.
17469 Add mthumb/march=armv7-a multilib.
17470 Add mthumb/march=armv7-r multilib.
17471 Add mthumb/march=armv7-a/mfpu=neon/mfloat-abi=hard multilib.
17472
9e69bdde
RC
174732013-05-10 Ralf Corsépius <ralf.corsepius@rtems.org>
17474
17475 * config/v850/t-rtems: Add more multilibs.
17476
9ff09a22
RB
174772013-05-10 Richard Biener <rguenther@suse.de>
17478
17479 PR tree-optimization/57214
17480 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling): Do
17481 not propagate from SSA names that occur in abnormal PHI nodes.
17482
a5e0cd1d
MG
174832013-05-10 Marc Glisse <marc.glisse@inria.fr>
17484
17485 * stor-layout.c (element_precision): New function.
17486 * machmode.h (element_precision): Declare it.
17487 * tree.c (build_minus_one_cst): New function.
17488 (element_precision): Likewise.
17489 * tree.h (build_minus_one_cst): Declare new function.
17490 (element_precision): Likewise.
17491 * fold-const.c (operand_equal_p): Use element_precision.
17492 (fold_binary_loc): Handle vector types.
17493 * convert.c (convert_to_integer): Use element_precision.
17494 * gimple.c (iterative_hash_canonical_type): Handle complex and vectors
17495 separately.
17496
cb2558bc
RS
174972013-05-10 Richard Sandiford <rdsandiford@googlemail.com>
17498
17499 * config/mips/mips-protos.h (m16_uimm3_b, m16_simm4_1, m16_nsimm4_1)
17500 (m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4, m16_simm8_1)
17501 (m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1, m16_uimm8_4)
17502 (m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
17503 * config/mips/mips.c (m16_check_op, m16_uimm3_b, m16_simm4_1)
17504 (m16_nsimm4_1, m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4)
17505 (m16_simm8_1, m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1)
17506 (m16_uimm8_4, m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
17507 * config/mips/constraints.md (Udb8, Usb5, Usb8, Usd8, Uub8, Uuw5)
17508 (Uuw8): New constraints.
17509 (Usb4): Move into alphabetical order.
17510 * config/mips/predicates.md (db8_operand, sb5_operand, sb8_operand)
17511 (sd8_operand, ub8_operand, uw8_operand): New predicates.
17512 * config/mips/mips.md (*xor<mode>3, *xor<mode>3_mips16): Name
17513 previously unnamed patterns.
17514 (*add<mode>3_mips16, *xor<mode>3_mips16, *<optab>si3_mips16)
17515 (*ashldi3_mips16, *ashrdi3_mips16, *lshrdi3_mips16)
17516 (*slt<u>_<GPR:mode><GPR2:mode>_mips16)
17517 (*sle<u>_<GPR:mode><GPR2:mode>_mips16): Use constraints instead
17518 of set_attr_alternative/if_then_else. Use extended_mips16 instead
17519 of specific lengths.
17520
cb3b8d33
JJ
175212013-05-10 Jakub Jelinek <jakub@redhat.com>
17522
6f93c008
JJ
17523 * config/i386/i386.md (rotateinv): New code attr.
17524 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
17525 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
17526 roll $31, %eax, etc.
17527
cb3b8d33
JJ
17528 PR tree-optimization/45216
17529 PR tree-optimization/57157
17530 * tree-ssa-forwprop.c (simplify_rotate): New function.
17531 (ssa_forward_propagate_and_combine): Call it.
17532
afb119be
RB
175332013-05-10 Richard Biener <rguenther@suse.de>
17534
17535 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
17536 disable peeling when we version for aliasing.
17537 (vector_alignment_reachable_p): Honor explicit user alignment.
17538 (vect_supportable_dr_alignment): Likewise.
17539 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Use
17540 STMT_VINFO_LOOP_PHI_EVOLUTION_PART instead of recomputing it.
17541 * tree-vect-loop.c (vect_transform_loop): First apply versioning,
17542 then peeling to arrange for the cost-model check to come first.
17543
01ae4861
AM
175442013-05-10 Alan Modra <amodra@gmail.com>
17545
17546 * configure.ac (HAVE_AS_TLS): Swap powerpc64 and powerpc cases.
17547 (HAVE_LD_LARGE_TOC): Don't mention AIX in help text.
17548 * configure: Regenerate.
17549
ebc9a431
AM
175502013-05-10 Alan Modra <amodra@gmail.com>
17551
17552 PR target/55033
17553 * varasm.c (default_elf_select_section): Move !DECL_P check..
17554 (get_named_section): ..to here before calling get_section_name.
17555 Adjust assertion.
17556 (default_section_type_flags): Add DECL_P check.
17557 * config/i386/winnt.c (i386_pe_section_type_flags): Likewise.
17558 * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags): Likewise.
17559
d4bca93c
JR
175602013-05-09 Joern Rennecke <joern.rennecke@embecosm.com>
17561
17562 * config/epiphany/epiphany.c (epiphany_expand_prologue):
17563 When using gen_stack_adjust_str with a register offset, add a
17564 REG_FRAME_RELATED_EXPR note.
17565
60ca9a65
UB
175662013-05-09 Uros Bizjak <ubizjak@gmail.com>
17567
17568 * config/i386/sse.md (*vec_extractv4si_0_zext): New pattern.
17569 (*vec_extractv4si_zext_mem): Ditto.
17570 (*vec_extractv2di): Add 0->x and x->x alternatives.
17571 * config/i386/mmx.md (*vec_extractv2si_zext_mem): New pattern.
17572 * config/i386/i386.md (*zero_extendsidi2): Add *Yj->?r alternative.
17573
a3409c02
JM
175742013-05-09 Jason Merrill <jason@redhat.com>
17575
0138d6b2
JM
17576 N3639 C++1y VLA support
17577 * gimplify.c (gimplify_vla_decl): Don't touch an existing
17578 DECL_VALUE_EXPR.
17579
a3409c02
JM
17580 * tree.c (build_constructor_va): New.
17581 * tree.h: Declare it.
17582
66e6b990
MJ
175832013-05-09 Martin Jambor <mjambor@suse.cz>
17584
17585 PR lto/57084
17586 * gimple-fold.c (canonicalize_constructor_val): Call
17587 cgraph_get_create_real_symbol_node instead of cgraph_get_create_node.
17588
64cfa6c0
JH
175892013-05-09 Jan Hubicka <jh@suse.cz>
17590 Richard Biener <rguenther@suse.de>
17591
17592 PR lto/54095
17593 * symtab.c (symtab_make_decl_local): Do not add private names.
17594
c3167b00
JH
175952013-05-09 Jan Hubicka <jh@suse.cz>
17596
17597 PR lto/54095
17598 * symtab.c (insert_to_assembler_name_hash): Handle clones.
17599 (unlink_from_assembler_name_hash): Likewise.
17600 (symtab_prevail_in_asm_name_hash, symtab_register_node,
17601 symtab_unregister_node, symtab_initialize_asm_name_hash,
17602 change_decl_assembler_name): Update.
17603
12dc6974
SN
176042013-05-09 Sofiane Naci <sofiane.naci@arm.com>
17605
17606 * config/aarch64/aarch64.md: New movtf split.
17607 (*movtf_aarch64): Update.
17608 (aarch64_movdi_tilow): Handle TF modes and rename to
17609 aarch64_movdi_<mode>low.
17610 (aarch64_movdi_tihigh): Handle TF modes and rename to
17611 aarch64_movdi_<mode>high
17612 (aarch64_movtihigh_di): Handle TF modes and rename to
17613 aarch64_mov<mode>high_di
17614 (aarch64_movtilow_di): Handle TF modes and rename to
17615 aarch64_mov<mode>low_di
17616 (aarch64_movtilow_tilow): Remove spurious whitespace.
17617 * config/aarch64/aarch64.c (aarch64_split_128bit_move): Handle TFmode
17618 splits.
17619 (aarch64_print_operand): Update.
17620
227eb343
AM
176212013-05-09 Alan Modra <amodra@gmail.com>
17622
17623 * configure.ac (HAVE_AS_TLS): Enable tests for powerpcle and
17624 powerpc64le.
17625 * configure: Regenerate.
17626
0b013847
UB
176272013-05-08 Uros Bizjak <ubizjak@gmail.com>
17628
17629 * config/i386/mmx.md (*vec_extract* splitters): Simplify post-reload
17630 splitter preparation statements.
17631 * config/i386/sse.md (*vec_extract* splitters): Ditto.
17632 (*avx_vperm_broadcast_<mode>): Use adjust_address instead of
17633 adjust_address_nv.
17634
1dc3d6e9
BS
176352013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17636
17637 * gimple-ssa-strength-reduction.c (count_candidates): Change
17638 return value to int.
17639 (analyze_candidates_and_replace): Change type of length to int.
17640
e61e7d28
UB
176412013-05-08 Uros Bizjak <ubizjak@gmail.com>
17642
17643 * config/i386/sse.md (PEXTR_MODE, PEXTR_MODEx): Remove.
17644 (*vec_extract<mode>): Use VI12_128 mode iterator.
17645 (*vec_extract<mode>_mem): Ditto.
17646 (*vec_extract*_mem splitters): Merge splitters using VI_128 mode
17647 attribute.
17648
4fbfcf44
DN
176492013-05-08 Diego Novillo <dnovillo@google.com>
17650
17651 PR bootstrap/54659
17652
17653 Revert:
4fbfcf44
DN
17654 2012-08-17 Diego Novillo <dnovillo@google.com>
17655
e61e7d28
UB
17656 PR bootstrap/54281
17657 * configure.ac: Add libintl.h to AC_CHECK_HEADERS list.
17658 * config.in: Regenerate.
17659 * configure: Regenerate.
17660 * intl.h: Always include libintl.h if HAVE_LIBINTL_H is set.
4fbfcf44 17661
702d8703
JH
176622013-05-08 Jan Hubicka <jh@suse.cz>
17663
17664 PR lto/54095
17665 * cgraph.c (cgraph_make_node_local_1): Se unique_name.
17666 * cgraph.h (symtab_node_base): Add unique_name.
17667 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
17668 input_overwrite_node, input_varpool_node): Stream unique_name.
17669 * cgraphclones.c (cgraph_create_virtual_clone,
17670 cgraph_function_versioning): Set unique_name.
17671 * ipa.c (function_and_variable_visibility): Set unique_name.
17672
8b28cf47
BS
176732013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17674
17675 * gimple-ssa-strength-reduction.c (find_phi_def): Revert former "fix."
17676 (alloc_cand_and_find_basis): Restrict conditional candidate
17677 processing to CAND_MULTs.
17678
e86074fd
JH
176792013-05-08 Jan Hubicka <jh@suse.cz>
17680
17681 PR lto/54095
17682 lto-symtab.c (lto_symtab_symbol_p): New function.
17683 (lto_symtab_resolve_can_prevail_p, lto_symtab_resolve_symbols,
17684 lto_symtab_resolve_symbols, lto_symtab_merge_decls_2,
17685 lto_symtab_merge_decls_1, lto_symtab_merge_cgraph_nodes_1):
17686 Skip static symbols.
17687
44398cbe
PC
176882013-05-08 Paolo Carlini <paolo.carlini@oracle.com>
17689
17690 PR tree-optimization/57200
17691 * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
17692 Only call inform if the preceding warning_at returns true.
17693
f6bc1c4a
HS
176942013-05-07 Han Shen <shenhan@google.com>
17695
17696 * cfgexpand.c (record_or_union_type_has_array_p): New function.
17697 (expand_used_vars): Add logic handling '-fstack-protector-strong'.
17698 * common.opt (fstack-protector-strong): New option.
17699 * doc/cpp.texi (__SSP_STRONG__): New builtin "__SSP_STRONG__".
17700 * doc/invoke.texi (Optimization Options): Document
17701 "-fstack-protector-strong".
17702 * gcc.c (LINK_SSP_SPEC): Add 'fstack-protector-strong'.
17703
4ffecb1f
SB
177042013-05-06 Steven Bosscher <steven@gcc.gnu.org>
17705
17706 * config/mips/mips.c (mips_machine_reorg2): Return 0.
17707
5a107a0f
VM
177082013-05-07 Vladimir Makarov <vmakarov@redhat.com>
17709
17710 * ira.c (update_equiv_regs): Add insn having equiv memory even if
17711 it is not lhs of the insn.
17712 (setup_reg_equiv): Remove insn having equiv memory which it is not
17713 lhs of the insn.
17714 * lra-constraints.c (process_address): Try to improve generation
17715 code for address base + disp.
17716 (lra_constraints): Make correct the code for checking insn setting
17717 up backward equivalence. Remove insn only if it is in the init
17718 insn list.
17719 * lra-eliminations.c (update_reg_eliminate): Change return value.
17720 (lra_eliminate): Use the result.
17721
3f5783ea
UB
177222013-05-07 Uros Bizjak <ubizjak@gmail.com>
17723
17724 * config/i386/sse.md (ssescalarnummask): New mode attribute.
17725 (PEXTR_MODE, PEXTR_MODEx): New mode iterators.
17726 (*vec_extract<mode>): Merge from *sse4_1_pextrb_memory and
17727 *sse4_1_pextrw_memory using PEXTR_MODE mode iterator. Handle
17728 register target operands.
17729 (*vec_extractv8hi_sse2): New pattern.
17730 (*vec_extractv16qi_zext): Rename from *sse4_1_pextrb_<mode>.
17731 (*vec_extractv8hi_zext): Rename from *sse2_pextrw_<mode>.
17732 (*vec_extract<mode>_mem): New insn and split pattern.
17733
8a5800b8
CL
177342013-05-07 Christophe Lyon <christophe.lyon@linaro.org>
17735
17736 * config/arm/arm.c (arm_asan_shadow_offset): New function.
17737 (TARGET_ASAN_SHADOW_OFFSET): Define.
17738 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Define.
17739 (LINUX_OR_ANDROID_CC): Add ASAN_CC1_SPEC.
17740
7bf55a70
BS
177412013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17742
17743 * gimple-ssa-strength-reduction.c (MAX_INCR_VEC_LEN): New constant.
17744 (incr_vec_index): Return -1 if increment not found.
17745 (create_add_on_incoming_edge): Assert if increment not found.
17746 (record_increment): Limit number of increments recorded.
17747 (all_phi_incrs_profitable): Return false if an increment not found.
17748 (replace_profitable_candidates): Don't process increments that were
17749 not recorded.
17750 (analyze_candidates_and_replace): Limit size of incr_vec.
17751
3f8825c0
RB
177522013-05-07 Richard Biener <rguenther@suse.de>
17753
17754 * calls.c (special_function_p): setjmp-like functions are leaf.
17755 * builtins.def (BUILT_IN_SETJMP): setjmp is leaf.
17756 * tree-inline.c (update_ssa_across_abnormal_edges): Remove assert.
17757
fd4842cd
SN
177582013-05-07 Sofiane Naci <sofiane.naci@arm.com>
17759
17760 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): call splitter.
17761 (aarch64_simd_mov<mode>): New expander.
17762 (aarch64_simd_mov_to_<mode>low): New instruction pattern.
17763 (aarch64_simd_mov_to_<mode>high): Likewise.
17764 (aarch64_simd_mov_from_<mode>low): Likewise.
17765 (aarch64_simd_mov_from_<mode>high): Likewise.
17766 (aarch64_dup_lane<mode>): Update.
17767 (aarch64_dup_lanedi): New instruction pattern.
17768 * config/aarch64/aarch64-protos.h (aarch64_split_simd_move): New prototype.
17769 * config/aarch64/aarch64.c (aarch64_split_simd_move): New function.
17770
a7a7d10e
BS
177712013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17772
17773 * gimple-ssa-strength-reduction.c (lazy_create_slsr_reg): Remove.
17774 (replace_mult_candidate): Remove unnecessary argument; remove
17775 unnecessary parameter from call to introduce_cast_before_cand.
17776 (replace_unconditional_candidate): Remove unnecessary parameter
17777 from call to replace_mult_candidate.
17778 (replace_conditional_candidate): Likewise.
17779 (insert_initializers): Use make_temp_ssa_name.
17780 (introduce_cast_before_cand): Remove unnecessary argument; use
17781 make_temp_ssa_name.
17782 (replace_one_candidate): Remove unnecessary argument; remove
17783 unnecessary parameter from calls to introduce_cast_before_cand.
17784 (replace_profitable_candidates): Remove unnecessary parameters
17785 from calls to replace_one_candidate.
17786
29105868
BS
177872013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17788
17789 * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
17790 phi def as possibly hiding a basis for a CAND_ADD whose operands
17791 have been commuted in the analysis.
17792 (alloc_cand_and_find_basis): Add parms to call to find_phi_def.
17793
4095f9fa
N
177942013-05-07 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
17795
17796 * config/aarch64/aarch64.md
17797 (cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): Restrict the
17798 shift value between 0-4.
17799
39e843e8
RB
178002013-05-07 Richard Biener <rguenther@suse.de>
17801
17802 * double-int.h (rshift): New overload.
17803 * double-int.c (rshift): New function.
17804 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Optimize.
17805 (create_reference_ops_from_ref): Remove.
17806 (vn_reference_insert): Use shared ops for constructing the
17807 reference and copy it.
17808
0a1a83cb
RB
178092013-05-07 Richard Biener <rguenther@suse.de>
17810
17811 PR middle-end/57190
17812 * tree-eh.c (sink_clobbers): Properly propagate
17813 SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
17814
43303d6f
JJ
178152013-05-07 Jakub Jelinek <jakub@redhat.com>
17816
ba7e83f8
JJ
17817 PR tree-optimization/57149
17818 * tree-ssa-uninit.c (uninit_undefined_value_p): New inline.
17819 (can_skip_redundant_opnd, compute_uninit_opnds_pos,
17820 collect_phi_def_edges, execute_late_warn_uninitialized): Use
17821 uninit_undefined_value_p instead of ssa_undefined_value_p.
17822
43303d6f
JJ
17823 PR debug/57184
17824 * expr.c (expand_expr_addr_expr_1): Handle COMPOUND_LITERAL_EXPR
17825 for modifier == EXPAND_INITIALIZER.
17826
14523c25
AB
178272013-05-07 Anton Blanchard <anton@samba.org>
17828
17829 * configure.ac (HAVE_LD_LARGE_TOC): Use correct linker emulation
17830 for powerpc64 little endian.
17831 * configure: Regenerate.
17832
cb7c8be9
GS
178332013-05-06 Graham Stott <grahams@btinternet.com>
17834
17835 * expmed.c (init_expmed_rtl): Remove unused fields reg_fld, plus_fld,
17836 mult_fld, sdiv_fld1, udiv_fld1, sdiv_32_fld1, smod_32_fld1,
17837 wide_mult_fld1, wide_lshr_fld1, shift_fld1, shift_mult_fld1,
17838 shift_add_fld1, shift_sub0_fld1, shift_sub1_fld1.
17839
178402013-05-06 Graham Stott <grahams@btinternet.com>
a8fd4225
GS
17841
17842 * gensupport.c (add_predicate_code): Also exclude SCRATCH from rtx
17843 codes which allow non-lvalues.
17844
9a0ee7b0
MG
178452013-05-06 Marc Glisse <marc.glisse@inria.fr>
17846
17847 * tree.c (integer_all_onesp) <COMPLEX_CST>: Test that both
17848 components are all 1s.
17849 (integer_minus_onep): New function.
17850 * tree.h (integer_minus_onep): Declare it.
17851 * fold-const.c (fold_binary_loc) <MULT_EXPR>: Test
17852 integer_minus_onep instead of integer_all_onesp.
17853
f2c17ea9
OE
178542013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
17855
17856 PR target/52933
17857 * config/sh/sh.md (*cmp_div0s_0, *cmp_div0s_1, *movsicc_div0s): Add
17858 variations of these patterns.
17859
f75e6a51
UB
178602013-05-06 Uros Bizjak <ubizjak@gmail.com>
17861
17862 * config/i386/i386.md (isa): Add x64_sse4 member.
17863 (enabled): Handle x64_sse4.
17864 (*movdi_internal): Add *x->?r alternative to emit pextrq $0,%xmm,%reg
17865 instruction for 64bit SSE4_1 targets. Update insn attributes.
17866 (*movsi_internal): Add *x->?r alternative to emit pextrd $0,%xmm,%reg
17867 instruction for SSE4_1 targets. Update insn attributes.
17868 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
17869 with *sse4_1_pextrd and *sse4_1_pextrq having const_0 selector.
17870 (*vec_extractv2di_1): Merge with *sse4_1_pextrq having
17871 const_1 selector.
17872 (*vec_extractv4si): Rename from *sse4_1_pextrd.
17873 (*vec_extractv4si_zext): Rename from *sse4_1_pextrd_zext.
17874 (*vec_extract<ssevecmodelower>_0 splitters): Merge splitters together.
17875
a986d468
OE
178762013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
17877
17878 PR target/57108
17879 * config/sh/sh.md (tstsi_t_zero_extract_eq): Use QIHISIDI mode iterator.
17880
382522cb
MK
178812013-05-06 Maxim Kuznetsov <maks.kuznetsov@gmail.com>
17882
17883 * final.c (do_assembler_dialects): Don't handle curly braces and
17884 vertical bar escaped by % as dialect delimiters.
17885 (output_asm_insn): Print curly braces and vertical bar if escaped
17886 by % and ASSEMBLER_DIALECT defined.
17887 * doc/tm.texi.in (ASSEMBLER_DIALECT): Document new standard escapes.
17888 * doc/tm.texi: Regenerated.
17889
fb0d5c60
SB
178902013-05-06 Steven Bosscher <steven@gcc.gnu.org>
17891
fb0d5c60
SB
17892 * config/mips/mips.c: Include tree-pass.h.
17893 (mips_reorg): Split in pre- and post-dbr_schedule parts.
17894 (mips_machine_reorg2): Move mips_reorg post-dbr_schedule parts here.
17895 (pass_mips_machine_reorg2): New machine specific pass.
17896 (insert_pass_mips_machine_reorg2): New pass plugin definition.
17897 (mips_option_override): Register the new pass.
17898 * rtl.h (cleanup_barriers): Remove prototype.
17899 (dbr_schedule): Likewise.
17900 * jump.c (cleanup_barriers): Make static.
17901 * reorg.c (dbr_schedule): Likewise.
17902
aa06a978
RB
179032013-05-06 Richard Biener <rguenther@suse.de>
17904
17905 PR tree-optimization/57185
17906 * tree-parloops.c (add_field_for_reduction): Handle anonymous
17907 SSA names properly.
17908
0b953bec
UB
179092013-05-06 Uros Bizjak <ubizjak@gmail.com>
17910
17911 PR target/57106
17912 * config/i386/i386.c (add_parameter_dependencies): Add dependence
17913 between "first_arg" and "insn", not "last" and "insn".
17914
28708525
WS
179152013-05-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17916
17917 * gimple-ssa-strength-reduction.c (slsr_process_phi): Re-enable.
17918 (find_candidates_in_block): Re-enable slsr_process_phi.
17919 (create_phi_basis): Fix double counting of candidate adjustment.
17920
0107dca2
RB
179212013-05-06 Richard Biener <rguenther@suse.de>
17922
17923 PR middle-end/57147
17924 * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): If
17925 the edge is also fallthru, preserve it and just clear the
17926 abnormal flag.
17927 * tree-cfgcleanup.c (remove_fallthru_edge): If the edge is
17928 also complex, preserve that and just clear the fallthru flag.
17929 * tree-inline.c (update_ssa_across_abnormal_edges): Also
17930 update virtual operands.
17931
470d4d13
AM
179322013-05-06 Alan Modra <amodra@gmail.com>
17933
17934 * config/rs6000/linux.h (DEFAULT_ASM_ENDIAN): Define.
17935 (LINK_OS_LINUX_EMUL): Use ENDIAN_SELECT.
17936 * config/rs6000/linux64.h (DEFAULT_ASM_ENDIAN): Define.
17937 * config/rs6000/sysv4le.h (DEFAULT_ASM_ENDIAN): Define.
17938 (LINK_TARGET_SPEC): Use ENDIAN_SELECT.
17939 * config/rs6000/sysv4.h (DEFAULT_ASM_ENDIAN): Define as -mbig.
17940
8f1dbf8d
AM
179412013-05-06 Alan Modra <amodra@gmail.com>
17942
17943 * config/rs6000/sysv4.h (ENDIAN_SELECT): Define, extracted from
17944 (ASM_SPEC): ..here. Emit DEFAULT_ASM_ENDIAN too.
17945 (DEFAULT_ASM_ENDIAN): Define.
17946 (CC1_SPEC, LINK_TARGET_SPEC): Use ENDIAN_SELECT.
17947 * config/rs6000/linux64.h (ASM_SPEC32): Remove endian options.
17948 Update -K PIC clause from sysv4.h.
17949 (ASM_SPEC_COMMON): Use ENDIAN_SELECT.
17950 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Likewise.
17951
54890767
AM
179522013-05-06 Alan Modra <amodra@gmail.com>
17953
17954 * config/rs6000/rs6000.md (bswapdi 2nd splitter): Don't swap words
17955 twice for little-endian.
17956 (ashrdi3_no_power, ashrdi3): Support little-endian.
17957
2353515d
OE
179582013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
17959
17960 PR target/55303
17961 * config/sh/sh.c (sh_rtx_costs): Handle SMIN and SMAX cases.
17962 * config/sh/sh.md (*clips, uminsi3, *clipu, clipu_one): New insns and
17963 related expanders.
17964 * config/sh/iterators.md (SMIN_SMAX): New code iterator.
17965 * config/sh/predicates.md (arith_reg_or_0_or_1_operand,
17966 clips_min_const_int, clips_max_const_int, clipu_max_const_int):
17967 New predicates.
17968
33e67557
SB
179692013-05-05 Steven Bosscher <steven@gcc.gnu.org>
17970 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17971
17972 * config.gcc (hppa*-*-*): Remove MASK_BIG_SWITCH from CPU default.
17973 * config/pa/pa.opt: Make mbig-switch a no-op.
17974 * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_BIG_SWITCH.
17975 (CASE_VECTOR_MODE): Always return SImode.
17976 (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove code
17977 for the !TARGET_BIG_SWITCH case.
17978 * config/pa/pa-linux.h: Likewise.
17979 * config/pa/pa-openbsd.h: Likewise.
17980 * config/pa/pa-hpux.h: Define TARGET_DEFAULT to 0.
17981 * config/pa/pa.md (short_jump): Remove define_insn.
17982 (casesi): Remove code for the !TARGET_BIG_SWITCH case.
17983 (casesi0): Remove define_insn.
17984 (type): Remove btable_branch.
17985 (pa_combine_type): Likewise.
17986 (in_nullified_branch_delay): Likewise.
17987 (in_call_delay): Likewise.
17988 (define_delay): Likewise.
17989 (define_insn_reservation "Z3"): Likewise.
17990 (define_insn_reservation "Z4"): Likewise.
17991 * config/pa/pa.c (pa_reorg): Remove code for !TARGET_BIG_SWITCH.
17992 (pa_adjust_insn_length): Remove adjustment for btable branches.
17993 * doc/invoke.texi (HPPA Options): Delete documentation for mbig-switch
17994 and mno-big-switch
17995
3095685e
UB
179962013-05-05 Uros Bizjak <ubizjak@gmail.com>
17997
17998 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
17999 from sse2_stored and *sse2_storeq_rex64 using SWI48 mode iterator.
18000 Add m->r,x alternatives.
18001 (*vec_extract<ssevecmodelower>_0 splitters): Merge V2DI and V4SI
18002 splitters using SWI48x mode iterator.
18003 (*vec_extract_v2di_0_sse): Rename from *sse2_storeq. Disable for
18004 TARGET_64BIT. Add m->x alternative.
18005 (*vec_extractv4si_mem): Rename from *vec_ext_v4si_mem.
18006 Add o->x alternative. Enable for TARGET_SSE.
18007 (sse_storeq): Remove expander.
18008 (*vec_extractv2di_1): Enable for TARGET_SSE. Split alternatives
18009 with memory input operand.
18010 (*vec_extractv2di_1 splitter): New.
18011 (*vec_extractv4sf_mem): Rename from *vec_extract_v4sf_mem.
18012 * config/i386/i386.md (ssevecmodelower): New mode attribute.
18013
4b36ae28
SB
180142013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
18015
18016 * config/rs6000/rs6000.c (INT_P): Reformat. Delete obsolete comment.
18017 (INT_LOWPART): Delete.
18018 (extract_MB): Adjust.
18019 (extract_ME): Adjust.
18020 (print_operand): Adjust.
18021
da226db2
SB
180222013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
18023
18024 * config/rs6000/predicates.md (reg_or_add_cint_operand,
18025 reg_or_sub_cint_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
18026 (reg_or_logical_cint_operand, easy_fp_constant,
18027 logical_const_operand): Delete "CONST_DOUBLE" case.
18028 * config/rs6000/rs6000.c (num_insns_constant_wide): Delete
18029 "HOST_BITS_PER_WIDE_INT == 64" test.
3095685e 18030 (num_insns_constant): Ditto. Delete CONST_DOUBLE DImode/VOIDmode case.
da226db2
SB
18031 (build_mask64_2_operands): Delete "HOST_BITS_PER_WIDE_INT >= 64" test.
18032 (rs6000_emit_set_const): Delete CONST_DOUBLE case.
18033 (rs6000_emit_set_long_const): Delete "HOST_BITS_PER_WIDE_INT >= 64"
18034 test.
18035 (includes_rldic_lshift_p, includes_rldicr_lshift_p): Delete
18036 CONST_DOUBLE DImode/VOIDmode case.
18037 (INT_P, INT_LOWPART): Delete CONST_DOUBLE case.
18038 (print_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case. Delete
18039 CONST_DOUBLE VOIDmode case.
18040 (output_toc): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
18041 (rs6000_rtx_costs): Delete CONST_DOUBLE DImode/VOIDmode case.
18042 * config/rs6000/rs6000.md (iordi3, xordi3, splitter for these):
18043 Delete CONST_DOUBLE case.
18044 (splitters for mov FMOVE64 const_double): Delete
18045 "HOST_BITS_PER_WIDE_INT == 32" case. Delete
18046 "HOST_BITS_PER_WIDE_INT >= 64" test.
18047 (splitter for mov DI const_int): Delete "HOST_BITS_PER_WIDE_INT == 32"
18048 case.
18049 (mov DI const_double): Delete.
18050
40de22d6
JJ
180512013-05-04 Jakub Jelinek <jakub@redhat.com>
18052
18053 * combine.c (combine_simplify_rtx) <case SUBREG>: If nonzero_bits
18054 on op shows all bits zero in mode of a lowpart subreg, return zero.
18055
5ec6aff2
MM
180562013-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
18057
18058 PR target/57150
18059 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Use DFmode
18060 to save TFmode registers and DImode to save TImode registers for
18061 caller save operations.
18062 (HARD_REGNO_CALL_PART_CLOBBERED): TFmode and TDmode do not need to
18063 mark being partially clobbered since they only use the first
18064 double word.
18065
18066 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): TFmode
18067 and TDmode only use the upper 64-bits of each VSX register.
18068
2cefad90
BS
180692013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18070
18071 * gimple-ssa-strength-reduction.c (slsr_process_phi): Disable.
18072 (find_candidates_in_block): Disable slsr_process_phi.
18073
d6d7eee1
GW
180742013-05-03 Guozhi Wei <carrot@google.com>
18075
18076 * coverage.c (coverage_obj_init): Move the construction of gcov
3095685e
UB
18077 constructor to ...
18078 (build_init_ctor): ... here.
d6d7eee1 18079
9b92d12b
BS
180802013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18081
18082 * gimple-ssa-strength-reduction.c (cand_kind): Add CAND_PHI.
18083 (slsr_cand_d): Redefine def_phi.
18084 (stride_status, phi_adjust_status, count_phis_status): New enums.
18085 (find_phi_def): New.
18086 (find_basis_for_base_expr): New.
18087 (find_basis_for_candidate): Handle hidden bases.
18088 (alloc_cand_and_find_basis): Handle phi candidates.
18089 (slsr_process_phi): New.
18090 (create_mul_ssa_cand): Exclude phi base candidates; use integer_onep.
18091 (create_mul_imm_cand): Likewise.
18092 (create_add_ssa_cand): Exclude phi base candidates.
18093 (create_add_imm_cand): Likewise.
18094 (slsr_process_cast): Likewise.
18095 (slsr_process_copy): Likewise.
18096 (find_candidates_in_block): Handle phi candidates.
18097 (dump_candidate): Likewise.
18098 (unconditional_cands): Delete.
18099 (unconditional_cands_with_known_stride_p): Delete.
18100 (phi_dependent_cand_p): New.
18101 (cand_increment): Handle phi-dependent candidates.
18102 (replace_dependent): Delete.
18103 (replace_mult_candidate): New.
18104 (replace_unconditional_candidate): New.
18105 (incr_vec_index): Move to avoid forward reference.
18106 (create_add_on_incoming_edge): New.
18107 (create_phi_basis): New.
18108 (replace_dependents): Delete.
18109 (replace_conditional_candidate): New.
18110 (phi_add_costs): New.
18111 (replace_uncond_cands_and_profitable_phis): New.
18112 (record_increment): Handle phi adjustments.
18113 (record_phi_increments): New.
18114 (record_increments): Handle phi adjustments.
18115 (phi_incr_cost): New.
18116 (lowest_cost_path): Handle phis.
18117 (total_savings): Likewise.
18118 (analyze_increments): Likewise.
18119 (ncd_with_phi): New.
18120 (ncd_of_cand_and_phis): New.
18121 (nearest_common_dominator_for_cands): Handle phi increments.
18122 (all_phi_incrs_profitable): New.
18123 (replace_profitable_candidates): Handle phi-dependent candidates.
18124 (analyze_candidates_and_replace): Likewise.
18125
68f073d4
TJ
181262013-05-03 Teresa Johnson <tejohnson@google.com>
18127
18128 PR bootstrap/57154
18129 * sched-rgn.c (compute_dom_prob_ps): Ensure accumulated probabilities
18130 do not exceed REG_BR_PROB_BASE.
18131
a4ee7cb9
JL
181322013-05-03 Jeff Law <law@redhat.com>
18133
ade67f70 18134 PR tree-optimization/57144
a4ee7cb9
JL
18135 * tree-vrp.c (simplify_cond_using_ranges): Verify the constant
18136 operand of the condition will bit into the new type when eliminating
18137 a cast feeding a condition.
18138
47954c4e
JJ
181392013-05-03 Jakub Jelinek <jakub@redhat.com>
18140
18141 PR rtl-optimization/57130
3095685e
UB
18142 * combine.c (make_compound_operation) <case SUBREG>: Pass SET instead
18143 of COMPARE as in_code to the recursive call if needed.
47954c4e 18144
3c21604f
UB
181452013-05-03 Uros Bizjak <ubizjak@gmail.com>
18146
18147 * config/i386/i386.md (isa): Add x64_sse4_noavx and x64_avx members.
18148 (enabled): Handle new members.
18149 * config/i386/sse.md (*vec_concatv2si): Merge from
18150 *vec_concatv2si_sse2 and vec_concatv2si_sse.
18151 (vec_concatv2di): Merge with *vec_concatv2di_rex64.
18152
12211b99 181532013-05-03 Joern Rennecke <joern.rennecke@embecosm.com>
95c03b36
JR
18154
18155 PR tree-optimization/57027
18156 * tree-ssa-math-opts.c (convert_mult_to_fma): When checking
18157 for fnms opportunity, check we got the prerequisite kind
18158 of tree / gimple before using accessor functions.
18159
07bfc9ec
RB
181602013-05-03 Richard Biener <rguenther@suse.de>
18161
18162 * double-int.h (lshift): New overload without precision
18163 and arith argument.
18164 (operator *=, operator +=, operator -=): Move ...
18165 * double-int.c (operator *=, operator +=, operator -=): ... here
18166 and implement more efficiently.
18167 (mul_double_with_sign): Remove.
18168 (lshift_double): Adjust to take unsinged shift argument, push
18169 dispatching code to callers.
18170 (mul_double_wide_with_sign): Add early out for callers that
18171 are not interested in high parts or overflow.
18172 (lshift): New function.
18173 (lshift, rshift, alshift, arshift, llshift, lrshift): Add
18174 dispatch code here.
18175 (lrotate, rrotate): Use logical shifts.
18176 * expr.c (get_inner_reference): Use lshift.
18177 * fixed-value.c (do_fixed_divide): Likewise.
18178 * tree-dfa.c (get_ref_base_and_extent): Likewise.
18179 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
18180 (indirect_refs_may_alias_p): Likewise.
18181 (stmt_kills_ref_p_1): Likewise.
18182
7769bb64
VP
181832013-05-03 Vidya Praveen <vidyapraveen@arm.com>
18184
18185 * config/aarch64/aarch64-simd.md (simd_fabd): Correct the description.
18186
1d0c8e5c
VP
181872013-05-03 Vidya Praveen <vidyapraveen@arm.com>
18188
18189 * config/aarch64/aarch64-simd.md (*fabd_scalar<mode>3): Support
18190 scalar form of FABD instruction.
18191
f15feaf9
VM
181922013-05-02 Vladimir Makarov <vmakarov@redhat.com>
18193
18194 * lra-constraints.c (process_alt_operands): Add checking alt
18195 number to choose the best alternative.
18196
d90e76d4
RB
181972013-05-02 Richard Biener <rguenther@suse.de>
18198
18199 * tree-eh.c (cleanup_empty_eh_merge_phis): Remove rename_virts
18200 bitmap and its handling.
18201 (pass_cleanup_eh): Set todo_flags_finish to TODO_verify_ssa.
18202
9f8e7a96
RB
182032013-05-02 Richard Biener <rguenther@suse.de>
18204
18205 PR middle-end/57140
18206 * tree-inline.c (copy_loops): Properly handle removed loops.
18207 (copy_cfg_body): Mark destination loops for fixup if source
18208 loops needed fixup.
18209
f3a81b39
GY
182102013-05-02 Greta Yorsh <Greta.Yorsh@arm.com>
18211
18212 PR target/56732
18213 * config/arm/arm.c (arm_expand_epilogue): Check really_return before
18214 generating simple_return for naked functions.
18215
7b920a9a
MJ
182162013-05-02 Martin Jambor <mjambor@suse.cz>
18217
18218 PR middle-end/56988
18219 * ipa-prop.h (ipa_agg_replacement_value): New flag by_ref.
18220 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also check that by_ref
18221 flags match.
18222 (find_aggregate_values_for_callers_subset): Fill in the by_ref flag of
18223 ipa_agg_replacement_value structures.
18224 (known_aggs_to_agg_replacement_list): Likewise.
18225 * ipa-prop.c (write_agg_replacement_chain): Stream by_ref flag.
18226 (read_agg_replacement_chain): Likewise.
18227 (ipcp_transform_function): Also check that by_ref flags match.
18228
2c41c19d
RB
182292013-05-02 Richard Biener <rguenther@suse.de>
18230
18231 * graphds.h (struct graph): Add obstack member.
18232 * graphds.c (new_graph): Initialize obstack and allocate
18233 vertices from it.
18234 (add_edge): Allocate edge from the obstack.
3c21604f 18235 (free_graph): Free the obstack instead of all edges and vertices.
2c41c19d 18236
8b47039c
TJ
182372013-05-02 Teresa Johnson <tejohnson@google.com>
18238
18239 * loop-unswitch.c (unswitch_loop): Use helper routines with rounding
18240 divides.
18241 * cfg.c (update_bb_profile_for_threading): Ditto.
18242 * tree-inline.c (copy_bb): Ditto.
18243 (copy_edges_for_bb): Ditto.
18244 (initialize_cfun): Ditto.
18245 (copy_cfg_body): Ditto.
18246 (expand_call_inline): Ditto.
18247 * ipa-inline-analysis.c (estimate_edge_size_and_time): Ditto.
18248 (estimate_node_size_and_time): Ditto.
18249 (inline_merge_summary): Ditto.
18250 * cgraphclones.c (cgraph_clone_edge): Ditto.
18251 (cgraph_clone_node): Ditto.
18252 * sched-rgn.c (compute_dom_prob_ps): Ditto.
18253 (compute_trg_info): Ditto.
18254
da65928c
IB
182552013-05-02 Ian Bolton <ian.bolton@arm.com>
18256
18257 * config/aarch64/aarch64.md (movsi_aarch64): Only allow to/from
18258 S reg when fp attribute set.
18259 (movdi_aarch64): Only allow to/from D reg when fp attribute set.
18260
add3c965
IB
182612013-05-02 Ian Bolton <ian.bolton@arm.com>
18262
18263 * config/aarch64/aarch64.md (*and_one_cmpl<mode>3_compare0):
18264 New pattern.
18265 (*and_one_cmplsi3_compare0_uxtw): Likewise.
18266 (*and_one_cmpl_<SHIFT:optab><mode>3_compare0): Likewise.
18267 (*and_one_cmpl_<SHIFT:optab>si3_compare0_uxtw): Likewise.
18268
fdd43ac4
RB
182692013-05-02 Richard Biener <rguenther@suse.de>
18270
18271 * tree-scalar-evolution.c (scev_info_hasher): Remove.
18272 (struct instantiate_cache_entry): New type.
18273 (struct instantiate_cache_entry_hasher): New hashtable descriptor.
18274 (struct instantiate_cache_type): New type.
18275 (set_instantiated_value, get_instantiated_value): Remove.
18276 (get_instantiated_value_entry): New function.
18277 (instantiate_scev_name): Use the new cache and adjust.
18278 (instantiate_scev_poly): Adjust.
18279 (instantiate_scev_binary): Likewise.
18280 (instantiate_array_ref): Likewise.
18281 (instantiate_scev_convert): Likewise.
18282 (instantiate_scev_not): Likewise.
18283 (instantiate_scev_3): Likewise.
18284 (instantiate_scev_2): Likewise.
18285 (instantiate_scev_r): Likewise.
18286 (instantiate_scev): Likewise.
18287 (resolve_mixers): Likewise.
18288
36ff9dfb
VM
182892013-05-01 Vladimir Makarov <vmakarov@redhat.com>
18290
18291 PR target/57091
18292 * lra-constraints.c (best_small_class_operands_num): Remove.
18293 (process_alt_operands): Remove small_class_operands_num. Take
18294 small classes operands into losers and only if the operand is not
18295 matched. Modify debugging output.
18296 (curr_insn_transform): Remove best_small_class_operands_num.
18297 Print insn name.
18298
36054fab
JG
182992013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18300
18301 * config/aarch64/aarch64-builtins.c
18302 (aarch64_gimple_fold_builtin.c): Fold more modes for reduc_splus_.
18303 * config/aarch64/aarch64-simd-builtins.def
18304 (reduc_splus_): Add new modes.
18305 (reduc_uplus_): New.
18306 * config/aarch64/aarch64-simd.md (aarch64_addvv4sf): Remove.
18307 (reduc_uplus_v4sf): Likewise.
18308 (reduc_splus_v4sf): Likewise.
18309 (aarch64_addv<mode>): Likewise.
18310 (reduc_uplus_<mode>): Likewise.
18311 (reduc_splus_<mode>): Likewise.
18312 (aarch64_addvv2di): Likewise.
18313 (reduc_uplus_v2di): Likewise.
18314 (reduc_splus_v2di): Likewise.
18315 (aarch64_addvv2si): Likewise.
18316 (reduc_uplus_v2si): Likewise.
18317 (reduc_splus_v2si): Likewise.
18318 (reduc_<sur>plus_<mode>): New.
18319 (reduc_<sur>plus_v2di): Likewise.
18320 (reduc_<sur>plus_v2si): Likewise.
18321 (reduc_<sur>plus_v4sf): Likewise.
18322 (aarch64_addpv4sf): Likewise.
18323 * config/aarch64/arm_neon.h
18324 (vaddv<q>_<s,u,f><8, 16, 32, 64): Rewrite using builtins.
18325 * config/aarch64/iterators.md (unspec): Remove UNSPEC_ADDV,
18326 add UNSPEC_SADDV, UNSPEC_UADDV.
18327 (SUADDV): New.
18328 (sur): Add UNSPEC_SADDV, UNSPEC_UADDV.
18329
6dce23a8
JG
183302013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18331
18332 * config/aarch64/arm_neon.h
18333 (v<max,min><nm><q><v>_<sfu><8, 16, 32, 64>): Rewrite using builtins.
18334
1598945b
JG
183352013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18336
18337 * config/aarch64/aarch64-builtins
18338 (aarch64_gimple_fold_builtin): Fold reduc_<su><maxmin>_ builtins.
18339
998eaf97
JG
183402013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18341
18342 * config/aarch64/aarch64-simd-builtins.def
18343 (reduc_smax_): New.
18344 (reduc_smin_): Likewise.
18345 (reduc_umax_): Likewise.
18346 (reduc_umin_): Likewise.
18347 (reduc_smax_nan_): Likewise.
18348 (reduc_smin_nan_): Likewise.
18349 (fmax): Remove.
18350 (fmin): Likewise.
18351 (smax): Update for V2SF, V4SF and V2DF modes.
18352 (smin): Likewise.
18353 (smax_nan): New.
18354 (smin_nan): Likewise.
18355 * config/aarch64/aarch64-simd.md (<maxmin><mode>3): Rename to...
18356 (<su><maxmin><mode>3): ...This, refactor.
18357 (s<maxmin><mode>3): New.
18358 (<maxmin_uns><mode>3): Likewise.
18359 (reduc_<maxmin_uns>_<mode>): Refactor.
18360 (reduc_<maxmin_uns>_v4sf): Likewise.
18361 (reduc_<maxmin_uns>_v2si): Likewise.
18362 (aarch64_<fmaxmin><mode>: Remove.
18363 * config/aarch64/arm_neon.h (vmax<q>_f<32,64>): Rewrite to use
18364 new builtin names.
18365 (vmin<q>_f<32,64>): Likewise.
18366 * config/iterators.md (unspec): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
18367 (FMAXMIN): New.
18368 (su): Add mappings for smax, smin, umax, umin.
18369 (maxmin): New.
18370 (FMAXMINV): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
18371 (FMAXMIN): Rename as...
18372 (FMAXMIN_UNS): ...This.
18373 (maxminv): Remove.
18374 (fmaxminv): Likewise.
18375 (fmaxmin): Likewise.
18376 (maxmin_uns): New.
18377 (maxmin_uns_op): Likewise.
18378
bd11644e
JG
183792013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18380
18381 * config/aarch64/arm_neon.h
18382 (vac<ge, gt><sd>_f<32, 64>): Rename to...
18383 (vca<ge, gt><sd>_f<32, 64>): ...this, reimpliment in C.
18384 (vca<ge, gt, lt, le><q>_f<32, 64>): Reimpliment in C.
18385
75dd5ace
JG
183862013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18387
18388 * config/aarch64/aarch64-simd.md (*aarch64_fac<optab><mode>): New.
18389 * config/aarch64/iterators.md (FAC_COMPARISONS): New.
18390
7c19979f
JG
183912013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18392
18393 * config/aarch64/aarch64-simd.md
18394 (vcond<mode>_internal): Handle special cases for constant masks.
18395 (vcond<mode><mode>): Allow nonmemory_operands for outcome vectors.
18396 (vcondu<mode><mode>): Likewise.
18397 (vcond<v_cmp_result><mode>): New.
18398
bb60efd9
JG
183992013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18400
18401 * config/aarch64/aarch64-builtins.c (BUILTIN_VALLDI): Define.
18402 (aarch64_fold_builtin): Add folding for cm<eq,ge,gt,tst>.
18403 * config/aarch64/aarch64-simd-builtins.def
18404 (cmeq): Update to BUILTIN_VALLDI.
18405 (cmgt): Likewise.
18406 (cmge): Likewise.
18407 (cmle): Likewise.
18408 (cmlt): Likewise.
18409 * config/aarch64/arm_neon.h
18410 (vc<eq, lt, le, gt, ge, tst><z><qsd>_<fpsu><8,16,32,64>): Remap
18411 to builtins or C as appropriate.
18412
889b9412
JG
184132013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18414
18415 * config/aarch64/aarch64-simd-builtins.def (cmhs): Rename to...
18416 (cmgeu): ...This.
18417 (cmhi): Rename to...
18418 (cmgtu): ...This.
18419 * config/aarch64/aarch64-simd.md
18420 (simd_mode): Add SF.
18421 (aarch64_vcond_internal): Use new names for unsigned comparison insns.
18422 (aarch64_cm<optab><mode>): Rewrite to not use UNSPECs.
18423 * config/aarch64/aarch64.md (*cstore<mode>_neg): Rename to...
18424 (cstore<mode>_neg): ...This.
18425 * config/aarch64/iterators.md
18426 (VALLF): new.
18427 (unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>.
18428 (COMPARISONS): New.
18429 (UCOMPARISONS): Likewise.
18430 (optab): Add missing comparisons.
18431 (n_optab): New.
18432 (cmp_1): Likewise.
18433 (cmp_2): Likewise.
18434 (CMP): Likewise.
18435 (cmp): Remove.
18436 (VCMP_S): Likewise.
18437 (VCMP_U): Likewise.
18438 (V_cmp_result): Add DF, SF modes.
18439 (v_cmp_result): Likewise.
18440 (v): Likewise.
18441 (vmtype): Likewise.
18442 * config/aarch64/predicates.md (aarch64_reg_or_fp_zero): New.
18443
0a7dbb76
GY
184442013-05-01 Greta Yorsh <Greta.Yorsh@arm.com>
18445
18446 * config/arm/thumb2.md (thumb2_smaxsi3,thumb2_sminsi3): Convert
18447 define_insn to define_insn_and_split.
18448 (thumb32_umaxsi3,thumb2_uminsi3): Likewise.
18449 (thumb2_negdi2,thumb2_abssi2,thumb2_neg_abssi2): Likewise.
18450 (thumb2_mov_scc,thumb2_mov_negscc,thumb2_mov_notscc): Likewise.
18451 (thumb2_movsicc_insn,thumb2_and_scc,thumb2_ior_scc): Likewise.
18452 (thumb2_negscc): Likewise.
18453
fb614ca6
GY
184542013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
18455
18456 * config/arm/thumb2.md (thumb2_incscc, thumb2_decscc): Delete.
18457
9e64a0bf
GY
184582013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
18459
18460 * config/arm/thumb2.md: Remove trailing whitespaces.
18461
d6b28156
RS
184622013-04-30 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
18463
18464 * explow.c (plus_constant): Pass "mode" to immed_double_int_const.
18465 Use gen_int_mode rather than GEN_INT.
18466
f91674c3
L
184672013-04-30 H.J. Lu <hongjiu.lu@intel.com>
18468
b0dec607 18469 * value-prof.c (stream_in_histogram_value): Remove the strayed
f91674c3
L
18470 debug_gimple_stmt.
18471
3551257c
RB
184722013-04-30 Richard Biener <rguenther@suse.de>
18473
18474 PR middle-end/57122
3c21604f 18475 * cfghooks.c (split_edge): Properly check for the loop latch edge.
3551257c 18476
4c1aff1c
RB
184772013-04-30 Richard Biener <rguenther@suse.de>
18478
18479 PR middle-end/57107
18480 * tree-eh.c (sink_clobbers): Preserve virtual SSA form.
18481
54b8379a
AB
184822013-04-30 Andrey Belevantsev <abel@ispras.ru>
18483
18484 PR rtl-optimization/56957
18485 PR rtl-optimization/57105
54b8379a
AB
18486 * sel-sched.c (move_op_orig_expr_found): Remove insn_emitted
18487 variable. Use just INSN_UID for determining whether an insn
18488 should be only disconnected from the insn stream.
18489 * sel-sched-ir.h (EXPR_WAS_CHANGED): Remove.
18490
abc27962
JJ
184912013-04-30 Jakub Jelinek <jakub@redhat.com>
18492
18493 PR tree-optimization/57104
18494 * tsan.c (instrument_expr): Don't instrument accesses to
18495 DECL_HARD_REGISTER VAR_DECLs.
18496
0fc822d0
RB
184972013-04-30 Richard Biener <rguenther@suse.de>
18498
18499 * function.h (loops_for_fn): New inline function.
18500 (set_loops_for_fn): Likewise.
18501 * cfgloop.h (place_new_loop): Add struct function parameter.
18502 (get_loop): Likewise.
18503 (get_loops): Likewise.
18504 (number_of_loops): Likewise.
18505 (fel_next): Adjust.
18506 (fel_init): Likewise.
18507 * cfg.c (get_loop_copy): Adjust.
18508 * cfgloop.c (flow_loops_dump): Likewise.
18509 (record_loop_exits): Likewise.
18510 (verify_loop_structure): Likewise.
18511 * cfgloopanal.c (mark_irreducible_loops): Likewise.
18512 (estimate_reg_pressure_cost): Likewise.
18513 (mark_loop_exit_edges): Likewise.
18514 * cfgloopmanip.c (place_new_loop): Likewise.
18515 (add_loop): Likewise.
18516 (duplicate_loop): Likewise.
18517 * graph.c (draw_cfg_nodes): Likewise.
18518 * graphite-clast-to-gimple.c (translate_clast_user): Likewise.
18519 * graphite-sese-to-poly.c (build_scop_scattering): Likewise.
18520 (extract_affine_chrec): Likewise.
18521 (build_scop_iteration_domain): Likewise.
18522 * graphite.c (graphite_initialize): Likewise.
18523 * ira-build.c (create_loop_tree_nodes): Likewise.
18524 (more_one_region_p): Likewise.
18525 (rebuild_regno_allocno_maps): Likewise.
18526 (mark_loops_for_removal): Likewise.
18527 (mark_all_loops_for_removal): Likewise.
18528 (remove_unnecessary_regions): Likewise.
18529 (ira_build): Likewise.
18530 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
18531 * loop-init.c (fix_loop_structure): Likewise.
18532 (gate_rtl_move_loop_invariants): Likewise.
18533 (gate_rtl_unswitch): Likewise.
18534 (gate_rtl_unroll_and_peel_loops): Likewise.
18535 (rtl_doloop): Likewise.
18536 * lto-streamer-in.c (input_cfg): Likewise.
18537 * lto-streamer-out.c (output_cfg): Likewise.
18538 * modulo-sched.c (sms_schedule): Likewise.
18539 * predict.c (tree_estimate_probability): Likewise.
18540 (tree_estimate_probability_driver): Likewise.
18541 (estimate_loops): Likewise.
18542 * tree-cfg.c (fixup_loop_arrays_after_move): Likewise.
18543 (move_sese_region_to_fn): Likewise.
18544 (debug_loop_num): Likewise.
18545 * tree-chrec.c (chrec_evaluate): Likewise.
18546 (hide_evolution_in_other_loops_than_loop): Likewise.
18547 (chrec_component_in_loop_num): Likewise.
18548 (reset_evolution_in_loop): Likewise.
18549 (evolution_function_is_invariant_rec_p): Likewise.
18550 * tree-if-conv.c (main_tree_if_conversion): Likewise.
18551 * tree-inline.c (copy_loops): Likewise.
18552 (copy_cfg_body): Likewise.
18553 (tree_function_versioning): Likewise.
18554 * tree-loop-distribution.c (rdg_flag_loop_exits): Likewise.
18555 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
18556 Likewise.
18557 (add_to_evolution_1): Likewise.
18558 (scev_const_prop): Likewise.
18559 * tree-scalar-evolution.h (get_chrec_loop): Likewise.
18560 * tree-ssa-loop-ch.c (copy_loop_headers): Likewise.
18561 * tree-ssa-loop-im.c (analyze_memory_references): Likewise.
18562 (tree_ssa_lim_initialize): Likewise.
18563 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Likewise.
18564 (verify_loop_closed_ssa): Likewise.
18565 * tree-ssa-loop.c (tree_ssa_loop_init): Likewise.
18566 (tree_ssa_loop_im): Likewise.
18567 (tree_ssa_loop_unswitch): Likewise.
18568 (tree_vectorize): Likewise.
18569 (check_data_deps): Likewise.
18570 (tree_ssa_loop_ivcanon): Likewise.
18571 (tree_ssa_loop_bounds): Likewise.
18572 (tree_complete_unroll): Likewise.
18573 (tree_complete_unroll_inner): Likewise.
18574 (tree_parallelize_loops): Likewise.
18575 (tree_ssa_loop_prefetch): Likewise.
18576 (tree_ssa_loop_ivopts): Likewise.
18577 * tree-ssa.c (execute_update_addresses_taken): Liekwise.
18578 * tree-vectorizer.c (vectorize_loops): Likewise.
18579
37953bd3
MF
185802013-04-29 Mike Frysinger <vapier@gentoo.org>
18581
18582 * config/arm/bpabi.h (EABI_LINK_SPEC): Define.
18583 (BPABI_LINK_SPEC): Use new EABI_LINK_SPEC.
18584 * config/arm/linux-eabi.h (LINK_SPEC): Replace BE8_LINK_SPEC
18585 with EABI_LINK_SPEC.
18586
f9ed28db
UB
185872013-04-29 Uros Bizjak <ubizjak@gmail.com>
18588
18589 PR target/44578
18590 * config/i386/i386.md (*zero_extendsidi2): Add "!" to m->?*y
18591 alternative.
18592
deca73f5
VM
185932013-04-29 Vladimir Makarov <vmakarov@redhat.com>
18594
18595 PR target/57097
37953bd3 18596 * lra-constraints.c (process_alt_operands): Discourage a bit more
deca73f5
VM
18597 using memory for pseudos. Print cost dump for alternatives.
18598 Modify cost values for conflicts with early clobbers.
18599 (curr_insn_transform): Spill pseudos reassigned to NO_REGS.
18600
fdca7d03
UB
186012013-04-29 Uros Bizjak <ubizjak@gmail.com>
18602
18603 PR target/57098
18604 * config/i386/i386.c (ix86_expand_vec_perm): Validize constant memory.
18605
0b064172
IB
186062013-04-29 Ian Bolton <ian.bolton@arm.com>
18607
18608 * config/aarch64/aarch64.md (movsi_aarch64): Support LDR/STR
18609 from/to S register.
18610 (movdi_aarch64): Support LDR/STR from/to D register.
18611
473cec55
IB
186122013-04-29 Ian Bolton <ian.bolton@arm.com>
18613
18614 * common/config/aarch64/aarch64-common.c: Enable REE pass at O2
18615 or higher by default.
18616
a6f30e66
RB
186172013-04-29 Richard Biener <rguenther@suse.de>
18618
18619 PR middle-end/57075
18620 * tree-inline.c (copy_edges_for_bb): Still split the bbs,
18621 even if not adding abnormal edges for calls that can make
18622 abnormal gotos.
18623
0c2b2040
RB
186242013-04-29 Richard Biener <rguenther@suse.de>
18625
18626 PR middle-end/57103
18627 * tree-cfg.c (move_stmt_op): Fix condition under which to update
18628 TREE_BLOCK.
18629 (move_stmt_r): Remove redundant checking.
18630
f41f80f9
TJ
186312013-04-29 Teresa Johnson <tejohnson@google.com>
18632
18633 PR bootstrap/57077
18634 * basic-block.h (apply_scale): New function.
18635 (apply_probability): Use apply_scale.
18636 * gimple-streamer-in.c (input_bb): Ditto.
18637 * lto-streamer-in.c (input_cfg): Ditto.
18638 * lto-cgraph.c (merge_profile_summaries): Ditto.
18639 * tree-optimize.c (execute_fixup_cfg): Ditto.
fdca7d03 18640 * tree-inline.c (copy_bb): Update comment to use apply_scale.
f41f80f9
TJ
18641 (copy_edges_for_bb): Ditto.
18642 (copy_cfg_body): Ditto.
18643
315bbd2e
TV
186442013-04-29 Tom de Vries <tom@codesourcery.com>
18645
18646 * tree-ssa-tail-merge.c (find_same_succ_bb): Skip loop latch bbs.
18647 (replace_block_by): Don't set LOOPS_NEED_FIXUP.
18648 (tail_merge_optimize): Handle current_loops == NULL.
18649
ebbd90d8
JL
186502013-04-26 Jeff Law <law@redhat.com>
18651
18652 * tree-vrp.c (range_fits_type_p): Move to earlier point in file.
18653 (simplify_cond_using_ranges): Generalize code to simplify
18654 COND_EXPRs where one argument is a constant and the other
18655 is an SSA_NAME created by an integral type conversion.
18656
8b9b57eb
KT
186572013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18658
18659 * config/arm/arm.md (store_minmaxsi): Use only when
18660 optimize_insn_for_size_p.
18661
9498e5dc
CB
186622013-04-29 Christian Bruel <christian.bruel@st.com>
18663
18664 PR target/57108
18665 * sh.md (tstsi_t_zero_extract_eq): Set mode for operand 0.
18666
6093bc06
RB
186672013-04-29 Richard Biener <rguenther@suse.de>
18668
18669 PR middle-end/57089
fdca7d03
UB
18670 * omp-low.c (expand_omp_taskreg): If the parent function had a broken
18671 loop tree make sure to schedule a fixup for the child as well.
6093bc06
RB
18672 (expand_omp_for_generic): Properly add loops.
18673 (expand_omp_for_static_nochunk): Likewise.
18674 (expand_omp_for_static_chunk): Likewise.
18675 (expand_omp_for): For the degenerate case fixup loops.
18676 (expand_omp_sections): Fix default bb placement in loops.
18677 (expand_omp_atomic_pipeline): Properly add loops.
18678
84aacbfd
KT
186792013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18680
18681 * predict.c: Fix typo in comment above #define PROB_VERY_UNLIKELY.
18682
8dee4479
TV
186832013-04-29 Tom de Vries <tom@codesourcery.com>
18684
18685 * tree-ssa-tail-merge.c: Update header comment.
18686
47934dc4
JG
186872013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18688
18689 * config/aarch64/arm_neon.h
18690 (vcvt<sd>_f<32,64>_s<32,64>): Rewrite in C.
18691 (vcvt<q>_f<32,64>_s<32,64>): Rewrite using builtins.
18692 (vcvt_<high_>_f<32,64>_f<32,64>): Likewise.
18693 (vcvt<qsd>_<su><32,64>_f<32,64>): Likewise.
18694 (vcvta<qsd>_<su><32,64>_f<32,64>): Likewise.
18695 (vcvtm<qsd>_<su><32,64>_f<32,64>): Likewise.
18696 (vcvtn<qsd>_<su><32,64>_f<32,64>): Likewise.
18697 (vcvtp<qsd>_<su><32,64>_f<32,64>): Likewise.
18698
384be29f
JG
186992013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18700
18701 * config/aarch64/aarch64-simd.md
18702 (<optab><VDQF:mode><fcvt_target>2): New, maps to fix, fixuns.
18703 (<fix_trunc_optab><VDQF:mode><fcvt_target>2): New, maps to
18704 fix_trunc, fixuns_trunc.
18705 (ftrunc<VDQF:mode>2): New.
18706 * config/aarch64/iterators.md (optab): Add fix, fixuns.
18707 (fix_trunc_optab): New.
18708
0386b123
JG
187092013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18710
18711 * config/aarch64/aarch64-builtins.c
18712 (aarch64_builtin_vectorized_function): Vectorize over ifloorf,
18713 iceilf, lround, iroundf.
18714
00fcb892
UB
187152013-04-29 Uros Bizjak <ubizjak@gmail.com>
18716
18717 PR target/54349
18718 * config/i386/i386.h (enum ix86_tune_indices)
18719 <X86_TUNE_INTER_UNIT_MOVES_TO_VEC, X86_TUNE_INTER_UNIT_MOVES_FROM_VEC>:
18720 New, split from X86_TUNE_INTER_UNIT_MOVES.
18721 <X86_TUNE_INTER_UNIT_MOVES>: Remove.
18722 (TARGET_INTER_UNIT_MOVES_TO_VEC): New define.
18723 (TARGET_INTER_UNIT_MOVES_FROM_VEC): Ditto.
18724 (TARGET_INTER_UNIT_MOVES): Remove.
18725 * config/i386/i386.c (initial_ix86_tune_features): Update.
18726 Disable X86_TUNE_INTER_UNIT_MOVES_FROM_VEC for m_ATHLON_K8 only.
18727 (ix86_expand_convert_uns_didf_sse): Use
18728 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
18729 (ix86_expand_vector_init_one_nonzero): Ditto.
18730 (ix86_expand_vector_init_interleave): Ditto.
18731 (inline_secondary_memory_needed): Return true for moves from SSE class
18732 registers for !TARGET_INTER_UNIT_MOVES_FROM_VEC targets and for moves
18733 to SSE class registers for !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
18734 * config/i386/constraints.md (Yi, Ym): Depend on
18735 TARGET_INTER_UNIT_MOVES_TO_VEC.
18736 (Yj, Yn): New constraints.
18737 * config/i386/i386.md (*movdi_internal): Change constraints of
18738 operand 1 from Yi to Yj and from Ym to Yn.
18739 (*movsi_internal): Ditto.
18740 (*movdf_internal): Ditto.
18741 (*movsf_internal): Ditto.
18742 (*float<SWI48x:mode><X87MODEF:mode>2_1): Use
18743 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
18744 (*float<SWI48x:mode><X87MODEF:mode>2_1 splitters): Ditto.
18745 (floatdi<X87MODEF:mode>2_i387_with_xmm): Ditto.
18746 (floatdi<X87MODEF:mode>2_i387_with_xmm splitters): Ditto.
18747 * config/i386/sse.md (movdi_to_sse): Ditto.
18748 (sse2_stored): Change constraint of operand 1 from Yi to Yj.
18749 Use TARGET_INTER_UNIT_MOVES_FROM_VEC instead of
18750 TARGET_INTER_UNIT_MOVES.
18751 (sse_storeq_rex64): Change constraint of operand 1 from Yi to Yj.
18752 (sse_storeq_rex64 splitter): Use TARGET_INTER_UNIT_MOVES_FROM_VEC
18753 instead of TARGET_INTER_UNIT_MOVES.
18754 * config/i386/mmx.md (*mov<mode>_internal): Change constraint of
18755 operand 1 from Yi to Yj and from Ym to Yn.
18756
4c871069
JG
187572013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18758
18759 * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi_): New.
18760 (float_truncate_hi_): Likewise.
18761 (float_extend_lo_): Likewise.
18762 (float_truncate_lo_): Likewise.
18763 * config/aarch64/aarch64-simd.md (vec_unpacks_lo_v4sf): New.
18764 (aarch64_float_extend_lo_v2df): Likewise.
18765 (vec_unpacks_hi_v4sf): Likewise.
18766 (aarch64_float_truncate_lo_v2sf): Likewise.
18767 (aarch64_float_truncate_hi_v4sf): Likewise.
18768 (vec_pack_trunc_v2df): Likewise.
18769 (vec_pack_trunc_df): Likewise.
18770
1709ff9b
JG
187712013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18772
18773 * config/aarch64/aarch64-builtins.c
18774 (aarch64_fold_builtin): Fold float conversions.
18775 * config/aarch64/aarch64-simd-builtins.def
18776 (floatv2si, floatv4si, floatv2di): New.
18777 (floatunsv2si, floatunsv4si, floatunsv2di): Likewise.
18778 * config/aarch64/aarch64-simd.md
18779 (<optab><fcvt_target><VDQF:mode>2): New, expands to float and floatuns.
18780 * config/aarch64/iterators.md (FLOATUORS): New.
18781 (optab): Add float, floatuns.
18782 (su_optab): Likewise.
18783
ce966824
JG
187842013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18785
18786 * config/aarch64/aarch64-builtins.c
18787 (aarch64_builtin_vectorized_function): Use new names for
18788 fcvt builtins.
18789 * config/aarch64/aarch64-simd-builtins.def (fcvtzs): Split as...
18790 (lbtruncv2sf, lbtruncv4sf, lbtruncv2df): ...This.
18791 (fcvtzu): Split as...
18792 (lbtruncuv2sf, lbtruncuv4sf, lbtruncuv2df): ...This.
18793 (fcvtas): Split as...
18794 (lroundv2sf, lroundv4sf, lroundv2df, lroundsf, lrounddf): ...This.
18795 (fcvtau): Split as...
18796 (lrounduv2sf, lrounduv4sf, lrounduv2df, lroundusf, lroundudf): ...This.
18797 (fcvtps): Split as...
18798 (lceilv2sf, lceilv4sf, lceilv2df): ...This.
18799 (fcvtpu): Split as...
18800 (lceiluv2sf, lceiluv4sf, lceiluv2df, lceilusf, lceiludf): ...This.
18801 (fcvtms): Split as...
18802 (lfloorv2sf, lfloorv4sf, lfloorv2df): ...This.
18803 (fcvtmu): Split as...
18804 (lflooruv2sf, lflooruv4sf, lflooruv2df, lfloorusf, lfloorudf): ...This.
18805 (lfrintnv2sf, lfrintnv4sf, lfrintnv2df, lfrintnsf, lfrintndf): New.
18806 (lfrintnuv2sf, lfrintnuv4sf, lfrintnuv2df): Likewise.
18807 (lfrintnusf, lfrintnudf): Likewise.
18808 * config/aarch64/aarch64-simd.md
18809 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Convert to
18810 define_insn.
18811 (aarch64_fcvt<frint_suffix><su><mode>): Remove.
18812 * config/aarch64/iterators.md (FCVT): Include UNSPEC_FRINTN.
18813 (fcvt_pattern): Likewise.
18814
b9de24fe
JG
188152013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18816
18817 * config/aarch64/aarch64-simd.md
18818 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Rename to...
18819 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): ... This.
18820
77a205be
JG
188212013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18822
18823 * config/aarch64/arm_neon.h (vrndq<a,m,n,p>_f<32, 64>): Rename to...
18824 (vrnd<a,m,n,p>q_f<32, 64>): ...This, implement using builtin.
18825 (vrnd<a,m,n,p>_f32): Implement using builtins.
18826 (vrnd<i,x><q>_f<32, 64>): New.
18827
0659ce6f
JG
188282013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18829
18830 * config/aarch64/aarch64-builtins.c
18831 (aarch64_builtin_vectorized_function): Fold to standard pattern names.
18832 * config/aarch64/aarch64-simd-builtins.def (frintn): New.
18833 (frintz): Rename to...
18834 (btrunc): ...this.
18835 (frintp): Rename to...
18836 (ceil): ...this.
18837 (frintm): Rename to...
18838 (floor): ...this.
18839 (frinti): Rename to...
18840 (nearbyint): ...this.
18841 (frintx): Rename to...
18842 (rint): ...this.
18843 (frinta): Rename to...
18844 (round): ...this.
18845 * config/aarch64/aarch64-simd.md
18846 (aarch64_frint<frint_suffix><mode>): Delete.
18847 (<frint_pattern><mode>2): Convert to insn.
18848 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRINTN.
18849 * config/aarch64/iterators.md (FRINT): Add UNSPEC_FRINTN.
18850 (frint_pattern): Likewise.
18851 (frint_suffix): Likewise.
18852
ea78906a
RB
188532013-04-29 Richard Biener <rguenther@suse.de>
18854
18855 PR tree-optimization/57081
18856 * loop-init.c: Include tree-flow.h.
18857 (loop_optimizer_finalize): Free number of iteration estimates.
18858 * Makefile.in (loop-init.o): Add $(TREE_FLOW_H) dependency.
18859
baee1763
JJ
188602013-04-29 Jakub Jelinek <jakub@redhat.com>
18861
94dc5332
JJ
18862 PR tree-optimization/57083
18863 * tree-vrp.c (extract_range_from_binary_expr_1): For LSHIFT_EXPR with
18864 non-singleton shift count range, zero extend low_bound for uns case.
18865
baee1763
JJ
18866 * config/i386/predicates.md (general_vector_operand): New predicate.
18867 * config/i386/i386.c (const_vector_equal_evenodd_p): New function.
18868 (ix86_expand_mul_widen_evenodd): Force op1 resp. op2 into register
18869 if they aren't nonimmediate operands. If their original values
18870 satisfy const_vector_equal_evenodd_p, don't shift them.
18871 * config/i386/sse.md (mul<mode>3): Use general_vector_operand
18872 predicates. For the SSE4.1 case force operands[{1,2}] into registers
18873 if not nonimmediate_operand.
18874 (vec_widen_smult_even_v4si): Use nonimmediate_operand predicates
18875 instead of register_operand.
18876 (vec_widen_<s>mult_odd_<mode>): Use general_vector_operand predicates.
18877
a9073727 188782013-04-28 Eric Botcazou <ebotcazou@adacore.com>
22ad5e0a
EB
18879
18880 * stor-layout.c (finalize_size_functions): Allocate a structure and
18881 reset cfun before dumping the functions.
18882
ba8011e6
JJ
188832013-04-27 Jakub Jelinek <jakub@redhat.com>
18884
d6fde69e
JJ
18885 * config/i386/i386.c (ix86_expand_call): Make cregs_size unsigned.
18886
ba8011e6
JJ
18887 PR target/56866
18888 * config/i386/i386.c (ix86_expand_mul_widen_evenodd): Don't
18889 use xop_pmacsdqh if uns_p.
18890 * config/i386/sse.md (xop_rotr<mode>3): Fix up computation of
18891 the immediate rotate count.
18892
2c62cbaa
VM
188932013-04-26 Vladimir Makarov <vmakarov@redhat.com>
18894
18895 * rtl.h (struct rtx_def): Add comment for field jump.
18896 (LRA_SUBREG_P): New macro.
18897 * recog.c (register_operand): Check LRA_SUBREG_P.
18898 * lra.c (lra): Add note at the end of RTL code. Align non-empty
18899 stack frame.
18900 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
18901 (lra_final_code_change): Skip subreg change for operators.
18902 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
18903 if there are no operand changes.
18904 * lra-constraints.c (curr_insn_set): New.
18905 (match_reload): Set LRA_SUBREG_P.
18906 (emit_spill_move): Ditto.
18907 (check_and_process_move): Use curr_insn_set. Process only single
18908 set insns. Don't initialize sec_mem_p and change_p.
18909 (simplify_operand_subreg): Use LRA_SUBREG_P.
18910 (reg_in_class_p): New function.
18911 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
18912 of #ifdef. Add code to remove cycling.
18913 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
18914 non-null disp. Reload inner instead of disp when base and index
18915 are null. Try to put lo_sum into register.
18916 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
18917 (check_and_process_move): Move code for move cost check to
18918 simple_move_p. Remove equiv_substitution.
18919 (simple_move_p): New function.
18920 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
18921 curr_insn_set. Call check_and_process_move only for single set
18922 insns. Use the new function. Move call of check_and_process_move
18923 after operand equiv substitution and address process.
18924
e7d764f3
JJ
189252013-04-26 Jakub Jelinek <jakub@redhat.com>
18926
18927 PR go/57045
18928 * tree-ssa-uninit.c (compute_uninit_opnds_pos): In functions
18929 with nonlocal goto receivers or returns twice calls, ignore
18930 unininitialized values from abnormal edges to nl goto receiver
18931 or returns twice call.
18932
41e10689
JJ
189332013-04-26 Jakub Jelinek <jakub@redhat.com>
18934
18935 PR tree-optimization/57051
18936 * fold-const.c (const_binop): Handle VEC_LSHIFT_EXPR
18937 and VEC_RSHIFT_EXPR if shift count is a multiple of element
18938 bitsize.
18939
d7ed20db
RB
189402013-04-26 Richard Biener <rguenther@suse.de>
18941
18942 * omp-low.c (finalize_task_copyfn): Do not drop PROP_loops.
18943 (expand_omp_taskreg): Likewise. Mark loops for fixup.
18944 * tree-cfg.c (move_block_to_fn): Remap loop fathers.
18945 (fixup_loop_arrays_after_move): New function.
18946 (move_sese_region_to_fn): Properly outline the loop tree parts
18947 of the SESE region.
18948
df93505e
UB
189492013-04-26 Uros Bizjak <ubizjak@gmail.com>
18950
18951 * config/i386/i386.md (type, unit): Fix long lines.
18952
dd366ec3
RB
189532013-04-26 Richard Biener <rguenther@suse.de>
18954
18955 * Makefile.in (lto-streamer-in.o): Add $(CFGLOOP_H) dependency.
18956 (lto-streamer-out.o): Likewise.
18957 * cfgloop.c (init_loops_structure): Export, add struct function
18958 argument and adjust.
18959 (flow_loops_find): Adjust.
18960 * cfgloop.h (enum loop_estimation): Add EST_LAST.
18961 (init_loops_structure): Declare.
18962 * lto-streamer-in.c: Include cfgloop.h.
18963 (input_cfg): Input the loop tree.
18964 * lto-streamer-out.c: Include cfgloop.h.
18965 (output_cfg): Output the loop tree.
18966 (output_struct_function_base): Do not drop PROP_loops.
18967
a9e0d843
RB
189682013-03-26 Richard Biener <rguenther@suse.de>
18969
18970 * tree-cfg.c (execute_build_cfg): Build the loop tree.
18971 (pass_build_cfg): Provide PROP_loops.
18972 (move_sese_region_to_fn): Remove loops that are outlined into fn
18973 for now.
18974 * tree-inline.c: Include cfgloop.h.
18975 (initialize_cfun): Do not drop PROP_loops.
18976 (copy_loops): New function.
18977 (copy_cfg_body): Copy loop structure.
18978 (tree_function_versioning): Initialize destination loop tree.
18979 * tree-ssa-loop.c (pass_tree_loop_init): Do not provide PROP_loops.
18980 (pass_parallelize_loops): Do IL verification.
18981 * loop-init.c (loop_optimizer_init): Fixup loops if required.
18982 * tree-optimize.c (execute_fixup_cfg): If we need to cleanup
18983 the CFG make sure we fixup loops as well.
18984 * tree-ssa-tail-merge.c: Include cfgloop.h.
18985 (replace_block_by): When merging loop latches mark loops for fixup.
18986 * lto-streamer-out.c (output_struct_function_base): Drop
18987 PROP_loops for now.
18988 * tree-ssa-phiopt.c: Include tree-scalar-evolution.h.
18989 (tree_ssa_cs_elim): Initialize the loop optimizer and SCEV.
18990 * ipa-split.c: Include cfgloop.h.
18991 (split_function): Add the new return block to the loop tree root.
18992 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Return
18993 whether we have removed the forwarder block.
18994 (merge_phi_nodes): If we removed a forwarder mark loops for fixup.
18995 * cfgloop.h (place_new_loop): Declare.
18996 * cfgloopmanip.c (place_new_loop): Export.
18997 * Makefile.in (asan.o): Add $(CFGLOOP_H) dependency.
18998 (tree-switch-conversion.o): Likewise.
18999 (tree-complex.o): Likewise.
19000 (tree-inline.o): Likewise.
19001 (tree-ssa-tailmerge.o): Likewise.
19002 (ipa-split.o): Likewise.
19003 (tree-ssa-phiopt.o): Add $(SCEV_H) dependency.
19004 (tree-ssa-copy.o): Likewise.
19005 * tree-switch-conversion.c: Include cfgloop.h
19006 (process_switch): If we emit a bit-test cascade, schedule loops
19007 for fixup.
19008 * tree-complex.c: Include cfgloop.h.
19009 (expand_complex_div_wide): Properly add new basic-blocks to loops.
19010 * asan.c: Include cfgloop.h.
19011 (create_cond_insert_point): Properly add new basic-blocks to
19012 loops, schedule loop fixup.
19013 * cfgloop.c (verify_loop_structure): Check that looks are not
19014 marked for fixup.
19015 * omp-low.c (expand_parallel_call): Properly add new basic-blocks
19016 to loops.
19017 (expand_omp_for_generic): Likewise.
19018 (expand_omp_sections): Likewise.
19019 (expand_omp_atomic_pipeline): Schedule loops for fixup.
19020 * tree-ssa-copy.c: Include tree-scalar-evolution.h.
19021 (fini_copy_prop): Disable DCE in substitute_and_fold if SCEV
19022 is initialized, not when loops are present.
19023 * tree-parloops.c (parallelize_loops): Remove checking here.
19024 * passes.c (init_optimization_passes): Schedule a copy-propagation
19025 pass before complete unrolling of inner loops.
19026
e78e8a0b
JJ
190272013-04-26 Jakub Jelinek <jakub@redhat.com>
19028
a2e836b2
JJ
19029 * Makefile.in (toplev.o): Depend on diagnostic-color.h.
19030 * diagnostic-color.c (should_colorize): Remove _WIN32 version.
19031 (colorize_init): Add argument to _WIN32 version.
19032 * toplev.c: Include diagnostic-color.h.
19033 (process_options): Default to -fdiagnostics-color=auto if
19034 GCC_COLORS env var is in the environment.
19035 * common.opt (fdiagnostics-color=): Add Var and Init.
df93505e
UB
19036 * doc/invoke.texi (-fdiagnostics-color=): Document that if GCC_COLORS
19037 env var is in the environment, the default is auto rather than never.
a2e836b2 19038
e78e8a0b
JJ
19039 * diagnostic.h (file_name_as_prefix): Add context argument.
19040 * diagnostic.c (file_name_as_prefix): Likewise. Colorize
19041 the string as locus.
19042 * langhooks.c (lhd_print_error_function): Adjust caller.
19043
013e5ef9
LC
190442013-04-25 Lawrence Crowl <crowl@google.com>
19045
19046 * var-tracking.c (shared_hash_def::htab):
19047 Change type to hash_table. Update dependent calls and types.
19048
4a8fb1a1
LC
190492013-04-25 Lawrence Crowl <crowl@google.com>
19050
19051 * Makefile.in: Update as needed below.
19052
19053 * alloc-pool.c (static hash_table <alloc_pool_hasher> alloc_pool_hash):
19054 Move declaration to after the type's method definitons.
19055
19056 * attribs.c (htab_t scoped_attributes::attribute_hash):
19057 Change type to hash_table. Update dependent calls and types.
19058
19059 * bitmap.c (htab_t bitmap_desc_hash):
19060 Change type to hash_table. Update dependent calls and types.
19061
19062 * cselib.c (htab_t cselib_hash_table):
19063 Change type to hash_table. Update dependent calls and types.
19064
19065 * data-streamer.h (struct string_slot): Move to lto-streamer.h.
19066 (hash_string_slot_node): Move implementation into lto-streamer.h
19067 struct string_slot_hasher.
19068 (eq_string_slot_node): Likewise.
19069
19070 * data-streamer-out.c: Update output_block::string_hash_table
19071 dependent calls and types.
19072
19073 * dwarf2cfi.c (htab_t trace_index):
19074 Change type to hash_table. Update dependent calls and types.
19075
19076 * dwarf2out.c (htab_t break_out_includes::cu_hash_table):
19077 Change type to hash_table. Update dependent calls and types.
19078 (htab_t copy_decls_for_unworthy_types::decl_table): Likewise.
19079 (htab_t optimize_external_refs::map): Likewise.
19080 (htab_t output_comp_unit::extern_map): Likewise.
19081 (htab_t output_comdat_type_unit::extern_map): Likewise.
19082 (htab_t output_macinfo::macinfo_htab): Likewise.
19083 (htab_t optimize_location_lists::htab): Likewise.
19084 (htab_t dwarf2out_finish::comdat_type_table): Likewise.
19085
19086 * except.c (htab_t ehspec_hash_type):
19087 Change type to hash_table. Update dependent calls and types.
19088 (assign_filter_values::ttypes): Likewise.
19089 (assign_filter_values::ehspec): Likewise.
19090 (sjlj_assign_call_site_values::ar_hash): Likewise.
19091 (convert_to_eh_region_ranges::ar_hash): Likewise.
19092
19093 * gcse.c (htab_t pre_ldst_table):
19094 Change type to hash_table. Update dependent calls and types.
19095
19096 * ggc-common.c (htab_t saving_htab):
19097 Change type to hash_table. Update dependent calls and types.
19098 (htab_t loc_hash): Likewise.
19099 (htab_t ptr_hash): Likewise.
19100 (call_count): Rename ggc_call_count.
19101 (call_alloc): Rename ggc_call_alloc.
19102 (loc_descriptor): Rename make_loc_descriptor.
19103 (add_statistics): Rename ggc_add_statistics.
19104
19105 * ggc-common.c (saving_htab):
19106 Change type to hash_table. Update dependent calls and types.
19107
19108 * gimple.h (struct gimplify_ctx): Move to gimplify-ctx.h.
19109 (push_gimplify_context): Likewise.
19110 (pop_gimplify_context): Likewise.
19111 (struct gimple_temp_hash_elt): Added.
19112 (struct gimplify_hasher): Likewise.
19113 (struct gimplify_ctx.temp_htab):
19114 Change type to hash_table. Update dependent calls and types.
19115
19116 * gimple-fold.c: Include gimplify-ctx.h.
19117
19118 * gimple-ssa-strength-reduction.c (htab_t base_cand_map):
19119 Change type to hash_table. Update dependent calls and types.
19120 (base_cand_dump_callback): Rename to ssa_base_cand_dump_callback to
19121 avoid potential global name collision.
19122
19123 * gimplify.c: Include gimplify-ctx.h.
19124 (struct gimple_temp_hash_elt): Move to gimplify-ctx.h.
19125 (htab_t gimplify_ctx::temp_htab):
19126 Update dependent calls and types for new type hash_table.
19127 (gimple_tree_hash): Move into gimplify_hasher in gimplify-ctx.h.
19128 (gimple_tree_eq): Move into gimplify_hasher in gimplify-ctx.h.
19129
19130 * gimplify-ctx.h: New.
19131 (struct gimple_temp_hash_elt): Move from gimplify.c.
19132 (class gimplify_hasher): New.
19133 (struct gimplify_ctx): Move from gimple.h.
19134 (htab_t gimplify_ctx::temp_htab):
19135 Change type to hash_table. Update dependent calls and types.
19136
19137 * graphite-clast-to-gimple.c: Include graphite-htab.h.
19138 (htab_t ivs_params::newivs_index):
19139 Change type to hash_table. Update dependent calls and types.
19140 (htab_t ivs_params::params_index): Likewise.
19141 (htab_t print_generated_program::params_index): Likewise.
19142 (htab_t gloog::newivs_index): Likewise.
19143 (htab_t gloog::params_index): Likewise.
19144
19145 * graphite.c: Include graphite-htab.h.
19146 4htab_t graphite_transform_loops::bb_pbb_mapping):
19147 Change type to hash_table. Update dependent calls and types.
19148
19149 * graphite-clast-to-gimple.h: (extern gloog) Move to graphite-htab.h.
19150 (bb_pbb_map_hash): Fold into bb_pbb_htab_type in graphite-htab.h.
19151 (eq_bb_pbb_map): Fold into bb_pbb_htab_type in graphite-htab.h.
19152
19153 * graphite-dependences.c: Include graphite-htab.h.
19154 (loop_is_parallel_p): Change hash table type of parameter.
19155
19156 * graphite-htab.h: New.
19157 (typedef hash_table <bb_pbb_hasher> bb_pbb_htab_type): New.
19158 (extern find_pbb_via_hash): Move from graphite-poly.h.
19159 (extern loop_is_parallel_p): Move from graphite-poly.h.
19160 (extern get_loop_body_pbbs): Move from graphite-poly.h.
19161
19162 * graphite-poly.h (extern find_pbb_via_hash): Move to graphite-htab.h.
19163 (extern loop_is_parallel_p): Move to graphite-htab.h.
19164 (extern get_loop_body_pbbs): Move to graphite-htab.h.
19165
19166 * haifa-sched.c (htab_t delay_htab):
19167 Change type to hash_table. Update dependent calls and types.
19168 (htab_t delay_htab_i2): Likewise.
19169
19170 * ira-color.c (htab_t allocno_hard_regs_htab):
19171 Change type to hash_table. Update dependent calls and types.
19172
19173 * ira-costs.c (htab_t cost_classes_htab):
19174 Change type to hash_table. Update dependent calls and types.
19175
19176 * loop-invariant.c (htab_t merge_identical_invariants::eq):
19177 Change type to hash_table. Update dependent calls and types.
19178
19179 * loop-iv.c (htab_t bivs):
19180 Change type to hash_table. Update dependent calls and types.
19181
19182 * loop-unroll.c (htab_t opt_info::insns_to_split):
19183 Change type to hash_table. Update dependent calls and types.
19184 (htab_t opt_info::insns_with_var_to_expand): Likewise.
19185
19186 * lto-streamer.h (struct string_slot): Move from data-streamer.h
19187 (struct string_slot_hasher): New.
19188 (htab_t output_block::string_hash_table):
19189 Change type to hash_table. Update dependent calls and types.
19190
19191 * lto-streamer-in.c (freeing_string_slot_hasher): New.
19192 (htab_t file_name_hash_table):
19193 Change type to hash_table. Update dependent calls and types.
19194
19195 * lto-streamer-out.c: Update output_block::string_hash_table dependent
19196 calls and types.
19197
19198 * lto-streamer.c (htab_t tree_htab):
19199 Change type to hash_table. Update dependent calls and types.
19200
19201 * omp-low.c: Include gimplify-ctx.h.
19202
19203 * passes.c (htab_t name_to_pass_map):
19204 Change type to hash_table. Update dependent calls and types.
19205 (pass_traverse): Rename to passes_pass_traverse.
19206
19207 * plugin.c (htab_t event_tab):
19208 Change type to hash_table. Update dependent calls and types.
19209
19210 * postreload-gcse.c (htab_t expr_table):
19211 Change type to hash_table. Update dependent calls and types.
19212 (dump_hash_table_entry): Rename dump_expr_hash_table_entry.
19213
19214 * sese.c (debug_rename_map_1): Make extern.
19215 (htab_t copy_bb_and_scalar_dependences::rename_map):
19216 Change type to hash_table. Update dependent calls and types.
19217
19218 * sese.h (extern debug_rename_map): Move to .c file.
19219
19220 * store-motion.c (htab_t store_motion_mems_table):
19221 Change type to hash_table. Update dependent calls and types.
19222
19223 * trans-mem.c (htab_t tm_new_mem_hash):
19224 Change type to hash_table. Update dependent calls and types.
19225
19226 * tree-browser.c (htab_t TB_up_ht):
19227 Change type to hash_table. Update dependent calls and types.
19228
19229 * tree-cfg.c (htab_t discriminator_per_locus):
19230 Change type to hash_table. Update dependent calls and types.
19231
19232 * tree-complex.c: Include tree-hasher.h
19233 (htab_t complex_variable_components):
19234 Change type to hash_table. Update dependent calls and types.
19235
19236 * tree-eh.c (htab_t finally_tree):
19237 Change type to hash_table. Update dependent calls and types.
19238
19239 * tree-flow.h (extern int_tree_map_hash): Moved into tree-hasher
19240 struct int_tree_hasher.
19241 (extern int_tree_map_eq): Likewise.
19242 (uid_decl_map_hash): Removed.
19243 (extern decl_tree_map_eq): Likewise.
19244
19245 * tree-hasher.h: New.
19246 (struct int_tree_hasher): New.
19247 (typedef int_tree_htab_type): New.
19248
19249 * tree-inline.c: Include gimplify-ctx.h.
19250
19251 * tree-mudflap.c: Include gimplify-ctx.h.
19252
19253 * tree-parloops.c: Include tree-hasher.h.
19254 (htab_t eliminate_local_variables_stmt::decl_address):
19255 Change type to hash_table. Update dependent calls and types.
19256 (htab_t separate_decls_in_region::decl_copies): Likewise.
19257
19258 * tree-scalar-evolution.c (htab_t resolve_mixers::cache):
19259 Change type to hash_table. Update dependent calls and types.
19260
19261 * tree-sra.c (candidates):
19262 Change type to hash_table. Update dependent calls and types.
19263
19264 * tree-ssa.c (int_tree_map_eq): Moved into struct int_tree_hasher
19265 in tree-flow.h.
19266 (int_tree_map_hash): Likewise.
19267
19268 * tree-ssa-dom.c (htab_t avail_exprs):
19269 Change type to hash_table. Update dependent calls and types.
19270
19271 * tree-ssa-live.c (var_map_base_init::tree_to_index):
19272 Change type to hash_table. Update dependent calls and types.
19273
19274 * tree-ssa-loop-ivopts.c (struct ivopts_data.inv_expr_tab):
19275 Change type to hash_table. Update dependent calls and types.
19276
19277 * tree-ssa-phiopt.c (seen_ssa_names):
19278 Change type to hash_table. Update dependent calls and types.
19279
19280 * tree-ssa-strlen.c (decl_to_stridxlist_htab):
19281 Change type to hash_table. Update dependent calls and types.
19282
19283 * tree-ssa-uncprop.c (equiv):
19284 Change type to hash_table. Update dependent calls and types.
19285
c5a44004
JJ
192862013-04-25 Jakub Jelinek <jakub@redhat.com>
19287
19288 PR rtl-optimization/57003
19289 * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
19290 call note_stores with kill_clobbered_value callback again after
19291 killing regs_invalidated_by_call.
19292
09962a4a
JG
192932013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
19294
19295 * config/aarch64/aarch64-simd.md
19296 (aarch64_simd_bsl<mode>_internal): Rewrite RTL to not use UNSPEC_BSL.
19297 (aarch64_simd_bsl<mode>): Likewise.
19298 * config/aarch64/iterators.md (unspec): Remove UNSPEC_BSL.
19299
ea28bb0b
MP
193002013-04-25 Marek Polacek <polacek@redhat.com>
19301
19302 PR tree-optimization/57066
3c21604f 19303 * builtins.c (fold_builtin_logb): Return +Inf for -Inf.
ea28bb0b 19304
96659611
JG
193052013-04-25 James Greenhalgh <jame.greenhalgh@arm.com>
19306
19307 * config/aarch64/aarch64-simd.md (neg<mode>2): Use VDQ iterator.
19308
9697e620
JG
193092013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
19310
19311 * config/aarch64/aarch64-builtins.c
19312 (aarch64_fold_builtin): New.
19313 * config/aarch64/aarch64-protos.h (aarch64_fold_builtin): New.
19314 * config/aarch64/aarch64.c (TARGET_FOLD_BUILTIN): Define.
19315 * config/aarch64/aarch64-simd-builtins.def (abs): New.
19316 * config/aarch64/arm_neon.h
19317 (vabs<q>_<f32, 64>): Implement using __builtin_aarch64_fabs.
19318
0ac198d3
JG
193192013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
19320 Tejas Belagod <tejas.belagod@arm.com>
19321
19322 * config/aarch64/aarch64-builtins.c
19323 (aarch64_gimple_fold_builtin): New.
19324 * config/aarch64/aarch64-protos.h (aarch64_gimple_fold_builtin): New.
19325 * config/aarch64/aarch64-simd-builtins.def (addv): New.
19326 * config/aarch64/aarch64-simd.md (addpv4sf): New.
19327 (addvv4sf): Update.
19328 * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define.
19329
58cff58c
N
193302013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
19331
df93505e 19332 * config/aarch64/aarch64.md
58cff58c
N
19333 (*cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): New pattern.
19334
7e0228bf
N
193352013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
19336
19337 * config/aarch64/aarch64.md (*ngc<mode>): New pattern.
19338 (*ngcsi_uxtw): New pattern.
19339
5819f96f 193402013-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3c21604f 19341 Julian Brown <julian@codesourcery.com>
5819f96f
KT
19342
19343 * config/arm/arm.c (neon_builtin_type_mode): Add T_V4HF.
19344 (TB_DREG): Add T_V4HF.
19345 (v4hf_UP): New macro.
19346 (neon_itype): Add NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
df93505e 19347 (arm_init_neon_builtins): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
5819f96f
KT
19348 Handle initialisation of V4HF. Adjust initialisation of reinterpret
19349 built-ins.
df93505e 19350 (arm_expand_neon_builtin): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
5819f96f
KT
19351 (arm_vector_mode_supported_p): Handle V4HF.
19352 (arm_mangle_map): Handle V4HFmode.
19353 * config/arm/arm.h (VALID_NEON_DREG_MODE): Add V4HF.
19354 * config/arm/arm_neon_builtins.def: Add entries for
19355 vcvtv4hfv4sf, vcvtv4sfv4hf.
19356 * config/arm/neon.md (neon_vcvtv4sfv4hf): New pattern.
19357 (neon_vcvtv4hfv4sf): Likewise.
19358 * config/arm/neon-gen.ml: Handle half-precision floating point
19359 features.
19360 * config/arm/neon-testgen.ml: Handle Requires_FP_bit feature.
19361 * config/arm/arm_neon.h: Regenerate.
19362 * config/arm/neon.ml (type elts): Add F16.
19363 (type vectype): Add T_float16x4, T_floatHF.
19364 (type vecmode): Add V4HF.
19365 (type features): Add Requires_FP_bit feature.
19366 (elt_width): Handle F16.
19367 (elt_class): Likewise.
19368 (elt_of_class_width): Likewise.
19369 (mode_of_elt): Refactor.
19370 (type_for_elt): Handle F16, fix error messages.
19371 (vectype_size): Handle T_float16x4.
19372 (vcvt_sh): New function.
19373 (ops): Add entries for vcvt_f16_f32, vcvt_f32_f16.
19374 (string_of_vectype): Handle T_floatHF, T_float16, T_float16x4.
19375 (string_of_mode): Handle V4HF.
19376 * doc/arm-neon-intrinsics.texi: Regenerate.
19377
1ef395e4
JG
193782013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
19379
19380 * config/aarch64/aarch64.c (aarch64_print_operand): Fix asm_fprintf
19381 format specifier in 'X' case.
19382
41c34e94
AM
193832013-04-25 Alan Modra <amodra@gmail.com>
19384
19385 PR target/57052
19386 * config/rs6000/rs6000.md (rotlsi3_internal7): Rename to
19387 rotlsi3_internal7le and condition on !BYTES_BIG_ENDIAN.
19388 (rotlsi3_internal8be): New BYTES_BIG_ENDIAN insn.
19389 Repeat for many other rotate/shift and mask patterns using subregs.
19390 Name lshiftrt insns.
19391 (ashrdisi3_noppc64): Rename to ashrdisi3_noppc64be and condition
19392 on WORDS_BIG_ENDIAN.
19393
b9a7eb5d
AM
193942013-04-25 Alan Modra <amodra@gmail.com>
19395
19396 * config.gcc: Support little-endian powerpc-linux targets.
19397 * config/rs6000/linux.h (LINK_OS_LINUX_EMUL): Define.
19398 (LINK_OS_LINUX_SPEC): Define.
19399 * config/rs6000/linuxspe.h (TARGET_DEFAULT):
19400 Preserve MASK_LITTLE_ENDIAN.
19401 * config/rs6000/default64.h (TARGET_DEFAULT): Likewise.
19402 * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Likewise.
19403 * config/rs6000/linux64.h (OPTION_LITTLE_ENDIAN): Don't zero.
19404 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Define.
19405 (LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Use above.
19406 * config/rs6000/rs6000.c (output_toc): Don't use .tc for TARGET_ELF.
19407 Correct fp word order for little-endian. Don't shift toc entries
19408 smaller than a word for little-endian.
19409 * config/rs6000/rs6000.md (bswaphi2, bswapsi2 split): Comment.
19410 (bswapdi2 splits): Correct low-part subreg for little-endian.
19411 Remove wrong BYTES_BIG_ENDIAN tests, and rename vars to remove
19412 low/high where such is correct only for be.
19413 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Allow
19414 little-endian for -mcall-aixdesc.
19415
87f73374
AM
194162013-04-25 Alan Modra <amodra@gmail.com>
19417
19418 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
19419 replace_equiv_address_nv.
19420
cabf91cd
AM
194212013-04-25 Alan Modra <amodra@gmail.com>
19422
19423 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Tidy.
19424
0ae24cc8
VM
194252013-04-24 Vladimir Makarov <vmakarov@redhat.com>
19426
19427 Revert:
19428 2013-04-24 Vladimir Makarov <vmakarov@redhat.com>
19429 * rtl.h (struct rtx_def): ...
cabf91cd 19430
77bce07c
VM
194312013-04-24 Vladimir Makarov <vmakarov@redhat.com>
19432
19433 PR rtl-optimizations/57046
19434 * lra-constraints (split_reg): Set up lra_risky_transformations_p
19435 for multi-reg splits.
19436
0db63e7f
L
194372013-04-24 H.J. Lu <hongjiu.lu@intel.com>
19438
19439 * config/i386/x86-64.h (ASM_SPEC): Support -mx32.
19440
3362b6b6
SA
194412013-04-24 Sterling Augustine <saugustine@google.com>
19442
19443 * dwarf2out.c (skeleton_debug_str_hash, add_skeleton_AT_string)
19444 (comp_dir_string, debug_str_dwo_section): New.
19445 (DEBUG_STR_DWO_SECTION): Rename to ...
19446 (DEBUG_DWO_STR_SECTION): ... this.
19447 (DEBUG_NORM_STR_SECTION): Delete.
19448 (DEBUG_STR_SECTION, DEBUG_STR_SECTION_FLAGS): Edit definitions.
19449 (DEBUG_STR_DWO_SECTION_FLAGS): New.
19450 (find_AT_string): Move most logic to ...
19451 (find_AT_string_in_table): ... here. New.
19452 (add_top_level_skeleton_die_attrs): Call comp_dir_string and
19453 add_skeleton_AT_string. Delete logic.
19454 (output_skeleton_debug_sections): Remove call to
19455 add_top_level_skeleton_die_attrs.
19456 (add_comp_dir_attribute): Move logic to comp_dir_string.
19457 (dwarf2out_init): Initialize debug_str_dwo_section.
19458 (output_indirect_string): Call find_string_form.
19459 (output_indirect_strings): Rewrite.
19460 (prune_unused_types): Empty skeleton_debug_str_hash.
19461 Call get_skeleton_type_unit and add_top_level_skeleton_die_attrs.
19462 (dwarf2out_finish): Call output_indirect_strings.
19463
e93e18e9
PC
194642013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
19465
19466 * doc/cpp.texi: Remove __GXX_EXPERIMENTAL_CXX1Y__.
19467
f6ce35ac
VM
194682013-04-24 Vladimir Makarov <vmakarov@redhat.com>
19469
cabf91cd 19470 * rtl.h (struct rtx_def): Add comment for field jump.
f6ce35ac
VM
19471 (LRA_SUBREG_P): New macro.
19472 * recog.c (register_operand): Check LRA_SUBREG_P.
19473 * lra.c (lra): Add note at the end of RTL code. Align non-empty
19474 stack frame.
19475 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
19476 (lra_final_code_change): Skip subreg change for operators.
19477 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
19478 if there are no operand changes.
19479 * lra-constraints.c (curr_insn_set): New.
19480 (match_reload): Set LRA_SUBREG_P.
19481 (emit_spill_move): Ditto.
19482 (check_and_process_move): Use curr_insn_set. Process only single
19483 set insns. Don't initialize sec_mem_p and change_p.
19484 (simplify_operand_subreg): Use LRA_SUBREG_P.
19485 (reg_in_class_p): New function.
19486 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
19487 of #ifdef. Add code to remove cycling.
19488 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
19489 non-null disp. Reload inner instead of disp when base and index
19490 are null. Try to put lo_sum into register.
19491 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
cabf91cd 19492 (check_and_process_move): Move code for move cost check to
f6ce35ac 19493 simple_move_p. Remove equiv_substitution.
cabf91cd 19494 (simple_move_p): New function.
f6ce35ac
VM
19495 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
19496 curr_insn_set. Call check_and_process_move only for single set
19497 insns. Use the new function. Move call of check_and_process_move
19498 after operand equiv substitution and address process.
19499
38047d90
JG
195002013-04-24 James Greenhalgh <james.greenhalgh@arm.com>
19501
19502 * config/aarch64/arm_neon.h (vld1<q>_lane*): Fix constraints.
19503 (vld1<q>_dup_<sufp><8, 16, 32, 64>): Likewise.
19504 (vld1<q>_<sufp><8, 16, 32, 64>): Likewise.
19505
13f39b2e
PC
195062013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
19507
19508 * doc/cpp.texi: Document __GXX_EXPERIMENTAL_CXX1Y__.
19509
97c116dc
MP
195102013-04-24 Marek Polacek <polacek@redhat.com>
19511
19512 * tree-scalar-evolution.h (analyze_scalar_evolution): Remove.
19513 * tree-scalar-evolution.c (get_exit_conditions_rec): Likewise.
19514 (select_loops_exit_conditions): Likewise.
19515 (number_of_iterations_for_all_loops): Likewise.
19516 (analyze_scalar_evolution_for_all_loop_phi_nodes): Likewise.
19517 (scev_analysis): Likewise.
19518
83082391 195192013-04-02 Catherine Moore <clm@codesourcery.com>
12211b99 19520 Chao-ying Fu <fu@mips.com>
83082391 19521
cabf91cd
AM
19522 * config/mips/micromips.md (jraddiusp): New pattern.
19523 * config/mips/mips.c (mips_expand_epilogue): Use the JRADDIUSP
19524 instruction if possible.
83082391 19525
19e34aa2
AM
195262013-04-24 Alan Modra <amodra@gmail.com>
19527
19528 * config/rs6000/driver-rs6000.c (elf_dcachebsize): Fix comment pasto.
19529
fdb6603c
JB
195302013-04-24 Julian Brown <julian@codesourcery.com>
19531 Chung-Lin Tang <cltang@codesourcery.com>
19532
19533 * dwarf2out.c (gen_enumeration_type_die): Fix HOST_BITS_PER_WIDE_INT
df93505e
UB
19534 dependency behavior in enumeration type DIE generation. Add TODO note
19535 to comments about future DW_FORM_sdata/udata re-work of related code.
fdb6603c 19536
bf190e8d
LC
195372013-04-23 Lawrence Crowl <crowl@google.com>
19538
19539 * Makefile.in: Update as needed below.
19540
19541 * hash-table.h (class hash_table):
19542 Correct many methods with parameter types compare_type to the correct
19543 value_type. (Correct code was unlikely to notice the change.)
19544 (hash_table::elements_with_deleted) New.
19545 (class hashtable::iterator): New.
19546 (hashtable::begin()): New.
19547 (hashtable::end()): New.
19548 (FOR_EACH_HASH_TABLE_ELEMENT): New.
19549
19550 * statistics.c (statistics_hashes):
19551 Change type to hash_table. Update dependent calls and types.
19552
19553 * tree-into-ssa.c (var_infos):
19554 Change type to hash_table. Update dependent calls and types.
19555
19556 * tree-ssa-coalesce.c (struct coalesce_list_d.list):
19557 Change type to hash_table. Update dependent calls and types.
19558
19559 * tree-ssa-loop-im.c (struct mem_ref.refs):
19560 Change type to hash_table. Update dependent calls and types.
19561
19562 * tree-ssa-reassoc.c (undistribute_ops_list::ctable):
19563 Change type to hash_table. Update dependent calls and types.
19564
19565 * tree-ssa-sccvn.c (vn_tables_s::nary):
19566 Change type to hash_table. Update dependent calls and types.
19567 (vn_tables_s::phis): Likewise.
19568 (vn_tables_s::references): Likewise.
19569
19570 * tree-ssa-sccvn.h (vn_nary_op_eq): Update parameter and return types.
19571 (vn_reference_eq): Update parameter and return types.
19572
19573 * tree-ssa-structalias.c (pointer_equiv_class_table):
19574 Change type to hash_table. Update dependent calls and types.
19575 (location_equiv_class_table): Likewise.
19576
19577 * tree-vect-data-refs.c: Consequential changes for making
19578 peeling a hash_table.
19579
19580 * tree-vect-loop.c (new_loop_vec_info): Dependent hash_table update.
19581 (destroy_loop_vec_info): Dependent hash_table update.
19582
19583 * tree-vectorizer.h (peeling_htab):
19584 Change type to hash_table. Update dependent calls and types.
19585
d70a81dd
SC
195862013-04-23 Shiva Chen <shiva0217@gmail.com>
19587
cabf91cd
AM
19588 * lra-assigns.c (find_hard_regno_for): Use lra_reg_val_equal_p
19589 to check the register content is equal or not.
19590 * lra-constraints.c (match_reload): Use lra_assign_reg_val
19591 to assign register content record.
19592 * lra-eliminations.c (update_reg_eliminate): Use
d70a81dd 19593 lra_update_reg_val_offset to update register content offset.
cabf91cd
AM
19594 * lra-int.h (struct lra_reg): Add offset member.
19595 (lra_reg_val_equal_p): New static inline function.
19596 (lra_update_reg_val_offset): New static inline function.
19597 (lra_assign_reg_val): New static inline function.
19598 * lra.c (lra_create_new_reg): Use lra_assign_reg_val
19599 to assign register content record.
19600 (initialize_lra_reg_info_element): Initial offset to zero.
d70a81dd 19601
b894a1f3
CM
196022013-04-23 Catherine Moore <clm@codesourcery.com>
19603
19604 * config/mips/mips.md (*movhi_internal, *movqi_internal): New
19605 operands. Record compression.
19606
ecd14de9
XDL
196072013-04-23 Xinliang David Li <davidxl@google.com>
19608
19609 * cfghhooks.c (dump_bb_for_graph): Support 'slim' graph dump.
19610
92e776e9
RB
196112013-04-23 Richard Biener <rguenther@suse.de>
19612
19613 PR middle-end/57036
19614 * tree-inline.c (copy_edges_for_bb): Add can_make_abnormal_goto
19615 parameter, only add abnormal goto edges from the copied body
19616 if the call could perform abnormal gotos.
19617 (copy_cfg_body): Adjust.
19618
a15ee567
SN
196192013-04-23 Sofiane Naci <sofiane.naci@arm.com>
19620
19621 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add simd attribute.
19622
08c52234
AS
196232013-04-23 Andreas Schwab <schwab@linux-m68k.org>
19624
19625 * coretypes.h (gimple_stmt_iterator): Add struct to make
19626 compatible with C.
19627
999c1171
RB
196282013-04-23 Richard Biener <rguenther@suse.de>
19629
19630 PR tree-optimization/57026
19631 * tree-vrp.c (simplify_conversion_using_ranges): Do not propagate
19632 from SSA names occuring in abnormal PHI nodes.
19633
53669259
AK
196342013-04-22 Andi Kleen <ak@linux.intel.com>
19635
19636 * lto/lto.c (print_lto_report_1): Fix LTO report names.
19637
1a0ad150
AK
196382013-04-22 Andi Kleen <ak@linux.intel.com>
19639
19640 * lto/lto.c (print_lto_report_1): Declare early.
19641 (read_cgraph_and_symbols): Call print_lto_report_1 early.
19642
057f8f20
AK
196432013-04-22 Andi Kleen <ak@linux.intel.com>
19644
19645 * common.opt (-flto-report-wpa): Add.
19646 * doc/invoke.texi (-flto-report-wpa): Add.
19647 * lto/lto.c (do_whole_program_analysis): Check for lto-report-wpa.
19648 (lto_main): dito.
19649
473b1e05
XDL
196502013-04-22 Xinliang David Li <davidxl@google.com>
19651
19652 * graph.c (draw_cfg_node_succ_edges): Add branch probility as label.
19653 * cfghhooks.c (dump_bb_for_graph): Dump profile count and frquency.
19654 * Makefile.in: New dependency
19655
cabf91cd 19656 David Daney <ddaney.cavm@gmail.com>
b1485a33 19657
cabf91cd
AM
19658 * configure.ac (gcc_cv_as_micromips_support): Use the
19659 --fatal-warnings option.
19660 * configure: Regenerate.
b1485a33 19661
829d0168
MP
196622013-04-22 Marek Polacek <polacek@redhat.com>
19663
19664 PR sanitizer/56990
19665 * tsan.c (instrument_expr): Don't instrument expression
19666 in case its size is zero.
19667
6d9b7208
UB
196682013-04-22 Uros Bizjak <ubizjak@gmail.com>
19669
19670 PR target/57032
19671 Revert:
19672 2013-03-17 Uros Bizjak <ubizjak@gmail.com>
19673
19674 * config/alpha/alpha.c (TARGET_LRA_P): New define.
19675
ea679d55
JG
196762013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
19677
19678 * coretypes.h (gimple_stmt_iterator_d): Forward declare.
19679 (gimple_stmt_iterator): New typedef.
19680 * gimple.h (gimple_stmt_iterator): Rename to...
19681 (gimple_stmt_iterator_d): ... This.
19682 * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Detail restriction that
19683 trees be valid for GIMPLE and GENERIC.
19684 (TARGET_GIMPLE_FOLD_BUILTIN): New.
19685 * gimple-fold.c (gimple_fold_call): Call target hook
19686 gimple_fold_builtin.
19687 * hooks.c (hook_bool_gsiptr_false): New.
19688 * hooks.h (hook_bool_gsiptr_false): New.
19689 * target.def (fold_stmt): New.
19690 * doc/tm.texi: Regenerate.
19691
88a581da
VM
196922013-04-22 Vladimir Makarov <vmakarov@redhat.com>
19693
19694 PR target/57018
19695 * lra-eliminations.c (mark_not_eliminable): Prevent elimination of
19696 a set sp if no stack realignment.
19697
92be22dc
NC
196982013-04-22 Nick Clifton <nickc@redhat.com>
19699
19700 * config.gcc (tilegx-linux): Extend extra_objs rather than
19701 overwriting it.
19702 (tilepro-linux): Likewise.
19703
0ddec79f
JG
197042013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
19705
19706 * config/aarch64/aarch64-builtins.c
19707 (CF): Remove.
19708 (CF0, CF1, CF2, CF3, CF4, CF10): New.
19709 (VAR<1-12>): Add MAP parameter.
19710 (BUILTIN_*): Likewise.
19711 * config/aarch64/aarch64-simd-builtins.def: Set MAP parameter.
19712 * config/aarch64/aarch64-simd.md (aarch64_sshl_n<mode>): Remove.
19713 (aarch64_ushl_n<mode>): Likewise.
19714 (aarch64_sshr_n<mode>): Likewise.
19715 (aarch64_ushr_n<mode>): Likewise.
19716 (aarch64_<maxmin><mode>): Likewise.
19717 (aarch64_sqrt<mode>): Likewise.
19718 * config/aarch64/arm_neon.h (vshl<q>_n_*): Use new builtin names.
19719 (vshr<q>_n_*): Likewise.
19720
0050faf8
JG
197212013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
19722
19723 * config/aarch64/aarch64-builtins.c
19724 (aarch64_simd_builtin_type_mode): Handle SF types.
19725 (sf_UP): Define.
19726 (BUILTIN_GPF): Define.
19727 (aarch64_init_simd_builtins): Handle SF types.
19728 * config/aarch64/aarch64-simd-builtins.def (frecpe): Add support.
19729 (frecps): Likewise.
19730 (frecpx): Likewise.
19731 * config/aarch64/aarch64-simd.md
19732 (simd_types): Update simd_frcp<esx> to simd_frecp<esx>.
19733 (aarch64_frecpe<mode>): New.
19734 (aarch64_frecps<mode>): Likewise.
19735 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRECP<ESX>.
19736 (v8type): Add frecp<esx>.
19737 (aarch64_frecp<FRECP:frecp_suffix><mode>): New.
19738 (aarch64_frecps<mode>): Likewise.
19739 * config/aarch64/iterators.md (FRECP): New.
19740 (frecp_suffix): Likewise.
19741 * config/aarch64/arm_neon.h
19742 (vrecp<esx><qsd>_<fd><32, 64>): Convert to using builtins.
19743
0fad3dbc 197442013-04-22 Christian Bruel <christian.bruel@st.com>
1818d01c
CB
19745
19746 PR target/56995
19747 * config/sh/sh.h (enum reg_class): Remove DF_HI_REGS.
19748 (REG_CLASS_NAMES): Idem.
19749 (REG_CLASS_CONTENTS): Idem.
19750 (REGCLASS_HAS_FP_REG): Idem.
19751 * config/sh/sh.c (sh_cannot_change_mode_class): Idem.
19752 (sh_conditional_register_usage): Idem.
19753
3e8a33f9
JL
197542013-04-21 Jeff Law <law@redhat.com>
19755
19756 * tree-ssa-forwprop.c (simplify_conversion_from_bitmask): New function.
19757 (ssa_forward_propagate_and_combine): Use it.
19758
f38e1b0a
VM
197592013-04-19 Vladimir Makarov <vmakarov@redhat.com>
19760
19761 * lra.c: Update the flow chart diagram.
19762
682303da
VM
197632013-04-19 Vladimir Makarov <vmakarov@redhat.com>
19764
19765 PR rtl-optimization/56847
19766 * lra-constraints.c (process_alt_operands): Discourage alternative
19767 with non-matche doffsettable memory constraint fro memory with
19768 known offset.
19769
f6b64c35
RB
197702013-04-19 Richard Biener <rguenther@suse.de>
19771
19772 PR tree-optimization/56982
19773 * builtins.def (BUILT_IN_LONGJMP): longjmp is not a leaf
19774 function.
19775 * gimplify.c (gimplify_call_expr): Notice special calls.
19776 (gimplify_modify_expr): Likewise.
19777 * tree-cfg.c (make_abnormal_goto_edges): Handle setjmp-like
19778 abnormal control flow receivers.
19779 (call_can_make_abnormal_goto): Handle cfun->calls_setjmp
19780 in the same way as cfun->has_nonlocal_labels.
19781 (gimple_purge_dead_abnormal_call_edges): Likewise.
19782 (stmt_starts_bb_p): Make setjmp-like abnormal control flow
19783 receivers start a basic-block.
19784
01d8bf07
RB
197852013-04-19 Richard Biener <rguenther@suse.de>
19786
19787 * tree-vectorizer.h (struct _slp_instance): Move load_permutation
19788 member ...
19789 (struct _slp_tree): ... here. Make it a vector of unsigned ints.
19790 (SLP_INSTANCE_LOAD_PERMUTATION): Remove.
19791 (SLP_TREE_LOAD_PERMUTATION): Add.
19792 (vect_transform_slp_perm_load): Adjust prototype.
19793 * tree-vect-slp.c (vect_free_slp_tree): Adjust.
19794 (vect_free_slp_instance): Likewise.
19795 (vect_create_new_slp_node): Likewise.
19796 (vect_supported_slp_permutation_p): Remove.
19797 (vect_slp_rearrange_stmts): Adjust.
19798 (vect_supported_load_permutation_p): Likewise. Inline
19799 vect_supported_slp_permutation_p here.
19800 (vect_analyze_slp_instance): Compute load permutations per
19801 slp node instead of per instance.
19802 (vect_get_slp_defs): Adjust.
19803 (vect_transform_slp_perm_load): Likewise.
19804 (vect_schedule_slp_instance): Remove redundant code.
19805 (vect_schedule_slp): Remove hack for PR56270, add it ...
19806 * tree-vect-stmts.c (vectorizable_load): ... here, do not
19807 CSE loads for SLP. Adjust.
19808
ede22fc3
GY
198092013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
19810
19811 * config/arm/arm.c (load_multiple_sequence, ldm_stm_operation_p): Fix
19812 spelling in two comments.
19813
67bc84fb
GY
198142013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
19815
19816 PR target/56797
19817 * config/arm/arm.c (load_multiple_sequence): Require SP
19818 as base register for loads if SP is in the register list.
19819
e248d83f
MJ
198202013-04-19 Martin Jambor <mjambor@suse.cz>
19821
19822 PR tree-optimization/56718
19823 * ipa-cp.c (ipa_value_from_known_type_jfunc): Moved...
19824 * ipa-prop.c (ipa_binfo_from_known_type_jfunc): ...here, renamed
19825 and made public. Adjusted all callers.
19826 (ipa_intraprocedural_devirtualization): New function.
19827 * ipa-prop.h (ipa_binfo_from_known_type_jfunc): Declare.
19828 (ipa_intraprocedural_devirtualization): Likewise.
19829 * Makefile.in (tree-ssa-pre.o): Add ipa-prop.h to dependencies.
19830
4891e8f8
RB
198312013-04-19 Richard Biener <rguenther@suse.de>
19832
19833 PR tree-optimization/57000
19834 * tree-ssa-reassoc.c (pass_reassoc): Add TODO_update_ssa_only_virtuals.
19835
dad89f7c
TG
198362013-04-19 Terry Guo <terry.guo@arm.com>
19837
19838 * config/arm/cortex-m4-fpu.md (cortex_m4_v): Delete cpu unit.
19839 Replace with ...
19840 (cortex_m4_v_a, cortex_m4_v_b): ... new cpu units.
19841 (cortex_m4_v, cortex_m4_exa_va, cortex_m4_exb_vb): New reservations.
19842 (cortex_m4_fmacs): Use new reservations.
19843 (cortex_m4_f_load, cortex_m4_f_store): Likewise.
19844
72ea0d47
VM
198452013-04-18 Vladimir Makarov <vmakarov@redhat.com>
19846
f1e6512c 19847 PR rtl-optimization/56999
72ea0d47
VM
19848 * lra-coalesce.c (coalescable_pseudo_p): Remove 2nd parameter and
19849 related code.
19850 (lra_coalesce): Remove split_origin_bitmap and related code.
19851 * lra.c (lra): Coalesce after undoing inheritance. Recreate live
19852 ranges if necessary.
19853
780a5b71
UB
198542013-04-18 Uros Bizjak <ubizjak@gmail.com>
19855
19856 * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers):
19857 New array.
19858 (ix86_expand_call): Remove clobbered_registers array and use
19859 x86_64_ms_sysv_extra_clobbered_registers instead.
19860 * config/i386/i386.h (x86_64_ms_sysv_extra_clobbered_registers):
19861 Declare here.
19862 * config/i386/predicates.md (call_rex64_ms_sysv_operation): New
19863 predicate.
19864 * config/i386/i386.md (*call_rex64_ms_sysv): Use
19865 call_rex64_ms_sysv_operation predicate. Remove explicit clobbers.
19866 (*call_value_rex64_ms_sysv): Ditto.
19867
6f5a366a
CC
198682013-04-18 Cary Coutant <ccoutant@google.com>
19869
19870 * dwarf2out.c (output_pubnames): Check die_perennial_p of
19871 parent instead of die_mark.
19872
475b8f37
DN
198732013-04-18 Diego Novillo <dnovillo@google.com>
19874
19875 * gimple.c (create_gimple_tmp): New.
19876 (get_expr_type): New.
19877 (build_assign): New.
19878 (build_type_cast): New.
19879 * gimple.h (enum ssa_mode): Define.
19880 (gimple_seq_set_location): New.
19881 * asan.c (build_check_stmt): Change some gimple_build_* calls
780a5b71 19882 to use build_assign and build_type_cast.
475b8f37 19883
08940f33
RB
198842013-04-18 Richard Biener <rguenther@suse.de>
19885
19886 * tree-vect-data-refs.c (vect_analyze_group_access): Properly
19887 handle negative step. Remove redundant checks.
19888 (vect_create_data_ref_ptr): Avoid ICEs with non-constant steps.
19889 * tree-vect-stmts.c (vectorizable_load): Instead of asserting
19890 for negative step and grouped loads fail to vectorize.
19891
0e0f87d4
SB
198922013-04-18 Steven Bosscher <steven@gcc.gnu.org>
19893
19894 * emit-rtl.c (reset_insn_used_flags): New function.
19895 (reset_all_used_flags): Use it.
19896 (verify_insn_sharing): New function.
19897 (verify_rtl_sharing): Fix verification for SEQUENCEs.
19898
4c445590
JJ
198992013-04-18 Jakub Jelinek <jakub@redhat.com>
19900
19901 PR tree-optimization/56984
19902 * tree-vrp.c (register_edge_assert_for_2): For (x >> M) < N
19903 and (x >> M) >= N don't register any assertion if N << M is the
19904 minimum value.
19905
6873ecab
SB
199062013-04-18 Steven Bosscher <steven@gcc.gnu.org>
19907
19908 * lower-subreg.c (resolve_simple_move): If called self-recursive,
19909 do not delete_insn insns that have not yet been emitted, only
19910 unlink them with remove_insn.
19911 * df-scan.c (df_insn_delete): Revert r197492.
19912
3ccb989e
SB
199132013-04-17 Steven Bosscher <steven@gcc.gnu.org>
19914
19915 * emit-rtl.c (link_insn_into_chain): Handle chaining of SEQUENCEs.
19916 * reorg.c (emit_delay_sequence): Simplify with emit-rtl API.
19917
199182013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
0480fff0
GY
19919
19920 * config/arm/arm.md (movsicc_insn): Convert define_insn into
19921 define_insn_and_split.
19922 (and_scc,ior_scc,negscc): Likewise.
19923 (cmpsi2_addneg, subsi3_compare): Convert to named patterns.
19924
3ccb989e 199252013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
367075fe
GY
19926
19927 * config/arm/arm.c (use_return_insn): Return 0 for targets that
19928 can benefit from using a sequence of LDRD instructions in epilogue
19929 instead of a single LDM instruction.
19930
6d10a203
MLI
199312013-04-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
19932
19933 PR 45688
19934 * doc/extend.texi: Fix typo.
19935
6983e6b5
RB
199362013-04-17 Richard Biener <rguenther@suse.de>
19937
19938 * tree-vect-slp.c (vect_build_slp_tree_1): Split out from ...
19939 (vect_build_slp_tree): ... here.
19940 (vect_build_slp_tree_1): Compute which stmts of the SLP group
19941 match. Remove special-casing of mismatched complex loads.
19942 (vect_build_slp_tree): Based on the result from vect_build_slp_tree_1
19943 re-try the match with swapped commutative operands.
19944 (vect_supported_load_permutation_p): Remove special-casing of
19945 mismatched complex loads.
19946 (vect_analyze_slp_instance): Adjust.
19947
ef23e6a2
RB
199482013-04-17 Richard Biener <rguenther@suse.de>
19949
19950 PR rtl-optimization/56921
19951 * cfgloop.h (struct loop): Add simple_loop_desc member.
19952 (struct niter_desc): Mark with GTY(()).
19953 (simple_loop_desc): Do not use aux field but simple_loop_desc.
19954 * loop-iv.c (get_simple_loop_desc): Likewise.
19955 (free_simple_loop_desc): Likewise.
19956
19957 Revert
19958 2013-04-16 Richard Biener <rguenther@suse.de>
19959
19960 PR rtl-optimization/56921
19961 * loop-init.c (pass_rtl_move_loop_invariants): Add
19962 TODO_do_not_ggc_collect to todo_flags_finish.
19963 (pass_rtl_unswitch): Same.
19964 (pass_rtl_unroll_and_peel_loops): Same.
19965 (pass_rtl_doloop): Same.
19966
fc6f94f5
EB
199672013-04-17 Eric Botcazou <ebotcazou@adacore.com>
19968
19969 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): New.
19970 (decl_refs_may_alias_p): Add REF1 and REF2 parameters.
19971 Use nonoverlapping_component_refs_of_decl_p to disambiguate component
19972 references.
19973 (refs_may_alias_p_1): Adjust call to decl_refs_may_alias_p.
19974 * tree-streamer.c (record_common_node): Adjust reference in comment.
19975
10a88311
TG
199762013-04-17 Terry Guo <terry.guo@arm.com>
19977
19978 * config/arm/cortex-m4.md: Add a new bypass.
19979
6d9b7208 199802013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
f3d096b0
N
19981
19982 * config/aarch64/aarch64.md (*adds_<optab><mode>_multp2):
19983 New pattern.
19984 (*subs_<optab><mode>_multp2): New pattern.
19985 (*adds_<optab><ALLX:mode>_<GPI:mode>): New pattern.
19986 (*subs_<optab><ALLX:mode>_<GPI:mode>): New pattern.
19987
6d9b7208 199882013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
860ad33f
N
19989
19990 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>): New pattern.
19991 (*subs_mul_imm_<mode>): New pattern.
19992
18a6701e
DE
199932013-04-16 David Edelsohn <dje.gcc@gmail.com>
19994
19995 PR target/56948
19996 * config/rs6000/vsx.md (vsx_mov<mode>): Add j->r alternative.
19997 (vsx_movti_64bit): Change j->wa to O->wa. Add n->r alternative.
19998 (vsx_movti_32bit): Change j->wa to O->wa.
19999
07c37b2f
RB
200002013-04-16 Richard Biener <rguenther@suse.de>
20001
20002 PR rtl-optimization/56921
20003 * loop-init.c (pass_rtl_move_loop_invariants): Add
20004 TODO_do_not_ggc_collect to todo_flags_finish.
20005 (pass_rtl_unswitch): Same.
20006 (pass_rtl_unroll_and_peel_loops): Same.
20007 (pass_rtl_doloop): Same.
20008
0e0f87d4 200092013-04-16 Greta Yorsh <Greta.Yorsh@arm.com>
974ba22d
GY
20010
20011 * config/arm/arm.c (emit_multi_reg_push): New declaration
20012 for an existing function.
20013 (arm_emit_strd_push): New function.
20014 (arm_expand_prologue): Used here.
20015 (arm_emit_ldrd_pop): New function.
20016 (arm_expand_epilogue): Used here.
20017 (arm_get_frame_offsets): Update condition.
20018 (arm_emit_multi_reg_pop): Add a special case for load of a single
20019 register with writeback.
20020
5e8e2af4
UB
200212013-04-16 Uros Bizjak <ubizjak@gmail.com>
20022
20023 * doc/invoke.texi (i386 Option): Reword -mstack-protector-guard
20024 description.
20025
9fd9ccf7
RB
200262013-04-16 Richard Biener <rguenther@suse.de>
20027
20028 PR tree-optimization/56756
20029 * tree-ssa-loop-im.c (struct first_mem_ref_loc_1): New functor.
20030 (first_mem_ref_loc): New.
20031 (execute_sm): Place the load temporarily before a previous
20032 access instead of in the latch edge to ensure its SSA dependencies
20033 are defined at points dominating the load.
20034
96fba521
SB
200352013-04-16 Steven Bosscher <steven@gcc.gnu.org>
20036
4c8af858
SB
20037 * cfgrtl.c (cfg_layout_merge_blocks): Revert r184005, implement
20038 correct fix by moving header and footer insn to the footer of
20039 the merged basic block. Clear BB_END of the merged-away block.
20040
96fba521
SB
20041 PR middle-end/43631
20042 * emit-rtl.c (make_note_raw): New function.
20043 (link_insn_into_chain): New static inline function.
20044 (add_insn): Use it.
20045 (add_insn_before, add_insn_after): Factor insn chain linking code...
20046 (add_insn_before_nobb, add_insn_after_nobb): ...here, new functions
20047 using link_insn_into_chain.
20048 (note_outside_basic_block_p): New helper function for emit_note_after
20049 and emit_note_before.
20050 (emit_note_after): Use nobb variant of add_insn_after if the note
20051 should not be contained in a basic block.
20052 (emit_note_before): Use nobb variant of add_insn_before if the note
20053 should not be contained in a basic block.
20054 (emit_note_copy): Use make_note_raw.
20055 (emit_note): Likewise.
20056 * bb-reorder.c (insert_section_boundary_note): Remove hack to set
20057 BLOCK_FOR_INSN to NULL manually for NOTE_INSN_SWITCH_TEXT_SECTIONS.
20058 * jump.c (cleanup_barriers): Use reorder_insns_nobb to avoid making
20059 the moved barrier the tail of the basic block it follows.
20060 * var-tracking.c (pass_variable_tracking): Add TODO_verify_flow.
20061
7b8265ba
JJ
200622013-04-15 Jakub Jelinek <jakub@redhat.com>
20063
20064 PR tree-optimization/56962
20065 * gimple-ssa-strength-reduction.c (record_increment): Only set
20066 initializer if gimple_assign_rhs_code is {,POINTER_}PLUS_EXPR and
20067 either rhs1 or rhs2 is equal to c->base_expr.
20068
5185d248
RB
200692013-04-15 Richard Biener <rguenther@suse.de>
20070
20071 PR tree-optimization/56933
20072 * tree-vectorizer.h (struct _stmt_vec_info): Remove read_write_dep
20073 member.
20074 (GROUP_READ_WRITE_DEPENDENCE): Remove.
20075 (STMT_VINFO_GROUP_READ_WRITE_DEPENDENCE): Likewise.
20076 * tree-vect-data-refs.c (vect_analyze_group_access): Move
20077 dependence check ...
20078 vect_analyze_data_ref_dependence (vect_analyze_data_ref_dependence):
20079 ... here.
20080 * tree-vect-stmts.c (new_stmt_vec_info): Do not initialize
20081 GROUP_READ_WRITE_DEPENDENCE.
20082
a24243a0
AK
200832013-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20084
20085 * emit-rtl.c (reset_all_used_flags): New function.
20086 (verify_rtl_sharing): Call reset_all_used_flags before and after
20087 performing the checks.
20088
1c50eada
KT
200892013-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20090
20091 * config/arm/arm.c (const_ok_for_dimode_op): Handle AND case.
20092 * config/arm/arm.md (*anddi3_insn): Change to insn_and_split.
20093 * config/arm/constraints.md (De): New constraint.
20094 * config/arm/neon.md (anddi3_neon): Delete.
20095 (neon_vand<mode>): Expand to standard anddi3 pattern.
20096 * config/arm/predicates.md (imm_for_neon_inv_logic_operand):
20097 Move earlier in the file.
20098 (neon_inv_logic_op2): Likewise.
20099 (arm_anddi_operand_neon): New predicate.
20100
e927b6ad
RO
201012013-04-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20102
20103 * configure.ac (gcc_cv_ld_as_needed): Set
20104 gcc_cv_ld_as_needed_option, gcc_cv_no_as_needed_option.
20105 Use -z ignore, -z record on *-*-solaris2*.
20106 (HAVE_LD_AS_NEEDED): Update comment.
20107 (LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION): Define.
20108 * configure: Regenerate.
20109 * config.in: Regenerate.
20110 * gcc.c (init_gcc_specs) [USE_LD_AS_NEEDED]: Use
20111 LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION.
20112 * config/sol2.h [HAVE_LD_AS_NEEDED] (USE_LD_AS_NEEDED): Define.
20113 * doc/tm.texi.in (USE_LD_AS_NEEDED): Allow for --as-needed
20114 equivalents. Fix markup.
20115 * doc/tm.texi: Regenerate.
20116
e0ea8797
AH
201172013-04-15 Andrew Hsieh <andrewhsieh.google.com>
20118
20119 * config/i386/i386.opt: New option mstack-protector-guard=.
20120 * config/i386/i386-opts.h: Add enum stack_protector_guard.
20121 * config/i386/i386.h: Define TARGET_SSP_GLOBAL_GUARD and
20122 TARGET_SSP_TLS_GUARD.
20123 * config/i386/i386.c (ix86_option_override_internal): Set
20124 ix86_stack_protector_guard.
20125 * config/i386/i386.md (stack_protect_set): Enable for
20126 TARGET_SSP_TLS_GUARD only.
20127 (stack_protect_set_<mode>): Ditto.
20128 (stack_protect_test): Ditto.
20129 (stack_protect_test_<mode>): Ditto.
20130 * doc/invoke.texi (i386 Option): Document.
20131
811b72f9
EB
201322013-04-15 Eric Botcazou <ebotcazou@adacore.com>
20133
20134 PR target/56890
20135 * config/sparc/sparc.c (enum sparc_mode_class): Add H_MODE value.
20136 (S_MODES): Set H_MODE bit.
20137 (SF_MODES): Set only S_MODE and SF_MODE bits.
20138 (DF_MODES): Set SF_MODES and only D_MODE and DF_MODE bits.
20139 (sparc_init_modes) <MODE_INT>: Set H_MODE bit for sub-word modes.
20140 <MODE_VECTOR_INT>: Do not set SF_MODE for sub-word modes.
20141 <MODE_FLOAT>: Likewise.
20142
5529fdd6
JY
201432013-04-15 Joey Ye <joey.ye@arm.com>
20144
20145 * config/arm/arm.c (thumb_far_jump_used_p): Fix typo in comments.
20146
517b1da2
JY
201472013-04-15 Joey Ye <joey.ye@arm.com>
20148
20149 * config/arm/arm.c (thumb1_final_prescan_insn): Assert lr save
20150 for real far jump.
20151 (thumb_far_jump_used_p): Count instruction size and set
20152 far_jump_used.
20153
01007ae0
EB
201542013-04-14 Eric Botcazou <ebotcazou@adacore.com>
20155
20156 * reorg.c (fill_simple_delay_slots): Reindent block of code.
20157 * resource.c (mark_target_live_regs): Reformat conditional block.
20158
c46f6580
SB
201592013-04-13 Steven Bosscher <steven@gcc.gnu.org>
20160
20161 * sched-deps.c (deps_analyze_insn): Do not check for EH_REGION insn
20162 notes, they are emitted only just before final.
20163 * sched-int.h: Include insn-attr.h before checking INSN_SCHEDULING.
20164
1f397f45
SB
201652013-04-13 Steven Bosscher <steven@gcc.gnu.org>
20166
20167 * emit-rtl.c (remove_insn): Do not call df_insn_delete here.
20168 * cfgrtl.c (delete_insn): Call it here instead.
20169 * lra-spills.c (lra_final_code_change): Use delete_insn.
20170 * haifa-sched.c (sched_remove_insn): Likewise.
20171 * sel-sched-ir.c (return_nop_to_pool): Clear INSN_DELETED_P for nops
20172 returning to the nop pool.
20173 (sel_remove_insn): Simplify the only_disconnect case via remove_insn,
20174 use delete_insn for definitive removal. Clear BLOCK_FOR_INSN.
20175
58a51369
SB
201762013-04-12 Steven Bosscher <steven@gcc.gnu.org>
20177
20178 * doc/tm.texi.in (LOOP_ALIGN): Remove loop note references.
20179 * doc/tm.texi: Regenerated.
20180
33159866
UB
201812013-04-12 Uros Bizjak <ubizjak@gmail.com>
20182
20183 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use ANY_QI_REGNO_P in
20184 QImode checks.
20185
226e378f
SB
201862013-04-12 Steven Bosscher <steven@gcc.gnu.org>
20187
20188 * df-core.c (df_find_def): Compare register numbers.
20189 (df_find_use): Likewise.
20190
fafb9b18
VM
201912013-04-12 Vladimir Makarov <vmakarov@redhat.com>
20192
20193 PR target/56903
20194 * config/i386/i386.c (ix86_hard_regno_mode_ok): Add
20195 lra_in_progress for return.
20196
9a946fd6
GY
201972013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
20198
20199 * config/arm/arm.md (mov_scc,mov_negscc,mov_notscc): Convert
20200 define_insn into define_insn_and_split and emit movsicc patterns.
20201
41b83758
GY
202022013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
20203
20204 * config/arm/arm.c (gen_operands_ldrd_strd): Initialize "base".
20205
d3afd9aa
RB
202062013-04-12 Richard Biener <rguenther@suse.de>
20207
20208 * tree-pass.h (TODO_do_not_ggc_collect): New.
20209 * passes.c (execute_one_ipa_transform_pass): Honor
20210 TODO_do_not_ggc_collect.
20211 (execute_one_pass): Likewise.
20212
20213 Revert
20214 2013-04-10 Richard Biener <rguenther@suse.de>
20215
20216 * passes.c (init_optimization_passes): Remove reload pass.
20217 * ira.c (do_reload): Merge into ...
20218 (ira): ... this.
20219 (rest_of_handle_reload): Remove.
20220 (pass_reload): Likewise.
20221 * config/i386/i386.c (ix86_option_override): Refer to ira instead
20222 of reload for vzeroupper pass placement.
20223
06f9b387
JJ
202242013-04-12 Jakub Jelinek <jakub@redhat.com>
20225
20226 PR tree-optimization/56918
20227 PR tree-optimization/56920
20228 * fold-const.c (int_const_binop_1): Use op1.mul_with_sign (op2, ...)
20229 instead of op1 - op2. Pass 2 * TYPE_PRECISION (type) as second
20230 argument to rshift method. For 2 * HOST_BITS_PER_WIDE_INT precision
20231 use wide_mul_with_sign method.
20232
953094d2
RB
202332013-04-12 Richard Biener <rguenther@suse.de>
20234
20235 * gimple.c (is_gimple_constant): Vector CONSTRUCTORs should
20236 not be considered a gimple constant.
20237
bb506982
MG
202382013-04-12 Marc Glisse <marc.glisse@inria.fr>
20239
20240 * fold-const.c (const_binop): Handle vector shifts by a scalar.
20241 (fold_binary_loc): Call const_binop also for mixed vector-scalar
20242 operations.
20243
4b84d650
JJ
202442013-04-12 Manuel López-Ibáñez <manu@gcc.gnu.org>
20245 Jakub Jelinek <jakub@redhat.com>
20246
20247 * opts.c: Include diagnostic-color.h.
20248 (common_handle_option): Handle OPT_fdiagnostics_color_.
20249 * Makefile.in (OBJS-libcommon): Add diagnostic-color.o.
20250 (diagnostic.o, opts.o, pretty-print.o): Depend on diagnostic-color.h.
20251 (diagnostic-color.o): New.
20252 * common.opt (fdiagnostics-color, fdiagnostics-color=): New options.
20253 (diagnostic_color_rule): New enum.
20254 * dwarf2out.c (gen_producer_string): Don't print -fdiagnostics-color*.
20255 * langhooks.c (lhd_print_error_function): Add %r "locus" and %R around
20256 the location string.
20257 * diagnostic.def: Add 3rd argument to DEFINE_DIAGNOSTIC_KIND macros,
20258 either NULL, or color kind.
20259 * diagnostic-color.c: New file.
20260 * diagnostic-color.h: New file.
20261 * diagnostic-core.h (DEFINE_DIAGNOSTIC_KIND): Adjust macro for 3
20262 arguments.
20263 * doc/invoke.texi (-fdiagnostics-color): Document.
20264 * pretty-print.h (pp_show_color): Define.
20265 (struct pretty_print_info): Add show_color field.
20266 * diagnostic.c: Include diagnostic-color.h.
20267 (diagnostic_build_prefix): Adjust for 3 argument DEFINE_DIAGNOSTIC_KIND
20268 macros. Colorize error:, warning: etc. strings and also the location
20269 string.
20270 (diagnostic_show_locus): Colorize the caret line.
20271 * pretty-print.c: Include diagnostic-color.h.
20272 (pp_base_format): Handle %r and %R format specifiers. Colorize strings
20273 inside of %< %> quotes or quoted through q format modifier.
20274
067a1e71
AK
202752013-04-12 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20276
33159866 20277 * ifcvt.c (end_ifcvt_sequence): Mark a and b for unsharing as well.
067a1e71 20278
33159866 202792013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
b056c910
N
20280
20281 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Allow NEG
20282 code in CC_NZ mode.
20283 * config/aarch64/aarch64.md (*neg_<shift><mode>3_compare0): New
20284 pattern.
20285
7b55f98f
MP
202862013-04-11 Marek Polacek <polacek@redhat.com>
20287
20288 PR tree-optimization/48184
33159866 20289 * params.def (PARAM_ALIGN_THRESHOLD): Increase the minimum value to 1.
7b55f98f 20290
966b587e
EB
202912013-04-11 Eric Botcazou <ebotcazou@adacore.com>
20292
20293 * stor-layout.c (skip_simple_constant_arithmetic): Move to...
20294 * tree.c (skip_simple_constant_arithmetic): ...here and make public.
20295 (skip_simple_arithmetic): Tidy up.
20296 * tree.h (skip_simple_constant_arithmetic): Declare.
20297
33159866 202982013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
f8bf91ab
N
20299
20300 * config/aarch64/aarch64.h (REVERSIBLE_CC_MODE): Define.
20301
1d42c1ec
RB
203022013-04-11 Richard Biener <rguenther@suse.de>
20303
20304 * tree-vect-loop.c (get_initial_def_for_induction): Properly
20305 generate vector constants.
20306
4ba5ea11
RB
203072013-04-11 Richard Biener <rguenther@suse.de>
20308
20309 PR tree-optimization/56878
20310 * tree-flow.h (outermost_invariant_loop_for_expr): Declare.
20311 * tree-ssa-loop-ivopts.c (outermost_invariant_loop_for_expr):
20312 New function.
20313 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
20314 Prefer to align the DR with the most invariant base address.
20315
f0defe58
SKS
203162013-04-11 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
20317
20318 * opts.c (common_handle_option): Fix formatting and add FALLTHRU
20319 comment.
20320
d07458be
JG
203212013-04-11 James Greenhalgh <james.greenhalgh@arm.com>
20322
20323 * config/aarch64/aarch64-simd.md (aarch64_vcond_internal): Fix
20324 floating-point vector comparisons against 0.
20325
146b8692
JJ
203262013-04-11 Jakub Jelinek <jakub@redhat.com>
20327
20328 PR tree-optimization/56899
20329 * fold-const.c (extract_muldiv_1): Apply distributive law
20330 only if TYPE_OVERFLOW_WRAPS (ctype).
20331
b8578ff7
BC
203322013-04-11 Bin Cheng <bin.cheng@arm.com>
20333
20334 PR target/56124
20335 * ira-costs.c (scan_one_insn): Check whether the source rtx of
20336 loading has side effect.
20337
0ea8a6f9
SB
203382013-04-10 Steven Bosscher <steven@gcc.gnu.org>
20339
20340 * config/sparc/sparc.c: Include tree-pass.h.
20341 (TARGET_MACHINE_DEPENDENT_REORG): Do not redefine.
20342 (sparc_reorg): Rename to sparc_do_work_around_errata. Move to
20343 head of file. Change return type. Split off gate function.
20344 (sparc_gate_work_around_errata): New function.
20345 (pass_work_around_errata): New pass definition.
20346 (insert_pass_work_around_errata) New pass insert definition to
20347 insert pass_work_around_errata just after delayed-branch scheduling.
20348 (sparc_option_override): Insert the pass.
20349 * config/sparc/t-sparc (sparc.o): Add TREE_PASS_H dependence.
20350
42e37616
DM
203512013-04-10 David S. Miller <davem@davemloft.net>
20352
89deeb3b
DM
20353 * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=supersparc
20354 or -mcpu=hypersparc.
20355
42e37616
DM
20356 * target.def (cstore_mode): New hook.
20357 * target.h: Include insn-codes.h
20358 * targhooks.c: Likewise.
20359 (default_cstore_mode): New function.
20360 * targhooks.h: Declare it.
20361 * doc/tm.texi.in: New hook slot for TARGET_CSTORE_MODE.
20362 * doc/tm.texi: Rebuild.
20363 * expmed.c (emit_cstore): Obtain cstore boolean result mode using
20364 target hook, rather than inspecting the insn_data.
20365 * config/sparc/sparc.c (sparc_cstore_mode): New function.
20366 (TARGET_CSTORE_MODE): Redefine.
20367 (emit_scc_insn): When TARGET_ARCH64, emit new 64-bit boolean
20368 result patterns.
20369 * config/sparc/predicates.md (cstore_result_operand): New special
20370 predicate.
20371 * config/sparc/sparc.md (cstoresi4, cstoredi4, cstore<F:mode>4):
20372 Use it for operand 0.
20373 (*seqsi_special): Rewrite using 'P' mode iterator on operand 0.
20374 (*snesi_special): Likewise.
20375 (*snesi_zero): Likewise.
20376 (*seqsi_zero): Likewise.
20377 (*sltu_insn): Likewise.
20378 (*sgeu_insn): Likewise.
20379 (*seqdi_special): Make operand 0 and comparison operation be of
20380 DImode.
20381 (*snedi_special): Likewise.
20382 (*snedi_special_vis3): Likewise.
20383 (*neg_snesi_zero): Rename to *neg_snesisi_zero.
20384 (*neg_snesi_sign_extend): Rename to *neg_snesidi_zero.
20385 (*snesi_zero_extend): Delete, covered by 'P' mode iterator.
20386 (*neg_seqsi_zero): Rename to *neg_seqsisi_zero.
20387 (*neg_seqsi_sign_extend): Rename to *neg_seqsidi_zero.
20388 (*seqsi_zero_extend): Delete, covered by 'P' mode iterator.
20389 (*sltu_extend_sp64): Likewise.
20390 (*neg_sltu_insn): Rename to *neg_sltusi_insn.
20391 (*neg_sltu_extend_sp64): Rename to *neg_sltudi_insn.
20392 (*sgeu_extend_sp64): Delete, covered by 'P' mode iterator.
20393 (*neg_sgeu_insn): Rename to *neg_sgeusi_insn.
20394 (*neg_sgeu_extend_sp64): Rename to *neg_sgeudi_insn.
20395
95ca411e
YZ
203962013-04-10 Yufeng Zhang <yufeng.zhang@arm.com>
20397
20398 * config/aarch64/aarch64.c (aarch64_print_extension): New function.
20399 (aarch64_start_file): Use the new function.
20400
6782438d 204012013-04-10 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
33159866 20402 Jason Merrill <jason@redhat.com>
6782438d
SKS
20403
20404 * common.opt: Add -gdwarf.
20405 * opts.c (common_handle_option): Handle it.
20406 * gcc.c (ASM_DEBUG_SPEC): Don't expect "-2" for DWARF.
20407
bb313b93
RB
204082013-04-10 Richard Biener <rguenther@suse.de>
20409
20410 * passes.c (execute_todo): Do not call ggc_collect conditional here.
20411 (execute_one_ipa_transform_pass): But unconditionally here.
20412 (execute_one_pass): And here.
20413 (init_optimization_passes): Remove reload pass.
20414 * tree-pass.h (TODO_ggc_collect): Remove.
20415 (pass_reload): Likewise.
20416 * ira.c (do_reload): Merge into ...
20417 (ira): ... this.
20418 (rest_of_handle_reload): Remove.
20419 (pass_reload): Likewise.
20420 * config/i386/i386.c (ix86_option_override): Refer to ira instead
20421 of reload for vzeroupper pass placement.
20422 * <everywhere>: Remove TODO_ggc_collect from todo_flags_start
20423 and todo_flags_finish of all passes.
20424
793d9a16
RB
204252013-04-10 Richard Biener <rguenther@suse.de>
20426
20427 * tree-vectorizer.h (struct _slp_oprnd_info): Remove
20428 first_const_oprnd field, rename first_def_type to first_op_type.
20429 * tree-vect-slp.c (vect_create_oprnd_info): Adjust.
20430 (vect_get_and_check_slp_defs): Always use the type of the
20431 operand. Allow mixed vect_external_def, vect_constant_def types.
20432 (vect_get_constant_vectors): Handle mixed vect_external_def,
20433 vect_constant_def types.
20434
12211b99 204352013-04-10 Joern Rennecke <joern.rennecke@embecosm.com>
ee8a9b7b
JR
20436
20437 PR tree-optimization/55524
20438 * tree-ssa-math-opts.c
20439 (convert_mult_to_fma): Don't use an fms construct
20440 when we don't have an fms operation, but fnma, and it looks
20441 likely that we'll be able to use the latter.
20442
12211b99 204432013-04-10 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
6957a6f6
ZZ
20444
20445 * cif-code.def (OVERWRITABLE): Correct the comment for overwritable
20446 function.
20447 * ipa-inline.c (can_inline_edge_p): Let dump mechanism report the
20448 inline fail caused by overwritable functions.
20449
34ab4a5b
CJW
204502013-04-10 Chung-Ju Wu <jasonwucj@gmail.com>
20451
20452 * combine.c (simplify_compare_const): Use GET_MODE_MASK to filter out
20453 unnecessary bits in the constant power of two case.
20454
abf9bfbc
RB
204552013-04-10 Richard Biener <rguenther@suse.de>
20456
20457 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove
20458 broken code swapping operands.
20459 (vect_build_slp_tree): Do not compute load permutations here.
20460 (vect_analyze_slp_instance): Compute load permutations here,
20461 after building the SLP tree.
20462
f408477e
CB
204632013-04-09 Christian Bruel <christian.bruel@st.com>
20464
20465 * config/sh/sh.md (barrier_align): Use next/prev_active_insn instead
20466 of next/prev_real_insn.
20467
5ac42672
JH
204682013-04-09 Jan Hubicka <jh@suse.cz>
20469
abf9bfbc
RB
20470 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
20471 Drop aliased parameter.
5ac42672
JH
20472 (function_and_variable_visibility): Do not handle alias pairs.
20473 * cgraph.c (varpool_externally_visible_p): Update prototype.
20474 * varpool.c (varpool_add_new_variable): Update.
20475
5017f1d2
KT
204762013-04-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20477
20478 * config/arm/arm.md (minmax_arithsi_non_canon): New pattern.
20479
48eecbee
SB
204802013-04-09 Steven Bosscher <steven@gcc.gnu.org>
20481
a949cf1c
SB
20482 * sched-vis.c (print_pattern): Print SEQUENCE of insns as insns.
20483
48eecbee
SB
20484 * config/sparc/sparc.md: Use define_c_enum for "unspec" and "unspecv".
20485
75ef8e3d
MP
204862013-04-09 Marek Polacek <polacek@redhat.com>
20487
20488 PR tree-optimization/48762
33159866 20489 * params.def (PARAM_MAX_CSE_INSNS): Increase the minimum value to 1.
75ef8e3d 20490
23847df4
RB
204912013-04-09 Richard Biener <rguenther@suse.de>
20492
20493 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove code
20494 dealing with cost.
20495 (vect_build_slp_tree): Likewise.
20496 (vect_analyze_slp_cost_1, vect_analyze_slp_cost): New functions
20497 calculating the cost of a SLP instance.
20498 (vect_analyze_slp_instance): Use it from here, after building
20499 the SLP tree.
20500
ea3a0fde
JJ
205012013-04-09 Jakub Jelinek <jakub@redhat.com>
20502
20503 PR middle-end/56883
20504 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
20505 expand_omp_for_static_chunk): Use simple_p = true in
20506 force_gimple_operand_gsi calls when assigning to addressable decls.
20507
a32dfe9d
JL
205082013-04-09 Jeff Law <law@redhat.com>
20509
20510 * tree-vrp.c (simplify_cond_using_ranges): Simplify test of boolean
20511 when the boolean was created by converting a wider object which
20512 had a boolean range.
20513
d755c7ef
RB
205142013-04-09 Richard Biener <rguenther@suse.de>
20515
20516 * tree-vectorizer.h (slp_void_p): Remove.
20517 (slp_tree): Typedef before _slp_tree declaration.
20518 (struct _slp_tree): Use a vector of slp_tree as children.
20519 (vect_get_place_in_interleaving_chain): Remove.
20520 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain):
20521 Move ...
20522 * tree-vect-slp.c (vect_get_place_in_interleaving_chain): ... here
20523 and make static.
20524 (vect_free_slp_tree, vect_print_slp_tree, vect_mark_slp_stmts,
20525 vect_mark_slp_stmts_relevant, vect_slp_rearrange_stmts,
20526 vect_detect_hybrid_slp_stmts, vect_slp_analyze_node_operations,
20527 vect_schedule_slp_instance, vect_remove_slp_scalar_calls):
20528 Use slp_node instead of slp_void_p and adjust.
20529
3d741091
RB
205302013-04-09 Richard Biener <rguenther@suse.de>
20531
20532 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Avoid
20533 work that is not necessary.
20534
39307ba7
JJ
205352013-04-09 Jakub Jelinek <jakub@redhat.com>
20536
20537 PR tree-optimization/56854
20538 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't
20539 forward into clobber stmts if it would change MEM_REF lhs into
20540 non-MEM_REF.
20541
343881fd
MK
205422013-04-09 Maxim Kuvyrkov <maxim@kugelworks.com>
20543
20544 * tree.c (type_hash_lookup, type_hash_add): Make static.
20545 * tree.h (type_hash_lookup, type_hash_add): Remove global declarations.
20546
3922658a
RB
205472013-04-09 Richard Biener <rguenther@suse.de>
20548
20549 * tree.h (unsave_expr_now): Remove.
20550 * tree-inline.c (mark_local_for_remap_r): Remove.
20551 (unsave_expr_1): Likewise.
20552 (unsave_r): Likewise.
20553 (unsave_expr_now): Likewise.
20554 * tree-ssa-copy.c (replace_exp_1): Use unshare_expr.
20555 (propagate_tree_value): Likewise.
20556
9fb6b620
SB
205572013-04-08 Steven Bosscher <steven@gcc.gnu.org>
20558
20559 * doc/rtl.texi (sequence): Rewrite documentation to match the
20560 current use of SEQUENCE rtl objects.
20561 * rtl.def (SEQUENCE): Likewise.
20562
20563 * doc/rtl.texi (NOTE_INSN_EH_REGION_BEG, NOTE_INSN_EH_REGION_END):
20564 Update documentation.
20565 (NOTE_INSN_LOOP_BEG, NOTE_INSN_LOOP_END, NOTE_INSN_LOOP_CONT,
20566 NOTE_INSN_LOOP_VTOP): Remove documentation for non-existing notes.
20567
20568 * reg-notes.def (REG_EH_CONTEXT): Remove unused note.
20569
8ddb5a29
TJ
205702013-04-08 Teresa Johnson <tejohnson@google.com>
20571
20572 * basic-block.h (GCOV_COMPUTE_SCALE): Define.
20573 * ipa-inline-analysis.c (param_change_prob): Use helper rounding divide
33159866 20574 methods.
8ddb5a29
TJ
20575 (estimate_edge_size_and_time): Add comment to suggest using rounding
20576 methods.
20577 (estimate_node_size_and_time): Ditto.
20578 (remap_edge_change_prob): Use helper rounding divide methods.
20579 * value-prof.c (gimple_divmod_fixed_value_transform): Ditto.
20580 (gimple_mod_pow2_value_transform): Ditto.
20581 (gimple_mod_subtract_transform): Ditto.
20582 (gimple_ic_transform): Ditto.
20583 (gimple_stringops_transform): Ditto.
20584 * stmt.c (conditional_probability): Ditto.
20585 (emit_case_dispatch_table): Ditto.
20586 * lto-cgraph.c (merge_profile_summaries): Ditto.
20587 * tree-optimize.c (execute_fixup_cfg): Ditto.
20588 * cfgcleanup.c (try_forward_edges): Ditto.
20589 * cfgloopmanip.c (scale_loop_profile): Ditto.
20590 (loopify): Ditto.
20591 (duplicate_loop_to_header_edge): Ditto.
20592 (lv_adjust_loop_entry_edge): Ditto.
20593 * tree-vect-loop.c (vect_transform_loop): Ditto.
20594 * profile.c (compute_branch_probabilities): Ditto.
20595 * cfgbuild.c (compute_outgoing_frequencies): Ditto.
20596 * lto-streamer-in.c (input_cfg): Ditto.
20597 * gimple-streamer-in.c (input_bb): Ditto.
20598 * ipa-cp.c (update_profiling_info): Ditto.
20599 (update_specialized_profile): Ditto.
20600 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Ditto.
20601 * cfg.c (update_bb_profile_for_threading): Add comment to suggest using
33159866 20602 rounding methods.
8ddb5a29
TJ
20603 * sched-rgn.c (compute_dom_prob_ps): Ditto.
20604 (compute_trg_info): Ditto.
20605 * cfgrtl.c (force_nonfallthru_and_redirect): Ditto.
20606 (purge_dead_edges): Ditto.
20607 * loop-unswitch.c (unswitch_loop): Ditto.
20608 * cgraphclones.c (cgraph_clone_edge): Ditto.
20609 (cgraph_clone_node): Ditto.
20610 * tree-inline.c (copy_bb): Ditto.
20611 (copy_edges_for_bb): Ditto.
20612 (initialize_cfun): Ditto.
20613 (copy_cfg_body): Ditto.
20614 (expand_call_inline): Ditto.
20615
661e6bd7
KT
206162013-04-08 Kai Tietz <ktietz@redhat.com>
20617
20618 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Replaced
20619 TARGET_CYGWIN64 by TARGET_64BIT.
20620
105766f3
JR
206212013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
20622
20623 * config/epiphany/epiphany.md (GPR_1): New constant.
20624 (define_expand "mov<mode>cc): FAIL if gen_compare_reg returned 0.
20625 * config/epiphany/epiphany.c (gen_compare_reg):
20626 For flag_finite_math_only, avoid swapping operands when r0 and/or r1
20627 is already in place.
20628 Use GPR_0 / GPR_1 instead of 0/1 for r0/r1 register numbers.
20629 Don't require being called during rtl expansion; If y operlaps r0,
20630 return 0.
20631 (epiphany_compute_frame_size, epiphany_expand_prologue): Use GPR_1.
20632 (epiphany_expand_epilogue): Likewise.
20633
8afab237
JR
20634 * config/epiphany/epiphany.c (epiphany_select_cc_mode):
20635 Don't use CC_FPmode for ORDERED / UNORDERED.
33159866 20636 * config/epiphany/epiphany.md (cmpsf_ord): Make pattern unconditional.
8afab237 20637
fa7707d6
JR
20638 * config/epiphany/constraints.md (CnL): New constraint.
20639 * config/epiphany/epiphany.md (addsi3_i): Add r/r/CnL alternative.
20640 * config/epiphany/predicates.md (add_operand): Allow 1024.
20641
5138e18d
JR
20642 * config/epiphany/epiphany.md (logical_op): New code iterator.
20643 (op_mnc): New code attribute.
20644 (<op_mnc>_f, mov_f, cstoresi4): New patterns.
20645 (mov_f+1, mov_f+2): New peephole2 patterns.
20646
2ccc703d
JR
20647 * config/epiphany/epiphany.md (mov_f+2): New peephole2 pattern.
20648 (cstoresi4): Also allow re-use of zero result when doing a NE
20649 comparison to a non-zero operand.
aefb0819 20650 Use (clobber (scratch)) for first insn if the gpr output is not needed.
2ccc703d 20651
093ac0a5
JR
20652 * config/epiphany/epiphany.md (<insn_opname>v2si3):
20653 Use gen_addsi3_i / gen_subsi3_i.
20654
f223bb13
JJ
206552013-04-08 Jakub Jelinek <jakub@redhat.com>
20656
20657 PR c++/34949
20658 PR c++/50243
20659 * tree-eh.c (optimize_clobbers): Only remove clobbers if bb doesn't
20660 contain anything but clobbers, at most one __builtin_stack_restore,
20661 optionally debug stmts and final resx, and if it has at least one
20662 incoming EH edge. Don't check for SSA_NAME on LHS of a clobber.
20663 (sink_clobbers): Don't check for SSA_NAME on LHS of a clobber.
20664 Instead of moving clobbers with MEM_REF LHS with SSA_NAME address
20665 which isn't defaut definition, remove them.
20666 (unsplit_eh, cleanup_empty_eh): Use single_{pred,succ}_{p,edge}
20667 instead of EDGE_COUNT comparisons or EDGE_{PRED,SUCC}.
20668 * tree-ssa-ccp.c (execute_fold_all_builtins): Remove clobbers
20669 with MEM_REF LHS with SSA_NAME address.
20670
4481581f
JL
206712013-04-08 Jeff Law <law@redhat.com>
20672
20673 * gimple.c (canonicalize_cond_expr_cond): Rewrite x ^ y into x != y.
a32dfe9d 20674
451dabda
RB
206752013-04-08 Richard Biener <rguenther@suse.de>
20676
20677 * gimple-pretty-print.c (debug_gimple_stmt): Do not print
20678 extra newline.
20679 * tree-vect-loop.c (vect_determine_vectorization_factor): Dump
20680 determined vector type.
20681 (vect_analyze_data_refs): Likewise.
20682 (vect_get_new_vect_var): Adjust.
20683 (vect_create_destination_var): Preserve SSA name versions.
20684 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Do
20685 not dump anything here.
20686
3b088b47
JR
206872013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
20688
20689 * config/epiphany/epiphany.h (struct GTY (()) machine_function):
20690 Add member lr_slot_known.
20691 * config/epiphany/epiphany.md (reload_insi_ra): Compute lr_slot_offs
20692 if necessary.
20693 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
20694 Remove code that sets lr_slot_offset according to what a previous
20695 version of epiphany_emit_save_restore used to do.
20696 (epiphany_emit_save_restore): When doing an lr save or restore,
20697 set/verify lr_slot_known and lr_slot_offset.
20698
d8484d41
XQ
206992013-04-08 Xinyu Qi <xyqi@marvell.com>
20700
33159866
UB
20701 PR target/54338
20702 * config/arm/arm.h (REG_CLASS_CONTENTS): Include IWMMXT_GR_REGS
d8484d41
XQ
20703 in ALL_REGS.
20704
481be1c4
RB
207052013-04-08 Richard Biener <rguenther@suse.de>
20706
20707 * alias.c (find_base_term): Fix thinko in previous change.
20708
401f3a81
JJ
207092013-04-08 Jakub Jelinek <jakub@redhat.com>
20710
20711 * tree-loop-distribution.c (const_with_all_bytes_same): New function.
20712 (generate_memset_builtin): Only handle integer_all_onesp as -1 val if
20713 TYPE_PRECISION is equal to mode bitsize. Use const_with_all_bytes_same
20714 if possible to compute val.
20715 (classify_partition): Verify CONSTRUCTOR doesn't have any elts.
20716 For QImode integers don't require anything about precision. Use
20717 const_with_all_bytes_same to find out if the constant doesn't have
20718 repeated bytes in it.
20719
03ed99a8
AK
207202013-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20721
20722 * config/s390/s390.c (s390_expand_insv): Only accept insertions
20723 within mode size.
20724
781b2e62
MP
207252013-04-08 Marek Polacek <polacek@redhat.com>
20726
20727 PR rtl-optimization/48182
20728 * params.def (PARAM_MIN_CROSSJUMP_INSNS): Increase the minimum
20729 value to 1.
20730
27e430a2
JDA
207312013-04-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20732
20733 PR target/55487
20734 * config/pa/pa.c (legitimize_pic_address): Before incrementing label
20735 nuses, make sure we have a label.
20736
4902aa64
BS
207372013-04-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
20738
20739 PR target/56843
20740 * config/rs6000/rs6000.c (rs6000_emit_swdiv_high_precision): Remove.
20741 (rs6000_emit_swdiv_low_precision): Remove.
20742 (rs6000_emit_swdiv): Rewrite to handle between one and four
20743 iterations of Newton-Raphson generally; modify required number of
20744 iterations for some cases.
20745 * config/rs6000/rs6000.h (RS6000_RECIP_HIGH_PRECISION_P): Remove.
20746
7bca81dc
SB
207472013-04-05 Steven Bosscher <steven@gcc.gnu.org>
20748
20749 * bb-reorder.c (fix_crossing_unconditional_branches): Remove a
20750 set-but-unused variable.
20751
20752 * cgraph.c (cgraph_release_function_body): Clear cfun->cfg to make
20753 basic blocks of released function bodies garbage-collectable.
20754
20755 * ree.c (find_and_remove_re): Do not call df_finish_pass here.
20756 (struct rtl_opt_pass): Add TODO_df_finish.
20757
20758 * rtl.def (DEFINE_SUBST, DEFINE_SUBST_ATTR): Add documentation.
20759
4542a38a
GY
207602013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20761
20762 * config/arm/constraints.md (q): New constraint.
20763 * config/arm/ldrdstrd.md: New file.
20764 * config/arm/arm.md (ldrdstrd.md) New include.
20765 (arm_movdi): Use "q" instead of "r" constraint
20766 for double-word memory access.
20767 (movdf_soft_insn): Likewise.
20768 * config/arm/vfp.md (movdi_vfp): Likewise.
20769 * config/arm/t-arm (MD_INCLUDES): Add ldrdstrd.md.
33159866 20770 * config/arm/arm-protos.h (gen_operands_ldrd_strd): New declaration.
4542a38a
GY
20771 * config/arm/arm.c (gen_operands_ldrd_strd): New function.
20772 (mem_ok_for_ldrd_strd): Likewise.
20773 (output_move_double): Update assertion.
20774
2385b218
GY
207752013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20776
20777 * config/arm/arm.md: Comment on splitting Thumb1 patterns.
20778
75fe1cb5
GY
207792013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20780
20781 * config/arm/arm.md (arm_smax_insn): Convert define_insn into
20782 define_insn_and_split.
20783 (arm_smin_insn,arm_umaxsi3,arm_uminsi3): Likewise.
20784
dd660e8e
GY
207852013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20786
20787 * config/arm/arm.md (arm_ashldi3_1bit): Convert define_insn into
20788 define_insn_and_split.
33159866 20789 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
dd660e8e
GY
20790 (shiftsi3_compare): New pattern.
20791 (rrx): New pattern.
20792 * config/arm/unspecs.md (UNSPEC_RRX): New.
20793
045e472c
GY
207942013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20795
20796 * config/arm/arm.md (negdi_extendsidi): New pattern.
20797 (negdi_zero_extendsidi): Likewise.
20798
3f3bf1a8
GY
207992013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20800
20801 * config/arm/arm.md (andsi_iorsi3_notsi): Convert define_insn into
20802 define_insn_and_split.
20803 (arm_negdi2,arm_abssi2,arm_neg_abssi2): Likewise.
20804 (arm_cmpdi_insn,arm_cmpdi_unsigned): Likewise.
20805
b0b49556
GY
208062013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20807
20808 * config/arm/arm.md (arm_subdi3): Convert define_insn into
20809 define_insn_and_split.
20810 (subdi_di_zesidi,subdi_di_sesidi): Likewise.
20811 (subdi_zesidi_di,subdi_sesidi_di,subdi_zesidi_zesidi): Likewise.
20812
d633dd84
GY
208132013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20814
20815 * config/arm/arm.md (subsi3_carryin): New pattern.
20816 (subsi3_carryin_const): Likewise.
20817 (subsi3_carryin_compare,subsi3_carryin_compare_const): Likewise.
20818 (subsi3_carryin_shift,rsbsi3_carryin_shift): Likewise.
20819
f4499066
GY
208202013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20821
20822 * config/arm/arm.md (incscc,arm_incscc,decscc,arm_decscc): Delete.
20823
ceef6fd9
GY
208242013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20825
20826 * config/arm/arm.md (addsi3_carryin_<optab>): Set attribute predicable.
d633dd84 20827 (addsi3_carryin_alt2_<optab>,addsi3_carryin_shift_<optab>): Likewise.
ceef6fd9 20828
ddbdd8a7
KT
208292013-04-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20830
20831 * config/arm/arm.c (arm_expand_builtin): Change fcode
20832 type to unsigned int.
20833
8456d78a
RR
208342013-04-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
20835
20836 * doc/invoke.texi (ARM Options): Document cortex-a53 support.
20837
526c230f
ILT
208382013-04-04 Ian Lance Taylor <iant@google.com>
20839
33159866
UB
20840 * doc/standards.texi (Standards): The Go frontend supports the Go 1
20841 language standard.
526c230f 20842
3cfbe04d
SB
208432013-04-04 Steven Bosscher <steven@gcc.gnu.org>
20844
20845 PR middle-end/56729
20846 * df-scan.c (df_insn_delete): Disable failing assert.
20847
dfa3f8d0
KT
208482013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20849
20850 * config/arm/arm-protos.h (arm_builtin_vectorized_function):
20851 New function prototype.
20852 * config/arm/arm.c (TARGET_VECTORIZE_BUILTINS): Define.
20853 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Likewise.
20854 (arm_builtin_vectorized_function): New function.
20855
f7837758
KT
208562013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20857
20858 * config/arm/arm_neon_builtins.def: New file.
20859 * config/arm/arm.c (neon_builtin_data): Move contents to
20860 arm_neon_builtins.def.
20861 (enum arm_builtins): Include neon builtin definitions.
20862 (ARM_BUILTIN_NEON_BASE): Move from enum to macro.
33159866 20863 * config/arm/t-arm (arm.o): Add dependency on arm_neon_builtins.def.
f7837758 20864
39c1b6db
MP
208652013-04-04 Marek Polacek <polacek@redhat.com>
20866
20867 PR tree-optimization/48186
20868 * predict.c (maybe_hot_frequency_p): Return false if
20869 HOT_BB_FREQUENCY_FRACTION is 0.
20870 (cgraph_maybe_hot_edge_p): Likewise.
20871
314f64eb
RB
208722013-04-04 Richard Biener <rguenther@suse.de>
20873
20874 PR tree-optimization/56826
20875 * tree-vect-slp.c (vect_build_slp_tree): Compute ncopies
20876 more accurately.
20877
51a905b2
RB
208782013-04-04 Richard Biener <rguenther@suse.de>
20879
20880 PR tree-optimization/56213
20881 * tree-vect-data-refs.c (vect_check_strided_load): Remove.
33159866 20882 (vect_analyze_data_refs): Allow all non-nested loads as strided loads.
51a905b2 20883
f1bf4f3a
RB
208842013-04-04 Richard Biener <rguenther@suse.de>
20885
20886 PR tree-optimization/56837
20887 * tree-loop-distribution.c (classify_partition): For non-zero
20888 values require that the value has the same precision as its
20889 mode to be useful as memset value.
20890
0bca7ded
NC
208912013-04-03 Nick Clifton <nickc@redhat.com>
20892
33159866 20893 * config/v850/v850e3v5.md (fmasf4): Use fmaf.s on E3V5 architectures.
0bca7ded
NC
20894 (fmssf4): Use fmsf.s on E3V5 architectures.
20895 (fnmasf4): Use fnmaf.s on E3V5 architectures.
20896 (fnmssf4): Use fnmsf.s on E3V5 architectures.
20897
b4019227
JL
208982013-04-03 Jeff Law <law@redhat.com>
20899
20900 * Makefile.in (lra-constraints.o): Depend on $(OPTABS_H).
20901 (lra-eliminations.o): Likewise.
20902
f57ddb5b
TJ
209032013-04-03 Teresa Johnson <tejohnson@google.com>
20904
20905 * gcov-io.c (compute_working_sets): Moved most of body of old
33159866 20906 compute_working_sets here from profile.c.
f57ddb5b 20907 * gcov-io.h (NUM_GCOV_WORKING_SETS): Moved here from profile.c.
33159866
UB
20908 (gcov_working_set_t): Moved typedef here from basic-block.h
20909 (compute_working_set): Declare.
f57ddb5b
TJ
20910 * profile.c (NUM_GCOV_WORKING_SETS): Moved to gcov-io.h.
20911 (get_working_sets): Renamed from compute_working_set,
33159866 20912 replace most of body with call to new compute_working_sets.
f57ddb5b 20913 (get_exec_counts): Replace call to compute_working_sets
33159866
UB
20914 to get_working_sets.
20915 * profile.h (get_working_sets): Renamed from compute_working_set.
f57ddb5b 20916 * lto-cgraph.c (input_symtab): Replace call to compute_working_sets
33159866 20917 to get_working_sets.
f57ddb5b
TJ
20918 * basic-block.h (gcov_working_set_t): Moved to gcov-io.h.
20919 * gcov-dump.c (dump_working_sets): New function.
20920
12211b99 209212013-04-03 Kenneth Zadeck <zadeck@naturalbridge.com>
5e0919f1
KZ
20922
20923 * hwint.c (sext_hwi, zext_hwi): New functions.
20924 * hwint.h (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT,
20925 HOST_HALF_WIDE_INT_PRINT, HOST_HALF_WIDE_INT_PRINT_C,
20926 HOST_HALF_WIDE_INT_PRINT_DEC, HOST_HALF_WIDE_INT_PRINT_DEC_C,
20927 HOST_HALF_WIDE_INT_PRINT_UNSIGNED, HOST_HALF_WIDE_INT_PRINT_HEX,
20928 HOST_HALF_WIDE_INT_PRINT_HEX_PURE): New symbols.
20929 (sext_hwi, zext_hwi): New functions.
0bca7ded 20930
be672e08
JL
209312013-04-03 Jeff Law <law@redhat.com>
20932
20933 PR tree-optimization/56799
33159866
UB
20934 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Bring
20935 back test for widening conversion erroneously dropped in prior change.
be672e08 20936
9d821fa5
KT
209372013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20938
20939 PR target/56809
20940 * config/aarch64/aarch64.c (is_jump_table): Use next_active_insn
20941 instead of next_real_insn.
20942
71c581e7
MP
209432013-04-03 Marek Polacek <polacek@redhat.com>
20944
20945 PR sanitizer/55702
33159866 20946 * tsan.c (instrument_func_exit): Allow BUILT_IN_RETURN functions.
71c581e7 20947
4a32ef80
KT
209482013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20949
20950 PR target/56809
20951 * config/arm/arm.c (is_jump_table): Use next_active_insn instead of
20952 next_real_insn.
20953 (thumb1_output_casesi): Likewise.
20954 (thumb2_output_casesi): Likewise.
20955
1b2253d4
RB
209562013-04-03 Richard Biener <rguenther@suse.de>
20957
20958 PR tree-optimization/56817
20959 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
20960 Split out ...
20961 (tree_unroll_loops_completely_1): ... new function to manually
20962 walk the loop tree, properly defering outer loops of unrolled
20963 loops to later iterations.
20964
38000232
MG
209652013-04-03 Marc Glisse <marc.glisse@inria.fr>
20966
20967 * tree-vect-stmts.c (vectorizable_store): Accept BIT_FIELD_REF.
20968 (vectorizable_load): Likewise.
20969 * tree-vect-slp.c (vect_build_slp_tree): Likewise.
20970 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Handle VECTOR_TYPE.
20971
3fa35298
MG
209722013-04-03 Marc Glisse <marc.glisse@inria.fr>
20973
20974 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Handle
20975 BIT_FIELD_REF.
20976
b3d45ff0
UW
209772013-04-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
20978
20979 * config/spu/spu.c (emit_nop_for_insn): Handle JUMP_TABLE_DATA.
20980
ec9202a8
BC
209812013-04-03 Bin Cheng <bin.cheng@arm.com>
20982
20983 * rtl.h (AUTO_INC_DEC): Fix typo of HAVE_POST_MODIFY_DISP.
20984
6805bd36
MG
209852013-04-03 Marc Glisse <marc.glisse@inria.fr>
20986
20987 PR tree-optimization/56790
33159866
UB
20988 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Add constant
20989 folding.
6805bd36 20990
da694a77
MG
209912013-04-03 Marc Glisse <marc.glisse@inria.fr>
20992
20993 * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
20994 Handle VEC_MERGE.
20995 (simplify_ternary_operation) <VEC_MERGE>: Use unsigned HOST_WIDE_INT
20996 for masks. Test for side effects. Handle nested VEC_MERGE. Handle
20997 equal arguments.
20998
4e7d7b3d
JJ
209992013-04-03 Jakub Jelinek <jakub@redhat.com>
21000
21001 PR c/19449
21002 * tree.h (force_folding_builtin_constant_p): New decl.
21003 * builtins.c (force_folding_builtin_constant_p): New variable.
21004 (fold_builtin_constant_p): Fold immediately also if
21005 force_folding_builtin_constant_p.
21006
e6c9d234
RB
210072013-04-03 Richard Biener <rguenther@suse.de>
21008
21009 PR tree-optimization/56812
21010 * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependence):
21011 DRs of the same interleaving chain are independent.
21012
984d07dd
JM
210132013-04-02 Jason Merrill <jason@redhat.com>
21014
21015 * gdbinit.in (pbb): Use debug fn.
21016
622849c9
LC
210172013-04-02 Lawrence Crowl <crowl@google.com>
21018
21019 * sese.h (struct ivtype_map_elt_s): Remove unused.
21020 (extern debug_ivtype_map): Remove unused.
21021 (extern eq_ivtype_map_elts): Remove unused.
21022 * sese.c (debug_ivtype_map): Removed unused.
21023 (debug_ivtype_map_1): Removed unused.
21024 (debug_ivtype_elt): Remove unused.
21025 (eq_ivtype_map_elts): Remove unused.
21026
21027
82c0e1a0
KT
210282013-04-02 Kai Tietz <ktietz@redhat.com>
21029
21030 PR target/52790
21031 * config/i386/cygming.h (SUB_TARGET_RECORD_STUB): New sub-target macro.
21032 * config/i386/i386-protos.h (i386_pe_record_stub): Add new prototype.
33159866
UB
21033 * config/i386/i386.c (legitimize_pe_coff_extern_decl): New static
21034 function.
82c0e1a0
KT
21035 (legitimize_pe_coff_symbol): Likewise.
21036 (is_imported_p): New helper-function.
21037 (ix86_option_override_internal): Make MEDIUM_PIC the default code-model
21038 for Windows x64 targets.
21039 (ix86_expand_prologue): Optimize for pe-coff targets.
21040 (ix86_expand_split_stack_prologue): Adjust for pe-coff targets.
21041 (legitimate_pic_address_disp_p): Adjust for x64 pe-coff to support
21042 medium/large code-model.
21043 (legitimize_pic_address): Likewise.
21044 (legitimize_tls_address): Likewise.
21045 (ix86_expand_call): Likewise.
21046 (x86_output_mi_thunk): Likewise.
21047 (get_dllimport_decl): Add new beimport argument.
21048 (construct_plt_address): Don't assert for x64 pe-coff targets.
21049 * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Adjust for x64 pe-coff
21050 targets.
21051 (SYMBOL_FLAG_STUBVAR): New macro.
21052 (SYMBOL_REF_STUBVAR_P): Likewise.
21053 * config/i386/winnt.c (stub_list): New structure.
21054 (stub_head): New local variable.
21055 (i386_pe_record_stub): New function.
21056 (i386_pe_file_end): Emit refptr-stubs.
21057
5d751b0c
JJ
210582013-04-02 Jakub Jelinek <jakub@redhat.com>
21059
09bb4c99
JJ
21060 PR rtl-optimization/56745
21061 * ifcvt.c (cond_exec_find_if_block): Don't try to optimize
21062 if then_bb has no successors and else_bb is EXIT_BLOCK_PTR.
21063
a1d8947a
JJ
21064 PR c++/34949
21065 * tree-ssa-alias.c (stmt_kills_ref_p_1): If base != ref->base
21066 and both of them are MEM_REFs, just compare first argument for
21067 equality and attempt to deal even with differing offsets.
21068
5d751b0c
JJ
21069 PR c++/34949
21070 * tree-cfg.c (verify_gimple_assign_single): Allow lhs
21071 of gimple_clobber_p to be MEM_REF.
21072 * gimplify.c (gimplify_modify_expr): Gimplify *to_p of
21073 an assignment from TREE_CLOBBER_P. Allow it to be MEM_REF
21074 after gimplification.
21075 * asan.c (get_mem_ref_of_assignment): Don't instrument
21076 gimple_clobber_p stmts.
21077 * tree-ssa-dse.c (dse_optimize_stmt): Allow DSE of
21078 gimple_clobber_p stmt if they have MEM_REF lhs and
21079 are dead because of another gimple_clobber_p stmt.
21080 * tree-ssa-live.c (clear_unused_block_pointer): Treat
21081 gimple_clobber_p stmts like debug stmts.
21082 (remove_unused_locals): Remove clobbers with MEM_REF lhs
21083 that refer to unused VAR_DECLs or uninitialized values.
21084 * tree-sra.c (sra_ipa_reset_debug_stmts): Also remove
21085 gimple_clobber_p stmts if they refer to removed parameters.
21086 (get_repl_default_def_ssa_name, sra_ipa_modify_expr): Fix up
21087 formatting.
21088
e594716a
UB
210892013-04-02 Uros Bizjak <ubizjak@gmail.com>
21090
21091 * config/i386/i386.md (*testqi_ext_3): Merge with *testqi_ext_3_rex64
21092 using SWI48 mode attribute.
21093
7a80735b
WM
210942013-04-02 Wei Mi <wmi@google.com>
21095
21096 * config/i386/i386.c (ix86_rtx_costs): Set proper rtx cost for
21097 ashl<mode>3_mask, *<shift_insn><mode>3_mask and
21098 *<rotate_insn><mode>3_mask in i386.md.
21099
f423a9e4
AI
211002013-04-02 Alexander Ivchenko <alexander.ivchenko@intel.com>
21101
21102 * config.gcc (arm*-*-linux-*): Remove duplicate t-linux-android.
21103
90eb75f2
RB
211042013-04-02 Richard Biener <rguenther@suse.de>
21105
21106 PR tree-optimization/56778
21107 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
21108 Runtime alias tests are not supported for gather loads.
21109 * tree-vect-loop-manip.c (vect_loop_versioning): Insert
21110 stmts referenced from SSA operands before updating SSA form.
21111
d8c69a92
IC
211122013-04-02 Ian Caulfield <ian.caulfield@arm.com>
21113 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
21114
21115 * config/arm/arm-arches.def (armv8-a): Default to cortex-a53.
e594716a
UB
21116 * config/arm/t-arm (MD_INCLUDES): Depend on cortex-a53.md.
21117 * config/arm/cortex-a53.md: New file.
21118 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle cortex-a53.
21119 * config/arm/arm.md (generic_sched, generic_vfp): Handle cortex-a53.
21120 * config/arm/arm.c (arm_issue_rate): Likewise.
21121 * config/arm/arm-tune.md: Regenerate
21122 * config/arm/arm-tables.opt: Regenerate.
21123 * config/arm/arm-cores.def: Add cortex-a53.
d8c69a92 21124
239eb04c
ZC
211252013-04-02 Zhenqiang Chen <zhenqiang.chen@arm.com>
21126
21127 * config/arm/uclinux-elf.h: Add %L to LINK_GCC_C_SEQUENCE_SPEC for
21128 non-static link.
21129
c902d3c8
SN
211302013-04-02 Sofiane Naci <sofiane.naci@arm.com>
21131
d8c69a92
IC
21132 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add variants for
21133 scalar load/store operations using B/H registers.
c902d3c8
SN
21134 (*zero_extend<SHORT:mode><GPI:mode>2_aarch64): Likewise.
21135
051d0e2f
SN
211362013-04-02 Sofiane Naci <sofiane.naci@arm.com>
21137
21138 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add alternatives for
21139 scalar move.
21140 * config/aarch64/aarch64.c
21141 (aarch64_simd_scalar_immediate_valid_for_move): New.
21142 * config/aarch64/aarch64-protos.h
21143 (aarch64_simd_scalar_immediate_valid_for_move): New.
21144 * config/aarch64/constraints.md (Dh, Dq): New.
21145 * config/aarch64/iterators.md (hq): New.
21146
0ee1e3d9
EB
211472013-04-02 Eric Botcazou <ebotcazou@adacore.com>
21148
21149 * reorg.c (get_branch_condition): Deal with conditional returns.
21150 (fill_simple_delay_slots): Remove dead code dealing with jumps.
21151
136fb3f7
WM
211522013-04-01 Wei Mi <wmi@google.com>
21153
21154 * config/i386/i386.md (*ashl<mode>3_mask): Rewrite as define_insn.
21155 Truncate operand 2 using %b asm operand modifier.
21156 (*<shift_insn><mode>3_mask): Ditto.
21157 (*<rotate_insn><mode>3_mask): Ditto.
21158
6388c738
SB
211592013-04-01 Steven Bosscher <steven@gcc.gnu.org>
21160
21161 PR middle-end/56798
21162 * cfgbuild.c (inside_basic_block_p): Restore check broken at r197234.
21163
f7a4d826
KK
211642013-03-31 Kaz Kojima <kkojima@gcc.gnu.org>
21165
21166 * config/sh/sh.md (casesi_worker_1): Use next_active_insn instead
21167 of next_real_insn.
21168 (casesi_worker_2, casesi_shift_media, casesi_load_media): Likewise.
21169
4b943a49
LC
211702013-03-30 Lawrence Crowl <crowl@google.com>
21171
21172 * dse.c (clear_alias_sets): Remove never set.
21173 (disqualified_clear_alias_sets): Remove never set.
21174 (clear_alias_mode_pool): Remove never set.
21175 (dse_step0): Remove condition that is never true.
21176 (canon_address): Remove condition that is never true.
21177 (dse_step7): Remove condition that is never true.
21178 (rest_of_handle_dse): Remove condition that is never true.
21179 (rest_of_handle_dse::did_global): Remove never read from above.
21180 (dse_step2_spill): Remove never called from above.
21181 (dse_step5_spill): Remove never called from above.
21182
39718607
SB
211832013-03-30 Steven Bosscher <steven@gcc.gnu.org>
21184
da5c6bde
SB
21185 * doc/md.texi (Standard Names) <casesi>: Update documentation for
21186 JUMP_TABLE_DATA changes.
21187 * doc/tm.texi.in (Dispatch Tables) <ASM_OUTPUT_CASE_LABEL>: Likewise.
21188 * doc/rtl.texi (Flags) <INSN_DELETED_P, SCHED_GROUP_P>: Likewise.
21189 (Insns) <jump_table_data>: New entry.
21190 * doc/tm.texi: Regenerate.
21191
39718607
SB
21192 * cfgrtl.c (fixup_reorder_chain): Do not emit barriers to BB_FOOTER.
21193
21194 * postreload-gcse.c (bb_has_well_behaved_predecessors): Correct test
21195 for table jump at the end of a basic block using tablejump_p.
21196 * targhooks.c (default_invalid_within_doloop): Likewise.
21197 * config/rs6000/rs6000.c (TARGET_INVALID_WITHIN_DOLOOP): Remove
21198 target hook implementation that is identical to the default hook.
21199 (rs6000_invalid_within_doloop): Remove.
21200
21201 * bb-reorder.c (fix_crossing_unconditional_branches): Remove set but
21202 unused variable from tablejump_p call.
21203
21204 * rtl.def (JUMP_TABLE_DATA): New RTX_INSN object.
21205 * rtl.h (RTX_PREV, RTX_NEXT): Adjust for new JUMP_TABLE_DATA.
21206 (INSN_DELETED_P): Likewise.
21207 (emit_jump_table_data): New prototype.
21208 * gengtype.c (adjust_field_rtx_def): Handle JUMP_TABLE_DATA fields
21209 after 4th as unused.
21210 * print-rtl.c (print_rtl): Handle JUMP_TABLE_DATA.
21211 * sched-vis.c (print_insn): Likewise.
21212 * emit-rtl.c (active_insn_p): Consider JUMP_TABLE_DATA an active
21213 insn for compatibility with back ends that use next_active_insn to
21214 identify jump table data.
21215 (set_insn_deleted): Remove no longer useful JUMP_TABLE_DATA_P check.
21216 (remove_insn): Likewise.
21217 (emit_insn): Do not accept JUMP_TABLE_DATA objects in insn chains
21218 to be emitted.
21219 (emit_debug_insn, emit_jump_insn, emit_call_insn, emit_label): Idem.
21220 (emit_jump_table_data): New function.
21221
21222 * cfgbuild.c (inside_basic_block_p): A JUMP_INSN is always inside a
21223 basic block, a JUMP_TABLE_DATA never is.
21224 (control_flow_insn_p): JUMP_TABLE_DATA is not a control flow insn.
21225 * cfgrtl.c (duplicate_insn_chain): Split handling of JUMP_TABLE_DATA
21226 off from code handling real insns.
21227 * final.c (get_attr_length_1): Simplify for JUMP_INSNs.
21228 * function.c (instantiate_virtual_regs): Remove JUMP_TABLE_DATA_P
21229 test, now redundant because JUMP_TABLE_DATA is not an INSN_P insn.
21230 * gcse.c (insert_insn_end_basic_block): Likewise, JUMP_TABLE_DATA_P
21231 is not a NONDEBUG_INSN_P.
21232 * ira-costs.c (scan_one_insn): Likewise.
21233 * jump.c (mark_all_labels): Likewise.
21234 (mark_jump_label_1): Likewise.
21235 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
21236 * lra.c (get_insn_freq): Expect all insns reaching here to be in
21237 a basic block.
21238 (check_rtl): Remove JUMP_TABLE_DATA_P test, not a NONDEBUG_INSN_P insn.
21239 * predict.c (expensive_function_p): Use FOR_BB_INSNS.
21240 * reload1.c (calculate_needs_all_insns): Call set_label_offsets for
21241 JUMP_TABLE_DATA_P insns.
21242 (calculate_elim_costs_all_insns): Likewise.
21243 (set_label_offsets): Recurse on the PATTERN of JUMP_TABLE_DATA insns.
21244 (elimination_costs_in_insn): Remove redundant JUMP_TABLE_DATA_P test.
21245 (delete_output_reload): Code style fixups.
21246 * reorg.c (dbr_schedule): Move JUMP_TABLE_DATA_P up to avoid setting
21247 insn flags on this non-insn.
21248 * sched-rgn.c (add_branch_dependences): Treat JUMP_TABLE_DATA insns
21249 as scheduling barriers, for pre-change compatibility.
21250 * stmt.c (emit_case_dispatch_table): Emit jump table data not as
21251 JUMP_INSN objects but instead as JUMP_TABLE_DATA objects.
21252
21253 * config/alpha/alpha.c (alpha_does_function_need_gp): Remove
21254 redundant JUMP_TABLE_DATA_P test.
21255 * config/arm/arm.c (thumb_far_jump_used_p): Likewise.
21256 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
21257 (frv_for_each_packet): Likewise.
21258 * config/i386/i386.c (min_insn_size): Likewise.
21259 (ix86_avoid_jump_mispredicts): Likewise.
21260 * config/m32r/m32r.c (m32r_is_insn): Likewise.
21261 * config/mep/mep.c (mep_reorg_erepeat): Likewise.
21262 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
21263 (mips16_insn_length): Robustify.
21264 (mips_has_long_branch_p): Remove redundant JUMP_TABLE_DATA_P test.
21265 (mips16_split_long_branches): Likewise.
21266 * config/pa/pa.c (pa_combine_instructions): Likewise.
21267 * config/rs6000/rs6000.c (get_next_active_insn): Treat
21268 JUMP_TABLE_DATA objects as active insns, like in active_insn_p.
21269 * config/s390/s390.c (s390_chunkify_start): Treat JUMP_TABLE_DATA
21270 as contributing to pool range lengths.
21271 * config/sh/sh.c (find_barrier): Restore check for ADDR_DIFF_VEC.
21272 Remove redundant JUMP_TABLE_DATA_P test.
21273 (sh_loop_align): Likewise.
21274 (split_branches): Likewise.
21275 (sh_insn_length_adjustment): Likewise.
21276 * config/spu/spu.c (get_branch_target): Likewise.
21277
0208f7da
JH
212782013-03-29 Jan Hubicka <jh@suse.cz>
21279
21280 * lto-cgraph.c (output_profile_summary, input_profile_summary): Use
21281 gcov streaming; stream hot bb threshold to ltrans.
21282 * predict.c (get_hot_bb_threshold): Break out from ....
21283 (maybe_hot_count_p): ... here.
21284 (set_hot_bb_threshold): New function.
21285 * lto-section-in.c (lto_section_name): Add profile.
21286 * profile.h (get_hot_bb_threshold, set_hot_bb_threshold): Declare.
21287 * ipa.c: Include hash-table.h, tree-inline.h, profile.h, lto-streamer.h
21288 and data-streamer.h
21289 (histogram_entry): New structure.
21290 (histogram, histogram_pool): New global vars.
21291 (histogram_hash): New structure.
21292 (histogram_hash::hash): New method.
21293 (histogram_hash::equal): Likewise.
21294 (account_time_size): New function.
21295 (cmp_counts): New function.
21296 (dump_histogram): New function.
21297 (ipa_profile_generate_summary): New function.
21298 (ipa_profile_write_summary): New function.
21299 (ipa_profile_read_summary): New function.
21300 (ipa_profile): Decide on threshold.
e594716a
UB
21301 (pass_ipa_profile): Add ipa_profile_write_summary and
21302 ipa_profile_read_summary.
0208f7da
JH
21303 * Makefile.in (ipa.o): Update dependencies.
21304 * lto-streamer.h (LTO_section_ipa_profile): New section.
21305
5a6ccc94
GDR
213062013-03-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
21307
21308 * tree.h (VAR_P): New.
21309
39385fa6
PC
213102013-03-29 Paolo Carlini <paolo.carlini@oracle.com>
21311
21312 PR lto/56777
21313 * doc/invoke.texi ([-fwhole-program]): Fix typo.
21314
34f0d87a
SB
213152013-03-29 Steven Bosscher <steven@gcc.gnu.org>
21316
21317 * cfgbuild.c (inside_basic_block_p): Use JUMP_TABLE_DATA_P in lieu
21318 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
21319 (control_flow_insn_p): Likewise.
21320 * cfgrtl.c (duplicate_insn_chain): Likewise.
21321 * final.c (get_attr_length_1): Likewise.
21322 (shorten_branches): Likewise.
21323 (final_scan_insn): Likewise.
21324 * function.c (instantiate_virtual_regs): Likewise.
21325 * gcse.c (insert_insn_end_basic_block): Likewise.
21326 * ira-costs.c (scan_one_insn): Likewise.
21327 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
21328 * lra.c (check_rtl): Likewise.
21329 * reload1.c (elimination_costs_in_insn): Likewise.
21330 * reorg.c (follow_jumps): Likewise.
21331
21332 * config/arm/arm.c (is_jump_table): Use JUMP_TABLE_DATA_P in lieu
21333 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
21334 (thumb_far_jump_used_p): Likewise.
21335 * config/bfin/bfin.c (workaround_rts_anomaly): Likewise.
21336 (workaround_speculation): Likewise.
21337 (add_sched_insns_for_speculation): Likewise.
21338 * config/c6x/c6x.c (reorg_emit_nops): Likewise.
21339 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
21340 (frv_for_each_packet): Likewise.
21341 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Likewise.
21342 * config/ia64/ia64.c (emit_all_insn_group_barriers): Likewise.
21343 (final_emit_insn_group_barriers): Likewise.
21344 * config/m32r/m32r.c (m32r_is_insn): Likewise.
21345 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
21346 (mips16_insn_length): Likewise.
21347 * config/pa/pa.c (pa_reorg): Likewise.
21348 (pa_combine_instructions): Likewise.
21349 * config/rs6000/rs6000.c (rs6000_invalid_within_doloop): Likewise.
21350 * config/sh/sh.c (fixup_addr_diff_vecs): Likewise.
21351 (sh_reorg): Likewise.
21352 (split_branches): Likewise.
21353 * config/spu/spu.c (get_branch_target): Likewise.
21354
21355 * config/s390/s390.c (s390_chunkify_start): Simplify logic using
21356 JUMP_TABLE_DATA_P.
21357
4ac761b0
KY
213582013-03-29 Kirill Yukhin <kirill.yukhin@intel.com>
21359
39385fa6 21360 * config/i386/avx2intrin.h (_mm256_broadcastsi128_si256):
4ac761b0
KY
21361 Fix declaration name.
21362
58a49189
LC
213632013-03-28 Lawrence Crowl <crowl@google.com>
21364
21365 * graphds.h (struct graph.indicies): Remove unused.
21366 * graphite-poly.h (struct graph.original_pddrs): Remove unused.
21367 (SCOP_ORIGINAL_PDDRS): Remove unused.
21368 * sese.h (extern insert_loop_close_phis): Removed unused.
21369 (extern insert_guard_phis): Removed unused.
21370 (extern ivtype_map_elt_info): Removed unused.
21371 (new_ivtype_map_elt): Removed unused.
21372 * sese.c (ivtype_map_elt_info): Removed unused.
21373
7b3b6ae4
LC
213742013-03-28 Lawrence Crowl <crowl@google.com>
21375
21376 * Makefile.in: Add several missing include dependences.
21377 (DUMPFILE_H): New.
21378 (test-dump.o): New. This object is not added to any executable,
21379 but is present for ad-hoc testing.
21380 * bitmap.c
21381 (debug (const bitmap_head_def &)): New.
21382 (debug (const bitmap_head_def *)): New.
21383 * bitmap.h
21384 (extern debug (const bitmap_head_def &)): New.
21385 (extern debug (const bitmap_head_def *)): New.
21386 * cfg.c
21387 (debug (edge_def &)): New.
21388 (debug (edge_def *)): New.
21389 * cfghooks.c
21390 (debug (basic_block_def &)): New.
21391 (debug (basic_block_def *)): New.
21392 * dumpfile.h
21393 (dump_node (const_tree, int, FILE *)): Correct source file.
21394 * dwarf2out.c
21395 (debug (die_struct &)): New.
21396 (debug (die_struct *)): New.
21397 * dwarf2out.h
21398 (extern debug (die_struct &)): New.
21399 (extern debug (die_struct *)): New.
21400 * gimple-pretty-print.c
21401 (debug (gimple_statement_d &)): New.
21402 (debug (gimple_statement_d *)): New.
21403 * gimple-pretty-print.h
21404 (extern debug (gimple_statement_d &)): New.
21405 (extern debug (gimple_statement_d *)): New.
21406 * ira-build.c
21407 (debug (ira_allocno_copy &)): New.
21408 (debug (ira_allocno_copy *)): New.
21409 (debug (ira_allocno &)): New.
21410 (debug (ira_allocno *)): New.
21411 * ira-int.h
21412 (extern debug (ira_allocno_copy &)): New.
21413 (extern debug (ira_allocno_copy *)): New.
21414 (extern debug (ira_allocno &)): New.
21415 (extern debug (ira_allocno *)): New.
21416 * ira-lives.c
21417 (debug (live_range &)): New.
21418 (debug (live_range *)): New.
21419 * lra-int.h
21420 (debug (lra_live_range &)): New.
21421 (debug (lra_live_range *)): New.
21422 * lra-lives.c
21423 (debug (lra_live_range &)): New.
21424 (debug (lra_live_range *)): New.
21425 * omega.c
21426 (debug (omega_pb_d &)): New.
21427 (debug (omega_pb_d *)): New.
21428 * omega.h
21429 (extern debug (omega_pb_d &)): New.
21430 (extern debug (omega_pb_d *)): New.
21431 * print-rtl.c
21432 (debug (const rtx_def &)): New.
21433 (debug (const rtx_def *)): New.
21434 * print-tree.c
21435 (debug_tree (tree): Move within file.
21436 (debug_raw (const tree_node &)): New.
21437 (debug_raw (const tree_node *)): New.
21438 (dump_tree_via_hooks (const tree_node *, int)): New.
21439 (debug (const tree_node &)): New.
21440 (debug (const tree_node *)): New.
21441 (debug_verbose (const tree_node &)): New.
21442 (debug_verbose (const tree_node *)): New.
21443 (debug_head (const tree_node &)): New.
21444 (debug_head (const tree_node *)): New.
21445 (debug_body (const tree_node &)): New.
21446 (debug_body (const tree_node *)): New.
21447 (debug_vec_tree (tree): Move and reimplement in terms of dump.
21448 (debug (vec<tree, va_gc> &)): New.
21449 (debug (vec<tree, va_gc> *)): New.
21450 * rtl.h
21451 (extern debug (const rtx_def &)): New.
21452 (extern debug (const rtx_def *)): New.
21453 * sbitmap.c
21454 (debug_raw (simple_bitmap_def &)): New.
21455 (debug_raw (simple_bitmap_def *)): New.
21456 (debug (simple_bitmap_def &)): New.
21457 (debug (simple_bitmap_def *)): New.
21458 * sbitmap.h
21459 (extern debug (simple_bitmap_def &)): New.
21460 (extern debug (simple_bitmap_def *)): New.
21461 (extern debug_raw (simple_bitmap_def &)): New.
21462 (extern debug_raw (simple_bitmap_def *)): New.
21463 * sel-sched-dump.c
21464 (debug (vinsn_def &)): New.
21465 (debug (vinsn_def *)): New.
21466 (debug_verbose (vinsn_def &)): New.
21467 (debug_verbose (vinsn_def *)): New.
21468 (debug (expr_def &)): New.
21469 (debug (expr_def *)): New.
21470 (debug_verbose (expr_def &)): New.
21471 (debug_verbose (expr_def *)): New.
21472 (debug (vec<rtx> &)): New.
21473 (debug (vec<rtx> *)): New.
21474 * sel-sched-dump.h
21475 (extern debug (vinsn_def &)): New.
21476 (extern debug (vinsn_def *)): New.
21477 (extern debug_verbose (vinsn_def &)): New.
21478 (extern debug_verbose (vinsn_def *)): New.
21479 (extern debug (expr_def &)): New.
21480 (extern debug (expr_def *)): New.
21481 (extern debug_verbose (expr_def &)): New.
21482 (extern debug_verbose (expr_def *)): New.
21483 (extern debug (vec<rtx> &)): New.
21484 (extern debug (vec<rtx> *)): New.
21485 * sel-sched-ir.h
21486 (_list_iter_cond_expr): Make inline instead of static.
21487 * sreal.c
21488 (debug (sreal &)): New.
21489 (debug (sreal *)): New.
21490 * sreal.h
21491 (extern debug (sreal &)): New.
21492 (extern debug (sreal *)): New.
21493 * tree.h
21494 (extern debug_raw (const tree_node &)): New.
21495 (extern debug_raw (const tree_node *)): New.
21496 (extern debug (const tree_node &)): New.
21497 (extern debug (const tree_node *)): New.
21498 (extern debug_verbose (const tree_node &)): New.
21499 (extern debug_verbose (const tree_node *)): New.
21500 (extern debug_head (const tree_node &)): New.
21501 (extern debug_head (const tree_node *)): New.
21502 (extern debug_body (const tree_node &)): New.
21503 (extern debug_body (const tree_node *)): New.
21504 (extern debug (vec<tree, va_gc> &)): New.
21505 (extern debug (vec<tree, va_gc> *)): New.
21506 * tree-cfg.c
21507 (debug (struct loop &)): New.
21508 (debug (struct loop *)): New.
21509 (debug_verbose (struct loop &)): New.
21510 (debug_verbose (struct loop *)): New.
21511 * tree-dump.c: Add header dependence.
21512 * tree-flow.h
21513 (extern debug (struct loop &)): New.
21514 (extern debug (struct loop *)): New.
21515 (extern debug_verbose (struct loop &)): New.
21516 (extern debug_verbose (struct loop *)): New.
21517 * tree-data-ref.c
21518 (debug (data_reference &)): New.
21519 (debug (data_reference *)): New.
21520 (debug (vec<data_reference_p> &)): New.
21521 (debug (vec<data_reference_p> *)): New.
21522 (debug (vec<ddr_p> &)): New.
21523 (debug (vec<ddr_p> *)): New.
21524 * tree-data-ref.h
21525 (extern debug (data_reference &)): New.
21526 (extern debug (data_reference *)): New.
21527 (extern debug (vec<data_reference_p> &)): New.
21528 (extern debug (vec<data_reference_p> *)): New.
21529 (extern debug (vec<ddr_p> &)): New.
21530 (extern debug (vec<ddr_p> *)): New.
21531 * tree-ssa-alias.c
21532 (debug (pt_solution &)): New.
21533 (debug (pt_solution *)): New.
21534 * tree-ssa-alias.h
21535 (extern debug (pt_solution &)): New.
21536 (extern debug (pt_solution *)): New.
21537 * tree-ssa-alias.c
21538 (debug (_var_map &)): New.
21539 (debug (_var_map *)): New.
21540 (debug (tree_live_info_d &)): New.
21541 (debug (tree_live_info_d *)): New.
21542 * tree-ssa-alias.h
21543 (extern debug (_var_map &)): New.
21544 (extern debug (_var_map *)): New.
21545 (extern debug (tree_live_info_d &)): New.
21546 (extern debug (tree_live_info_d *)): New.
21547
be77e1e5
JH
215482013-03-28 Jan Hubicka <jh@suse.cz>
21549
21550 * lto-cgraph.c (merge_profile_summaries): Fix overflows.
21551
777e6976
IB
215522013-03-28 Ian Bolton <ian.bolton@arm.com>
21553
21554 * config/aarch64/aarch64.md (aarch64_can_eliminate): Keep frame
21555 record only when desired or required.
21556
9cd347ae
UB
215572013-03-28 Uros Bizjak <ubizjak@gmail.com>
21558
21559 * config/i386/i386.md (*vec_extract2vdi_1): Merge with
21560 *vec_extractv2di_1_rex64. Use x64 isa attribute.
21561
33159866 215622013-03-28 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
2a1d1991
N
21563
21564 * config/aarch64/aarch64.md (*and<mode>3_compare0): New pattern.
21565 (*andsi3_compare0_uxtw): New pattern.
21566 (*and_<SHIFT:optab><mode>3_compare0): New pattern.
21567 (*and_<SHIFT:optab>si3_compare0_uxtw): New pattern.
21568
89ab31c1
JH
215692013-03-28 Jan Hubicka <jh@suse.cz>
21570
21571 * data-streamer-in.c (streamer_read_gcov_count): New function.
21572 * gimple-streamer-out.c: Include value-prof.h.
21573 (output_gimple_stmt): Output histogram.
21574 (output_bb): Use streamer_write_gcov_count.
21575 * value-prof.c: Include data-streamer.h
21576 (dump_histogram_value): Add HIST_TYPE_MAX.
21577 (stream_out_histogram_value): New function.
21578 (stream_in_histogram_value): New function.
21579 * value-prof.h (enum hist_type): Add HIST_TYPE_MAX.
21580 (stream_out_histogram_value, stream_in_histogram_value): Declare.
21581 * data-streamer-out.c (streamer_write_gcov_count): New function.
21582 (streamer_write_gcov_count_stream): New function.
21583 * lto-cgraph.c (lto_output_edge): Update counter streaming.
21584 (lto_output_node): Likewise.
21585 (input_node, input_edge): Likewise.
21586 * lto-streamer-out.c (output_cfg): Update streaming.
21587 * lto-streamer-in.c (input_cfg): Likewise.
21588 * data-streamer.h (streamer_write_gcov_count,
21589 streamer_write_gcov_count_stream, streamer_read_gcov_count): Declare.
21590 * gimple-streamer-in.c: Include value-prof.h
21591 (input_gimple_stmt): Input histograms.
21592 (input_bb): Update profile streaming.
21593
e594716a 215942013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
b4c73eed 21595
33159866 21596 * genmodes.c (emit_max_int): New function.
8697be17 21597 (emit_insn_modes_h): Added call to emit_max_function.
39385fa6
PC
21598 * doc/rtl.texi (MAX_BITSIZE_MODE_ANY_INT, MAX_BITSIZE_MODE_ANY_MODE):
21599 Added doc.
8697be17 21600 * machmode.def: Fixed comment.
89ab31c1 21601
e594716a 216022013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
8697be17
KZ
21603
21604 * combine.c (try_combine): Removed useless assert.
b4c73eed
KZ
21605 * cselib.c (rtx_equal_for_cselib_1): Removed unnecessary parens.
21606
74946978
MP
216072013-03-28 Marek Polacek <polacek@redhat.com>
21608 Richard Biener <rguenther@suse.de>
21609
21610 PR tree-optimization/56695
21611 * tree-vect-stmts.c (vectorizable_condition): Unconditionally
21612 build signed result of a vector comparison.
21613 * tree-cfg.c (verify_gimple_comparison): Check that a result
21614 of a vector comparison has signed type.
21615
a64b9c26
RB
216162013-03-28 Richard Biener <rguenther@suse.de>
21617
21618 PR tree-optimization/37021
21619 * tree-vect-slp.c (vect_build_slp_tree): When not unrolling
21620 do not restrict gaps between groups.
21621 * tree-vect-stmts.c (vectorizable_load): Properly account for
21622 a gap between groups.
21623
a9dc2a2f
EB
216242013-03-28 Eric Botcazou <ebotcazou@adacore.com>
21625
21626 * toplev.c (process_options): Do not disable -fomit-frame-pointer on a
21627 general basis if unwind info is requested and ACCUMULATE_OUTGOING_ARGS
21628 is not enabled.
21629
53cb97f9
GP
216302013-03-27 Gerald Pfeifer <gerald@pfeifer.com>
21631
21632 * doc/invoke.texi (AVR Options): Tweak link for AVR-LibC user manual.
21633 * doc/extend.texi (Named Address Spaces): Ditto.
21634 (Variable Attributes): Ditto.
21635
b802ae5c
KT
216362013-03-27 Kai Tietz <ktietz@redhat.com>
21637
eddae10a
KT
21638 * config.build: Add support for cygwin x64 target.
21639 * config.gcc: Likewise.
21640 * config.host: Likewise.
21641 * configure.ac: Likewise
21642 * configure: Regenerated.
b802ae5c 21643
371e77e3 216442013-03-27 Kai Tietz <ktietz@redhat.com>
8269de54
KT
21645
21646 * config/i386/cygwin-stdint.h: Add support for cygwin x64 target.
21647 * config/i386/t-cygwin-w64: New file.
21648 * config/i386/cygwin-w64.h: New file.
21649 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Extend
21650 and add support for x64-cygwin target.
21651 (CPP_SPEC): Likewise.
21652 (CXX_WRAP_SPEC_LIST): Undefine before define.
21653 (LIBGCJ_SONAME): Use 15 as version.
21654
f49b33cb
RB
216552013-03-27 Richard Biener <rguenther@suse.de>
21656
21657 PR tree-optimization/56716
21658 * tree-ssa-structalias.c (perform_var_substitution): Adjust
21659 dumping for ref nodes.
21660
b37a6ce5
MJ
216612013-03-27 Martin Jambor <mjambor@suse.cz>
21662
21663 PR tree-optimization/55334
21664 * ipa-cp.c (initialize_node_lattices): Allow IPA-CP through and to
21665 restricted pointers to arrays.
21666
9469b9b2
GDR
216672013-03-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
21668
21669 * Makefile.in (.SUFFIXES): Add .cc.
21670 (.c.o): Apply same recipe for implicit rule .cc.o.
21671
7d24f650
RB
216722013-03-27 Richard Biener <rguenther@suse.de>
21673
21674 PR tree-optimization/37021
21675 * tree-vect-data-refs.c (vect_check_strided_load): Allow
21676 REALPART/IMAGPART_EXPRs around the supported refs.
21677 * tree-ssa-structalias.c (find_func_aliases): Assume that
21678 floating-point values are not used to transfer pointers.
21679
2f251a05
AI
216802013-03-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
21681
f43245d1
UB
21682 * target.def (TARGET_HAS_IFUNC_P): New target hook.
21683 * doc/tm.texi.in (TARGET_HAS_IFUNC_P): New.
21684 * doc/tm.texi: Regenerate.
21685 * targhooks.h (default_has_ifunc_p): New.
21686 * targhooks.c (default_has_ifunc_p): Ditto.
21687 * config/linux-protos.h: New file.
21688 * config/linux-android.h (TARGET_HAS_IFUNC_P): Using version of this
21689 hook for linux which disables support of indirect functions in android.
21690 * config/linux-android.c: New file.
21691 * config/t-linux-android.c: Ditto.
21692 * config.gcc: Added new object file linux-android.o.
21693 * config/i386/i386.c (ix86_get_function_versions_dispatcher):
2f251a05 21694 Using TARGET_HAS_IFUNC hook instead of HAVE_GNU_INDIRECT_FUNCTION.
f43245d1 21695 * varasm.c (do_assemble_alias): Likewise.
2f251a05
AI
21696 * configure.ac: Define HAVE_GNU_INDIRECT_FUNCTION as zero if the target
21697 doesn't support indirect functions.
21698 * configure: Regenerate.
21699
78b4e425
BC
217002013-03-27 Bin Cheng <bin.cheng@arm.com>
21701
21702 PR target/56102
21703 * config/arm/arm.c (thumb1_rtx_costs, thumb1_size_rtx_costs): Fix
21704 rtx costs for SET/ASHIFT/ASHIFTRT/LSHIFTRT/ROTATERT patterns with
21705 mult-word mode.
21706
a5ba7b92
AK
217072013-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21708
21709 * config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Define.
21710
be624986
TG
217112013-03-27 Terry Guo <terry.guo@arm.com>
21712
21713 * config/arm/arm-cores.def: Added core cortex-r7.
21714 * config/arm/arm-tune.md: Regenerated.
21715 * config/arm/arm-tables.opt: Regenerated.
21716 * doc/invoke.texi: Added entry for core cortex-r7.
21717
0a514f47
WL
217182013-03-27 Walter Lee <walt@tilera.com>
21719
21720 * config/tilegx/tilegx.c (tilegx_expand_prologue): Avoid
21721 double-decrement of next_scratch_regno.
21722
9332b0d2
WL
217232013-03-27 Walter Lee <walt@tilera.com>
21724
801d9b2a 21725 * config/tilegx/tilegx.md (insn_v1mulu): Fix predicates on
9332b0d2
WL
21726 input operands.
21727 (insn_v1mulus): Ditto.
21728 (insn_v2muls): Ditto.
21729
f54ea5dd
WL
217302013-03-27 Walter Lee <walt@tilera.com>
21731
e594716a 21732 * config/tilegx/tilegx.h (ASM_OUTPUT_ADDR_VEC_ELT): Delete extra tab.
f54ea5dd
WL
21733 (ASM_OUTPUT_ADDR_DIFF_ELT): Ditto.
21734
bf60f4ca
WL
217352013-03-27 Walter Lee <walt@tilera.com>
21736
e594716a 21737 * config/tilegx/tilegx.md (*sibcall_insn): Fix type atribute for jr.
bf60f4ca
WL
21738 (*sibcall_value): Ditto.
21739
e3b51eeb
WL
217402013-03-27 Walter Lee <walt@tilera.com>
21741
21742 * config/tilegx/tilegx.md (insn_mnz_<mode>): Replaced by ...
21743 (insn_mnz_v8qi): ... this ...
21744 (insn_mnz_v4hi): ... and this. Replace (const_int 0) with the
21745 vector equivalent.
21746 (insn_v<n>mnz): Replaced by ...
21747 (insn_v1mnz): ... this ...
21748 (insn_v2mnz): ... and this. Replace (const_int 0) with the vector
21749 equivalent.
21750 (insn_mz_<mode>): Replaced by ...
21751 (insn_mz_v8qi): ... this ...
21752 (insn_mz_v4hi): ... and this. Replace (const_int 0) with the
21753 vector equivalent.
21754 (insn_v<n>mz): Replaced by ...
21755 (insn_v1mz): ... this ...
21756 (insn_v2mz): ... and this. Replace (const_int 0) with the vector
21757 equivalent.
21758
4fc7b145
EB
217592013-03-26 Eric Botcazou <ebotcazou@adacore.com>
21760
21761 * doc/invoke.texi (SPARC options): Remove -mlittle-endian.
21762
6f33817e
RM
217632013-03-26 Roland McGrath <mcgrathr@google.com>
21764
21765 * config/arm/arm.c (arm_print_operand: case 'w'): Use fputs rather
21766 than fprintf with a non-constant, non-format string.
21767
93a4145b
UB
217682013-03-26 Uros Bizjak <ubizjak@gmail.com>
21769
21770 * config/i386/i386.md (*cmpqi_ext_1): Merge with *cmpqi_ext_1_rex64
21771 using nox64 isa attribute. Use nonimmediate_x86nomem_operand as
21772 operand 0 predicate.
21773 (*cmpqi_ext_3): Merge with *cmpqi_ext_3_rex64 using nox64 isa
21774 attribute. Use general_x64nomem_operand as operand 1 predicate.
21775 (*movqi_extv_1): Merge with *movqi_extv_1_rex64 using nox64 isa
21776 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
21777 (*movqi_extzv_2): Merge with *movqi_extzv_2_rex64 using nox64 isa
21778 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
21779 (mov<mode>_insv_1): Remove expander. Merge insn with
21780 movsi_insv_1 using SWI48 mode iterator and nox64 isa attribute.
21781 Use general_x64nomem_operand as operand 1 predicate.
21782 (addqi_ext_1): Merge with *addqi_ext_1_rex64 using nox64 isa attribute.
21783 (*testqi_ext_1): Merge with *testqi_ext_1_rex64 using nox64 isa
21784 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
21785 (*andqi_ext_1): Merge with *andqi_ext_1_rex64 using nox64 isa
21786 attribute. Use nonimmediate_x64nomem_operand as operand 2 predicate.
21787 (*<code>qi_ext_1): Merge with *<code>qi_ext_1_rex64 using nox64 isa
21788 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
21789 (*xorqi_cc_ext_1): Merge with *xorqi_cc_ext_1_rex64 using nox64
21790 isa attribute. Use general_x64nomem_operand as operand 2 predicate.
21791 * config/i386/predicates.md (nonimmediate_x64nomem_operand): New.
21792 (general_x64nomem_operand): Ditto.
21793
c6a9ed5a 217942013-03-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
df599020
SH
21795
21796 * config/rtems.opt: Add -pthread option.
21797
31b0a960
RB
217982013-03-26 Richard Biener <rguenther@suse.de>
21799
93a4145b
UB
21800 * alias.c (find_base_term): Avoid redundant and not used recursion.
21801 (base_alias_check): Get the initial base term from the caller.
31b0a960
RB
21802 (true_dependence_1): Compute and pass base terms to base_alias_check.
21803 (write_dependence_p): Likewise.
21804 (may_alias_p): Likewise.
21805
79517551
SN
218062013-03-26 Sofiane Naci <sofiane.naci@arm.com>
21807
21808 * config/aarch64/aarch64.c (aarch64_classify_address): Support
21809 PC-relative load in SI modes and above only.
21810
a76213b9
XQ
218112013-03-26 Xinyu Qi <xyqi@marvell.com>
21812
21813 * config/arm/arm.h (FIRST_IWMMXT_GR_REGNUM): Add comment.
33159866
UB
21814 * config/arm/iwmmxt.md (WCGR0): Update.
21815 (WCGR1, WCGR2, WCGR3): Likewise.
a76213b9 21816
37ff9355
UB
218172013-03-26 Uros Bizjak <ubizjak@gmail.com>
21818
21819 * config/i386/i386.md (*movdfcc_1): Merge with *movdfcc_1_rex64.
21820 Use x64 and nox64 isa attributes.
21821
30b0317c
RB
218222013-03-26 Richard Biener <rguenther@suse.de>
21823
21824 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
21825 alignment computations and rely on get_object_alignment_1
21826 for the !TYPE_P case.
21827 Commonize DECL/COMPONENT_REF handling in the ARRAY_REF path.
21828
cbcdb140
WL
218292013-03-26 Walter Lee <walt@tilera.com>
21830
21831 * config/tilegx/tilegx.h (PROFILE_BEFORE_PROLOGUE): Define.
21832 * config/tilegx/tilepro.h (PROFILE_BEFORE_PROLOGUE): Define.
21833
dd884525 218342013-03-25 Jeff Law <law@redhat.com>
be672e08 21835
33159866
UB
21836 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Add missing
21837 check for INTEGRAL_TYPE_P that was missing due to checking in
dd884525
JL
21838 wrong version of prior patch.
21839
0051d3ec
WL
218402013-03-25 Walter Lee <walt@tilera.com>
21841
21842 * config/tilegx/tilegx-builtins.h (enum tilegx_builtin): Add
21843 TILEGX_INSN_SHUFFLEBYTES1.
21844 * config/tilegx/tilegx.c (tilegx_builtin_info): Add entry for
21845 shufflebytes1.
21846 (tilegx_builtins): Ditto.
21847 * config/tilegx/tilegx.md (insn_shufflebytes1): New pattern.
21848
065a3605
WL
218492013-03-25 Walter Lee <walt@tilera.com>
21850
21851 * config/tilegx/tilegx.md (floatsisf2): New pattern.
0051d3ec
WL
21852 (floatunssisf2): New pattern.
21853 (floatsidf2): New pattern.
21854 (floatunssidf2): New pattern.
065a3605 21855
5b2a3c82
WL
218562013-03-25 Walter Lee <walt@tilera.com>
21857
21858 * config/tilegx/tilegx.c (expand_set_cint64_one_inst): Inline
21859 tests for constraint J, K, N, P.
21860
192ea533
WL
218612013-03-25 Walter Lee <walt@tilera.com>
21862
21863 * config/tilegx/tilegx.c (tilegx_asm_preferred_eh_data_format):
21864 Use indirect/pcrel encoding.
21865 * config/tilepro/tilepro.c (tilepro_asm_preferred_eh_data_format):
21866 Ditto.
21867
855e0d0b
SE
218682013-03-25 Steve Ellcey <sellcey@mips.com>
21869
21870 * config/mips/mmips-cpus.def (74kc, 74kf2_1, 74kf, 74kf, 74kf1_1,
21871 74kfx, 74kx, 74kf3_2): Add PTF_AVOID_IMADD.
21872 * config/mips/mips.c (mips_option_override): Set IMADD default.
21873 * config/mips/mips.h (PTF_AVOID_IMADD): New.
21874 (ISA_HAS_MADD_MSUB): Remove MIPS16 check.
21875 (GENERATE_MADD_MSUB): Remove TUNE_74K check, add MIPS16 check.
21876 * config/mips/mips.md (mimadd): New flag for integer madd/msub.
21877 * doc/invoke.texi (-mimadd/-mno-imadd): New.
21878
39e45653
JL
218792013-03-25 Jeff Law <law@redhat.com>
21880
21881 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Rework
21882 slightly to avoid creating and folding useless trees. Simplify
21883 slightly by restricting to INTEGER_CSTs and using int_fits_type_p.
21884
7482c470
UB
218852013-03-25 Uros Bizjak <ubizjak@gmail.com>
21886
21887 * config/i386/i386.md (*zero_extendsidi2): Merge with
21888 *zero_extendsidi2_rex64. Use x64 and nox64 isa attributes.
21889 * config/i386/predicates.md (x86_64_zext_operand): Rename from
21890 x86_64_zext_general_operand. Use nonimmediate_operand on 32bit
21891 targets. Clarify comment.
21892
4a53743e
MJ
218932013-03-25 Martin Jambor <mjambor@suse.cz>
21894
21895 * ipa-prop.c (ipa_write_jump_function): Stream simple and aritmetic
21896 pass-through jump functions differently.
21897 (ipa_read_jump_function): Likewise. Also use setter functions to set
21898 up jump functions.
21899
162712de
MJ
219002013-03-25 Martin Jambor <mjambor@suse.cz>
21901
21902 * ipa-cp.c (ipa_get_indirect_edge_target): Renamed to
21903 ipa_get_indirect_edge_target_1, added parameter agg_reps and ability to
21904 process it.
21905 (ipa_get_indirect_edge_target): New function.
21906 (devirtualization_time_bonus): New parameter known_aggs, pass it to
21907 ipa_get_indirect_edge_target. Update all callers.
21908 (ipcp_discover_new_direct_edges): New parameter aggvals. Pass it to
21909 ipa_get_indirect_edge_target_1 instead of calling
21910 ipa_get_indirect_edge_target.
21911 (create_specialized_node): Pass aggvlas to
21912 ipcp_discover_new_direct_edges.
21913
a5a4c20a
KT
219142013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21915
21916 * config/arm/arm.md (f_sels, f_seld): New types.
21917 (*cmov<mode>): New pattern.
21918 * config/arm/predicates.md (arm_vsel_comparison_operator): New
21919 predicate.
21920
f992b9fc
KT
219212013-03-25 Kai Tietz <ktietz@redhat.com>
21922
21923 * config/i386/xm-mingw32.h (__USE_MINGW_ANSI_STDIO): Enable
21924 POSIX-printf for mingw-hosted builds.
21925
c16fd676
RB
219262013-03-25 Richard Biener <rguenther@suse.de>
21927
21928 PR middle-end/56694
21929 * tree-eh.c (lower_eh_must_not_throw): Strip BLOCKs from the
21930 must-not-throw stmt location.
21931
5ad29f12
KT
219322013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21933
21934 * config/arm/arm.c (arm_emit_load_exclusive): Add acq parameter.
21935 Emit load-acquire versions when acq is true.
21936 (arm_emit_store_exclusive): Add rel parameter.
21937 Emit store-release versions when rel is true.
21938 (arm_split_compare_and_swap): Use acquire-release instructions
21939 instead.
21940 of barriers when appropriate.
21941 (arm_split_atomic_op): Likewise.
21942 * config/arm/arm.h (TARGET_HAVE_LDACQ): New macro.
21943 * config/arm/unspecs.md (VUNSPEC_LAX): New unspec.
21944 (VUNSPEC_SLX): Likewise.
21945 (VUNSPEC_LDA): Likewise.
21946 (VUNSPEC_STL): Likewise.
21947 * config/arm/sync.md (atomic_load<mode>): New pattern.
21948 (atomic_store<mode>): Likewise.
21949 (arm_load_acquire_exclusive<mode>): Likewise.
21950 (arm_load_acquire_exclusivesi): Likewise.
21951 (arm_load_acquire_exclusivedi): Likewise.
21952 (arm_store_release_exclusive<mode>): Likewise.
21953
03a7dddb
CM
219542013-03-25 Catherine Moore <clm@codesourcery.com>
21955
21956 * config/mips/constraints.md (u, Udb7 Uead, Uean, Uesp, Uib3,
21957 Uuw6, Usb4, ZS, ZT, ZU, ZV, ZW): New constraints.
21958 * config/mip/predicates.md (lwsp_swsp_operand,
21959 lw16_sw16_operand, lhu16_sh16_operand, lbu16_operand,
21960 sb16_operand, db4_operand, db7_operand, ib3_operand,
21961 sb4_operand, ub4_operand, uh4_operand, uw4_operand,
21962 uw5_operand, uw6_operand, addiur2_operand, addiusp_operand,
21963 andi16_operand): New predicates.
21964 * config/mips/mips.md (compression): New attribute.
21965 (enabled): New attribute.
21966 (length): Consider compression in computing length.
21967 (shift_compression): New code attribute.
21968 (*add<mode>3): New operands. Record compression.
21969 (sub<mode>3): Likewise.
21970 (one_cmpl<mode>2): Likewise.
21971 (*and<mode>3): Likewise.
21972 (*ior<mode>3): Likewise.
21973 (unnamed pattern for xor): Likewise.
21974 (*zero_extend<SHORT:mode><GPR:mode>2): Likewise.
21975 (*<optab><mode>3): Likewise.
21976 (*mov<mode>_internal: Likewise.
21977 * config/mips/mips-protos.h (mips_signed_immediate_p): New.
21978 (mips_unsigned_immediate_p): New.
21979 (umips_lwsp_swsp_address_p): New.
21980 (m16_based_address_p): New.
21981 * config/mips/mips-protos.h (mips_signed_immediate_p): New prototype.
21982 (mips_unsigned_immediate_p): New prototype.
21983 (lwsp_swsp_address_p): New prototype.
21984 (m16_based_address_p): New prototype.
21985 * config/mips/mips.c (mips_unsigned_immediate_p): New function.
21986 (mips_signed_immediate_p): New function.
21987 (m16_based_address_p): New function.
21988 (lwsp_swsp_address_p): New function.
21989 (mips_print_operand_punctuation): Recognize short delay slot insns
21990 for microMIPS.add<mode>3"
21991
f35c297f 219922013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
a5784ce6 21993
f35c297f
KT
21994 PR target/56720
21995 * config/arm/iterators.md (v_cmp_result): New mode attribute.
21996 * config/arm/neon.md (vcond<mode><mode>): Handle unordered cases.
21997
051b9446
RB
219982013-03-25 Richard Biener <rguenther@suse.de>
21999
22000 PR tree-optimization/56689
22001 * tree-vrp.c (execute_vrp): Mark loops for fixup if we removed
22002 any edge.
22003
374001cb
RB
220042013-03-25 Richard Biener <rguenther@suse.de>
22005
22006 * tree-ssa-loop-im.c (struct mem_ref): Use bitmap_head instead
22007 of bitmap.
22008 (memory_references): Likewise.
22009 (outermost_indep_loop, mem_ref_alloc, mark_ref_stored,
22010 gather_mem_refs_stmt, record_dep_loop, ref_indep_loop_p_1,
22011 ref_indep_loop_p_2, find_refs_for_sm): Adjust.
22012 (gather_mem_refs_in_loops): Fold into ...
22013 (analyze_memory_references): ... this. Move initialization
22014 to tree_ssa_lim_initialize.
22015 (fill_always_executed_in): Rename to ...
22016 (fill_always_executed_in_1): ... this.
22017 (fill_always_executed_in): Move contains_call computation to
22018 this new function from ...
22019 (tree_ssa_lim_initialize): ... here.
22020 (tree_ssa_lim): Call fill_always_executed_in.
22021
57895947
EB
220222013-03-25 Eric Botcazou <ebotcazou@adacore.com>
22023
22024 * postreload.c (reload_combine): Fix code detecting returns.
22025
1e1b18c1
EB
220262013-03-25 Eric Botcazou <ebotcazou@adacore.com>
22027
22028 * function.c (emit_use_return_register_into_block): On cc0 targets,
22029 do not emit the sequence between cc0 setter and user.
22030
9216baf1
KT
220312013-03-25 Kai Tietz <ktietz@redhat.com>
22032
1e1b18c1
EB
22033 * config/i386/predicates.md (local_symbolic_operand): Interpret
22034 dll-imported symbols as none-local.
9216baf1 22035
76421b44
RB
220362013-03-25 Richard Biener <rguenther@suse.de>
22037
22038 * tree-ssa-loop-im.c (struct depend): Remove.
22039 (struct lim_aux_data): Make depends a vec of gimples.
22040 (free_lim_aux_data): Adjust.
22041 (add_dependency): Likewise.
22042 (set_level): Likewise.
22043
d154bfa2
RB
220442013-03-25 Richard Biener <rguenther@suse.de>
22045
22046 PR middle-end/56434
22047 * calls.c (expand_call): Use MALLOC_ABI_ALIGNMENT to annotate
22048 the pointer returned by calls with ECF_MALLOC set.
22049
2cd9804e
UB
220502013-03-24 Uros Bizjak <ubizjak@gmail.com>
22051
acef5fe0
UB
22052 * config/i386/mmx.md (mov<mode>): Add ?!Ym,r and r,?!Ym alternatives.
22053
220542013-03-24 Uros Bizjak <ubizjak@gmail.com>
22055
22056 * config/i386/mmx.md (mov<mode>): Merge with movv2sf expander
2cd9804e
UB
22057 using MMXMODE mode iterator.
22058 (*move<mode>_internal): Merge with *movv2sf_internal and
22059 *movv2sf_internal_rex64 using MMXMODE mode iterator.
22060
225ccc68
SB
220612013-03-23 Steven Bosscher <steven@gcc.gnu.org>
22062
85c0f02d
SB
22063 * gcse.c (oprs_unchanged_p): Respect flag_gcse_lm.
22064 (record_last_mem_set_info): Likewise.
22065
225ccc68
SB
22066 * df-core.c (rest_of_handle_df_initialize): Use XCNEWVEC instead
22067 of XNEWVEC followed by memset.
22068 (df_worklist_dataflow): Use XNEWVEC instead of xmalloc with a cast.
22069
b64925dc
SB
220702013-03-23 Steven Bosscher <steven@gcc.gnu.org>
22071
22072 * config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
22073 config/epiphany/epiphany.c, config/frv/frv.c, config/ia64/ia64.c,
22074 config/iq2000/iq2000.c, config/mcore/mcore.c, config/mep/mep.c,
22075 config/mmix/mmix.c, config/pa/pa.c, config/rs6000/rs6000.c,
22076 config/s390/s390.c, config/sparc/sparc.c, config/spu/spu.c,
22077 config/stormy16/stormy16.c, config/v850/v850.c, config/xtensa/xtensa.c,
22078 dwarf2out.c, hw-doloop.c, resource.c, rtl.h : Where applicable, use
22079 the predicates NOTE_P, NONJUMP_INSN_P, JUMP_P, CALL_P, LABEL_P, and
22080 BARRIER_P instead of GET_CODE.
22081
b9aaf52e
EB
220822013-03-23 Eric Botcazou <ebotcazou@adacore.com>
22083
22084 * config/sparc/sparc.c (sparc_emit_probe_stack_range): Fix small
22085 inaccuracy in the probing code.
22086
22087 * config/sparc/sparc.md (ctrapsi4): Add predicate for operand #3.
22088 (ctrapdi4): Likewise.
22089
66de4d7c
EB
220902013-03-23 Eric Botcazou <ebotcazou@adacore.com>
22091
22092 * calls.c (expand_call): Add missing guard to code handling return
22093 of non-BLKmode structures in MSB.
22094 * function.c (expand_function_end): Likewise.
22095
4f25c8fb
EB
220962013-03-23 Eric Botcazou <ebotcazou@adacore.com>
22097
22098 * combine.c (try_combine): Adjust comment. Do not add the set of
22099 insn #0 if the destination indirectly is set or dies in insn #2.
22100 Tidy up code to distribute a new note.
22101
23b7850d
UB
221022013-03-22 Uros Bizjak <ubizjak@gmail.com>
22103
22104 * config/i386/i386.md (*movdi_internal): Set prefix_rex attribute
22105 also for alternatives 16 and 17.
22106
bed852cf
UB
221072013-03-22 Uros Bizjak <ubizjak@gmail.com>
22108
22109 * config/i386/sse.md (*mov<mode>_internal): Merge with
22110 *mov<mode>_internal_rex64. Use x64 and nox64 isa attributes.
22111 Emit insn template depending on type attribute. Use
22112 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
22113 movd instead of movq mnemonic for interunit moves. Rewrite mode
22114 attribute calculation. Remove unit attribute calculation.
22115 Set prefix attribute to maybe_vex for sselog1 and ssemov types.
22116 Set prefix_data16 attribute for DImode ssemov types.
22117 Use Ym instead of y for SSE-MMX conversion alternatives.
22118 Reorder operand constraints.
22119
1e8a7937
SB
221202013-03-22 Steven Bosscher <steven@gcc.gnu.org>
22121
22122 * df.h (df_insn_delete): Adjust prototype.
22123 * emit-rtl.c (remove_insn): Pass a basic block to df_insn_delete
22124 and let it decide whether mark the basic block dirty.
22125 (set_insn_deleted): Only pass INSN_P insns to df_insn_delete.
22126 * df-scan.c (df_insn_info_delete): New helper function, split
22127 off from df_insn_delete.
22128 (df_scan_free_bb_info): Use it.
22129 (df_insn_rescan, df_insn_rescan_all, df_process_deferred_rescans):
22130 Likewise.
22131 (df_insn_delete): Likewise. Take insn rtx as argument. Verify
22132 that the insn is actually an insn and it has a non-NULL basic block.
22133 Do not mark basic block dirty if only deleting a DEBUG_INSN.
22134
e14d094c
RB
221352013-03-22 Richard Biener <rguenther@suse.de>
22136
22137 * tree-ssa-loop-im.c (struct mem_ref): Remove indep_ref and
22138 dep_ref members.
22139 (mem_ref_alloc): Do not allocate them.
22140 (refs_independent_p): Do not query or maintain a cache.
22141
e9cf7316
RB
221422013-03-22 Richard Biener <rguenther@suse.de>
22143
22144 * tree-ssa-loop-im.c (memory_references): Drop all_refs_in_loop.
22145 (gather_mem_refs_in_loops): Do not compute it.
22146 (analyze_memory_references): Do not allocate it.
22147 (tree_ssa_lim_finalize): Do not free it.
22148 (for_all_locs_in_loop): Do not query all_refs_in_loop.
22149
f046e81b
RB
221502013-03-22 Richard Biener <rguenther@suse.de>
22151
22152 * is-a.h (as_a): Use gcc_checking_assert.
bed852cf 22153
a05c0ddf
IB
221542013-03-22 Ian Bolton <ian.bolton@arm.com>
22155
22156 * config/aarch64/aarch64.c (aarch64_print_operand): New
22157 format specifier for printing a constant in hex.
22158 * config/aarch64/aarch64.md (insv_imm<mode>): Use the X
22159 format specifier for printing second operand.
22160
c00217fc
RB
221612013-03-22 Richard Biener <rguenther@suse.de>
22162
22163 * tree-ssa-loop-im.c (memory_references): Add refs_stored_in_loop
22164 bitmaps.
22165 (gather_mem_refs_in_loops): Perform store accumulation here.
22166 (create_vop_ref_mapping_loop): Remove.
22167 (create_vop_ref_mapping): Likewise.
22168 (analyze_memory_references): Initialize refs_stored_in_loop.
bed852cf 22169 (LOOP_DEP_BIT): New define to map to bits in (in)dep_loop bitmaps.
c00217fc
RB
22170 (record_indep_loop): Remove.
22171 (record_dep_loop): New function.
22172 (ref_indep_loop_p_1): Adjust to only walk over references
22173 in the loop, not its subloops.
22174 (ref_indep_loop_p): Rename to ...
22175 (ref_indep_loop_p_2): ... this and recurse over the loop tree,
22176 maintaining a more fine-grained cache.
22177 (ref_indep_loop_p): Wrap ref_indep_loop_p_2.
22178 (tree_ssa_lim_finalize): Free refs_stored_in_loop.
22179
15d19bf8
RB
221802013-03-22 Richard Biener <rguenther@suse.de>
22181
22182 * tree-ssa-loop-im.c (struct mem_ref_locs): Remove.
22183 (struct mem_ref): Make accesses_in_loop a vec of a vec of
22184 aggregate mem_ref_loc.
22185 (free_mem_ref_locs): Inline into ...
22186 (memref_free): ... this and adjust.
22187 (mem_ref_alloc): Adjust.
22188 (mem_ref_locs_alloc): Remove.
22189 (record_mem_ref_loc): Adjust.
22190 (get_all_locs_in_loop): Rewrite into ...
22191 (for_all_locs_in_loop): ... this iterator.
22192 (rewrite_mem_ref_loc): New functor.
22193 (rewrite_mem_refs): Use for_all_locs_in_loop.
22194 (sm_set_flag_if_changed): New functor.
22195 (execute_sm_if_changed_flag_set): Use for_all_locs_in_loop.
22196 (ref_always_accessed): New functor.
22197 (ref_always_accessed_p): Use for_all_locs_in_loop.
22198
6f37411d
MG
221992013-03-21 Marc Glisse <marc.glisse@inria.fr>
22200
22201 * tree-pass.h (PROP_gimple_lvec): New.
22202 * passes.c (dump_properties): Handle PROP_gimple_lvec.
22203 (init_optimization_passes): Move pass_lower_vector.
22204 * tree-vect-generic.c (gate_expand_vector_operations_ssa): Test
22205 PROP_gimple_lvec.
22206 (pass_lower_vector): Provide PROP_gimple_lvec.
22207 (pass_lower_vector_ssa): Likewise.
22208 * cfgexpand.c (pass_expand): Require PROP_gimple_lvec.
22209
511ef689
MW
222102013-03-21 Mark Wielaard <mjw@redhat.com>
22211
22212 * dwarf2out.c (size_of_aranges): Skip DECL_IGNORED_P functions.
22213
cc1df30b
UB
222142013-03-21 Uros Bizjak <ubizjak@gmail.com>
22215
22216 * config/i386/i386.md (*movdi_internal): Disparage slightly
22217 all MMX moves to/from memory. Use Yi instead of x for SSE-MMX
22218 conversion alternatives.
22219
c845cfe1
JJ
222202013-03-21 Jakub Jelinek <jakub@redhat.com>
22221
37e99116
JJ
22222 PR middle-end/48087
22223 * diagnostic.def (DK_WERROR): New kind.
22224 * diagnostic.h (werrorcount): Define.
22225 * diagnostic.c (diagnostic_report_diagnostic): For DK_WARNING
22226 promoted to DK_ERROR, increment DK_WERROR counter instead of
22227 DK_ERROR counter.
22228 * toplev.c (toplev_main): Call print_ignored_options even if
22229 just werrorcount is non-zero. Exit with FATAL_EXIT_CODE
22230 even if just werrorcount is non-zero.
22231
c845cfe1
JJ
22232 PR debug/55608
22233 * dwarf2out.c (tree_add_const_value_attribute): Call ggc_free (array)
22234 on failure.
22235 (resolve_one_addr): Fail if referenced STRING_CST hasn't been written.
22236 (string_cst_pool_decl): New function.
22237 (optimize_one_addr_into_implicit_ptr): New function.
22238 (resolve_addr_in_expr): Optimize DWARF location expression
22239 DW_OP_addr DW_OP_stack_value where DW_OP_addr refers to some variable
22240 which doesn't live in memory, but has DW_AT_location or
22241 DW_AT_const_value, or refers to a string literal, into
22242 DW_OP_GNU_implicit_pointer.
22243 (optimize_location_into_implicit_ptr): New function.
22244 (resolve_addr): If removing DW_AT_location of a variable because
22245 it was DW_OP_addr of address of the variable, but the variable doesn't
22246 live in memory, try to emit const value attribute for the initializer.
22247
08e0cda6
MG
222482013-03-21 Marc Glisse <marc.glisse@inria.fr>
22249
22250 * tree.h (VECTOR_TYPE_P): New macro.
22251 (VECTOR_INTEGER_TYPE_P, VECTOR_FLOAT_TYPE_P, FLOAT_TYPE_P,
22252 TYPE_MODE): Use it.
22253 * fold-const.c (fold_cond_expr_with_comparison): Use build_zero_cst.
22254 VEC_COND_EXPR cannot be lvalues.
22255 (fold_ternary_loc) <VEC_COND_EXPR>: Merge with the COND_EXPR case.
22256
d08633b4
MG
222572013-03-21 Marc Glisse <marc.glisse@inria.fr>
22258
22259 * simplify-rtx.c (simplify_binary_operation_1) <VEC_CONCAT>:
22260 Restrict the transformation to equal modes.
22261
e6647190
RB
222622013-03-21 Richard Biener <rguenther@suse.de>
22263
22264 PR tree-optimization/39326
22265 * tree-ssa-loop-im.c (UNANALYZABLE_MEM_ID): New define.
22266 (MEM_ANALYZABLE): Adjust.
22267 (record_mem_ref_loc): Move bitmap ops ...
22268 (gather_mem_refs_stmt): ... here. Use the shared mem-ref for
22269 unanalyzable refs, do not record locations for it.
22270 (analyze_memory_references): Allocate ref zero as shared
22271 unanalyzable ref.
22272 (refs_independent_p): Do not test for unanalyzed mems here.
22273 (ref_indep_loop_p_1): Special-case disambiguation against
22274 the unanalyzed ref.
cc1df30b 22275 (ref_indep_loop_p): Assert we are not queried for the unanalyzed mem.
e6647190 22276
65074f54
CL
222772013-03-21 Christophe Lyon <christophe.lyon@linaro.org>
22278
22279 * config/arm/arm-protos.h (tune_params): Add
22280 prefer_neon_for_64bits field.
22281 * config/arm/arm.c (prefer_neon_for_64bits): New variable.
22282 (arm_slowmul_tune): Default prefer_neon_for_64bits to false.
22283 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
22284 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
22285 (arm_cortex_a15_tune, arm_cortex_a5_tune): Ditto.
22286 (arm_cortex_a9_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
22287 (arm_option_override): Handle -mneon-for-64bits new option.
22288 * config/arm/arm.h (TARGET_PREFER_NEON_64BITS): New macro.
22289 (prefer_neon_for_64bits): Declare new variable.
22290 * config/arm/arm.md (arch): Rename neon_onlya8 and neon_nota8 to
cc1df30b 22291 avoid_neon_for_64bits and neon_for_64bits. Remove onlya8 and nota8.
65074f54
CL
22292 (arch_enabled): Handle new arch types. Remove support for onlya8
22293 and nota8.
22294 (one_cmpldi2): Use new arch names.
bc5faa5b 22295 (zero_extend<mode>di2, extend<mode>di2): Ditto.
65074f54
CL
22296 * config/arm/arm.opt (mneon-for-64bits): Add option.
22297 * config/arm/neon.md (adddi3_neon, subdi3_neon, iordi3_neon)
22298 (anddi3_neon, xordi3_neon, ashldi3_neon, <shift>di3_neon): Use
22299 neon_for_64bits instead of nota8 and avoid_neon_for_64bits instead
22300 of onlya8.
22301 * doc/invoke.texi (-mneon-for-64bits): Document.
22302
5a2d2a79
RB
223032013-03-21 Richard Biener <rguenther@suse.de>
22304
22305 PR tree-optimization/39326
22306 * tree-ssa-loop-im.c (bb_loop_postorder): New global static.
22307 (sort_bbs_in_loop_postorder_cmp): New function.
cc1df30b 22308 (gather_mem_refs_in_loops): Assign mem-ref IDs in loop postorder.
5a2d2a79 22309
5abe1e05
RB
223102013-03-21 Richard Biener <rguenther@suse.de>
22311
22312 * tree-vect-data-refs.c (vect_update_interleaving_chain): Remove.
22313 (vect_insert_into_interleaving_chain): Likewise.
22314 (vect_drs_dependent_in_basic_block): Inline ...
22315 (vect_slp_analyze_data_ref_dependence): ... here. New function,
22316 split out from ...
22317 (vect_analyze_data_ref_dependence): ... here. Simplify.
22318 (vect_check_interleaving): Simplify.
22319 (vect_analyze_data_ref_dependences): Likewise. Split out ...
22320 (vect_slp_analyze_data_ref_dependences): ... this new function.
22321 (dr_group_sort_cmp): New function.
22322 (vect_analyze_data_ref_accesses): Compute data-reference groups
22323 here instead of in vect_analyze_data_ref_dependence. Use
22324 a more efficient algorithm.
22325 * tree-vect-slp.c (vect_slp_analyze_bb_1): Use
22326 vect_slp_analyze_data_ref_dependences. Call
22327 vect_analyze_data_ref_accesses earlier.
22328 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
22329 * tree-vectorizer.h (vect_analyze_data_ref_dependences): Adjust.
22330 (vect_slp_analyze_data_ref_dependences): New prototype.
22331
cad1735b
RB
223322013-03-21 Richard Biener <rguenther@suse.de>
22333
22334 * tree-ssa-loop-im.c (can_sm_ref_p): Do not test whether
22335 ref is stored in the loop.
22336 (find_refs_for_sm): Walk only over all stores.
22337 (store_motion_loop): Allocate from lim_bitmap_obstack.
22338 (store_motion): Likewise.
22339
141310ef
RB
223402013-03-21 Richard Biener <rguenther@suse.de>
22341
22342 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge):
22343 Update virtual SSA form.
22344
5022315a
RO
223452013-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22346
22347 * configure.ac (gcc_cv_ld_eh_frame_ciev3): New test.
22348 * configure: Regenerate.
22349 * config.in: Regenerate.
22350 * config/sol2.c (solaris_override_options): Only enforce DWARF 2
22351 if !HAVE_LD_EH_FRAME_CIEV3.
22352
50d4421c
RB
223532013-03-21 Richard Biener <rguenther@suse.de>
22354
22355 * tree-cfg.c (verify_expr_no_block): New function.
22356 (verify_expr_location_1): Verify that neither DECL_DEBUG_EXPR
22357 nor DECL_VALUE_EXPR have locations with associated blocks.
22358 * tree-ssa-live.c (clear_unused_block_pointer_1): Remove.
22359 (clear_unused_block_pointer): Remove code dealing with
22360 blocks in DECL_DEBUG_EXPR locations.
22361
839b422f
RB
223622013-03-21 Richard Biener <rguenther@suse.de>
22363
22364 * tree.h (DECL_DEBUG_EXPR_IS_FROM): Rename to ...
22365 (DECL_HAS_DEBUG_EXPR_P): ... this. Guard properly.
22366 * tree.c (copy_node_stat): Do not copy DECL_HAS_DEBUG_EXPR_P.
22367 * dwarf2out.c (add_var_loc_to_decl): Use DECL_HAS_DEBUG_EXPR_P
22368 instead of DECL_DEBUG_EXPR_IS_FROM.
22369 * gimplify.c (gimplify_modify_expr): Likewise.
22370 * tree-cfg.c (verify_expr_location_1): Likewise.
22371 * tree-complex.c (create_one_component_var): Likewise.
22372 * tree-sra.c (create_access_replacement): Likewise.
22373 * tree-ssa-live.c (clear_unused_block_pointer_1): Likewise.
22374 (clear_unused_block_pointer): Likewise.
22375 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
22376 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
22377 * var-tracking.c (var_debug_decl): Likewise.
22378 (track_expr_p): Likewise.
22379 * tree-inline.c (add_local_variables): Likewise. Set
22380 DECL_HAS_DEBUG_EXPR_P after copying it.
22381 * tree-diagnostic.c (default_tree_printer): Use DECL_HAS_DEBUG_EXPR_P
22382 instead of DECL_DEBUG_EXPR_IS_FROM. Guard properly.
22383
fe04878d
UB
223842013-03-21 Uros Bizjak <ubizjak@gmail.com>
22385
22386 PR bootstrap/56656
22387 * configure.ac (HAVE_AS_IX86_INTERUNIT_MOVQ): New test.
22388 * configure: Regenerate.
22389 * config.in: Regenerate.
22390 * config/i386/i386.md (*movdf_internal): Use
22391 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
22392 movd instead of movq mnemonic for interunit moves.
22393 (*movdi_internal): Ditto.
22394
bd059b26 223952013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
fa2e9a58
N
22396
22397 * config/aarch64/aarch64-simd.md (simd_fabd): New Attribute.
22398 (abd<mode>_3): New pattern.
22399 (aba<mode>_3): New pattern.
22400 (fabd<mode>_3): New pattern.
22401
bd059b26 224022013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
50ce6f88
N
22403
22404 * config/aarch64/aarch64-elf.h (REGISTER_PREFIX): Remove.
22405 * config/aarch64/aarch64.c (aarch64_print_operand): Remove all
22406 occurrence of REGISTER_PREFIX as its empty string.
22407
4f1f78b9
JL
224082013-03-20 Jeff Law <law@redhat.com>
22409
22410 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Record
22411 addititional equivalences for equality comparisons between an SSA_NAME
22412 and a constant where the SSA_NAME was set from a widening conversion.
22413
327a1118
WL
224142013-03-20 Walter Lee <walt@tilera.com>
22415
22416 * config/tilegx/sync.md (atomic_test_and_set): New pattern.
22417
813e0036
UB
224182013-03-20 Uros Bizjak <ubizjak@gmail.com>
22419
22420 * config/i386/i386.md (*movoi_internal_avx): Emit insn template
22421 depending on type attribute.
22422 (*movti_internal): Ditto.
22423 (*movtf_internal): Ditto.
22424 (*movxf_internal): Ditto.
22425 (*movdf_internal): Ditto.
22426 (*movsf_internal): Ditto.
22427
7cf34aae
UB
224282013-03-20 Uros Bizjak <ubizjak@gmail.com>
22429
22430 * config/i386/i386.md (*movti_internal): Set prefix attribute to
22431 maybe_vex for sselog1 and ssemov types.
22432 (*movdi_internal): Reorder operand constraints.
22433 (*movsi_internal): Ditto. Set prefix attribute to
22434 maybe_vex for sselog1 and ssemov types.
22435 (*movtf_internal): Set prefix attribute to maybe_vex
22436 for sselog1 and ssemov types.
22437 (*movdf_internal): Ditto. Set prefix_data16 attribute for
22438 DImode ssemov types. Reorder operand constraints.
22439 (*movsf_internal): Set type of alternatives 3,4 to imov. Set prefix
22440 attribute to maybe_vex for sselog1 and ssemov types. Set prefix_data16
22441 attribute for SImode ssemov types. Reorder operand constraints.
22442
19321415
MJ
224432013-03-20 Martin Jambor <mjambor@suse.cz>
22444
22445 * params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): New parameter.
22446 * ipa-cp.c (hint_time_bonus): Add abonus for known array indices.
22447
12211b99 224482013-03-20 Pat Haugen <pthaugen@us.ibm.com>
c6d5ff83
MM
22449
22450 * config/rs6000/predicates.md (indexed_address, update_address_mem
22451 update_indexed_address_mem): New predicates.
22452 * config/rs6000/vsx.md (vsx_extract_<mode>_zero): Set correct "type"
22453 attribute for load/store instructions.
22454 * config/rs6000/dfp.md (movsd_store): Likewise.
22455 (movsd_load): Likewise.
22456 * config/rs6000/rs6000.md (zero_extend<mode>di2_internal1): Likewise.
22457 (unnamed HI->DI extend define_insn): Likewise.
22458 (unnamed SI->DI extend define_insn): Likewise.
22459 (unnamed QI->SI extend define_insn): Likewise.
22460 (unnamed QI->HI extend define_insn): Likewise.
22461 (unnamed HI->SI extend define_insn): Likewise.
22462 (unnamed HI->SI extend define_insn): Likewise.
22463 (extendsfdf2_fpr): Likewise.
22464 (movsi_internal1): Likewise.
22465 (movsi_internal1_single): Likewise.
22466 (movhi_internal): Likewise.
22467 (movqi_internal): Likewise.
22468 (movcc_internal1): Correct mnemonic for stw insn. Set correct "type"
22469 attribute for load/store instructions.
22470 (mov<mode>_hardfloat): Set correct "type" attribute for load/store
22471 instructions.
22472 (mov<mode>_softfloat): Likewise.
22473 (mov<mode>_hardfloat32): Likewise.
22474 (mov<mode>_hardfloat64): Likewise.
22475 (mov<mode>_softfloat64): Likewise.
22476 (movdi_internal32): Likewise.
22477 (movdi_internal64): Likewise.
22478 (probe_stack_<mode>): Likewise.
22479
224802013-03-20 Michael Meissner <meissner@linux.vnet.ibm.com>
22481
22482 * config/rs6000/vector.md (VEC_R): Add 32-bit integer, binary
22483 floating point, and decimal floating point to reload iterator.
22484
22485 * config/rs6000/constraints.md (wl constraint): New constraints to
22486 return FLOAT_REGS if certain options are used to reduce the number
22487 of separate patterns that exist in the file.
22488 (wx constraint): Likewise.
22489 (wz constraint): Likewise.
22490
22491 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
22492 -mdebug=reg, print wg, wl, wx, and wz constraints.
22493 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
22494 Initialize the reload functions for 64-bit binary/decimal floating
22495 point types.
22496 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
22497 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
22498 create the buffer on the stack to overcome not having a 32-bit
22499 load and store.
22500 (rs6000_emit_move): Likewise.
22501 (rs6000_secondary_memory_needed_rtx): Likewise.
22502 (rs6000_alloc_sdmode_stack_slot): Likewise.
22503 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
22504 via xxlxor, just like DFmode 0.0.
22505
22506 * config/rs6000/rs6000.h (TARGET_NO_SDMODE_STACK): New macro,
22507 define as 1 if we are running on a power7 or newer.
22508 (enum r6000_reg_class_enum): Add new constraints.
22509
22510 * config/rs6000/dfp.md (movsd): Delete, combine with binary
22511 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
22512 with other moves by using conditional constraits (wg). Use LFIWZX
bd059b26 22513 and STFIWX for loading SDmode on power7. Use xxlxor to create 0.0f.
c6d5ff83
MM
22514 (movsd splitter): Likewise.
22515 (movsd_hardfloat): Likewise.
22516 (movsd_softfloat): Likewise.
22517
22518 * config/rs6000/rs6000.md (FMOVE32): New iterators to combine
22519 binary and decimal floating point moves.
22520 (fmove_ok): New attributes to combine binary and decimal floating
22521 point moves, and to combine power6x (mfpgpr) moves along normal
22522 floating moves.
22523 (real_value_to_target): Likewise.
22524 (f32_lr): Likewise.
22525 (f32_lm): Likewise.
22526 (f32_li): Likewise.
22527 (f32_sr): Likewise.
22528 (f32_sm): Likewise.
22529 (f32_si): Likewise.
22530 (movsf): Combine binary and decimal floating point moves. Combine
22531 power6x (mfpgpr) moves with other moves by using conditional
bd059b26 22532 constraits (wg). Use LFIWZX and STFIWX for loading SDmode on power7.
c6d5ff83
MM
22533 (mov<mode> for SFmode/SDmode); Likewise.
22534 (SFmode/SDmode splitters): Likewise.
22535 (movsf_hardfloat): Likewise.
22536 (mov<mode>_hardfloat for SFmode/SDmode): Likewise.
22537 (movsf_softfloat): Likewise.
22538 (mov<mode>_softfloat for SFmode/SDmode): Likewise.
22539
22540 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wl,
22541 wx and wz constraints.
22542
22543 * config/rs6000/constraints.md (wg constraint): New constraint to
22544 return FLOAT_REGS if -mmfpgpr (power6x) was used.
22545
22546 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wg
22547 constraint.
22548
22549 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
22550 -mdebug=reg, print wg, wl, wx, and wz constraints.
22551 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
22552 Initialize the reload functions for 64-bit binary/decimal floating
22553 point types.
22554 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
22555 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
22556 create the buffer on the stack to overcome not having a 32-bit
22557 load and store.
22558 (rs6000_emit_move): Likewise.
22559 (rs6000_secondary_memory_needed_rtx): Likewise.
22560 (rs6000_alloc_sdmode_stack_slot): Likewise.
22561 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
22562 via xxlxor, just like DFmode 0.0.
22563
c6d5ff83
MM
22564 * config/rs6000/dfp.md (movdd): Delete, combine with binary
22565 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
22566 with other moves by using conditional constraits (wg). Use LFIWZX
22567 and STFIWX for loading SDmode on power7.
22568 (movdd splitters): Likewise.
22569 (movdd_hardfloat32): Likewise.
22570 (movdd_softfloat32): Likewise.
22571 (movdd_hardfloat64_mfpgpr): Likewise.
22572 (movdd_hardfloat64): Likewise.
22573 (movdd_softfloat64): Likewise.
22574
22575 * config/rs6000/rs6000.md (FMOVE64): New iterators to combine
22576 64-bit binary and decimal floating point moves.
22577 (FMOVE64X): Likewise.
22578 (movdf): Combine 64-bit binary and decimal floating point moves.
22579 Combine power6x (mfpgpr) moves with other moves by using
22580 conditional constraits (wg).
22581 (mov<mode> for DFmode/DDmode): Likewise.
22582 (DFmode/DDmode splitters): Likewise.
22583 (movdf_hardfloat32): Likewise.
22584 (mov<mode>_hardfloat32 for DFmode/DDmode): Likewise.
22585 (movdf_softfloat32): Likewise.
22586 (movdf_hardfloat64_mfpgpr): Likewise.
22587 (movdf_hardfloat64): Likewise.
22588 (mov<mode>_hardfloat64 for DFmode/DDmode): Likewise.
22589 (movdf_softfloat64): Likewise.
22590 (mov<mode>_softfloat64 for DFmode/DDmode): Likewise.
22591 (reload_<mode>_load): Move to later in the file so they aren't in
22592 the middle of the floating point move insns.
22593 (reload_<mode>_store): Likewise.
22594
22595 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wg
22596 constraint.
22597
22598 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print out wg
22599 constraint if -mdebug=reg.
bd059b26
UB
22600 (rs6000_initi_hard_regno_mode_ok): Enable wg constraint if -mfpgpr.
22601 Enable using dd reload support if needed.
c6d5ff83
MM
22602
22603 * config/rs6000/dfp.md (movtd): Delete, combine with 128-bit
22604 binary and decimal floating point moves in rs6000.md.
22605 (movtd_internal): Likewise.
22606
22607 * config/rs6000/rs6000.md (FMOVE128): Combine 128-bit binary and
22608 decimal floating point moves.
22609 (movtf): Likewise.
22610 (movtf_internal): Likewise.
22611 (mov<mode>_internal, TDmode/TFmode): Likewise.
22612 (movtf_softfloat): Likewise.
22613 (mov<mode>_softfloat, TDmode/TFmode): Likewise.
22614
22615 * config/rs6000/rs6000.md (movdi_mfpgpr): Delete, combine with
22616 movdi_internal64, using wg constraint for move direct operations.
22617 (movdi_internal64): Likewise.
22618
22619 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print
22620 MODES_TIEABLE_P for selected modes. Print the numerical value of
22621 the various virtual registers. Use GPR/FPR first/last values,
22622 instead of hard coding the register numbers. Print which modes
22623 have reload functions registered.
bd059b26
UB
22624 (rs6000_option_override_internal): If -mdebug=reg, trace the options
22625 settings before/after setting cpu, target and subtarget settings.
22626 (rs6000_secondary_reload_trace): Improve the RTL dump for -mdebug=addr
22627 and for secondary reload failures in rs6000_secondary_reload_inner.
c6d5ff83
MM
22628 (rs6000_secondary_reload_fail): Likewise.
22629 (rs6000_secondary_reload_inner): Likewise.
22630
22631 * config/rs6000/rs6000.md (FIRST_GPR_REGNO): Add convenience
22632 macros for first/last GPR and FPR registers.
22633 (LAST_GPR_REGNO): Likewise.
22634 (FIRST_FPR_REGNO): Likewise.
22635 (LAST_FPR_REGNO): Likewise.
22636
22637 * config/rs6000/vector.md (mul<mode>3): Use the combined macro
22638 VECTOR_UNIT_ALTIVEC_OR_VSX_P instead of separate calls to
22639 VECTOR_UNIT_ALTIVEC_P and VECTOR_UNIT_VSX_P.
22640 (vcond<mode><mode>): Likewise.
22641 (vcondu<mode><mode>): Likewise.
22642 (vector_gtu<mode>): Likewise.
22643 (vector_gte<mode>): Likewise.
22644 (xor<mode>3): Don't allow logical operations on TImode in 32-bit
bd059b26 22645 to prevent the compiler from converting DImode operations to TImode.
c6d5ff83
MM
22646 (ior<mode>3): Likewise.
22647 (and<mode>3): Likewise.
22648 (one_cmpl<mode>2): Likewise.
22649 (nor<mode>3): Likewise.
22650 (andc<mode>3): Likewise.
22651
22652 * config/rs6000/constraints.md (wt constraint): New constraint
22653 that returns VSX_REGS if TImode is allowed in VSX registers.
22654
22655 * config/rs6000/predicates.md (easy_fp_constant): 0.0f is an easy
22656 constant under VSX.
22657
22658 * config/rs6000/rs6000-modes.def (PTImode): Define, PTImode is
22659 similar to TImode, but it is restricted to being in the GPRs.
22660
22661 * config/rs6000/rs6000.opt (-mvsx-timode): New switch to allow
22662 TImode to occupy a single VSX register.
22663
22664 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Default to
22665 -mvsx-timode for power7/power8.
22666 (power7 cpu): Likewise.
22667 (power8 cpu): Likewise.
22668
22669 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Make
22670 sure that TFmode/TDmode take up two registers if they are ever
22671 allowed in the upper VSX registers.
22672 (rs6000_hard_regno_mode_ok): If -mvsx-timode, allow TImode in VSX
22673 registers.
22674 (rs6000_init_hard_regno_mode_ok): Likewise.
22675 (rs6000_debug_reg_global): Add debugging for PTImode and wt
22676 constraint. Print if LRA is turned on.
22677 (rs6000_option_override_internal): Give an error if -mvsx-timode
22678 and VSX is not enabled.
22679 (invalid_e500_subreg): Handle PTImode, restricting it to GPRs. If
22680 -mvsx-timode, restrict TImode to reg+reg addressing, and PTImode
22681 to reg+offset addressing. Use PTImode when checking offset
22682 addresses for validity.
22683 (reg_offset_addressing_ok_p): Likewise.
22684 (rs6000_legitimate_offset_address_p): Likewise.
22685 (rs6000_legitimize_address): Likewise.
22686 (rs6000_legitimize_reload_address): Likewise.
22687 (rs6000_legitimate_address_p): Likewise.
22688 (rs6000_eliminate_indexed_memrefs): Likewise.
22689 (rs6000_emit_move): Likewise.
22690 (rs6000_secondary_reload): Likewise.
22691 (rs6000_secondary_reload_inner): Handle PTImode. Allow 64-bit
22692 reloads to fpr registers to continue to use reg+offset addressing,
22693 but 64-bit reloads to altivec registers need reg+reg addressing.
22694 Drop test for PRE_MODIFY, since VSX loads/stores no longer support
22695 it. Treat LO_SUM like a PLUS operation.
22696 (rs6000_secondary_reload_class): If type is 64-bit, prefer to use
bd059b26 22697 FLOAT_REGS instead of VSX_RGS to allow use of reg+offset addressing.
c6d5ff83
MM
22698 (rs6000_cannot_change_mode_class): Do not allow TImode in VSX
22699 registers to share a register with a smaller sized type, since VSX
22700 puts scalars in the upper 64-bits.
22701 (print_operand): Add support for PTImode.
22702 (rs6000_register_move_cost): Use VECTOR_MEM_VSX_P instead of
22703 VECTOR_UNIT_VSX_P to catch types that can be loaded in VSX
22704 registers, but don't have arithmetic support.
22705 (rs6000_memory_move_cost): Add test for VSX.
22706 (rs6000_opt_masks): Add -mvsx-timode.
22707
22708 * config/rs6000/vsx.md (VSm): Change to use 64-bit aligned moves
22709 for TImode.
22710 (VSs): Likewise.
22711 (VSr): Use wt constraint for TImode.
22712 (VSv): Drop TImode support.
22713 (vsx_movti): Delete, replace with versions for 32-bit and 64-bit.
22714 (vsx_movti_64bit): Likewise.
22715 (vsx_movti_32bit): Likewise.
22716 (vec_store_<mode>): Use VSX iterator instead of vector iterator.
22717 (vsx_and<mode>3): Delete use of '?' constraint on inputs, just put
22718 one '?' on the appropriate output constraint. Do not allow TImode
22719 logical operations on 32-bit systems.
22720 (vsx_ior<mode>3): Likewise.
22721 (vsx_xor<mode>3): Likewise.
22722 (vsx_one_cmpl<mode>2): Likewise.
22723 (vsx_nor<mode>3): Likewise.
22724 (vsx_andc<mode>3): Likewise.
22725 (vsx_concat_<mode>): Likewise.
22726 (vsx_xxpermdi_<mode>): Fix thinko for non V2DF/V2DI modes.
22727
22728 * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Map from
22729 OPTION_MASK_VSX_TIMODE.
22730 (enum rs6000_reg_class_enum): Add RS6000_CONSTRAINT_wt.
22731 (STACK_SAVEAREA_MODE): Use PTImode instead of TImode.
22732
22733 * config/rs6000/rs6000.md (INT mode attribute): Add PTImode.
22734 (TI2 iterator): New iterator for TImode, PTImode.
22735 (wd mode attribute): Add values for vector types.
bd059b26
UB
22736 (movti_string): Replace TI move operations with operations for TImode
22737 and PTImode. Add support for TImode being allowed in VSX registers.
c6d5ff83
MM
22738 (mov<mode>_string, TImode/PTImode): Likewise.
22739 (movti_ppc64): Likewise.
22740 (mov<mode>_ppc64, TImode/PTImode): Likewise.
22741 (TI mode splitters): Likewise.
22742
22743 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wt
22744 constraint.
22745
1fc5eced
MG
227462013-03-20 Marc Glisse <marc.glisse@inria.fr>
22747
22748 PR tree-optimization/56355
22749 * fold-const.c (tree_binary_nonnegative_warnv_p) <MULT_EXPR>:
22750 Also handle integers with undefined overflow.
22751
22c4c869
CM
227522013-03-20 Catherine Moore <clm@codesourcery.com>
22753 Maciej W. Rozycki <macro@codesourcery.com>
22754 Tom de Vries <tom@codesourcery.com>
12211b99 22755 Nathan Sidwell <nathan@codesourcery.com>
22c4c869
CM
22756 Iain Sandoe <iain@codesourcery.com>
22757 Nathan Froyd <froydnj@codesourcery.com>
12211b99 22758 Chao-ying Fu <fu@mips.com>
22c4c869
CM
22759
22760 * doc/extend.texi: (micromips, nomicromips, nocompression):
7cf34aae 22761 Document new function attributes.
22c4c869
CM
22762 * doc/invoke.texi (minterlink-compressed, mmicromips,
22763 m14k, m14ke, m14kec): Document new options.
22764 (minterlink-mips16): Update documentation.
22765 * doc/md.texi (ZC, ZD): Document new constraints.
22766 * configure.ac (gcc_cv_as_micromips): Check if linker
22767 supports the .set micromips directive.
22768 * configure: Regenerate.
22769 * config.in: Regenerate.
22770 * config/mips/mips-tables.opt: Regenerate.
22771 * config/mips/micromips.md: New file.
22772 * constraints.md (ZC, ZD): New constraints.
22773 * config/mips/predicates.md (movep_src_register): New predicate.
22774 (movep_src_operand): New predicate.
22775 (non_volatile_mem_operand): New predicate.
22776 * config/mips/mips.md (multimem): New type.
22777 (length): Differentiate between 17-bit and 18-bit branch offsets.
22778 (MOVEP1, MOVEP2): New mode iterator.
33159866 22779 (mov_<load>l): Use ZC constraint.
22c4c869
CM
22780 (mov_<load>r): Likewise.
22781 (mov_<store>l): Likewise.
22782 (mov_<store>r): Likewise.
22783 (*branch_equality<mode>_inverted): Add microMIPS support.
22784 (*branch_equality<mode>): Likewise.
22785 (*jump_absolute): Likewise.
22786 (indirect_jump_<mode>): Likewise.
22787 (tablejump_<mode>): Likewise.
22788 (<optab>_internal): Likewise.
22789 (sibcall_internal): Likewise.
22790 (sibcall_value_internal): Likewise.
22791 (prefetch): Use constraint ZD.
22792 * config/mips/mips.opt (minterlink-compressed): New option.
22793 (minterlink-mips16): Now an alias for minterlink-compressed.
22794 (mmicromips): New option.
22795 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
22796 (compare_and_swap_12): Likewise.
22797 (sync_add<mode>): Likewise.
22798 (sync_<optab>_12): Likewise.
22799 (sync_old_<optab>_12): Likewise.
22800 (sync_new_<optab>_12): Likewise.
22801 (sync_nand_12): Likewise.
22802 (sync_old_nand_12): Likewise.
22803 (sync_new_nand_12): Likewise.
22804 (sync_sub<mode>): Likewise.
22805 (sync_old_add<mode>): Likewise.
22806 (sync_old_sub<mode>): Likewise.
22807 (sync_new_add<mode>): Likewise.
22808 (sync_new_sub<mode>): Likewise.
22809 (sync_<optab><mode>): Likewise.
22810 (sync_old_<optab><mode>): Likewise.
22811 (sync_new_<optab><mode>): Likewise.
22812 (sync_nand<mode>): Likewise.
22813 (sync_old_nand<mode>): Likewise.
22814 (sync_new_nand<mode>): Likewise.
22815 (sync_lock_test_and_set<mode>): Likewise.
22816 (test_and_set_12): Likewise.
22817 (atomic_compare_and_swap<mode>): Likewise.
22818 (atomic_exchange<mode>_llsc): Likewise.
22819 (atomic_fetch_add<mode>_llsc): Likewise.
22820 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
22821 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
22822 (umips_save_restore_pattern_p): Likewise.
22823 (umips_load_store_pair_p): Likewise.
22824 (umips_output_load_store_pair): Likewise.
22825 (umips_movep_target_p): Likewise.
22826 (umips_12bit_offset_address_p): Likewise.
22827 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
22828 (mips_base_mips16): Rename this...
22829 (mips_base_compression_flags): ...to this. Update all uses.
22830 (mips_attribute_table): Add micromips, nomicromips and nocompression.
22831 (mips_mips16_decl_p): Delete.
22832 (mips_nomips16_decl_p): Delete.
33159866 22833 (mips_get_compress_on_flags): New function.
22c4c869
CM
22834 (mips_get_compress_off_flags): New function.
22835 (mips_get_compress_mode): New function.
22836 (mips_get_compress_on_name): New function.
22837 (mips_get_compress_off_name): New function.
22838 (mips_insert_attributes): Support multiple compression types.
22839 (mips_merge_decl_attributes): Likewise.
22840 (umips_12bit_offset_address_p): New function.
22841 (mips_start_function_definition): Emit .set micromips directive.
22842 (mips_call_may_need_jalx_p): New function.
22843 (mips_function_ok_for_sibcall): Add microMIPS support.
22844 (mips_print_operand_punctuation): Support short delay slots and
22845 compact jumps.
22846 (umips_swm_mask, umips_swm_encoding): New.
22847 (umips_build_save_restore): New function.
22848 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
22849 (was_mips16_p): Remove.
22850 (old_compression_mode): New.
22851 (mips_set_compression_mode): New function.
22852 (mips_set_current_function): Add microMIPS support.
22853 (mips_option_override): Likewise.
22854 (umips_save_restore_pattern_p): New function.
22855 (umips_output_save_restore): New function.
22856 (umips_load_store_pair_p_1): New function.
22857 (umips_load_store_pair_p): New function.
22858 (umips_output_load_store_pair_1): New function.
22859 (umips_output_load_store_pair): New function.
22860 (umips_movep_target_p) New function.
22861 (mips_prepare_pch_save): Add microMIPS support.
22862 * config/mips/mips.h (TARGET_COMPRESSION): New.
22863 (TARGET_CPU_CPP_BUILTINS): Update macro
22864 to use new compression flags and to support microMIPS.
22865 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
22866 (MIPS_ARCH_FLOAT_SPEC): Likewise.
22867 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
22868 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
22869 (ASM_SPEC): Support mmicromips and mno-micromips.
22870 (M16STORE_REG_P): New macro.
22871 (MIPS_CALL): Support TARGET_MICROMIPS.
22872 (MICROMIPS_J): New macro.
22873 (mips_base_mips16): Rename this...
22874 (mips_base_compression_flags): ...to this.
22875 (UMIPS_12BIT_OFFSET_P): New macro.
22876 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
22877 (MULTILIB_DIRNAMES): Likewise.
92a8d7a7
RB
228782013-03-20 Richard Biener <rguenther@suse.de>
22879
22880 PR tree-optimization/56661
22881 * tree-ssa-sccvn.c (visit_use): Only value-number calls if
22882 the result does not have to be distinct.
22883
54714c68
RB
228842013-03-20 Richard Biener <rguenther@suse.de>
22885
22886 * tree-inline.c (copy_tree_body_r): Sync MEM_REF code with
22887 remap_gimple_op_r.
22888
cca1130d 228892013-03-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 22890 Steven Bosscher <steven@gcc.gnu.org>
cca1130d
BS
22891
22892 PR rtl-optimization/56605
22893 * loop-iv.c (implies_p): Handle equal RTXs and subregs.
22894
2a930377
UB
228952013-03-20 Uros Bizjak <ubizjak@gmail.com>
22896
22897 PR bootstrap/56656
22898 * config/i386/i386.md (*movdi_internal): Handle broken assemblers
22899 that require movd instead of movq.
22900
d6d305fe
RB
229012013-03-20 Richard Biener <rguenther@suse.de>
22902
22903 * tree-ssa-structalias.c (struct variable_info): Add pointer
22904 to the first field of an aggregate with sub-vars. Make
22905 this and the pointer to the next subfield its ID.
22906 (vi_next): New function.
22907 (nothing_id, anything_id, readonly_id, escaped_id, nonlocal_id,
22908 storedanything_id, integer_id): Increment by one.
22909 (new_var_info, get_call_vi, lookup_call_clobber_vi,
22910 get_call_clobber_vi): Adjust.
22911 (solution_set_expand): Simplify and speedup.
22912 (solution_set_add): Inline into ...
22913 (set_union_with_increment): ... this. Adjust accordingly.
22914 (do_sd_constraint): Likewise.
22915 (do_ds_constraint): Likewise.
22916 (do_complex_constraint): Simplify.
22917 (build_pred_graph): Adjust.
22918 (solve_graph): Likewise. Simplify and speedup.
22919 (get_constraint_for_ssa_var, get_constraint_for_ptr_offset,
22920 get_constraint_for_component_ref, get_constraint_for_1,
22921 first_vi_for_offset, first_or_preceding_vi_for_offset,
22922 create_function_info_for, create_variable_info_for_1,
22923 create_variable_info_for, intra_create_variable_infos): Adjust.
22924 (init_base_vars): Push NULL for ID zero.
22925 (compute_points_to_sets): Adjust.
22926
a271b42d
RB
229272013-03-20 Richard Biener <rguenther@suse.de>
22928
22929 * cfgloop.c (verify_loop_structure): Streamline and avoid
22930 ICEing on corrupt loop tree.
22931 * graph.c (draw_cfg_nodes_for_loop): Avoid ICEing on corrupt
22932 loop tree.
22933
ebd65954
RB
229342013-03-20 Richard Biener <rguenther@suse.de>
22935
22936 * tree-vect-loop-manip.c (slpeel_can_duplicate_loop_p): Do not
22937 check whether an SSA update is needed.
22938
4547b7ee
RS
229392013-03-20 Richard Sandiford <rdsandiford@googlemail.com>
22940
22941 * config/mips/constraints.md (T): Rename to...
22942 (Yf): ...this.
22943 (U): Rename to...
22944 (Yd): ...this.
22945 * config/mips/mips.md (*movdi_64bit, *movdi_64bit_mips16)
22946 (*mov<mode>_internal, *mov<mode>_mips16): Update accordingly.
22947
0b8cdc58
IB
229482013-03-19 Ian Bolton <ian.bolton@arm.com>
22949
22950 * config/aarch64/aarch64.md (*sub<mode>3_carryin): New pattern.
22951 (*subsi3_carryin_uxtw): Likewise.
22952
5977a10d
IB
229532013-03-19 Ian Bolton <ian.bolton@arm.com>
22954
22955 * config/aarch64/aarch64.md (*ror<mode>3_insn): New pattern.
22956 (*rorsi3_insn_uxtw): Likewise.
22957
bd83ff2c
IB
229582013-03-19 Ian Bolton <ian.bolton@arm.com>
22959
22960 * config/aarch64/aarch64.md (*extr<mode>5_insn): New pattern.
22961 (*extrsi5_insn_uxtw): Likewise.
22962
ba65123c
RB
229632013-03-19 Richard Biener <rguenther@suse.de>
22964
22965 PR tree-optimization/56273
22966 * passes.c (init_optimization_passes): Move second VRP after DOM.
22967
2eac0476
UB
229682013-03-19 Uros Bizjak <ubizjak@gmail.com>
22969
22970 * config/i386/i386.md (*movti_internal): Merge from
22971 *movti_internal_rex64 and *movti_internal_sse. Use x64 isa attribute.
22972 (*movdi_internal): Merge with *movdi_internal_rex64. Use x64 and
22973 nox64 isa attributes.
22974
6e55eda7
RB
229752013-03-18 Richard Biener <rguenther@suse.de>
22976
22977 * tree-ssa-structalias.c (find): Use gcc_checking_assert.
22978 (unite): Likewise.
22979 (merge_node_constraints): Likewise.
22980 (build_succ_graph): Likewise.
22981 (valid_graph_edge): Inline into single caller.
22982 (unify_nodes): Likewise. Use bitmap_set_bit return value
22983 and cache varinfo.
22984 (scc_visit): Fix formatting and variable use.
22985 (do_sd_constraint): Use gcc_checking_assert.
22986 (do_ds_constraint): Likewise.
22987 (do_complex_constraint): Likewise.
22988 (condense_visit): Likewise. Cleanup.
22989 (dump_pred_graph): New function.
22990 (perform_var_substitution): Dump the pred-graph before
22991 variable substitution.
22992 (find_equivalent_node): Use gcc_checking_assert.
22993 (rewrite_constraints): Guard checking loop with ENABLE_CHECKING.
22994
4bdd44c4
RB
229952013-03-18 Richard Biener <rguenther@suse.de>
22996
22997 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
22998 Remove cond_expr_stmt_list argument and do not gimplify the
22999 built expression.
23000 (vect_loop_versioning): Adjust.
23001 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
23002 Cleanup to use less temporaries.
23003 (vect_create_data_ref_ptr): Cleanup.
23004
38c56a5b
JJ
230052013-03-18 Jakub Jelinek <jakub@redhat.com>
23006
23007 PR tree-optimization/56635
23008 * fold-const.c (operand_equal_p): For MEM_REF and TARGET_MEM_REF,
23009 require types_compatible_p types.
23010
20b2e6a0
NC
230112013-03-18 Nick Clifton <nickc@redhat.com>
23012
a6178a25
NC
23013 * config/stormy16/stormy16.c (xstormy16_expand_prologue): Remove
23014 spurious backslash.
23015
20b2e6a0
NC
23016 * config/mn10300/mn10300.c (mn10300_get_live_callee_saved_regs):
23017 Add missing line to comment describing function.
23018
92608d0e
RB
230192013-03-18 Richard Biener <rguenther@suse.de>
23020
23021 PR tree-optimization/56210
23022 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
23023 Handle string / character search functions.
23024 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
23025
31348d52
RB
230262013-03-18 Richard Biener <rguenther@suse.de>
23027
23028 PR middle-end/56483
23029 * cfgexpand.c (expand_gimple_cond): Inline gimple_cond_single_var_p
23030 and implement properly.
23031 * gimple.h (gimple_cond_single_var_p): Remove.
23032
fcac74a1
RB
230332013-03-18 Richard Biener <rguenther@suse.de>
23034
23035 * tree-data-ref.h (find_data_references_in_loop): Declare.
23036 * tree-data-ref.c (get_references_in_stmt): Use a stack
23037 vector pre-allocated in the callers.
23038 (find_data_references_in_stmt): Adjust.
23039 (graphite_find_data_references_in_stmt): Likewise.
23040 (create_rdg_vertices): Likewise.
23041 (find_data_references_in_loop): Export.
23042 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
23043 Compute dependences here...
23044 (vect_analyze_data_refs): ...not here. When we encounter
23045 a non-vectorizable data reference in basic-block vectorization
23046 truncate the data reference vector. Do not bother to
23047 fixup data-dependence information for gather loads.
23048 * tree-vect-slp.c (vect_slp_analyze_bb_1): Check the number
23049 of data references, as reported.
23050
0d5a1b56
RB
230512013-03-18 Richard Biener <rguenther@suse.de>
23052
23053 PR tree-optimization/3713
23054 * tree-ssa-sccvn.c (visit_copy): Simplify. Always propagate
23055 has_constants and expr.
23056 (stmt_has_constants): Properly valueize SSA names when deciding
23057 whether the stmt has constants.
23058
789c34e3
RB
230592013-03-18 Richard Biener <rguenther@suse.de>
23060
23061 * tree-ssa-loop-manip.c (find_uses_to_rename): Do not scan the
23062 whole function when there is nothing to do.
23063 * tree-ssa-loop.c (pass_vectorize): Remove TODO_update_ssa.
23064 * tree-vectorizer.c (vectorize_loops): Update virtual and
23065 loop-closed SSA once.
23066 * tree-vect-loop.c (vect_transform_loop): Do not update SSA here.
23067
076b4605
RB
230682013-03-18 Richard Biener <rguenther@suse.de>
23069
23070 PR middle-end/56113
23071 * domwalk.c (bb_postorder): New global static.
23072 (cmp_bb_postorder): New function.
23073 (walk_dominator_tree): Replace scheme imposing an order for
23074 visiting dominator sons by one sorting them at the time they
23075 are pushed on the stack.
23076
bdb01696
RB
230772013-03-18 Richard Biener <rguenther@suse.de>
23078
23079 PR tree-optimization/39326
23080 * tree-ssa-loop-im.c (refs_independent_p): Exploit symmetry.
23081 (struct mem_ref): Replace mem member with ao_ref typed member.
23082 (MEM_ANALYZABLE): Adjust.
23083 (memref_eq): Likewise.
23084 (mem_ref_alloc): Likewise.
23085 (gather_mem_refs_stmt): Likewise.
23086 (mem_refs_may_alias_p): Use the ao_ref to query the alias oracle.
23087 (execute_sm_if_changed_flag_set): Adjust.
23088 (execute_sm): Likewise.
23089 (ref_always_accessed_p): Likewise.
23090 (refs_independent_p): Likewise.
23091 (can_sm_ref_p): Likewise.
23092
12d2dc5e
JJ
230932013-03-18 Jakub Jelinek <jakub@redhat.com>
23094
23095 PR c/56566
23096 * tree.c (tree_int_cst_min_precision): For integer_zerop (value)
23097 return 1 even for !unsignedp.
23098
286fb677
UB
230992013-03-17 Uros Bizjak <ubizjak@gmail.com>
23100
23101 * config/i386/i386.md (isa): Add x64 and nox64.
23102 (enabled): Define x64 for TARGET_64BIT and nox64 for !TARGET_64BIT.
23103 (*pushtf): Enable *roF alternative for x64 isa only.
23104 (*pushxf): Merge with *pushxf_nointeger. Use Yx*r constraint. Set
23105 mode attribute of integer alternatives to DImode for TARGET_64BIT.
23106 (*pushdf): Merge with *pushdf_rex64. Use x64 and nox64 isa attributes.
23107 (*movtf_internal): Merge from *movtf_internal_rex64 and
23108 *movtf_internal_sse. Use x64 and nox64 isa attributes.
23109 (*movxf_internal): Merge with *movxf_internal_rex64. Use x64 and
23110 nox64 isa attributes.
23111 (*movdf_internal): Merge with *movdf_internal_rex64. Use x64 and
23112 nox64 isa attributes.
23113 * config/i386/constraints.md (Yd): Do not set for TARGET_64BIT.
23114
88b97037
UB
231152013-03-17 Uros Bizjak <ubizjak@gmail.com>
23116
23117 * config/alpha/alpha.c (TARGET_LRA_P): New define.
23118
9f4f1735
JJ
231192013-03-17 Jakub Jelinek <jakub@redhat.com>
23120
23121 PR target/56640
23122 * config/arm/arm.h (REG_CLASS_NAMES): Add "SFP_REG" and "AFP_REG"
23123 class names. Remove trailing comma after "ALL_REGS".
23124
48f4a6fa
JH
231252013-03-16 Jan Hubicka <jh@suse.cz>
23126
23127 * cgraph.h (cgraph_get_create_real_symbol_node): Declare.
23128 * cgraph.c (cgraph_get_create_real_symbol_node): New function.
23129 * cgrpahbuild.c: Use cgraph_get_create_real_symbol_node instead
23130 of cgraph_get_create_node.
23131 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
23132
98e81123
JM
231332013-03-16 Jason Merrill <jason@redhat.com>
23134
23135 PR debug/49090
23136 * dwarf2out.c (gen_generic_params_dies): Indicate default arguments
23137 with DW_AT_default_value.
23138
8a298c04
JJ
231392013-03-16 Jakub Jelinek <jakub@redhat.com>
23140
23141 * BASE-VER: Set to 4.9.0.
23142
4323afa0
AK
231432013-03-14 Andi Kleen <ak@linux.intel.com>
23144
23145 PR target/56619
23146 * doc/extend.texi: Document __ATOMIC_HLE_ACQUIRE,
23147 __ATOMIC_HLE_RELEASE. Document __builtin_ia32 TSX intrincs.
23148 Document _x* TSX intrinsics.
23149
b3c0d469
JJ
231502013-03-14 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
23151 David Holsgrove <david.holsgrove@xilinx.com>
8cc9a5a5
EI
23152
23153 * configure.ac: Add MicroBlaze TLS support detection.
23154 * configure: Regenerate.
88b97037
UB
23155 * config/microblaze/microblaze-protos.h
23156 (microblaze_cannot_force_const_mem, microblaze_tls_referenced_p,
23157 symbol_mentioned_p, label_mentioned_p): Add prototypes.
23158 * config/microblaze/microblaze.c (microblaze_address_type): Add
23159 ADDRESS_TLS and tls_reloc address types.
8cc9a5a5
EI
23160 (microblaze_address_info): Add tls_reloc.
23161 (TARGET_HAVE_TLS): Define.
23162 (get_tls_get_addr, microblaze_tls_symbol_p, microblaze_tls_operand_p_1,
23163 microblaze_tls_referenced_p, microblaze_cannot_force_const_mem,
88b97037
UB
23164 symbol_mentioned_p, label_mentioned_p, tls_mentioned_p,
23165 load_tls_operand, microblaze_call_tls_get_addr,
23166 microblaze_legitimize_tls_address): New functions.
8cc9a5a5
EI
23167 (microblaze_classify_unspec): Handle UNSPEC_TLS.
23168 (get_base_reg): Use microblaze_tls_symbol_p.
23169 (microblaze_classify_address): Handle TLS.
88b97037
UB
23170 (microblaze_legitimate_pic_operand): Use symbol_mentioned_p,
23171 label_mentioned_p and microblaze_tls_referenced_p.
8cc9a5a5
EI
23172 (microblaze_legitimize_address): Handle TLS.
23173 (microblaze_address_insns): Handle ADDRESS_TLS.
23174 (pic_address_needs_scratch): Handle TLS.
23175 (print_operand_address): Handle TLS.
23176 (microblaze_expand_prologue): Check TLS_NEEDS_GOT.
23177 (microblaze_expand_move): Handle TLS.
88b97037
UB
23178 (microblaze_legitimate_constant_p): Check
23179 microblaze_cannot_force_const_mem and microblaze_tls_symbol_p.
8cc9a5a5
EI
23180 (TARGET_CANNOT_FORCE_CONST_MEM): Define.
23181 * config/microblaze/microblaze.h (TLS_NEEDS_GOT): Define
23182 (PIC_OFFSET_TABLE_REGNUM): Set.
23183 * config/microblaze/linux.h (TLS_NEEDS_GOT): Define.
23184 * config/microblaze/microblaze.md (UNSPEC_TLS): Define.
23185 (addsi3, movsi_internal2, movdf_internal): Update constraints
23186 * config/microblaze/predicates.md (arith_plus_operand): Define
88b97037
UB
23187 (move_operand): Redefine as move_src_operand,
23188 check microblaze_tls_referenced_p.
8cc9a5a5 23189
d803a491
IB
231902013-03-14 Ian Bolton <ian.bolton@arm.com>
23191
23192 * config/aarch64/aarch64.md: (*and<mode>3nr_compare0): Use CC_NZ.
23193 (*and_<SHIFT:optab><mode>3nr_compare0): Likewise.
23194
a8504f22
IB
231952013-03-14 Ian Bolton <ian.bolton@arm.com>
23196
23197 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return correct
23198 CC mode for AND.
23199
df2dfaea
JJ
232002013-03-14 Jakub Jelinek <jakub@redhat.com>
23201
fbd28bc3
JJ
23202 PR tree-optimization/53265
23203 * common.opt (Waggressive-loop-optimizations): New option.
23204 * tree-ssa-loop-niter.c: Include tree-pass.h.
23205 (do_warn_aggressive_loop_optimizations): New function.
23206 (record_estimate): Call it. Don't add !is_exit bounds to loop->bounds
23207 if number_of_latch_executions returned constant.
23208 (estimate_numbers_of_iterations_loop): Call number_of_latch_executions
23209 early. If number_of_latch_executions returned constant, set
23210 nb_iterations_upper_bound back to it.
23211 * cfgloop.h (struct loop): Add warned_aggressive_loop_optimizations
23212 field.
23213 * Makefile.in (tree-ssa-loop-niter.o): Depend on $(TREE_PASS_H).
23214 * doc/invoke.texi (-Wno-aggressive-loop-optimizations): Document.
23215
df2dfaea
JJ
23216 * config/aarch64/t-aarch64-linux (MULTARCH_DIRNAME): Remove.
23217 (MULTILIB_OSDIRNAMES): Set.
23218 * genmultilib: If defaultosdirname doesn't start with :: , set
23219 defaultosdirname2 instead, clear it and emit two . multilib_raw
23220 entries instead of just one.
23221
ee0d2b68
KK
232222013-03-14 Kaz Kojima <kkojima@gcc.gnu.org>
23223
23224 * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_USERMODE.
23225 (SUBTARGET_OVERRIDE_OPTIONS): Set TARGET_USERMODE as default.
23226 * config/sh/netbsd-elf.h (TARGET_DEFAULT): Remove MASK_USERMODE.
23227 (SUBTARGET_OVERRIDE_OPTIONS): New.
23228
decc676e
OE
232292013-03-13 Oleg Endo <olegendo@gcc.gnu.org>
23230
23231 PR target/49880
23232 * config/sh/sh.opt (FPU_SINGLE_ONLY): New mask.
23233 (musermode): Convert to Var(TARGET_USERMODE).
23234 * config/sh/sh.h (SELECT_SH2A_SINGLE_ONLY, SELECT_SH4_SINGLE_ONLY,
23235 MASK_ARCH): Add MASK_FPU_SINGLE_ONLY.
23236 * config/sh/sh.c (sh_option_override): Use
23237 TARGET_FPU_DOUBLE || TARGET_FPU_SINGLE_ONLY for call-fp case.
23238 * config/sh/sh.md (udivsi3_i1, divsi3_i1): Remove ! TARGET_SH4
23239 condition.
23240 (udivsi3_i4, divsi3_i4): Use TARGET_FPU_DOUBLE condition instead of
23241 TARGET_SH4.
23242 (udivsi3_i4_single, divsi3_i4_single): Use
23243 TARGET_FPU_SINGLE_ONLY || TARGET_FPU_DOUBLE instead of TARGET_HARD_SH4.
23244
f4b719c7
DK
232452013-03-13 Dave Korn <dave.korn.cygwin@....>
23246
23247 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): Make shared libgcc the
23248 default setting.
23249
c40eced0
RB
232502013-03-13 Richard Biener <rguenther@suse.de>
23251
23252 PR tree-optimization/56608
23253 * tree-vect-slp.c (vect_schedule_slp): Do not remove scalar
23254 calls when vectorizing basic-blocks.
23255
1bfa5973
JJ
232562013-03-13 Jakub Jelinek <jakub@redhat.com>
23257
23258 PR plugins/45078
23259 * config.gcc: On arm, mips, sh and sparc add vxworks-dummy.h to
23260 tm_file.
23261
6fcf5434
JJ
232622013-03-12 Jakub Jelinek <jakub@redhat.com>
23263
23264 * doc/invoke.texi (-Waddr-space-convert): Move into the table earlier.
23265
4f38fa8c
JH
232662013-03-11 Jan Hubicka <jh@suse.cz>
23267
23268 PR lto/56557
23269 * lto-streamer-out.c (output_symbol_p): Skip references from
23270 constructors of external variables.
23271
c5c5ba89
JH
232722013-03-11 Jan Hubicka <jh@suse.cz>
23273
23274 PR middle-end/56571
23275 * valtrack.c (cleanup_auto_inc_dec): Unshare clobbers originating
23276 from pseudos.
23277 * emit-rtl.c (verify_rtx_sharing): Likewise.
23278 (copy_insn_1): Likewise.
23279 * rtl.c (copy_rtx): Likewise.
23280
c2a939b1
GJL
232812013-03-11 Georg-Johann Lay <avr@gjlay.de>
23282
23283 PR target/56591
23284 * config/avr/avr.c (avr_print_operand): Add space after '%c' in
23285 output_operand_lossage message.
88b97037 23286
3c3279fb
RE
232872013-03-11 Richard Earnshaw <rearnsha@arm.com>
23288
23289 PR target/56470
23290 * arm.c (shift_op): Validate RTL pattern on the fly.
23291 (arm_print_operand, case 'S'): Don't use shift_operator to validate
23292 the RTL.
23293
aef5ef9d
JDA
232942013-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
23295
23296 PR target/56347
23297 * config/pa/pa.md (call_value): Check for calls to powf and direct to
23298 new call patterns that clobber %fr12.
23299 (call_val_powf, call_val_powf_pic, call_val_powf_64bit): New insn,
23300 split and postreload patterns.
23301 * config/pa/pa.c (pa_conditional_register_usage): Revert marking
23302 registers %fr12 and %fr12R as call used.
23303
456610d3
SB
233042013-03-09 Steven Bosscher <steven@gcc.gnu.org>
23305
23306 * dse.c (delete_dead_store_insn): Respect TDF_DETAILS.
23307 (canon_address, record_store, replace_read, check_mem_read_rtx,
23308 scan_insn, dse_step1, dse_step2_init, dse_step2_spill,
23309 dse_step4, dse_step5_nospill, dse_step5_spill, dse_step6,
23310 rest_of_handle_dse): Likewise.
23311
4b1baac8
RS
233122013-03-09 Richard Sandiford <rdsandiford@googlemail.com>
23313
23314 PR middle-end/56524
23315 * tree.h (tree_optimization_option): Rename target_optabs to optabs.
23316 Add base_optabs.
23317 (TREE_OPTIMIZATION_OPTABS): Update after previous field change.
23318 (TREE_OPTIMIZATION_BASE_OPTABS): New macro.
23319 (save_optabs_if_changed): Replace with...
23320 (init_tree_optimization_optabs): ...this.
23321 * optabs.c (save_optabs_if_changed): Rename to...
23322 (init_tree_optimization_optabs): ...this. Take the optimization node
23323 as argument. Do nothing if the base optabs are already correct.
23324 Reuse the existing TREE_OPTIMIZATION_OPTABS memory if we need
23325 to recompute optabs.
23326 * function.h (function): Remove optabs field.
23327 * function.c (invoke_set_current_function_hook): Call
23328 init_tree_optimization_optabs. Use the result to initialize
23329 this_fn_optabs.
23330
b7a78683
AH
233312013-02-27 Aldy Hernandez <aldyh@redhat.com>
23332
23333 * trans-mem.c (expand_transaction): Do not set PR_INSTRUMENTEDCODE
23334 if GTMA_HAS_NO_INSTRUMENTATION.
23335 (generate_tm_state): Keep GTMA_HAS_NO_INSTRUMENTATION bit.
23336 (ipa_tm_transform_transaction): Set GTMA_HAS_NO_INSTRUMENTATION.
23337 * gimple.h (GTMA_HAS_NO_INSTRUMENTATION): Define.
23338 * gimple-pretty-print.c (dump_gimple_transaction): Handle
23339 GTMA_HAS_NO_INSTRUMENTATION.
23340
6384c29b
JJ
233412013-03-08 Jakub Jelinek <jakub@redhat.com>
23342
23343 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Don't link against
23344 libasan_preinit.o.
23345
ecd4f20a
MP
233462013-03-08 Marek Polacek <polacek@redhat.com>
23347 Jakub Jelinek <jakub@redhat.com>
23348
23349 PR tree-optimization/56478
23350 * predict.c (is_comparison_with_loop_invariant_p): Change the
23351 type of loop_step to tree.
23352 (predict_loops): Adjust.
23353 (predict_iv_comparison): Perform the computations on double_ints.
23354
64366d35
RB
233552013-03-08 Richard Biener <rguenther@suse.de>
23356
23357 PR tree-optimization/56570
23358 * tree-cfg.c (verify_expr_location_1): Verify locations for
23359 DECL_DEBUG_EXPR.
23360 * tree-sra.c (create_access_replacement): Strip locations
23361 from DECL_DEBUG_EXPRs.
23362
a9d5a059
RB
233632013-03-08 Richard Biener <rguenther@suse.de>
23364
23365 * tree-inline.c (expand_call_inline): Do not associate
23366 a BLOCK with the location in BLOCK_SOURCE_LOCATION.
23367 * tree-cfg.c (verify_location): Verify BLOCK_SOURCE_LOCATION.
23368
b7aa4e9a
RB
233692013-03-08 Richard Biener <rguenther@suse.de>
23370
23371 * tree-ssa-ter.c (is_replaceable_p): Do not TER across location
23372 or block changes with -Og. Fix for location / block encoding
23373 changes and PHI arguments with locations.
23374
c4c2f9fa
SB
233752013-03-07 Steven Bosscher <steven@gcc.gnu.org>
23376
23377 * bitmap.c (struct bitmap_descriptor_d): Use unsigned HOST_WIDEST_INT
23378 for all counters.
23379 (struct output_info): Likewise.
23380 (register_overhead): Remove bad gcc_assert.
23381 (bitmap_find_bit): If there is only a single bitmap element, do not
23382 count a miss as a search.
23383 (print_statistics): Update for counter type changes.
23384 (dump_bitmap_statistics): Likewise. Print headers such that they
23385 are properly lined up with the printed counters.
23386
5bf6606a
JJ
233872013-03-07 Jakub Jelinek <jakub@redhat.com>
23388
23389 PR tree-optimization/56559
23390 * tree-ssa-reassoc.c (zero_one_operation): When looking at rhs2,
23391 check that it has only a single use.
23392
2c653d46
RB
233932013-03-07 Richard Biener <rguenther@suse.de>
23394
23395 * doc/invoke.texi (fwhole-program): Discourage use in combination
23396 with -flto.
23397
a72d8780
JJ
233982013-03-06 Jakub Jelinek <jakub@redhat.com>
23399
01a454df
JJ
23400 * config/arm/t-arm (TM_H, OPTIONS_H_EXTRA): Add arm-cores.def.
23401
c1781047
JJ
23402 PR tree-optimization/56539
23403 * tree-tailcall.c (adjust_return_value_with_ops): Use GSI_SAME_STMT
23404 instead of GSI_CONTINUE_LINKING as last argument to
23405 force_gimple_operand_gsi. Adjust function comment.
23406
9772c47a
JJ
23407 * config/aarch64/t-aarch64 (TM_H, OPTIONS_H_EXTRA): Add
23408 aarch64-cores.def.
23409
a72d8780
JJ
23410 PR middle-end/56548
23411 * expr.c (expand_cond_expr_using_cmove): When expanding cmove in
23412 promoted mode, convert the result back to the original mode.
23413
fa5556de
RB
234142013-03-06 Richard Biener <rguenther@suse.de>
23415
23416 PR middle-end/56294
23417 * tree-into-ssa.c (insert_phi_nodes_for): Add dumping.
23418 (insert_updated_phi_nodes_compare_uids): New function.
23419 (update_ssa): Sort symbols_to_rename after UID before
23420 traversing it to insert PHI nodes.
23421
010403d1
RB
234222013-03-06 Richard Biener <rguenther@suse.de>
23423
23424 PR middle-end/50494
23425 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p):
23426 Do not adjust alignment of DECL_IN_CONSTANT_POOL decls.
23427
23428 Revert
23429 2013-02-13 Richard Biener <rguenther@suse.de>
23430
23431 PR lto/50494
23432 * varasm.c (output_constant_def_1): Get the decl representing
23433 the constant as argument.
23434 (output_constant_def): Wrap output_constant_def_1.
23435 (make_decl_rtl): Use output_constant_def_1 with the decl
23436 representing the constant.
23437 (build_constant_desc): Optionally re-use a decl already
23438 representing the constant.
23439 (tree_output_constant_def): Adjust.
23440
3c27ce4c
JY
234412013-03-06 Joey Ye <joey.ye@arm.com>
23442
23443 PR lto/50293
23444 * gcc.c (convert_white_space): New function.
23445 (main): Handles white space in function name.
23446
8f6d1c86
OE
234472013-03-06 Oleg Endo <olegendo@gcc.gnu.org>
23448
23449 PR target/56529
23450 * config/sh/sh.c (sh_option_override): Check for TARGET_DYNSHIFT
23451 instead of TARGET_SH2 for call-table case. Do not set sh_div_strategy
23452 to SH_DIV_CALL_TABLE for TARGET_SH2.
23453 * config.gcc (sh_multilibs): Add m2 and m2a to sh*-*-linux* multilib
23454 list.
23455 * doc/invoke.texi (SH options): Document mdiv= call-div1, call-fp,
23456 call-table options.
23457
798a209f
SA
234582013-03-05 Sterling Augustine <saugustine@google.com>
23459 Cary Coutant <ccoutant@google.com>
23460
23461 PR debug/55364
23462 * dwarf2out.c (resolve_addr): Don't call
23463 remove_loc_list_addr_table_entries a second time for the same
23464 expression.
23465
6cfa417f 234662013-03-05 Jakub Jelinek <jakub@redhat.com>
ee61ea38 23467
6cfa417f
JJ
23468 PR debug/56510
23469 * cfgexpand.c (expand_debug_parm_decl): Call copy_rtx on incoming.
23470 (avoid_complex_debug_insns): New function.
23471 (expand_debug_locations): Call it.
23472
23473 PR rtl-optimization/56484
23474 * ifcvt.c (noce_process_if_block): If else_bb is NULL, avoid extending
23475 lifetimes of hard registers on small register class machines.
23476
234772013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
23478
23479 * config/microblaze/microblaze-protos.h: Rename
ee61ea38 23480 microblaze_is_interrupt_handler to microblaze_is_interrupt_variant.
6cfa417f 23481 * config/microblaze/microblaze.c (microblaze_attribute_table): Add
ee61ea38
DH
23482 fast_interrupt.
23483 (microblaze_fast_interrupt_function_p): New function.
23484 (microblaze_is_interrupt_handler): Rename to
23485 microblaze_is_interrupt_variant and add fast_interrupt check.
23486 (microblaze_must_save_register): Use microblaze_is_interrupt_variant.
23487 (save_restore_insns): Likewise.
23488 (compute_frame_size): Likewise.
23489 (microblaze_function_prologue): Add FAST_INTERRUPT_NAME.
23490 (microblaze_globalize_label): Likewise.
6cfa417f
JJ
23491 * config/microblaze/microblaze.h: Define FAST_INTERRUPT_NAME.
23492 * config/microblaze/microblaze.md: Use wrapper
ee61ea38
DH
23493 microblaze_is_interrupt_variant.
23494
731aefac
KT
234952013-03-05 Kai Tietz <ktietz@redhat.com>
23496
23497 * sdbout.c (sdbout_one_type): Switch to current function's section
23498 supporting cold/hot.
23499
a72d8780 235002013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
e34fd5a7
DH
23501
23502 * doc/invoke.texi (MicroBlaze): Add -mbig-endian, -mlittle-endian,
23503 -mxl-reorder.
23504
334e71e8
JJ
235052013-03-05 Jakub Jelinek <jakub@redhat.com>
23506
0b50e654
JJ
23507 PR middle-end/56461
23508 * ggc-common.c (gt_pch_save): For ENABLE_VALGRIND_CHECKING,
23509 if VALGRIND_GET_VBITS is defined, temporarily make object
23510 memory all defined, and restore previous valgrind addressability
23511 and definability afterwards. Free this_object at the end.
23512
4ccf8f43
JJ
23513 PR middle-end/56461
23514 * lra.c (lra): Call lra_clear_live_ranges if live_p,
23515 right before calling lra_create_live_ranges, also call it
23516 when clearing live_p. Only call lra_clear_live_ranges
23517 at the end if live_p.
23518
334e71e8
JJ
23519 PR middle-end/56461
23520 * sched-deps.c (delete_dep_node): Free DEP_REPLACE.
23521
9ca966ca
RB
235222013-03-05 Richard Biener <rguenther@suse.de>
23523
23524 PR tree-optimization/56521
23525 * tree-ssa-sccvn.c (set_value_id_for_result): Always initialize
23526 value-id.
23527
d273b176
SB
235282013-03-05 Steven Bosscher <steven@gcc.gnu.org>
23529
23530 PR c++/55135
23531 * except.h (remove_unreachable_eh_regions): New prototype.
23532 * except.c (remove_eh_handler_splicer): New function, split out
23533 of remove_eh_handler.
23534 (remove_eh_handler): Use remove_eh_handler_splicer. Add comment
23535 warning about running it on many EH regions one at a time.
23536 (remove_unreachable_eh_regions_worker): New function, walk the
23537 EH tree in depth-first order and remove non-marked regions.
23538 (remove_unreachable_eh_regions): New function.
23539 * tree-eh.c (mark_reachable_handlers): New function, split out
23540 from remove_unreachable_handlers.
23541 (remove_unreachable_handlers): Use mark_reachable_handlers and
23542 remove_unreachable_eh_regions.
23543 (remove_unreachable_handlers_no_lp): Use mark_reachable_handlers
23544 and remove_unreachable_eh_regions.
23545
5e7f1aef
RB
235462013-03-05 Richard Biener <rguenther@suse.de>
23547
23548 PR middle-end/56525
23549 * loop-init.c (fix_loop_structure): Remove loops in two stages,
23550 not freeing them until the end.
23551
f276b762
AK
235522013-03-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
23553
23554 * config/s390/s390.h: Define DWARF2_ASM_LINE_DEBUG_INFO.
23555
12a43ab8
RB
235562013-03-05 Richard Biener <rguenther@suse.de>
23557
23558 PR tree-optimization/56270
23559 * tree-vect-slp.c (vect_schedule_slp): Clear vectorized stmts
23560 of loads after scheduling an SLP instance.
23561
93675444
JJ
235622013-03-05 Jakub Jelinek <jakub@redhat.com>
23563
db4138e3
JJ
23564 * Makefile.in (dg_target_exps): Add aarch64.exp, epiphany.exp and
23565 tic6x.exp.
23566 (check_gcc_parallelize): Run guality.exp as a separate job from
23567 vect.exp with unsorted.exp and $(dg_target_exps) separately from
23568 struct-layout-1.exp with stackalign.exp.
23569
dd3d1ec0
JJ
23570 * alias.c (init_alias_analysis): Clear reg_known_equiv_p bitmap.
23571
b8d381a3
JJ
23572 PR middle-end/56461
23573 * tree-vect-slp.c (vect_supported_load_permutation_p): Free
23574 load_index sbitmap even if some bit in it isn't set.
23575
b4f9786b
JJ
23576 PR middle-end/56461
23577 * tree-ssa-loop-niter.c (bb_queue): Remove typedef.
23578 (discover_iteration_bound_by_body_walk): Change queues to
23579 vec<vec<basic_block> > and queue to vec<basic_block>. Fix up
23580 spelling in comment. Call safe_push on queues[bound_index] directly.
23581 Release queues[queue_index] in every iteration unconditionally.
23582 Release bounds vector.
23583
93675444
JJ
23584 PR middle-end/56461
23585 * tree-vect-stmts.c (free_stmt_vec_info_vec): Call
23586 free_stmt_vec_info on any left-over stmt_vec_info in the vector.
23587 * tree-vect-loop.c (vect_create_epilog_for_reduction): Release
23588 inner_phis vector.
23589
3e492e9c
RB
235902013-03-05 Richard Biener <rguenther@suse.de>
23591
23592 PR lto/56515
23593 * tree-inline.c (remap_blocks_to_null): New function.
23594 (expand_call_inline): When expanding a call stmt without
23595 an associated block inline remap all callee blocks to NULL.
23596
a5d1569a
JJ
235972013-03-05 Jakub Jelinek <jakub@redhat.com>
23598
86efb5cd
JJ
23599 PR rtl-optimization/56494
23600 * simplify-rtx.c (simplify_truncation): If C is narrower than A,
23601 optimize (truncate:A (subreg:B (truncate:C X) 0)) into
23602 (subreg:A (truncate:C X) 0) instead of (truncate:A X).
23603
85f5dbea
JJ
23604 PR middle-end/56461
23605 * sel-sched-ir.c (free_sched_pools): Release
23606 succs_info_pool.stack[succs_info_pool.max_top] vectors too
23607 if succs_info_pool.max_top isn't -1.
23608
a5d1569a
JJ
23609 PR bootstrap/56509
23610 * opts.c (opts_obstack, opts_concat): Moved to...
23611 * opts-common.c (opts_obstack, opts_concat): ... here.
23612
4432aa6c
JJ
236132013-03-04 Jakub Jelinek <jakub@redhat.com>
23614
23615 PR middle-end/56461
23616 * diagnostic.c (diagnostic_append_note): Save and restore old prefix.
23617
f3a1fb91
MJ
236182013-03-04 Martin Jambor <mjambor@suse.cz>
23619
23620 * tree-dfa.c (get_or_create_ssa_default_def): Use parameter fn in
23621 all appropriate places.
23622
22110e6c
EB
236232013-01-04 Eric Botcazou <ebotcazou@adacore.com>
23624
23625 PR tree-optimization/56424
23626 * ipa-split.c (split_function): Do not set the RSO flag if result is
23627 not by reference and its type is a register type.
23628
a72d8780 236292013-03-04 David Holsgrove <david.holsgrove@xilinx.com>
91c4e421 23630
88b97037 23631 * config/microblaze/microblaze.c (microblaze_valid_pic_const): New
91c4e421 23632 (microblaze_legitimate_pic_operand): Likewise
88b97037 23633 * config/microblaze/microblaze.h (LEGITIMATE_PIC_OPERAND_P): calls
91c4e421
DH
23634 new function microblaze_legitimate_pic_operand
23635 * config/microblaze/microblaze-protos.h
23636 (microblaze_legitimate_pic_operand): Declare.
23637
a72d8780 236382013-03-04 Edgar E. Iglesias <edgar.iglesias@gmail.com>
82f8f53a 23639
a72d8780 23640 * config/microblaze/predicates.md (call_insn_simple_operand):
82f8f53a 23641 New predicate for supported rtx code types.
a72d8780 23642 * config/microblaze/microblaze.md (call_internal1): Use
82f8f53a
EI
23643 call_insn_simple_operand predicate.
23644
541d9ac8
JJ
236452013-03-04 Jakub Jelinek <jakub@redhat.com>
23646
5eb010bc
JJ
23647 PR middle-end/56461
23648 * tree-loop-distribution.c (ldist_gen): Call partition_free after each
23649 partitions.ordered_remove.
23650
30862efc
JJ
23651 PR middle-end/56461
23652 * tree-vect-stmts.c (vectorizable_conversion): Don't call
23653 vec_oprnds0.create (1) for modifier == NONE.
23654
8930f723
JJ
23655 PR middle-end/56461
23656 * tree-vect-stmts.c (vectorizable_shift): Don't call create methods
23657 on vec_oprnds0 or vec_oprnds1 before loop, only call it on
23658 vec_oprnds1 right before pushing anything to it for
23659 scalar_shift_arg.
23660
541d9ac8
JJ
23661 PR middle-end/56461
23662 * tree-vect-loop.c (destroy_loop_vec_info): For !clean_stmts, just
23663 set nbbs to 0 instead of having separate code path.
23664 (vect_analyze_loop_form): Call destroy_loop_vec_info with true
23665 instead of false as last argument if returning NULL.
23666
7aa7f2e3
SL
236672013-03-03 Sandra Loosemore <sandra@codesourcery.com>
23668
23669 * target.def (TARGET_OPTION_VALID_ATTRIBUTE_P): Update comments;
23670 the attribute is now called "target" instead of "option".
23671 (TARGET_OPTION_PRAGMA_PARSE): Likewise, for the pragma.
23672 * doc/tm.texi.in (Target Attributes): Likewise document the correct
23673 attribute/pragma name for TARGET_OPTION_VALID_P and
23674 TARGET_OPTION_PRAGMA_PARSE. Also copy-edit and correct markup.
23675 * doc/tm.texi: Regenerated.
23676
8930f723 236772013-03-02 David Holsgrove <david.holsgrove@xilinx.com>
cb8a1637 23678
8930f723 23679 * config/microblaze/microblaze.c:
cb8a1637 23680 Check mcpu, pcmp requirement and set TARGET_REORDER to 0 if not met.
8930f723
JJ
23681 * config/microblaze/microblaze.h: Add -mxl-reorder to
23682 DRIVER_SELF_SPECS.
23683 * config/microblaze/microblaze.md: New bswapsi2 and bswaphi2.
23684 instructions emitted if TARGET_REORDER.
88b97037
UB
23685 * config/microblaze/microblaze.opt: New option -mxl-reorder set to 1
23686 or 0 for -m/-mno case, but initialises as 2 to detect default use case
8930f723 23687 separately.
cb8a1637 23688
4dc1d68c
XDL
236892013-03-01 Xinliang David Li <davidxl@google.com>
23690
23691 * tree-ssa-uninit.c (compute_control_dep_chain): Limit post-dom
23692 walk length.
23693
689eaba3
JJ
236942013-03-01 Jakub Jelinek <jakub@redhat.com>
23695
9d676bf6
JJ
23696 PR middle-end/56461
23697 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Release path
23698 vector even when returning true. Fix up function comment formatting.
23699
caff7edf
JJ
23700 PR middle-end/56461
23701 * ira-build.c (ira_loop_nodes_count): New variable.
23702 (create_loop_tree_nodes): Initialize it.
23703 (finish_loop_tree_nodes): Use it instead of looking at current_loops.
23704
b6b9227d
JJ
23705 PR middle-end/56461
23706 * tree-vect-data-refs.c (vect_permute_store_chain): Avoid using copy
23707 method on dr_chain and result_chain.
23708 * tree-vect-stmts.c (vectorizable_store): Only call
23709 result_chain.create if j == 0.
23710
689eaba3
JJ
23711 PR middle-end/56461
23712 * tree-vect-stmts.c (vect_create_vectorized_promotion_stmts): Call
23713 vec_oprnds0->release (); rather than vec_oprnds0->truncate (0)
23714 before overwriting it.
23715
40bf31ed
TB
237162013-03-01 Tobias Burnus <burnus@net-b.de>
23717
23718 * doc/extended.texi (C Extensions): Change order in @menu
23719 to match @node.
23720 (Other MIPS Built-in Functions): Move last MIPS entry before
23721 "picoChip Built-in Functions".
23722 (SH Built-in Functions): Move after RX Built-in Functions.
23723 * doc/gcc.texi (Introduction): Change order in @menu
23724 to match @node.
23725 * doc/md.texi (Constraints): Ditto.
23726 * gty.texi (Type Information): Ditto.
23727 (User-provided marking routines for template types): Make
23728 subsection.
23729 * doc/invoke.texi (AArch64 Options): Move before
23730 "Adapteva Epiphany Options".
23731
e664c61c
KS
237322013-02-28 Konstantin Serebryany <konstantin.s.serebryany@gmail.com>
23733 Jakub Jelinek <jakub@redhat.com>
23734
23735 PR sanitizer/56454
23736 * asan.c (gate_asan): Lookup no_sanitize_address instead of
23737 no_address_safety_analysis attribute.
23738 * doc/extend.texi (no_address_safety_attribute): Rename to
23739 no_sanitize_address attribute, mention no_address_safety_analysis
23740 attribute as deprecated alias.
23741
37b5ec8f
JJ
237422013-02-28 Jakub Jelinek <jakub@redhat.com>
23743
23744 PR middle-end/56461
23745 * tree-vectorizer.h (vect_get_slp_defs): Change 3rd argument
23746 type to vec<vec<tree> > *.
23747 * tree-vect-slp.c (vect_get_slp_defs): Likewise. Change vec_defs
23748 to be vec<tree> instead of vec<tree> *, set vec_defs
23749 to vNULL and call vec_defs.create (number_of_vects), adjust other
23750 uses of vec_defs.
23751 * tree-vect-stmts.c (vect_get_vec_defs, vectorizable_call,
23752 vectorizable_condition): Adjust vect_get_slp_defs callers.
23753
ba96cdfb
JG
237542013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
23755
23756 * config/aarch64/aarch64.c
23757 (aarch64_float_const_representable): Remove unused variable.
23758
6f549691
JG
237592013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
23760
23761 * config/aarch64/aarch64.c (aarch64_mangle_type): Make static.
23762
af55e82d
JG
237632013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
23764
23765 * config/aarch64/aarch64-builtins.c
23766 (aarch64_init_simd_builtins): Make static.
23767
1df3f464
JG
237682013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
23769
23770 * config/aarch64/aarch64.c
23771 (aarch64_simd_make_constant): Make static.
23772
f8f42513
MJ
237732013-02-28 Martin Jambor <mjambor@suse.cz>
23774
23775 * tree-sra.c (load_assign_lhs_subreplacements): Do not put replacements
23776 with no initialization to the RHS of debug statements.
23777
b48b3fc4
MJ
237782013-02-28 Martin Jambor <mjambor@suse.cz>
23779
23780 PR tree-optimization/56294
23781 * tree-sra.c (analyze_access_subtree): Create replacement declarations.
23782 Adjust dumping.
23783 (get_access_replacement): Do not call create_access_replacement.
23784 Assert a replacement exists.
23785 (get_repl_default_def_ssa_name): Create the replacement declaration
23786 itself.
23787
c3ae224c
RR
237882013-02-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
23789
23790 * config/arm/arm.c (arm_output_mi_thunk): Call final_start_function and
23791 final_end_function.
23792
45fa0eef
MP
237932013-02-28 Marek Polacek <polacek@redhat.com>
23794
23795 PR rtl-optimization/56466
23796 * loop-unroll.c (unroll_and_peel_loops): Call fix_loop_structure
23797 if we're changing a loop.
23798 (peel_loops_completely): Likewise.
23799
502c067d
PC
238002013-02-28 Paolo Carlini <paolo.carlini@oracle.com>
23801
23802 PR c++/55813
23803 * doc/invoke.texi ([-Wctor-dtor-privacy]): Complete.
23804
ff24afc8
GJL
238052013-02-28 Georg-Johann Lay <avr@gjlay.de>
23806
23807 PR target/56445
23808 * config/avr/avr.c (avr_init_builtins): Use 'n' instead of empty
23809 macro parameters with: FX_FTYPE_FX, FX_FTYPE_FX_INT, INT_FTYPE_FX,
23810 INTX_FTYPE_FX, FX_FTYPE_INTX.
23811 * config/avr/builtins.def: Adjust respective DEF_BUILTIN.
23812
c7b1fc1b
GJL
238132013-02-28 Georg-Johann Lay <avr@gjlay.de>
23814
23815 * avr/avr-mcus.def (ata5272, ata5505, attiny1634, ata6285)
23816 (ata6286, atmega8a, atmega48pa, ata5790, ata5790n, ata5795)
23817 (atmega164pa, atmega165pa, atmega168pa, atmega16hva, atmega16hvb)
23818 (atmega16hvbrevb, atmega16m1, atmega16u4, atmega26hvg, atmega32a)
23819 (atmega32a, atmega3250pa, atmega3290pa, atmega32c1, atmega32m1)
23820 (atmega32u4, atmega32u6, atmega64a, atmega6490a, atmega6490p)
23821 (atmega64c1, atmega64m1, atmega64rfa2, atmega64rfr2, atmega32hvb)
23822 (atmega32hvbrevb, atmega16hva2, atmega48hvf, at90pwm161)
23823 (atmega128a, atmega1284, atmxt112sl, atmxt224, atmxt224e)
23824 (atmxt336s, atxmega16a4u, atxmega16c4, atxmega32a4u, atxmega32c4)
23825 (atxmega32e5, atxmega64a3u, atxmega64a4u, atxmega64b1, atxmega64b3)
23826 (atxmega64c3, atxmega64d4, atxmega128a3u, atxmega128b1)
23827 (atxmega128b3, atxmega128c3, atxmega128d4, atmxt540s, atmxt540sreva)
23828 (atxmega192a3u, atxmega192c3, atxmega256a3u, atxmega256c3)
23829 (atxmega384c3, atxmega384d3, atxmega128a4u): New AVR_MCU.
23830 (avrxmega6): Increase max flash segments from 5 to 6.
23831 * config/avr/t-multilib: Regenerate.
23832 * config/avr/avr-tables.opt: Regenerate.
23833 * doc/avr-mmcu.texi: Regenerate.
23834
4a0e3cfe
GJL
238352013-02-28 Georg-Johann Lay <avr@gjlay.de>
23836
23837 * config/avr/avr.h (device_to_arch): Rename to device_to_ld.
23838 (avr_device_to_arch): Rename to avr_device_to_ld.
23839 (avr_device_to_as): New prototype.
23840 (EXTRA_SPEC_FUNCTIONS): Add device_to_as.
23841 (ASM_SPEC): Use device_to_as to get -mmcu= and -mno-skip-bug=.
23842 * config/avr/driver-avr.c (avr_device_to_as): New.
23843 (avr_device_to_arch): Rename to avr_device_to_ld.
23844
97785e52
JJ
238452013-02-27 Jakub Jelinek <jakub@redhat.com>
23846
3f292312
JJ
23847 PR middle-end/56461
23848 * tree-vect-data-refs.c (vect_permute_load_chain): Avoid using copy
23849 method on dr_chain and result_chain.
23850
a344216b
JJ
23851 PR middle-end/56461
23852 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Call
23853 pointer_set_destroy on not_executed_last_iteration.
23854
f121ad02 23855 PR middle-end/56461
88b97037 23856 * tree-vect-loop.c (vectorizable_reduction): Release vect_defs vector.
f121ad02 23857
307f83a3
JJ
23858 PR middle-end/56461
23859 * ipa-pure-const.c (propagate): Use FOR_EACH_FUNCTION instead of
23860 FOR_EACH_DEFINED_FUNCTION when freeing state.
23861
e19624ee
JJ
23862 PR middle-end/56461
23863 * df-scan.c (df_insn_delete): Use df_scan_free_mws_vec before
23864 pool_free.
23865 (df_insn_rescan_debug_internal): Use df_scan_free_mws_vec before
23866 overwriting it.
23867
90e709fd
JJ
23868 PR middle-end/56461
23869 * ipa-cp.c (decide_whether_version_node): Call vec_free on
23870 known_aggs[i].items and release known_aggs vector.
23871
97785e52
JJ
23872 PR middle-end/56461
23873 * ipa-reference.c (propagate): Free node_info even for alias nodes.
23874
238752013-02-27 Edgar E. Iglesias <edgar.iglesias@gmail.com>
bbb3a9e2 23876
97785e52
JJ
23877 * config/microblaze/microblaze.c (microblaze_emit_compare):
23878 Use xor for EQ/NE comparisions.
23879 * config/microblaze/microblaze.md (cstoresf4): Add constraints
23880 (cbranchsf4): Adjust operator to comparison_operator.
bbb3a9e2 23881
6fa5e0ed
JJ
238822013-02-27 Jakub Jelinek <jakub@redhat.com>
23883
23884 PR middle-end/56461
23885 * tree-flow.h (edge_var_map_vector): Change into va_heap, vl_embed
23886 vector.
23887 * tree-ssa.c (redirect_edge_var_map_add): Use vec_safe_reserve and
23888 vec_safe_push, always update *slot.
23889 (redirect_edge_var_map_clear): Use vec_free.
23890 (redirect_edge_var_map_dup): Use vec_safe_copy and vec_safe_reserve.
23891 (free_var_map_entry): Use vec_free.
23892 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Use
23893 FOR_EACH_VEC_SAFE_ELT instead of FOR_EACH_VEC_ELT.
23894
436a956a
AB
238952013-02-27 Andrey Belevantsev <abel@ispras.ru>
23896
23897 PR middle-end/45472
436a956a
AB
23898 * sel-sched-ir.c (merge_expr): Also change vinsn of merged expr
23899 when the may_trap_p bit of the exprs being merged differs.
436a956a
AB
23900 Reorder tests for speculativeness in the logical and operator.
23901
f5c2caca
JJ
239022013-02-27 Jakub Jelinek <jakub@redhat.com>
23903
0fcb564b
JJ
23904 * incpath.c (add_standard_paths): Use reconcat instead of concat
23905 where appropriate and avoid leaking memory.
23906
dc357798
JJ
23907 * opts.h: Include obstack.h.
23908 (opts_concat): New prototype.
23909 (opts_obstack): New declaration.
23910 * opts.c (opts_concat): New function.
23911 (opts_obstack): New variable.
23912 (init_options_struct): Call gcc_init_obstack on opts_obstack.
23913 (finish_options): Use opts_concat instead of concat
23914 and XOBNEWVEC instead of XNEWVEC.
23915 * opts-common.c (generate_canonical_option, decode_cmdline_option,
23916 generate_option): Likewise.
23917 * Makefile.in (OPTS_H): Depend on $(OBSTACK_H).
23918 * lto-wrapper.c (main): Call gcc_init_obstack on opts_obstack.
23919
f5c2caca
JJ
23920 PR target/56455
23921 * stmt.c (expand_switch_as_decision_tree_p): If flag_pic
23922 and ASM_OUTPUT_ADDR_DIFF_ELT isn't defined, return true.
23923
d0163673
JJ
239242013-02-26 Jakub Jelinek <jakub@redhat.com>
23925
23926 PR middle-end/56461
23927 * lra-spills.c (lra_spill): Free spill_hard_reg at the end.
23928
b5ad2b8e
JR
239292013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
23930
23931 * config/arm/arm.c (const_ok_for_dimode_op): Back out last change.
23932 (arm_block_move_unaligned_straight): Likewise.
23933 (arm_adjust_block_mem): Likewise.
23934
9b639e2c
JR
239352013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
23936
23937 PR target/48901
23938 * config/lm32/lm32.c (gen_int_relational): Remove unused variables
23939 temp, cond and label.
23940 * config/lm32/lm32.md (ashlsi3): Remove unused variable one.
23941
e13a0ccb
JR
23942 PR target/52500
23943 * config/c6x/c6x.c (dbx_register_map): Change to unsigned.
23944 * config/c6x/c6x.h (dbx_register_map): Update declaration.
23945
fbe4f171
JR
23946 PR target/52501
23947 * config/cr16/cr16-protos.h: Move end of RTX_CODE guard below end
23948 of prologue/epilogue functions.
23949
ae006543
JR
23950 PR target/52550
23951 * config/tilegx/tilegx.c (tilegx_expand_prologue):
23952 Remove unused variable cfa_offset.
23953 * config/tilepro/tilepro.c (tilepro_expand_prologue): Likewise.
23954
c81369fa
JR
23955 PR target/54639
23956 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Avoid offset
23957 type promotion to unsigned.
23958
f8a8fea7
JR
23959 PR target/54640
23960 * config/arm/arm.c (const_ok_for_dimode_op): Make code consistent
23961 for HOST_WIDE_INT of 32 bit / same size as int.
23962 (arm_block_move_unaligned_straight): Likewise.
23963 (arm_adjust_block_mem): Likewise.
23964
f8be5169
JR
23965 PR target/54662
23966 * config/mep/t-mep (mep-pragma.o): Use ALL_COMPILERFLAGS instead of
23967 ALL_CFLAGS.
23968
f1ad3354
MP
239692013-02-26 Marek Polacek <polacek@redhat.com>
23970
23971 PR tree-optimization/56426
88b97037 23972 * tree-ssa-loop.c (tree_ssa_loop_init): Always call scev_initialize.
f1ad3354 23973
a6af0f42
RB
239742013-02-26 Richard Biener <rguenther@suse.de>
23975
23976 PR target/56444
23977 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): Remove
23978 unused variable loops.
23979
aca43c6c
JJ
239802013-02-26 Jakub Jelinek <jakub@redhat.com>
23981
cecbe5d9
JJ
23982 PR tree-optimization/56448
23983 * fold-const.c (operand_equal_p) <case tcc_reference>: Don't look at
23984 TREE_SIDE_EFFECTS if flags contain OEP_CONSTANT_ADDRESS_OF.
23985 Clear OEP_CONSTANT_ADDRESS_OF from flags before recursing on second or
23986 later operands of the references, or even first operand for
23987 INDIRECT_REF, TARGET_MEM_REF or MEM_REF.
23988
aca43c6c
JJ
23989 PR tree-optimization/56443
23990 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): For
23991 overaligned types, pass TYPE_UNSIGNED (scalar_type) as second argument
23992 to type_for_mode langhook.
23993
53e2e141
MT
239942013-02-25 Matt Turner <mattst88@gmail.com>
23995
23996 * doc/invoke.texi: Document r4700.
23997
259ee451
RB
239982013-02-25 Richard Biener <rguenther@suse.de>
23999
24000 PR tree-optimization/56175
24001 * tree-ssa-forwprop.c (hoist_conversion_for_bitop_p): New predicate,
24002 split out from ...
24003 (simplify_bitwise_binary): ... here. Also guard the conversion
24004 of (type) X op CST to (type) (X op ((type-x) CST)) with it.
24005
6d65e8f1
CM
240062013-02-25 Catherine Moore <clm@codesourcery.com>
24007
24008 Revert:
24009 2013-02-24 Catherine Moore <clm@codesourcery.com>
24010 Maciej W. Rozycki <macro@codesourcery.com>
24011 Tom de Vries <tom@codesourcery.com>
a72d8780 24012 Nathan Sidwell <nathan@codesourcery.com>
6d65e8f1
CM
24013 Iain Sandoe <iain@codesourcery.com>
24014 Nathan Froyd <froydnj@codesourcery.com>
a72d8780 24015 Chao-ying Fu <fu@mips.com>
88b97037 24016
6d65e8f1 24017 * doc/extend.texi: (micromips, nomicromips, nocompression):
88b97037 24018 Document new function attributes.
6d65e8f1
CM
24019 * doc/invoke.texi (minterlink-compressed, mmicromips,
24020 m14k, m14ke, m14kec): Document new options.
24021 (minterlink-mips16): Update documentation.
24022 * doc/md.texi (ZC, ZD): Document new constraints.
24023 * configure.ac (gcc_cv_as_micromips): Check if linker
24024 supports the .set micromips directive.
24025 * configure: Regenerate.
24026 * config.in: Regenerate.
24027 * config/mips/mips-tables.opt: Regenerate.
24028 * config/mips/micromips.md: New file.
24029 * constraints.md (ZC, AD): New constraints.
24030 * config/mips/predicates.md (movep_src_register): New predicate.
24031 (movep_src_operand): New predicate.
24032 (non_volatile_mem_operand): New predicate.
24033 * config/mips/mips.md (multimem): New type.
24034 (length): Differentiate between 17-bit and 18-bit branch offsets.
24035 (MOVEP1, MOVEP2): New mode iterator.
24036 (mov_<load>l): Use ZC constraint.
24037 (mov_<load>r): Likewise.
24038 (mov_<store>l): Likewise.
24039 (mov_<store>r): Likewise.
24040 (*branch_equality<mode>_inverted): Add microMIPS support.
24041 (*branch_equality<mode>): Likewise.
24042 (*jump_absolute): Likewise.
24043 (indirect_jump_<mode>): Likewise.
24044 (tablejump_<mode>): Likewise.
24045 (<optab>_internal): Likewise.
24046 (sibcall_internal): Likewise.
24047 (sibcall_value_internal): Likewise.
24048 (prefetch): Use constraint ZD.
24049 * config/mips/mips.opt (minterlink-compressed): New option.
24050 (minterlink-mips16): Now an alias for minterlink-compressed.
24051 (mmicromips): New option.
24052 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
24053 (compare_and_swap_12): Likewise.
24054 (sync_add<mode>): Likewise.
24055 (sync_<optab>_12): Likewise.
24056 (sync_old_<optab>_12): Likewise.
24057 (sync_new_<optab>_12): Likewise.
24058 (sync_nand_12): Likewise.
24059 (sync_old_nand_12): Likewise.
24060 (sync_new_nand_12): Likewise.
24061 (sync_sub<mode>): Likewise.
24062 (sync_old_add<mode>): Likewise.
24063 (sync_old_sub<mode>): Likewise.
24064 (sync_new_add<mode>): Likewise.
24065 (sync_new_sub<mode>): Likewise.
24066 (sync_<optab><mode>): Likewise.
24067 (sync_old_<optab><mode>): Likewise.
24068 (sync_new_<optab><mode>): Likewise.
24069 (sync_nand<mode>): Likewise.
24070 (sync_old_nand<mode>): Likewise.
24071 (sync_new_nand<mode>): Likewise.
24072 (sync_lock_test_and_set<mode>): Likewise.
24073 (test_and_set_12): Likewise.
24074 (atomic_compare_and_swap<mode>): Likewise.
24075 (atomic_exchange<mode>_llsc): Likewise.
24076 (atomic_fetch_add<mode>_llsc): Likewise.
24077 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
24078 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
24079 (umips_save_restore_pattern_p): Likewise.
24080 (umips_load_store_pair_p): Likewise.
24081 (umips_output_load_store_pair): Likewise.
24082 (umips_movep_target_p): Likewise.
24083 (umips_12bit_offset_address_p): Likewise.
24084 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
24085 (mips_base_mips16): Rename this...
24086 (mips_base_compression_flags): ...to this. Update all uses.
24087 (mips_attribute_table): Add micromips, nomicromips and nocompression.
24088 (mips_mips16_decl_p): Delete.
24089 (mips_nomips16_decl_p): Delete.
24090 (mips_get_compress_on_flags): New function.
24091 (mips_get_compress_off_flags): New function.
24092 (mips_get_compress_mode): New function.
24093 (mips_get_compress_on_name): New function.
24094 (mips_get_compress_off_name): New function.
24095 (mips_insert_attributes): Support multiple compression types.
24096 (mips_merge_decl_attributes): Likewise.
24097 (umips_12bit_offset_address_p): New function.
24098 (mips_start_function_definition): Emit .set micromips directive.
24099 (mips_call_may_need_jalx_p): New function.
24100 (mips_function_ok_for_sibcall): Add microMIPS support.
24101 (mips_print_operand_punctuation): Support short delay slots and
24102 compact jumps.
24103 (umips_swm_mask, umips_swm_encoding): New.
24104 (umips_build_save_restore): New function.
24105 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
24106 (was_mips16_p): Remove.
24107 (old_compression_mode): New.
24108 (mips_set_compression_mode): New function.
24109 (mips_set_current_function): Add microMIPS support.
24110 (mips_option_override): Likewise.
24111 (umips_save_restore_pattern_p): New function.
24112 (umips_output_save_restore): New function.
24113 (umips_load_store_pair_p_1): New function.
24114 (umips_load_store_pair_p): New function.
24115 (umips_output_load_store_pair_1): New function.
24116 (umips_output_load_store_pair): New function.
24117 (umips_movep_target_p) New function.
24118 (mips_prepare_pch_save): Add microMIPS support.
24119 * config/mips/mips.h (TARGET_COMPRESSION): New.
24120 (TARGET_CPU_CPP_BUILTINS): Update macro
24121 to use new compression flags and to support microMIPS.
24122 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
24123 (MIPS_ARCH_FLOAT_SPEC): Likewise.
24124 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
24125 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
24126 (ASM_SPEC): Support mmicromips and mno-micromips.
24127 (M16STORE_REG_P): New macro.
24128 (MIPS_CALL): Support TARGET_MICROMIPS.
24129 (MICROMIPS_J): New macro.
24130 (mips_base_mips16): Rename this...
24131 (mips_base_compression_flags): ...to this.
24132 (UMIPS_12BIT_OFFSET_P): New macro.
24133 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
24134 (MULTILIB_DIRNAMES): Likewise.
24135
5e5df392
TV
241362013-02-25 Tom de Vries <tom@codesourcery.com>
24137
24138 PR rtl-optimization/56131
24139 * insn-notes.def (INSN_NOTE_BASIC_BLOCK): Update comment.
24140 * cfgrtl.c (delete_insn): Don't reorder NOTE_INSN_DELETED_LABEL and
24141 NOTE_INSN_BASIC_BLOCK if BLOCK_FOR_INSN == NULL.
24142
3fdb53c1
TB
241432013-02-25 Tobias Burnus <burnus@net-b.de>
24144
24145 * doc/invoke.texi (-fsanitize=): Move from optimization
24146 to debugging options.
24147
ed358aea
AB
241482013-02-25 Andrey Belevantsev <abel@ispras.ru>
24149
24150 * sched-deps.c (sched_analyze_insn): Fix typo in comment.
24151
f45e9053
AB
241522013-02-25 Andrey Belevantsev <abel@ispras.ru>
24153 Alexander Monakov <amonakov@ispras.ru>
24154
24155 PR middle-end/56077
24156 * sched-deps.c (sched_analyze_insn): When reg_pending_barrier,
24157 flush pending lists also on non-jumps. Adjust comment.
24158
6941b508
CM
241592013-02-24 Catherine Moore <clm@codesourcery.com>
24160 Maciej W. Rozycki <macro@codesourcery.com>
24161 Tom de Vries <tom@codesourcery.com>
a72d8780 24162 Nathan Sidwell <nathan@codesourcery.com>
6941b508
CM
24163 Iain Sandoe <iain@codesourcery.com>
24164 Nathan Froyd <froydnj@codesourcery.com>
a72d8780 24165 Chao-ying Fu <fu@mips.com>
6941b508
CM
24166
24167 * doc/extend.texi: (micromips, nomicromips, nocompression):
88b97037 24168 Document new function attributes.
6941b508
CM
24169 * doc/invoke.texi (minterlink-compressed, mmicromips,
24170 m14k, m14ke, m14kec): Document new options.
24171 (minterlink-mips16): Update documentation.
24172 * doc/md.texi (ZC, ZD): Document new constraints.
24173 * configure.ac (gcc_cv_as_micromips): Check if linker
24174 supports the .set micromips directive.
24175 * configure: Regenerate.
24176 * config.in: Regenerate.
24177 * config/mips/mips-tables.opt: Regenerate.
24178 * config/mips/micromips.md: New file.
24179 * constraints.md (ZC, AD): New constraints.
24180 * config/mips/predicates.md (movep_src_register): New predicate.
24181 (movep_src_operand): New predicate.
24182 (non_volatile_mem_operand): New predicate.
24183 * config/mips/mips.md (multimem): New type.
24184 (length): Differentiate between 17-bit and 18-bit branch offsets.
24185 (MOVEP1, MOVEP2): New mode iterator.
3fdb53c1 24186 (mov_<load>l): Use ZC constraint.
6941b508
CM
24187 (mov_<load>r): Likewise.
24188 (mov_<store>l): Likewise.
24189 (mov_<store>r): Likewise.
24190 (*branch_equality<mode>_inverted): Add microMIPS support.
24191 (*branch_equality<mode>): Likewise.
24192 (*jump_absolute): Likewise.
24193 (indirect_jump_<mode>): Likewise.
24194 (tablejump_<mode>): Likewise.
24195 (<optab>_internal): Likewise.
24196 (sibcall_internal): Likewise.
24197 (sibcall_value_internal): Likewise.
24198 (prefetch): Use constraint ZD.
24199 * config/mips/mips.opt (minterlink-compressed): New option.
24200 (minterlink-mips16): Now an alias for minterlink-compressed.
24201 (mmicromips): New option.
24202 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
24203 (compare_and_swap_12): Likewise.
24204 (sync_add<mode>): Likewise.
24205 (sync_<optab>_12): Likewise.
24206 (sync_old_<optab>_12): Likewise.
24207 (sync_new_<optab>_12): Likewise.
24208 (sync_nand_12): Likewise.
24209 (sync_old_nand_12): Likewise.
24210 (sync_new_nand_12): Likewise.
24211 (sync_sub<mode>): Likewise.
24212 (sync_old_add<mode>): Likewise.
24213 (sync_old_sub<mode>): Likewise.
24214 (sync_new_add<mode>): Likewise.
24215 (sync_new_sub<mode>): Likewise.
24216 (sync_<optab><mode>): Likewise.
24217 (sync_old_<optab><mode>): Likewise.
24218 (sync_new_<optab><mode>): Likewise.
24219 (sync_nand<mode>): Likewise.
24220 (sync_old_nand<mode>): Likewise.
24221 (sync_new_nand<mode>): Likewise.
24222 (sync_lock_test_and_set<mode>): Likewise.
24223 (test_and_set_12): Likewise.
24224 (atomic_compare_and_swap<mode>): Likewise.
24225 (atomic_exchange<mode>_llsc): Likewise.
24226 (atomic_fetch_add<mode>_llsc): Likewise.
24227 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
24228 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
24229 (umips_save_restore_pattern_p): Likewise.
24230 (umips_load_store_pair_p): Likewise.
24231 (umips_output_load_store_pair): Likewise.
24232 (umips_movep_target_p): Likewise.
24233 (umips_12bit_offset_address_p): Likewise.
24234 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
24235 (mips_base_mips16): Rename this...
24236 (mips_base_compression_flags): ...to this. Update all uses.
24237 (mips_attribute_table): Add micromips, nomicromips and nocompression.
24238 (mips_mips16_decl_p): Delete.
24239 (mips_nomips16_decl_p): Delete.
3fdb53c1 24240 (mips_get_compress_on_flags): New function.
6941b508
CM
24241 (mips_get_compress_off_flags): New function.
24242 (mips_get_compress_mode): New function.
24243 (mips_get_compress_on_name): New function.
24244 (mips_get_compress_off_name): New function.
24245 (mips_insert_attributes): Support multiple compression types.
24246 (mips_merge_decl_attributes): Likewise.
24247 (umips_12bit_offset_address_p): New function.
24248 (mips_start_function_definition): Emit .set micromips directive.
24249 (mips_call_may_need_jalx_p): New function.
24250 (mips_function_ok_for_sibcall): Add microMIPS support.
24251 (mips_print_operand_punctuation): Support short delay slots and
24252 compact jumps.
24253 (umips_swm_mask, umips_swm_encoding): New.
24254 (umips_build_save_restore): New function.
24255 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
24256 (was_mips16_p): Remove.
24257 (old_compression_mode): New.
24258 (mips_set_compression_mode): New function.
24259 (mips_set_current_function): Add microMIPS support.
24260 (mips_option_override): Likewise.
24261 (umips_save_restore_pattern_p): New function.
24262 (umips_output_save_restore): New function.
24263 (umips_load_store_pair_p_1): New function.
24264 (umips_load_store_pair_p): New function.
24265 (umips_output_load_store_pair_1): New function.
24266 (umips_output_load_store_pair): New function.
24267 (umips_movep_target_p) New function.
24268 (mips_prepare_pch_save): Add microMIPS support.
24269 * config/mips/mips.h (TARGET_COMPRESSION): New.
24270 (TARGET_CPU_CPP_BUILTINS): Update macro
24271 to use new compression flags and to support microMIPS.
24272 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
24273 (MIPS_ARCH_FLOAT_SPEC): Likewise.
24274 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
24275 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
24276 (ASM_SPEC): Support mmicromips and mno-micromips.
24277 (M16STORE_REG_P): New macro.
24278 (MIPS_CALL): Support TARGET_MICROMIPS.
24279 (MICROMIPS_J): New macro.
24280 (mips_base_mips16): Rename this...
24281 (mips_base_compression_flags): ...to this.
24282 (UMIPS_12BIT_OFFSET_P): New macro.
24283 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
24284 (MULTILIB_DIRNAMES): Likewise.
24285
cdebbc6d
JJ
242862013-02-24 Jakub Jelinek <jakub@redhat.com>
24287
24288 PR target/52555
24289 * target-globals.c (save_target_globals): For init_reg_sets and
24290 target_reinit remporarily set this_fn_optabs to this_target_optabs.
24291
18c63565
JG
242922013-02-22 James Grennahlgh <james.greenhalgh@arm.com>
24293
24294 * config/aarch64/aarch64-simd-builtins.def: Add copyright header.
24295 * config/aarch64/t-aarch64
24296 (aarch64-builtins.o): Depend on aarch64-simd-builtins.def.
24297
2194f7a2
VM
242982013-02-22 Vladimir Makarov <vmakarov@redhat.com>
24299
24300 PR inline-asm/56148
24301 * lra-constraints.c (process_alt_operands): Reload operand
24302 conflicting with earlier clobber only if no more other conflicting
24303 operands.
24304
7d613735
JJ
243052013-02-22 Jakub Jelinek <jakub@redhat.com>
24306
24307 PR sanitizer/56393
24308 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Link in libasan_preinit.o
24309 if not linking a shared library.
24310
ac8d93a7
SL
243112013-02-22 Seth LaForge <sethml@google.com>
24312
24313 * config.gcc (arm*-*-eabi*): Treat arm*eb as big-endian.
24314
e0237780
GY
243152013-02-22 Greta Yorsh <Greta.Yorsh@arm.com>
24316
3fdb53c1
TB
24317 * config/arm/arm.md (split for extendsidi): Update condition.
24318 (zero_extend<mode>di2,extend<mode>di2): Add an alternative.
24319 * config/arm/iterators.md (qhs_extenddi_cstr): Likewise.
24320 (qhs_zextenddi_cstr): Likewise.
e0237780 24321
d7fde18c
JJ
243222013-02-21 Jakub Jelinek <jakub@redhat.com>
24323
be63b77d
JJ
24324 PR middle-end/56420
24325 * expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Do subtraction in uhwi, to
24326 avoid signed wrapping.
24327 (expand_mult): Handle properly multiplication by
24328 ((dword_type) -1) << (BITS_PER_WORD - 1). Improve multiplication by
24329 ((dword_type) 1) << (BITS_PER_WORD - 1). Avoid undefined behavior
24330 in the compiler if coeff is HOST_WIDE_INT_MIN.
24331 (expand_divmod): Don't make ext_op1 static, change it's type to
24332 uhwi. Avoid undefined behavior in -INTVAL (op1).
24333
d7fde18c
JJ
24334 PR rtl-optimization/50339
24335 * lower-subreg.h (struct lower_subreg_choices): Add splitting_ashiftrt
24336 field.
24337 * lower-subreg.c (compute_splitting_shift): Handle ASHIFTRT.
24338 (compute_costs): Call compute_splitting_shift also for ASHIFTRT
24339 into splitting_ashiftrt field.
24340 (find_decomposable_shift_zext, resolve_shift_zext): Handle also
24341 ASHIFTRT.
24342 (dump_choices): Fix up printing LSHIFTRT choices, print ASHIFTRT
24343 choices.
24344
6aad4455
AH
243452013-02-20 Aldy Hernandez <aldyh@redhat.com>
24346
24347 PR middle-end/56108
24348 * trans-mem.c (execute_tm_mark): Do not expand transactions that
24349 are sure to go irrevocable.
24350
38fe784d
HPN
243512013-02-21 Hans-Peter Nilsson <hp@axis.com>
24352
24353 * doc/rtl.texi (vec_concat, vec_duplicate): Mention that
24354 scalars are valid operands.
24355
0fd44da3
MJ
243562013-02-21 Martin Jambor <mjambor@suse.cz>
24357
24358 PR tree-optimization/56310
24359 * ipa-cp.c (agg_replacements_to_vector): New parameter index, copy
24360 only matching indices and non-negative final offsets.
24361 (intersect_aggregates_with_edge): Pass src_idx to
24362 agg_replacements_to_vector. Pass src_idx insstead of index to
24363 intersect_with_agg_replacements.
24364
7a92038b
MJ
243652013-02-21 Martin Jambor <mjambor@suse.cz>
24366
24367 * ipa-cp.c (good_cloning_opportunity_p): Dump the real threshold
24368 instead of hard-wired defaults.
24369
c0da9c37
MR
243702013-02-21 Maciej W. Rozycki <macro@codesourcery.com>
24371
24372 * doc/invoke.texi (MIPS Options): Update documentation of the
24373 floating-point multiply-accumulate instruction restrictions.
24374
d247ea0c 243752013-02-21 Kostya Serebryany <kcc@google.com>
7df59255
KS
24376
24377 * config/i386/i386.c (ix86_asan_shadow_offset): Use 0x7fff8000 as
24378 asan_shadow_offset on x86_64 linux.
24379
22deefcb
RB
243802013-02-21 Richard Biener <rguenther@suse.de>
24381
24382 PR tree-optimization/56415
24383 Revert
24384 2013-02-11 Richard Biener <rguenther@suse.de>
24385
24386 PR tree-optimization/56273
24387 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
24388 first VRP run.
24389
7bcc6e75
JJ
243902013-02-21 Jakub Jelinek <jakub@redhat.com>
24391
a0ad148f
JJ
24392 PR bootstrap/56258
24393 * doc/invoke.texi (-fdump-rtl-pro_and_epilogue): Use @item
24394 instead of @itemx.
24395
7bcc6e75
JJ
24396 PR inline-asm/56405
24397 * expr.c (expand_expr_real_1) <case TARGET_MEM_REF, MEM_REF>: Don't
24398 use movmisalign or extract_bit_field for EXPAND_MEMORY modifier.
24399
a0a7b611
JH
244002013-02-20 Jan Hubicka <jh@suse.cz>
24401
24402 PR tree-optimization/56265
88b97037
UB
24403 * ipa-prop.c (ipa_make_edge_direct_to_target): Fixup callgraph
24404 when target is referenced for first time.
a0a7b611 24405
c0e50f72
RB
244062013-02-20 Richard Biener <rguenther@suse.de>
24407
24408 * tree-call-cdce.c (tree_call_cdce): Do not remove unused locals.
24409 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise.
24410 * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
24411 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do
24412 not return anything.
24413 (rename_ssa_copies): Do not remove unused locals.
24414 * tree-ssa-ccp.c (do_ssa_ccp): Likewise.
88b97037 24415 * tree-ssanames.c (pass_release_ssa_names): Remove unused locals first.
c0e50f72
RB
24416 * passes.c (execute_function_todo): Do not schedule unused locals
24417 removal if cleanup_tree_cfg did something.
24418 * tree-ssa-live.c (remove_unused_locals): Dump statistics
24419 about the number of removed locals.
24420
a52ca739
RB
244212013-02-20 Richard Biener <rguenther@suse.de>
24422
24423 PR tree-optimization/56398
88b97037 24424 * tree-vect-loop-manip.c (adjust_debug_stmts): Skip SSA default defs.
a52ca739 24425
ec9c9d1b
MJ
244262013-02-20 Martin Jambor <mjambor@suse.cz>
24427
24428 PR tree-optimization/55334
24429 * ipa-cp.c (initialize_node_lattices): Disable IPA-CP through and to
24430 restricted pointers to arrays.
24431
e91c8ed6 244322013-02-20 Richard Biener <rguenther@suse.de>
88b97037 24433 Jakub Jelinek <jakub@redhat.com>
e91c8ed6
RB
24434
24435 PR tree-optimization/56396
24436 * tree-ssa-ccp.c (n_const_val): New static variable.
24437 (get_value): Return NULL for SSA names we don't have a lattice
24438 entry for.
24439 (ccp_initialize): Initialize n_const_val.
24440 * tree-ssa-copy.c (n_copy_of): New static variable.
24441 (init_copy_prop): Initialize n_copy_of.
24442 (get_value): Return NULL_TREE for SSA names we don't have a
24443 lattice entry for.
24444
3d916479
MJ
244452013-02-20 Martin Jambor <mjambor@suse.cz>
24446
24447 * ipa-cp.c (initialize_node_lattices): Fix dumping condition.
24448
71a86758
RB
244492013-02-20 Richard Biener <rguenther@suse.de>
24450
24451 * genpreds.c (write_lookup_constraint): Do not compare first
24452 letter of the constraint again.
24453
79836a12
RB
244542013-02-20 Richard Biener <rguenther@suse.de>
24455
24456 * tree-ssa-loop-ivopts.c (alloc_use_cost_map): Use bitmap_count_bits
24457 and ceil_log2.
24458 (get_use_iv_cost): Terminate hashtable walk when coming across
24459 an empty entry.
24460
bbe4fb2c
IZ
244612013-02-20 Igor Zamyatin <igor.zamyatin@intel.com>
24462
24463 * config/i386/i386.c (initial_ix86_tune_features): Turn on fp
24464 reassociation for avx2 targets.
24465
a72d8780 244662012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
79836a12 24467
c77f83d5
EI
24468 * config/microblaze/microblaze.c: microblaze_has_clz = 0
24469 Add version check for v8.10.a to enable microblaze_has_clz
88b97037 24470 * config/microblaze/microblaze.h: Add TARGET_HAS_CLZ as combined
c77f83d5
EI
24471 version and TARGET_PATTERN_COMPARE check
24472 * config/microblaze/microblaze.md: New clzsi2 instruction
3fdb53c1 24473
a72d8780 244742012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
959434e6 24475
a72d8780 24476 * config/microblaze/microblaze.md (call_value_intern): Check symbol is
959434e6
EI
24477 function before branching.
24478
242387fa
AB
244792012-02-19 Andrey Belevantsev <abel@ispras.ru>
24480
24481 * sel-sched-dump.c (dump_insn_rtx_flags): Explicitly set
24482 DUMP_INSN_RTX_UID.
24483 (dump_insn_rtx_1): Pass PATTERN (insn) to str_pattern_slim.
24484
b4979ab9
AB
244852012-02-19 Andrey Belevantsev <abel@ispras.ru>
24486
24487 PR middle-end/55889
b4979ab9
AB
24488 * sel-sched.c: Include ira.h.
24489 (implicit_clobber_conflict_p): New function.
24490 (moveup_expr): Use it.
88b97037 24491 * Makefile.in (sel-sched.o): Depend on ira.h.
b4979ab9 24492
24d63016
RB
244932013-02-19 Richard Biener <rguenther@suse.de>
24494
24495 PR tree-optimization/56384
24496 * tree-ssa-sccvn.h (struct vn_phi_s): Add type member.
24497 (vn_hash_type): Split out from ...
24498 (vn_hash_constant_with_type): ... here.
24499 * tree-ssa-sccvn.c (vn_phi_compute_hash): Use vn_hash_type.
24500 (vn_phi_eq): Compare types from vn_phi_s structure.
24501 (vn_phi_lookup): Populate vn_phi_s type.
24502 (vn_phi_insert): Likewise.
24503
a475fd3d
JJ
245042013-02-19 Jakub Jelinek <jakub@redhat.com>
24505
47cc28f5
JJ
24506 PR tree-optimization/56350
24507 * tree-vect-loop.c (vectorizable_reduction): If orig_stmt, return false
24508 if haven't found reduction or nested cycle operand, rather than
24509 asserting we must find it.
24510
a475fd3d
JJ
24511 PR tree-optimization/56381
24512 * tree-ssa-pre.c (create_expression_by_pieces): Fix up last argument
24513 to fold_build3.
24514
245152013-02-18 Aldy Hernandez <aldyh@redhat.com>
135204dd
AH
24516 Jakub Jelinek <jakub@redhat.com>
24517
24518 PR target/52555
24519 * genopinit.c (raw_optab_handler): Use this_fn_optabs.
24520 (swap_optab_enable): Same.
24521 (init_all_optabs): Use argument instead of global.
88b97037 24522 * tree.h (struct tree_optimization_option): New field target_optabs.
135204dd
AH
24523 * expr.h (init_all_optabs): Add argument to prototype.
24524 (TREE_OPTIMIZATION_OPTABS): New.
24525 (save_optabs_if_changed): Protoize.
24526 * optabs.h: Declare this_fn_optabs.
24527 * optabs.c (save_optabs_if_changed): New.
24528 Declare this_fn_optabs.
24529 (init_optabs): Add argument to init_all_optabs() call.
24530 * function.c (invoke_set_current_function_hook): Handle per
24531 function optabs.
24532 * function.h (struct function): New field optabs.
24533 * config/mips/mips.c (mips_set_mips16_mode): Handle when
24534 optimization_current_node has changed.
24535 * target-globals.h (save_target_globals_default_opts): Protoize.
24536 * target-globals.c (save_target_globals_default_opts): New.
24537
3f587ca3
JDA
245382013-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
24539
24540 PR target/56347
24541 * config/pa/pa.c (pa_conditional_register_usage): On HP-UX, mark
24542 registers %fr12 and %fr12R as call used.
ceaca33e
JDA
24543
24544 PR target/56214
24545 * config/pa/predicates.md (base14_operand): Except for BLKmode, QImode
88b97037
UB
24546 and HImode, require all displacements to be an integer multiple of
24547 their mode size.
ceaca33e
JDA
24548 * config/pa/pa.c (pa_legitimate_address_p): For REG+BASE addresses,
24549 only allow QImode and HImode when reload is in progress and strict is
24550 true. Likewise for symbolic addresses. Use base14_operand to check
24551 displacements in REG+BASE addresses.
24552
fe0b4796
RB
245532013-02-18 Richard Biener <rguenther@suse.de>
24554
24555 PR tree-optimization/56366
24556 * tree-vect-loop.c (get_initial_def_for_induction): Properly
24557 handle sign-conversion of outer-loop initial induction value.
24558
6aaf596b
RB
245592013-02-18 Richard Biener <rguenther@suse.de>
24560
73db8ff1 24561 PR middle-end/56349
6aaf596b
RB
24562 * cfghooks.c (merge_blocks): If we merge a latch into another
24563 block adjust references to it.
24564 * cfgloop.c (flow_loops_find): Reset latch before recomputing it.
24565 (verify_loop_structure): Verify that a recorded latch is in fact
24566 a latch.
24567
5e97dfb6
RB
245682013-02-18 Richard Biener <rguenther@suse.de>
24569
24570 PR tree-optimization/56321
24571 * tree-ssa-reassoc.c (propagate_op_to_single_use): Properly
24572 order SSA name release and virtual operand unlinking.
24573
825527e8
EI
245742013-02-17 Edgar E. Iglesias <edgar.iglesias@gmail.com>
24575
24576 * config/microblaze/microblaze.md (save_stack_block): Define.
24577 (restore_stack_block): Likewise.
24578
debd11d9
EI
245792013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
24580
24581 * config/microblaze/linux.h (TARGET_SUPPORTS_PIC): Define as 1.
24582 * config/microblaze/microblaze.h (TARGET_SUPPORTS_PIC): Define as 1.
24583 * config/microblaze/microblaze.c (microblaze_option_override):
24584 Bail out early for PIC modes when target does not support PIC.
24585
8ec77be0
EI
245862013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
24587
88b97037 24588 * config/microblaze/microblaze.c (microblaze_asm_trampoline_template):
8ec77be0
EI
24589 Replace with a microblaze version.
24590 (microblaze_trampoline_init): Adapt for microblaze.
a752b80f 24591 * config/microblaze/microblaze.h (TRAMPOLINE_SIZE): Adapt for
8ec77be0
EI
24592 microblaze.
24593
b41288b3
JJ
245942013-02-16 Jakub Jelinek <jakub@redhat.com>
24595 Dodji Seketeli <dodji@redhat.com>
24596
24597 PR asan/56330
88b97037 24598 * asan.c (get_mem_refs_of_builtin_call): White space and style cleanup.
b41288b3
JJ
24599 (instrument_mem_region_access): Do not forget to always put
24600 instrumentation of the of 'base' and 'base + len' in a "if (len !=
24601 0) statement, even for cases where either 'base' or 'base + len'
24602 are not instrumented -- because they have been previously
24603 instrumented. Simplify the logic by putting all the statements
24604 instrument 'base + len' inside a sequence, and then insert that
24605 sequence right before the current insertion point. Then, to
24606 instrument 'base + len', just get an iterator on that statement.
24607 And do not forget to update the pointer to iterator the function
24608 received as argument.
24609
47918951
VM
246102013-02-15 Vladimir Makarov <vmakarov@redhat.com>
24611
24612 PR rtl-optimization/56348
24613 * lra-assigns.c (reload_pseudo_compare_func): Prefer bigger pseudos.
24614
3fb7c699
SB
246152013-02-15 Steven Bosscher <steven@gcc.gnu.org>
24616
24617 * graph.c (start_graph_dump): Print dumpfile base as digraph label.
24618 (clean_graph_dump_file): Pass base to start_graph_dump.
24619
576fe41a
RH
246202013-02-14 Richard Henderson <rth@redhat.com>
24621
24622 PR target/55941
24623 * lower-subreg.c (simple_move): Check dest mode instead of src mode.
24624
bb3accfa
SB
246252013-02-14 Steven Bosscher <steven@gcc.gnu.org>
24626
24627 * collect2-aix.h: Define F_LOADONLY.
24628
03143140
RB
246292013-02-14 Richard Biener <rguenther@suse.de>
24630
24631 PR lto/50494
24632 * varasm.c (output_constant_def_1): Get the decl representing
24633 the constant as argument.
24634 (output_constant_def): Wrap output_constant_def_1.
24635 (make_decl_rtl): Use output_constant_def_1 with the decl
24636 representing the constant.
24637 (build_constant_desc): Optionally re-use a decl already
24638 representing the constant.
24639 (tree_output_constant_def): Adjust.
24640
8fb06726
DS
246412013-02-14 Dodji Seketeli <dodji@redhat.com>
24642
24643 Fix an asan crash
24644 * asan.c (instrument_builtin_call): Really put the length of the
24645 second source argument into src1_len.
24646
c4bfe8bf
JJ
246472013-02-13 Jakub Jelinek <jakub@redhat.com>
24648
24649 * asan.c (create_cond_insert_point): Add create_then_fallthru_edge
24650 argument. If it is false, don't create edge from then_bb to
24651 fallthru_bb.
24652 (insert_if_then_before_iter): Pass true to it.
24653 (build_check_stmt): Pass false to it.
24654 (transform_statements): Flush hash table only on extended basic
24655 block boundaries, rather than at the beginning of every bb.
24656 Don't flush hash table on nonfreeing_call_p calls.
24657 * tree-flow.h (nonfreeing_call_p): New prototype.
24658 * tree-ssa-phiopt.c (nonfreeing_call_p): No longer static.
24659
7afe2801
DM
246602013-02-13 David S. Miller <davem@davemloft.net>
24661
24662 * expmed.c (expand_shift_1): Only strip scalar integer subregs.
24663
70cc3288
VM
246642013-02-13 Vladimir Makarov <vmakarov@redhat.com>
24665
24666 PR target/56184
24667 * ira.c (max_regno_before_ira): Move from ...
24668 (ira): ... here.
24669 (fix_reg_equiv_init): Use max_regno_before_ira instead of
24670 vec_safe_length.
24671
6422242b
JJ
246722013-02-13 Jakub Jelinek <jakub@redhat.com>
24673
24674 * config/i386/i386.c (ix86_asan_shadow_offset): Revert last change.
24675
976a81ee
RB
246762013-02-13 Richard Biener <rguenther@suse.de>
24677
24678 PR lto/56295
24679 * gimple-streamer-out.c (output_gimple_stmt): Undo wrapping
24680 globals in MEM_REFs.
24681
c1874a87
RB
246822013-02-13 Richard Biener <rguenther@suse.de>
24683
24684 * loop-init.c (loop_optimizer_init): Clear loop state when
24685 re-initializing preserved loops.
24686 * loop-unswitch.c (unswitch_single_loop): Return whether
24687 we unswitched the loop. Do not verify loop state here.
88b97037 24688 (unswitch_loops): When we unswitched a loop discover new loops.
c1874a87 24689
b4ab7d34
KS
246902013-02-13 Kostya Serebryany <kcc@google.com>
24691
88b97037
UB
24692 * config/i386/i386.c: Use 0x7fff8000 as asan_shadow_offset
24693 on x86_64 linux.
b4ab7d34
KS
24694 * sanitizer.def: Rename __asan_init to __asan_init_v1.
24695
bdcbe80c
DS
246962013-02-12 Dodji Seketeli <dodji@redhat.com>
24697
24698 Avoid instrumenting duplicated memory access in the same basic block
24699 * Makefile.in (asan.o): Add new dependency on hash-table.h
24700 * asan.c (struct asan_mem_ref, struct mem_ref_hasher): New types.
24701 (asan_mem_ref_init, asan_mem_ref_get_end, get_mem_ref_hash_table)
24702 (has_stmt_been_instrumented_p, empty_mem_ref_hash_table)
24703 (free_mem_ref_resources, has_mem_ref_been_instrumented)
24704 (has_stmt_been_instrumented_p, update_mem_ref_hash_table)
24705 (get_mem_ref_of_assignment): New functions.
24706 (get_mem_refs_of_builtin_call): Extract from
24707 instrument_builtin_call and tweak a little bit to make it fit with
24708 the new signature.
24709 (instrument_builtin_call): Use the new
24710 get_mem_refs_of_builtin_call. Use gimple_call_builtin_p instead
24711 of is_gimple_builtin_call.
24712 (instrument_derefs, instrument_mem_region_access): Insert the
24713 instrumented memory reference into the hash table.
24714 (maybe_instrument_assignment): Renamed instrument_assignment into
24715 this, and change it to advance the iterator when instrumentation
24716 actually happened and return true in that case. This makes it
24717 homogeneous with maybe_instrument_assignment, and thus give a
24718 chance to callers to be more 'regular'.
24719 (transform_statements): Clear the memory reference hash table
24720 whenever we enter a new BB, when we cross a function call, or when
24721 we are done transforming statements. Use
24722 maybe_instrument_assignment instead of instrumentation. No more
24723 need to special case maybe_instrument_assignment and advance the
24724 iterator after calling it; it's now handled just like
24725 maybe_instrument_call. Update comment.
24726
4861a1f7
RB
247272013-02-13 Richard Biener <rguenther@suse.de>
24728
24729 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
24730 Fix loop discovery code.
24731
1c86bd80
VM
247322013-02-12 Vladimir Makarov <vmakarov@redhat.com>
24733
24734 PR inline-asm/56148
24735 * lra-constraints.c (process_alt_operands): Match early clobber
70cc3288 24736 operand with itself. Check conflicts with earlyclobber only if
1c86bd80
VM
24737 the operand is not reloaded. Prefer to reload conflicting operand
24738 if earlyclobber and matching operands are the same.
24739
7cbda518
RB
247402013-02-12 Richard Biener <rguenther@suse.de>
24741
24742 PR lto/56297
24743 * lto-streamer-out.c (write_symbol): Do not output symbols
24744 for hard register variables.
24745
e68a4ef6
GJL
247462013-02-12 Georg-Johann Lay <avr@gjlay.de>
24747
24748 PR target/54222
24749 * config/avr/avr-dimode.md (umulsidi3, mulsidi3): New expanders.
24750 (umulsidi3_insn, mulsidi3_insn): New insns.
24751
a72d8780 247522013-02-12 Christophe Lyon <christophe.lyon@linaro.org>
2597da22
CL
24753
24754 * config/arm/arm-protos.h (struct cpu_vec_costs): New struct type.
24755 (struct tune_params): Add vec_costs field.
24756 * config/arm/arm.c (arm_builtin_vectorization_cost)
24757 (arm_add_stmt_cost): New functions.
24758 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST)
24759 (TARGET_VECTORIZE_ADD_STMT_COST): Define.
24760 (arm_default_vec_cost): New struct of type cpu_vec_costs.
24761 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
24762 (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune)
24763 (arm_cortex_a15_tune, arm_cortex_a5_tune, arm_cortex_a9_tune)
24764 (arm_v6m_tune, arm_fa726te_tune): Define new vec_costs field.
24765
43320568
RB
247662013-02-12 Richard Biener <rguenther@suse.de>
24767
24768 PR lto/56295
24769 * gimple-streamer-in.c (input_gimple_stmt): Strip MEM_REFs off
24770 decls again if possible.
24771
a011aa39
RB
247722013-02-12 Richard Biener <rguenther@suse.de>
24773
24774 PR middle-end/56288
24775 * tree-ssa.c (verify_ssa_name): Fix check, move
24776 SSA_NAME_IN_FREE_LIST check up.
24777
6da26889
JJ
247782013-02-12 Jakub Jelinek <jakub@redhat.com>
24779 Steven Bosscher <steven@gcc.gnu.org>
24780
24781 PR rtl-optimization/56151
24782 * optabs.c (add_equal_note): Don't return 0 if target is a MEM,
24783 equal to op0 or op1, and last_insn pattern is CODE operation
24784 with MEM dest and one of the operands matches that MEM.
24785
f80e0faf
ST
247862013-02-11 Sriraman Tallam <tmsriramgoogle.com>
24787
24788 * doc/extend.texi: Document Function Multiversioning and "default"
24789 parameter string to target attribute.
24790 * config/i386/i386.c (get_builtin_code_for_version): Return 0 if
24791 target attribute parameter is "default".
24792 (ix86_compare_version_priority): Remove checks for target attribute.
24793 (ix86_mangle_function_version_assembler_name): Change error to sorry.
24794 Remove check for target attribute equal to NULL. Add assert.
24795 (ix86_generate_version_dispatcher_body): Change error to sorry.
24796
6c59ffd1
IS
247972013-02-11 Iain Sandoe <iain@codesourcery.com>
24798 Jack Howarth <howarth@bromo.med.uc.edu>
24799 Patrick Marlier <patrick.marlier@gmail.com>
24800
24801 PR libitm/55693
24802 * config/darwin.h: Replace ENDFILE_SPEC with TM_DESTRUCTOR and
24803 define ENDFILE_SPEC as TM_DESTRUCTOR.
24804 * config/i386/darwin.h (ENDFILE_SPEC): Use TM_DESTRUCTOR.
24805
a72d8780 248062013-02-11 Alexander Potapenko <glider@google.com>
6a52ccb3
AP
24807 Jack Howarth <howarth@bromo.med.uc.edu>
24808 Jakub Jelinek <jakub@redhat.com>
24809
24810 PR sanitizer/55617
24811 * config/darwin.c (cdtor_record): Rename ctor_record.
24812 (sort_cdtor_records): Rename sort_ctor_records.
24813 (finalize_dtors): New routine to sort destructors by
24814 priority before use in assemble_integer.
24815 (machopic_asm_out_destructor): Use finalize_dtors if needed.
24816
b63fe007
UB
248172013-02-11 Uros Bizjak <ubizjak@gmail.com>
24818
24819 PR rtl-optimization/56275
24820 * simplify-rtx.c (avoid_constant_pool_reference): Check that
24821 offset is non-negative and less than cmode size before
24822 calling simplify_subreg.
24823
8e89b5b5
RB
248242013-02-11 Richard Biener <rguenther@suse.de>
24825
24826 PR tree-optimization/56264
24827 * cfgloop.h (fix_loop_structure): Adjust prototype.
24828 * loop-init.c (fix_loop_structure): Return the number of
24829 newly discovered loops.
24830 * tree-cfgcleanup.c (repair_loop_structures): When new loops
24831 are discovered, do a full loop-closed SSA rewrite.
24832
b4a4b56d
RB
248332013-02-11 Richard Biener <rguenther@suse.de>
24834
24835 PR tree-optimization/56273
24836 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
24837 first VRP run.
24838 (check_array_ref): Fix missing newline in dumps.
24839 (search_for_addr_array): Likewise.
24840
0c885229
DE
248412013-02-09 David Edelsohn <dje.gcc@gmail.com>
24842
24843 * config/rs6000/aix61.h (OS_MISSING_ALTIVEC): Undefine.
24844
59ac9a55
JJ
248452013-02-09 Jakub Jelinek <jakub@redhat.com>
24846
24847 PR target/56256
24848 * config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Define.
24849
25bb0bb5
VM
248502013-02-08 Vladimir Makarov <vmakarov@redhat.com>
24851
24852 PR rtl-optimization/56246
0c885229 24853 * lra-constraints.c (simplify_operand_subreg): Try to reuse
25bb0bb5
VM
24854 reload pseudo.
24855 * lra.c (lra): Clear lra_optional_reload_pseudos only when all
24856 constraints are satisfied.
24857
a698cc03
JL
248582013-02-08 Jeff Law <law@redhat.com>
24859
24860 PR debug/53948
24861 * emit-rtl.c (reg_is_parm_p): New function.
24862 * regs.h (reg_is_parm_p): New prototype.
24863 * ira-conflicts.c (ira_build_conflicts): Allow parameters in
24864 callee-clobbered registers.
24865
e1122ddd
MM
248662013-02-08 Michael Meissner <meissner@linux.vnet.ibm.com>
24867
24868 PR target/56043
24869 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass):
24870 If there is no implicit builtin declaration, just return NULL.
24871
19c5f6e6
UB
248722013-02-08 Uros Bizjak <ubizjak@gmail.com>
24873
24874 * config/i386/sse.md (FMAMODEM): New mode iterator.
24875 (fma<mode>4, fms<mode>4, fnma<mode>4, fnms<mode>4): Use FMAMODEM
24876 mode iterator. Do not use TARGET_SSE_MATH in insn constraint.
24877
2480f2ca 248782013-02-08 Uros Bizjak <ubizjak@gmail.com>
76ef61fb 24879
2480f2ca
UB
24880 * config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Define only
24881 when HAVE_GAS_CFI_PERSONALITY_DIRECTIVE is set.
24882 * config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): Ditto.
24883
248842013-02-08 Edgar E. Iglesias <edgar.iglesias@gmail.com>
24885
24886 * config.gcc (microblaze*-linux*): Add TARGET_BIG_ENDIAN_DEFAULT.
24887 (microblaze*-*-elf): Likewise.
24888 * config/microblaze/linux.h: Add -mbig-endian / -mlittle-endian to
24889 LINK_SPEC.
24890 * config/microblaze/microblaze-c.c: Add builtin defines for
24891 _LITTLE_ENDIAN and _BIG_ENDIAN.
24892 * config/microblaze/microblaze.h: Add TARGET_ENDIAN_DEFAULT and
24893 add to TARGET_DEFAULT flags.
76ef61fb 24894 Expand ASM_SPEC and LINK_SPEC.
2480f2ca
UB
24895 Update BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN.
24896 * config/microblaze/microblaze.md: Update extendsidi2 and
24897 movdi_internal instructions to use low-order / high-order reg
24898 print_operands.
24899 * config/microblaze/microblaze.opt: Add mbig-endian and mlittle-endian
24900 options and inversemask / mask of LITTLE_ENDIAN.
24901 * config/microblaze/t-microblaze: Expand multilib options to
24902 include mlittle-endian (le) and update exceptions patterns.
24903
600a5961
JJ
249042013-02-08 Jakub Jelinek <jakub@redhat.com>
24905
5df81313
JJ
24906 PR rtl-optimization/56195
24907 * lra-constraints.c (get_reload_reg): Don't reuse regs
24908 if they have smaller mode than requested, if they have
24909 wider mode than requested, try to return a SUBREG.
24910
600a5961
JJ
24911 PR tree-optimization/56250
24912 * fold-const.c (extract_muldiv_1) <case NEGATE_EXPR>: Don't optimize
24913 if type is unsigned and code isn't MULT_EXPR.
24914
ff544649
GJL
249152013-02-08 Georg-Johann Lay <avr@gjlay.de>
24916
24917 PR tree-optimization/56064
24918 * fixed-value.c (fixed_from_double_int): Sign/zero extend payload
24919 bits according to mode.
24920 * fixed-value.h (fixed_from_double_int)
24921 (const_fixed_from_double_int): Adjust comments.
24922
e45cde98
RB
249232013-02-08 Richard Biener <rguenther@suse.de>
24924
24925 PR lto/56231
24926 * lto-streamer.h (struct data_in): Remove current_file, current_line
24927 and current_col members.
24928 * lto-streamer-out.c (lto_output_location): Stream changed bits
24929 en-block for efficiency.
24930 * lto-streamer-in.c (clear_line_info): Remove.
24931 (lto_input_location): Cache current file, line and column
24932 globally via local statics. Read changed bits en-block.
24933 (input_function): Do not call clear_line_info.
24934 (lto_read_body): Likewise.
24935 (lto_input_toplevel_asms): Likewise.
24936
c1ca73d8
MM
249372013-02-08 Michael Matz <matz@suse.de>
24938
24939 PR tree-optimization/52448
24940 * tree-ssa-phiopt.c (struct name_to_bb): Add phase member.
24941 (nt_call_phase): New static.
24942 (add_or_mark_expr): Only mark accesses with newer phase than any
24943 call seen.
24944 (nonfreeing_call_p): New.
24945 (nt_init_block): Update nt_call_phase, mark blocks as visited.
24946 (nt_fini_block): Keep blocks marked as visited.
24947 (get_non_trapping): Initialize nt_call_phase, and reset aux pointer.
24948
57548aa2
RB
249492013-02-08 Richard Biener <rguenther@suse.de>
24950
24951 * ira.c (ira): Free broken dominator information.
24952
8e10366f
UB
249532013-02-08 Uros Bizjak <ubizjak@gmail.com>
24954
24955 * config/i386/i386.c (ix86_spill_class): Use INTEGER_CLASS_P macro.
24956
f64fb0fa
MP
249572013-02-08 Marek Polacek <polacek@redhat.com>
24958
8e10366f 24959 * cfgloop.c (verify_loop_structure): Add more checking of headers.
f64fb0fa 24960
0375167b
RB
249612013-02-08 Richard Biener <rguenther@suse.de>
24962
24963 PR middle-end/56181
24964 * cfgloop.h (flow_loops_find): Adjust.
24965 (bb_loop_header_p): Declare.
24966 * cfgloop.c (bb_loop_header_p): New function split out from ...
24967 (flow_loops_find): ... here. Adjust function signature,
24968 support incremental loop structure update.
24969 (verify_loop_structure): Cleanup. Verify a loop is a loop.
24970 * cfgloopmanip.c (fix_loop_structure): Move ...
24971 * loop-init.c (fix_loop_structure): ... here.
24972 (apply_loop_flags): Split out from ...
24973 (loop_optimizer_init): ... here.
24974 (fix_loop_structure): Use apply_loop_flags. Use flow_loops_find
24975 in incremental mode, only remove dead loops here.
24976
85d768f3
GJL
249772013-02-08 Georg-Johann Lay <avr@gjlay.de>
24978
24979 PR target/54222
24980 * config/avr/avr.md (unspec) <UNSPEC_ROUND>: Add.
24981 * config/avr/avr-fixed.md (ALL4QA, ALL124QA): New mode iterators.
24982 (round<mode>3, round<mode>3_const): New expanders for fixed-mode.
24983 (*round<mode>3.libgcc): New insns for fixed-modes.
24984 * config/avr/builtins.def (ABSxx): Use a non-NULL LIBNAME.
24985 (ROUNDxx, COUNTLSxx, BITSxx, xxBITS): New DEF_BUILTINs.
24986 (ROUNDFX, COUNTLSFX, ABSFX): New DEF_BUILTINs.
24987 * config/avr/stdfix.h (absFX, bitsFX, FXbits): Remove inline
24988 implementations. Define to __builtin_avr_absFX,
24989 __builtin_avr_bitsFX, __builtin_avr_FXbits, respectively.
24990 (roundFX, countlsFX): Define to __builtin_avr_roundFX,
24991 __builtin_avr_countlsFX, respectively.
24992 * config/avr/avr-c.c (target.h): Include it.
24993 (enum avr_builtin_id): New enum.
24994 (avr_resolve_overloaded_builtin): New static function.
24995 (avr_register_target_pragmas): Use it to set
24996 targetm.resolve_overloaded_builtin.
24997 * config/avr/avr.c (avr_init_builtins): Supply myriads of local
24998 tree nodes used by DEF_BUILTIN.
24999 (avr_expand_builtin) <AVR_BUILTIN_ROUNDxx>: Sanity-check them.
25000 (avr_fold_builtin) <AVR_BUILTIN_BITSxx>: Fold to VIEW_COVERT_EXPR.
25001 <AVR_BUILTIN_xxBITS>: Same.
25002
661bc682
RB
250032013-02-08 Richard Biener <rguenther@suse.de>
25004
25005 * cfgloop.c (verify_loop_structure): Properly handle
25006 a loop exiting to another loop header.
25007 * ira-int.h (ira_loops): Remove.
25008 * ira.c (ira_loops): Remove.
25009 (ira): Use loop_optimizer_init and loop_optimizer_finalize.
25010 (do_reload): Use loop_optimizer_finalize.
25011 * ira-build.c (create_loop_tree_nodes): Use get_loops and
25012 number_of_loops to access the loop tree.
25013 (more_one_region_p): Likewise.
25014 (finish_loop_tree_nodes): Likewise.
25015 (rebuild_regno_allocno_maps): Likewise.
25016 (mark_loops_for_removal): Likewise.
25017 (mark_all_loops_for_removal): Likewise.
25018 (remove_unnecessary_regions): Likewise.
25019 (ira_build): Likewise.
25020 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
25021
0d5049b2
RB
250222013-02-08 Richard Biener <rguenther@suse.de>
25023
25024 * Makefile.in (tree-tailcall.o): Add $(CFGLOOP_H) dependency.
25025 * ipa-pure-const.c (analyze_function): Avoid calling
25026 mark_irreducible_loops twice.
8e10366f 25027 * tree-tailcall.c (tree_optimize_tail_calls_1): Mark loops for fixup.
0d5049b2 25028
499f32e8
DM
250292013-02-07 David S. Miller <davem@davemloft.net>
25030
25031 * dwarf2out.c (based_loc_descr): Perform leaf register remapping
25032 on 'reg'.
25033 * var-tracking.c (vt_add_function_parameter): Test the presence of
25034 HAVE_window_save properly and do not remap argument registers when
25035 we have a leaf function.
25036
6edc3e32
UB
250372013-02-07 Uros Bizjak <ubizjak@gmail.com>
25038
25039 PR bootstrap/56227
25040 * ggc-page.c (ggc_print_statistics): Use HOST_LONG_LONG_FORMAT
25041 instead of "ll".
25042 * config/i386/i386.c (ix86_print_operand): Ditto.
25043
5306401f
VM
250442013-02-07 Vladimir Makarov <vmakarov@redhat.com>
25045
6edc3e32 25046 * lra-constraints.c (process_alt_operands): Fix recently added comment.
5306401f 25047
027ece11
VM
250482013-02-07 Vladimir Makarov <vmakarov@redhat.com>
25049
25050 PR rtl-optimization/56225
25051 * lra-constraints.c (process_alt_operands): Check that reload hard
25052 reg can hold value for strict_low_part.
25053
f980dfdb
JJ
250542013-02-07 Jakub Jelinek <jakub@redhat.com>
25055
25056 PR debug/56154
25057 * dwarf2out.c (dwarf2_debug_hooks): Set end_function hook to
25058 dwarf2out_end_function.
25059 (in_first_function_p, maybe_at_text_label_p,
25060 first_loclabel_num_not_at_text_label): New variables.
25061 (dwarf2out_var_location): In the first function find out
6edc3e32 25062 lowest loclabel_num N where .LVLN is known not to be equal to .Ltext0.
f980dfdb
JJ
25063 (find_empty_loc_ranges_at_text_label, dwarf2out_end_function): New
25064 functions.
25065
73dd3123
EB
250662013-02-07 Eric Botcazou <ebotcazou@adacore.com>
25067
25068 PR rtl-optimization/56178
25069 * cse.c (cse_insn): Do not create a REG_EQUAL note if the source is a
25070 SUBREG of a register. Tidy up related block of code.
25071 * fwprop.c (forward_propagate_and_simplify): Do not create a REG_EQUAL
25072 note if the source is a register or a SUBREG of a register.
25073
e3936f47
JJ
250742013-02-07 Jakub Jelinek <jakub@redhat.com>
25075
25076 PR target/56228
25077 * config/rs6000/rs6000.md (ptrm): New mode attr.
25078 (call_indirect_aix<ptrsize>, call_indirect_aix<ptrsize>_nor11,
25079 call_value_indirect_aix<pttrsize>,
25080 call_value_indirect_aix<pttrsize>_nor11): Use <ptrm> instead of
25081 m in constraints.
25082
d96d674b
MH
250832013-02-07 Michael Haubenwallner <michael.haubenwallner@salomon.at>
25084
25085 * collect2.c (main): Set aix64_flag for -G and -bsvr4 too, disable
25086 if -bnortl. Convert to strcmp and strncmp.
25087
921f2dee
AM
250882013-02-07 Alan Modra <amodra@gmail.com>
25089
25090 PR target/54009
25091 * config/rs6000/rs6000.c (mem_operand_gpr): Check that LO_SUM
25092 addresses won't wrap when offsetting.
25093 (rs6000_secondary_reload): Provide secondary reloads needed for
25094 wrapping LO_SUM addresses.
25095
d09c7dba
TS
250962013-02-06 Thomas Schwinge <thomas@codesourcery.com>
25097
25098 * config/gnu.h (GNU_USER_TARGET_OS_CPP_BUILTINS): Never define
25099 MACH, just __MACH__.
25100
a44bbd48
RB
251012013-02-06 Richard Biener <rguenther@suse.de>
25102
25103 * tracer.c (tracer): Mark loops with LOOPS_NEED_FIXUP
25104 instead of calling fix_loop_structure.
25105
6d840d99
JJ
251062013-02-06 Jakub Jelinek <jakub@redhat.com>
25107
25108 PR middle-end/56217
25109 * omp-low.c (use_pointer_for_field): Return false if
25110 lower_send_shared_vars doesn't generate any copy-out code.
25111
0f33baa9
TV
251122013-02-06 Tom de Vries <tom@codesourcery.com>
25113
25114 PR rtl-optimization/56131
25115 * cfgrtl.c (delete_insn): Use NOTE_BASIC_BLOCK instead of BLOCK_FOR_INSN
25116 to get the bb of a NOTE_INSN_BASIC_BLOCK. Handle the case that the bb
25117 of the label is NULL. Add comment.
25118
11f1e3ab
JJ
251192013-02-05 Jakub Jelinek <jakub@redhat.com>
25120
31502f9f
JJ
25121 * tree.h (struct tree_decl_with_vis): Remove thread_local field.
25122
a74db9bd
JJ
25123 PR sanitizer/55374
25124 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Define.
25125 (STATIC_LIBTSAN_LIBS): Likewise.
25126 * gcc.c (ADD_STATIC_LIBTSAN_LIBS, LIBTSAN_EARLY_SPEC): Define.
25127 (LIBTSAN_SPEC): Add ADD_STATIC_LIBTSAN_LIBS, if LIBTSAN_EARLY_SPEC
25128 is defined, don't add anything else beyond that.
25129 (SANITIZER_EARLY_SPEC, SANITIZER_SPEC): Define.
25130 (LINK_COMMAND_SPEC): Use them.
25131
11f1e3ab
JJ
25132 PR tree-optimization/56205
25133 * tree-stdarg.c (check_all_va_list_escapes): Return true if
25134 there are any PHI nodes that set non-va_list_escape_vars SSA_NAME
25135 and some va_list_escape_vars SSA_NAME appears in some PHI argument.
25136
14ac6aa2
RB
251372013-02-05 Richard Biener <rguenther@suse.de>
25138
25139 PR tree-optimization/53342
25140 PR tree-optimization/53185
25141 * tree-vectorizer.h (vect_check_strided_load): Remove.
25142 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do
25143 not disallow peeling for vectorized strided loads.
25144 (vect_check_strided_load): Make static and simplify.
25145 (vect_analyze_data_refs): Adjust.
25146 * tree-vect-stmts.c (vectorizable_load): Handle peeled loops
25147 correctly when vectorizing strided loads.
25148
6f22445a
RB
251492013-02-05 Richard Biener <rguenther@suse.de>
25150
25151 * doc/install.texi: Refer to ISL, not PPL.
25152
39f9719e
JH
251532013-02-05 Jan Hubicka <jh@suse.cz>
25154
ec4224ac
JH
25155 PR tree-optimization/55789
25156 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): Drop to 1.
25157
251582013-02-05 Jan Hubicka <jh@suse.cz>
25159
25160 PR tree-optimization/55789
39f9719e
JH
25161 * cgraphclones.c (cgraph_remove_node_and_inline_clones): Remove
25162 the dead call anyway.
25163
956d3b33
EB
251642013-02-05 Eric Botcazou <ebotcazou@adacore.com>
25165
25166 PR sanitizer/55374
25167 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Add missing guard.
25168
251692013-02-04 Alexander Potapenko <glider@google.com>
25170 Jack Howarth <howarth@bromo.med.uc.edu>
ae526fe5
AP
25171 Jakub Jelinek <jakub@redhat.com>
25172
25173 PR sanitizer/55617
25174 * config/darwin.c (sort_ctor_records): Stabilized qsort
25175 on constructor priority by using original position.
25176 (finalize_ctors): New routine to sort constructors by
25177 priority before use in assemble_integer.
25178 (machopic_asm_out_constructor): Use finalize_ctors if needed.
25179
7ac3af38
JJ
251802013-02-04 Jakub Jelinek <jakub@redhat.com>
25181
25182 PR libstdc++/54314
25183 * config/i386/winnt.c (i386_pe_assemble_visibility): Don't warn
25184 about visibility on artificial decls.
25185 * config/sol2.c (solaris_assemble_visibility): Likewise.
25186
152689dc
KT
251872013-02-04 Kai Tietz <ktietz@redhat.com>
25188
25189 PR target/56186
25190 * config/i386/i386.c (function_value_ms_64): Add additional valtype
25191 argument and improve checking of return-argument types for 16-byte
25192 modes.
25193 (ix86_function_value_1): Add additional valtype argument on call
25194 of function_value_64.
25195 (return_in_memory_ms_64): Sync 16-byte sized mode handling with
25196 handling infunction_value_64 function.
25197
2b5987b5
MGD
251982013-02-04 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
25199
7ac3af38 25200 * reload.c (subst_reloads): Fix DEBUG_RELOAD build issue.
2b5987b5 25201
14597080
RB
252022013-02-04 Richard Biener <rguenther@suse.de>
25203
25204 PR tree-optimization/56188
25205 * tree-ssa-structalias.c (label_visit): Consider case with
25206 initially non-empty points-to set.
25207 (perform_var_substitution): Dump node mapping and clean up.
25208
ed73881e
RG
252092013-02-04 Richard Guenther <rguenther@suse.de>
25210
25211 PR lto/56168
25212 * lto-symtab.c (lto_symtab_merge_decls_1): Make non-builtin
25213 node prevail as last resort.
25214 (lto_symtab_merge_decls): Remove guard on LTRANS here.
6edc3e32 25215 (lto_symtab_prevailing_decl): Builtins are their own prevailing decl.
ed73881e 25216
139a0707
RB
252172013-02-04 Richard Biener <rguenther@suse.de>
25218
25219 PR tree-optimization/56113
25220 * tree-ssa-structalias.c (equiv_class_lookup, equiv_class_add):
25221 Merge into ...
25222 (equiv_class_lookup_or_add): ... this.
25223 (label_visit): Adjust and fix error in previous patch.
25224 (perform_var_substitution): Adjust.
25225
50fe8924
OE
252262013-02-03 Oleg Endo <olegendo@gcc.gnu.org>
25227
25228 * config/sh/divtab.c: Fix formatting and comments throughout the file.
25229 * config/sh/sh4-300.md: Likewise.
25230 * config/sh/sh4a.md: Likewise.
25231 * config/sh/constraints.md: Likewise.
25232 * config/sh/sh.md: Likewise.
25233 * config/sh/netbsd-elf.h: Likewise.
25234 * config/sh/predicates.md: Likewise.
25235 * config/sh/sh-protos.h: Likewise.
25236 * config/sh/ushmedia.h: Likewise.
25237 * config/sh/linux.h: Likewise.
25238 * config/sh/sh.c: Likewise.
25239 * config/sh/superh.h: Likewise.
25240 * config/sh/elf.h: Likewise.
25241 * config/sh/sh4.md: Likewise.
25242 * config/sh/sh.h: Likewise.
25243
1a04ac2b
JDA
252442013-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
25245
25246 * config/pa/constraints.md: Adjust unused letters. Change "T"
25247 constraint to match_test floating_point_store_memory_operand().
25248 * config/pa/predicates.md (reg_plus_base_memory_operand): New.
25249 (base14_operand): New.
25250 (floating_point_store_memory_operand): New.
25251 (integer_store_memory_operand): Revise to use base14_operand and
25252 reg_plus_base_memory_operand.
25253 (move_dest_operand): Allow symbolic_memory_operands.
25254 (symbolic_memory_operand): Check for LO_SOM.
25255 (symbolic_operand): Change default case to break.
25256 * config/pa/pa.md: Remove unamed DFmode and SFmode patterns to force
25257 CONST_DOUBLE values to be reloaded by putting them into memory when
25258 the destination is a floating point register.
25259 (movdf): Remove code to handle CONST_DOUBLE.
25260 (movsf): Likewise.
25261 (reload_indf_r1): New.
25262 (reload_insf_r1): New.
25263 Consistently use "Q" and "T" constraints with integer and floating
25264 point move instructions, respectively.
25265 (movdi): Remove FAIL.
25266 Change predicate for source operand unamed DImode move from
25267 general_operand to move_src_operand.
25268 (umulsidi3): Change predicate for destination operand to
25269 register_operand.
25270 Likewise for similar unamed patterns.
25271 * config/pa/pa-protos.h (pa_legitimize_reload_address): Declare.
25272 * config/pa/pa.c (pa_symbolic_expression_p): Remove extra parenthesis.
25273 (hppa_legitimize_address): Simplify mask calculation.
25274 (pa_emit_move_sequence): Revised handling of secondary reloads from
25275 REG+D addresses for floating point loads and stores. Directly handle
25276 loading CONST0_RTX (mode) to a floating point register.
25277 (pa_secondary_reload): Handle reloading DF and SFmode constant values
25278 to floating point registers. Don't restrict secondary reloads to
25279 floating point registers to integer modes. Revise some comments and
25280 cleanup some code.
25281 (TARGET_LEGITIMATE_ADDRESS_P): Define.
25282 (pa_legitimate_address_p): New.
25283 (pa_legitimize_reload_address): New.
25284 * config/pa/pa.h (STRICT_REG_OK_FOR_INDEX_P): New.
25285 (STRICT_REG_OK_FOR_BASE_P): New.
25286 (GO_IF_LEGITIMATE_ADDRESS): Delete. Update some related comments.
25287 (LEGITIMIZE_RELOAD_ADDRESS): Revise to use pa_legitimize_reload_address.
25288
3bf65591
DE
252892013-02-03 David Edelsohn <dje.gcc@gmail.com>
25290 Andrew Dixie <andrewd@gentrack.com>
25291
25292 * collect2.c (GCC_CHECK_HDR): Do not scan objects with F_LOADONLY
25293 flag set.
25294
c0a8a3e6
RS
252952013-02-03 Richard Sandiford <rdsandiford@googlemail.com>
25296
25297 * expmed.c (extract_bit_field_1): Pass the full width of the
25298 structure to get_best_reg_extraction_insn.
25299
99113dff
DE
253002013-02-01 David Edelsohn <dje.gcc@gmail.com>
25301
25302 PR target/54601
25303 * configure.ac (use_cxa_atexit): Add AIX.
25304 * configure: Regenerate.
25305
25306 * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtcxa.o.
25307
ddd84654
JJ
253082013-02-01 Jakub Jelinek <jakub@redhat.com>
25309
25310 PR debug/54793
25311 * final.c (need_profile_function): New variable.
25312 (final_start_function): Drop ATTRIBUTE_UNUSED from first argument.
25313 If first of NOTE_INSN_BASIC_BLOCK or NOTE_INSN_FUNCTION_BEG
25314 is only preceeded by NOTE_INSN_VAR_LOCATION or NOTE_INSN_DELETED
25315 notes, targetm.asm_out.function_prologue doesn't emit anything,
25316 HAVE_prologue and profiler should be emitted before prologue,
25317 set need_profile_function instead of emitting it.
25318 (final_scan_insn): If need_profile_function, emit
25319 profile_function on the first NOTE_INSN_BASIC_BLOCK or
25320 NOTE_INSN_FUNCTION_BEG note.
25321
253222013-02-01 Richard Henderson <rth@redhat.com>
749af8ee
RH
25323
25324 * config/rs6000/rs6000.md (smulditi3): New.
25325 (umulditi3): New.
25326
ff2a9d88
RH
25327 * config/alpha/alpha.md (umulditi3): New.
25328
14d52b90
DE
253292013-02-01 David Edelsohn <dje.gcc@gmail.com>
25330
25331 * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_COMMON): Use floor_log2.
25332 (ASM_OUTPUT_ALIGNED_LOCAL): New.
25333
8c7ca45c
RB
253342013-02-01 Richard Biener <rguenther@suse.de>
25335
25336 PR tree-optimization/56113
25337 * tree-ssa-structalias.c (label_visit): Reduce work for
25338 single-predecessor nodes.
25339
9f419393
EB
253402013-02-01 Eric Botcazou <ebotcazou@adacore.com>
25341
25342 * fold-const.c (make_range_step) <TRUTH_NOT_EXPR>: Bail out if the
25343 range isn't testing for zero.
25344
c5f4be84
SB
253452013-01-31 Steven Bosscher <steven@gcc.gnu.org>
25346
25347 PR middle-end/56113
25348 * fwprop.c (fwprop_init): Set up loops without CFG modifications.
25349
dbdbd982
NC
253502013-01-31 Hiroyuki Ono <hiroyuki.ono.jc@renesas.com>
25351 Nick Clifton <nickc@redhat.com>
25352
25353 * config/v850/constraints.md (Q): Define as a memory constraint.
25354 * config/v850/predicates.md (label_ref_operand): New predicate.
25355 (e3v5_shift_operand): New predicate.
25356 (ior_operator): New predicate.
25357 * config/v850/t-v850: Add e3v5 multilib.
25358 * config/v850/v850-protos.h (v850_adjust_insn_length): Prototype.
25359 (v850_gen_movdi): Prototype.
25360 * config/v850/v850.c: Add support for e3v5 architecture.
25361 Rename all uses of TARGET_V850E || TARGET_V850E2_ALL to
25362 TARGET_V850E_UP.
25363 (construct_save_jarl): Add e3v5 long JARL support.
25364 (v850_adjust_insn_length): New function. Adjust length of call
25365 insns when using e3v5 instructions.
25366 (v850_gen_movdi): New function: Generate instructions to move a
25367 DImode value.
25368 * config/v850/v850.h (TARGET_CPU_v850e3v5): Define.
25369 (CPP_SPEC): Define __v850e3v5__ as appropriate.
25370 (TARGET_USE_FPU): Enable for e3v5.
25371 (CONST_OK_FOR_W): New macro.
25372 (ADJUST_INSN_LENGTH): Define.
25373 * config/v850/v850.md (UNSPEC_LOOP): Define.
25374 (attr cpu): Add v850e3v5.
25375 Rename all uses of TARGET_V850E2 to TARGET_V850E2V3_UP.
25376 (movdi): New pattern.
25377 (movdi_internal): New pattern.
25378 (cbranchsf4): Conditionalize on TARGET_USE_FPU.
25379 (cbranchdf4): Conditionalize on TARGET_USE_FPU.
25380 (cstoresf4): Likewise.
25381 (cstoredf4): Likewise.
25382 (insv): New pattern.
25383 (rotlso3_a): New pattern.
25384 (rotlsi3_b): New pattern
25385 (rotlsi3_v850e3v5): New pattern.
25386 (doloop_begin): New pattern.
25387 (fix_loop_counter): New pattern.
25388 (doloop_end): New pattern.
25389 (branch_normal): Add e3v5 long branch support.
25390 (branch_invert): Likewise.
25391 (branch_z_normal): Likewise.
25392 (branch_z_invert): Likewise.
25393 (branch_nz_normal): Likewise.
25394 (branch_nz_invert): Likewise.
25395 (call_internal_short): Add e3v5 register-indirect JARL support.
25396 (call_internal_long): Likewise.
25397 (call_value_internal_short): Likewise.
25398 (call_value_internal_long): Likewise.
25399 * config/v850/v850.opt (mv850e3v5, mv850e2v4): New options.
25400 (mloop): New option.
25401 * config.gcc: Add support for configuring v840e3v5 target.
6edc3e32 25402 * doc/invoke.texi: Document new v850 specific command line options.
dbdbd982 25403
73861a41
PK
254042013-01-31 Paul Koning <ni1d@arrl.net>
25405
25406 PR debug/55059
25407 PR debug/54508
25408 * dwarf2out.c (prune_unused_types_mark): Mark all of parent's
25409 children if parent is a class.
25410 (prune_unused_types_prune): Don't add DW_AT_declaration.
25411
e44978dc
RB
254122013-01-31 Richard Biener <rguenther@suse.de>
25413
25414 PR tree-optimization/56157
25415 * tree-vect-slp.c (vect_get_slp_defs): More thoroughly try to
25416 match up operand with SLP child.
25417
90b10dec
JM
254182013-01-31 Jason Merrill <jason@redhat.com>
25419
04d2dadd 25420 PR debug/54410
90b10dec
JM
25421 * dwarf2out.c (gen_struct_or_union_type_die): Always schedule template
25422 parameters the first time.
25423 (gen_scheduled_generic_parms_dies): Check completeness here.
25424
6e616110
RB
254252013-01-31 Richard Biener <rguenther@suse.de>
25426
25427 PR middle-end/53073
25428 * common.opt (faggressive-loop-optimizations): New flag,
25429 enabled by default.
25430 * doc/invoke.texi (faggressive-loop-optimizations): Document.
25431 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Guard
25432 infer_loop_bounds_from_undefined by it.
25433
636f59cf
RB
254342013-01-31 Richard Biener <rguenther@suse.de>
25435
25436 PR tree-optimization/56150
25437 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Do not
25438 visit virtual operands.
25439 (find_uses_to_rename_bb): Likewise.
25440
254412013-01-31 Richard Biener <rguenther@suse.de>
fcfa87ac
RB
25442
25443 PR tree-optimization/56150
25444 * tree-ssa-tail-merge.c (gimple_equal_p): Properly handle
25445 mixed store non-store stmts.
25446
32887460
JJ
254472013-01-30 Jakub Jelinek <jakub@redhat.com>
25448
e60e09a0
JJ
25449 PR sanitizer/55374
25450 * gcc.c (LIBASAN_SPEC): Define just to ADD_STATIC_LIBASAN_LIBS if
25451 LIBASAN_EARLY_SPEC is defined.
25452 (LIBASAN_EARLY_SPEC): Define to empty string if not already defined.
25453 (LINK_COMMAND_SPEC): Add LIBASAN_EARLY_SPEC for -fsanitize=address,
25454 before %o.
25455 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Define.
25456
32887460
JJ
25457 PR c++/55742
25458 * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Diagnose
25459 invalid args instead of ICEing on it.
25460 (ix86_valid_target_attribute_tree): Return error_mark_node if
25461 ix86_valid_target_attribute_inner_p failed.
25462 (ix86_valid_target_attribute_p): Return false only if
25463 ix86_valid_target_attribute_tree returned error_mark_node. Allow
25464 target("default") attribute.
25465 (sorted_attr_string): Change argument from const char * to tree,
25466 merge in all target attribute arguments rather than just one.
25467 Formatting fix. Use XNEWVEC instead of xmalloc and XDELETEVEC
25468 instead of free. Avoid using strcat.
25469 (ix86_mangle_function_version_assembler_name): Mangle
25470 target("default") as if no target attribute is present. Adjust
25471 sorted_attr_string caller. Avoid leaking memory. Use XNEWVEC
25472 instead of xmalloc and XDELETEVEC instead of free.
25473 (ix86_function_versions): Don't return true if one of the decls
25474 doesn't have target attribute. If they don't and one of the decls
25475 is DECL_FUNCTION_VERSIONED, report an error. Adjust
25476 sorted_attr_string caller. Use XDELETEVEC instead of free.
25477 (ix86_supports_function_versions): Remove.
25478 (make_name): Fix up formatting.
25479 (make_dispatcher_decl): Remove resolver_name and its initialization.
25480 Avoid leaking memory.
25481 (is_function_default_version): Return true if there is
25482 target("default") attribute rather than no target attribute at all.
25483 (make_resolver_func): Avoid leaking memory.
25484 (ix86_generate_version_dispatcher_body): Likewise.
25485 (TARGET_OPTION_SUPPORTS_FUNCTION_VERSIONS): Remove.
25486 * target.def (supports_function_versions): Remove.
25487 * doc/tm.texi.in (SUPPORTS_FUNCTION_VERSIONS): Remove.
25488 * doc/tm.texi: Regenerated.
25489
73cca0cc
VM
254902013-01-30 Vladimir Makarov <vmakarov@redhat.com>
25491
25492 PR rtl-optimization/56144
25493 * lra-constraints.c (get_reload_reg): Don't reuse reload pseudo
25494 for values with side effects.
25495
11452e7b
RB
254962013-01-30 Richard Biener <rguenther@suse.de>
25497
25498 * sparseset.h (sparseset_bit_p): Use gcc_checking_assert.
25499 (sparseset_pop): Likewise.
25500 * cfganal.c (compute_idf): Likewise. Increase work-stack size
25501 to be able to use quick_push in the worker loop.
25502
01cb1ef5
MP
255032013-01-30 Marek Polacek <polacek@redhat.com>
25504
25505 * cfgcleanup.c (cleanup_cfg): Don't mark affected BBs.
25506
e892936e
RB
255072013-01-30 Richard Biener <rguenther@suse.de>
25508
25509 PR lto/56147
6edc3e32 25510 * lto-symtab.c (lto_symtab_merge_decls_1): Guard DECL_BUILT_IN check.
e892936e 25511
cc06c01d
GJL
255122013-01-30 Georg-Johann Lay <avr@gjlay.de>
25513
25514 PR tree-optimization/56064
25515 * fixed-value.c (fixed_from_double_int): New function.
25516 * fixed-value.h (fixed_from_double_int): New prototype.
25517 (const_fixed_from_double_int): New static inline function.
25518 * fold-const.c (native_interpret_fixed): New static function.
25519 (native_interpret_expr) <FIXED_POINT_TYPE>: Use it.
25520 (can_native_interpret_type_p) <FIXED_POINT_TYPE>: Return true.
25521 (native_encode_fixed): New static function.
25522 (native_encode_expr) <FIXED_CST>: Use it.
25523 (native_interpret_int): Move double_int worker code to...
25524 * double-int.c (double_int::from_buffer): ...this new static method.
25525 * double-int.h (double_int::from_buffer): Prototype it.
25526
d394a308
RB
255272013-01-30 Richard Biener <rguenther@suse.de>
25528
25529 * tree-ssa-structalias.c (final_solutions, final_solutions_obstack):
25530 New pointer-map and obstack.
25531 (init_alias_vars): Allocate pointer-map and obstack.
25532 (delete_points_to_sets): Free them.
25533 (find_what_var_points_to): Cache result.
25534 (find_what_p_points_to): Adjust for changed interface of
25535 find_what_var_points_to.
25536 (compute_points_to_sets): Likewise.
25537 (ipa_pta_execute): Likewise.
25538
20804d96
RO
255392013-01-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25540
25541 * configure.ac (HAVE_AS_SPARC_NOBITS): New test.
25542 * configure: Regenerate.
25543 * config.in: Regenerate.
25544 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Emit
25545 #nobits/#progbits if supported.
25546
a7ad88a2
OE
255472013-01-29 Oleg Endo <olegendo@gcc.gnu.org>
25548
25549 PR target/56121
25550 * config/sh/sh.md (bclr_m2a, bset_m2a, bst_m2a, bld_m2a, bldsign_m2a,
25551 bld_reg, *bld_regqi, band_m2a, bandreg_m2a, bor_m2a, borreg_m2a,
25552 bxor_m2a, bxorreg_m2a): Add satisfies_constraint_K03 condition.
25553
7af79f92
GY
255542013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
25555
91bfca59
OE
25556 * config/arm/cortex-a7.md (cortex_a7_neon, cortex_a7_all): Remove.
25557 (cortex_a7_idiv): Use cortex_a7_both instead of cortex_a7_all.
7af79f92 25558
753bcf7b
GY
255592013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
25560
91bfca59
OE
25561 * config/arm/arm.c (cortexa7_younger): Return true for TYPE_CALL.
25562 * config/arm/cortex-a7.md (cortex_a7_call): Update required units.
753bcf7b 25563
8cbc2ea8
GY
255642013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
25565
91bfca59
OE
25566 * config/arm/arm-protos.h (arm_mac_accumulator_is_result): New
25567 declaration.
25568 * config/arm/arm.c (arm_mac_accumulator_is_result): New function.
25569 * config/arm/cortex-a7.md: New bypasses using
25570 arm_mac_accumulator_is_result.
8cbc2ea8 25571
697a3325
GY
255722013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
25573
91bfca59 25574 * config/arm/cortex-a7.md (cortex_a7_neon_mul): New reservation.
697a3325 25575 (cortex_a7_neon_mla): Likewise.
91bfca59
OE
25576 (cortex_a7_fpfmad): New reservation.
25577 (cortex_a7_fpmacs): Use ffmas and update required units.
25578 (cortex_a7_fpmuld): Update required units and latency.
25579 (cortex_a7_fpmacd): Likewise.
25580 (cortex_a7_fdivs, cortex_a7_fdivd): Likewise.
25581 (cortex_a7_neon). Likewise.
25582 (bypass) Update participating units.
697a3325 25583
29637783
GY
255842013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
25585
91bfca59
OE
25586 * config/arm/arm.md (type): Add ffmas and ffmad to "type" attribute.
25587 * config/arm/vfp.md (fma,fmsub,fnmsub,fnmadd): Change type
25588 from fmac to ffma.
25589 * config/arm/vfp11.md (vfp_farith): Use ffmas.
25590 (vfp_fmul): Use ffmad.
25591 * config/arm/cortex-r4f.md (cortex_r4_fmacs): Use ffmas.
25592 (cortex_r4_fmacd): Use ffmad.
25593 * config/arm/cortex-m4-fpu.md (cortex_m4_fmacs): Use ffmas.
25594 * config/arm/cortex-a9.md (cortex_a9_fmacs): Use ffmas.
25595 (cortex_a9_fmacd): Use ffmad.
25596 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_macs): Use ffmas.
25597 (cortex_a8_vfp_macd): Use ffmad.
25598 * config/arm/cortex-a5.md (cortex_a5_fpmacs): Use ffmas.
25599 (cortex_a5_fpmacd): Use ffmad.
25600 * config/arm/cortex-a15-neon.md (cortex_a15_vfp_macs) Use ffmas.
25601 (cortex_a15_vfp_macd): Use ffmad.
25602 * config/arm/arm1020e.md (v10_fmul): Use ffmas and ffmad.
29637783 25603
2ee8a2d5
JM
256042013-01-29 Jason Merrill <jason@redhat.com>
25605
25606 PR libstdc++/54314
25607 * varasm.c (default_assemble_visibility): Don't warn about
25608 visibility on artificial decls.
25609
78d087bc
RB
256102013-01-29 Richard Biener <rguenther@suse.de>
25611
25612 PR tree-optimization/56113
25613 * tree-ssa-structalias.c (equiv_class_lookup): Also return
25614 the bitmap leader.
25615 (label_visit): Free duplicate bitmaps and record the leader instead.
25616 (perform_var_substitution): Adjust.
25617
83ba4d6f
RB
256182013-01-29 Richard Biener <rguenther@suse.de>
25619
25620 PR tree-optimization/55270
25621 * tree-ssa-dom.c (eliminate_degenerate_phis): If we changed
25622 the CFG, schedule loops for fixup.
25623
66dfe13f
NC
256242013-01-29 Nick Clifton <nickc@redhat.com>
25625
25626 * config/rl78/rl78.c (rl78_regno_mode_code_ok_for_base_p): Allow
25627 SP_REG.
25628
5a579c3b
LE
256292013-01-28 Leif Ekblad <leif@rdos.net>
25630
25631 * config.gcc (i[34567]86-*-rdos*, x86_64-*-rdos*): New targets.
25632 * config/i386/i386.h (TARGET_RDOS): New macro.
25633 (DEFAULT_LARGE_SECTION_THRESHOLD): New macro.
25634 * config/i386/i386.c (ix86_option_override_internal): For 64bit
25635 TARGET_RDOS, set ix86_cmodel to CM_MEDIUM_PIC and flag_pic to 1.
25636 * config/i386/i386.opt (mlarge-data-threshold): Initialize to
25637 DEFAULT_LARGE_SECTION_THRESHOLD.
25638 * config/i386/i386.md (R14_REG, R15_REG): New constants.
25639 * config/i386/rdos.h: New file.
25640 * config/i386/rdos64.h: New file.
25641
51e44392
BS
256422013-01-28 Bernd Schmidt <bernds@codesourcery.com>
25643
25644 PR other/54814
25645 * reload.c (find_valid_class_1): Use in_hard_reg_set_p instead of
25646 TEST_HARD_REG_BIT.
25647
db1fb332
JJ
256482013-01-28 Jakub Jelinek <jakub@redhat.com>
25649
25650 PR rtl-optimization/56117
25651 * sched-deps.c (sched_analyze_2) <case PREFETCH>: For use_cselib
25652 call cselib_lookup_from_insn on the MEM before calling
25653 add_insn_mem_dependence.
25654
16917761
RB
256552013-01-28 Richard Biener <rguenther@suse.de>
25656
25657 * tree-inline.c (remap_gimple_stmt): Do not assing a BLOCK
25658 to a stmt that didn't have one.
25659 (copy_phis_for_bb): Likewise for PHI arguments.
25660 (copy_debug_stmt): Likewise for debug stmts.
25661
b9fc0497
RB
256622013-01-28 Richard Biener <rguenther@suse.de>
25663
25664 PR tree-optimization/56034
6edc3e32 25665 * tree-loop-distribution.c (enum partition_kind): Add PKIND_REDUCTION.
b9fc0497
RB
25666 (partition_builtin_p): Adjust.
25667 (generate_code_for_partition): Handle PKIND_REDUCTION. Assert
25668 it is the last partition.
25669 (rdg_flag_uses): Check SSA_NAME_IS_DEFAULT_DEF before looking
25670 up the vertex for the definition.
25671 (classify_partition): Classify whether a partition is a
25672 PKIND_REDUCTION, thus has uses outside of the loop.
25673 (ldist_gen): Inherit PKIND_REDUCTION when merging partitions.
25674 Merge all PKIND_REDUCTION partitions into the last partition.
25675 (tree_loop_distribution): Seed partitions from reductions as well.
25676
aa710d25
JJ
256772013-01-28 Jakub Jelinek <jakub@redhat.com>
25678
0bfbca58
JJ
25679 PR tree-optimization/56125
25680 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Don't optimize
25681 pow(x,c) into sqrt(x) * powi(x, n/2) or
25682 1.0 / (sqrt(x) * powi(x, abs(n/2))) if c is an integer or when
25683 optimizing for size.
25684 Don't optimize pow(x,c) into powi(x, n/3) * powi(cbrt(x), n%3) or
25685 1.0 / (powi(x, abs(n)/3) * powi(cbrt(x), abs(n)%3)) if 2c is an
25686 integer.
25687
aa710d25
JJ
25688 PR tree-optimization/56094
25689 * gimplify.c (force_gimple_operand_1): Temporarily set input_location
25690 to UNKNOWN_LOCATION while gimplifying expr.
25691
77dc5297
UB
256922013-01-27 Uros Bizjak <ubizjak@gmail.com>
25693
25694 PR target/56114
25695 * config/i386/i386.md (*movabs<mode>_1): Add square brackets around
25696 operand 0 in movabs insn template for -masm=intel asm alternative.
25697 (*movabs<mode>_2): Ditto for operand 1.
25698
0bfbca58 256992013-01-26 David Holsgrove <david.holsgrove@xilinx.com>
fbf0cf90
DH
25700
25701 PR target/54663
25702 * config.gcc (microblaze*-linux*): Add tmake_file to allow building
25703 of microblaze-c.o
25704
0bfbca58 257052013-01-26 Edgar E. Iglesias <edgar.iglesias@gmail.com>
6f14eef2
EI
25706
25707 * config.gcc (microblaze*-*-*): Rename microblaze*-*-elf, update
25708 tm_file.
25709
0bfbca58 257102013-01-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
706b2314
N
25711
25712 * config/aarch64/aarch64.c (TARGET_FIXED_CONDITION_CODE_REGS):
25713 Undef to avoid warning.
25714
478f60f9
MH
257152013-01-25 Michael Haubenwallner <michael.haubenwallner@salomon.at>
25716
25717 * configure.ac (gcc_cv_ld_static_dynamic): Define for AIX native ld.
25718 * configure: Regenerate.
25719
d7fa6ee2
JJ
257202013-01-25 Jakub Jelinek <jakub@redhat.com>
25721
25722 PR tree-optimization/56098
25723 * tree-ssa-phiopt.c (nt_init_block): Don't call add_or_mark_expr
25724 for stmts with volatile ops.
25725 (cond_store_replacement): Don't optimize if assign has volatile ops.
25726 (cond_if_else_store_replacement_1): Don't optimize if either
25727 then_assign or else_assign have volatile ops.
25728 (hoist_adjacent_loads): Don't optimize if either def1 or def2 have
25729 volatile ops.
25730
f8fe87bd
GJL
257312013-01-25 Georg-Johann Lay <avr@gjlay.de>
25732
25733 * doc/invoke.texi (AVR Built-in Macros): Document __XMEGA__.
25734
28398d0d
GJL
257352013-01-25 Georg-Johann Lay <avr@gjlay.de>
25736
25737 * doc/extend.texi (Example of asm with clobbered asm reg): Fix
25738 missing ':' in asm example.
25739
b7d7d917
TB
257402013-01-25 Tejas Belagod <tejas.belagod@arm.com>
25741
25742 * config/aarch64/aarch64-simd-builtins.def: Separate sq<r>dmulh_lane
25743 entries into lane and laneq entries.
77dc5297
UB
25744 * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_lane<mode>):
25745 Remove AdvSIMD scalar modes.
b7d7d917
TB
25746 (aarch64_sq<r>dmulh_laneq<mode>): New.
25747 (aarch64_sq<r>dmulh_lane<mode>): New RTL pattern for Scalar AdvSIMD
25748 modes.
25749 * config/aarch64/arm_neon.h: Fix all the vq<r>dmulh_lane* intrinsics'
25750 builtin implementations to relfect changes in RTL in aarch64-simd.md.
25751 * config/aarch64/iterators.md (VCOND): New.
25752 (VCONQ): New.
25753
556f9906
GJL
257542013-01-25 Georg-Johann Lay <avr@gjlay.de>
25755
25756 PR target/54222
25757 * config/avr/builtins.def (DEF_BUILTIN): Add LIBNAME argument.
25758 Add NULL LIBNAME argument to existing definitions.
25759 (ABSHR, ABSR, ABSLR, ABSLLR, ABSHK, ABSK, ABSLK, ABSLLK): New.
25760 * config/avr/avr-c.c (DEF_BUILTIN): Add LIBNAME argument.
25761 * config/avr/avr.c (DEF_BUILTIN): Same.
25762 (avr_init_builtins): Pass down LIBNAME to add_builtin_function.
25763 (avr_expand_builtin): Expand to a vanilla call if a libgcc
25764 implementation is available (DECL_ASSEMBLER_NAME is set).
25765 (avr_fold_absfx): New static function.
25766 (avr_fold_builtin): Use it to handle: AVR_BUILTIN_ABSHR,
25767 AVR_BUILTIN_ABSR, AVR_BUILTIN_ABSLR, AVR_BUILTIN_ABSLLR,
25768 AVR_BUILTIN_ABSHK, AVR_BUILTIN_ABSK, AVR_BUILTIN_ABSLK,
25769 AVR_BUILTIN_ABSLLK.
25770 * config/avr/stdfix.h (abshr, absr, abslr, absllr)
25771 (abshk, absk, abslk, absllk): Provide as static inline functions.
25772
1f546bbb
MP
257732013-01-25 Marek Polacek <polacek@redhat.com>
25774
25775 PR tree-optimization/56035
25776 * cfgloopmanip.c (fix_loop_structure): Remove redundant condition.
25777
7e184bd7
UB
257782012-01-24 Uros Bizjak <ubizjak@gmail.com>
25779
25780 * config/i386/i386.md (*movti_internal_rex64): Add (o,e) alternative.
25781 (*movtf_internal_rex64): Add (!o,C) alternative
25782 (*movxf_internal_rex64): Ditto.
25783 (*movdf_internal_rex64): Add (?r,C) and (?m,C) alternatives.
25784
f5ba49ac
SM
257852013-01-24 Shenghou Ma <minux.ma@gmail.com>
25786
25787 * doc/invoke.texi: fix typo.
25788 * doc/objc.texi: fix typo.
25789
a6343728
RS
257902013-01-24 Richard Sandiford <rdsandiford@googlemail.com>
25791
25792 * config/mips/mips.md (*and<mode>3_mips16): Use the "W" constraint
25793 for the first two alternatives.
25794
cd030c07
DN
257952013-01-24 Diego Novillo <dnovillo@google.com>
25796
77dc5297 25797 * Makefile.in (GGC): Remove. Replace all instances with ggc-page.o.
cd030c07
DN
25798 (ggc-zone.o): Remove.
25799 * configure.ac: Remove option --with-gc.
25800 * configure: Re-generate.
25801 * doc/install.texi: Remove documentation for --with-gc.
25802 * gengtype.c (write_enum_defn): Remove. Update all users.
25803 (write_Types_process_field): Remove generation of gt_e_* argument.
25804 (output_type_enum): Remove. Update all users.
25805 (write_enum_defn): Remove. Update all users.
25806 (enum alloc_zone): Remove. Update all users.
77dc5297 25807 (write_splay_tree_allocator_def): Remove generation of gt_e_* argument.
cd030c07
DN
25808 * ggc-common.c (ggc_splay_alloc): Remove first argument.
25809 Update all callers.
25810 (struct ptr_data): Remove field TYPE. Update all users.
77dc5297 25811 (gt_pch_note_object): Remove argument TYPE. Update all users.
cd030c07
DN
25812 * ggc-internal.h (ggc_pch_alloc_object): Remove last argument.
25813 Update all users.
aaf1e810 25814 * ggc-none.c (ggc_alloc_typed_stat): Remove.
cd030c07
DN
25815 (struct alloc_zone): Remove.
25816 (ggc_internal_alloc_zone_stat): Remove.
25817 (ggc_internal_cleared_alloc_zone_stat): Remove.
25818 * ggc-page.c (ggc_alloc_typed_stat): Remove.
77dc5297
UB
25819 (ggc_pch_count_object): Remove last argument. Update all users.
25820 (ggc_pch_alloc_object): Remove last argument. Update all users.
cd030c07
DN
25821 (struct alloc_zone): Remove.
25822 * ggc-zone.c: Remove.
77dc5297 25823 * ggc.h (gt_pch_note_object): Remove last argument. Update all users.
cd030c07
DN
25824 (struct alloc_zone): Remove.
25825 (ggc_alloc_typed_stat): Remove.
25826 (ggc_alloc_typed): Remove.
25827 (ggc_splay_alloc): Remove first argument.
25828 (rtl_zone): Remove. Update all users.
25829 (tree_zone): Remove. Update all users.
25830 (tree_id_zone): Remove. Update all users.
25831 (ggc_internal_zone_alloc_stat): Remove. Update all users.
77dc5297 25832 (ggc_internal_zone_cleared_alloc_stat): Remove. Update all users.
cd030c07 25833 (ggc_internal_zone_vec_alloc_stat): Remove. Update all users.
77dc5297 25834 * tree-ssanames.c: Remove references to zone allocator in comments.
cd030c07 25835
a861ffa4
GJL
258362013-01-24 Georg-Johann Lay <avr@gjlay.de>
25837
25838 * config/avr/avr.c (avr_out_fract): Make register numbers that
25839 might be outside of source operand signed.
25840
593c0ddd
UB
258412013-01-24 Uros Bizjak <ubizjak@gmail.com>
25842
25843 * config/i386/constraints.md (Yf): New constraint.
25844 * config/i386/i386.md (*movdf_internal_rex64): Use Yf*f instead
25845 of f constraint to conditionaly disable x87 register preferences.
25846 (*movdf_internal): Ditto.
25847 (*movsf_internal): Ditto.
25848
e86c0101
SB
258492013-01-24 Steven Bosscher <steven@gcc.gnu.org>
25850
25851 PR inline-asm/55934
25852 * lra-assigns.c (assign_by_spills): Throw away the pattern of asms
25853 that have operands with impossible constraints.
25854 Add a FIXME for a speed-up opportunity.
25855 * lra-constraints.c (process_alt_operands): Verify that a class
25856 selected from constraints on asms is valid for the operand mode.
25857 (curr_insn_transform): Remove incorrect comment.
25858
f6fee35f
DE
258592013-01-23 David Edelsohn <dje.gcc@gmail.com>
25860
25861 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Check that
25862 TOC operand is a valid symbol ref in the constant pool.
25863
258642013-01-23 Edgar E. Iglesias <edgar.iglesias@gmail.com>
c7729184 25865
aaf1e810 25866 * config/microblaze/linux.h: Add TARGET_OS_CPP_BUILTINS
c7729184 25867
dc62d7d1
GJL
258682013-01-23 Georg-Johann Lay <avr@gjlay.de>
25869
25870 PR target/54222
25871 * config/avr/stdfix.h: New file.
25872 * t-avr (stdfix-gcc.h): New rule to build it.
25873 (EXTRA_HEADERS): Set it to install stdfix.h, stdfix-gcc.h.
25874
2660d12d
KS
258752013-01-23 Kostya Serebryany <kcc@google.com>
25876
77dc5297
UB
25877 * config/darwin.h: remove dependency on
25878 CoreFoundation (asan on Mac OS).
2660d12d 25879
a70418fc
JJ
258802013-01-23 Jakub Jelinek <jakub@redhat.com>
25881
25882 PR target/49069
25883 * config/arm/arm.md (cbranchdi4, cstoredi4): Use s_register_operand
25884 instead of cmpdi_operand for first comparison operand.
25885 Don't assert that comparison operands aren't both constants.
25886
47876a2a
JW
258872013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
25888
25889 * doc/install.texi (Downloading the Source): Update references to
25890 downloading separate components.
25891
258922013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
4ebd56a5
JW
25893
25894 * doc/extend.texi (__int128): Improve grammar.
25895
47876a2a 258962013-01-22 Uros Bizjak <ubizjak@gmail.com>
32fc5b8a
UB
25897
25898 PR target/56028
25899 * config/i386/i386.md (*movti_internal_rex64): Change (o,riF)
25900 alternative to (o,r).
25901 (*movdi_internal_rex64): Remove (!o,n) alternative.
25902 (DImode immediate->memory splitter): Remove.
25903 (DImode immediate->memory peephole2): Remove.
25904 (movtf): Enable for TARGET_64BIT || TARGET_SSE.
25905 (*movtf_internal_rex64): Rename from *movtf_internal. Change (!o,F*r)
25906 alternative to (!o,*r).
25907 (*movtf_internal_sse): New pattern.
25908 (*movxf_internal_rex64): New pattern.
25909 (*movxf_internal): Disable for TARGET_64BIT.
25910 (*movdf_internal_rex64): Remove (!o,F) alternative.
25911
3a984f10
JJ
259122013-01-22 Jakub Jelinek <jakub@redhat.com>
25913
502498d5
JJ
25914 PR middle-end/56074
25915 * dumpfile.c (dump_loc): Only print loc if LOCATION_LOCUS (loc)
25916 isn't UNKNOWN_LOCATION nor BUILTINS_LOCATION.
25917 * tree-vect-loop-manip.c (find_loop_location): Also ignore
25918 stmt locations where LOCATION_LOCUS of the stmt location is
25919 UNKNOWN_LOCATION or BUILTINS_LOCATION.
25920
3a984f10
JJ
25921 PR target/55686
25922 * config/i386/i386.md (UNSPEC_STOS): New.
25923 (strset_singleop, *strsetdi_rex_1, *strsetsi_1, *strsethi_1,
25924 *strsetqi_1): Add UNSPEC_STOS.
25925
fa817f7f
PC
259262013-01-22 Paolo Carlini <paolo.carlini@oracle.com>
25927
25928 PR c++/56067
25929 * doc/invoke.texi: Remove left over -Wsynth example.
25930
8f498c1b
JJ
259312013-01-21 Jakub Jelinek <jakub@redhat.com>
25932
25933 PR tree-optimization/56051
25934 * fold-const.c (fold_binary_loc): Don't fold
25935 X < (cast) (1 << Y) into (X >> Y) != 0 if cast is either
25936 a narrowing conversion, or widening conversion from signed
25937 to unsigned.
25938
47876a2a 259392013-01-21 Uros Bizjak <ubizjak@gmail.com>
35d59da7
UB
25940
25941 PR rtl-optimization/56023
25942 * haifa-sched.c (fix_inter_tick): Do not update ticks of instructions,
25943 dependent on debug instruction.
25944
5b9db1bc
MJ
259452013-01-21 Martin Jambor <mjambor@suse.cz>
25946
25947 PR middle-end/56022
25948 * function.c (allocate_struct_function): Call
25949 invoke_set_current_function_hook earlier.
25950
e8bb7d68
JJ
259512013-01-21 Jakub Jelinek <jakub@redhat.com>
25952
25953 * reload1.c (init_reload): Only initialize reload_obstack
25954 during the first call.
25955
616a4e32
MP
259562013-01-21 Marek Polacek <polacek@redhat.com>
25957
25958 * cfgloop.c (verify_loop_structure): Fix up grammar.
25959
4401981b
YHH
259602013-01-21 Yi-Hsiu Hsu <ahsu@marvell.com>
25961
25962 * config/arm/marvell-pj4.md (pj4_shift_conds, pj4_alu_shift,
25963 pj4_alu_shift_conds, pj4_shift): Handle simple_alu_shift.
25964
8e87740b
RR
259652013-01-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
25966
25967 PR target/56058
25968 * config/arm/marvell-pj4.md: Update copyright year.
25969 Fix up use of alu to alu_reg and simple_alu_imm.
25970
47876a2a 259712013-01-21 Uros Bizjak <ubizjak@gmail.com>
1f6bc337
UB
25972
25973 * config/i386/i386.md (enabled): Do not disable fma4 for TARGET_FMA.
25974
89d56d79
VM
259752013-01-20 Vladimir Makarov <vmakarov@redhat.com>
25976
25977 PR target/55433
25978 * lra-constraints.c (curr_insn_transform): Don't reuse original
1f6bc337 25979 insn for secondary memory move when memory mode should be different.
89d56d79 25980
fe603553
JDA
259812013-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
25982
25983 * config/pa/pa.md (atomic_loaddi, atomic_loaddi_1, atomic_storedi,
25984 atomic_storedi_1): New patterns.
25985
01284895
VK
259862013-01-20 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
25987
25988 btver2 pipeline descriptions.
25989 * config/i386/i386.c: Enable CPU_BTVER2 to use btver2 pipeline
25990 descriptions.
25991 * config/i386/i386.md (btver2_decode): New type attributes.
1f6bc337 25992 * config/i386/sse.md (btver2_decode, btver2_sse_attr): New
01284895
VK
25993 type attributes.
25994 * config/i386/btver2.md: New file describing btver2 pipelines.
25995
5630e3e1
JL
259962013-01-19 Andrew Pinski <apinski@cavium.com>
25997
25998 PR tree-optimization/52631
25999 * tree-ssa-sccvn (visit_use): Before looking up the original
26000 statement, try looking up the simplified expression.
26001
650ae806
AG
260022013-01-19 Anthony Green <green@moxielogic.com>
26003
26004 * config/moxie/moxie.c (moxie_expand_prologue): Set
26005 current_function_static_stack_size.
26006
e300ec2d
JJ
260072013-01-18 Jakub Jelinek <jakub@redhat.com>
26008
26009 PR tree-optimization/56029
26010 * tree-phinodes.c (reserve_phi_args_for_new_edge): Set
26011 gimple_phi_arg_location for the new arg to UNKNOWN_LOCATION.
26012
a3d7af04
SS
260132013-01-18 Sharad Singhai <singhai@google.com>
26014
26015 PR tree-optimization/55995
26016 * dumpfile.c (dump_loc): Print location only if available.
26017 * tree-vectorizer.c (increase_alignment): Intialize vect_location.
26018
66aa7879
VM
260192013-01-18 Vladimir Makarov <vmakarov@redhat.com>
26020
26021 PR target/55433
26022 * lra-constraints.c (curr_insn_transform): Reuse original insn for
26023 secondary memory move.
26024 (inherit_reload_reg): Use rclass instead of cl for
26025 check_secondary_memory_needed_p.
26026
3f0fee7b
JJ
260272013-01-18 Jakub Jelinek <jakub@redhat.com>
26028
26029 PR middle-end/56015
26030 * expr.c (expand_expr_real_2) <case COMPLEX_EXPR>: Handle
1f6bc337 26031 the case where writing real complex part of target modifies op1.
3f0fee7b 26032
70c67693
JG
260332013-01-18 James Greenhalgh <james.greenhalgh@arm.com>
26034
26035 * config/aarch64/aarch64-simd.md
26036 (aarch64_vcond_internal<mode>): Handle unordered cases.
26037 * config/aarch64/iterators.md (v_cmp_result): New.
26038
df8de9b3
YHH
260392013-01-18 Yi-Hsiu Hsu <ahsu@marvell.com>
26040 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
26041
26042 * config/arm/marvell-pj4.md: New file.
26043 * config/arm/arm.c (arm_issue_rate): Add marvell_pj4.
26044 * config/arm/arm.md (generic_sched): Add marvell_pj4.
26045 (generic_vfp): Likewise.
26046 * config/arm/arm-cores.def: Add marvell-pj4.
26047 * config/arm/arm-tune.md: Regenerate.
26048 * config/arm/arm-tables.opt: Regenerate.
26049 * config/arm/bpabi.h (BE8_LINK_SPEC): Add marvell_pj4.
26050 * doc/invoke.texi: Document marvell-pj4.
26051
be30c356
TB
260522013-01-18 Tejas Belagod <tejas.belagod@arm.com>
26053
26054 * config/aarch64/arm_neon.h: Map scalar types to standard types.
26055
0bfbca58 260562013-01-18 Alexandre Oliva <aoliva@redhat.com>
af6236c1
AO
26057
26058 PR debug/54114
26059 PR debug/54402
26060 PR debug/49888
26061 * var-tracking.c (negative_power_of_two_p): New.
26062 (global_get_addr_cache, local_get_addr_cache): New.
26063 (get_addr_from_global_cache, get_addr_from_local_cache): New.
26064 (vt_canonicalize_addr): Rewrite using the above. Adjust the
26065 heading comment.
26066 (vt_stack_offset_p): Remove.
26067 (vt_canon_true_dep): Always canonicalize loc's address.
26068 (clobber_overlapping_mems): Make sure we have a MEM.
26069 (local_get_addr_clear_given_value): New.
26070 (val_reset): Clear local cached entries.
26071 (compute_bb_dataflow): Create and release the local cache.
26072 Disable duplicate MEMs clobbering.
26073 (emit_notes_in_bb): Clobber MEMs likewise.
26074 (vt_emit_notes): Create and release the local cache.
26075 (vt_initialize, vt_finalize): Create and release the global
26076 cache, respectively.
1f6bc337 26077 * alias.c (rtx_equal_for_memref_p): Compare operands of ENTRY_VALUEs.
af6236c1 26078
0bfbca58 260792013-01-18 Alexandre Oliva <aoliva@redhat.com>
7ff37ffa
AO
26080
26081 PR libmudflap/53359
26082 * tree-mudflap.c (mudflap_finish_file): Skip deferred decls
26083 not found in the symtab.
26084
0bfbca58 260852013-01-18 Alexandre Oliva <aoliva@redhat.com>
3aa03517 26086
c350ba53 26087 PR debug/56006
3aa03517
AO
26088 PR rtl-optimization/55547
26089 PR rtl-optimization/53827
26090 PR debug/53671
26091 PR debug/49888
26092 * alias.c (offset_overlap_p): New, factored out of...
26093 (memrefs_conflict_p): ... this. Use absolute sizes. Retain
26094 the conservative special case for symbolic constants. Don't
26095 adjust zero sizes on alignment.
26096
c664546f
JL
260972013-01-18 Bernd Schmidt <bernds@codesourcery.com>
26098
26099 PR rtl-optimization/52573
26100 * regrename.c (build_def_use): Ignore REG_DEAD notes if there is a
26101 REG_UNUSED for the same register.
26102
1bd3f750
MP
261032013-01-17 Richard Biener <rguenther@suse.de>
26104 Marek Polacek <polacek@redhat.com>
26105
26106 PR rtl-optimization/55833
26107 * loop-unswitch.c (unswitch_loops): Move loop verification...
26108 (unswitch_single_loop): ...here. Call mark_irreducible_loops.
26109 * cfgloopmanip.c (fix_loop_placement): Add IRRED_INVALIDATED parameter.
26110 Set it to true when we're removing a loop from hierarchy tree in
26111 an irreducible region.
26112 (fix_bb_placements): Adjust caller.
26113 (fix_loop_placements): Likewise.
26114
e52a8b71
GJL
261152013-01-17 Georg-Johann Lay <avr@gjlay.de>
26116
26117 * config/avr/builtins.def (DEF_BUILTIN): Factor out
26118 "__builtin_avr_" from NAME, turn NAME to an uppercase identifier.
26119 Factor out 'CODE_FOR_' from ICODE, use 'nothing' instead of '-1'.
26120 Remove ID. Adjust comments.
26121 * config/avr/avr-c.c (avr_builtin_name): Remove.
26122 (avr_cpu_cpp_builtins): Use DEF_BUILTIN instead of for-loop.
26123 * config/avr/avr.c (avr_tolower): New static function.
26124 (DEF_BUILTIN): Remove parameter ID. Prefix ICODE by 'CODE_FOR_'.
26125 Stringify NAME, prefix it with "__builtin_avr_" and lowercase it.
26126 (avr_expand_builtin): Assert insn_code != CODE_FOR_nothing for
26127 default expansion.
26128
8386a7ea
JH
261292013-01-17 Jan Hubicka <jh@suse.cz>
26130
610fb637 26131 PR tree-optimization/55273
8386a7ea
JH
26132 * loop-iv.c (iv_number_of_iterations): Consider zero iteration case.
26133
47876a2a 261342013-01-17 Uros Bizjak <ubizjak@gmail.com>
8abaebcd
UB
26135
26136 PR target/55981
26137 * config/i386/sync.md (atomic_store<mode>): Always generate SWImode
26138 store through atomic_store<mode>_1.
26139 (atomic_store<mode>_1): Macroize insn using SWI mode iterator.
26140
8222c37e
MJ
261412013-01-17 Martin Jambor <mjambor@suse.cz>
26142
26143 PR tree-optimizations/55264
26144 * ipa-inline-transform.c (can_remove_node_now_p_1): Never return true
26145 for virtual methods.
26146 * ipa.c (symtab_remove_unreachable_nodes): Never return true for
26147 virtual methods before inlining is over.
26148 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Return false for
26149 virtual functions.
26150 * cgraphclones.c (cgraph_create_virtual_clone): Mark clones as
26151 non-virtual.
26152
79f01c76
VM
261532013-01-16 Vladimir Makarov <vmakarov@redhat.com>
26154
26155 PR rtl-optimization/56005
26156 * sched-deps.c (sched_analyze_2): Check deps->readonly for adding
26157 pending reads for prefetch.
26158
d0b6bb1b
IB
261592013-01-16 Ian Bolton <ian.bolton@arm.com>
26160
aaf1e810 26161 * config/aarch64/aarch64.md
d0b6bb1b
IB
26162 (*cstoresi_neg_uxtw): New pattern.
26163 (*cmovsi_insn_uxtw): New pattern.
26164 (*<optab>si3_uxtw): New pattern.
26165 (*<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): New pattern.
26166 (*<optab>si3_insn_uxtw): New pattern.
26167 (*bswapsi2_uxtw): New pattern.
26168
cb9cf03b
RB
261692013-01-16 Richard Biener <rguenther@suse.de>
26170
26171 * tree-inline.c (tree_function_versioning): Remove set but
26172 never used variable.
26173
2cfc56b9
RB
261742013-01-16 Richard Biener <rguenther@suse.de>
26175
26176 PR tree-optimization/55964
26177 * tree-flow.h (rename_variables_in_loop): Remove.
26178 (rename_variables_in_bb): Likewise.
26179 * tree-loop-distribution.c (update_phis_for_loop_copy): Remove.
26180 (copy_loop_before): Adjust and delete update-ssa status.
26181 * tree-vect-loop-manip.c (rename_variables_in_bb): Make static.
8abaebcd 26182 (rename_variables_in_bb): Likewise. Properly walk over predecessors.
2cfc56b9
RB
26183 (rename_variables_in_loop): Remove.
26184 (slpeel_update_phis_for_duplicate_loop): Likewise.
26185 (slpeel_tree_duplicate_loop_to_edge_cfg): Handle nested loops,
26186 use available cfg machinery instead of duplicating it.
26187 Update PHI nodes and perform poor-mans SSA update here.
26188 (slpeel_tree_peel_loop_to_edge): Adjust.
26189
c25a0c60
RB
261902013-01-16 Richard Biener <rguenther@suse.de>
26191
26192 PR tree-optimization/54767
26193 PR tree-optimization/53465
26194 * tree-vrp.c (vrp_meet_1): Revert original fix for PR53465.
26195 (vrp_visit_phi_node): For PHI arguments coming via backedges
26196 drop all symbolical range information.
26197 (execute_vrp): Compute backedges.
26198
04b535af
RB
261992013-01-16 Richard Biener <rguenther@suse.de>
26200
26201 * doc/install.texi: Update CLooG and ISL requirements to
26202 0.18.0 and 0.11.1.
26203
8b0a1e0b
CB
262042013-01-16 Christian Bruel <christian.bruel@st.com>
26205
26206 PR target/55301
26207 * config/sh/sh.c (sh_expand_prologue): Postpone new_stack mem symbol.
26208 (broken_move): Handle UNSPECV_SP_SWITCH_B.
26209 * config/sh/sh.md (sp_switch_1): Use set (reg:SI SP_REG).
26210
262112013-01-16 DJ Delorie <dj@redhat.com>
26212
26213 * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
26214 (UNSPECV_SP_SWITCH_E): New.
26215 (sp_switch_1): Change to an unspec.
26216 (sp_switch_2): Change to an unspec. Don't use post-inc when we
26217 replace $r15.
26218
262192013-01-16 Uros Bizjak <ubizjak@gmail.com>
88e784e6
UB
26220
26221 * emit-rtl.c (need_atomic_barrier_p): Mask memory model argument
26222 with MEMMODEL_MASK before comparing with MEMMODEL_* memory types.
26223 * optabs.c (maybe_emit_sync_lock_test_and_set): Ditto.
26224 (expand_mem_thread_fence): Ditto.
26225 (expand_mem_signal_fence): Ditto.
26226 (expand_atomic_load): Ditto.
26227 (expand_atomic_store): Ditto.
26228
0bfbca58 262292013-01-16 Alexandre Oliva <aoliva@redhat.com>
5147bf6a
AO
26230
26231 PR rtl-optimization/55547
26232 PR rtl-optimization/53827
26233 PR debug/53671
26234 PR debug/49888
26235 * alias.c (memrefs_conflict_p): Set sizes to negative after
26236 AND adjustments.
26237
305e3ac1
JJ
262382013-01-15 Jakub Jelinek <jakub@redhat.com>
26239
26240 PR target/55940
26241 * function.c (thread_prologue_and_epilogue_insns): Always
26242 add crtl->drap_reg to set_up_by_prologue.set, even if
26243 stack_realign_drap is false.
26244
f78ac4f2
JBG
262452013-01-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
26246
26247 * config/vax/vax.md (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3,
26248 and<mode>3, *and<mode>_const_int, ior<mode>3, xor<mode>3, ashrsi3,
26249 *call): Fix indention.
26250
a78a8cc4
TV
262512013-01-15 Tom de Vries <tom@codesourcery.com>
26252
26253 PR target/55876
26254 * optabs.c (widen_operand): Use gen_lowpart instead of gen_rtx_SUBREG.
26255 Update comment.
26256
0e80383f
VM
262572013-01-15 Vladimir Makarov <vmakarov@redhat.com>
26258
305e3ac1 26259 PR rtl-optimization/55153
0e80383f
VM
26260 * sched-deps.c (sched_analyze_2): Add pending reads for prefetch.
26261
207b5956
MJ
262622013-01-15 Martin Jambor <mjambor@suse.cz>
26263
26264 PR tree-optimization/55920
26265 * tree-sra.c (analyze_access_subtree): Do not mark non-removable
26266 accesses as grp_to_be_debug_replaced.
26267
a7818b54
JJ
262682013-01-15 Jakub Jelinek <jakub@redhat.com>
26269
26270 PR tree-optimization/55920
26271 * tree-sra.c (sra_modify_assign): If for lacc->grp_to_be_debug_replaced
26272 there is non-useless type conversion needed from debug rhs to lhs,
26273 use build_debug_ref_for_model and/or VIEW_CONVERT_EXPR.
26274
b0fe107e
JM
262752013-01-15 Joseph Myers <joseph@codesourcery.com>
26276 Mikael Pettersson <mikpe@it.uu.se>
26277
26278 PR target/43961
26279 * config/arm/arm.h (ADDR_VEC_ALIGN): Align SImode jump tables for
26280 Thumb.
26281 (ASM_OUTPUT_CASE_LABEL): Remove.
26282 (ASM_OUTPUT_BEFORE_CASE_LABEL): Define to empty.
26283 * final.c (shorten_branches): Update alignment of labels before
26284 jump tables if CASE_VECTOR_SHORTEN_MODE.
26285
34ab62ee
RB
262862013-01-15 Richard Biener <rguenther@suse.de>
26287
26288 PR bootstrap/55961
26289 * system.h: Do not include gmp.h for building host tools.
26290
783a3a05
RB
262912013-01-15 Richard Biener <rguenther@suse.de>
26292
26293 PR middle-end/55882
26294 * emit-rtl.c (set_mem_attributes_minus_bitpos): Correctly
26295 account for bitpos when computing alignment.
26296
3a579e09
VY
262972013-01-15 Vladimir Yakovlev <vladimir.b.yakovlev@intel.com>
26298
26299 * config/i386/i386-c.c (ix86_target_macros_internal): New case.
26300 (ix86_target_macros_internal): Likewise.
26301
26302 * config/i386/i386.c (m_CORE2I7): Removed.
26303 (m_CORE_HASWELL): New macro.
26304 (m_CORE_ALL): Likewise.
26305 (initial_ix86_tune_features): m_CORE2I7 is replaced by m_CORE_ALL.
26306 (initial_ix86_arch_features): Likewise.
26307 (processor_target_table): Initializations for Core avx2.
26308 (cpu_names): New names "core-avx2".
26309 (ix86_option_override_internal): Changed PROCESSOR_COREI7 by
26310 PROCESSOR_CORE_HASWELL.
26311 (ix86_issue_rate): New case.
26312 (ia32_multipass_dfa_lookahead): Likewise.
26313 (ix86_sched_init_global): Likewise.
26314
26315 * config/i386/i386.h (TARGET_HASWELL): New macro.
26316 (target_cpu_default): New TARGET_CPU_DEFAULT_haswell.
26317 (processor_type): New PROCESSOR_HASWELL.
26318
955f5a07
JJ
263192013-01-15 Jakub Jelinek <jakub@redhat.com>
26320
ff784829
JJ
26321 PR tree-optimization/55955
26322 * tree-vect-loop.c (vectorizable_reduction): Give up early on
26323 *SHIFT_EXPR and *ROTATE_EXPR codes.
26324
955f5a07
JJ
26325 PR tree-optimization/48766
26326 * opts.c (common_handle_option): For -fwrapv disable -ftrapv, for
26327 -ftrapv disable -fwrapv.
26328
aeb8b4e9
GJL
263292013-01-14 Georg-Johann Lay <avr@gjlay.de>
26330
26331 PR target/55974
26332 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Define __FLASH
26333 etc. to 1 and not to __flash.
26334 Use LL suffix for __INT24_MAX__ with -mint8.
26335 Use ULL suffix for __UINT24_MAX__ with -mint8.
26336
1c494c6a
GJL
263372013-01-14 Georg-Johann Lay <avr@gjlay.de>
26338
26339 * config/avr/avr-arch.h
26340 (struct base_arch_s): Use typedef avr_arch_t instead.
26341 (struct arch_info_s): Use typedef avr_arch_info_t instead.
26342 (struct mcu_type_s): Use typedef avr_mcu_t instead.
26343 * config/avr/avr.c: Same.
26344 * config/avr/avr-devices.c: Same.
26345 * config/avr/driver-avr.c: Same.
26346 * config/avr/gen-avr-mmcu-texi.c: Same.
26347 * config/avr/avr-mcus.def: Adjust comment.
26348
a50344cb
TB
263492013-01-14 Tejas Belagod <tejas.belagod@arm.com>
26350
88e784e6
UB
26351 * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): New.
26352 * config/aarch64/iterators.md (VALLDI): New.
a50344cb 26353
47876a2a 263542013-01-14 Uros Bizjak <ubizjak@gmail.com>
e6f0e052
UB
26355 Andi Kleen <ak@linux.intel.com>
26356
26357 PR target/55948
26358 * config/i386/sync.md (atomic_store<mode>_1): New pattern.
26359 (atomic_store<mode>): Call atomic_store<mode>_1 for IX86_HLE_RELEASE
26360 memmodel flag.
26361
00892272
GJL
263622013-01-14 Georg-Johann Lay <avr@gjlay.de>
26363
26364 * config/avr/avr-stdint.h: Remove trailing blanks.
26365 * config/avr/avr-log.h: Same.
26366 * config/avr/avr-arch.h: Same.
26367 * config/avr/avr-devices.c: Same.
26368 * config/avr/avr-dimode.md: Same.
26369 * config/avr/predicates.md: Same.
26370 * config/avr/avr-c.c: Same. And fix typo.
e6f0e052 26371
00892272
GJL
26372 * config/avr/avr-protos.h: Same. And:
26373 (function_arg_regno_p): Rename to avr_function_arg_regno_p.
26374 (init_cumulative_args): Rename to avr_init_cumulative_args.
26375 (expand_prologue): Rename to avr_expand_prologue.
26376 (expand_epilogue): Rename to avr_expand_epilogue.
26377 (adjust_insn_length): Rename to avr_adjust_insn_length.
26378 (notice_update_cc): Rename to avr_notice_update_cc.
26379 (final_prescan_insn): Rename to avr_final_prescan_insn.
26380 * config/avr/avr.c: Same.
26381 * config/avr/avr.h: Same.
26382 * config/avr/avr.md: Remove trailing blanks.
26383 (prologue): Use avr_expand_prologue.
26384 (epilogue, sibcall_epilogue): Use avr_expand_epilogue.
26385
7bb01996
RB
263862013-01-14 Richard Biener <rguenther@suse.de>
26387
26388 * tree-cfg.c (verify_expr_location, verify_expr_location_1,
26389 verify_location, collect_subblocks): New functions.
26390 (verify_gimple_in_cfg): Verify that locations only reference
26391 BLOCKs in the functions BLOCK tree.
26392
2724573f
RB
263932013-01-14 Richard Biener <rguenther@suse.de>
26394
26395 * tree-cfgcleanup.c (remove_forwarder_block): Unshare propagated
26396 PHI argument.
26397 * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Properly
26398 unshare reference.
26399 (insert_out_of_ssa_copy_on_edge): Likewise.
26400 (rewrite_close_phi_out_of_ssa): Likewise.
26401 * tree-ssa.c (insert_debug_temp_for_var_def): Properly unshare
26402 debug expressions.
26403 * tree-ssa-pre.c (insert_into_preds_of_block): Properly unshare
26404 propagated constants.
26405 * tree-cfg.c (tree_node_can_be_shared): Handled component-refs
26406 can not be shared.
26407
9a0bbab6
GJL
264082013-01-14 Georg-Johann Lay <avr@gjlay.de>
26409
26410 * config/avr/avr-modes.def: Add GPL copyright notice.
26411
45805f17
UB
264122013-01-13 Uros Bizjak <ubizjak@gmail.com>
26413
26414 * config/i386/sync.md (mem_thread_fence): Mask operands[0] with
26415 MEMMODEL_MASK to determine memory model.
26416 (atomic_store<mode>): Ditto from operands[2].
26417 * config/i386/i386.c (ix86_memmodel_check): Declare "strong" as bool.
26418
9d60be38
JJ
264192013-01-13 Jakub Jelinek <jakub@redhat.com>
26420
26421 PR fortran/55935
45805f17 26422 * gimple-fold.c (get_symbol_constant_value): Call unshare_expr.
9d60be38
JJ
26423 (fold_gimple_assign): Don't call unshare_expr here.
26424 (fold_ctor_reference): Call unshare_expr.
26425
e7f49d92
TG
264262013-01-13 Terry Guo <terry.guo@arm.com>
26427
aaf1e810
EB
26428 * Makefile.in (s-mlib): New argument MULTILIB_REUSE.
26429 * doc/fragments.texi: Document MULTILIB_REUSE.
26430 * gcc.c (multilib_reuse): New internal spec.
e7f49d92 26431 (set_multilib_dir): Also search multilib from multilib_reuse.
aaf1e810 26432 * genmultilib (tmpmultilib3): Refactor code.
e7f49d92
TG
26433 (tmpmultilib4): Ditto.
26434 (multilib_reuse): New multilib argument.
26435
fbd03a27
RS
264362013-01-13 Richard Sandiford <rdsandiford@googlemail.com>
26437
26438 * Makefile.in: Update copyright.
26439
b3681f13
TV
264402013-01-12 Tom de Vries <tom@codesourcery.com>
26441
26442 PR middle-end/55890
26443 * calls.c (expand_call): Check if arg_nr is valid.
26444
3f287e4b
MM
264452013-01-11 Michael Meissner <meissner@linux.vnet.ibm.com>
26446
26447 * doc/extend.texi (X86 Built-in Functions): Add whitespace in
26448 __builtin_ia32_paddb256 and __builtin_ia32_pavgb256
5bc35113
MM
26449 documentation. Add missing '__' in front of
26450 __builtin_ia32_packssdw256.
3f287e4b 26451
1abcd5eb
AK
264522013-01-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
26453
26454 PR target/55719
26455 * config/s390/s390.c (s390_preferred_reload_class): Do not return
26456 NO_REGS for larl operands.
26457 (s390_reload_larl_operand): Use s390_load_address instead of
26458 emit_move_insn.
26459
980d0812
RB
264602013-01-11 Richard Biener <rguenther@suse.de>
26461
26462 * tree-cfg.c (verify_node_sharing_1): Split out from ...
26463 (verify_node_sharing): ... here.
26464 (verify_gimple_in_cfg): Use verify_node_sharing_1 for walk_tree.
26465
7cb9fd07
EB
264662013-01-11 Eric Botcazou <ebotcazou@adacore.com>
26467
26468 * configure.ac (Tree checking): Set TREECHECKING to yes if enabled.
26469 Substitute TREECHECKING.
26470 * configure: Regenerate.
26471 * Makefile.in (TREECHECKING): New.
26472
47876a2a 264732013-01-11 Richard Guenther <rguenther@suse.de>
c7ab2530
RG
26474
26475 PR tree-optimization/44061
26476 * tree-vrp.c (extract_range_basic): Compute zero as
26477 value-range for __builtin_constant_p of function parameters.
26478
d1e082c2
RS
264792013-01-10 Richard Sandiford <rdsandiford@googlemail.com>
26480
45805f17 26481 Update copyright years.
d1e082c2 26482
f85021b0
VM
264832013-01-10 Vladimir Makarov <vmakarov@redhat.com>
26484
9d60be38 26485 PR rtl-optimization/55672
0160442c
VM
26486 * lra-eliminations.c (mark_not_eliminable): Permit addition with
26487 const to be eliminable.
f85021b0 26488
7a8b1ec4
DE
264892013-01-10 David Edelsohn <dje.gcc@gmail.com>
26490
26491 * configure.ac (HAVE_AS_TLS): Add check for powerpc-ibm-aix.
26492 * configure: Regenerate.
26493
ad2e5b71
RB
264942013-01-10 Richard Biener <rguenther@suse.de>
26495
ddf9322d 26496 * builtins.c (expand_builtin_init_trampoline): Use set_mem_attributes.
ad2e5b71 26497
ffc5b2bb
RB
264982013-01-10 Richard Biener <rguenther@suse.de>
26499
26500 PR bootstrap/55792
26501 * tree-into-ssa.c (rewrite_add_phi_arguments): Do not set
26502 locations for virtual PHI arguments.
26503 (rewrite_update_phi_arguments): Likewise.
26504
e1f674e4
JS
265052013-01-10 Joel Sherrill <joel.sherrill@OARcorp.com>
26506
26507 * config/v850/rtems.h (ASM_SPEC): Pass -m8byte-align and -mgcc-abi
26508 on to assembler.
26509
a57fc743
JJ
265102013-01-10 Jakub Jelinek <jakub@redhat.com>
26511
26512 PR tree-optimization/55921
26513 * tree-complex.c (expand_complex_asm): New function.
26514 (expand_complex_operations_1): Call it for GIMPLE_ASM.
26515
0ff4390d
AK
265162013-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
26517
26518 PR target/55718
26519 * config/s390/s390.c (s390_symref_operand_p)
26520 (s390_loadrelative_operand_p): Merge the two functions.
26521 (s390_check_qrst_address, print_operand_address): Add parameters
26522 to s390_loadrelative_operand_p invokation.
26523 (s390_check_symref_alignment): Use s390_loadrelative_operand_p.
26524 (s390_reload_larl_operand, s390_secondary_reload): Use
26525 s390_loadrelative_operand_p instead of s390_symref_operand_p.
26526 (legitimize_pic_address): Handle @GOTENT and @PLT + addend.
26527
6f557e0e
MS
265282013-01-09 Mike Stump <mikestump@comcast.net>
26529
26530 * dse.c (record_store): Remove unnecessary assert.
26531
7770c9e9
JH
265322013-01-09 Jan Hubicka <jh@suse.cz>
26533
26534 PR tree-optimization/55569
26535 * cfgloopmanip.c (scale_loop_profile): Make ITERATION_BOUND gcov_type.
26536 * cfgloop.h (scale_loop_profile): Likewise.
26537
a19b1432
JH
265382013-01-09 Jan Hubicka <jh@suse.cz>
26539
26540 PR lto/45375
ddf9322d
UB
26541 * ipa-inline.c (ipa_inline): Remove extern inlines and virtual
26542 functions.
a19b1432
JH
26543 * cgraphclones.c (cgraph_clone_node): Cpoy also LTO file data.
26544
9a002da8
RS
265452013-01-09 Richard Sandiford <rdsandiford@googlemail.com>
26546
26547 PR middle-end/55114
26548 * expr.h (maybe_emit_group_store): Declare.
26549 * expr.c (maybe_emit_group_store): New function.
26550 * builtins.c (expand_builtin_int_roundingfn): Call it.
26551 (expand_builtin_int_roundingfn_2): Likewise.
26552
511dcace
VM
265532013-01-09 Vladimir Makarov <vmakarov@redhat.com>
26554
e1f2b729 26555 PR rtl-optimization/55829
511dcace
VM
26556 * lra-constraints.c (match_reload): Add code for absent output.
26557 (curr_insn_transform): Add code for reloads of matched inputs
26558 without output.
26559
7b0fe4f4
UB
265602013-01-09 Uros Bizjak <ubizjak@gmail.com>
26561
26562 * config/i386/sse.md (*vec_interleave_highv2df): Change mode
26563 attribute of movddup insn to DF.
26564 (*vec_interleave_lowv2df): Ditto.
26565 (vec_dupv2df): Ditto.
26566
870ca331
JH
265672013-01-09 Jan Hubicka <jh@suse.cz>
26568
26569 PR tree-optimiation/55875
26570 * tree-ssa-loop-niter.c (number_of_iterations_cond): Add
26571 EVERY_ITERATION parameter.
7b0fe4f4 26572 (number_of_iterations_exit): Check if exit is executed every iteration.
870ca331
JH
26573 (idx_infer_loop_bounds): Similarly here.
26574 (n_of_executions_at_most): Simplify
26575 to only test for cases where statement is dominated by the
7b0fe4f4 26576 particular bound; handle correctly the "postdominance" test.
870ca331
JH
26577 (scev_probably_wraps_p): Use max loop iterations info
26578 as a global bound first.
26579
6f575fe4 265802013-01-09 Nguyen Duy Dat <dat.nguyen.yn@rvc.renesas.com>
3cd232b5
NDD
26581 Nick Clifton <nickc@redhat.com>
26582
26583 * config/v850/v850.md (cbranchsf4): New pattern.
26584 (cstoresf4): New pattern.
26585 (cbranchdf4): New pattern.
26586 (cstoredf4): New pattern.
26587 (movsicc): Disallow floating point comparisons.
26588 (cmpsf_le_insn): Fix order of operators.
26589 (cmpsf_lt_insn): Likewise.
26590 (cmpsf_eq_insn): Likewise.
26591 (cmpdf_le_insn): Likewise.
26592 (cmpdf_lt_insn): Likewise.
26593 (cmpdf_eq_insn): Likewise.
26594 (cmpsf_ge_insn): Use LE comparison.
26595 (cmpdf_ge_insn): Likewise.
26596 (cmpsf_gt_insn): Use LT comparison.
26597 (cmpdf_gt_insn): Likewise.
26598 (cmpsf_ne_insn): Delete pattern.
26599 (cmpdf_ne_insn): Delete pattern.
26600 * config/v850/v850.c (v850_gen_float_compare): Use
26601 gen_cmpdf_eq_insn for NE comparison.
26602 (v850_float_z_comparison_operator)
26603 (v850_float_nz_comparison_operator): Move from here ...
26604 * config/v850/predicates.md: ... to here. Move GT and GE
26605 comparisons into v850_float_z_comparison_operator.
26606 * config/v850/v850-protos.h (v850_float_z_comparison_operator):
26607 Delete prototype.
26608 (v850_float_nz_comparison_operator): Likewise.
26609
f0d54148
JDA
266102013-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
26611
26612 * config/pa/pa.c (pa_emit_move_sequence): Replace calls to gen_insv
26613 with calls to gen_insvsi/gen_insvdi.
26614
8f01beca
VK
266152013-01-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
26616
26617 * config/i386/i386.c (initial_ix86_tune_features): Set up
26618 X86_TUNE_AVX128_OPTIMAL for m_BTVER2.
26619
2aa579ad
JJ
266202013-01-09 Steven Bosscher <steven@gcc.gnu.org>
26621 Jakub Jelinek <jakub@redhat.com>
26622
26623 PR tree-optimization/48189
26624 * predict.c (predict_loops): If max is 0, don't call compare_tree_int.
26625 If nitercst is 0, don't predict the exit edge.
26626
6edc3e32 266272013-01-08 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
01a3a324
N
26628
26629 * config/aarch64/aarch64.c (aarch64_print_operand): Replace %r
26630 in asm_fprintf with reg_names.
26631 (aarch64_print_operand_address): Likewise.
26632 (aarch64_return_addr): Likewise.
26633 * config/aarch64/aarch64.h (ASM_FPRINTF_EXTENSIONS): Remove.
26634
f6f94d94
JDA
266352013-01-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
26636
26637 * config/pa/pa.h (VAL_U6_BITS_P): Define.
26638 (INT_U6_BITS): Likewise.
26639 * config/pa/predicates.md (uint6_operand): New predicate.
26640 (shift5_operand, shift6_operand): Likewise.
26641 * config/pa/pa.md (lshrsi3, rotrsi3): Use shift5_operand instead of
26642 arith32_operand.
26643 (lshrdi3): Use shift6_operand.
26644 (shrpsi4, shrpdi4): New insn patterns.
26645 (extzv): Delete expander.
26646 (extzvsi, extzvdi): New expanders. Use uint5_operand and uint6_operand
26647 predicates in unamed zero extract patterns. Tighten common constraint.
26648 (extv): Delete expander.
26649 (extvsi, extvdi): New expanders. Use uint5_operand and uint6_operand
26650 predicates in unamed sign extract patterns. Tighten common constraint.
26651 (insv): Delete expander.
26652 (insvsi, insvdi): New expanders. Use uint5_operand and uint6_operand
26653 predicates in unamed insert patterns. Tighten common constraint.
26654 Change uint32_operand predicate to uint6_operand predicate in unamed
26655 DImode pattern to insert constant values of type 1...1xxxx.
26656
36b72910
JH
266572013-01-04 Jan Hubicka <jh@suse.cz>
26658
26659 PR tree-optimization/55823
7b0fe4f4
UB
26660 * ipa-prop.c (update_indirect_edges_after_inlining): Fix ordering
26661 issue.
36b72910 26662
47876a2a 266632013-01-08 Jakub Jelinek <jakub@redhat.com>
c6d851b9
JJ
26664 Uros Bizjak <ubizjak@gmail.com>
26665
26666 PR rtl-optimization/55845
26667 * df-problems.c (can_move_insns_across): Stop scanning at
26668 volatile_insn_p source instruction or give up if
26669 across_from .. across_to range contains any volatile_insn_p
26670 instructions.
26671
4369c11e
TB
266722013-01-08 Tejas Belagod <tejas.belagod@arm.com>
26673
7b0fe4f4
UB
26674 * config/aarch64/aarch64-simd.md (vec_init<mode>): New.
26675 * config/aarch64/aarch64-protos.h (aarch64_expand_vector_init):
26676 Declare.
4369c11e 26677 * config/aarch64/aarch64.c (aarch64_simd_dup_constant,
7b0fe4f4 26678 aarch64_simd_make_constant, aarch64_expand_vector_init): New.
4369c11e 26679
aeb7e7c1
JJ
266802013-01-08 Jakub Jelinek <jakub@redhat.com>
26681
26682 PR fortran/55341
26683 * asan.c (asan_clear_shadow): New function.
26684 (asan_emit_stack_protection): Use it.
26685
a02ad1aa
TB
266862013-01-08 Tejas Belagod <tejas.belagod@arm.com>
26687
26688 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_<su>mult_lo_<mode>,
26689 aarch64_simd_vec_<su>mult_hi_<mode>): Separate instruction and operand
26690 with tab instead of space.
26691
f90d87f5
NC
266922013-01-08 Nick Clifton <nickc@redhat.com>
26693
26694 * config/rl78/rl78.c (rl78_expand_prologue): Always select
26695 register bank 0 at the start of an interrupt handler.
83ffd964
NC
26696 * config/rl78/rl78.md (mulsi3_g13): Correct values for MDBL and
26697 MDBH registers.
f90d87f5 26698
385eb93d
JG
266992013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
26700
26701 * config/aarch64/aarch64-simd.md
26702 (aarch64_simd_bsl<mode>_internal): Add floating-point modes.
26703 (aarch64_simd_bsl): Likewise.
26704 (aarch64_vcond_internal<mode>): Likewise.
26705 (vcond<mode><mode>): Likewise.
26706 (aarch64_cm<cmp><mode>): Fix constraints, add new modes.
26707 * config/aarch64/iterators.md (V_cmp_result): Add V2DF.
26708
4dcd1054
JG
267092013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
26710
26711 * config/aarch64/aarch64-builtins.c
26712 (aarch64_builtin_vectorized_function): Handle sqrt, sqrtf.
26713
4267a4a6
MJ
267142013-01-08 Martin Jambor <mjambor@suse.cz>
26715
26716 PR debug/55579
26717 * tree-sra.c (analyze_access_subtree): Return true also after
26718 potentially creating a debug-only replacement.
26719
5f4e6de3
JJ
267202013-01-08 Jakub Jelinek <jakub@redhat.com>
26721
3138f224
JJ
26722 PR middle-end/55890
26723 * tree-ssa-ccp.c (evaluate_stmt): Use gimple_call_builtin_p.
26724
5f4e6de3
JJ
26725 PR tree-optimization/54120
26726 * tree-vrp.c (range_fits_type_p): Don't allow
26727 src_precision < precision from signed vr to unsigned_p
26728 if vr->min or vr->max is negative.
26729 (simplify_float_conversion_using_ranges): Test can_float_p
26730 against CODE_FOR_nothing.
26731
f3ef18ff
JJ
267322013-01-08 Jakub Jelinek <jakub@redhat.com>
26733 Richard Biener <rguenther@suse.de>
26734
26735 PR middle-end/55851
26736 * fold-const.c (int_binop_types_match_p): Allow all INTEGRAL_TYPE_P
26737 types instead of just INTEGER_TYPE types.
26738
25c210f9
MK
267392013-01-07 Mark Kettenis <kettenis@openbsd.org>
26740
26741 * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT,
26742 TF_SIZE): Define.
f90d87f5 26743
81826a7b
SE
267442013-01-07 Steve Ellcey <sellcey@mips.com>
26745
26746 PR target/42661
26747 * config/mips/mips.opt: Change mad to mmad to match documentation.
26748
35678514
GJL
267492013-01-07 Georg-Johann Lay <avr@gjlay.de>
26750
26751 PR target/55897
26752 * doc/extend.texi (AVR Named Address Spaces): __memx goes into
26753 .progmemx.data now.
26754
e5669488
GJL
267552013-01-07 Georg-Johann Lay <avr@gjlay.de>
26756
26757 PR target/55897
26758 * config/avr/avr.h (ADDR_SPACE_COUNT): New enum.
26759 (avr_addrspace_t): Add .section_name field.
26760 * config/avr/avr.c (progmem_section): Use ADDR_SPACE_COUNT as
26761 array size.
26762 (avr_addrspace): Same. Initialize .section_name. Remove last
26763 NULL entry. Put __memx into .progmemx.data.
26764 (progmem_section_prefix): Remove.
26765 (avr_asm_init_sections): No need to initialize progmem_section.
26766 (avr_asm_named_section): Use avr_addrspace[].section_name to get
26767 section name prefix.
26768 (avr_asm_select_section): Ditto. And use get_unnamed_section to
26769 retrieve the progmem section.
26770 * avr-c.c (avr_cpu_cpp_builtins): Use ADDR_SPACE_COUNT as loop
26771 boundary to run over avr_addrspace[].
26772 (avr_register_target_pragmas): Ditto.
26773
656e6f37
JJ
267742013-01-06 Jakub Jelinek <jakub@redhat.com>
26775
26776 * varasm.c (output_constant_def_contents): For asan_protect_global
26777 protected strings, adjust DECL_ALIGN if needed, before testing for
26778 anchored symbols.
26779 (place_block_symbol): Adjust size for asan protected STRING_CSTs if
26780 TREE_CONSTANT_POOL_ADDRESS_P. Increase alignment for asan protected
26781 normal decls.
26782 (output_object_block): For asan protected decls, emit asan padding
26783 after their contents.
26784 * asan.c (asan_protect_global): Don't check TREE_ASM_WRITTEN here.
26785 (asan_finish_file): Test it here instead.
26786
6edc3e32
UB
267872013-01-07 Nick Clifton <nickc@redhat.com>
26788 Matthias Klose <doko@debian.org>
26789 Doug Kwan <dougkwan@google.com>
26790 H.J. Lu <hongjiu.lu@intel.com>
b352afba
NC
26791
26792 PR driver/55470
26793 * collect2.c (main): Support -fuse-ld=bfd and -fuse-ld=gold.
26794
26795 * common.opt: Add fuse-ld=bfd and fuse-ld=gold.
26796
26797 * gcc.c (LINK_COMMAND_SPEC): Pass -fuse-ld=* to collect2.
26798
7b0fe4f4 26799 * opts.c (comman_handle_option): Ignore -fuse-ld=bfd and -fuse-ld=gold.
b352afba
NC
26800
26801 * doc/invoke.texi: Document -fuse-ld=bfd and -fuse-ld=gold.
26802
2a095093
GJL
268032013-01-07 Georg-Johann Lay <avr@gjlay.de>
26804
f3b503f4 26805 PR target/54461
2a095093
GJL
26806 * doc/install.texi (Cross-Compiler-Specific Options): Document
26807 --with-avrlibc.
26808
383f9b34
TB
268092013-01-07 Tejas Belagod <tejas.belagod@arm.com>
26810
26811 * config/aarch64/arm_neon.h (vmovn_high_is16, vmovn_high_s32,
26812 vmovn_high_s64, vmovn_high_u16, vmovn_high_u32, vmovn_high_u64,
26813 vqmovn_high_s16, vqmovn_high_s32, vqmovn_high_s64, vqmovn_high_u16,
26814 vqmovn_high_u32, vqmovn_high_u64, vqmovun_high_s16, vqmovun_high_s32,
26815 vqmovun_high_s64): Fix source operand number and update copyright.
26816
3626621a
RB
268172013-01-07 Richard Biener <rguenther@suse.de>
26818
26819 PR middle-end/55890
26820 * gimple.h (gimple_call_builtin_p): New overload.
26821 * gimple.c (validate_call): New function.
26822 (gimple_call_builtin_p): Likewise.
26823 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
26824 Use gimple_call_builtin_p.
26825 (find_func_clobbers): Likewise.
26826 * tree-ssa-strlen.c (adjust_last_stmt): Likewise.
26827 (strlen_optimize_stmt): Likewise.
26828
8b2ea410
JG
268292013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
26830
26831 * config/aarch64/arm_neon.h (vld1_dup_*): Make argument const.
26832 (vld1q_dup_*): Likewise.
26833 (vld1_*): Likewise.
26834 (vld1q_*): Likewise.
26835 (vld1_lane_*): Likewise.
26836 (vld1q_lane_*): Likewise.
26837
9713d329
RB
268382013-01-07 Richard Biener <rguenther@suse.de>
26839
26840 * lto-streamer.h (LTO_minor_version): Bump to 2.
26841
3520f7cc
JG
268422013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
26843
26844 * config/aarch64/aarch64-protos.h
26845 (aarch64_const_double_zero_rtx_p): Rename to...
26846 (aarch64_float_const_zero_rtx_p): ...this.
26847 (aarch64_float_const_representable_p): New.
26848 (aarch64_output_simd_mov_immediate): Likewise.
26849 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): Refactor
26850 move immediate case.
26851 * config/aarch64/aarch64.c
26852 (aarch64_const_double_zero_rtx_p): Rename to...
26853 (aarch64_float_const_zero_rtx_p): ...this.
26854 (aarch64_print_operand): Allow printing of new constants.
26855 (aarch64_valid_floating_const): New.
26856 (aarch64_legitimate_constant_p): Check for valid floating-point
26857 constants.
26858 (aarch64_simd_valid_immediate): Likewise.
26859 (aarch64_vect_float_const_representable_p): New.
26860 (aarch64_float_const_representable_p): Likewise.
26861 (aarch64_simd_imm_zero_p): Also allow for floating-point 0.0.
26862 (aarch64_output_simd_mov_immediate): New.
26863 * config/aarch64/aarch64.md (*movsf_aarch64): Add new alternative.
26864 (*movdf_aarch64): Likewise.
26865 * config/aarch64/constraints.md (Ufc): New.
26866 (Y): call aarch64_float_const_zero_rtx.
26867 * config/aarch64/predicates.md (aarch64_fp_compare_operand): New.
26868
e167c04d
RB
268692013-01-07 Richard Biener <rguenther@suse.de>
26870
26871 PR tree-optimization/55888
26872 PR tree-optimization/55862
26873 * tree-ssa-pre.c (phi_translate_1): Revert previous change.
26874 (valid_in_sets): Check if a NAME has a leader in AVAIL_OUT,
26875 not if it is contained therein.
26876
0139aaab
GJL
268772013-01-07 Georg-Johann Lay <avr@gjlay.de>
26878
26879 * config/avr/t-avr: Typo.
26880
4a176b23
GJL
268812013-01-07 Georg-Johann Lay <avr@gjlay.de>
26882
26883 PR55243
26884 * config/avr/t-avr: Don't automatically rebuild
26885 $(srcdir)/config/avr/t-multilib
26886 $(srcdir)/config/avr/avr-tables.opt
26887 $(srcdir)/doc/avr-mmcu.texi
26888 (avr-mcus): New phony target to build them on request.
26889 (s-avr-mlib, s-avr-mmcu-texi): Remove.
26890 * avr/avr-mcus.def: Adjust comments.
26891
c7afdc98
UB
268922013-01-07 Uros Bizjak <ubizjak@gmail.com>
26893
26894 * config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Remove.
26895
1ab05c31
RS
268962013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
26897
26898 * file-find.c, file-find.h, realmpfr.c: Add FSF as copyright holder.
26899
488e3acc
RS
269002013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
26901
26902 * config/tilepro/gen-mul-tables.cc: Put copyright on one line.
26903
a89599d2
DE
269042013-01-05 David Edelsohn <dje.gcc@gmail.com>
26905
26906 * config/rs6000/aix53.h (LIB_SPEC): Add -lpthreads when compiling
26907 to generate profiling.
26908 * config/rs6000/aix64.h (LIB_SPEC): Same.
26909
70f09188
AP
269102013-01-04 Andrew Pinski <apinski@cavium.com>
26911
26912 * config/aarch64/aarch64.c (aarch64_fixed_condition_code_regs):
26913 New function.
26914 (TARGET_FIXED_CONDITION_CODE_REGS): Define.
26915
918d445f
UB
269162013-01-04 Uros Bizjak <ubizjak@gmail.com>
26917
26918 * config/i386/i386.c (ix86_legitimize_address): Call convert_to_mode
26919 unconditionally.
26920 (ix86_expand_move): Ditto.
26921 (ix86_zero_extend_to_Pmode): Ditto.
26922 (ix86_expand_call): Ditto.
26923 (ix86_expand_special_args_builtin): Ditto.
26924 (ix86_expand_builtin): Ditto.
26925
361618ec
RB
269262013-01-04 Richard Biener <rguenther@suse.de>
26927
26928 PR tree-optimization/55862
26929 * tree-ssa-pre.c (phi_translate_1): Valueize SSA names after
26930 translating them through PHI nodes.
26931
87eab554
MJ
269322013-01-04 Martin Jambor <mjambor@suse.cz>
26933
26934 PR tree-optimization/55755
26935 * tree-sra.c (sra_modify_assign): Do not check that an access has no
26936 children when trying to avoid producing a VIEW_CONVERT_EXPR.
26937
33879b9f
MP
269382013-01-04 Marek Polacek <polacek@redhat.com>
26939
26940 PR middle-end/55859
26941 * opts.c (default_options_optimization): Clarify error message.
26942
3068819a
RB
269432013-01-04 Richard Biener <rguenther@suse.de>
26944
26945 PR middle-end/55863
26946 * fold-const.c (split_tree): Undo -X - 1 to ~X folding for
26947 reassociation.
26948
0e4ae794
JDA
269492013-01-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
26950
26951 PR target/53789
26952 * config/pa/pa.md (movsi): Revert previous change.
e58d2e48
JDA
26953 * config/pa/pa.c (pa_legitimate_constant_p): Reject all TLS symbol
26954 references.
0e4ae794 26955
65c88cef
RH
269562013-01-03 Richard Henderson <rth@redhat.com>
26957
26958 * config/i386/i386.c (ix86_expand_move): Always assign to op1
26959 after eliminating TLS symbols.
26960
8ac16127
MG
269612013-01-03 Marc Glisse <marc.glisse@inria.fr>
26962
26963 PR bootstrap/50167
26964 * graphite-interchange.c (pdr_stride_in_loop): Use gmp_fprintf.
26965 * graphite-poly.c (debug_gmp_value): Likewise.
26966
bb664f09
UB
269672013-01-03 Uros Bizjak <ubizjak@gmail.com>
26968
26969 PR target/55712
26970 * config/i386/i386-c.c (ix86_target_macros_internal): Depending on
26971 selected code model, define __code_mode_small__, __code_model_medium__,
26972 __code_model_large__, __code_model_32__ or __code_model_kernel__.
26973 * config/i386/cpuid.h (__cpuid, __cpuid_count) [__i386__]: Prefix
26974 xchg temporary register with %k. Declare temporary register as
26975 early clobbered.
26976 [__x86_64__]: For medium and large code models, preserve %rbx register.
26977
bcf1ef00
RB
269782013-01-03 Richard Biener <rguenther@suse.de>
26979
0506634a 26980 * tree-data-ref.c (dump_conflict_function): Use less vertical spacing.
bcf1ef00
RB
26981 (dump_subscript): Adjust.
26982 (finalize_ddr_dependent): Do not dump redundant info.
26983 (analyze_siv_subscript): Adjust.
26984 (subscript_dependence_tester): Likewise.
26985 (compute_affine_dependence): Likewise.
26986
59fd17e3
RB
269872013-01-03 Richard Biener <rguenther@suse.de>
26988
26989 Revert
26990 2013-01-03 Richard Biener <rguenther@suse.de>
26991
26992 PR tree-optimization/55857
26993 * tree-vect-stmts.c (vectorizable_load): Do not setup
26994 re-alignment for invariant loads.
26995
26996 2013-01-02 Richard Biener <rguenther@suse.de>
26997
26998 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
0506634a 26999 invariant load do not generate a vector load from the scalar location.
59fd17e3 27000
595c2679
RB
270012013-01-03 Richard Biener <rguenther@suse.de>
27002
27003 * tree-vect-loop.c (vect_analyze_loop_form): Clarify reason
27004 for not vectorizing.
27005 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
27006 not build INDIRECT_REFs, call get_name once only.
27007 (vect_create_data_ref_ptr): Likewise. Dump base object kind
27008 based on DR_BASE_OBJECT, not DR_BASE_ADDRESS.
27009
90bb7d7a
RB
270102013-01-03 Richard Biener <rguenther@suse.de>
27011
27012 PR tree-optimization/55857
27013 * tree-vect-stmts.c (vectorizable_load): Do not setup
27014 re-alignment for invariant loads.
27015
f09b77ca
RB
270162013-01-03 Richard Biener <rguenther@suse.de>
27017
27018 PR lto/55848
27019 * lto-symtab.c (lto_symtab_merge_decls_1): As last resort, always
27020 prefer a built-in decl.
27021
3461a16e
JJ
270222013-01-03 Jakub Jelinek <jakub@redhat.com>
27023
df8e2b4f
JJ
27024 * gcc.c (process_command): Update copyright notice dates.
27025 * gcov.c (print_version): Likewise.
27026 * gcov-dump.c (print_version): Likewise.
27027
3461a16e
JJ
27028 PR rtl-optimization/55838
27029 * loop-iv.c (iv_number_of_iterations): Call lowpart_subreg on
27030 iv0.step, iv1.step and step.
27031
8b5546d6
JJ
270322013-01-03 Jakub Jelinek <jakub@redhat.com>
27033 Marc Glisse <marc.glisse@inria.fr>
27034
27035 PR tree-optimization/55832
27036 * fold-const.c (fold_binary_loc): For ABS_EXPR<x> >= 0 and
27037 ABS_EXPR<x> < 0 folding use constant_boolean_node instead of
27038 integer_{one,zero}_node.
27039
8ab1d2e9
JJ
270402013-01-03 Jakub Jelinek <jakub@redhat.com>
27041
27042 PR debug/54402
27043 * params.def (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE): New param.
27044 * var-tracking.c (reverse_op): Don't add reverse ops to
27045 VALUEs that have already
0506634a 27046 PARAM_VALUE (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE) or longer locs list.
8ab1d2e9 27047
5b9ad1d4
GP
270482013-01-02 Gerald Pfeifer <gerald@pfeifer.com>
27049
27050 * doc/contrib.texi: Note years as release manager for Mark Mitchell.
27051
e25a6711
TJ
270522013-01-02 Teresa Johnson <tejohnson@google.com>
27053
27054 * dumpfile.c (dump_loc): Print filename with location.
27055 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Use
27056 new location_t parameter to emit complete unroll message with
27057 new dump framework.
27058 (canonicalize_loop_induction_variables): Compute loops location
27059 and pass to try_unroll_loop_completely.
27060 * loop-unroll.c (report_unroll_peel): New function.
27061 (peel_loops_completely): Use new dump format with location
27062 for main dumpfile message, and invoke report_unroll_peel on success.
27063 (decide_unrolling_and_peeling): Ditto.
27064 (decide_peel_once_rolling): Remove old dumpfile message subsumed
27065 by report_unroll_peel.
27066 (decide_peel_completely): Ditto.
27067 (decide_unroll_constant_iterations): Ditto.
27068 (decide_unroll_runtime_iterations): Ditto.
27069 (decide_peel_simple): Ditto.
27070 (decide_unroll_stupid): Ditto.
27071 * cfgloop.c (get_loop_location): New function.
27072 * cfgloop.h (get_loop_location): Declare.
27073
77878621
ST
270742013-01-02 Sriraman Tallam <tmsriram@google.com>
27075
27076 * config/i386/i386.c (fold_builtin_cpu): Remove unnecessary checks for
27077 NULL.
27078
9e65d03e
JDA
270792013-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
27080
27081 PR middle-end/55198
27082 * expr.c (expand_expr_real_1): Don't use bitfield extraction for non
27083 BLKmode objects when EXPAND_MEMORY is specified.
27084
6a7da30f
ST
270852013-01-02 Sriraman Tallam <tmsriram@google.com>
27086
27087 * config/i386/i386.c (ix86_get_function_versions_dispatcher): Fix bug
27088 in loop predicate.
27089 (fold_builtin_cpu): Do not share cpu model decls across statements.
27090
e78167f2
JM
270912013-01-02 Jason Merrill <jason@redhat.com>
27092
27093 PR c++/55804
27094 * tree.c (build_array_type_1): Revert earlier change.
27095
8c075fb4
YZ
270962013-01-02 Yufeng Zhang <yufeng.zhang@arm.com>
27097
27098 * config/aarch64/aarch64-cores.def: Add entries for "cortex-a53" and
27099 "cortex-a57".
27100 * config/aarch64/aarch64-tune.md: Re-generate.
27101
0682ed3e
RB
271022013-01-02 Richard Biener <rguenther@suse.de>
27103
27104 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
0506634a 27105 invariant load do not generate a vector load from the scalar location.
0682ed3e 27106
b8f6a302
RB
271072013-01-02 Richard Biener <rguenther@suse.de>
27108
27109 PR bootstrap/55784
27110 * configure.ac: Add $GMPINC to CFLAGS/CXXFLAGS.
27111 * configure: Regenerate.
27112
04b80dbb
RS
271132013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
27114
27115 * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2)
27116 (expand_builtin_mathfn_ternary, expand_builtin_mathfn_3)
27117 (expand_builtin_int_roundingfn_2): Keep the original target around
27118 for the fallback case.
27119
635b0b0c
RS
271202013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
27121
27122 * tree-vrp.c (range_fits_type_p): Require the MSB of the double_int
27123 to be clear for sign changes.
27124
42d57399
JH
271252013-01-01 Jan Hubicka <jh@suse.cz>
27126
27127 * ipa-inline-analysis.c: Fix formatting.
27128
5bb6669d
JJ
271292013-01-01 Jakub Jelinek <jakub@redhat.com>
27130
27131 PR tree-optimization/55831
27132 * tree-vect-loop.c (get_initial_def_for_induction): Use
27133 gsi_after_labels instead of gsi_start_bb.
ad41bd84 27134\f
86a2db33 27135Copyright (C) 2013 Free Software Foundation, Inc.
ad41bd84
JM
27136
27137Copying and distribution of this file, with or without modification,
27138are permitted in any medium without royalty provided the copyright
27139notice and this notice are preserved.