]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
Daily bump.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
84935d25
JDA
12013-10-19 John David Anglin <danglin@gcc.gnu.org>
2
3 PR target/58603
4 * system.h: Undef m_slot.
5
d7d1451a
BS
62013-10-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7
8 * config/rs6000/rs6000.c (vspltis_constant): Make sure we check
9 all elements for both endian flavors.
10
6eb793dd
UB
112013-10-19 Uros Bizjak <ubizjak@gmail.com>
12
13 PR target/58792
14 * config/i386/i386.c (ix86_function_value_regno): Add DX_REG,
15 ST1_REG and XMM1_REG for 32bit and 64bit targets. Also add DI_REG
16 and SI_REG for 64bit SYSV ABI targets.
17
c07757e5
UB
182013-10-19 Uros Bizjak <ubizjak@gmail.com>
19
20 * mode-switching.c (create_pre_exit): Rename maybe_builtin_apply
21 to multi_reg_return. Clarify that we are skipping USEs of multiple
22 return registers. Use bool type where appropriate.
23
41ee845b
JH
242013-10-18 Jan Hubicka <jh@suse.cz>
25
26 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Disable accumulation
27 for cold functions.
28 * x86-tune.def (X86_TUNE_USE_LEAVE): Update comment.
29 (X86_TUNE_PUSH_MEMORY): Likewise.
30 (X86_TUNE_AVX256_UNALIGNED_LOAD_OPTIMAL,
31 X86_TUNE_AVX256_UNALIGNED_STORE_OPTIMAL): New.
c07757e5
UB
32 (X86_TUNE_ACCUMULATE_OUTGOING_ARGS, X86_TUNE_ALWAYS_FANCY_MATH_387):
33 New.
41ee845b
JH
34 * i386.c (x86_accumulate_outgoing_args, x86_arch_always_fancy_math_387,
35 x86_avx256_split_unaligned_load, x86_avx256_split_unaligned_store):
36 Remove.
37 (ix86_option_override_internal): Update to use tune features instead
38 of variables.
39
6f978a2a
CH
402013-10-18 Cong Hou <congh@google.com>
41
42 PR tree-optimization/58508
43 * tree-vect-loop-manip.c (vect_loop_versioning): Hoist loop invariant
44 statement that contains data refs with zero-step.
45
4484a35a
AM
462013-10-18 Andrew MacLeod <amacleod@redhat.com>
47
c07757e5
UB
48 * tree-ssa.h: Don't include gimple-low.h, tree-ssa-address.h,
49 sbitmap.h, tree-ssa-threadedge.h, tree-ssa-dom.h and tree-cfgcleanup.h.
4484a35a
AM
50 * gimple-low.c (gimple_check_call_arg,
51 gimple_check_call_matching_types): Move to cgraph.c.
52 * gimple-low.h: Remove prototype.
53 * cgraph.c: (gimple_check_call_arg, gimple_check_call_matching_types):
54 Relocate from gimple-low.c.
55 * cgraph.h: Add prototype. Don't include basic-block.h.
56 * gimplify.c: Add gimple-low to include list.
57 * omp-low.c: Add gimple-low and tree-cfgcleanup.h to include list.
58 * tree-eh.c: Add gimple-low to include list.
59 * tree-nested.c: Likewise.
60 * cfgexpand.c: Add tree-ssa-address.h to include list.
61 * expr.c: Likewise.
62 * gimple-fold.c: Likewise.
63 * gimple-ssa-strength-reduction.c: Likewise.
64 * trans-mem.c: Likewise.
65 * tree-mudflap.c: Likewise.
66 * tree-ssa-loop-ivopts.c: Likewise.
67 * tree-ssa-dom.c: Include tree-ssa-threadedge.h and tree-ssa-dom.h.
68 (degenerate_phi_result): Move to tree-phinodes.c.
69 * tree-ssa-loop-ch.c: Include tree-ssa-threadedge.h.
70 * tree-ssa-threadedge.c: Likewise.
71 * tree-vrp.c: Likewise.
72 * tree-phinodes.c (degenerate_phi_result): Relocate here.
73 * tree-ssa-dom.h (degenerate_phi_result): Remove Prototype.
74 * tree-phinodes.h (degenerate_phi_result): Add prototype.
75 * tree-ssa-copy.c: Include tree-ssa-dom.h.
76 * tree-ssa-forwprop.c: Likewise.
77 * tree-cfgcleanup.c (execute_cleanup_cfg_post_optimizing,
78 pass_data_cleanup_cfg_post_optimizing,
79 make_pass_cleanup_cfg_post_optimizing): Relocate from tree-optimize.c.
80 * tree-optimize.c: Delete File.
81 * graphite.c: Include tree-cfgcleanup.h.
82 * passes.c: Likewise.
83 * tree-cfg.c: Likewise.
84 * tree-profile.c: Likewise.
85 * tree-ssa-dse.c: Likewise.
86 * tree-ssa-loop-ivcanon.c: Likewise.
87 * tree-switch-conversion.c: Don't include tree-ssa-operands.h.
88 * tree-outof-ssa.c: Include sbitmap.h.
89 * tree-ssa-live.c: Likewise.
90 * tree-ssa-propagate.c: Likewise.
91 * tree-ssa-structalias.c: Likewise.
92 * tree-stdarg.c: Likewise.
93 * Makefile.in (OBJS): Delete tree-optimize.o.
94 * basic-block.h (gcov_type, gcov_type_unsigned): Move to coretypes.h.
95 * coretypes.h (gcov_type, gcov_type_unsigned): Relocate here.
96 * varasm.c: Include basic-block.h.
97 * cfgloop.h: Include function.h instead of basic-block.h
98 (bb_loop_depth): Move to cfgloop.c.
99 * cfgloop.c (bb_loop_depth): Relocate from cfgloop.h.
100
bfaa17c1
TJ
1012013-10-18 Teresa Johnson <tejohnson@google.com>
102
103 * predict.c (probably_never_executed): Compare frequency-based
104 count to number of training runs.
105 * params.def (UNLIKELY_BB_COUNT_FRACTION): New parameter.
106
f58883bd
KT
1072013-10-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
108
109 * config/arm/arm.c (cortexa9_extra_costs): New table.
110 (arm_cortex_a9_tune): Use cortexa9_extra_costs.
111
01e127b1
JL
1122013-10-18 Jeff Law <law@redhat.com>
113
114 * tree-ssa-threadupdate.c: Do not include "tm.h" or "tm_p.h".
115
116 * tree-ssa-threadupdate.c: Include "dbgcnt.h".
c07757e5
UB
117 (register_jump_thread): Add "registered_jump_thread" debug
118 counter support.
01e127b1
JL
119 * dbgcnt.def (registered_jump_thread): New debug counter.
120
f41b8848
AM
1212013-10-18 Andrew MacLeod <amacleod@redhat.com>
122
123 * config/rs6000/rs6000.c: Include cgraph.h.
124
adc7a812
TJ
1252013-10-18 Teresa Johnson <tejohnson@google.com>
126
127 * tree-ssa-tail-merge.c (replace_block_by): Update edge
128 weights during merging.
129
377d9792
AM
1302013-10-18 Andrew MacLeod <amacleod@redhat.com>
131
132 * tree-cfg.h: Rename from tree-flow.h. Remove #includes.
133 * tree-ssa.h: Relocate required #includes from tree-cfg.h.
134 * tree-ssa-operands.h: Remove prototype.
135 * tree-ssa-operands.c (virtual_operand_p): Move to gimple.c.
136 * gimple.c (virtual_operand_p): Relocate from gimple.c.
137 * gimple.h: Add prototype.
138 * gimple-ssa.h: Include tree-ssa-operands.h.
139 * tree-dump.c: Add tree-cfg.h to include list.
140 * tree-ssa-alias.c: Add ipa-reference.h to include list.
141 * config/alpha/alpha.c: Include gimple-ssa.h instead of tree-flow.h.
142 * config/i386/i386.c: Don't include tree-flow.h.
143 * config/rs6000/rs6000.c: Likewise.
144
8ad8afaf
JBG
1452013-10-18 Jan-Benedict Glaw <jbglaw@lug-owl.de>
146
147 * config/frv/frv.c (frv_init_cumulative_args): Fix wrong cast.
148
c0e081a9
RB
1492013-10-18 Richard Biener <rguenther@suse.de>
150
151 * stor-layout.c (layout_type): Do not change TYPE_PRECISION
152 or TYPE_UNSIGNED of integral types.
153 (set_min_and_max_values_for_integral_type): Leave TYPE_MIN/MAX_VALUE
154 NULL_TREE for zero-precision integral types.
155
054fceb5
JG
1562013-10-18 James Greenhalgh <james.greenhalgh@arm.com>
157
158 * config/aarch64/arm_neon.h
159 (vcvt<ds>_n_<fsu><32,64>_<fsu><32,64>): Correct argument types.
160
70e8b89b
ST
1612013-10-17 Sriraman Tallam <tmsriram@google.com>
162
163 * opth-gen.awk: Define target_flags_explicit.
164
3170766c 1652013-10-17 Michael Meissner <meissner@linux.vnet.ibm.com>
5845f602
MM
166
167 * config/rs6000/rs6000.c (enum rs6000_reload_reg_type): Add new
168 fields to the reg_addr array that describes the valid addressing
169 mode for any register, general purpose registers, floating point
170 registers, and Altivec registers.
171 (FIRST_RELOAD_REG_CLASS): Likewise.
172 (LAST_RELOAD_REG_CLASS): Likewise.
173 (struct reload_reg_map_type): Likewise.
174 (reload_reg_map_type): Likewise.
175 (RELOAD_REG_VALID): Likewise.
176 (RELOAD_REG_MULTIPLE): Likewise.
177 (RELOAD_REG_INDEXED): Likewise.
178 (RELOAD_REG_OFFSET): Likewise.
179 (RELOAD_REG_PRE_INCDEC): Likewise.
180 (RELOAD_REG_PRE_MODIFY): Likewise.
181 (reg_addr): Likewise.
182 (mode_supports_pre_incdec_p): New helper functions to say whether
183 a given mode supports PRE_INC, PRE_DEC, and PRE_MODIFY.
184 (mode_supports_pre_modify_p): Likewise.
185 (rs6000_debug_vector_unit): Rearrange the -mdebug=reg output to
186 print the valid address mode bits for each mode.
187 (rs6000_debug_print_mode): Likewise.
188 (rs6000_debug_reg_global): Likewise.
189 (rs6000_setup_reg_addr_masks): New function to set up the address
190 mask bits for each type.
191 (rs6000_init_hard_regno_mode_ok): Use memset to clear arrays.
192 Call rs6000_setup_reg_addr_masks to set up the address mask bits.
193 (rs6000_legitimate_address_p): Use mode_supports_pre_incdec_p and
194 mode_supports_pre_modify_p to determine if PRE_INC, PRE_DEC, and
195 PRE_MODIFY are supported.
3170766c
MM
196 (rs6000_output_move_128bit): Change to use {src,dest}_vmx_p for altivec
197 registers, instead of {src,dest}_av_p.
5845f602
MM
198 (rs6000_print_options_internal): Tweak the debug output slightly.
199
82e33890
UB
2002013-10-17 Uros Bizjak <ubizjak@gmail.com>
201
202 * config/i386/sse.md (*vec_widen_smult_even_v8si): Remove
203 isa attribute.
204
0645c1a2
AM
2052013-10-17 Andrew MacLeod <amacleod@redhat.com>
206
207 * tree-flow.h (struct omp_region): Move to omp-low.c.
208 Remove omp_ prototypes and variables.
209 * gimple.h (omp_reduction_init): Move prototype to omp-low.h.
210 (copy_var_decl): Relocate prototype from tree-flow.h.
211 * gimple.c (copy_var_decl): Relocate from omp-low.c.
212 * tree.h: Move prototype to omp-low.h.
213 * omp-low.h: New File. Relocate prototypes here.
214 * omp-low.c (struct omp_region): Make local here.
215 (root_omp_region): Make static.
216 (copy_var_decl) Move to gimple.c.
217 (new_omp_region): Make static.
218 (make_gimple_omp_edges): New. Refactored from tree-cfg.c make_edges.
219 * tree-cfg.c: Include omp-low.h.
220 (make_edges): Factor out OMP specific bits to make_gimple_omp_edges.
221 * gimplify.c: Include omp-low.h.
222 * tree-parloops.c: Likewise.
223
6f1abb55
UB
2242013-10-17 Uros Bizjak <ubizjak@gmail.com>
225
226 * config/i386/i386.c (ix86_fixup_binary_operands): When both source
227 operands are in memory, prefer to force non-matched operand 1 to
228 the register.
229
1ddbbbc0
MM
2302013-10-17 Michael Meissner <meissner@linux.vnet.ibm.com>
231
232 PR target/58673
233 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Only
234 restrict TImode addresses to single indirect registers if both
235 -mquad-memory and -mvsx-timode are used.
236 (rs6000_output_move_128bit): Use quad_load_store_p to determine if
237 we should emit load/store quad. Remove using %y for quad memory
238 addresses.
239
240 * config/rs6000/rs6000.md (mov<mode>_ppc64, TI/PTImode): Add
241 constraints to allow load/store quad on machines where TImode is
242 not allowed in VSX registers. Use 'n' instead of 'F' constraint
243 for TImode to load integer constants.
244
f541a481
KT
2452013-10-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
246
247 * config/aarch64/aarch64.c (aarch64_print_operand): Handle 'c'.
248
51bb310d
MS
2492013-10-17 Marcus Shawcroft <marcus.shawcroft@arm.com>
250
251 * config/aarch64/aarch64.c (aarch64_preferred_reload_class): Adjust
252 handling of STACK_REG.
253
f4bed77b
RB
2542013-10-17 Richard Biener <rguenther@suse.de>
255
256 PR tree-optimization/58143
257 * tree-ssa-loop-im.c (arith_code_with_undefined_signed_overflow):
258 New function.
259 (rewrite_to_defined_overflow): Likewise.
260 (move_computations_dom_walker::before_dom): Rewrite stmts
261 with undefined signed overflow that are not always executed
262 into unsigned arithmetic.
263
d358fb9d
MM
2642013-10-16 Michael Meissner <meissner@linux.vnet.ibm.com>
265
266 PR target/57756
267 * config/rs6000/rs6000.opt (rs6000_isa_flags_explicit): Move the
268 explicit isa flag to be an options variable, instead of using
269 global_options_set. Remove define from rs6000.h.
270 * config/rs6000/rs6000.h (rs6000_isa_flags_explicit): Likewise.
271
272 * config/rs6000/rs6000.c (rs6000_option_override_internal):
273 Initialize rs6000_isa_flags_explicit.
274 (rs6000_function_specific_save): Add gcc_options* parameter, so
275 that the powerpc builds after the 2013-10-15 changes.
276 (rs6000_function_specific_restore): Likewise.
277
c71aed47
DD
2782013-10-16 DJ Delorie <dj@redhat.com>
279
280 * config/rl78/rl78.c (rl78_alloc_address_registers_macax): Verify
281 op is a REG before checking REGNO.
282 (rl78_alloc_physical_registers): Verify pattern is a SET before
283 checking SET_SRC.
284
90d3bd51
BS
2852013-10-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
286
287 * gcc/config/rs6000/vector.md (vec_unpacks_hi_v4sf): Correct for
288 endianness.
289 (vec_unpacks_lo_v4sf): Likewise.
290 (vec_unpacks_float_hi_v4si): Likewise.
291 (vec_unpacks_float_lo_v4si): Likewise.
292 (vec_unpacku_float_hi_v4si): Likewise.
293 (vec_unpacku_float_lo_v4si): Likewise.
294
de75c876
BS
2952013-10-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
296
297 * config/rs6000/vsx.md (vsx_concat_<mode>): Adjust output for LE.
298 (vsx_concat_v2sf): Likewise.
299
21216998
JG
3002013-10-16 James Greenhalgh <james.greenhalgh@arm.com>
301
302 * config/aarch64/aarch64.md
303 (*mov<mode>_aarch64): Fix output template for DUP (element) Scalar.
304
1ef88893 3052013-10-16 Andrew MacLeod <amacleod@redhat.com>
7ab4168e 306
1ef88893 307 PR tree-optimization/58697
7ab4168e 308 * cfgloop.c (get_estimated_loop_iterations_int): Rename from
1ef88893
AM
309 estimated_loop_iterations_int.
310 (max_stmt_executions_int): Call get_max_loop_iterations_int.
7ab4168e 311 (get_max_loop_iterations_int): New. HWINT version of
1ef88893
AM
312 get_max_loop_iterations.
313 * cfgloop.h: Add prototypes.
314 * loop-iv.c (find_simple_exit): call get_estimated_loop_iterations_int.
7ab4168e 315 * loop-unroll.c (decide_peel_once_rolling): Call
1ef88893
AM
316 get_estimated_loop_iterations_int.
317 * tree-ssa-loop-niter.c (estimated_loop_iterations_int): Add back.
318 * tree-ssa-loop-niter.h: Tweak prototypes.
319
c22df64f
DM
3202013-10-16 David Malcolm <dmalcolm@redhat.com>
321
322 * gengtype-parse.c (struct_field_seq): Ignore access-control
323 keywords ("public:" etc).
324
f24bb080
MS
3252013-10-16 Marcus Shawcroft <marcus.shawcroft@arm.com>
326
327 * config/aarch64/aarch64.c (aarch64_regno_regclass): Classify
328 FRAME_POINTER_REGNUM and ARG_POINTER_REGNUM as POINTER_REGS.
329
c281bf26
YR
3302013-10-16 Yvan Roux <yvan.roux@linaro.org>
331
332 * config/arm/arm.opt (mlra): New option.
333 * config/arm/arm.c (arm_lra_p): New function.
334 (TARGET_LRA_P): Define.
335
5806f481
PM
3362013-10-16 Paulo Matos <pmatos@broadcom.com>
337
338 * tree-core.h (tree_code_name): Remove.
339 * tree.h (get_tree_code_name): New prototype.
340 * tree.c (tree_code_name): Make static.
341 (get_tree_code_name): New function.
342 (dump_tree_statistics, tree_check_failed, tree_not_check_failed,
343 tree_class_check_failed, tree_range_check_failed,
344 tree_not_class_check_failed, omp_clause_check_failed,
345 tree_contains_struct_check_failed, tree_operand_check_failed): Use new
346 wrapper get_tree_code_name instead of calling tree_code_name directly.
347 * tree-vrp.c (dump_asserts_for): Likewise.
348 * tree-dump.c (dequeue_and_dump): Likewise.
349 * tree-pretty-print.c (do_niy, dump_generic_node): Likewise.
350 * tree-pretty-print.h (pp_unsupported_tree): Likewise.
351 * lto-streamer-out.c (lto_write_tree, DFS_write_tree): Likewise.
352 * tree-ssa-dom.c (print_expr_hash_elt): Likewise.
353 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
354 dump_ternary_rhs, dump_gimple_assign, dump_gimple_cond,
355 dump_gimple_omp_for): Likewise.
356 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Likewise.
357 * tree-ssa-pre.c (print_pre_expr): Likewise.
358 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Likewise.
359 * print-tree.c (print_node_brief, print_node): Likewise.
360 * gimple.c (gimple_check_failed): Likewise.
361 * lto-streamer.c (lto_tag_name, print_lto_report): Likewise.
362 * config/frv/frv.c (frv_init_cumulative_args): Likewise.
363 * config/mep/mep.c (mep_validate_vliw): Likewise.
364 * config/iq2000/iq2000.c (init_cumulative_args): Likewise.
365 * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
366
82c9df56
GG
3672013-10-16 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
368
369 * config/i386/i386.c (ix86_option_override_internal): Enable FMA4
370 for AMD bdver3.
371
b82d0df9
HPN
3722013-10-16 Hans-Peter Nilsson <hp@axis.com>
373
374 * config/cris/t-elfmulti (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
375 (MULTILIB_MATCHES): Add multilib for -march=v8.
376
bf7b5747
ST
3772013-10-15 Sriraman Tallam <tmsriram@google.com>
378
379 PR target/57756
380 * optc-save-gen.awk: Add extra parameter to the save and restore
381 target calls.
382 * opth-gen.awk: Generate new TARGET_* macros to accept a parameter.
383 * tree.c (build_optimization_node): New parameter. Add extra parameter
384 to call to cl_optimization_save.
385 (build_target_option_node): New parameter. Add extra parameter
386 to call to cl_target_option_save.
387 * tree.h (build_optimization_node): New parameter.
388 (build_target_option_node): New parameter.
389 * c-family/c-common.c (handle_optimize_attribute): Fix calls to
390 build_optimization_node and build_target_option_node.
391 * c-family/c-pragma.c (handle_pragma_optimize): Ditto.
392 (handle_pragma_push_options): Ditto.
393 * toplev.c (process_options): Ditto.
394 * opts.c (init_options_struct): Check for opts_set non-null.
395 * target.def (target_option.save): New parameter.
396 (target_option.restore): New parameter.
397 * tm.texi: Generate.
398 * config/i386/i386-c.c (ix86_target_macros_internal): Ditto.
399 (ix86_pragma_target_parse): Ditto.
400 * config/i386/i386-protos.h (ix86_valid_target_attribute_tree): New
401 parameters.
402 * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix calls
403 to build_optimization_node and build_target_option_node.
404 (rs6000_valid_attribute_p): Ditto.
405 (rs6000_pragma_target_parse): Ditto.
406 * config/i386/i386.opt (x_ix86_target_flags_explicit): New TargetSave
407 data.
408 * config/i386/i386.h:
409 TARGET_64BIT_P: New Macro
410 TARGET_MMX_P: New Macro.
411 TARGET_3DNOW_P: New Macro.
412 TARGET_3DNOW_A_P: New Macro.
413 TARGET_SSE_P: New Macro.
414 TARGET_SSE2_P: New Macro.
415 TARGET_SSE3_P: New Macro.
416 TARGET_SSSE3_P: New Macro.
417 TARGET_SSE4_1_P: New Macro.
418 TARGET_SSE4_2_P: New Macro.
419 TARGET_AVX_P: New Macro.
420 TARGET_AVX2_P: New Macro.
421 TARGET_AVX512F_P: New Macro.
422 TARGET_AVX512PF_P: New Macro.
423 TARGET_AVX512ER_P: New Macro.
424 TARGET_AVX512CD_P: New Macro.
425 TARGET_FMA_P: New Macro.
426 TARGET_SSE4A_P: New Macro.
427 TARGET_FMA4_P: New Macro.
428 TARGET_XOP_P: New Macro.
429 TARGET_LWP_P: New Macro.
430 TARGET_ABM_P: New Macro.
431 TARGET_BMI_P: New Macro.
432 TARGET_BMI2_P: New Macro.
433 TARGET_LZCNT_P: New Macro.
434 TARGET_TBM_P: New Macro.
435 TARGET_POPCNT_P: New Macro.
436 TARGET_SAHF_P: New Macro.
437 TARGET_MOVBE_P: New Macro.
438 TARGET_CRC32_P: New Macro.
439 TARGET_AES_P: New Macro.
440 TARGET_PCLMUL_P: New Macro.
441 TARGET_CMPXCHG16B_P: New Macro.
442 TARGET_FSGSBASE_P: New Macro.
443 TARGET_RDRND_P: New Macro.
444 TARGET_F16C_P: New Macro.
445 TARGET_RTM_P: New Macro.
446 TARGET_HLE_P: New Macro.
447 TARGET_RDSEED_P: New Macro.
448 TARGET_PRFCHW_P: New Macro.
449 TARGET_ADX_P: New Macro.
450 TARGET_FXSR_P: New Macro.
451 TARGET_XSAVE_P: New Macro.
452 TARGET_XSAVEOPT_P: New Macro.
453 TARGET_LP64_P: New Macro.
454 TARGET_X32_P: New Macro.
455 TARGET_FPMATH_DEFAULT_P: New Macro.
456 TARGET_FLOAT_RETURNS_IN_80387_P: New Macro.
457 * config/i386/i386.c (ix86_option_override_internal): New parameters.
458 opts and opts_set.
459 Change ix86_tune_string to access opts->x_ix86_tune_string.
460 Change ix86_isa_flags to access opts->x_ix86_isa_flags.
461 Change ix86_arch_string to access opts->x_ix86_arch_string.
462 Change ix86_stringop_alg to access opts->x_ix86_stringop_alg.
463 Change ix86_pmode to access opts->x_ix86_pmode.
464 Change ix86_abi to access opts->x_ix86_abi.
465 Change ix86_cmodel to access opts->x_ix86_cmodel.
466 Change ix86_asm_dialect to access opts->x_ix86_asm_dialect.
467 Change ix86_isa_flags_explicit to access
468 opts->x_ix86_isa_flags_explicit.
469 Change ix86_dump_tunes to access opts->x_ix86_dump_tunes.
470 Change ix86_regparm to access opts->x_ix86_regparm.
471 Change ix86_branch_cost to access opts->x_ix86_branch_cost.
472 Change ix86_preferred_stack_boundary_arg to access
473 opts->x_ix86_preferred_stack_boundary_arg.
474 Change ix86_force_align_arg_pointer to access
475 opts->x_ix86_force_align_arg_pointer.
476 Change ix86_incoming_stack_boundar_arg to access
477 opts->x_ix86_incoming_stack_boundar_arg.
478 Change ix86_fpmath to access opts->x_ix86_fpmath.
479 Change ix86_veclibabi_type to access opts->x_ix86_veclibabi_type.
480 Change ix86_recip_name to access opts->x_ix86_recip_name.
481 Change ix86_stack_protector_guard to access
482 opts->x_ix86_stack_protector_guard.
483 Change ix86_tune_memcpy_strategy to access
484 opts->x_ix86_tune_memcpy_strategy.
485 Change ix86_tune_memset_strategy to access
486 opts->x_ix86_tune_memset_strategy.
487 Change global_options to access opts.
488 Change global_options_set to access opts_set.
6f1abb55
UB
489 Change TARGET_64BIT to TARGET_64BIT_P (opts->...).
490 Change TARGET_MMX to TARGET_MMX_P (opts->...).
491 Change TARGET_3DNOW to TARGET_3DNOW_P (opts->...).
492 Change TARGET_3DNOW_A to TARGET_3DNOW_A_P (opts->...).
493 Change TARGET_SSE to TARGET_SSE_P (opts->...).
494 Change TARGET_SSE2 to TARGET_SSE2_P (opts->...).
495 Change TARGET_SSE3 to TARGET_SSE3_P (opts->...).
496 Change TARGET_SSSE3 to TARGET_SSSE3_P (opts->...).
497 Change TARGET_SSE4_1 to TARGET_SSE4_1_P (opts->...).
498 Change TARGET_SSE4_2 to TARGET_SSE4_2_P (opts->...).
499 Change TARGET_AVX to TARGET_AVX_P (opts->...).
500 Change TARGET_AVX2 to TARGET_AVX2_P (opts->...).
501 Change TARGET_AVX512F to TARGET_AVX512F_P (opts->...).
502 Change TARGET_AVX512PF to TARGET_AVX512PF_P (opts->...).
503 Change TARGET_AVX512ER to TARGET_AVX512ER_P (opts->...).
504 Change TARGET_AVX512CD to TARGET_AVX512CD_P (opts->...).
505 Change TARGET_FMA to TARGET_FMA_P (opts->...).
506 Change TARGET_SSE4A to TARGET_SSE4A_P (opts->...).
507 Change TARGET_FMA4 to TARGET_FMA4_P (opts->...).
508 Change TARGET_XOP to TARGET_XOP_P (opts->...).
509 Change TARGET_LWP to TARGET_LWP_P (opts->...).
510 Change TARGET_ABM to TARGET_ABM_P (opts->...).
511 Change TARGET_BMI to TARGET_BMI_P (opts->...).
512 Change TARGET_BMI2 to TARGET_BMI2_P (opts->...).
513 Change TARGET_LZCNT to TARGET_LZCNT_P (opts->...).
514 Change TARGET_TBM to TARGET_TBM_P (opts->...).
515 Change TARGET_POPCNT to TARGET_POPCNT_P (opts->...).
516 Change TARGET_SAHF to TARGET_SAHF_P (opts->...).
517 Change TARGET_MOVBE to TARGET_MOVBE_P (opts->...).
518 Change TARGET_CRC32 to TARGET_CRC32_P (opts->...).
519 Change TARGET_AES to TARGET_AES_P (opts->...).
520 Change TARGET_PCLMUL to TARGET_PCLMUL_P (opts->...).
521 Change TARGET_CMPXCHG16B to TARGET_CMPXCHG16B_P (opts->...).
522 Change TARGET_FSGSBASE to TARGET_FSGSBASE_P (opts->...).
523 Change TARGET_RDRND to TARGET_RDRND_P (opts->...).
524 Change TARGET_F16C to TARGET_F16C_P (opts->...).
525 Change TARGET_RTM to TARGET_RTM_P (opts->...).
526 Change TARGET_HLE to TARGET_HLE_P (opts->...).
527 Change TARGET_RDSEED to TARGET_RDSEED_P (opts->...).
528 Change TARGET_PRFCHW to TARGET_PRFCHW_P (opts->...).
529 Change TARGET_ADX to TARGET_ADX_P (opts->...).
530 Change TARGET_FXSR to TARGET_FXSR_P (opts->...).
531 Change TARGET_XSAVE to TARGET_XSAVE_P (opts->...).
532 Change TARGET_XSAVEOPT to TARGET_XSAVEOPT_P (opts->...).
533 Change TARGET_LP64 to TARGET_LP64_P (opts->...).
534 Change TARGET_X32 to TARGET_X32_P (opts->...).
535 Change TARGET_FPMATH_DEFAULT to TARGET_FPMATH_DEFAULT_P (opts->...).
536 Change TARGET_FLOAT_RETURNS_IN_80387 to
537 TARGET_FLOAT_RETURNS_IN_80387_P (opts->...).
bf7b5747
ST
538 (ix86_function_specific_save): New parameter. Use opts-> fields
539 to replace global fields.
540 (ix86_function_specific_restore): Ditto.
541 (ix86_valid_target_attribute_inner_p): New parameters.
542 Fix recursive call.
543 Fix call to ix86_handle_option and set_option.
544 (ix86_valid_target_attribute_tree): New parameters.
545 Change global_options to access opts.
546 Change global_options_set to access opts_set.
547 Fix call to ix86_valid_target_attribute_inner_p.
548 Change ix86_tune_string to access opts->x_ix86_tune_string.
549 Change ix86_arch_string to access opts->x_ix86_arch_string.
550 Change ix86_fpmath to access opts->x_ix86_fpmath
551 Fix call to ix86_option_override_internal.
552 Fix call to ix86_add_new_builtins.
553 Fix calls to build_optimization_node and build_target_option_node.
554 (ix86_valid_target_attribute_p): Remove access to global_options.
555 Use new gcc_options structure func_options.
556 Fix call to ix86_valid_target_attribute_tree.
557 Fix call to build_optimization_node.
558 (get_builtin_code_for_version): Fix call to
559 ix86_valid_target_attribute_tree.
560
459260ec
DM
5612013-10-15 David Malcolm <dmalcolm@redhat.com>
562
563 * Makefile.in (PICFLAG): New.
564 (enable_host_shared): New.
565 (INTERNAL_CFLAGS): Use PICFLAG.
566 (LIBIBERTY): Use pic build of libiberty.a if configured with
567 --enable-host-shared.
568 * configure.ac: Add --enable-host-shared, setting up new
569 PICFLAG variable.
570 * configure: Regenerate.
6f1abb55 571 * doc/install.texi (--enable-shared): Add note contrasting it with ...
459260ec
DM
572 (--enable-host-shared): New option.
573
16022041
RS
5742013-10-15 Richard Biener <rguenther@suse.de>
575
576 * tree-tailcall.c (find_tail_calls): Don't use tail-call recursion
577 for built-in functions.
578
b114bfb4
ZC
5792013-10-15 Zhenqiang Chen <zhenqiang.chen@arm.com>
580
581 * tree-ssa-reassoc.c: Include rtl.h and tm_p.h.
582 (optimize_range_tests_1): New function,
583 extracted from optimize_range_tests.
584 (optimize_range_tests_xor): Similarly.
585 (optimize_range_tests_diff): New function.
586 (optimize_range_tests): Use optimize_range_tests_1.
587
69b8f2f9
CH
5882013-10-15 Cong Hou <congh@google.com>
589
7ab4168e
MS
590 * tree-vect-loop.c (vect_is_simple_reduction_1): Relax the
591 requirement of the reduction pattern so that one operand of the
69b8f2f9
CH
592 reduction operation can come from outside of the loop.
593
8ff5a4e4
JG
5942013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
595
596 * config/arm/neon-schedgen.ml: Remove.
597 * config/arm/cortex-a9-neon.md: Remove comment regarding
598 neon-schedgen.ml.
599
52b69ad2
JG
6002013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
601
602 * config/arm/types: Remove old neon types.
603
e7c6a556
JG
6042013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
605
606 * config/arm/cortex-a7.md
607 (cortex_a7_neon_type): New.
608 (cortex_a7_neon_mul): Update for new types.
609 (cortex_a7_neon_mla): Likewise.
610 (cortex_a7_neon): Likewise.
611
795dd8d5
JG
6122013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
613
614 * config/arm/cortex-a15-neon.md
615 (cortex_a15_neon_type): New,
616
617 (cortex_a15_neon_int_1): Remove.
618 (cortex_a15_neon_int_2): Likewise.
619 (cortex_a15_neon_int_3): Likewise.
620 (cortex_a15_neon_int_4): Likewise.
621 (cortex_a15_neon_int_5): Likewise.
622 (cortex_a15_neon_vqneg_vqabs): Likewise.
623 (cortex_a15_neon_vmov): Likewise.
624 (cortex_a15_neon_vaba): Likewise.
625 (cortex_a15_neon_vaba_qqq): Likewise.
626 (cortex_a15_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
627 (cortex_a15_neon_mul_qqq_8_16_32_ddd_32): Likewise.
628 (cortex_a15_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_long_scalar):
629 Likewise.
630 (cortex_a15_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
631 (cortex_a15_neon_mla_qqq_8_16): Likewise.
632 (cortex_a15_neon_mla_ddd_32_qqd_16_ddd_32_scalar): Likewise.
633 (cortex_a15_neon_mla_qqq_32_qqd_32_scalar): Likewise.
634 (cortex_a15_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
635 (cortex_a15_neon_mul_qqd_32_scalar): Likewise.
636 (cortex_a15_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
637 (cortex_a15_neon_shift_1): Likewise.
638 (cortex_a15_neon_shift_2): Likewise.
639 (cortex_a15_neon_shift_3): Likewise.
640 (cortex_a15_neon_vshl_ddd): Likewise.
641 (cortex_a15_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
642 (cortex_a15_neon_vsra_vrsra): Likewise.
643 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
644 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
645 (cortex_a15_neon_bp_3cycle): Likewise.
646 (cortex_a15_neon_ldm_2): Likewise.
647 (cortex_a15_neon_stm_2): Likewise.
648 (cortex_a15_neon_mcr): Likewise.
649 (cortex_a15_neon_mrc): Likewise.
650 (cortex_a15_neon_fp_vadd_ddd_vabs_dd): Likewise.
651 (cortex_a15_neon_fp_vadd_qqq_vabs_qq): Likewise.
652 (cortex_a15_neon_fp_vmul_ddd): Likewise.
653 (cortex_a15_neon_fp_vmul_qqd): Likewise.
654 (cortex_a15_neon_fp_vmla_ddd): Likewise.
655 (cortex_a15_neon_fp_vmla_qqq): Likewise.
656 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
657 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
658 (cortex_a15_neon_fp_vrecps_vrsqrts_ddd): Likewise.
659 (cortex_a15_neon_fp_vrecps_vrsqrts_qqq): Likewise.
660 (cortex_a15_neon_bp_simple): Likewise.
661 (cortex_a15_neon_bp_2cycle): Likewise.
662 (cortex_a15_neon_bp_3cycle): Likewise.
663 (cortex_a15_neon_vld1_1_2_regs): Likewise.
664 (cortex_a15_neon_vld1_3_4_regs): Likewise.
665 (cortex_a15_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
666 (cortex_a15_neon_vld2_4_regs): Likewise.
667 (cortex_a15_neon_vld3_vld4): Likewise.
668 (cortex_a15_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
669 (cortex_a15_neon_vst1_3_4_regs): Likewise.
670 (cortex_a15_neon_vst2_4_regs_vst3_vst4): Rename to...
671 (cortex_a15_neon_vst2_4_regs_vst3): ...This, update for new attributes.
672 (cortex_a15_neon_vst3_vst4): Rename to...
673 (cortex_a15_neon_vst4): This, update for new attributes.
674 (cortex_a15_neon_vld1_vld2_lane): Update for new attributes.
675 (cortex_a15_neon_vld3_vld4_lane): Likewise.
676 (cortex_a15_neon_vst1_vst2_lane): Likewise.
677 (cortex_a15_neon_vst3_vst4_lane): Likewise.
678 (cortex_a15_neon_vld3_vld4_all_lanes): Likewise.
679 (cortex_a15_neon_ldm_2): Likewise.
680 (cortex_a15_neon_stm_2): Likewise.
681 (cortex_a15_neon_mcr): Likewise.
682 (cortex_a15_neon_mcr_2_mcrr): Likewise.
683 (cortex_a15_neon_mrc): Likewise.
684 (cortex_a15_neon_mrrc): Likewise.
685
686 (cortex_a15_neon_abd): New.
687 (cortex_a15_neon_abd_q): Likewise.
688 (cortex_a15_neon_aba): Likewise.
689 (cortex_a15_neon_aba_q): Likewise.
690 (cortex_a15_neon_acc): Likewise.
691 (cortex_a15_neon_acc_q): Likewise.
692 (cortex_a15_neon_arith_basic): Likewise.
693 (cortex_a15_neon_arith_complex): Likewise.
694 (cortex_a15_neon_multiply): Likewise.
695 (cortex_a15_neon_multiply_q): Likewise.
696 (cortex_a15_neon_mla): Likewise.
697 (cortex_a15_neon_mla_q): Likewise.
698 (cortex_a15_neon_sat_mla_long): Likewise.
699 (cortex_a15_neon_shift_acc): Likewise.
700 (cortex_a15_neon_shift_imm_basic): Likewise.
701 (cortex_a15_neon_shift_imm_complex): Likewise.
702 (cortex_a15_neon_shift_reg_basic): Likewise.
703 (cortex_a15_neon_shift_reg_basic_q): Likewise.
704 (cortex_a15_neon_shift_reg_complex): Likewise.
705 (cortex_a15_neon_shift_reg_complex_q): Likewise.
706 (cortex_a15_neon_fp_negabs): Likewise
707 (cortex_a15_neon_fp_arith): Likewise
708 (cortex_a15_neon_fp_arith_q): Likewise
709 (cortex_a15_neon_fp_cvt_int): Likewise
710 (cortex_a15_neon_fp_cvt_int_q): Likewise
711 (cortex_a15_neon_fp_cvt_16): Likewise
712 (cortex_a15_neon_fp_mul): Likewise
713 (cortex_a15_neon_fp_mul_q): Likewise
714 (cortex_a15_neon_fp_mla): Likewise
715 (cortex_a15_neon_fp_mla_q): Likewise
716 (cortex_a15_neon_fp_recps_rsqrte): Likewise.
717 (cortex_a15_neon_fp_recps_rsqrte_q): Likewise.
718 (cortex_a15_neon_bitops): Likewise.
719 (cortex_a15_neon_bitops_q): Likewise.
720 (cortex_a15_neon_from_gp): Likewise.
721 (cortex_a15_neon_from_gp_q): Likewise.
722 (cortex_a15_neon_tbl3_tbl4): Likewise.
723 (cortex_a15_neon_zip_q): Likewise.
724 (cortex_a15_neon_to_gp): Likewise.
725 (cortex_a15_neon_load_a): Likewise.
726 (cortex_a15_neon_load_b): Likewise.
727 (cortex_a15_neon_load_c): Likewise.
728 (cortex_a15_neon_load_d): Likewise.
729 (cortex_a15_neon_load_e): Likewise.
730 (cortex_a15_neon_load_f): Likewise.
731 (cortex_a15_neon_store_a): Likewise.
732 (cortex_a15_neon_store_b): Likewise.
733 (cortex_a15_neon_store_c): Likewise.
734 (cortex_a15_neon_store_d): Likewise.
735 (cortex_a15_neon_store_e): Likewise.
736 (cortex_a15_neon_store_f): Likewise.
737 (cortex_a15_neon_store_g): Likewise.
738 (cortex_a15_neon_store_h): Likewise.
739 (cortex_a15_vfp_to_from_gp): Likewise.
740
bc5e57e3
JG
7412013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
742
743 * config/arm/cortex-a9-neon.md (cortex_a9_neon_type): New.
744
745 (cortex_a9_neon_vshl_ddd): Remove.
746 (cortex_a9_neon_vst3_vst4): Likewise.
747 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
748
749 (cortex_a9_neon_bit_ops_q): New.
750
751 (cortex_a9_neon_int_1): Use cortex_a8_neon_type.
752 (cortex_a9_neon_int_2): Likewise.
753 (cortex_a9_neon_int_3): Likewise.
754 (cortex_a9_neon_int_4): Likewise.
755 (cortex_a9_neon_int_5): Likewise.
756 (cortex_a9_neon_vqneg_vqabs): Likewise.
757 (cortex_a9_neon_vmov): Likewise.
758 (cortex_a9_neon_vaba): Likewise.
759 (cortex_a9_neon_vaba_qqq): Likewise.
760 (cortex_a9_neon_shift_1): Likewise.
761 (cortex_a9_neon_shift_2): Likewise.
762 (cortex_a9_neon_shift_3): Likewise.
763 (cortex_a9_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
764 (cortex_a9_neon_vsra_vrsra): Likewise.
765 (cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
766 (cortex_a9_neon_mul_qqq_8_16_32_ddd_32): Likewise.
767 (cortex_a9_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_long_scalar):
768 Likewise.
769 (cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
770 (cortex_a9_neon_mla_qqq_8_16): Likewise.
771 (cortex_a9_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_long_scalar_qdd_64_32_long):
772 Likewise.
773 (cortex_a9_neon_mla_qqq_32_qqd_32_scalar): Likewise.
774 (cortex_a9_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
775 (cortex_a9_neon_mul_qqd_32_scalar): Likewise.
776 (cortex_a9_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
777 (cortex_a9_neon_fp_vadd_ddd_vabs_dd): Likewise.
778 (cortex_a9_neon_fp_vadd_qqq_vabs_qq): Likewise.
779 (cortex_a9_neon_fp_vsum): Likewise.
780 (cortex_a9_neon_fp_vmul_ddd): Likewise.
781 (cortex_a9_neon_fp_vmul_qqd): Likewise.
782 (cortex_a9_neon_fp_vmla_ddd): Likewise.
783 (cortex_a9_neon_fp_vmla_qqq): Likewise.
784 (cortex_a9_neon_fp_vmla_ddd_scalar): Likewise.
785 (cortex_a9_neon_fp_vmla_qqq_scalar): Likewise.
786 (cortex_a9_neon_fp_vrecps_vrsqrts_ddd): Likewise.
787 (cortex_a9_neon_fp_vrecps_vrsqrts_qqq): Likewise.
788 (cortex_a9_neon_bp_simple): Likewise.
789 (cortex_a9_neon_bp_2cycle): Likewise.
790 (cortex_a9_neon_bp_3cycle): Likewise.
791 (cortex_a9_neon_ldr): Likewise.
792 (cortex_a9_neon_str): Likewise.
793 (cortex_a9_neon_vld1_1_2_regs): Likewise.
794 (cortex_a9_neon_vld1_3_4_regs): Likewise.
795 (cortex_a9_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
796 (cortex_a9_neon_vld2_4_regs): Likewise.
797 (cortex_a9_neon_vld3_vld4): Likewise.
798 (cortex_a9_neon_vld1_vld2_lane): Likewise.
799 (cortex_a9_neon_vld3_vld4_lane): Likewise.
800 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
801 (cortex_a9_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
802 (cortex_a9_neon_vst1_3_4_regs): Likewise.
803 (cortex_a9_neon_vst2_4_regs_vst3_vst4): Likewise.
804 (cortex_a9_neon_vst1_vst2_lane): Likewise.
805 (cortex_a9_neon_vst3_vst4_lane): Likewise.
806 (cortex_a9_neon_mcr): Likewise.
807 (cortex_a9_neon_mcr_2_mcrr): Likewise.
808 (cortex_a9_neon_mrc): Likewise.
809 (cortex_a9_neon_mrrc): Likewise.
810
9deda8cb
JG
8112013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
812
813 * config/arm/cortex-a8-neon.md (cortex_a8_neon_type): New.
814
815 (cortex_a8_neon_vshl_ddd): Remove.
816 (cortex_a8_neon_vst3_vst4): Likewise.
817 (cortex_a8_neon_vld3_vld4_all_lanes): Likewise.
818
819 (cortex_a8_neon_bit_ops_q): New.
820
821 (cortex_a8_neon_int_1): Use cortex_a8_neon_type.
822 (cortex_a8_neon_int_2): Likewise..
823 (cortex_a8_neon_int_3): Likewise.
824 (cortex_a8_neon_int_5): Likewise.
825 (cortex_a8_neon_vqneg_vqabs): Likewise.
826 (cortex_a8_neon_int_4): Likewise.
827 (cortex_a8_neon_vaba): Likewise.
828 (cortex_a8_neon_vaba_qqq): Likewise.
829 (cortex_a8_neon_shift_1): Likewise.
830 (cortex_a8_neon_shift_2): Likewise.
831 (cortex_a8_neon_shift_3): Likewise.
832 (cortex_a8_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
833 (cortex_a8_neon_vsra_vrsra): Likewise.
834 (cortex_a8_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
835 (cortex_a8_neon_mul_qqq_8_16_32_ddd_32): Likewise.
836 (cortex_a8_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_long_scalar):
837 Likewise.
838 (cortex_a8_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
839 (cortex_a8_neon_mla_qqq_8_16): Likewise.
840 (cortex_a8_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_long_scalar_qdd_64_32_long):
841 Likewise.
842 (cortex_a8_neon_mla_qqq_32_qqd_32_scalar): Likewise.
843 (cortex_a8_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
844 (cortex_a8_neon_mul_qqd_32_scalar): Likewise.
845 (cortex_a8_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
846 (cortex_a8_neon_fp_vadd_ddd_vabs_dd): Likewise.
847 (cortex_a8_neon_fp_vadd_qqq_vabs_qq): Likewise.
848 (cortex_a8_neon_fp_vsum): Likewise.
849 (cortex_a8_neon_fp_vmul_ddd): Likewise.
850 (cortex_a8_neon_fp_vmul_qqd): Likewise.
851 (cortex_a8_neon_fp_vmla_ddd): Likewise.
852 (cortex_a8_neon_fp_vmla_qqq): Likewise.
853 (cortex_a8_neon_fp_vmla_ddd_scalar): Likewise.
854 (cortex_a8_neon_fp_vmla_qqq_scalar): Likewise.
855 (cortex_a8_neon_fp_vrecps_vrsqrts_ddd): Likewise.
856 (cortex_a8_neon_fp_vrecps_vrsqrts_qqq): Likewise.
857 (cortex_a8_neon_bp_simple): Likewise.
858 (cortex_a8_neon_bp_2cycle): Likewise.
859 (cortex_a8_neon_bp_3cycle): Likewise.
860 (cortex_a8_neon_ldr): Likewise.
861 (cortex_a8_neon_str): Likewise.
862 (cortex_a8_neon_vld1_1_2_regs): Likewise.
863 (cortex_a8_neon_vld1_3_4_regs): Likewise.
864 (cortex_a8_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
865 (cortex_a8_neon_vld2_4_regs): Likewise.
866 (cortex_a8_neon_vld3_vld4): Likewise.
867 (cortex_a8_neon_vld1_vld2_lane): Likewise.
868 (cortex_a8_neon_vld3_vld4_lane): Likewise.
869 (cortex_a8_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
870 (cortex_a8_neon_vst1_3_4_regs): Likewise.
871 (cortex_a8_neon_vst2_4_regs_vst3_vst4): Likewise.
872 (cortex_a8_neon_vst1_vst2_lane): Likewise.
873 (cortex_a8_neon_vst3_vst4_lane): Likewise.
874 (cortex_a8_neon_mcr): Likewise.
875 (cortex_a8_neon_mcr_2_mcrr): Likewise.
876 (cortex_a8_neon_mrc): Likewise.
877 (cortex_a8_neon_mrrc): Likewise.
878
0f686aa9
JG
8792013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
880
881 * config/aarch64/iterators.md (Vetype): Add SF and DF modes.
882 (fp): New.
883 * config/aarch64/aarch64-simd.md (neon_type): Remove.
884 (aarch64_simd_dup<mode>): Add "type" attribute.
885 (aarch64_dup_lane<mode>): Likewise.
886 (aarch64_dup_lane_<vswap_width_name><mode>): Likewise.
887 (*aarch64_simd_mov<mode>): Likewise.
888 (aarch64_simd_mov_from_<mode>low): Likewise.
889 (aarch64_simd_mov_from_<mode>high): Likewise.
890 (orn<mode>3): Likewise.
891 (bic<mode>3): Likewise.
892 (add<mode>3): Likewise.
893 (sub<mode>3): Likewise.
894 (mul<mode>3): Likewise.
895 (*aarch64_mul3_elt<mode>): Likewise.
896 (*aarch64_mul3_elt_<vswap_width_name><mode>): Likewise.
897 (*aarch64_mul3_elt_to_128df): Likewise.
898 (*aarch64_mul3_elt_to_64v2df): Likewise.
899 (neg<mode>2): Likewise.
900 (abs<mode>2): Likewise.
901 (abd<mode>_3): Likewise.
902 (aba<mode>_3): Likewise.
903 (fabd<mode>_3): Likewise.
904 (*fabd_scalar<mode>3): Likewise.
905 (and<mode>3): Likewise.
906 (ior<mode>3): Likewise.
907 (xor<mode>3): Likewise.
908 (one_cmpl<mode>2): Likewise.
909 (aarch64_simd_vec_set<mode>): Likewise.
910 (aarch64_simd_lshr<mode>): Likewise.
911 (aarch64_simd_ashr<mode>): Likewise.
912 (aarch64_simd_imm_shl<mode>): Likewise.
913 (aarch64_simd_reg_sshl<mode): Likewise.
914 (aarch64_simd_reg_shl<mode>_unsigned): Likewise.
915 (aarch64_simd_reg_shl<mode>_signed): Likewise.
916 (aarch64_simd_vec_setv2di): Likewise.
917 (aarch64_simd_vec_set<mode>): Likewise.
918 (aarch64_mla<mode>): Likewise.
919 (*aarch64_mla_elt<mode>): Likewise.
920 (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
921 (aarch64_mls<mode>): Likewise.
922 (*aarch64_mls_elt<mode>): Likewise.
923 (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
924 (<su><maxmin><mode>3): Likewise.
925 (move_lo_quad_<mode>): Likewise.
926 (aarch64_simd_move_hi_quad_<mode>): Likewise.
927 (aarch64_simd_vec_pack_trunc_<mode>): Likewise.
928 (vec_pack_trunc_<mode>): Likewise.
929 (aarch64_simd_vec_unpack<su>_lo_<mode>): Likewise.
930 (aarch64_simd_vec_unpack<su>_hi_<mode>): Likewise.
931 (*aarch64_<su>mlal_lo<mode>): Likewise.
932 (*aarch64_<su>mlal_hi<mode>): Likewise.
933 (*aarch64_<su>mlsl_lo<mode>): Likewise.
934 (*aarch64_<su>mlsl_hi<mode>): Likewise.
935 (*aarch64_<su>mlal<mode>): Likewise.
936 (*aarch64_<su>mlsl<mode>): Likewise.
937 (aarch64_simd_vec_<su>mult_lo_<mode>): Likewise.
938 (aarch64_simd_vec_<su>mult_hi_<mode>): Likewise.
939 (add<mode>3): Likewise.
940 (sub<mode>3): Likewise.
941 (mul<mode>3): Likewise.
942 (div<mode>3): Likewise.
943 (neg<mode>2): Likewise.
944 (abs<mode>2): Likewise.
945 (fma<mode>4): Likewise.
946 (*aarch64_fma4_elt<mode>): Likewise.
947 (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
948 (*aarch64_fma4_elt_to_128df): Likewise.
949 (*aarch64_fma4_elt_to_64v2df): Likewise.
950 (fnma<mode>4): Likewise.
951 (*aarch64_fnma4_elt<mode>): Likewise.
952 (*aarch64_fnma4_elt_<vswap_width_name><mode>
953 (*aarch64_fnma4_elt_to_128df): Likewise.
954 (*aarch64_fnma4_elt_to_64v2df): Likewise.
955 (<frint_pattern><mode>2): Likewise.
956 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): Likewise.
957 (<optab><fcvt_target><VDQF:VDQF:mode>2): Likewise.
958 (vec_unpacks_lo_v4sf): Likewise.
959 (aarch64_float_extend_lo_v2df): Likewise.
960 (vec_unpacks_hi_v4sf): Likewise.
961 (aarch64_float_truncate_lo_v2sf): Likewise.
962 (aarch64_float_truncate_hi_v4sf): Likewise.
963 (aarch64_vmls<mode>): Likewise.
964 (<su><maxmin><mode>3): Likewise.
965 (<maxmin_uns><mode>3): Likewise.
966 (reduc_<sur>plus_<mode>): Likewise.
967 (reduc_<sur>plus_v2di): Likewise.
968 (reduc_<sur>plus_v2si): Likewise.
969 (reduc_<sur>plus_<mode>): Likewise.
970 (aarch64_addpv4sf): Likewise.
971 (clz<mode>2): Likewise.
972 (reduc_<maxmin_uns>_<mode>): Likewise.
973 (reduc_<maxmin_uns>_v2di): Likewise.
974 (reduc_<maxmin_uns>_v2si): Likewise.
975 (reduc_<maxmin_uns>_<mode>): Likewise.
976 (reduc_<maxmin_uns>_v4sf): Likewise.
977 (aarch64_simd_bsl<mode>_internal): Likewise.
978 (*aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): Likewise.
979 (*aarch64_get_lane_zero_extendsi<mode>): Likewise.
980 (aarch64_get_lane<mode>): Likewise.
981 (*aarch64_combinez<mode>): Likewise.
982 (aarch64_combine<mode>): Likewise.
983 (aarch64_simd_combine<mode>): Likewise.
984 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_hi_internal): Likewise.
985 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_lo_internal): Likewise.
986 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>): Likewise.
987 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>w<mode>): Likewise.
988 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>w2<mode>_internal): Likewise.
989 (aarch64_<sur>h<addsub><mode>): Likewise.
990 (aarch64_<sur><addsub>hn<mode>): Likewise.
991 (aarch64_<sur><addsub>hn2<mode>): Likewise.
992 (aarch64_pmul<mode>): Likewise.
993 (aarch64_<su_optab><optab><mode>): Likewise.
994 (aarch64_<sur>qadd<mode>): Likewise.
995 (aarch64_sqmovun<mode>): Likewise.
996 (aarch64_<sur>qmovn<mode>): Likewise.
997 (aarch64_s<optab><mode>): Likewise.
998 (aarch64_sq<r>dmulh<mode>): Likewise.
999 (aarch64_sq<r>dmulh_lane<mode>): Likewise.
1000 (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
1001 (aarch64_sq<r>dmulh_lane<mode>): Likewise.
1002 (aarch64_sqdml<SBINQOPS:as>l<mode>): Likewise.
1003 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
1004 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
1005 (aarch64_sqdml<SBINQOPS:as>l_n<mode>): Likewise.
1006 (aarch64_sqdml<SBINQOPS:as>l2<mode>_internal): Likewise.
1007 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
1008 (aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Likewise.
1009 (aarch64_sqdmull<mode>): Likewise.
1010 (aarch64_sqdmull_lane<mode>_internal): Likewise.
1011 (aarch64_sqdmull_n<mode>): Likewise.
1012 (aarch64_sqdmull2<mode>_internal): Likewise.
1013 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
1014 (aarch64_sqdmull2_n<mode>_internal): Likewise.
1015 (aarch64_<sur>shl<mode>): Likewise.
1016 (aarch64_<sur>q<r>shl<mode>
1017 (aarch64_<sur>shll_n<mode>): Likewise.
1018 (aarch64_<sur>shll2_n<mode>): Likewise.
1019 (aarch64_<sur>shr_n<mode>): Likewise.
1020 (aarch64_<sur>sra_n<mode>): Likewise.
1021 (aarch64_<sur>s<lr>i_n<mode>): Likewise.
1022 (aarch64_<sur>qshl<u>_n<mode>): Likewise.
1023 (aarch64_<sur>q<r>shr<u>n_n<mode>): Likewise.
1024 (aarch64_cm<optab><mode>): Likewise.
1025 (aarch64_cm<optab>di): Likewise.
1026 (aarch64_cm<optab><mode>): Likewise.
1027 (aarch64_cm<optab>di): Likewise.
1028 (aarch64_cmtst<mode>): Likewise.
1029 (aarch64_cmtstdi): Likewise.
1030 (aarch64_cm<optab><mode>): Likewise.
1031 (*aarch64_fac<optab><mode>): Likewise.
1032 (aarch64_addp<mode>): Likewise.
1033 (aarch64_addpdi): Likewise.
1034 (sqrt<mode>2): Likewise.
1035 (vec_load_lanesoi<mode>): Likewise.
1036 (vec_store_lanesoi<mode>): Likewise.
1037 (vec_load_lanesci<mode>): Likewise.
1038 (vec_store_lanesci<mode>): Likewise.
1039 (vec_load_lanesxi<mode>): Likewise.
1040 (vec_store_lanesxi<mode>): Likewise.
1041 (*aarch64_mov<mode>): Likewise.
1042 (aarch64_ld2<mode>_dreg): Likewise.
1043 (aarch64_ld2<mode>_dreg): Likewise.
1044 (aarch64_ld3<mode>_dreg): Likewise.
1045 (aarch64_ld3<mode>_dreg): Likewise.
1046 (aarch64_ld4<mode>_dreg): Likewise.
1047 (aarch64_ld4<mode>_dreg): Likewise.
1048 (aarch64_tbl1<mode>): Likewise.
1049 (aarch64_tbl2v16qi): Likewise.
1050 (aarch64_combinev16qi): Likewise.
1051 (aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>): Likewise.
1052 (aarch64_st2<mode>_dreg): Likewise.
1053 (aarch64_st2<mode>_dreg): Likewise.
1054 (aarch64_st3<mode>_dreg): Likewise.
1055 (aarch64_st3<mode>_dreg): Likewise.
1056 (aarch64_st4<mode>_dreg): Likewise.
1057 (aarch64_st4<mode>_dreg): Likewise.
1058 (*aarch64_simd_ld1r<mode>): Likewise.
1059 (aarch64_frecpe<mode>): Likewise.
1060 (aarch64_frecp<FRECP:frecp_suffix><mode>): Likewise.
1061 (aarch64_frecps<mode>): Likewise.
1062
f7379e5e
JG
10632013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
1064
1065 * config/arm/iterators.md (V_elem_ch): New.
1066 (q): Likewise.
1067 (VQH_type): Likewise.
1068 * config/arm/arm.md (is_neon_type): New.
1069 (conds): Use is_neon_type.
1070 (anddi3_insn): Update type attribute.
1071 (xordi3_insn): Likewise.
1072 (one_cmpldi2): Likewise.
1073 * gcc/config/arm/vfp.md (movhf_vfp_neon): Update type attribute.
1074 * gcc/config/arm/neon.md (neon_mov): Update type attribute.
1075 (*movmisalign<mode>_neon_store): Likewise.
1076 (*movmisalign<mode>_neon_load): Likewise.
1077 (vec_set<mode>_internal): Likewise.
1078 (vec_set<mode>_internal): Likewise.
1079 (vec_setv2di_internal): Likewise.
1080 (vec_extract<mode>): Likewise.
1081 (vec_extract<mode>): Likewise.
1082 (vec_extractv2di): Likewise.
1083 (*add<mode>3_neon): Likewise.
1084 (adddi3_neon): Likewise.
1085 (*sub<mode>3_neon): Likewise.
1086 (subdi3_neon): Likewise.
1087 (fma<VCVTF:mode>4): Likewise.
1088 (fma<VCVTF:mode>4_intrinsic): Likewise.
1089 (*fmsub<VCVTF:mode>4): Likewise.
1090 (fmsub<VCVTF:mode>4_intrinsic): Likewise.
1091 (neon_vrint<NEON_VRINT:nvrint_variant><VCVTF:mode>): Likewise.
1092 (ior<mode>3): Likewise.
1093 (and<mode>3): Likewise.
1094 (orn<mode>3_neon): Likewise.
1095 (orndi3_neon): Likewise.
1096 (bic<mode>3_neon): Likewise.
1097 (bicdi3_neon): Likewise.
1098 (xor<mode>3): Likewise.
1099 (one_cmpl<mode>2): Likewise.
1100 (abs<mode>2): Likewise.
1101 (neg<mode>2): Likewise.
1102 (negdi2_neon): Likewise.
1103 (*umin<mode>3_neon): Likewise.
1104 (*umax<mode>3_neon): Likewise.
1105 (*smin<mode>3_neon): Likewise.
1106 (*smax<mode>3_neon): Likewise.
1107 (vashl<mode>3): Likewise.
1108 (vashr<mode>3_imm): Likewise.
1109 (vlshr<mode>3_imm): Likewise.
1110 (ashl<mode>3_signed): Likewise.
1111 (ashl<mode>3_unsigned): Likewise.
1112 (neon_load_count): Likewise.
1113 (ashldi3_neon_noclobber): Likewise.
1114 (ashldi3_neon): Likewise.
1115 (signed_shift_di3_neon): Likewise.
1116 (unsigned_shift_di3_neon): Likewise.
1117 (ashrdi3_neon_imm_noclobber): Likewise.
1118 (lshrdi3_neon_imm_noclobber): Likewise.
1119 (<shift>di3_neon): Likewise.
1120 (widen_ssum<mode>3): Likewise.
1121 (widen_usum<mode>3): Likewise.
1122 (quad_halves_<code>v4si): Likewise.
1123 (quad_halves_<code>v4sf): Likewise.
1124 (quad_halves_<code>v8hi): Likewise.
1125 (quad_halves_<code>v16qi): Likewise.
1126 (reduc_splus_v2di): Likewise.
1127 (neon_vpadd_internal<mode>): Likewise.
1128 (neon_vpsmin<mode>): Likewise.
1129 (neon_vpsmax<mode>): Likewise.
1130 (neon_vpumin<mode>): Likewise.
1131 (neon_vpumax<mode>): Likewise.
1132 (*ss_add<mode>_neon): Likewise.
1133 (*us_add<mode>_neon): Likewise.
1134 (*ss_sub<mode>_neon): Likewise.
1135 (*us_sub<mode>_neon): Likewise.
1136 (neon_vadd<mode>_unspec): Likewise.
1137 (neon_vaddl<mode>): Likewise.
1138 (neon_vaddw<mode>): Likewise.
1139 (neon_vhadd<mode>): Likewise.
1140 (neon_vqadd<mode>): Likewise.
1141 (neon_vaddhn<mode>): Likewise.
1142 (neon_vmul<mode>): Likewise.
1143 (neon_vfms<VCVTF:mode>): Likewise.
1144 (neon_vmlal<mode>): Likewise.
1145 (neon_vmls<mode>): Likewise.
1146 (neon_vmlsl<mode>): Likewise.
1147 (neon_vqdmulh<mode>): Likewise.
1148 (neon_vqdmlal<mode>): Likewise.
1149 (neon_vqdmlsl<mode>): Likewise.
1150 (neon_vmull<mode>): Likewise.
1151 (neon_vqdmull<mode>): Likewise.
1152 (neon_vsub<mode>_unspec): Likewise.
1153 (neon_vsubl<mode>): Likewise.
1154 (neon_vsubw<mode>): Likewise.
1155 (neon_vqsub<mode>): Likewise.
1156 (neon_vhsub<mode>): Likewise.
1157 (neon_vsubhn<mode>): Likewise.
1158 (neon_vceq<mode>): Likewise.
1159 (neon_vcge<mode>): Likewise.
1160 (neon_vcgeu<mode>): Likewise.
1161 (neon_vcgt<mode>): Likewise.
1162 (neon_vcgtu<mode>): Likewise.
1163 (neon_vcle<mode>): Likewise.
1164 (neon_vclt<mode>): Likewise.
1165 (neon_vcage<mode>): Likewise.
1166 (neon_vcagt<mode>): Likewise.
1167 (neon_vtst<mode>): Likewise.
1168 (neon_vabd<mode>): Likewise.
1169 (neon_vabdl<mode>): Likewise.
1170 (neon_vaba<mode>): Likewise.
1171 (neon_vabal<mode>): Likewise.
1172 (neon_vmax<mode>): Likewise.
1173 (neon_vmin<mode>): Likewise.
1174 (neon_vpaddl<mode>): Likewise.
1175 (neon_vpadal<mode>): Likewise.
1176 (neon_vpmax<mode>): Likewise.
1177 (neon_vpmin<mode>): Likewise.
1178 (neon_vrecps<mode>): Likewise.
1179 (neon_vrsqrts<mode>): Likewise.
1180 (neon_vqabs<mode>): Likewise.
1181 (neon_vqneg<mode>): Likewise.
1182 (neon_vcls<mode>): Likewise.
1183 (clz<mode>2): Likewise.
1184 (popcount<mode>2): Likewise.
1185 (neon_vrecpe<mode>): Likewise.
1186 (neon_vrsqrte<mode>): Likewise.
1187 (neon_vget_lane<mode>_sext_internal): Likewise.
1188 (neon_vget_lane<mode>_zext_internal): Likewise.
1189 (neon_vdup_n<mode>): Likewise.
1190 (neon_vdup_n<mode>): Likewise.
1191 (neon_vdup_nv2di): Likewise.
1192 (neon_vdup_lane<mode>_interal): Likewise.
1193 (*neon_vswp<mode>): Likewise.
1194 (neon_vcombine<mode>): Likewise.
1195 (float<mode><V_cvtto>2): Likewise.
1196 (floatuns<mode><V_cvtto>2): Likewise.
1197 (fix_trunc<mode><V_cvtto>2): Likewise.
1198 (fixuns_trunc<mode><V_cvtto>2
1199 (neon_vcvt<mode>): Likewise.
1200 (neon_vcvt<mode>): Likewise.
1201 (neon_vcvtv4sfv4hf): Likewise.
1202 (neon_vcvtv4hfv4sf): Likewise.
1203 (neon_vcvt_n<mode>): Likewise.
1204 (neon_vcvt_n<mode>): Likewise.
1205 (neon_vmovn<mode>): Likewise.
1206 (neon_vqmovn<mode>): Likewise.
1207 (neon_vqmovun<mode>): Likewise.
1208 (neon_vmovl<mode>): Likewise.
1209 (neon_vmul_lane<mode>): Likewise.
1210 (neon_vmul_lane<mode>): Likewise.
1211 (neon_vmull_lane<mode>): Likewise.
1212 (neon_vqdmull_lane<mode>): Likewise.
1213 (neon_vqdmulh_lane<mode>): Likewise.
1214 (neon_vqdmulh_lane<mode>): Likewise.
1215 (neon_vmla_lane<mode>): Likewise.
1216 (neon_vmla_lane<mode>): Likewise.
1217 (neon_vmlal_lane<mode>): Likewise.
1218 (neon_vqdmlal_lane<mode>): Likewise.
1219 (neon_vmls_lane<mode>): Likewise.
1220 (neon_vmls_lane<mode>): Likewise.
1221 (neon_vmlsl_lane<mode>): Likewise.
1222 (neon_vqdmlsl_lane<mode>): Likewise.
1223 (neon_vext<mode>): Likewise.
1224 (neon_vrev64<mode>): Likewise.
1225 (neon_vrev32<mode>): Likewise.
1226 (neon_vrev16<mode>): Likewise.
1227 (neon_vbsl<mode>_internal): Likewise.
1228 (neon_vshl<mode>): Likewise.
1229 (neon_vqshl<mode>): Likewise.
1230 (neon_vshr_n<mode>): Likewise.
1231 (neon_vshrn_n<mode>): Likewise.
1232 (neon_vqshrn_n<mode>): Likewise.
1233 (neon_vqshrun_n<mode>): Likewise.
1234 (neon_vshl_n<mode>): Likewise.
1235 (neon_vqshl_n<mode>): Likewise.
1236 (neon_vqshlu_n<mode>): Likewise.
1237 (neon_vshll_n<mode>): Likewise.
1238 (neon_vsra_n<mode>): Likewise.
1239 (neon_vsri_n<mode>): Likewise.
1240 (neon_vsli_n<mode>): Likewise.
1241 (neon_vtbl1v8qi): Likewise.
1242 (neon_vtbl2v8qi): Likewise.
1243 (neon_vtbl3v8qi): Likewise.
1244 (neon_vtbl4v8qi): Likewise.
1245 (neon_vtbl1v16qi): Likewise.
1246 (neon_vtbl2v16qi): Likewise.
1247 (neon_vcombinev16qi): Likewise.
1248 (neon_vtbx1v8qi): Likewise.
1249 (neon_vtbx2v8qi): Likewise.
1250 (neon_vtbx3v8qi): Likewise.
1251 (neon_vtbx4v8qi): Likewise.
1252 (*neon_vtrn<mode>_insn): Likewise.
1253 (*neon_vzip<mode>_insn): Likewise.
1254 (*neon_vuzp<mode>_insn): Likewise.
1255 (neon_vld1<mode>): Likewise.
1256 (neon_vld1_lane<mode>): Likewise.
1257 (neon_vld1_lane<mode>): Likewise.
1258 (neon_vld1_dup<mode>): Likewise.
1259 (neon_vld1_dup<mode>): Likewise.
1260 (neon_vld1_dupv2di): Likewise.
1261 (neon_vst1<mode>): Likewise.
1262 (neon_vst1_lane<mode>): Likewise.
1263 (neon_vst1_lane<mode>): Likewise.
1264 (neon_vld2<mode>): Likewise.
1265 (neon_vld2<mode>): Likewise.
1266 (neon_vld2_lane<mode>): Likewise.
1267 (neon_vld2_lane<mode>): Likewise.
1268 (neon_vld2_dup<mode>): Likewise.
1269 (neon_vst2<mode>): Likewise.
1270 (neon_vst2<mode>): Likewise.
1271 (neon_vst2_lane<mode>): Likewise.
1272 (neon_vst2_lane<mode>): Likewise.
1273 (neon_vld3<mode>): Likewise.
1274 (neon_vld3qa<mode>): Likewise.
1275 (neon_vld3qb<mode>): Likewise.
1276 (neon_vld3_lane<mode>): Likewise.
1277 (neon_vld3_lane<mode>): Likewise.
1278 (neon_vld3_dup<mode>): Likewise.
1279 (neon_vst3<mode>): Likewise.
1280 (neon_vst3qa<mode>): Likewise.
1281 (neon_vst3qb<mode>): Likewise.
1282 (neon_vst3_lane<mode>): Likewise.
1283 (neon_vst3_lane<mode>): Likewise.
1284 (neon_vld4<mode>): Likewise.
1285 (neon_vld4qa<mode>): Likewise.
1286 (neon_vld4qb<mode>): Likewise.
1287 (neon_vld4_lane<mode>): Likewise.
1288 (neon_vld4_lane<mode>): Likewise.
1289 (neon_vld4_dup<mode>): Likewise.
1290 (neon_vst4<mode>): Likewise.
1291 (neon_vst4qa<mode>): Likewise.
1292 (neon_vst4qb<mode>): Likewise.
1293 (neon_vst4_lane<mode>): Likewise.
1294 (neon_vst4_lane<mode>): Likewise.
1295 (neon_vec_unpack<US>_lo_<mode>): Likewise.
1296 (neon_vec_unpack<US>_hi_<mode>): Likewise.
1297 (neon_vec_<US>mult_lo_<mode>): Likewise.
1298 (neon_vec_<US>mult_hi_<mode>): Likewise.
1299 (neon_vec_<US>shiftl_<mode>): Likewise.
1300 (neon_unpack<US>_<mode>): Likewise.
1301 (neon_vec_<US>mult_<mode>): Likewise.
1302 (vec_pack_trunc_<mode>): Likewise.
1303 (neon_vec_pack_trunc_<mode>): Likewise.
1304 (neon_vabd<mode>_2): Likewise.
1305 (neon_vabd<mode>_3): Likewise.
1306
a9e66678
JG
13072013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
1308
1309 * config/aarch64/aarch64.md (movtf_aarch64): Update type attribute.
1310 (load_pair): Update type attribute.
1311 (store_pair): Update type attribute.
1312 * config/aarch64/iterators.md (q): New.
1313
20445ed6
JG
13142013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
1315
1316 * config/arm/types.md: Add new types for Neon insns.
1317
afb4ac68
AI
13182013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
1319 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1320 Sergey Lega <sergey.s.lega@intel.com>
1321 Anna Tikhonova <anna.tikhonova@intel.com>
1322 Ilya Tocar <ilya.tocar@intel.com>
1323 Andrey Turetskiy <andrey.turetskiy@intel.com>
1324 Ilya Verbin <ilya.verbin@intel.com>
1325 Kirill Yukhin <kirill.yukhin@intel.com>
1326 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1327
1328 * config/i386/sse.md (unspec): Add UNSPEC_RCP14, UNSPEC_RSQRT14,
1329 UNSPEC_FIXUPIMM, UNSPEC_SCALEF, UNSPEC_GETEXP, UNSPEC_GETMANT,
1330 UNSPEC_EXP2, UNSPEC_RCP28, UNSPEC_RSQRT28.
1331 (rcp14<mode>): New.
1332 (srcp14<mode>): Ditto.
1333 (rsqrt14<mode>): Ditto.
1334 (rsqrt14<mode>): Ditto.
1335 (avx512f_vmscalef<mode>): Ditto.
1336 (avx512f_scalef<mode>): Ditto.
1337 (avx512f_getexp<mode>): Ditto.
1338 (avx512f_sgetexp<mode>): Ditto.
1339 (avx512f_fixupimm<mode>): Ditto.
1340 (avx512f_sfixupimm<mode>): Ditto.
1341 (avx512f_rndscale<mode>): Ditto.
1342 (*avx512er_exp2<mode>): Ditto.
1343 (*avx512er_rcp28<mode>): Ditto.
1344 (avx512er_rsqrt28<mode>): Ditto.
1345 (avx512f_getmant<mode>): Ditto.
1346 (avx512f_getmant<mode>): Ditto.
1347 (avx512f_rndscale<mode>): Fix formatting.
1348
a1b499a3
JL
13492013-10-15 Martin Jambor <mjambor@suse.cz>
1350
1351 * ipa-utils.h (ipa_edge_within_scc): Declare.
1352 * ipa-cp.c (edge_within_scc): Moved...
1353 * ipa-utils.c (ipa_edge_within_scc): ...here. Updated all callers.
afb4ac68 1354
2e2206fa
AI
13552013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
1356 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1357 Sergey Lega <sergey.s.lega@intel.com>
1358 Anna Tikhonova <anna.tikhonova@intel.com>
1359 Ilya Tocar <ilya.tocar@intel.com>
1360 Andrey Turetskiy <andrey.turetskiy@intel.com>
1361 Ilya Verbin <ilya.verbin@intel.com>
1362 Kirill Yukhin <kirill.yukhin@intel.com>
1363 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1364
1365 * config/i386/predicates.md (const_8_to_15_operand): New.
1366 (const_16_to_31_operand): Ditto.
1367 * config/i386/sse.md (V8FI): New.
1368 (V16FI): Ditto.
1369 (reduc_splus_v8df): Ditto.
1370 (reduc_splus_v16sf): Ditto.
1371 (avx512f_vextract<shuffletype>32x4_1): Ditto.
1372 (vec_extract_hi_<mode>): Ditto.
1373 (avx512f_vinsert<shuffletype>32x4_1): Ditto.
1374 (vec_set_lo_<mode>): Ditto.
1375 (vec_set_hi_<mode>): Ditto.
1376 (avx512f_shuf_<shuffletype>64x2_1): Ditto.
1377 (avx512f_shuf_<shuffletype>32x4_1): Ditto.
1378 (avx512f_pshufd_1): Ditto.
1379 (avx512f_broadcast<mode>): Ditto.
1380 (avx512f_broadcast<mode>): Ditto.
1381 (define_split): Split vec_extract_lo into move.
1382 (ssequartermode): Ditto.
1383 (ssedoublemode): Extened with wider modes.
1384 (vec_extract_lo_<mode>): Ditto.
1385
0fe65b75
AI
13862013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
1387 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1388 Sergey Lega <sergey.s.lega@intel.com>
1389 Anna Tikhonova <anna.tikhonova@intel.com>
1390 Ilya Tocar <ilya.tocar@intel.com>
1391 Andrey Turetskiy <andrey.turetskiy@intel.com>
1392 Ilya Verbin <ilya.verbin@intel.com>
1393 Kirill Yukhin <kirill.yukhin@intel.com>
1394 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1395
1396 * config/i386/predicates.md (register_or_constm1_operand): New.
1397 * config/i386/sse.md (unspec): Add UNSPEC_UNSIGNED_PCMP, UNSPEC_TESTM,
1398 UNSPEC_TESTNM, UNSPEC_VTERNLOG, UNSPEC_ALIGN, UNSPEC_CONFLICT,
1399 UNSPEC_MASKED_EQ, UNSPEC_MASKED_GT, UNSPEC_GATHER_PREFETCH,
1400 UNSPEC_SCATTER_PREFETCH
1401 (VI48_512): New.
1402 (avx512f_ucmp<mode>3): Ditto.
1403 (avx512f_vternlog<mode>): Ditto.
1404 (avx512f_align<mode>): Ditto.
1405 (<shift_insn><mode>3): Ditto.
1406 (avx512f_<rotate>v<mode>): Ditto.
1407 (avx512f_<rotate><mode>): Ditto.
1408 (avx512f_eq<mode>3): Ditto.
1409 (avx512f_eq<mode>3_1): Ditto.
1410 (avx512f_gt<mode>3): Ditto.
1411 (avx512f_testm<mode>3): Ditto.
1412 (avx512f_testnm<mode>3): Ditto.
1413 (avx512pf_gatherpf<mode>): Ditto.
1414 (*avx512pf_gatherpf<mode>_mask): Ditto.
1415 (*avx512pf_gatherpf<mode>): Ditto.
1416 (avx512pf_scatterpf<mode>): Ditto.
1417 (*avx512pf_scatterpf<mode>_mask): Ditto.
1418 (*avx512pf_scatterpf<mode>): Ditto.
1419 (avx512f_vec_dup_gpr<mode>): Ditto.
1420 (clz<mode>2): Ditto.
1421 (conflict<mode>): Ditto.
1422 (REDUC_SMINMAX_MODE): Extened with wider modes.
1423 (reduc_<code>_<mode>): Ditto.
1424 (vlshr<mode>3): Ditto.
1425 (vashl<mode>3): Ditto.
1426
ab931c71
AI
14272013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
1428 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1429 Sergey Lega <sergey.s.lega@intel.com>
1430 Anna Tikhonova <anna.tikhonova@intel.com>
1431 Ilya Tocar <ilya.tocar@intel.com>
1432 Andrey Turetskiy <andrey.turetskiy@intel.com>
1433 Ilya Verbin <ilya.verbin@intel.com>
1434 Kirill Yukhin <kirill.yukhin@intel.com>
1435 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1436
1437 * config/i386/sse.md (unspec): Added UNSPEC_VPERMI2, UNSPEC_VPERMT2,
1438 UNSPEC_SCATTER.
1439 (VI48F_512): New.
1440 (avx512fmaskmode): Ditto.
1441 (bcstscalarsuff): Ditto.
1442 (avx512f_blendm<mode>): Ditto.
1443 (cmp_imm_predicate): Ditto.
1444 (avx512f_cmp<mode>3): Ditto.
1445 (avx512f_vec_dup<mode>): Ditto.
1446 (avx512f_vec_dup_mem<mode>): Ditto.
1447 (avx512f_vpermi2var<mode>3): Ditto.
1448 (avx512f_vpermt2var<mode>3): Ditto.
1449 (vec_init<mode>): Ditto.
1450 (avx512f_gathersi<mode>): Ditto.
1451 (*avx512f_gathersi<mode>): Ditto.
1452 (*avx512f_gathersi<mode>_2): Ditto.
1453 (avx512f_gatherdi<mode>): Ditto.
1454 (*avx512f_gatherdi<mode>): Ditto.
1455 (*avx512f_gatherdi<mode>_2): Ditto.
1456 (avx512f_scattersi<mode>): Ditto.
1457 (*avx512f_scattersi<mode>): Ditto.
1458 (avx512f_scatterdi<mode>): Ditto.
1459 (*avx512f_scatterdi<mode>): Ditto.
1460 (sseintprefix): Extened with wider modes.
1461 (VEC_GATHER_IDXSI): Ditto.
1462 (VEC_GATHER_IDXDI): Ditto.
1463 (VEC_GATHER_SRCDI): Ditto.
1464
c9acb877
MGD
14652013-10-15 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
1466 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1467
1468 * config/arm/t-aprofile: New file.
1469 * config.gcc: Handle --with-multilib-list option.
1470
ecbda484
BS
14712013-10-15 Bernd Schmidt <bernds@codesourcery.com>
1472
6f1abb55
UB
1473 * reload1.c (reloads_unique_chain_p): Ensure that r1 is
1474 the input for r2.
ecbda484 1475
24f161fd
RB
14762013-10-15 Richard Biener <rguenther@suse.de>
1477
1478 * tree-loop-distribution.c (build_empty_rdg): Inline into
1479 single user.
1480 (rdg_flag_vertex): Inline into single user.
1481 (rdg_flag_vertex_and_dependent): Likewise.
1482 (build_rdg_partition_for_vertex): Remove processed bitmap.
1483 (rdg_build_partitions): Simplify.
1484
5de989ed
RB
14852013-10-15 Richard Biener <rguenther@suse.de>
1486
1487 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
1488 Restructure forwarding through conversions and copies to
1489 avoid performing copy-propagation the wrong way. Adjust
1490 recursion invocations.
1491 (forward_propagate_addr_expr): Add argument stating if we
1492 are recursing from a single-use.
1493 (ssa_forward_propagate_and_combine): Adjust.
1494
47e0da37
DM
14952013-10-14 David Malcolm <dmalcolm@redhat.com>
1496
1497 * dumpfile.h (gcc::dump_manager): New class, to hold state
1498 relating to dumpfile management.
1499 (get_dump_file_name): Remove in favor of method of dump_manager.
1500 (dump_initialized_p): Likewise.
1501 (dump_start): Likewise.
1502 (dump_finish): Likewise.
1503 (dump_switch_p): Likewise.
1504 (dump_register): Likewise.
1505 (get_dump_file_info): Likewise.
1506 * context.c (gcc::context::context): Construct the dump_manager
1507 instance.
1508 * context.h (gcc::context::get_dumps): New.
1509 (gcc::context::m_dumps): New.
1510 * coverage.c (coverage_init): Port to dump_manager API.
6f1abb55 1511 * dumpfile.c (extra_dump_files): Convert to field of gcc::dump_manager.
47e0da37
DM
1512 (extra_dump_files_in_use): Likewise.
1513 (extra_dump_files_alloced): Likewise.
1514 (gcc::dump_manager::dump_manager): New.
1515 (dump_register): Convert to...
1516 (gcc::dump_manager::dump_register): ...method, replacing
1517 function-static next_dump with m_next_dump field.
1518 (get_dump_file_info): Convert to...
1519 (gcc::dump_manager::get_dump_file_info): ...method.
1520 (get_dump_file_name): Convert to...
1521 (gcc::dump_manager::get_dump_file_name): ...method.
1522 (dump_start): Convert to...
1523 (gcc::dump_manager::dump_start): ...method.
1524 (dump_finish): Convert to...
1525 (gcc::dump_manager::dump_finish): ...method.
1526 (dump_begin): Replace body with...
1527 (gcc::dump_manager::dump_begin): ...new method.
1528 (dump_phase_enabled_p): Convert to...
1529 (gcc::dump_manager::dump_phase_enabled_p): ...method.
1530 (dump_phase_enabled_p): Convert to...
1531 (gcc::dump_manager::dump_phase_enabled_p): ...method.
1532 (dump_initialized_p): Convert to...
1533 (gcc::dump_manager::dump_initialized_p): ...method.
1534 (dump_flag_name): Replace body with...
1535 (gcc::dump_manager::dump_flag_name): ...new method.
1536 (dump_enable_all): Convert to...
1537 (gcc::dump_manager::dump_enable_all): ...new method.
1538 (opt_info_enable_passes): Convert to...
1539 (gcc::dump_manager::opt_info_enable_passes): ...new method.
1540 (dump_switch_p_1): Convert to...
1541 (gcc::dump_manager::dump_switch_p_1): ...new method.
1542 (dump_switch_p): Convert to...
1543 (gcc::dump_manager::dump_switch_p): ...new method.
1544 (opt_info_switch_p): Port to dump_manager API.
1545 (enable_rtl_dump_file): Likewise.
1546 * opts-global.c (handle_common_deferred_options): Port to new
1547 dump_manager API.
1548 * passes.c (pass_manager::finish_optimization_passes): Likewise.
1549 (pass_manager::register_one_dump_file): Likewise.
1550 (pass_manager::register_pass): Likewise.
1551 (pass_init_dump_file): Likewise.
1552 (pass_fini_dump_file): Likewise.
1553 * statistics.c (statistics_early_init): Likewise.
1554
83fd5d11
RB
15552013-10-14 Richard Biener <rguenther@suse.de>
1556
1557 * gimple.c (gimple_canonical_types, canonical_type_hash_cache,
1558 iterative_hash_canonical_type, gimple_canonical_type_hash,
1559 gimple_canonical_types_compatible_p, gimple_canonical_type_eq,
1560 gimple_register_canonical_type, print_gimple_types_stats,
1561 free_gimple_type_tables): Move to lto/lto.c
1562 (gt-gimple.h): Do not include.
1563 * gimple.h (gimple_register_canonical_type,
1564 print_gimple_types_stats, free_gimple_type_tables): Remove.
1565 * Makefile.in (GTFILES): Remove gimple.c.
1566
a6dbd0f7
TS
15672013-10-14 Travis Snoozy <quandary@remstate.com>
1568
1569 PR target/58716
1570 * config/msp430/msp430.c (msp430_option_override): Correct thinko
1571 scanning for msp430x targets.
1572
b5ccb9ed
EB
15732013-10-14 Eric Botcazou <ebotcazou@adacore.com>
1574
1575 PR bootstrap/58509
1576 * config/sparc/sparc-protos.h (widen_mem_for_ldd_peep): Declare.
1577 (registers_ok_for_ldd_peep): Move around.
1578 * config/sparc/sparc.c (widen_mem_for_ldd_peep): New.
1579 * config/sparc/sparc.md (widening peepholes): Use it.
1580
fd7e5084
RB
15812013-10-14 Richard Biener <rguenther@suse.de>
1582
1583 PR middle-end/58712
1584 PR middle-end/55358
1585 * gimple.c (iterative_hash_canonical_type): Make sure to
1586 record the hash into the correct hashtable slot.
1587
3246afaa
EB
15882013-10-13 Eric Botcazou <ebotcazou@adacore.com>
1589
1590 PR rtl-optimization/58662
1591 * combine.c (try_combine): Take into account death nodes on I2 when
1592 splitting a PARALLEL of two independent SETs. Fix dump message.
1593
5d30dc5b
OE
15942013-10-12 Oleg Endo <olegendo@gcc.gnu.org>
1595
1596 PR target/51244
1597 * config/sh/sh_treg_combine.cc: New SH specific RTL pass.
1598 * config.gcc (SH extra_objs): Add sh_ifcvt.o.
1599 * config/sh/t-sh (sh_treg_combine.o): New entry.
1600 * config/sh/sh.c (sh_fixed_condition_code_regs): New function that
1601 implements the target hook TARGET_FIXED_CONDITION_CODE_REGS.
1602 (register_sh_passes): New function. Register sh_treg_combine pass.
1603 (sh_option_override): Invoke it.
1604 (sh_canonicalize_comparison): Handle op0_preserve_value.
1605 * sh.md (*cbranch_t"): Do not try to optimize missed test and branch
1606 opportunities. Canonicalize branch condition.
1607 (nott): Allow only if pseudos can be created for non-SH2A.
1608
37d1c5db
L
16092013-10-12 H.J. Lu <hongjiu.lu@intel.com>
1610
1611 PR target/58690
1612 * config/i386/i386.c (ix86_copy_addr_to_reg): New function.
1613 (ix86_expand_movmem): Replace copy_addr_to_reg with
1614 ix86_copy_addr_to_reg.
1615 (ix86_expand_setmem): Likewise.
1616
b86a70ff
AM
16172013-10-12 Alexander Monakov <amonakov@ispras.ru>
1618
1619 * config/i386/i386.c (ix86_expand_sse_compare_and_jump): Use mode
1620 provided by ix86_fp_compare_mode instead of CCFPUmode.
1621
6e1d5961
JG
16222013-10-12 James Greenhalgh <james.greenhalgh@arm.com>
1623
1624 * config/aarch64/arm_neon.h
1625 (vtbx<1,3>_<psu>8): Fix register constriants.
1626
ef3cfba2
JL
16272013-10-11 Jeff Law <law@redhat.com>
1628
1629 PR tree-optimization/58640
adcfd489
UB
1630 * tree-ssa-threadupdate.c (mark_threaded_blocks): Truncate jump
1631 threading paths that cross over two loop entry points.
ef3cfba2 1632
6e8b7d9c
BS
16332013-10-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1634
1635 * config/rs6000/vsx.md (*vsx_le_perm_load_v2di): Generalize to
1636 handle vector float as well.
1637 (*vsx_le_perm_load_v4si): Likewise.
1638 (*vsx_le_perm_store_v2di): Likewise.
1639 (*vsx_le_perm_store_v4si): Likewise.
1640
f200869a
BS
16412013-10-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1642
1643 * config/rs6000/vector.md (vec_realign_load<mode>): Generate vperm
1644 directly to circumvent subtract from splat{31} workaround.
1645 * config/rs6000/rs6000-protos.h (altivec_expand_vec_perm_le): New
1646 prototype.
1647 * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): New.
1648 * config/rs6000/altivec.md (define_c_enum "unspec"): Add
1649 UNSPEC_VPERM_X and UNSPEC_VPERM_UNS_X.
1650 (altivec_vperm_<mode>): Convert to define_insn_and_split to
1651 separate big and little endian logic.
1652 (*altivec_vperm_<mode>_internal): New define_insn.
1653 (altivec_vperm_<mode>_uns): Convert to define_insn_and_split to
1654 separate big and little endian logic.
1655 (*altivec_vperm_<mode>_uns_internal): New define_insn.
1656 (vec_permv16qi): Add little endian logic.
1657
8d28e3fc
MG
16582013-10-11 Marc Glisse <marc.glisse@inria.fr>
1659
1660 * doc/extend.texi (returns_nonnull): Remove arguments.
1661
3c87b77b
AI
16622013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1663 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1664 Sergey Lega <sergey.s.lega@intel.com>
1665 Anna Tikhonova <anna.tikhonova@intel.com>
1666 Ilya Tocar <ilya.tocar@intel.com>
1667 Andrey Turetskiy <andrey.turetskiy@intel.com>
1668 Ilya Verbin <ilya.verbin@intel.com>
1669 Kirill Yukhin <kirill.yukhin@intel.com>
1670 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1671
1672 * config/i386/sse.md (VI48F_256_512): New.
1673 (avx2_permvar<mode>): Change to ...
1674 (<avx2_avx512f>_permvar<mode>): This.
1675
50e60d7d
AI
16762013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1677 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1678 Sergey Lega <sergey.s.lega@intel.com>
1679 Anna Tikhonova <anna.tikhonova@intel.com>
1680 Ilya Tocar <ilya.tocar@intel.com>
1681 Andrey Turetskiy <andrey.turetskiy@intel.com>
1682 Ilya Verbin <ilya.verbin@intel.com>
1683 Kirill Yukhin <kirill.yukhin@intel.com>
1684 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1685
6f1abb55 1686 * config/i386/i386.c (bdesc_args): Change corresponding pattern for
50e60d7d
AI
1687 __builtin_ia32_cvtps2dq, __builtin_ia32_cvtps2dq256.
1688 * config/i386/sse.md (VI4_AVX): New.
1689 (sf2simodelower): Ditto.
1690 (sse2_cvtps2dq): Change to ...
1691 (<sse2_avx_avx512f>_fix_notrunc<sf2simodelower><mode>): This.
1692
f62ce24f
AI
16932013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1694 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1695 Sergey Lega <sergey.s.lega@intel.com>
1696 Anna Tikhonova <anna.tikhonova@intel.com>
1697 Ilya Tocar <ilya.tocar@intel.com>
1698 Andrey Turetskiy <andrey.turetskiy@intel.com>
1699 Ilya Verbin <ilya.verbin@intel.com>
1700 Kirill Yukhin <kirill.yukhin@intel.com>
1701 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1702
1703 * config/i386/sse.md (V_512): New.
1704 (VI_512): Ditto.
1705 (vcond<V_512:mode><VF_512:mode>): Ditto.
1706 (vcond<V_512:mode><VI_512:mode>): Ditto.
1707 (vcondu<V_512:mode><VI_512:mode>): Ditto.
1708
558d9f79
AI
17092013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1710 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1711 Sergey Lega <sergey.s.lega@intel.com>
1712 Anna Tikhonova <anna.tikhonova@intel.com>
1713 Ilya Tocar <ilya.tocar@intel.com>
1714 Andrey Turetskiy <andrey.turetskiy@intel.com>
1715 Ilya Verbin <ilya.verbin@intel.com>
1716 Kirill Yukhin <kirill.yukhin@intel.com>
1717 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1718
1719 * config/i386/i386.c (ix86_rtx_costs): Enable fma for TARGET_AVX512F.
1720 * config/i386/sse.md (FMAMODEM): Changed modes and conditions.
1721 (FMAMODE): Ditto.
1722 (fma<mode>4): Removed condition.
1723 (fms<mode>4): Ditto.
1724 (fnma<mode>4): Ditto.
1725 (fnms<mode>4): Ditto.
1726 (fma4i_fmadd_<mode>): Ditto.
1727 (*fma_fmadd_<mode>): Ditto.
1728 (*fma_fmsub_<mode>): Ditto.
1729 (*fma_fnmadd_<mode>): Ditto.
1730 (*fma_fnmsub_<mode>): Ditto.
1731 (fmaddsub_<mode>): Allow for TARGET_AVX512F.
1732 (*fma_fmaddsub_<mode>): Ditto.
1733 (*fma_fmsubadd_<mode>): Ditto.
1734 (*fmai_fmadd_<mode>): Ditto.
1735 (*fmai_fmsub_<mode>): Ditto.
1736 (*fmai_fnmadd_<mode>): Ditto.
1737 (*fmai_fnmsub_<mode>): Ditto.
1738
e8d08206
AI
17392013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1740 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1741 Sergey Lega <sergey.s.lega@intel.com>
1742 Anna Tikhonova <anna.tikhonova@intel.com>
1743 Ilya Tocar <ilya.tocar@intel.com>
1744 Andrey Turetskiy <andrey.turetskiy@intel.com>
1745 Ilya Verbin <ilya.verbin@intel.com>
1746 Kirill Yukhin <kirill.yukhin@intel.com>
1747 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1748
1749 * config/i386/sse.md (VI248_AVX2_8_AVX512F): New.
1750 (VI124_256): Changed to ...
1751 (VI124_256_48_512): This.
1752 (ssepackmode): Extended with wider modes.
1753 (<code><mode>3): Changed iterator.
1754 (*avx2_<code><mode>3): Ditto.
1755 (vec_pack_trunc_<mode>): Ditto.
1756
16821545
AI
17572013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1758 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1759 Sergey Lega <sergey.s.lega@intel.com>
1760 Anna Tikhonova <anna.tikhonova@intel.com>
1761 Ilya Tocar <ilya.tocar@intel.com>
1762 Andrey Turetskiy <andrey.turetskiy@intel.com>
1763 Ilya Verbin <ilya.verbin@intel.com>
1764 Kirill Yukhin <kirill.yukhin@intel.com>
1765 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1766
1767 * config/i386/sse.md (VI124_AVX2_48_AVX512F): New.
1768 (VI8F_256_512): Ditto.
1769 (abs<mode>2): Changed iterator.
1770 (avx2_perm<mode>): Changed to ...
1771 (<avx2_avx512f>_perm<mode>): This.
1772 (avx2_perm<mode>_1): Changed to ...
1773 (<avx2_avx512f>_perm<mode>_1): This.
1774
5348cff8
AI
17752013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1776 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1777 Sergey Lega <sergey.s.lega@intel.com>
1778 Anna Tikhonova <anna.tikhonova@intel.com>
1779 Ilya Tocar <ilya.tocar@intel.com>
1780 Andrey Turetskiy <andrey.turetskiy@intel.com>
1781 Ilya Verbin <ilya.verbin@intel.com>
1782 Kirill Yukhin <kirill.yukhin@intel.com>
1783 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1784
1785 * config/i386/sse.md (VI48_AVX512F): New.
1786 (VI48_AVX2): Changed to ...
1787 (VI48_AVX2_48_AVX512F): This.
1788 (avx2_ashrv<mode>): Changed to ...
1789 (<avx2_avx512f>_ashrv<mode>): This.
1790 (avx2_<shift_insn>v<mode>): Changed to ...
1791 (<avx2_avx512f>_<shift_insn>v<mode>): This.
1792
f5f41d88
AI
17932013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1794 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1795 Sergey Lega <sergey.s.lega@intel.com>
1796 Anna Tikhonova <anna.tikhonova@intel.com>
1797 Ilya Tocar <ilya.tocar@intel.com>
1798 Andrey Turetskiy <andrey.turetskiy@intel.com>
1799 Ilya Verbin <ilya.verbin@intel.com>
1800 Kirill Yukhin <kirill.yukhin@intel.com>
1801 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1802
1803 * config/i386/sse.md (VI4_AVX512F): New.
1804 (VI8_AVX2_AVX512F): Ditto.
1805 (mul<mode>3): Extended with wider modes.
1806 (*<sse4_1_avx2>_mul<mode>3): Ditto.
1807 (mul<mode>3): Ditto.
1808 (vec_widen_<s>mult_odd_<mode>): Ditto.
1809
3bdf6340
AI
18102013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1811 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1812 Sergey Lega <sergey.s.lega@intel.com>
1813 Anna Tikhonova <anna.tikhonova@intel.com>
1814 Ilya Tocar <ilya.tocar@intel.com>
1815 Andrey Turetskiy <andrey.turetskiy@intel.com>
1816 Ilya Verbin <ilya.verbin@intel.com>
1817 Kirill Yukhin <kirill.yukhin@intel.com>
1818 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1819
1820 * config/i386/sse.md (VI2_AVX512F): New.
1821 (VI124_AVX512F): Ditto.
1822 (sseunpackmode): Extended with wider modes.
1823 (sseunpackfltmode): Ditto.
1824 (vec_unpacks_float_hi_<mode>): Ditto.
1825 (vec_unpacks_float_lo_<mode>): Ditto.
1826 (vec_unpacku_float_hi_<mode>): Ditto.
1827 (vec_unpacku_float_lo_<mode>): Ditto.
1828 (vec_unpacks_lo_<mode>): Ditto.
1829 (vec_unpacks_hi_<mode>): Ditto.
1830 (vec_unpacku_lo_<mode>): Ditto.
1831 (vec_unpacku_hi_<mode>): Ditto.
1832
67f783cb
AI
18332013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1834 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1835 Sergey Lega <sergey.s.lega@intel.com>
1836 Anna Tikhonova <anna.tikhonova@intel.com>
1837 Ilya Tocar <ilya.tocar@intel.com>
1838 Andrey Turetskiy <andrey.turetskiy@intel.com>
1839 Ilya Verbin <ilya.verbin@intel.com>
1840 Kirill Yukhin <kirill.yukhin@intel.com>
1841 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1842
1843 * config/i386/i386.md (multdiv): New.
1844 (multdiv_mnemonic): Ditto.
1845 * config/i386/sse.md (<sse>_vmmul<mode>3): Changed to...
1846 (<sse>_vm<multdiv_mnemonic><mode>3): This.
1847 (<sse>_vmdiv<mode>3): Removed.
1848
ec5e777c
AI
18492013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1850 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1851 Sergey Lega <sergey.s.lega@intel.com>
1852 Anna Tikhonova <anna.tikhonova@intel.com>
1853 Ilya Tocar <ilya.tocar@intel.com>
1854 Andrey Turetskiy <andrey.turetskiy@intel.com>
1855 Ilya Verbin <ilya.verbin@intel.com>
1856 Kirill Yukhin <kirill.yukhin@intel.com>
1857 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1858
1859 * config/i386/sse.md (V): Extended with wider modes.
1860 (VF2): Ditto.
1861 (ssehalfvecmode): Ditto.
1862 (i128): Ditto.
1863 (ssepackfltmode): Ditto.
1864 (avx_vec_concat<mode>): Ditto.
1865 (V_256_512): New iterator.
1866 (VF2_512_256): Ditto.
1867 (si2dfmode): New attribute.
1868 (si2dfmodelower): Ditto.
1869 (sf2dfmode): Ditto.
1870 (concat_tg_mode): Ditto.
1871 (floatv4siv4df2): Changed to ...
1872 (float<si2dfmodelower><mode>2): This.
1873 (avx_cvtps2pd256): Changed to ...
1874 (<sse2_avx_avx512f>_cvtps2pd<avxsizesuffix>): This.
1875 (vec_pack_trunc_v4df): Changed to ...
1876 (vec_pack_trunc_<mode>): This.
1877 (avx_vpermil<mode>): Changed to ...
1878 (<sse2_avx_avx512f>_vpermil<mode>): This.
1879 (<fixsuffix>fix_truncv8dfv8si2): New.
1880 (vec_pack_sfix_trunc_v8df): Ditto.
1881 (avx512f_rndscale<mode>): Ditto.
1882 (avx512f_roundpd512): Ditto.
1883 (vec_pack_ufix_trunc_<mode>): Updated iterator.
1884
a9ccbba2
AI
18852013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1886 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1887 Sergey Lega <sergey.s.lega@intel.com>
1888 Anna Tikhonova <anna.tikhonova@intel.com>
1889 Ilya Tocar <ilya.tocar@intel.com>
1890 Andrey Turetskiy <andrey.turetskiy@intel.com>
1891 Ilya Verbin <ilya.verbin@intel.com>
1892 Kirill Yukhin <kirill.yukhin@intel.com>
1893 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1894
1895 * config/i386/i386.md (any_fix): New iterator.
1896 (fixsuffix): New attribute.
1897 * config/i386/sse.md (VF1): Extened with wider modes.
1898 (VI): Ditto.
1899 (VI_AVX2): Ditto.
1900 (VI8): Ditto.
1901 (sseintvecmodelower): Ditto.
1902 (ssescalarmode): Ditto.
1903 (ssescalarnum): Ditto.
1904 (VF1_128_256): New.
1905 (ssexmmmode): Ditto.
1906 (<fixsuffix>fix_truncv16sfv16si2): Ditto.
1907 (<sse>_rcp<mode>2): Change iterator.
1908 (rsqrt<mode>2): Ditto.
1909 (<sse>_rsqrt<mode>2): Ditto.
1910 (avx2_vec_dup<mode>): Ditto.
1911 (<sse4_1>_round<ssemodesuffix>_sfix<avxsizesuffix>): Ditto.
1912 (round<mode>2_sfix): Ditto.
1913 (avx2_pbroadcast<mode>): Ditto.
1914 (*andnot<mode>3): Handle XI mode.
1915 (*<code><mode>3): Ditto.
1916 (AVXTOSSEMODE): Removed.
1917 (avx_vpermil<mode>): Changed to ...
1918 (<sse2_avx_avx512f>_vpermil<mode>): This.
1919
2b1ebb0c
AI
19202013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1921 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1922 Sergey Lega <sergey.s.lega@intel.com>
1923 Anna Tikhonova <anna.tikhonova@intel.com>
1924 Ilya Tocar <ilya.tocar@intel.com>
1925 Andrey Turetskiy <andrey.turetskiy@intel.com>
1926 Ilya Verbin <ilya.verbin@intel.com>
1927 Kirill Yukhin <kirill.yukhin@intel.com>
1928 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1929
1930 * config/i386/sse.md (<sse2>_movnt<mode>): Update constraint to "v".
1931 (<sse>_comi): Ditto.
1932 (<sse>_ucomi): Ditto.
1933 (sse_cvtss2siq_2): Ditto.
1934 (sse2_cvtsd2si): Ditto.
1935 (sse2_cvtsd2siq): Ditto.
1936 (sse2_cvttsd2si): Ditto.
1937 (sse2_cvttsd2siq): Ditto.
1938 (<shift_insn><mode>3): Ditto.
1939 (sse2_cvtsi2sdq): Update constraint and prefix.
1940 (sse_cvtsi2ss): Update prefix.
1941 (sse_cvtsi2ssq): Ditto.
1942
d89124ed
JJ
19432013-10-11 Jakub Jelinek <jakub@redhat.com>
1944
1945 * tree-vrp.c (infer_nonnull_range): Use is_gimple_call,
1946 ignore internal calls.
1947
e6ad28c3
RB
19482013-10-11 Richard Biener <rguenther@suse.de>
1949
6f1abb55
UB
1950 * tree-pretty-print.c (dump_generic_node): Allow to dump both (D)
1951 and (ab) for SSA_NAMEs. Mark INTEGER_CSTs with (OVF) if
1952 TREE_OVERFLOW is set.
e6ad28c3 1953
d1227447
TS
19542013-10-11 Thomas Schwinge <thomas@codesourcery.com>
1955
1ac4b8e4
TS
1956 * tree.h (OMP_CLAUSE_CODE): Remove duplicate definition.
1957
7d05cebb
TS
1958 * gimple.c: GIMPLE statements have subcodes, not sub-codes.
1959 * gimple.h: Likewise.
1960
adcfd489 1961 * doc/generic.texi (OpenMP): OMP_CLAUSE_* are subcodes, not sub-codes.
6545f0b3 1962
1a79fb8a
TS
1963 * doc/generic.texi (Adding new DECL node types): Explain *_CHECK
1964 macros.
1965
3afd2873
TS
1966 * doc/gimple.texi (is_gimple_omp): Move into the correct section.
1967
adcfd489 1968 * acinclude.m4 (gcc_GAS_FLAGS): Add more gcc_cv_as_flags overrides.
d1227447
TS
1969 * configure: Regenerate.
1970
acf0174b
JJ
19712013-10-11 Jakub Jelinek <jakub@redhat.com>
1972
1973 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__LOOPTEMP_
1974 and new OpenMP 4.0 clauses, handle UDR OMP_CLAUSE_REDUCTION,
1975 formatting fixes, use pp_colon instead of pp_character (..., ':'),
1976 similarly pp_right_paren.
1977 (dump_generic_node): Handle OMP_DISTRIBUTE, OMP_TEAMS,
1978 OMP_TARGET_DATA, OMP_TARGET, OMP_TARGET_UPDATE, OMP_TASKGROUP,
1979 allow OMP_FOR_INIT to be NULL, handle OMP_ATOMIC_SEQ_CST.
1980 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add OpenMP 4.0
1981 clauses.
1982 (omp_declare_simd_clauses_equal,
1983 omp_remove_redundant_declare_simd_attrs): New functions.
1984 (attribute_value_equal): Use omp_declare_simd_clauses_equal.
1985 (walk_tree_1): Handle new OpenMP 4.0 clauses.
1986 * tree.h (OMP_LOOP_CHECK): Define.
1987 (OMP_FOR_BODY, OMP_FOR_CLAUSES, OMP_FOR_INIT, OMP_FOR_COND,
1988 OMP_FOR_INCR, OMP_FOR_PRE_BODY): Use it.
1989 (OMP_TASKGROUP_BODY, OMP_TEAMS_BODY, OMP_TEAMS_CLAUSES,
1990 OMP_TARGET_DATA_BODY, OMP_TARGET_DATA_CLAUSES, OMP_TARGET_BODY,
1991 OMP_TARGET_CLAUSES, OMP_TARGET_UPDATE_CLAUSES, OMP_CLAUSE_SIZE,
1992 OMP_ATOMIC_SEQ_CST, OMP_CLAUSE_DEPEND_KIND, OMP_CLAUSE_MAP_KIND,
1993 OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION, OMP_CLAUSE_PROC_BIND_KIND,
1994 OMP_CLAUSE_REDUCTION_OMP_ORIG_REF, OMP_CLAUSE_ALIGNED_ALIGNMENT,
1995 OMP_CLAUSE_NUM_TEAMS_EXPR, OMP_CLAUSE_THREAD_LIMIT_EXPR,
1996 OMP_CLAUSE_DEVICE_ID, OMP_CLAUSE_DIST_SCHEDULE_CHUNK_EXPR,
1997 OMP_CLAUSE_SIMDLEN_EXPR): Define.
1998 (OMP_CLAUSE_DECL): Change range up to OMP_CLAUSE__LOOPTEMP_.
1999 (omp_remove_redundant_declare_simd_attrs): New prototype.
2000 * gimple.def (GIMPLE_OMP_TASKGROUP, GIMPLE_OMP_TARGET,
2001 GIMPLE_OMP_TEAMS): New codes.
2002 (GIMPLE_OMP_RETURN): Use GSS_OMP_ATOMIC_STORE instead of GSS_BASE.
2003 * omp-low.c (struct omp_context): Add cancel_label and cancellable
2004 fields.
2005 (target_nesting_level): New variable.
2006 (extract_omp_for_data): Handle GF_OMP_FOR_KIND_DISTRIBUTE and
2007 OMP_CLAUSE_DIST_SCHEDULE. Don't fallback to library implementation
2008 for collapse > 1 static schedule unless ordered.
2009 (get_ws_args_for): Add par_stmt argument. Handle combined loops.
2010 (determine_parallel_type): Adjust get_ws_args_for caller.
2011 (install_var_field): Handle mask & 4 for double indirection.
2012 (scan_sharing_clauses): Ignore shared clause on teams construct.
2013 Handle OMP_CLAUSE__LOOPTEMP_ and new OpenMP 4.0 clauses.
2014 (create_omp_child_function): If inside target or declare target
adcfd489 2015 constructs, set "omp declare target" attribute on the child function.
acf0174b
JJ
2016 (find_combined_for): New function.
2017 (scan_omp_parallel): Handle combined loops.
2018 (scan_omp_target, scan_omp_teams): New functions.
2019 (check_omp_nesting_restrictions): Check new OpenMP 4.0 nesting
2020 restrictions and set ctx->cancellable for cancellable constructs.
2021 (scan_omp_1_stmt): Call check_omp_nesting_restrictions also on
2022 selected builtin calls. Handle GIMPLE_OMP_TASKGROUP,
2023 GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS.
adcfd489 2024 (build_omp_barrier): Add lhs argument, return gimple rather than tree.
acf0174b 2025 (omp_clause_aligned_alignment): New function.
6f1abb55 2026 (lower_rec_simd_input_clauses): Only call SET_DECL_VALUE_EXPR on decls.
acf0174b
JJ
2027 (lower_rec_input_clauses): Add FD argument. Ignore shared clauses
2028 on teams constructs. Handle user defined reductions and new
2029 OpenMP 4.0 clauses.
2030 (lower_reduction_clauses): Don't set placeholder to address of ref
2031 if it has already the right type.
2032 (lower_send_clauses): Handle OMP_CLAUSE__LOOPTEMP_.
2033 (expand_parallel_call): Use the new non-_start suffixed builtins,
2034 handle OMP_CLAUSE_PROC_BIND, don't call the outlined function
2035 and GOMP_parallel_end after the call.
2036 (expand_task_call): Handle OMP_CLAUSE_DEPEND.
2037 (expand_omp_for_init_counts): Handle combined loops.
2038 (expand_omp_for_init_vars): Add inner_stmt argument, handle combined
2039 loops.
2040 (expand_omp_for_generic): Likewise. Use GOMP_loop_end_cancel at the
2041 end of cancellable loops.
2042 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
2043 Likewise. Handle collapse > 1 loops.
2044 (expand_omp_simd): Handle combined loops.
2045 (expand_omp_for): Add inner_stmt argument, adjust callers of
2046 expand_omp_for* functions, use expand_omp_for_static*chunk even
2047 for collapse > 1 unless ordered.
2048 (expand_omp_sections): Use GOMP_sections_end_cancel at the end
2049 of cancellable sections.
2050 (expand_omp_single): Remove need_barrier variable, just rely on
2051 gimple_omp_return_nowait_p. Adjust build_omp_barrier caller.
2052 (expand_omp_synch): Allow GIMPLE_OMP_TASKGROUP and GIMPLE_OMP_TEAMS.
2053 (expand_omp_atomic_load, expand_omp_atomic_store,
2054 expand_omp_atomic_fetch_op): Handle gimple_omp_atomic_seq_cst_p.
2055 (expand_omp_target): New function.
2056 (expand_omp): Handle combined loops. Handle GIMPLE_OMP_TASKGROUP,
2057 GIMPLE_OMP_TEAMS, GIMPLE_OMP_TARGET.
2058 (build_omp_regions_1): Immediately close region for
2059 GF_OMP_TARGET_KIND_UPDATE.
2060 (maybe_add_implicit_barrier_cancel): New function.
2061 (lower_omp_sections): Adjust lower_rec_input_clauses caller. Handle
2062 cancellation.
2063 (lower_omp_single): Likewise. Add clobber after the barrier.
2064 (lower_omp_taskgroup): New function.
2065 (lower_omp_for): Handle combined loops. Adjust
2066 lower_rec_input_clauses caller. Handle cancellation.
2067 (lower_depend_clauses): New function.
2068 (lower_omp_taskreg): Lower depend clauses. Adjust
2069 lower_rec_input_clauses caller. Add clobber after the call. Handle
2070 cancellation.
2071 (lower_omp_target, lower_omp_teams): New functions.
2072 (lower_omp_1): Handle cancellation. Handle GIMPLE_OMP_TASKGROUP,
2073 GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GOMP_barrier, GOMP_cancel
2074 and GOMP_cancellation_point calls.
2075 (lower_omp): Fold stmts inside of target region.
2076 (diagnose_sb_1, diagnose_sb_2): Handle GIMPLE_OMP_TASKGROUP,
2077 GIMPLE_OMP_TARGET and GIMPLE_OMP_TEAMS.
2078 * builtin-types.def (DEF_FUNCTION_TYPE_8): Document.
2079 (BT_FN_VOID_OMPFN_PTR_UINT,
2080 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
2081 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG,
2082 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): Remove.
2083 (BT_FN_VOID_OMPFN_PTR_UINT_UINT_UINT,
2084 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_UINT,
2085 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG_UINT,
2086 BT_FN_BOOL_INT, BT_FN_BOOL_INT_BOOL, BT_FN_VOID_UINT_UINT,
2087 BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
2088 BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
2089 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): New.
2090 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
2091 call_may_clobber_ref_p_1): Handle BUILT_IN_GOMP_BARRIER_CANCEL,
2092 BUILT_IN_GOMP_TASKGROUP_END, BUILT_IN_GOMP_LOOP_END_CANCEL,
2093 BUILT_IN_GOMP_SECTIONS_END_CANCEL. Don't handle
2094 BUILT_IN_GOMP_PARALLEL_END.
2095 * gimple-low.c (lower_stmt): Handle GIMPLE_OMP_TASKGROUP,
2096 GIMPLE_OMP_TARGET and GIMPLE_OMP_TEAMS.
2097 * gimple-pretty-print.c (dump_gimple_omp_for): Handle
2098 GF_OMP_FOR_KIND_DISTRIBUTE.
2099 (dump_gimple_omp_target, dump_gimple_omp_teams): New functions.
2100 (dump_gimple_omp_block): Handle GIMPLE_OMP_TASKGROUP.
2101 (dump_gimple_omp_return): Print lhs if it has any.
2102 (dump_gimple_omp_atomic_load, dump_gimple_omp_atomic_store): Handle
2103 gimple_omp_atomic_seq_cst_p.
2104 (pp_gimple_stmt_1): Handle GIMPLE_OMP_TASKGROUP, GIMPLE_OMP_TARGET
2105 and GIMPLE_OMP_TEAMS.
2106 * langhooks.c (lhd_omp_mappable_type): New function.
2107 * tree-vectorizer.c (struct simd_array_to_simduid): Fix up comment.
2108 * langhooks.h (struct lang_hooks_for_types): Add omp_mappable_type
2109 hook.
2110 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP,
2111 GOVD_ALIGNED and GOVD_MAP_TO_ONLY.
6f1abb55 2112 (enum omp_region_type): Add ORT_TEAMS, ORT_TARGET_DATA and ORT_TARGET.
acf0174b
JJ
2113 (struct gimplify_omp_ctx): Add combined_loop field.
2114 (gimplify_call_expr, gimplify_modify_expr): Don't call fold_stmt
2115 on stmts inside of target region.
2116 (is_gimple_stmt): Return true for OMP_DISTRIBUTE and OMP_TASKGROUP.
2117 (omp_firstprivatize_variable): Handle GOVD_MAP, GOVD_ALIGNED,
2118 ORT_TARGET and ORT_TARGET_DATA.
2119 (omp_add_variable): Avoid checks on readding var for GOVD_ALIGNED.
2120 Handle GOVD_MAP.
2121 (omp_notice_threadprivate_variable): Complain about threadprivate
2122 variables in target region.
2123 (omp_notice_variable): Complain about vars with non-mappable type
2124 in target region. Handle ORT_TEAMS, ORT_TARGET and ORT_TARGET_DATA.
2125 (omp_check_private): Ignore ORT_TARGET* regions.
2126 (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1,
2127 gimplify_adjust_omp_clauses): Handle new OpenMP 4.0 clauses.
2128 (find_combined_omp_for): New function.
2129 (gimplify_omp_for): Handle gimplification of combined loops.
2130 (gimplify_omp_workshare): Gimplify also OMP_TARGET, OMP_TARGET_DATA,
2131 OMP_TEAMS.
2132 (gimplify_omp_target_update): New function.
2133 (gimplify_omp_atomic): Handle OMP_ATOMIC_SEQ_CST.
2134 (gimplify_expr): Handle OMP_DISTRIBUTE, OMP_TARGET, OMP_TARGET_DATA,
2135 OMP_TARGET_UPDATE, OMP_TEAMS, OMP_TASKGROUP.
2136 (gimplify_body): If fndecl has "omp declare target" attribute, add
2137 implicit ORT_TARGET context around it.
2138 * tree.def (OMP_DISTRIBUTE, OMP_TEAMS, OMP_TARGET_DATA, OMP_TARGET,
2139 OMP_TASKGROUP, OMP_TARGET_UPDATE): New tree codes.
2140 * tree-nested.c (convert_nonlocal_reference_stmt,
2141 convert_local_reference_stmt, convert_gimple_call): Handle
2142 GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
2143 * omp-builtins.def (BUILT_IN_GOMP_TASK): Use
2144 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR
2145 instead of BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT.
2146 (BUILT_IN_GOMP_TARGET, BUILT_IN_GOMP_TARGET_DATA,
2147 BUILT_IN_GOMP_TARGET_END_DATA, BUILT_IN_GOMP_TARGET_UPDATE,
2148 BUILT_IN_GOMP_TEAMS, BUILT_IN_BARRIER_CANCEL,
2149 BUILT_IN_GOMP_LOOP_END_CANCEL,
2150 BUILT_IN_GOMP_SECTIONS_END_CANCEL, BUILT_IN_OMP_GET_TEAM_NUM,
2151 BUILT_IN_OMP_GET_NUM_TEAMS, BUILT_IN_GOMP_TASKGROUP_START,
2152 BUILT_IN_GOMP_TASKGROUP_END, BUILT_IN_GOMP_PARALLEL_LOOP_STATIC,
2153 BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC,
2154 BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED,
2155 BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME, BUILT_IN_GOMP_PARALLEL,
2156 BUILT_IN_GOMP_PARALLEL_SECTIONS, BUILT_IN_GOMP_CANCEL,
2157 BUILT_IN_GOMP_CANCELLATION_POINT): New built-ins.
2158 (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
2159 BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
2160 BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
2161 BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
2162 BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END,
2163 BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Remove.
2164 * tree-inline.c (remap_gimple_stmt, estimate_num_insns):
2165 Handle GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
2166 * gimple.c (gimple_build_omp_taskgroup, gimple_build_omp_target,
2167 gimple_build_omp_teams): New functions.
2168 (walk_gimple_op): Handle GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and
2169 GIMPLE_OMP_TASKGROUP. Walk optional lhs on GIMPLE_OMP_RETURN.
2170 (walk_gimple_stmt, gimple_copy): Handle GIMPLE_OMP_TARGET,
2171 GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
2172 * gimple.h (enum gf_mask): GF_OMP_FOR_KIND_DISTRIBUTE,
2173 GF_OMP_FOR_COMBINED, GF_OMP_FOR_COMBINED_INTO,
2174 GF_OMP_TARGET_KIND_MASK, GF_OMP_TARGET_KIND_REGION,
2175 GF_OMP_TARGET_KIND_DATA, GF_OMP_TARGET_KIND_UPDATE,
2176 GF_OMP_ATOMIC_SEQ_CST): New.
2177 (gimple_build_omp_taskgroup, gimple_build_omp_target,
2178 gimple_build_omp_teams): New prototypes.
2179 (gimple_has_substatements): Handle GIMPLE_OMP_TARGET,
2180 GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
2181 (gimple_omp_subcode): Use GIMPLE_OMP_TEAMS instead of
2182 GIMPLE_OMP_SINGLE as end of range.
2183 (gimple_omp_return_set_lhs, gimple_omp_return_lhs,
2184 gimple_omp_return_lhs_ptr, gimple_omp_atomic_seq_cst_p,
2185 gimple_omp_atomic_set_seq_cst, gimple_omp_for_combined_p,
2186 gimple_omp_for_set_combined_p, gimple_omp_for_combined_into_p,
2187 gimple_omp_for_set_combined_into_p, gimple_omp_target_clauses,
2188 gimple_omp_target_clauses_ptr, gimple_omp_target_set_clauses,
2189 gimple_omp_target_kind, gimple_omp_target_set_kind,
2190 gimple_omp_target_child_fn, gimple_omp_target_child_fn_ptr,
2191 gimple_omp_target_set_child_fn, gimple_omp_target_data_arg,
2192 gimple_omp_target_data_arg_ptr, gimple_omp_target_set_data_arg,
2193 gimple_omp_teams_clauses, gimple_omp_teams_clauses_ptr,
2194 gimple_omp_teams_set_clauses): New inlines.
2195 (CASE_GIMPLE_OMP): Add GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS
2196 and GIMPLE_OMP_TASKGROUP.
adcfd489 2197 * tree-core.h (enum omp_clause_code): Add new OpenMP 4.0 clause codes.
acf0174b
JJ
2198 (enum omp_clause_depend_kind, enum omp_clause_map_kind,
2199 enum omp_clause_proc_bind_kind): New.
2200 (union omp_clause_subcode): Add depend_kind, map_kind and
2201 proc_bind_kind fields.
2202 * tree-cfg.c (make_edges): Handle GIMPLE_OMP_TARGET,
2203 GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
2204 * langhooks-def.h (lhd_omp_mappable_type): New prototype.
2205 (LANG_HOOKS_OMP_MAPPABLE_TYPE): Define.
2206 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
2207
67fa7880
TJ
22082013-10-10 Teresa Johnson <tejohnson@google.com>
2209
2210 * predict.c (tree_estimate_probability): Add new parameter
2211 for estimate_bb_frequencies.
2212 (estimate_bb_frequencies): Add new parameter to force estimation.
2213 (rebuild_frequencies): When max frequency in function is small,
2214 recompute counts from frequencies.
2215 * predict.h (estimate_bb_frequencies): New parameter.
2216
b591a8b7
DM
22172013-10-10 David Malcolm <dmalcolm@redhat.com>
2218
2219 * ipa-inline.c (ipa_inline): Fix leak of "order" when
2220 optimizations are disabled.
2221
782f0db2
DM
22222013-10-10 David Malcolm <dmalcolm@redhat.com>
2223
2224 * coverage.c (coverage_finish): Fix leak of da_file_name.
2225
13ef00fa
JH
22262013-10-10 Jan Hubicka <jh@suse.cz>
2227
2228 * config/i386/x86-tune.def: Enable X86_TUNE_SSE_TYPELESS_STORES
2229 for generic, enable X86_TUNE_SSE_LOAD0_BY_PXOR for Bulldozer,
2230 Bobcat and generic.
2231
a1d50386
JJ
22322013-10-10 Jakub Jelinek <jakub@redhat.com>
2233
2234 PR middle-end/58670
2235 * stmt.c (expand_asm_operands): Add FALLTHRU_BB argument,
2236 if any labels are in FALLTHRU_BB, use a special label emitted
2237 immediately after the asm goto insn rather than label_rtx
2238 of the LABEL_DECL.
2239 (expand_asm_stmt): Adjust caller.
2240 * cfgrtl.c (commit_one_edge_insertion): Force splitting of
2241 edge if the last insn in predecessor is a jump with single successor,
2242 but it isn't simplejump_p.
2243
e2c2fde2
RB
22442013-10-10 Richard Biener <rguenther@suse.de>
2245
2246 PR tree-optimization/58656
6f1abb55 2247 * tree-ssa-pre.c (phi_translate): Do not cache failed translations.
e2c2fde2 2248
de6a5608
AM
22492013-10-10 Andrew MacLeod <amacleod@redhat.com>
2250
adcfd489
UB
2251 * gimplify.c: Include expr.h and tm_p.h for targets with special
2252 va-arg padding requirements.
de6a5608 2253
b184c8f1
AM
22542013-10-10 Andrew MacLeod <amacleod@redhat.com>
2255
2256 * tree-flow.h: Move some prototypes to gimple.h.
2257 (gimple_fold_indirect_ref): Move prototype to gimple-fold.h.
2258 * gimple.h: Relocate some prototypes from tree-flow.h
2259 * builtins.c (std_gimplify_va_arg_expr, build_va_arg_indirect_ref):
2260 Move to gimplify.c.
2261 * gimplify.c (gimple_fold_indirect_ref): Move to gimple-fold.c.
2262 (build_va_arg_indirect_ref): Relocate and make static.
2263 (std_gimplify_va_arg_expr): Relocate here.
2264 * gimple-fold.c (gimple_fold_indirect_ref): Relocate here.
2265 * gimple-fold.h (gimple_fold_indirect_ref): Add prototype.
2266
13b72c22
AK
22672013-10-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2268
2269 * doc/md.texi: Document the mnemonic attribute.
2270
5db40447
AK
22712013-10-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2272
2273 PR target/57377
2274 * gensupport.c (gen_mnemonic_attr): Handle (set (attr x) y) and
2275 (set_attr_alternative x ...) when searching for user defined
2276 mnemonic attribute.
2277
ed018d4b
AM
22782013-10-10 Andrew MacLeod <amacleod@redhat.com>
2279
2280 * config/aplha/alpha.c: Add gimple-ssa.h to include list.
2281
4d5b5e9f
ER
22822013-10-09 Easwaran Raman <eraman@google.com>
2283
2284 * params.def (PARAM_MIN_SIZE_FOR_STACK_SHARING): New param...
2285 * cfgexpand.c (defer_stack_allocation): ...use here
2286 * doc/invoke.texi: Add documentation for min-size-for-stack-sharing.
2287
c9ef86a1
ZC
22882013-10-09 Zhenqiang Chen <zhenqiang.chen@arm.com>
2289
2290 * tree-ssa-phiopts.c (rhs_is_fed_for_value_replacement): New function.
2291 (operand_equal_for_value_replacement): New function, extracted from
2292 value_replacement and enhanced to catch more cases.
2293 (value_replacement): Use operand_equal_for_value_replacement.
2294
2431114f
AM
22952013-10-09 Andrew MacLeod <amacleod@redhat.com>
2296
adcfd489 2297 * loop-doloop.c (doloop_modify, doloop_optimize): Use
2431114f
AM
2298 get_max_loop_iterations.
2299
1dd2a9a0
KT
23002013-10-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2301
2302 * config/arm/aarch-common.c (arm_early_load_addr_dep):
2303 Place comment above function.
2304
c1bf2a39
AM
23052013-10-09 Andrew MacLeod <amacleod@redhat.com>
2306
2307 * tree-flow.h: Remove all remaining prototypes, enums and structs that
2308 are not related to tree-cfg.c.
2309 * tree-ssa-address.h: New file. Relocate prototypes.
2310 * tree-ssa-address.c: (struct mem_address): Relocate from tree-flow.h.
2311 (addr_for_mem_ref): New. Combine call to get_address_description and
2312 return addr_for_mem_ref.
2313 * expr.c (expand_expr_real_1): Use new addr_for_mem_ref routine.
2314 * tree-ssa-live.h: Adjust prototypes.
2315 * passes.c: Include tree-ssa-live.h.
2316 * gimple-pretty-print.h (gimple_dump_bb): Add prototype.
2317 * graphite.c (graphite_transform_loops): Make static.
2318 (graphite_transforms, gate_graphite_transforms, pass_data_graphite,
adcfd489 2319 make_pass_graphite, pass_data_graphite_transforms,
c1bf2a39
AM
2320 make_pass_graphite_transforms): Relocate here from tree-ssa-loop.c.
2321 * ipa-pure-const.c (warn_function_noreturn): Make static.
2322 (execute_warn_function_noreturn, gate_warn_function_noreturn,
2323 class pass_warn_function_noreturn, make_pass_warn_function_noreturn):
2324 Relocate from tree-cfg.c
2325 * tree-cfg.c (tree_node_can_be_shared, gimple_empty_block_p): Make
2326 static.
2327 (execute_warn_function_noreturn, gate_warn_function_noreturn,
2328 class pass_warn_function_noreturn, make_pass_warn_function_noreturn):
2329 Move to ipa-pure-const.c.
adcfd489
UB
2330 (execute_fixup_cfg, class pass_fixup_cfg, make_pass_fixup_cfg):
2331 Relocate from tree-optimize.c.
c1bf2a39
AM
2332 * tree-optimize.c (execute_fixup_cfg, class pass_fixup_cfg,
2333 make_pass_fixup_cfg): Move to tree-cfg.c.
2334 * tree-chrec.h: (enum ev_direction): Relocate here from tree-flow.h.
2335 Relocate some prototypes.
2336 * tree-data-ref.h (tree_check_data_deps) Add prototype.
2337 * tree-dump.c (dump_function_to_file): Remove prototype.
2338 Add tree-flow.h to the include file.
2339 * tree-dump.h: Remove prototype.
2340 * tree-parloops.h: New File. Add prototypes.
2341 * tree-parloops.c (gate_tree_parallelize_loops, tree_parallelize_loops,
2342 pass_data_parallelize_loops, make_pass_parallelize_loops): Relocate
2343 from tree-ssa-loop.c.
2344 * tree-predcom.c (run_tree_predictive_commoning,
2345 gate_tree_predictive_commoning, pass_data_predcom, make_pass_predcom):
2346 Relocate here from tree-ssa-loop.c.
adcfd489 2347 * tree-ssa-dom.c (tree_ssa_dominator_optimize) Don't call
c1bf2a39
AM
2348 ssa_name_values.release ().
2349 * tree-ssa-threadedge.h: New File. Relocate prototypes here.
2350 (ssa_name_values): Relocate from tree-flow.h.
2351 * tree-ssa.h: Include tree-ssa-threadedge.h and tree-ssa-address.h.
2352 * tree-ssa-loop.c (run_tree_predictive_commoning,
2353 gate_tree_predictive_commoning, pass_data_predcom, make_pass_predcom,
2354 graphite_transforms, gate_graphite_transforms, pass_data_graphite,
2355 make_pass_graphite, pass_data_graphite_transforms,
2356 make_pass_graphite_transforms, gate_tree_parallelize_loops,
2357 tree_parallelize_loops, pass_data_parallelize_loops,
2358 make_pass_parallelize_loops): Move to other files.
2359 * tree-vectorizer.h (lpeel_tree_duplicate_loop_to_edge_cfg): Prototype
2360 moved here.
2361 * tree.h: Remove prototypes from tree-address.c.
2362
cc524fc7
AM
23632013-10-09 Andrew MacLeod <amacleod@redhat.com>
2364
2365 * tree-flow.h (tm_restart_node, gimple_df): Move to gimple-ssa.h.
2366 (struct int_tree_map): Move to tree-hasher.h
2367 (SCALE, LABEL, PERCENT): Move to gimple.h
2368 * tree-flow-inline.h: Delete. Move functions to other files.
2369 (unmodifiable_var_p, ref_contains_array_ref): Unused, so delete.
2370 * gimple-ssa.h (tm_restart_node, gimple_df): Relocate from tree-flow.h.
2371 (gimple_in_ssa_p, gimple_vop): Relocate from tree-flow-inline.h
2372 * gimple.h (imple_stmt_max_uid, set_gimple_stmt_max_uid,
2373 inc_gimple_stmt_max_uid, get_lineno): Relocate from tree-flow-inline.h.
2374 (SCALE, LABEL, PERCENT): Relocate from tree-flow.h
2375 * tree-hasher.h: Don't include tree-flow.h.
2376 (struct int_tree_map): Relocate from tree-flow.h.
2377 * tree-sra.c (contains_view_convert_expr_p): Relocate from
2378 tree-flow-inline.h and make static.
adcfd489
UB
2379 * tree-ssa-alias.h (ranges_overlap_p): Relocate from
2380 tree-flow-inline.h.
cc524fc7
AM
2381 * tree-ssa-operands.c (gimple_ssa_operands): Relocate from
2382 tree-flow-inline.h and make static.
2383 * tree.h (is_global_var, may_be_aliased): Relocate from
2384 tree-flow-inline.h.
2385 * Makefile.in (GTFILES): Remove tree-flow.h and add gimple-ssa.h.
2386 * value-prof.c: No longer include tree-flow-inline.h.
2387 * tree-switch-conversion.c: No longer include tree-flow-inline.h.
2388
71343877
AM
23892013-10-09 Andrew MacLeod <amacleod@redhat.com>
2390
2391 * tree-flow.h: Move some protoypes. Include new tree-ssa-loop.h.
2392 (struct affine_iv, struct tree_niter_desc): Move to tree-ssa-loop.h.
2393 (enum move_pos): Move to tree-ssa-loop-im.h
2394 * cfgloop.h: Move some prototypes.
2395 (gcov_type_to_double_int): relocate from tree-ssa-loop.niter.c.
2396 * tree-flow-inline.h (loop_containing_stmt): Move to tree-ssa-loop.h.
2397 * tree-ssa-loop.h: New File. Include other tree-ssa-loop-*.h files.
2398 (struct affine_iv, struct tree_niter_desc): Relocate from tree-flow.h.
2399 (loop_containing_stmt): Relocate from tree-flow-inline.h.
2400 * tree-ssa-loop-ch.c: (do_while_loop_p): Make static.
2401 * tree-ssa-loop-im.c (for_each_index): Move to tree-ssa-loop.c.
2402 (enum move_pos): Relocate here.
2403 (lsm_tmp_name_add, gen_lsm_tmp_name, get_lsm_tmp_name): Move to
2404 tree-ssa-loop.c.
2405 (execute_sm_if_changed_flag_set): Change get_lsm_tmp_name call.
adcfd489
UB
2406 (tree_ssa_loop_im, gate_tree_ssa_loop_im, pass_data_lim,
2407 make_pass_lim): Relocate here from tree-ssa-loop.c.
2408 * tree-ssa-loop-ivcanon.c (tree_num_loop_insns): Move to
71343877
AM
2409 tree-ssa-loop.c.
2410 (loop_edge_to_cancel, unloop_loops): Make static.
2411 (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_data_iv_canon,
2412 make_pass_iv_canon): Relocate from tree-ssa-loop.c.
2413 (tree_complete_unroll, gate_tree_complete_unroll,
2414 pass_data_complete_unroll, make_pass_complete_unroll): Relocate here.
2415 (tree_complete_unroll_inner, gate_tree_complete_unroll_inner,
2416 pass_data_complete_unrolli, make_pass_complete_unrolli): Relocate here.
2417 * tree-ssa-loop-ivopts.c: Remove local prototypes.
2418 (stmt_invariant_in_loop_p): Remove unused function.
2419 * tree-ssa-loop-ivopts.h: New file. Add prototypes.
2420 * tree-ssa-loop-manip.h: New file. Add prototypes.
2421 * tree-ssa-loop-niter.c (record_niter_bound): Move to cfgloop.c.
2422 (gcov_type_to_double_int): Move to cfgloop.h.
2423 (double_int_cmp, bound_index,
2424 estimate_numbers_of_iterations_loop): Make static.
2425 (estimated_loop_iterations): Factor out get_estimated_loop_iterations.
2426 (max_loop_iterations): Factor out get_max_loop_iterations.
2427 (estimated_loop_iterations_int, max_stmt_executions_int): Move to
2428 cfgloop.c.
2429 * tree-ssa-loop-niter.h: New file. Add prototypes.
2430 * tree-ssa-loop-prefetch.c (tree_ssa_loop_prefetch,
2431 gate_tree_ssa_loop_prefetch, pass_data_loop_prefetch,
2432 make_pass_loop_prefetch): Relocate from tree-ssa-loop.c.
2433 * tree-ssa-loop-unswitch.c (tree_ssa_loop_unswitch,
2434 gate_tree_ssa_loop_unswitch, pass_data_tree_unswitch,
2435 make_pass_tree_unswitch): Relocate from tree-ssa-loop.c.
2436 * tree-ssa-loop.c (tree_ssa_loop_im, gate_tree_ssa_loop_im,
2437 pass_data_lim, make_pass_lim): Move to tree-ssa-loop-im.c.
2438 (tree_ssa_loop_unswitch, gate_tree_ssa_loop_unswitch,
2439 pass_data_tree_unswitch, make_pass_tree_unswitch): Move.
2440 (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_data_iv_canon,
2441 make_pass_iv_canon, tree_complete_unroll, gate_tree_complete_unroll,
2442 pass_data_complete_unroll, make_pass_complete_unroll,
2443 tree_complete_unroll_inner, gate_tree_complete_unroll_inner,
2444 pass_data_complete_unrolli, make_pass_complete_unrolli): Move to
2445 tree-ssa-loop-ivcanon.c.
2446 (tree_ssa_loop_prefetch, gate_tree_ssa_loop_prefetch,
2447 pass_data_loop_prefetch, make_pass_loop_prefetch): Move to
2448 tree-ssa-loop-prefetch.c.
2449 (for_each_index, lsm_tmp_name_add, gen_lsm_tmp_name): Relocate from
2450 tree-ssa-loop-im.c.
2451 (get_lsm_tmp_name): Relocate and add suffix parameter.
2452 (tree_num_loop_insns): Relocate from tree-ssa-ivcanon.c.
2453 * tree-scalar-evolution.h (simple_iv): Don't use affive_iv typedef.
2454 * cfgloop.c (record_niter_bound, estimated_loop_iterations_int,
2455 max_stmt_executions_int): Move from tree-ssa-loop-niter.c.
adcfd489 2456 (get_estimated_loop_iterations): Factor out accessor from
71343877 2457 estimated_loop_iterations in tree-ssa-loop-niter.c.
adcfd489
UB
2458 (get_max_loop_iterations): Factor out accessor from
2459 _max_loop_iterations in tree-ssa-niter.c.
71343877
AM
2460 * loop-unroll.c (decide_unroll_constant_iterations,
2461 decide_unroll_runtime_iterations, decide_peel_simple,
2462 decide_unroll_stupid): Use new get_* accessors.
2463
826cacfe
MG
24642013-10-09 Marc Glisse <marc.glisse@inria.fr>
2465
2466 PR tree-optimization/20318
2467 * doc/extend.texi (returns_nonnull): New function attribute.
2468 * fold-const.c (tree_expr_nonzero_warnv_p): Look for returns_nonnull
2469 attribute.
2470 * tree-vrp.c (gimple_stmt_nonzero_warnv_p): Likewise.
2471 (stmt_interesting_for_vrp): Accept all GIMPLE_CALL.
2472
378f8976
EB
24732013-10-09 Eric Botcazou <ebotcazou@adacore.com>
2474
2475 PR middle-end/58570
2476 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): Return
2477 false if both components are bitfields.
2478
0fe04f5c
AV
24792013-10-09 Alex Velenko <Alex.Velenko@arm.com>
2480
2481 * config/aarch64/arm_neon.h (vclz_s8, vclz_s16, vclz_s32)
2482 (vclzq_s8, vclzq_s16, vclzq_s32, vclz_u8, vclz_u16, vclz_u32)
2483 (vclzq_u8, vclzq_u16, vclzq_u32): Replace ASM with C.
2484 * config/aarch64/aarch64.h
2485 (CLZ_DEFINED_VALUE_AT_ZERO): Macro fixed for clz.
2486 * config/aarch64/aarch64-simd-builtins.def
2487 (VAR1 (UNOP, clz, 0, v4si)): Replaced with iterator.
2488
bed9bae4
AV
24892013-10-09 Alex Velenko <Alex.Velenko@arm.com>
2490
2491 * config/aarch64/arm_neon.h (vadd_f64, vsub_f64): Implementation added.
2492
7f3d8b19
AV
24932013-10-09 Alex Velenko <Alex.Velenko@arm.com>
2494
2495 * config/aarch64/arm_neon.h (vdiv_f64): Added.
2496
7df625a6
AV
24972013-10-09 Alex Velenko <Alex.Velenko@arm.com>
2498
2499 * config/aarch64/arm_neon.h (vneg_f32): Asm replaced with C.
2500 (vneg_f64): New intrinsic.
2501 (vneg_s8): Asm replaced with C.
2502 (vneg_s16): Likewise.
2503 (vneg_s32): Likewise.
2504 (vneg_s64): New intrinsic.
2505 (vnegq_f32): Asm replaced with C.
2506 (vnegq_f64): Likewise.
2507 (vnegq_s8): Likewise.
2508 (vnegq_s16): Likewise.
2509 (vnegq_s32): Likewise.
2510 (vnegq_s64): Likewise.
2511
2b86fca7
RL
25122013-10-09 Renlin Li <Renlin.Li@arm.com>
2513
2514 * config/arm/arm.c (arm_output_mi_thunk): Use plus_constant.
2515
e179df83
AK
25162013-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2517
2518 * config/s390/s390.c (s390_register_info_stdarg_fpr): Remove
2519 packed stack special handling.
2520 (s390_frame_info, s390_emit_prologue, s390_emit_epilogue): Switch
2521 back to fixed stack slots for FPRs saved due to stdarg.
2522
74129172
AK
25232013-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2524
2525 * config/s390/s390.c (s390_frame_info): Restructure function.
2526
6455a49e
AK
25272013-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2528
2529 * config/s390/s390.c (struct s390_frame_layout): New field
2530 gpr_save_slots.
2531 (cfun_save_arg_fprs_p, cfun_gpr_save_slot): New macros.
2532 (s390_reg_clobbered_rtx, s390_regs_ever_clobbered): Change type of
2533 regs_ever_clobbered to char*.
adcfd489
UB
2534 (s390_regs_ever_clobbered): Check crtl->saves_all_registers instead
2535 of cfun->has_nonlocal_label. Ignore frame related restore INSNs.
6455a49e
AK
2536 (s390_register_info): Enable FPR save slots. Move/Copy some
2537 functionality into ...
2538 (s390_register_info_gprtofpr, s390_register_info_stdarg_fpr)
2539 (s390_register_info_stdarg_gpr, s390_optimize_register_info): New
2540 function.
2541 (s390_frame_info): Do gpr slot allocation here now. stdarg does
2542 not imply a stack frame.
2543 (s390_init_frame_layout): Remove variable clobbered_regs.
2544 (s390_update_register_info): Remove function.
2545 (s390_hard_regno_rename_ok): Call-saved regs without a save slot
2546 cannot be used for register renaming.
2547 (s390_hard_regno_scratch_ok): New function.
2548 (TARGET_HARD_REGNO_SCRATCH_OK): Define target hook.
2549 (s390_initial_elimination_offset): Change offset calculation of
2550 the return address pointer.
adcfd489 2551 (save_gprs): Deal with only r6 being saved from the call-saved regs.
6455a49e 2552 (restore_gprs): Set frame related flag.
adcfd489 2553 (s390_save_gprs_to_fprs, s390_restore_gprs_from_fprs): New functions.
6455a49e
AK
2554 (s390_emit_prologue): Call s390_register_info instead of
2555 s390_update_frame_layout. Call s390_save_gprs_to_fprs.
2556 (s390_emit_epilogue): Call s390_restore_gprs_from_fprs.
2557 (s390_optimize_prologue): Call s390_optimize_register_info.
2558 Try to remove also FPR slot save/restore INSNs. Remove frame
2559 related flags from restore INSNs.
2560
59d96342
DD
25612013-10-08 DJ Delorie <dj@redhat.com>
2562
0dc7adad
DD
2563 * config/rl78/rl78-expand.md (movqi): use operands[] not operandN.
2564 (movhi): Likewise.
2565
59d96342
DD
2566 * config/rl78/rl78.c (rl78_print_operand_1): Change %c to %C to
2567 avoid conflict with the MI use of %c.
2568 * config/rl78/rl78-real.md: change %c to %C throughout.
2569 * config/rl78/rl78-virt.md: Likewise.
2570
a81169d8
JH
25712013-10-08 Jan Hubicka <jh@suse.cz>
2572
2573 * config/i386/i386.c (ix86_option_override_internal): Switch
2574 to SSE math for -ffast-math when target ISA supports SSE2.
2575
481d1b81
AM
25762013-10-08 Andrew MacLeod <amacleod@redhat.com>
2577
2578 * tree-flow.h: Remove some prototypes.
2579 * tree.h: Remove some protypes, add a couple.
2580 * tree.c (using_eh_for_cleanups_flag, using_eh_for_cleanups,
2581 using_eh_for_cleanups_p): Add interface routines for front ends.
2582 * tree-eh.h: New file. Add protoptyes.
2583 * tree-eh.c (using_eh_for_cleanups_p, using_eh_for_cleanups): Delete.
2584 (add_stmt_to_eh_lp_fn): Make static.
2585 (lower_try_finally): Use new using_eh_for_cleanups_p.
2586 * emit-rtl.c: Include tree-eh.h.
2587 * gimple.h: Include tree-eh.h.
2588
0e6a0e48
MG
25892013-10-08 Marc Glisse <marc.glisse@inria.fr>
2590
2591 PR tree-optimization/58480
2592 * tree-vrp.c (infer_nonnull_range): New function.
2593 (infer_value_range): Call infer_nonnull_range.
2594
ef6179d1
DC
25952013-10-08 Dehao Chen <dehao@google.com>
2596
2597 PR tree-optimization/58619
2598 * tree-inline.c (copy_phis_for_bb): Combine location data
2599 only if non-null.
2600
07d964d5
ZC
26012013-10-08 Zhenqiang Chen <zhenqiang.chen@linaro.org>
2602
2603 PR target/58423
2604 * config/arm/arm.c (arm_emit_ldrd_pop): Attach
2605 RTX_FRAME_RELATED_P on INSN.
2606
19e9b2a3
BS
26072013-10-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2608
2609 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const_le): New.
2610 (altivec_expand_vec_perm_const): Call it.
2611
0cf68694
BS
26122013-10-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2613
2614 * config/rs6000/vector.md (mov<mode>): Emit permuted move
2615 sequences for LE VSX loads and stores at expand time.
2616 * config/rs6000/rs6000-protos.h (rs6000_emit_le_vsx_move): New
2617 prototype.
2618 * config/rs6000/rs6000.c (rs6000_const_vec): New.
2619 (rs6000_gen_le_vsx_permute): New.
2620 (rs6000_gen_le_vsx_load): New.
2621 (rs6000_gen_le_vsx_store): New.
2622 (rs6000_gen_le_vsx_move): New.
2623 * config/rs6000/vsx.md (*vsx_le_perm_load_v2di): New.
2624 (*vsx_le_perm_load_v4si): New.
2625 (*vsx_le_perm_load_v8hi): New.
2626 (*vsx_le_perm_load_v16qi): New.
2627 (*vsx_le_perm_store_v2di): New.
2628 (*vsx_le_perm_store_v4si): New.
2629 (*vsx_le_perm_store_v8hi): New.
2630 (*vsx_le_perm_store_v16qi): New.
2631 (*vsx_xxpermdi2_le_<mode>): New.
2632 (*vsx_xxpermdi4_le_<mode>): New.
2633 (*vsx_xxpermdi8_le_V8HI): New.
2634 (*vsx_xxpermdi16_le_V16QI): New.
2635 (*vsx_lxvd2x2_le_<mode>): New.
2636 (*vsx_lxvd2x4_le_<mode>): New.
2637 (*vsx_lxvd2x8_le_V8HI): New.
2638 (*vsx_lxvd2x16_le_V16QI): New.
2639 (*vsx_stxvd2x2_le_<mode>): New.
2640 (*vsx_stxvd2x4_le_<mode>): New.
2641 (*vsx_stxvd2x8_le_V8HI): New.
2642 (*vsx_stxvd2x16_le_V16QI): New.
2643
9520e1eb
RL
26442013-10-07 Renlin Li <Renlin.Li@arm.com>
2645
2646 * config/arm/arm-cores.def (cortex-a53): Use cortex tuning.
2647
36c0bd4f
AK
26482013-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2649
2650 * config/s390/s390.c (s390_register_info): Make the call-saved FPR
2651 loop to work also for 31bit ABI.
2652 Save the stack pointer for frame_size > 0.
2653
ee163e72
AK
26542013-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2655
2656 * config/s390/s390.md ("tbegin", "tbegin_nofloat", "tbegin_retry")
2657 ("tbegin_retry_nofloat", "tend", "tabort", "tx_assist"): Remove
2658 constraint letters from expanders.
2659 ("tbegin_retry", "tbegin_retry_nofloat"): Change predicate of the
2660 retry count to general_operand.
2661 ("tabort"): Give operand 0 a mode.
2662 ("tabort_1"): Add mode and constraint letter for operand 0.
2663 * doc/extend.texi: Fix protoype of __builtin_non_tx_store.
2664
45d99234
JL
26652013-10-04 Jeff Law <law@redhat.com>
2666
2667 * tree-ssa-threadedge.c: Fix some trailing whitespace problems.
2668
adcfd489
UB
2669 * tree-ssa-threadedge.c (thread_through_normal_block): Broken
2670 out of ...
45d99234
JL
2671 (thread_across_edge): Here. Call it.
2672
7c327f7b
CC
26732013-10-04 Cary Coutant <ccoutant@google.com>
2674
2675 * dwarf2out.c (dw_sra_loc_expr): Release addr_table entries when
adcfd489 2676 discarding a location list expression (or a piece of one).
7c327f7b 2677
6867e128
JH
26782013-10-03 Jan Hubicka <jh@suse.cz>
2679
65efa7e7
UB
2680 * config/i386/i386.c (ix86_issue_rate): Pentium4, Nocona has issue
2681 rate of 2. Core2, Corei7 and Haswell has issue rate of 4.
3700bce3 2682 (ix86_adjust_cost): Remove Atom case; fix core2/corei7/Haswell case.
6867e128 2683
c7f36d55
JH
26842013-10-03 Jan Hubicka <jh@suse.cz>
2685
65efa7e7 2686 * config/i386/i386.c (ix86_option_override_internal): Do not enable
c7f36d55
JH
2687 accumulate-outgoing-args when producing unwind info.
2688
4f0bee4c
WM
26892013-10-03 Wei Mi <wmi@google.com>
2690
2691 * lra-constraints.c (insert_move_for_subreg): New function
2692 extracted from simplify_operand_subreg.
2693 (simplify_operand_subreg): Add reload for paradoxical subreg.
2694
111c3f39
RX
26952013-10-03 Rong Xu <xur@google.com>
2696
65efa7e7
UB
2697 * ipa-inline-analysis.c (find_foldable_builtin_expect): Find
2698 the candidate of builtin_expect such that we should fix the
2699 size/time estimation.
2700 (estimate_function_body_sizes): Do the acutally size/time fix-up
2701 for builtin_expect.
111c3f39 2702
942df739
RX
27032013-10-03 Rong Xu <xur@google.com>
2704
65efa7e7
UB
2705 * predict.c (tree_predict_by_opcode): Get the probability
2706 for builtin_expect from param builtin_expect_probability.
2707 * params.def (BUILTIN_EXPECT_PROBABILITY): New parameter.
2708 * predict.def (PRED_BUILTIN_EXPECT_RELAXED): Fix comments.
2709 * doc/invoke.texi: Add documentation for builtin-expect-probability.
942df739 2710
2284b034
MG
27112013-10-03 Marc Glisse <marc.glisse@inria.fr>
2712
2713 PR c++/19476
2714 * common.opt (fcheck-new): Moved from c.opt. Make it 'Common'.
2715 * calls.c (alloca_call_p): Use get_callee_fndecl.
2716 * fold-const.c (tree_expr_nonzero_warnv_p): Handle operator new.
2717 * tree-vrp.c (gimple_stmt_nonzero_warnv_p, stmt_interesting_for_vrp):
2718 Likewise.
2719 (vrp_visit_stmt): Remove duplicated code.
2720
0609bdf2
MM
27212013-10-03 Michael Meissner <meissner@linux.vnet.ibm.com>
2722
2723 * config/rs6000/rs6000-builtin.def (XSRDPIM): Use floatdf2,
2724 ceildf2, btruncdf2, instead of vsx_* name.
2725
2726 * config/rs6000/vsx.md (vsx_add<mode>3): Change arithmetic
2727 iterators to only do V2DF and V4SF here. Move the DF code to
2728 rs6000.md where it is combined with SF mode. Replace <VSv> with
2729 just 'v' since only vector operations are handled with these insns
2730 after moving the DF support to rs6000.md.
2731 (vsx_sub<mode>3): Likewise.
2732 (vsx_mul<mode>3): Likewise.
2733 (vsx_div<mode>3): Likewise.
2734 (vsx_fre<mode>2): Likewise.
2735 (vsx_neg<mode>2): Likewise.
2736 (vsx_abs<mode>2): Likewise.
2737 (vsx_nabs<mode>2): Likewise.
2738 (vsx_smax<mode>3): Likewise.
2739 (vsx_smin<mode>3): Likewise.
2740 (vsx_sqrt<mode>2): Likewise.
2741 (vsx_rsqrte<mode>2): Likewise.
2742 (vsx_fms<mode>4): Likewise.
2743 (vsx_nfma<mode>4): Likewise.
2744 (vsx_copysign<mode>3): Likewise.
2745 (vsx_btrunc<mode>2): Likewise.
2746 (vsx_floor<mode>2): Likewise.
2747 (vsx_ceil<mode>2): Likewise.
2748 (vsx_smaxsf3): Delete scalar ops that were moved to rs6000.md.
2749 (vsx_sminsf3): Likewise.
2750 (vsx_fmadf4): Likewise.
2751 (vsx_fmsdf4): Likewise.
2752 (vsx_nfmadf4): Likewise.
2753 (vsx_nfmsdf4): Likewise.
2754 (vsx_cmpdf_internal1): Likewise.
2755
2756 * config/rs6000/rs6000.h (TARGET_SF_SPE): Define macros to make it
2757 simpler to select whether a target has SPE or traditional floating
2758 point support in iterators.
2759 (TARGET_DF_SPE): Likewise.
2760 (TARGET_SF_FPR): Likewise.
2761 (TARGET_DF_FPR): Likewise.
2762 (TARGET_SF_INSN): Macros to say whether floating point support
2763 exists for a given operation for expanders.
2764 (TARGET_DF_INSN): Likewise.
2765
2766 * config/rs6000/rs6000.c (Ftrad): New mode attributes to allow
2767 combining of SF/DF mode operations, using both traditional and VSX
2768 registers.
2769 (Fvsx): Likewise.
2770 (Ff): Likewise.
2771 (Fv): Likewise.
2772 (Fs): Likewise.
2773 (Ffre): Likewise.
2774 (FFRE): Likewise.
2775 (abs<mode>2): Combine SF/DF modes using traditional floating point
2776 instructions. Add support for using the upper DF registers with
2777 VSX support, and SF registers with power8-vector support. Update
2778 expanders for operations supported by both the SPE and traditional
2779 floating point units.
2780 (abs<mode>2_fpr): Likewise.
2781 (nabs<mode>2): Likewise.
2782 (nabs<mode>2_fpr): Likewise.
2783 (neg<mode>2): Likewise.
2784 (neg<mode>2_fpr): Likewise.
2785 (add<mode>3): Likewise.
2786 (add<mode>3_fpr): Likewise.
2787 (sub<mode>3): Likewise.
2788 (sub<mode>3_fpr): Likewise.
2789 (mul<mode>3): Likewise.
2790 (mul<mode>3_fpr): Likewise.
2791 (div<mode>3): Likewise.
2792 (div<mode>3_fpr): Likewise.
2793 (sqrt<mode>3): Likewise.
2794 (sqrt<mode>3_fpr): Likewise.
2795 (fre<Fs>): Likewise.
2796 (rsqrt<mode>2): Likewise.
2797 (cmp<mode>_fpr): Likewise.
2798 (smax<mode>3): Likewise.
2799 (smin<mode>3): Likewise.
2800 (smax<mode>3_vsx): Likewise.
2801 (smin<mode>3_vsx): Likewise.
2802 (negsf2): Delete SF operations that are merged with DF.
2803 (abssf2): Likewise.
2804 (addsf3): Likewise.
2805 (subsf3): Likewise.
2806 (mulsf3): Likewise.
2807 (divsf3): Likewise.
2808 (fres): Likewise.
2809 (fmasf4_fpr): Likewise.
2810 (fmssf4_fpr): Likewise.
2811 (nfmasf4_fpr): Likewise.
2812 (nfmssf4_fpr): Likewise.
2813 (sqrtsf2): Likewise.
2814 (rsqrtsf_internal1): Likewise.
2815 (smaxsf3): Likewise.
2816 (sminsf3): Likewise.
2817 (cmpsf_internal1): Likewise.
2818 (copysign<mode>3_fcpsgn): Add VSX/power8-vector support.
2819 (negdf2): Delete DF operations that are merged with SF.
2820 (absdf2): Likewise.
2821 (nabsdf2): Likewise.
2822 (adddf3): Likewise.
2823 (subdf3): Likewise.
2824 (muldf3): Likewise.
2825 (divdf3): Likewise.
2826 (fred): Likewise.
2827 (rsqrtdf_internal1): Likewise.
2828 (fmadf4_fpr): Likewise.
2829 (fmsdf4_fpr): Likewise.
2830 (nfmadf4_fpr): Likewise.
2831 (nfmsdf4_fpr): Likewise.
2832 (sqrtdf2): Likewise.
2833 (smaxdf3): Likewise.
2834 (smindf3): Likewise.
2835 (cmpdf_internal1): Likewise.
2836 (lrint<mode>di2): Use TARGET_<MODE>_FPR macro.
2837 (btrunc<mode>2): Delete separate expander, and combine with the
2838 insn and add VSX instruction support. Use TARGET_<MODE>_FPR.
2839 (btrunc<mode>2_fpr): Likewise.
2840 (ceil<mode>2): Likewise.
2841 (ceil<mode>2_fpr): Likewise.
2842 (floor<mode>2): Likewise.
2843 (floor<mode>2_fpr): Likewise.
2844 (fma<mode>4_fpr): Combine SF and DF fused multiply/add support.
2845 Add support for using the upper registers with VSX and
2846 power8-vector. Move insns to be closer to the define_expands. On
2847 VSX systems, prefer the traditional form of FMA over the VSX
2848 version, since the traditional form allows the target not to
2849 overlap with the inputs.
2850 (fms<mode>4_fpr): Likewise.
2851 (nfma<mode>4_fpr): Likewise.
2852 (nfms<mode>4_fpr): Likewise.
2853
5bea0c6c 28542013-10-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
65efa7e7 2855 Richard Earnshaw <richard.earnshaw@arm.com>
5bea0c6c
KT
2856
2857 * config/arm/aarch-common-protos.h (struct alu_cost_table): New.
2858 (struct mult_cost_table): Likewise.
2859 (struct mem_cost_table): Likewise.
2860 (struct fp_cost_table): Likewise.
2861 (struct vector_cost_table): Likewise.
2862 (cpu_cost_table): Likewise.
2863 * config/arm/arm.opt (mold-rts-costs): New option.
2864 (mnew-generic-costs): Likewise.
2865 * config/arm/arm.c (generic_extra_costs): New table.
2866 (cortexa15_extra_costs): Likewise.
2867 (arm_slowmul_tune): Use NULL as new costs.
2868 (arm_fastmul_tune): Likewise.
2869 (arm_strongarm_tune): Likewise.
2870 (arm_xscale_tune): Likewise.
2871 (arm_9e_tune): Likewise.
2872 (arm_v6t2_tune): Likewise.
2873 (arm_cortex_a5_tune): Likewise.
2874 (arm_cortex_a9_tune): Likewise.
2875 (arm_v6m_tune): Likewise.
2876 (arm_fa726te_tune): Likewise.
2877 (arm_cortex_a15_tune): Use cortex15_extra_costs.
2878 (arm_cortex_tune): Use generict_extra_costs.
2879 (shifter_op_p): New function.
2880 (arm_unspec_cost): Likewise.
2881 (LIBCALL_COST): Define.
2882 (arm_new_rtx_costs): New function.
2883 (arm_rtx_costs): Use arm_new_rtx_costs when core-specific
2884 table is available. Use old costs otherwise unless mnew-generic-costs
2885 is specified.
2886 * config/arm/arm-protos.h (tune_params): Add insn_extra_cost field.
2887 (cpu_cost_table): Declare.
2888
24c56925
MS
28892013-10-03 Marcus Shawcroft <marcus.shawcroft@arm.com>
2890
2891 PR target/58460
2892 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>)
2893 (*subs_mul_imm_<mode>)
2894 (*add_<shift>_<mode>, *add_<shift>_si_uxtw,*add_mul_imm_<mode>)
2895 (*sub_<shift>_<mode>)
2896 (*sub_<shift>_si_uxtw,*sub_mul_imm_<mode>, *sub_mul_imm_si_uxtw):
2897 Remove k constraint.
2898
2ab8f063
IB
28992013-10-03 Ian Bolton <ian.bolton@arm.com>
2900
2901 * config/aarch64/aarch64.c (aarch64_secondary_reload): Remove legacy
2902 code.
2903 * config/aarch64/aarch64.md (reload_sp_immediate): Likewise.
2904
79221839
TJ
29052013-10-02 Teresa Johnson <tejohnson@google.com>
2906
2907 * predict.c (probably_never_executed): New function.
2908 (probably_never_executed_bb_p): Invoke probably_never_executed.
2909 (probably_never_executed_edge_p): Ditto.
2910 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
2911 Treat profile insanities conservatively.
2912
d441afe0
JDA
29132013-10-02 John David Anglin <danglin@gcc.gnu.org>
2914
2915 * config.gcc (hppa*64*-*-linux*): Don't add pa/t-linux to tmake_file.
2916
80f466c4
VM
29172013-10-02 Vladimir Makarov <vmakarov@redhat.com>
2918
2919 * lra-constraints.c (process_alt_operand): Calculate scratch_p and
2920 use it. Use smaller increase for scratch. Don't increase reject
2921 for early clobber scratch.
2922 * lra-eliminations.c (eliminate_regs_in_insn): Remove all insns
2923 setting eliminated regs except setting fp from hfp.
2924 (lra_eliminate): Check lra_insn_recog_data on NULL.
2925
6e228b4b
MM
29262013-10-02 Michael Meissner <meissner@linux.vnet.ibm.com>
2927
2928 PR target/58587
2929 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Turn off
65efa7e7 2930 setting -mvsx-timode by default until the underlying problem is fixed.
6e228b4b
MM
2931 (RS6000_CPU, power7 defaults): Likewise.
2932
11b54a5a
UB
29332013-10-02 Uros Bizjak <ubizjak@gmail.com>
2934
2935 * config/x-linux (host-linux.o): Remove header dependencies.
2936 Use $(COMPILE) and $(POSTCOMPILE).
2937 * config/t-linux-android (linux-android.o): Ditto.
2938
bbc02b69
UB
29392013-10-02 Uros Bizjak <ubizjak@gmail.com>
2940
2941 * Makefile.in (expmed.o-warn): Remove.
2942
440917de
AM
29432013-10-02 Andrew MacLeod <amacleod@redhat.com>
2944
2945 * graphite-scop-detection.c: Include tree-ssa-propagate,h.
2946 * graphite-sese-to-poly.c: Include tree-ssa-propagate.h.
2947
99206ca9
TJ
29482013-10-02 Teresa Johnson <tejohnson@google.com>
2949
2950 * dojump.c (do_jump_1): Divide probability between
2951 both conditions of a TRUTH_ANDIF_EXPR/TRUTH_ORIF_EXPR.
2952
56e82b14
TT
29532013-10-02 Tom Tromey <tromey@redhat.com>
2954
2955 * Makefile.in (DRIVER_DEFINES): Use $(if), not $(and).
2956
3d9c733e
AM
29572013-10-02 Andrew MacLeod <amacleod@redhat.com>
2958
2959 * tree-flow.h: Remove some prototypes.
2960 * tree-ssa-dce.c (mark_virtual_operand_for_renaming,
2961 mark_virtual_phi_result_for_renaming): Move to tree-into-ssa.c.
2962 * tree-into-ssa.c (mark_virtual_operand_for_renaming,
2963 mark_virtual_phi_result_for_renaming): Relocate here.
2964 * tree-into-ssa.h: Add prototypes.
bbc02b69 2965 * tree-ssa-phiopt.c: (tree_ssa_phiopt_worker) Use
3d9c733e
AM
2966 single_pred_before_succ_order.
2967 (blocks_in_phiopt_order): Rename and move to cfganal.c.
2968 (nonfreeing_call_p) Move to gimple.c.
2969 * cfganal.c (single_pred_before_succ_order): Move and renamed from
2970 tree-ssa-phiopt.c.
2971 * basic-block.h (single_pred_before_succ_order): Add prototype.
2972 * gimple.c (nonfreeing_call_p): Relocate here.
2973 * gimple.h: Add prototype.
2974 * tree-ssa-ifcombine.c: Include tree-ssa-phiopt.h.
2975 * tree-ssa-dom.h: New file. Relocate prototypes here.
2976 * tree-ssa.h: Include tree-ssa-dom.h.
2977
78cedfb1
UB
29782013-10-02 Uros Bizjak <ubizjak@gmail.com>
2979
2980 * config/i386/x-i386 (driver-i386.o): Remove header dependencies.
2981 Use $(COMPILE) and $(POSTCOMPILE).
2982
2983 * config/alpha/x-alpha (driver-alpha.o): Ditto.
2984
744730a4
AM
29852013-10-02 Andrew MacLeod <amacleod@redhat.com>
2986
2987 * tree-flow.h: Remove some prototypes.
2988 * gimple-fold.h: Add prototypes from gimple.h and tree-flow.h.
2989 * tree-ssa-propagate.h: Relocate prototypes from tree-flow.h.
2990 * tree-ssa-copy.c (may_propagate*, propagate_value, replace_exp,
2991 propagate_tree_value*): Move from here to...
2992 * tree-ssa-propagate.c (may_propagate*, propagate_value, replace_exp,
2993 propagate_tree_value*): Relocate here.
2994 * tree-ssa-propagate.h: Relocate prototypes from tree-flow.h.
2995 * gimple.h: Include gimple-fold.h, move prototypes into gimple-fold.h.
2996 * gimple-fold.c: Remove gimple-fold.h from include list.
2997 * tree-vrp.c: Remove gimple-fold.h from include list.
2998 * tree-ssa-sccvn.c: Remove gimple-fold.h from include list.
2999 * tree-ssa-ccp.c: Remove gimple-fold.h from include list.
3000 * tree-scalar-evolution.c: Add tree-ssa-propagate.h to include list.
3001 * tree-ssa-pre.c: Add tree-ssa-propagate.h to include list.
3002 * sese.c: Add tree-ssa-propagate.h to include list.
3003
826a536d
RB
30042013-10-02 Richard Biener <rguenther@suse.de>
3005
3006 * tree-loop-distribution.c: Include tree-vectorizer.h for
3007 find_loop_location.
3008 (enum partition_kind): Remove PKIND_REDUCTION.
78cedfb1 3009 (struct partition_s): Remove has_writes member, add reduction_p member.
826a536d
RB
3010 (partition_alloc): Adjust.
3011 (partition_builtin_p): Likewise.
3012 (partition_has_writes): Remove.
3013 (partition_reduction_p): New function.
3014 (partition_merge_into): Likewise.
3015 (generate_code_for_partition): Commonize builtin partition
3016 handling tail.
3017 (rdg_cannot_recompute_vertex_p): Remove.
3018 (already_processed_vertex_p): Likewise.
3019 (rdg_flag_vertex): Do not set has_writes.
3020 (classify_partition): Adjust.
3021 (rdg_build_partitions): Do not set has_writes, treat all
3022 partitions as useful.
78cedfb1 3023 (distribute_loop): Record number of library calls generated. Adjust.
826a536d
RB
3024 (tree_loop_distribution): Report number of loops and library
3025 calls generated as opt-info.
3026
4b403ece
AM
30272013-10-02 Andrew MacLeod <amacleod@redhat.com>
3028
3029 * tree-flow.h: Include new .h files. Move prototypes.
3030 * tree-cfgcleanup.h: New file. Add prototypes from tree-flow.h.
3031 * tree-dfa.h: New File. Add prototypes from tree-flow.h.
3032 (get_addr_base_and_unit_offset_1) Move from tree-flow-inline.h.
3033 * tree-pretty-print.h: Add prototypes from tree-flow.h.
3034 * tree-into-ssa.h: New File. Add prototypes from tree-flow.h.
3035 ({debug|dump}*): Move debugging prototypes out of tree-into-ssa.c.
3036 * tree-into-ssa.c ({debug|dump}*): Move prototypes to header file.
3037 * tree.h (get_ref_base_and_extent): Move prototype out.
78cedfb1 3038 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Move to
4b403ece
AM
3039 tree-dfa.h.
3040 * gimple-low.h: New File. Add prototypes from tree-flow.h.
3041 * gimple-low.c (try_catch_may_fallthru, block_may_fallthru): Move to...
3042 * tree.c (try_catch_may_fallthru, block_may_fallthru): Here.
3043 * tree-scalar-evolution.c: Include tree.h.
3044 * sese.c: Include tree.h.
3045 * dumpfile.c: Move gimple-pretty-print.h include after tree.h.
3046 * dwarf2out.c: Include tree-dfa.h.
3047 * tree-chrec.c: Include tree.h.
3048 * tree-data-ref.c: Include tree.h.
3049
1d2151c6
YZ
30502013-10-02 Yufeng Zhang <yufeng.zhang@arm.com>
3051
3052 * gimple-ssa-strength-reduction.c (backtrace_base_for_ref):
3053 Fix whitespace.
3054
441ad147
RO
30552013-10-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3056
3057 * config/t-sol2 (sol2-c.o): Remove header dependencies.
3058 Use $(COMPILE) and $(POSTCOMPILE).
3059 (sol2-cxx.o): Likewise.
3060 (sol2-stubs.o): Likewise.
3061 (sol2.o): Likewise.
3062 * config/x-solaris (host-solaris.o): Likewise.
3063
3064 * config/sparc/t-sparc (sparc.o): Remove.
3065 (sparc-c.o): Remove header dependencies.
3066 Use $(COMPILE) and $(POSTCOMPILE).
3067 * config/sparc/x-sparc: Likewise.
3068
2deaf8b0
JR
30692013-10-02 Joern Rennecke <joern.rennecke@embecosm.com>
3070
3071 * config/arc/arc-opts.h: Add 2013 to Copyright years.
3072 * config/arc/arc700.md: Likewise.
3073 * config/arc/arc-modes.def: Likewise.
3074 * config/arc/arc-simd.h: Likewise.
3075 * config/arc/t-arc-uClibc: Likewise.
3076 * config/arc/t-arc-newlib: Likewise.
3077
f6fe771a
RL
30782013-10-02 Renlin Li <renlin.li@arm.com>
3079
78cedfb1
UB
3080 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use
3081 plus_constant.
f6fe771a
RL
3082 (aarch64_expand_epilogue): Likewise.
3083
0916f876
YZ
30842013-10-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3085 Yufeng Zhang <yufeng.zhang@arm.com>
3086
3087 * gimple-ssa-strength-reduction.c (legal_cast_p_1): Forward
3088 declaration.
3089 (backtrace_base_for_ref): Call get_unwidened with 'base_in' if
3090 'base_in' represent a conversion and legal_cast_p_1 holds; set
3091 'base_in' with the returned value from get_unwidened.
3092
ebfcd719
KT
30932013-10-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3094
3095 * config/arm/arm.c (arm_legitimize_reload_address): Explain why
3096 plus_constant is not used.
3097
157ca3e9
WM
30982013-10-01 Wei Mi <wmi@google.com>
3099
78cedfb1 3100 * config/i386/x86-tune.def (DEF_TUNE): Remove m_CORE_ALL.
157ca3e9
WM
3101 * config/i386/i386.md: Add define_peephole2 to
3102 break partial reg stall for cvtss2sd/cvtsd2ss.
3103
cd4dd8f0
JR
31042013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
3105
3106 * config/arc/arc.c (pass_arc_ifcvt::clone):
78cedfb1 3107 Update for ctxt_ -> m_ctxt change.
cd4dd8f0 3108
1465e5cf
JL
31092013-10-01 Jeff Law <law@redhat.com>
3110
3111 * tree-ssa-threadupdate.c (struct redirection_data): Delete
3112 outgoing_edge and intermediate_edge fields. Instead store the path.
3113 (redirection_data::hash): Hash on the last edge's destination index.
3114 (redirection_data::equal): Check the entire thread path.
3115 (lookup_redirectio_data): Corresponding changes.
3116 (create_edge_and_update_destination_phis): Likewise.
3117 (thread_single_edge): Likewise.
3118
25c606cb 31192013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
0ccbc132 3120 Diego Novillo <dnovillo@google.com>
25c606cb
JR
3121
3122 * config/arc/simdext.md (UNSPEC_ARC_SIMD_VLD32WH): Delete.
3123 (UNSPEC_ARC_SIMD_VLD32WL): Likewise.
3124 (vld32wh_insn, vld32wl_insn): Delete commented-out old
3125 versions of these patterns.
3126
0ccbc132
JR
3127 * doc/extend.texi (long_call/medium_call/short_call): Typo fix.
3128 (__builtin_arc_aligned): Likewise.
3129
f55d4a20
JR
3130 * config/arc/arc.md: Expand adc_0 comment stating the intended
3131 purpose and why it isn't ready.
3132 Replace commented out call_value_via_label_mixed with a
3133 plain comment about bl_s.
3134
5719867d 3135 * config/arc/arc.c (stdio.h): Don't include directly.
5719867d
JR
3136 (arc_expand_epilogue): Remove [0]: Remove fp_restored_p.
3137 Remove if (1) condition.
3138 (arc_encode_section_info): Fix comment.
3139
6462fab0
JR
31402013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
3141
3142 * config/arc/arc.c (arc_conditional_register_usage):
3143 Use ARC_FIRST_SIMD_VR_REG / ARC_LAST_SIMD_VR_REG.
3144 Also set reg_alloc_order for DMA config regs.
3145
5d5f6720
JR
31462013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
3147 Jeremy Bennett <jeremy.bennett@embecosm.com>
3148
3149 * doc/install.texi (--with-cpu): Mention ARC.
3150 (arc-*-elf32): New paragraph.
3151 (arc-linux-uclibc): Likewise.
3152 * doc/md.texi (Machine Constraints): Add ARC part.
3153 * doc/invoke.texi: (menu): Add ARC Options.
3154 (Machine Dependent Options) <ARC Options>: Add synopsis.
3155 (node ARC Options): Add.
3156 * doc/extend.texi (long_call / short_call attribute): Add ARC.
3157 (ARC Built-in Functions): New section defining
3158 generic ARC built-in functions.
3159 (ARC SIMD Built-in Functions): New section defining SIMD specific
3160 built-in functions.
3161 (Declaring Attributes of Functions): Extended
3162 description of short_call and long_call attributes for ARC and
3163 added index entries.
3164
526b7aee
SV
31652013-10-01 Saurabh Verma <saurabh.verma@codito.com>
3166 Ramana Radhakrishnan <ramana.radhakrishnan@codito.com>
3167 Joern Rennecke <joern.rennecke@embecosm.com>
3168 Muhammad Khurram Riaz <khurram.riaz@arc.com>
3169 Brendan Kehoe <brendan@zen.org>
3170 Michael Eager <eager@eagercon.com>
3171 Simon Cook <simon.cook@embecosm.com>
3172 Jeremy Bennett <jeremy.bennett@embecosm.com>
3173
3174 * config/arc, common/config/arc: New directories.
3175
53426f6c
JR
31762013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
3177 Brendan Kehoe <brendan@zen.org>
3178 Simon Cook <simon.cook@embecosm.com>
3179
3180 * config.gcc (arc*-*-elf*, arc*-*-linux-uclibc*): New configurations.
3181
1df9f5a9
AM
31822013-10-01 Andrew MacLeod <amacleod@redhat.com>
3183
3184 * tree-ssa-live.h (coalesce_ssa_name): Move Prototype to...
3185 * tree-ssa-coalesce.h: New. Move prototype to here.
3186 * tree-outof-ssa.h: Include tree-ssa-coalesce.h.
3187 * tree-ssa-coalesce.c: Include tree-outof-ssa.h.
3188 (gimple_can_coalesce_p): Move to...
3189 * gimple.c (gimple_can_coalesce_p): Here.
3190
80560f95
AM
31912013-10-01 Andrew MacLeod <amacleod@redhat.com>
3192
3193 * tree-into-ssa.c (enum need_phi_state): Relocate from tree-flow.h.
3194 (dump_decl_set): Move to gimple.c.
3195 * gimple.h: Don't include tree-ssa-operands.h.
3196 (dump_decl_set): Add prototype.
3197 (gimple_vuse_op, gimple_vdef_op, update_stmt, update_stmt_if_modified):
3198 Move to gimple-ssa.h.
3199 (phi_ssa_name_p, phi_nodes, phi_nodes_ptr, gimple_phi_arg_def,
3200 gimple_phi_arg_def_ptr, gimple_phi_arg_edge, gimple_phi_arg_location,
3201 gimple_phi_arg_location_from_edge, gimple_phi_arg_set_location,
3202 gimple_phi_arg_has_location): Relocate from tree-flow-inline.h
3203 * gimple.c (walk_stmt_load_store_ops): Use gimple_phi_arg_def rather
3204 than PHI_ARG_DEF.
3205 (dump_decl_set): Relocate here.
3206 * gimple-ssa.h: New file.
3207 (gimple_vuse_op, gimple_vdef_op, update_stmt, update_stmt_if_modified):
3208 Relocate from gimple.h.
3209 * tree-cfg.c (has_zero_uses_1, single_imm_use_1): Move to...
3210 * tree-ssa-operands.c (swap_ssa_operands): Rename from
3211 swap_tree_operands and remove non-ssa path.
3212 (has_zero_uses_1, single_imm_use_1): Relocate from tree-cfg.c.
3213 * tree-ssa-reassoc.c (linearize_expr_tree, repropagate_negates): Use
3214 swap_ssa_operands.
3215 * tree-vect-loop.c (destroy_loop_vec_info, vect_is_slp_reduction,
3216 vect_is_simple_reduction_1): Use swap_ssa_operands.
3217 * tree-flow.h: Move various prototypes to tree-phinodes.h.
3218 (enum need_phi_state): Move to tree-into-ssa.c.
3219 (struct immediate_use_iterator_d, FOR_EACH_IMM_*,
3220 BREAK_FROM_IMM_USE_STMT): Move to ssa-iterators.h.
3221 (swap_tree_operands): Rename and move prototype to tree-ssa-operands.h.
3222 * tree-flow-inline.h (delink_imm_use, link_imm_use_to_list,
3223 link_imm_use, set_ssa_use_from_ptr, link_imm_use_stmt, relink_imm_use,
3224 relink_imm_use_stmt, end_readonly_imm_use_p, first_readonly_imm_use,
3225 next_readonly_imm_use, has_zero_uses, has_single_use, single_imm_use,
3226 num_imm_uses): Move to ssa-iterators.h.
3227 (get_use_from_ptr, get_def_from_ptr): Move to tree-ssa-operands.h
7ab4168e 3228 (gimple_phi_arg_imm_use_ptr, phi_arg_index_from_use): Move to
80560f95
AM
3229 tree-phinodes.h.
3230 (op_iter_done, op_iter_next_def, op_iter_next_tree,
3231 clear_and_done_ssa_iter, op_iter_init, op_iter_init_use,
3232 op_iter_init_def, op_iter_init_tree, single_ssa_tree_operand,
3233 single_ssa_use_operand, single_ssa_def_operand, zero_ssa_operands,
3234 num_ssa_operands, delink_stmt_imm_use, single_phi_def,
3235 op_iter_init_phiuse, op_iter_init_phidef, end_imm_use_stmt_p,
3236 end_imm_use_stmt_traverse, move_use_after_head, link_use_stmts_after,
3237 first_imm_use_stmt, next_imm_use_stmt, first_imm_use_on_stmt,
3238 end_imm_use_on_stmt_p, next_imm_use_on_stmt): Move to ssa-iterators.h.
3239 (gimple_phi_arg_def, gimple_phi_arg_def_ptr, gimple_phi_arg_edge,
3240 gimple_phi_arg_location, gimple_phi_arg_location_from_edge,
3241 gimple_phi_arg_set_location, gimple_phi_arg_has_location, phi_nodes,
3242 phi_nodes_ptr, phi_ssa_name_p): Move to gimple.h.
3243 (set_phi_nodes): Move to tree-phinodes.h.
3244 * tree-ssa-operands.h (enum ssa_op_iter_type,
3245 struct ssa_operand_iterator_d, SSA_OP*, FOR_EACH_SSA*, SINGLE_SSA*,
3246 ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS): Move to ssa-iterators.h.
3247 (dump_decl_set): Remove prototype.
3248 (get_use_from_ptr, get_def_from_ptr): Relocate from tree-flow.h.
3249 * tree-phinodes.h: New file. Move some prototypes from tree-flow.h.
3250 (set_phi_nodes): Relocate from tree-flow-inline.h.
3251 (gimple_phi_arg_imm_use_ptr, phi_arg_index_from_use): Relocate from
3252 tree-flow-inline.h
3253 * tree-ssa.h: Add tree-phinodes.h, gimple-ssa.h, ssa-iterators.h to
3254 include list. Temporarily add gimple.h to include list.
3255 * ssa-iterators.h: New file.
3256 (struct immediate_use_iterator_d, FOR_EACH_IMM_*,
3257 BREAK_FROM_IMM_USE_STMT): Relocate from tree-flow.h.
3258 (enum ssa_op_iter_type, struct ssa_operand_iterator_d, SSA_OP*,
3259 FOR_EACH_SSA*, SINGLE_SSA*, ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS):
3260 Relocate from tree-ssa-operands.h.
3261 (delink_imm_use, link_imm_use_to_list, link_imm_use,
3262 set_ssa_use_from_ptr, link_imm_use_stmt, relink_imm_use,
3263 relink_imm_use_stmt, end_readonly_imm_use_p, first_readonly_imm_use,
3264 next_readonly_imm_use, has_zero_uses, has_single_use, single_imm_use,
3265 num_imm_uses, get_use_from_ptr, get_def_from_ptr,
3266 phi_arg_index_from_use, op_iter_done, op_iter_next_def,
3267 op_iter_next_tree, clear_and_done_ssa_iter, op_iter_init,
3268 op_iter_init_use, op_iter_init_def, op_iter_init_tree,
3269 single_ssa_tree_operand, single_ssa_use_operand, single_ssa_def_operand,
3270 zero_ssa_operands, num_ssa_operands, delink_stmt_imm_use,
3271 single_phi_def, op_iter_init_phiuse, op_iter_init_phidef,
3272 end_imm_use_stmt_p, end_imm_use_stmt_traverse, move_use_after_head,
3273 link_use_stmts_after, first_imm_use_stmt, next_imm_use_stmt,
3274 first_imm_use_on_stmt, end_imm_use_on_stmt_p, next_imm_use_on_stmt):
3275 Relocate from tree-flow-inline.h.
3276 * tree-outof-ssa.h: Change _SSAEXPAND_H macro to GCC_TREE_OUTOF_SSA_H.
3277
8da00d65
VP
32782013-10-01 Vidya Praveen <vidyapraveen@arm.com>
3279
3280 * aarch64-simd.md
3281 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l2<mode>_internal): Rename to ...
3282 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_hi_internal): ... this;
3283 Insert '\t' to output template.
3284 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_lo_internal): New.
3285 (aarch64_saddl2<mode>, aarch64_uaddl2<mode>): Modify to call
3286 gen_aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_hi_internal() instead.
3287 (aarch64_ssubl2<mode>, aarch64_usubl2<mode>): Ditto.
3288
e2ebe1c2
UB
32892013-10-01 Uros Bizjak <ubizjak@gmail.com>
3290
3291 * doc/install.texi (Host/target specific installation notes for GCC):
3292 Put @anchor before @heading.
3293 * doc/gcc.texi (titlepage): Use @uref and http:// prefix for website.
3294 Use @email for email addresses.
3295
aee2d611
JL
32962013-10-01 Jeff Law <law@redhat.com>
3297
3298 * tree-ssa-threadedge.c (thread_across_edge): Make path a pointer to
3299 a vec. Only delete the path if we create one without successfully
3300 registering a jump thread.
3301 * tree-ssa-threadupdate.h (register_jump_thread): Pass in path vector
3302 as a pointer.
3303 * tree-ssa-threadupdate.c (threaded_edges): Remove. No longer used
3304 (paths): New vector of jump threading paths.
3305 (THREAD_TARGET, THREAD_TARGET2): Remove accessor macros.
3306 (THREAD_PATH): New accessor macro for the entire thread path.
3307 (lookup_redirection_data): Get intermediate and final outgoing edge
3308 from the thread path.
3309 (create_edge_and_update_destination_phis): Copy the threading path.
3310 (ssa_fix_duplicate_block_edges): Get edges and block types from the
3311 jump threading path.
3312 (ssa_redirect_edges): Get edges and block types from the jump threading
3313 path. Free the path vector.
3314 (thread_block): Get edges from the jump threading path. Look at the
3315 entire path to see if we thread to a loop exit. If we cancel a jump
3316 thread request, then free the path vector.
3317 (thread_single_edge): Get edges and block types from the jump threading
3318 path. Free the path vector.
3319 (thread_through_loop_header): Get edges and block types from the jump
3320 threading path. Free the path vector.
3321 (mark_threaded_blocks): Iterate over the vector of paths and store
3322 the path on the appropriate edge. Get edges and block types from the
3323 jump threading path.
3324 (mark_threaded_blocks): Get edges and block types from the jump
3325 threading path. Free the path vector.
3326 (thread_through_all_blocks): Use the vector of paths rather than
3327 a vector of 3-edge sets.
3328 (register_jump_thread): Accept pointer to a path vector rather
3329 than the path vector itself. Store the path vector for later use.
3330 Simplify.
3331
966f97ac 33322013-10-01 Jakub Jelinek <jakub@redhat.com>
8da00d65 3333 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
966f97ac
JJ
3334
3335 PR target/58574
3336 * config/s390/s390.c (s390_split_branches): Modify check for table
3337 jump insns.
3338 (s390_chunkify_start): Rearrange table jump insn check in order to
3339 deal with compare and branch insns correctly.
3340
3a323a38
KV
33412013-10-01 Kugan Vivekanandarajah <kuganv@linaro.org>
3342
3343 PR target/58578
3344 Revert
3345 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
3346 * config/arm/arm.md (arm_ashldi3_1bit): define_insn into
3347 define_insn_and_split.
3348 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
3349 (shiftsi3_compare): New pattern.
3350 (rrx): New pattern.
3351 * config/arm/unspecs.md (UNSPEC_RRX): New.
3352
90444831
AM
33532013-10-01 Alan Modra <amodra@gmail.com>
3354
3355 * stmt.c (expand_asm_operands): Revert part of 2013-09-24 special
3356 casing inout operands.
3357
818625cf
RB
33582013-10-01 Richard Biener <rguenther@suse.de>
3359
3360 PR tree-optimization/58553
3361 * tree-loop-distribution.c (struct partition_s): Add niter member.
3362 (classify_partition): Populate niter member for the partition
3363 and properly identify whether the relevant store happens before
3364 or after the loop exit.
3365 (generate_memset_builtin): Use niter member from the partition.
3366 (generate_memcpy_builtin): Likewise.
3367
30f641cd
RS
33682013-09-30 Richard Sandiford <rdsandiford@googlemail.com>
3369
3370 * vec.h (vec_prefix, vec): Prefix member names with "m_".
3371 * vec.c (vec_prefix::calculate_allocation): Update accordingly.
3372
65d3284b
RS
33732013-09-30 Richard Sandiford <rdsandiford@googlemail.com>
3374
3375 * basic-block.h (edge_list): Prefix member names with "m_".
3376 * context.h (context): Likewise.
3377 * domwalk.h (dom_walker): Likewise.
3378 * gengtype-state.c (s_expr_writer, state_writer): Likewise.
3379 * graphite-sese-to-poly.c (sese_dom_walker): Likewise.
3380 * hash-table.h (hash_table): Likewise.
3381 * machmode.h (bit_field_mode_iterator): Likewise.
3382 * pass_manager.h (pass_list): Likewise.
3383 * tree-into-ssa.c (mark_def_dom_walker): Likewise.
3384 * tree-pass.h (pass_data): Likewise.
3385 * tree-ssa-dom.c (dom_opt_dom_walker): Likewise.
3386 * tree-ssa-phiopt.c (nontrapping_dom_walker): Likewise,
3387 * tree-ssa-uncprop.c (uncprop_dom_walker): Likewise.
3388 * asan.c (pass_data_asan): Update accordingly.
3389 * cfganal.c (control_dependences::find_control_dependence): Likewise.
3390 (control_dependences::control_dependences): Likewise.
3391 (control_dependences::~control_dependences): Likewise.
3392 (control_dependences::~control_dependences): Likewise.
3393 (control_dependences::get_edges_dependent_on): Likewise.
3394 * cgraphbuild.c (pass_data_rebuild_cgraph_edges::clone): Likewise.
3395 (pass_data_remove_cgraph_callee_edges::clone): Likewise.
3396 * context.c (gcc::context::context): Likewise.
3397 * cprop.c (pass_rtl_cprop::clone): Likewise.
3398 * domwalk.c (dom_walker::walk): Likewise.
3399 * ipa-inline-analysis.c (pass_inline_parameters::clone): Likewise.
3400 * ipa-pure-const.c (pass_local_pure_const::clone): Likewise.
3401 * mode-switching.c (pass_mode_switching::clone): Likewise.
3402 * passes.c (opt_pass::opt_pass): Likewise.
3403 (pass_manager::pass_manager): Likewise.
3404 * predict.c (pass_strip_predict_hints::clone): Likewise.
3405 * recog.c (pass_data pass_data_peephole2::clone): Likewise.
3406 (pass_split_all_insns::clone): Likewise.
3407 * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator):
3408 Likewise.
3409 (bit_field_mode_iterator::next_mode): Likewise.
3410 (bit_field_mode_iterator::prefer_smaller_modes): Likewise.
3411 * tree-cfg.c (pass_split_crit_edges::clone): Likewise.
3412 * tree-cfgcleanup.c (pass_merge_phi::clone): Likewise.
3413 * tree-complex.c (pass_lower_complex::clone): Likewise.
3414 * tree-eh.c (pass_cleanup_eh::clone): Likewise.
3415 * tree-object-size.c (pass_object_sizes::clone): Likewise.
3416 * tree-optimize.c (pass_fixup_cfg::clone): Likewise.
3417 * tree-ssa-ccp.c (pass_data_ccp::clone): Likewise.
3418 (pass_fold_builtins::clone): Likewise.
3419 * tree-ssa-copy.c (pass_data_copy_prop::clone): Likewise.
3420 * tree-ssa-copyrename.c (pass_rename_ssa_copies::clone): Likewise.
3421 * tree-ssa-dce.c (pass_dce::clone, pass_dce_loop::clone): Likewise.
3422 (pass_cd_dce::clone): Likewise.
3423 * tree-ssa-dom.c (pass_dominator::clone): Likewise.
3424 (pass_phi_only_cprop::clone): Likewise.
3425 * tree-ssa-dse.c (pass_dse::clone): Likewise.
3426 * tree-ssa-forwprop.c (pass_forwprop::clone): Likewise.
3427 * tree-ssa-loop.c (pass_lim::clone): Likewise.
3428 * tree-ssa-phiopt.c (pass_phiopt::clone): Likewise.
3429 * tree-ssa-pre.c (pass_fre::clone): Likewise.
3430 * tree-ssa-reassoc.c (pass_reassoc::clone): Likewise.
3431 * tree-ssa-uninit.c (pass_late_warn_uninitialized::clone): Likewise.
3432 * tree-tailcall.c (pass_tail_recursion::clone): Likewise.
3433 * tree-vect-generic.c (pass_lower_vector_ssa::clone): Likewise.
3434 * tree-vrp.c (pass_vrp::clone): Likewise.
3435 * tsan.c (pass_tsan::clone): Likewise.
3436
f66d0891
JJ
34372013-09-30 Jakub Jelinek <jakub@redhat.com>
3438
d2a365a8
JJ
3439 PR middle-end/58564
3440 * fold-const.c (tree_unary_nonnegative_warnv_p): Use
3441 INTEGRAL_TYPE_P (t) instead of TREE_CODE (t) == INTEGER_TYPE.
3442
f66d0891
JJ
3443 PR middle-end/58564
3444 * fold-const.c (fold_ternary_loc): For A < 0 : <sign bit of A> : 0
3445 optimization, punt if sign_bit_p looked through any zero extension.
3446
05357ac3
TJ
34472013-09-30 Teresa Johnson <tejohnson@google.com>
3448
3449 * tree-ssa-threadupdate.c (ssa_fix_duplicate_block_edges):
3450 Update redirected out edge count in joiner case.
3451 (ssa_redirect_edges): Common the joiner and non-joiner cases
3452 so that joiner case gets profile updates.
3453
ca406576
RB
34542013-09-30 Richard Biener <rguenther@suse.de>
3455
3456 PR tree-optimization/58554
e2ebe1c2
UB
3457 * tree-loop-distribution.c (classify_partition): Require
3458 unconditionally executed stores for memcpy and memset recognition.
ca406576
RB
3459 (tree_loop_distribution): Calculate dominance info.
3460
92d649c4
VK
34612013-09-30 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
3462
3463 * config/aarch64/aarch64.h (MCOUNT_NAME): Define.
3464 (NO_PROFILE_COUNTERS): Likewise.
3465 (PROFILE_HOOK): Likewise.
3466 (FUNCTION_PROFILER): Likewise.
3467 * config/aarch64/aarch64.c (aarch64_function_profiler): Remove.
3468
bd9534e2
IS
34692013-09-30 Iain Sandoe <iain@codesourcery.com>
3470
3471 * config/rs6000/darwin.md (load_macho_picbase_si): Wrap machopic
3472 calls and defines in TARGET_MACHO conditional.
3473 (load_macho_picbase_di): Likewise.
3474 (reload_macho_picbase): Likewise.
3475 (reload_macho_picbase_si): Likewise.
3476 (reload_macho_picbase_di): Likewise.
3477 (nonlocal_goto_receiver): Likewise.
3478
4494fbc9
NC
34792013-09-30 Nick Clifton <nickc@redhat.com>
3480
3481 * config/msp430/msp430.c (msp430x_names): New array. Lists MCUs
3482 that use the MSP430X ISA.
3483 (msp430_option_override): Scan -mmcu command line option for any
3484 MCU name that supports the MSP430X ISA.
3485 * config/msp430/t-msp430 (MULTILIB_MATCHES): Add matches for known
3486 -mmcu options which enable the MSP430X ISA.
3487
791d9044
RB
34882013-09-30 Richard Biener <rguenther@suse.de>
3489
3490 PR middle-end/58532
3491 * tree-cfg.c (make_abnormal_goto_edges): Skip debug statements
3492 before looking for setjmp-like calls.
3493
e1c5c877
IS
34942013-09-29 Iain Sandoe <iain@codesourcery.com>
3495
3496 PR target/10901
3497 * config/darwin-protos.h (machopic_get_function_picbase): New.
3498 * config/darwin.c (machopic_get_function_picbase): New.
3499 * config/rs6000/darwin.md (load_macho_picbase_si): Update picbase
3500 label for a new func. (load_macho_picbase_di): Likewise.
3501 (reload_macho_picbase): New expand.
3502 (reload_macho_picbase_si): New insn.
3503 (reload_macho_picbase_di): New insn.
3504 (nonlocal_goto_receiver): New define and split.
3505 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_RELD_MPIC.
3506 (unspecv enum): Add UNSPECV_NLGR.
3507
749278c5
IS
35082013-09-29 Iain Sandoe <iain@codesourcery.com>
3509
3510 * config/rs6000/rs6000.c (rs6000_init_dwarf_reg_sizes_extra): Ensure
3511 that altivec registers are correctly sized on Darwin.
3512
2c43a51c
IS
35132013-09-29 Iain Sandoe <iain@codesourcery.com>
3514
3515 * config/t-darwin (darwin.o, darwin-c.o, darwin-f.o,
3516 darwin-driver.o): Use COMPILE and POSTCOMPILE.
3517 * config/x-darwin (host-darwin.o): Likewise.
3518 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
3519 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
3520 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
3521
7a5911d3
UB
35222013-09-29 Uros Bizjak <ubizjak@gmail.com>
3523
3524 * doc/invoke.texi: Fix usage of @tie{} command.
3525
3f67a73d
EB
35262013-09-29 Eric Botcazou <ebotcazou@adacore.com>
3527
3528 * config/sparc/sync.md: Add peephole for consecutive memory barriers.
3529
9ac2f538
JH
35302013-09-28 Jan Hubicka <jh@suse.cz>
3531
3532 * config/i386/x86-tune.def: Add documentation for each of the options;
3533 add whitespace.
3534
b0ff06da
JH
35352013-09-28 Jan Hubicka <jh@suse.cz>
3536
7a5911d3
UB
3537 * x86-tune.def (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL): Enable for
3538 generic.
b0ff06da
JH
3539 (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Likewise.
3540 (X86_TUNE_FOUR_JUMP_LIMIT): Drop for generic and buldozer.
3541 (X86_TUNE_PAD_RETURNS): Drop for buldozer chips.
3542 (X86_TUNE_AVOID_VECTOR_DECODE): Drop for generic.
3543 (X86_TUNE_REASSOC_FP_TO_PARALLEL): Enable for generic.
3544
c3284718
RS
35452013-09-28 Richard Sandiford <rdsandiford@googlemail.com>
3546
3547 * alloc-pool.c, asan.c, auto-inc-dec.c, basic-block.h, bb-reorder.c,
3548 bitmap.c, bitmap.h, bt-load.c, builtins.c, calls.c, cfgcleanup.c,
3549 cfgexpand.c, cfghooks.c, cfgloop.c, cfgloopmanip.c, cfgrtl.c, cgraph.c,
3550 cgraph.h, cgraphbuild.c, cgraphclones.c, cgraphunit.c, collect2.c,
3551 combine-stack-adj.c, combine.c, compare-elim.c, context.c, context.h,
3552 cprop.c, cse.c, cselib.c, dbxout.c, dce.c, defaults.h, df-core.c,
3553 df-problems.c, df-scan.c, df.h, diagnostic.c, double-int.c, dse.c,
3554 dumpfile.c, dwarf2asm.c, dwarf2cfi.c, dwarf2out.c, emit-rtl.c,
3555 errors.c, except.c, expmed.c, expr.c, file-find.c, final.c,
3556 fixed-value.c, fold-const.c, function.c, fwprop.c, gcc-ar.c, gcc.c,
3557 gcov-io.c, gcov-io.h, gcov.c, gcse.c, genattr-common.c, genattr.c,
3558 genattrtab.c, genautomata.c, genconfig.c, genemit.c, genextract.c,
3559 genflags.c, gengenrtl.c, gengtype-state.c, gengtype.c, genmodes.c,
3560 genopinit.c, genoutput.c, genpeep.c, genpreds.c, genrecog.c,
3561 gensupport.c, ggc-common.c, ggc-page.c, gimple-fold.c, gimple-low.c,
3562 gimple-pretty-print.c, gimple-ssa-strength-reduction.c, gimple.c,
3563 gimple.h, godump.c, graphite-clast-to-gimple.c,
3564 graphite-optimize-isl.c, graphite-poly.h, graphite-sese-to-poly.c,
3565 graphite.c, haifa-sched.c, hash-table.c, hash-table.h, hwint.c,
3566 hwint.h, ifcvt.c, incpath.c, init-regs.c, input.h, intl.c, intl.h,
3567 ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
3568 ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c,
3569 ipa-utils.c, ipa.c, ira-build.c, ira.c, jump.c, loop-doloop.c,
3570 loop-init.c, loop-invariant.c, loop-iv.c, lower-subreg.c, lto-cgraph.c,
3571 lto-streamer-in.c, lto-streamer-out.c, lto-wrapper.c, mcf.c,
3572 mode-switching.c, modulo-sched.c, omp-low.c, optabs.c, opts.c,
3573 pass_manager.h, passes.c, plugin.c, postreload-gcse.c, postreload.c,
3574 predict.c, prefix.c, pretty-print.c, print-rtl.c, print-tree.c,
3575 profile.c, read-md.c, real.c, real.h, recog.c, ree.c, reg-stack.c,
3576 regcprop.c, reginfo.c, regmove.c, regrename.c, regs.h, regstat.c,
3577 reload1.c, reorg.c, rtl.c, rtl.h, rtlanal.c, sbitmap.c, sched-rgn.c,
3578 sdbout.c, sel-sched-ir.c, sel-sched.c, sparseset.c, stack-ptr-mod.c,
3579 statistics.c, stmt.c, stor-layout.c, store-motion.c, streamer-hooks.h,
3580 system.h, target-hooks-macros.h, targhooks.c, targhooks.h, toplev.c,
3581 tracer.c, trans-mem.c, tree-browser.c, tree-call-cdce.c, tree-cfg.c,
3582 tree-cfgcleanup.c, tree-complex.c, tree-data-ref.c, tree-data-ref.h,
3583 tree-eh.c, tree-emutls.c, tree-flow.h, tree-if-conv.c, tree-into-ssa.c,
3584 tree-iterator.c, tree-loop-distribution.c, tree-mudflap.c,
3585 tree-nested.c, tree-nomudflap.c, tree-nrv.c, tree-object-size.c,
3586 tree-optimize.c, tree-pass.h, tree-pretty-print.c, tree-profile.c,
3587 tree-scalar-evolution.c, tree-sra.c, tree-ssa-ccp.c,
3588 tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
3589 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
3590 tree-ssa-ifcombine.c, tree-ssa-live.c, tree-ssa-loop-ch.c,
3591 tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-loop-prefetch.c,
3592 tree-ssa-loop.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
3593 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
3594 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
3595 tree-ssa-structalias.c, tree-ssa-threadedge.c, tree-ssa-threadupdate.c,
3596 tree-ssa-uncprop.c, tree-ssa-uninit.c, tree-ssa.c, tree-ssanames.c,
3597 tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
3598 tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
3599 tree-vect-stmts.c, tree-vectorizer.c, tree-vectorizer.h, tree-vrp.c,
3600 tree.c, tree.h, tsan.c, tsystem.h, value-prof.c, var-tracking.c,
3601 varasm.c, vec.h, vmsdbgout.c, vtable-verify.c, web.c: Add missing
3602 whitespace before "(".
3603
c6285bd7
SL
36042013-09-28 Sandra Loosemore <sandra@codesourcery.com>
3605
3606 * expr.h (extract_bit_field): Remove packedp parameter.
3607 * expmed.c (extract_fixed_bit_field): Remove packedp parameter
3608 from forward declaration.
3609 (store_split_bit_field): Remove packedp arg from calls to
3610 extract_fixed_bit_field.
3611 (extract_bit_field_1): Remove packedp parameter and packedp
3612 argument from recursive calls and calls to extract_fixed_bit_field.
3613 (extract_bit_field): Remove packedp parameter and corresponding
3614 arg to extract_bit_field_1.
3615 (extract_fixed_bit_field): Remove packedp parameter. Remove code
3616 to issue warnings.
3617 (extract_split_bit_field): Remove packedp arg from call to
3618 extract_fixed_bit_field.
3619 * expr.c (emit_group_load_1): Adjust calls to extract_bit_field.
3620 (copy_blkmode_from_reg): Likewise.
3621 (copy_blkmode_to_reg): Likewise.
3622 (read_complex_part): Likewise.
3623 (store_field): Likewise.
3624 (expand_expr_real_1): Likewise.
3625 * calls.c (store_unaligned_arguments_into_pseudos): Adjust call
3626 to extract_bit_field.
3627 * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Adjust
3628 call to extract_bit_field.
3629 * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Adjust
3630 call to extract_bit_field.
3631 * doc/invoke.texi (Code Gen Options): Remove mention of warnings
3632 and special packedp behavior from -fstrict-volatile-bitfields
3633 documentation.
3634
522d4efc
JBG
36352013-09-27 Jan-Benedict Glaw <jbglaw@lug-owl.de>
3636
3637 * lra-eliminations.c (init_elim_table): Guard value_p.
3638
19cdb489
MM
36392013-09-27 Michael Meissner <meissner@linux.vnet.ibm.com>
3640
3641 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Allow
3642 DFmode, DImode, and SFmode in the upper VSX registers based on the
3643 -mupper-regs-{df,sf} flags. Fix wu constraint to be ALTIVEC_REGS
3644 if -mpower8-vector. Combine -mvsx-timode handling with the rest
3645 of the VSX register handling.
3646
3647 * config/rs6000/rs6000.md (f32_lv): Use %x0 for VSX regsters.
3648 (f32_sv): Likewise.
3649 (zero_extendsidi2_lfiwzx): Add support for loading into the
3650 Altivec registers with -mpower8-vector. Use wu/wv constraints to
3651 only do VSX memory options on Altivec registers.
3652 (extendsidi2_lfiwax): Likewise.
3653 (extendsfdf2_fpr): Likewise.
3654 (mov<mode>_hardfloat, SF/SD modes): Likewise.
3655 (mov<mode>_hardfloat32, DF/DD modes): Likewise.
3656 (mov<mode>_hardfloat64, DF/DD modes): Likewise.
3657 (movdi_internal64): Likewise.
3658
d6d11272
XDL
36592013-09-27 Xinliang David Li <davidxl@google.com>
3660
3661 * opts.c (finish_options): Adjust parameters
3662 according to vect cost model.
3663 (common_handle_option): Set dynamic vect cost
3664 model for FDO.
3665 targhooks.c (default_add_stmt_cost): Compute stmt cost
3666 unconditionally.
3667 * tree-vect-loop.c (vect_estimate_min_profitable_iters):
3668 Use helper function.
3669 * tree-vectorizer.h (unlimited_cost_model): New function.
3670 * tree-vect-slp.c (vect_slp_analyze_bb_1): Use helper function.
3671 * tree-vect-data-refs.c (vect_peeling_hash_insert): Use helper
3672 function.
3673 (vect_enhance_data_refs_alignment): Ditto.
3674 * flag-types.h: New enum.
3675 * common/config/i386/i386-common.c (ix86_option_init_struct):
3676 No need to initialize vect_cost_model flag.
3677 * config/i386/i386.c (ix86_add_stmt_cost): Compute stmt cost
3678 unconditionally.
3679
ac1857a3
DN
36802013-09-27 Diego Novillo <dnovillo@google.com>
3681
3682 * gimple.h (enum ssa_mode): Remove.
3683
0d0e2af6
PM
36842013-09-27 Paulo Matos <pmatos@broadcom.com>
3685
3686 * cfgloop.h (number_of_loops): Fix typo in check for null.
3687
09dc585e
JJ
36882013-09-27 Jakub Jelinek <jakub@redhat.com>
3689
3690 PR middle-end/58551
3691 * tree-cfg.c (move_sese_region_to_fn): Also move loops that
3692 are children of outermost saved_cfun's loop, and set it up to
3693 be moved to dest_cfun's outermost loop. Fix up num_nodes adjustments
3694 if loop != loop0 and SESE region contains bbs that belong to loop0.
3695
ec5a3504
RS
36962013-09-27 Richard Sandiford <rdsandiford@googlemail.com>
3697
3698 * rtlanal.c (must_be_base_p, must_be_index_p): Delete.
3699 (binary_scale_code_p, get_base_term, get_index_term): New functions.
3700 (set_address_segment, set_address_base, set_address_index)
3701 (set_address_disp): Accept the argument unconditionally.
3702 (baseness): Remove must_be_base_p and must_be_index_p checks.
3703 (decompose_normal_address): Classify as much as possible in the
3704 main loop.
3705
f91aec98
RS
37062013-09-27 Richard Sandiford <rdsandiford@googlemail.com>
3707
3708 * cse.c (count_reg_usage): Handle INT_LIST.
3709 * lra-eliminations.c (lra_eliminate_regs_1): Likewise.
3710 * reginfo.c (reg_scan_mark_refs): Likewise.
3711 * reload1.c (eliminate_regs_1): Likewise.
3712
a9195970
IS
37132013-09-27 Iain Sandoe <iain@codesourcery.com>
3714
3715 PR middle-end/58547
3716 * rtlanal.c (lsb_bitfield_op_p): Make both parts of the comparison
3717 signed.
3718
e6f1c509
RB
37192013-09-27 Richard Biener <rguenther@suse.de>
3720
3721 PR tree-optimization/58459
3722 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Remove
3723 restriction not propagating into loops.
3724
84f48495
FW
37252013-09-26 Florian Weimer <fw@deneb.enyo.de>
3726
3727 * tree-ssa.h (walk_use_def_chains_fn, walk_use_def_chains): Delete.
3728 * tree-ssa.c (walk_use_def_chains_1, walk_use_def_chains): Delete.
3729 * doc/tree-ssa.texi (Walking use-def chains): Delete.
3730
74fc8b8a
RB
37312013-09-26 Richard Biener <rguenther@suse.de>
3732
7a5911d3 3733 * tree-into-ssa.c (rewrite_into_ssa): Make more SSA names to anonymous.
74fc8b8a 3734
b4ada065
RB
37352013-09-26 Richard Biener <rguenther@suse.de>
3736
3737 * alias.h (component_uses_parent_alias_set): Rename to ...
3738 (component_uses_parent_alias_set_from): ... this.
3739 * alias.c (component_uses_parent_alias_set): Rename to ...
3740 (component_uses_parent_alias_set_from): ... this and return
3741 the desired parent.
3742 (reference_alias_ptr_type_1): Use the result from
3743 component_uses_parent_alias_set_from instead of stripping
3744 components one at a time.
3745 * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust.
3746
78bca40d
AM
37472013-09-26 Andrew MacLeod <amacleod@redhat.com>
3748
7a5911d3
UB
3749 * tree-ssa-live.h (find_replaceable_exprs, dump_replaceable_exprs):
3750 Move prototypes to...
78bca40d
AM
3751 * tree-ssa-ter.h: New File. Move prototypes here.
3752 * tree-flow.h (stmt_is_replaceable_p): Remove prototype.
3753 * tree-outof-ssa.h: New. Rename ssaexpand.h, include tree-ssa-ter.h.
3754 * tree-outof-ssa.c (ssa_is_replaceable_p): New. Refactor common bits
7a5911d3 3755 from is_replaceable_p.
78bca40d
AM
3756 * tree-ssa-ter.c (is_replaceable_p, stmt_is_replaceable_p): Delete.
3757 (ter_is_replaceable_p): New. Use new refactored ssa_is_replaceable_p.
3758 (process_replaceable): Use ter_is_replaceable_p.
3759 (find_replaceable_in_bb): Use ter_is_replaceable_p.
3760 * expr.c (stmt_is_replaceable_p): Relocate from tree-ssa-ter.c. Use
3761 newly refactored ssa_is_replaceable_p.
3762 * cfgexpand.c: Include tree-outof-ssa.h.
3763 * ssaexpand.h: Delete.
3764
ff2a63a7
AM
37652013-09-26 Andrew MacLeod <amacleod@redhat.com>
3766
3767 * gimple.c (gimple_replace_lhs): Move to tree-ssa.c and rename.
3768 (struct count_ptr_d, count_ptr_derefs, count_uses_and_derefs): Move to
3769 tree-ssa.c
3770 (create_gimple_tmp): Delete.
3771 (get_expr_type, build_assign, build_type_cast): Move to...
3772 * gimple-builder.c: New File.
3773 (get_expr_type): Relocate from gimple.c.
3774 (build_assign, build_type_cast): Change to only create ssanames.
3775 * gimple.h: Move prototypes to...
3776 * gimple-builder.h: New File. Here.
3777 * tree-ssa.h: And here.
3778 * tree-ssa.c (struct count_ptr_d, count_ptr_derefs,
3779 count_uses_and_derefs): Relocate from gimple.c.
3780 (gimple_replace_ssa_lhs): Renamed gimple_replace_ssa from gimple.c
3781 * tree-ssa-reassoc.c (repropagate_negates): Use gimple_replace_ssa_lhs.
3782 * tree-ssa-math-opts (execute_cse_reciprocals): Use
3783 gimple_replace_ssa_lhs.
3784 * asan.c: Include gimple-builder.h.
3785 * Makefile.in: Add gimple-builder.o.
3786
a2544177
RB
37872013-09-26 Richard Biener <rguenther@suse.de>
3788
3789 * tree-ssa-live.c (var_map_base_init): Handle SSA names with
3790 DECL_IGNORED_P base VAR_DECLs like anonymous SSA names.
3791 (loe_visit_block): Use gcc_checking_assert.
3792 * tree-ssa-coalesce.c (create_outofssa_var_map): Use
3793 gimple_assign_ssa_name_copy_p.
3794 (gimple_can_coalesce_p): Adjust according to the var_map_base_init
3795 change.
3796
6d1ca9a0
DE
37972013-09-26 David Edelsohn <dje.gcc@gmail.com>
3798
3799 * config/rs6000/t-rs6000 (rs6000.o): Remove.
3800 (rs6000-c.o): Use COMPILE and POSTCOMPILE.
3801
46e950db
RB
38022013-09-26 Richard Biener <rguenther@suse.de>
3803
3804 PR tree-optimization/58539
3805 * tree-vect-loop.c (vect_create_epilog_for_reduction): Honor
3806 the fact that debug statements are not taking part in loop-closed
3807 SSA construction.
3808
40ada30a
NC
38092013-09-26 Nick Clifton <nickc@redhat.com>
3810
3811 * config/msp430/msp430.c (msp430_expand_epilogue): Fix compile
3812 time warning message.
3813 (msp430_print_operand_raw): Delete unused letter parameter.
3814 (TARGET_PRINT_OPERAND_ADDRESS): Define.
3815 (msp430_print_operand_address): New function.
3816 (msp430_print_operand): Move address printing code from here to
3817 new function.
3818 * config/msp430/msp430.md (movsipsi2): Add comment in generated
3819 assembler.
3820 (zero_extendpsisi2): Likewise.
3821 (extendpsisi2): New pattern.
3822 (andneghi3): New pattern.
3823
38e8f663
YR
38242013-09-26 Yvan Roux <yvan.roux@linaro.org>
3825
3826 * config/aarch64/aarch64.opt (mlra): New option.
3827 * config/aarch64/aarch64.c (aarch64_lra_p): New function.
3828 (TARGET_LRA_P): Define.
3829
4167e8d4
EB
38302013-09-26 Eric Botcazou <ebotcazou@adacore.com>
3831
3832 * expr.c (expand_assignment): Remove obsolete comment.
3833
5254eac4
JL
38342013-09-25 Jeff Law <law@redhat.com>
3835
3836 * tree-flow.h (thread_through_all_blocks): Prototype moved into
3837 tree-ssa-threadupdate.h.
3838 (register_jump_thread): Similarly.
3839 * tree-ssa-threadupdate.h: New header file.
3840 * tree-ssa-dom.c: Include tree-ssa-threadupdate.h.
3841 * tree-vrp.c: Likewise.
3842 * tree-ssa-threadedge.c: Include tree-ssa-threadupdate.h.
3843 (thread_around_empty_blocks): Change type of path vector argument to
3844 an edge,type pair from just an edge. Initialize both elements when
3845 appending to a jump threading path. Tweak references to elements
3846 appropriately.
3847 (thread_across_edge): Similarly. Release memory for the elements
3848 as needed.
3849 * tree-ssa-threadupdate.c: Include tree-ssa-threadupdate.h.
3850 (dump_jump_thread_path): New function broken out from
3851 register_jump_thread.
3852 (register_jump_thread): Use dump_jump_thread_path. Change type of
3853 path vector entries. Search the path for NULL edges and dump
3854 the path if one is found. Tweak the conversion of path to 3-edge
3855 form to use the block copy type information embedded in the path.
3856
20f114a3
YR
38572013-09-25 Yvan Roux <yvan.roux@linaro.org>
3858
3859 * lra.c (update_inc_notes): Remove all REG_DEAD and REG_UNUSED notes.
3860
3936bafc
YR
38612013-09-25 Yvan Roux <yvan.roux@linaro.org>
3862 Vladimir Makarov <vmakarov@redhat.com>
3863
3864 * rtlanal.c (lsb_bitfield_op_p): New predicate for bitfield operations
3865 from the least significant bit.
3866 (strip_address_mutations): Add bitfield operations handling.
3867 (must_be_index_p): Add shifting and rotate operations handling.
3868 (set_address_base): Use must_be_base_p predicate.
4167e8d4 3869 (set_address_index): Use must_be_index_p predicate.
3936bafc 3870
b86f6e9e
AI
38712013-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
3872 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
3873 Sergey Lega <sergey.s.lega@intel.com>
3874 Anna Tikhonova <anna.tikhonova@intel.com>
3875 Ilya Tocar <ilya.tocar@intel.com>
3876 Andrey Turetskiy <andrey.turetskiy@intel.com>
3877 Ilya Verbin <ilya.verbin@intel.com>
3878 Kirill Yukhin <kirill.yukhin@intel.com>
3879 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
3880
3881 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
3882 Use new names.
3883 (ix86_expand_vector_move_misalign): Support new unaligned load and
3884 stores and use new names.
3885 (CODE_FOR_sse2_storedqu): Rename to ...
3886 (CODE_FOR_sse2_storedquv16qi): ... this.
3887 (CODE_FOR_sse2_loaddqu): Rename to ...
3888 (CODE_FOR_sse2_loaddquv16qi): ... this.
3889 (CODE_FOR_avx_loaddqu256): Rename to ...
3890 (CODE_FOR_avx_loaddquv32qi): ... this.
3891 (CODE_FOR_avx_storedqu256): Rename to ...
3892 (CODE_FOR_avx_storedquv32qi): ... this.
3893 * config/i386/i386.md (fpint_logic): New.
3894 * config/i386/sse.md (VMOVE): Extend for AVX512.
3895 (VF): Ditto.
3896 (VF_128_256): New.
3897 (VF_512): Ditto.
3898 (VI_UNALIGNED_LOADSTORE): Ditto.
3899 (sse2_avx_avx512f): Ditto.
3900 (sse2_avx2): Extend for AVX512.
3901 (sse4_1_avx2): Ditto.
3902 (avx2_avx512f): New.
3903 (sse): Extend for AVX512.
3904 (sse2): Ditto.
3905 (sse4_1): Ditto.
3906 (avxsizesuffix): Ditto.
3907 (sseintvecmode): Ditto.
3908 (ssePSmode): Ditto.
3909 (<sse>_loadu<ssemodesuffix><avxsizesuffix>): Ditto.
3910 (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Ditto.
3911 (<sse2>_loaddqu<avxsizesuffix>): Extend for AVX512 and rename to ...
3912 (<sse2_avx_avx512f>_loaddqu<mode>): ... this.
3913 (<sse2>_storedqu<avxsizesuffix>): Extend for AVX512 and rename to ...
3914 (<sse2_avx_avx512f>_storedqu<mode): ... this.
3915 (<sse>_movnt<mode>): Replace constraint "x" with "v".
3916 (STORENT_MODE): Extend for AVX512.
3917 (*absneg<mode>2): Replace constraint "x" with "v".
3918 (*mul<mode>3): Ditto.
3919 (*ieee_smin<mode>3): Ditto.
3920 (*ieee_smax<mode>3): Ditto.
3921 (avx_cmp<mode>3): Replace VF with VF_128_256.
3922 (*<sse>_maskcmp<mode>3_comm): Ditto.
3923 (<sse>_maskcmp<mode>3): Ditto.
3924 (<sse>_andnot<mode>3): Extend for AVX512.
3925 (<code><mode>3, anylogic): Replace VF with VF_128_256.
3926 (<code><mode>3, fpint_logic): New.
3927 (*<code><mode>3): Extend for AVX512.
3928 (avx512flogicsuff): New.
3929 (avx512f_<logic><mode>): Ditto.
3930 (<sse>_movmsk<ssemodesuffix><avxsizesuffix>): Replace VF with
3931 VF_128_256.
3932 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Ditto.
3933 (<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>): Ditto.
3934 (<sse4_1>_dp<ssemodesuffix><avxsizesuffix>): Ditto.
3935 (avx_vtest<ssemodesuffix><avxsizesuffix>): Ditto.
3936 (<sse4_1>_round<ssemodesuffix><avxsizesuffix>): Ditto.
3937 (xop_vpermil2<mode>3): Ditto.
3938 (*avx_vpermilp<mode>): Extend for AVX512 and rename to ...
3939 (*<sse2_avx_avx512f>_vpermilp<mode>): ... this.
3940 (avx_vpermilvar<mode>3): Extend for AVX512 and rename to ...
3941 (<sse2_avx_avx512f>_vpermilvar<mode>3): ... this.
3942
4d44d03c
TT
39432013-09-25 Tom Tromey <tromey@redhat.com>
3944
3945 * Makefile.in (PARTITION_H, LTO_SYMTAB_H, COMMON_TARGET_DEF_H)
3946 (RTL_ERROR_H, TRANS_MEM_H, COVERAGE_H, DEMANGLE_H, ALIAS_H)
3947 (SCHED_INT_H, SEL_SCHED_IR_H, SEL_SCHED_DUMP_H, VALTRACK_H, DDG_H)
3948 (GGC_INTERNAL_H, DECNUM_H, BACKTRACE_H, MKDEPS_H, TREE_HASHER_H)
3949 (TREE_SSA_LIVE_H, SSAEXPAND_H, DWARF2OUT_H, SCEV_H, OMEGA_H)
3950 (TREE_DATA_REF_H, IRA_INT_H, LRA_INT_H, DBGCNT_H, DATA_STREAMER_H)
3951 (GIMPLE_STREAMER_H, TREE_STREAMER_H, STREAMER_HOOKS_H)
3952 (TREE_VECTORIZER_H, IPA_INLINE_H, GSTAB_H, LIBFUNCS_H)
3953 (GRAPHITE_HTAB_H): Remove.
3954
86aaf68d
TT
39552013-09-25 Tom Tromey <tromey@redhat.com>
3956
3957 * config/mcore/t-mcore (CROSS_FLOAT_H): Remove.
3958
c987deb8
TT
39592013-09-25 Tom Tromey <tromey@redhat.com>
3960
3961 * config/t-glibc (glibc-c.o): Use COMPILE and POSTCOMPILE.
3962
9439747e
TT
39632013-09-25 Tom Tromey <tromey@redhat.com>
3964
3965 * config/i386/t-i386 (i386.o): Remove.
3966 (i386-c.o): Use COMPILE and POSTCOMPILE.
3967
aefc31a1
TT
39682013-09-25 Tom Tromey <tromey@redhat.com>
3969
3970 * Makefile.in ($(out_object_file)): Use COMPILE and POSTCOMPILE.
3971
b6541edc
TT
39722013-09-25 Tom Tromey <tromey@redhat.com>
3973
3974 * Makefile.in (graph.o, sbitmap.o, sparseset.o, gcc-ar.o)
3975 (gcc-ranlib.o, gcc-nm.o, collect2.o, collect2-aix.o, tlink.o)
3976 (lto-wrapper.o, default-c.o, attribs.o, incpath.o, prefix.o)
3977 (gcc.o, options.o, options-save.o, version.o, gtype-desc.o)
3978 (trans-mem.o, ggc-common.o, ggc-page.o, ggc-none.o, stringpool.o)
3979 (convert.o, double-int.o, lto-compress.o, data-streamer-in.o)
3980 (data-streamer-out.o, data-streamer.o, gimple-streamer-in.o)
3981 (gimple-streamer-out.o, tree-streamer.o, tree-streamer-in.o)
3982 (tree-streamer-out.o, streamer-hooks.o, lto-cgraph.o)
3983 (lto-streamer-in.o, lto-streamer-out.o, lto-section-in.o)
3984 (lto-section-out.o, lto-opts.o, lto-streamer.o, langhooks.o)
3985 (test-dump.o, tree.o, tree-dump.o, tree-inline.o, print-tree.o)
3986 (stor-layout.o, asan.o, tsan.o, ubsan.o, tree-ssa-tail-merge.o)
3987 (tree-ssa-structalias.o, tree-ssa-uninit.o, tree-ssa.o)
3988 (tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o)
3989 (tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o)
3990 (tree-ssa-phiprop.o, tree-ssa-ifcombine.o, tree-ssa-phiopt.o)
3991 (tree-nrv.o, tree-ssa-copy.o, tree-ssa-propagate.o)
3992 (tree-ssa-dom.o, tree-ssa-uncprop.o, tree-ssa-threadedge.o)
3993 (tree-ssa-threadupdate.o, tree-ssanames.o, tree-phinodes.o)
3994 (domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o)
3995 (tree-ssa-pre.o, tree-ssa-sccvn.o)
3996 (gimple-ssa-strength-reduction.o, tree-vrp.o, tree-cfg.o)
3997 (tree-cfgcleanup.o, tree-tailcall.o, tree-ssa-sink.o)
3998 (tree-nested.o, tree-if-conv.o, tree-iterator.o, tree-dfa.o)
3999 (tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o)
4000 (tree-ssa-loop-unswitch.o, tree-ssa-address.o)
4001 (tree-ssa-loop-niter.o, tree-ssa-loop-ivcanon.o)
4002 (tree-ssa-loop-ch.o, tree-ssa-loop-prefetch.o, tree-predcom.o)
4003 (tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-manip.o)
4004 (tree-ssa-loop-im.o, tree-ssa-math-opts.o, tree-ssa-alias.o)
4005 (tree-ssa-reassoc.o, tree-optimize.o, gimplify.o)
4006 (gimple-iterator.o, gimple-fold.o, gimple-low.o, omp-low.o)
4007 (tree-browser.o, omega.o, tree-chrec.o, tree-scalar-evolution.o)
4008 (tree-data-ref.o, sese.o, graphite.o, graphite-blocking.o)
4009 (graphite-clast-to-gimple.o, graphite-dependences.o)
4010 (graphite-interchange.o, graphite-poly.o)
4011 (graphite-scop-detection.o, graphite-sese-to-poly.o)
4012 (graphite-optimize-isl.o, tree-vect-loop.o)
4013 (tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o)
4014 (tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o)
4015 (vtable-verify.o, tree-loop-distribution.o, tree-parloops.o)
4016 (tree-stdarg.o, tree-object-size.o, internal-fn.o, gimple.o)
4017 (gimple-pretty-print.o, tree-mudflap.o, tree-nomudflap.o)
4018 (tree-pretty-print.o, tree-diagnostic.o, fold-const.o)
4019 (diagnostic.o, diagnostic-color.o, opts.o, opts-global.o)
4020 (opts-common.o, targhooks.o, common/common-targhooks.o, input.o)
4021 (toplev.o, hwint.o, passes.o, plugin.o, main.o, host-default.o)
4022 (rtl-error.o, rtl.o, print-rtl.o, rtlanal.o, varasm.o, function.o)
4023 (statistics.o, stmt.o, except.o, expr.o, dojump.o, builtins.o)
4024 (calls.o, expmed.o, explow.o, optabs.o, dbxout.o, debug.o)
4025 (sdbout.o, dwarf2out.o, dwarf2cfi.o, dwarf2asm.o, vmsdbgout.o)
4026 (xcoffout.o, godump.o, emit-rtl.o, real.o, realmpfr.o, dfp.o)
4027 (fixed-value.o, jump.o, simplify-rtx.o, symtab.o, cgraph.o)
4028 (cgraphunit.o, cgraphclones.o, cgraphbuild.o, varpool.o, ipa.o)
4029 (ipa-profile.o, ipa-devirt.o, ipa-prop.o, ipa-ref.o, ipa-cp.o)
4030 (ipa-split.o, ipa-inline.o, ipa-inline-analysis.o)
4031 (ipa-inline-transform.o, ipa-utils.o, ipa-reference.o)
4032 (ipa-pure-const.o, coverage.o, cselib.o, cse.o, dce.o, dumpfile.o)
4033 (dse.o, fwprop.o, web.o, ree.o, cprop.o, gcse.o, store-motion.o)
4034 (resource.o, lcm.o, mode-switching.o, tree-ssa-dce.o)
4035 (tree-call-cdce.o, tree-ssa-ccp.o, tree-ssa-strlen.o, tree-sra.o)
4036 (tree-switch-conversion.o, tree-complex.o, tree-emutls.o)
4037 (tree-vect-generic.o, df-core.o, df-problems.o, df-scan.o)
4038 (regstat.o, valtrack.o, var-tracking.o, profile.o, mcf.o)
4039 (tree-profile.o, value-prof.o, loop-doloop.o, alloc-pool.o)
4040 (auto-inc-dec.o, cfg.o, cfghooks.o, cfgexpand.o, cfgrtl.o)
4041 (cfganal.o, cfgbuild.o, cfgcleanup.o, cfgloop.o, cfgloopanal.o)
4042 (graphds.o, loop-iv.o, loop-invariant.o, cfgloopmanip.o)
4043 (loop-init.o, loop-unswitch.o, loop-unroll.o, dominance.o)
4044 (et-forest.o, combine.o, reginfo.o, bitmap.o, vec.o, hash-table.o)
4045 (reload.o, reload1.o, rtlhooks.o, postreload.o, postreload-gcse.o)
4046 (caller-save.o, bt-load.o, reorg.o, alias.o, stack-ptr-mod.o)
4047 (init-regs.o, ira-build.o, ira-costs.o, ira-conflicts.o)
4048 (ira-color.o, ira-emit.o, ira-lives.o, ira.o, lra.o)
4049 (lra-assigns.o, lra-coalesce.o, lra-constraints.o)
4050 (lra-eliminations.o, lra-lives.o, lra-spills.o, regmove.o)
4051 (combine-stack-adj.o, compare-elim.o, ddg.o, modulo-sched.o)
4052 (haifa-sched.o, sched-deps.o, sched-rgn.o, sched-ebb.o)
4053 (sched-vis.o, sel-sched.o, sel-sched-dump.o, sel-sched-ir.o)
4054 (final.o, recog.o, reg-stack.o, sreal.o, predict.o, lists.o)
4055 (bb-reorder.o, tracer.o, timevar.o, regcprop.o, regrename.o)
4056 (ifcvt.o, params.o, pointer-set.o, hooks.o, pretty-print.o)
4057 (errors.o, dbgcnt.o, lower-subreg.o, target-globals.o)
4058 (hw-doloop.o, file-find.o, context.o, $(common_out_object_file))
4059 (insn-attrtab.o, insn-automata.o, insn-dfatab.o, insn-emit.o)
4060 (insn-enums.o, insn-extract.o, insn-latencytab.o, insn-modes.o)
4061 (insn-opinit.o, insn-output.o, insn-peep.o, insn-preds.o)
4062 (insn-recog.o, intl.o, cppbuiltin.o, cppdefault.o, gcov.o)
4063 (gcov-dump.o): Remove.
4064 (default-c.o): Use COMPILE and POSTCOMPILE.
4065 (CFLAGS-gcc.o): New variable.
4066 ($(common_out_object_file)): Use COMPILE and POSTCOMPILE.
4067
8c796d19
TT
40682013-09-25 Tom Tromey <tromey@redhat.com>
4069
4070 * Makefile.in (c-family/cppspec.o, c-family/c-common.o)
4071 (c-family/c-cppbuiltin.o, c-family/c-dump.o, c-family/c-format.o)
4072 (c-family/c-gimplify.o, c-family/c-lex.o, c-family/c-omp.o)
4073 (c-family/c-opts.o, c-family/c-pch.o, c-family/c-ppoutput.o)
4074 (c-family/c-pragma.o, c-family/c-pretty-print.o)
4075 (c-family/c-semantics.o, c-family/c-ada-spec.o)
4076 (c-family/array-notation-common.o, c-family/stub-objc.o)
4077 (c-family/c-ubsan.o): Remove.
4078
0a6c2227
TT
40792013-09-25 Tom Tromey <tromey@redhat.com>
4080
4081 * Makefile.in (C_TREE_H): Reference c/c-tree.h.
4082
f3bc55f0
TT
40832013-09-25 Tom Tromey <tromey@redhat.com>
4084
4085 * Makefile.in (DRIVER_DEFINES): Use $(and), not shell code,
4086 to add -DENABLE_SHARED_LIBGCC.
4087 (gcc.o): Don't use subshell.
4088
c11c795e
TT
40892013-09-25 Tom Tromey <tromey@redhat.com>
4090
4091 * Makefile.in (OUTPUT_OPTION): Define as "-o $@".
4092 * configure.ac: Don't invoke AM_PROG_CC_C_O.
4093 (NO_MINUS_C_MINUS_O, OUTPUT_OPTION): Don't subst.
4094 * configure, config.in: Rebuild.
4095
043378c3
TT
40962013-09-25 Tom Tromey <tromey@redhat.com>
4097
4098 * Makefile.in (CCDEPMODE, DEPDIR, depcomp, COMPILE.base)
4099 (COMPILE, POSTCOMPILE): New variables.
4100 (.cc.o .c.o): Use COMPILE, POSTCOMPILE.
4101 (DEPFILES): New variable.
4102 Include ".Po" files.
4103 * configure.ac: Add checks for dependency checking.
4104 * configure, aclocal.m4: Regenerate.
4105
eab34643
TT
41062013-09-25 Tom Tromey <tromey@redhat.com>
4107
4108 * Makefile.in (ALL_HOST_BACKEND_OBJS): Add lto-wrapper.o.
7a5911d3 4109 ($(ALL_HOST_OBJS)): Move order-only dependency to end of file.
eab34643 4110
d2db5e91
TT
41112013-09-25 Tom Tromey <tromey@redhat.com>
4112
4113 * Makefile.in (generated_files): Add options.h,
4114 target-hooks-def.h, insn-opinit.h,
4115 common/common-target-hooks-def.h, pass-instances.def,
4116 c-family/c-target-hooks-def.h.
4117
af33629e
JL
41182013-09-25 Jeff Law <law@redhat.com>
4119
4120 * tree-ssa-threadedge.c (thread_across_edge): Use foo.last () rather
4121 than foo[foo.length () - 1] to access last member in a vec.
4122 * tree-ssa-threadupdate.c (register_jump_thread): Similarly.
4123
ed0d3051
RB
41242013-09-25 Richard Biener <rguenther@suse.de>
4125
4126 PR middle-end/58521
4127 * tree.c (iterative_hash_expr): Remove MEM_REF special handling.
4128
123485ca
JH
41292013-09-25 Jan Hubicka <jh@suse.cz>
4130
4131 * cgraph.c (cgraph_resolve_speculation): Use semantical equivalency
4132 test.
4133
d70b0f1f
MP
41342013-09-25 Marek Polacek <polacek@redhat.com>
4135
4136 PR sanitizer/58420
4137 * ubsan.c (ubsan_type_descriptor): Handle IDENTIFIER_NODEs
4138 when determining the type name.
4139
e3f02798
OE
41402013-09-24 Oleg Endo <olegendo@gcc.gnu.org>
4141
4142 * config/sh/sh.md: Fix formatting.
4143
7a5911d3 41442013-09-24 Xinliang David Li <davidxl@google.com>
4f17aa0b 4145
7a5911d3
UB
4146 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Check
4147 max peel iterations parameter.
4f17aa0b
XDL
4148 * param.def: New parameter.
4149 * doc/invoke.texi: Document New parameter.
4150
0498471b
CL
41512013-09-24 Christophe Lyon <christophe.lyon@linaro.org>
4152
4153 * gimple-pretty-print.c: Various whitespace tweaks.
4154 * tree-core.h: Likewise.
4155 * tree-pretty-print.c: Likewise.
4156 * tree-ssa-alias.c: Likewise.
4157 * tree-ssa-copy.c: Likewise.
4158 * tree-ssanames.c: Likewise.
4159 * tree-ssanames.h: Likewise.
4160 * tree-vrp.c: Likewise.
4161
5a8c2b57
AM
41622013-09-24 Alan Modra <amodra@gmail.com>
4163
4164 PR middle-end/57134
4165 PR middle-end/57586
7a5911d3
UB
4166 * stmt.c (expand_asm_operands): Call expand_expr with EXPAND_MEMORY
4167 for output operands that disallow regs. Don't use EXPAND_WRITE on
4168 inout operands.
5a8c2b57 4169
f40333af
RB
41702013-09-24 Richard Biener <rguenther@suse.de>
4171
4172 PR middle-end/58513
4173 * tree.c (reference_alias_ptr_type): Move ...
4174 * alias.c (reference_alias_ptr_type): ... here and implement
4175 in terms of the new reference_alias_ptr_type_1.
4176 (ref_all_alias_ptr_type_p): New helper.
4177 (get_deref_alias_set_1): Drop flag_strict_aliasing here,
4178 use ref_all_alias_ptr_type_p.
4179 (get_deref_alias_set): Add flag_strict_aliasing check here.
4180 (reference_alias_ptr_type_1): New function, split out from ...
4181 (get_alias_set): ... here.
4182 (alias_ptr_types_compatible_p): New function.
4183 * alias.h (reference_alias_ptr_type): Declare.
4184 (alias_ptr_types_compatible_p): Likewise.
4185 * tree.h (reference_alias_ptr_type): Remove.
4186 * fold-const.c (operand_equal_p): Use alias_ptr_types_compatible_p
4187 to compare MEM_REF alias types.
4188
583e8bf5
RB
41892013-09-24 Richard Biener <rguenther@suse.de>
4190
4191 * tree-vrp.c (vrp_finalize): Check for SSA name presence.
4192
5e8586d7
MM
41932013-09-23 Michael Meissner <meissner@linux.vnet.ibm.com>
4194
19c3e797
MM
4195 * config/rs6000/rs6000.c (rs6000_vector_reload): Delete, combine
4196 reload helper function arrays into a single array reg_addr.
4197 (reload_fpr_gpr): Likewise.
4198 (reload_gpr_vsx): Likewise.
4199 (reload_vsx_gpr): Likewise.
4200 (struct rs6000_reg_addr): Likewise.
4201 (reg_addr): Likewise.
4202 (rs6000_debug_reg_global): Change rs6000_vector_reload,
4203 reload_fpr_gpr, reload_gpr_vsx, reload_vsx_gpr uses to reg_addr.
4204 (rs6000_init_hard_regno_mode_ok): Likewise.
4205 (rs6000_secondary_reload_direct_move): Likewise.
4206 (rs6000_secondary_reload): Likewise.
4207
5e8586d7
MM
4208 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add new
4209 constraints: wu, ww, and wy. Repurpose wv constraint added during
4210 power8 changes. Put wg constraint in alphabetical order.
4211
4212 * config/rs6000/rs6000.opt (-mvsx-scalar-float): New debug switch
4213 for future work to add ISA 2.07 VSX single precision support.
4214 (-mvsx-scalar-double): Change default from -1 to 1, update
4215 documentation comment.
4216 (-mvsx-scalar-memory): Rename debug switch to -mupper-regs-df.
4217 (-mupper-regs-df): New debug switch to control whether DF values
4218 can go in the traditional Altivec registers.
4219 (-mupper-regs-sf): New debug switch to control whether SF values
4220 can go in the traditional Altivec registers.
4221
4222 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print wu, ww,
4223 and wy constraints.
4224 (rs6000_init_hard_regno_mode_ok): Use ssize_t instead of int for
4225 loop variables. Rename -mvsx-scalar-memory to -mupper-regs-df.
4226 Add new constraints, wu/ww/wy. Repurpose wv constraint.
4227 (rs6000_debug_legitimate_address_p): Print if we are running
4228 before, during, or after reload.
4229 (rs6000_secondary_reload): Add a comment.
4230 (rs6000_opt_masks): Add -mupper-regs-df, -mupper-regs-sf.
4231
4232 * config/rs6000/constraints.md (wa constraint): Sort w<x>
4233 constraints. Update documentation string.
4234 (wd constraint): Likewise.
4235 (wf constraint): Likewise.
4236 (wg constraint): Likewise.
4237 (wn constraint): Likewise.
4238 (ws constraint): Likewise.
4239 (wt constraint): Likewise.
4240 (wx constraint): Likewise.
4241 (wz constraint): Likewise.
4242 (wu constraint): New constraint for ISA 2.07 SFmode scalar
4243 instructions.
4244 (ww constraint): Likewise.
4245 (wy constraint): Likewise.
358e1993
MM
4246 (wv constraint): Repurpose ISA 2.07 constraint that we did not use
4247 in the previous submissions.
5e8586d7
MM
4248 * doc/md.texi (PowerPC and IBM RS6000): Likewise.
4249
e5af9ddd
RS
42502013-09-23 Richard Sandiford <rdsandiford@googlemail.com>
4251
4252 * doc/rtl.texi (REG_NOTES): Say that int_list can also be used.
4253 (REG_BR_PROB): Say that the probability is stored in an int_list.
4254 * reg-notes.def: Update commentary to mention INT_LIST.
4255 * rtl.def (EXPR_LIST, INSN_LIST): Capitalize comments.
4256 (INT_LIST): New rtx.
4257 * rtl.h (add_int_reg_note, add_shallow_copy_of_reg_note): Declare.
4258 * rtlanal.c (int_reg_note_p): New function.
4259 (alloc_reg_note): Assert that the note does not have an int argument.
4260 (add_int_reg_note, add_shallow_copy_of_reg_note): New functions.
4261 * combine.c (distribute_notes): Use add_shallow_copy_of_rtx.
4262 * cse.c (cse_process_notes_1): Expect REG_EQUAL to be an EXPR_LIST
4263 rather than an INSN_LIST. Handle INT_LIST.
4264 * ifcvt.c (cond_exec_process_insns): Take the probability as an int
4265 rather than an rtx. Use gen_rtx_INT_LIST to create a REG_BR_PROB note.
4266 (cond_exec_process_if_block): Use XINT to extract REG_BR_PROB values.
4267 Manipulate them as ints rather than rtxes.
4268 * reg-stack.c (subst_asm_stack_regs): Only handle EXPR_LIST notes.
4269 * regmove.c (copy_src_to_dest): Likewise.
4270 * sched-vis.c (print_insn_with_notes): Handle INT_LIST.
4271
4272 * config/i386/winnt.c (i386_pe_seh_unwind_emit): Sink pat assignment
4273 into the cases that need it.
4274 * config/arm/arm.c (arm_unwind_emit): Likewise.
4275
4276 * asan.c (asan_clear_shadow): Use add_int_reg_note for REG_BR_PROB.
4277 * emit-rtl.c (try_split, emit_copy_of_insn_after): Likewise.
4278 * loop-doloop.c (add_test, doloop_modify): Likewise.
4279 * loop-unswitch.c (compare_and_jump_seq): Likewise.
4280 * optabs.c (emit_cmp_and_jump_insn_1): Likewise.
4281 * predict.c (combine_predictions_for_insn): Likewise.
4282 * print-rtl.c (print_rtx): Handle INT_LIST.
4283 * config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): Likewise.
4284 * config/alpha/alpha.c (emit_unlikely_jump): Likewise.
4285 * config/arm/arm.c (emit_unlikely_jump): Likewise.
4286 * config/i386/i386.c (ix86_expand_split_stack_prologue): Likewise.
4287 (ix86_split_fp_branch, predict_jump): Likewise.
4288 * config/rs6000/rs6000.c (emit_unlikely_jump): Likewise.
4289 * config/sh/sh.c (expand_cbranchsi4): Likewise.
4290 * config/spu/spu.c (ea_load_store_inline): Likewise.
4291
4292 * cfgbuild.c (compute_outgoing_frequencies): Use XINT to access the
4293 value of a REG_BR_PROB note.
4294 * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
4295 (update_br_prob_note, rtl_verify_edges, purge_dead_edges): Likewise.
4296 * emit-rtl.c (try_split): Likewise.
4297 * predict.c (br_prob_note_reliable_p): Likewise.
4298 (invert_br_probabilities, combine_predictions_for_insn): Likewise.
4299 * reorg.c (mostly_true_jump): Likewise.
4300 * config/bfin/bfin.c (cbranch_predicted_taken_p): Likewise.
4301 * config/frv/frv.c (frv_print_operand_jump_hint): Likewise.
4302 * config/i386/i386.c (ix86_print_operand): Likewise.
4303 * config/ia64/ia64.c (ia64_print_operand): Likewise.
4304 * config/mmix/mmix.c (mmix_print_operand): Likewise.
4305 * config/rs6000/rs6000.c (output_cbranch): Likewise.
4306 * config/s390/s390.c (s390_expand_tbegin): Likewise.
4307 * config/sh/sh.c (sh_print_operand, sh_adjust_cost): Likewise.
4308 * config/sparc/sparc.c (output_cbranch): Likewise.
4309 * config/spu/spu.c (get_branch_target): Likewise.
4310 * config/tilegx/tilegx.c (cbranch_predicted_p): Likewise.
4311 * config/tilepro/tilepro.c (cbranch_predicted_p): Likewise.
4312
450ad0cd
JH
43132013-09-23 Jan Hubicka <jh@suse.cz>
4314
4315 * ipa-cp.c (ipa_get_indirect_edge_target_1): Add sanity check
4316 for ipa-devirt.
4317 * ipa-utils.h (possible_polymorphic_call_target_p): New function.
4318 * ipa-devirt.c (possible_polymorphic_call_target_p): Be tolerant
4319 of external calls
4320 * gimple-fold.c: Include ipa-utils.h and gimple-pretty-print.h
4321 (gimple_fold_call): Dump inconsistent devirtualizations; add
4322 sanity check for type based devirtualizations.
4323 * ipa-prop.c: Include ipa-utils.h
4324 (ipa_intraprocedural_devirtualization): Add sanity check.
4325 (try_make_edge_direct_virtual_call): Likewise.
4326
cefce769
EB
43272013-09-23 Eric Botcazou <ebotcazou@adacore.com>
4328
4329 * tree-ssa-ccp.c (insert_clobber_before_stack_restore): Recurse on copy
4330 assignment statements.
4331
a895a2b8
KV
43322013-09-23 Kugan Vivekanandarajah <kuganv@linaro.org>
4333
4334 * gimple-pretty-print.c (dump_ssaname_info): New function.
4335 (dump_gimple_phi): Call it.
4336 (pp_gimple_stmt_1): Likewise.
4337 * tree-core.h (tree_ssa_name): New union ssa_name_info_type field.
4338 (range_info_def): Declare.
4339 * tree-pretty-print.c (pp_double_int): New function.
4340 (dump_generic_node): Call it.
4341 * tree-pretty-print.h (pp_double_int): Declare.
4342 * tree-ssa-alias.c (dump_alias_info): Check pointer type.
4343 * tree-ssanames.h (range_info_def): New structure.
4344 (value_range_type): Move definition here.
4345 (set_range_info, value_range_type, duplicate_ssa_name_range_info):
4346 Declare.
4347 * tree-ssanames.c (make_ssa_name_fn): Check pointer type at
4348 initialization.
4349 (set_range_info): New function.
4350 (get_range_info): Likewise.
4351 (duplicate_ssa_name_range_info): Likewise.
4352 (duplicate_ssa_name_fn): Check pointer type and call
4353 duplicate_ssa_name_range_info.
4354 * tree-ssa-copy.c (fini_copy_prop): Likewise.
4355 * tree-vrp.c (value_range_type): Remove definition, now in
4356 tree-ssanames.h.
7a5911d3 4357 (vrp_finalize): Call set_range_info to update value range of SSA_NAMEs.
a895a2b8
KV
4358 * tree.h (SSA_NAME_PTR_INFO): Macro changed to access via union.
4359 (SSA_NAME_RANGE_INFO): New macro.
4360
984af6ac
RB
43612013-09-23 Richard Biener <rguenther@suse.de>
4362
4363 PR tree-optimization/58464
4364 * tree-ssa-pre.c (phi_trans_lookup): Remove.
7a5911d3 4365 (phi_trans_add): Change to add conditionally on being not present.
984af6ac
RB
4366 (phi_translate_1): Remove recursion detection here.
4367 (phi_translate): Pre-seed the cache with NULL to catch
4368 recursion here in a more generic way.
4369 (bitmap_find_leader): Adjust comment.
4370 (get_representative_for): Dump value-numbers.
4371 (create_expression_by_pieces): Likewise.
4372 (insert_into_preds_of_block): Likewise.
4373
0e26cf79
CB
43742013-09-23 Christian Bruel <christian.bruel@st.com>
4375
4376 PR target/58475
4377 * config/sh/sh.md (movsf_ie): Allow fpul_operand.
4378 * config/sh/predicate.md (arith_reg_operand): Disallow FPUL_REG.
4379
4d0e5b54
JG
43802013-09-23 James Greenhalgh <james.greenhalgh@arm.com>
4381
4382 Revert r202780:
4383 2013-09-20 Renlin Li <renlin.li@arm.com>
4384
7a5911d3
UB
4385 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use
4386 plus_constant.
4d0e5b54
JG
4387 (aarch64_expand_epilogue): Likewise.
4388 (aarch64_legitimize_reload_address): Likewise.
4389
ca081cc8
EB
43902013-09-22 Eric Botcazou <ebotcazou@adacore.com>
4391
4392 * gimplify.c (gimplify_asm_expr): Reset the TREE_CHAIN of clobbers to
4393 NULL_TREE before pushing them onto the vector. Likewise for labels.
4394
8fc53a5f
EB
43952013-09-21 Eric Botcazou <ebotcazou@adacore.com>
4396
4397 * config/ia64/predicates.md (ia64_cbranch_operator): Accept unordered
4398 comparison operators when -fno-trapping-math is in effect.
4399 * config/ia64/ia64.c (ia64_expand_compare): Add support for unordered
4400 comparison operators in TFmode and assert that unsupported operators
4401 cannot reach here.
4402 (ia64_print_operand): Likewise.
4403
44042013-09-21 Jan Hubicka <jh@suse.cz>
0ca6c49f
JH
4405
4406 * x86-tune.def (partial_reg_stall): Disable for CoreI7 and newer.
4407 (sse_typeless_stores): Enable for core
4408 (sse_load0_by_pxor): Likewise.
4409 (four_jump_limit): Disable for core.
4410 (pad_returns): Likewise.
4411 (avoid_vector_decode): Likewise.
4412 (fuse_cmp_and_branch): Enable for cores.
4413 * i386.c (x86_accumulate_outgoing_args): Disable for cores.
4414
578e51e6
JDA
44152013-09-20 John David Anglin <danglin@gcc.gnu.org>
4416
96ce28a3
JDA
4417 PR middle-end/56791
4418 * config/pa/pa.c (pa_option_override): Disable auto increment and
4419 decrement instructions until reload is completed.
4420
578e51e6
JDA
4421 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Define
4422 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2,
4423 and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
4424
6fcd3a13 44252013-09-20 DJ Delorie <dj@redhat.com>
7a5911d3 4426 Nick Clifton <nickc@redhat.com>
6fcd3a13
DD
4427
4428 * config/rl78/rl78.c: Various whitespace and comment tweaks.
4429 (need_to_save): Save bank 0 on interrupts.
4430 (characterize_address): Strip far address wrappers.
4431 (rl78_as_legitimate_address): Likewise.
4432 (transcode_memory_rtx): Likewise.
4433 (rl78_peep_movhi_p): Disable this peephole after devirt.
4434 (rl78_propogate_register_origins): Forget all origins when a
4435 CLOBBER is seen.
4436 * config/rl78/rl78-virt.md: Various whitespace tweaks.
4437 * config/rl78/rl78-real.md: Various whitespace tweaks. Additional
4438 peephole2's.
4439 * config/rl78/rl78.md (sel_rb): Disable for G10 just in case.
4440 * config/rl78/rl78-expand.md (movqi): Check for subregs of consts.
4441 * config/rl78/rl78.h (LINK_SPEC): Pass -gc-sections unless
4442 relocating.
4443 * config/rl78/constraints.md: Various whitespace and paren tweaks.
4444
4a08db33
JDA
44452013-09-20 John David Anglin <danglin@gcc.gnu.org>
4446
4447 * config/pa/pa.md: In "scc" insn patterns, change output template to
4448 handle const0_rtx in reg_or_0_operand operands.
4449
7691132c
JBG
44502013-09-20 Martin Husemann <martin@NetBSD.org>
4451
4452 PR target/56875
4453 * config/vax/vax.c (vax_output_int_move): Use D format specifier.
4454 * config/vax/vax.md (ashldi3, <unnamed>): Ditto.
4455
a3cc13cc
RB
44562013-09-20 Richard Biener <rguenther@suse.de>
4457
4458 PR middle-end/58484
4459 * tree-scalar-evolution.c (struct scev_info_str): Shrink by
4460 remembering SSA name version and block index.
4461 (new_scev_info_str): Adjust.
4462 (hash_scev_info): Likewise. Also hash the block index.
4463 (eq_scev_info): Adjust.
4464 (find_var_scev_info): Likewise.
4465 (struct instantiate_cache_entry): Remove.
4466 (struct instantiate_cache_type): Use a htab to map name, block
4467 to chrec.
4468 (instantiate_cache_type::~instantiate_cache_type): Adjust.
4469 (get_instantiated_value_entry): Likewise.
4470 (hash_idx_scev_info, eq_idx_scev_info): New functions.
4471 (instantiate_scev_name): Adjust.
4472
925f3871
JL
44732013-09-20 Jeff Law <law@redhat.com>
4474
4475 * tree-ssa-dom.c (record_temporary_equivalences): Add comment.
4476
2888c331
YZ
44772013-09-20 Yufeng Zhang <yufeng.zhang@arm.com>
4478
4479 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args):
4480 Call aarch64_simd_expand_args to update op[argc].
4481
0a811e96
BS
44822013-09-20 Basile Starynkevitch <basile@starynkevitch.net>
4483
7a5911d3
UB
4484 * plugin.c (parse_plugin_arg_opt): Accept equal sign inside
4485 plugin argument.
0a811e96 4486
0078f462
BS
44872013-09-20 Basile Starynkevitch <basile@starynkevitch.net>
4488
7a5911d3
UB
4489 * gengtype.c (file_rules): Added rule for *.cc files.
4490 (get_output_file_with_visibility): Give fatal message when no
4491 rules found.
0078f462 4492
d20e48b0
RL
44932013-09-20 Renlin Li <renlin.li@arm.com>
4494
4495 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use plus_constant.
4496 (aarch64_expand_epilogue): Likewise.
4497 (aarch64_legitimize_reload_address): Likewise.
4498
59bb1544
BE
44992013-09-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
4500
4501 PR middle-end/57748
4502 * expr.c (expand_assignment): Remove misalignp code path.
4503
a5430019
MP
45042013-09-20 Marek Polacek <polacek@redhat.com>
4505
4506 PR sanitizer/58413
4507 * ubsan.c (get_ubsan_type_info_for_type): Use TYPE_SIZE instead of
4508 TYPE_PRECISION. Add asserts.
4509
9fed7f3a
RB
45102013-09-20 Richard Biener <rguenther@suse.de>
4511
4512 PR tree-optimization/58453
4513 * tree-loop-distribution.c (distribute_loop): Apply the cost
4514 model for -ftree-loop-distribute-patterns, too.
4515
a820c834
RB
45162013-09-20 Richard Biener <rguenther@suse.de>
4517
4518 PR middle-end/58473
4519 * tree-chrec.h (build_polynomial_chrec): Use gcc_checking_assert,
4520 make type comparison less strict.
4521
3cbe17f7
AM
45222013-09-20 Alan Modra <amodra@gmail.com>
4523
4524 * configure: Regenerate.
4525 * aclocal.m4: Regenerate.
4526
87fccdbb
MP
45272013-09-20 Marek Polacek <polacek@redhat.com>
4528
4529 PR other/58467
4530 * doc/extend.texi: Document that attribute used is meant to be used
4531 on variables with static storage duration.
4532
8928eff3
JJ
45332013-09-19 Jakub Jelinek <jakub@redhat.com>
4534
4535 PR tree-optimization/58472
4536 * tree-vect-stmts.c (vectorizable_store, vectorizable_load): For
4537 simd_lane_access set inv_p = false.
4538 * omp-low.c (lower_rec_input_clauses): Set TREE_NO_WARNING on
4539 the simduid magic VAR_DECL.
4540
b7b28c53
JH
45412013-09-19 Jan Hubicka <jh@suse.cz>
4542
4543 * i386.c (generic_memcpy, generic_memset): Fix 32bit template.
4544
83ae86f5
JL
45452013-09-17 Jeff Law <law@redhat.com>
4546
4547 * tree-ssa-dom.c (record_temporary_equivalences): New function
4548 split out of dom_opt_dom_walker::after_dom_children.
4549 (dom_opt_dom_walker::thread_across_edge): Move common code
4550 in here from dom_opt_dom_walker::after_dom_children.
4551 (dom_opt_dom_walker::after_dom_children): Corresponding simplifictions.
4552
9d532162
JH
45532013-09-19 Jan Hubicka <jh@suse.cz>
4554
4555 * i386.h (TARGET_GENERIC32, TARGET_GENERIC64): Remove.
4556 (TARGET_GENERIC): Use PROCESOR_GENERIC
4557 (enum processor_type): Unify generic32 and 64.
4558 * i386.md (cpu): Likewise.
4559 * x86-tune.def (use_leave): Enable for generic32.
4560 (avoid_vector_decode, slow_imul_imm32_mem, slow_imul_imm8): Likewise.
4561 * athlon.md: Change generic64 to generic in all occurences.
4562 * i386-c.c (ix86_target_macros_internal): Unify generic64 and 32.
4563 (ix86_target_macros_internal): Likewise.
4564 * driver-i386.c (host_detect_local_cpu): Likewise.
7a5911d3
UB
4565 * i386.c (generic64_memcpy, generic64_memset, generic64_cost): Rename
4566 to ..
9d532162
JH
4567 (generic_memcpy, generic_memset, generic_cost): This one.
4568 (generic32_memcpy, generic32_memset, generic32_cost): Remove.
4569 (m_GENERIC32, m_GENERIC64): Remove.
4570 (m_GENERIC): Turn into one flag.
4571 (processor_target): Unify generic tunnings.
4572 (ix86_option_override_internal): Replace generic32/64 by generic.
4573 (ix86_issue_rate): Likewise.
4574 (ix86_adjust_cost): Likewise.
4575
188c7d00
JH
45762013-09-19 Jan Hubicka <jh@suse.cz>
4577
4578 * cgraph.c (cgraph_create_edge_1): Avoid uninitialized read
4579 of speculative flag.
4580
4befd127
JJ
45812013-09-19 Jakub Jelinek <jakub@redhat.com>
4582
4583 * omp-low.c (expand_omp_sections): Always pass len - 1 to
4584 GOMP_sections_start, even if !exit_reachable.
4585
8a26ad39
VM
45862013-09-18 Vladimir Makarov <vmakarov@redhat.com>
4587
4588 * lra-constraints.c (need_for_all_save_p): Use macro
4589 HARD_REGNO_CALL_PART_CLOBBERED.
4590 * lra-lives.c (check_pseudos_live_through_calls): Use the macro to
4591 set up pseudo conflict hard regs.
4592
09487185
MM
45932013-09-18 Michael Meissner <meissner@linux.vnet.ibm.com>
4594
4595 PR target/58452
4596 * config/rs6000/paired.md (movmisalignv2sf): Fix to allow memory
4597 operands.
4598
080cbf9e
VM
45992013-09-18 Vladimir Makarov <vmakarov@redhat.com>
4600
4601 PR rtl-optimization/58438
4602 * lra.c (lra): Clear lra_optional_reload_pseudos in upper loop.
4603 * lra-constraints.c (undo_optional_reloads): Keep optional reloads
4604 from previous subpasses.
4605
a0f70fcb
RE
46062013-09-18 Richard Earnshaw <rearnsha@arm.com>
4607
4608 * arm.c (arm_get_frame_offsets): Validate architecture supports
4609 LDRD/STRD before accepting the tuning preference.
4610 (arm_expand_prologue): Likewise.
4611 (arm_expand_epilogue): Likewise.
4612
0547c9b6
RB
46132013-09-18 Richard Biener <rguenther@suse.de>
4614
4615 PR tree-optimization/58417
4616 * tree-chrec.c (chrec_fold_plus_1): Assert that we do not
4617 have chrecs with symbols defined in the loop as operands.
4618 (chrec_fold_multiply): Likewise.
4619 * tree-scalar-evolution.c (interpret_rhs_expr): Instantiate
4620 parameters before folding binary operations.
4621 (struct instantiate_cache_entry_hasher): Remove.
4622 (struct instantiate_cache_type): Use a pointer-map.
4623 (instantiate_cache_type::instantiate_cache_type): New function.
4624 (instantiate_cache_type::get): Likewise.
4625 (instantiate_cache_type::set): Likewise.
4626 (instantiate_cache_type::~instantiate_cache_type): Adjust.
4627 (get_instantiated_value_entry): Likewise.
4628 (global_cache): New global.
4629 (instantiate_scev_r, instantiate_scev_poly, instantiate_scev_binary,
4630 instantiate_array_ref, instantiate_scev_convert, instantiate_scev_3,
4631 instantiate_scev_2, instantiate_scev_1): Do not pass along cache.
4632 (instantiate_scev_name): Adjust.
4633 (instantiate_scev): Construct global instead of local cache.
4634 (resolve_mixers): Likewise.
4635
309dc1aa
DM
46362013-09-18 Daniel Morris <danielm@ecoscentric.com>
4637 Paolo Carlini <paolo.carlini@oracle.com>
4638
4639 PR c++/58458
4640 * doc/implement-cxx.texi: Fix references to the C++ standards.
4641
995a1b4a
JJ
46422013-09-18 Jakub Jelinek <jakub@redhat.com>
4643
4644 * omp-low.c (copy_var_decl): Copy DECL_ATTRIBUTES.
4645 * tree-vect-data-refs.c (vect_analyze_data_refs): For
4646 simd_lane_access drs, update also DR_ALIGNED_TO.
4647
ce6923c5
MP
46482013-09-18 Marek Polacek <polacek@redhat.com>
4649
4650 PR sanitizer/58411
4651 * doc/extend.texi: Document no_sanitize_undefined attribute.
4652 * builtins.c (fold_builtin_0): Don't sanitize function if it has the
4653 no_sanitize_undefined attribute.
4654
d30d00a2
NC
46552013-09-18 Nick Clifton <nickc@redhat.com>
4656
4657 * config/msp430/msp430.h (ASM_SPEC): Pass -md on to the assembler.
4658 (ASM_DECLARE_FUNCTION_NAME): Define.
4659
4d9192b5
TS
46602013-09-17 Trevor Saunders <tsaunders@mozilla.com>
4661
4662 * compare-elim.c (find_comparison_dom_walker): New class
4663 (find_comparisons_in_bb): Rename to
4664 find_comparison_dom_walker::before_dom_children
4665 (find_comparisons): Adjust
4666 * domwalk.c (walk_dominator_tree): Rename to dom_walker::walk, and
4667 adjust.
4668 (init_walk_dominator_tree, fini_walk_dominator_tree): Remove
4669 * domwalk.h (dom_walk_data): Convert it To a class dom_walker.
4670 (init_walk_dominator_tree): Remove declaration.
4671 (fini_walk_dominator_tree): Remove declaration.
4672 * fwprop.c (single_def_use_dom_walker): New class
4673 (single_def_use_enter_block): Convert to
4674 single_def_use_dom_walker::before_dom_children.
4675 (single_def_use_leave_block): Convert to
4676 single_def_use_dom_walker::after_dom_children.
4677 (build_single_def_use_links): Adjust.
4678 * gimple-ssa-strength-reduction.c (find_candidates_dom_walker): New
4679 class.
4680 (find_candidates_in_block): Convert to
4681 find_candidates_dom_walker::before_dom_children.
4682 (execute_strength_reduction): Adjust.
4683 * graphite-sese-to-poly.c (struct bsc, build_sese_conditions): Remove.
4684 (sese_dom_walker): New class.
4685 (sese_dom_walker::sese_dom_walker): New constructor.
4686 (sese_dom_walker::~sese_dom_walker): New destructor.
4687 (build_sese_conditions_before): Convert to
4688 sese_dom_walker::before_dom_children.
4689 (build_sese_conditions_after): Convert to
4690 sese_dom_walker::after_dom_children.
4691 (build_poly_scop): Adjust
4692 * tree-into-ssa.c (rewrite_dom_walker): New class
4693 (rewrite_enter_block): Convert to
4694 rewrite_dom_walker::before_dom_children.
4695 (rewrite_leave_block): Convert to
4696 rewrite_dom_walker::after_dom_children.
4697 (rewrite_update_dom_walker): New class.
4698 (rewrite_update_enter_block): Convert to
4699 rewrite_update_dom_walker::before_dom_children.
4700 (rewrite_update_leave_block): Convert to
4701 rewrite_update_dom_walker::after_dom_children.
4702 (rewrite_blocks, rewrite_into_ssa): Adjust.
4703 (mark_def_dom_walker): New class.
4704 (mark_def_dom_walker::mark_def_dom_walker): New constructor.
4705 (mark_def_dom_walker::~mark_def_dom_walker): New destructor.
4706 (mark_def_sites_blocks): Convert to
4707 mark_def_dom_walker::before_dom_children.
4708 (mark_def_site_blocks): Remove.
4709 * tree-ssa-dom.c (dom_opt_dom_walker): New class.
4710 (tree_ssa_dominator_optimize): Adjust.
4711 (dom_thread_across_edge): Convert to method
4712 dom_opt_dom_walker::thread_across_edge.
4713 (dom_opt_enter_block): Convert to member function
4714 dom_opt_dom_walker::before_dom_children.
4715 (dom_opt_leave_block): Convert to member function
4716 dom_opt_dom_walker::after_dom_children.
4717 * tree-ssa-dse.c (dse_dom_walker): New class.
4718 (dse_enter_block): Convert to member function
4719 dse_dom_walker::before_dom_children.
4720 (tree_ssa_dse): Adjust.
4721 * tree-ssa-loop-im.c (invariantness_dom_walker): New class.
4722 (determine_invariantness_stmt): Convert to method
4723 invariantness_dom_walker::before_dom_children.
4724 (determine_invariantness): Remove
4725 (move_computations_dom_walker): New class.
4726 (move_computations_stmt): Convert to method
4727 move_computations_dom_walker::before_dom_children.
4728 (move_computations, tree_ssa_lim): Adjust.
4729 * tree-ssa-phiopt.c (nontrapping_dom_walker): new class
4730 (nt_init_block): Make method
4731 notrappping_dom_walker::before_dom_children.
4732 (nt_fini_block): Make
4733 method nontrapping_dom_walker::after_dom_children.
4734 (get_non_trapping): Adjust.
4735 * tree-ssa-pre.c (eliminate_dom_walker): New class.
4736 (eliminate_bb): Make method eliminate_dom_walker::before_dom_children.
4737 (eliminate_leave_block): Make method.
4738 eliminate_dom_walker::after_dom_children.
4739 (eliminate): Adjust
4740 * tree-ssa-strlen.c (strlen_dom_walker): New class.
4741 (strlen_enter_block): Make method
4742 strlen_dom_walker::before_dom_children.
4743 (strlen_leave_block): Make
4744 method strlen_dom_walker::after_dom_children.
4745 (tree_ssa_strlen): Adjust.
4746 * tree-ssa-uncprop.c (uncprop_dom_walker): New class.
4747 (tree_ssa_uncprop): Adjust.
4748 (uncprop_leave_block): Make method
4749 uncprop_dom_walker::after_dom_children.
4750 (uncprop_leave_block): Make method
4751 uncprop_dom_walker::before_dom_children.
4752
3b3cc26b
BC
47532013-09-18 Bin Cheng <bin.cheng@arm.com>
4754
7a5911d3
UB
4755 * config/arm/arm.c (thumb1_reorg): Search for flag setting insn before
4756 branch in same basic block. Check both src and dest of the move insn.
3b3cc26b 4757
b5ba3a9b
NC
47582013-09-17 Nick Clifton <nickc@redhat.com>
4759
4760 * config/rl78/rl78-real.md (bf): New pattern.
4761 (bt): New pattern.
4762 * config/rl78/rl78.c (rl78_print_operand_1): Handle %B.
4763 (rl78_print_operand): Do not put a # before a %B.
4764 * config/rl78/rl78.opt: Tweak doc strings.
4765
09d5094b
DD
47662013-09-17 DJ Delorie <dj@redhat.com>
4767
4768 * config/rl78/constraints.md (Wcv): Allow up to $r31.
4769 * config/rl78/rl78.c (rl78_asm_file_start: Likewise.
4770 (rl78_option_override): Likewise, if -mallregs.
4771 (is_virtual_register): Likewise.
4772 * config/rl78/rl78.h (reg_class): Extend VREGS to $r31.
4773 (REGNO_OK_FOR_BASE_P): Likewise.
4774 * config/rl78/rl78.opt (-mallregs): New.
4775
2ba1dca1
NC
47762013-09-17 Nick Clifton <nickc@redhat.com>
4777
4778 * config/rl78/rl78.c (need_to_save): Change return type to bool.
4779 For interrupt functions: save all call clobbered registers if the
4780 interrupt handler is not a leaf function.
4781 (rl78_expand_prologue): Always recompute the frame information.
4782 For interrupt functions: only select bank 0 if one of the bank 0
4783 registers is going to be psuhed.
4784
2e7c3f21
DD
47852013-09-17 DJ Delorie <dj@redhat.com>
4786
4787 * config/rl78/constraints.md: For each W* constraint, rename to C*
4788 and create a W* constraint that checks for an optional ES: prefix
4789 pattern also.
4790 * config/rl78/rl78.md (UNS_ES_ADDR): New.
4791 (es_addr): New. Used to wrap far addresses.
4792 * config/rl78/rl78-protos.h (rl78_es_addr): New.
4793 (rl78_es_base): New.
4794 * config/rl78/rl78.c (rl78_as_legitimate_address): Accept "unspec"
4795 wrapped far addresses.
4796 (rl78_print_operand_1): Unwrap far addresses before processing.
4797 (rl78_lo16): Wrap far addresses in unspecs.
4798 (rl78_es_addr): New.
4799 (rl78_es_base): New.
4800 (insn_ok_now): Check for not-yet-wrapped far addresses.
4801 (transcode_memory_rtx): Properly re-wrap far addresses.
4802
5c26a69a
SH
48032013-09-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
4804
4805 * config/sparc/t-rtems: Add leon3 multilibs.
4806
181f5f3e
CH
48072013-09-17 Cong Hou <congh@google.com>
4808
4809 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Fix a bug
4810 when checking the dot production pattern. The type of rhs operand
4811 of multiply is now checked correctly.
4812
8d34e421
JL
48132013-09-17 Jeff Law <law@redhat.com>
4814
4815 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
4816 edge implied equivalences into successor phis.
4817 * tree-ssa-threadupdate.c (phi_args_equal_on_edges): Moved into
4818 here from tree-ssa-threadedge.c.
4819 (mark_threaded_blocks): When threading through a joiner, if both
4820 successors of the joiner's clone reach the same block, verify the
4821 PHI arguments are equal. If not, cancel the jump threading request.
4822 * tree-ssa-threadedge.c (phi_args_equal_on_edges): Moved into
4823 tree-ssa-threadupdate.c
4824 (thread_across_edge): Don't check PHI argument equality when
4825 threading through joiner block here.
7a5911d3 4826
c152901f
AM
48272013-09-17 Andrew MacLeod <amacleod@redhat.com>
4828
4829 * tree-flow.h (ssa_undefined_value_p): Remove prototype.
4830 * tree-ssa.c (ssa_undefined_value_p): Move pass independent parts here.
7a5911d3
UB
4831 (warn_uninit, warn_uninitialized_vars,
4832 execute_early_warn_uninitialized, make_pass_early_warn_uninitialized):
4833 Move to tree-ssa-uninit.c.
78cedfb1 4834 * tree-ssa-uninit.c (ssa_undefined_value_p): Move to tree-ssa.c.
7a5911d3 4835 (has_undefined_value_p): New. Pass dependant parts of
c152901f
AM
4836 ssa_undefined_value_p.
4837 (uninit_undefined_value_p): Use has_undefined_value_p.
7a5911d3
UB
4838 (warn_uninit, warn_uninitialized_vars,
4839 execute_early_warn_uninitialized, make_pass_early_warn_uninitialized):
4840 Move from tree-ssa.c.
4841 * tree-ssa.h: Adjust prototypes.
c152901f 4842
b631d45a
JH
48432013-09-17 Jan Hubicka <jh@suse.cz>
4844
4845 PR middle-end/58332
4846 * cif-code.def (FUNCTION_NOT_OPTIMIZED): New CIF code.
4847 * ipa-inline.c (can_inline_edge_p): Do not downgrade
4848 FUNCTION_NOT_OPTIMIZED.
4849 * ipa-inline-analysis.c (compute_inline_parameters): Function
4850 not optimized is not inlinable unless it is alwaysinline.
4851 (inline_analyze_function): Force calls in not optimized
4852 function not inlinable.
4853
5b79657a
JH
48542013-09-17 Jan Hubicka <jh@suse.cz>
4855
4856 PR middle-end/58329
4857 * ipa-devirt.c (ipa_devirt): Be ready for symtab_nonoverwritable_alias
4858 to return NULL.
4859 * ipa.c (function_and_variable_visibility): Likewise.
4860 * ipa-profile.c (ipa_profile): Likewise.
4861
27442c24
BE
48622013-09-17 Bernd Edlinger <bernd.edlinger@hotmail.de>
4863
4864 PR ipa/58398
4865 * cgraph.c (cgraph_function_body_availability): Check for ifunc
4866 attribute, and don't inline the resolver in this case.
4867
753b9bc3
TJ
48682013-09-17 Teresa Johnson <tejohnson@google.com>
4869
4870 * coverage.c (get_coverage_counts): Add missing newline.
4871
e3d3cfb4
KT
48722013-09-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4873
4874 PR tree-optimization/58088
4875 * fold-const.c (mask_with_trailing_zeros): New function.
4876 (fold_binary_loc): Make sure we don't recurse infinitely
4877 when the X in (X & C1) | C2 is a tree of the form (Y * K1) & K2.
4878 Use mask_with_trailing_zeros where appropriate.
4879
9a0ac98f
YR
48802013-09-17 Yuri Rumyantsev <ysrumyan@gmail.com>
4881
4882 * config/i386/i386.c (distance_agu_use_in_bb) : Proper initialization
4883 of 'prev' var to get better distance estimation.
4884
78bbd765
EB
48852013-09-17 Eric Botcazou <ebotcazou@adacore.com>
4886
4887 * tree-inline.h (struct copy_body_data): Add transform_parameter.
4888 * tree-inline.c (is_parameter_of): New predicate.
4889 (remap_gimple_op_r): Do not propagate TREE_THIS_NOTRAP on MEM_REF if
4890 a parameter has been remapped.
4891 (copy_tree_body_r): Likewise on INDIRECT_REF and MEM_REF.
4892 (optimize_inline_calls): Initialize transform_parameter.
4893 (copy_gimple_seq_and_replace_locals): Likewise.
4894 (tree_function_versioning): Likewise.
4895 (maybe_inline_call_in_expr): Likewise.
4896
cad055a4
NC
48972013-09-17 Nick Clifton <nickc@redhat.com>
4898
4899 * config/msp430/msp430-protos.h: Add prototypes for new functions.
4900 * config/msp430/msp430.c (msp430_preserve_reg_p): Add support for
4901 interrupt handlers.
4902 (is_attr_func): New function.
4903 (msp430_is_interrupt_func): New function.
4904 (is_naked_func): New function.
4905 (is_reentrant_func): New function.
4906 (is_critical_func): New function.
4907 (msp430_start_function): Add annotations for function attributes.
4908 (msp430_attr): New function.
4909 (msp430_attribute_table): New.
4910 (msp430_function_section): New function.
4911 (TARGET_ASM_FUNCTION_SECTION): Define.
4912 (msp430_builtin): New enum.
4913 (msp430_init_builtins): New function.
4914 (msp430_builtin_devl): New function.
4915 (msp430_expand_builtin): New function.
4916 (TARGET_INIT_BUILTINS): Define.
4917 (TARGET_EXPAND_BUILTINS): Define.
4918 (TARGET_BUILTIN_DECL): Define.
4919 (msp430_expand_prologue): Add support for naked, interrupt,
4920 critical and reentrant functions.
4921 (msp430_expand_epilogue): Likewise.
4922 (msp430_print_operand): Handle 'O' character.
4923 * config/msp430/msp430.h (TARGET_CPU_CPP_BUILTINS): Define
4924 NO_TRAMPOLINES.
4925 * config/msp430/msp430.md (unspec): Add UNS_DINT, UNS_EINT,
4926 UNS_PUSH_INTR, UNS_POP_INTR, UNS_BIC_SR, UNS_BIS_SR.
4927 (pushm): Use a 'n' rather than an 'i' constraint.
4928 (msp_return): Add generation of the interrupt return instruction.
4929 (disable_interrupts): New pattern.
4930 (enable_interrupts): New pattern.
4931 (push_intr_state): New pattern.
4932 (pop_intr_state): New pattern.
4933 (bic_SR): New pattern.
4934 (bis_SR): New pattern.
4935 * doc/extend.texi: Document MSP430 function attributes and builtin
4936 functions.
4937
deb6c11a
RB
49382013-09-17 Richard Biener <rguenther@suse.de>
4939
4940 PR tree-optimization/58432
4941 * tree-loop-distribution.c (tree_loop_distribution): Also
4942 scan PHIs for outside loop uses and seed a partition from them.
4943
c068654b
BC
49442013-09-17 Bin Cheng <bin.cheng@arm.com>
4945
4946 * gimple-ssa-strength-reduction.c (backtrace_base_for_ref): New.
4947 (restructure_reference): Call backtrace_base_for_ref.
4948
567969e4
AM
49492013-09-17 Alan Modra <amodra@gmail.com>
4950
4951 PR target/57589
7a5911d3
UB
4952 * config/rs6000/driver-rs6000.c (elf_platform): Revert 2013-06-11
4953 patch.
567969e4 4954
5c0029de
DD
49552013-09-16 DJ Delorie <dj@redhat.com>
4956
4957 * config/rl78/rl78.c (rl78_asm_file_start): Specify alternate
4958 vregs location for RL78/G10.
4959 (rl78_expand_prologue): Avoid SEL on G10.
4960 (rl78_expand_epilogue): Likewise.
4961 (rl78_peep_movhi_p): Can't move a constant to memory in HImode.
4962 * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
4963 __RL78_G10__ when appropriate.
4964 (ASM_SPEC): Pass -mg10 along to the assembler.
4965 * config/rl78/rl78.md (sel_rb): Disable for G10.
4966 * config/rl78/rl78.opt: Add -mg10 option.
4967 * config/rl78/t-rl78: Add -mg10 multilib.
4968
ea0f3e87
XDL
49692013-09-16 Xinliang David Li <davidxl@google.com>
4970
4971 * tree-if-conv.c (main_tree_if_conversion): Check new flag.
4972 * omp-low.c (omp_max_vf): Ditto.
4973 (expand_omp_simd): Ditto.
4974 * tree-vectorizer.c (vectorize_loops): Ditto.
4975 (gate_vect_slp): Ditto.
4976 (gate_increase_alignment): Ditto.
4977 * tree-ssa-pre.c (inhibit_phi_insertion): Ditto.
4978 * tree-ssa-loop.c (gate_tree_vectorize): Ditto.
4979 (gate_tree_vectorize): Name change.
4980 (tree_vectorize): Ditto.
4981 (pass_vectorize::gate): Call new function.
4982 (pass_vectorize::execute): Ditto.
7a5911d3 4983 * opts.c: O3 default setting change.
ea0f3e87
XDL
4984 (finish_options): Check new flag.
4985 * doc/invoke.texi: Document new flags.
4986 * common.opt: New flags.
4987
4f3da2e5
AS
49882013-09-16 Andreas Schwab <schwab@linux-m68k.org>
4989
4990 * doc/tm.texi.in (Cond Exec Macros): Remove node.
4991 (Condition Code): Don't reference it.
4992 * doc/tm.texi: Regenerate.
4993
aa940f7c
VM
49942013-09-16 Vladimir Makarov <vmakarov@redhat.com>
4995
4996 PR middle-end/58418
4997 * lra-constraints.c (undo_optional_reloads): Consider all optional
4998 reload even if it did not get a hard reg.
4999
e645e942
TJ
50002013-09-16 Teresa Johnson <tejohnson@google.com>
5001
5002 * dumpfile.c (dump_loc): Remove newline emission.
5003 * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Add newline
5004 emission to dump_printf_loc calls where missing.
5005 (vect_mark_for_runtime_alias_test): Ditto.
5006 (vect_analyze_data_ref_dependence): Ditto.
5007 (vect_analyze_data_ref_dependences): Ditto.
5008 (vect_slp_analyze_data_ref_dependence): Ditto.
5009 (vect_slp_analyze_data_ref_dependences): Ditto.
5010 (vect_compute_data_ref_alignment): Ditto.
5011 (vect_update_misalignment_for_peel): Ditto.
5012 (vect_verify_datarefs_alignment): Ditto.
5013 (vector_alignment_reachable_p): Ditto.
5014 (vect_get_data_access_cost): Ditto.
5015 (vect_enhance_data_refs_alignment): Ditto.
5016 (vect_find_same_alignment_drs): Ditto.
5017 (vect_analyze_data_refs_alignment): Ditto.
5018 (vect_analyze_group_access): Ditto.
5019 (vect_analyze_data_ref_access): Ditto.
5020 (vect_analyze_data_ref_accesses): Ditto.
5021 (vect_prune_runtime_alias_test_list): Ditto.
5022 (vect_analyze_data_refs): Ditto.
5023 (vect_create_addr_base_for_vector_ref): Ditto.
5024 (vect_create_data_ref_ptr): Ditto.
5025 (vect_grouped_store_supported): Ditto.
5026 (vect_grouped_load_supported): Ditto.
5027 * value-prof.c (check_counter): Ditto.
5028 (check_ic_target): Ditto.
5029 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Ditto.
5030 (vect_recog_widen_mult_pattern): Ditto.
5031 (vect_recog_widen_sum_pattern): Ditto.
5032 (vect_recog_over_widening_pattern): Ditto.
5033 (vect_recog_widen_shift_pattern): Ditto.
5034 (vect_recog_rotate_pattern): Ditto.
5035 (vect_recog_vector_vector_shift_pattern): Ditto.
5036 (vect_recog_divmod_pattern): Ditto.
5037 (vect_recog_mixed_size_cond_pattern): Ditto.
5038 (vect_recog_bool_pattern): Ditto.
5039 (vect_pattern_recog_1): Ditto.
5040 (vect_pattern_recog): Ditto.
5041 * tree-vect-loop.c (vect_determine_vectorization_factor): Ditto.
5042 (vect_is_simple_iv_evolution): Ditto.
5043 (vect_analyze_scalar_cycles_1): Ditto.
5044 (vect_get_loop_niters): Ditto.
5045 (vect_analyze_loop_1): Ditto.
5046 (vect_analyze_loop_form): Ditto.
5047 (vect_analyze_loop_operations): Ditto.
5048 (vect_analyze_loop_2): Ditto.
5049 (vect_analyze_loop): Ditto.
5050 (report_vect_op): Ditto.
5051 (vect_is_slp_reduction): Ditto.
5052 (vect_is_simple_reduction_1): Ditto.
5053 (vect_get_known_peeling_cost): Ditto.
5054 (vect_estimate_min_profitable_iters): Ditto.
5055 (vect_model_reduction_cost): Ditto.
5056 (vect_model_induction_cost): Ditto.
5057 (get_initial_def_for_induction): Ditto.
5058 (vect_create_epilog_for_reduction): Ditto.
5059 (vectorizable_reduction): Ditto.
5060 (vectorizable_induction): Ditto.
5061 (vectorizable_live_operation): Ditto.
5062 (vect_loop_kill_debug_uses): Ditto.
5063 (vect_transform_loop): Ditto.
5064 * tree-vect-stmts.c (vect_mark_relevant): Ditto.
5065 (vect_stmt_relevant_p): Ditto.
5066 (process_use): Ditto.
5067 (vect_mark_stmts_to_be_vectorized): Ditto.
5068 (vect_model_simple_cost): Ditto.
5069 (vect_model_promotion_demotion_cost): Ditto.
5070 (vect_model_store_cost): Ditto.
5071 (vect_get_store_cost): Ditto.
5072 (vect_model_load_cost): Ditto.
5073 (vect_get_load_cost): Ditto.
5074 (vect_init_vector_1): Ditto.
5075 (vect_get_vec_def_for_operand): Ditto.
5076 (vect_finish_stmt_generation): Ditto.
5077 (vectorizable_call): Ditto.
5078 (vectorizable_conversion): Ditto.
5079 (vectorizable_assignment): Ditto.
5080 (vectorizable_shift): Ditto.
5081 (vectorizable_operation): Ditto.
5082 (vectorizable_store): Ditto.
5083 (vectorizable_load): Ditto.
5084 (vectorizable_condition): Ditto.
5085 (vect_analyze_stmt): Ditto.
5086 (vect_transform_stmt): Ditto.
5087 (vect_is_simple_use): Ditto.
5088 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): Ditto.
5089 (vect_can_advance_ivs_p): Ditto.
5090 (vect_update_ivs_after_vectorizer): Ditto.
5091 (vect_do_peeling_for_loop_bound): Ditto.
5092 (vect_gen_niters_for_prolog_loop): Ditto.
5093 (vect_update_inits_of_drs): Ditto.
5094 (vect_create_cond_for_alias_checks): Ditto.
5095 * tree-vect-slp.c (vect_get_and_check_slp_defs): Ditto.
5096 (vect_build_slp_tree_1): Ditto.
5097 (vect_supported_load_permutation_p): Ditto.
5098 (vect_analyze_slp_instance): Ditto.
5099 (vect_analyze_slp): Ditto.
5100 (vect_make_slp_decision): Ditto.
5101 (vect_detect_hybrid_slp): Ditto.
5102 (vect_bb_vectorization_profitable_p): Ditto.
5103 (vect_slp_analyze_bb_1): Ditto.
5104 (vect_update_slp_costs_according_to_vf): Ditto.
5105 (vect_get_mask_element): Ditto.
5106 (vect_transform_slp_perm_load): Ditto.
5107 (vect_schedule_slp_instance): Ditto.
5108 (vect_schedule_slp): Ditto.
5109 (vect_slp_transform_bb): Ditto.
5110 * profile.c (read_profile_edge_counts): Ditto.
5111 (compute_branch_probabilities): Ditto.
5112 * coverage.c (get_coverage_counts): Ditto.
5113
46f851f3
DN
51142013-09-16 Diego Novillo <dnovillo@google.com>
5115
7a5911d3 5116 * tree-core.h: Add missing comment lines from refactoring of tree.h.
46f851f3 5117
1632a686
JH
51182013-09-16 Jan Hubicka <jh@suse.cz>
5119
5120 * gimple-fold.c (can_refer_decl_in_current_unit_p): Do not accept
7a5911d3 5121 abstract functions; for static functions check the presence of body.
1632a686 5122
828e70c1
JG
51232013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
5124
5125 * config/aarch64/aarch64-simd-builtins.def (fma): New.
5126 * config/aarch64/aarch64-simd.md
5127 (aarch64_mla_elt<mode>): New.
5128 (aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
5129 (aarch64_mls_elt<mode>): Likewise.
5130 (aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
5131 (aarch64_fma4_elt<mode>): Likewise.
5132 (aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
5133 (aarch64_fma4_elt_to_128v2df): Likewise.
5134 (aarch64_fma4_elt_to_64df): Likewise.
5135 (fnma<mode>4): Likewise.
5136 (aarch64_fnma4_elt<mode>): Likewise.
5137 (aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
5138 (aarch64_fnma4_elt_to_128v2df): Likewise.
5139 (aarch64_fnma4_elt_to_64df): Likewise.
5140 * config/aarch64/iterators.md (VDQSF): New.
5141 * config/aarch64/arm_neon.h
5142 (vfm<as><sdq>_lane<q>_f<32, 64>): Convert to C implementation.
5143 (vml<sa><q>_lane<q>_<fsu><16, 32, 64>): Likewise.
5144
779aea46
JG
51452013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
5146
5147 * config/aarch64/aarch64-simd.md (aarch64_mul3_elt<mode>): New.
5148 (aarch64_mul3_elt_<vswap_width_name><mode>): Likewise.
5149 (aarch64_mul3_elt_to_128df): Likewise.
5150 (aarch64_mul3_elt_to_64v2df): Likewise.
5151 * config/aarch64/iterators.md (VEL): Also handle DFmode.
5152 (VMUL): New.
5153 (VMUL_CHANGE_NLANES) Likewise.
5154 (h_con): Likewise.
5155 (f): Likewise.
5156 * config/aarch64/arm_neon.h
5157 (vmul<q>_lane<q>_<suf><16,32,64>): Convert to C implementation.
5158
a407a750
JG
51592013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
5160
5161 * config/aarch64/arm_neon.h
5162 (vcvtx_high_f32_f64): Fix parameters.
5163
f77e2d2d 51642013-09-16 Jan-Benedict Glaw <jbglaw@lug-owl.de>
a5bd71fa 5165 Uros Bizjak <ubizjak@gmail.com>
f77e2d2d 5166
a5bd71fa 5167 * config/alpha.c: Include tree-ssanames.h.
f77e2d2d 5168
36875e8f
RB
51692013-09-16 Richard Biener <rguenther@suse.de>
5170
5171 * tree-loop-distribution.c (enum rdg_dep_type): Add control_dd.
5172 (dot_rdg_1): Handle control_dd.
5173 (create_edge_for_control_dependence): New function.
5174 (create_rdg_edges): Add control dependences if asked for.
5175 (build_rdg): Likewise.
5176 (generate_loops_for_partition): If there are not necessary
5177 control stmts remove all their dependencies.
5178 (collect_condition_stmts, rdg_flag_loop_exits): Remove.
5179 (distribute_loop): Pass on control dependences.
5180 (tree_loop_distribution): Compute control dependences and remove
5181 restriction on number of loop nodes.
5182
96e24d49
JJ
51832013-09-16 Jakub Jelinek <jakub@redhat.com>
5184
5185 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Return early
5186 for internal calls.
5187
40dbb05c
RS
51882013-09-16 Richard Sandiford <rdsandiford@googlemail.com>
5189
5190 * cse.c (try_const_anchors): Punt on CC modes.
5191
97191ad0
JBG
51922013-09-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
5193
5194 * config/vax/constraints.md (T): Add missing CONSTANT_P check.
5195
403a3fb7
JDA
51962013-09-14 John David Anglin <danglin@gcc.gnu.org>
5197
5198 PR target/58382
5199 * config/pa/pa.c (pa_expand_prologue): Change mode in gen_rtx_POST_INC
5200 calls to word_mode.
5201
fb5610fb
IS
52022013-09-14 Iain Sandoe <iain@codesourcery.com>
5203
5204 PR target/48094
5205 * config/darwin.c (darwin_objc2_section): Note if ObjC Metadata is
f77e2d2d
JBG
5206 seen.
5207 (darwin_objc1_section): Likewise.
fb5610fb
IS
5208 (darwin_file_end): Emit Image Info section when required.
5209
afdec9bd
JH
52102013-09-14 Jan Hubicka <jh@suse.cz>
5211
5212 * tree-into-ssa.c (gate_into_ssa): New.
5213 (pass_data_build_ssa): Use it.
5214 * cgraph.h (expand_thunk): Update prototype.
5215 * cgraphunit.c (analyze_function): Expand thunks early.
5216 (expand_thunk): Fix DECL_CONTEXT of reust_decl;
5217 build proper cgraph; set in_ssa_p; clear bogus TREE_ASM_WRITTEN;
5218 set lowered flag; do not add new function.
5219 (assemble_thunks_and_aliases): Update.
5220 * tree-ssa.c (gate_init_datastructures): New gate.
5221 (pass_data_init_datastructures): Use it.
5222
492d1e0a
IS
52232013-09-14 Iain Sandoe <iain@codesourcery.com>
5224
5225 PR target/58269
f77e2d2d 5226 * config/i386/i386.c (ix86_function_arg_regno_p): Make Darwin use the
492d1e0a
IS
5227 xmm register set described in the psABI.
5228
d13c6b70
EG
52292013-09-13 Evgeny Gavrin <e.gavrin@samsung.com>
5230
f77e2d2d
JBG
5231 * dwarf2out.c (should_emit_struct_debug): Add check
5232 for type_decl variable is not NULL.
d13c6b70 5233
88b0e79e
JC
52342013-09-13 Jacek Caban <jacek@codeweavers.com>
5235
5236 * config.gcc: Use new winnt-c.c target hooks
5237 * config/t-winnt: New file
5238 * config/winnt-c.c: New file
5239 * doc/tm.texi.in: Document new hook
5240 * doc/tm.texi: Regenerated
5241
19ba6aab
JH
52422013-09-13 Jan Hubicka <jh@suse.cz>
5243
5244 PR middle-end/58094
5245 * ipa-inline.c (check_callers): New function.
5246 (check_caller_edge): Remove.
5247 (want_inline_function_to_all_callers_p): Also permit alises that are
5248 called dirrectly.
5249 (inline_to_all_callers): Terminate the walk when devirtualization
5250 introduce new calls.
5251
a93c18c8
JH
52522013-09-13 Jan Hubicka <jh@suse.cz>
5253
5254 * ipa-inline-analysis.c (struct growth_data): Add node.
5255 (do_estimate_growth_1): Fix detection of recursion.
5256
f3b331d1
JJ
52572013-09-13 Jakub Jelinek <jakub@redhat.com>
5258
5259 PR tree-optimization/58392
5260 * tree-cfg.c (move_sese_region_to_fn): Rename loop variable
5261 to avoid shadowing of outer loop variable. If
5262 saved_cfun->has_simduid_loops or saved_cfun->has_force_vect_loops,
5263 replace_by_duplicate_decl simduid of loops that have it set and
5264 set dest_cfun->has_simduid_loops and/or
5265 dest_cfun->has_force_vect_loops.
5266 * omp-low.c (build_outer_var_ref): Call maybe_lookup_decl_in_outer_ctx
5267 instead of maybe_lookup_decl.
5268 * tree-inline.c (copy_loops): Change blocks_to_copy argument to id.
5269 Use id->blocks_to_copy instead of blocks_to_copy. Adjust recursive
5270 call. Copy over force_vect and copy and remap simduid. Set
5271 cfun->has_simduid_loops and/or cfun->has_force_vect_loops.
5272 (copy_cfg_body): Remove blocks_to_copy argument. Use
5273 id->blocks_to_copy instead of blocks_to_copy. Adjust copy_loops
5274 caller. Don't set cfun->has_simduid_loops and/or
5275 cfun->has_force_vect_loops here.
5276 (copy_body): Remove blocks_to_copy argument. Adjust copy_cfg_body
5277 caller.
5278 (expand_call_inline, tree_function_versioning): Adjust copy_body
5279 callers.
5280
ae6d0907
MJ
52812013-09-13 Martin Jambor <mjambor@suse.cz>
5282
5283 PR bootstrap/58388
5284 * ipa-prop.c (try_make_edge_direct_simple_call): Be less strict in
5285 the assert if the edge was a speculative one.
5286
2fd5894f
RB
52872013-09-13 Richard Biener <rguenther@suse.de>
5288
5289 * tree-data-ref.h (known_dependences_p): Move here ...
5290 * tree-loop-distribution.c (known_dependences_p): ... from here.
5291 (dump_rdg_component, debug_rdg_component): Remove.
5292 (dump_rdg): Adjust.
5293 (generate_loops_for_partition): Use gimple_uid instead of
5294 relying on matching stmt visit order.
5295 (rdg_build_partitions): Take starting stmt vector.
5296 (ldist_gen): Merge into ...
5297 (distribute_loop): ... this function. Do not compute starting
5298 vertices vector.
5299 * tree-cfg.c (gimple_duplicate_bb): Copy UID for PHIs.
5300
86eb4bd7
KT
53012013-09-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5302
5303 * config/arm/arm.md (arm_cmpsi_insn): Split rI alternative.
5304 Set type attribute correctly. Set predicable_short_it attribute.
5305 (cmpsi_shiftsi): Remove %? from output template.
5306
83a95546
RB
53072013-09-13 Richard Biener <rguenther@suse.de>
5308
5309 * tree-loop-distribution.c (struct rdg_component,
5310 rdg_defs_used_in_other_loops_p, free_rdg_components,
5311 rdg_build_components): Remove.
5312 (stmts_from_loop): Do not record virtual PHIs.
5313 (generate_loops_for_partition): Skip virtual PHIs.
5314 (build_rdg_partition_for_component): Rename to ...
5315 (build_rdg_partition_for_vertex): ... this and adjust.
5316 (rdg_build_partitions): Take a vector of starting vertices
5317 instead of components. Remove unnecessary leftover handling.
5318 (ldist_gen): Do not build components or record other stores.
5319 (distribute_loop): Do not distribute loops containing stmts
5320 with side-effects.
5321
c0ecf7f1
CB
53222013-09-13 Christian Bruel <christian.bruel@st.com>
5323
5324 PR target/58314
5325 * config/sh/sh.md (mov<mode>_reg_reg): Allow memory reloads.
5326
34f56efc
KT
53272013-09-13 Kai Tietz <ktietz@redhat.com>
5328
740f2bf3
KT
5329 * config.gcc: Separate cases for mingw and cygwin targets,
5330 and add 64-bit cygwin target case.
5331
34f56efc
KT
5332 * config/i386/winnt-cxx.c (i386_pe_type_dllexport_p): Don't
5333 dll-export inline-functions.
5334 * config/i386/winnt.c (i386_pe_determine_dllexport_p): Likewise.
5335
5336
53372013-09-13 Jeff Law <law@redhat.com>
823b5d6b
JL
5338
5339 PR middle-end/58387
5340 Revert:
5341 2013-09-06 Jeff Law <law@redhat.com>
5342
5343 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
5344 edge implied equivalences into successor phis.
5345
aadb52ad
DD
53462013-09-12 DJ Delorie <dj@redhat.com>
5347
5348 * config/rl78/rl78-virt.md: Change from | to \; for asm line
5349 separators.
5350
90ae7019
BM
53512013-09-12 Brooks Moses <bmoses@google.com>
5352
5353 PR driver/42955
5354 * Makefile.in: Do not install driver binaries in $(target)/bin.
5355
17b2557c
DD
53562013-09-12 DJ Delorie <dj@redhat.com>
5357
c5215a9b
DD
5358 * config/rl78/rl78.opt (mrelax): New.
5359 * config/rl78/rl78.h (ASM_SPEC): New, pass on -mrelax to gas.
5360 * config/rl78/rl78.h (LINK_SPEC): New, pass on -mrelax to ld.
5361
17b2557c
DD
5362 * config/rl78/rl78.c (rl78_expand_prologue): Use AX to copy
5363 between SP and FP.
5364 (rl78_expand_epilogue): Likewise.
5365
ecafcf05
VM
53662013-09-12 Vladimir Makarov <vmakarov@redhat.com>
5367
5368 PR middle-end/58335
84f6d9fa 5369 * lra-eliminations.c (remove_reg_equal_offset_note): New.
ecafcf05
VM
5370 (eliminate_regs_in_insn): Rewrite frame pointer to hard frame
5371 pointer elimination with using remove_reg_equal_offset_note.
5372
8369f38a
DD
53732013-09-12 DJ Delorie <dj@redhat.com>
5374
f6a83b4a
DD
5375 * config/msp430/: New port.
5376 * config.gcc (msp430): Added.
5377 * doc/invoke.texi: Document MSP430 options.
5378 * doc/install.texi: Document msp430-elf
5379 * doc/md.texi: Document msp430-elf
5380 * doc/contrib.texi: Document msp430-elf
5381
8369f38a
DD
5382 * cfgexpand.c (expand_debug_expr): Avoid sign-extending SImode to
5383 PSImode.
5384
a854f856
MJ
53852013-09-12 Martin Jambor <mjambor@suse.cz>
5386
5387 PR ipa/58389
5388 * ipa-prop.c (remove_described_reference): Give up if the edge in the
5389 reference descriptor is NULL.
5390 (ipa_edge_removal_hook): If owning a reference descriptor, set its
5391 edge to NULL.
5392
b12ebd96
AM
53932013-09-12 Andrew MacLeod <amacleod@redhat.com>
5394
5395 * tree-flow.h (FREE_SSANAMES): Move to tree-ssanames.c
5396 (SSANAMES, MODIFIED_NORETURN_CALLS, DEFAULT_DEFS, ptr_info_def,
5397 num_ssa_names, ssa_name): Move to tree-ssanames.h + prototypes.
5398 * tree-flow-inline.h (make_ssa_name, copy_ssa_name, duplicate_ssa_name,
5399 make_temp_ssa_name): move to tree-ssanames.h
5400 * tree-ssa-alias.h: Move prototype.
5401 * tree-ssa.h: Include tree-ssanames.h.
5402 * tree-ssanames.c (FREE_SSANAMES): Move to here.
5403 * tree-ssanames.h: New. Move items from tree-flow*.h
5404 * Makefile.in (tree-ssanames.h): Add to tree-ssanames.o and GTFILES.
5405
e1fb4ad3
RB
54062013-09-12 Richard Biener <rguenther@suse.de>
5407
5408 PR tree-optimization/58404
5409 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
5410 propagate non-invariant addresses into dereferences wrapped
5411 in component references.
5412
154c9188
RB
54132013-09-12 Richard Biener <rguenther@suse.de>
5414
5415 PR tree-optimization/58402
5416 * passes.def: Move pass_late_warn_uninitialized later.
5417
7a300452
AM
54182013-09-12 Andrew MacLeod <amacleod@redhat.com>
5419
5420 * tree-ssa.h: New. Move content from tree-flow.h and
5421 tree-flow-inline.h.
5422 * tree-flow.h (_edge_var_map, edge_var_map_vector): Move to tree-ssa.h.
5423 Move prototypes belonging to tree-ssa.c.
f77e2d2d 5424 * tree-flow-inline.h (redirect_edge_var_map_def,
7a300452
AM
5425 redirect_edge_var_map_result, redirect_edge_var_map_location): Move to
5426 tree-ssa.h.
5427 * gimple.h: Adjust prototypes.
f77e2d2d
JBG
5428 * tree-ssa.c (useless_type_conversion_p, types_compatible_p): Move
5429 to...
5430 * gimple.c (useless_type_conversion_p, types_compatible_p): Here.
7a300452
AM
5431 * tree.h: Move prototype to tree-ssa.h.
5432 * gengtype.c (open_base_files): Replace tree-flow.h with tree-ssa.h.
5433 * Makefile.in: (TREE_SSA_H, TREE_FLOW_H): Adjust dependencies.
5434 * alias.c, asan.c, builtins.c, calls.c, cfgexpand.c, cfghooks.c,
5435 cfgloop.c, cfgloopmanip.c, cgraph.c, cgraphbuild.c, cgraphclones.c,
5436 cgraphunit.c, dse.c, except.c, expr.c, final.c, fold-const.c,
5437 ggc-page.c, gimple-fold.c, gimple-iterator.c, gimple-low.c,
5438 gimple-pretty-print.c, gimple-ssa-strength-reduction.c,
5439 gimple-streamer-in.c, gimple-streamer-out.c, gimple.c, gimplify.c,
f77e2d2d
JBG
5440 graphite-blocking.c, graphite-clast-to-gimple.c,
5441 graphite-dependences.c, graphite-interchange.c,
5442 graphite-optimize-isl.c, graphite-poly.c, graphite-scop-detection.c,
5443 graphite-sese-to-poly.c, graphite.c, ipa-cp.c, ipa-inline-analysis.c,
5444 ipa-inline-transform.c, ipa-inline.c, ipa-prop.c, ipa-pure-const.c,
5445 ipa-reference.c, ipa-split.c, ipa-utils.c,
7a300452
AM
5446 loop-init.c, lto-cgraph.c, lto-section-in.c, lto-section-out.c,
5447 lto-streamer-in.c, lto-streamer-out.c, lto-streamer.c, omp-low.c,
5448 passes.c, predict.c, print-tree.c, profile.c, sese.c, targhooks.c,
5449 tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
5450 tree-chrec.c, tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-eh.c,
5451 tree-emutls.c, tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
5452 tree-loop-distribution.c, tree-mudflap.c, tree-nested.c, tree-nrv.c,
5453 tree-object-size.c, tree-optimize.c, tree-outof-ssa.c, tree-parloops.c,
5454 tree-phinodes.c, tree-predcom.c, tree-pretty-print.c, tree-profile.c,
5455 tree-scalar-evolution.c, tree-sra.c, tree-ssa*.c, tree-stdarg.c,
5456 tree-streamer-in.c, tree-switch-conversion.c, tree-tailcall.c,
5457 tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
5458 tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
5459 tree-vect-stmts.c, tree-vectorizer.c, tree-vrp.c, tsan.c,
5460 value-prof.c, var-tracking.c,
5461 varpool.c, vtable-verify.c: Replace tree-flow.h with tree-ssa.h
5462
97463b2b
RB
54632013-09-12 Richard Biener <rguenther@suse.de>
5464
5465 PR tree-optimization/58396
5466 * tree-loop-distribution.c (create_rdg_edges): Free unused DDRs.
5467 (build_rdg): Take a loop-nest parameter, fix memleaks.
5468 (distribute_loop): Compute loop-nest here and pass it to build_rdg.
5469
80ecd89d
YR
54702013-09-12 Yuri Rumyantsev <ysrumyan@gmail.com>
5471
5472 * config/i386/x86-tune.def: Turn on X86_TUNE_AVOID_MEM_OPND_FOR_CMOVE
5473 for SLM.
5474
893e85fa
CM
54752013-09-12 Cameron McInally <cameron.mcinally@nyu.edu>
5476
5477 * doc/extend.texi: Fix errors in x86 FMA builtin naming.
5478 The FMA instruction names should have a 'v' prefix.
5479
174ec470
RB
54802013-09-12 Richard Biener <rguenther@suse.de>
5481
5482 * tree-loop-distribution.c (dot_rdg_1): Make graph prettier.
5483 (dot_rdg): Use popen instead of system in optional code.
5484 (remaining_stmts, upstream_mem_writes): Remove global bitmaps.
5485 (already_processed_vertex_p): Adjust.
5486 (has_anti_or_output_dependence, predecessor_has_mem_write,
5487 mark_nodes_having_upstream_mem_writes, has_upstream_mem_writes,
5488 rdg_flag_uses): Remove.
5489 (rdg_flag_vertex): Simplify.
5490 (rdg_flag_vertex_and_dependent): Rely on a correct RDG and
5491 remove recursion.
5492 (build_rdg_partition_for_component): Process the first vertex
5493 of a component only.
5494 (ldist_gen): Do not compute remaining_stmts or upstream_mem_writes.
5495
38c89763
AM
54962013-09-12 Alan Modra <amodra@gmail.com>
5497
5498 * config/rs6000/rs6000.c (toc_relative_expr_p): Use add_cint_operand.
5499
3e3d9d17
DD
55002013-09-11 DJ Delorie <dj@redhat.com>
5501 Nick Clifton <nickc@redhat.com>
5502
5503 * config/rl78/predicates.md (rl78_cmp_operator_signed): New.
5504 (rl78_stack_based_mem): New.
5505 * config/rl78/constraints.md (Iv08): New.
5506 (Iv16): New.
5507 (Iv24): New.
5508 (Is09): New.
5509 (Is17): New.
5510 (Is25): New.
5511 (ISsi): New.
5512 (IShi): New.
5513 (ISqi): New.
5514 * config/rl78/rl78-expand.md (movqi): Reject more SUBREG operands.
5515 (movhi): Likewise.
5516 (movsi): Change from expand to insn-and-split.
5517 (ashrsi3): Clobber AX.
5518 (lshrsi3): New.
5519 (ashlsi3): New.
5520 (cbranchsi4): New.
5521 * config/rl78/rl78.md (CC_REG): Fix.
5522 (addsi3): Allow memory and immediate operands.
5523 (addsi3_internal): Split into...
5524 (addsi3_internal_virt): ...new, and ...
5525 (addsi3_internal_real): ...new.
5526 (subsi): New.
5527 (subsi3_internal_virt): New.
5528 (subsi3_internal_real): New.
5529 (mulsi3): Add memory operand.
5530 (mulsi3_rl78): Likewise.
5531 (mulsi3_g13): Likewise.
5532 * config/rl78/rl78-real.md (cbranchqi4_real_signed): New.
5533 (cbranchqi4_real): Add more constraint options.
5534 (cbranchhi4_real): Expand pattern.
5535 (cbranchhi4_real_signed): New.
5536 (cbranchhi4_real_inverted): New.
5537 (cbranchsi4_real_lt): New.
5538 (cbranchsi4_real_ge): New.
5539 (cbranchsi4_real_signed): New.
5540 (cbranchsi4_real): New.
5541 (peephole2): New.
893e85fa
CM
5542 * config/rl78/rl78-virt.md (ashrsi3_virt): Add custom cases for
5543 constant shifts.
3e3d9d17
DD
5544 (lshrsi3_virt): Likewise.
5545 (ashlsi3_virt): Likewise.
5546 (cbranchqi4_virt_signed): New.
5547 (cbranchhi4_virt_signed): New.
5548 (cbranchsi4_virt): New.
5549 * config/rl78/rl78.c: Whitespace fixes throughout.
5550 (move_elim_pass): New.
5551 (pass_data_rl78_move_elim): New.
5552 (pass_rl78_move_elim): New.
5553 (make_pass_rl78_move_elim): New.
5554 (rl78_devirt_info): Run devirt earlier.
5555 (rl78_move_elim_info): New.
5556 (rl78_asm_file_start): Register it.
5557 (rl78_split_movsi): New.
5558 (rl78_as_legitimate_address): Allow virtual base registers when
5559 appropriate.
5560 (rl78_addr_space_convert): Remove spurious debug stuff.
5561 (rl78_print_operand_1): Add z,s,S,r,E modifiers.
5562 (rl78_print_operand): More cases for not printing '#'.
5563 (rl78_expand_compare): Remove most of the logic.
5564 (content_memory): New.
5565 (clear_content_memory): New.
5566 (get_content_index): New.
5567 (get_content_name): New.
5568 (display_content_memory): New.
5569 (update_content): New.
5570 (record_content): New.
5571 (already_contains): New.
5572 (insn_ok_now): Re-recog insns with virtual registers.
5573 (add_postponed_content_update): New.
5574 (process_postponed_content_update): New.
5575 (gen_and_emit_move): New.
893e85fa
CM
5576 (transcode_memory_rtx): Record new location content.
5577 Use gen_and_emit_move.
3e3d9d17
DD
5578 (force_into_acc): New.
5579 (move_to_acc): Use gen_and_emit_move.
5580 (move_from_acc): Likewise.
5581 (move_acc_to_reg): Likewise.
5582 (move_to_x): Likewise.
5583 (move_to_hl): Likewise.
5584 (move_to_de): Likewise.
5585 (rl78_alloc_physical_registers_op1): Record location content.
5586 (has_constraint): New.
5587 (rl78_alloc_physical_registers_op2): Record location content.
5588 Optimize use of HL.
5589 (rl78_alloc_physical_registers_ro1): Likewise.
5590 (rl78_alloc_physical_registers_cmp): Likewise.
5591 (rl78_alloc_physical_registers_umul): Likewise.
5592 (rl78_alloc_address_registers_macax): New.
5593 (rl78_alloc_physical_registers): Initialize and set location
5594 content memory as needed.
5595 (rl78_reorg): Make sure split2 is called.
5596 (rl78_rtx_costs): New.
5597
088845a5
RS
55982013-09-11 Richard Sandiford <rdsandiford@googlemail.com>
5599
5600 * simplify-rtx.c (simplify_unary_operation_1): Use simplify_gen_binary
5601 for (not (neg ...)) and (neg (not ...)) cases.
5602
5c2961cf
RB
56032013-09-11 Richard Biener <rguenther@suse.de>
5604
5605 PR middle-end/58377
5606 * passes.def: Split critical edges before late uninit warning passes.
5607 * tree-cfg.c (pass_split_crit_edges): Implement clone method.
5608
427e6a14
JJ
56092013-09-11 Jakub Jelinek <jakub@redhat.com>
5610
5611 PR tree-optimization/58385
5612 * fold-const.c (build_range_check): If both low and high are NULL,
5613 use omit_one_operand_loc to preserve exp side-effects.
5614
df45c0cc
KT
56152013-09-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5616
5617 * config/arm/arm.md (arm_shiftsi3): New alternative l/l/M.
5618
80ab0b19
RB
56192013-09-11 Richard Biener <rguenther@suse.de>
5620
5621 * tree-data-ref.c (dump_rdg_vertex, debug_rdg_vertex,
5622 dump_rdg_component, debug_rdg_component, dump_rdg, debug_rdg,
5623 dot_rdg_1, dot_rdg, rdg_vertex_for_stmt, create_rdg_edge_for_ddr,
5624 create_rdg_edges_for_scalar, create_rdg_edges, create_rdg_vertices,
5625 stmts_from_loop, known_dependences_p, build_empty_rdg,
5626 build_rdg, free_rdg, rdg_defs_used_in_other_loops_p): Move ...
5627 * tree-loop-distribution.c: ... here.
5628 * tree-data-ref.h (struct rdg_vertex, RDGV_STMT, RDGV_DATAREFS,
5629 RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT, RDG_DATAREFS,
5630 RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT, enum rdg_dep_type,
5631 struct rdg_edge, RDGE_TYPE, RDGE_LEVEL, RDGE_RELATION): Move ...
5632 * tree-loop-distribution.c: ... here.
5633 * tree-loop-distribution.c: Include gimple-pretty-print.h.
5634 (struct partition_s): Add loops member.
5635 (partition_alloc, partition_free, rdg_flag_uses, rdg_flag_vertex,
5636 rdg_flag_vertex_and_dependent, rdg_flag_loop_exits,
5637 build_rdg_partition_for_component, rdg_build_partitions): Adjust.
5638
85a77221
AI
56392013-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
5640 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
5641 Sergey Lega <sergey.s.lega@intel.com>
5642 Anna Tikhonova <anna.tikhonova@intel.com>
5643 Ilya Tocar <ilya.tocar@intel.com>
5644 Andrey Turetskiy <andrey.turetskiy@intel.com>
5645 Ilya Verbin <ilya.verbin@intel.com>
5646 Kirill Yukhin <kirill.yukhin@intel.com>
5647 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
5648
5649 * config/i386/constraints.md (k): New.
5650 (Yk): Ditto.
5651 * config/i386/i386.c (const regclass_map): Add new mask registers.
5652 (dbx_register_map): Ditto.
5653 (dbx64_register_map): Ditto.
5654 (svr4_dbx_register_map): Ditto.
5655 (ix86_conditional_register_usage): Squash mask registers if AVX512F is
5656 disabled.
5657 (ix86_preferred_reload_class): Disable constants for mask registers.
5658 (ix86_secondary_reload): Do spill of mask register using 32-bit insn.
5659 (ix86_hard_regno_mode_ok): Support new mask registers.
5660 (x86_order_regs_for_local_alloc): Ditto.
5661 * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Update.
5662 (FIXED_REGISTERS): Add new mask registers.
5663 (CALL_USED_REGISTERS): Ditto.
5664 (REG_ALLOC_ORDER): Ditto.
5665 (VALID_MASK_REG_MODE): New.
5666 (FIRST_MASK_REG): Ditto.
5667 (LAST_MASK_REG): Ditto.
5668 (reg_class): Add MASK_EVEX_REGS, MASK_REGS.
5669 (MAYBE_MASK_CLASS_P): New.
5670 (REG_CLASS_NAMES): Add MASK_EVEX_REGS, MASK_REGS.
5671 (REG_CLASS_CONTENTS): Ditto.
5672 (MASK_REGNO_P): New.
5673 (ANY_MASK_REG_P): Ditto.
5674 (HI_REGISTER_NAMES): Add new mask registers.
893e85fa
CM
5675 * config/i386/i386.md (MASK0_REG, MASK1_REG, MASK2_REG, MASK3_REG,
5676 MASK4_REG, MASK5_REG, MASK6_REG, MASK7_REG): Constants for new
5677 mask registers.
85a77221
AI
5678 (attribute "type"): Add mskmov, msklog.
5679 (attribute "length_immediate"): Support them.
5680 (attribute "memory"): Ditto.
5681 (attribute "prefix_0f"): Ditto.
5682 (*movhi_internal): Support new mask registers.
5683 (*movqi_internal): Ditto.
5684 (define_split): Split out clobber pattern is a logic
5685 insn on mask registers.
5686 (*k<logic><mode>): New.
5687 (*andhi_1): Extend to support mask regs.
5688 (*andqi_1): Extend to support mask regs.
5689 (kandn<mode>): New.
5690 (define_split): Split and-not to and and not if operands
5691 are not mask regs.
5692 (*<code><mode>_1): Separate HI mode to new pattern...
5693 (*<code>hi_1): This.
5694 (*<code>qi_1): Extend to support mask regs.
5695 (kxnor<mode>): New.
5696 (kortestzhi): Ditto.
5697 (kortestchi): Ditto.
5698 (kunpckhi): Ditto.
5699 (*one_cmpl<mode>2_1): Remove HImode and handle it...
5700 (*one_cmplhi2_1): ...Here, now with mask registers support.
5701 (*one_cmplqi2_1): Support new mask registers.
893e85fa
CM
5702 (HI/QImode arithmetics splitter): Don't split if mask registers
5703 are used.
85a77221
AI
5704 (HI/QImode not splitter): Ditto.
5705 * config/i386/predicated.md (mask_reg_operand): New.
5706 (general_reg_operand): Ditto.
5707
7e570821
AI
57082013-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
5709
5710 * doc/invoke.texi: Document fxsr, xsave and xsaveopt options.
5711 * doc/extend.texi: Document fxsr, xsave and xsaveopt builtins.
5712
9e1376e9
JL
57132013-09-10 Jeff Law <law@redhat.com>
5714
5715 PR tree-optimization/58380
5716 * tree-ssa-threadupdate.c (thread_block): Recognize another case
5717 of threading through a buried loop header.
5718
5719 * tree-ssa-threadedge.c (thread_around_empty_blocks): Correct
5720 return value for single successor case.
5721
5bbcb888
JH
57222013-09-10 Jan Hubicka <jh@suse.cz>
5723
5724 * ipa-devirt.c (ipa_devirt): Enable with LTO.
5725
d742ff4b
RE
57262013-09-10 Richard Earnshaw <rearnsha@arm.com>
5727
5728 PR target/58361
5729 * arm/vfp.md (combine_vcvt_f32_<FCVTI32typename>): Fix pattern to
5730 support conditional execution.
5731 (combine_vcvt_f64_<FCVTI32typename>): Likewise.
5732
b0681c9e
VM
57332013-09-10 Vladimir Makarov <vmakarov@redhat.com>
5734
5735 * lra.c (lra): Clear lra_optional_reload_pseudos before every
5736 constraint pass.
f77e2d2d
JBG
5737 * lra-constraints.c (curr_insn_transform): Switch on optional reloads.
5738 Check destination too to check move insn.
b0681c9e 5739 (undo_optional_reloads): Add check that the original peudo did not
f77e2d2d
JBG
5740 changed its allocation and the optional reload was inherited on last
5741 inheritance pass. Break loop after deciding to keep optional reload.
b0681c9e
VM
5742 (lra_undo_inheritance): Add check that inherited pseudo still in
5743 memory.
5744
c9b1c957
JG
57452013-09-10 James Greenhalgh <james.greenhalgh@arm.com>
5746
5747 * config/aarch64/aarch64.md (generic_sched): New.
5748 * config/aarch64/aarch64-generic.md (load): Make conditional
5749 on generic_sched attribute.
5750 (nonload): Likewise.
5751
82d618d3
JH
57522013-09-10 Jan Hubicka <jh@suse.cz>
5753
5754 * lto-cgraph.c: Include ipa-utils.h.
5755 (compute_ltrans_boundary): Also add possible targets into the boundary.
5756
668b6894
JH
57572013-09-10 Jan Hubicka <jh@suse.cz>
5758
5759 * gimple-fold.c (gimple_get_virt_method_for_binfo): Pass real
5760 VAR_DECL of vtable rather than full expression.
5761
4f90d3e0
JH
57622013-09-10 Jan Hubicka <jh@suse.cz>
5763 Paolo Carlini <paolo.carlini@oracle.com>
5764
5765 * cgraphunit.c (analyze_functions): Save input_location, set it
5766 to UNKNOWN_LOCATION and restore it at the end.
5767
39e87baf
MJ
57682013-09-10 Martin Jambor <mjambor@suse.cz>
5769
5770 * ipa-cp.c (propagate_constants_topo): Do not ignore SCC
5771 represented by a thunk.
5772
581aedec
JL
57732013-09-10 Jeff Law <law@redhat.com>
5774
5775 PR tree-optimization/58343
5776 * tree-ssa-threadupdate.c (thread_block): Identify and disable
5777 jump threading requests through loop headers buried in the middle
5778 of a jump threading path.
5779
5780 * tree-ssa-threadedge.c (thread_around_empty_blocks): Fix thinko
5781 in return value/type.
5782
84cf4ab6
JJ
57832013-09-10 Jakub Jelinek <jakub@redhat.com>
5784
5785 PR rtl-optimization/58365
5786 * cfgcleanup.c (merge_memattrs): Also clear MEM_READONLY_P
5787 resp. MEM_NOTRAP_P if they differ, or set MEM_VOLATILE_P if
5788 it differs.
5789
447dd906
RB
57902013-09-10 Richard Biener <rguenther@suse.de>
5791
5792 * tree-data-ref.h (build_rdg): Drop all parameters but loop.
5793 * tree-data-ref.c (create_rdg_vertices): Collect all data
5794 references, signal failure to the caller, use data-ref API.
893e85fa
CM
5795 (build_rdg): Compute data references only once. Maintain lifetime
5796 of data references and data dependences from within RDG.
447dd906
RB
5797 (free_rdg): Free dependence relations.
5798 * tree-loop-distribution.c (rdg_flag_uses): Drop weird code
5799 inventing extra dependences.
5800 (distribute_loop): Update for RDG API changes.
5801
f14a7324
KT
58022013-09-10 Kai Tietz <ktietz@redhat.com>
5803
5804 * doc/invoke.texi (fms-extensions): Document changed
5805 behavior for ms-abi targets.
5806 * config/i386/i386.c (ix86_option_override_internal):
5807 Set default value of option -fms-extension for ms-abi targets.
5808
ff131f26
MZ
58092013-09-10 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
5810
5811 * config/i386/i386.c (ix86_expand_movmem): Fix epilogue generation.
5812
33115a2c
AM
58132013-09-10 Alan Modra <amodra@gmail.com>
5814
5815 PR target/58330
5816 * config/rs6000/rs6000.md (bswapdi2_64bit): Disable for volatile mems.
5817
b6872a13
AM
58182013-09-10 Alan Modra <amodra@gmail.com>
5819
5820 * config/rs6000/predicates.md (add_cint_operand): New.
5821 (reg_or_add_cint_operand, small_toc_ref): Use add_cint_operand.
5822 * config/rs6000/rs6000.md (largetoc_high_plus): Restrict offset
5823 using add_cint_operand.
5824 (largetoc_high_plus_aix): Likewise.
5825
28fd0ba2
JJ
58262013-09-09 Jakub Jelinek <jakub@redhat.com>
5827
5828 PR tree-optimization/58364
5829 * tree-ssa-reassoc.c (init_range_entry): For BIT_NOT_EXPR on
5830 BOOLEAN_TYPE, only invert in_p and continue with arg0 if
5831 the current range can't be an unconditional true or false.
5832
552d99fe
JG
58332013-09-09 James Greenhalgh <james.greenhalgh@arm.com>
5834
5835 * config/aarch64/arm_neon.h (vrsqrte_f64): Fix parameter type.
5836
f43245d1
UB
58372013-09-09 Uros Bizjak <ubizjak@gmail.com>
5838
5839 * ipa-prop.c (ipa_modify_call_arguments): Initialize deref_align.
5840
c9b0866a
PC
58412013-09-09 Paolo Carlini <paolo.carlini@oracle.com>
5842
5843 PR c++/43452
5844 * doc/invoke.texi (-Wdelete-incomplete): Document it.
5845
78d8b9f0
IB
58462013-09-09 Ian Bolton <ian.bolton@arm.com>
5847
5848 * config/aarch64/aarch64.c (aarch64_preferred_reload_class): Return
5849 NO_REGS for immediate that can't be moved directly into FP_REGS.
5850
274b2532
KT
58512013-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5852
5853 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
5854 comparison with negated operand.
c9b0866a
PC
5855 * config/aarch64/aarch64.md (compare_neg<mode>): Match canonical
5856 RTL form.
274b2532 5857
467a3558
RB
58582013-09-09 Richard Biener <rguenther@suse.de>
5859
5860 PR middle-end/58326
5861 * cfgloopmanip.c (fix_bb_placements): When fixing the placement
5862 of a subloop record all its block as affecting loop-closed SSA form.
5863
088c5368
RS
58642013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
5865
5866 * expmed.c (lshift_value): Take an unsigned HOST_WIDE_INT instead
5867 of an rtx/bitpos pair.
5868 (store_fixed_bit_field): Update accordingly.
5869
69db2d57
RS
58702013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
5871
5872 * asan.c (asan_emit_stack_protection): Use gen_int_mode instead of
5873 GEN_INT.
5874 * builtins.c (expand_errno_check): Likewise.
5875 * dwarf2cfi.c (init_return_column_size): Likewise.
5876 * except.c (sjlj_mark_call_sites): Likewise.
5877 * expr.c (move_by_pieces_1, store_by_pieces_2): Likewise.
5878 * lra-constraints.c (emit_inc): Likewise.
5879 * ree.c (combine_set_extension): Likewise.
5880 * regmove.c (fixup_match_2): Likewise.
5881 * reload1.c (inc_for_reload): Likewise.
5882
69a59f0f
RS
58832013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
5884
5885 * combine.c (simplify_set, expand_field_assignment, extract_left_shift)
5886 (force_to_mode, simplify_shift_const_1, simplify_comparison):
5887 Use gen_int_mode with the mode of the associated simplify_* call.
5888 * explow.c (probe_stack_range, anti_adjust_stack_and_probe): Likewise.
5889 * expmed.c (expand_shift_1): Likewise.
5890 * function.c (instantiate_virtual_regs_in_insn): Likewise.
5891 * loop-iv.c (iv_number_of_iterations): Likewise.
5892 * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
5893 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
5894
2f1cd2eb
RS
58952013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
5896
5897 * asan.c (asan_clear_shadow): Use gen_int_mode with the mode
5898 of the associated expand_* call.
5899 (asan_emit_stack_protection): Likewise.
5900 * builtins.c (round_trampoline_addr): Likewise.
5901 * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise.
5902 * expmed.c (expand_smod_pow2, expand_sdiv_pow2, expand_divmod)
5903 (emit_store_flag): Likewise.
5904 * expr.c (emit_move_resolve_push, push_block, emit_single_push_insn_1)
5905 (emit_push_insn, optimize_bitfield_assignment_op, expand_expr_real_1):
5906 Likewise.
5907 * function.c (instantiate_virtual_regs_in_insn): Likewise.
5908 * ifcvt.c (noce_try_store_flag_constants): Likewise.
5909 * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
5910 * modulo-sched.c (generate_prolog_epilog): Likewise.
5911 * optabs.c (expand_binop, widen_leading, expand_doubleword_clz)
5912 (expand_ctz, expand_ffs, expand_unop): Likewise.
5913
4789c0ce
RS
59142013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
5915
5916 * alias.c (addr_side_effect_eval): Use gen_int_mode with the mode
5917 of the associated gen_rtx_* call.
5918 * caller-save.c (init_caller_save): Likewise.
5919 * combine.c (find_split_point, make_extraction): Likewise.
5920 (make_compound_operation): Likewise.
5921 * dwarf2out.c (mem_loc_descriptor): Likewise.
5922 * explow.c (plus_constant, probe_stack_range): Likewise.
5923 * expmed.c (expand_mult_const): Likewise.
5924 * expr.c (emit_single_push_insn_1, do_tablejump): Likewise.
5925 * reload1.c (init_reload): Likewise.
5926 * valtrack.c (cleanup_auto_inc_dec): Likewise.
5927 * var-tracking.c (adjust_mems): Likewise.
5928 * modulo-sched.c (sms_schedule): Likewise, but use gen_rtx_GT
5929 rather than gen_rtx_fmt_ee.
5930
a811f7cb
JH
59312013-09-09 Jan Hubicka <jh@suse.cz>
5932
5933 PR middle-end/58294
5934 * value-prof.c (gimple_ic): Copy also abnormal edges.
5935
dcad1dd3
RS
59362013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
5937
5938 * asan.c (asan_shadow_cst): Use gen_int_mode.
5939
daf5c770
JH
59402013-09-08 Jan Hubicka <jh@suse.cz>
5941
5942 * ipa-profile.c: Add toplevel comment.
5943 (ipa_propagate_frequency_1): Be more conservative when profile is read.
5944 (contains_hot_call_p): New function.
5945 (ipa_propagate_frequency): Set frequencies based on counts when
5946 profile is read.
5947 * predict.c (compute_function_frequency): Use PROFILE_READ gueard for
5948 profile; do not tamper with profile after inlining if it is read.
5949
a12cd2db
JH
59502013-09-08 Jan Hubicka <jh@suse.cz>
5951
5952 * ipa-prop.c (try_make_edge_direct_simple_call): Do not special case
5953 speculative edges.
5954
856a1588
JH
59552013-09-08 Jan Hubicka <jh@suse.cz>
5956
5957 * ipa.c (walk_polymorphic_call_targets): Fix redirection before IPA
5958 summary generation.
5959
4f4b0b73
JL
59602013-09-08 Jeff Law <law@redhat.com>
5961
5962 PR bootstrap/58340
5963 * tree-ssa-threadedge.c (thread_across_edge): Fix initialization
5964 of 'found'.
5965
cc4029ee
AK
59662013-09-08 Andi Kleen <ak@linux.intel.com>
5967
5968 * tree-inline.c (estimate_num_insns): Limit asm cost to 1000.
5969
7b395ddd
JH
59702013-09-08 Jan Hubicka <jh@suse.cz>
5971
5972 * ipa.c (walk_polymorphic_call_targets): Fix inliner summary update.
5973
c34c46dd
RS
59742013-09-08 Richard Sandiford <rdsandiford@googlemail.com>
5975
5976 * ira.c (update_equiv_regs): Only call set_paradoxical_subreg
5977 for non-debug insns.
5978 * lra.c (new_insn_reg): Take the containing insn as a parameter.
5979 Only modify lra_reg_info[].biggest_mode if it's non-debug insn.
5980 (collect_non_operand_hard_regs, add_regs_to_insn_regno_info): Update
5981 accordingly.
5982
3462aa02
JH
59832013-09-08 Jan Hubicka <jh@suse.cz>
5984
5985 * cgraphunit.c (walk_polymorphic_call_targets): Permit 0 possible
5986 targets and devirtualize to BUILT_IN_UNREACHABLE.
5987 * timevar.def (TV_IPA_UNREACHABLE): New timevar.
5988 * ipa.c (walk_polymorphic_call_targets): New function.
5989 (symtab_remove_unreachable_nodes): Use it; do not keep all virtual
5990 functions; use the new timevar.
5991 * ipa-devirt.c (maybe_record_node): Do not insert static nodes that
5992 was removed from the program.
5993 (record_binfo): If BINFO corresponds to an anonymous namespace, we may
5994 not consider it in the walk when its vtable is dead.
5995 (possible_polymorphic_call_targets_1): Pass anonymous flag to
5996 record_binfo.
5997 (devirt_variable_node_removal_hook): New function.
5998 (possible_polymorphic_call_targets): Also register
5999 devirt_variable_node_removal_hook.
6000 (ipa_devirt): Do not do non-speculative devirtualization.
6001 (gate_ipa_devirt): One execute if devirtualizing speculatively.
6002
26e5b0fd
JH
60032013-09-08 Jan Hubicka <jh@suse.cz>
6004
6005 * cgraph.h (varpool_node_hook, varpool_node_hook_list,
6006 varpool_add_node_removal_hook, varpool_add_variable_insertion_hook,
6007 varpool_remove_variable_insertion_hook): Declare.
6008 * varpool.c (varpool_node_hook_list): New structure.
6009 (first_varpool_node_removal_hook,
6010 first_varpool_variable_insertion_hook): New variables.
6011 (varpool_add_node_removal_hook, varpool_remove_node_removal_hook,
6012 varpool_call_node_removal_hooks, varpool_add_variable_insertion_hook,
6013 varpool_remove_variable_insertion_hook,
6014 varpool_call_variable_insertion_hooks): New functions.
6015 (varpool_remove_node): Use it.
6016
97f1f314 60172013-09-08 Paolo Carlini <paolo.carlini@oracle.com>
6df2ca09 6018
97f1f314
PC
6019 PR c++/54941
6020 * diagnostic.c (diagnostic_build_prefix): When s.file is
6021 "<built-in>" don't output line and column numbers.
6df2ca09 6022
bcb650cb
JH
60232013-09-06 Jan Hubicka <jh@suse.cz>
6024
6025 * cgraphunit.c (expand_thunk): Get body before touching arguments.
6026 * lto-streamer-out.c: Stream thunks, too.
6027 * lto-streamer-in.c (input_function): Pop cfun here
6028 (lto_read_body): Instead of here.
6029
87f3fea8
CT
60302013-09-06 Caroline Tice <cmtice@google.com>
6031
6032 * doc/install.texi: Add documentation for the --enable-vtable-verify
6033 and the --disable-libvtv configure options.
6034
5e8d9b45
JL
60352013-09-06 Jeff Law <law@redhat.com>
6036
6037 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
6038 edge implied equivalences into successor phis.
6039
3a001aff
JR
60402013-09-06 Joern Rennecke <joern.rennecke@embecosm.com>
6041
6042 * resource.c (mark_referenced_resources): Handle COND_EXEC.
6043
60442013-09-06 Claudiu Zissulescu <claziss@synopsys.com>
c42091c1
CZ
6045
6046 * resource.c (mark_target_live_regs): Compute resources taking
6047 into account if a call is predicated or not.
6048
2c641f8b
EB
60492013-09-06 Eric Botcazou <ebotcazou@adacore.com>
6050
6051 * toplev.c (output_stack_usage): Be prepared for suffixes created by
6052 the compiler in the function names.
6053
a81b0a3d
JH
60542013-09-06 Jan Hubicka <jh@suse.cz>
6055
6056 PR middle-end/58094
6057 * ipa-inline.c (has_caller_p): New function.
6058 (want_inline_function_to_all_callers_p): Use it.
6059 (sum_callers, inline_to_all_callers): Break out from ...
6060 (ipa_inline): ... here.
6061
68e4ca7e
JH
60622013-09-06 Jan Hubicka <jh@suse.cz>
6063
2c641f8b
EB
6064 * config/i386/i386.c (ix86_hard_regno_mode_ok): AVX modes are valid
6065 only when AVX is enabled.
68e4ca7e 6066
3c73e2fe
JG
60672013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
6068
6069 * config/aarch64/aarch64.md
6070 (*movtf_aarch64): Use neon_<ls>dm_2 as type where v8type
6071 is fpsimd_<load/store>2.
6072 (load_pair<mode>): Likewise.
6073 (store_pair<mode>): Likewise.
6074
8c48eecd
JG
60752013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
6076
6077 * config/arm/types.md (type): Add "mrs" type.
6078 * config/aarch64/aarch64.md
6079 (aarch64_load_tp_hard): Make type "mrs".
6080 * config/arm/arm.md
6081 (load_tp_hard): Make type "mrs".
6082 * config/arm/cortex-a15.md: Update with new attributes.
6083 * config/arm/cortex-a5.md: Update with new attributes.
6084 * config/arm/cortex-a53.md: Update with new attributes.
6085 * config/arm/cortex-a7.md: Update with new attributes.
6086 * config/arm/cortex-a8.md: Update with new attributes.
6087 * config/arm/cortex-a9.md: Update with new attributes.
6088 * config/arm/cortex-m4.md: Update with new attributes.
6089 * config/arm/cortex-r4.md: Update with new attributes.
6090 * config/arm/fa526.md: Update with new attributes.
6091 * config/arm/fa606te.md: Update with new attributes.
6092 * config/arm/fa626te.md: Update with new attributes.
6093 * config/arm/fa726te.md: Update with new attributes.
6094
9ea187a5
JG
60952013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
6096
6097 * config/aarch64/aarch64.md
6098 (*movti_aarch64): Use "multiple" for type where v8type is "move2".
6099 (*movtf_aarch64): Likewise.
6100 * config/arm/arm.md
6101 (thumb1_movdi_insn): Use "multiple" for type where more than one
6102 instruction is used for a move.
6103 (*arm32_movhf): Likewise.
6104 (*thumb_movdf_insn): Likewise.
6105
292b89b3
JG
61062013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
6107
6108 * config/arm/types.md (type): Rename fcpys to fmov.
6109 * config/arm/vfp.md
6110 (*arm_movsi_vfp): Rename type fcpys as fmov.
6111 (*thumb2_movsi_vfp): Likewise
6112 (*movhf_vfp_neon): Likewise
6113 (*movhf_vfp): Likewise
6114 (*movsf_vfp): Likewise
6115 (*thumb2_movsf_vfp): Likewise
6116 (*movsfcc_vfp): Likewise
6117 (*thumb2_movsfcc_vfp): Likewise
6118 * config/aarch64/aarch64-simd.md
6119 (move_lo_quad_<mode>): Replace type mov_reg with fmovs.
6120 * config/aarch64/aarch64.md
6121 (*movsi_aarch64): Replace type mov_reg with fmovs.
6122 (*movdi_aarch64): Likewise
6123 (*movsf_aarch64): Likewise
6124 (*movdf_aarch64): Likewise
6125 * config/arm/arm.c
6126 (cortexa7_older_only): Rename TYPE_FCPYS to TYPE_FMOV.
6127 * config/arm/iwmmxt.md
6128 (*iwmmxt_movsi_insn): Rename type fcpys as fmov.
6129 * config/arm/arm1020e.md: Update with new attributes.
6130 * config/arm/cortex-a15-neon.md: Update with new attributes.
6131 * config/arm/cortex-a5.md: Update with new attributes.
6132 * config/arm/cortex-a53.md: Update with new attributes.
6133 * config/arm/cortex-a7.md: Update with new attributes.
6134 * config/arm/cortex-a8-neon.md: Update with new attributes.
6135 * config/arm/cortex-a9.md: Update with new attributes.
6136 * config/arm/cortex-m4-fpu.md: Update with new attributes.
6137 * config/arm/cortex-r4f.md: Update with new attributes.
6138 * config/arm/marvell-pj4.md: Update with new attributes.
6139 * config/arm/vfp11.md: Update with new attributes.
6140
6a24a83e
JG
61412013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
6142
6143 * config/aarch64/aarch64.md
6144 (*madd<mode>): Fix type attribute.
6145 (*maddsi_uxtw): Likewise.
6146 (*msub<mode>): Likewise.
6147 (*msubsi_uxtw): Likewise.
6148 (<su_optab>maddsidi4): Likewise.
6149 (<su_optab>msubsidi4): Likewise.
6150
b86923f0
JG
61512013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
6152
6153 * config/arm/types.md: Split fdiv<sd> as fsqrt<sd>, fdiv<sd>.
6154 * config/arm/arm.md (core_cycles): Remove fdiv.
6155 * config/arm/vfp.md:
6156 (*sqrtsf2_vfp): Update for attribute changes.
6157 (*sqrtdf2_vfp): Likewise.
6158 * config/aarch64/aarch64.md:
6159 (sqrt<mode>2): Update for attribute changes.
6160 * config/arm/arm1020e.md: Update with new attributes.
6161 * config/arm/cortex-a15-neon.md: Update with new attributes.
6162 * config/arm/cortex-a5.md: Update with new attributes.
6163 * config/arm/cortex-a53.md: Update with new attributes.
6164 * config/arm/cortex-a7.md: Update with new attributes.
6165 * config/arm/cortex-a8-neon.md: Update with new attributes.
6166 * config/arm/cortex-a9.md: Update with new attributes.
6167 * config/arm/cortex-m4-fpu.md: Update with new attributes.
6168 * config/arm/cortex-r4f.md: Update with new attributes.
6169 * config/arm/marvell-pj4.md: Update with new attributes.
6170 * config/arm/vfp11.md: Update with new attributes.
6171
7b49c9e1
JG
61722013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
6173
6174 * config/arm/types.md
6175 (type): Split f_cvt as f_cvt, f_cvtf2i, f_cvti2f.
6176 * config/aarch64/aarch64.md
6177 (l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): Update with
6178 new attributes.
6179 (fix_trunc<GPF:mode><GPI:mode>2): Likewise.
6180 (fixuns_trunc<GPF:mode><GPI:mode>2): Likewise.
6181 (float<GPI:mode><GPF:mode>2): Likewise.
6182 * config/arm/vfp.md
6183 (*truncsisf2_vfp): Update with new attributes.
6184 (*truncsidf2_vfp): Likewise.
6185 (fixuns_truncsfsi2): Likewise.
6186 (fixuns_truncdfsi2): Likewise.
6187 (*floatsisf2_vfp): Likewise.
6188 (*floatsidf2_vfp): Likewise.
6189 (floatunssisf2): Likewise.
6190 (floatunssidf2): Likewise.
6191 (*combine_vcvt_f32_<FCVTI32typename>): Likewise.
6192 (*combine_vcvt_f64_<FCVTI32typename>): Likewise.
6193 * config/arm/arm1020e.md: Update with new attributes.
6194 * config/arm/cortex-a15-neon.md: Update with new attributes.
6195 * config/arm/cortex-a5.md: Update with new attributes.
6196 * config/arm/cortex-a53.md: Update with new attributes.
6197 * config/arm/cortex-a7.md: Update with new attributes.
6198 * config/arm/cortex-a8-neon.md: Update with new attributes.
6199 * config/arm/cortex-a9.md: Update with new attributes.
6200 * config/arm/cortex-m4-fpu.md: Update with new attributes.
6201 * config/arm/cortex-r4f.md: Update with new attributes.
6202 * config/arm/marvell-pj4.md: Update with new attributes.
6203 * config/arm/vfp11.md: Update with new attributes.
6204
e7df8af8
JG
62052013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
6206
6207 * config/aarch64/arm_neon.h
6208 (vqtbl<1,2,3,4><q>_s8): Fix control vector parameter type.
6209 (vqtbx<1,2,3,4><q>_s8): Likewise.
6210
594726e4
JG
62112013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
6212
f43245d1
UB
6213 * config/arm/types.md: Add "no_insn", "multiple" and "untyped" types.
6214 * config/arm/arm-fixed.md: Add type attribute to all insn patterns.
594726e4
JG
6215 (add<mode>3): Add type attribute.
6216 (add<mode>3): Likewise.
6217 (usadd<mode>3): Likewise.
6218 (ssadd<mode>3): Likewise.
6219 (sub<mode>3): Likewise.
6220 (sub<mode>3): Likewise.
6221 (ussub<mode>3): Likewise.
6222 (sssub<mode>3): Likewise.
6223 (ssmulsa3): Likewise.
6224 (usmulusa3): Likewise.
6225 (arm_usatsihi): Likewise.
6226 * config/arm/vfp.md
6227 (*movdi_vfp): Add types for all instructions.
6228 (*movdi_vfp_cortexa8): Likewise.
6229 (*movhf_vfp_neon): Likewise.
6230 (*movhf_vfp): Likewise.
6231 (*movdf_vfp): Likewise.
6232 (*thumb2_movdf_vfp): Likewise.
6233 (*thumb2_movdfcc_vfp): Likewise.
6234 * config/arm/arm.md: Add type attribute to all insn patterns.
6235 (*thumb1_adddi3): Add type attribute.
6236 (*arm_adddi3): Likewise.
6237 (*adddi_sesidi_di): Likewise.
6238 (*adddi_zesidi_di): Likewise.
6239 (*thumb1_addsi3): Likewise.
6240 (addsi3_compare0): Likewise.
6241 (*addsi3_compare0_scratch): Likewise.
6242 (*compare_negsi_si): Likewise.
6243 (cmpsi2_addneg): Likewise.
6244 (*addsi3_carryin_<optab>): Likewise.
6245 (*addsi3_carryin_alt2_<optab>): Likewise.
6246 (*addsi3_carryin_clobercc_<optab>): Likewise.
6247 (*subsi3_carryin): Likewise.
6248 (*subsi3_carryin_const): Likewise.
6249 (*subsi3_carryin_compare): Likewise.
6250 (*subsi3_carryin_compare_const): Likewise.
6251 (*arm_subdi3): Likewise.
6252 (*thumb_subdi3): Likewise.
6253 (*subdi_di_zesidi): Likewise.
6254 (*subdi_di_sesidi): Likewise.
6255 (*subdi_zesidi_di): Likewise.
6256 (*subdi_sesidi_di): Likewise.
6257 (*subdi_zesidi_ze): Likewise.
6258 (thumb1_subsi3_insn): Likewise.
6259 (*arm_subsi3_insn): Likewise.
6260 (*anddi3_insn): Likewise.
6261 (*anddi_zesidi_di): Likewise.
6262 (*anddi_sesdi_di): Likewise.
6263 (*ne_zeroextracts): Likewise.
6264 (*ne_zeroextracts): Likewise.
6265 (*ite_ne_zeroextr): Likewise.
6266 (*ite_ne_zeroextr): Likewise.
6267 (*anddi_notdi_di): Likewise.
6268 (*anddi_notzesidi): Likewise.
6269 (*anddi_notsesidi): Likewise.
6270 (andsi_notsi_si): Likewise.
6271 (thumb1_bicsi3): Likewise.
6272 (*iordi3_insn): Likewise.
6273 (*iordi_zesidi_di): Likewise.
6274 (*iordi_sesidi_di): Likewise.
6275 (*thumb1_iorsi3_insn): Likewise.
6276 (*xordi3_insn): Likewise.
6277 (*xordi_zesidi_di): Likewise.
6278 (*xordi_sesidi_di): Likewise.
6279 (*arm_xorsi3): Likewise.
6280 (*andsi_iorsi3_no): Likewise.
6281 (*smax_0): Likewise.
6282 (*smax_m1): Likewise.
6283 (*arm_smax_insn): Likewise.
6284 (*smin_0): Likewise.
6285 (*arm_smin_insn): Likewise.
6286 (*arm_umaxsi3): Likewise.
6287 (*arm_uminsi3): Likewise.
6288 (*minmax_arithsi): Likewise.
6289 (*minmax_arithsi_): Likewise.
6290 (*satsi_<SAT:code>): Likewise.
6291 (arm_ashldi3_1bit): Likewise.
6292 (arm_ashrdi3_1bit): Likewise.
6293 (arm_lshrdi3_1bit): Likewise.
6294 (*arm_negdi2): Likewise.
6295 (*thumb1_negdi2): Likewise.
6296 (*arm_negsi2): Likewise.
6297 (*thumb1_negsi2): Likewise.
6298 (*negdi_extendsid): Likewise.
6299 (*negdi_zero_extend): Likewise.
6300 (*arm_abssi2): Likewise.
6301 (*thumb1_abssi2): Likewise.
6302 (*arm_neg_abssi2): Likewise.
6303 (*thumb1_neg_abss): Likewise.
6304 (one_cmpldi2): Likewise.
6305 (extend<mode>di2): Likewise.
6306 (*compareqi_eq0): Likewise.
6307 (*arm_extendhisi2addsi): Likewise.
6308 (*arm_movdi): Likewise.
6309 (*thumb1_movdi_insn): Likewise.
6310 (*arm_movt): Likewise.
6311 (*thumb1_movsi_insn): Likewise.
6312 (pic_add_dot_plus_four): Likewise.
6313 (pic_add_dot_plus_eight): Likewise.
6314 (tls_load_dot_plus_eight): Likewise.
6315 (*thumb1_movhi_insn): Likewise.
6316 (*thumb1_movsf_insn): Likewise.
6317 (*movdf_soft_insn): Likewise.
6318 (*thumb_movdf_insn): Likewise.
6319 (cbranchsi4_insn): Likewise.
6320 (cbranchsi4_scratch): Likewise.
6321 (*negated_cbranchsi4): Likewise.
6322 (*tbit_cbranch): Likewise.
6323 (*tlobits_cbranch): Likewise.
6324 (*tstsi3_cbranch): Likewise.
6325 (*cbranchne_decr1): Likewise.
6326 (*addsi3_cbranch): Likewise.
6327 (*addsi3_cbranch_scratch): Likewise.
6328 (*arm_cmpdi_insn): Likewise.
6329 (*arm_cmpdi_unsig): Likewise.
6330 (*arm_cmpdi_zero): Likewise.
6331 (*thumb_cmpdi_zero): Likewise.
6332 (*deleted_compare): Likewise.
6333 (*mov_scc): Likewise.
6334 (*mov_negscc): Likewise.
6335 (*mov_notscc): Likewise.
6336 (*cstoresi_eq0_thumb1_insn): Likewise.
6337 (cstoresi_nltu_thumb1): Likewise.
6338 (cstoresi_ltu_thu): Likewise.
6339 (thumb1_addsi3_addgeu): Likewise.
6340 (*arm_jump): Likewise.
6341 (*thumb_jump): Likewise.
6342 (*check_arch2): Likewise.
6343 (arm_casesi_internal): Likewise.
6344 (thumb1_casesi_dispatch): Likewise.
6345 (*arm_indirect_jump): Likewise.
6346 (*thumb1_indirect_jump): Likewise.
6347 (nop): Likewise.
6348 (*and_scc): Likewise.
6349 (*ior_scc): Likewise.
6350 (*compare_scc): Likewise.
6351 (*cond_move): Likewise.
6352 (*cond_arith): Likewise.
6353 (*cond_sub): Likewise.
6354 (*cmp_ite0): Likewise.
6355 (*cmp_ite1): Likewise.
6356 (*cmp_and): Likewise.
6357 (*cmp_ior): Likewise.
6358 (*ior_scc_scc): Likewise.
6359 (*ior_scc_scc_cmp): Likewise.
6360 (*and_scc_scc): Likewise.
6361 (*and_scc_scc_cmp): Likewise.
6362 (*and_scc_scc_nod): Likewise.
6363 (*negscc): Likewise.
6364 (movcond_addsi): Likewise.
6365 (movcond): Likewise.
6366 (*ifcompare_plus_move): Likewise.
6367 (*if_plus_move): Likewise.
6368 (*ifcompare_move_plus): Likewise.
6369 (*if_move_plus): Likewise.
6370 (*ifcompare_arith_arith): Likewise.
6371 (*if_arith_arith): Likewise.
6372 (*ifcompare_arith_move): Likewise.
6373 (*if_arith_move): Likewise.
6374 (*ifcompare_move_arith): Likewise.
6375 (*if_move_arith): Likewise.
6376 (*ifcompare_move_not): Likewise.
6377 (*if_move_not): Likewise.
6378 (*ifcompare_not_move): Likewise.
6379 (*if_not_move): Likewise.
6380 (*ifcompare_shift_move): Likewise.
6381 (*if_shift_move): Likewise.
6382 (*ifcompare_move_shift): Likewise.
6383 (*if_move_shift): Likewise.
6384 (*ifcompare_shift_shift): Likewise.
6385 (*ifcompare_not_arith): Likewise.
6386 (*ifcompare_arith_not): Likewise.
6387 (*if_arith_not): Likewise.
6388 (*ifcompare_neg_move): Likewise.
6389 (*if_neg_move): Likewise.
6390 (*ifcompare_move_neg): Likewise.
6391 (*if_move_neg): Likewise.
6392 (prologue_thumb1_interwork): Likewise.
6393 (*cond_move_not): Likewise.
6394 (*sign_extract_onebit): Likewise.
6395 (*not_signextract_onebit): Likewise.
6396 (stack_tie): Likewise.
6397 (align_4): Likewise.
6398 (align_8): Likewise.
6399 (consttable_end): Likewise.
6400 (consttable_1): Likewise.
6401 (consttable_2): Likewise.
6402 (consttable_4): Likewise.
6403 (consttable_8): Likewise.
6404 (consttable_16): Likewise.
6405 (*thumb1_tablejump): Likewise.
6406 (prefetch): Likewise.
6407 (force_register_use): Likewise.
6408 (thumb_eh_return): Likewise.
6409 (load_tp_hard): Likewise.
6410 (load_tp_soft): Likewise.
6411 (tlscall): Likewise.
6412 (*arm_movtas_ze): Likewise.
6413 (*arm_rev): Likewise.
6414 (*arm_revsh): Likewise.
6415 (*arm_rev16): Likewise.
6416 * config/arm/thumb2.md
6417 (*thumb2_smaxsi3): Likewise.
6418 (*thumb2_sminsi3): Likewise.
6419 (*thumb32_umaxsi3): Likewise.
6420 (*thumb2_uminsi3): Likewise.
6421 (*thumb2_negdi2): Likewise.
6422 (*thumb2_abssi2): Likewise.
6423 (*thumb2_neg_abss): Likewise.
6424 (*thumb2_movsi_insn): Likewise.
6425 (tls_load_dot_plus_four): Likewise.
6426 (*thumb2_movhi_insn): Likewise.
6427 (*thumb2_mov_scc): Likewise.
6428 (*thumb2_mov_negs): Likewise.
6429 (*thumb2_mov_negs): Likewise.
6430 (*thumb2_mov_nots): Likewise.
6431 (*thumb2_mov_nots): Likewise.
6432 (*thumb2_movsicc_): Likewise.
6433 (*thumb2_movsfcc_soft_insn): Likewise.
6434 (*thumb2_indirect_jump): Likewise.
6435 (*thumb2_and_scc): Likewise.
6436 (*thumb2_ior_scc): Likewise.
6437 (*thumb2_ior_scc_strict_it): Likewise.
6438 (*thumb2_cond_move): Likewise.
6439 (*thumb2_cond_arith): Likewise.
6440 (*thumb2_cond_ari): Likewise.
6441 (*thumb2_cond_sub): Likewise.
6442 (*thumb2_negscc): Likewise.
6443 (*thumb2_movcond): Likewise.
6444 (thumb2_casesi_internal): Likewise.
6445 (thumb2_casesi_internal_pic): Likewise.
6446 (*thumb2_alusi3_short): Likewise.
6447 (*thumb2_mov<mode>_shortim): Likewise.
6448 (*thumb2_addsi_short): Likewise.
6449 (*thumb2_subsi_short): Likewise.
6450 (thumb2_addsi3_compare0): Likewise.
6451 (*thumb2_cbz): Likewise.
6452 (*thumb2_cbnz): Likewise.
6453 (*thumb2_one_cmplsi2_short): Likewise.
6454 (*thumb2_negsi2_short): Likewise.
6455 (*orsi_notsi_si): Likewise.
6456 * config/arm/arm1020e.md: Update with new attributes.
6457 * config/arm/arm1026ejs.md: Update with new attributes.
6458 * config/arm/arm1136jfs.md: Update with new attributes.
6459 * config/arm/arm926ejs.md: Update with new attributes.
6460 * config/arm/cortex-a15.md: Update with new attributes.
6461 * config/arm/cortex-a5.md: Update with new attributes.
6462 * config/arm/cortex-a53.md: Update with new attributes.
6463 * config/arm/cortex-a7.md: Update with new attributes.
6464 * config/arm/cortex-a8.md: Update with new attributes.
6465 * config/arm/cortex-a9.md: Update with new attributes.
6466 * config/arm/cortex-m4.md: Update with new attributes.
6467 * config/arm/cortex-r4.md: Update with new attributes.
6468 * config/arm/fa526.md: Update with new attributes.
6469 * config/arm/fa606te.md: Update with new attributes.
6470 * config/arm/fa626te.md: Update with new attributes.
6471 * config/arm/fa726te.md: Update with new attributes.
6472
1c83b673
JG
64732013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
6474
6475 * config/aarch64/aarch64-simd.md
6476 (aarch64_sqdml<SBINQOPS:as>l_n<mode>_internal): Use
6477 <vwx> iterator to ensure correct register choice.
6478 (aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Likewise.
6479 (aarch64_sqdmull_n<mode>): Likewise.
6480 (aarch64_sqdmull2_n<mode>_internal): Likewise.
6481 * config/aarch64/arm_neon.h
6482 (vml<as><q>_lane<q>_<su>16): Use 'x' constraint for element vector.
6483 (vml<as><q>_n_<su>16): Likewise.
6484 (vml<as>l_high_lane<q>_<su>16): Likewise.
6485 (vml<as>l_high_n_<su>16): Likewise.
6486 (vml<as>l_lane<q>_<su>16): Likewise.
6487 (vml<as>l_n_<su>16): Likewise.
6488 (vmul<q>_lane<q>_<su>16): Likewise.
6489 (vmul<q>_n_<su>16): Likewise.
6490 (vmull_lane<q>_<su>16): Likewise.
6491 (vmull_n_<su>16): Likewise.
6492 (vmull_high_lane<q>_<su>16): Likewise.
6493 (vmull_high_n_<su>16): Likewise.
6494 (vqrdmulh<q>_n_s16): Likewise.
6495
bb1ae543
TB
64962013-09-06 Tejas Belagod <tejas.belagod@arm.com>
6497
6498 * config/aarch64/arm_neon.h: Fix all vdup<bhsd_lane<q> intrinsics to
6499 have the correct lane parameter.
6500
f23c0742
RB
65012013-09-06 Richard Biener <rguenther@suse.de>
6502
6503 * cfganal.c (control_dependences::~control_dependences):
6504 Properly free all of the vector.
6505
c1d49770
KY
65062013-09-06 Kirill Yukhin <kirill.yukhin@intel.com>
6507
6508 PR target/58269
6509 * config/i386/i386.c (ix86_conditional_register_usage):
6510 Proper initialize extended SSE registers.
6511
6da47f52
JH
65122013-09-06 Jan Hubicka <jh@suse.cz>
6513
6514 PR tree-optimization/58311
6515 * ipa-devirt.c (gate_ipa_devirt): Only execute when optimizing.
6516
65172013-09-06 Jan Hubicka <jh@suse.cz>
6518
6519 * Makefile.in (tree-sra.o): Update dependencies.
6520 * tree-sra.c: Include ipa-utils.h
6521 (scan_function): Use recursive_call_p.
6522 (has_caller_p): New function.
6523 (cgraph_for_node_and_aliases): Count also callers of aliases.
6524
fc11f321
JH
65252013-09-06 Jan Hubicka <jh@suse.cz>
6526
6527 PR middle-end/58094
6528 * cgraph.h (symtab_semantically_equivalent_p): Declare.
6529 * tree-tailcall.c: Include ipa-utils.h.
6530 (find_tail_calls): Use it.
6531 * ipa-pure-const.c (check_call): Likewise.
6532 * ipa-utils.c (recursive_call_p): New function.
6533 * ipa-utils.h (recursive_call_p): Dclare.
6534 * symtab.c (symtab_nonoverwritable_alias): Fix formatting.
6535 (symtab_semantically_equivalent_p): New function.
6536 * Makefile.in (tree-tailcall.o): Update dependencies.
6537
9a6af450
EB
65382013-09-06 Eric Botcazou <ebotcazou@adacore.com>
6539
6540 * ipa-split.c (split_function): Set DECL_NO_INLINE_WARNING_P on the
6541 non-inlinable part.
6542
35f32ad4
RB
65432013-09-06 Richard Biener <rguenther@suse.de>
6544
6545 * lto-streamer.h (lto_global_var_decls): Remove.
6546 * Makefile.in (OBJS): Remove lto-symtab.o.
6547 (lto-symtab.o): Remove.
6548 (GTFILES): Remove lto-symtab.c
6549 * lto-symtab.c: Move to lto/
6550
d12a76f3
AK
65512013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6552
6553 * config/s390/s390.md (UNSPEC_FPINT_FLOOR, UNSPEC_FPINT_BTRUNC)
6554 (UNSPEC_FPINT_ROUND, UNSPEC_FPINT_CEIL, UNSPEC_FPINT_NEARBYINT)
6555 (UNSPEC_FPINT_RINT): New constant definitions.
6556 (FPINT, fpint_name, fpint_roundingmode): New integer iterator
6557 definition with 2 attributes.
6558 ("<FPINT:fpint_name><BFP:mode>2", "rint<BFP:mode>2")
6559 ("<FPINT:fpint_name><DFP:mode>2", "rint<DFP:mode>2"): New pattern
6560 definitions.
6561
65622013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6563
f43245d1 6564 * config/s390/s390.md: Add "bcr_flush" value to mnemonic attribute.
d12a76f3
AK
6565 ("mem_thread_fence_1"): Use bcr 14,0 for z196 and later.
6566 Set the mnemonic attribute to "bcr_flush". Set the "z196prop"
6567 attribute to "z196_alone".
6568 * config/s390/2827.md: Add "bcr_flush" to "ooo_groupalone" and
6569 "zEC12_simple".
6570
c8e9d8c3
RB
65712013-09-06 Richard Biener <rguenther@suse.de>
6572
6573 * basic-block.h (class control_dependences): New.
6574 * tree-ssa-dce.c (control_dependence_map): Remove.
6575 (cd): New global.
6576 (EXECUTE_IF_CONTROL_DEPENDENT): Remove.
6577 (set_control_dependence_map_bit, clear_control_dependence_bitmap,
6578 find_pdom, find_control_dependence, find_all_control_dependences):
6579 Move to cfganal.c.
f43245d1
UB
6580 (mark_control_dependent_edges_necessary,
6581 find_obviously_necessary_stmts, propagate_necessity, tree_dce_init,
6582 tree_dce_done, perform_tree_ssa_dce): Adjust.
c8e9d8c3
RB
6583 * cfganal.c (set_control_dependence_map_bit,
6584 clear_control_dependence_bitmap, find_pdom, find_control_dependence,
6585 find_all_control_dependences): Move from tree-ssa-dce.c and
6586 implement as methods of control_dependences class.
6587 (control_dependences::control_dependences): New.
6588 (control_dependences::~control_dependences): Likewise.
6589 (control_dependences::get_edges_dependent_on): Likewise.
6590 (control_dependences::get_edge): Likewise.
6591
7d2ba471
JH
65922013-09-04 Jan Hubicka <jh@suse.cz>
6593
6594 * tree.c (types_same_for_odr): Drop overactive check.
6595 * ipa-devirt.c (hash_type_name): Likewise.
6596
e18412fc
JH
65972013-09-04 Jan Hubicka <jh@suse.cz>
6598
6599 * cgraphunit.c (walk_polymorphic_call_targets): Break out from ...
6600 (analyze_functions): ... here.
6601
d352b245
JH
66022013-09-04 Jan Hubicka <jh@suse.cz>
6603
6604 PR middle-end/58201
6605 * cgraphunit.c (analyze_functions): Clear AUX fields
6606 after processing; initialize assembler name has.
6607
770da076
JL
66082013-09-05 Jeff Law <law@redhat.com>
6609
6610 * tree-ssa-threadedge.c (thread_around_empty_blocks): Renamed
6611 from thread_around_empty_block. Record threading path into PATH.
6612 Recurse if threading through the initial block is successful.
6613 (thread_across_edge): Corresponding changes to slightly simplify.
6614
fe6f68e2
JG
66152013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
6616
6617 * config/aarch64/aarch64.md
6618 (type): Remove frecpe, frecps, frecpx.
6619 (aarch64_frecp<FRECP:frecp_suffix><mode>): Move to aarch64-simd.md,
6620 fix to be a TARGET_SIMD instruction.
6621 (aarch64_frecps): Remove.
6622 * config/aarch64/aarch64-simd.md
6623 (aarch64_frecp<FRECP:frecp_suffix><mode>): New, moved from aarch64.md
6624 (aarch64_frecps<mode>): Handle all float/vector of float modes.
6625
6e4150e1
JG
66262013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
6627 Sofiane Naci <sofiane.naci@arm.com>
6628
f43245d1 6629 * config/arm/types.md (define_attr "type"): Expand "arlo_imm"
6e4150e1 6630 into "adr", "alu_imm", "alus_imm", "logic_imm", "logics_imm".
f43245d1
UB
6631 Expand "arlo_reg" into "adc_reg", "adc_imm", "adcs_reg", "adcs_imm",
6632 "alu_ext", "alu_reg", "alus_ext", "alus_reg", "bfm", "csel",
6633 "logic_reg", "logics_reg", "rev". Expand "arlo_shift" into
6634 "alu_shift_imm", "alus_shift_imm", "logic_shift_imm",
6635 "logics_shift_imm". Expand "arlo_shift_reg" into "alu_shift_reg",
6636 "alus_shift_reg", "logic_shift_reg", "logics_shift_reg". Expand "clz"
6637 into "clz, "rbit". Rename "shift" to "shift_imm".
6e4150e1 6638 * config/arm/arm.md (define_attr "core_cycles"): Update for attribute
f43245d1 6639 changes. Update for attribute changes all occurrences of arlo_* and
6e4150e1
JG
6640 shift* types.
6641 * config/arm/arm-fixed.md: Update for attribute changes
6642 all occurrences of arlo_* types.
6643 * config/arm/thumb2.md: Update for attribute changes all occurrences
6644 of arlo_* types.
6645 * config/arm/arm.c (xscale_sched_adjust_cost): (rtx insn, rtx
6646 (cortexa7_older_only): Likewise.
6647 (cortexa7_younger): Likewise.
6648 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
6649 (1020alu_shift_op): Likewise.
6650 (1020alu_shift_reg_op): Likewise.
6651 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
6652 (alu_shift_op): Likewise.
6653 (alu_shift_reg_op): Likewise.
f43245d1 6654 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
6e4150e1
JG
6655 (11_alu_shift_op): Likewise.
6656 (11_alu_shift_reg_op): Likewise.
6657 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
6658 (9_alu_shift_reg_op): Likewise.
6659 * config/arm/cortex-a15.md (cortex_a15_alu): Update for
6660 attribute changes.
6661 (cortex_a15_alu_shift): Likewise.
6662 (cortex_a15_alu_shift_reg): Likewise.
6663 * config/arm/cortex-a5.md (cortex_a5_alu): Update for
6664 attribute changes.
6665 (cortex_a5_alu_shift): Likewise.
f43245d1
UB
6666 * config/arm/cortex-a53.md (cortex_a53_alu): Update for
6667 attribute changes.
6e4150e1 6668 (cortex_a53_alu_shift): Likewise.
f43245d1
UB
6669 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for
6670 attribute changes.
6e4150e1
JG
6671 (cortex_a7_alu_reg): Likewise.
6672 (cortex_a7_alu_shift): Likewise.
f43245d1
UB
6673 * config/arm/cortex-a8.md (cortex_a8_alu): Update for
6674 attribute changes.
6e4150e1
JG
6675 (cortex_a8_alu_shift): Likewise.
6676 (cortex_a8_alu_shift_reg): Likewise.
f43245d1 6677 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
6e4150e1 6678 (cortex_a9_dp_shift): Likewise.
f43245d1
UB
6679 * config/arm/cortex-m4.md (cortex_m4_alu): Update for
6680 attribute changes.
6e4150e1
JG
6681 * config/arm/cortex-r4.md
6682 (cortex_r4_alu): Update for attribute changes.
6683 (cortex_r4_mov): Likewise.
6684 (cortex_r4_alu_shift_reg): Likewise.
f43245d1 6685 * config/arm/fa526.md (526_alu_op): Update for attribute changes.
6e4150e1 6686 (526_alu_shift_op): Likewise.
f43245d1
UB
6687 * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
6688 * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
6e4150e1 6689 (626te_alu_shift_op): Likewise.
f43245d1 6690 * config/arm/fa726te.md (726te_alu_op): Update for attribute changes.
6e4150e1
JG
6691 (726te_alu_shift_op): Likewise.
6692 (726te_alu_shift_reg_op): Likewise.
6693 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
6694 (mp626_alu_shift_op): Likewise.
6695 * config/arm/marvell-pj4.md (pj4_alu): Update for attribute changes.
6696 (pj4_alu_conds): Likewise.
6697 (pj4_shift): Likewise.
6698 (pj4_shift_conds): Likewise.
6699 (pj4_alu_shift): Likewise.
6700 (pj4_alu_shift_conds): Likewise.
6701 * config/aarch64/aarch64.md: Update for attribute change
6702 all occurrences of arlo_* and shift* types.
6703
e6523306
MS
67042013-09-05 Mike Stump <mikestump@comcast.net>
6705
6706 * tree.h: Move documentation for tree_function_decl to tree-core.h
6707 with the declaration.
6708
80a18161
PB
67092013-09-05 Peter Bergner <bergner@vnet.ibm.com>
6710
6711 PR target/58139
6712 * reginfo.c (choose_hard_reg_mode): Scan through all mode classes
6713 looking for widest mode.
6714
6994430a
EB
67152013-09-05 Eric Botcazou <ebotcazou@adacore.com>
6716
6717 * config.gcc (*-*-vxworks*): Do not override an existing extra_objs.
6718
e67f39f7
RB
67192013-09-05 Richard Biener <rguenther@suse.de>
6720
6721 PR tree-optimization/58137
6722 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
6723 Do not create vectors of pointers.
6724 * tree-vect-loop.c (get_initial_def_for_induction): Use proper
6725 types for the components of the vector initializer.
6726 * tree-cfg.c (verify_gimple_assign_binary): Remove special-casing
6727 allowing pointer vectors with PLUS_EXPR/MINUS_EXPR.
6728
568cda29
MJ
67292013-09-05 Martin Jambor <mjambor@suse.cz>
6730
6731 * ipa-prop.c (remove_described_reference): Accept missing references,
6732 return false if that hppens, otherwise return true.
6733 (cgraph_node_for_jfunc): New function.
6734 (try_decrement_rdesc_refcount): Likewise.
6735 (try_make_edge_direct_simple_call): Use them.
6736 (ipa_edge_removal_hook): Remove references from rdescs.
6737 (ipa_edge_duplication_hook): Clone rdescs and their references
6738 when the new edge has the same caller as the old one.
6739 * cgraph.c (cgraph_resolve_speculation): Remove speculative
6740 reference before removing any edges.
6741
5a200acb
RE
67422013-09-05 Richard Earnshaw <rearnsha@arm.com>
6743
6744 * arm.c (thumb2_emit_strd_push): Rewrite to use pre-decrement on
6745 initial store.
6746 * thumb2.md (thumb2_storewb_parisi): New pattern.
6747
5922847b
YZ
67482013-09-05 Yufeng Zhang <yufeng.zhang@arm.com>
6749
6750 * config/aarch64/aarch64-option-extensions.def: Add
6751 AARCH64_OPT_EXTENSION of 'crc'.
6752 * config/aarch64/aarch64.h (AARCH64_FL_CRC): New define.
6753 (AARCH64_ISA_CRC): Ditto.
6754 * doc/invoke.texi (-march and -mcpu feature modifiers): Add
6755 description of the CRC extension.
6756
996746aa
AI
67572013-09-05 Alexander Ivchenko <alexander.ivchenko@intel.com>
6758
6759 * config/rs6000/linux64.h: Define OPTION_BIONIC and OPTION_UCLIBC.
6760 * config/rs6000/linux.h: Ditto.
6761 * alpha/linux.h: Ditto.
6762 * config/bfin/uclinux.h: Define TARGET_LIBC_HAS_FUNCTION as
6763 no_c99_libc_has_function.
6764 * config/c6x/uclinux-elf.h: Ditto.
6765 * config/lm32/uclinux-elf.h: Ditto.
6766 * config/m68k/uclinux.h: Ditto.
6767 * config/moxie/uclinux.h: Ditto.
6768 * config.gcc (bfin*-linux-uclibc*): Add t-linux-android to tmake_file.
6769 (crisv32-*-linux*, cris-*-linux*): Ditto.
6770 * config/bfin/bfin.c: Include "tm_p.h".
6771
c370d99f
RB
67722013-09-05 Richard Biener <rguenther@suse.de>
6773
6774 * tree-vect-loop.c (vect_analyze_loop_operations): Properly
6775 check for a definition without a basic-block.
6776
003bb7f3
JG
67772013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
6778 Sofiane Naci <sofiane.naci@arm.com>
6779
6780 * config/aarch64/aarch64.md
6781 (*movti_aarch64): Rename r_2_f and f_2_r.
6782 (*movsf_aarch64): Likewise.
6783 (*movdf_aarch64): Likewise.
6784 (*movtf_aarch64): Likewise.
6785 (aarch64_movdi_<mode>low): Likewise.
6786 (aarch64_movdi_<mode>high): Likewise.
6787 (aarch64_mov<mode>high_di): Likewise.
6788 (aarch64_mov<mode>low_di): Likewise.
6789 (aarch64_movtilow_tilow): Likewise.
6790 * config/arm/arm.md (attribute "neon_type"): Delete. Move attribute
6791 values to config/arm/types.md
6792 (attribute "conds"): Update for attribute change.
6793 (anddi3_insn): Likewise.
6794 (iordi3_insn): Likewise.
6795 (xordi3_insn): Likewise.
6796 (one_cmpldi2): Likewise.
6797 * config/arm/types.md (type): Add Neon types.
6798 * config/arm/neon.md (neon_mov<mode>): Remove "neon_type" attribute,
6799 use "type" attribute.
6800 (movmisalign<mode>_neon_store): Likewise.
6801 (movmisalign<mode>_neon_load): Likewise.
6802 (vec_set<mode>_internal): Likewise.
6803 (vec_setv2di_internal): Likewise.
6804 (vec_extract<mode>): Likewise.
6805 (vec_extractv2di): Likewise.
6806 (add<mode>3_neon): Likewise.
6807 (adddi3_neon): Likewise.
6808 (sub<mode>3_neon): Likewise.
6809 (subdi3_neon): Likewise.
6810 (mul<mode>3_neon): Likewise.
6811 (mul<mode>3add<mode>_neon): Likewise.
6812 (mul<mode>3neg<mode>add<mode>_neon): Likewise.
6813 (fma<VCVTF:mode>4)): Likewise.
6814 (fma<VCVTF:mode>4_intrinsic): Likewise.
6815 (fmsub<VCVTF:mode>4)): Likewise.
6816 (fmsub<VCVTF:mode>4_intrinsic): Likewise.
6817 (neon_vrint<NEON_VRINT:nvrint_variant><VCVTF:mode>): Likewise.
6818 (ior<mode>3): Likewise.
6819 (and<mode>3): Likewise.
6820 (anddi3_neon): Likewise.
6821 (orn<mode>3_neon): Likewise.
6822 (orndi3_neon): Likewise.
6823 (bic<mode>3_neon): Likewise.
6824 (bicdi3_neon): Likewise.
6825 (xor<mode>3): Likewise.
6826 (one_cmpl<mode>2): Likewise.
6827 (abs<mode>2): Likewise.
6828 (neg<mode>2): Likewise.
6829 (umin<mode>3_neon): Likewise.
6830 (umax<mode>3_neon): Likewise.
6831 (smin<mode>3_neon): Likewise.
6832 (smax<mode>3_neon): Likewise.
6833 (vashl<mode>3): Likewise.
6834 (vashr<mode>3_imm): Likewise.
6835 (vlshr<mode>3_imm): Likewise.
6836 (ashl<mode>3_signed): Likewise.
6837 (ashl<mode>3_unsigned): Likewise.
6838 (neon_load_count): Likewise.
6839 (ashldi3_neon_noclobber): Likewise.
6840 (signed_shift_di3_neon): Likewise.
6841 (unsigned_shift_di3_neon): Likewise.
6842 (ashrdi3_neon_imm_noclobber): Likewise.
6843 (lshrdi3_neon_imm_noclobber): Likewise.
6844 (widen_ssum<mode>3): Likewise.
6845 (widen_usum<mode>3): Likewise.
6846 (quad_halves_<code>v4si): Likewise.
6847 (quad_halves_<code>v4sf): Likewise.
6848 (quad_halves_<code>v8hi): Likewise.
6849 (quad_halves_<code>v16qi): Likewise.
6850 (reduc_splus_v2di): Likewise.
6851 (neon_vpadd_internal<mode>): Likewise.
6852 (neon_vpsmin<mode>): Likewise.
6853 (neon_vpsmax<mode>): Likewise.
6854 (neon_vpumin<mode>): Likewise.
6855 (neon_vpumax<mode>): Likewise.
6856 (ss_add<mode>_neon): Likewise.
6857 (us_add<mode>_neon): Likewise.
6858 (ss_sub<mode>_neon): Likewise.
6859 (us_sub<mode>_neon): Likewise.
6860 (neon_vadd<mode>_unspec): Likewise.
6861 (neon_vaddl<mode>): Likewise.
6862 (neon_vaddw<mode>): Likewise.
6863 (neon_vhadd<mode>): Likewise.
6864 (neon_vqadd<mode>): Likewise.
6865 (neon_vaddhn<mode>): Likewise.
6866 (neon_vmul<mode>): Likewise.
6867 (neon_vmla<mode>): Likewise.
6868 (neon_vmlal<mode>): Likewise.
6869 (neon_vmls<mode>): Likewise.
6870 (neon_vmlsl<mode>): Likewise.
6871 (neon_vqdmulh<mode>): Likewise.
6872 (neon_vqdmlal<mode>): Likewise.
6873 (neon_vqdmlsl<mode>): Likewise.
6874 (neon_vmull<mode>): Likewise.
6875 (neon_vqdmull<mode>): Likewise.
6876 (neon_vsub<mode>_unspec): Likewise.
6877 (neon_vsubl<mode>): Likewise.
6878 (neon_vsubw<mode>): Likewise.
6879 (neon_vqsub<mode>): Likewise.
6880 (neon_vhsub<mode>): Likewise.
6881 (neon_vsubhn<mode>): Likewise.
6882 (neon_vceq<mode>): Likewise.
6883 (neon_vcge<mode>): Likewise.
6884 (neon_vcgeu<mode>): Likewise.
6885 (neon_vcgt<mode>): Likewise.
6886 (neon_vcgtu<mode>): Likewise.
6887 (neon_vcle<mode>): Likewise.
6888 (neon_vclt<mode>): Likewise.
6889 (neon_vcage<mode>): Likewise.
6890 (neon_vcagt<mode>): Likewise.
6891 (neon_vtst<mode>): Likewise.
6892 (neon_vabd<mode>): Likewise.
6893 (neon_vabdl<mode>): Likewise.
6894 (neon_vaba<mode>): Likewise.
6895 (neon_vabal<mode>): Likewise.
6896 (neon_vmax<mode>): Likewise.
6897 (neon_vmin<mode>): Likewise.
6898 (neon_vpaddl<mode>): Likewise.
6899 (neon_vpadal<mode>): Likewise.
6900 (neon_vpmax<mode>): Likewise.
6901 (neon_vpmin<mode>): Likewise.
6902 (neon_vrecps<mode>): Likewise.
6903 (neon_vrsqrts<mode>): Likewise.
6904 (neon_vqabs<mode>): Likewise.
6905 (neon_vqneg<mode>): Likewise.
6906 (neon_vcls<mode>): Likewise.
6907 (clz<mode>2): Likewise.
6908 (popcount<mode>2): Likewise.
6909 (neon_vrecpe): Likewise.
6910 (neon_vrsqrte): Likewise.
6911 (neon_vget_lane<mode>_sext_internal): Likewise.
6912 (neon_vget_lane<mode>_zext_internal): Likewise.
6913 (neon_vdup_n<mode>): Likewise.
6914 (neon_vdup_nv2di): Likewise.
6915 (neon_vdpu_lane<mode>_internal): Likewise.
6916 (neon_vswp<mode>): Likewise.
6917 (float<mode><V_cvtto>2): Likewise.
6918 (floatuns<mode><V_cvtto>2): Likewise.
6919 (fix_trunc<mode><V_cvtto>)2): Likewise
6920 (fixuns_trunc<mode><V_cvtto)2): Likewise.
6921 (neon_vcvt<mode>): Likewise.
6922 (neon_vcvtv4sfv4hf): Likewise.
6923 (neon_vcvtv4hfv4sf): Likewise.
6924 (neon_vcvt_n<mode>): Likewise.
6925 (neon_vmovn<mode>): Likewise.
6926 (neon_vqmovn<mode>): Likewise.
6927 (neon_vqmovun<mode>): Likewise.
6928 (neon_vmovl<mode>): Likewise.
6929 (neon_vmul_lane<mode>): Likewise.
6930 (neon_vmull_lane<mode>): Likewise.
6931 (neon_vqdmull_lane<mode>): Likewise.
6932 (neon_vqdmulh_lane<mode>): Likewise.
6933 (neon_vmla_lane<mode>): Likewise.
6934 (neon_vmlal_lane<mode>): Likewise.
6935 (neon_vqdmlal_lane<mode>): Likewise.
6936 (neon_vmls_lane<mode>): Likewise.
6937 (neon_vmlsl_lane<mode>): Likewise.
6938 (neon_vqdmlsl_lane<mode>): Likewise.
6939 (neon_vext<mode>): Likewise.
6940 (neon_vrev64<mode>): Likewise.
6941 (neon_vrev32<mode>): Likewise.
6942 (neon_vrev16<mode>): Likewise.
6943 (neon_vbsl<mode>_internal): Likewise.
6944 (neon_vshl<mode>): Likewise.
6945 (neon_vqshl<mode>): Likewise.
6946 (neon_vshr_n<mode>): Likewise.
6947 (neon_vshrn_n<mode>): Likewise.
6948 (neon_vqshrn_n<mode>): Likewise.
6949 (neon_vqshrun_n<mode>): Likewise.
6950 (neon_vshl_n<mode>): Likewise.
6951 (neon_vqshl_n<mode>): Likewise.
6952 (neon_vqshlu_n<mode>): Likewise.
6953 (neon_vshll_n<mode>): Likewise.
6954 (neon_vsra_n<mode>): Likewise.
6955 (neon_vsri_n<mode>): Likewise.
6956 (neon_vsli_n<mode>): Likewise.
6957 (neon_vtbl1v8qi): Likewise.
6958 (neon_vtbl2v8qi): Likewise.
6959 (neon_vtbl3v8qi): Likewise.
6960 (neon_vtbl4v8qi): Likewise.
6961 (neon_vtbx1v8qi): Likewise.
6962 (neon_vtbx2v8qi): Likewise.
6963 (neon_vtbx3v8qi): Likewise.
6964 (neon_vtbx4v8qi): Likewise.
6965 (neon_vtrn<mode>_internal): Likewise.
6966 (neon_vzip<mode>_internal): Likewise.
6967 (neon_vuzp<mode>_internal): Likewise.
6968 (neon_vld1<mode>): Likewise.
6969 (neon_vld1_lane<mode>): Likewise.
6970 (neon_vld1_dup<mode>): Likewise.
6971 (neon_vld1_dupv2di): Likewise.
6972 (neon_vst1<mode>): Likewise.
6973 (neon_vst1_lane<mode>): Likewise.
6974 (neon_vld2<mode>): Likewise.
6975 (neon_vld2_lane<mode>): Likewise.
6976 (neon_vld2_dup<mode>): Likewise.
6977 (neon_vst2<mode>): Likewise.
6978 (neon_vst2_lane<mode>): Likewise.
6979 (neon_vld3<mode>): Likewise.
6980 (neon_vld3qa<mode>): Likewise.
6981 (neon_vld3qb<mode>): Likewise.
6982 (neon_vld3_lane<mode>): Likewise.
6983 (neon_vld3_dup<mode>): Likewise.
6984 (neon_vst3<mode>): Likewise.
6985 (neon_vst3qa<mode>): Likewise.
6986 (neon_vst3qb<mode>): Likewise.
6987 (neon_vst3_lane<mode>): Likewise.
6988 (neon_vld4<mode>): Likewise.
6989 (neon_vld4qa<mode>): Likewise.
6990 (neon_vld4qb<mode>): Likewise.
6991 (neon_vld4_lane<mode>): Likewise.
6992 (neon_vld4_dup<mode>): Likewise.
6993 (neon_vst4<mode>): Likewise.
6994 (neon_vst4qa<mode>): Likewise.
6995 (neon_vst4qb<mode>): Likewise.
6996 (neon_vst4_lane<mode>): Likewise.
6997 (neon_vec_unpack<US>_lo_<mode>): Likewise.
6998 (neon_vec_unpack<US>_hi_<mode>): Likewise.
6999 (neon_vec_<US>mult_lo_<mode>): Likewise.
7000 (neon_vec_<US>mult_hi_<mode>): Likewise.
7001 (neon_vec_<US>shiftl_<mode>): Likewise.
7002 (neon_unpack<US>_<mode>): Likewise.
7003 (neon_vec_<US>mult_<mode>): Likewise.
7004 (vec_pack_trunc_<mode>): Likewise.
7005 (neon_vec_pack_trunk_<mode>): Likewise.
7006 (neon_vabd<mode>_2): Likewise.
7007 (neon_vabd<mode>_3): Likewise.
7008 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
7009 (thumb2_movsi_vfp): Likewise.
7010 (movdi_vfp): Likewise.
7011 (movdi_vfp_cortexa8): Likewise.
7012 (movhf_vfp_neon): Likewise.
7013 (movhf_vfp): Likewiwse.
7014 (movsf_vfp): Likewiwse.
7015 (thumb2_movsf_vfp): Likewiwse.
7016 (movdf_vfp): Likewise.
7017 (thumb2_movdf_vfp): Likewise.
7018 (movsfcc_vfp): Likewise.
7019 (thumb2_movsfcc_vfp): Likewise.
7020 (movdfcc_vfp): Likewise.
7021 (thumb2_movdfcc_vfp): Likewise.
7022 * config/arm/arm.c (cortexa7_older_only): Update for attribute change.
7023 * config/arm/arm1020e.md (v10_c2v): Update for attribute change.
7024 (v10_v2c): Likewise.
7025 * config/arm/cortex-a15-neon.md (cortex_a15_neon_int_1): Update for
7026 attribute change.
7027 (cortex_a15_neon_int_2): Likewise.
7028 (cortex_a15_neon_int_3): Likewise.
7029 (cortex_a15_neon_int_4): Likewise.
7030 (cortex_a15_neon_int_5): Likewise.
7031 (cortex_a15_neon_vqneg_vqabs): Likewise.
7032 (cortex_a15_neon_vmov): Likewise.
7033 (cortex_a15_neon_vaba): Likewise.
7034 (cortex_a15_neon_vaba_qqq): Likewise.
7035 (cortex_a15_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
7036 (cortex_a15_neon_mul_qqq_8_16_32_ddd_32): Likewise.
7037 (cortex_a15_neon_mul_qdd_64_32_long_qqd_16_ddd_32_\
7038 scalar_64_32_long_scalar): Likewise.
7039 (cortex_a15_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
7040 (cortex_a15_neon_mla_qqq_8_16): Likewise.
7041 (cortex_a15_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
7042 lotype_qdd_64_32_long): Likewise.
7043 (cortex_a15_neon_mla_qqq_32_qqd_32_scalar): Likewise.
7044 (cortex_a15_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
7045 (cortex_a15_neon_mul_qqd_32_scalar): Likewise.
7046 (cortex_a15_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
7047 (cortex_a15_neon_shift_1): Likewise.
7048 (cortex_a15_neon_shift_2): Likewise.
7049 (cortex_a15_neon_shift_3): Likewise.
7050 (cortex_a15_neon_vshl_ddd): Likewise.
7051 (cortex_a15_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
7052 (cortex_a15_neon_vsra_vrsra): Likewise.
7053 (cortex_a15_neon_fp_vadd_ddd_vabs_dd): Likewise.
7054 (cortex_a15_neon_fp_vadd_qqq_vabs_qq): Likewise.
7055 (cortex_a15_neon_fp_vmul_ddd): Likewise.
7056 (cortex_a15_neon_fp_vmul_qqd): Likewise.
7057 (cortex_a15_neon_fp_vmla_ddd): Likewise.
7058 (cortex_a15_neon_fp_vmla_qqq): Likewise.
7059 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
7060 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
7061 (cortex_a15_neon_fp_vrecps_vrsqrts_ddd): Likewise.
7062 (cortex_a15_neon_fp_vrecps_vrsqrts_qqq): Likewise.
7063 (cortex_a15_neon_bp_simple): Likewise.
7064 (cortex_a15_neon_bp_2cycle): Likewise.
7065 (cortex_a15_neon_bp_3cycle): Likewise.
7066 (cortex_a15_neon_vld1_1_2_regs): Likewise.
7067 (cortex_a15_neon_vld1_3_4_regs): Likewise.
7068 (cortex_a15_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
7069 (cortex_a15_neon_vld2_4_regs): Likewise.
7070 (cortex_a15_neon_vld3_vld4): Likewise.
7071 (cortex_a15_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
7072 (cortex_a15_neon_vst1_3_4_regs): Likewise.
7073 (cortex_a15_neon_vst2_4_regs_vst3_vst4): Likewise.
7074 (cortex_a15_neon_vst3_vst4): Likewise.
7075 (cortex_a15_neon_vld1_vld2_lane): Likewise.
7076 (cortex_a15_neon_vld3_vld4_lane" 10
7077 (cortex_a15_neon_vst1_vst2_lane): Likewise.
7078 (cortex_a15_neon_vst3_vst4_lane): Likewise.
7079 (cortex_a15_neon_vld3_vld4_all_lanes): Likewise.
7080 (cortex_a15_neon_ldm_2): Likewise.0
7081 (cortex_a15_neon_stm_2): Likewise.
7082 (cortex_a15_neon_mcr): Likewise.
7083 (cortex_a15_neon_mcr_2_mcrr): Likewise.
7084 (cortex_a15_neon_mrc): Likewise.
7085 (cortex_a15_neon_mrrc): Likewise.
7086 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
7087 change.
7088 (cortex_a15_alu_shift): Likewise.
7089 (cortex_a15_alu_shift_reg): Likewise.
7090 (cortex_a15_mult32): Likewise.
7091 (cortex_a15_mult64): Likewise.
7092 (cortex_a15_block): Likewise.
7093 (cortex_a15_branch): Likewise.
7094 (cortex_a15_load1): Likewise.
7095 (cortex_a15_load3): Likewise.
7096 (cortex_a15_store1): Likewise.
7097 (cortex_a15_store3): Likewise.
7098 (cortex_a15_call): Likewise.
f43245d1 7099 * config/arm/cortex-a5.md (cortex_a5_r2f): Update for attribute change.
003bb7f3
JG
7100 (cortex_a5_f2r): Likewise.
7101 * config/arm/cortex-a53.md (cortex_a53_r2f): Update for attribute
7102 change.
7103 (cortex_a53_f2r): Likewise.
7104 * config/arm/cortex-a7.md
7105 (cortex_a7_branch): Update for attribute change.
7106 (cortex_a7_call): Likewise.
7107 (cortex_a7_alu_imm): Likewise.
7108 (cortex_a7_alu_reg): Likewise.
7109 (cortex_a7_alu_shift): Likewise.
7110 (cortex_a7_mul): Likewise.
7111 (cortex_a7_load1): Likewise.
7112 (cortex_a7_store1): Likewise.
7113 (cortex_a7_load2): Likewise.
7114 (cortex_a7_store2): Likewise.
7115 (cortex_a7_load3): Likewise.
7116 (cortex_a7_store3): Likewise.
7117 (cortex_a7_load4): Likewise.
7118 (cortex_a7_store4): Likewise.
7119 (cortex_a7_fpalu): Likewise.
7120 (cortex_a7_fconst): Likewise.
7121 (cortex_a7_fpmuls): Likewise.
7122 (cortex_a7_neon_mul): Likewise.
7123 (cortex_a7_fpmacs): Likewise.
7124 (cortex_a7_neon_mla: Likewise.
7125 (cortex_a7_fpmuld: Likewise.
7126 (cortex_a7_fpmacd: Likewise.
7127 (cortex_a7_fpfmad: Likewise.
7128 (cortex_a7_fdivs: Likewise.
7129 (cortex_a7_fdivd: Likewise.
7130 (cortex_a7_r2f: Likewise.
7131 (cortex_a7_f2r: Likewise.
7132 (cortex_a7_f_flags: Likewise.
7133 (cortex_a7_f_loads: Likewise.
7134 (cortex_a7_f_loadd: Likewise.
7135 (cortex_a7_f_stores: Likewise.
7136 (cortex_a7_f_stored: Likewise.
7137 (cortex_a7_neon): Likewise.
7138 * config/arm/cortex-a8-neon.md
7139 (cortex_a8_neon_mrc): Update for attribute change.
7140 (cortex_a8_neon_mrrc): Likewise.
7141 (cortex_a8_neon_int_1): Likewise.
7142 (cortex_a8_neon_int_2): Likewise.
7143 (cortex_a8_neon_int_3): Likewise.
7144 (cortex_a8_neon_int_4): Likewise.
7145 (cortex_a8_neon_int_5): Likewise.
7146 (cortex_a8_neon_vqneg_vqabs): Likewise.
7147 (cortex_a8_neon_vmov): Likewise.
7148 (cortex_a8_neon_vaba): Likewise.
7149 (cortex_a8_neon_vaba_qqq): Likewise.
7150 (cortex_a8_neon_vsma): Likewise.
7151 (cortex_a8_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
7152 (cortex_a8_neon_mul_qqq_8_16_32_ddd_32): Likewise.
f43245d1
UB
7153 (cortex_a8_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_\
7154 long_scalar): Likewise.
003bb7f3
JG
7155 (cortex_a8_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
7156 (cortex_a8_neon_mla_qqq_8_16): Likewise.
7157 (cortex_a8_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
7158 long_scalar_qdd_64_32_long): Likewise.
7159 (cortex_a8_neon_mla_qqq_32_qqd_32_scalar): Likewise.
7160 (cortex_a8_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
7161 (cortex_a8_neon_mul_qqd_32_scalar): Likewise.
7162 (cortex_a8_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
7163 (cortex_a8_neon_shift_1): Likewise.
7164 (cortex_a8_neon_shift_2): Likewise.
7165 (cortex_a8_neon_shift_3): Likewise.
7166 (cortex_a8_neon_vshl_ddd): Likewise.
7167 (cortex_a8_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
7168 (cortex_a8_neon_vsra_vrsra): Likewise.
7169 (cortex_a8_neon_fp_vadd_ddd_vabs_dd): Likewise.
7170 (cortex_a8_neon_fp_vadd_qqq_vabs_qq): Likewise.
7171 (cortex_a8_neon_fp_vsum): Likewise.
7172 (cortex_a8_neon_fp_vmul_ddd): Likewise.
7173 (cortex_a8_neon_fp_vmul_qqd): Likewise.
7174 (cortex_a8_neon_fp_vmla_ddd): Likewise.
7175 (cortex_a8_neon_fp_vmla_qqq): Likewise.
7176 (cortex_a8_neon_fp_vmla_ddd_scalar): Likewise.
7177 (cortex_a8_neon_fp_vmla_qqq_scalar): Likewise.
7178 (cortex_a8_neon_fp_vrecps_vrsqrts_ddd): Likewise.
7179 (cortex_a8_neon_fp_vrecps_vrsqrts_qqq): Likewise.
7180 (cortex_a8_neon_bp_simple): Likewise.
7181 (cortex_a8_neon_bp_2cycle): Likewise.
7182 (cortex_a8_neon_bp_3cycle): Likewise.
7183 (cortex_a8_neon_ldr): Likewise.
7184 (cortex_a8_neon_str): Likewise.
7185 (cortex_a8_neon_vld1_1_2_regs): Likewise.
7186 (cortex_a8_neon_vld1_3_4_regs): Likewise.
7187 (cortex_a8_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
7188 (cortex_a8_neon_vld2_4_regs): Likewise.
7189 (cortex_a8_neon_vld3_vld4): Likewise.
7190 (cortex_a8_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
7191 (cortex_a8_neon_vst1_3_4_regs): Likewise.
7192 (cortex_a8_neon_vst2_4_regs_vst3_vst4): Likewise.
7193 (cortex_a8_neon_vst3_vst4): Likewise.
7194 (cortex_a8_neon_vld1_vld2_lane): Likewise.
7195 (cortex_a8_neon_vld3_vld4_lane): Likewise.
7196 (cortex_a8_neon_vst1_vst2_lane): Likewise.
7197 (cortex_a8_neon_vst3_vst4_lane): Likewise.
7198 (cortex_a8_neon_vld3_vld4_all_lanes): Likewise.
7199 (cortex_a8_neon_mcr): Likewise.
7200 (cortex_a8_neon_mcr_2_mcrr): Likewise.
f43245d1 7201 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
003bb7f3
JG
7202 * config/arm/cortex-a9-neon.md (ca9_neon_mrc): Update for attribute
7203 change.
7204 (ca9_neon_mrrc): Likewise.
7205 (cortex_a9_neon_int_1): Likewise.
7206 (cortex_a9_neon_int_2): Likewise.
7207 (cortex_a9_neon_int_3): Likewise.
7208 (cortex_a9_neon_int_4): Likewise.
7209 (cortex_a9_neon_int_5): Likewise.
7210 (cortex_a9_neon_vqneg_vqabs): Likewise.
7211 (cortex_a9_neon_vmov): Likewise.
7212 (cortex_a9_neon_vaba): Likewise.
7213 (cortex_a9_neon_vaba_qqq): Likewise.
7214 (cortex_a9_neon_vsma): Likewise.
7215 (cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
7216 (cortex_a9_neon_mul_qqq_8_16_32_ddd_32): Likewise.
f43245d1
UB
7217 (cortex_a9_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_\
7218 long_scalar): Likewise.
003bb7f3
JG
7219 (cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
7220 (cortex_a9_neon_mla_qqq_8_16): Likewise.
7221 (cortex_a9_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
7222 long_scalar_qdd_64_32_long): Likewise.
7223 (cortex_a9_neon_mla_qqq_32_qqd_32_scalar): Likewise.
7224 (cortex_a9_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
7225 (cortex_a9_neon_mul_qqd_32_scalar): Likewise.
7226 (cortex_a9_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
7227 (cortex_a9_neon_shift_1): Likewise.
7228 (cortex_a9_neon_shift_2): Likewise.
7229 (cortex_a9_neon_shift_3): Likewise.
7230 (cortex_a9_neon_vshl_ddd): Likewise.
7231 (cortex_a9_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
7232 (cortex_a9_neon_vsra_vrsra): Likewise.
7233 (cortex_a9_neon_fp_vadd_ddd_vabs_dd): Likewise.
7234 (cortex_a9_neon_fp_vadd_qqq_vabs_qq): Likewise.
7235 (cortex_a9_neon_fp_vsum): Likewise.
7236 (cortex_a9_neon_fp_vmul_ddd): Likewise.
7237 (cortex_a9_neon_fp_vmul_qqd): Likewise.
7238 (cortex_a9_neon_fp_vmla_ddd): Likewise.
7239 (cortex_a9_neon_fp_vmla_qqq): Likewise.
7240 (cortex_a9_neon_fp_vmla_ddd_scalar): Likewise.
7241 (cortex_a9_neon_fp_vmla_qqq_scalar): Likewise.
7242 (cortex_a9_neon_fp_vrecps_vrsqrts_ddd): Likewise.
7243 (cortex_a9_neon_fp_vrecps_vrsqrts_qqq): Likewise.
7244 (cortex_a9_neon_bp_simple): Likewise.
7245 (cortex_a9_neon_bp_2cycle): Likewise.
7246 (cortex_a9_neon_bp_3cycle): Likewise.
7247 (cortex_a9_neon_ldr): Likewise.
7248 (cortex_a9_neon_str): Likewise.
7249 (cortex_a9_neon_vld1_1_2_regs): Likewise.
7250 (cortex_a9_neon_vld1_3_4_regs): Likewise.
7251 (cortex_a9_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
7252 (cortex_a9_neon_vld2_4_regs): Likewise.
7253 (cortex_a9_neon_vld3_vld4): Likewise.
7254 (cortex_a9_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
7255 (cortex_a9_neon_vst1_3_4_regs): Likewise.
7256 (cortex_a9_neon_vst2_4_regs_vst3_vst4): Likewise.
7257 (cortex_a9_neon_vst3_vst4): Likewise.
7258 (cortex_a9_neon_vld1_vld2_lane): Likewise.
7259 (cortex_a9_neon_vld3_vld4_lane): Likewise.
7260 (cortex_a9_neon_vst1_vst2_lane): Likewise.
7261 (cortex_a9_neon_vst3_vst4_lane): Likewise.
7262 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
7263 (cortex_a9_neon_mcr): Likewise.
7264 (cortex_a9_neon_mcr_2_mcrr): Likewise.
7265 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
7266 (cortex_a9_fps): Likewise.
7267 * config/arm/cortex-m4-fpu.md (cortex_m4_vmov_2): Update for attribute
7268 change.
7269 (cortex_m4_fmuls): Likewise.
7270 * config/arm/cortex-r4f.md (cortex_r4_mcr): Update for attribute
7271 change.
7272 (cortex_r4_mrc): Likewise.
7273 * config/arm/iterators.md: Update comment referring to neon_type.
f43245d1 7274 * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Update for attribute change.
003bb7f3 7275 (iwmmxt_movsi_insn): Likewise.
f43245d1
UB
7276 * config/arm/marvell-pj4.md (pj4_vfp_to_core): Update for
7277 attribute change.
003bb7f3
JG
7278 (pj4_core_to_vfp): Likewise.
7279 * config/arm/neon-schedgen.ml (emit_insn_reservations): Update for
7280 attribute change.
7281 * config/arm/vfp11.md (vfp_fload): Update for attribute change.
7282 (vfp_fstore): Likewise.
7283 * doc/md.texi: Change references to neon_type to refer to type.
7284
fbe0dc78
DS
72852013-09-04 Dodji Seketeli <dodji@redhat.com>
7286
7287 * tree.h (DECL_BUILT_IN): Fix typo in comment.
7288
c167bc5b
DE
72892013-09-04 David Edelsohn <dje.gcc@gmail.com>
7290
7291 * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Only emit
7292 lglobl if not weak.
7293
035cb59f
ER
72942013-09-04 Easwaran Raman <eraman@google.com>
7295
7296 PR middle-end/57370
7297 * tree-ssa-reassoc.c (get_stmt_uid_with_default): New function,
7298 (build_and_add_sum): Use it.
7299 (appears_later_in_bb): Simplify code.
7300
71191083
TJ
73012013-09-04 Teresa Johnson <tejohnson@google.com>
7302
7303 * dumpfile.c (dump_finish): Don't close stderr/stdout.
7304
0c488213
JG
73052013-09-04 James Greenhalgh <james.greenhalgh@arm.com>
7306
7307 * config/aarch64/arm_neon.h (vaddvq_<su>64): Fix return types.
7308
61a74079
JH
73092013-09-04 Jan Hubicka <jh@suse.cz>
7310
7311 * Makefile.in (ipa-devirt.o): Add dependency on diagnostic.h
7312 * ipa-devirt.c: Include diganostic.h
7313 (odr_type_d): Add types and types_set.
7314 (hash_type_name): Work for types with vtables during LTO.
7315 (odr_hasher::remove): Fix comment; destroy types_set.
7316 (add_type_duplicate): New function,
7317 (get_odr_type): Use it.
7318 (dump_type_inheritance_graph): Dump type duplicates.
7319 * ipa.c (symtab_remove_unreachable_nodes): Build type inheritance
7320 graph.
7321 * tree.c (types_same_for_odr): Give exact answers on types with
7322 virtual tables.
7323
24ba8195
DS
73242013-09-04 Dodji Seketeli <dodji@redhat.com>
7325
7326 * tree.h (DECL_BUILT_IN, DECL_IS_BUILTIN): Add more comments
7a5911d3 7327 explaining their differences.
24ba8195 7328
0a04869e
SKS
73292013-09-04 Sandeep Kumar Singh<Sandeep.Singh2@kpitcummins.com>
7330
7331 * config/rx/rx.h: Add option -mcpu for target variants RX100 and RX200.
7332
3b18bc42
JL
73332013-09-03 Jeff Law <law@redhat.com>
7334
7335 * tree-ssa-threadedge.c (thread_across_edge): Record entire path
7336 when not threading through a joiner block. Pass joiner/no joiner
7337 state to register_jump_thread.
7338 * tree-ssa-threadupdate.c (register_jump_thread): Get joiner/no joiner
7339 state from argument rather than implying on path length.
7340 Dump the entire jump thread path into debugging dump.
7341 * tree-flow.h (register_jump_thread): Update prototype.
7342
ae84e151
XDL
73432013-08-29 Xinliang David Li <davidxl@google.com>
7344
7345 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
7346 Remove a trivial gcc_assert.
7347
c716e67f
XDL
73482013-08-29 Xinliang David Li <davidxl@google.com>
7349
7350 * tree-vect-slp.c (destroy_bb_vec_info): Data ref cleanup.
7351 * tree-vect-loop.c (destroy_bb_vec_info): Ditto.
7352 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
7353 Delay base decl alignment adjustment.
7354 * tree-vectorizer.c (vect_destroy_datarefs): New function.
7355 * tree-vectorizer.h: New data structure.
7356 (set_dr_misalignment): New function.
7357 (dr_misalignment): Ditto.
7358 * tree-vect-stmts.c (vectorizable_store): Ensure alignment.
7359 (vectorizable_load): Ditto.
7360 (ensure_base_align): New function.
7361 (vectorize_loops): Add dbg_cnt support.
7362 (execute_vect_slp): Ditto.
7363 * dbgcnt.def: New debug counter.
7364 * Makefile: New dependency.
7365
db8800bc
MI
73662013-09-03 Meador Inge <meadori@codesourcery.com>
7367
7368 Revert:
7369
7370 2013-08-30 Meador Inge <meadori@codesourcery.com>
7371
7372 * tree-vrp.c (check_array_ref): Bail out on zero-length arrays.
7373
0d9b4f5c
DE
73742013-09-03 David Edelsohn <dje.gcc@gmail.com>
7375
7376 * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Emit lglobl for
7377 function descriptor.
7378
29e810b9
RB
73792013-09-03 Richard Biener <rguenther@suse.de>
7380
7381 * tree-affine.c (add_elt_to_tree): Fix association issue,
7382 avoid useless converts and make sure to always return a
7383 properly typed result.
7384
dbfc2894
RB
73852013-09-03 Richard Biener <rguenther@suse.de>
7386
7387 PR middle-end/57656
7388 * fold-const.c (negate_expr_p): Fix division case.
7389 (negate_expr): Likewise.
7390
fa3bf4ce
RB
73912013-09-03 Richard Biener <rguenther@suse.de>
7392
7393 PR lto/58285
7394 * tree-streamer-out.c: Include tm.h.
7395 * Makefile.in (tree-streamer-out.o): Depend on $(TM_H).
7396
a64bbb3f
JH
73972013-09-03 Jan Hubicka <jh@suse.cz>
7398
7399 * tree-profile.c (tree_profiling): Cleanup CFG when done.
7400
93ed07e2
AM
74012013-09-03 Alan Modra <amodra@gmail.com>
7402
7403 * config.gcc (powerpc*-*-linux*): Add support for little-endian
7404 multilibs to big-endian target and vice versa.
7405 * config/rs6000/t-linux64: Use := assignment on all vars.
7406 (MULTILIB_EXTRA_OPTS): Remove fPIC.
7407 (MULTILIB_OSDIRNAMES): Specify using mapping from multilib_options.
7408 * config/rs6000/t-linux64le: New file.
7409 * config/rs6000/t-linux64bele: New file.
7410 * config/rs6000/t-linux64lebe: New file.
7411
07d6cd64
JH
74122013-09-02 Jan Hubicka <jh@suse.cz>
7413
7414 * ipa-inline-transform.c (inline_transform): Do not
7415 optimize_inline_calls when not optimizing.
7416
8e4c9a10
JH
74172013-09-02 Jan Hubicka <jh@suse.cz>
7418
7419 * lto-symtab.c (lto_symtab_merge_symbols): Add comments; merge
7420 duplicated nodes for assembler names.
7421 * symtab.c (symtab_unregister_node): Do not attempt to unlink
7422 hard registers from assembler name hash.
7423
c91061e6
JH
74242013-09-02 Jan Hubicka <jh@suse.cz>
7425
7426 * ipa-split.c (execute_split_functions): Split externally visible
7427 functions called once.
7428
2fd0985c
MJ
74292013-09-02 Martin Jambor <mjambor@suse.cz>
7430
7431 PR ipa/58106
7432 * ipa-prop.c (ipa_edge_duplication_hook): Always put new rdesc to the
7433 linked list. When finding the correct duplicate, also consider also
7434 the caller in additon to its inlined_to node.
7435
91bd4114
JG
74362013-09-02 James Greenhalgh <james.greenhalgh@arm.com>
7437
7438 * config/aarch64/aarch64-simd-builtins.def
7439 (dup_lane_scalar): Remove.
7440 * config/aarch64/aarch64-simd.md
7441 (aarch64_simd_dup): Add 'w->w' alternative.
7442 (aarch64_dup_lane<mode>): Allow for VALL.
7443 (aarch64_dup_lane_scalar<mode>): Remove.
7444 (aarch64_dup_lane_<vswap_width_name><mode>): New.
7445 (aarch64_get_lane_signed<mode>): Add w->w altenative.
7446 (aarch64_get_lane_unsigned<mode>): Likewise.
7447 (aarch64_get_lane<mode>): Likewise.
7448 * config/aarch64/aarch64.c (aarch64_evpc_dup): New.
7449 (aarch64_expand_vec_perm_const_1): Use aarch64_evpc_dup.
7450 * config/aarch64/iterators.md (VSWAP_WIDTH): New.
7451 (VCON): Change container of V2SF.
7452 (vswap_width_name): Likewise.
7453 * config/aarch64/arm_neon.h
7454 (__aarch64_vdup_lane_any): New.
7455 (__aarch64_vdup<q>_lane<q>_<fpsu><8,16,32,64>): Likewise.
7456 (vdup<q>_n_<psuf><8,16,32,64>): Convert to C implementation.
7457 (vdup<q>_lane<q>_<fpsu><8,16,32,64>): Likewise.
7458
d617d2d8
EB
74592013-09-02 Eric Botcazou <ebotcazou@adacore.com>
7460
7461 PR middle-end/56382
7462 * expr.c (emit_move_complex): Do not move complex FP values as parts if
7463 the source or the destination is a single hard register.
7464
63fdb7be
RB
74652013-09-02 Richard Biener <rguenther@suse.de>
7466
7467 PR middle-end/57511
7468 * tree-scalar-evolution.c (instantiate_scev_name): Allow
7469 non-linear SCEVs.
7470
78de2333
RB
74712013-09-02 Richard Biener <rguenther@suse.de>
7472
7473 * tree-affine.c (add_elt_to_tree): Avoid converting all pointer
7474 arithmetic to sizetype.
7475
85ff4ec6
BC
74762013-09-02 Bin Cheng <bin.cheng@arm.com>
7477
7478 * tree-ssa-loop-ivopts.c (set_autoinc_for_original_candidates):
7479 Find auto-increment use both before and after candidate.
7480
576016fe
MP
74812013-09-02 Marek Polacek <polacek@redhat.com>
7482
7483 * Makefile.in (ubsan.o): Add $(TM_P_H) dependency.
7484
08f835dc
JH
74852013-09-01 Jan Hubicka <jh@suse.cz>
7486
7487 * Makefile.in: Add ipa-profile.o
7488 (ipa.o, ipa-devrit.o, ipa-inline-analysis.o): Adjust dependencies.
7489 * cgraph.c (struct cgraph_propagate_frequency_data,
7490 cgraph_propagate_frequency_1, cgraph_propagate_frequency): Move to
7491 ipa-profile.c; replace cgraph_ by ipa_ prefix.
7492 * cgraph.h (cgraph_propagate_frequency): Remove.
f43245d1
UB
7493 * ipa-inline-analysis.c: Include ipa-utils.h;
7494 drop duplicated cfgloop.h.
08f835dc
JH
7495 (inline_update_callee_summaries): Update.
7496 * ipa-profile.c: New file.
7497 * ipa-utils.h (ipa_propagate_frequency): Declare.
7498 * ipa.c: Do not include pointer-set.h, hash-table.h, lto-streamer.h,
f43245d1 7499 data-streamer.h, value-prof.h.
08f835dc
JH
7500 (symtab_remove_unreachable_nodes): Update profile.
7501 (struct histogram_entry, histogram, histogram_pool, histogram_hash,
7502 account_time_size, cmp_counts, dump_histogram,
7503 ipa_profile_generate_summary, ipa_profile_write_summary,
7504 ipa_profile_read_summary, ipa_profile, gate_ipa_profile,
7505 pass_data_ipa_profile, pass_ipa_profile, make_pass_ipa_profile):
f43245d1 7506 Move to ipa-profile.c.
08f835dc 7507
cec8583c
JDA
75082013-09-01 John David Anglin <danglin@gcc.gnu.org>
7509
7510 * config/pa/pa.md: Allow "const 0" operand 1 in "scc" insns.
7511
bbc9396b
JH
75122013-09-01 Jan Hubicka <jh@suse.cz>
7513
7514 * common.opt (fdevirtualize-speculatively): New function.
7515 * invoke.texi (fdevirtualize-speculatively): Document.
7516 * ipa-devirt.c: Include ipa-inline.h
7517 (likely_target_p): New function.
7518 (ipa_devirt): New function.
7519 (gate_ipa_devirt): New function.
7520 (pass_data_ipa_devirt): New static var.
7521 (pass_ipa_devirt): Likewise.
7522 (make_pass_ipa_devirt): New function.
7523 * opts.c (default_options): Add OPT_fdevirtualize_speculatively.
7524 (common_handle_option): Disable devirtualization when
7525 value range profiling is available.
7526 * passes.def (pass_ipa_devirt): Add.
7527 * timever.def (TV_IPA_DEVIRT): New timevar.
f43245d1 7528 * tree-pass.h (make_pass_ipa_devirt):
bbc9396b 7529
0cea211e
IS
75302013-09-01 Iain Sandoe <iain@codesourcery.com>
7531
7532 * config/darwin.h (LINK_COMMAND_SPEC_A): Revise sanitizer specs to
7533 include sanitize(undefined).
7534
5e351e96
DN
75352013-08-31 Diego Novillo <dnovillo@google.com>
7536
7537 * Makefile.in (TREE_CORE_H): Define.
7538 (TREE_H): Use.
7539 (GTFILES): Add tree-core.h.
7540 * builtins.c (built_in_class_names): Use BUILT_IN_LAST to
7541 size the array.
7542 * tree-core.h: New file.
7543 Move all data structures, enum, typedefs, global
7544 declarations and constants from ...
7545 * tree.h: ... here.
7546
63bf9a90
JH
75472013-08-31 Jan Hubicka <jh@suse.cz>
7548
7549 * bulitins.c (expand_builtin): Do not early exit for gcov
7550 instrumented functions.
7551
5c0abd6a
MP
75522013-08-31 Marek Polacek <polacek@redhat.com>
7553
7554 * ubsan.c: Include tm_p.h.
7555
4843f032
JH
75562013-08-31 Jan Hubicka <jh@suse.cz>
7557
8356c89c
JH
7558 * gimple-streamer-in.c (input_gimple_stmt): Silence parameter unused
7559 warning.
7560
4843f032
JH
7561 * cgraph.c (cgraph_get_body): Update call of lto_input_function_body.
7562 * gimple-streamer-in.c (input_gimple_stmt): Move sanity check to ...
5e581212 7563 * tree-cfg.c (verify_gimple_label): ... here.
4843f032
JH
7564 * ipa-utils.c: Include lto-streamer.h, ipa-inline.h
7565 (ipa_merge_profiles): New function.
7566 * lto-streamer-in.c (lto_read_body): Take node instead of fn_decl.
7567 (lto_input_function_body): Likewise.
5e581212
JH
7568 * ipa-utils.h (ipa_merge_profiles): Declare.
7569 * lto-streamer.h (lto_input_function_body): Update prototype.
7570 (emit_label_in_global_context_p): Remove.
7571 * lto-symtab.c: Include ipa-utils.h
7572 (lto_cgraph_replace_node): Use ipa_merge_profiles.
4843f032 7573
57292ce9
JH
75742013-08-31 Jan Hubicka <jh@suse.cz>
7575
7576 * cgraph.c (cgraph_speculative_call_info): Fix ref lookup
7577
b9cbfeeb
JH
75782013-08-31 Jan Hubicka <jh@suse.cz>
7579
7580 * basic-block.h (apply_scale): Make scale parmeter gcov_type.
7581
41dedebd
UB
75822013-08-31 Uros Bizjak <ubizjak@gmail.com>
7583
7584 * config/alpha/alpha.c (alpha_emit_conditional_move): Update
7585 "cmp" RTX before signed_comparison_operator check to account
7586 for "code" changes.
7587
06d65050
JH
75882013-08-30 Jan Hubicka <jh@suse.cz>
7589
41dedebd 7590 * ipa-prop.c (ipa_set_jf_known_type): Check that we add only records.
06d65050
JH
7591 (detect_type_change_1): Rename to ...
7592 (detect_type_change): ... this one; early return on non-polymorphic
7593 types.
41dedebd 7594 (detect_type_change_ssa): Add comp_type parameter; update
06d65050
JH
7595 use of detect_type_change.
7596 (compute_complex_assign_jump_func): Add param_type parameter;
7597 update use of detect_type_change_ssa.
7598 (compute_complex_ancestor_jump_func): Likewise.
7599 (ipa_get_callee_param_type): New function.
7600 (ipa_compute_jump_functions_for_edge): Compute parameter type;
7601 update calls to the jump function computation functions.
7602
600b5b1d
TJ
76032013-08-30 Teresa Johnson <tejohnson@google.com>
7604 Steven Bosscher <steven@gcc.gnu.org>
7605
7606 * cfgrtl.c (fixup_new_cold_bb): New routine.
7607 (commit_edge_insertions): Invoke fixup_partitions.
7608 (find_partition_fixes): New routine.
7609 (fixup_partitions): Ditto.
7610 (verify_hot_cold_block_grouping): Update comments.
7611 (rtl_verify_edges): Invoke find_partition_fixes.
7612 (rtl_verify_bb_pointers): Update comments.
7613 (rtl_verify_bb_layout): Ditto.
7614 * basic-block.h (probably_never_executed_edge_p): Declare.
7615 (fixup_partitions): Ditto.
7616 * cfgcleanup.c (try_optimize_cfg): Invoke fixup_partitions.
7617 * bb-reorder.c (sanitize_hot_paths): New function.
7618 (find_rarely_executed_basic_blocks_and_crossing_edges): Invoke
7619 sanitize_hot_paths.
7620 * predict.c (probably_never_executed_edge_p): New routine.
7621 * cfg.c (check_bb_profile): Add partition insanity warnings.
7622
0a6ea5c9
MI
76232013-08-30 Meador Inge <meadori@codesourcery.com>
7624
7625 * tree-vrp.c (check_array_ref): Bail out on zero-length arrays.
7626
de5a5fa1
MP
76272013-08-30 Marek Polacek <polacek@redhat.com>
7628
7629 * Makefile.in (ubsan.o): Add.
7630 (c-family/c-ubsan.o): Add.
7631 (builtins.o): Add ubsan.h dependency.
7632 * ubsan.h: New file.
7633 * ubsan.c: New file.
7634 * common.opt: Add -fsanitize=undefined option.
7635 (flag_sanitize): Add variable.
7636 (fsanitize=): Add option. Add Driver.
7637 (fsanitize=thread): Remove option.
7638 (fsanitize=address): Likewise.
7639 (static-libubsan): New option.
7640 * doc/invoke.texi: Document the new flag and -static-libubsan.
7641 * sanitizer.def (DEF_SANITIZER_BUILTIN): Define.
7642 (BUILT_IN_UBSAN_HANDLE_BUILTIN_UNREACHABLE): Define.
7643 * builtin-attrs.def (ATTR_COLD): Define.
7644 (ATTR_COLD_NOTHROW_LEAF_LIST): Define.
7645 * builtins.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW,
7646 BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS): Define.
7647 * flag-types.h (sanitize_code): New enum.
7648 * opts.c (common_handle_option): Parse command line arguments
7649 of -fsanitize=. Add -fsanitize=unreachable option.
7650 * varasm.c (get_variable_section): Adjust.
7651 (assemble_noswitch_variable): Likewise.
7652 (assemble_variable): Likewise.
7653 (output_constant_def_contents): Likewise.
7654 (categorize_decl_for_section): Likewise.
7655 (place_block_symbol): Likewise.
7656 (output_object_block): Likewise.
7657 * builtins.def: Likewise.
7658 * toplev.c (compile_file): Likewise.
7659 (process_options): Likewise.
7660 * cppbuiltin.c: Likewise.
7661 * tsan.c (tsan_pass): Likewise.
7662 (tsan_gate): Likewise.
7663 (tsan_gate_O0): Likewise.
7664 * cfgexpand.c (partition_stack_vars): Likewise.
7665 (expand_stack_vars): Likewise.
7666 (defer_stack_allocation): Likewise.
7667 (expand_used_vars): Likewise.
7668 * cfgcleanup.c (old_insns_match_p): Likewise.
7669 * asan.c (asan_finish_file): Likewise.
7670 (asan_instrument): Likewise.
7671 (gate_asan): Likewise.
7672 (initialize_sanitizer_builtins): Build BT_FN_VOID_PTR_PTR_PTR.
7673 (ATTR_COLD_NOTHROW_LEAF_LIST): Define.
7674 (asan_global_struct): Use pointer_sized_int_node instead
7675 calling build_nonstandard_integer_type.
7676 (initialize_sanitizer_builtins): Likewise.
7677 (asan_finish_file): Likewise.
7678 * gcc.c: Document %{%:function(args):X}.
7679 (static_spec_functions): Add sanitize.
7680 (handle_spec_function): Add retval_nonnull argument and if non-NULL,
7681 store funcval != NULL there.
7682 (do_spec_1): Adjust handle_spec_function caller.
7683 (handle_braces): Allow %:function(args) as condition.
7684 (sanitize_spec_function): New function.
7685 (ADD_STATIC_LIBUBSAN_LIBS): Define.
7686 (LIBUBSAN_SPEC): Likewise.
7687 (LIBUBSAN_EARLY_SPEC): Likewise.
7688 (SANITIZER_SPEC): Handle libubsan.
7689 (SANITIZER_EARLY_SPEC): Likewise.
7690 * config/darwin.h (LINK_COMMAND_SPEC_A): Use %:sanitize(address)
7691 instead of fsanitize=address.
7692 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Use %:sanitize(address)
7693 instead of fsanitize=address*.
7694 * builtins.c: Include ubsan.h.
7695 (fold_builtin_0): Instrument __builtin_unreachable.
7696 * config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Use flag_sanitize
7697 instead of flag_asan.
7698 * tree.h (enum tree_index): Add TI_POINTER_SIZED_TYPE.
7699 (pointer_sized_int_node): Define.
41dedebd 7700 * tree.c (build_common_tree_nodes): Initialize pointer_sized_int_node.
de5a5fa1 7701
f07f30cf
MS
77022013-08-30 Mike Stump <mikestump@comcast.net>
7703
7704 * doc/install.texi (Prerequisites): Note regression in Tcl 8.6
7705 with RE patterns.
7706
8a41354f
JH
77072013-08-29 Jan Hubicka <jh@suse.cz>
7708
7709 * cgraph.c (cgraph_function_body_availability): Handle weakref
7710 correctly.
7711 * passes.def: Remove pass_fixup_cfg.
7712 * ipa-inline.c (ipa_inline): When not optimizing, do not inline;
7713 track when we need to remove functions.
7714 (gate_ipa_inline): Execute inlining always; add comment why.
7715 (pass_data_ipa_inline): Remove TODO_remove_functions.
7716 * ipa-inline-analysis.c (inline_generate_summary): When not optimizing
7717 do not produce summaries.
7718 * symtab.c (change_decl_assembler_name): Handle renaming of weakrefs.
7719 (symtab_nonoverwritable_alias): Assert we are not called on weakref.
7720 * varpool.c (cgraph_variable_initializer_availability): Fix weakrefs,
7721 constant pool and vtable.
7722
dc8d7a0f
TB
77232013-08-30 Tejas Belagod <tejas.belagod@arm.com>
7724
41dedebd
UB
7725 * config/aarch64/arm_neon.h (__AARCH64_UINT64_C, __AARCH64_INT64_C):
7726 New arm_neon.h's internal macros to specify 64-bit constants.
7727 Avoid using stdint.h's macros.
dc8d7a0f 7728
ac7eacd2
JR
77292013-08-30 Joern Rennecke <joern.rennecke@embecosm.com>
7730
7731 * recog.c (verify_changes): Verify that changes[i].old is non-zero
7732 before applying REG_P.
7733
8b29fd4e
JJ
77342013-08-30 Jakub Jelinek <jakub@redhat.com>
7735
7736 PR tree-optimization/58277
7737 * tree-ssa-strlen.c (strlen_enter_block): If do_invalidate gave up
7738 after seeing too many stmts with vdef in between dombb and current
7739 bb, invalidate everything.
7740
26d75703
RB
77412013-08-30 Richard Biener <rguenther@suse.de>
7742
7743 * fold-const.c (fold_single_bit_test): Fix overflow test.
7744
f7e088e7
EB
77452013-08-30 Eric Botcazou <ebotcazou@adacore.com>
7746
7747 * function.c (assign_parm_setup_reg): For a parameter passed by pointer
7748 and which can live in a register, always retrieve the value on entry.
7749 * var-tracking.c (add_stores): Treat the copy on entry for a parameter
7750 passed by invisible reference specially.
7751 (emit_notes_in_bb) <MO_VAL_USE>: Emit notes before the instruction.
7752 (vt_add_function_parameter): Correctly deal with a parameter passed by
7753 invisible reference.
7754
77552013-08-30 Jan Hubicka <jh@suse.cz>
47500756
JH
7756
7757 * tree.c (set_call_expr_flags): Fix handling of TM_PURE.
7758
6e8dad05
RB
77592013-08-30 Richard Biener <rguenther@suse.de>
7760
7761 PR tree-optimization/58228
7762 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Do not
7763 allow invariant loads in nested loop vectorization.
7764
062ef2c8
RB
77652013-08-30 Richard Biener <rguenther@suse.de>
7766
7767 PR tree-optimization/58223
7768 * tree-loop-distribution.c (has_anti_dependence): Rename to ...
7769 (has_anti_or_output_dependence): ... this and adjust to also
7770 look for output dependences.
7771 (mark_nodes_having_upstream_mem_writes): Adjust.
7772 (rdg_flag_uses): Likewise.
7773
7a764c60
RB
77742013-08-30 Richard Biener <rguenther@suse.de>
7775
7776 PR tree-optimization/58010
7777 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
7778 assert that we have a loop-closed PHI.
7779
82e9d642
JH
77802013-08-29 Jan Hubicka <jh@suse.cz>
7781
7782 * lto-symtab.c (lto_cgraph_replace_node): Free decl_in_state.
7783 * cgraph.c (cgraph_release_function_body): Free decl_in_state.
7784 * lto-section-in.c (lto_free_function_in_decl_state): New function.
7785 (lto_free_function_in_decl_state_for_node): New function.
7786
9cc1fb4b
XDL
77872013-08-29 Xinliang David Li <davidxl@google.com>
7788
41dedebd 7789 * loop-unroll.c (report_unroll_peel): Minor message change.
9cc1fb4b
XDL
7790 * tree-vect-loop-manip.c (vect_do_peeling_for_alignment):
7791 Emit alignment peeling message with default -fopt-info.
7792 (vect_loop_versioning): Emit loop version info message.
41dedebd 7793 * tree-vectorizer.c (vectorize_loops): Minor message change.
9cc1fb4b
XDL
7794 (execute_vect_slp): Ditto.
7795
440a5082
EB
77962013-08-29 Eric Botcazou <ebotcazou@adacore.com>
7797
7798 * cgraphclones.c (cgraph_create_virtual_clone): Compute the DECL_NAME
7799 of the clone from the DECL_NAME of the original function.
7800
3fa3690d
OE
78012013-08-29 Oleg Endo <olegendo@gcc.gnu.org>
7802
7803 * passes.c (register_pass): Add overload.
7804 * tree-pass.h (register_pass): Forward declare it. Add comment.
7805
0170f33c
JH
78062013-08-29 Jan Hubicka <jh@suse.cz>
7807
41dedebd
UB
7808 * lto-streamer-out.c (hash_tree): Stream DECL_FINAL_P,
7809 DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P and TYPE_FINAL_P.
7810 * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Stream
7811 DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
0170f33c
JH
7812 (unpack_ts_type_common_value_fields): Stream TYPE_FINAL_P.
7813 * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields):
41dedebd 7814 Add DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
0170f33c
JH
7815 (pack_ts_type_common_value_fields): Add TYPE_FINAL_P.
7816
103ff0d6
TJ
78172013-08-29 Teresa Johnson <tejohnson@google.com>
7818
7819 * dumpfile.c (dump_loc): Output column number.
7820 * dumpfile.h (OPTGROUP_OTHER): Add and enable under OPTGROUP_ALL.
7821 * doc/invoke.texi: Document optall -fopt-info flag.
7822 * profile.c (read_profile_edge_counts): Use new dump framework.
7823 (compute_branch_probabilities): Ditto.
7824 * passes.c (pass_manager::register_one_dump_file): Use OPTGROUP_OTHER
7825 when pass not in any opt group.
7826 * pass_manager.h (pass_manager::get_pass_profile): New method.
7827 * value-prof.c (check_counter): Use new dump framework.
7828 (check_ic_target): Ditto.
7829 * coverage.c (get_coverage_counts): Ditto.
7830 (coverage_init): Setup new dump framework.
7831
301bbc16
RB
78322013-08-29 Richard Biener <rguenther@suse.de>
7833
7834 PR tree-optimization/58246
7835 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Properly
7836 handle the dominance check inside a basic-block.
7837
1b275000
RB
78382013-08-29 Richard Biener <rguenther@suse.de>
7839
7840 PR middle-end/57287
7841 * tree-ssa-copy.c (may_propagate_copy): Allow propagating
7842 of default defs that appear in abnormal PHI nodes.
7843
6b1184ba
RB
78442013-08-29 Richard Biener <rguenther@suse.de>
7845
7846 PR tree-optimization/57685
7847 * tree-vrp.c (register_edge_assert_for_1): Recurse only for
7848 single-use operands to avoid exponential complexity.
7849
1b08b734
DC
78502013-08-28 Dehao Chen <dehao@google.com>
7851
7852 * ipa-inline.c (edge_badness): Fix integer underflow.
7853
48a3fa69
UB
78542013-08-28 Uros Bizjak <ubizjak@gmail.com>
7855
7856 * gtm-builtins.def (_ITM_free): Declare leaf.
7857
215f73e6
JJ
78582013-08-28 Jakub Jelinek <jakub@redhat.com>
7859
7860 PR target/58067
7861 * config/i386/i386.md (*tls_global_dynamic_64_largepic): New insn.
7862 (*tls_local_dynamic_base_64_largepic): Likewise.
7863 (tls_global_dynamic_64_<mode>, tls_local_dynamic_base_64_<mode>):
7864 Remove predicate from call operand.
7865 * config/i386/i386.c (ix86_tls_get_addr): For -mcmodel=large -fpic
7866 return sum of pic_offset_table_rtx and UNSPEC_PLTOFF of the symbol.
7867
34554d1a
JL
78682013-08-28 Jeff Law <law@redhat.com>
7869
7870 * tree-ssa-threadedge.c (thread_around_empty_block): Remove
7871 checks for the number of predecessors and successors allowed.
7872 * tree-ssa-threadupdate.c (mark_threaded_blocks): Ignore requests
7873 which require copying a joiner block if there is a request which
7874 is a subpath that requires no joiner block copying.
7875
c01c111b
JH
78762013-08-28 Jan Hubicka <jh@suse.cz>
7877
7878 * lto-streamer-out.c (DFS_write_tree_body): Drop
7879 BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX and BINFO_VPTR_INDEX.
7880 (hash_tree): Do not hash DECL_DEFER_OUTPUT, BINFO_INHERITANCE_CHAIN,
7881 BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, DECL_IN_TEXT_SECTION.
7882 * tree-streamer-in.c (unpack_ts_decl_common_value_fields):
7883 Do not read DECL_ERROR_ISSUED.
7884 (unpack_ts_decl_with_vis_value_fields): Do not read
7885 DECL_DEFER_OUTPUT.
48a3fa69
UB
7886 (lto_input_ts_binfo_tree_pointers): Do not read
7887 BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX
c01c111b
JH
7888 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Do not
7889 write DECL_ERROR_ISSUED..
7890 (pack_ts_decl_with_vis_value_fields): Do not write
7891 DECL_DEFER_OUTPUT.
7892 (write_ts_binfo_tree_pointers): Do not read BINFO_INHERITANCE_CHAIN,
48a3fa69 7893 BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX.
c01c111b
JH
7894 * print-tree.c (print_node): Do not print DECL_ERROR_ISSUED.
7895 * tree.h (tree_decl_common): Update comment.
7896 (DECL_ERROR_ISSUED): Remove.
7897
4b128ece
JJ
78982013-08-28 Jakub Jelinek <jakub@redhat.com>
7899
7900 PR middle-end/58257
7901 * omp-low.c (copy_var_decl): Copy over TREE_NO_WARNING flag.
7902
12211b99 79032013-08-28 Jan Hubicka <jh@suse.cz>
9e57846a
JH
7904
7905 * builtins.def (free): Declare leaf.
7906
8dce4dbc
DM
79072013-08-27 David Malcolm <dmalcolm@redhat.com>
7908
7909 * gdbhooks.py: New.
7910 * configure.ac (gdbinit.in): Add import of gcc/gdbhooks.py.
7911 * configure: Regenerate.
7912
b8f6e610
MJ
79132013-08-27 Martin Jambor <mjambor@suse.cz>
7914
7915 * ipa-prop.h (ipa_pass_through_data): New field type_preserved.
7916 (ipa_ancestor_jf_data): Likewise.
7917 (ipa_get_jf_pass_through_agg_preserved): Fix comment typo.
7918 (ipa_get_jf_pass_through_type_preserved): New function.
7919 (ipa_get_jf_ancestor_agg_preserved): Fix comment typo.
7920 (ipa_get_jf_ancestor_type_preserved): New function.
12211b99 7921 * ipa-cp.c (ipa_get_jf_pass_through_result): Honor type_preserved flag.
b8f6e610
MJ
7922 (ipa_get_jf_ancestor_result): Likewise.
7923 (propagate_vals_accross_pass_through): Use
7924 ipa_get_jf_pass_through_result to do all the value mappings.
7925 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Dump the
7926 type_preserved flag.
7927 (ipa_set_jf_cst_copy): New function.
7928 (ipa_set_jf_simple_pass_through): Set the type_preserved flag.
7929 (ipa_set_jf_arith_pass_through): Likewise.
7930 (ipa_set_ancestor_jf): Likewise.
7931 (compute_complex_assign_jump_func): Set type_preserved instead of
7932 punting.
7933 (ipa_compute_jump_functions_for_edge): Likewise.
7934 (combine_known_type_and_ancestor_jfs): Honor type_preserved.
7935 (update_jump_functions_after_inlining): Update type_preserved.
12211b99 7936 Explicitely create jump functions when combining one with pass_through.
b8f6e610
MJ
7937 (ipa_write_jump_function): Stream the type_preserved flags.
7938 (ipa_read_jump_function): Likewise.
7939
74bf76ed
JJ
79402013-08-27 Jakub Jelinek <jakub@redhat.com>
7941 Aldy Hernandez <aldyh@redhat.com>
7942
7943 * Makefile.in (omp-low.o): Depend on $(TARGET_H).
7944 * cfgloop.h (struct loop): Add safelen, force_vect, simduid.
7945 * function.h (struct function): Add has_force_vect_loops and
7946 has_simduid_loops.
12211b99 7947 * gimple-pretty-print.c (dump_gimple_omp_for): Handle GF_OMP_FOR_KIND*.
74bf76ed
JJ
7948 * gimple.c (gimple_build_omp_critical): Add KIND argument and
7949 handle it.
7950 * gimple.def: Update CLAUSES comments.
7951 * gimple.h (enum gf_mask): Add GF_OMP_FOR_KIND_{FOR,SIMD}.
7952 (gimple_build_omp_for): Add argument to prototype.
7953 (gimple_omp_for_kind): New.
7954 (gimple_omp_for_set_kind): New.
7955 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_LINEAR to
7956 GOVD_DATA_SHARE_CLASS.
7957 (enum omp_region_type): Add ORT_SIMD.
7958 (gimple_add_tmp_var): Handle ORT_SIMD.
7959 (gimplify_var_or_parm_decl): Same.
7960 (is_gimple_stmt): Same.
7961 (omp_firstprivatize_variable): Same.
7962 (omp_add_variable): Only use splay_tree_insert if lookup failed.
7963 (omp_notice_variable): Handle ORT_SIMD.
12211b99 7964 (omp_is_private): Add SIMD argument and handle it as well as ORT_SIMD.
74bf76ed
JJ
7965 (omp_check_private): Handle ORT_SIMD.
7966 (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_LINEAR and
7967 OMP_CLAUSE_SAFELEN.
7968 (gimplify_adjust_omp_clauses_1): Handle GOVD_LINEAR.
7969 Handle OMP_CLAUSE_LASTPRIVATE.
7970 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_LINEAR and
7971 OMP_CLAUSE_SAFELEN.
7972 (gimplify_omp_for): Handle OMP_SIMD and OMP_CLAUSE_LINEAR.
7973 (gimplify_expr): Handle OMP_SIMD.
7974 * internal-fn.c (expand_GOMP_SIMD_LANE): New.
7975 (expand_GOMP_SIMD_VF): New.
7976 (expand_GOMP_SIMD_LAST_LANE): New.
7977 * internal-fn.def (GOMP_SIMD_LANE): New.
7978 (GOMP_SIMD_VF): New.
7979 (GOMP_SIMD_LAST_LANE): New.
7980 * omp-low.c: Include target.h.
7981 (extract_omp_for_data): Handle OMP_SIMD, OMP_CLAUSE_LINEAR,
7982 OMP_CLAUSE_SAFELEN.
7983 (check_omp_nesting_restrictions): Same.
7984 (omp_max_vf): New.
7985 (lower_rec_simd_input_clauses): New.
7986 (lower_rec_input_clauses): Handle OMP_SIMD, GF_OMP_FOR_KIND_SIMD,
7987 OMP_CLAUSE_LINEAR.
7988 (lower_lastprivate_clauses): Handle OMP_CLAUSE_LINEAR,
7989 GF_OMP_FOR_KIND_SIMD, OMP_SIMD.
7990 (expand_omp_build_assign): New.
7991 (expand_omp_for_init_counts): New.
7992 (expand_omp_for_init_vars): New.
7993 (extract_omp_for_update_vars): New.
7994 (expand_omp_for_generic): Use expand_omp_for_{init,update}_vars
7995 and rewrite accordingly.
7996 (expand_omp_simd): New.
7997 (expand_omp_for): Use expand_omp_simd.
7998 (lower_omp_for_lastprivate): Unshare vinit when appropriate.
7999 (lower_omp_for): Do not lower the body.
8000 * tree-data-ref (get_references_in_stmt): Allow IFN_GOMP_SIMD_LANE
8001 in their own loops.
8002 * tree-flow.h (find_omp_clause): Remove prototype.
12211b99
UB
8003 * tree-if-conv.c (main_tree_if_conversion): Run if doing if conversion,
8004 forcing vectorization of the loop, or if flag_tree_vectorize.
74bf76ed
JJ
8005 (gate_tree_if_conversion): Similarly.
8006 * tree-inline.c (remap_gimple_stmt): Pass for kind argument to
8007 gimple_build_omp_for.
8008 (copy_cfg_body): set has_force_vect_loops and has_simduid_loops.
8009 * tree-parloops (create_parallel_loop): Pass kind argument to
8010 gimple_build_omp_for.
8011 * tree-pretty-print.c (dump_omp_clause): Add cases for
8012 OMP_CLAUSE_UNIFORM, OMP_CLAUSE_LINEAR, OMP_CLAUSE_SAFELEN,
8013 OMP_CLAUSE__SIMDUID_.
8014 (dump_generic_node): Handle OMP_SIMD.
8015 * tree-ssa-ccp.c (likely_value): Handle IFN_GOMP_SIMD*.
8016 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Do not
8017 unroll OMP_SIMD loops here.
12211b99 8018 * tree-ssa-loop.c (gate_tree_vectorize): Run if has_force_vect_loops.
74bf76ed 8019 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Handle
12211b99 8020 loop->safelen.
74bf76ed
JJ
8021 (vect_analyze_data_refs): Handle simd loops.
8022 * tree-vect-loop.c (vectorizable_live_operation): Handle
8023 IFN_GOMP_SIMD*.
12211b99 8024 * tree-vect-stmts.c (vectorizable_call): Handle IFN_GOMP_SIMD_LANE.
74bf76ed
JJ
8025 (vectorizable_store): Handle STMT_VINFO_SIMD_LANE_ACCESS_P.
8026 (vectorizable_load): Same.
12211b99 8027 * tree-vectorizer.c: Include hash-table.h and tree-ssa-propagate.h.
74bf76ed
JJ
8028 (struct simduid_to_vf): New.
8029 (simduid_to_vf::hash): New.
8030 (simduid_to-vf::equal): New.
8031 (struct simd_array_to_simduid): New.
8032 (simd_array_to_simduid::hash): New.
8033 (simd_array_to_simduid::equal): New.
8034 (adjust_simduid_builtins): New.
8035 (struct note_simd_array_uses_struct): New.
8036 (note_simd_array_uses_cb): New.
8037 (note_simd_array_uses): New.
8038 (vectorize_loops): Handle simd hints and adjust simd builtins
8039 accordingly.
8040 * tree-vectorizer.h (struct _stmt_vec_info): Add
8041 simd_lane_access_p field.
8042 (STMT_VINFO_SIMD_LANE_ACCESS_P): New macro.
8043 * tree.c (omp_clause_num_ops): Add entries for OMP_CLAUSE_LINEAR,
8044 OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_UNIFORM.
8045 (omp_clause_code_name): Same.
8046 (walk_tree_1): Handle OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN,
8047 OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_LINEAR.
8048 * tree.def (OMP_SIMD): New entry.
12211b99
UB
8049 * tree.h (enum omp_clause_code): Add entries for OMP_CLAUSE_LINEAR,
8050 OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_.
74bf76ed
JJ
8051 (OMP_CLAUSE_DECL): Adjust range for new clauses.
8052 (OMP_CLAUSE_LINEAR_NO_COPYIN): New.
8053 (OMP_CLAUSE_LINEAR_NO_COPYOUT): New.
8054 (OMP_CLAUSE_LINEAR_STEP): New.
8055 (OMP_CLAUSE_SAFELEN_EXPR): New.
8056 (OMP_CLAUSE__SIMDUID__DECL): New.
8057 (find_omp_clause): New prototype.
8058
d0cf4e84
L
80592013-08-27 H.J. Lu <hongjiu.lu@intel.com>
8060
8061 * config/i386/driver-i386.c (host_detect_local_cpu): Update
8062 Haswell processor detection.
8063
992592ec
CW
80642013-08-27 Christian Widmer <shadow@umbrox.de>
8065
8066 PR target/57927
8067 * config/i386/driver-i386.c (host_detect_local_cpu): Add detection
8068 of Ivy Bridge and Haswell processors. Assume core-avx2 for unknown
8069 AVX2 capable processors.
8070
9116eb22
TB
80712013-08-27 Tejas Belagod <tejas.belagod@arm.com>
8072
8073 * config/aarch64/arm_neon.h: Replace all inline asm implementations
8074 of vget_low_* with implementations in terms of other intrinsics.
8075
1c5abb53
MG
80762013-08-27 Marc Glisse <marc.glisse@inria.fr>
8077
8078 PR middle-end/57219
8079 * doc/extend.texi (__builtin_isinf_sign): Restrict the return
8080 values to -1, 0 and 1.
8081
2e100703
VP
80822013-08-27 Vidya Praveen <vidyapraveen@arm.com>
8083
8084 * config/aarch64/aarch64.md (unspec): Add UNSPEC_SISD_SSHL,
8085 UNSPEC_SISD_USHL, UNSPEC_USHL_2S, UNSPEC_SSHL_2S, UNSPEC_SISD_NEG.
8086 (<optab><mode>3_insn): Remove.
8087 (aarch64_ashl_sisd_or_int_<mode>3): New Pattern.
8088 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
8089 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
8090 (define_split for aarch64_lshr_sisd_or_int_di3): Likewise.
8091 (define_split for aarch64_lshr_sisd_or_int_si3): Likewise.
8092 (define_split for aarch64_ashr_sisd_or_int_di3): Likewise.
8093 (define_split for aarch64_ashr_sisd_or_int_si3): Likewise.
8094 (aarch64_sisd_ushl, aarch64_sisd_sshl): Likewise.
8095 (aarch64_ushl_2s, aarch64_sshl_2s, aarch64_sisd_neg_qi): Likewise.
8096 (ror<mode>3_insn): Likewise.
8097 * config/aarch64/predicates.md (aarch64_simd_register): New.
8098
4ded8276
RB
80992013-08-27 Richard Biener <rguenther@suse.de>
8100
8101 PR tree-optimization/57521
8102 * tree-if-conv.c (if_convertible_bb_p): Verify that at least
8103 one edge is non-critical.
8104 (find_phi_replacement_condition): Make sure to use a non-critical
8105 edge. Cleanup and remove old bug workarounds.
8106 (bb_postdominates_preds): Remove.
8107 (if_convertible_loop_p_1): Do not compute post-dominators.
8108 (combine_blocks): Do not free post-dominators.
8109 (main_tree_if_conversion): Likewise.
8110 (pass_data_if_conversion): Add TODO_verify_ssa.
8111
5aa11061
DD
81122013-08-27 DJ Delorie <dj@redhat.com>
8113
8114 * config/i386/djgpp.h (ASM_DECLARE_FUNCTION_NAME): New.
8115
fd91cfe3
YZ
81162013-08-27 Yufeng Zhang <yufeng.zhang@arm.com>
8117
8118 * function.c (assign_parm_find_data_types): Set passed_mode and
8119 nominal_mode to the TYPE_MODE of nominal_type for the built
8120 pointer type in case of the struct-pass-by-reference.
8121
907555ce
JR
81222013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
8123
8124 * config/avr/avr-stdint.h (INT16_TYPE): Change default to "int".
8125 (UINT16_TYPE): Change default to "unsigned int".
8126
67518c93
JR
8127 * config/avr/avr.opt (mfract-convert-truncate): New option.
8128 * config/avr/avr.c (avr_out_fract): Unless TARGET_FRACT_CONV_TRUNC
8129 is set, round negative fractional integers according to n1169
8130 when converting to integer types.
8131
d6d989fc
JH
81322013-08-26 Jan Hubicka <jh@suse.cz>
8133
8134 * cgraph.c (cgraph_propagate_frequency): Do not assume that virtual
8135 methods can not be called indirectly when their address is not taken.
8136
2aa3da06
JH
81372013-08-26 Jan Hubicka <jh@suse.cz>
8138
12211b99
UB
8139 * gimple-fold.c (gimple_get_virt_method_for_binfo): Use
8140 ctor_for_folding.
2aa3da06 8141
0987ffe7
JH
81422013-08-26 Jan Hubicka <jh@suse.cz>
8143
8144 * ipa.c (comdat_can_be_unshared_p_1): C++ constructors and destructors
8145 can be unshared.
8146
befe8647
JR
81472013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
8148
8149 * reload.c (find_valid_class): Allow classes that do not include
8150 FIRST_PSEUDO_REGISTER - 1.
8151
a21e735e
JH
81522013-08-26 Jan Hubicka <jh@suse.cz>
8153
8154 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix formatting;
8155 fix edge count/frequency when speculation failed; fix type check
8156 for the direct call.
8157
e067bd43
JH
81582013-08-26 Jan Hubicka <jh@suse.cz>
8159
8160 * ipa-prop.c (ipa_print_node_params): Do not ICE during WPA.
8161
e8aec975
JH
81622013-08-26 Jan Hubicka <jh@suse.cz>
8163
8164 * ipa-inline-transform.c (inline_transform): Be ready for basic block
8165 to be changed by edge redirection.
8166
d0b66480
JH
81672013-08-26 Jan Hubicka <jh@suse.cz>
8168
12211b99
UB
8169 * cgraph.c (cgraph_speculative_call_info): Fix parameter order and
8170 formating; add sanity check.
d0b66480
JH
8171 (cgraph_resolve_speculation): Add FIXME about scaling profiles.
8172 (cgraph_redirect_edge_call_stmt_to_callee): Fix ICE in debug dump.
8173 * ipa-inline.c (heap_edge_removal_hook): Reset node growth cache.
8174 (resolve_noninline_speculation): Update callee keys, too.
8175
0f9aaac7
JH
81762013-08-26 Jan Hubicka <jh@suse.cz>
8177
8178 * tree.h (tree_decl_with_vis): Add cxx_constructor, cxx_destructor.
8179 (DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P): New macros.
8180
4b37444e
JR
81812013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
8182
8183 * config/i386/i386.c (x86_64_elf_select_section): Put ATTRIBUTE_UNUSED
8184 into proper place.
8185
5339fc0c
UB
81862013-08-26 Uros Bizjak <ubizjak@gmail.com>
8187
8188 * config/i386/i386.c (ix86_debug_options): Remove prototype.
8189 (x86_64_elf_select_section): Ditto.
8190 (ix86_handle_tm_regparm_attribute): Remove ATTRIBUTE_UNUSED on used
8191 arguments.
8192 (ix86_pass_by_reference): Ditto.
5339fc0c
UB
8193 (output_set_got): Ditto.
8194 (ix86_unary_operator_ok): Ditto.
8195 (ix86_expand_builtin): Ditto.
8196
d5c3d3ef
JH
81972013-08-23 Jan Hubicka <jh@suse.cz>
8198
5339fc0c 8199 * cgraph.c (cgraph_turn_edge_to_speculative): Fix debug output.
d5c3d3ef 8200
5b1e7435
JH
82012013-08-23 Jan Hubicka <jh@suse.cz>
8202
8203 * tree.h (TYPE_FINAL_P, DECL_FINAL_P): New macros.
8204 (tree_decl_with_vis): Add FINAL field.
8205
ead69dac
JL
82062013-08-23 Jeff Law <law@redhat.com>
8207
8208 * tree-ssa-pre.c (do_regular_insertion): Include the expression in
8209 the debugging dump when the expression is fully redundant.
8210
025311c4
GDR
82112013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
8212
8213 * diagnostic.c (diagnostic_set_caret_max_width): Use pp_buffer.
8214 * gimple-pretty-print.c (gimple_dump_bb_buff): Likewise.
8215 * pretty-print.c (pp_formatted_text_data): Likewise.
8216 (pp_write_text_to_stream): Likewise.
8217 (pp_write_text_as_dot_label_to_stream): Likewise.
8218 (pp_append_r): Likewise.
8219 (pp_format): Likewise.
8220 (pp_flush): Likewise.
8221 (pp_clear_output_area): Likewise.
8222 (pp_append_text): Likewise.
8223 (pp_formatted_text): Likewise.
8224 (pp_remaining_character_count_for_line): Likewise.
8225 (pp_newline): Likewise.
8226 (pp_character): Likewise.
8227 (output_buffer::~output_buffer): Define.
8228 (pretty_printer::~pretty_printer): Destruct output buffer.
8229 * pretty-print.h (output_buffer::~output_buffer): Declare.
8230 (pretty_printer::~pretty_printer): Declare virtual.
8231
0cadbfaa
MG
82322013-08-24 Marc Glisse <marc.glisse@inria.fr>
8233
8234 PR other/57324
8235 * hwint.h (HOST_WIDE_INT_UC, HOST_WIDE_INT_1U, HOST_WIDE_INT_M1,
8236 HOST_WIDE_INT_M1U): New macros.
8237 * fold-const.c (sign_bit_p, build_range_check, fold_unary_loc,
8238 fold_binary_loc, fold_ternary_loc): Use the new macros. Use an
8239 unsigned -1 for lshift.
8240 * cse.c (cse_insn): Likewise.
8241 * double-int.c (rshift_double, lshift_double): Likewise.
8242 * builtins.c (fold_builtin_bitop): Likewise.
8243 * combine.c (force_to_mode): Likewise.
8244 * tree.c (integer_pow2p, tree_log2, tree_floor_log2): Likewise.
8245 * simplify-rtx.c (simplify_const_unary_operation,
8246 simplify_const_binary_operation): Likewise.
8247 * tree-stdarg.c (va_list_counter_bump, va_list_ptr_read,
8248 check_va_list_escapes): Likewise.
8249 * rtlanal.c (nonzero_bits1): Likewise.
8250 * expmed.c (expand_smod_pow2): Likewise.
8251 * tree-ssa-structalias.c (UNKNOWN_OFFSET): Use HOST_WIDE_INT_MIN.
8252
009e5353
JH
82532013-08-23 Jan Hubicka <jh@suse.cz>
8254
8255 * cgraph.c (cgraph_turn_edge_to_speculative): Mark target node
8256 as having address taken.
8257
c4be6568
JH
82582013-08-23 Jan Hubicka <jh@suse.cz>
8259
64cbf23d
JH
8260 * ipa-utils.h (method_class_type): Declare.
8261 * ipa-devirt.c (method_class_type): Export.
8262
c4be6568
JH
8263 * cgraphunit.c (analyze_functions): Do basic devirtualization;
8264 do not walk base classes of anonymous types.
8265
97aba8e9
KK
82662013-08-23 Kaz Kojima <kkojima@gcc.gnu.org>
8267
8268 PR rtl-optimization/58220
8269 PR regression/58221
8270 * final.c (reemit_insn_block_notes): Use NEXT_INSN to
8271 handle SEQUENCE insns properly.
8272
0fc80001
GDR
82732013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
8274
8275 * pretty-print.h (pp_newline_and_flush): Declare. Remove macro
8276 definition.
8277 (pp_newline_and_indent): Likewise.
8278 (pp_separate_with): Likewise.
8279 * pretty-print.c (pp_newline_and_flush): Define.
8280 (pp_newline_and_indent): Likewise.
8281 (pp_separate_with): Likewise.
8282
520a5868
JJ
82832013-08-23 Jakub Jelinek <jakub@redhat.com>
8284
8285 PR target/58218
8286 * config/i386/x86-64.h (TARGET_SECTION_TYPE_FLAGS): Define.
8287 * config/i386/i386.c (x86_64_elf_section_type_flags): New function.
8288
e500c62a
KY
82892013-08-23 Kirill Yukhin <kirill.yukhin@intel.com>
8290
f43245d1
UB
8291 * config/i386/predicates.md (ext_sse_reg_operand): New.
8292 * config/i386/i386.md (*movti_internal): Use
e500c62a
KY
8293 predicate to determine if EVEX is needed.
8294 (*movsi_internal): Ditto.
8295 (*movdf_internal): Ditto.
8296 (*movsf_internal): Ditto.
f43245d1 8297 * config/i386/mmx.md (*mov<mode>_internal): Ditto.
e500c62a 8298
6b00d7dd
JJ
82992013-08-23 Jakub Jelinek <jakub@redhat.com>
8300
8301 PR tree-optimization/58209
8302 * tree-tailcall.c (process_assignment): Handle POINTER_PLUS_EXPR.
8303 (find_tail_calls): Give up for pointer result types if m is non-NULL.
8304 (adjust_return_value_with_ops): For PLUS_EXPR and pointer result type
8305 emit POINTER_PLUS_EXPR.
8306 (create_tailcall_accumulator): For pointer result type accumulate in
8307 sizetype type.
8308
4f2a9f90
PC
83092013-08-22 Paolo Carlini <paolo.carlini@oracle.com>
8310
8311 * configure.ac: Add backslashes missing from the last change.
8312 * configure: Regenerate.
8313
7bf4274e
JH
83142013-08-22 Jan Hubicka <jh@susue.cz>
8315
4f2a9f90
PC
8316 * ipa.c (function_and_variable_visibility): First remember function
8317 was global and then make it local.
7bf4274e 8318
1bea243d
JB
83192013-08-22 Julian Brown <julian@codesourcery.com>
8320
8321 * configure.ac: Add aarch64 to list of arches which use "nop" in
8322 debug_line test.
8323 * configure: Regenerate.
8324
bcba7ecc
AK
83252013-08-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8326
8327 * config/s390/linux.h (TARGET_LIBC_HAS_FUNCTION): Define as
8328 gnu_libc_has_function.
8329 * config/s390/tpf.h: Likewise.
8330
4c495b0d
JH
83312013-08-22 Jan Hubicka <jh@susue.cz>
8332
8333 * timevar.c (validate_phases): Add cast.
8334
5e302bca
JH
83352013-08-22 Jan Hubicka <jh@susue.cz>
8336
8337 * timevar.c (validate_phases): Use size_t for memory.
8338 * timevar.h (struct timevar_time_def): Use size_t for ggc_mem.
8339
da6ca2b5
GDR
83402013-08-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
8341
8342 * pretty-print.h (output_buffer::output_buffer): Declare.
8343 (pretty_printer::pretty_printer): Likewise.
8344 (pp_construct): Remove.
8345 * pretty-print.c (output_buffer::output_buffer): Define.
8346 (pretty_printer::pretty_printer): Rename from pp_construct. Simplify.
8347 * gimple-pretty-print.c (print_gimple_stmt): Do not call pp_construct.
8348 (print_gimple_expr): Likewise.
8349 (print_gimple_seq): Likewise.
8350 (gimple_dump_bb): Likewise.
8351 * sched-vis.c (dump_value_slim): Likewise.
8352 (dump_insn_slim): Likewise.
8353 (dump_rtl_slim): Likewise.
8354 (str_pattern_slim): Likewise.
8355 * tree-mudflap.c (mf_varname_tree): Likewise.
8356 * graph.c (print_graph_cfg): Likewise.
8357 (start_graph_dump): Likewise.
8358 * tree-pretty-print.c (maybe_init_pretty_print): Likewise. Use
8359 placement-new.
8360 * diagnostic.c (diagnostic_initialize): Simplify early diagnostic
8361 pretty printer initialization.
8362 * coretypes.h (diagnostic_context): Remove superflous type alias
8363 declaration.
8364 (pretty_printer): Likewise. Declare directly as a class.
8365 (pretty_print_info): Remove declaration as class.
8366 * asan.c (asan_emit_stack_protection): Remove call to pp_construct
8367 and pp_clear_output_area.
8368 (asan_add_global): Likewise.
8369
0e1474e5
JH
83702013-08-22 Jan Hubicka <jh@suse.cz>
8371
8372 * cgraphunit.c (analyze_functions) Use update_type_inheritance_graph.
8373 * ipa-utils.h (update_type_inheritance_graph): Declare.
8374 (possible_polymorphic_call_target_p): Declare.
8375 (possible_polymorphic_call_target_p): New.
8376 * ipa-devirt.c: Update toplevel comments.
8377 (cached_polymorphic_call_targets): Move up.
8378 (odr_type_d): Move ID down.
8379 (polymorphic_type_binfo_p): Update comment.
8380 (odr_hasher::remove): Likewise;
8381 (get_odr_type): Set anonymous_namespace.
8382 (dump_odr_type): Dump it.
8383 (dump_type_inheritance_graph): Do not ICE when there are no ODR types.
8384 (maybe_record_node): Record node in cached_polymorphic_call_targets.
8385 (record_binfo): Add comment.
5339fc0c
UB
8386 (free_polymorphic_call_targets_hash): Do not ICE when cache is not
8387 built.
0e1474e5
JH
8388 (devirt_node_removal_hook): Do not iCE when cache is freed.
8389 (possible_polymorphic_call_target_p): New predicate.
8390 (update_type_inheritance_graph): New function.
8391
3f97cb0b
AI
83922013-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
8393 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
8394 Sergey Lega <sergey.s.lega@intel.com>
8395 Anna Tikhonova <anna.tikhonova@intel.com>
8396 Ilya Tocar <ilya.tocar@intel.com>
8397 Andrey Turetskiy <andrey.turetskiy@intel.com>
8398 Ilya Verbin <ilya.verbin@intel.com>
8399 Kirill Yukhin <kirill.yukhin@intel.com>
8400 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
8401
8402 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512F_SET): New.
8403 (OPTION_MASK_ISA_AVX512CD_SET): Ditto.
8404 (OPTION_MASK_ISA_AVX512PF_SET): Ditto.
8405 (OPTION_MASK_ISA_AVX512ER_SET): Ditto.
8406 (OPTION_MASK_ISA_AVX2_UNSET): Update.
8407 (OPTION_MASK_ISA_AVX512F_UNSET): New.
8408 (OPTION_MASK_ISA_AVX512CD_UNSET): Ditto.
8409 (OPTION_MASK_ISA_AVX512PF_UNSET): Ditto.
8410 (OPTION_MASK_ISA_AVX512ER_UNSET): Ditto.
8411 (ix86_handle_option): Handle OPT_mavx512f, OPT_mavx512cd,
8412 OPT_mavx512pf, OPT_mavx512er cases.
8413 * config/i386/constraints.md (v): New constraint.
8414 (Yi, Yj): Replace SSE_REGS with ALL_SSE_REGS.
8415 * config/i386/cpuid.h (bit_AVX512F, bit_AVX512PF, bit_AVX512ER)
8416 (bit_AVX512CD): New.
8417 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
8418 AVX512F, AVX512ER, AVX512PF, AVX512CD features.
8419 * config/i386/i386-c.c (ix86_target_macros_internal):
8420 Conditionally define __AVX512F__, __AVX512ER__, __AVX512CD__,
8421 __AVX512PF__.
8422 * config/i386/i386-modes.def (VECTOR_MODES (INT, 128))
8423 (VECTOR_MODES (FLOAT, 128), INT_MODE (XI, 64)): New modes.
8424 * config/i386/i386.c (regclass_map, dbx_register_map)
8425 (dbx64_register_map, svr4_dbx_register_map): Add new SSE registers.
8426 (gate_insert_vzeroupper): Disable vzeroupper for TARGET_AVX512F.
8427 (ix86_target_string): Define -mavx512f, -mavx512er, -mavx512cd,
8428 -mavx512pf options.
8429 (ix86_option_override_internal): Define PTA_AVX512F, PTA_AVX512ER,
8430 PTA_AVX512PF, PTA_AVX512CD. Handle -mavx512f, -mavx512er, -mavx512cd,
8431 -mavx512pf options. Fix formatting.
8432 (ix86_conditional_register_usage): Squash EXT_REX_SSE_REGs for 32-bit
8433 targets. Squash EVEX_SSE_REGS if AVX512F is disabled.
8434 (ix86_valid_target_attribute_inner_p): Handle -mavx512f, -mavx512er,
8435 -mavx512cd, -mavx512pf options.
8436 (standard_sse_constant_opcode): Add vpternlogd for 512-bit modes.
8437 (print_reg, ix86_print_operand): Handle 'g' to output 512-bit operands.
8438 (ix86_preferred_output_reload_class): Replace SSE_REGS with
8439 ALL_SSE_REGS.
8440 (ix86_hard_regno_mode_ok): Support 512-bit registers.
8441 (ix86_set_reg_reg_cost): Ditto.
8442 (x86_order_regs_for_local_alloc): Ditto.
8443 (MAX_VECT_LEN): Extend to 64-byte.
8444 (ix86_spill_class): Replace SSE_REGS with ALL_SSE_REGS.
8445 * config/i386/i386.h (TARGET_AVX512F, TARGET_AVX512PF)
8446 (TARGET_AVX512ER, TARGET_AVX512CD): New.
8447 (BIGGEST_ALIGNMENT): Extend to 512-bits.
8448 (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS): Add new registers.
8449 (CALL_USED_REGISTERS, REG_ALLOC_ORDER): Likewise.
8450 (VALID_AVX512F_SCALAR_MODE, VALID_AVX512F_REG_MODE): New.
8451 (SSE_REG_MODE_P): Support new modes.
8452 (FIRST_MMX_REG, FIRST_REX_INT_REG, FIRST_REX_SSE_REG): Add comments.
8453 (FIRST_EXT_REX_SSE_REG, LAST_EXT_REX_SSE_REG): New.
8454 (reg_class, REG_CLASS_NAMES): Add EVEX_SSE_REGS, ALL_SSE_REGS.
8455 (SSE_CLASS_P, MAYBE_SSE_CLASS_P): Replace SSE_REGS with ALL_SSE_REGS.
8456 (REG_CLASS_CONTENTS): Add new registers.
8457 (SSE_REGNO_P, SSE_REGNO, HARD_REGNO_RENAME_OK): Support new registers.
8458 (EXT_REX_SSE_REGNO_P): New.
8459 (HI_REGISTER_NAMES): Add new registers.
8460 * config/i386/i386.md: Define constants for new registers.
8461 (mode): Add new 512-bit modes.
8462 (prefix): Support evex prefix.
8463 (isa): Support avx512f, noavx512f, fma_avx512f.
8464 (ssemodesuffix): Add new 512-bit modes.
8465 (movxi): New.
8466 (*movxi_internal_avx512f): Ditto.
8467 (*movdi_internal): Replace constraint "x" with the new constraint "v".
8468 Support MODE_XI.
8469 (*movsi_internal): Likewise.
8470 (*movdf_internal): Likewise.
8471 (*movsf_internal): Likewise.
8472 (*fop_<mode>_comm_sse): Replace constraint "x" with new constraint "v".
8473 (<code><mode>3): Likewise.
5339fc0c
UB
8474 * config/i386/i386.opt (mavx512f, mavx512pf, mavx512er, mavx512cd):
8475 New.
3f97cb0b
AI
8476 * config/i386/mmx.md (*mov<mode>_internal): Replace constraint "x"
8477 with the new constraint "v".
8478 * config/i386/sse.md (*mov<mode>_internal): Support new registers and
8479 modes.
8480 (<sse>_loadu<ssemodesuffix><avxsizesuffix>): Replace constraint "x"
8481 with the new constraint "v".
8482 (<sse2>_loaddqu<avxsizesuffix>): Likewise.
8483 (<sse2>_storedqu<avxsizesuffix>): Likewise.
8484 (*<plusminus_insn><mode>3): Likewise.
8485 (<sse>_vm<plusminus_insn><mode>3): Likewise.
8486 (*mul<mode>3): Likewise.
8487 (<sse>_vmmul<mode>3): Likewise.
8488 (<sse>_div<mode>3): Likewise.
8489 (<sse>_vmdiv<mode>3): Likewise.
8490 (<sse>_sqrt<mode>2): Likewise.
8491 (<sse>_vmsqrt<mode>2): Likewise.
8492 (*<code><mode>3_finite): Likewise.
8493 (*<code><mode>3) <smaxmin>: Likewise.
8494 (<sse>_vm<code><mode>3): Likewise.
8495 (*<code><mode>3) <any_logic>: Likewise.
8496 (*fma_fmadd_<mode>): Likewise.
8497 (*fma_fmsub_<mode>): Likewise.
8498 (*fma_fnmadd_<mode>): Likewise.
8499 (*fma_fnmsub_<mode>): Likewise.
8500 (*fma_fmaddsub_<mode>): Likewise.
8501 (*fma_fmsubadd_<mode>): Likewise.
8502 (*fmai_fmadd_<mode>): Likewise.
8503 (*fmai_fmsub_<mode>): Likewise.
8504 (*fmai_fnmadd_<mode>): Likewise.
8505 (*fmai_fnmsub_<mode>): Likewise.
8506 (sse_cvtsi2ss): Likewise.
8507 (sse_cvtsi2ssq): Likewise.
8508 (sse_cvtss2si): Likewise.
8509 (sse_cvtss2si_2): Likewise.
8510 (sse_cvtss2siq): Likewise.
8511 (sse_cvtss2siq_2): Likewise.
8512 (sse_cvttss2si): Likewise.
8513 (sse_cvtss2siq_2): Likewise.
8514 (float<sseintvecmodelower><mode>2): Likewise.
8515 (sse2_cvtsd2si_2): Likewise.
8516 (sse2_cvtsd2siq_2): Likewise.
8517 (*<plusminus_insn><mode>3): Likewise.
8518 (*<sse2_avx2>_<plusminus_insn><mode>3): Likewise.
8519 (*<sse4_1_avx2>_mul<mode>3): Likewise.
8520 (ashr<mode>3): Likewise.
8521 (<shift_insn><mode>3): Likewise.
8522 (avx2_<code><mode>3): Likewise.
8523 (*avx2_<code><mode>3): Likewise.
8524 (*andnot<mode>3): Likewise.
8525 (*<code><mode>3) <any_logic>: Likewise.
8526 (abs<mode>2): Likewise.
8527 (avx2_permvar<mode>): Likewise.
8528 (avx2_perm<mode>_1): Likewise.
8529 (*avx_vpermilp<mode>): Likewise.
8530 (avx_vpermilvar<mode>3): Likewise.
8531 (avx2_ashrv<mode>): Likewise.
8532 (avx2_<shift_insn>v<mode>): Likewise.
8533 * doc/invoke.texi: Document -mavx512f, -mavx512pf, -mavx512er,
8534 -mavx512cd.
8535 * doc/rtl.texi: Document XImode.
8536
dd5e8423
JL
85372013-08-21 Jeff Law <law@redhat.com>
8538
b9ebee5d
JL
8539 * tree-flow.h (register_jump_thread): Pass vector of edges
8540 instead of each important edge.
8541 * tree-ssa-threadedge.c (thread_across_edge): Build the jump
8542 thread path into a vector and pass that to register_jump_thread.
8543 * tree-ssa-threadupdate.c (register_jump_thread): Conver the
8544 passed in edge vector to the current 3-edge form.
8545
dd5e8423
JL
8546 Revert:
8547 2013-08-20 Alexey Makhalov <makhaloff@gmail.com>
8548
9bb6628e 8549 * dce.c (fini_dce): Call df_analyze again just in case
dd5e8423
JL
8550 delete_unmarked_insns removed anything.
8551
445dc8df
JR
85522013-08-21 Joern Rennecke <joern.rennecke@embecosm.com>
8553
8554 * reload.h (struct reg_equivs): Rename to ..
8555 (struct reg_equivs_s): .. this.
8556
e0df53dd
ML
85572013-08-20 Martin Liska <marxin.liska@gmail.com>
8558
8559 * ipa.c (ipa_profile_read_summary): Fix buffer overflow.
8560
e7d1d3eb
RO
85612013-08-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8562
5339fc0c 8563 * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Don't nest comment.
e7d1d3eb 8564
5562e26e
JL
85652013-08-21 Jeff Law <law@redhat.com>
8566
8567 * tree-vrp.c (simplify_stmt_for_jump_threading): Try to
8568 simplify assignments too. If the RHS collapses to a singleton
8569 range, then return the value for the range.
8570
c7ecdec6
KY
85712013-08-21 Kirill Yukhin <kirill.yukhin@intel.com>
8572
7a5911d3
UB
8573 * config/i386/sse.md (V16): Rename to...
8574 (VMOVE): this.
8575 (mov<mode>): Update iterator name.
8576 (*mov<mode>_internal): Ditto.
8577 (push<mode>1): Ditto.
8578 (movmisalign<mode>): Ditto.
c7ecdec6 8579
bfa3b50a
JH
85802013-08-20 Jan Hubicka <jh@suse.cz>
8581
8582 PR bootstrap/58186
8583 * cgraph.c (cgraph_add_edge_to_call_site_hash): Overwrite hash
8584 entry for direct edges.
8585 (cgraph_turn_edge_to_speculative): Fix setting of can_throw_external.
8586
6cd4d135
DM
85872013-08-20 David Malcolm <dmalcolm@redhat.com>
8588
8589 Revert my last two changes, r201865 and r201864:
8590
8591 Revert r201865:
8592 2013-08-20 David Malcolm <dmalcolm@redhat.com>
8593
8594 Make opt_pass and gcc::pass_manager be GC-managed, so that pass
8595 instances can own GC refs.
8596
8597 * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h.
8598 * context.c (gcc::context::gt_ggc_mx): Traverse passes_.
8599 (gcc::context::gt_pch_nx): Likewise.
8600 (gcc::context::gt_pch_nx): Likewise.
8601 * ggc.h (gt_ggc_mx <T>): New.
8602 (gt_pch_nx_with_op <T>): New.
8603 (gt_pch_nx <T>): New.
8604 * passes.c (opt_pass::gt_ggc_mx): New.
8605 (opt_pass::gt_pch_nx): New.
8606 (opt_pass::gt_pch_nx_with_op): New.
8607 (pass_manager::gt_ggc_mx): New.
8608 (pass_manager::gt_pch_nx): New.
8609 (pass_manager::gt_pch_nx_with_op): New.
8610 (pass_manager::operator new): Use
8611 ggc_internal_cleared_alloc_stat rather than xcalloc.
8612 * pass_manager.h (class pass_manager): Add GTY((user)) marking.
8613 (pass_manager::gt_ggc_mx): New.
8614 (pass_manager::gt_pch_nx): New.
8615 (pass_manager::gt_pch_nx_with_op): New.
8616 * tree-pass.h (class opt_pass): Add GTY((user)) marking.
8617 (opt_pass::operator new): New.
8618 (opt_pass::gt_ggc_mx): New.
8619 (opt_pass::gt_pch_nx): New.
8620 (opt_pass::gt_pch_nx_with_op): New.
8621
8622 Revert r201864:
8623 2013-08-20 David Malcolm <dmalcolm@redhat.com>
8624
8625 * Makefile.in (GTFILES): Add context.h.
8626 * context.c (gcc::context::operator new): New.
8627 (gcc::context::gt_ggc_mx): New.
8628 (gcc::context::gt_pch_nx): New.
8629 (gcc::context::gt_pch_nx): New.
8630 * context.h (gcc::context): Add GTY((user)) marking.
8631 (gcc::context::operator new): New.
8632 (gcc::context::gt_ggc_mx): New.
8633 (gcc::context::gt_pch_nx): New.
8634 (gcc::context::gt_pch_nx): New.
8635 (g): Add GTY marking.
8636 (gt_ggc_mx (gcc::context *)): New.
8637 (gt_pch_nx (gcc::context *)): New.
8638 (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op,
8639 void *cookie)): New.
8640 * gengtype.c (open_base_files) <ifiles>: Add context.h.
8641
a046136a
AM
86422013-08-20 Alexey Makhalov <makhaloff@gmail.com>
8643
8644 * dce.c (fini_dce): Call df_analyze again just in case
8645 delete_unmarked_insns removed anything.
8646
67598720
TJ
86472013-08-20 Teresa Johnson <tejohnson@google.com>
8648
8649 PR rtl-optimizations/57451
8650 * final.c (reemit_insn_block_notes): Prevent lexical blocks
8651 from crossing split section boundaries.
8652
f8693faf
MGD
86532013-08-20 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
8654
8655 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Remove definition.
8656 * config/arm/t-linux-eabi (MULTILIB_OPTIONS): Document association
8657 with MULTLIB_DEFAULTS.
8658
7d0b9a9c
NC
86592013-08-20 Nick Clifton <nickc@redhat.com>
8660
8661 * target.def (narrow_volatile_bitfield): Note that the default
8662 value is false, not !TARGET_STRICT_ALIGN.
8663 * doc/tm.texi: Regenerate.
8664
8edb8dc8
PC
86652013-08-20 Pavel Chupin <pavel.v.chupin@intel.com>
8666
8667 Fix LIB_SPEC for systems without libpthread.
8668
8669 * config/gnu-user.h: Introduce GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC.
8670 * config/arm/linux-eabi.h: Use GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC
8671 for Android.
8672 * config/i386/linux-common.h: Likewise.
8673 * config/mips/linux-common.h: Likewise.
8674
12211b99 86752013-08-20 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
d71ff3fa
ZZ
8676
8677 * tree-ssa-ccp.c (get_default_value): Remove redundant condition
8678 checks.
8679
e42c64cb
DM
86802013-08-20 David Malcolm <dmalcolm@redhat.com>
8681
8682 Make opt_pass and gcc::pass_manager be GC-managed, so that pass
8683 instances can own GC refs.
8684
8685 * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h.
8686 * context.c (gcc::context::gt_ggc_mx): Traverse passes_.
8687 (gcc::context::gt_pch_nx): Likewise.
8688 (gcc::context::gt_pch_nx): Likewise.
8689 * ggc.h (gt_ggc_mx <T>): New.
8690 (gt_pch_nx_with_op <T>): New.
8691 (gt_pch_nx <T>): New.
8692 * passes.c (opt_pass::gt_ggc_mx): New.
8693 (opt_pass::gt_pch_nx): New.
8694 (opt_pass::gt_pch_nx_with_op): New.
8695 (pass_manager::gt_ggc_mx): New.
8696 (pass_manager::gt_pch_nx): New.
8697 (pass_manager::gt_pch_nx_with_op): New.
8698 (pass_manager::operator new): Use
8699 ggc_internal_cleared_alloc_stat rather than xcalloc.
8700 * pass_manager.h (class pass_manager): Add GTY((user)) marking.
8701 (pass_manager::gt_ggc_mx): New.
8702 (pass_manager::gt_pch_nx): New.
8703 (pass_manager::gt_pch_nx_with_op): New.
8704 * tree-pass.h (class opt_pass): Add GTY((user)) marking.
8705 (opt_pass::operator new): New.
8706 (opt_pass::gt_ggc_mx): New.
8707 (opt_pass::gt_pch_nx): New.
8708 (opt_pass::gt_pch_nx_with_op): New.
8709
910c02a0
DM
87102013-08-20 David Malcolm <dmalcolm@redhat.com>
8711
8712 * Makefile.in (GTFILES): Add context.h.
8713 * context.c (gcc::context::operator new): New.
8714 (gcc::context::gt_ggc_mx): New.
8715 (gcc::context::gt_pch_nx): New.
8716 (gcc::context::gt_pch_nx): New.
8717 * context.h (gcc::context): Add GTY((user)) marking.
8718 (gcc::context::operator new): New.
8719 (gcc::context::gt_ggc_mx): New.
8720 (gcc::context::gt_pch_nx): New.
8721 (gcc::context::gt_pch_nx): New.
8722 (g): Add GTY marking.
8723 (gt_ggc_mx (gcc::context *)): New.
8724 (gt_pch_nx (gcc::context *)): New.
8725 (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op,
8726 void *cookie)): New.
8727 * gengtype.c (open_base_files) <ifiles>: Add context.h.
8728
af4b4236
AM
87292013-08-20 Alan Modra <amodra@gmail.com>
8730
8731 PR target/57865
8732 * config/rs6000/rs6000.c (rs6000_emit_prologue): Correct ool_adjust.
8733 (rs6000_emit_epilogue): Likewise.
8734
12211b99 87352013-08-19 Dehao Chen <dehao@google.com>
0d633222
DC
8736
8737 * value-prof.c (gimple_ic): Fix the bug of adding EH edge.
8738
e2323f5b
PB
87392013-08-19 Peter Bergner <bergner@vnet.ibm.com>
8740 Jakub Jelinek <jakub@redhat.com>
8741
8742 * builtins.def (BUILT_IN_FABSD32): New DFP ABS builtin.
8743 (BUILT_IN_FABSD64): Likewise.
8744 (BUILT_IN_FABSD128): Likewise.
8745 * builtins.c (expand_builtin): Add support for new DFP ABS builtins.
8746 (fold_builtin_1): Likewise.
5339fc0c
UB
8747 * config/rs6000/dfp.md (*negtd2_fpr): Handle non-overlapping
8748 destination and source operands.
e2323f5b
PB
8749 (*abstd2_fpr): Likewise.
8750 (*nabstd2_fpr): Likewise.
8751
cfbf3ee8
RS
87522013-08-19 Richard Sandiford <rdsandiford@googlemail.com>
8753
8754 * config/mips/mips.c (mips_adjust_insn_length): Add checks for
8755 JUMP_P and INSN_P.
8756
d3136aeb
AH
87572013-08-19 Aldy Hernandez <aldyh@redhat.com>
8758
8759 * doc/invoke.texi (-fcilkplus): Clarify that implementation is
8760 incomplete.
8761
d33d9e47
AI
87622013-08-19 Alexander Ivchenko <alexander.ivchenko@intel.com>
8763
8764 * target.def (TARGET_LIBC_HAS_FUNCTION): New target hook.
8765 * builtins.c (default_libc_has_function): New.
8766 (gnu_libc_has_function): Ditto.
8767 (no_c99_libc_has_function): Ditto.
8768 (expand_builtin_cexpi): Using new target hook TARGET_LIBC_HAS_FUNCTION
8769 instead of TARGET_HAS_SINCOS and TARGET_C99_FUNCTIONS.
8770 (fold_builtin_sincos): Likewise.
8771 (fold_builtin_cexp): Likewise.
8772 * builtins.def (DEF_C94_BUILTIN): Likewise.
8773 (DEF_C99_BUILTIN): Likewise.
8774 (DEF_C99_C90RES_BUILTIN): Likewise.
8775 (DEF_C99_COMPL_BUILTIN): New define. Change all complex c99 builtin
8776 definitions to using this define.
8777 * config/darwin-protos.h (darwin_libc_has_function): New.
5339fc0c 8778 * config/darwin.c (darwin_libc_has_function): Ditto.
d33d9e47
AI
8779 * config/alpha/linux.h: Remove TARGET_C99_FUNCTIONS and
8780 TARGET_HAS_SINCOS. Redefine TARGET_LIBC_HAS_FUNCTION.
8781 * config/darwin.h: Ditto.
8782 * config/elfos.h: Ditto.
8783 * config/freebsd.h: Ditto.
8784 * config/i386/cygming.h: Ditto.
8785 * config/i386/djgpp.h: Ditto.
8786 * config/i386/i386-interix.h: Ditto.
8787 * config/microblaze/microblaze.h: Ditto.
8788 * config/mmix/mmix.h: Ditto.
8789 * config/gnu-user.h: Ditto.
8790 * config/ia64/hpux.h: Ditto.
8791 * config/pa/pa-hpux.h: Ditto.
8792 * config/pdp11/pdp11.h: Ditto.
8793 * config/picochip/picochip.h: Ditto.
8794 * config/linux.h: Ditto.
8795 * config/netbsd.h: Ditto.
8796 * config/openbsd.h: Ditto.
8797 * config/rs6000/aix43.h: Ditto.
8798 * config/rs6000/aix51.h: Ditto.
8799 * config/rs6000/aix52.h: Ditto.
8800 * config/rs6000/aix53.h: Ditto.
8801 * config/rs6000/aix61.h: Ditto.
8802 * config/rs6000/darwin.h: Ditto.
8803 * config/rs6000/linux.h: Ditto.
8804 * config/rs6000/linux64.h: Ditto.
8805 * config/s390/tpf.h: Ditto.
8806 * config/sol2-10.h: Ditto.
8807 * config/sol2.h: Ditto.
8808 * config/vms/vms.h: Ditto.
8809 * config/vxworks.h: Ditto.
8810 * config/linux-android.c (linux_android_libc_has_function):
8811 New linux-specific implementation of TARGET_LIBC_HAS_FUNCTION.
8812 * config/linux-protos.h (linux_android_libc_has_function):
8813 New declaration.
8814 * config/i386/i386.c (ix86_libc_has_function): New.
8815 * config/i386/i386-protos.h
8816 (ix86_libc_has_function): New declaration.
8817 * config/i386/i386.md
8818 ("isinfxf2"): Change condition for TARGET_LIBC_HAS_FUNCTION.
8819 ("isinf<mode>2): Likewise.
8820 * convert.c (convert_to_integer): Using new target hook
8821 TARGET_LIBC_HAS_FUNCTION istead of TARGET_HAS_SINCOS and
8822 TARGET_C99_FUNCTIONS.
8823 * fortran/f95-lang.c (gfc_init_builtin_functions): Ditto.
8824 * tree-ssa-math-opts.c (execute_cse_sincos): Ditto.
8825 * coretypes.h (function_class): New enum for different
8826 classes of functions.
8827 * defaults.h: Remove TARGET_C99_FUNCTIONS and TARGET_HAS_SINCOS.
8828 * doc/tm.texi.in (TARGET_C99_FUNCTIONS): Remove documentation.
8829 (TARGET_HAS_SINCOS): Likewise.
8830 (TARGET_LIBC_HAS_FUNCTION): New.
8831 * doc/tm.texi: Regenerated.
8832 * targhooks.h (default_libc_has_function): New declaration.
8833 (no_c99_libc_has_function): Ditto.
8834 (gnu_libc_has_function): Ditto.
8835 * system.h: Add the poisoning of TARGET_C99_FUNCTIONS
8836 and TARGET_HAS_SINCOS.
8837
eefe9a99
JH
88382013-08-18 Jan Hubicka <jh@suse.cz>
8839
8840 * Makeifle-in (ipa-devirt.o): New.
8841 (GTFILES): Add ipa-utils.h and ipa-devirt.c
8842 * cgraphunit.c (decide_is_symbol_needed): Do not care about virtuals.
8843 (analyze_functions): Look into possible targets of polymorphic call.
8844 * dumpfile.c (dump_files): Add type-inheritance dump.
8845 * dumpfile.h (TDI_inheritance): New.
8846 * ipa-devirt.c: New file.
8847 * ipa-utils.h (odr_type_d): Forward declare.
8848 (odr_type): New type.
8849 (build_type_inheritance_graph): Declare.
8850 (possible_polymorphic_call_targets): Declare and introduce inline
8851 variant when only edge is pased.
8852 (dump_possible_polymorphic_call_targets): Likewise.
8853 * timevar.def (TV_IPA_INHERITANCE, TV_IPA_VIRTUAL_CALL): New.
8854 * tree.c (type_in_anonymous_namespace_p): Break out from ...
8855 (types_same_for_odr): ... here.
8856 * tree.h (type_in_anonymous_namespace_p): Declare.
8857
29b89442
JJ
88582013-08-18 Jakub Jelinek <jakub@redhat.com>
8859
8860 PR tree-optimization/58006
8861 * tree-parloops.c (take_address_of): Don't ICE if get_name
8862 returns NULL.
8863 (eliminate_local_variables_stmt): Remove clobber stmts.
8864
4f219961
EB
88652013-08-18 Eric Botcazou <ebotcazou@adacore.com>
8866
8867 * cgraphunit.c (handle_alias_pairs): Reset the alias flag after the
8868 error message is issued for an alias to undefined symbol.
8869
1d5755ef
JH
88702013-08-18 Jan Hubicka <jh@suse.cz>
8871
8872 * cgraph.c (cgraph_create_indirect_edge): Discover
8873 polymorphic calls and record basic info into indirect_info.
8874 * gimple-fold.c (gimple_fold_call): When doing BINFO based
8875 devirtualization, ignore objc function calls.
8876 * ipa-cp.c (initialize_node_lattices): Be ready for polymorphic
8877 call with no parm index info.
8878 * ipa-prop.c (ipa_analyze_call_uses): Likewise.
8879 * tree.c (virtual_method_call_p): New function.
8880 * tree.h (virtual_method_call_p): Declare.
8881
5945bebf
JH
88822013-08-16 Jan Hubicka <jh@suse.cz>
8883
8884 PR middle-end/58179
8885 * tree.c (obj_type_ref_class): Do not ICE on non-method calls.
8886
47fa5d23
DE
88872013-08-16 David Edelsohn <dje.gcc@gmail.com>
8888
8889 * config/rs6000/rs6000.md (rs6000_get_timebase_ppc32): Add length
8890 attribute.
8891
c74f54a0
DM
88922013-08-16 David Malcolm <dmalcolm@redhat.com>
8893
8894 * gengtype.c (type_for_name): Add special-case support for
8895 locating types within the "gcc::" namespace.
8896 (open_base_files): Emit a "using namespace gcc" directive.
8897
f758f299
MM
88982013-08-16 Michael Meissner <meissner@linux.vnet.ibm.com>
8899
8900 PR target/58160
8901 * config/rs6000/predicates.md (fusion_gpr_mem_load): Allow the
8902 memory rtx to contain ZERO_EXTEND and SIGN_EXTEND.
8903
8904 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Pass operands
8905 array instead of each individual operand as a separate argument.
8906 (emit_fusion_gpr_load): Likewise.
8907 (expand_fusion_gpr_load): Add new function declaration.
8908
8909 * config/rs6000/rs6000.c (fusion_gpr_load_p): Change the calling
8910 signature to have the operands passed as an array, instead of as
8911 separate arguments. Allow ZERO_EXTEND to be in the memory
8912 address, and also SIGN_EXTEND if -mpower8-fusion-sign. Do not
8913 depend on the register live/dead flags when peepholes are run.
8914 (expand_fusion_gpr_load): New function to be called from the
8915 peephole2 pass, to change the register that addis sets to be the
8916 target register.
8917 (emit_fusion_gpr_load): Change the calling signature to have the
8918 operands passed as an array, instead of as separate arguments.
8919 Allow ZERO_EXTEND to be in the memory address, and also
8920 SIGN_EXTEND if -mpower8-fusion-sign.
8921
8922 * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): Delete unused
8923 unspec enumeration.
8924 (power8 fusion peephole/peephole2): Rework the fusion peepholes to
8925 adjust the register addis loads up in the peephole2 pass. Do not
5339fc0c 8926 depend on the register live/dead state when the peephole pass is done.
f758f299 8927
158f4e4f
DM
89282013-08-16 David Malcolm <dmalcolm@redhat.com>
8929
8930 * gengtype.c (create_user_defined_type): Ensure that the kind
8931 is set to TYPE_USER_STRUCT, fixing a bug seen when an incomplete
8932 declaration is seen before the GTY((user)) marking.
8933
22f8cea5
BE
89342013-08-16 Bernd Edlinger <bernd.edlinger@hotmail.de>
8935
8936 PR target/58105
8937 * config/i386/i386.c (make_resolver_func): Set DECL_UNINLINABLE.
8938
c49bdb2e
JH
89392013-08-16 Jan Hubicka <jh@suse.cz>
8940
8941 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Add new
8942 arugment expected_type.
8943 (gimple_fold_call): Use it.
8944 * gimple.h (gimple_extract_devirt_binfo_from_cst): Update prototype.
8945 * ipa-cp.c (ipa_get_indirect_edge_target_1): Update.
22f8cea5 8946 * ipa-prop.c (ipa_analyze_virtual_call_uses): Use obj_type_ref_class.
c49bdb2e
JH
8947 (try_make_edge_direct_virtual_call): Likewise.
8948 * tree.c (obj_type_ref_class): New.
8949 * tree.h (obj_type_ref_class): Use it.
8950
4042dca9
GDR
89512013-08-16 Gabriel Dos Reis <gdr@integrable-solutions.net>
8952
8953 * sched-vis.c (rtl_slim_pp_initialized): Remove.
8954 (rtl_slim_pp): Likewise.
8955 (init_rtl_slim_pretty_print): Likewise.
8956 (dump_value_slim): Don't call it. Use local pretty printer.
8957 (dump_insn_slim): Likewise.
8958 (dump_rtl_slim): Likewise.
8959 (str_pattern_slim): Likewise.
8960 * tree-mudflap.c (mf_varname_tree): Use local pretty printer.
8961 Simplify.
8962
7a460594
JJ
89632013-08-16 Jakub Jelinek <jakub@redhat.com>
8964
639dc669
JJ
8965 PR tree-optimization/58164
8966 * gimple.c (walk_stmt_load_store_addr_ops): For visit_addr
8967 walk gimple_goto_dest of GIMPLE_GOTO.
8968
7a460594
JJ
8969 PR tree-optimization/58165
8970 * tree-call-cdce.c (shrink_wrap_one_built_in_call): If
8971 bi_call must be the last stmt in a bb, don't split_block, instead
8972 use fallthru edge from it and give up if there is none.
8973 Release conds vector when returning early.
8974
e3c02cc7
XDL
89752013-08-14 Xinliang David Li <davidxl@google.com>
8976
8977 * config/i386/i386.c (ix86_option_override_internal):
8978 Remove unused variable and field.
8979
6469da2c
BS
89802013-08-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8981
8982 PR target/57949
22f8cea5 8983 * doc/invoke.texi: Add documentation of mcompat-align-parm option.
6469da2c
BS
8984 * config/rs6000/rs6000.opt: Add mcompat-align-parm option.
8985 * config/rs6000/rs6000.c (rs6000_function_arg_boundary): For AIX
8986 and Linux, correct BLKmode alignment when 128-bit alignment is
8987 required and compatibility flag is not set.
22f8cea5
BE
8988 (rs6000_gimplify_va_arg): For AIX and Linux, honor specified alignment
8989 for zero-size arguments when compatibility flag is not set.
6469da2c 8990
4ca890e2
JJ
89912013-08-14 Jakub Jelinek <jakub@redhat.com>
8992
8993 PR tree-optimization/58145
8994 * tree-sra.c (build_ref_for_offset): If prev_base has
8995 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS, propagate it to MEM_REF.
8996
daec1759 89972013-08-14 Xinliang David Li <davidxl@google.com>
4ca890e2 8998
daec1759 8999 * config/i386/i386.c (ix86_option_override_internal):
e3c02cc7 9000 Fix uninitialized variable error.
daec1759 9001
3ad20bd4
XDL
90022013-08-14 Xinliang David Li <davidxl@google.com>
9003
9004 * config/i386/i386.opt: Define two new options.
9005 * config/i386/x86-tune.def: Add arch selector field in macros.
9006 * config/i386/i386.h: Adjust macro definition.
9007 * config/i386/i386.c (ix86_option_override_internal):
9008 Refactor the code.
9009 (parse_mtune_ctrl_str): New function.
9010 (set_ix86_tune_features): New function.
9011 (ix86_function_specific_restore): Call the new helper function.
9012
e839e2a9
AB
90132013-08-14 Andrey Belevantsev <abel@ispras.ru>
9014
9015 PR rtl-optimization/57662
9016 * sel-sched.c (code_motion_process_successors): When the current insn
9017 is removed after the recursive traversal, break from the loop.
9018 Add comments and debug printouts.
9019
27ed665f
JJ
90202013-08-14 Jakub Jelinek <jakub@redhat.com>
9021 Alexandre Oliva <aoliva@redhat.com>
9022
9023 PR target/58067
9024 * config/i386/i386.c (ix86_delegitimize_address): For CM_MEDIUM_PIC
9025 and CM_LARGE_PIC ix86_cmodel fall thru into the -m32 code, handle
9026 there also UNSPEC_PLTOFF.
9027
61c1a609
MP
90282013-08-14 Marek Polacek <polacek@redhat.com>
9029
9030 * ipa-inline-analysis.c (add_clause): Avoid shifting integer
9031 NUM_CONDITIONS bit positions.
9032
0e901c67
CC
90332013-08-13 Cary Coutant <ccoutant@google.com>
9034
9035 * dwarf2out.c (CHECKSUM_BLOCK): New macro.
9036 (attr_checksum): Hash vector contents instead of pointer.
9037 (attr_checksum_ordered): Likewise.
9038
061eff6d
UB
90392013-08-13 Uros Bizjak <ubizjak@gmail.com>
9040
9041 * config/i386/sse.md (*sse2_maskmovdqu): Emit addr32 prefix
9042 when Pmode != word_mode. Add length_address attribute.
9043 (sse3_monitor_<mode>): Merge from sse3_monitor and
9044 sse3_monitor64_<mode> insn patterns. Emit addr32 prefix when
9045 Pmode != word_mode. Update insn length attribute.
9046 * config/i386/i386.c (ix86_option_override_internal): Update
9047 ix86_gen_monitor selection for merged sse3_monitor insn.
9048
8ec9249b
JB
90492013-08-13 Julian Brown <julian@codesourcery.com>
9050
9051 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
9052 perform invalid legitimization on greater-than-word-size modes for
9053 TARGET_E500_DOUBLE.
9054
761a8eb7
VM
90552013-08-13 Vladimir Makarov <vmakarov@redhat.com>
9056
9057 * ira.c (setup_class_translate_array): Use aclass instead of cl
9058 for classes not fully covered by allocno classes.
9059
99c2bd54
JJ
90602013-08-13 Jakub Jelinek <jakub@redhat.com>
9061
4029a5e0
JJ
9062 PR tree-optimization/57661
9063 * tree-inline.h (struct copy_body_data): Add blocks_to_copy field.
9064 * tree-inline.c (tree_function_versioning): Initialize it.
9065 (remap_gimple_stmt): Return GIMPLE_NOP for MEM_REF lhs clobber stmts
9066 if id->blocks_to_copy and MEM_REF's SSA_NAME is defined in a block
9067 that is not being copied.
9068
99c2bd54
JJ
9069 PR sanitizer/56417
9070 * asan.c (instrument_strlen_call): Fix typo in comment.
9071 Use char * type even for the lhs of POINTER_PLUS_EXPR.
9072
b5f8f063
SE
90732013-08-13 Steve Ellcey <sellcey@mips.com>
9074
9075 * config/mips/mips.md (prefetch): Use lw instead of ld on
9076 loongson in 32bit mode.
9077
4de80584
NC
90782013-08-13 Nick Clifton <nickc@redhat.com>
9079
9080 * config.gcc: (avr-linux): Allow for tmake_file not being empty.
9081
09ce3660
JH
90822013-08-13 Jan Hubicka <jh@suse.cz>
9083
9084 * cgraph.c (cgraph_turn_edge_to_speculative): Return newly
9085 introduced edge; fix typo in sanity check.
9086 (cgraph_resolve_speculation): Export; improve diagnostic.
9087 (cgraph_redirect_edge_call_stmt_to_callee): Better diagnostic; cancel
9088 speculation at type mismatch.
9089 * cgraph.h (cgraph_turn_edge_to_speculative): Update.
9090 (cgraph_resolve_speculation): Declare.
9091 (symtab_can_be_discarded): New function.
9092 * value-prof.c (gimple_ic_transform): Remove actual transform code.
9093 * ipa-inline-transform.c (speculation_removed): New global var.
9094 (clone_inlined_nodes): See if speculation can be removed.
9095 (inline_call): If speculations was removed, we growths may not match.
9096 * ipa-inline.c (can_inline_edge_p): Add DISREGARD_LIMITS parameter.
9097 (speculation_useful_p): New function.
9098 (resolve_noninline_speculation): New function.
9099 (inline_small_functions): Resolve useless speculations.
9100 * ipa-inline.h (speculation_useful_p): Declare
9101 * ipa.c (can_replace_by_local_alias): Simplify.
9102 (ipa_profile): Produce speculative calls in non-lto, too;
9103 add simple cost model; produce local aliases.
9104
f971dc24
DM
91052013-08-13 David Malcolm <dmalcolm@redhat.com>
9106
9107 * config/i386/t-i386 (i386.o): Rename stray PIPELINE_H to
061eff6d 9108 PASS_MANAGER_H.
f971dc24 9109
2e507b9a
PC
91102013-08-12 Paolo Carlini <paolo.carlini@oracle.com>
9111
9112 * config/i386/i386.c (ix86_function_versions): Use error + inform.
9113
c97fd4b8
UB
91142013-08-12 Uros Bizjak <ubizjak@gmail.com>
9115
9116 * config/i386/i386.md (floatunssi<mode>2 expand): Use MODEF mode
9117 iterator instead of X87MODEF.
9118
91192013-08-12 Perez Read <netfirewall@gmail.com>
9120
9121 PR target/58132
9122 * config/i386/i386.md (*movabs<mode>_1): Add <ptrsize> PTR before
9123 operand 0 for intel asm alternative.
9124 (*movabs<mode>_2): Ditto for operand 1.
9125
f4f4204c
JG
91262013-08-12 James Greenhalgh <james.greenhalgh@arm.com>
9127
9128 * config/aarch64/arm_none.h
9129 (vdup<bhsd>_lane_<su><8,16,32,64>): Fix macro call.
9130
133b1a8e
NC
91312013-08-12 Nick Clifton <nickc@redhat.com>
9132
9133 * config.gcc (m32r-linux): Allow for tmake_file not being empty.
9134
15dd8b3a
YR
91352013-08-12 Yuri Rumyantsev <ysrumyan@gmail.com>
9136
9137 * config/i386/i386.md (floatunssi<mode>2 expand): Add new
9138 expand for QI/HImode operand to produce more effictive code for
9139 unsigned char(short) --> float(double) conversion.
9140
94109a6a
AM
91412013-08-12 Alexander Monakov <amonakov@ispras.ru>
9142
9143 * doc/invoke.texi: Mention that -ftls-model does not force the final
9144 model.
9145
4e115102
MP
91462013-08-12 Marek Polacek <polacek@redhat.com>
9147 Marc Glisse <marc.glisse@inria.fr>
9148
9149 PR tree-optimization/57980
9150 * tree-tailcall.c (process_assignment): Call build_minus_one_cst
9151 when creating -1 constant.
9152
748d71f3
JH
91532013-08-10 Jan Hubicka <jh@suse.cz>
9154
1f97e193 9155 Workaround binutils PR14342.
748d71f3
JH
9156 * tree-profile.c (init_ic_make_global_vars): Add LTO path.
9157 (gimple_init_edge_profiler): Likewise.
9158 (gimple_gen_ic_func_profiler): Likewise.
9159
5979aa54
JH
91602013-08-09 Jan Hubicka <jh@suse.cz>
9161
9162 * cgraph.c (cgraph_create_edge_1): Clear speculative flag.
9163
ad83025e
XDL
91642013-08-09 Xinliang David Li <davidxl@google.com>
9165
9166 * config/i386/stringop.def: New file.
9167 * config/i386/stringop.opt: New file.
9168 * config/i386/i386-opts.h: Include stringopt.def.
9169 * config/i386/i386.opt: Include stringopt.opt.
9170 * config/i386/i386.c (ix86_option_override_internal):
c97fd4b8 9171 Override default size based stringop inline strategies with options.
ad83025e
XDL
9172 * config/i386/i386.c (ix86_parse_stringop_strategy_string):
9173 New function.
9174
e59df5fd
JH
91752013-08-09 Jan Hubicka <jh@suse.cz>
9176
c97fd4b8 9177 * ipa-ref.c (ipa_clear_stmts_in_references): Clear lto_stmt_uid, too.
e59df5fd 9178
634ab819
JH
91792013-08-09 Jan Hubicka <jh@suse.cz>
9180
9181 * cgraph.c (cgraph_resolve_speculation): Cut frequency to
9182 CGRAPH_FREQ_MAX.
9183 (dump_cgraph_node): Dump profile-id.
9184 * cgraph.h (cgraph_indirect_call_info): Add common_target_id
9185 and common_target_probability.
9186 * lto-cgraph.c (lto_output_edge): Stream common targets.
9187 (lto_output_node): Stream profile ids.
9188 (input_node): Stream profile ids.
9189 (input_edge): Stream common targets.
9190 * lto-streamer-in.c (fixup_call_stmt_edges_1): Fix formatting.
9191 * ipa.c: Include value-prof.h
9192 (ipa_profile_generate_summary): Turn indirect call statement histograms
9193 into common targets.
9194 (ipa_profile): Turn common targets into speculative edges.
9195
2fa3d31b
JH
91962013-08-09 Jan Hubicka <jh@suse.cz>
9197
9198 * cgraph.h (cgraph_node): Add profile_id.
9199 * value-prof.c (cgraph_node_map): Turn into pointer_map.
c97fd4b8 9200 (init_node_map): Rewrite to handle hashes increas of incremental IDs.
2fa3d31b
JH
9201 (del_node_map): Update.
9202 (find_func_by_funcdef_no): Replace by ...
9203 (find_func_by_profile_id): ... this one.
9204 (gimple_ic_transform): Do not remove useful histograms when
9205 speculation is not done; dump info when indirect call removal
9206 can happen at LTO.
9207 * value-prof.h (find_func_by_profile_id, gimple_ic): Declare.
9208 * gcov-io.h (__gcov_indirect_call_profiler): Replace by ...
9209 (__gcov_indirect_call_profiler_v2): .. this one.
9210 * profile.h (init_node_map): Update.
9211 * coverage.c (coverage_compute_profile_id): New function.
9212 * coverage.h (coverage_compute_profile_id): Declare.
9213 * tree-profile.c (init_ic_make_global_vars): Make
9214 __gcov_indirect_call_callee and __gcov_indirect_call_counters global.
9215 (gimple_init_edge_profiler): Update prototype of
9216 __gcov_indirect_call_profiler.
9217 (gimple_gen_ic_func_profiler): Simplify.
9218 (tree_profiling): Use init_node_map
9219
042ae7d2
JH
92202013-08-09 Jan Hubicka <jh@suse.cz>
9221
c97fd4b8
UB
9222 * cgraphbuild.c (cgraph_rebuild_references): Rebuild only
9223 non-speculative refs.
042ae7d2
JH
9224 * cgraph.c (cgraph_update_edge_in_call_site_hash): New function.
9225 (cgraph_add_edge_to_call_site_hash): Deal with speculative calls.
9226 (cgraph_set_call_stmt): Likewise.
9227 (cgraph_create_edge_1): Fix release checking compilatoin;
9228 clear lto_stmt_uid.
9229 (cgraph_free_edge): Free indirect info.
9230 (cgraph_turn_edge_to_speculative): New function.
9231 (cgraph_speculative_call_info): New function.
9232 (cgraph_make_edge_direct): Return direct edge; handle speculation.
c97fd4b8 9233 (cgraph_redirect_edge_call_stmt_to_callee): Expand speculative edges.
042ae7d2
JH
9234 (dump_cgraph_node): Dump speculation.
9235 (verify_edge_count_and_frequency): Accept speculative edges.
9236 (verify_edge_corresponds_to_fndecl): Handle partitioned cgraph.
9237 (verify_cgraph_node): Handle speculation.
9238 * cgraph.h (cgraph_edge): Add SPECULATIVE flag.
9239 (cgraph_set_call_stmt): Update prototype.
9240 (cgraph_make_edge_direct): Update prototype.
9241 (cgraph_speculative_call_info): Declare.
9242 * ipa-cp.c (ipcp_discover_new_direct_edges): Be ready for edge
9243 to change; update call of ipa_find_references.
9244 * ipa-ref.c (ipa_record_reference): Fix return value; clear
9245 lto_stmt_uid and speculative flags.
9246 (ipa_dump_references): Dump speculation.
9247 (ipa_clone_references): Clone speculative flag.
9248 (ipa_clone_referring): Likewise.
9249 (ipa_clone_ref): New function.
9250 (ipa_find_reference): Look into lto_stmt_uids
9251 (ipa_clear_stmts_in_references): Do not clear speculative calls.
9252 * ipa-ref.h (ipa_ref): Add lto_stmt_uid and speculative flags.
9253 (ipa_find_reference): Update declaration.
9254 (ipa_clone_ref): Declare.
9255 * lto-cgraph.c (lto_output_edge): Make lto_stmt_uids start from 0;
9256 stream speculative flag.
9257 (lto_output_ref): Stream statements uids and speculation.
9258 (input_ref): Likewise.
9259 (input_edge): Stream speuclation.
9260 * cgraphclones.c (cgraph_clone_edge): Clone speculation.
9261 (cgraph_set_call_stmt_including_clones): Handle speculation.
9262 * ipa-inline.c (heap_edge_removal_hook): New function.
9263 (inline_small_functions): Register it.
9264 * lto-streamer-in.c (fixup_call_stmt_edges_1): Bounds checking;
9265 also initialize refs.
9266 * ipa-prop.c (ipa_make_edge_direct_to_target): Be ready for
9267 edge to change.
9268 (try_make_edge_direct_simple_call): Likewise.
9269 (try_make_edge_direct_simple_call): Likewise.
9270 (update_indirect_edges_after_inlining): Likewise.
9271 (remove_described_reference): Look proper lto_stmt_uid.
9272 (propagate_controlled_uses): Likewise.
9273 (propagate_controlled_uses): Liekwise.
9274 * tree-inline.c (copy_bb): Copy speculative edges.
9275 (redirect_all_calls): New function.
c97fd4b8
UB
9276 (copy_cfg_body): Do redirection after loop info is updated.
9277 (delete_unreachable_blocks_update_callgraph): Updadte speculation.
042ae7d2 9278
aa1e10cc
JH
92792013-08-09 Jan Hubicka <jh@suse.cz>
9280
9281 * lto-streamer-out.c (output_function): Renumber PHIs.
9282 * lto-streamer-in.c (input_function): Likewise.
9283
66adb8eb
JG
92842013-08-09 James Greenhalgh <james.greenhalgh@arm.com>
9285
9286 * config/aarch64/aarch64-simd-builtins.def (get_lane_signed): Remove.
9287 (get_lane_unsigned): Likewise.
9288 (dup_lane_scalar): Likewise.
9289 (get_lane): enable for VALL.
9290 * config/aarch64/aarch64-simd.md
9291 (aarch64_dup_lane_scalar<mode>): Remove.
9292 (aarch64_get_lane_signed<mode>): Likewise.
9293 (aarch64_get_lane_unsigned<mode>): Likewise.
9294 (aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): New.
9295 (aarch64_get_lane_zero_extendsi<mode>): Likewise.
9296 (aarch64_get_lane<mode>): Enable for all vector modes.
9297 (aarch64_get_lanedi): Remove misleading constraints.
9298 * config/aarch64/arm_neon.h
9299 (__aarch64_vget_lane_any): Define.
9300 (__aarch64_vget<q>_lane_<fpsu><8,16,32,64>): Likewise.
9301 (vget<q>_lane_<fpsu><8,16,32,64>): Use __aarch64_vget_lane macros.
9302 (vdup<bhsd>_lane_<su><8,16,32,64>): Likewise.
9303 * config/aarch64/iterators.md (VDQQH): New.
9304 (VDQQHS): Likewise.
9305 (vwcore): Likewise.
9306
1f65ae7a
EB
93072013-08-09 Eric Botcazou <ebotcazou@adacore.com>
9308
9309 * configure.ac: Add GAS check for LEON instructions on SPARC.
9310 * configure: Regenerate.
9311 * config.in: Likewise.
9312 * config.gcc (with_cpu): Remove sparc-leon*-* and deal with LEON in the
9313 sparc*-*-* block.
9314 * config/sparc/sparc.opt (LEON, LEON3): New masks.
9315 * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Set to AS_LEON_FLAG
9316 for LEON or LEON3.
9317 (ASM_CPU_SPEC): Pass AS_LEON_FLAG if -mcpu=leon or -mcpu=leon3.
9318 (AS_LEON_FLAG): New macro.
9319 * config/sparc/sparc.c (sparc_option_override): Set MASK_LEON for leon
9320 and MASK_LEON3 for leon3 and unset them if HAVE_AS_LEON is not defined.
9321 Deal with LEON and LEON3 for the memory model.
23a6cb78 9322 * config/sparc/sync.md (atomic_compare_and_swap<mode>): Enable if LEON3
1f65ae7a
EB
9323 (atomic_compare_and_swap<mode>_1): Likewise.
9324 (*atomic_compare_and_swap<mode>_1): Likewise.
9325
ff522f7f
ZC
93262013-08-09 Zhenqiang Chen <zhenqiang.chen@linaro.org>
9327
9328 * config/arm/neon.md (vcond): Fix floating-point vector
9329 comparisons against 0.
9330
cb1cca12
VM
93312013-08-08 Vladimir Makarov <vmakarov@redhat.com>
9332
9333 * lra-constraints.c (emit_spill_move): Remove assert.
9334 (process_alt_operands): Add more debugging
9335 output. Increase reject for spilling into memory. Decrease
9336 reject for reloading scratch.
9337 (split_reg): Use HARD_REGNO_CALLER_SAVE_MODE.
9338
a3719e31
SE
93392013-08-08 Steve Ellcey <sellcey@mips.com>
9340
9341 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add nan2008.
9342 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Make mips16 and
9343 micromips incompatible. Add nan2008.
9344 (MULTILIB_DIRNAMES): Add nan2008.
9345 (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
9346 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Make mips16
9347 and micromips incompatible. Add nan2008.
9348 (MULTILIB_DIRNAMES): Add nan2008.
9349 (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
9350
f40423e2
RS
93512013-08-08 Richard Sandiford <rdsandiford@googlemail.com>
9352
9353 PR rtl-optimization/58079
9354 * combine.c (combine_simplify_rtx): Avoid using SUBST if
9355 simplify_comparison has widened a comparison with an integer.
9356
869b9125
KT
93572013-08-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9358
9359 * config/arm/neon.md (movmisalign<mode>): Disable when we
9360 don't allow unaligned accesses.
9361 (*movmisalign<mode>_neon_store): Likewise.
9362 (*movmisalign<mode>_neon_load): Likewise.
9363 (*movmisalign<mode>_neon_store): Likewise.
9364 (*movmisalign<mode>_neon_load): Likewise.
9365
71cafea9
JH
93662013-08-08 Jan Hubicka <jh@suse.cz>
9367
9368 * cgraphbuild.c (build_cgraph_edges): Do not walk into debugs.
9369 (make_pass_rebuild_cgraph_edges): Also clear references.
9370 * cgraph.c (verify_cgraph_node): Add basic ipa-ref verifier.
9371 * ipa-inline-transform.c (inline_transform): Remove all references
9372 after inlining.
c97fd4b8
UB
9373 * cgraphunit.c (expand_function): Remove all references after
9374 expansion.
71cafea9
JH
9375 * ipa-ref.c (ipa_ref_has_aliases_p): Fix formatting.
9376 (ipa_find_reference): Rewrite to iterator.
9377 (remove_stmt_references): Likewise.
9378 (ipa_clear_stmts_in_references): New function.
9379 * ipa-ref.h (ipa_clear_stmts_in_references): Declare.
03b0ee0a
UB
9380 * cgraphclones.c (cgraph_materialize_all_clones): Remove or
9381 clear references.
71cafea9
JH
9382 * ipa-split.c (split_function): Remove references in split function.
9383
27d2e612
RE
93842013-08-08 Richard Earnshaw <rearnsha@arm.com>
9385
9386 PR target/57431
1f65ae7a 9387 * config/arm/arm/neon.md (neon_vld1_dupdi): New expand pattern.
27d2e612
RE
9388 (neon_vld1_dup<mode> VD iterator): Iterate over VD not VDX.
9389
5efc661c
RE
93902013-08-08 Richard Earnshaw <rearnsha@arm.com>
9391
9392 PR target/56979
1f65ae7a 9393 * config/arm/arm.c (aapcs_vfp_allocate): Decompose the argument if the
5efc661c
RE
9394 suggested mode for the assignment isn't compatible with the
9395 registers required.
9396
f276d31d
BE
93972013-08-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
9398
9399 PR target/58065
9400 * config/arm/arm.h (MALLOC_ABI_ALIGNMENT): Define.
9401
4b8bc035
XDL
94022013-08-07 Xinliang David Li <davidxl@google.com>
9403
9404 * config/i386/i386.opt: New option -mtune-ctrl=.
9405 * config/i386/x86-tune.def: New file.
9406 * config/i386/i386.h: include x86-tune.def.
9407 * config/i386/i386.c (ix86_option_override_internal):
9408 Parsing -mtune-ctrl= option and set tune features.
9409
12211b99 94102013-08-07 Oleg Endo <olegendo@gcc.gnu.org>
a5b38740
OE
9411
9412 PR other/12081
03b0ee0a 9413 * config/rs6000/rs6000.c (gen_2arg_fn_t): Remove typedef.
a5b38740
OE
9414 (rs6000_emit_swdiv, rs6000_emit_swrsqrt): Don't cast result of GEN_FCN
9415 to gen_2arg_fn_t.
9416
5cf6635b
EB
94172013-08-07 Eric Botcazou <ebotcazou@adacore.com>
9418
9419 * rtl.h (update_alignments): Declare.
9420 * final.c (grow_label_align): New function extracted from...
9421 (shorten_branches): ...here. Call it.
9422 (update_alignments): New function.
9423 * reorg.c (sibling_labels): New variable.
9424 (get_label_before): Add SIBLING parameter. If it is non-zero, push
9425 the new label along with it onto the sibling_labels vector.
9426 (fill_simple_delay_slots): Adjust call to get_label_before.
9427 (fill_slots_from_thread): Likewise.
9428 (relax_delay_slots): Likewise.
9429 (make_return_insns): Likewise.
9430 (dbr_schedule): Invoke update_alignment on the sibling_labels vector.
9431
3c8ca1ab
EB
94322013-08-07 Eric Botcazou <ebotcazou@adacore.com>
9433
9434 * diagnostic.c (diagnostic_classify_diagnostic): Accept zero index and
9435 document its semantics.
9436 (diagnostic_report_diagnostic): Adjust accordingly.
9437
5ee5b32c
DM
94382013-08-07 David Malcolm <dmalcolm@redhat.com>
9439
03b0ee0a 9440 * config/sparc/sparc.c (insert_pass_work_around_errata): Move into...
5ee5b32c
DM
9441 (sparc_option_override): ...and port to new C++ pass API.
9442 * config/sparc/t-sparc (sparc.o): Add dep on CONTEXT_H
9443
abd566fa
PB
94442013-08-07 Peter Bergner <bergner@vnet.ibm.com>
9445
9446 * config/rs6000/rs6000.c (htm_expand_builtin) <case 0>: Remove.
9447
2077db1b
CT
94482013-08-06 Caroline Tice <cmtice@google.com>
9449
9450 * gcc.c (VTABLE_VERIFICATION_SPEC): New definition.
9451 (LINK_COMMAND_SPEC): Add VTABLE_VERIFICATION_SPEC.
9452 * tree-pass.h: Add pass_vtable_verify.
9453 * varasm.c (assemble_variable): Add code to properly set the comdat
9454 section and name for the .vtable_map_vars section.
9455 (assemble_vtyv_preinit_initializer): New function.
9456 (default_sectin_type_flags): Make sure .vtable_map_vars section has
9457 LINK_ONCE flag.
9458 * output.h: Add function decl for assemble_vtv_preinit_initializer.
9459 * vtable-verify.c: New file.
9460 * vtable-verify.h: New file.
9461 * flag-types.h (enum vtv_priority): Defintions for flag_vtable_verify
9462 initialiation levels.
9463 * timevar.def (TV_VTABLE_VERIFICATION): New definition.
9464 * passes.def: Insert pass_vtable_verify.
9465 * aclocal.m4: Reorder includes.
9466 * doc/invoke.texi: Document the -fvtable-verify=, -fvtv-debug, and
9467 -fvtv-counts options.
9468 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add vtv_start*.o,
9469 as appropriate, if -fvtable-verify=... is used.
9470 (GNU_USER_TARGET_ENDFILE_SPEC): Add vtv_end*.o as appropriate, if
9471 -fvtable-verify=... is used.
9472 * Makefile.in (OBJS): Add vtable-verify.o to list.
9473 (vtable-verify.o): Add new build rule.
9474 (GTFILES): Add vtable-verify.c to list.
9475 * common.opt (fvtable-verify=): New flag.
9476 (vtv_priority): Values for fvtable-verify= flag.
9477 (fvtv-counts): New flag.
9478 (fvtv-debug): New flag.
9479 * tree.h (save_vtable_map_decl): New extern function decl.
9480
03085d1c
DM
94812013-08-07 David Malcolm <dmalcolm@redhat.com>
9482
9483 * config/rl78/rl78.c (rl78_devirt_pass): Convert from a struct to...
9484 (pass_rl78_devirt): ...new subclass of rtl_opt_pass along with...
9485 (pass_data_rl78_devirt): ...new pass_data instance and...
9486 (make_pass_rl78_devirt): ...new function.
9487 (rl78_asm_file_start): Port pass registration to new C++ API.
9488
05555c4a
DM
94892013-08-07 David Malcolm <dmalcolm@redhat.com>
9490
9491 * coretypes.h (rtl_opt_pass): Add.
9492 (gcc::context): Add.
9493 * config/epiphany/epiphany.c (pass_mode_switch_use): New.
9494 (epiphany_init): Port to new C++ pass API.
9495 (epiphany_optimize_mode_switching): Likewise.
9496 * pass_manager.h (pass_manager::get_pass_split_all_insns): New.
9497 (pass_manager::get_pass_mode_switching): New.
9498 (pass_manager::get_pass_peephole2): New.
9499 * mode-switching.c (pass_mode_switching): Add clone method.
9500 * recog.c (pass_peephole2): Add clone method.
9501 (pass_split_all_insns): Add clone method.
9502
c5a12e26
DM
95032013-08-06 David Malcolm <dmalcolm@redhat.com>
9504
03b0ee0a
UB
9505 * config/mips/mips.c (insert_pass_mips_machine_reorg2): Move into...
9506 (mips_option_override): ...here, porting to new C++ API for passes.
c5a12e26 9507
a2e2a668
JH
95082013-08-06 Jan Hubicka <jh@suse.cz>
9509
9510 * cgraph.c (cgraph_get_body): New function based on lto.c
9511 implementation.
9512 * cgraph.h (cgraph_get_body): Declare.
03b0ee0a
UB
9513 * cgraphclones.c (cgraph_create_virtual_clone): Commonize WPA and
9514 LTO paths.
a2e2a668
JH
9515 * cgraphunit.c (expand_function): Get body prior expanding.
9516 * ipa.c (function_and_variable_visibility): Use gimple_has_body_p test.
03b0ee0a
UB
9517 * lto-cgraph.c (lto_output_node): Do not stream bodies we don't
9518 really need.
a2e2a668
JH
9519 * passes.c (do_per_function_toporder): Get body.
9520 * tree-inline.c (expand_call_inline): Get body prior inlining it.
9521 * tree-ssa-structalias.c (ipa_pta_execute): Get body; skip clones.
9522
15682f24
MJ
95232013-08-06 Martin Jambor <mjambor@suse.cz>
9524
9525 PR fortran/57987
9526 * cgraphunit.c (cgraph_finalize_function): Assert that nested function
9527 is not re-finalized. Rename second parameter to no_collect.
9528
78f6dd68
MJ
95292013-08-06 Martin Jambor <mjambor@suse.cz>
9530
9531 PR middle-end/58041
9532 * gimple-ssa-strength-reduction.c (replace_ref): Make sure built
9533 MEM_REF has proper alignment information.
9534
12211b99 95352013-08-05 Oleg Endo <olegendo@gcc.gnu.org>
eb923e54
OE
9536
9537 PR other/12081
9538 * recog.h (rtx (*insn_gen_fn) (rtx, ...)): Replace typedef with new
9539 class insn_gen_fn.
9540 * expr.c (move_by_pieces_1, store_by_pieces_2): Replace argument
9541 rtx (*) (rtx, ...) with insn_gen_fn.
9542 * genoutput.c (output_insn_data): Cast gen_? function pointers to
9543 insn_gen_fn::stored_funcptr. Add initializer braces.
9544
8ac69a6c
DM
95452013-08-05 David Malcolm <dmalcolm@redhat.com>
9546
9547 Rewrite how instances of passes are cloned to remove assumptions
9548 about their sizes (thus allowing pass subclasses to have
9549 additional data fields, albeit non-GC-managed ones at this point).
9550
9551 * passes.c (make_pass_instance): Now that passes have clone
9552 methods, rewrite this function to eliminate XNEW and memcpy
9553 calls that used hardcoded sizes. Since this function no longer
9554 creates pass instances, rename it to...
03b0ee0a
UB
9555 (add_pass_instance): ...this. Document the old way that passes were
9556 numbered and flagged, and rework this function to continue using it.
8ac69a6c
DM
9557 (next_pass_1): Add an initial_pass argument for use by
9558 add_pass_instance.
9559 (position_pass): When adding multiple instances of a pass, use
9560 the pass's clone method, rather than relying on the XNEW/memcpy
9561 within the former make_pass_instance (now add_pass_instance).
03b0ee0a
UB
9562 (pass_manager::pass_manager): When invoking next_pass_1, also supply
9563 the initial instance of the current pass within the pass manager.
8ac69a6c 9564
27a4cd48
DM
95652013-08-05 David Malcolm <dmalcolm@redhat.com>
9566
9567 This is the automated part of the conversion of passes from C
9568 structs to C++ classes.
9569
9570 Patch autogenerated by refactor_passes.py from
9571 https://github.com/davidmalcolm/gcc-refactoring-scripts
9572 revision 03fe39476a4c4ea450b49e087cfa817b5f92021e
9573
9574 * asan.c (pass_asan): Convert from a global struct to a subclass of
9575 gimple_opt_pass along with...
9576 (pass_data_asan): ...new pass_data instance and...
9577 (make_pass_asan): ...new function.
9578 (pass_asan_O0): Convert from a global struct to a subclass of
9579 gimple_opt_pass along with...
9580 (pass_data_asan_O0): ...new pass_data instance and...
9581 (make_pass_asan_O0): ...new function.
9582 * auto-inc-dec.c (pass_inc_dec): Convert from a global struct to a
9583 subclass of rtl_opt_pass along with...
9584 (pass_data_inc_dec): ...new pass_data instance and...
9585 (make_pass_inc_dec): ...new function.
9586 * bb-reorder.c (pass_reorder_blocks): Convert from a global struct to
9587 a subclass of rtl_opt_pass along with...
9588 (pass_data_reorder_blocks): ...new pass_data instance and...
9589 (make_pass_reorder_blocks): ...new function.
9590 (pass_duplicate_computed_gotos): Convert from a global struct to a
9591 subclass of rtl_opt_pass along with...
9592 (pass_data_duplicate_computed_gotos): ...new pass_data instance and...
9593 (make_pass_duplicate_computed_gotos): ...new function.
9594 (pass_partition_blocks): Convert from a global struct to a subclass of
9595 rtl_opt_pass along with...
9596 (pass_data_partition_blocks): ...new pass_data instance and...
9597 (make_pass_partition_blocks): ...new function.
9598 * bt-load.c (pass_branch_target_load_optimize1): Convert from a global
9599 struct to a subclass of rtl_opt_pass along with...
9600 (pass_data_branch_target_load_optimize1): ...new pass_data instance
9601 and...
9602 (make_pass_branch_target_load_optimize1): ...new function.
9603 (pass_branch_target_load_optimize2): Convert from a global struct to a
9604 subclass of rtl_opt_pass along with...
9605 (pass_data_branch_target_load_optimize2): ...new pass_data instance
9606 and...
9607 (make_pass_branch_target_load_optimize2): ...new function.
9608 * cfgcleanup.c (pass_jump): Convert from a global struct to a subclass
9609 of rtl_opt_pass along with...
9610 (pass_data_jump): ...new pass_data instance and...
9611 (make_pass_jump): ...new function.
9612 (pass_jump2): Convert from a global struct to a subclass of
9613 rtl_opt_pass along with...
9614 (pass_data_jump2): ...new pass_data instance and...
9615 (make_pass_jump2): ...new function.
9616 * cfgexpand.c (pass_expand): Convert from a global struct to a
9617 subclass of rtl_opt_pass along with...
9618 (pass_data_expand): ...new pass_data instance and...
9619 (make_pass_expand): ...new function.
9620 * cfgrtl.c (pass_free_cfg): Convert from a global struct to a subclass
9621 of rtl_opt_pass along with...
9622 (pass_data_free_cfg): ...new pass_data instance and...
9623 (make_pass_free_cfg): ...new function.
9624 (pass_into_cfg_layout_mode): Convert from a global struct to a
9625 subclass of rtl_opt_pass along with...
9626 (pass_data_into_cfg_layout_mode): ...new pass_data instance and...
9627 (make_pass_into_cfg_layout_mode): ...new function.
9628 (pass_outof_cfg_layout_mode): Convert from a global struct to a
9629 subclass of rtl_opt_pass along with...
9630 (pass_data_outof_cfg_layout_mode): ...new pass_data instance and...
9631 (make_pass_outof_cfg_layout_mode): ...new function.
9632 * cgraphbuild.c (pass_build_cgraph_edges): Convert from a global
9633 struct to a subclass of gimple_opt_pass along with...
9634 (pass_data_build_cgraph_edges): ...new pass_data instance and...
9635 (make_pass_build_cgraph_edges): ...new function.
9636 (pass_rebuild_cgraph_edges): Convert from a global struct to a
9637 subclass of gimple_opt_pass along with...
9638 (pass_data_rebuild_cgraph_edges): ...new pass_data instance and...
9639 (make_pass_rebuild_cgraph_edges): ...new function.
9640 (pass_remove_cgraph_callee_edges): Convert from a global struct to a
9641 subclass of gimple_opt_pass along with...
9642 (pass_data_remove_cgraph_callee_edges): ...new pass_data instance
9643 and...
9644 (make_pass_remove_cgraph_callee_edges): ...new function.
9645 * combine-stack-adj.c (pass_stack_adjustments): Convert from a global
9646 struct to a subclass of rtl_opt_pass along with...
9647 (pass_data_stack_adjustments): ...new pass_data instance and...
9648 (make_pass_stack_adjustments): ...new function.
9649 * combine.c (pass_combine): Convert from a global struct to a subclass
9650 of rtl_opt_pass along with...
9651 (pass_data_combine): ...new pass_data instance and...
9652 (make_pass_combine): ...new function.
9653 * compare-elim.c (pass_compare_elim_after_reload): Convert from a
9654 global struct to a subclass of rtl_opt_pass along with...
9655 (pass_data_compare_elim_after_reload): ...new pass_data instance
9656 and...
9657 (make_pass_compare_elim_after_reload): ...new function.
9658 * cprop.c (pass_rtl_cprop): Convert from a global struct to a subclass
9659 of rtl_opt_pass along with...
9660 (pass_data_rtl_cprop): ...new pass_data instance and...
9661 (make_pass_rtl_cprop): ...new function.
9662 * cse.c (pass_cse): Convert from a global struct to a subclass of
9663 rtl_opt_pass along with...
9664 (pass_data_cse): ...new pass_data instance and...
9665 (make_pass_cse): ...new function.
9666 (pass_cse2): Convert from a global struct to a subclass of
9667 rtl_opt_pass along with...
9668 (pass_data_cse2): ...new pass_data instance and...
9669 (make_pass_cse2): ...new function.
9670 (pass_cse_after_global_opts): Convert from a global struct to a
9671 subclass of rtl_opt_pass along with...
9672 (pass_data_cse_after_global_opts): ...new pass_data instance and...
9673 (make_pass_cse_after_global_opts): ...new function.
9674 * dce.c (pass_ud_rtl_dce): Convert from a global struct to a subclass
9675 of rtl_opt_pass along with...
9676 (pass_data_ud_rtl_dce): ...new pass_data instance and...
9677 (make_pass_ud_rtl_dce): ...new function.
9678 (pass_fast_rtl_dce): Convert from a global struct to a subclass of
9679 rtl_opt_pass along with...
9680 (pass_data_fast_rtl_dce): ...new pass_data instance and...
9681 (make_pass_fast_rtl_dce): ...new function.
9682 * df-core.c (pass_df_initialize_opt): Convert from a global struct to
9683 a subclass of rtl_opt_pass along with...
9684 (pass_data_df_initialize_opt): ...new pass_data instance and...
9685 (make_pass_df_initialize_opt): ...new function.
9686 (pass_df_initialize_no_opt): Convert from a global struct to a
9687 subclass of rtl_opt_pass along with...
9688 (pass_data_df_initialize_no_opt): ...new pass_data instance and...
9689 (make_pass_df_initialize_no_opt): ...new function.
9690 (pass_df_finish): Convert from a global struct to a subclass of
9691 rtl_opt_pass along with...
9692 (pass_data_df_finish): ...new pass_data instance and...
9693 (make_pass_df_finish): ...new function.
9694 * dse.c (pass_rtl_dse1): Convert from a global struct to a subclass of
9695 rtl_opt_pass along with...
9696 (pass_data_rtl_dse1): ...new pass_data instance and...
9697 (make_pass_rtl_dse1): ...new function.
9698 (pass_rtl_dse2): Convert from a global struct to a subclass of
9699 rtl_opt_pass along with...
9700 (pass_data_rtl_dse2): ...new pass_data instance and...
9701 (make_pass_rtl_dse2): ...new function.
9702 * dwarf2cfi.c (pass_dwarf2_frame): Convert from a global struct to a
9703 subclass of rtl_opt_pass along with...
9704 (pass_data_dwarf2_frame): ...new pass_data instance and...
9705 (make_pass_dwarf2_frame): ...new function.
9706 * except.c (pass_set_nothrow_function_flags): Convert from a global
9707 struct to a subclass of rtl_opt_pass along with...
9708 (pass_data_set_nothrow_function_flags): ...new pass_data instance
9709 and...
9710 (make_pass_set_nothrow_function_flags): ...new function.
9711 (pass_convert_to_eh_region_ranges): Convert from a global struct to a
9712 subclass of rtl_opt_pass along with...
9713 (pass_data_convert_to_eh_region_ranges): ...new pass_data instance
9714 and...
9715 (make_pass_convert_to_eh_region_ranges): ...new function.
9716 * final.c (pass_compute_alignments): Convert from a global struct to a
9717 subclass of rtl_opt_pass along with...
9718 (pass_data_compute_alignments): ...new pass_data instance and...
9719 (make_pass_compute_alignments): ...new function.
9720 (pass_final): Convert from a global struct to a subclass of
9721 rtl_opt_pass along with...
9722 (pass_data_final): ...new pass_data instance and...
9723 (make_pass_final): ...new function.
9724 (pass_shorten_branches): Convert from a global struct to a subclass of
9725 rtl_opt_pass along with...
9726 (pass_data_shorten_branches): ...new pass_data instance and...
9727 (make_pass_shorten_branches): ...new function.
9728 (pass_clean_state): Convert from a global struct to a subclass of
9729 rtl_opt_pass along with...
9730 (pass_data_clean_state): ...new pass_data instance and...
9731 (make_pass_clean_state): ...new function.
9732 * function.c (pass_instantiate_virtual_regs): Convert from a global
9733 struct to a subclass of rtl_opt_pass along with...
9734 (pass_data_instantiate_virtual_regs): ...new pass_data instance and...
9735 (make_pass_instantiate_virtual_regs): ...new function.
9736 (pass_leaf_regs): Convert from a global struct to a subclass of
9737 rtl_opt_pass along with...
9738 (pass_data_leaf_regs): ...new pass_data instance and...
9739 (make_pass_leaf_regs): ...new function.
9740 (pass_thread_prologue_and_epilogue): Convert from a global struct to a
9741 subclass of rtl_opt_pass along with...
9742 (pass_data_thread_prologue_and_epilogue): ...new pass_data instance
9743 and...
9744 (make_pass_thread_prologue_and_epilogue): ...new function.
9745 (pass_match_asm_constraints): Convert from a global struct to a
9746 subclass of rtl_opt_pass along with...
9747 (pass_data_match_asm_constraints): ...new pass_data instance and...
9748 (make_pass_match_asm_constraints): ...new function.
9749 * fwprop.c (pass_rtl_fwprop): Convert from a global struct to a
9750 subclass of rtl_opt_pass along with...
9751 (pass_data_rtl_fwprop): ...new pass_data instance and...
9752 (make_pass_rtl_fwprop): ...new function.
9753 (pass_rtl_fwprop_addr): Convert from a global struct to a subclass of
9754 rtl_opt_pass along with...
9755 (pass_data_rtl_fwprop_addr): ...new pass_data instance and...
9756 (make_pass_rtl_fwprop_addr): ...new function.
9757 * gcse.c (pass_rtl_pre): Convert from a global struct to a subclass of
9758 rtl_opt_pass along with...
9759 (pass_data_rtl_pre): ...new pass_data instance and...
9760 (make_pass_rtl_pre): ...new function.
9761 (pass_rtl_hoist): Convert from a global struct to a subclass of
9762 rtl_opt_pass along with...
9763 (pass_data_rtl_hoist): ...new pass_data instance and...
9764 (make_pass_rtl_hoist): ...new function.
9765 * gimple-low.c (pass_lower_cf): Convert from a global struct to a
9766 subclass of gimple_opt_pass along with...
9767 (pass_data_lower_cf): ...new pass_data instance and...
9768 (make_pass_lower_cf): ...new function.
9769 * gimple-ssa-strength-reduction.c (pass_strength_reduction): Convert
9770 from a global struct to a subclass of gimple_opt_pass along with...
9771 (pass_data_strength_reduction): ...new pass_data instance and...
9772 (make_pass_strength_reduction): ...new function.
9773 * ifcvt.c (pass_rtl_ifcvt): Convert from a global struct to a subclass
9774 of rtl_opt_pass along with...
9775 (pass_data_rtl_ifcvt): ...new pass_data instance and...
9776 (make_pass_rtl_ifcvt): ...new function.
9777 (pass_if_after_combine): Convert from a global struct to a subclass of
9778 rtl_opt_pass along with...
9779 (pass_data_if_after_combine): ...new pass_data instance and...
9780 (make_pass_if_after_combine): ...new function.
9781 (pass_if_after_reload): Convert from a global struct to a subclass of
9782 rtl_opt_pass along with...
9783 (pass_data_if_after_reload): ...new pass_data instance and...
9784 (make_pass_if_after_reload): ...new function.
9785 * init-regs.c (pass_initialize_regs): Convert from a global struct to
9786 a subclass of rtl_opt_pass along with...
9787 (pass_data_initialize_regs): ...new pass_data instance and...
9788 (make_pass_initialize_regs): ...new function.
9789 * ipa-cp.c (pass_ipa_cp): Convert from a global struct to a subclass
9790 of ipa_opt_pass_d along with...
9791 (pass_data_ipa_cp): ...new pass_data instance and...
9792 (make_pass_ipa_cp): ...new function.
9793 * ipa-inline-analysis.c (pass_inline_parameters): Convert from a
9794 global struct to a subclass of gimple_opt_pass along with...
9795 (pass_data_inline_parameters): ...new pass_data instance and...
9796 (make_pass_inline_parameters): ...new function.
9797 * ipa-inline.c (pass_early_inline): Convert from a global struct to a
9798 subclass of gimple_opt_pass along with...
9799 (pass_data_early_inline): ...new pass_data instance and...
9800 (make_pass_early_inline): ...new function.
9801 (pass_ipa_inline): Convert from a global struct to a subclass of
9802 ipa_opt_pass_d along with...
9803 (pass_data_ipa_inline): ...new pass_data instance and...
9804 (make_pass_ipa_inline): ...new function.
9805 * ipa-pure-const.c (pass_local_pure_const): Convert from a global
9806 struct to a subclass of gimple_opt_pass along with...
9807 (pass_data_local_pure_const): ...new pass_data instance and...
9808 (make_pass_local_pure_const): ...new function.
9809 (pass_ipa_pure_const): Convert from a global struct to a subclass of
9810 ipa_opt_pass_d along with...
9811 (pass_data_ipa_pure_const): ...new pass_data instance and...
9812 (make_pass_ipa_pure_const): ...new function.
9813 * ipa-reference.c (pass_ipa_reference): Convert from a global struct
9814 to a subclass of ipa_opt_pass_d along with...
9815 (pass_data_ipa_reference): ...new pass_data instance and...
9816 (make_pass_ipa_reference): ...new function.
9817 * ipa-split.c (pass_split_functions): Convert from a global struct to
9818 a subclass of gimple_opt_pass along with...
9819 (pass_data_split_functions): ...new pass_data instance and...
9820 (make_pass_split_functions): ...new function.
9821 (pass_feedback_split_functions): Convert from a global struct to a
9822 subclass of gimple_opt_pass along with...
9823 (pass_data_feedback_split_functions): ...new pass_data instance and...
9824 (make_pass_feedback_split_functions): ...new function.
9825 * ipa.c (pass_ipa_function_and_variable_visibility): Convert from a
9826 global struct to a subclass of simple_ipa_opt_pass along with...
9827 (pass_data_ipa_function_and_variable_visibility): ...new pass_data
9828 instance and...
9829 (make_pass_ipa_function_and_variable_visibility): ...new function.
9830 (pass_ipa_free_inline_summary): Convert from a global struct to a
9831 subclass of simple_ipa_opt_pass along with...
9832 (pass_data_ipa_free_inline_summary): ...new pass_data instance and...
9833 (make_pass_ipa_free_inline_summary): ...new function.
9834 (pass_ipa_whole_program_visibility): Convert from a global struct to a
9835 subclass of ipa_opt_pass_d along with...
9836 (pass_data_ipa_whole_program_visibility): ...new pass_data instance
9837 and...
9838 (make_pass_ipa_whole_program_visibility): ...new function.
9839 (pass_ipa_profile): Convert from a global struct to a subclass of
9840 ipa_opt_pass_d along with...
9841 (pass_data_ipa_profile): ...new pass_data instance and...
9842 (make_pass_ipa_profile): ...new function.
9843 (pass_ipa_cdtor_merge): Convert from a global struct to a subclass of
9844 ipa_opt_pass_d along with...
9845 (pass_data_ipa_cdtor_merge): ...new pass_data instance and...
9846 (make_pass_ipa_cdtor_merge): ...new function.
9847 * ira.c (pass_ira): Convert from a global struct to a subclass of
9848 rtl_opt_pass along with...
9849 (pass_data_ira): ...new pass_data instance and...
9850 (make_pass_ira): ...new function.
9851 (pass_reload): Convert from a global struct to a subclass of
9852 rtl_opt_pass along with...
9853 (pass_data_reload): ...new pass_data instance and...
9854 (make_pass_reload): ...new function.
9855 * jump.c (pass_cleanup_barriers): Convert from a global struct to a
9856 subclass of rtl_opt_pass along with...
9857 (pass_data_cleanup_barriers): ...new pass_data instance and...
9858 (make_pass_cleanup_barriers): ...new function.
9859 * loop-init.c (pass_loop2): Convert from a global struct to a subclass
9860 of rtl_opt_pass along with...
9861 (pass_data_loop2): ...new pass_data instance and...
9862 (make_pass_loop2): ...new function.
9863 (pass_rtl_loop_init): Convert from a global struct to a subclass of
9864 rtl_opt_pass along with...
9865 (pass_data_rtl_loop_init): ...new pass_data instance and...
9866 (make_pass_rtl_loop_init): ...new function.
9867 (pass_rtl_loop_done): Convert from a global struct to a subclass of
9868 rtl_opt_pass along with...
9869 (pass_data_rtl_loop_done): ...new pass_data instance and...
9870 (make_pass_rtl_loop_done): ...new function.
9871 (pass_rtl_move_loop_invariants): Convert from a global struct to a
9872 subclass of rtl_opt_pass along with...
9873 (pass_data_rtl_move_loop_invariants): ...new pass_data instance and...
9874 (make_pass_rtl_move_loop_invariants): ...new function.
9875 (pass_rtl_unswitch): Convert from a global struct to a subclass of
9876 rtl_opt_pass along with...
9877 (pass_data_rtl_unswitch): ...new pass_data instance and...
9878 (make_pass_rtl_unswitch): ...new function.
9879 (pass_rtl_unroll_and_peel_loops): Convert from a global struct to a
9880 subclass of rtl_opt_pass along with...
9881 (pass_data_rtl_unroll_and_peel_loops): ...new pass_data instance
9882 and...
9883 (make_pass_rtl_unroll_and_peel_loops): ...new function.
9884 (pass_rtl_doloop): Convert from a global struct to a subclass of
9885 rtl_opt_pass along with...
9886 (pass_data_rtl_doloop): ...new pass_data instance and...
9887 (make_pass_rtl_doloop): ...new function.
9888 * lower-subreg.c (pass_lower_subreg): Convert from a global struct to
9889 a subclass of rtl_opt_pass along with...
9890 (pass_data_lower_subreg): ...new pass_data instance and...
9891 (make_pass_lower_subreg): ...new function.
9892 (pass_lower_subreg2): Convert from a global struct to a subclass of
9893 rtl_opt_pass along with...
9894 (pass_data_lower_subreg2): ...new pass_data instance and...
9895 (make_pass_lower_subreg2): ...new function.
9896 * lto-streamer-out.c (pass_ipa_lto_gimple_out): Convert from a global
9897 struct to a subclass of ipa_opt_pass_d along with...
9898 (pass_data_ipa_lto_gimple_out): ...new pass_data instance and...
9899 (make_pass_ipa_lto_gimple_out): ...new function.
9900 (pass_ipa_lto_finish_out): Convert from a global struct to a subclass
9901 of ipa_opt_pass_d along with...
9902 (pass_data_ipa_lto_finish_out): ...new pass_data instance and...
9903 (make_pass_ipa_lto_finish_out): ...new function.
9904 * mode-switching.c (pass_mode_switching): Convert from a global struct
9905 to a subclass of rtl_opt_pass along with...
9906 (pass_data_mode_switching): ...new pass_data instance and...
9907 (make_pass_mode_switching): ...new function.
9908 * modulo-sched.c (pass_sms): Convert from a global struct to a
9909 subclass of rtl_opt_pass along with...
9910 (pass_data_sms): ...new pass_data instance and...
9911 (make_pass_sms): ...new function.
9912 * omp-low.c (pass_expand_omp): Convert from a global struct to a
9913 subclass of gimple_opt_pass along with...
9914 (pass_data_expand_omp): ...new pass_data instance and...
9915 (make_pass_expand_omp): ...new function.
9916 (pass_lower_omp): Convert from a global struct to a subclass of
9917 gimple_opt_pass along with...
9918 (pass_data_lower_omp): ...new pass_data instance and...
9919 (make_pass_lower_omp): ...new function.
9920 (pass_diagnose_omp_blocks): Convert from a global struct to a subclass
9921 of gimple_opt_pass along with...
9922 (pass_data_diagnose_omp_blocks): ...new pass_data instance and...
9923 (make_pass_diagnose_omp_blocks): ...new function.
9924 * passes.c (pass_early_local_passes): Convert from a global struct to
9925 a subclass of simple_ipa_opt_pass along with...
9926 (pass_data_early_local_passes): ...new pass_data instance and...
9927 (make_pass_early_local_passes): ...new function.
9928 (pass_all_early_optimizations): Convert from a global struct to a
9929 subclass of gimple_opt_pass along with...
9930 (pass_data_all_early_optimizations): ...new pass_data instance and...
9931 (make_pass_all_early_optimizations): ...new function.
9932 (pass_all_optimizations): Convert from a global struct to a subclass
9933 of gimple_opt_pass along with...
9934 (pass_data_all_optimizations): ...new pass_data instance and...
9935 (make_pass_all_optimizations): ...new function.
9936 (pass_all_optimizations_g): Convert from a global struct to a subclass
9937 of gimple_opt_pass along with...
9938 (pass_data_all_optimizations_g): ...new pass_data instance and...
9939 (make_pass_all_optimizations_g): ...new function.
9940 (pass_rest_of_compilation): Convert from a global struct to a subclass
9941 of rtl_opt_pass along with...
9942 (pass_data_rest_of_compilation): ...new pass_data instance and...
9943 (make_pass_rest_of_compilation): ...new function.
9944 (pass_postreload): Convert from a global struct to a subclass of
9945 rtl_opt_pass along with...
9946 (pass_data_postreload): ...new pass_data instance and...
9947 (make_pass_postreload): ...new function.
9948 * postreload-gcse.c (pass_gcse2): Convert from a global struct to a
9949 subclass of rtl_opt_pass along with...
9950 (pass_data_gcse2): ...new pass_data instance and...
9951 (make_pass_gcse2): ...new function.
9952 * postreload.c (pass_postreload_cse): Convert from a global struct to
9953 a subclass of rtl_opt_pass along with...
9954 (pass_data_postreload_cse): ...new pass_data instance and...
9955 (make_pass_postreload_cse): ...new function.
9956 * predict.c (pass_profile): Convert from a global struct to a subclass
9957 of gimple_opt_pass along with...
9958 (pass_data_profile): ...new pass_data instance and...
9959 (make_pass_profile): ...new function.
9960 (pass_strip_predict_hints): Convert from a global struct to a subclass
9961 of gimple_opt_pass along with...
9962 (pass_data_strip_predict_hints): ...new pass_data instance and...
9963 (make_pass_strip_predict_hints): ...new function.
9964 * recog.c (pass_peephole2): Convert from a global struct to a subclass
9965 of rtl_opt_pass along with...
9966 (pass_data_peephole2): ...new pass_data instance and...
9967 (make_pass_peephole2): ...new function.
9968 (pass_split_all_insns): Convert from a global struct to a subclass of
9969 rtl_opt_pass along with...
9970 (pass_data_split_all_insns): ...new pass_data instance and...
9971 (make_pass_split_all_insns): ...new function.
9972 (pass_split_after_reload): Convert from a global struct to a subclass
9973 of rtl_opt_pass along with...
9974 (pass_data_split_after_reload): ...new pass_data instance and...
9975 (make_pass_split_after_reload): ...new function.
9976 (pass_split_before_regstack): Convert from a global struct to a
9977 subclass of rtl_opt_pass along with...
9978 (pass_data_split_before_regstack): ...new pass_data instance and...
9979 (make_pass_split_before_regstack): ...new function.
9980 (pass_split_before_sched2): Convert from a global struct to a subclass
9981 of rtl_opt_pass along with...
9982 (pass_data_split_before_sched2): ...new pass_data instance and...
9983 (make_pass_split_before_sched2): ...new function.
9984 (pass_split_for_shorten_branches): Convert from a global struct to a
9985 subclass of rtl_opt_pass along with...
9986 (pass_data_split_for_shorten_branches): ...new pass_data instance
9987 and...
9988 (make_pass_split_for_shorten_branches): ...new function.
9989 * ree.c (pass_ree): Convert from a global struct to a subclass of
9990 rtl_opt_pass along with...
9991 (pass_data_ree): ...new pass_data instance and...
9992 (make_pass_ree): ...new function.
9993 * reg-stack.c (pass_stack_regs): Convert from a global struct to a
9994 subclass of rtl_opt_pass along with...
9995 (pass_data_stack_regs): ...new pass_data instance and...
9996 (make_pass_stack_regs): ...new function.
9997 (pass_stack_regs_run): Convert from a global struct to a subclass of
9998 rtl_opt_pass along with...
9999 (pass_data_stack_regs_run): ...new pass_data instance and...
10000 (make_pass_stack_regs_run): ...new function.
10001 * regcprop.c (pass_cprop_hardreg): Convert from a global struct to a
10002 subclass of rtl_opt_pass along with...
10003 (pass_data_cprop_hardreg): ...new pass_data instance and...
10004 (make_pass_cprop_hardreg): ...new function.
10005 * reginfo.c (pass_reginfo_init): Convert from a global struct to a
10006 subclass of rtl_opt_pass along with...
10007 (pass_data_reginfo_init): ...new pass_data instance and...
10008 (make_pass_reginfo_init): ...new function.
10009 * regmove.c (pass_regmove): Convert from a global struct to a subclass
10010 of rtl_opt_pass along with...
10011 (pass_data_regmove): ...new pass_data instance and...
10012 (make_pass_regmove): ...new function.
10013 * regrename.c (pass_regrename): Convert from a global struct to a
10014 subclass of rtl_opt_pass along with...
10015 (pass_data_regrename): ...new pass_data instance and...
10016 (make_pass_regrename): ...new function.
10017 * reorg.c (pass_delay_slots): Convert from a global struct to a
10018 subclass of rtl_opt_pass along with...
10019 (pass_data_delay_slots): ...new pass_data instance and...
10020 (make_pass_delay_slots): ...new function.
10021 (pass_machine_reorg): Convert from a global struct to a subclass of
10022 rtl_opt_pass along with...
10023 (pass_data_machine_reorg): ...new pass_data instance and...
10024 (make_pass_machine_reorg): ...new function.
10025 * sched-rgn.c (pass_sched): Convert from a global struct to a subclass
10026 of rtl_opt_pass along with...
10027 (pass_data_sched): ...new pass_data instance and...
10028 (make_pass_sched): ...new function.
10029 (pass_sched2): Convert from a global struct to a subclass of
10030 rtl_opt_pass along with...
10031 (pass_data_sched2): ...new pass_data instance and...
10032 (make_pass_sched2): ...new function.
10033 * stack-ptr-mod.c (pass_stack_ptr_mod): Convert from a global struct
10034 to a subclass of rtl_opt_pass along with...
10035 (pass_data_stack_ptr_mod): ...new pass_data instance and...
10036 (make_pass_stack_ptr_mod): ...new function.
10037 * store-motion.c (pass_rtl_store_motion): Convert from a global struct
10038 to a subclass of rtl_opt_pass along with...
10039 (pass_data_rtl_store_motion): ...new pass_data instance and...
10040 (make_pass_rtl_store_motion): ...new function.
10041 * tracer.c (pass_tracer): Convert from a global struct to a subclass
10042 of gimple_opt_pass along with...
10043 (pass_data_tracer): ...new pass_data instance and...
10044 (make_pass_tracer): ...new function.
10045 * trans-mem.c (pass_diagnose_tm_blocks): Convert from a global struct
10046 to a subclass of gimple_opt_pass along with...
10047 (pass_data_diagnose_tm_blocks): ...new pass_data instance and...
10048 (make_pass_diagnose_tm_blocks): ...new function.
10049 (pass_lower_tm): Convert from a global struct to a subclass of
10050 gimple_opt_pass along with...
10051 (pass_data_lower_tm): ...new pass_data instance and...
10052 (make_pass_lower_tm): ...new function.
10053 (pass_tm_init): Convert from a global struct to a subclass of
10054 gimple_opt_pass along with...
10055 (pass_data_tm_init): ...new pass_data instance and...
10056 (make_pass_tm_init): ...new function.
10057 (pass_tm_mark): Convert from a global struct to a subclass of
10058 gimple_opt_pass along with...
10059 (pass_data_tm_mark): ...new pass_data instance and...
10060 (make_pass_tm_mark): ...new function.
10061 (pass_tm_edges): Convert from a global struct to a subclass of
10062 gimple_opt_pass along with...
10063 (pass_data_tm_edges): ...new pass_data instance and...
10064 (make_pass_tm_edges): ...new function.
10065 (pass_tm_memopt): Convert from a global struct to a subclass of
10066 gimple_opt_pass along with...
10067 (pass_data_tm_memopt): ...new pass_data instance and...
10068 (make_pass_tm_memopt): ...new function.
10069 (pass_ipa_tm): Convert from a global struct to a subclass of
10070 simple_ipa_opt_pass along with...
10071 (pass_data_ipa_tm): ...new pass_data instance and...
10072 (make_pass_ipa_tm): ...new function.
10073 * tree-call-cdce.c (pass_call_cdce): Convert from a global struct to a
10074 subclass of gimple_opt_pass along with...
10075 (pass_data_call_cdce): ...new pass_data instance and...
10076 (make_pass_call_cdce): ...new function.
10077 * tree-cfg.c (pass_build_cfg): Convert from a global struct to a
10078 subclass of gimple_opt_pass along with...
10079 (pass_data_build_cfg): ...new pass_data instance and...
10080 (make_pass_build_cfg): ...new function.
10081 (pass_split_crit_edges): Convert from a global struct to a subclass of
10082 gimple_opt_pass along with...
10083 (pass_data_split_crit_edges): ...new pass_data instance and...
10084 (make_pass_split_crit_edges): ...new function.
10085 (pass_warn_function_return): Convert from a global struct to a
10086 subclass of gimple_opt_pass along with...
10087 (pass_data_warn_function_return): ...new pass_data instance and...
10088 (make_pass_warn_function_return): ...new function.
10089 (pass_warn_function_noreturn): Convert from a global struct to a
10090 subclass of gimple_opt_pass along with...
10091 (pass_data_warn_function_noreturn): ...new pass_data instance and...
10092 (make_pass_warn_function_noreturn): ...new function.
10093 (pass_warn_unused_result): Convert from a global struct to a subclass
10094 of gimple_opt_pass along with...
10095 (pass_data_warn_unused_result): ...new pass_data instance and...
10096 (make_pass_warn_unused_result): ...new function.
10097 * tree-cfgcleanup.c (pass_merge_phi): Convert from a global struct to
10098 a subclass of gimple_opt_pass along with...
10099 (pass_data_merge_phi): ...new pass_data instance and...
10100 (make_pass_merge_phi): ...new function.
10101 * tree-complex.c (pass_lower_complex): Convert from a global struct to
10102 a subclass of gimple_opt_pass along with...
10103 (pass_data_lower_complex): ...new pass_data instance and...
10104 (make_pass_lower_complex): ...new function.
10105 (pass_lower_complex_O0): Convert from a global struct to a subclass of
10106 gimple_opt_pass along with...
10107 (pass_data_lower_complex_O0): ...new pass_data instance and...
10108 (make_pass_lower_complex_O0): ...new function.
10109 * tree-eh.c (pass_lower_eh): Convert from a global struct to a
10110 subclass of gimple_opt_pass along with...
10111 (pass_data_lower_eh): ...new pass_data instance and...
10112 (make_pass_lower_eh): ...new function.
10113 (pass_refactor_eh): Convert from a global struct to a subclass of
10114 gimple_opt_pass along with...
10115 (pass_data_refactor_eh): ...new pass_data instance and...
10116 (make_pass_refactor_eh): ...new function.
10117 (pass_lower_resx): Convert from a global struct to a subclass of
10118 gimple_opt_pass along with...
10119 (pass_data_lower_resx): ...new pass_data instance and...
10120 (make_pass_lower_resx): ...new function.
10121 (pass_lower_eh_dispatch): Convert from a global struct to a subclass
10122 of gimple_opt_pass along with...
10123 (pass_data_lower_eh_dispatch): ...new pass_data instance and...
10124 (make_pass_lower_eh_dispatch): ...new function.
10125 (pass_cleanup_eh): Convert from a global struct to a subclass of
10126 gimple_opt_pass along with...
10127 (pass_data_cleanup_eh): ...new pass_data instance and...
10128 (make_pass_cleanup_eh): ...new function.
10129 * tree-emutls.c (pass_ipa_lower_emutls): Convert from a global struct
10130 to a subclass of simple_ipa_opt_pass along with...
10131 (pass_data_ipa_lower_emutls): ...new pass_data instance and...
10132 (make_pass_ipa_lower_emutls): ...new function.
10133 * tree-if-conv.c (pass_if_conversion): Convert from a global struct to
10134 a subclass of gimple_opt_pass along with...
10135 (pass_data_if_conversion): ...new pass_data instance and...
10136 (make_pass_if_conversion): ...new function.
10137 * tree-into-ssa.c (pass_build_ssa): Convert from a global struct to a
10138 subclass of gimple_opt_pass along with...
10139 (pass_data_build_ssa): ...new pass_data instance and...
10140 (make_pass_build_ssa): ...new function.
10141 * tree-loop-distribution.c (pass_loop_distribution): Convert from a
10142 global struct to a subclass of gimple_opt_pass along with...
10143 (pass_data_loop_distribution): ...new pass_data instance and...
10144 (make_pass_loop_distribution): ...new function.
10145 * tree-mudflap.c (pass_mudflap_1): Convert from a global struct to a
10146 subclass of gimple_opt_pass along with...
10147 (pass_data_mudflap_1): ...new pass_data instance and...
10148 (make_pass_mudflap_1): ...new function.
10149 (pass_mudflap_2): Convert from a global struct to a subclass of
10150 gimple_opt_pass along with...
10151 (pass_data_mudflap_2): ...new pass_data instance and...
10152 (make_pass_mudflap_2): ...new function.
10153 * tree-nomudflap.c (pass_mudflap_1): Convert from a global struct to a
10154 subclass of gimple_opt_pass along with...
10155 (pass_data_mudflap_1): ...new pass_data instance and...
10156 (make_pass_mudflap_1): ...new function.
10157 (pass_mudflap_2): Convert from a global struct to a subclass of
10158 gimple_opt_pass along with...
10159 (pass_data_mudflap_2): ...new pass_data instance and...
10160 (make_pass_mudflap_2): ...new function.
10161 * tree-nrv.c (pass_nrv): Convert from a global struct to a subclass of
10162 gimple_opt_pass along with...
10163 (pass_data_nrv): ...new pass_data instance and...
10164 (make_pass_nrv): ...new function.
10165 (pass_return_slot): Convert from a global struct to a subclass of
10166 gimple_opt_pass along with...
10167 (pass_data_return_slot): ...new pass_data instance and...
10168 (make_pass_return_slot): ...new function.
10169 * tree-object-size.c (pass_object_sizes): Convert from a global struct
10170 to a subclass of gimple_opt_pass along with...
10171 (pass_data_object_sizes): ...new pass_data instance and...
10172 (make_pass_object_sizes): ...new function.
10173 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Convert from a
10174 global struct to a subclass of gimple_opt_pass along with...
10175 (pass_data_cleanup_cfg_post_optimizing): ...new pass_data instance
10176 and...
10177 (make_pass_cleanup_cfg_post_optimizing): ...new function.
10178 (pass_fixup_cfg): Convert from a global struct to a subclass of
10179 gimple_opt_pass along with...
10180 (pass_data_fixup_cfg): ...new pass_data instance and...
10181 (make_pass_fixup_cfg): ...new function.
10182 * tree-pass.h (pass_mudflap_1): Replace declaration with that of...
10183 (make_pass_mudflap_1): ...new function.
10184 (pass_mudflap_2): Replace declaration with that of...
10185 (make_pass_mudflap_2): ...new function.
10186 (pass_asan): Replace declaration with that of...
10187 (make_pass_asan): ...new function.
10188 (pass_asan_O0): Replace declaration with that of...
10189 (make_pass_asan_O0): ...new function.
10190 (pass_tsan): Replace declaration with that of...
10191 (make_pass_tsan): ...new function.
10192 (pass_tsan_O0): Replace declaration with that of...
10193 (make_pass_tsan_O0): ...new function.
10194 (pass_lower_cf): Replace declaration with that of...
10195 (make_pass_lower_cf): ...new function.
10196 (pass_refactor_eh): Replace declaration with that of...
10197 (make_pass_refactor_eh): ...new function.
10198 (pass_lower_eh): Replace declaration with that of...
10199 (make_pass_lower_eh): ...new function.
10200 (pass_lower_eh_dispatch): Replace declaration with that of...
10201 (make_pass_lower_eh_dispatch): ...new function.
10202 (pass_lower_resx): Replace declaration with that of...
10203 (make_pass_lower_resx): ...new function.
10204 (pass_build_cfg): Replace declaration with that of...
10205 (make_pass_build_cfg): ...new function.
10206 (pass_early_tree_profile): Replace declaration with that of...
10207 (make_pass_early_tree_profile): ...new function.
10208 (pass_cleanup_eh): Replace declaration with that of...
10209 (make_pass_cleanup_eh): ...new function.
10210 (pass_sra): Replace declaration with that of...
10211 (make_pass_sra): ...new function.
10212 (pass_sra_early): Replace declaration with that of...
10213 (make_pass_sra_early): ...new function.
10214 (pass_early_ipa_sra): Replace declaration with that of...
10215 (make_pass_early_ipa_sra): ...new function.
10216 (pass_tail_recursion): Replace declaration with that of...
10217 (make_pass_tail_recursion): ...new function.
10218 (pass_tail_calls): Replace declaration with that of...
10219 (make_pass_tail_calls): ...new function.
10220 (pass_tree_loop): Replace declaration with that of...
10221 (make_pass_tree_loop): ...new function.
10222 (pass_tree_loop_init): Replace declaration with that of...
10223 (make_pass_tree_loop_init): ...new function.
10224 (pass_lim): Replace declaration with that of...
10225 (make_pass_lim): ...new function.
10226 (pass_tree_unswitch): Replace declaration with that of...
10227 (make_pass_tree_unswitch): ...new function.
10228 (pass_predcom): Replace declaration with that of...
10229 (make_pass_predcom): ...new function.
10230 (pass_iv_canon): Replace declaration with that of...
10231 (make_pass_iv_canon): ...new function.
10232 (pass_scev_cprop): Replace declaration with that of...
10233 (make_pass_scev_cprop): ...new function.
10234 (pass_empty_loop): Replace declaration with that of...
10235 (make_pass_empty_loop): ...new function.
10236 (pass_record_bounds): Replace declaration with that of...
10237 (make_pass_record_bounds): ...new function.
10238 (pass_graphite): Replace declaration with that of...
10239 (make_pass_graphite): ...new function.
10240 (pass_graphite_transforms): Replace declaration with that of...
10241 (make_pass_graphite_transforms): ...new function.
10242 (pass_if_conversion): Replace declaration with that of...
10243 (make_pass_if_conversion): ...new function.
10244 (pass_loop_distribution): Replace declaration with that of...
10245 (make_pass_loop_distribution): ...new function.
10246 (pass_vectorize): Replace declaration with that of...
10247 (make_pass_vectorize): ...new function.
10248 (pass_slp_vectorize): Replace declaration with that of...
10249 (make_pass_slp_vectorize): ...new function.
10250 (pass_complete_unroll): Replace declaration with that of...
10251 (make_pass_complete_unroll): ...new function.
10252 (pass_complete_unrolli): Replace declaration with that of...
10253 (make_pass_complete_unrolli): ...new function.
10254 (pass_parallelize_loops): Replace declaration with that of...
10255 (make_pass_parallelize_loops): ...new function.
10256 (pass_loop_prefetch): Replace declaration with that of...
10257 (make_pass_loop_prefetch): ...new function.
10258 (pass_iv_optimize): Replace declaration with that of...
10259 (make_pass_iv_optimize): ...new function.
10260 (pass_tree_loop_done): Replace declaration with that of...
10261 (make_pass_tree_loop_done): ...new function.
10262 (pass_ch): Replace declaration with that of...
10263 (make_pass_ch): ...new function.
10264 (pass_ccp): Replace declaration with that of...
10265 (make_pass_ccp): ...new function.
10266 (pass_phi_only_cprop): Replace declaration with that of...
10267 (make_pass_phi_only_cprop): ...new function.
10268 (pass_build_ssa): Replace declaration with that of...
10269 (make_pass_build_ssa): ...new function.
10270 (pass_build_alias): Replace declaration with that of...
10271 (make_pass_build_alias): ...new function.
10272 (pass_build_ealias): Replace declaration with that of...
10273 (make_pass_build_ealias): ...new function.
10274 (pass_dominator): Replace declaration with that of...
10275 (make_pass_dominator): ...new function.
10276 (pass_dce): Replace declaration with that of...
10277 (make_pass_dce): ...new function.
10278 (pass_dce_loop): Replace declaration with that of...
10279 (make_pass_dce_loop): ...new function.
10280 (pass_cd_dce): Replace declaration with that of...
10281 (make_pass_cd_dce): ...new function.
10282 (pass_call_cdce): Replace declaration with that of...
10283 (make_pass_call_cdce): ...new function.
10284 (pass_merge_phi): Replace declaration with that of...
10285 (make_pass_merge_phi): ...new function.
10286 (pass_split_crit_edges): Replace declaration with that of...
10287 (make_pass_split_crit_edges): ...new function.
10288 (pass_pre): Replace declaration with that of...
10289 (make_pass_pre): ...new function.
10290 (pass_profile): Replace declaration with that of...
10291 (make_pass_profile): ...new function.
10292 (pass_strip_predict_hints): Replace declaration with that of...
10293 (make_pass_strip_predict_hints): ...new function.
10294 (pass_lower_complex_O0): Replace declaration with that of...
10295 (make_pass_lower_complex_O0): ...new function.
10296 (pass_lower_complex): Replace declaration with that of...
10297 (make_pass_lower_complex): ...new function.
10298 (pass_lower_vector): Replace declaration with that of...
10299 (make_pass_lower_vector): ...new function.
10300 (pass_lower_vector_ssa): Replace declaration with that of...
10301 (make_pass_lower_vector_ssa): ...new function.
10302 (pass_lower_omp): Replace declaration with that of...
10303 (make_pass_lower_omp): ...new function.
10304 (pass_diagnose_omp_blocks): Replace declaration with that of...
10305 (make_pass_diagnose_omp_blocks): ...new function.
10306 (pass_expand_omp): Replace declaration with that of...
10307 (make_pass_expand_omp): ...new function.
10308 (pass_expand_omp_ssa): Replace declaration with that of...
10309 (make_pass_expand_omp_ssa): ...new function.
10310 (pass_object_sizes): Replace declaration with that of...
10311 (make_pass_object_sizes): ...new function.
10312 (pass_strlen): Replace declaration with that of...
10313 (make_pass_strlen): ...new function.
10314 (pass_fold_builtins): Replace declaration with that of...
10315 (make_pass_fold_builtins): ...new function.
10316 (pass_stdarg): Replace declaration with that of...
10317 (make_pass_stdarg): ...new function.
10318 (pass_early_warn_uninitialized): Replace declaration with that of...
10319 (make_pass_early_warn_uninitialized): ...new function.
10320 (pass_late_warn_uninitialized): Replace declaration with that of...
10321 (make_pass_late_warn_uninitialized): ...new function.
10322 (pass_cse_reciprocals): Replace declaration with that of...
10323 (make_pass_cse_reciprocals): ...new function.
10324 (pass_cse_sincos): Replace declaration with that of...
10325 (make_pass_cse_sincos): ...new function.
10326 (pass_optimize_bswap): Replace declaration with that of...
10327 (make_pass_optimize_bswap): ...new function.
10328 (pass_optimize_widening_mul): Replace declaration with that of...
10329 (make_pass_optimize_widening_mul): ...new function.
10330 (pass_warn_function_return): Replace declaration with that of...
10331 (make_pass_warn_function_return): ...new function.
10332 (pass_warn_function_noreturn): Replace declaration with that of...
10333 (make_pass_warn_function_noreturn): ...new function.
10334 (pass_cselim): Replace declaration with that of...
10335 (make_pass_cselim): ...new function.
10336 (pass_phiopt): Replace declaration with that of...
10337 (make_pass_phiopt): ...new function.
10338 (pass_forwprop): Replace declaration with that of...
10339 (make_pass_forwprop): ...new function.
10340 (pass_phiprop): Replace declaration with that of...
10341 (make_pass_phiprop): ...new function.
10342 (pass_tree_ifcombine): Replace declaration with that of...
10343 (make_pass_tree_ifcombine): ...new function.
10344 (pass_dse): Replace declaration with that of...
10345 (make_pass_dse): ...new function.
10346 (pass_nrv): Replace declaration with that of...
10347 (make_pass_nrv): ...new function.
10348 (pass_rename_ssa_copies): Replace declaration with that of...
10349 (make_pass_rename_ssa_copies): ...new function.
10350 (pass_sink_code): Replace declaration with that of...
10351 (make_pass_sink_code): ...new function.
10352 (pass_fre): Replace declaration with that of...
10353 (make_pass_fre): ...new function.
10354 (pass_check_data_deps): Replace declaration with that of...
10355 (make_pass_check_data_deps): ...new function.
10356 (pass_copy_prop): Replace declaration with that of...
10357 (make_pass_copy_prop): ...new function.
10358 (pass_vrp): Replace declaration with that of...
10359 (make_pass_vrp): ...new function.
10360 (pass_uncprop): Replace declaration with that of...
10361 (make_pass_uncprop): ...new function.
10362 (pass_return_slot): Replace declaration with that of...
10363 (make_pass_return_slot): ...new function.
10364 (pass_reassoc): Replace declaration with that of...
10365 (make_pass_reassoc): ...new function.
10366 (pass_rebuild_cgraph_edges): Replace declaration with that of...
10367 (make_pass_rebuild_cgraph_edges): ...new function.
10368 (pass_remove_cgraph_callee_edges): Replace declaration with that of...
10369 (make_pass_remove_cgraph_callee_edges): ...new function.
10370 (pass_build_cgraph_edges): Replace declaration with that of...
10371 (make_pass_build_cgraph_edges): ...new function.
10372 (pass_local_pure_const): Replace declaration with that of...
10373 (make_pass_local_pure_const): ...new function.
10374 (pass_tracer): Replace declaration with that of...
10375 (make_pass_tracer): ...new function.
10376 (pass_warn_unused_result): Replace declaration with that of...
10377 (make_pass_warn_unused_result): ...new function.
10378 (pass_diagnose_tm_blocks): Replace declaration with that of...
10379 (make_pass_diagnose_tm_blocks): ...new function.
10380 (pass_lower_tm): Replace declaration with that of...
10381 (make_pass_lower_tm): ...new function.
10382 (pass_tm_init): Replace declaration with that of...
10383 (make_pass_tm_init): ...new function.
10384 (pass_tm_mark): Replace declaration with that of...
10385 (make_pass_tm_mark): ...new function.
10386 (pass_tm_memopt): Replace declaration with that of...
10387 (make_pass_tm_memopt): ...new function.
10388 (pass_tm_edges): Replace declaration with that of...
10389 (make_pass_tm_edges): ...new function.
10390 (pass_split_functions): Replace declaration with that of...
10391 (make_pass_split_functions): ...new function.
10392 (pass_feedback_split_functions): Replace declaration with that of...
10393 (make_pass_feedback_split_functions): ...new function.
10394 (pass_strength_reduction): Replace declaration with that of...
10395 (make_pass_strength_reduction): ...new function.
10396 (pass_ipa_lower_emutls): Replace declaration with that of...
10397 (make_pass_ipa_lower_emutls): ...new function.
10398 (pass_ipa_function_and_variable_visibility): Replace declaration with
10399 that of...
10400 (make_pass_ipa_function_and_variable_visibility): ...new function.
10401 (pass_ipa_tree_profile): Replace declaration with that of...
10402 (make_pass_ipa_tree_profile): ...new function.
10403 (pass_early_local_passes): Replace declaration with that of...
10404 (make_pass_early_local_passes): ...new function.
10405 (pass_ipa_whole_program_visibility): Replace declaration with that
10406 of...
10407 (make_pass_ipa_whole_program_visibility): ...new function.
10408 (pass_ipa_lto_gimple_out): Replace declaration with that of...
10409 (make_pass_ipa_lto_gimple_out): ...new function.
10410 (pass_ipa_increase_alignment): Replace declaration with that of...
10411 (make_pass_ipa_increase_alignment): ...new function.
10412 (pass_ipa_inline): Replace declaration with that of...
10413 (make_pass_ipa_inline): ...new function.
10414 (pass_ipa_free_lang_data): Replace declaration with that of...
10415 (make_pass_ipa_free_lang_data): ...new function.
10416 (pass_ipa_free_inline_summary): Replace declaration with that of...
10417 (make_pass_ipa_free_inline_summary): ...new function.
10418 (pass_ipa_cp): Replace declaration with that of...
10419 (make_pass_ipa_cp): ...new function.
10420 (pass_ipa_reference): Replace declaration with that of...
10421 (make_pass_ipa_reference): ...new function.
10422 (pass_ipa_pure_const): Replace declaration with that of...
10423 (make_pass_ipa_pure_const): ...new function.
10424 (pass_ipa_pta): Replace declaration with that of...
10425 (make_pass_ipa_pta): ...new function.
10426 (pass_ipa_lto_finish_out): Replace declaration with that of...
10427 (make_pass_ipa_lto_finish_out): ...new function.
10428 (pass_ipa_tm): Replace declaration with that of...
10429 (make_pass_ipa_tm): ...new function.
10430 (pass_ipa_profile): Replace declaration with that of...
10431 (make_pass_ipa_profile): ...new function.
10432 (pass_ipa_cdtor_merge): Replace declaration with that of...
10433 (make_pass_ipa_cdtor_merge): ...new function.
10434 (pass_cleanup_cfg_post_optimizing): Replace declaration with that
10435 of...
10436 (make_pass_cleanup_cfg_post_optimizing): ...new function.
10437 (pass_init_datastructures): Replace declaration with that of...
10438 (make_pass_init_datastructures): ...new function.
10439 (pass_fixup_cfg): Replace declaration with that of...
10440 (make_pass_fixup_cfg): ...new function.
10441 (pass_expand): Replace declaration with that of...
10442 (make_pass_expand): ...new function.
10443 (pass_instantiate_virtual_regs): Replace declaration with that of...
10444 (make_pass_instantiate_virtual_regs): ...new function.
10445 (pass_rtl_fwprop): Replace declaration with that of...
10446 (make_pass_rtl_fwprop): ...new function.
10447 (pass_rtl_fwprop_addr): Replace declaration with that of...
10448 (make_pass_rtl_fwprop_addr): ...new function.
10449 (pass_jump): Replace declaration with that of...
10450 (make_pass_jump): ...new function.
10451 (pass_jump2): Replace declaration with that of...
10452 (make_pass_jump2): ...new function.
10453 (pass_lower_subreg): Replace declaration with that of...
10454 (make_pass_lower_subreg): ...new function.
10455 (pass_cse): Replace declaration with that of...
10456 (make_pass_cse): ...new function.
10457 (pass_fast_rtl_dce): Replace declaration with that of...
10458 (make_pass_fast_rtl_dce): ...new function.
10459 (pass_ud_rtl_dce): Replace declaration with that of...
10460 (make_pass_ud_rtl_dce): ...new function.
10461 (pass_rtl_dce): Replace declaration with that of...
10462 (make_pass_rtl_dce): ...new function.
10463 (pass_rtl_dse1): Replace declaration with that of...
10464 (make_pass_rtl_dse1): ...new function.
10465 (pass_rtl_dse2): Replace declaration with that of...
10466 (make_pass_rtl_dse2): ...new function.
10467 (pass_rtl_dse3): Replace declaration with that of...
10468 (make_pass_rtl_dse3): ...new function.
10469 (pass_rtl_cprop): Replace declaration with that of...
10470 (make_pass_rtl_cprop): ...new function.
10471 (pass_rtl_pre): Replace declaration with that of...
10472 (make_pass_rtl_pre): ...new function.
10473 (pass_rtl_hoist): Replace declaration with that of...
10474 (make_pass_rtl_hoist): ...new function.
10475 (pass_rtl_store_motion): Replace declaration with that of...
10476 (make_pass_rtl_store_motion): ...new function.
10477 (pass_cse_after_global_opts): Replace declaration with that of...
10478 (make_pass_cse_after_global_opts): ...new function.
10479 (pass_rtl_ifcvt): Replace declaration with that of...
10480 (make_pass_rtl_ifcvt): ...new function.
10481 (pass_into_cfg_layout_mode): Replace declaration with that of...
10482 (make_pass_into_cfg_layout_mode): ...new function.
10483 (pass_outof_cfg_layout_mode): Replace declaration with that of...
10484 (make_pass_outof_cfg_layout_mode): ...new function.
10485 (pass_loop2): Replace declaration with that of...
10486 (make_pass_loop2): ...new function.
10487 (pass_rtl_loop_init): Replace declaration with that of...
10488 (make_pass_rtl_loop_init): ...new function.
10489 (pass_rtl_move_loop_invariants): Replace declaration with that of...
10490 (make_pass_rtl_move_loop_invariants): ...new function.
10491 (pass_rtl_unswitch): Replace declaration with that of...
10492 (make_pass_rtl_unswitch): ...new function.
10493 (pass_rtl_unroll_and_peel_loops): Replace declaration with that of...
10494 (make_pass_rtl_unroll_and_peel_loops): ...new function.
10495 (pass_rtl_doloop): Replace declaration with that of...
10496 (make_pass_rtl_doloop): ...new function.
10497 (pass_rtl_loop_done): Replace declaration with that of...
10498 (make_pass_rtl_loop_done): ...new function.
10499 (pass_web): Replace declaration with that of...
10500 (make_pass_web): ...new function.
10501 (pass_cse2): Replace declaration with that of...
10502 (make_pass_cse2): ...new function.
10503 (pass_df_initialize_opt): Replace declaration with that of...
10504 (make_pass_df_initialize_opt): ...new function.
10505 (pass_df_initialize_no_opt): Replace declaration with that of...
10506 (make_pass_df_initialize_no_opt): ...new function.
10507 (pass_reginfo_init): Replace declaration with that of...
10508 (make_pass_reginfo_init): ...new function.
10509 (pass_inc_dec): Replace declaration with that of...
10510 (make_pass_inc_dec): ...new function.
10511 (pass_stack_ptr_mod): Replace declaration with that of...
10512 (make_pass_stack_ptr_mod): ...new function.
10513 (pass_initialize_regs): Replace declaration with that of...
10514 (make_pass_initialize_regs): ...new function.
10515 (pass_combine): Replace declaration with that of...
10516 (make_pass_combine): ...new function.
10517 (pass_if_after_combine): Replace declaration with that of...
10518 (make_pass_if_after_combine): ...new function.
10519 (pass_ree): Replace declaration with that of...
10520 (make_pass_ree): ...new function.
10521 (pass_partition_blocks): Replace declaration with that of...
10522 (make_pass_partition_blocks): ...new function.
10523 (pass_match_asm_constraints): Replace declaration with that of...
10524 (make_pass_match_asm_constraints): ...new function.
10525 (pass_regmove): Replace declaration with that of...
10526 (make_pass_regmove): ...new function.
10527 (pass_split_all_insns): Replace declaration with that of...
10528 (make_pass_split_all_insns): ...new function.
10529 (pass_fast_rtl_byte_dce): Replace declaration with that of...
10530 (make_pass_fast_rtl_byte_dce): ...new function.
10531 (pass_lower_subreg2): Replace declaration with that of...
10532 (make_pass_lower_subreg2): ...new function.
10533 (pass_mode_switching): Replace declaration with that of...
10534 (make_pass_mode_switching): ...new function.
10535 (pass_sms): Replace declaration with that of...
10536 (make_pass_sms): ...new function.
10537 (pass_sched): Replace declaration with that of...
10538 (make_pass_sched): ...new function.
10539 (pass_ira): Replace declaration with that of...
10540 (make_pass_ira): ...new function.
10541 (pass_reload): Replace declaration with that of...
10542 (make_pass_reload): ...new function.
10543 (pass_clean_state): Replace declaration with that of...
10544 (make_pass_clean_state): ...new function.
10545 (pass_branch_prob): Replace declaration with that of...
10546 (make_pass_branch_prob): ...new function.
10547 (pass_value_profile_transformations): Replace declaration with that
10548 of...
10549 (make_pass_value_profile_transformations): ...new function.
10550 (pass_postreload_cse): Replace declaration with that of...
10551 (make_pass_postreload_cse): ...new function.
10552 (pass_gcse2): Replace declaration with that of...
10553 (make_pass_gcse2): ...new function.
10554 (pass_split_after_reload): Replace declaration with that of...
10555 (make_pass_split_after_reload): ...new function.
10556 (pass_branch_target_load_optimize1): Replace declaration with that
10557 of...
10558 (make_pass_branch_target_load_optimize1): ...new function.
10559 (pass_thread_prologue_and_epilogue): Replace declaration with that
10560 of...
10561 (make_pass_thread_prologue_and_epilogue): ...new function.
10562 (pass_stack_adjustments): Replace declaration with that of...
10563 (make_pass_stack_adjustments): ...new function.
10564 (pass_peephole2): Replace declaration with that of...
10565 (make_pass_peephole2): ...new function.
10566 (pass_if_after_reload): Replace declaration with that of...
10567 (make_pass_if_after_reload): ...new function.
10568 (pass_regrename): Replace declaration with that of...
10569 (make_pass_regrename): ...new function.
10570 (pass_cprop_hardreg): Replace declaration with that of...
10571 (make_pass_cprop_hardreg): ...new function.
10572 (pass_reorder_blocks): Replace declaration with that of...
10573 (make_pass_reorder_blocks): ...new function.
10574 (pass_branch_target_load_optimize2): Replace declaration with that
10575 of...
10576 (make_pass_branch_target_load_optimize2): ...new function.
10577 (pass_leaf_regs): Replace declaration with that of...
10578 (make_pass_leaf_regs): ...new function.
10579 (pass_split_before_sched2): Replace declaration with that of...
10580 (make_pass_split_before_sched2): ...new function.
10581 (pass_compare_elim_after_reload): Replace declaration with that of...
10582 (make_pass_compare_elim_after_reload): ...new function.
10583 (pass_sched2): Replace declaration with that of...
10584 (make_pass_sched2): ...new function.
10585 (pass_stack_regs): Replace declaration with that of...
10586 (make_pass_stack_regs): ...new function.
10587 (pass_stack_regs_run): Replace declaration with that of...
10588 (make_pass_stack_regs_run): ...new function.
10589 (pass_df_finish): Replace declaration with that of...
10590 (make_pass_df_finish): ...new function.
10591 (pass_compute_alignments): Replace declaration with that of...
10592 (make_pass_compute_alignments): ...new function.
10593 (pass_duplicate_computed_gotos): Replace declaration with that of...
10594 (make_pass_duplicate_computed_gotos): ...new function.
10595 (pass_variable_tracking): Replace declaration with that of...
10596 (make_pass_variable_tracking): ...new function.
10597 (pass_free_cfg): Replace declaration with that of...
10598 (make_pass_free_cfg): ...new function.
10599 (pass_machine_reorg): Replace declaration with that of...
10600 (make_pass_machine_reorg): ...new function.
10601 (pass_cleanup_barriers): Replace declaration with that of...
10602 (make_pass_cleanup_barriers): ...new function.
10603 (pass_delay_slots): Replace declaration with that of...
10604 (make_pass_delay_slots): ...new function.
10605 (pass_split_for_shorten_branches): Replace declaration with that of...
10606 (make_pass_split_for_shorten_branches): ...new function.
10607 (pass_split_before_regstack): Replace declaration with that of...
10608 (make_pass_split_before_regstack): ...new function.
10609 (pass_convert_to_eh_region_ranges): Replace declaration with that
10610 of...
10611 (make_pass_convert_to_eh_region_ranges): ...new function.
10612 (pass_shorten_branches): Replace declaration with that of...
10613 (make_pass_shorten_branches): ...new function.
10614 (pass_set_nothrow_function_flags): Replace declaration with that of...
10615 (make_pass_set_nothrow_function_flags): ...new function.
10616 (pass_dwarf2_frame): Replace declaration with that of...
10617 (make_pass_dwarf2_frame): ...new function.
10618 (pass_final): Replace declaration with that of...
10619 (make_pass_final): ...new function.
10620 (pass_rtl_seqabstr): Replace declaration with that of...
10621 (make_pass_rtl_seqabstr): ...new function.
10622 (pass_release_ssa_names): Replace declaration with that of...
10623 (make_pass_release_ssa_names): ...new function.
10624 (pass_early_inline): Replace declaration with that of...
10625 (make_pass_early_inline): ...new function.
10626 (pass_inline_parameters): Replace declaration with that of...
10627 (make_pass_inline_parameters): ...new function.
10628 (pass_update_address_taken): Replace declaration with that of...
10629 (make_pass_update_address_taken): ...new function.
10630 (pass_convert_switch): Replace declaration with that of...
10631 (make_pass_convert_switch): ...new function.
10632 * tree-profile.c (pass_ipa_tree_profile): Convert from a global struct
10633 to a subclass of simple_ipa_opt_pass along with...
10634 (pass_data_ipa_tree_profile): ...new pass_data instance and...
10635 (make_pass_ipa_tree_profile): ...new function.
10636 * tree-sra.c (pass_sra_early): Convert from a global struct to a
10637 subclass of gimple_opt_pass along with...
10638 (pass_data_sra_early): ...new pass_data instance and...
10639 (make_pass_sra_early): ...new function.
10640 (pass_sra): Convert from a global struct to a subclass of
10641 gimple_opt_pass along with...
10642 (pass_data_sra): ...new pass_data instance and...
10643 (make_pass_sra): ...new function.
10644 (pass_early_ipa_sra): Convert from a global struct to a subclass of
10645 gimple_opt_pass along with...
10646 (pass_data_early_ipa_sra): ...new pass_data instance and...
10647 (make_pass_early_ipa_sra): ...new function.
10648 * tree-ssa-ccp.c (pass_ccp): Convert from a global struct to a
10649 subclass of gimple_opt_pass along with...
10650 (pass_data_ccp): ...new pass_data instance and...
10651 (make_pass_ccp): ...new function.
10652 (pass_fold_builtins): Convert from a global struct to a subclass of
10653 gimple_opt_pass along with...
10654 (pass_data_fold_builtins): ...new pass_data instance and...
10655 (make_pass_fold_builtins): ...new function.
10656 * tree-ssa-copy.c (pass_copy_prop): Convert from a global struct to a
10657 subclass of gimple_opt_pass along with...
10658 (pass_data_copy_prop): ...new pass_data instance and...
10659 (make_pass_copy_prop): ...new function.
10660 * tree-ssa-copyrename.c (pass_rename_ssa_copies): Convert from a
10661 global struct to a subclass of gimple_opt_pass along with...
10662 (pass_data_rename_ssa_copies): ...new pass_data instance and...
10663 (make_pass_rename_ssa_copies): ...new function.
10664 * tree-ssa-dce.c (pass_dce): Convert from a global struct to a
10665 subclass of gimple_opt_pass along with...
10666 (pass_data_dce): ...new pass_data instance and...
10667 (make_pass_dce): ...new function.
10668 (pass_dce_loop): Convert from a global struct to a subclass of
10669 gimple_opt_pass along with...
10670 (pass_data_dce_loop): ...new pass_data instance and...
10671 (make_pass_dce_loop): ...new function.
10672 (pass_cd_dce): Convert from a global struct to a subclass of
10673 gimple_opt_pass along with...
10674 (pass_data_cd_dce): ...new pass_data instance and...
10675 (make_pass_cd_dce): ...new function.
10676 * tree-ssa-dom.c (pass_dominator): Convert from a global struct to a
10677 subclass of gimple_opt_pass along with...
10678 (pass_data_dominator): ...new pass_data instance and...
10679 (make_pass_dominator): ...new function.
10680 (pass_phi_only_cprop): Convert from a global struct to a subclass of
10681 gimple_opt_pass along with...
10682 (pass_data_phi_only_cprop): ...new pass_data instance and...
10683 (make_pass_phi_only_cprop): ...new function.
10684 * tree-ssa-dse.c (pass_dse): Convert from a global struct to a
10685 subclass of gimple_opt_pass along with...
10686 (pass_data_dse): ...new pass_data instance and...
10687 (make_pass_dse): ...new function.
10688 * tree-ssa-forwprop.c (pass_forwprop): Convert from a global struct to
10689 a subclass of gimple_opt_pass along with...
10690 (pass_data_forwprop): ...new pass_data instance and...
10691 (make_pass_forwprop): ...new function.
10692 * tree-ssa-ifcombine.c (pass_tree_ifcombine): Convert from a global
10693 struct to a subclass of gimple_opt_pass along with...
10694 (pass_data_tree_ifcombine): ...new pass_data instance and...
10695 (make_pass_tree_ifcombine): ...new function.
10696 * tree-ssa-loop-ch.c (pass_ch): Convert from a global struct to a
10697 subclass of gimple_opt_pass along with...
10698 (pass_data_ch): ...new pass_data instance and...
10699 (make_pass_ch): ...new function.
10700 * tree-ssa-loop.c (pass_tree_loop): Convert from a global struct to a
10701 subclass of gimple_opt_pass along with...
10702 (pass_data_tree_loop): ...new pass_data instance and...
10703 (make_pass_tree_loop): ...new function.
10704 (pass_tree_loop_init): Convert from a global struct to a subclass of
10705 gimple_opt_pass along with...
10706 (pass_data_tree_loop_init): ...new pass_data instance and...
10707 (make_pass_tree_loop_init): ...new function.
10708 (pass_lim): Convert from a global struct to a subclass of
10709 gimple_opt_pass along with...
10710 (pass_data_lim): ...new pass_data instance and...
10711 (make_pass_lim): ...new function.
10712 (pass_tree_unswitch): Convert from a global struct to a subclass of
10713 gimple_opt_pass along with...
10714 (pass_data_tree_unswitch): ...new pass_data instance and...
10715 (make_pass_tree_unswitch): ...new function.
10716 (pass_predcom): Convert from a global struct to a subclass of
10717 gimple_opt_pass along with...
10718 (pass_data_predcom): ...new pass_data instance and...
10719 (make_pass_predcom): ...new function.
10720 (pass_vectorize): Convert from a global struct to a subclass of
10721 gimple_opt_pass along with...
10722 (pass_data_vectorize): ...new pass_data instance and...
10723 (make_pass_vectorize): ...new function.
10724 (pass_graphite): Convert from a global struct to a subclass of
10725 gimple_opt_pass along with...
10726 (pass_data_graphite): ...new pass_data instance and...
10727 (make_pass_graphite): ...new function.
10728 (pass_graphite_transforms): Convert from a global struct to a subclass
10729 of gimple_opt_pass along with...
10730 (pass_data_graphite_transforms): ...new pass_data instance and...
10731 (make_pass_graphite_transforms): ...new function.
10732 (pass_check_data_deps): Convert from a global struct to a subclass of
10733 gimple_opt_pass along with...
10734 (pass_data_check_data_deps): ...new pass_data instance and...
10735 (make_pass_check_data_deps): ...new function.
10736 (pass_iv_canon): Convert from a global struct to a subclass of
10737 gimple_opt_pass along with...
10738 (pass_data_iv_canon): ...new pass_data instance and...
10739 (make_pass_iv_canon): ...new function.
10740 (pass_scev_cprop): Convert from a global struct to a subclass of
10741 gimple_opt_pass along with...
10742 (pass_data_scev_cprop): ...new pass_data instance and...
10743 (make_pass_scev_cprop): ...new function.
10744 (pass_record_bounds): Convert from a global struct to a subclass of
10745 gimple_opt_pass along with...
10746 (pass_data_record_bounds): ...new pass_data instance and...
10747 (make_pass_record_bounds): ...new function.
10748 (pass_complete_unroll): Convert from a global struct to a subclass of
10749 gimple_opt_pass along with...
10750 (pass_data_complete_unroll): ...new pass_data instance and...
10751 (make_pass_complete_unroll): ...new function.
10752 (pass_complete_unrolli): Convert from a global struct to a subclass of
10753 gimple_opt_pass along with...
10754 (pass_data_complete_unrolli): ...new pass_data instance and...
10755 (make_pass_complete_unrolli): ...new function.
10756 (pass_parallelize_loops): Convert from a global struct to a subclass
10757 of gimple_opt_pass along with...
10758 (pass_data_parallelize_loops): ...new pass_data instance and...
10759 (make_pass_parallelize_loops): ...new function.
10760 (pass_loop_prefetch): Convert from a global struct to a subclass of
10761 gimple_opt_pass along with...
10762 (pass_data_loop_prefetch): ...new pass_data instance and...
10763 (make_pass_loop_prefetch): ...new function.
10764 (pass_iv_optimize): Convert from a global struct to a subclass of
10765 gimple_opt_pass along with...
10766 (pass_data_iv_optimize): ...new pass_data instance and...
10767 (make_pass_iv_optimize): ...new function.
10768 (pass_tree_loop_done): Convert from a global struct to a subclass of
10769 gimple_opt_pass along with...
10770 (pass_data_tree_loop_done): ...new pass_data instance and...
10771 (make_pass_tree_loop_done): ...new function.
10772 * tree-ssa-math-opts.c (pass_cse_reciprocals): Convert from a global
10773 struct to a subclass of gimple_opt_pass along with...
10774 (pass_data_cse_reciprocals): ...new pass_data instance and...
10775 (make_pass_cse_reciprocals): ...new function.
10776 (pass_cse_sincos): Convert from a global struct to a subclass of
10777 gimple_opt_pass along with...
10778 (pass_data_cse_sincos): ...new pass_data instance and...
10779 (make_pass_cse_sincos): ...new function.
10780 (pass_optimize_bswap): Convert from a global struct to a subclass of
10781 gimple_opt_pass along with...
10782 (pass_data_optimize_bswap): ...new pass_data instance and...
10783 (make_pass_optimize_bswap): ...new function.
10784 (pass_optimize_widening_mul): Convert from a global struct to a
10785 subclass of gimple_opt_pass along with...
10786 (pass_data_optimize_widening_mul): ...new pass_data instance and...
10787 (make_pass_optimize_widening_mul): ...new function.
10788 * tree-ssa-phiopt.c (pass_phiopt): Convert from a global struct to a
10789 subclass of gimple_opt_pass along with...
10790 (pass_data_phiopt): ...new pass_data instance and...
10791 (make_pass_phiopt): ...new function.
10792 (pass_cselim): Convert from a global struct to a subclass of
10793 gimple_opt_pass along with...
10794 (pass_data_cselim): ...new pass_data instance and...
10795 (make_pass_cselim): ...new function.
10796 * tree-ssa-phiprop.c (pass_phiprop): Convert from a global struct to a
10797 subclass of gimple_opt_pass along with...
10798 (pass_data_phiprop): ...new pass_data instance and...
10799 (make_pass_phiprop): ...new function.
10800 * tree-ssa-pre.c (pass_pre): Convert from a global struct to a
10801 subclass of gimple_opt_pass along with...
10802 (pass_data_pre): ...new pass_data instance and...
10803 (make_pass_pre): ...new function.
10804 (pass_fre): Convert from a global struct to a subclass of
10805 gimple_opt_pass along with...
10806 (pass_data_fre): ...new pass_data instance and...
10807 (make_pass_fre): ...new function.
10808 * tree-ssa-reassoc.c (pass_reassoc): Convert from a global struct to a
10809 subclass of gimple_opt_pass along with...
10810 (pass_data_reassoc): ...new pass_data instance and...
10811 (make_pass_reassoc): ...new function.
10812 * tree-ssa-sink.c (pass_sink_code): Convert from a global struct to a
10813 subclass of gimple_opt_pass along with...
10814 (pass_data_sink_code): ...new pass_data instance and...
10815 (make_pass_sink_code): ...new function.
10816 * tree-ssa-strlen.c (pass_strlen): Convert from a global struct to a
10817 subclass of gimple_opt_pass along with...
10818 (pass_data_strlen): ...new pass_data instance and...
10819 (make_pass_strlen): ...new function.
10820 * tree-ssa-structalias.c (pass_build_alias): Convert from a global
10821 struct to a subclass of gimple_opt_pass along with...
10822 (pass_data_build_alias): ...new pass_data instance and...
10823 (make_pass_build_alias): ...new function.
10824 (pass_build_ealias): Convert from a global struct to a subclass of
10825 gimple_opt_pass along with...
10826 (pass_data_build_ealias): ...new pass_data instance and...
10827 (make_pass_build_ealias): ...new function.
10828 (pass_ipa_pta): Convert from a global struct to a subclass of
10829 simple_ipa_opt_pass along with...
10830 (pass_data_ipa_pta): ...new pass_data instance and...
10831 (make_pass_ipa_pta): ...new function.
10832 * tree-ssa-uncprop.c (pass_uncprop): Convert from a global struct to a
10833 subclass of gimple_opt_pass along with...
10834 (pass_data_uncprop): ...new pass_data instance and...
10835 (make_pass_uncprop): ...new function.
10836 * tree-ssa-uninit.c (pass_late_warn_uninitialized): Convert from a
10837 global struct to a subclass of gimple_opt_pass along with...
10838 (pass_data_late_warn_uninitialized): ...new pass_data instance and...
10839 (make_pass_late_warn_uninitialized): ...new function.
10840 * tree-ssa.c (pass_init_datastructures): Convert from a global struct
10841 to a subclass of gimple_opt_pass along with...
10842 (pass_data_init_datastructures): ...new pass_data instance and...
10843 (make_pass_init_datastructures): ...new function.
10844 (pass_early_warn_uninitialized): Convert from a global struct to a
10845 subclass of gimple_opt_pass along with...
10846 (pass_data_early_warn_uninitialized): ...new pass_data instance and...
10847 (make_pass_early_warn_uninitialized): ...new function.
10848 (pass_update_address_taken): Convert from a global struct to a
10849 subclass of gimple_opt_pass along with...
10850 (pass_data_update_address_taken): ...new pass_data instance and...
10851 (make_pass_update_address_taken): ...new function.
10852 * tree-ssanames.c (pass_release_ssa_names): Convert from a global
10853 struct to a subclass of gimple_opt_pass along with...
10854 (pass_data_release_ssa_names): ...new pass_data instance and...
10855 (make_pass_release_ssa_names): ...new function.
10856 * tree-stdarg.c (pass_stdarg): Convert from a global struct to a
10857 subclass of gimple_opt_pass along with...
10858 (pass_data_stdarg): ...new pass_data instance and...
10859 (make_pass_stdarg): ...new function.
10860 * tree-switch-conversion.c (pass_convert_switch): Convert from a
10861 global struct to a subclass of gimple_opt_pass along with...
10862 (pass_data_convert_switch): ...new pass_data instance and...
10863 (make_pass_convert_switch): ...new function.
10864 * tree-tailcall.c (pass_tail_recursion): Convert from a global struct
10865 to a subclass of gimple_opt_pass along with...
10866 (pass_data_tail_recursion): ...new pass_data instance and...
10867 (make_pass_tail_recursion): ...new function.
10868 (pass_tail_calls): Convert from a global struct to a subclass of
10869 gimple_opt_pass along with...
10870 (pass_data_tail_calls): ...new pass_data instance and...
10871 (make_pass_tail_calls): ...new function.
10872 * tree-vect-generic.c (pass_lower_vector): Convert from a global
10873 struct to a subclass of gimple_opt_pass along with...
10874 (pass_data_lower_vector): ...new pass_data instance and...
10875 (make_pass_lower_vector): ...new function.
10876 (pass_lower_vector_ssa): Convert from a global struct to a subclass of
10877 gimple_opt_pass along with...
10878 (pass_data_lower_vector_ssa): ...new pass_data instance and...
10879 (make_pass_lower_vector_ssa): ...new function.
10880 * tree-vectorizer.c (pass_slp_vectorize): Convert from a global struct
10881 to a subclass of gimple_opt_pass along with...
10882 (pass_data_slp_vectorize): ...new pass_data instance and...
10883 (make_pass_slp_vectorize): ...new function.
10884 (pass_ipa_increase_alignment): Convert from a global struct to a
10885 subclass of simple_ipa_opt_pass along with...
10886 (pass_data_ipa_increase_alignment): ...new pass_data instance and...
10887 (make_pass_ipa_increase_alignment): ...new function.
10888 * tree-vrp.c (pass_vrp): Convert from a global struct to a subclass of
10889 gimple_opt_pass along with...
10890 (pass_data_vrp): ...new pass_data instance and...
10891 (make_pass_vrp): ...new function.
10892 * tree.c (pass_ipa_free_lang_data): Convert from a global struct to a
10893 subclass of simple_ipa_opt_pass along with...
10894 (pass_data_ipa_free_lang_data): ...new pass_data instance and...
10895 (make_pass_ipa_free_lang_data): ...new function.
10896 * tsan.c (pass_tsan): Convert from a global struct to a subclass of
10897 gimple_opt_pass along with...
10898 (pass_data_tsan): ...new pass_data instance and...
10899 (make_pass_tsan): ...new function.
10900 (pass_tsan_O0): Convert from a global struct to a subclass of
10901 gimple_opt_pass along with...
10902 (pass_data_tsan_O0): ...new pass_data instance and...
10903 (make_pass_tsan_O0): ...new function.
10904 * var-tracking.c (pass_variable_tracking): Convert from a global
10905 struct to a subclass of rtl_opt_pass along with...
10906 (pass_data_variable_tracking): ...new pass_data instance and...
10907 (make_pass_variable_tracking): ...new function.
10908 * web.c (pass_web): Convert from a global struct to a subclass of
10909 rtl_opt_pass along with...
10910 (pass_data_web): ...new pass_data instance and...
10911 (make_pass_web): ...new function.
10912 * config/epiphany/epiphany.h (pass_mode_switch_use): Replace
10913 declaration with that of...
10914 (make_pass_mode_switch_use): ...new function.
10915 (pass_resolve_sw_modes): Replace declaration with that of...
10916 (make_pass_resolve_sw_modes): ...new function.
10917 * config/epiphany/mode-switch-use.c (pass_mode_switch_use): Convert
10918 from a global struct to a subclass of rtl_opt_pass along with...
10919 (pass_data_mode_switch_use): ...new pass_data instance and...
10920 (make_pass_mode_switch_use): ...new function.
10921 * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes): Convert
10922 from a global struct to a subclass of rtl_opt_pass along with...
10923 (pass_data_resolve_sw_modes): ...new pass_data instance and...
10924 (make_pass_resolve_sw_modes): ...new function.
10925 * config/i386/i386.c (pass_insert_vzeroupper): Convert from a global
10926 struct to a subclass of rtl_opt_pass along with...
10927 (pass_data_insert_vzeroupper): ...new pass_data instance and...
10928 (make_pass_insert_vzeroupper): ...new function.
10929 * config/sparc/sparc.c (pass_work_around_errata): Convert from a
10930 global struct to a subclass of rtl_opt_pass along with...
10931 (pass_data_work_around_errata): ...new pass_data instance and...
10932 (make_pass_work_around_errata): ...new function.
10933 * config/mips/mips.c (pass_mips_machine_reorg2): Convert from a global
10934 struct to a subclass of rtl_opt_pass along with...
10935 (pass_data_mips_machine_reorg2): ...new pass_data instance and...
10936 (make_pass_mips_machine_reorg2): ...new function.
10937
6a389ed5
DM
109382013-08-05 David Malcolm <dmalcolm@redhat.com>
10939
10940 * passes.c (pass_manager::operator new): New.
10941
f7695dbf
DM
109422013-08-05 David Malcolm <dmalcolm@redhat.com>
10943
10944 Handwritten part of conversion of passes to C++ classes.
10945
10946 * Makefile.in (PASS_MANAGER_H): Add dep on pass-instances.def.
10947 (toplev.o): Add dep on PASS_MANAGER_H.
10948 * cgraphunit.c (cgraph_process_new_functions): Rework invocation
10949 of early local pases to reflect this moving from a global to a
10950 member of gcc::pass_manager.
10951 (cgraph_add_new_function): Likewise.
10952 * lto-cgraph.c (lto_output_node): Update for conversion of
10953 struct ipa_opt_pass_d to a C++ subclass of opt_pass.
10954 * passes.c (opt_pass::clone): New.
10955 (opt_pass::gate): New.
10956 (opt_pass::execute): New.
10957 (opt_pass::opt_pass): New.
10958 (pass_manager::execute_early_local_passes): New.
10959 (pass_manager::execute_pass_mode_switching): new.
10960 (finish_optimization_passes): Convert to...
10961 (pass_manager::finish_optimization_passes): ...this.
10962 (finish_optimization_passes): Update for conversion of passes to
10963 C++ classes.
10964 (register_dump_files_1): Use has_gate since we cannot portably
10965 check a vtable entry against NULL.
10966 (dump_one_pass): Likewise.
10967 (ipa_write_summaries_2): Likewise.
10968 (ipa_write_optimization_summaries_1): Likewise.
10969 (ipa_read_summaries_1): Likewise.
10970 (ipa_read_optimization_summaries_1): Likewise.
10971 (execute_ipa_stmt_fixups): Likewise.
10972 (pass_manager::pass_manager): Rewrite pass-creation, invoking
10973 pass-creation functions rather than wiring up globals, and
10974 storing the results in fields of pass_manager generated using
10975 pass-instances.def.
10976 (pass_manager::dump_profile_report): Update for conversion of
10977 passes to C++ classes.
10978 (pass_manager::execute_ipa_summary_passes): Likewise.
10979 (execute_one_ipa_transform_pass): Likewise.
10980 (execute_one_pass): Use has_gate and has_execute since we cannot
10981 portably check a vtable entry against NULL.
10982 * pass_manager.h (pass_manager::finish_optimization_passes): New.
10983 (pass_manager): Use pass-instances.def to add fields for the
10984 various pass instances.
10985 * toplev.c (finalize): Update for move of
10986 finish_optimization_passes to a method of gcc::pass_manager.
10987 * toplev.h (finish_optimization_passes): Move to method of class
10988 pass_manager.
10989 * tree-pass.h (struct pass_data): New.
03b0ee0a 10990 (opt_pass): Convert to C++ class, make it a subclass of pass_data.
f7695dbf
DM
10991 (opt_pass::gate): Convert to virtual function.
10992 (opt_pass::~opt_pass): New.
10993 (opt_pass::clone): New.
10994 (opt_pass::execute): Convert to virtual function.
10995 (opt_pass::opt_pass): New.
10996 (opt_pass::ctxt_): new.
10997 (gimple_opt_pass): Convert to subclass of opt_pass.
10998 (gimple_opt_pass::gimple_opt_pass): New.
10999 (rtl_opt_pass): Convert to subclass of opt_pass.
11000 (rtl_opt_pass::rtl_opt_pass): New.
11001 (ipa_opt_pass_d): Convert to subclass of opt_pass.
11002 (ipa_opt_pass_d::ipa_opt_pass_d): New.
11003 (simple_ipa_opt_pass): Convert to subclass of opt_pass.
11004 (simple_ipa_opt_pass::simple_ipa_opt_pass): New.
11005 * config/i386/i386.c (rest_of_handle_insert_vzeroupper): Rework
11006 invocation of pass_mode_switching to reflect this moving from a
11007 global to a member of gcc::pass_manager.
11008 (ix86_option_override): Rework how pass_insert_vzeroupper is
11009 added to the pass_manager to reflect autogenerated changes.
03b0ee0a 11010 * config/i386/t-i386 (i386.o) Add deps on CONTEXT_H and PASS_MANAGER_H.
f7695dbf 11011
d0b2f831
RE
110122013-08-05 Richard Earnshaw <rearnsha@arm.com>
11013
11014 PR rtl-optimization/57708
11015 * recog.c (peep2_find_free_register): Validate all regs in a
11016 multi-reg mode.
11017
51a5c0c2
JH
110182013-08-05 Jan Hubicka <jh@suse.cz>
11019
11020 PR lto/57602
03b0ee0a
UB
11021 * cgraph.c (verify_cgraph_node): Accept local flags from other
11022 partitions.
51a5c0c2
JH
11023 * ipa.c (symtab_remove_unreachable_nodes): Do not clear local flag.
11024 (function_and_variable_visibility): Likewise.
11025 * trans-mem.c (ipa_tm_create_version): TM versions are not local.
11026
65f0a120
GDR
110272013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
11028
11029 * graph.c (init_graph_slim_pretty_print): Remove.
11030 (print_graph_cfg): Do not call it. Use local pretty printer.
11031 (start_graph_dump): Likewise.
11032
b3f80694
GDR
110332013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
11034
11035 * gimple-pretty-print.c (buffer): Remove.
11036 (initialized): Likewise.
11037 (maybe_init_pretty_print): Likewise.
11038 (print_gimple_stmt): Do not call it. Use non-static local
11039 pretty_printer variable.
11040 (print_gimple_expr): Likewise.
11041 (print_gimple_seq): Likewise.
11042 (gimple_dump_bb): Likewise.
11043
11a877b3
GDR
110442013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
11045
11046 * asan.c (asan_pp): Remove.
11047 (asan_pp_initialized): Likewise.
11048 (asan_pp_initialize): Likewise.
11049 (asan_pp_string): Take a pretty_printer parameter. Adjust callers.
11050 (asan_emit_stack_protection): Tidy. Use local pretty printer.
11051 (asan_add_global): Likewise.
11052
b066401f
GDR
110532013-08-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
11054
11055 * pretty-print.h (pp_base): Remove. Adjust dependent macros.
11056 * diagnostic.h (diagnostic_flush_buffer): Adjust.
11057 * pretty-print.c (pp_formatted_text_data): Likewise.
11058 (pp_indent): Rename from pp_base_indent.
11059 (pp_format): Rename from pp_base_format.
11060 (pp_output_formatted_text): Rename from pp_base_output_formatted_text.
11061 (pp_format_verbatim): Rename from pp_base_format_verbatim.
11062 (pp_flush): Rename from pp_base_flush.
11063 (pp_set_line_maximum_length): Rename from
11064 pp_base_set_line_maximum_length.
11065 (pp_clear_output_area): Rename from pp_base_clear_output_area.
11066 (pp_set_prefix): Rename from pp_base_set_prefix.
11067 (pp_destroy_prefix): Rename from pp_base_destroy_prefix.
11068 (pp_emit_prefix): Rename from pp_base_emit_prefix.
11069 (pp_append_text): Rename from pp_base_append_text.
11070 (pp_formatted_text): Rename from pp_base_formatted_text.
11071 (pp_last_position_in_text): Rename from pp_base_last_position_in_text.
11072 (pp_remaining_character_count_for_line): Rename from
11073 pp_base_remaining_character_count_for_line.
11074 (pp_newline): Rename from pp_base_newline.
11075 (pp_character): Rename from pp_base_character.
11076 (pp_string): Rename from pp_base_string.
11077 (pp_maybe_space): Rename from pp_base_maybe_space.
11078 * asan.c (asan_pp_string): Adjust.
11079 (asan_emit_stack_protection): Likewise.
11080 (asan_add_global): Likewise.
11081 * sched-vis.c (str_pattern_slim): Adjust pretty printer function call.
11082 * tree-mudflap.c (mf_varname_tree): Likewise.
11083 * tree-pretty-print.c (pp_tree_identifier): Rename from
11084 pp_base_tree_identifier.
11085 * tree-pretty-print.h (pp_tree_identifier): Remove macro definition.
11086 Declare as function.
11087
137a1a27
GDR
110882013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
11089
11090 * pretty-print.h (pp_bar_bar): New.
11091 (pp_ampersand_ampersand): Likewise.
11092 (pp_less_equal): Likewise.
11093 (pp_greater_equal): Likewise.
11094 * gimple-pretty-print.c (dump_ternary_rhs): Use specialized pretty
11095 printer functions instead of pp_string or operators and punctuators.
11096 (dump_gimple_call): Likewise.
11097 (dump_gimple_omp_for): Likewise.
11098 (dump_gimple_transaction): Likewise.
11099 (dump_gimple_phi): Likewise.
11100 (pp_gimple_stmt_1): Likewise.
11101 * sched-vis.c (print_insn): Likewise.
11102 * tree-mudflap.c (mf_varname_tree): Likewise.
11103 * tree-pretty-print.c (dump_block_node): Likewise.
11104 (dump_generic_node): Likewise.
11105
815effe1
JH
111062013-08-02 Jan Hubicka <jh@suse.cz>
11107
11108 * lto-cgraph.c (compute_ltrans_boundary): Add abstract origins into
11109 boundaries.
11110 * lto-streamer-out.c (tree_is_indexable): Results decls and
11111 parm decls are not indexable.
11112 (DFS_write_tree_body): Do not follow args and results.
11113 (hash_tree): Likewise.
11114 (output_functions): Rearrange so struct function is needed
11115 only when real body is output; be able to also ouptut abstract
11116 functions; output DECL_ARGUMENTS and DECL_RESULT.
11117 (lto_output): When not in WPA, ale store abstract functions.
11118 (write_symbol): Do not care about RESULT_DECL.
11119 (output_symbol_p): Handle correctly sbtract decls.
11120 * lto-streamer-in.c (input_function): Rearrange so struct
11121 function can be NULL at entry; allow streaming of
11122 functions w/o body; store DECL_ARGUMENTS and DECL_RESULT.
11123 * ipa.c (symtab_remove_unreachable_nodes): Silence confused
11124 sanity check during LTO.
11125 * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Skip
11126 RESULT_DECl and DECL_ARGUMENTS.
11127 * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
11128 Likewise.
11129
07838b13
GDR
111302013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
11131
11132 * pretty-print.h (pp_underscore): New.
11133 (pp_comma): Tidy.
11134 * gimple-pretty-print.c (dump_unary_rhs): Use specialized pretty
11135 printer functions instead of pp_character.
11136 (dump_binary_rhs): Likewise.
11137 (dump_ternary_rhs): Likewise.
11138 (dump_gimple_call_args): Likewise.
11139 (pp_points_to_solution): Likewise.
11140 (dump_gimple_call): Likewise.
11141 (dump_gimple_switch): Likewise.
11142 (dump_gimple_cond): Likewise.
11143 (dump_gimple_bind): Likewise.
11144 (dump_gimple_try): Likewise.
11145 (dump_gimple_omp_for): Likewise.
11146 (dump_gimple_omp_continue): Likewise.
11147 (dump_gimple_omp_single): Likewise.
11148 (dump_gimple_omp_sections): Likewise.
11149 (dump_gimple_omp_block): Likewise.
11150 (dump_gimple_omp_critical): Likewise.
11151 (dump_gimple_transaction): Likewise.
11152 (dump_gimple_asm): Likewise.
11153 (dump_gimple_phi): Likewise.
11154 (dump_gimple_omp_parallel): Likewise.
11155 (dump_gimple_omp_task): Likewise.
11156 (dump_gimple_omp_atomic_load): Likewise.
11157 (dump_gimple_omp_atomic_store): Likewise.
11158 (dump_gimple_mem_ops): Likewise.
11159 (pp_gimple_stmt_1): Likewise.
11160 (pp_cfg_jump): Likewise.
11161 (dump_implicit_edges): Likewise.
11162 (gimple_dump_bb_for_graph): Likewise.
11163 * graph.c (draw_cfg_node): Likewise.
11164 * langhooks.c (lhd_print_error_function): Likewise.
11165 * sched-vis.c (print_exp): Likewise.
11166 (print_value): Likewise.
11167 (print_pattern): Likewise.
11168 (print_insn): Likewise.
11169 (rtl_dump_bb_for_graph): Likewise.
11170 * tree-pretty-print.c (dump_function_declaration): Likewise.
11171 (dump_array_domain): Likewise.
11172 (dump_omp_clause): Likewise.
11173 (dump_location): Likewise.
11174 (dump_generic_node): Likewise.
11175 (print_struct_decl): Likewise.
11176 * diagnostic.c (diagnostic_show_locus): Use pp_space.
11177
bb0d2039
BS
111782013-08-03 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
11179
11180 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Update
11181 candidate table when replacing a candidate statement.
11182 (replace_rhs_if_not_dup): Likewise.
11183 (replace_one_candidate): Likewise.
11184
bc0ec027 111852013-08-02 Jan Hubicka <jh@suse.cz>
cdaa808a 11186 Martin Liska <marxin.liska@gmail.com>
bc0ec027
JH
11187
11188 * cgraphunit.c (add_new_function): Fix logic when adding from
11189 late IPA pass.
11190 (assemble_thunk): Rename to ...
03b0ee0a
UB
11191 (expand_thunk); .. this one; export; get it working with
11192 general functions; make produced gimple valid.
bc0ec027
JH
11193 * cgraph.h (expand_thunk): Declare.
11194
0e8853ee
JH
111952013-08-02 Jan Hubicka <jh@suse.cz>
11196
03b0ee0a
UB
11197 * ipa-cp.c (gather_context_independent_values): Use
11198 ipa_get_param_move_cost.
11199 (get_replacement_map): Remove PARAM; move parameter folding
11200 into tree-inline.c
0e8853ee
JH
11201 (create_specialized_node): Update.
11202 * ipa-prop.c (ipa_populate_param_decls): Do not look for origins;
11203 assert that we have gimple body; update move_cost.
11204 (count_formal_params): Assert that we have gimple body.
11205 (ipa_dump_param): New function.
11206 (ipa_alloc_node_params): Break out from ...
11207 (ipa_initialize_node_params): ... here.
11208 (ipa_get_vector_of_formal_parms): ICE when used in WPA.
11209 (ipa_write_node_info): Stream move costs.
11210 (ipa_read_node_info): Read move costs.
11211 (ipa_update_after_lto_read): Do not recompute node params.
11212 * ipa-prop.h (ipa_param_descriptor): Add move_cost.
11213 (ipa_get_param): Check we are not in WPA.
11214 (ipa_get_param_move_cost): New.
11215 * tree-inline.c (tree_function_versioning): Fold replacement as needed.
11216 * ipa-inline-analysis.c (inline_node_duplication_hook): Expect only
11217 parm numbers to be present.
11218
ecee672b
VM
112192013-08-02 Vladimir Makarov <vmakarov@redhat.com>
11220
11221 PR rtl-optimization/58048
11222 * lra-constraints.c (process_alt_operands): Don't check asm
11223 operand on register.
11224
13ec0527
EB
112252013-08-02 Eric Botcazou <ebotcazou@adacore.com>
11226
11227 * config/sparc/sparc.c (sparc_emit_membar_for_model) <SMM_TSO>: Add
11228 the implied StoreLoad barrier for atomic operations if before.
11229
af15184a
JH
112302013-08-02 Jan Hubicka <jh@suse.cz>
11231 Martin Liska <marxin.liska@gmail.com>
11232
03b0ee0a
UB
11233 * cgraph.c (cgraph_function_body_availability): Do not check
11234 cgraph flags.
af15184a
JH
11235 * cgraph.h (symtab_for_node_and_aliases, symtab_nonoverwritable_alias,
11236 symtab_node_availability): Declare.
11237 * ipa.c (can_replace_by_local_alias): New.
11238 (function_and_variable_visibility): Use it.
03b0ee0a
UB
11239 * symtab.c (symtab_for_node_and_aliases,
11240 symtab_nonoverwritable_alias_1, symtab_nonoverwritable_alias): New.
af15184a 11241
01e54ef8
VM
112422013-08-02 Vladimir Makarov <vmakarov@redhat.com>
11243
11244 PR rtl-optimization/57963
03b0ee0a 11245 * lra-constraints.c (reverse_equiv_p, contains_reloaded_insn_p): New.
01e54ef8
VM
11246 (lra_constraints): Use them.
11247
e2fd7ca7
SN
112482013-08-02 Sofiane Naci <sofiane.naci@arm.com>
11249
03b0ee0a
UB
11250 * config/arm/types.md (define_attr "type"): Add "load_acq"
11251 and "store_rel".
e2fd7ca7
SN
11252 * config/arm/cortex-a53.md (cortex_a53_load1): Update for attribute
11253 changes.
11254 (cortex_a53_store1): Likewise.
11255
0dcc26c3
JH
112562013-08-01 Jan Hubicka <jh@suse.cz>
11257
03b0ee0a
UB
11258 * ipa.c (symtab_remove_unreachable_nodes): Nodes in other
11259 partitions are not needed.
0dcc26c3 11260
0bd72901
UB
112612013-08-01 Uros Bizjak <ubizjak@gmail.com>
11262
11263 * config/i386/i386.h (MAYBE_NON_Q_CLASS_P): New.
11264 * config/i386/i386.c (ix86_secondary_reload): Use INTEGER_CLASS_P and
11265 MAYBE_NON_Q_CLASS_P where appropriate.
11266
12123452
JH
112672013-08-01 Jan Hubicka <jh@suse.cz>
11268
11269 * cgraph.h (release_function_body): Declare.
11270 * tree.c (free_lang_data_in_decl): Free, parameters and return values
11271 of unused delcarations.
11272
ce852f9c
KT
112732013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11274
03b0ee0a
UB
11275 * config/arm/arm.md (minmax_arithsi_non_canon): Emit canonical
11276 RTL form when subtracting a constant.
ce852f9c 11277
c743b246
KT
112782013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11279
11280 * config/arm/arm.md (peepholes for eq (reg1) (reg2/imm)):
11281 Generate canonical plus rtx with negated immediate instead of minus
11282 where appropriate.
11283 * config/arm/arm.c (thumb2_reorg): Handle ADCS <Rd>, <Rn> case.
11284
c0c123ef
JH
112852013-08-01 Jan Hubicka <jh@suse.cz>
11286
11287 * cgraph.c (cgraph_release_function_body): Use used_as_abstract_origin.
11288 (cgraph_release_function_body): Likewise.
11289 (cgraph_can_remove_if_no_direct_calls_p): Likewise.
11290 * cgraph.h (cgrpah_node): Rename abstract_and_needed
11291 to used_as_abstract_origin.
11292 * tree-inline-transfrom.c (can_remove_node_now_p_1): Do not remove
11293 symbols used as abstract origins.
11294 * cgraphunit.c (analyze_functions): Update.
0bd72901
UB
11295 * ipa.c (symtab_remove_unreachable_nodes): Recompute
11296 used_as_abstract_origin.
c0c123ef 11297 * tree-inline.c (tree_function_versioning): Update
0bd72901
UB
11298 used_as_abstract_origin; be ready for DECL_RESULT and
11299 DECL_ARGUMENTS to be NULL.
c0c123ef 11300
0bd72901
UB
11301 * lto-symtab.c (lto_symtab_merge_symbols): Merge duplicated nodes
11302 for abstract functions.
11303 * cgraph.h (symtab_real_symbol_p): Abstract declarations are not
11304 real symbols.
c0c123ef 11305
1f029433
JH
113062013-08-01 Jan Hubicka <jh@suse.cz>
11307
11308 * profile.c (compute_value_histograms): Fix thinko.
11309
c451f4d6
SN
113102013-08-01 Sofiane Naci <sofiane.naci@arm.com>
11311
11312 * config.gcc (aarch64*-*-*): Add aarch-common.o to extra_objs. Add
11313 aarch-common-protos.h to extra_headers.
11314 (aarch64*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
11315 * config/aarch64/aarch64.md: Include "../arm/cortex-a53.md".
11316 * config/aarch64/t-aarch64 (aarch-common.o): Define.
11317
34b512f5
SN
113182013-08-01 Sofiane Naci <sofiane.naci@arm.com>
11319
11320 * config/aarch64/aarch64.md (define_attr "type"): Delete.
11321 Include "../arm/types.md". Define "type" attribute for all patterns.
11322 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update for
11323 attribute changes.
11324
d86e633a
MM
113252013-07-31 Michael Meissner <meissner@linux.vnet.ibm.com>
11326
11327 * config/rs6000/predicates.md (fusion_gpr_addis): New predicates
11328 to support power8 load fusion.
11329 (fusion_gpr_mem_load): Likewise.
11330
11331 * config/rs6000/rs6000-modes.def (PTImode): Update a comment.
11332
11333 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): New
11334 declarations for power8 load fusion.
11335 (emit_fusion_gpr_load): Likewise.
11336
11337 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
11338 tuning for power8, turn on fusion mode by default. Turn on sign
11339 extending fusion mode if normal fusion mode is on, and we are at
11340 -O2 or -O3.
11341 (fusion_gpr_load_p): New function, return true if we can fuse an
11342 addis instruction with a dependent load to a GPR.
11343 (emit_fusion_gpr_load): Emit the instructions for power8 load
11344 fusion to GPRs.
11345
0bd72901 11346 * config/rs6000/vsx.md (VSX_M2): New iterator for fusion peepholes.
d86e633a
MM
11347 (VSX load fusion peepholes): New peepholes to fuse together an
11348 addi instruction with a VSX load instruction.
11349
11350 * config/rs6000/rs6000.md (GPR load fusion peepholes): New
11351 peepholes to fuse an addis instruction with a load to a GPR base
11352 register. If we are supporting sign extending fusions, convert
11353 sign extending loads to zero extending loads and add an explicit
11354 sign extension.
11355
c3f35647
SN
113562013-07-31 Sofiane Naci <sofiane.naci@arm.com>
11357
11358 * config.gcc (arm*-*-*): Add aarch-common.o to extra_objs. Add
11359 aarch-common-protos.h to extra_headers.
11360 (arm*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
11361 * config/arm/arm.c (arm_early_load_addr_dep): Move from here to ...
11362 (arm_early_store_addr_dep): Likewise.
0bd72901
UB
11363 (arm_no_early_alu_shift_dep): Likewise.
11364 (arm_no_early_alu_shift_value_dep): Likewise.
11365 (arm_no_early_mul_dep): Likewise.
11366 (arm_no_early_store_addr_dep): Likewise.
11367 (arm_mac_accumulator_is_mul_result): Likewise.
11368 (arm_mac_accumulator_is_result): Likewise.
c3f35647 11369 * config/arm/aarch-common.c: ... here. New file.
0bd72901
UB
11370 * config/arm/arm-protos.h (arm_early_load_addr_dep): Move from
11371 here to ...
c3f35647 11372 (arm_early_store_addr_dep): Likewise.
0bd72901
UB
11373 (arm_no_early_alu_shift_dep): Likewise.
11374 (arm_no_early_alu_shift_value_dep): Likewise.
11375 (arm_no_early_mul_dep): Likewise.
11376 (arm_no_early_store_addr_dep): Likewise.
11377 (arm_mac_accumulator_is_mul_result): Likewise.
11378 (arm_mac_accumulator_is_result): Likewise.
c3f35647
SN
11379 * config/arm/aarch-common-protos.h: ... here. New file.
11380 * config/arm/t-arm (aarch-common.o): Define.
11381
113822013-07-31 Sofiane Naci <sofiane.naci@arm.com>
11383
11384 * config/arm/arm.md: Include new file "types.md".
11385 (define_attr "type"): Move from here to ...
11386 (define_attr "mul32"): Likewise.
11387 (define_attr "mul64"): Likewise.
11388 * config/arm/types.md: ... here. New file.
11389
228c1313
SH
113902013-07-31 Sebastian Huber <sebastian.huber@embedded-brains.de>
11391
11392 * config.gcc (*-*-rtems*): Use __cxa_atexit by default.
11393 * config/rs6000/rtems.h (TARGET_LIBGCC_SDATA_SECTION): Define.
11394
d6e9046d 113952013-07-31 Jan-Benedict Glaw <jbglaw@lug-owl.de>
8ac499bb
JBG
11396
11397 * gen-pass-instances.awk: Fix offset of substr().
11398
a167b052
DM
113992013-07-31 David Malcolm <dmalcolm@redhat.com>
11400
11401 * Makefile.in (pass-instances.def): New.
11402 (passes.o): Replace dependency on passes.def with one on
11403 pass-instances.def
11404
11405 * gen-pass-instances.awk: New.
11406
11407 * passes.c (pass_manager::pass_manager): Use pass-instances.def
11408 rather than passes.def, updating local definition of NEXT_PASS
11409 macro to add an extra NUM parameter (currently unused).
11410
315f8c0e
DM
114112013-07-30 David Malcolm <dmalcolm@redhat.com>
11412
11413 * Makefile.in (PASS_MANAGER_H): New.
11414 (lto-cgraph.o): Depend on CONTEXT_H and PASS_MANAGER_H.
11415 (passes.o): Likewise.
11416 (statistics.o): Likewise.
11417 (cgraphunit.o): Likewise.
11418 (context.o): Depend on PASS_MANAGER_H.
11419
11420 * pass_manager.h: New.
11421
11422 * cgraphunit.c (cgraph_add_new_function): Update for moves
11423 of globals to fields of pass_manager.
11424 (analyze_function): Likewise.
11425 (expand_function): Likewise.
11426 (ipa_passes): Likewise.
11427 (compile): Likewise.
11428
11429 * context.c (context::context): New.
11430 * context.h (context::context): New.
11431 (context::get_passes): New.
11432 (context::passes_): New.
11433
11434 * lto-cgraph.c (input_node): Update for moves of globals to
11435 fields of pass_manager.
11436
11437 * passes.c (all_passes): Remove, in favor of a field of the
11438 same name within the new class pass_manager.
11439 (all_small_ipa_passes): Likewise.
11440 (all_lowering_passes): Likewise.
11441 (all_regular_ipa_passes): Likewise.
11442 (all_late_ipa_passes): Likewise.
11443 (all_lto_gen_passes): Likewise.
11444 (passes_by_id): Likewise.
11445 (passes_by_id_size): Likewise.
11446 (gcc_pass_lists): Remove, in favor of "pass_lists" field within
11447 the new class pass_manager.
11448 (set_pass_for_id): Convert to...
11449 (pass_manager::set_pass_for_id): ...method.
11450 (get_pass_for_id): Convert to...
11451 (pass_manager::get_pass_for_id): ...method.
11452 (register_one_dump_file): Move body of implementation into...
11453 (pass_manager::register_one_dump_file): ...here.
11454 (register_dump_files_1): Convert to...
11455 (pass_manager::register_dump_files_1): ...method.
11456 (register_dump_files): Convert to...
11457 (pass_manager::register_dump_files): ...method.
11458 (create_pass_tab): Update for moves of globals to fields of
11459 pass_manager.
11460 (dump_passes): Move body of implementation into...
11461 (pass_manager::dump_passes): ...here.
11462 (register_pass): Move body of implementation into...
11463 (pass_manager::register_pass): ...here.
11464 (init_optimization_passes): Convert into...
11465 (pass_manager::pass_manager): ...constructor for new
11466 pass_manager class, and initialize the pass_lists array.
11467 (check_profile_consistency): Update for moves of globals to
11468 fields of pass_manager.
11469 (dump_profile_report): Move body of implementation into...
11470 (pass_manager::dump_profile_report): ...here.
11471 (ipa_write_summaries_1): Update for moves of pass lists from
11472 being globals to fields of pass_manager.
11473 (ipa_write_optimization_summaries): Likewise.
11474 (ipa_read_summaries): Likewise.
11475 (ipa_read_optimization_summaries): Likewise.
11476 (execute_all_ipa_stmt_fixups): Likewise.
11477
11478 * statistics.c (statistics_fini): Update for moves of globals to
11479 fields of pass_manager.
11480
11481 * toplev.c (general_init): Replace call to
11482 init_optimization_passes with construction of the pass_manager
11483 instance.
11484
11485 * tree-pass.h (all_passes): Remove, in favor of a field of the
11486 same name within the new class pass_manager.
11487 (all_small_ipa_passes): Likewise.
11488 (all_lowering_passes): Likewise.
11489 (all_regular_ipa_passes): Likewise.
11490 (all_lto_gen_passes): Likewise.
11491 (all_late_ipa_passes): Likewise.
11492 (passes_by_id): Likewise.
11493 (passes_by_id_size): Likewise.
11494 (gcc_pass_lists): Remove, in favor of "pass_lists" field within
11495 the new class pass_manager.
11496 (get_pass_for_id): Remove.
11497
02cab1c1
RE
114982013-07-30 Richard Earnshaw <rearnsha@arm.com>
11499
11500 * config.gcc (arm): Require 64-bit host-wide-int for all ARM target
11501 configs.
11502
b2d3f886
RE
115032013-07-30 Richard Earnshaw <rearnsha@arm.com>
11504
11505 * arm.md (mulhi3): New expand pattern.
11506
605e86fa
JH
115072013-07-30 Jan Hubicka <jh@suse.cz>
11508 Martin Liska <marxin.liska@gmail.com>
11509
11510 * profile.c (compute_value_histograms): Do not ICE when
11511 there is mismatch only on some counters.
11512
14a87636
ZC
115132013-07-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
11514
11515 PR rtl-optimization/57637
11516 * function.c (move_insn_for_shrink_wrap): Also check the
11517 GEN set of the LIVE problem for the liveness analysis
11518 if it exists, otherwise give up.
11519
0100cd3f
BS
115202013-07-29 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
11521
11522 PR tree-optimization/57993
11523 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Record
11524 replaced statement in the candidate table.
11525 (phi_add_costs): Return infinite cost when the hidden basis does
11526 not dominate all phis on which the candidate is dependent.
11527 (replace_one_candidate): Record replaced statement in the
11528 candidate table.
11529
f0d811f7
JR
115302013-07-29 Joern Rennecke <joern.rennecke@embecosm.com>
11531
11532 * config/epiphany/epiphany.md (*isub_i+2): New peephole.
11533 (ashlv2si3): New expander.
11534 (*ashlv2si3_i): New define_insn_and_split.
11535 * predicates.md (float_operation): Allow patterns with three
11536 basic sub-patterns.
11537
bba33211
JR
11538 PR rtl-optimization/58021
11539 * mode-switching.c (create_pre_exit): Always split off preceding
11540 insns if we are not at the basic block head.
11541
ff3f3951
MR
115422013-07-29 Maciej W. Rozycki <macro@codesourcery.com>
11543
11544 * config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Handle `-mnan=2008'.
11545 (UCLIBC_DYNAMIC_LINKER): New macro.
11546 * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32): Handle
11547 `-mnan=2008'.
11548 (GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32): Likewise.
11549 (UCLIBC_DYNAMIC_LINKER32): Undefine macro first. Handle
11550 `-mnan=2008'.
11551 (UCLIBC_DYNAMIC_LINKER64): Redefine macro.
11552 (UCLIBC_DYNAMIC_LINKERN32): Likewise.
11553 * config/mips/mips-modes.def: Remove RESET_FLOAT_FORMAT calls
11554 for SF and DF modes. Use ieee_quad_format for TF mode.
11555 * config/mips/mips-opts.h (mips_ieee_754_setting): New enum.
11556 * config/mips/mips.c (mips_file_start): Output a `.nan' directive.
11557 (mips_option_override): Handle `-mnan=legacy'.
11558 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Handle
11559 `-mabs=2008' and `-mnan=2008'.
11560 (OPTION_DEFAULT_SPECS): Add "nan" default.
11561 (ASM_SPEC): Handle `-mnan='.
11562 [!HAVE_AS_NAN] (HAVE_AS_NAN): New macro.
11563 * config/mips/mips.md (abs<mode>2): Handle `-mabs=2008', update
11564 comment accordingly.
11565 (neg<mode>2): Likewise.
11566 * config/mips/mips.opt (mabs, mnan): New options.
11567 * doc/install.texi (Configuration): Document `--with-nan=' option.
11568 * doc/invoke.texi (Option Summary): List MIPS `-mabs=' and
11569 `-mnan=' options.
11570 (MIPS Options): Document them.
11571 * config.gcc <mips*-*-*>: Handle `--with-nan='.
11572 * configure.ac <mips*-*-*>: Check for GAS `-mnan=2008' support.
11573 * configure: Regenerate.
11574 * config.in: Regenerate.
11575
576e2f37
UB
115762013-07-29 Uros Bizjak <ubizjak@gmail.com>
11577
11578 * config/i386/i386.md (float post-reload splitters): Do not check
11579 for subregs of SSE registers.
11580
115812013-07-29 Uros Bizjak <ubizjak@gmail.com>
11582 H.J. Lu <hongjiu.lu@intel.com>
11583
11584 PR target/57954
11585 PR target/57988
11586 * config/i386/i386.md (post-reload splitter
11587 to avoid partial SSE reg dependency stalls): New pattern.
11588
a71f0749
DV
115892013-07-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
11590
11591 * config/s390/s390.md ("movcc"): Swap load and store instructions.
11592
4c97f1cc
JR
115932013-07-27 Joern Rennecke <joern.rennecke@embecosm.com>
11594
11595 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
11596 Also reserve space for saving UNKNOWN_REGNUM for leaf functions.
11597
b0c733d8
CC
115982013-07-26 Cary Coutant <ccoutant@google.com>
11599
11600 * dwarf2out.c (die_checksum_ordered): Don't include template
11601 instantiations in signature.
11602 (is_template_parameter): New function.
11603 (is_template_instantiation): New function.
11604 (generate_skeleton_bottom_up): Don't include template instantiations
11605 in type unit DIE.
11606 (generate_skeleton): Likewise.
11607 (break_out_comdat_types): Move recursive call to break out nested
11608 types earlier.
11609 (prune_unused_types_mark_generic_parms_dies): Call
11610 is_template_parameter.
11611
040d8a1c
IB
116122013-07-26 Ian Bolton <ian.bolton@arm.com>
11613
11614 * config/aarch64/aarch64.md (neg<mode>2): Offer alternative that
11615 uses vector registers.
89fdc743 11616 * config/aarch64/iterators.md: Add attributes rtn and vas.
040d8a1c 11617
85bd4ac6 116182013-07-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
576e2f37 11619 Richard Earnshaw <richard.earnshaw@arm.com>
85bd4ac6
KT
11620
11621 * combine.c (simplify_comparison): Re-canonicalize operands
576e2f37 11622 where appropriate.
85bd4ac6
KT
11623 * config/arm/arm.md (movcond_addsi): New splitter.
11624
b6051207
SA
116252013-07-25 Sterling Augustine <saugustine@google.com>
11626
11627 * dwarf2out.c (size_of_pubnames): Move code to...
11628 (include_pubname_in_output): ...here. New.
11629 (want_pubnames): Rearrange.
11630 (output_pubnames): Call include_pubname_in_output. Move assertion.
11631
41a7c215
CM
116322013-07-25 Cameron McInally <cameron.mcinally@nyu.edu>
11633
11634 * doc/extend.texi: Fix return types for __builtin_ia32_cmp*s builtins.
11635
116362013-07-25 Cameron McInally <cameron.mcinally@nyu.edu>
11637
11638 PR target/38836
11639 * doc/extend.texi: Remove obsolete builtins. Fix
11640 typo for __builtin_ia32_loadss and __builtin_ia32_cmpnltss.
11641
49bde175
JH
116422013-07-25 Jan Hubicka <jh@suse.cz>
11643
11644 * cgraph.c (release_function_body): Break out from ...
11645 (cgraph_release_function_body): ... this one; also release DECL_RESULT
11646 and DECL_ARGUMENTS.
11647 * ipa-cp.c (get_replacement_map): Add parm_num argument; do not set
11648 old_tree in the map.
11649 (create_specialized_node): Update.
11650 * lto-cgraph.c (output_node_opt_summary): Do not translate old_tree
11651 into index.
41a7c215
CM
11652 * cgraphclones.c (cgraph_create_virtual_clone): Do not copy
11653 DECL_ARGUMENTS, DECL_INITIAL and DECL_RESULT.
49bde175
JH
11654 * ipa-prop.c (ipa_populate_param_decls): Look for origin of clones.
11655 * tree-inline.c (initialize_cfun): Initialize DECL_ARGUMENTS and
11656 DECL_RESULT.
11657
4870352d
KT
116582013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11659
11660 * config/arm/arm.md (arm_addsi3, addsi3_carryin_<optab>,
11661 addsi3_carryin_alt2_<optab>): Correct output template.
11662
1d6aee1c
KT
116632013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11664
11665 * config/arm/arm-fixed.md (ssmulsa3, usmulusa3):
11666 Adjust for arm_restrict_it.
11667 Remove trailing whitespace.
11668
c7cafd75
MK
116692013-07-25  Mark Kettenis  <kettenis@openbsd.org>
11670
017d38f5
MK
11671 * config/pa/pa.c (pa_trampoline_init): Emit __enable_execute_stack
11672 libcall if HAVE_ENABLE_EXECUTE_STACK is defined.
11673
c7cafd75
MK
11674 * config.gcc (hppa-*-openbsd*): Don't set tmake_file.
11675
00b7527b
VM
116762013-07-25 Vladimir Makarov <vmakarov@redhat.com>
11677
11678 PR rtl-optimization/57960
11679 * lra-constraints.c (process_alt_operands): Use the right mode
11680 when checking strict_low.
11681
4f63dfc6
JH
116822013-07-25 Jan Hubicka <jh@suse.cz>
11683
11684 * lto-symtab.c (lto_cgraph_replace_node): Release function body.
11685 * cgraph.c (cgraph_remove_node): Do not release function body
11686 when in cgraph streaming.
11687 * ipa.c (process_references, symtab_remove_unreachable_nodes): Objects
41a7c215
CM
11688 in other partitions are not considered reachable; fix handling of
11689 clones.
4f63dfc6 11690
e6dcfa18
RR
116912013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11692
11693 * config/arm/arm.md (*sibcall_insn): Remove unnecessary space.
11694
0b93d3b6
RR
116952013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11696
11697 PR target/19599
11698 PR target/57731
bb80c2eb 11699 PR target/57837
e6dcfa18 11700 * config/arm/arm.md ("*sibcall_insn): Replace use of
0b93d3b6 11701 Ss with US. Adjust output for v5 and v4t.
41a7c215 11702 (*sibcall_value_insn): Likewise and loosen predicate on operand0.
e6dcfa18 11703
0b93d3b6
RR
11704 * config/arm/constraints.md ("Ss"): Rename to US.
11705
690688b3
TG
117062013-07-25 Terry Guo <terry.guo@arm.com>
11707
11708 * config/arm/arm.c (thumb1_size_rtx_costs): Assign proper cost for
11709 shift_add/shift_sub0/shift_sub1 RTXs.
11710
a4ad093b 117112013-07-24 Bill Schmidt <wschmidt@linux.ibm.com>
12211b99 11712 Anton Blanchard <anton@au1.ibm.com>
a4ad093b
BS
11713
11714 * config/rs6000/altivec.md (altivec_vpkpx): Handle little endian.
11715 (altivec_vpks<VI_char>ss): Likewise.
11716 (altivec_vpks<VI_char>us): Likewise.
11717 (altivec_vpku<VI_char>us): Likewise.
11718 (altivec_vpku<VI_char>um): Likewise.
11719
8c5005ce
DM
117202013-07-24 David Malcolm <dmalcolm@redhat.com>
11721
11722 Introduce context class.
11723
11724 * Makefile.in (CONTEXT_H): New.
11725 (OBJS): Add context.o.
11726 (toplev.o): Add CONTEXT_H to dependencies.
11727 (context.o): New.
11728
41a7c215 11729 * toplev.c (general_init): Create the singleton gcc::context instance.
8c5005ce
DM
11730
11731 * context.c: New.
11732
11733 * context.h: New.
11734
ce4a9422
JR
117352013-07-24 Joern Rennecke <joern.rennecke@embecosm.com>
11736
11737 PR rtl-optimization/57968
11738 * mode-switching.c (create_pre_exit): Allow instructions that
11739 don't set a return register to need a non-exit mode.
11740
493f4c9e 117412013-07-24 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
12211b99 11742 Anton Blanchard <anton@au1.ibm.com>
493f4c9e 11743
b5860fd3
WS
11744 * config/rs6000/vector.md (vec_realign_load_<mode>): Reorder input
11745 operands to vperm for little endian.
11746 * config/rs6000/rs6000.c (rs6000_expand_builtin): Use lvsr instead
11747 of lvsl to create the control mask for a vperm for little endian.
493f4c9e 11748
73792b92 117492013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 11750 Anton Blanchard <anton@au1.ibm.com>
73792b92
BS
11751
11752 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Reverse
11753 two operands for little-endian.
11754
14c21302
SE
117552013-07-23 Steve Ellcey <sellcey@mips.com>
11756
11757 * config/mips/mips.c (mips_case_values_threshold): New.
11758 (TARGET_CASE_VALUES_THRESHOLD): Define.
11759
a6056198 117602013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 11761 Anton Blanchard <anton@au1.ibm.com>
a6056198
BS
11762
11763 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Correct
11764 selection of field for vector splat in little endian mode.
11765
dd7a40e1
MM
117662013-07-23 Michael Meissner <meissner@linux.vnet.ibm.com>
11767
11768 * config/rs6000/vector.md (xor<mode>3): Move 128-bit boolean
11769 expanders to rs6000.md.
11770 (ior<mode>3): Likewise.
11771 (and<mode>3): Likewise.
11772 (one_cmpl<mode>2): Likewise.
11773 (nor<mode>3): Likewise.
11774 (andc<mode>3): Likewise.
11775 (eqv<mode>3): Likewise.
11776 (nand<mode>3): Likewise.
11777 (orc<mode>3): Likewise.
11778
11779 * config/rs6000/rs6000-protos.h (rs6000_split_logical): New
11780 declaration.
11781
11782 * config/rs6000/rs6000.c (rs6000_split_logical_inner): Add support
11783 to split multi-word logical operations.
11784 (rs6000_split_logical_di): Likewise.
11785 (rs6000_split_logical): Likewise.
11786
11787 * config/rs6000/vsx.md (VSX_L2): Delete, no longer used.
11788 (vsx_and<mode>3_32bit): Move 128-bit logical insns to rs6000.md,
11789 and allow TImode operations in 32-bit.
11790 (vsx_and<mode>3_64bit): Likewise.
11791 (vsx_ior<mode>3_32bit): Likewise.
11792 (vsx_ior<mode>3_64bit): Likewise.
11793 (vsx_xor<mode>3_32bit): Likewise.
11794 (vsx_xor<mode>3_64bit): Likewise.
11795 (vsx_one_cmpl<mode>2_32bit): Likewise.
11796 (vsx_one_cmpl<mode>2_64bit): Likewise.
11797 (vsx_nor<mode>3_32bit): Likewise.
11798 (vsx_nor<mode>3_64bit): Likewise.
11799 (vsx_andc<mode>3_32bit): Likewise.
11800 (vsx_andc<mode>3_64bit): Likewise.
11801 (vsx_eqv<mode>3_32bit): Likewise.
11802 (vsx_eqv<mode>3_64bit): Likewise.
11803 (vsx_nand<mode>3_32bit): Likewise.
11804 (vsx_nand<mode>3_64bit): Likewise.
11805 (vsx_orc<mode>3_32bit): Likewise.
11806 (vsx_orc<mode>3_64bit): Likewise.
11807
11808 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Always allow vector
11809 logical types in GPRs.
11810
11811 * config/rs6000/altivec.md (altivec_and<mode>3): Move 128-bit
11812 logical insns to rs6000.md, and allow TImode operations in
11813 32-bit.
11814 (altivec_ior<mode>3): Likewise.
11815 (altivec_xor<mode>3): Likewise.
11816 (altivec_one_cmpl<mode>2): Likewise.
11817 (altivec_nor<mode>3): Likewise.
11818 (altivec_andc<mode>3): Likewise.
11819
11820 * config/rs6000/rs6000.md (BOOL_128): New mode iterators and mode
11821 attributes for moving the 128-bit logical operations into
11822 rs6000.md.
11823 (BOOL_REGS_OUTPUT): Likewise.
11824 (BOOL_REGS_OP1): Likewise.
11825 (BOOL_REGS_OP2): Likewise.
11826 (BOOL_REGS_UNARY): Likewise.
11827 (BOOL_REGS_AND_CR0): Likewise.
11828 (one_cmpl<mode>2): Add support for DI logical operations on
11829 32-bit, splitting the operations to 32-bit.
11830 (anddi3): Likewise.
11831 (iordi3): Likewise.
11832 (xordi3): Likewise.
11833 (and<mode>3, 128-bit types): Rewrite 2013-06-06 logical operator
11834 changes to combine the 32/64-bit code, allow logical operations on
11835 TI mode in 32-bit, and to use similar match_operator patterns like
11836 scalar mode uses. Combine the Altivec and VSX code for logical
11837 operations, and move it here.
11838 (ior<mode>3, 128-bit types): Likewise.
11839 (xor<mode>3, 128-bit types): Likewise.
11840 (one_cmpl<mode>3, 128-bit types): Likewise.
11841 (nor<mode>3, 128-bit types): Likewise.
11842 (andc<mode>3, 128-bit types): Likewise.
11843 (eqv<mode>3, 128-bit types): Likewise.
11844 (nand<mode>3, 128-bit types): Likewise.
11845 (orc<mode>3, 128-bit types): Likewise.
11846 (and<mode>3_internal): Likewise.
11847 (bool<mode>3_internal): Likewise.
11848 (boolc<mode>3_internal1): Likewise.
11849 (boolc<mode>3_internal2): Likewise.
11850 (boolcc<mode>3_internal1): Likewise.
11851 (boolcc<mode>3_internal2): Likewise.
11852 (eqv<mode>3_internal1): Likewise.
11853 (eqv<mode>3_internal2): Likewise.
11854 (one_cmpl1<mode>3_internal): Likewise.
11855
12211b99 118562013-07-23 David Holsgrove <david.holsgrove@xilinx.com>
9b69d4b4
DH
11857
11858 * config/microblaze/microblaze.c (microblaze_expand_prologue):
11859 Rename flag_stack_usage to flag_stack_usage_info.
11860
12211b99 118612013-07-23 David Holsgrove <david.holsgrove@xilinx.com>
450b0ebb 11862
a5f257fd
ME
11863 * config/microblaze/sync.md: New file.
11864 * config/microblaze/microblaze.md: Include sync.md
11865 * config/microblaze/microblaze.c: Add print_operand 'y'.
11866 * config/microblaze/constraints.md: Add memory_contraint
11867 'Q' which is a single register.
450b0ebb 11868
49fba14f
EB
118692013-07-23 Eric Botcazou <ebotcazou@adacore.com>
11870
11871 * doc/invoke.texi (SPARC Options): Document new leon3 processor value.
11872
c7b3b99f
PCC
118732013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu>
11874
11875 * reload.c (find_reloads): Exit loop once we find this operand
11876 cannot be reloaded somehow for this alternative.
11877
11878 * reload.c (find_reloads): Exit loop once we find a hard register.
11879
11880 * rtlanal.c (computed_jump_p): Exit loop once we find label
11881 reference is used.
11882
11883 * i386.c (ix86_pad_returns): Exit loop after setting replace.
11884
11885 * cfgloopmanip.c (remove_path): Exit loop after setting
11886 irred_invalidated.
11887
11888 * gensupport.c (subst_dup): Avoid loop if code is not
11889 MATCH_DUP nor MATCH_OP_DUP.
11890
c8fbf1fa
NBJ
118912013-07-23 Nicklas Bo Jensen <nbjensen@gmail.com>
11892
11893 * doc/md.texi (Machine-Specific Peephole Optimizers): Fix a typo.
11894
9259db42
YZ
118952013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
11896
11897 * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Also return
11898 true for SP_REGNUM if mode == ptr_mode.
11899 * config/aarch64/aarch64.h (ADDITIONAL_REGISTER_NAMES): Add "wsp"
11900 with value R0_REGNUM + 31.
11901
00edcfbe
YZ
119022013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
11903
11904 * config/aarch64/aarch64.c (aarch64_pad_arg_upward): In big-endian,
11905 pad pointer-typed argument downward.
11906
43be9a95
YZ
119072013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
11908
11909 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define _ILP32
11910 and __ILP32__ when the ILP32 model is in use.
11911
28514dda
YZ
119122013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
11913
11914 * config/aarch64/aarch64.c (POINTER_BYTES): New define.
11915 (aarch64_load_symref_appropriately): In the case of
11916 SYMBOL_SMALL_ABSOLUTE, use the mode of 'dest' instead of Pmode
11917 to generate new rtx; likewise to the case of SYMBOL_SMALL_GOT.
11918 (aarch64_expand_mov_immediate): In the case of SYMBOL_FORCE_TO_MEM,
11919 change to pass 'ptr_mode' to force_const_mem and zero-extend 'mem'
11920 if 'mode' doesn't equal to 'ptr_mode'.
11921 (aarch64_output_mi_thunk): Add an assertion on the alignment of
11922 'vcall_offset'; change to call aarch64_emit_move differently depending
11923 on whether 'Pmode' equals to 'ptr_mode' or not; use 'POINTER_BYTES'
11924 to calculate the upper bound of 'vcall_offset'.
11925 (aarch64_cannot_force_const_mem): Change to also return true if
11926 mode != ptr_mode.
11927 (aarch64_legitimize_reload_address): In the case of large
11928 displacements, add new local variable 'xmode' and an assertion
11929 based on it; change to use 'xmode' to generate the new rtx and
11930 reload.
11931 (aarch64_asm_trampoline_template): Change to generate the template
11932 differently depending on TARGET_ILP32 or not; change to use
11933 'POINTER_BYTES' in the argument passed to assemble_aligned_integer.
11934 (aarch64_trampoline_size): Removed.
11935 (aarch64_trampoline_init): Add new local constant 'tramp_code_sz'
11936 and replace immediate literals with it. Change to use 'ptr_mode'
11937 instead of 'DImode' and call convert_memory_address if the mode
11938 of 'fnaddr' doesn't equal to 'ptr_mode'.
11939 (aarch64_elf_asm_constructor): Change to use assemble_aligned_integer
11940 to output symbol.
11941 (aarch64_elf_asm_destructor): Likewise.
11942 * config/aarch64/aarch64.h (TRAMPOLINE_SIZE): Change to be dependent
11943 on TARGET_ILP32 instead of aarch64_trampoline_size.
11944 * config/aarch64/aarch64.md (movsi_aarch64): Add new alternatives
11945 of 'mov' between WSP and W registers as well as 'adr' and 'adrp'.
11946 (loadwb_pair<GPI:mode>_<PTR:mode>): Rename to ...
11947 (loadwb_pair<GPI:mode>_<P:mode>): ... this. Replace PTR with P.
11948 (storewb_pair<GPI:mode>_<PTR:mode>): Likewise; rename to ...
11949 (storewb_pair<GPI:mode>_<P:mode>): ... this.
11950 (add_losym): Change to 'define_expand' and call gen_add_losym_<mode>
11951 depending on the value of 'mode'.
11952 (add_losym_<mode>): New.
11953 (ldr_got_small_<mode>): New, based on ldr_got_small.
11954 (ldr_got_small): Remove.
11955 (ldr_got_small_sidi): New.
11956 * config/aarch64/iterators.md (P): New.
11957 (PTR): Change to 'ptr_mode' in the condition.
11958
17a819cb
YZ
119592013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
11960
11961 * config.gcc (aarch64*-*-*): Support --with-abi.
11962 (aarch64*-*-elf): Support --with-multilib-list.
11963 (aarch64*-*-linux*): Likewise.
11964 (supported_defaults): Add abi to aarch64*-*-*.
11965 * configure.ac: Mention AArch64 for --with-multilib-list.
11966 * configure: Re-generated.
11967 * config/aarch64/biarchilp32.h: New file.
11968 * config/aarch64/biarchlp64.h: New file.
11969 * config/aarch64/aarch64-elf.h (ENDIAN_SPEC): New define.
11970 (ABI_SPEC): Ditto.
11971 (MULTILIB_DEFAULTS): Ditto.
11972 (DRIVER_SELF_SPECS): Ditto.
11973 (ASM_SPEC): Update to also substitute -mabi.
11974 * config/aarch64/aarch64-elf-raw.h (LINK_SPEC): Add linker script
11975 file whose name depends on -mabi= and -mbig-endian.
11976 * config/aarch64/aarch64.h (LONG_TYPE_SIZE): Change to depend on
11977 TARGET_ILP32.
11978 (POINTER_SIZE): New define.
11979 (POINTERS_EXTEND_UNSIGNED): Ditto.
11980 (enum aarch64_abi_type): New enumeration tag.
11981 (AARCH64_ABI_LP64, AARCH64_ABI_ILP32): New enumerators.
11982 (AARCH64_ABI_DEFAULT): Define to AARCH64_ABI_LP64 if undefined.
11983 (TARGET_ILP32): New define.
11984 * config/aarch64/aarch64.opt (mabi): New.
11985 (aarch64_abi): New.
11986 (ilp32, lp64): New values for -mabi.
11987 * config/aarch64/t-aarch64 (comma): New define.
11988 (MULTILIB_OPTIONS): Ditto.
11989 (MULTILIB_DIRNAMES): Ditto.
11990 * config/aarch64/t-aarch64-linux (MULTIARCH_DIRNAME): New define.
11991 * doc/invoke.texi: Document -mabi for AArch64.
11992
9f9cbdce
GJL
119932013-07-23 Georg-Johann Lay <avr@gjlay.de>
11994
11995 * config/avr/avr.md: Explain asm print modifier 'r' for REG.
11996
7061977b 119972013-07-22 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
12211b99 11998 Anton Blanchard <anton@au1.ibm.com>
7061977b
BS
11999
12000 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Fix
12001 endianness when selecting field to splat.
12002
75a41878
EC
120032013-07-22 Eric Christopher <echristo@gmail.com>
12004
12005 * dwarf2out.c (die_odr_checksum): New function to use
12006 CHECKSUM_ macros and ULEB128 for DIE tag.
12007 (generate_type_signature): Use.
41a7c215 12008
38ae58ca
EB
120092013-07-22 Eric Botcazou <ebotcazou@adacore.com>
12010
12011 * config.gcc (sparc*-*-*): Accept leon3 processor.
12012 (sparc-leon*-*): Merge with sparc*-*-* and add leon3 support.
12013 * doc/invoke.texi (SPARC Options): Adjust -mfix-ut699 entry.
12014 * config/sparc/sparc-opts.h (enum processor_type): Add PROCESSOR_LEON3.
12015 * config/sparc/sparc.opt (enum processor_type): Add leon3.
12016 (mfix-ut699): Adjust comment.
12017 * config/sparc/sparc.h (TARGET_CPU_leon3): New define.
12018 (CPP_CPU32_DEFAULT_SPEC): Add leon3 support.
12019 (CPP_CPU_SPEC): Likewise.
12020 (ASM_CPU_SPEC): Likewise.
12021 * config/sparc/sparc.c (leon3_cost): New constant.
12022 (sparc_option_override): Add leon3 support.
12023 (mem_ref): New function.
12024 (sparc_gate_work_around_errata): Return true if -mfix-ut699 is enabled.
12025 (sparc_do_work_around_errata): Look into the instruction in the delay
12026 slot and adjust accordingly. Add fix for the data cache nullify issues
12027 of the UT699. Change insertion position for the NOP.
12028 * config/sparc/leon.md (leon_fpalu, leon_fpmds, write_buf): Delete.
12029 (leon3_load): New reservation.
12030 (leon_store): Bump latency to 2.
12031 (grfpu): New automaton.
12032 (grfpu_alu): New unit.
12033 (grfpu_ds): Likewise.
12034 (leon_fp_alu): Adjust.
12035 (leon_fp_mult): Delete.
12036 (leon_fp_div): Split into leon_fp_divs and leon_fp_divd.
12037 (leon_fp_sqrt): Split into leon_fp_sqrts and leon_fp_sqrtd.
12038 * config/sparc/sparc.md (cpu): Add leon3.
12039 * config/sparc/sync.md (atomic_exchangesi): Disable if -mfix-ut699.
12040 (swapsi): Likewise.
12041 (atomic_test_and_set): Likewise.
12042 (ldstub): Likewise.
12043
04dfc6df
JU
120442013-07-22 Jürgen Urban <JuergenUrban@gmx.de>
12045
12046 * config.gcc (mips*-*-*): Add --with-fpu support. Make single the
12047 default for R5900 targets.
12048 * config/mips/mips.h (OPTION_DEFAULT_SPECS): Handle --with-fpu.
12049 (ISA_HAS_LDC1_SDC1): Set to false for TARGET_MIPS5900.
12050 * config/mips/mips.c (mips_option_override): Report an error for
12051 -march=r5900 -mhard-float -mdouble-float. Use spu_single_format
12052 for -march=r5900 -mhard-float.
12053
c7b3b99f 120542013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu>
ae382ebd
PCC
12055
12056 * df-problems.c (can_move_insns_across): Exit loop once we
12057 find a non-fixed, non-global register.
12058
12059 * ipa-pure-const.c (propagate_nothrow): Exit loop after
12060 setting can_throw.
12061
12062 * omega.c (omega_eliminate_red): Break after setting red_found.
12063 (omega_problem_has_red_equations): Similarly after setting found.
12064 (omega_query_variable): Similarly after setting coupled.
12065
9b6e6981
MP
120662013-07-22 Marek Polacek <polacek@redhat.com>
12067
12068 * gimplify.c: Don't include gimple.h twice.
12069
5e5f7673
KT
120702013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12071
12072 * config/arm/constraints.md (Pd): Allow TARGET_THUMB
12073 instead of TARGET_THUMB1.
12074 (Pz): New constraint.
12075 * config/arm/arm.md (arm_addsi3): Add alternatives for 16-bit
12076 encodings.
12077 (compare_negsi_si): Likewise.
12078 (compare_addsi2_op0): Likewise.
12079 (compare_addsi2_op1): Likewise.
12080 (addsi3_carryin_<optab>): Likewise.
12081 (addsi3_carryin_alt2_<optab>): Likewise.
12082 (addsi3_carryin_shift_<optab>): Disable cond_exec variant
12083 for arm_restrict_it.
12084 (subsi3_carryin): Likewise.
12085 (arm_subsi3_insn): Add alternatives for 16-bit encoding.
12086 (minmax_arithsi): Disable for arm_restrict_it.
12087 (minmax_arithsi_non_canon): Adjust for arm_restrict_it.
12088 (satsi_<SAT:code>): Disable cond_exec variant for arm_restrict_it.
12089 (satsi_<SAT:code>_shift): Likewise.
12090 (arm_shiftsi3): Add alternative for 16-bit encoding.
12091 (arm32_movhf): Disable for arm_restrict_it.
12092 (arm_cmpdi_unsigned): Add alternatives for 16-bit encoding.
12093 (arm_movtas_ze): Disable cond_exec variant for arm_restrict_it.
12094
859abddd
SN
120952013-07-22 Sofiane Naci <sofiane.naci@arm.com>
12096
12097 * config/arm/arm.md (attribute "insn"): Delete.
12098 (attribute "type"): Add "mov_imm", "mov_reg", "mov_shift",
12099 "mov_shift_reg", "mvn_imm", "mvn_reg", "mvn_shift" and "mvn_shift_reg".
12100 (not_shiftsi): Update for attribute change.
12101 (not_shiftsi_compare0): Likewise.
12102 (not_shiftsi_compare0_scratch): Likewise.
12103 (arm_one_cmplsi2): Likewise.
12104 (thumb1_one_cmplsi2): Likewise.
12105 (notsi_compare0): Likewise.
12106 (notsi_compare0_scratch): Likewise.
12107 (thumb1_movdi_insn): Likewise.
12108 (arm_movsi_insn): Likewise.
12109 (movhi_insn_arch4): Likewise.
12110 (movhi_bytes): Likewise.
12111 (arm_movqi_insn): Likewise.
12112 (thumb1_movqi_insn): Likewise.
12113 (arm32_movhf): Likewise.
12114 (thumb1_movhf): Likewise.
12115 (arm_movsf_soft_insn): Likewise.
12116 (thumb1_movsf_insn): Likewise.
12117 (thumb_movdf_insn): Likewise.
12118 (movsicc_insn): Likewise.
12119 (movsfcc_soft_insn): Likewise.
12120 (and_scc): Likewise.
12121 (cond_move): Likewise.
12122 (if_move_not): Likewise.
12123 (if_not_move): Likewise.
12124 (if_shift_move): Likewise.
12125 (if_move_shift): Likewise.
12126 (if_shift_shift): Likewise.
12127 (if_not_arith): Likewise.
12128 (if_arith_not): Likewise.
12129 (cond_move_not): Likewise.
12130 * config/arm/neon.md (neon_mov<mode>): Update for attribute change.
12131 (neon_mov<mode>): Likewise.
12132 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute change.
12133 (thumb2_movsi_vfp): Likewise.
12134 (movsf_vfp): Likewise.
12135 (thumb2_movsf_vfp): Likewise.
371e77e3
UB
12136 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute
12137 change.
859abddd
SN
12138 (cortexa7_older_only): Likewise.
12139 (cortexa7_younger): Likewise.
12140 * config/arm/arm1020e.md (1020alu_op): Update for attribute change.
12141 (1020alu_shift_op): Likewise.
12142 (1020alu_shift_reg_op): Likewise.
12143 * config/arm/arm1026ejs.md (alu_op): Update for attribute change.
12144 (alu_shift_op): Likewise.
12145 (alu_shift_reg_op): Likewise.
12146 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute change.
12147 (11_alu_shift_op): Likewise.
12148 (11_alu_shift_reg_op): Likewise.
12149 * config/arm/arm926ejs.md (9_alu_op): Update for attribute change.
12150 (9_alu_shift_reg_op): Likewise.
371e77e3
UB
12151 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
12152 change.
859abddd
SN
12153 (cortex_a15_alu_shift): Likewise.
12154 (cortex_a15_alu_shift_reg): Likewise.
12155 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute change.
12156 (cortex_a5_alu_shift): Likewise.
371e77e3
UB
12157 * config/arm/cortex-a53.md (cortex_a53_alu): Update for attribute
12158 change.
859abddd 12159 (cortex_a53_alu_shift): Likewise.
371e77e3
UB
12160 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
12161 change.
859abddd
SN
12162 (cortex_a7_alu_reg): Likewise.
12163 (cortex_a7_alu_shift): Likewise.
12164 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
12165 (cortex_a8_alu_shift): Likewise.
12166 (cortex_a8_alu_shift_reg): Likewise.
12167 (cortex_a8_mov): Likewise.
12168 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
12169 (cortex_a9_dp_shift): Likewise.
12170 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute change.
12171 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute change.
12172 (cortex_r4_mov): Likewise.
12173 (cortex_r4_alu_shift): Likewise.
12174 (cortex_r4_alu_shift_reg): Likewise.
12175 * config/arm/fa526.md (526_alu_op): Update for attribute change.
12176 (526_alu_shift_op): Likewise.
12177 * config/arm/fa606te.md (606te_alu_op): Update for attribute change.
12178 * config/arm/fa626te.md (626te_alu_op): Update for attribute change.
12179 (626te_alu_shift_op): Likewise.
12180 * config/arm/fa726te.md (726te_shift_op): Update for attribute change.
12181 (726te_alu_op): Likewise.
12182 (726te_alu_shift_op): Likewise.
12183 (726te_alu_shift_reg_op): Likewise.
12184 * config/arm/fmp626.md (mp626_alu_op): Update for attribute change.
12185 (mp626_alu_shift_op): Likewise.
12186 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute change.
12187 (pj4_alu_e1_conds): Likewise.
12188 (pj4_alu): Likewise.
12189 (pj4_alu_conds): Likewise.
12190 (pj4_shift): Likewise.
12191 (pj4_shift_conds): Likewise.
12192 (pj4_alu_shift): Likewise.
12193 (pj4_alu_shift_conds): Likewise.
12194
95b97fac
KT
121952013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12196
12197 * config/arm/predicates.md (shiftable_operator_strict_it):
12198 New predicate.
12199 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si):
12200 Disable cond_exec version for arm_restrict_it.
12201 (thumb2_smaxsi3): Convert to generate cond_exec.
12202 (thumb2_sminsi3): Likewise.
12203 (thumb32_umaxsi3): Likewise.
12204 (thumb2_uminsi3): Likewise.
12205 (thumb2_abssi2): Adjust constraints for arm_restrict_it.
12206 (thumb2_neg_abssi2): Likewise.
12207 (thumb2_mov_scc): Add alternative for 16-bit encoding.
12208 (thumb2_movsicc_insn): Adjust alternatives.
12209 (thumb2_mov_negscc): Disable for arm_restrict_it.
12210 (thumb2_mov_negscc_strict_it): New pattern.
12211 (thumb2_mov_notscc_strict_it): New pattern.
12212 (thumb2_mov_notscc): Disable for arm_restrict_it.
12213 (thumb2_ior_scc): Likewise.
12214 (thumb2_ior_scc_strict_it): New pattern.
12215 (thumb2_cond_move): Adjust for arm_restrict_it.
12216 (thumb2_cond_arith): Disable for arm_restrict_it.
12217 (thumb2_cond_arith_strict_it): New pattern.
12218 (thumb2_cond_sub): Adjust for arm_restrict_it.
12219 (thumb2_movcond): Likewise.
12220 (thumb2_extendqisi_v6): Disable cond_exec variant for arm_restrict_it.
12221 (thumb2_zero_extendhisi2_v6): Likewise.
12222 (thumb2_zero_extendqisi2_v6): Likewise.
12223 (orsi_notsi_si): Likewise.
12224 (orsi_not_shiftsi_si): Likewise.
12225
d5a6ef82
GJL
122262013-07-22 Georg-Johann Lay <avr@gjlay.de>
12227
12228 * config/avr/avr.c (avr_out_xload): No SBIS around LPM so that
12229 instruction sequence is 1 byte shorter.
12230
d9e71154
UB
122312013-07-22 Uros Bizjak <ubizjak@gmail.com>
12232
12233 * config/i386/i386.md (nonlocal_goto_receiver): Delete insn if
12234 it is not needed after split.
12235
8c6381ec
IS
122362013-07-20 Iain Sandoe <iain@codesourcery.com>
12237
12238 PR target/51784
12239 * config/i386/i386.c (output_set_got) [TARGET_MACHO]: Adjust to emit a
12240 second label for nonlocal goto receivers. Don't output pic base labels
12241 unless we're producing PIC; mark that action unreachable().
12242 (ix86_save_reg): If the function contains a nonlocal label, save the
12243 PIC base reg.
12244 * config/darwin-protos.h (machopic_should_output_picbase_label): New.
f43245d1 12245 * config/darwin.c (emitted_pic_label_num): New GTY.
8c6381ec
IS
12246 (update_pic_label_number_if_needed): New.
12247 (machopic_output_function_base_name): Adjust for nonlocal receiver
12248 case.
12249 (machopic_should_output_picbase_label): New.
12250 * config/i386/i386.md (enum unspecv): UNSPECV_NLGR: New.
12251 (nonlocal_goto_receiver): New insn and split.
12252
d05d0709
JG
122532013-07-20 James Greenhalgh <james.greenhalgh@arm.com>
12254
12255 * config/aarch64/aarch64-builtins.c
12256 (aarch64_fold_builtin): Fold abs in all modes.
12257 * config/aarch64/aarch64-simd-builtins.def
12258 (abs): Enable for all modes.
12259 * config/aarch64/arm_neon.h
12260 (vabs<q>_s<8,16,32,64): Rewrite using builtins.
12261 (vabs_f64): Add missing intrinsic.
12262
ba590e63
IB
122632013-07-19 Ian Bolton <ian.bolton@arm.com>
12264
12265 * config/aarch64/arm_neon.h (vabs_s64): New function
12266
02371798
GJL
122672013-07-19 Georg-Johann Lay <avr@gjlay.de>
12268
12269 PR target/57516
12270 * config/avr/avr-fixed.md (round<mode>3_const): Turn expander to insn.
12271 * config/avr/avr.md (adjust_len): Add `round'.
12272 * config/avr/avr-protos.h (avr_out_round): New prototype.
12273 (avr_out_plus): Add `out_label' argument.
12274 * config/avr/avr.c (avr_out_plus_1): Add `out_label' argument.
12275 (avr_out_plus): Pass down `out_label' to avr_out_plus_1.
12276 Handle the case where `insn' is just a pattern.
12277 (avr_out_bitop): Handle the case where `insn' is just a pattern.
12278 (avr_out_round): New function.
12279 (avr_adjust_insn_length): Handle ADJUST_LEN_ROUND.
12280
12211b99 122812013-07-18 David Holsgrove <david.holsgrove@xilinx.com>
b950ac25
DH
12282
12283 * config/microblaze/microblaze.c (microblaze_expand_prologue):
12284 Add check for flag_stack_usage to handle -fstack-usage support
12285
12211b99 122862013-07-18 Pat Haugen <pthaugen@us.ibm.com>
ed1fd999
PH
12287
12288 * config/rs6000/rs6000.c (rs6000_option_override_internal): Adjust flag
12289 interaction for new Power8 flags and VSX.
12290
df9dda2d
ST
122912013-07-18 Sriraman Tallam <tmsriram@google.com>
12292
12293 PR middle-end/57698
12294 * tree-inline.c (expand_call_inline): Emit errors during
12295 early_inlining only if optimization is not turned on.
12296
0f9cdef4
DM
122972013-07-18 David Malcolm <dmalcolm@redhat.com>
12298
12299 * passes.def: New.
12300
12301 * passes.c (init_optimization_passes): Move the construction of
12302 the pass hierarchy into a new passes.def file.
12303
12304 * Makefile.in (passes.o): Add dependency on passes.def.
12305
2efa4087
DM
123062013-07-18 David Malcolm <dmalcolm@redhat.com>
12307
12308 * passes.c (init_optimization_passes): Introduce macros for
12309 constructing the tree of passes (INSERT_PASSES_AFTER,
12310 PUSH_INSERT_PASSES_WITHIN, POP_INSERT_PASSES,
12311 TERMINATE_PASS_LIST).
12312
bc404e1b
VM
123132013-07-18 Vladimir Makarov <vmakarov@redhat.com>
12314 Wei Mi <wmi@google.com>
12315
12316 PR rtl-optimization/57878
12317 * lra-assigns.c (assign_by_spills): Move non_reload_pseudos to the
12318 top.
12319 (reload_pseudo_compare_func): Check nregs first for reload
12320 pseudos.
12321
d675843f
DM
123222013-07-18 David Malcolm <dmalcolm@redhat.com>
12323
12324 * tree-pass.h (pass_ipa_lto_wpa_fixup): Remove redundant decl.
12325
c7b3b99f 123262013-07-18 Po-Chun Chang <pchang9@cs.wisc.edu>
bcb97fbd
PCC
12327
12328 * read-rtl.c (validate_const_int): Once an invalid character is
12329 seen, quit the loop.
12330
12331 * gengtype.c (write_roots): Similarly once we find the "deletable"
12332 or "if_marked" option.
12333
52fceb44
SN
123342013-07-18 Sofiane Naci <sofiane.naci@arm.com>
12335
12336 * config/arm/arm.md (attribute "insn"): Delete values "mrs", "msr",
12337 "xtab" and "sat". Move value "clz" from here to ...
12338 (attriubte "type"): ... here.
12339 (satsi_<SAT:code>): Delete "insn" attribute.
12340 (satsi_<SAT:code>_shift): Likewise.
12341 (arm_zero_extendqisi2addsi): Likewise.
12342 (arm_extendqisi2addsi): Likewise.
12343 (clzsi2): Update for attribute changes.
12344 (rbitsi2): Likewise.
371e77e3
UB
12345 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Delete "insn"
12346 attribute.
52fceb44
SN
12347 (arm_usatsihi): Likewise.
12348 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
12349
006bd006
SN
123502013-07-18 Sofiane Naci <sofiane.naci@arm.com>
12351
12352 * config/arm/arm.md (attribute "type"): Rename "simple_alu_imm" to
371e77e3
UB
12353 "arlo_imm". Rename "alu_reg" to "arlo_reg". Rename "simple_alu_shift"
12354 to "extend". Split "alu_shift" into "shift" and "arlo_shift". Split
006bd006
SN
12355 "alu_shift_reg" into "shift_reg" and "arlo_shift_reg". List types
12356 in alphabetical order.
12357 (attribute "core_cycles"): Update for attribute changes.
12358 (arm_addsi3): Likewise.
12359 (addsi3_compare0): Likewise.
12360 (addsi3_compare0_scratch): Likewise.
12361 (addsi3_compare_op1): Likewise.
12362 (addsi3_compare_op2): Likewise.
12363 (compare_addsi2_op0): Likewise.
12364 (compare_addsi2_op1): Likewise.
12365 (addsi3_carryin_shift_<optab>): Likewise.
12366 (subsi3_carryin_shift): Likewise.
12367 (rsbsi3_carryin_shift): Likewise.
12368 (arm_subsi3_insn): Likewise.
12369 (subsi3_compare0): Likewise.
12370 (subsi3_compare): Likewise.
12371 (arm_andsi3_insn): Likewise.
12372 (thumb1_andsi3_insn): Likewise.
12373 (andsi3_compare0): Likewise.
12374 (andsi3_compare0_scratch): Likewise.
12375 (zeroextractsi_compare0_scratch
12376 (andsi_not_shiftsi_si): Likewise.
12377 (iorsi3_insn): Likewise.
12378 (iorsi3_compare0): Likewise.
12379 (iorsi3_compare0_scratch): Likewise.
12380 (arm_xorsi3): Likewise.
12381 (thumb1_xorsi3_insn): Likewise.
12382 (xorsi3_compare0): Likewise.
12383 (xorsi3_compare0_scratch): Likewise.
12384 (satsi_<SAT:code>_shift): Likewise.
12385 (rrx): Likewise.
12386 (arm_shiftsi3): Likewise.
12387 (shiftsi3_compare0): Likewise.
12388 (not_shiftsi): Likewise.
12389 (not_shiftsi_compare0): Likewise.
12390 (not_shiftsi_compare0_scratch): Likewise.
12391 (arm_one_cmplsi2): Likewise.
12392 (thumb_one_complsi2): Likewise.
12393 (notsi_compare0): Likewise.
12394 (notsi_compare0_scratch): Likewise.
12395 (thumb1_zero_extendhisi2): Likewise.
12396 (arm_zero_extendhisi2): Likewise.
12397 (arm_zero_extendhisi2_v6): Likewise.
12398 (arm_zero_extendhisi2addsi): Likewise.
12399 (thumb1_zero_extendqisi2): Likewise.
12400 (thumb1_zero_extendqisi2_v6): Likewise.
12401 (arm_zero_extendqisi2): Likewise.
12402 (arm_zero_extendqisi2_v6): Likewise.
12403 (arm_zero_extendqisi2addsi): Likewise.
12404 (thumb1_extendhisi2): Likewise.
12405 (arm_extendhisi2): Likewise.
12406 (arm_extendhisi2_v6): Likewise.
12407 (arm_extendqisi): Likewise.
12408 (arm_extendqisi_v6): Likewise.
12409 (arm_extendqisi2addsi): Likewise.
12410 (thumb1_extendqisi2): Likewise.
12411 (thumb1_movdi_insn): Likewise.
12412 (arm_movsi_insn): Likewise.
12413 (movsi_compare0): Likewise.
12414 (movhi_insn_arch4): Likewise.
12415 (movhi_bytes): Likewise.
12416 (arm_movqi_insn): Likewise.
12417 (thumb1_movqi_insn): Likewise.
12418 (arm32_movhf): Likewise.
12419 (thumb1_movhf): Likewise.
12420 (arm_movsf_soft_insn): Likewise.
12421 (thumb1_movsf_insn): Likewise.
12422 (movdf_soft_insn): Likewise.
12423 (thumb_movdf_insn): Likewise.
12424 (arm_cmpsi_insn): Likewise.
12425 (cmpsi_shiftsi): Likewise.
12426 (cmpsi_shiftsi_swp): Likewise.
12427 (arm_cmpsi_negshiftsi_si): Likewise.
12428 (movsicc_insn): Likewise.
12429 (movsfcc_soft_insn): Likewise.
12430 (arith_shiftsi): Likewise.
12431 (arith_shiftsi_compare0
12432 (arith_shiftsi_compare0_scratch
12433 (sub_shiftsi): Likewise.
12434 (sub_shiftsi_compare0
12435 (sub_shiftsi_compare0_scratch
12436 (and_scc): Likewise.
12437 (cond_move): Likewise.
12438 (if_plus_move): Likewise.
12439 (if_move_plus): Likewise.
12440 (if_move_not): Likewise.
12441 (if_not_move): Likewise.
12442 (if_shift_move): Likewise.
12443 (if_move_shift): Likewise.
12444 (if_shift_shift): Likewise.
12445 (if_not_arith): Likewise.
12446 (if_arith_not): Likewise.
12447 (cond_move_not): Likewise.
12448 (thumb1_ashlsi3): Set type attribute.
12449 (thumb1_ashrsi3): Likewise.
12450 (thumb1_lshrsi3): Likewise.
12451 (thumb1_rotrsi3): Likewise.
12452 (shiftsi3_compare0_scratch): Likewise.
12453 * config/arm/neon.md (neon_mov<mode>): Update for attribute changes.
12454 (neon_mov<mode>): Likewise.
371e77e3
UB
12455 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si): Update for
12456 attribute changes.
006bd006
SN
12457 (thumb2_movsi_insn): Likewise.
12458 (thumb2_cmpsi_neg_shiftsi): Likewise.
12459 (thumb2_extendqisi_v6): Likewise.
12460 (thumb2_zero_extendhisi2_v6): Likewise.
12461 (thumb2_zero_extendqisi2_v6): Likewise.
12462 (thumb2_shiftsi3_short): Likewise.
12463 (thumb2_addsi3_compare0_scratch): Likewise.
12464 (orsi_not_shiftsi_si): Likewise.
12465 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
12466 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Update for attribute
12467 changes.
12468 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
12469 (1020alu_shift_op): Likewise.
12470 (1020alu_shift_reg_op): Likewise.
12471 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
12472 (alu_shift_op): Likewise.
12473 (alu_shift_reg_op): Likewise.
12474 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
12475 (11_alu_shift_op): Likewise.
12476 (11_alu_shift_reg_op): Likewise.
12477 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
12478 (9_alu_shift_reg_op): Likewise.
371e77e3
UB
12479 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
12480 changes.
006bd006
SN
12481 (cortex_a15_alu_shift): Likewise.
12482 (cortex_a15_alu_shift_reg): Likewise.
371e77e3
UB
12483 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute
12484 changes.
006bd006
SN
12485 (cortex_a5_alu_shift): Likewise.
12486 * config/arm/cortex-a53.md (cortex_a53_alu) : Update for attribute
12487 changes.
12488 (cortex_a53_alu_shift): Likewise.
12489 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
12490 changes.
12491 (cortex_a7_alu_reg): Likewise.
12492 (cortex_a7_alu_shift): Likewise.
371e77e3
UB
12493 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute
12494 changes.
006bd006
SN
12495 (cortex_a8_alu_shift): Likewise.
12496 (cortex_a8_alu_shift_reg): Likewise.
12497 (cortex_a8_mov): Likewise.
12498 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
12499 (cortex_a9_dp_shift): Likewise.
371e77e3
UB
12500 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute
12501 changes.
12502 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute
12503 changes.
006bd006
SN
12504 (cortex_r4_mov): Likewise.
12505 (cortex_r4_alu_shift): Likewise.
12506 (cortex_r4_alu_shift_reg): Likewise.
12507 * config/arm/fa526.md (526_alu_op): Update for attribute changes.
12508 (526_alu_shift_op): Likewise.
12509 * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
12510 * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
12511 (626te_alu_shift_op): Likewise.
12512 * config/arm/fa726te.md (726te_shift_op): Update for attribute changes.
12513 (726te_alu_op): Likewise.
12514 (726te_alu_shift_op): Likewise.
12515 (726te_alu_shift_reg_op): Likewise.
12516 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
12517 (mp626_alu_shift_op): Likewise.
12518 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute changes.
12519 (pj4_alu_e1_conds): Likewise.
12520 (pj4_alu): Likewise.
12521 (pj4_alu_conds): Likewise.
12522 (pj4_shift): Likewise.
12523 (pj4_shift_conds): Likewise.
12524 (pj4_alu_shift): Likewise.
12525 (pj4_alu_shift_conds): Likewise.
371e77e3
UB
12526 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute
12527 changes.
006bd006
SN
12528 (cortexa7_older_only): Likewise.
12529 (cortexa7_younger): Likewise.
12530
651df1b2
DM
125312013-07-18 David Malcolm <dmalcolm@redhat.com>
12532
12533 * ipa-pure-const.c (generate_summary): Rename to...
12534 (pure_const_generate_summary): ... this.
12535
ea717bd7
IS
125362013-07-17 Iain Sandoe <iain@codesourcery.com>
12537
12538 * config/rs6000/darwin.h (REGISTER_NAMES): Add HTM registers.
12539
a1259a13
YR
125402013-07-17 Yvan Roux <yvan.roux@linaro.org>
12541
12542 PR target/57909
12543 * config/arm/arm.c (gen_movmem_ldrd_strd): Fix unaligned load/store
12544 usage in HI mode.
12545
167f68ed
AK
125462013-07-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12547
12548 * config/s390/s390.c: (s390_expand_builtin): Allow -mhtm to be
12549 enabled without -march=zEC12.
12550 * config/s390/s390.h (TARGET_HTM): Do not require EC12 machine
12551 flags to be set.
12552
f900a982
MR
125532013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
12554
12555 * config/mips/mips.h (ISA_HAS_FP4): Correct formatting.
12556 (ISA_HAS_FP_MADD4_MSUB4): Also enable for ISA_MIPS32R2.
12557 (ISA_HAS_NMADD4_NMSUB4): Remove the MODE argument; rewrite in
12558 terms of ISA_HAS_FP4, and also enable for ISA_MIPS32R2.
12559 (ISA_HAS_NMADD3_NMSUB3): Remove the MODE argument.
12560 * config/mips/mips.c (mips_rtx_costs) <PLUS>: Check for
12561 ISA_HAS_FP_MADD4_MSUB4 || ISA_HAS_FP_MADD3_MSUB3 rather than
12562 ISA_HAS_FP4.
12563 <MINUS, NEG>: Update according to changes to ISA_HAS_NMADD4_NMSUB4
12564 and ISA_HAS_NMADD3_NMSUB3.
12565 * config/mips/mips.md (nmadd4<mode>, nmadd3<mode>): Likewise.
12566 (nmadd4<mode>_fastmath, nmadd3<mode>_fastmath): Likewise.
12567 (nmsub4<mode>, nmsub3<mode>): Likewise.
12568 (nmsub4<mode>_fastmath, nmsub3<mode>_fastmath): Likewise.
12569
d4ed27eb
MR
125702013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
12571
12572 * config/mips/mips.h (ISA_HAS_NMADD4_NMSUB4): Remove
12573 TARGET_MIPS5400 checking.
12574
7a5add18
PB
125752013-07-16 Jakub Jelinek <jakub@redhat.com>
12576 Peter Bergner <bergner@vnet.ibm.com>
12577
12578 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTERS): Mention HTM
12579 registers in the comment.
12580 (DWARF_FRAME_REGISTERS): Subtract also the 3 HTM registers.
12581 (DWARF_REG_TO_UNWIND_COLUMN): Use DWARF_FRAME_REGISTERS
12582 rather than FIRST_PSEUDO_REGISTERS.
12583
125842013-07-16 Peter Bergner <bergner@vnet.ibm.com>
c694dc01
PB
12585
12586 * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
12587 enable extra ISA flags with TARGET_HTM.
12588
d2ab0929
MR
125892013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
12590
12591 * config/mips/mips.h (ISA_HAS_MULS, ISA_HAS_MSAC, ISA_HAS_MACC):
12592 Fix comment typos.
12593
839c74bc
CH
125942013-07-15 Cong Hou <congh@google.com>
12595
12596 * tree-vect-data-refs.c (dr_group_sort_cmp): Do not use hash function
12597 in compare function for sorting.
12598
7a5add18 125992013-07-15 Peter Bergner <bergner@vnet.ibm.com>
0258b6e4
PB
12600
12601 * config.gcc (powerpc*-*-*): Install htmintrin.h and htmxlintrin.h.
12602 * config/rs6000/t-rs6000 (MD_INCLUDES): Add htm.md.
12603 * config/rs6000/rs6000.opt: Add -mhtm option.
12604 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add OPTION_MASK_HTM.
12605 (ISA_2_7_MASKS_SERVER): Add OPTION_MASK_HTM.
12606 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
12607 __HTM__ if the HTM instructions are available.
12608 * config/rs6000/predicates.md (u3bit_cint_operand, u10bit_cint_operand,
12609 htm_spr_reg_operand): New define_predicates.
12610 * config/rs6000/rs6000.md (define_attr "type"): Add htm.
12611 (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO): New define_constants.
12612 Include htm.md.
12613 * config/rs6000/rs6000-builtin.def (BU_HTM_0, BU_HTM_1, BU_HTM_2,
12614 BU_HTM_3, BU_HTM_SPR0, BU_HTM_SPR1): Add support macros for defining
12615 HTM builtin functions.
12616 * config/rs6000/rs6000.c (RS6000_BUILTIN_H): New macro.
12617 (rs6000_reg_names, alt_reg_names): Add HTM SPR register names.
12618 (rs6000_init_hard_regno_mode_ok): Add support for HTM instructions.
12619 (rs6000_builtin_mask_calculate): Likewise.
12620 (rs6000_option_override_internal): Likewise.
12621 (bdesc_htm): Add new HTM builtin support.
12622 (htm_spr_num): New function.
12623 (htm_spr_regno): Likewise.
12624 (rs6000_htm_spr_icode): Likewise.
12625 (htm_expand_builtin): Likewise.
12626 (htm_init_builtins): Likewise.
12627 (rs6000_expand_builtin): Add support for HTM builtin functions.
12628 (rs6000_init_builtins): Likewise.
371e77e3
UB
12629 (rs6000_invalid_builtin, rs6000_opt_mask): Add support for -mhtm
12630 option.
0258b6e4
PB
12631 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for -mhtm.
12632 (TARGET_HTM, MASK_HTM): Define macros.
12633 (FIRST_PSEUDO_REGISTER): Adjust for new HTM SPR registers.
12634 (FIXED_REGISTERS): Likewise.
12635 (CALL_USED_REGISTERS): Likewise.
12636 (CALL_REALLY_USED_REGISTERS): Likewise.
12637 (REG_ALLOC_ORDER): Likewise.
12638 (enum reg_class): Likewise.
12639 (REG_CLASS_NAMES): Likewise.
12640 (REG_CLASS_CONTENTS): Likewise.
12641 (REGISTER_NAMES): Likewise.
12642 (ADDITIONAL_REGISTER_NAMES): Likewise.
12643 (RS6000_BTC_SPR, RS6000_BTC_VOID, RS6000_BTC_32BIT, RS6000_BTC_64BIT,
12644 RS6000_BTC_MISC_MASK, RS6000_BTM_HTM): New macros.
12645 (RS6000_BTM_COMMON): Add RS6000_BTM_HTM.
12646 * config/rs6000/htm.md: New file.
12647 * config/rs6000/htmintrin.h: New file.
12648 * config/rs6000/htmxlintrin.h: New file.
12649
87dd8ab0
MS
126502013-07-15 Marcus Shawcroft <marcus.shawcroft@arm.com>
12651
12652 * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
12653 Define SYMBOL_TINY_GOT, update comment.
12654 * config/aarch64/aarch64.c
12655 (aarch64_load_symref_appropriately): Handle SYMBOL_TINY_GOT.
12656 (aarch64_expand_mov_immediate): Likewise.
12657 (aarch64_print_operand): Likewise.
12658 (aarch64_classify_symbol): Likewise.
12659 * config/aarch64/aarch64.md (UNSPEC_GOTTINYPIC): Define.
12660 (ldr_got_tiny): Define.
12661
52d676b6
TG
126622013-07-13 Tobias Grosser <tobias@grosser.es>
12663
12664 PR tree-optimization/54094
12665 * graphite-clast-to-gimple.c (translate_clast_for_loop): Derive the
12666 scheduling dimension for the parallelism check from the polyhedral
12667 information in the AST.
12668 * graphite-dependences.c (carries_deps): Do not assume the schedule is
12669 in 2D + 1 form.
12670
286e8fc1
JM
126712013-07-13 Jason Merrill <jason@redhat.com>
12672
12673 * print-tree.c (debug_vec_tree): Use debug_raw.
12674 (debug_raw (vec<tree, va_gc> &)): New.
12675 (debug_raw (vec<tree, va_gc> *)): New.
12676 * tree.h: Declare them.
12677
e43257e8
BC
126782013-07-13 Bin Cheng <bin.cheng@arm.com>
12679
12680 * ifcvt.c (ifcvt_after_combine): New static variable.
12681 (cheap_bb_rtx_cost_p): Set scale to REG_BR_PROB_BASE when optimizing
12682 for size.
12683 (if_convert): New parameter after_combine. Set ifcvt_after_combine.
12684 (rest_of_handle_if_conversion, rest_of_handle_if_after_combine,
12685 rest_of_handle_if_after_reload): Pass new argument for if_convert.
12686
da582d46
MR
126872013-07-12 Maciej W. Rozycki <macro@codesourcery.com>
12688
12689 * config/mips/mips.c (mips_expand_call): Remove empty statement.
12690
18b0ea8f
MM
126912013-07-12 Michael Matz <matz@suse.de>
12692
12693 PR middle-end/55771
12694 * convert.c (convert_to_real): Reject non-float inner types.
12695
e4f0f84d
TB
126962013-07-12 Tejas Belagod <tejas.belagod@arm.com>
12697
12698 * config/aarch64/aarch64-protos.h
12699 (aarch64_simd_immediate_valid_for_move): Remove.
12700 * config/aarch64/aarch64.c (simd_immediate_info): New member.
12701 (aarch64_simd_valid_immediate): Recognize idioms for shifting ones
12702 cases.
12703 (aarch64_output_simd_mov_immediate): Print the correct shift specifier.
12704
76500022
SE
127052013-07-11 Steve Ellcey <sellcey@mips.com>
12706
12707 * config/mips/mips.c (mips_conditional_register_usage): Do not
12708 use t[0-7] registers in MIPS16 mode when optimizing for size.
12709
78039734
ST
127102013-07-11 Sriraman Tallam <tmsriram@google.com>
12711
12712 * config/i386/i386.c (dispatch_function_versions): Fix array
12713 indexing of function_version_info to match actual_versions.
12714
7b24b675
TJ
127152013-07-11 Teresa Johnson <tejohnson@google.com>
12716
12717 * vec.h (struct va_gc): Move release out-of-line.
12718 (va_gc::release): Call ggc_free on released vec.
12719
85d4cbb8
UW
127202013-07-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12721
12722 * config/rs6000/rs6000.md (""*tls_gd_low<TLSmode:tls_abi_suffix>"):
12723 Require GOT register as additional operand in UNSPEC.
12724 ("*tls_ld_low<TLSmode:tls_abi_suffix>"): Likewise.
12725 ("*tls_got_dtprel_low<TLSmode:tls_abi_suffix>"): Likewise.
12726 ("*tls_got_tprel_low<TLSmode:tls_abi_suffix>"): Likewise.
12727 ("*tls_gd<TLSmode:tls_abi_suffix>"): Update splitter.
12728 ("*tls_ld<TLSmode:tls_abi_suffix>"): Likewise.
12729 ("tls_got_dtprel_<TLSmode:tls_abi_suffix>"): Likewise.
12730 ("tls_got_tprel_<TLSmode:tls_abi_suffix>"): Likewise.
12731
52b3f9e2
GJL
127322013-07-11 Georg-Johann Lay <avr@gjlay.de>
12733
12734 PR target/57631
12735 * config/avr/avr.c (avr_set_current_function): Sanity-check signal
12736 name seen by assembler/linker rather if available.
12737
3f3e266e
AS
127382013-07-11 Andreas Schwab <schwab@suse.de>
12739
12740 * config/aarch64/aarch64-linux.h (CPP_SPEC): Define.
12741
21231ca6
VM
127422013-07-10 Vladimir Makarov <vmakarov@redhat.com>
12743
371e77e3 12744 * lra-constraints.c (curr_insn_transform): Switch off optional reloads.
21231ca6 12745
d331d374
JM
127462013-07-10 Joseph Myers <joseph@codesourcery.com>
12747
673c2f63
JM
12748 * doc/tm.texi.in: Move hook documentation to ....
12749 * target.def: ... here.
12750
d331d374
JM
12751 * doc/tm.texi.in (TARGET_CANONICALIZE_COMPARISON): Remove stray
12752 text on @hook line.
12753 * doc/tm.texi: Regenerate.
12754
dfeadaa0
PC
127552013-07-10 Paolo Carlini <paolo.carlini@oracle.com>
12756
12757 PR c++/57869
12758 * doc/invoke.texi: Document -Wconditionally-supported.
12759
bb6f2bac
GJL
127602013-07-10 Georg-Johann Lay <avr@gjlay.de>
12761
12762 PR target/57844
12763 * config/avr/avr.c (avr_prologue_setup_frame): Trunk -size to mode
12764 of my_fp.
12765
5219b232
GJL
127662013-07-10 Georg-Johann Lay <avr@gjlay.de>
12767
12768 PR target/57506
12769 * config/avr/avr-mcus.def (atmega16hva, atmega16hva2, atmega16hvb)
12770 (atmega16m1, atmega16u4, atmega32a, atmega32c1, atmega32hvb)
12771 (atmega32m1, atmega32u4, atmega32u6, atmega64c1, atmega64m1):
12772 Remove duplicate devices.
12773 * config/avr/gen-avr-mmcu-texi.c (print_mcus): Fail on duplicate MCUs.
12774 * config/avr/t-multilib: Regenerate.
12775 * config/avr/avr-tables.opt: Regenerate.
12776 * doc/avr-mmcu.texi: Regenerate.
12777
283045c0
GJL
127782013-07-10 Georg-Johann Lay <avr@gjlay.de>
12779
12780 PR target/56987
12781 * config/avr/avr.opt (Waddr-space-convert): Fix typo.
12782
ceb2d59f 127832013-07-10 Graham Stott <graham.stott@btinternet.com>
6a2fa4b2 12784
ceb2d59f
GS
12785 * config/mips/mips.c (mips_rtx_costs): Very slightly increase
12786 the cost of MULT when optimizing for size.
12787
055e0a99
JBG
127882013-07-10 Jan-Benedict Glaw <jbglaw@lug-owl.de>
12789
12790 * config/cr16/cr16-protos.h: Don't include target.h.
12791
ef43e868
JM
127922013-07-09 Joseph Myers <joseph@codesourcery.com>
12793
12794 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Only
12795 adjust register size for TDmode and TFmode for VSX registers.
12796
4a283fdf
KT
127972013-07-08 Kai Tietz <ktietz@redhat.com>
12798
12799 PR target/56892
12800 * config/i386/i386.c (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): Define as
12801 hook_bool_const_tree_true.
12802
2cf4c39e
AK
128032013-07-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12804
12805 * config/s390/s390.c: Replace F*_REGNUM with FPR*_REGNUM.
12806 * config/s390/s390.h: Remove F*_REGNUM macro definitions.
12807 * config/s390/s390.md: Define FPR*_REGNUM constants.
12808 Fix FPR2_REGNUM constant (18 -> 17).
12809 ("*trunc<BFP:mode><DFP_ALL:mode>2")
12810 ("*trunc<DFP_ALL:mode><BFP:mode>2")
12811 ("trunc<BFP:mode><DFP_ALL:mode>2")
12812 ("trunc<DFP_ALL:mode><BFP:mode>2")
12813 ("*extend<BFP:mode><DFP_ALL:mode>2")
12814 ("*extend<DFP_ALL:mode><BFP:mode>2")
12815 ("extend<BFP:mode><DFP_ALL:mode>2")
12816 ("extend<DFP_ALL:mode><BFP:mode>2"): Replace FPR2_REGNUM with
12817 FPR4_REGNUM.
12818
e6ac0270 128192013-07-08 Graham Stott <graham.stott@btinternet.com>
e6ac0270 12820
6a2fa4b2 12821 * Makefile.in: (c-family-warn): Define to $(STRICT_WARN)
64a92610 12822
b89b22fc
AK
128232013-07-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12824
12825 * config/s390/s390.c: Rename cfun_set_fpr_bit to cfun_set_fpr_save
12826 and cfun_fpr_bit_p to cfun_fpr_save_p.
12827 (s390_frame_area, s390_register_info, s390_frame_info)
12828 (s390_emit_prologue, s390_emit_epilogue)
12829 (s390_conditional_register_usage): Use the *_REGNUM macros for FPR
12830 register numbers.
12831 * config/s390/s390.h: Define *_REGNUM macros for floating point
12832 register numbers.
12833
07f398aa
EB
128342013-07-08 Eric Botcazou <ebotcazou@adacore.com>
12835
12836 * Makefile.in (tree-ssa-reassoc.o): Add dependency on $(PARAMS_H).
12837
75fefa91
PCC
128382013-07-08 Po-Chun Chang <pchang9@cs.wisc.edu>
12839
12840 PR rtl-optimization/57786
12841 * combine.c (distribute_notes) <case REG_DEAD>: Change all_used to bool
12842 and break out of the loop when it is set to false.
12843
046f1eee
JJ
128442013-07-08 Jakub Jelinek <jakub@redhat.com>
12845
8140c065
JJ
12846 PR target/57819
12847 * simplify-rtx.c (simplify_unary_operation_1) <case ZERO_EXTEND>:
12848 Simplify (zero_extend:SI (subreg:QI (and:SI (reg:SI)
12849 (const_int 63)) 0)).
12850 * combine.c (make_extraction): Create ZERO_EXTEND or SIGN_EXTEND
12851 using simplify_gen_unary instead of gen_rtx_*_EXTEND.
12852 * config/i386/i386.md (*jcc_bt<mode>_1): New define_insn_and_split.
12853
046f1eee
JJ
12854 PR rtl-optimization/57829
12855 * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Ensure that
12856 mask bits outside of mode are just sign-extension from mode to HWI.
12857
930b700b
MZ
128582013-07-08 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
12859
12860 * config/i386/i386-opts.h (enum stringop_alg): Add vector_loop.
12861 * config/i386/i386.c (expand_set_or_movmem_via_loop): Use
12862 adjust_address instead of change_address to keep info about alignment.
12863 (emit_strmov): Remove.
12864 (emit_memmov): New function.
12865 (expand_movmem_epilogue): Refactor to properly handle bigger sizes.
12866 (expand_movmem_epilogue): Likewise and return updated rtx for
12867 destination.
12868 (expand_constant_movmem_prologue): Likewise and return updated rtx for
12869 destination and source.
12870 (decide_alignment): Refactor, handle vector_loop.
12871 (ix86_expand_movmem): Likewise.
12872 (ix86_expand_setmem): Likewise.
12873 * config/i386/i386.opt (Enum): Add vector_loop to option stringop_alg.
12874
7b9d1bd8
UB
128752013-07-07 Uros Bizjak <ubizjak@gmail.com>
12876
12877 * config/i386/driver-i386.c (host_detect_local_cpu): Do not check
12878 signature_TM2_ebx, it interferes with signature_INTEL_ebx.
12879
eabb5f48
UB
128802013-07-06 Uros Bizjak <ubizjak@gmail.com>
12881
12882 * config/i386/sse.md (sse_movlhps): Change alternative 3
12883 of operand 2 to "m".
12884
128852013-07-06 Uros Bizjak <ubizjak@gmail.com>
12886
12887 PR target/57807
12888 * config/i386/sse.md (iptr): New mode attribute.
12889 (sse2_movq128): Add pointer size overrides for Intel asm dialect.
12890 (<sse>_vm<plusminus_insn><mode>3): Ditto.
12891 (<sse>_vmmul<mode>3): Ditto.
12892 (<sse>_vmdiv<mode>3): Ditto.
12893 (sse_vmrcpv4sf2): Ditto.
12894 (<sse>_vmsqrt<mode>2): Ditto.
12895 (sse_vmrsqrtv4sf2): Ditto.
12896 (<sse>_vm<code><mode>3): Ditto.
12897 (avx_vmcmp<mode>3): Ditto.
12898 (<sse>_vmmaskcmp<mode>3): Ditto.
12899 (<sse>_comi): Ditto.
12900 (<sse>_ucomi): Ditto.
12901 (*xop_vmfrcz_<mode>): Ditto.
12902 (*fmai_fmadd_<mode>): Ditto.
12903 (*fmai_fmsub_<mode>): Ditto.
12904 (*fmai_fnmadd_<mode>): Ditto.
12905 (*fmai_fnmsub_<mode>): Ditto.
12906 (*fma4i_vmfmadd_<mode>): Ditto.
12907 (*fma4i_vmfmsub_<mode>): Ditto.
12908 (*fma4i_vmfnmadd_<mode>): Ditto.
12909 (*fma4i_vmfnmsub_<mode>): Ditto.
12910 (*xop_vmfrcz_<mode>): Ditto.
12911 (sse_cvtps2pi): Ditto.
12912 (sse_cvttps2pi): Ditto.
12913 (sse_cvtss2si): Ditto.
12914 (sse_cvtss2si_2): Ditto.
12915 (sse_cvtss2siq_2): Ditto.
12916 (sse_cvttss2si): Ditto.
12917 (sse_cvttss2siq): Ditto.
12918 (sse_cvtsd2si): Ditto.
12919 (sse_cvtsd2si_2): Ditto.
12920 (sse_cvtsd2siq_2): Ditto.
12921 (sse_cvttsd2si): Ditto.
12922 (sse_cvttsd2siq): Ditto.
12923 (sse_cvtsd2ss): Ditto.
12924 (sse_cvtss2sd): Ditto.
12925 (avx2_pbroadcast<mode>): Ditto.
12926 (avx2_pbroadcast<mode>_1): Ditto.
12927 (*avx_vperm_broadcast_v4sf): Ditto.
12928
12929 (sse_movhlps): Ditto for movlp[sd]/movhp[sd] alternatives.
12930 (sse_movlhps): Ditto.
12931 (sse_storehps): Ditto.
12932 (sse_loadhps): Ditto.
12933 (sse_storelps): Ditto.
12934 (sse_loadlps): Ditto.
12935 (*vec_concatv4sf): Ditto.
12936 (*vec_interleave_highv2df): Ditto.
12937 (*vec_interleave_lowv2df): Ditto.
12938 (*vec_extractv2df_1_sse): Ditto.
12939 (*vec_extractv2df_0_sse): Ditto.
12940 (sse2_storelpd): Ditto.
12941 (sse2_loadlpd): Ditto.
12942 (sse2_movsd): Ditto.
12943 (*vec_concatv4si): Ditto.
12944 (vec_concatv2di): Ditto.
12945
12946 * config/i386/mmx.md (mmx_punpcklbw): Add pointer size overrides
12947 for Intel asm dialect.
12948 (mmx_punpcklwd): Ditto.
12949 (mmx_punpckldq): Ditto.
12950
12951 * config/i386/i386.c (ix86_print_operand) ['H']: Output 'qword ptr'
12952 for intel assembler dialect.
12953
1f6eac90
JJ
129542013-07-06 Jakub Jelinek <jakub@redhat.com>
12955
12956 PR target/29776
12957 * fold-const.c (tree_call_nonnegative_warnv_p): Return true
12958 for BUILT_IN_C{LZ,LRSB}*.
12959 * tree.h (CASE_INT_FN): Add FN##IMAX case.
12960 * tree-vrp.c (extract_range_basic): Handle
12961 BUILT_IN_{FFS,PARITY,POPCOUNT,C{LZ,TZ,LRSB}}*. For
12962 BUILT_IN_CONSTANT_P if argument isn't (D) of PARM_DECL,
12963 fall thru to code calling set_value*.
12964 * builtins.c (expand_builtin): Remove *IMAX cases.
12965 (fold_builtin_bitop): For BUILT_IN_CLRSB* return NULL_TREE
12966 if width is bigger than 2*HWI.
12967
2b778c9d
VM
129682013-07-05 Vladimir Makarov <vmakarov@redhat.com>
12969
12970 PR rtl-optimization/55342
12971 * lra-int.h (lra_subreg_reload_pseudos): New.
12972 * lra.c: Add undoing optional reloads to the block diagram.
12973 (lra_subreg_reload_pseudos): New.
12974 (lra_optional_reload_pseudos): Change comments.
12975 (lra): Init and clear lra_subreg_reload_pseudos. Clear
12976 lra_optional_reload_pseudos after undo transformations.
12977 * lra-assigns.c (pseudo_prefix_title): New.
12978 (lra_setup_reg_renumber): Use it.
12979 (spill_for): Ditto. Check subreg reload pseudos too.
12980 (assign_by_spills): Consider subreg reload pseudos too.
12981 * lra-constraints.c (simplify_operand_subreg): Use
12982 lra_subreg_reload_pseudos instead of lra_optional_reload_pseudos.
12983 (curr_insn_transform): Recognize and do optional reloads.
12984 (undo_optional_reloads): New.
12985 (lra_undo_inheritance): Call undo_optional_reloads.
12986
207156e4
TQ
129872013-07-05 Thomas Quinot <quinot@adacore.com>
12988
12989 * tree-complex.c (expand_complex_operations_1): Fix typo.
12990
8990e73a
TB
129912013-07-04 Tejas Belagod <tejas.belagod@arm.com>
12992
12993 * config/aarch64/aarch64-protos.h (cpu_vector_cost): New.
12994 (tune_params): New member 'const vec_costs'.
12995 * config/aarch64/aarch64.c (generic_vector_cost): New.
12996 (generic_tunings): New member 'generic_vector_cost'.
12997 (aarch64_builtin_vectorization_cost): New.
12998 (aarch64_add_stmt_cost): New.
12999 (TARGET_VECTORIZE_ADD_STMT_COST): New.
13000 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): New.
13001
f7bc421d
JJ
130022013-07-03 Jakub Jelinek <jakub@redhat.com>
13003
13004 PR target/57777
13005 * config/i386/predicates.md (vsib_address_operand): Disallow
13006 SYMBOL_REF or LABEL_REF in parts.disp if TARGET_64BIT && flag_pic.
13007
e90d1568
HPN
130082013-07-03 Hans-Peter Nilsson <hp@bitrange.com>
13009
13010 PR middle-end/55030
13011 * stmt.c (expand_nl_goto_receiver): Remove almost-copy of
13012 expand_builtin_setjmp_receiver.
13013 (expand_label): Adjust, call expand_builtin_setjmp_receiver
13014 with NULL for the label parameter.
13015 * builtins.c (expand_builtin_setjmp_receiver): Don't clobber
13016 the frame-pointer. Adjust comments.
13017 [HAVE_builtin_setjmp_receiver]: Emit builtin_setjmp_receiver
13018 only if LABEL is non-NULL.
13019
cbd7413b
YZ
130202013-07-03 Yufeng Zhang <yufeng.zhang@arm.com>
13021
13022 * config/aarch64/aarch64.h (enum arm_abi_type): Remove.
13023 (ARM_ABI_AAPCS64): Ditto.
13024 (arm_abi): Ditto.
13025 (ARM_DEFAULT_ABI): Ditto.
13026
dec11868
JG
130272013-07-03 James Greenhalgh <james.greenhalgh@arm.com>
13028
13029 * config/aarch64/aarch64-builtins.c
13030 (aarch64_simd_expand_builtin): Handle AARCH64_SIMD_STORE1.
13031 * config/aarch64/aarch64-simd-builtins.def (ld1): New.
13032 (st1): Likewise.
13033 * config/aarch64/aarch64-simd.md
13034 (aarch64_ld1<VALL:mode>): New.
13035 (aarch64_st1<VALL:mode>): Likewise.
13036 * config/aarch64/arm_neon.h
13037 (vld1<q>_<fpsu><8, 16, 32, 64>): Convert to RTL builtins.
13038
786fb9b6
ST
130392013-07-02 Sriraman Tallam <tmsriram@google.com>
13040
0ba6aff3
UB
13041 * config/i386/i386.c (gate_insert_vzeroupper): Check if
13042 target ISA is AVX.
786fb9b6
ST
13043 (ix86_option_override_internal):Turn on all -mavx target flags by
13044 default as they are dependent on AVX anyway.
13045
4b043553
CC
130462013-07-02 Cary Coutant <ccoutant@google.com>
13047
13048 * dwarf2out.c (loc_checksum): Call hash_loc_operands for a
13049 deterministic hash.
13050 (loc_checksum_ordered): Likewise.
13051 (hash_loc_operands): Remove inline keyword.
13052
c4e87a13
JJ
130532013-07-02 Jakub Jelinek <jakub@redhat.com>
13054
13055 PR tree-optimization/57741
13056 * tree-vect-loop.c (vect_is_simple_iv_evolution): Disallow
13057 non-INTEGRAL_TYPE_P non-SCALAR_FLOAT_TYPE_P SSA_NAME step_exprs,
13058 or SCALAR_FLOAT_TYPE_P SSA_NAMEs if !flag_associative_math.
13059 Allow REAL_CST step_exprs if flag_associative_math.
13060 (get_initial_def_for_induction): Handle SCALAR_FLOAT_TYPE_P step_expr.
13061
26366d28
IB
130622013-07-02 Ian Bolton <ian.bolton@arm.com>
13063
0ba6aff3 13064 * config/aarch64/aarch64-simd.md (absdi2): Support abs for DI mode.
26366d28 13065
2879bb2b
IB
130662013-07-02 Ian Bolton <ian.bolton@arm.com>
13067
13068 * config/aarch64/aarch64.md (*extr_insv_reg<mode>): New pattern.
13069
afc5e8a6
KT
130702013-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13071
13072 * config/arm/arm.md (arm_andsi3_insn): Add alternatives for 16-bit
13073 encoding.
13074 (iorsi3_insn): Likewise.
13075 (arm_xorsi3): Likewise.
13076
31f8442b
SN
130772013-07-01 Sofiane Naci <sofiane.naci@arm.com>
13078
13079 * arm.md (attribute "wtype"): Delete. Move attribute values from here
13080 to ...
13081 (attribute "type"): ... here, and prefix with "wmmx_".
13082 (attribute "core_cycles"): Update for attribute changes.
13083 * iwmmxt.md (tbcstv8qi): Update for attribute changes.
13084 (tbcstv4hi): Likewise.
13085 (tbcstv2si): Likewise.
13086 (iwmmxt_iordi3): Likewise.
13087 (iwmmxt_xordi3): Likewise.
13088 (iwmmxt_anddi3): Likewise.
13089 (iwmmxt_nanddi3): Likewise.
13090 (iwmmxt_arm_movdi): Likewise.
13091 (iwmmxt_movsi_insn): Likewise.
13092 (mov<mode>_internal): Likewise.
13093 (and<mode>3_iwmmxt): Likewise.
13094 (ior<mode>3_iwmmxt): Likewise.
13095 (xor<mode>3_iwmmxt): Likewise.
13096 (add<mode>3_iwmmxt): Likewise.
13097 (ssaddv8qi3): Likewise.
13098 (ssaddv4hi3): Likewise.
13099 (ssaddv2si3): Likewise.
13100 (usaddv8qi3): Likewise.
13101 (usaddv4hi3): Likewise.
13102 (usaddv2si3): Likewise.
13103 (sub<mode>3_iwmmxt): Likewise.
13104 (sssubv8qi3): Likewise.
13105 (sssubv4hi3): Likewise.
13106 (sssubv2si3): Likewise.
13107 (ussubv8qi3): Likewise.
13108 (ussubv4hi3): Likewise.
13109 (ussubv2si3): Likewise.
13110 (mulv4hi3_iwmmxt): Likewise.
13111 (smulv4hi3_highpart): Likewise.
13112 (umulv4hi3_highpart): Likewise.
13113 (iwmmxt_wmacs): Likewise.
13114 (iwmmxt_wmacsz): Likewise.
13115 (iwmmxt_wmacu): Likewise.
13116 (iwmmxt_wmacuz): Likewise.
13117 (iwmmxt_clrdi): Likewise.
13118 (iwmmxt_clrv8qi): Likewise.
13119 (iwmmxt_clr4hi): Likewise.
13120 (iwmmxt_clr2si): Likewise.
13121 (iwmmxt_uavgrndv8qi3): Likewise.
13122 (iwmmxt_uavgrndv4hi3): Likewise.
13123 (iwmmxt_uavgv8qi3): Likewise.
13124 (iwmmxt_uavgv4hi3): Likewise.
13125 (iwmmxt_tinsrb): Likewise.
13126 (iwmmxt_tinsrh): Likewise.
13127 (iwmmxt_tinsrw): Likewise.
13128 (iwmmxt_textrmub): Likewise.
13129 (iwmmxt_textrmsb): Likewise.
13130 (iwmmxt_textrmuh): Likewise.
13131 (iwmmxt_textrmsh): Likewise.
13132 (iwmmxt_textrmw): Likewise.
13133 (iwmxxt_wshufh): Likewise.
13134 (eqv8qi3): Likewise.
13135 (eqv4hi3): Likewise.
13136 (eqv2si3): Likewise.
13137 (gtuv8qi3): Likewise.
13138 (gtuv4hi3): Likewise.
13139 (gtuv2si3): Likewise.
13140 (gtv8qi3): Likewise.
13141 (gtv4hi3): Likewise.
13142 (gtv2si3): Likewise.
13143 (smax<mode>3_iwmmxt): Likewise.
13144 (umax<mode>3_iwmmxt): Likewise.
13145 (smin<mode>3_iwmmxt): Likewise.
13146 (umin<mode>3_iwmmxt): Likewise.
13147 (iwmmxt_wpackhss): Likewise.
13148 (iwmmxt_wpackwss): Likewise.
13149 (iwmmxt_wpackdss): Likewise.
13150 (iwmmxt_wpackhus): Likewise.
13151 (iwmmxt_wpackwus): Likewise.
13152 (iwmmxt_wpackdus): Likewise.
13153 (iwmmxt_wunpckihb): Likewise.
13154 (iwmmxt_wunpckihh): Likewise.
13155 (iwmmxt_wunpckihw): Likewise.
13156 (iwmmxt_wunpckilb): Likewise.
13157 (iwmmxt_wunpckilh): Likewise.
13158 (iwmmxt_wunpckilw): Likewise.
13159 (iwmmxt_wunpckehub): Likewise.
13160 (iwmmxt_wunpckehuh): Likewise.
13161 (iwmmxt_wunpckehuw): Likewise.
13162 (iwmmxt_wunpckehsb): Likewise.
13163 (iwmmxt_wunpckehsh): Likewise.
13164 (iwmmxt_wunpckehsw): Likewise.
13165 (iwmmxt_wunpckelub): Likewise.
13166 (iwmmxt_wunpckeluh): Likewise.
13167 (iwmmxt_wunpckeluw): Likewise.
13168 (iwmmxt_wunpckelsb): Likewise.
13169 (iwmmxt_wunpckelsh): Likewise.
13170 (iwmmxt_wunpckelsw): Likewise.
13171 (ror<mode>3): Likewise.
13172 (ashr<mode>3_iwmmxt): Likewise.
13173 (lshr<mode>3_iwmmxt): Likewise.
13174 (ashl<mode>3_iwmmxt): Likewise.
13175 (ror<mode>3_di): Likewise.
13176 (ashr<mode>3_di): Likewise.
13177 (lshr<mode>3_di): Likewise.
13178 (ashl<mode>3_di): Likewise.
13179 (iwmmxt_wmadds): Likewise.
13180 (iwmmxt_wmaddu): Likewise.
13181 (iwmmxt_tmia): Likewise.
13182 (iwmmxt_tmiaph): Likewise.
13183 (iwmmxt_tmiabb): Likewise.
13184 (iwmmxt_tmiatb): Likewise.
13185 (iwmmxt_tmiabt): Likewise.
13186 (iwmmxt_tmiatt): Likewise.
13187 (iwmmxt_tmovmskb): Likewise.
13188 (iwmmxt_tmovmskh): Likewise.
13189 (iwmmxt_tmovmskw): Likewise.
13190 (iwmmxt_waccb): Likewise.
13191 (iwmmxt_wacch): Likewise.
13192 (iwmmxt_waccw): Likewise.
13193 (iwmmxt_waligni): Likewise.
13194 (iwmmxt_walignr): Likewise.
13195 (iwmmxt_walignr0): Likewise.
13196 (iwmmxt_walignr1): Likewise.
13197 (iwmmxt_walignr2): Likewise.
13198 (iwmmxt_walignr3): Likewise.
13199 (iwmmxt_wsadb): Likewise.
13200 (iwmmxt_wsadh): Likewise.
13201 (iwmmxt_wsadbz): Likewise.
13202 (iwmmxt_wsadhz): Likewise.
13203 * iwmmxt2.md (iwmmxt_wabs<mode>3): Update for attribute changes.
13204 (iwmmxt_wabsdiffb): Likewise.
13205 (iwmmxt_wabsdiffh): Likewise.
13206 (iwmmxt_wabsdiffw): Likewise.
13207 (iwmmxt_waddsubhx): Likewise
13208 (iwmmxt_wsubaddhx): Likewise.
13209 (addc<mode>3): Likewise.
13210 (iwmmxt_avg4): Likewise.
13211 (iwmmxt_avg4r): Likewise.
13212 (iwmmxt_wmaddsx): Likewise.
13213 (iwmmxt_wmaddux): Likewise.
13214 (iwmmxt_wmaddsn): Likewise.
13215 (iwmmxt_wmaddun): Likewise.
13216 (iwmmxt_wmulwsm): Likewise.
13217 (iwmmxt_wmulwum): Likewise.
13218 (iwmmxt_wmulsmr): Likewise.
13219 (iwmmxt_wmulumr): Likewise.
13220 (iwmmxt_wmulwsmr): Likewise.
13221 (iwmmxt_wmulwumr): Likewise.
13222 (iwmmxt_wmulwl): Likewise.
13223 (iwmmxt_wqmulm): Likewise.
13224 (iwmmxt_wqmulwm): Likewise.
13225 (iwmmxt_wqmulmr): Likewise.
13226 (iwmmxt_wqmulwmr): Likewise.
13227 (iwmmxt_waddbhusm): Likewise.
13228 (iwmmxt_waddbhusl): Likewise.
13229 (iwmmxt_wqmiabb): Likewise.
13230 (iwmmxt_wqmiabt): Likewise.
13231 (iwmmxt_wqmiatb): Likewise.
13232 (iwmmxt_wqmiatt): Likewise.
13233 (iwmmxt_wqmiabbn): Likewise.
13234 (iwmmxt_wqmiabtn): Likewise.
13235 (iwmmxt_wqmiatbn): Likewise.
13236 (iwmmxt_wqmiattn): Likewise.
13237 (iwmmxt_wmiabb): Likewise.
13238 (iwmmxt_wmiabt): Likewise.
13239 (iwmmxt_wmiatb): Likewise.
13240 (iwmmxt_wmiatt): Likewise.
13241 (iwmmxt_wmiabbn): Likewise.
13242 (iwmmxt_wmiabtn): Likewise.
13243 (iwmmxt_wmiatbn): Likewise.
13244 (iwmmxt_wmiattn): Likewise.
13245 (iwmmxt_wmiawbb): Likewise.
13246 (iwmmxt_wmiawbt): Likewise.
13247 (iwmmxt_wmiawtb): Likewise.
13248 (iwmmxt_wmiawtt): Likewise.
13249 (iwmmxt_wmiawbbn): Likewise.
13250 (iwmmxt_wmiawbtn): Likewise.
13251 (iwmmxt_wmiawtbn): Likewise.
13252 (iwmmxt_wmiawttn): Likewise.
13253 (iwmmxt_wmerge): Likewise.
13254 (iwmmxt_tandc<mode>3): Likewise.
13255 (iwmmxt_torc<mode>3): Likewise.
13256 (iwmmxt_torvsc<mode>3): Likewise.
13257 (iwmmxt_textrc<mode>3): Likewise.
13258 * marvell-f-iwmmxt.md (wmmxt_shift): Update for attribute changes.
13259 (wmmxt_pack): Likewise.
13260 (wmmxt_mult_c1): Likewise.
13261 (wmmxt_mult_c2): Likewise.
13262 (wmmxt_alu_c1): Likewise.
13263 (wmmxt_alu_c2): Likewise.
13264 (wmmxt_alu_c3): Likewise.
13265 (wmmxt_transfer_c1): Likewise.
13266 (wmmxt_transfer_c2): Likewise.
13267 (wmmxt_transfer_c3): Likewise.
13268 (marvell_f_iwmmxt_wstr): Likewise.
13269 (marvell_f_iwmmxt_wldr): Likewise.
13270
bdb7bf8a
YZ
132712013-06-29 Yufeng Zhang <yufeng.zhang@arm.com>
13272
0ba6aff3 13273 * config/aarch64/aarch64.c: Remove junk from the beginning of the file.
bdb7bf8a 13274
e6631d38
VM
132752013-06-28 Vladimir Makarov <vmakarov@redhat.com>
13276
13277 Revert:
13278 2013-06-28 Vladimir Makarov <vmakarov@redhat.com>
13279 * lra-constraints.c (need_for_split_p): Check call used hard regs
13280 living through calls.
13281
13282 * lra-constraints.c (inherit_in_ebb): Reset live_hard_regs for
13283 call used regs for call insn.
13284
53c1275b
JJ
132852013-06-28 Jakub Jelinek <jakub@redhat.com>
13286
13287 PR target/57736
0ba6aff3
UB
13288 * config/i386/i386.c (ix86_expand_builtin): If target == NULL and
13289 mode is VOIDmode, don't create a VOIDmode pseudo to copy result into.
53c1275b 13290
1141ed3f
BI
132912013-06-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
13292
13293 * builtins.def: Fixed the function type of CILKPLUS_BUILTIN.
e6631d38 13294
e32e4c4a
VM
132952013-06-28 Vladimir Makarov <vmakarov@redhat.com>
13296
13297 * lra-constraints.c (need_for_split_p): Check call used hard regs
13298 living through calls.
13299
f161bfd3
MM
133002013-06-28 Michael Meissner <meissner@linux.vnet.ibm.com>
13301
13302 PR target/57744
13303 * config/rs6000/rs6000.h (MODES_TIEABLE_P): Do not allow PTImode
13304 to tie with any other modes. Eliminate Altivec vector mode tests,
13305 since these are a subset of ALTIVEC or VSX vector modes. Simplify
13306 code, to return 0 if testing MODE2 for a condition, if we've
13307 already tested MODE1 for the same condition.
13308
7eda14e1
MS
133092013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
13310
13311 * config/aarch64/aarch64.c (aarch64_cannot_force_const_mem): Adjust
13312 layout.
13313
c822f852
MS
133142013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
13315
13316 * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
13317 Update comment w.r.t SYMBOL_TINY_ABSOLUTE.
13318
da4f13a4
MS
133192013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
13320
0ba6aff3
UB
13321 * config/aarch64/aarch64-protos.h (aarch64_classify_symbol_expression):
13322 Define.
da4f13a4
MS
13323 (aarch64_symbolic_constant_p): Remove.
13324 * config/aarch64/aarch64.c (aarch64_classify_symbol_expression): Remove
13325 static. Fix line length and white space.
13326 (aarch64_symbolic_constant_p): Remove.
13327 * config/aarch64/predicates.md (aarch64_valid_symref):
13328 Use aarch64_classify_symbol_expression.
13329
956a95a5
KT
133302013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13331
13332 * config/arm/constraints.md (Ts): New constraint.
13333 * config/arm/arm.md (arm_movqi_insn): Add alternatives for
13334 16-bit encodings.
13335 (compare_scc): Use "Ts" constraint for operand 0.
13336 (ior_scc_scc): Likewise.
13337 (and_scc_scc): Likewise.
13338 (and_scc_scc_nodom): Likewise.
13339 (ior_scc_scc_cmp): Likewise for operand 7.
13340 (and_scc_scc_cmp): Likewise.
13341 * config/arm/thumb2.md (thumb2_movsi_insn):
13342 Add alternatives for 16-bit encodings.
13343 (thumb2_movhi_insn): Likewise.
13344 (thumb2_movsicc_insn): Likewise.
13345 (thumb2_and_scc): Take 'and' outside cond_exec. Use "Ts" constraint.
13346 (thumb2_negscc): Use "Ts" constraint.
13347 Move mvn instruction outside cond_exec block.
13348 * config/arm/vfp.md (thumb2_movsi_vfp): Add alternatives
13349 for 16-bit encodings.
13350
31dfce10
KT
133512013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13352
13353 * config/arm/arm.md (arm_mulsi3_v6): Add alternative for 16-bit
13354 encoding.
13355 (mulsi3addsi_v6): Disable predicable variant for arm_restrict_it.
13356 (mulsi3subsi): Likewise.
13357 (mulsidi3adddi): Likewise.
13358 (mulsidi3_v6): Likewise.
13359 (umulsidi3_v6): Likewise.
13360 (umulsidi3adddi_v6): Likewise.
13361 (smulsi3_highpart_v6): Likewise.
13362 (umulsi3_highpart_v6): Likewise.
13363 (mulhisi3tb): Likewise.
13364 (mulhisi3bt): Likewise.
13365 (mulhisi3tt): Likewise.
13366 (maddhisi4): Likewise.
13367 (maddhisi4tb): Likewise.
13368 (maddhisi4tt): Likewise.
13369 (maddhidi4): Likewise.
13370 (maddhidi4tb): Likewise.
13371 (maddhidi4tt): Likewise.
13372 (zeroextractsi_compare0_scratch): Likewise.
13373 (insv_zero): Likewise.
13374 (insv_t2): Likewise.
13375 (anddi_notzesidi_di): Likewise.
13376 (anddi_notsesidi_di): Likewise.
13377 (andsi_notsi_si): Likewise.
13378 (iordi_zesidi_di): Likewise.
13379 (xordi_zesidi_di): Likewise.
13380 (andsi_iorsi3_notsi): Likewise.
13381 (smax_0): Likewise.
13382 (smax_m1): Likewise.
13383 (smin_0): Likewise.
13384 (not_shiftsi): Likewise.
13385 (unaligned_loadsi): Likewise.
13386 (unaligned_loadhis): Likewise.
13387 (unaligned_loadhiu): Likewise.
13388 (unaligned_storesi): Likewise.
13389 (unaligned_storehi): Likewise.
13390 (extv_reg): Likewise.
13391 (extzv_t2): Likewise.
13392 (divsi3): Likewise.
13393 (udivsi3): Likewise.
13394 (arm_zero_extendhisi2addsi): Likewise.
13395 (arm_zero_extendqisi2addsi): Likewise.
13396 (compareqi_eq0): Likewise.
13397 (arm_extendhisi2_v6): Likewise.
13398 (arm_extendqisi2addsi): Likewise.
13399 (arm_movt): Likewise.
13400 (thumb2_ldrd): Likewise.
13401 (thumb2_ldrd_base): Likewise.
13402 (thumb2_ldrd_base_neg): Likewise.
13403 (thumb2_strd): Likewise.
13404 (thumb2_strd_base): Likewise.
13405 (thumb2_strd_base_neg): Likewise.
13406 (arm_negsi2): Add alternative for 16-bit encoding.
13407 (arm_one_cmplsi2): Likewise.
13408
1572e697
KT
134092013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13410
13411 * config/arm/predicates.md (arm_cond_move_operator): New predicate.
13412 * config/arm/arm.md (movsfcc): Use arm_cond_move_operator predicate.
13413 (movdfcc): Likewise.
13414 * config/arm/vfp.md (*thumb2_movsf_vfp):
13415 Disable predication for arm_restrict_it.
13416 (*thumb2_movsfcc_vfp): Disable for arm_restrict_it.
13417 (*thumb2_movdfcc_vfp): Likewise.
13418 (*abssf2_vfp, *absdf2_vfp, *negsf2_vfp, *negdf2_vfp,*addsf3_vfp,
13419 *adddf3_vfp, *subsf3_vfp, *subdf3_vfpc, *divsf3_vfp,*divdf3_vfp,
13420 *mulsf3_vfp, *muldf3_vfp, *mulsf3negsf_vfp, *muldf3negdf_vfp,
13421 *mulsf3addsf_vfp, *muldf3adddf_vfp, *mulsf3subsf_vfp,
13422 *muldf3subdf_vfp, *mulsf3negsfaddsf_vfp, *fmuldf3negdfadddf_vfp,
13423 *mulsf3negsfsubsf_vfp, *muldf3negdfsubdf_vfp, *fma<SDF:mode>4,
13424 *fmsub<SDF:mode>4, *fnmsub<SDF:mode>4, *fnmadd<SDF:mode>4,
13425 *extendsfdf2_vfp, *truncdfsf2_vfp, *extendhfsf2, *truncsfhf2,
13426 *truncsisf2_vfp, *truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2,
13427 *floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2, floatunssidf2,
13428 *sqrtsf2_vfp, *sqrtdf2_vfp, *cmpsf_vfp, *cmpsf_trap_vfp, *cmpdf_vfp,
13429 *cmpdf_trap_vfp, <vrint_pattern><SDF:mode>2):
13430 Disable predication for arm_restrict_it.
13431
ebf8f0ea
KY
134322013-06-28 Kirill Yukhin <kirill.yukhin@intel.com>
13433
13434 * config/i386/bmiintrin.h (_bextr_u32): New.
13435 (_bextr_u64): Ditto.
13436
a290fcda
RS
134372013-06-27 Richard Sandiford <rdsandiford@googlemail.com>
13438
13439 * config.gcc (mips*-mti-elf*, mips*-sde-elf*, mips64r5900-*-elf*)
13440 (mips64r5900el-*-elf*): Include mips/n32-elf.h.
13441 * config/mips/sde.h (LOCAL_LABEL_PREFIX, NO_DOLLAR_IN_LABEL)
13442 (LONG_DOUBLE_TYPE_SIZE, LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Move to...
13443 * config/mips/n32-elf.h: ...this new file.
13444
ea169996
MG
134452013-06-27 Marc Glisse <marc.glisse@inria.fr>
13446
13447 PR target/57224
13448 * config/i386/i386.c (enum ix86_builtins, bdesc_args): Remove
13449 IX86_BUILTIN_CMPNGTSS and IX86_BUILTIN_CMPNGESS.
13450
12211b99 134512013-06-27 Catherine Moore <clm@codesourcery.com>
8e932114
CM
13452
13453 * config/mips/mips-tables.opt: Regenerate.
13454 * config/mips/mips-cpus.def: Add m14ke and m14kec.
0ba6aff3 13455 * config/mips/mips.h (BASE_DRIVER_SELF_SPECS): m14ke* implies -mdspr2.
8e932114 13456 * doc/invoke.texi: Add -m14kc.
ebf8f0ea 13457
2444244e
JJ
134582013-06-27 Jakub Jelinek <jakub@redhat.com>
13459
cd06d2a2
JJ
13460 PR target/57623
13461 * config/i386/i386.md (bmi_bextr_<mode>): Swap predicates and
13462 constraints of operand 1 and 2.
13463
2444244e
JJ
13464 PR target/57623
13465 * config/i386/i386.md (bmi2_bzhi_<mode>3): Swap AND arguments
13466 to match RTL canonicalization. Swap predicates and
13467 constraints of operand 1 and 2.
13468
2f259720
VM
134692013-06-27 Vladimir Makarov <vmakarov@redhat.com>
13470
0ba6aff3
UB
13471 * lra-constraints.c (inherit_in_ebb): Process static hard regs too.
13472 Process OP_INOUT regs for splitting too.
2f259720 13473
fef4d2b3
JJ
134742013-06-27 Jakub Jelinek <jakub@redhat.com>
13475
13476 * tree-vect-stmts.c (vectorizable_store): Move ptr_incr var
13477 decl before the loop, initialize to NULL.
13478 (vectorizable_load): Initialize ptr_incr to NULL.
13479
79ee9826
MJ
134802013-06-27 Martin Jambor <mjambor@suse.cz>
13481
13482 PR lto/57208
13483 * ipa-ref.h (ipa_maybe_record_reference): Declare.
13484 * ipa-ref.c (ipa_maybe_record_reference): New function.
13485 * cgraphclones.c (cgraph_create_virtual_clone): Use it.
13486 * ipa-cp.c (create_specialized_node): Record potential references from
13487 aggvals.
13488 * Makefile.in (ipa-ref.o): Add IPA_REF_H to dependencies.
13489
e18b4a81
YZ
134902013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
13491
13492 * config/aarch64/aarch64.c (aarch64_force_temporary): Add an extra
13493 parameter 'mode' of type 'enum machine_mode mode'; change to pass
13494 'mode' to force_reg.
13495 (aarch64_add_offset): Update calls to aarch64_force_temporary.
13496 (aarch64_expand_mov_immediate): Likewise.
13497
9c023bf0
YZ
134982013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
13499
13500 * config/aarch64/aarch64.c (aarch64_add_offset): Change to pass
13501 'mode' to aarch64_plus_immediate and gen_rtx_PLUS.
13502
5a3fe9b6
AK
135032013-06-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13504
13505 * config/s390/s390.c: Rename UNSPEC_CCU_TO_INT to
13506 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
13507 (struct machine_function): Add tbegin_p.
13508 (s390_canonicalize_comparison): Fold CC mode compares to
13509 conditional jump if possible.
13510 (s390_emit_jump): Return the emitted jump.
13511 (s390_branch_condition_mask, s390_branch_condition_mnemonic):
13512 Handle CCRAWmode compares.
13513 (s390_option_override): Default to -mhtm if available.
13514 (s390_reg_clobbered_rtx): Handle floating point regs as well.
13515 (s390_regs_ever_clobbered): Use s390_regs_ever_clobbered also for
13516 FPRs instead of df_regs_ever_live_p.
13517 (s390_optimize_nonescaping_tx): New function.
13518 (s390_init_frame_layout): Extend clobbered_regs array to cover
13519 FPRs as well.
13520 (s390_emit_prologue): Call s390_optimize_nonescaping_tx.
13521 (s390_expand_tbegin): New function.
13522 (enum s390_builtin): New enum definition.
13523 (code_for_builtin): New array definition.
13524 (s390_init_builtins): New function.
13525 (s390_expand_builtin): New function.
13526 (TARGET_INIT_BUILTINS): Define.
13527 (TARGET_EXPAND_BUILTIN): Define.
0ba6aff3 13528 * common/config/s390/s390-common.c (processor_flags_table): Add PF_TX.
5a3fe9b6
AK
13529 * config/s390/predicates.md (s390_comparison): Handle CCRAWmode.
13530 (s390_alc_comparison): Likewise.
13531 * config/s390/s390-modes.def: Add CCRAWmode.
13532 * config/s390/s390.h (processor_flags): Add PF_TX.
13533 (TARGET_CPU_HTM): Define macro.
13534 (TARGET_HTM): Define macro.
13535 (TARGET_CPU_CPP_BUILTINS): Define __HTM__ for htm.
13536 * config/s390/s390.md: Rename UNSPEC_CCU_TO_INT to
13537 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
13538 (UNSPECV_TBEGIN, UNSPECV_TBEGINC, UNSPECV_TEND, UNSPECV_TABORT)
0ba6aff3 13539 (UNSPECV_ETND, UNSPECV_NTSTG, UNSPECV_PPA): New unspecv enum values.
5a3fe9b6
AK
13540 (TBEGIN_MASK, TBEGINC_MASK): New constants.
13541 ("*cc_to_int"): Move up.
13542 ("*mov<mode>cc", "*cjump_64", "*cjump_31"): Accept integer
13543 constants other than 0.
13544 ("*ccraw_to_int"): New insn and splitter definition.
13545 ("tbegin", "tbegin_nofloat", "tbegin_retry")
13546 ("tbegin_retry_nofloat", "tbeginc", "tend", "tabort")
13547 ("tx_assist"): New expander.
13548 ("tbegin_1", "tbegin_nofloat_1", "*tbeginc_1", "*tend_1")
13549 ("*tabort_1", "etnd", "ntstg", "*ppa"): New insn definition.
13550 * config/s390/s390.opt: Add -mhtm option.
13551 * config/s390/s390-protos.h (s390_emit_jump): Add return type.
13552 * config/s390/htmxlintrin.h: New file.
13553 * config/s390/htmintrin.h: New file.
13554 * config/s390/s390intrin.h: New file.
13555 * doc/extend.texi: Document htm builtins.
13556 * config.gcc: Add the new header files to extra_headers.
13557
9e216629
TS
135582013-06-26 Thomas Schwinge <thomas@codesourcery.com>
13559
13560 * config/i386/gnu.h [TARGET_LIBC_PROVIDES_SSP]
0ba6aff3 13561 (TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Undefine.
9e216629 13562
fd8c65e7 135632013-06-26 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
13564 Pat Haugen <pthaugen@us.ibm.com>
13565 Peter Bergner <bergner@vnet.ibm.com>
fd8c65e7
MM
13566
13567 * config/rs6000/power8.md: New.
13568 * config/rs6000/rs6000-cpus.def (RS6000_CPU table): Adjust processor
13569 setting for power8 entry.
13570 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power8.md.
13571 * config/rs6000/rs6000.c (is_microcoded_insn, is_cracked_insn): Adjust
13572 test for Power4/Power5 only.
13573 (insn_must_be_first_in_group, insn_must_be_last_in_group): Add Power8
13574 support.
13575 (force_new_group): Adjust comment.
13576 * config/rs6000/rs6000.md: Include power8.md.
13577
b24a2ce5
GY
135782013-06-26 Greta Yorsh <Greta.Yorsh@arm.com>
13579
13580 * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Define macro.
13581 * config/arm/arm-protos.h (arm_max_conditional_execute): New
13582 declaration.
13583 (tune_params): Update comment.
13584 * config/arm/arm.c (arm_cortex_a15_tune): Set max_cond_insns to 2.
13585 (arm_max_conditional_execute): New function.
13586 (thumb2_final_prescan_insn): Use max_insn_skipped and
13587 MAX_INSN_PER_IT_BLOCK to compute maximum instructions in a block.
13588
f6fdeb62
JJ
135892013-06-25 Jakub Jelinek <jakub@redhat.com>
13590
13591 PR tree-optimization/57705
13592 * tree-vect-loop.c (vect_is_simple_iv_evolution): Allow
13593 SSA_NAME step, provided that it is not defined inside the loop.
0ba6aff3 13594 (vect_analyze_scalar_cycles_1): Disallow SSA_NAME step in nested loop.
f6fdeb62
JJ
13595 (get_initial_def_for_induction): Handle SSA_NAME IV step.
13596
c13bc3d9
MJ
135972013-06-25 Martin Jambor <mjambor@suse.cz>
13598
13599 PR middle-end/57670
13600 * cgraph.h (cgraph_indirect_call_info): New flag member_ptr.
13601 * ipa-prop.c (ipa_print_node_jump_functions): Mark member pointer
13602 calls in the dump.
13603 (ipa_note_param_call): Initialize member_ptr flag.
13604 (ipa_analyze_indirect_call_uses): Set member_ptr flag.
13605 (ipa_make_edge_direct_to_target): Bail out if member_ptr is set.
13606 (ipa_write_indirect_edge_info): Stream member_ptr flag.
13607 (ipa_read_indirect_edge_info): Likewise.
13608
8a845901
RB
136092013-06-25 Richard Biener <rguenther@suse.de>
13610
13611 PR middle-end/56977
13612 * passes.c (init_optimization_passes): Move pass_fold_builtins
13613 and pass_dce earlier with -Og.
13614
33be0bec
EB
136152013-06-25 Eric Botcazou <ebotcazou@adacore.com>
13616
13617 * expr.c (expand_expr_real_1) <ARRAY_REF>: Fix formatting glitches.
13618 <BIT_FIELD_REF>: Remove trailing TAB.
13619 * varasm.c (output_constructor_bitfield): Fix formatting glitch and
13620 remove blank line.
13621
5fe8e757
MJ
136222013-06-24 Martin Jambor <mjambor@suse.cz>
13623
13624 PR tree-optimization/57358
13625 * ipa-prop.c (ipa_func_spec_opts_forbid_analysis_p): New function.
13626 (ipa_compute_jump_functions_for_edge): Bail out if it returns true.
13627 (ipa_analyze_params_uses): Generate pessimistic info when true.
13628
44a60244
MJ
136292013-06-24 Martin Jambor <mjambor@suse.cz>
13630
13631 PR tree-optimization/57539
13632 * cgraphclones.c (cgraph_clone_node): Add parameter new_inlined_to, set
13633 global.inlined_to of the new node to it. All callers changed.
13634 * ipa-inline-transform.c (clone_inlined_nodes): New variable
13635 inlining_into, pass it to cgraph_clone_node.
13636 * ipa-prop.c (ipa_propagate_indirect_call_infos): Do not call
13637 ipa_free_edge_args_substructures.
13638 (ipa_edge_duplication_hook): Only add edges from inlined nodes to
13639 rdesc linked list. Do not assert rdesc edges have inlined caller.
13640 Assert we have found an rdesc in the rdesc list.
13641
7c5848b8
RB
136422013-06-24 Richard Biener <rguenther@suse.de>
13643
0ba6aff3 13644 * pointer-set.h (struct pointer_set_t): Move here from pointer-set.c.
7c5848b8
RB
13645 (pointer_set_lookup): Declare.
13646 (class pointer_map): New template class implementing a
13647 generic pointer to T map.
13648 (pointer_map<T>::pointer_map, pointer_map<T>::~pointer_map,
13649 pointer_map<T>::contains, pointer_map<T>::insert,
13650 pointer_map<T>::traverse): New functions.
13651 * pointer-set.c (struct pointer_set_t): Moved to pointer-set.h.
13652 (pointer_set_lookup): New function.
13653 (pointer_set_contains): Use pointer_set_lookup.
13654 (pointer_set_insert): Likewise.
13655 (insert_aux): Remove.
13656 (struct pointer_map_t): Embed a pointer_set_t.
13657 (pointer_map_create): Adjust.
13658 (pointer_map_destroy): Likewise.
13659 (pointer_map_contains): Likewise.
13660 (pointer_map_insert): Likewise.
13661 (pointer_map_traverse): Likewise.
13662 * tree-streamer.h (struct streamer_tree_cache_d): Use a
13663 pointer_map<unsigned> instead of a pointer_map_t.
13664 * tree-streamer.c (streamer_tree_cache_insert_1): Adjust.
13665 (streamer_tree_cache_lookup): Likewise.
13666 (streamer_tree_cache_create): Likewise.
13667 (streamer_tree_cache_delete): Likewise.
13668 * lto-streamer.h (struct lto_tree_ref_encoder): Use a
13669 pointer_map<unsigned> instead of a pointer_map_t.
13670 (lto_init_tree_ref_encoder): Adjust.
13671 (lto_destroy_tree_ref_encoder): Likewise.
13672 * lto-section-out.c (lto_output_decl_index): Likewise.
13673 (lto_record_function_out_decl_state): Likewise.
13674 * dominance.c (iterate_fix_dominators): Use pointer_map<int>.
13675
3dbc97a9
RB
136762013-06-24 Richard Biener <rguenther@suse.de>
13677
13678 PR tree-optimization/57488
13679 * tree-ssa-pre.c (insert): Clear NEW sets before each iteration.
13680
8345965a
AM
136812013-06-24 Alan Modra <amodra@gmail.com>
13682
13683 * config/rs6000/rs6000.c (vspltis_constant): Correct for little-endian.
13684 (gen_easy_altivec_constant): Likewise.
13685 * config/rs6000/predicates.md (easy_vector_constant_add_self,
13686 easy_vector_constant_msb): Likewise.
13687
b7df379f
JJ
136882013-06-23 Jakub Jelinek <jakub@redhat.com>
13689
13690 PR target/57688
13691 * common/config/i386/i386-common.c (ix86_handle_option): For OPT_mlzcnt
13692 add missing return true.
13693
12211b99 136942013-06-23 Oleg Endo <olegendo@gcc.gnu.org>
0bcf9a09
OE
13695
13696 PR target/52483
13697 * config/sh/predicates.md (general_extend_operand): Invoke
13698 general_movsrc_operand for memory operands.
13699 (general_movsrc_operand): Allow reg+reg addressing, do not use
13700 general_operand for memory operands.
13701
97db2bf7
ST
137022013-06-23 Sriraman Tallam <tmsriram@google.com>
13703
13704 * config/i386/i386.c (ix86_pragma_target_parse): Restore target
13705 when current target options does not apply.
13706 * config/i386/i386-protos.h (ix86_reset_previous_fndecl): New function.
13707 * config/i386/i386.c (ix86_reset_previous_fndecl): Ditto.
0ba6aff3
UB
13708 * config/i386/bmiintrin.h: Pass appropriate target
13709 attributes to header.
97db2bf7
ST
13710 * config/i386/mmintrin.h: Ditto.
13711 * config/i386/nmmintrin.h: Ditto.
13712 * config/i386/avx2intrin.h: Ditto.
13713 * config/i386/fxsrintrin.h: Ditto.
13714 * config/i386/tbmintrin.h: Ditto.
13715 * config/i386/xsaveintrin.h: Ditto.
13716 * config/i386/f16cintrin.h: Ditto.
13717 * config/i386/xtestintrin.h: Ditto.
13718 * config/i386/xsaveoptintrin.h: Ditto.
13719 * config/i386/bmi2intrin.h: Ditto.
13720 * config/i386/lzcntintrin.h: Ditto.
13721 * config/i386/smmintrin.h: Ditto.
13722 * config/i386/wmmintrin.h: Ditto.
13723 * config/i386/x86intrin.h: Remove all header include guards.
13724 * config/i386/prfchwintrin.h: Ditto.
13725 * config/i386/pmmintrin.h: Ditto.
13726 * config/i386/tmmintrin.h: Ditto.
13727 * config/i386/xmmintrin.h: Ditto.
13728 * config/i386/popcntintrin.h: Ditto.
13729 * config/i386/rdseedintrin.h: Ditto.
13730 * config/i386/ammintrin.h: Ditto.
13731 * config/i386/emmintrin.h: Ditto.
13732 * config/i386/immintrin.h: Remove all header include guards.
13733 * config/i386/fma4intrin.h: Ditto.
13734 * config/i386/lwpintrin.h: Ditto.
13735 * config/i386/xopintrin.h: Ditto.
13736 * config/i386/ia32intrin.h: Ditto.
13737 * config/i386/avxintrin.h: Ditto.
13738 * config/i386/rtmintrin.h: Ditto.
13739 * config/i386/fmaintrin.h: Ditto.
13740 * config/i386/mm3dnow.h: Ditto.
13741
495e6879
ST
137422013-06-22 Sriraman Tallam <tmsriram@google.com>
13743
13744 * common/config/i386/i386-common.c: Handle LZCNT.
13745
11e8f687
AK
137462013-06-22 Andi Kleen <ak@linux.intel.com>
13747
13748 * doc/extend.texi: Use __atomic_store_n instead of
13749 __atomic_store in HLE example.
13750
12211b99 137512013-06-22 Oleg Endo <olegendo@gcc.gnu.org>
664dd721
OE
13752
13753 * config/sh/sh.c: Remove <cstdlib> workaround.
13754
927f908b
AK
137552013-06-21 Andi Kleen <ak@linux.intel.com>
13756
0ba6aff3 13757 * doc/extend.texi: Dont use __atomic_clear in HLE example. Fix typo.
927f908b 13758
cca410b6
AK
137592013-06-21 Andi Kleen <ak@linux.intel.com>
13760
13761 * doc/extend.texi: Document that __atomic_clear and
13762 __atomic_test_and_set should only be used with bool.
13763
d84db1ed
JH
137642013-06-20 Jan Hubicka <jh@suse.cz>
13765
13766 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Use
13767 types_same_for_odr.
13768 * tree.c (decls_same_for_odr): New function.
13769 (same_for_edr): New function.
13770 (types_same_for_odr): New function.
13771 (get_binfo_at_offset): Use it.
13772 * tree.h (types_same_for_odr): Declare.
13773
12211b99 137742013-06-20 Oleg Endo <olegendo@gcc.gnu.org>
469a31a9
OE
13775 Jason Merrill <jason@redhat.com>
13776
13777 * system.h: Include <cstdlib> as well as <stdlib.h>.
13778
49b4ff63
UB
137792013-06-20 Uros Bizjak <ubizjak@gmail.com>
13780
13781 PR target/57655
13782 * config/i386/i386.c (construct_container): Report error if
13783 long double is used with disabled x87 float returns.
13784
7a89ad00
JH
137852013-06-20 Jan Hubicka <jh@suse.cz>
13786
13787 * lto-cgraph.c (input_symtab): Do not set cgraph state.
13788
12211b99 137892013-06-20 Joern Rennecke <joern.rennecke@embecosm.com>
bd280792
JR
13790
13791 PR rtl-optimization/57425
13792 PR rtl-optimization/57569
13793 * alias.c (write_dependence_p): Remove parameters mem_mode and
13794 canon_mem_addr. Add parameters x_mode, x_addr and x_canonicalized.
13795 Changed all callers.
13796 (canon_anti_dependence): Get comments and semantics in sync.
13797 Add parameter mem_canonicalized. Changed all callers.
13798 * rtl.h (canon_anti_dependence): Update prototype.
13799
d16e9a99
RB
138002013-06-20 Richard Biener <rguenther@suse.de>
13801
13802 * data-streamer-in.c (streamer_read_uhwi): Optimize single
13803 byte case, inline streamer_read_uchar and defer section
13804 overrun check.
13805
c3a9b91b
RB
138062013-06-20 Richard Biener <rguenther@suse.de>
13807
13808 PR tree-optimization/57584
13809 * tree-ssa-loop-niter.c (expand_simple_operations): Avoid including
13810 SSA names into the expanded expression that take part in
13811 abnormal coalescing.
13812
371e77e3 138132013-06-19 Sharad Singhai <singhai@google.com>
fc8a650e
SS
13814
13815 * gcov.c (print_usage): Handle new option.
13816 (process_args): Ditto.
13817 (get_gcov_intermediate_filename): New function.
13818 (output_intermediate_file): New function.
13819 (output_gcov_file): New function
13820 (generate_results): Handle new option.
13821 (release_function): Relase demangled name.
13822 (read_graph_file): Handle demangled name.
13823 (output_lines): Ditto.
13824 * doc/gcov.texi: Document gcov intermediate format.
13825
11f5b71a
VM
138262013-06-19 Vladimir Makarov <vmakarov@redhat.com>
13827
13828 PR bootstrap/57604
13829 * lra.c (emit_add3_insn, emit_add2_insn): New functions.
13830 (lra_emit_add): Use the functions. Add comment about Y as an
13831 address segment.
13832
e1f9340b
DE
138332013-06-19 David Edelsohn <dje.gcc@gmail.com>
13834
13835 PR driver/57652
13836 * collect2.c (collect_atexit): New.
13837 (collect_exit): Delete.
13838 (main): Register collect_atexit with atexit.
13839 (collect_wait): Change collect_exit to exit.
13840 (do_wait): Same.
13841 * collect2.h (collect_exit): Delete.
13842 * tlink.c (do_tlink): Rename exit to ret. Change collect_exit to exit.
13843
e3f9e0ac
WM
138442013-06-19 Wei Mi <wmi@google.com>
13845
13846 PR rtl-optimization/57518
13847 * ira.c (set_paradoxical_subreg): Set pdx_subregs[regno]
13848 if regno is used in paradoxical subreg.
13849 (update_equiv_regs): Check pdx_subregs[regno] before
13850 set a reg to be equivalent with a mem.
13851
a09f1a76
MK
138522013-06-19 Matthias Klose <doko@ubuntu.com>
13853
13854 PR driver/57651
13855 * file-find.h (find_a_file): Add a mode parameter.
13856 * file-find.c (find_a_file): Likewise.
13857 * gcc-ar.c (main): Call find_a_file with R_OK for the plugin,
13858 with X_OK for the executables.
13859 * collect2.c (main): Call find_a_file with X_OK.
13860
7d18b0ad
SE
138612013-06-19 Steve Ellcey <sellcey@mips.com>
13862
13863 PR target/56942
13864 * config/mips/mips.md (casesi_internal_mips16_<mode>):
13865 Use NEXT_INSN instead of next_real_insn.
13866
6a6dac52
JH
138672013-06-19 Jan Hubicka <jh@suse.cz>
13868
13869 * cgraph.h (const_value_known_p): Replace by ...
13870 (ctor_for_folding): .. this one.
13871 * cgraphunit.c (process_function_and_variable_attributes): Use it.
13872 * lto-cgraph.c (compute_ltrans_boundary): Use ctor_for_folding.
13873 * expr.c (expand_expr_real_1): Likewise.
13874 (string_constant): Likewise.
13875 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
13876 * ipa.c (process_references): Likewise.
13877 (symtab_remove_unreachable_nodes): Likewise.
13878 * ipa-inline-analysis.c (param_change_prob): Likewise.
13879 * gimple-fold.c (canonicalize_constructor_val): Likewise.
13880 (get_base_constructor): Likwise.
13881 * varpool.c (varpool_remove_node): Likewise.
13882 (varpool_remove_initializer): LIkewise.
13883 (dump_varpool_node): LIkwise.
13884 (const_value_known_p): Rewrite to ...
13885 (ctor_for_folding): ... this one.
13886
216c12ab
JJ
138872013-06-19 Jakub Jelinek <jakub@redhat.com>
13888
13889 PR driver/57651
13890 * gcc-ar.c (main): If not CROSS_DIRECTORY_STRUCTURE, look for
13891 PERSONALITY in $PATH derived prefixes.
13892
d53e2f99
JL
138932013-06-19 Jeff Law <law@redhat.com>
13894
ecdbf306
JL
13895 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): Fix typo
13896 in comment.
13897
d53e2f99
JL
13898 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): New function.
13899 (simplify_bitwise_binary): Use it to simpify certain binary ops on
13900 booleans.
13901
89e7fc04
SN
139022013-06-19 Sofiane Naci <sofiane.naci@arm.com>
13903
13904 * config/arm/vfp.md: Move VFP instruction classification documentation
13905 to ...
13906 * config/arm/arm.md: ... here. Update instruction classification
13907 documentation.
13908
5e7f6aaa
RE
139092013-06-19 Richard Earnshaw <rearnsha@arm.com>
13910
13911 arm.md (split for eq(reg, 0)): Add variants for ARMv5 and Thumb2.
13912 (peepholes for eq(reg, not-0)): Ensure condition register is dead after
13913 pattern. Use more efficient sequences on ARMv5 and Thumb2.
13914
5fdc1e5d
SB
139152013-06-19 Steven Bosscher <steven@gcc.gnu.org>
13916
13917 PR target/57609
13918 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
13919 with NEXT_INSN. Use tablejump_p to check for jump table data
13920 insns.
13921
e952afba
PC
139222013-06-19 Paolo Carlini <paolo.carlini@oracle.com>
13923
13924 PR c++/56544
13925 * doc/cpp.texi [Standard Predefined Macros, __cplusplus]: Document
13926 that now in C++ the value is correct per the C++ standards.
13927
3fd0303a
RB
139282013-06-19 Richard Biener <rguenther@suse.de>
13929
13930 * expr.c (expand_expr_real_1): Use SCOPE_FILE_SCOPE_P to check
13931 for global context.
13932
b04e4b08
AK
139332013-06-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13934
13935 Revert:
13936 2013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13937
13938 PR target/57609
13939 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
13940 with next_active_insn.
13941
bef8491a
ST
139422013-06-18 Sriraman Tallam <tmsriram@google.com>
13943
13944 * ipa-inline.c (inline_always_inline_functions): Pretend always_inline
13945 functions are inlined during failures to flag an error.
13946 * tree-inline.c (expand_call_inline): Allow the error to be flagged
13947 in early inline pass.
22fc7d3d 13948
c21b257d
L
139492013-06-18 H.J. Lu <hongjiu.lu@intel.com>
13950
13951 * config/i386/i386.c (initial_ix86_tune_features): Fix a typo
13952 in comments.
13953
33255ae3
JB
139542013-06-18 Julian Brown <julian@codesourcery.com>
13955
13956 * config/arm/arm.c (neon_vector_mem_operand): Add strict argument.
13957 Permit virtual register pre-reload if !strict.
13958 (coproc_secondary_reload_class): Adjust for neon_vector_mem_operand
13959 change.
13960 * config/arm/arm-protos.h (neon_vector_mem_operand): Adjust
13961 prototype.
13962 * config/arm/neon.md (movmisalign<mode>): Use
13963 neon_perm_struct_or_reg_operand instead of
13964 neon_struct_or_register_operand.
13965 (*movmisalign<mode>_neon_load, *movmisalign<mode>_neon_store): Use
13966 neon_permissive_struct_operand instead of neon_struct_operand.
13967 * config/arm/constraints.md (Un, Um, Us): Adjust calls to
13968 neon_vector_mem_operand.
13969 * config/arm/predicates.md (neon_struct_operand): Adjust call to
13970 neon_vector_mem_operand.
13971 (neon_permissive_struct_operand): New.
13972 (neon_struct_or_register_operand): Rename to...
13973 (neon_perm_struct_or_reg_operand): This. Adjust call to
13974 neon_vector_mem_operand.
13975
d579fcda
RB
139762013-06-18 Richard Biener <rguenther@suse.de>
13977
13978 * Makefile.in (LTO_STREAMER_H): Add pointer-set.h dependency.
13979 * lto-streamer.h: Include pointer-set.h.
13980 (struct lto_decl_slot): Remove.
13981 (struct lto_tree_ref_encoder): Make tree_hash_table a pointer-map.
13982 Remove next_index entry.
13983 (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
13984 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
13985 (lto_init_tree_ref_encoder): Adjust.
13986 (lto_destroy_tree_ref_encoder): Likewise.
13987 * lto-section-out.c (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
13988 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
13989 (lto_output_decl_index): Adjust.
13990 (lto_new_out_decl_state): Likewise.
13991 (lto_record_function_out_decl_state): Likewise.
13992 * lto-streamer-out.c (copy_function): Likewise.
13993
31ee20ba
RB
139942013-06-18 Richard Biener <rguenther@suse.de>
13995
13996 * Makefile.in (cgraphunit.o): Add $(CFGLOOP_H) dependency.
13997 * cgraphunit.c: Include cfgloop.h.
13998 (init_lowered_empty_function): Initialize the loop tree.
13999 (assemble_thunk): Insert new BBs into loops.
14000
ac0511f2
RB
140012013-06-18 Richard Biener <rguenther@suse.de>
14002
14003 * tree-streamer.h (streamer_tree_cache_create): Adjust prototype.
14004 * tree-streamer.c (streamer_tree_cache_create): Make maintaining
14005 the map from cache entry to cache index optional.
14006 (streamer_tree_cache_replace_tree): Adjust accordingly.
14007 (streamer_tree_cache_append): Likewise.
14008 (streamer_tree_cache_delete): Likewise.
14009 * lto-streamer-in.c (lto_data_in_create): Do not maintain the
14010 streamer cache map from cache entry to cache index.
14011 * lto-streamer-out.c (create_output_block): Adjust.
14012
09485a08
SN
140132013-06-18 Sofiane Naci <sofiane.naci@arm.com>
14014
22fc7d3d
UB
14015 * config/arm/arm.md (attribute "insn"): Move multiplication and
14016 division attributes to...
09485a08
SN
14017 (attribute "type"): ... here. Remove mult.
14018 (attribute "mul32"): New attribute.
14019 (attribute "mul64"): Add umaal.
14020 (*arm_mulsi3): Update attributes.
14021 (*arm_mulsi3_v6): Likewise.
14022 (*thumb_mulsi3): Likewise.
14023 (*thumb_mulsi3_v6): Likewise.
14024 (*mulsi3_compare0): Likewise.
14025 (*mulsi3_compare0_v6): Likewise.
14026 (*mulsi_compare0_scratch): Likewise.
14027 (*mulsi_compare0_scratch_v6): Likewise.
14028 (*mulsi3addsi): Likewise.
14029 (*mulsi3addsi_v6): Likewise.
14030 (*mulsi3addsi_compare0): Likewise.
14031 (*mulsi3addsi_compare0_v6): Likewise.
14032 (*mulsi3addsi_compare0_scratch): Likewise.
14033 (*mulsi3addsi_compare0_scratch_v6): Likewise.
14034 (*mulsi3subsi): Likewise.
14035 (*mulsidi3adddi): Likewise.
14036 (*mulsi3addsi_v6): Likewise.
14037 (*mulsidi3adddi_v6): Likewise.
14038 (*mulsidi3_nov6): Likewise.
14039 (*mulsidi3_v6): Likewise.
14040 (*umulsidi3_nov6): Likewise.
14041 (*umulsidi3_v6): Likewise.
14042 (*umulsidi3adddi): Likewise.
14043 (*umulsidi3adddi_v6): Likewise.
14044 (*smulsi3_highpart_nov6): Likewise.
14045 (*smulsi3_highpart_v6): Likewise.
14046 (*umulsi3_highpart_nov6): Likewise.
14047 (*umulsi3_highpart_v6): Likewise.
14048 (mulhisi3): Likewise.
14049 (*mulhisi3tb): Likewise.
14050 (*mulhisi3bt): Likewise.
14051 (*mulhisi3tt): Likewise.
14052 (maddhisi4): Likewise.
14053 (*maddhisi4tb): Likewise.
14054 (*maddhisi4tt): Likewise.
14055 (maddhidi4): Likewise.
14056 (*maddhidi4tb): Likewise.
14057 (*maddhidi4tt): Likewise.
14058 (divsi3): Likewise.
14059 (udivsi3): Likewise.
14060 * config/arm/thumb2.md (thumb2_mulsi_short): Update attributes.
14061 (thumb2_mulsi_short_compare0): Likewise.
14062 (thumb2_mulsi_short_compare0_scratch): Likewise.
14063 * config/arm/arm1020e.md (1020mult1): Update attribute change.
14064 (1020mult2): Likewise.
14065 (1020mult3): Likewise.
14066 (1020mult4): Likewise.
14067 (1020mult5): Likewise.
14068 (1020mult6): Likewise.
22fc7d3d
UB
14069 * config/arm/cortex-a15.md (cortex_a15_mult32): Update attribute
14070 change.
09485a08
SN
14071 (cortex_a15_mult64): Likewise.
14072 (cortex_a15_sdiv): Likewise.
14073 (cortex_a15_udiv): Likewise.
14074 * config/arm/arm1026ejs.md (mult1): Update attribute change.
14075 (mult2): Likewise.
14076 (mult3): Likewise.
14077 (mult4): Likewise.
14078 (mult5): Likewise.
14079 (mult6): Likewise.
14080 * config/arm/marvell-pj4.md (pj4_ir_mul): Update attribute change.
14081 (pj4_ir_div): Likewise.
14082 * config/arm/arm1136jfs.md (11_mult1): Update attribute change.
14083 (11_mult2): Likewise.
14084 (11_mult3): Likewise.
14085 (11_mult4): Likewise.
14086 (11_mult5): Likewise.
14087 (11_mult6): Likewise.
14088 (11_mult7): Likewise.
14089 * config/arm/cortex-a8.md (cortex_a8_mul): Update attribute change.
14090 (cortex_a8_mla): Likewise.
14091 (cortex_a8_mull): Likewise.
14092 (cortex_a8_smulwy): Likewise.
14093 (cortex_a8_smlald): Likewise.
14094 * config/arm/cortex-m4.md (cortex_m4_alu): Update attribute change.
14095 * config/arm/cortex-r4.md (cortex_r4_mul_4): Update attribute change.
14096 (cortex_r4_mul_3): Likewise.
14097 (cortex_r4_mla_4): Likewise.
14098 (cortex_r4_mla_3): Likewise.
14099 (cortex_r4_smlald): Likewise.
14100 (cortex_r4_mull): Likewise.
14101 (cortex_r4_sdiv): Likewise.
14102 (cortex_r4_udiv): Likewise.
14103 * config/arm/cortex-a7.md (cortex_a7_mul): Update attribute change.
14104 (cortex_a7_idiv): Likewise.
14105 * config/arm/arm926ejs.md (9_mult1): Update attribute change.
14106 (9_mult2): Likewise.
14107 (9_mult3): Likewise.
14108 (9_mult4): Likewise.
14109 (9_mult5): Likewise.
14110 (9_mult6): Likewise.
14111 * config/arm/cortex-a53.md (cortex_a53_mul): Update attribute change.
14112 (cortex_a53_sdiv): Likewise.
14113 (cortex_a53_udiv): Likewise.
14114 * config/arm/fa726te.md (726te_mult_op): Update attribute change.
14115 * config/arm/fmp626.md (mp626_mult1): Update attribute change.
14116 (mp626_mult2): Likewise.
14117 (mp626_mult3): Likewise.
14118 (mp626_mult4): Likewise.
14119 * config/arm/fa526.md (526_mult1): Update attribute change.
14120 (526_mult2): Likewise.
14121 * config/arm/arm-generic.md (mult): Update attribute change.
14122 (mult_ldsched_strongarm): Likewise.
14123 (mult_ldsched): Likewise.
14124 (multi_cycle): Likewise.
14125 * config/arm/cortex-a5.md (cortex_a5_mul): Update attribute change.
14126 * config/arm/fa606te.md (606te_mult1): Update attribute change.
14127 (606te_mult2): Likewise.
14128 (606te_mult3): Likewise.
14129 (606te_mult4): Likewise.
14130 * config/arm/cortex-a9.md (cortex_a9_mult16): Update attribute change.
14131 (cortex_a9_mac16): Likewise.
14132 (cortex_a9_multiply): Likewise.
14133 (cortex_a9_mac): Likewise.
14134 (cortex_a9_multiply_long): Likewise.
14135 * config/arm/fa626te.md (626te_mult1): Update attribute change.
14136 (626te_mult2): Likewise.
14137 (626te_mult3): Likewise.
14138 (626te_mult4): Likewise.
14139
8951f345
RB
141402013-06-18 Richard Biener <rguenther@suse.de>
14141
14142 PR lto/57334
14143 * lto-symtab.c (lto_symtab_merge_decls): Process nodes properly.
14144
d8101d05
AK
141452013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14146
14147 PR target/57609
14148 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
14149 with next_active_insn.
14150
69eff9da
AM
141512013-06-18 Alan Modra <amodra@gmail.com>
14152
14153 * config/rs6000/rs6000.h (enum data_align): New.
14154 (LOCAL_ALIGNMENT, DATA_ALIGNMENT): Use rs6000_data_alignment.
14155 (DATA_ABI_ALIGNMENT): Define.
14156 (CONSTANT_ALIGNMENT): Correct comment.
14157 * config/rs6000/rs6000-protos.h (rs6000_data_alignment): Declare.
14158 * config/rs6000/rs6000.c (rs6000_data_alignment): New function.
14159
8ed00d76
DM
141602013-06-17 David Malcolm <dmalcolm@redhat.com>
14161
14162 * ggc-page.c (ggc_pch_write_object) <d>: Remove erroneous
14163 ATTRIBUTE_UNUSED marking.
14164
3d33d06b
SN
141652013-06-17 Sofiane Naci <sofiane.naci@arm.com>
14166
14167 * config/aarch64/aarch64-simd.md (aarch64_dup_lane<mode>): Add r<-w
14168 alternative and update.
14169 (aarch64_dup_lanedi): Delete.
14170 * config/aarch64/arm_neon.h (vdup<bhsd>_lane_*): Update.
14171 * config/aarch64/aarch64-simd-builtins.def: Update.
14172
ee03e71d
RB
141732013-06-17 Richard Biener <rguenther@suse.de>
14174
14175 * lto-streamer.h (enum LTO_tags): Add LTO_tree_scc.
14176 (lto_input_scc): Declare.
14177 (lto_input_tree_1): Likewise.
14178 (struct lto_stats_d): Add num_tree_bodies_output and
14179 num_pickle_refs_output.
14180 * lto-streamer-in.c (lto_read_body): Use streamer_tree_cache_get_tree.
14181 (lto_read_tree_1): Split out from ...
14182 (lto_read_tree): ... this.
14183 (lto_input_scc): New function.
14184 (lto_input_tree_1): Split out from ...
14185 (lto_input_tree): ... this. Handle LTO_tree_scc.
14186 (lto_data_in_create): Create the streamer cache without hashes.
14187 * lto-streamer-out.c (create_output_block): Create the streamer
14188 cache with hashes when not doing WPA.
14189 (lto_write_tree_1): Split out from ...
14190 (lto_write_tree): ... this.
14191 (get_symbol_initial_value): New function.
14192 (lto_output_tree_1): Split out from ...
14193 (lto_output_tree): ... this. Write trees as series of SCCs
14194 using a DFS walk via DFS_write_tree.
14195 (struct sccs, struct scc_entry): New types.
14196 (next_dfs_num, sccstack, sccstate, sccstate_obstack): New globals.
14197 (DFS_write_tree_body): New function.
14198 (DFS_write_tree): Likewise.
14199 (hash_tree): Likewise.
14200 (scc_entry_compare): Likewise.
14201 (hash_scc): Likewise.
14202 (tree_is_indexable): DEBUG_EXPR_DECLs are local entities.
14203 * tree-streamer-in.c (lto_input_ts_list_tree_pointers): Stream
14204 TREE_CHAIN as regular reference.
14205 (streamer_read_integer_cst): Remove.
14206 (streamer_get_pickled_tree): Adjust.
14207 * tree-streamer-out.c (streamer_write_chain): Disable streaming
14208 of DECL_EXTERNALs in BLOCK_VARS for now.
14209 (write_ts_list_tree_pointers): Stream TREE_CHAIN as regular
14210 reference.
14211 * tree-streamer.c (streamer_tree_cache_add_to_node_array):
14212 Add hash value argument and record that if hashes are recorded
14213 in the cache.
14214 (streamer_tree_cache_insert_1): Adjust.
14215 (streamer_tree_cache_insert): Likewise.
14216 (streamer_tree_cache_insert_at): Rename to ...
14217 (streamer_tree_cache_replace_tree): ... this and adjust.
14218 (streamer_tree_cache_append): Adjust.
14219 (record_common_node): Likewise.
14220 (streamer_tree_cache_create): Add argument whether to
14221 record hash values together with trees.
14222 (streamer_tree_cache_delete): Adjust.
14223 * tree-streamer.h (struct streamer_tree_cache_d): Add
14224 vector of hashes.
14225 (streamer_read_integer_cst): Remove.
14226 (streamer_tree_cache_insert): Adjust.
14227 (streamer_tree_cache_append): Likewise.
14228 (streamer_tree_cache_insert_at): Rename to ...
14229 (streamer_tree_cache_replace_tree): ... this and adjust.
14230 (streamer_tree_cache_create): Add argument whether to record hashes.
14231 (streamer_tree_cache_get): Rename to ...
14232 (streamer_tree_cache_get_tree): ... this.
14233 (streamer_tree_cache_get_hash): New function.
14234 * tree.c (cache_integer_cst): New function.
14235 * tree.h (cache_integer_cst): Declare.
14236 (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Move here from cp/cp-tree.h.
14237 * lto-symtab.c (lto_varpool_replace_node): Only release
14238 DECL_INITIAL of non-prevailing decls.
14239 * varpool.c (varpool_remove_initializer): Do not release
14240 DECL_INITIAL when we are still in CGRAPH_LTO_STREAMING.
14241
0de86a92
JU
142422013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
14243
14244 * config/mips/mips.h (ISA_HAS_MUL3): Include TARGET_MIPS5900.
14245 (ISA_HAS_MULT, ISA_HAS_DMULT, ISA_HAS_DIV, ISA_HAS_DDIV): New macros.
14246 * config/mips/mips.md (mul<mode>3, mul<mode>3_internal)
14247 (mul<mode>3_r4000): Require ISA_HAS_<D>MULT.
14248 (mul<mode>3_mul3): Handle TARGET_MIPS5900.
14249 (mulsidi3_64bit_dmul): Remove redundant TARGET_64BIT test.
14250 (<su>muldi3_highpart, <su>muldi3_highpart_internal, <u>mulditi3)
14251 (<u>mulditi3_internal, <u>mulditi3_r4000): Require ISA_HAS_DMULT
14252 instead of TARGET_64BIT.
14253 (divmod<mode>4, udivmod<mode>4, <u>divmod<GPR:mode>4_hilo_<HILO:mode>):
14254 Require ISA_HAS_<D>DIV.
14255
74240413
RS
142562013-06-16 Richard Sandiford <rdsandiford@googlemail.com>
14257
14258 * config.gcc (mips*-mti-linux*, mips64*-*-linux*, mipsisa64*-*-linux*)
14259 (mips*-*-linux*): Move default with_llsc setting to where other
14260 defaults are set.
14261 (mips*-*-vxworks*): Move with_arch default from with_cpu block to
14262 with_arch block.
14263 (mips64r5900-*-*, mips64r5900el-*-*, mipsr5900-*-*, mipsr5900el-*-*):
14264 Likewise. Remove default with_tune setting. Move default float
14265 setting to its own block. Handle with_llsc in the same block as above.
14266
12211b99 142672013-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
393f9fed
JR
14268
14269 PR rtl-optimization/57425
14270 PR rtl-optimization/57569
299a5f6a 14271 * alias.c (write_dependence_p): Add new parameters mem_mode,
393f9fed
JR
14272 canon_mem_addr and mem_canonicalized. Change type of writep to bool.
14273 Changed all callers.
14274 (canon_anti_dependence): New function.
14275 * cse.c (check_dependence): Use canon_anti_dependence.
14276 * cselib.c (cselib_invalidate_mem): Likewise.
14277 * rtl.h (canon_anti_dependence): Declare.
14278
b259d352
JU
142792013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
14280
14281 * config/mips/mips.h (ISA_HAS_LL_SC): Exclude TARGET_MIPS5900.
14282 * config/mips/mips.c (mips_start_ll_sc_sync_block): Output
14283 ".set mips3" for 64-bit targets.
14284
4de09b85
DC
142852013-06-15 Dehao Chen <dehao@google.com>
14286
14287 * tree-flow.h (gimple_check_call_matching_types): Add new argument.
14288 * gimple-low.c (gimple_check_call_matching_types): Likewise.
14289 (gimple_check_call_args): Likewise.
14290 * value-prof.c (check_ic_target): Likewise.
14291 * ipa-inline.c (early_inliner): Likewise.
14292 * ipa-prop.c (update_indirect_edges_after_inlining): Likewise.
14293 * cgraph.c (cgraph_create_edge_1): Likewise.
14294 (cgraph_make_edge_direct): Likewise.
14295
d1aa4a76
MM
142962013-06-14 Michael Meissner <meissner@linux.vnet.ibm.com>
14297
14298 PR target/57615
14299 * config/rs6000/rs6000.md (mov<mode>_ppc64): Call
14300 rs6000_output_move_128bit to handle emitting quad memory
14301 operations. Set attribute length to 8 bytes.
14302
12211b99 143032013-06-14 Vidya Praveen <vidyapraveen@arm.com>
24244e4d
VP
14304
14305 * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_lo<mode>):
14306 New pattern.
14307 (aarch64_<su>mlal_hi<mode>, aarch64_<su>mlsl_lo<mode>): Likewise.
14308 (aarch64_<su>mlsl_hi<mode>, aarch64_<su>mlal<mode>): Likewise.
14309 (aarch64_<su>mlsl<mode>): Likewise.
14310
f5273574
MS
143112013-06-14 Mike Stump <mikestump@comcast.net>
14312
14313 * Makefile.in (TARGET_H): Add insn-codes.h.
14314
ef7e7ab2
AM
143152013-06-14 Alan Modra <amodra@gmail.com>
14316
14317 PR middle-end/57134
14318 PR middle-end/57586
14319 * expr.c (expand_expr_real_1 <normal_inner_ref>): Pass
14320 EXPAND_MEMORY and EXPAND_WRITE to recursive call. Don't use
14321 bitfield expansion when EXPAND_MEMORY.
14322 (expand_expr_real_1 <VIEW_CONVERT_EXPR>): Pass modifier likewise.
14323
135faab6
MM
143242013-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
14325
14326 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
14327 test for clearing quad memory on 32-bit later.
14328
948a1fd9
MG
143292013-06-13 Marc Glisse <marc.glisse@inria.fr>
14330
14331 * fold-const.c (negate_expr_p): Handle VECTOR_CST.
14332 (fold_negate_expr): Likewise.
14333 (fold_real_zero_addition_p): Handle vectors.
14334 (fold_binary_loc) <PLUS_EXPR, MINUS_EXPR>: Likewise.
14335
0597fb9c
AM
143362013-06-14 Alan Modra <amodra@gmail.com>
14337
14338 * varasm.c (force_const_mem): Revert 2013-06-07 change.
14339
e5b962d0
JH
143402013-06-13 Jan Hubicka <jh@suse.cz>
14341
14342 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
14343 Local comdats are not externally visible.
14344 * symtab.c (dump_symtab_base): Dump externally visible.
14345 (verify_symtab_base): Verify back links in the symtab hash.
14346
a8355e51
BC
143472013-06-13 Bin Cheng <bin.cheng@arm.com>
14348
14349 * fold-const.c (operand_equal_p): Consider NOP_EXPR and
14350 CONVERT_EXPR as equal nodes.
14351
8f7e6e33
BC
143522013-06-13 Bin Cheng <bin.cheng@arm.com>
14353
22fc7d3d 14354 * rtlanal.c (noop_move_p): Check the code to be executed for COND_EXEC.
8f7e6e33 14355
5d418483
MG
143562013-06-13 Marc Glisse <marc.glisse@inria.fr>
14357
14358 * tree-ssa-forwprop.c (simplify_bitwise_binary, associate_plusminus):
14359 Generalize to complex and vector.
14360 * tree.c (build_all_ones_cst): New function.
14361 * tree.h (build_all_ones_cst): Declare it.
14362
50751417
AM
143632013-06-13 Alan Modra <amodra@gmail.com>
14364
14365 * config/rs6000/rs6000.h (LONG_DOUBLE_LARGE_FIRST): Define.
14366 * config/rs6000/rs6000.md (signbittf2): New insn.
14367 (extenddftf2_internal): Use LONG_DOUBLE_LARGE_FIRST.
14368 (abstf2_internal, cmptf_internal2): Likewise.
14369 * config/rs6000/spe.md (spe_abstf2_cmp, spe_abstf2_tst): Likewise.
14370
4b02c962 143712013-06-12 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
14372 Pat Haugen <pthaugen@us.ibm.com>
14373 Peter Bergner <bergner@vnet.ibm.com>
4b02c962
MM
14374
14375 * config/rs6000/rs6000.c (emit_load_locked): Add support for
14376 power8 byte, half-word, and quad-word atomic instructions.
14377 (emit_store_conditional): Likewise.
14378 (rs6000_expand_atomic_compare_and_swap): Likewise.
14379 (rs6000_expand_atomic_op): Likewise.
14380
14381 * config/rs6000/sync.md (larx): Add new modes for power8.
14382 (stcx): Likewise.
14383 (AINT): New mode iterator to include TImode as well as normal
14384 integer modes on power8.
14385 (fetchop_pred): Use int_reg_operand instead of gpc_reg_operand so
14386 that VSX registers are not considered. Use AINT mode iterator
14387 instead of INT1 to allow inclusion of quad word atomic operations
14388 on power8.
14389 (load_locked<mode>): Likewise.
14390 (store_conditional<mode>): Likewise.
14391 (atomic_compare_and_swap<mode>): Likewise.
14392 (atomic_exchange<mode>): Likewise.
14393 (atomic_nand<mode>): Likewise.
14394 (atomic_fetch_<fetchop_name><mode>): Likewise.
14395 (atomic_nand_fetch<mode>): Likewise.
14396 (mem_thread_fence): Use gen_loadsync_<mode> instead of enumerating
14397 each type.
14398 (ATOMIC): On power8, add QImode, HImode modes.
14399 (load_locked<QHI:mode>_si): Varients of load_locked for QI/HI
14400 modes that promote to SImode.
14401 (load_lockedti): Convert TImode arguments to PTImode, so that we
14402 get a guaranteed even/odd register pair.
14403 (load_lockedpti): Likewise.
14404 (store_conditionalti): Likewise.
14405 (store_conditionalpti): Likewise.
14406
14407 * config/rs6000/rs6000.md (QHI): New mode iterator for power8
14408 atomic load/store instructions.
14409 (HSI): Likewise.
14410
710b6cc1
RS
144112013-06-12 Richard Sandiford <rdsandiford@googlemail.com>
14412
14413 * config/mips/mips.md (extended_mips16): Include GOT and constant-pool
14414 loads.
14415 (insn_count): New attribute, with most cases extracted from...
14416 (length): ...here. Redefine most cases in terms of insn_count.
14417 (single_insn): Delete.
14418 (can_delay): Use insn_count to check for single instructions.
14419 (*mul<mode>3_r4300, mul<mode>3_r4000, *mul_acc_si, *mul_acc_si_r3900)
14420 (*msac_using_macc, *mul_sub_si, <u>mulsidi3_32bit_r4000)
14421 (<u>mulsidi3_64bit_r4000, <su>muldi3_highpart_internal)
14422 (<su>mulsi3_highpart_split, <su>muldi3_highpart_internal)
14423 (<u>mulditi3_r4000, *div<mode>3, *recip<mode>3, divmod<mode>4)
14424 (udivmod<mode>4, sqrt<mode>2, *rsqrt<mode>a, *rsqrt<mode>b)
14425 (fix_truncdfsi2_macro, fix_truncsfsi2_macro, *lea_high64)
14426 (*lea64, cprestore_<mode>, clear_hazard_<mode>, <unnamed insn>)
14427 (casesi_internal_mips16_<mode>, *tls_get_tp_<mode>_split)
14428 (tls_get_tp_mips16, *tls_get_tp_mips16_call_<mode>): Use "insn_count"
14429 rather than "length".
14430 (tls_get_tp_<mode>): Likewise. Remove redundant "no_delay" attribute.
14431 * config/mips/mips-ps-3d.md (mips_c_cond_4s, mips_cabs_cond_4s):
14432 Use "insn_count" rather than "length".
14433 * config/mips/mips-dsp.md
14434 (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>)
14435 (mips_l<GPR:size>x_<P:mode>, *mips_lw<u>x_<P:mode>_ext): Remove
14436 length attributes.
14437
1951f101
MG
144382013-06-12 Marc Glisse <marc.glisse@inria.fr>
14439
14440 PR tree-optimization/57361
14441 * tree-ssa-dse.c (dse_possible_dead_store_p): Handle self-assignment.
14442
8b033a8a
SN
144432013-06-12 Sofiane Naci <sofiane.naci@arm.com>
14444
22fc7d3d
UB
14445 * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Convert
14446 to split.
8b033a8a
SN
14447 (aarch64_simd_combine<mode>): New instruction expansion.
14448 * config/aarch64/aarch64-protos.h (aarch64_split_simd_combine): New
14449 function prototype.
14450 * config/aarch64/aarch64.c (aarch64_split_combine): New function.
14451 * config/aarch64/iterators.md (Vdbl): Add entry for DF.
14452
ca0f62a8
JH
144532013-06-12 Jan Hubicka <jh@suse.cz>
14454
14455 * cgraph.c (verify_edge_corresponds_to_fndecl): Be lax about
14456 decl has when in streaming stage.
14457 * lto-symtab.c (lto_symtab_merge_symbols): Likewise.
14458 * cgraph.h (cgraph_state): Add CGRAPH_LTO_STREAMING.
14459
12211b99 144602013-06-12 Roland Stigge <stigge@antcom.de>
cddd69eb
RS
14461
14462 PR target/57578
14463 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Fix SPE version detection.
14464
bfdeda2c
JJ
144652013-06-12 Jakub Jelinek <jakub@redhat.com>
14466
14467 PR tree-optimization/57537
14468 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): If
14469 vect_handle_widen_op_by_const, convert oprnd1 to half_type1.
14470
a4fa02d1
RB
144712013-06-12 Richard Biener <rguenther@suse.de>
14472
14473 * data-streamer.h (streamer_write_char_stream): CSE
14474 obs->current_pointer.
14475 * data-streamer-out.c (streamer_write_uhwi_stream): Inline
14476 streamer_write_char_stream manually and optimize the resulting loop.
14477 (streamer_write_hwi_stream): Likewise.
14478
bbf9ad07
JH
144792013-06-12 Jan Hubicka <jh@suse.cz>
14480
14481 * lto-symtab.c (lto_symtab_merge_symbols): Populate symtab hashtable.
14482 * cgraph.h (varpool_create_empty_node): Declare.
14483 * lto-cgraph.c (input_node, input_varpool_node): Forcingly create
14484 duplicated nodes.
14485 * symtab.c (symtab_unregister_node): Be lax about missin entries
14486 in node hash.
14487 (symtab_get_node): Update comment.
14488 * varpool.c (varpool_create_empty_node): Break out from ...
14489 (varpool_node_for_decl): ... here.
14490 * lto-streamer.h (lto_file_decl_data): Add RESOLUTION_MAP.
14491
a53f90ad
EB
144922013-06-12 Eric Botcazou <ebotcazou@adacore.com>
14493
14494 * expr.c (expand_expr_real_1) <TARGET_MEM_REF>: Use straight-line flow.
14495 <MEM_REF>: Use 'type' instead of TREE_TYPE (exp) and tidy up the first
14496 part. Use straight-line flow at the end.
14497 <COMPONENT_REF>: Remove superfluous else.
14498 <VIEW_CONVERT_EXPR>: Use 'type' instead of TREE_TYPE (exp).
14499
946f9306
JJ
145002013-06-12 Jakub Jelinek <jakub@redhat.com>
14501
14502 PR target/56564
14503 * varasm.c (decl_binds_to_current_def_p): Call binds_local_p
14504 target hook even for !TREE_PUBLIC decls. If no resolution info
14505 is available, return false for common and external decls.
14506
a7fca6f0
KP
145072013-06-12 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
14508
14509 * config/rl78/constraints.md (U): New constraint.
14510 * config/rl78/rl78.md (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): Add
14511 valloc attribute.
14512
c7d8f446
MM
145132013-06-11 Michael Meissner <meissner@linux.vnet.ibm.com>
14514
14515 PR target/57589
14516 * config/rs6000/driver-rs6000.c (elf_platform): Make buffer static
14517 to allow returning address to AT_PLATFORM name.
14518
08346abd
JH
145192013-06-11 Jan Hubicka <jh@suse.cz>
14520
14521 * cgraph.c (cgraph_create_function_alias): Set weakref flag.
14522 * cgraph.h (symtab_node_base): Add weakref flag.
14523 * cgraphunit.c (cgraph_reset_node): Clear weakref flag.
14524 (handle_alias_pairs): Set weakref flag, do not set DECL_EXTERNAL.
14525 (output_weakrefs): Use weakref flag.
14526 * fold-const.c (simple_operand_p): Handle WEAK.
14527 * gimple-fold.c (can_refer_decl_in_current_unit_p): Drop weakref.
14528 * ipa.c (varpool_externally_visible_p): Drop weakref.
14529 (function_and_variable_visibility): Update comment; fix weakref
14530 sanity checks; do not clear DECL_WEAK on them.
14531 * lto-cgraph.c (lto_output_node): update.
14532 (lto_output_varpool_node): Update.
14533 (input_overwrite_node): Update.
14534 (input_node): Update.
14535 (input_varpool_node): Update.
14536 * lto-symtab.c (lto_symtab_symbol_p): Do not special case weakrefs.
14537 (lto_symtab_merge_symbols): Add sanity check.
14538 (lto_symtab_prevailing_decl): Do not special case weakrefs.
14539 * passes.c (rest_of_decl_compilation): Set static flag, too.
14540 * symtab.c (dump_symtab_base): Dump weakref.
14541 (verify_symtab_base): Sanity check weakrefs.
14542 (symtab_make_decl_local): Remove duplicated code.
14543 (symtab_alias_ultimate_target): Simplify.
14544 * varpool.c (varpool_create_variable_alias): Set weakref flag.
c7d8f446 14545
2e6a2f88
TV
145462013-06-11 Tom de Vries <tom@codesourcery.com>
14547
14548 * genautomata.c (gen_regexp_sequence): Handle els_num == -1. Handle
14549 sequence_vect == NULL.
14550
d9af3652
DD
145512013-06-11 DJ Delorie <dj@redhat.com>
14552
14553 * config/rl78/rl78.c (TARGET_UNWIND_WORD_MODE): Define.
14554 (rl78_unwind_word_mode): New.
14555
ffa66012
DM
145562013-06-11 David Malcolm <dmalcolm@redhat.com>
14557
14558 * final.c (debug_prefix_maps): Make static.
14559
783f2d35
DM
145602013-06-11 David Malcolm <dmalcolm@redhat.com>
14561
14562 * function.c (initial_trampoline): Remove stray copy.
14563
7af26def
SN
145642013-06-11 Sofiane Naci <sofiane.naci@arm.com>
14565
14566 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update.
14567
97756c0e
MJ
145682013-06-11 Martin Jambor <mjambor@suse.cz>
14569
14570 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that param_index is
14571 within bounds at the beginning of the function.
14572
2c7b8bf6
AM
145732013-06-11 Alan Modra <amodra@gmail.com>
14574
14575 * varasm.c (get_section): Don't die on !DECL_P decl. Tidy error
14576 reporting.
14577 (get_named_section): Don't NULL !DECL_P decl.
14578
77cea46e
IZ
145792013-06-11 Igor Zamyatin <igor.zamyatin@intel.com>
14580
14581 * doc/invoke.texi (core-avx2): Document.
14582 (slm): Likewise.
14583 (atom): Updated with MOVBE.
14584
888f0920
RB
145852013-06-11 Richard Biener <rguenther@suse.de>
14586
22fc7d3d 14587 * collect2.c (main): Do not redirect ld stdout/stderr when debugging.
888f0920 14588
6b438d58
AB
145892013-06-11 Anton Blanchard <anton@samba.org>
14590
14591 * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Calculate
14592 correct shift value in little-endian mode.
14593
3bc66938
JJ
145942013-06-11 Jakub Jelinek <jakub@redhat.com>
14595
14596 PR target/56564
14597 * varasm.c (get_variable_align): Move #endif to the right place.
14598
a5dc7f88
CC
145992013-06-10 Cary Coutant <ccoutant@google.com>
14600
14601 * dwarf2out.c (hash_external_ref): Use die_symbol or signature
14602 for hash so that hash table traversal order is deterministic.
14603
19be72ab 146042013-06-10 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
14605 Pat Haugen <pthaugen@us.ibm.com>
14606 Peter Bergner <bergner@vnet.ibm.com>
19be72ab
MM
14607
14608 * config/rs6000/vector.md (GPR move splitter): Do not split moves
14609 of vectors in GPRS if they are direct moves or quad word load or
14610 store moves.
14611
14612 * config/rs6000/rs6000-protos.h (rs6000_output_move_128bit): Add
14613 declaration.
14614 (direct_move_p): Likewise.
14615 (quad_load_store_p): Likewise.
14616
14617 * config/rs6000/rs6000.c (enum rs6000_reg_type): Simplify register
14618 classes into bins based on the physical register type.
14619 (reg_class_to_reg_type): Likewise.
14620 (IS_STD_REG_TYPE): Likewise.
14621 (IS_FP_VECT_REG_TYPE): Likewise.
14622 (reload_fpr_gpr): Arrays to determine what insn to use if we can
14623 use direct move instructions.
14624 (reload_gpr_vsx): Likewise.
14625 (reload_vsx_gpr): Likewise.
14626 (rs6000_init_hard_regno_mode_ok): Precalculate the register type
14627 information that is a simplification of register classes. Also
14628 precalculate direct move reload helpers.
14629 (direct_move_p): New function to return true if the operation can
14630 be done as a direct move instruciton.
14631 (quad_load_store_p): New function to return true if the operation
14632 is a quad memory operation.
14633 (rs6000_legitimize_address): If quad memory, only allow register
14634 indirect for TImode addresses.
14635 (rs6000_legitimate_address_p): Likewise.
14636 (enum reload_reg_type): Delete, replace with rs6000_reg_type.
14637 (rs6000_reload_register_type): Likewise.
14638 (register_to_reg_type): Return register type.
14639 (rs6000_secondary_reload_simple_move): New helper function for
14640 secondary reload and secondary memory needed to identify anything
14641 that is a simple move, and does not need reloading.
14642 (rs6000_secondary_reload_direct_move): New helper function for
14643 secondary reload to identify cases that can be done with several
14644 instructions via the direct move instructions.
14645 (rs6000_secondary_reload_move): New helper function for secondary
14646 reload to identify moves between register types that can be done.
14647 (rs6000_secondary_reload): Add support for quad memory operations
14648 and for direct move.
14649 (rs6000_secondary_memory_needed): Likewise.
14650 (rs6000_debug_secondary_memory_needed): Change argument names.
14651 (rs6000_output_move_128bit): New function to return the move to
14652 use for 128-bit moves, including knowing about the various
14653 limitations of quad memory operations.
14654
14655 * config/rs6000/vsx.md (vsx_mov<mode>): Add support for quad
14656 memory operations. call rs6000_output_move_128bit for the actual
14657 instruciton(s) to generate.
14658 (vsx_movti_64bit): Likewise.
14659
14660 * config/rs6000/rs6000.md (UNSPEC_P8V_FMRGOW): New unspec values.
14661 (UNSPEC_P8V_MTVSRWZ): Likewise.
14662 (UNSPEC_P8V_RELOAD_FROM_GPR): Likewise.
14663 (UNSPEC_P8V_MTVSRD): Likewise.
14664 (UNSPEC_P8V_XXPERMDI): Likewise.
14665 (UNSPEC_P8V_RELOAD_FROM_VSX): Likewise.
14666 (UNSPEC_FUSION_GPR): Likewise.
14667 (FMOVE128_GPR): New iterator for direct move.
22fc7d3d 14668 (f32_lv): New mode attribute for load/store of SFmode/SDmode values.
19be72ab
MM
14669 (f32_sv): Likewise.
14670 (f32_dm): Likewise.
14671 (zero_extend<mode>di2_internal1): Add support for power8 32-bit
14672 loads and direct move instructions.
14673 (zero_extendsidi2_lfiwzx): Likewise.
14674 (extendsidi2_lfiwax): Likewise.
14675 (extendsidi2_nocell): Likewise.
14676 (floatsi<mode>2_lfiwax): Likewise.
14677 (lfiwax): Likewise.
14678 (floatunssi<mode>2_lfiwzx): Likewise.
14679 (lfiwzx): Likewise.
14680 (fix_trunc<mode>_stfiwx): Likewise.
14681 (fixuns_trunc<mode>_stfiwx): Likewise.
14682 (mov<mode>_hardfloat, 32-bit floating point): Likewise.
14683 (mov<move>_hardfloat64, 64-bit floating point): Likewise.
14684 (parity<mode>2_cmpb): Set length/type attr.
14685 (unnamed shift right patterns, mov<mode>_internal2): Change type attr
14686 for 'mr.' to fast_compare.
14687 (bpermd_<mode>): Change type attr to popcnt.
14688 (p8_fmrgow_<mode>): New insns for power8 direct move support.
14689 (p8_mtvsrwz_1): Likewise.
14690 (p8_mtvsrwz_2): Likewise.
14691 (reload_fpr_from_gpr<mode>): Likewise.
14692 (p8_mtvsrd_1): Likewise.
14693 (p8_mtvsrd_2): Likewise.
14694 (p8_xxpermdi_<mode>): Likewise.
14695 (reload_vsx_from_gpr<mode>): Likewise.
14696 (reload_vsx_from_gprsf): Likewise.
14697 (p8_mfvsrd_3_<mode>): LIkewise.
14698 (reload_gpr_from_vsx<mode>): Likewise.
14699 (reload_gpr_from_vsxsf): Likewise.
14700 (p8_mfvsrd_4_disf): Likewise.
14701 (multi-word GPR splits): Do not split direct moves or quad memory
14702 operations.
14703
16876bdc
DM
147042013-06-10 David Malcolm <dmalcolm@redhat.com>
14705
14706 * tree-into-ssa.c (interesting_blocks): Make static.
14707
df8a1d28
JJ
147082013-06-10 Jakub Jelinek <jakub@redhat.com>
14709
14710 PR target/56564
14711 * varasm.c (align_variable): Don't use DATA_ALIGNMENT or
14712 CONSTANT_ALIGNMENT if !decl_binds_to_current_def_p (decl).
14713 Use DATA_ABI_ALIGNMENT for that case instead if defined.
14714 (get_variable_align): New function.
14715 (get_variable_section, emit_bss, emit_common,
14716 assemble_variable_contents, place_block_symbol): Use
14717 get_variable_align instead of DECL_ALIGN.
14718 (assemble_noswitch_variable): Add align argument, use it
14719 instead of DECL_ALIGN.
14720 (assemble_variable): Adjust caller. Use get_variable_align
14721 instead of DECL_ALIGN.
14722 * config/i386/i386.h (DATA_ALIGNMENT): Adjust x86_data_alignment
14723 caller.
14724 (DATA_ABI_ALIGNMENT): Define.
14725 * config/i386/i386-protos.h (x86_data_alignment): Adjust prototype.
14726 * config/i386/i386.c (x86_data_alignment): Add opt argument. If
14727 opt is false, only return the psABI mandated alignment increase.
14728 * config/c6x/c6x.h (DATA_ALIGNMENT): Renamed to...
14729 (DATA_ABI_ALIGNMENT): ... this.
14730 * config/mmix/mmix.h (DATA_ALIGNMENT): Renamed to...
14731 (DATA_ABI_ALIGNMENT): ... this.
14732 * config/mmix/mmix.c (mmix_data_alignment): Adjust function comment.
14733 * config/s390/s390.h (DATA_ALIGNMENT): Renamed to...
14734 (DATA_ABI_ALIGNMENT): ... this.
14735 * doc/tm.texi.in (DATA_ABI_ALIGNMENT): Document.
14736 * doc/tm.texi: Regenerated.
14737
57b29ca6
UB
147382013-06-10 Uros Bizjak <ubizjak@gmail.com>
14739
14740 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Also use
14741 cmp_code to construct REG_EQUAL note.
14742
3e56ed50
JJ
147432013-06-09 Jakub Jelinek <jakub@redhat.com>
14744
14745 PR target/57568
14746 * config/i386/i386.md (TARGET_READ_MODIFY_WRITE peepholes): Ensure
14747 that operands[2] doesn't overlap with operands[0].
14748
74fe2a1d
DE
147492013-06-09 David Edelsohn <dje.gcc@gmail.com>
14750 Jan Hubicka <jh@suse.cz>
14751
14752 * config/rs6000/rs6000.c (print_operand, 'z'): Remove historical
14753 hack to mark symbols as used.
14754
ed52a84e
VM
147552013-06-08 Vladimir Makarov <vmakarov@redhat.com>
14756
14757 PR rtl-optimization/57559
14758 * lra-constraints.c (process_alt_operands): Don't discourage
14759 memory with known offset for offsetable memory constraint.
14760 * lra.c (lra_emit_add): Exchange y and z for 2-op add insn.
14761
299316ed
EB
147622013-06-08 Eric Botcazou <ebotcazou@adacore.com>
14763
14764 * varasm.c (struct oc_local_state): Reorder fields.
14765 (output_constructor_bitfield): Replace OUTER parameter with BIT_OFFSET
14766 and adjust accordingly.
14767 (output_constructor): Reorder initialization code and adjust call to
14768 output_constructor_bitfield.
14769
88ac60d3
JH
147702013-06-07 Jan Hubicka <jh@suse.cz>
14771
14772 * symtab.c (symtab_resolve_alias): Do not remove alias attribute.
14773
4cdce1a8
DM
147742013-06-07 David Malcolm <dmalcolm@redhat.com>
14775
14776 * tree-object-size.c (unknown): Make const.
14777
b5e0425c
AK
147782013-06-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14779
14780 * config/s390/s390.md (cpu_facility): Add cpu_zarch.
14781 ("*movmem_short", "*clrmem_short", "*cmpmem_short): Use cpu_zarch
14782 for last alternative in the cpu_facility attribute.
14783
79678d04
KT
147842013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14785
14786 PR target/56315
14787 * config/arm/arm.md (*xordi3_insn): Change to insn_and_split.
14788 (xordi3): Change operand 2 constraint to arm_xordi_operand.
14789 * config/arm/arm.c (const_ok_for_dimode_op): Handle XOR.
14790 * config/arm/constraints.md (Dg): New constraint.
14791 * config/arm/neon.md (xordi3_neon): Remove.
14792 (neon_veor<mode>): Generate xordi3 instead of xordi3_neon.
14793 * config/arm/predicates.md (arm_xordi_operand): New predicate.
14794
b31ddbdb
KT
147952013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14796
14797 * config/arm/arm.md (anddi3_insn): Remove duplicate alternatives.
14798 Clean up alternatives.
14799
8f90b7d4
AM
148002013-06-07 Alan Modra <amodra@gmail.com>
14801
14802 * config/rs6000/rs6000.c (setup_incoming_varargs): Round up
14803 va_list_gpr_size.
14804
961ce119
AM
148052013-06-07 Alan Modra <amodra@gmail.com>
14806
14807 * varasm.c (force_const_mem): Assert mode is not VOID or BLK.
14808
33e49835
KT
148092013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14810
14811 * config/arm/constraints.md (Df): New constraint.
14812 * config/arm/arm.md (iordi3_insn): Use Df constraint instead of De.
14813 Correct length attribute for last two alternatives.
14814
acd17ae6
AM
148152013-06-07 Alan Modra <amodra@gmail.com>
14816
14817 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
14818 override user -mfp-in-toc.
14819 (offsettable_ok_by_alignment): Consider just the current access
14820 rather than the whole object, unless BLKmode. Handle
14821 CONSTANT_POOL_ADDRESS_P constants that lack a decl too.
14822 (use_toc_relative_ref): Allow CONSTANT_POOL_ADDRESS_P constants
14823 for -mcmodel=medium.
14824 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't
14825 override user -mfp-in-toc or -msum-in-toc. Default to
14826 -mno-fp-in-toc for -mcmodel=medium.
14827
73310b0e
DD
148282013-06-06 DJ Delorie <dj@redhat.com>
14829
14830 * config/rl78/rl78.c (rl78_valid_pointer_mode): New, implements
14831 TARGET_VALID_POINTER_MODE.
14832
0bd62dca 148332013-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
14834 Pat Haugen <pthaugen@us.ibm.com>
14835 Peter Bergner <bergner@vnet.ibm.com>
0bd62dca
MM
14836
14837 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
14838 Document new power8 builtins.
14839
14840 * config/rs6000/vector.md (and<mode>3): Add a clobber/scratch of a
14841 condition code register, to allow 128-bit logical operations to be
14842 done in the VSX or GPR registers.
14843 (nor<mode>3): Use the canonical form for nor.
14844 (eqv<mode>3): Add expanders for power8 xxleqv, xxlnand, xxlorc,
14845 vclz*, and vpopcnt* vector instructions.
14846 (nand<mode>3): Likewise.
14847 (orc<mode>3): Likewise.
14848 (clz<mode>2): LIkewise.
14849 (popcount<mode>2): Likewise.
14850
14851 * config/rs6000/predicates.md (int_reg_operand): Rework tests so
14852 that only the GPRs are recognized.
14853
14854 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
14855 support for new power8 builtins.
14856
14857 * config/rs6000/rs6000-builtin.def (xscvspdpn): Add new power8
14858 builtin functions.
14859 (xscvdpspn): Likewise.
14860 (vclz): Likewise.
14861 (vclzb): Likewise.
14862 (vclzh): Likewise.
14863 (vclzw): Likewise.
14864 (vclzd): Likewise.
14865 (vpopcnt): Likewise.
14866 (vpopcntb): Likewise.
14867 (vpopcnth): Likewise.
14868 (vpopcntw): Likewise.
14869 (vpopcntd): Likewise.
14870 (vgbbd): Likewise.
14871 (vmrgew): Likewise.
14872 (vmrgow): Likewise.
14873 (eqv): Likewise.
14874 (eqv_v16qi3): Likewise.
14875 (eqv_v8hi3): Likewise.
14876 (eqv_v4si3): Likewise.
14877 (eqv_v2di3): Likewise.
14878 (eqv_v4sf3): Likewise.
14879 (eqv_v2df3): Likewise.
14880 (nand): Likewise.
14881 (nand_v16qi3): Likewise.
14882 (nand_v8hi3): Likewise.
14883 (nand_v4si3): Likewise.
14884 (nand_v2di3): Likewise.
14885 (nand_v4sf3): Likewise.
14886 (nand_v2df3): Likewise.
14887 (orc): Likewise.
14888 (orc_v16qi3): Likewise.
14889 (orc_v8hi3): Likewise.
14890 (orc_v4si3): Likewise.
14891 (orc_v2di3): Likewise.
14892 (orc_v4sf3): Likewise.
14893 (orc_v2df3): Likewise.
14894
14895 * config/rs6000/rs6000.c (rs6000_option_override_internal): Only
14896 allow power8 quad mode in 64-bit.
14897 (rs6000_builtin_vectorized_function): Add support to vectorize
14898 ISA 2.07 count leading zeros, population count builtins.
14899 (rs6000_expand_vector_init): On ISA 2.07 use xscvdpspn to form
14900 V4SF vectors instead of xscvdpsp to avoid IEEE related traps.
14901 (builtin_function_type): Add vgbbd builtin function which takes an
14902 unsigned argument.
14903 (altivec_expand_vec_perm_const): Add support for new power8 merge
14904 instructions.
14905
14906 * config/rs6000/vsx.md (VSX_L2): New iterator for 128-bit types,
14907 that does not include TImdoe for use with 32-bit.
14908 (UNSPEC_VSX_CVSPDPN): Support for power8 xscvdpspn and xscvspdpn
14909 instructions.
14910 (UNSPEC_VSX_CVDPSPN): Likewise.
14911 (vsx_xscvdpspn): Likewise.
14912 (vsx_xscvspdpn): Likewise.
14913 (vsx_xscvdpspn_scalar): Likewise.
14914 (vsx_xscvspdpn_directmove): Likewise.
14915 (vsx_and<mode>3): Split logical operations into 32-bit and
14916 64-bit. Add support to do logical operations on TImode as well as
14917 VSX vector types. Allow logical operations to be done in either
14918 VSX registers or in general purpose registers in 64-bit mode. Add
14919 splitters if GPRs were used. For AND, add clobber of CCmode to
14920 allow use of ANDI on GPRs. Rewrite nor to use the canonical RTL
14921 encoding.
14922 (vsx_and<mode>3_32bit): Likewise.
14923 (vsx_and<mode>3_64bit): Likewise.
14924 (vsx_ior<mode>3): Likewise.
14925 (vsx_ior<mode>3_32bit): Likewise.
14926 (vsx_ior<mode>3_64bit): Likewise.
14927 (vsx_xor<mode>3): Likewise.
14928 (vsx_xor<mode>3_32bit): Likewise.
14929 (vsx_xor<mode>3_64bit): Likewise.
14930 (vsx_one_cmpl<mode>2): Likewise.
14931 (vsx_one_cmpl<mode>2_32bit): Likewise.
14932 (vsx_one_cmpl<mode>2_64bit): Likewise.
14933 (vsx_nor<mode>3): Likewise.
14934 (vsx_nor<mode>3_32bit): Likewise.
14935 (vsx_nor<mode>3_64bit): Likewise.
14936 (vsx_andc<mode>3): Likewise.
14937 (vsx_andc<mode>3_32bit): Likewise.
14938 (vsx_andc<mode>3_64bit): Likewise.
14939 (vsx_eqv<mode>3_32bit): Add support for power8 xxleqv, xxlnand,
14940 and xxlorc instructions.
14941 (vsx_eqv<mode>3_64bit): Likewise.
14942 (vsx_nand<mode>3_32bit): Likewise.
14943 (vsx_nand<mode>3_64bit): Likewise.
14944 (vsx_orc<mode>3_32bit): Likewise.
14945 (vsx_orc<mode>3_64bit): Likewise.
14946
14947 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Update comment.
14948
14949 * config/rs6000/altivec.md (UNSPEC_VGBBD): Add power8 vgbbd
14950 instruction.
14951 (p8_vmrgew): Add power8 vmrgew and vmrgow instructions.
14952 (p8_vmrgow): Likewise.
14953 (altivec_and<mode>3): Add clobber of CCmode to allow AND using
14954 GPRs to be split under VSX.
14955 (p8v_clz<mode>2): Add power8 count leading zero support.
14956 (p8v_popcount<mode>2): Add power8 population count support.
14957 (p8v_vgbbd): Add power8 gather bits by bytes by doubleword
14958 support.
14959
14960 * config/rs6000/rs6000.md (eqv<mode>3): Add support for powerp eqv
14961 instruction.
14962
14963 * config/rs6000/altivec.h (vec_eqv): Add defines to export power8
14964 builtin functions.
14965 (vec_nand): Likewise.
14966 (vec_vclz): Likewise.
14967 (vec_vclzb): Likewise.
14968 (vec_vclzd): Likewise.
14969 (vec_vclzh): Likewise.
14970 (vec_vclzw): Likewise.
14971 (vec_vgbbd): Likewise.
14972 (vec_vmrgew): Likewise.
14973 (vec_vmrgow): Likewise.
14974 (vec_vpopcnt): Likewise.
14975 (vec_vpopcntb): Likewise.
14976 (vec_vpopcntd): Likewise.
14977 (vec_vpopcnth): Likewise.
14978 (vec_vpopcntw): Likewise.
14979
37684c46
VM
149802013-06-06 Vladimir Makarov <vmakarov@redhat.com>
14981
14982 PR rtl-optimization/57468
14983 * config/i386/i386.c (inline_secondary_memory_needed): Ignore
14984 spilled pseudos.
14985
d89ae27c
VM
149862013-06-06 Vladimir Makarov <vmakarov@redhat.com>
14987
14988 PR rtl-optimization/57459
14989 * lra-constraints.c (update_ebb_live_info): Fix typo for operand
14990 type when setting live regs.
14991
3597e113
VM
149922013-06-06 Vladimir Makarov <vmakarov@redhat.com>
14993
14994 * config/s390/s390.opt (mlra): New option.
14995 * config/s390/s390.c (s390_decompose_address): Check displacement
14996 for all registers for LRA.
14997 (s390_secondary_reload): Don't used secondary reloads for LRA.
14998 (s390_lra_p): New function.
14999 (TARGET_LRA_P): Define.
15000 * config/s390/s390.md (*movmem_short, *clrmem_short): Change value
15001 of attribute cpu_facility to zarch for the last alternative.
15002 (*cmpmem_short): Ditto.
15003
01037aeb
EB
150042013-06-06 Eric Botcazou <ebotcazou@adacore.com>
15005
15006 * config/arm/arm.c (arm_r3_live_at_start_p): New predicate.
15007 (arm_compute_static_chain_stack_bytes): Use it. Tidy up.
15008 (arm_expand_prologue): Likewise.
15009
3371a64f
TJ
150102013-06-06 Teresa Johnson <tejohnson@google.com>
15011
15012 PR c++/53743
15013 * ifcvt.c (find_if_case_1): Replace BB_COPY_PARTITION with assert
15014 as this is now done by redirect_edge_and_branch_force.
15015 * function.c (thread_prologue_and_epilogue_insns): Insert new bb after
15016 barriers, and fix interaction with splitting.
15017 * emit-rtl.c (try_split): Copy REG_CROSSING_JUMP notes.
15018 * cfgcleanup.c (try_forward_edges): Fix early return value to properly
15019 reflect changes made in the routine.
15020 * bb-reorder.c (emit_barrier_after_bb): Move to cfgrtl.c.
15021 (fix_up_fall_thru_edges): Remove incorrect check for bb layout order
15022 since this is called in cfglayout mode, and replace partition fixup
15023 with assert as that is now done by force_nonfallthru_and_redirect.
15024 (add_reg_crossing_jump_notes): Handle the fact that some jumps may
15025 already be marked with region crossing note.
15026 (insert_section_boundary_note): Make non-static, gate on flag
15027 has_bb_partition, rewrite to also check for multiple partitions.
15028 (rest_of_handle_reorder_blocks): Remove call to
15029 insert_section_boundary_note, now done later during free_cfg.
15030 (duplicate_computed_gotos): Don't duplicate partition crossing edge.
15031 * bb-reorder.h (insert_section_boundary_note): Declare.
15032 * Makefile.in (cfgrtl.o): Depend on bb-reorder.h
15033 * cfgrtl.c (rest_of_pass_free_cfg): If partitions exist
15034 invoke insert_section_boundary_note.
15035 (try_redirect_by_replacing_jump): Remove unnecessary
15036 check for region crossing note.
15037 (fixup_partition_crossing): New function.
15038 (rtl_redirect_edge_and_branch): Fixup partition boundaries.
15039 (emit_barrier_after_bb): Move here from bb-reorder.c, handle insertion
15040 in non-cfglayout mode.
15041 (force_nonfallthru_and_redirect): Fixup partition boundaries,
15042 remove old code that tried to do this. Emit barrier correctly
15043 when we are in cfglayout mode.
15044 (last_bb_in_partition): New function.
15045 (rtl_split_edge): Correctly fixup partition boundaries.
15046 (commit_one_edge_insertion): Remove old code that tried to
15047 fixup region crossing edge since this is now handled in
15048 split_block, and set up insertion point correctly since
15049 block may now end in a jump.
15050 (verify_hot_cold_block_grouping): Guard against checking when not in
15051 linearized RTL mode.
15052 (rtl_verify_edges): Add checks for incorrect/missing REG_CROSSING_JUMP
15053 notes.
15054 (rtl_verify_flow_info_1): Move verify_hot_cold_block_grouping to
15055 rtl_verify_flow_info, so not called in cfglayout mode.
15056 (rtl_verify_flow_info): Move verify_hot_cold_block_grouping here.
15057 (fixup_reorder_chain): Remove old code that attempted to fixup region
15058 crossing note as this is now handled in force_nonfallthru_and_redirect.
15059 (duplicate_insn_chain): Don't duplicate switch section notes.
15060 (rtl_can_remove_branch_p): Remove unnecessary check for region crossing
15061 note.
15062 * basic-block.h (emit_barrier_after_bb): Declare.
15063
66071e10
KT
150642013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15065
15066 * config/arm/arm-fixed.md (add<mode>3,usadd<mode>3,ssadd<mode>3,
15067 sub<mode>3, ussub<mode>3, sssub<mode>3, arm_ssatsihi_shift,
15068 arm_usatsihi): Adjust alternatives for arm_restrict_it.
15069
0e26bf3d
KT
150702013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15071
15072 * config/arm/arm-ldmstm.ml: Set "predicable_short_it" to "no"
15073 where appropriate.
15074 * config/arm/ldmstm.md: Regenerate.
15075
12b4e7ef
KT
150762013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15077
15078 * config/arm/sync.md (atomic_loaddi_1):
15079 Disable predication for arm_restrict_it.
15080 (arm_load_exclusive<mode>): Likewise.
15081 (arm_load_exclusivesi): Likewise.
15082 (arm_load_exclusivedi): Likewise.
15083 (arm_load_acquire_exclusive<mode>): Likewise.
15084 (arm_load_acquire_exclusivesi): Likewise.
15085 (arm_load_acquire_exclusivedi): Likewise.
15086 (arm_store_exclusive<mode>): Likewise.
15087 (arm_store_exclusive<mode>): Likewise.
15088 (arm_store_release_exclusivedi): Likewise.
15089 (arm_store_release_exclusive<mode>): Likewise.
15090
15d16c8a
RB
150912013-06-06 Richard Biener <rguenther@suse.de>
15092
15093 * lto-streamer.h (enum LTO_tags): Move LTO_tree_pickle_reference
15094 after LTO_null.
15095 (lto_tag_is_tree_code_p): Adjust.
15096 (lto_tag_is_gimple_code_p): Likewise.
15097 (lto_gimple_code_to_tag): Likewise.
15098 (lto_tag_to_gimple_code): Likewise.
15099 (lto_tree_code_to_tag): Likewise.
15100 (lto_tag_to_tree_code): Likewise.
15101 * data-streamer.h (streamer_write_hwi_in_range): Use
15102 uhwi streaming to stream the normalized range.
15103 (streamer_read_hwi_in_range): Likewise.
15104
17a7fc37
KT
151052013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15106
15107 * config/arm/arm.md (enabled_for_depr_it): New attribute.
15108 (predicable_short_it): Likewise.
15109 (predicated): Likewise.
15110 (enabled): Handle above.
15111 (define_cond_exec): Set predicated attribute to yes.
15112
b57ca59b
MS
151132013-06-05 Mike Stump <mikestump@comcast.net>
15114
15115 * gdbinit.in (__FUNCTION__): Add.
15116
c1e183a9
UB
151172013-06-05 Uros Bizjak <ubizjak@gmail.com>
15118
15119 * config/alpha/alpha.c (alpha_emit_conditional_move): Swap all
15120 GE, GT, GEU and GTU compares, modulo DImode compares with zero.
15121
0378bddb
JH
151222013-06-05 Jan Hubicka <jh@suse.cz>
15123
15124 * varasm.c (mark_decl_referenced): Revert the removal until targets
15125 are fixed.
15126
8f8a2057
DE
151272013-06-05 David Edelsohn <dje.gcc@gmail.com>
15128
15129 * config/rs6000/rs6000.c (print_operand, 'z'): Use DECL_PRESERVE_P
15130 instead of mark_decl_referenced.
15131
edb983b2
JH
151322013-06-05 Jan Hubicka <jh@suse.cz>
15133
15134 * cgraph.c (cgraph_remove_node): Clear forced_by_abi.
15135 (cgraph_node_cannot_be_local_p_1): Honnor symbol.forced_by_abi
15136 and symtab_used_from_object_file_p.
15137 (cgraph_make_node_local_1): Clear forced_by_abi.
15138 (cgraph_can_remove_if_no_direct_calls_and): Use forced_by_abi
15139 * cgraph.h (symtab_node_base): Add forced_by_abi.
15140 (decide_is_variable_needed): Remove.
15141 (varpool_can_remove_if_no_refs): Honnor symbol.forced_by_abi.
15142 * cgraphunit.c (cgraph_decide_is_function_needed): Rename to ..
15143 (decide_is_symbol_needed): ... this one; handle symbols in general;
15144 always analyze virtuals; honnor forced_by_abi.
15145 (cgraph_finalize_function): Update.
15146 (varpool_finalize_decl): Update.
15147 (symbol_defined_and_needed): Remove.
15148 (analyze_functions): Update.
15149 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
15150 output_refs, input_overwrite_node): Handle forced_by_abi.
15151 * ipa.c (cgraph_address_taken_from_non_vtable_p): Rename to ...
15152 (address_taken_from_non_vtable_p): ... this one.
15153 (comdat_can_be_unshared_p_1): New function.
15154 (cgraph_comdat_can_be_unshared_p): Rename to ...
15155 (comdat_can_be_unshared_p): ... this one; handle symbols in general.
15156 (varpool_externally_visible_p): Use comdat_can_be_unshared_p.
15157 (function_and_variable_visibility): Clear forced_by_abi as needed.
15158 * trans-mem.c (ipa_tm_mark_forced_by_abi_node): New functoin.
15159 (ipa_tm_create_version_alias, ipa_tm_create_version): Update.
edb983b2
JH
15160 * symtab.c (dump_symtab_base): Dump forced_by_abi.
15161 * varpool.c (decide_is_variable_needed): Remove.
15162
9912dbe5
KT
151632013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15164
15165 * config/arm/arm.c (MAX_INSN_PER_IT_BLOCK): New macro.
15166 (arm_option_override): Override arm_restrict_it where appropriate.
15167 (thumb2_final_prescan_insn): Use MAX_INSN_PER_IT_BLOCK.
15168 * config/arm/arm.opt (mrestrict-it): New command-line option.
15169 * doc/invoke.texi: Document -mrestrict-it.
15170
34c136b6
DM
151712013-06-05 David Malcolm <dmalcolm@redhat.com>
15172
15173 * tsan.c (tsan_atomic_table): Make const.
15174
a367df53
RB
151752013-06-05 Richard Biener <rguenther@suse.de>
15176
15177 * tree-streamer.c (streamer_tree_cache_insert_1): Update the
15178 index associated with the tree we are supposed to replace.
15179 * tree-streamer-out.c (pack_ts_base_value_fields): Output
15180 TREE_ASM_WRITTEN as zero for everything but SSA names.
15181
70d51a19
DM
151822013-06-05 David Malcolm <dmalcolm@redhat.com>
15183
15184 * tree-ssa-structalias.c (call_stmt_vars): Make static.
15185
b9bd2075
JH
151862013-06-04 Jan Hubicka <jh@suse.cz>
15187
15188 * lto-cgraph.c (get_alias_symbol): Remove weakref sanity check.
15189 (input_node, input_varpool_node): Handle correctly external same
15190 body aliases.
15191 * ipa.c (symtab_remove_unreachable_nodes): Do not remove external
15192 nodes at ltrans stage.
15193
aaae719d
JH
151942013-06-04 Jan Hubicka <jh@suse.cz>
15195
15196 * ipa-inline.c (update_caller_keys): Fix availability test.
15197 (update_callee_keys): Likewise.
15198 * symtab.c (symtab_alias_ultimate_target): Make availaiblity logic
15199 to follow ELF standard.
15200
107eea2c
JU
152012013-06-04 Jürgen Urban <JuergenUrban@gmx.de>
15202
15203 * config.gcc (mipsr5900-*-elf*, mipsr5900el-*-elf*, mips64r5900-*-elf*)
15204 (mips64r5900el-*-elf*): New configurations.
15205 * config/mips/mips-cpus.def (r5900): New processor.
15206 * config/mips/mips-tables.opt: Regenerate.
15207 * config/mips/mips.c (mips_rtx_cost_data): Add an R5900 entry.
15208 (mips_issue_rate): Handle PROCESSOR_R5900.
15209 (mips_reorg_process_insns): Force reorder mode for the R5900.
15210 * config/mips/mips.h (TARGET_MIPS5900): Define.
15211 (ISA_HAS_CONDMOVE, ISA_HAS_PREFETCH, ISA_HAS_HILO_INTERLOCKS): Include
15212 TARGET_MIPS5900.
15213 (ISA_HAS_LOAD_DELAY, ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY): Exclude
15214 TARGET_MIPS5900.
15215 * config/mips/mips.md (processor): Add r5900.
15216 (MOVECC): Disallow CCmode conditions for TARGET_MIPS5900.
15217
b7342d25
IB
152182013-06-04 Ian Bolton <ian.bolton@arm.com>
15219
15220 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Call
15221 into function to generate MOVI instruction.
c1e183a9 15222 * config/aarch64/aarch64.c (aarch64_simd_container_mode): New function.
b7342d25
IB
15223 (aarch64_preferred_simd_mode): Turn into wrapper.
15224 (aarch64_output_scalar_simd_mov_immediate): New function.
15225 * config/aarch64/aarch64-protos.h: Add prototype for above.
15226
81c2dfb9
IB
152272013-06-04 Ian Bolton <ian.bolton@arm.com>
15228
15229 * config/aarch64/aarch64.c (simd_immediate_info): Remove
15230 element_char member.
15231 (sizetochar): Return signed char.
15232 (aarch64_simd_valid_immediate): Remove elchar and other
15233 unnecessary variables.
15234 (aarch64_output_simd_mov_immediate): Take rtx instead of &rtx.
15235 Calculate element_char as required.
15236 * config/aarch64/aarch64-protos.h: Update and move prototype
15237 for aarch64_output_simd_mov_immediate.
15238 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
15239 Update arguments.
15240
48063b9d
IB
152412013-06-04 Ian Bolton <ian.bolton@arm.com>
15242
15243 * config/aarch64/aarch64.c (simd_immediate_info): Struct to hold
15244 information completed by aarch64_simd_valid_immediate.
15245 (aarch64_legitimate_constant_p): Update arguments.
15246 (aarch64_simd_valid_immediate): Work with struct rather than many
15247 pointers.
15248 (aarch64_simd_scalar_immediate_valid_for_move): Update arguments.
15249 (aarch64_simd_make_constant): Update arguments.
15250 (aarch64_output_simd_mov_immediate): Work with struct rather than
15251 many pointers. Output immediate directly rather than as operand.
15252 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
15253 Update prototype.
15254 * config/aarch64/constraints.md (Dn): Update arguments.
15255
3ea63f60
IB
152562013-06-04 Ian Bolton <ian.bolton@arm.com>
15257
15258 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): No
15259 longer static.
15260 (aarch64_simd_immediate_valid_for_move): Remove.
15261 (aarch64_simd_scalar_immediate_valid_for_move): Update call.
15262 (aarch64_simd_make_constant): Update call.
15263 (aarch64_output_simd_mov_immediate): Update call.
15264 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
15265 Add prototype.
15266 * config/aarch64/constraints.md (Dn): Update call.
15267
d8edd899
IB
152682013-06-04 Ian Bolton <ian.bolton@arm.com>
15269
15270 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Change
15271 return type to bool for prototype.
15272 (aarch64_legitimate_constant_p): Check for true instead of not -1.
15273 (aarch64_simd_valid_immediate): Fix up each return to return a bool.
15274 (aarch64_simd_immediate_valid_for_move): Update retval for bool.
15275
44b20bb8
CM
152762013-06-04 Catherine Moore <clm@codesourcery.com>
15277
15278 * config/mips/mips.opt (meva): New.
c1e183a9 15279 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_eva.
44b20bb8
CM
15280 (ASM_SPEC): Handle -meva.
15281 * doc/invoke.texi (meva): Document.
15282
52befbd8
AM
152832013-06-04 Alan Modra <amodra@gmail.com>
15284
15285 * config/rs6000/rs6000.c (output_toc): Correct little-endian float
15286 constant output.
15287
aadaf24e
KT
152882013-06-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15289
15290 * rtl.def: Add extra fourth optional field to define_cond_exec.
15291 * gensupport.c (process_one_cond_exec): Process attributes from
15292 define_cond_exec.
15293 * doc/md.texi: Document fourth field in define_cond_exec.
15294
0cd9e9ee
EB
152952013-06-04 Eric Botcazou <ebotcazou@adacore.com>
15296
15297 * expmed.c (extract_bit_field_1): In the larger-than-a-word case, factor
15298 out the processing order as in store_bit_field_1.
15299
cb0f665d
JH
153002013-06-04 Jan Hubicka <jh@suse.cz>
15301
15302 PR middle-end/57500
15303 * cgraphunit.c (cgraph_process_same_body_aliases): Create
15304 non-VAR_DECL node if it does not exist yet.
15305
53984b9b
RS
153062013-06-03 Richard Sandiford <rdsandiford@googlemail.com>
15307
15308 * config.gcc (mipsisa64sr71k-*-elf*, mipsisa64sb1-*-elf*)
15309 (mipsisa64sb1el-*-elf*, mips64-*-elf*, mips64el-*-elf*)
15310 (mips64orion-*-elf*, mips64orionel-*-elf*): Remove
15311 target_cpu_default setting.
15312
5d318fd4
TJ
153132013-06-03 Teresa Johnson <tejohnson@google.com>
15314
15315 * dumpfile.c (opt_info_switch_p): Change -fopt-info
15316 default to -fopt-info=optimized instead of all.
15317 * doc/invoke.texi: Ditto.
15318 * tree-vectorizer.c (vectorize_loops): Emit loop vectorization
15319 success under MSG_OPTIMIZED_LOCATIONS, and use dump_printf_loc.
15320 (execute_vect_slp): Emit BB vectorization success under
15321 MSG_OPTIMIZED_LOCATIONS.
15322 * tree-vect-slp.c (vect_slp_transform_bb): Change
15323 MSG_OPTIMIZED_LOCATIONS to MSG_NOTE.
15324 * tree-vect-loop.c (vect_transform_loop): Ditto.
15325
ec3af349
JM
153262013-06-03 Jason Merrill <jason@redhat.com>
15327
15328 PR c++/57415
15329 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
15330 Use TARGET_EXPR for C++.
15331
1baf9159
JJ
153322013-06-03 Jakub Jelinek <jakub@redhat.com>
15333
15334 PR rtl-optimization/57268
0cd9e9ee 15335 * sched-deps.c (sched_analyze_2): Don't flush_pending_lists
1baf9159
JJ
15336 if DEBUG_INSN_P (insn).
15337
15338 Reapply
15339 2013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
15340
15341 PR rtl-optimization/57268
15342 * sched-deps.c (sched_analyze_2): Flush dependence lists if
15343 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
15344
0f1d3965
YR
153452013-06-03 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
15346
15347 * config/i386/i386.c (ix86_lea_outperforms): Fix formatting.
15348 (ix86_avoid_lea_for_addr): Likewise.
15349 (exact_dependency_1): Likewise.
15350 (ix86_adjust_cost): Likewise.
15351 (swap_top_of_ready_list): Fix formatting and !reload_completed check
15352 removed.
15353 (do_reorder_for_imul): Fix typo, formatting and
15354 !reload_completed check removed.
15355 (ix86_sched_reorder): Fix typo and formatting.
15356 (fold_builtin_cpu): Move M_INTEL_SLM at the end of processor types
15357 list.
15358
3bc30db4
SN
153592013-06-03 Sofiane Naci <sofiane.naci@arm.com>
15360
15361 * config/aarch64/aarch64.md (*movdi_aarch64): Define "simd" attribute.
15362
19cc6fac
EB
153632013-06-03 Eric Botcazou <ebotcazou@adacore.com>
15364
15365 * varasm.c (output_constant) <CONSTRUCTOR>: Minor formatting tweak.
15366 <STRING_CST>: Likewise.
15367 <VECTOR_CST>: Likewise.
15368
c68a6e08
JW
153692013-06-01 Janus Weil <janus@gcc.gnu.org>
15370 Mikael Morin <mikael@gcc.gnu.org>
15371
15372 * configure.ac: Add AC_HEADER_TIOCGWINSZ macro.
15373 * config.in: Regenerated.
15374 * configure: Regenerated.
15375
38e55e5c
JH
153762013-06-01 Jan Hubicka <jh@suse.cz>
15377
15378 PR middle-end/57366
15379 * cgraphunit.c (compile): When weakref is not supported,
15380 set up transparent aliases before final output pass.
15381 * varasm.c (assemble_alias): Do not try to do it here.
15382
eb51d2ff
JH
153832013-06-01 Jan Hubicka <jh@suse.cz>
15384
15385 PR middle-end/57467
15386 * passes.c (for_per_function): Skip unanalyzed functions.
15387
40a7fe1e
JH
153882013-06-01 Jan Hubicka <jh@suse.cz>
15389
15390 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Rename to ...
15391 (lto_symtab_merge_symbols_1): ... this one.
15392 (lto_symtab_merge_cgraph_nodes): Rename to ...
15393 (lto_symtab_merge_symbols): ... this one; simplify.
15394 * cgraph.c (same_body_aliases_done): Rename to ...
15395 (cpp_implicit_aliases_done): ... this one.
15396 (cgraph_create_function_alias): Update.
15397 (cgraph_same_body_alias): Update.
c1e183a9 15398 (dump_cgraph_node): Remove alias dumping; simplify thunk dumping.
40a7fe1e 15399 (verify_edge_corresponds_to_fndecl): Simplify.
c1e183a9 15400 * cgraph.h (symtab_node_base): Add cpp_implicit_alias, alias_target.
40a7fe1e
JH
15401 (cgraph_node): Remove same_body_alias.
15402 (varpool_node): Remove alias_of and extra_name_alias.
15403 (same_body_aliases_done): Rename to ..
15404 (cpp_implicit_aliases_done): ... this one.
15405 (symtab_alias_ultimate_target): Add default parameter.
15406 (symtab_resolve_alias): New function.
15407 (fixup_same_cpp_alias_visibility): Declare.
15408 (cgraph_function_node): Add default parameter.
15409 (cgraph_node_asm_name): Likewise.
15410 (cgraph_function_or_thunk_node): Add default parameter; do
15411 not ICE when it is NULL.
15412 (varpool_variable_node): Likewise.
15413 * tree-emutls.c (create_emultls_var): Update.
15414 (ipa_lower_emutls): Update.
15415 * cgraphunit.c (cgraph_decide_is_function_needed): Update.
15416 (cgraph_reset_node): Reset alias info.
15417 (cgraph_finalize_function): Update.
15418 (fixup_same_cpp_alias_visibility): Move to symtab.c.
15419 (analyze_function): Simplify.
15420 (cgraph_process_same_body_aliases): Simplify.
15421 (analyze_functions): Fixup same body aliases.
15422 (handle_alias_pairs): Simplify.
15423 (assemble_thunk): Update.
15424 (assemble_thunks_and_aliases): Update.
15425 (output_weakrefs): Rewrite.
15426 * lto-cgraph.c (lto_output_node): Rewrite alias handling.
15427 (lto_output_varpool_node): Likewise.
15428 (compute_ltrans_boundary): Remve assert.
15429 (get_alias_symbol): New functoin.
15430 (input_node): Rewrite alias handling.
15431 (input_varpool_node): Likewise.
15432 * ipa-pure-const.c (propagate_pure_const): Fix formating.
15433 * ipa.c (process_references): Handle weakrefs correctly.
15434 (symtab_remove_unreachable_nodes): Likewise.
15435 * trans-mem.c (get_cg_data): Update.
15436 (ipa_tm_create_version_alias): Update.
15437 (ipa_tm_execute): Update.
15438 * symtab.c (dump_symtab_base): Dump aliases.
15439 (verify_symtab_base): Verify aliases.
15440 (symtab_node_availability): New function.
15441 (symtab_alias_ultimate_target): Simplify.
15442 (fixup_same_cpp_alias_visibility): Move here from cgraphunit.c;
15443 handle all the fixup cases.
15444 (symtab_resolve_alias): New function.
15445 * passes.c (ipa_write_summaries): Handle weakrefs.
15446 * varpool.c (varpool_analyze_node): Simplify.
15447 (assemble_aliases): Update.
15448 (varpool_create_variable_alias): Simplify.
15449 (varpool_extra_name_alias): Simplify.
15450 * lto-streamer.h (lto_symtab_merge_cgraph_nodes): Rename to...
15451 (lto_symtab_merge_symbols): ... this one.
15452
21759881
DT
154532013-06-01 Dinar Temirbulatov <dinar@kugelworks.com>
15454
15455 Revert
15456 PR rtl-optimization/57268
15457 * sched-deps.c (sched_analyze_2): Flush dependence lists if
15458 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
15459
daf4e940
TB
154602013-06-01 Tobias Burnus <burnus@net-b.de>
15461
15462 Partially reverted:
15463 2013-05-31 Tobias Burnus <burnus@net-b.de>
15464
15465 PR middle-end/57073
15466 * tree-ssa-math-opts.c (execute_cse_sincos): Move check
15467 further up.
15468
c359d8d0
DT
154692013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
15470
15471 PR rtl-optimization/57268
15472 * sched-deps.c (sched_analyze_2): Flush dependence lists if
15473 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
15474
4172215d
EB
154752013-05-31 Eric Botcazou <ebotcazou@adacore.com>
15476
15477 * config/rs6000/predicates.md (rs6000_cbranch_operator): Accept some
15478 unordered comparison operators when -fno-trapping-math is in effect
15479 on the e500.
15480 * config/rs6000/rs6000.c (rs6000_generate_compare): Remove dead code
15481 and implement unordered comparison operators properly on the e500.
15482
a8c50132
EB
154832013-05-31 Eric Botcazou <ebotcazou@adacore.com>
15484
15485 * simplify-rtx.c (simplify_byte_swapping_operation): Use proper macro
15486 for constant scalar integers.
15487 (simplify_relational_operation_1): Likewise.
15488
44626634
SB
154892013-05-31 Segher Boessenkool <segher@kernel.crashing.org>
15490
15491 * config/rs6000/rs6000-opts.h (enum processor_type): Reorder.
15492 * config/rs6000/rs6000.md (cpu): Reorder. Split long line.
15493 Fix comment.
15494
55805e54
YR
154952013-05-31 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
15496 Igor Zamyatin <igor.zamyatin@intel.com>
15497
15498 Silvermont (SLM) architecture performance tuning.
15499 * config/i386/i386.h (enum ix86_tune_indices): Add
15500 X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS.
15501 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS): New define.
15502
15503 * config/i386/i386.c (initial_ix86_tune_features)
15504 <X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS>: Initialize.
15505 (ix86_lea_outperforms): Handle Silvermont tuning.
15506 (ix86_avoid_lea_for_add): Add new argument to ix86_lea_outperforms
15507 call.
15508 (ix86_use_lea_for_mov): Likewise.
15509 (ix86_avoid_lea_for_addr): Likewise.
15510 (ix86_lea_for_add_ok): Likewise.
15511 (exact_dependency_1): New function.
15512 (exact_store_load_dependency): Likewise.
15513 (ix86_adjust_cost): Handle Silvermont tuning.
15514 (do_reoder_for_imul): Likewise.
15515 (swap_top_of_ready_list): New function.
15516 (ix86_sched_reorder): Changed to handle Silvermont tuning.
15517
15518 * config/i386/i386.md (peepholes that split memory operand in fp
15519 converts): New.
15520
e19c9de2
MS
155212013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
15522
15523 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
15524 Remove un-necessary braces.
15525
38e6c9a6
MS
155262013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
15527
15528 * config/aarch64/aarch64.c (aarch64_classify_symbol):
15529 Use SYMBOL_TINY_ABSOLUTE for AARCH64_CMODEL_TINY_PIC.
15530
e3530904
TB
155312013-05-31 Tobias Burnus <burnus@net-b.de>
15532
15533 PR middle-end/57073
c1e183a9 15534 * tree-ssa-math-opts.c (execute_cse_sincos): Move check further up.
e3530904 15535
b6af05a9
KT
155362013-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15537
15538 PR target/56315
15539 * config/arm/arm.c (const_ok_for_dimode_op): Handle IOR.
15540 * config/arm/arm.md (*iordi3_insn): Change to insn_and_split.
15541 * config/arm/neon.md (iordi3_neon): Remove.
15542 (neon_vorr<mode>): Generate iordi3 instead of iordi3_neon.
15543 * config/arm/predicates.md (imm_for_neon_logic_operand):
15544 Move to earlier in the file.
15545 (neon_logic_op2): Likewise.
15546 (arm_iordi_operand_neon): New predicate.
15547
f800c166
RB
155482013-05-31 Richard Biener <rguenther@suse.de>
15549
15550 PR tree-optimization/57478
15551 PR tree-optimization/57453
15552 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Uses in PHI nodes
15553 are life as well.
15554
e571fa59
KP
155552013-05-31 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
15556
15557 * config/rl78/rl78.md (mulqi3,mulhi3): New define_expands.
15558 (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): New define_insns.
15559
0fa6e0ef
TB
155602013-05-30 Tobias Burnus <burnus@net-b.de>
15561 Thomas Koenig <tkoenig@gcc.gnu.org>
15562
15563 PR middle-end/57073
15564 * tree-ssa-math-opts.c (execute_cse_sincos): Optimize
15565 powi (-1.0, k) to (k & 1) ? -1.0 : 1.0.
15566
4688ddf5
SB
155672013-05-30 Steven Bosscher <steven@gcc.gnu.org>
15568
0fa6e0ef 15569 * rtlanal.c (tablejump_p): Expect table and label to be adjacent.
4688ddf5 15570
3b9ceb4b
VM
155712013-05-30 Vladimir Makarov <vmakarov@redhat.com>
15572
15573 * target.def (register_usage_leveling_p): New hook.
15574 * targhooks.c (default_register_usage_leveling_p): New.
15575 * targhooks.h (default_register_usage_leveling_p): New prototype.
15576 * lra-assigns.c (register_usage_leveling_p): Use the hook.
15577 * doc/tm.texi.in (TARGET_REGISTER_USAGE_LEVELING_P): New hook.
15578 * doc/tm.texi: Update.
15579 * config/i386/i386.c (TARGET_REGISTER_USAGE_LEVELING_P): Define.
15580
65f9e789
IB
155812013-05-30 Ian Bolton <ian.bolton@arm.com>
15582
15583 * config/aarch64/aarch64.md (insv<mode>): New define_expand.
15584 (*insv_reg<mode>): New define_insn.
15585
12211b99 155862013-05-30 Joern Rennecke <joern.rennecke@embecosm.com>
ca035367
JR
15587
15588 PR rtl-optimization/57439
15589 * postreload.c (move2add_valid_value_p): Check that we have
15590 a zero subreg_regno_offset when accessing the register in
15591 the requested mode.
15592
0b871ccf
YR
155932013-05-30 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
15594 Igor Zamyatin <igor.zamyatin@intel.com>
15595
15596 Silvermont (SLM) architecture pipeline model, tuning and
15597 insn selection.
15598 * config.gcc: Add slm config options and target.
15599
15600 * config/i386/slm.md: New.
15601
15602 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
15603
f43245d1 15604 * config/i386/i386-c.c (ix86_target_macros_internal): New case
0b871ccf
YR
15605 PROCESSOR_SLM.
15606 (ix86_target_macros_internal): Likewise.
15607
f43245d1 15608 * config/i386/i386.c (slm_cost): New cost.
0b871ccf
YR
15609 (m_SLM): New macro flag.
15610 (initial_ix86_tune_features): Set m_SLM.
15611 (x86_accumulate_outgoing_args): Likewise.
15612 (x86_arch_always_fancy_math_387): Likewise.
15613 (processor_target_table): Add slm cost.
15614 (cpu_names): Add slm cpu name.
15615 (x86_option_override_internal): Set SLM ISA.
15616 (ix86_issue_rate): New case PROCESSOR_SLM.
15617 (ia32_multipass_dfa_lookahead): Likewise.
15618 (fold_builtin_cpu): Add slm.
15619
15620 * config/i386/i386.h (TARGET_SLM): New target macro.
15621 (target_cpu_default): Add TARGET_CPU_DEFAULT_slm.
15622 (processor_type): Add PROCESSOR_SLM.
15623
15624 * config/i386/i386.md (cpu): Add new value "slm".
15625 (slm.md): Include slm.md.
15626
24d5b097
XG
156272013-05-30 Bernd Schmidt <bernds@codesourcery.com>
15628 Zhenqiang Chen <zhenqiang.chen@linaro.org>
15629
15630 * config/arm/arm-protos.h: Add and update function protos.
15631 * config/arm/arm.c (use_simple_return_p): New added.
15632 (thumb2_expand_return): Check simple_return flag.
15633 * config/arm/arm.md: Add simple_return and conditional simple_return.
15634 * config/arm/iterators.md: Add iterator for return and simple_return.
15635
c1cccc15
ZC
156362013-05-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
15637
15638 * config/arm/arm.c (arm_add_cfa_adjust_cfa_note): New added.
15639 (arm_emit_multi_reg_pop): Add REG_CFA_ADJUST_CFA notes.
15640 (arm_emit_vfp_multi_reg_pop): Likewise.
15641 (thumb2_emit_ldrd_pop): Likewise.
15642 (arm_expand_epilogue): Add misc REG_CFA notes.
15643 (arm_unwind_emit): Skip REG_CFA_ADJUST_CFA and REG_CFA_RESTORE.
15644
3a4f280b
LC
156452013-05-29 Lawrence Crowl <crowl@google.com>
15646
15647 * config/arm/t-arm: Update for below.
15648
15649 * config/arm/arm.c (arm_libcall_uses_aapcs_base::libcall_htab):
15650 Change type to hash_table. Update dependent calls and types.
15651
15652 * config/i386/t-cygming: Update for below.
15653
15654 * config/i386/t-interix: Update for below.
15655
15656 * config/i386/winnt.c (i386_pe_section_type_flags::htab):
15657 Change type to hash_table. Update dependent calls and types.
15658 (i386_find_on_wrapper_list::wrappers): Likewise.
15659
15660 * config/ia64/t-ia64: Update for below.
15661
15662 * config/ia64/ia64.c (bundle_state_table):
15663 Change type to hash_table. Update dependent calls and types.
15664
15665 * config/mips/mips.c (mips_reorg_process_insns::htab):
15666 Change type to hash_table. Update dependent calls and types.
15667
15668 * config/sol2.c (solaris_comdat_htab):
15669 Change type to hash_table. Update dependent calls and types.
15670
15671 * config/t-sol2: Update for above.
15672
1388a0e3
TJ
156732013-05-29 Teresa Johnson <tejohnson@google.com>
15674
15675 * passes.c (dump_passes): Use FOR_EACH_FUNCTION since
15676 functions are not yet marked as defined.
15677
a5965b52 156782013-05-29 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
15679 Pat Haugen <pthaugen@us.ibm.com>
15680 Peter Bergner <bergner@vnet.ibm.com>
a5965b52
MM
15681
15682 * config/rs6000/vector.md (VEC_I): Add support for new power8 V2DI
15683 instructions.
15684 (VEC_A): Likewise.
15685 (VEC_C): Likewise.
15686 (vrotl<mode>3): Likewise.
15687 (vashl<mode>3): Likewise.
15688 (vlshr<mode>3): Likewise.
15689 (vashr<mode>3): Likewise.
15690
15691 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
15692 support for power8 V2DI builtins.
15693
15694 * config/rs6000/rs6000-builtin.def (abs_v2di): Add support for
15695 power8 V2DI builtins.
15696 (vupkhsw): Likewise.
15697 (vupklsw): Likewise.
15698 (vaddudm): Likewise.
15699 (vminsd): Likewise.
15700 (vmaxsd): Likewise.
15701 (vminud): Likewise.
15702 (vmaxud): Likewise.
15703 (vpkudum): Likewise.
15704 (vpksdss): Likewise.
15705 (vpkudus): Likewise.
15706 (vpksdus): Likewise.
15707 (vrld): Likewise.
15708 (vsld): Likewise.
15709 (vsrd): Likewise.
15710 (vsrad): Likewise.
15711 (vsubudm): Likewise.
15712 (vcmpequd): Likewise.
15713 (vcmpgtsd): Likewise.
15714 (vcmpgtud): Likewise.
15715 (vcmpequd_p): Likewise.
15716 (vcmpgtsd_p): Likewise.
15717 (vcmpgtud_p): Likewise.
15718 (vupkhsw): Likewise.
15719 (vupklsw): Likewise.
15720 (vaddudm): Likewise.
15721 (vmaxsd): Likewise.
15722 (vmaxud): Likewise.
15723 (vminsd): Likewise.
15724 (vminud): Likewise.
15725 (vpksdss): Likewise.
15726 (vpksdus): Likewise.
15727 (vpkudum): Likewise.
15728 (vpkudus): Likewise.
15729 (vrld): Likewise.
15730 (vsld): Likewise.
15731 (vsrad): Likewise.
15732 (vsrd): Likewise.
15733 (vsubudm): Likewise.
15734
15735 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
15736 support for power8 V2DI instructions.
15737
15738 * config/rs6000/altivec.md (UNSPEC_VPKUHUM): Add support for
15739 power8 V2DI instructions. Combine pack and unpack insns to use an
15740 iterator for each mode. Check whether a particular mode supports
15741 Altivec instructions instead of just checking TARGET_ALTIVEC.
15742 (UNSPEC_VPKUWUM): Likewise.
15743 (UNSPEC_VPKSHSS): Likewise.
15744 (UNSPEC_VPKSWSS): Likewise.
15745 (UNSPEC_VPKUHUS): Likewise.
15746 (UNSPEC_VPKSHUS): Likewise.
15747 (UNSPEC_VPKUWUS): Likewise.
15748 (UNSPEC_VPKSWUS): Likewise.
15749 (UNSPEC_VPACK_SIGN_SIGN_SAT): Likewise.
15750 (UNSPEC_VPACK_SIGN_UNS_SAT): Likewise.
15751 (UNSPEC_VPACK_UNS_UNS_SAT): Likewise.
15752 (UNSPEC_VPACK_UNS_UNS_MOD): Likewise.
15753 (UNSPEC_VUPKHSB): Likewise.
15754 (UNSPEC_VUNPACK_HI_SIGN): Likewise.
15755 (UNSPEC_VUNPACK_LO_SIGN): Likewise.
15756 (UNSPEC_VUPKHSH): Likewise.
15757 (UNSPEC_VUPKLSB): Likewise.
15758 (UNSPEC_VUPKLSH): Likewise.
15759 (VI2): Likewise.
15760 (VI_char): Likewise.
15761 (VI_scalar): Likewise.
15762 (VI_unit): Likewise.
15763 (VP): Likewise.
15764 (VP_small): Likewise.
15765 (VP_small_lc): Likewise.
15766 (VU_char): Likewise.
15767 (add<mode>3): Likewise.
15768 (altivec_vaddcuw): Likewise.
15769 (altivec_vaddu<VI_char>s): Likewise.
15770 (altivec_vadds<VI_char>s): Likewise.
15771 (sub<mode>3): Likewise.
15772 (altivec_vsubcuw): Likewise.
15773 (altivec_vsubu<VI_char>s): Likewise.
15774 (altivec_vsubs<VI_char>s): Likewise.
15775 (altivec_vavgs<VI_char>): Likewise.
15776 (altivec_vcmpbfp): Likewise.
15777 (altivec_eq<mode>): Likewise.
15778 (altivec_gt<mode>): Likewise.
15779 (altivec_gtu<mode>): Likewise.
15780 (umax<mode>3): Likewise.
15781 (smax<mode>3): Likewise.
15782 (umin<mode>3): Likewise.
15783 (smin<mode>3): Likewise.
15784 (altivec_vpkuhum): Likewise.
15785 (altivec_vpkuwum): Likewise.
15786 (altivec_vpkshss): Likewise.
15787 (altivec_vpkswss): Likewise.
15788 (altivec_vpkuhus): Likewise.
15789 (altivec_vpkshus): Likewise.
15790 (altivec_vpkuwus): Likewise.
15791 (altivec_vpkswus): Likewise.
15792 (altivec_vpks<VI_char>ss): Likewise.
15793 (altivec_vpks<VI_char>us): Likewise.
15794 (altivec_vpku<VI_char>us): Likewise.
15795 (altivec_vpku<VI_char>um): Likewise.
15796 (altivec_vrl<VI_char>): Likewise.
15797 (altivec_vsl<VI_char>): Likewise.
15798 (altivec_vsr<VI_char>): Likewise.
15799 (altivec_vsra<VI_char>): Likewise.
15800 (altivec_vsldoi_<mode>): Likewise.
15801 (altivec_vupkhsb): Likewise.
15802 (altivec_vupkhs<VU_char>): Likewise.
15803 (altivec_vupkls<VU_char>): Likewise.
15804 (altivec_vupkhsh): Likewise.
15805 (altivec_vupklsb): Likewise.
15806 (altivec_vupklsh): Likewise.
15807 (altivec_vcmpequ<VI_char>_p): Likewise.
15808 (altivec_vcmpgts<VI_char>_p): Likewise.
15809 (altivec_vcmpgtu<VI_char>_p): Likewise.
15810 (abs<mode>2): Likewise.
15811 (vec_unpacks_hi_v16qi): Likewise.
15812 (vec_unpacks_hi_v8hi): Likewise.
15813 (vec_unpacks_lo_v16qi): Likewise.
15814 (vec_unpacks_hi_<VP_small_lc>): Likewise.
15815 (vec_unpacks_lo_v8hi): Likewise.
15816 (vec_unpacks_lo_<VP_small_lc>): Likewise.
15817 (vec_pack_trunc_v8h): Likewise.
15818 (vec_pack_trunc_v4si): Likewise.
15819 (vec_pack_trunc_<mode>): Likewise.
15820
15821 * config/rs6000/altivec.h (vec_vaddudm): Add defines for power8
15822 V2DI builtins.
15823 (vec_vmaxsd): Likewise.
15824 (vec_vmaxud): Likewise.
15825 (vec_vminsd): Likewise.
15826 (vec_vminud): Likewise.
15827 (vec_vpksdss): Likewise.
15828 (vec_vpksdus): Likewise.
15829 (vec_vpkudum): Likewise.
15830 (vec_vpkudus): Likewise.
15831 (vec_vrld): Likewise.
15832 (vec_vsld): Likewise.
15833 (vec_vsrad): Likewise.
15834 (vec_vsrd): Likewise.
15835 (vec_vsubudm): Likewise.
15836 (vec_vupkhsw): Likewise.
15837 (vec_vupklsw): Likewise.
15838
e70670cf
JH
158392013-05-29 Jan Hubicka <jh@suse.cz>
15840
15841 * cgraph.h (symtab_node_base): Add definition, alias and analyzed
15842 flags; reorder rest of fields in more consistent way.
15843 (varpool_node): Remove analyzed, finalized and alias.
15844 (cgraph_ndoe): Likewise.
15845 (symtab_alias_ultimate_target): New function.
15846 (cgraph_function_node): Move offline.
15847 (cgraph_reset_node): Declare.
15848 (cgraph_comdat_can_be_unshared_p): Remove.
15849 (varpool_remove_initializer): Declare.
15850 (varpool_first_defined_variable, varpool_next_defined_variable
15851 cgraph_first_defined_function, cgraph_next_defined_function): Update.
15852 (cgraph_function_with_gimple_body_p): Update.
15853 (varpool_all_refs_explicit_p): Update.
15854 (symtab_alias_target): New function.
15855 (cgraph_alias_aliased_node, varpool_alias_aliased_node): Rename to ...
15856 (cgraph_alias_target, varpool_alias_target): .. this one; simplify.
c1e183a9
UB
15857 (cgraph_function_or_thunk_node): Simplify using
15858 symtab_alias_ultimate_target.
e70670cf
JH
15859 (varpool_variable_node): Likewise.
15860 * cgraph.c (cgraph_create_function_alias): Update.
15861 (cgraph_add_thunk): Update.
15862 (cgraph_remove_node): Update.
15863 (dump_cgraph_node): Do not dump removed flags.
15864 (cgraph_function_body_availability): Update.
15865 (cgraph_propagate_frequency): Update.
15866 (verify_cgraph_node): Check sanity of local flag.
15867 (cgraph_function_node): Move here from cgraph.h; revamp for
15868 cgraph_function_or_thunk_node.
15869 * lto-symtab.c (lto_varpool_replace_node): Update.
15870 (lto_symtab_resolve_can_prevail_p): Update.
15871 (lto_symtab_merge_cgraph_nodes): Update.
15872 * ipa-cp.c (determine_versionability, initialize_node_lattices,
15873 propagate_constants_accross_call, devirtualization_time_bonus,
15874 ipcp_propagate_stage): Update.
15875 * tree-emutls.c (create_emultls_var, ipa_lower_emutls): Update.
c1e183a9
UB
15876 * ipa-inline-transform.c (clone_inlined_nodes,
15877 preserve_function_body_p): Update.
e70670cf
JH
15878 * ipa-reference.c (propagate): Update.
15879 (write_node_summary_p): Update.
15880 * toplev.c (wrapup_global_declaration_2): Update.
15881 * cgraphunit.c (cgraph_analyze_function): Rename to ...
15882 (analyze_function) ... this one.
15883 (cgraph_process_new_functions): Update.
15884 (cgraph_reset_node): Export.
15885 (cgraph_finalize_function): Update.
15886 (cgraph_add_new_function): Update.
15887 (process_function_and_variable_attributes): Update.
15888 (varpool_finalize_decl): Update.
15889 (symbol_finalized): Remove.
15890 (symbol_finalized_and_needed): Rename to ...
15891 (symbol_defined_and_needed): ... update.
15892 (cgraph_analyze_functions): Update.
15893 (handle_alias_pairs): Update.
15894 (mark_functions_to_output): Update.
15895 (assemble_thunk): Update.
15896 (output_in_order): Update.
15897 (output_weakrefs): Update.
15898 (finalize_compilation_unit): Update.
15899 * lto-cgraph.c (reachable_from_other_partition_p, lto_output_node,
15900 lto_output_varpool_node, compute_ltrans_boundary, input_overwrite_node,
15901 input_node, input_varpool_node): Update.
15902 * dbxout.c (dbxout_expand_expr): Update.
15903 * cgraphclones.c (cgraph_clone_node): Update.
15904 (cgraph_copy_node_for_versioning): Update.
15905 (cgraph_materialize_clone): Update.
15906 (cgraph_materialize_all_clones): Update.
15907 * ipa-pure-const.c (analyze_function, pure_const_write_summary,
15908 propagate_pure_const, propagate_nothrow): Update.
15909 * lto-streamer-out.c (lto_output, write_symbol): Update.
15910 * ipa-utils.c (ipa_reverse_postorder): Update.
15911 * ipa-inline.c (can_inline_edge_p): Update.
15912 (update_caller_keys, ipa_inline): Update.
15913 * dwarf2out.c (reference_to_unused,
15914 premark_types_used_by_global_vars_helper): Update.
15915 * tree-eh.c (tree_could_trap_p): Update.
15916 * ipa-split.c (consider_split, execute_split_functions): Update.
15917 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
c1e183a9
UB
15918 has_addr_references_p): Update; move ahead in file for better
15919 readability.
e70670cf
JH
15920 (process_references): Simplify.
15921 (symtab_remove_unreachable_nodes): Update; cleanup way function/var
15922 bodies are removed.
15923 (cgraph_comdat_can_be_unshared_p): Make static.
15924 (cgraph_externally_visible_p): Update.
15925 (varpool_externally_visible_p): Update.
15926 (function_and_variable_visibility): Update.
15927 * trans-mem.c (get_cg_data, ipa_tm_mayenterirr_function,
15928 ipa_tm_mark_force_output_node): Update.
15929 * ipa-inline-analysis.c (dump_inline_summary, initialize_inline_failed,
15930 estimate_edge_devirt_benefit, inline_generate_summary,
15931 inline_write_summary): Update.
15932 * gimple-fold.c (can_refer_decl_in_current_unit_p): Update.
15933 * ipa-prop.c (ipa_compute_jump_functions): Update.
c1e183a9
UB
15934 (ipa_print_node_params, ipa_prop_read_section,
15935 ipa_update_after_lto_read, read_replacements_section): Update.
e70670cf
JH
15936 * varasm.c (mark_decl_referenced): Update.
15937 (assemble_alias, dump_tm_clone_pairs): Update.
15938 * tree-inline.c (copy_bb): Update.
15939 (estimate_num_insns, optimize_inline_calls, tree_function_versioning):
15940 Update.
15941 * symtab.c (dump_symtab_base): Print new flags.
15942 (verify_symtab_base): Verify new flags.
15943 (symtab_alias_ultimate_target): New function.
15944 * tree-ssa-structalias.c (get_constraint_for_ssa_var,
15945 create_variable_info_for, associate_varinfo_to_alias, ipa_pta_execute):
15946 Update.
c1e183a9
UB
15947 * passes.c (ipa_write_summaries, ipa_write_optimization_summaries):
15948 Update.
e70670cf
JH
15949 * i386.c (ix86_get_function_versions_dispatcher,
15950 ix86_generate_version_dispatcher_body): Update.
15951 (fold_builtin_cpu): Use varpool_add_new_variable.
15952 * varpool.c (varpool_remove_initializer): Break out from ...
15953 (varpool_remove_node): ... this one.
15954 (dump_varpool_node, varpool_node_for_asm,
15955 cgraph_variable_initializer_availability, varpool_analyze_node,
15956 varpool_assemble_decl, varpool_remove_unreferenced_decls,
c1e183a9
UB
15957 varpool_finalize_named_section_flags, varpool_create_variable_alias):
15958 Update.
e70670cf 15959
182802ad
JH
159602013-05-29 Jan Hubicka <jh@suse.cz>
15961
15962 * passes.c (init_optimization_passes): Move OMP expansion into lowering.
15963
8190b609
ER
159642013-05-29 Easwaran Raman <eraman@google.com>
15965
15966 PR tree-optimization/57442
15967 * tree-ssa-reassoc.c (appears_later_in_bb): Return correct value
15968 when control exits the main loop.
15969
69f5aa9b
SKS
159702013-05-29 Sandeep Kumar Singh <Sandeep.Singh2@kpitcummins.com>
15971
15972 * rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add macros for RX100, RX200,
15973 and RX600.
c1e183a9 15974 * rx/rx.opt: Add macro for rx100 with string rx100 and value RX100.
69f5aa9b
SKS
15975 * rx/rx-opts.h (rx_cpu_types): Add new cpu type rx100.
15976 * rx/t-rx: Add rx100 under multi library matches option for nofpu
15977 option.
15978
4b847da9
BS
159792013-05-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15980
15981 PR tree-optimization/57441
15982 * gimple-ssa-strength-reduction.c (analyze_candidates_and_replace):
15983 Don't limit size of incr_vec to number of candidates.
15984
4fc43c39
SE
159852013-05-29 Steve Ellcey <sellcey@imgtec.com>
15986
15987 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add micromips
15988 and mips16 directories.
c1e183a9 15989 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Add micromips and mips16.
4fc43c39
SE
15990 (MULTILIB_DIRNAMES): Ditto.
15991 (MULTILIB_EXCEPTIONS): Add new exceptions.
15992 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Add micromips.
15993 (MULTILIB_DIRNAMES): Ditto.
15994 (MULTILIB_EXCEPTIONS): Add new exceptions.
15995
12211b99 159962012-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
a5350ddc
CSS
15997 Marcus Shawcroft <marcus.shawcroft@arm.com>
15998
15999 * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
16000 SYMBOL_TINY_ABSOLUTE.
16001 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Handle
16002 SYMBOL_TINY_ABSOLUTE.
16003 (aarch64_expand_mov_immediate): Likewise.
16004 (aarch64_classify_symbol): Likewise.
16005 (aarch64_mov_operand_p): Remove ATTRIBUTE_UNUSED.
16006 Permit SYMBOL_TINY_ABSOLUTE.
16007 * config/aarch64/predicates.md (aarch64_mov_operand): Permit CONST.
16008
12211b99 160092013-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
17f4d4bf
CSS
16010 Marcus Shawcroft <marcus.shawcroft@arm.com>
16011
16012 * config/aarch64/aarch64.c (aarch64_classify_symbol): Remove comment.
16013 Refactor if/switch. Replace gcc_assert with if.
16014
c0186656
GG
160152013-05-29 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
16016
16017 * config/i386/i386.c (initial_ix86_tune_features): Enable
16018 FP Reassociation for AMD bdver1 and bdver2.
16019
d20188f3
MJ
160202013-05-29 Martin Jambor <mjambor@suse.cz>
16021
16022 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REF, REALPART_EXPR
16023 and IMAGPART_EXPR do not occur within other handled_components.
16024
292cba13
RB
160252013-05-29 Richard Biener <rguenther@suse.de>
16026
16027 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Guard vinfo
16028 access on whether the use is in the BB we currently try to
16029 vectorize.
16030 (vect_bb_vectorization_profitable_p): Pass the BB we currently
16031 vectorize to vect_bb_slp_scalar_cost.
16032
6eddf228
RB
160332013-05-29 Richard Biener <rguenther@suse.de>
16034
16035 * tree-vect-slp.c (vect_bb_slp_scalar_cost): New function
16036 computing scalar cost offsetted by stmts that are kept live
16037 by scalar uses.
16038 (vect_bb_vectorization_profitable_p): Use vect_bb_slp_scalar_cost
16039 for computation of scalar cost.
16040
7df36117
SE
160412013-05-28 Steve Ellcey <sellcey@mips.com>
16042
16043 * config/mips/mips-cpus.def (mips32r2): Change processor type.
16044
36536d79
BI
160452013-05-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
16046
16047 * doc/extend.texi (C Extensions): Added documentation about Cilk Plus
16048 array notation built-in reduction functions.
16049 * doc/passes.texi (Passes): Added documentation about changes done
16050 for Cilk Plus.
16051 * doc/invoke.texi (C Dialect Options): Added documentation about
16052 the -fcilkplus flag.
16053 * Makefile.in (C_COMMON_OBJS): Added c-family/array-notation-common.o.
16054 (BUILTINS_DEF): Depend on cilkplus.def.
16055 * builtins.def: Include cilkplus.def. Define DEF_CILKPLUS_BUILTIN.
16056 * builtin-types.def: Define BT_FN_INT_PTR_PTR_PTR.
16057 * cilkplus.def: New file.
16058
12211b99 160592013-05-28 Joern Rennecke <joern.rennecke@embecosm.com>
b49eefa5
JR
16060
16061 PR rtl-optimization/57439
16062 * postreload.c (move2add_use_add2_insn): Use gen_lowpart_common.
16063
9daf6dbb
ER
160642013-05-28 Easwaran Raman <eraman@google.com>
16065
16066 PR tree-optimization/57337
16067 * tree-ssa-reassoc.c (appears_later_in_bb): New function.
16068 (find_insert_point): Correctly identify the insertion point
16069 when two statements with the same UID is compared.
16070
fbd7e877
RB
160712013-05-28 Richard Biener <rguenther@suse.de>
16072
16073 PR tree-optimization/56787
16074 * tree-vect-data-refs.c (vect_analyze_data_refs): Drop clobbers
16075 from the list of data references.
16076 * tree-vect-loop.c (vect_determine_vectorization_factor): Skip
16077 clobbers.
16078 (vect_analyze_loop_operations): Likewise.
16079 (vect_transform_loop): Remove clobbers.
16080
bbba1117
MJ
160812013-05-28 Martin Jambor <mjambor@suse.cz>
16082
16083 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REFs, IMAGPART_EXPRs
16084 and REALPART_EXPRs have scalar type.
16085
bd388c2a
RB
160862013-05-28 Richard Biener <rguenther@suse.de>
16087
16088 PR tree-optimization/57411
16089 * tree-ssa-copy.c (may_propagate_copy): Cannot propagate
16090 virtual operands.
16091 * tree-ssa-dom.c (eliminate_const_or_copy): Special-case
16092 virtual operand propagation.
16093
2f56a311
EB
160942013-05-28 Eric Botcazou <ebotcazou@adacore.com>
16095
16096 * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): Use %g0 as
16097 destination register for bmasksi_vis.
16098 (vector_init_bshuffle): Likewise.
16099 * config/sparc/sparc.md (vec_perm_constv8qi): Likewise.
16100
5c3eacbb
EB
161012013-05-28 Eric Botcazou <ebotcazou@adacore.com>
16102
16103 * doc/invoke.texi (SPARC Options): Document -mfix-ut699.
16104 * builtins.c (expand_builtin_mathfn) <BUILT_IN_SQRT>: Try to widen the
16105 mode if the instruction isn't available in the original mode.
16106 * config/sparc/sparc.opt (mfix-ut699): New option.
16107 * config/sparc/sparc.md (muldf3_extend): Disable if -mfix-ut699.
16108 (divdf3): Turn into expander.
16109 (divdf3_nofix): New insn.
16110 (divdf3_fix): Likewise.
16111 (divsf3): Disable if -mfix-ut699.
16112 (sqrtdf2): Turn into expander.
16113 (sqrtdf2_nofix): New insn.
16114 (sqrtdf2_fix): Likewise.
16115 (sqrtsf2): Disable if -mfix-ut699.
16116
a1756c0a
RB
161172013-05-27 Richard Biener <rguenther@suse.de>
16118
16119 PR middle-end/57412
16120 * omp-low.c (expand_omp_atomic_pipeline): Use the correct latch
16121 block for the new loop.
16122
5a892248
RB
161232013-05-27 Richard Biener <rguenther@suse.de>
16124
16125 PR tree-optimization/57343
16126 * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Do not
16127 use multiple_of_p if not TYPE_OVERFLOW_UNDEFINED.
16128 (number_of_iterations_cond): Do not build the folded tree.
16129
d1de852b
RB
161302013-05-27 Richard Biener <rguenther@suse.de>
16131
16132 Revert
16133 PR middle-end/57381
16134 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
16135 OEP_CONSTANT_ADDRESS_OF retained.
16136
16137 PR tree-optimization/57417
16138 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Fix test
16139 for unchanged base.
16140 (set_ssa_val_to): Compare addresses using
16141 get_addr_base_and_unit_offset.
16142
12211b99 161432013-05-27 Joern Rennecke <joern.rennecke@embecosm.com>
7894bc6b
JR
16144
16145 PR rtl-optimization/56833
16146 * postreload.c (move2add_record_mode): New function.
16147 (move2add_record_sym_value, move2add_valid_value_p): Likewise.
16148 (move2add_use_add2_insn): Use move2add_record_sym_value.
16149 (move2add_use_add3_insn): Likewise.
16150 (reload_cse_move2add): Use move2add_valid_value_p and
16151 move2add_record_mode. Invalidate call-clobbered and REG_INC
16152 affected regs by setting reg_mode to VOIDmode.
16153 (move2add_note_store): Don't pretend the inside of a SUBREG is
16154 the actual destination. Invalidate single/leading registers by
16155 setting reg_mode to VOIDmode.
16156 Use move2add_record_sym_value, move2add_valid_value_p and
16157 move2add_record_mode.
16158
b03be25f
RB
161592013-05-27 Richard Biener <rguenther@suse.de>
16160
16161 PR tree-optimization/57396
16162 * tree-affine.c (double_int_constant_multiple_p): Properly
16163 return false for val == 0 and div != 0.
16164
44e88db2
RS
161652013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
16166
16167 * config/mips/mips.h: Use #elif in preprocessor conditions.
16168
3b859704
RS
161692013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
16170
16171 PR target/53916
16172 * config/mips/constraints.md (kl): New constraint.
16173 * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Delete.
16174 (divmod<mode>4_internal): Rename to divmod<mode>4. Use "kl" as the
16175 constraint for operand 0. Split after CSE for MIPS16. Emit a move
16176 from LO for MIPS16.
16177 (udivmod<mode>4_internal): Likewise udivmod<mode>4.
16178
c979d5f5
RS
161792013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
16180
16181 PR target/55777
16182 * config/mips/mips.c (mips_can_inline_p): New function.
16183 (TARGET_CAN_INLINE_P): Define.
16184
8e90de43
SB
161852013-05-25 Steven Bosscher <steven@gcc.gnu.org>
16186
16187 * sched-int.h (ds_t, dw_t): Make unsigned int.
16188 Fix documentation that describes how all the ds_t bits are used.
16189 Reserve the last bit for delayed-branch scheduling.
16190 (BITS_PER_DEP_STATUS): Move to ds_t typedef.
16191 (BITS_PER_DEP_WEAK): Fix definition and documentation.
16192 (gen_dep_weak_1): Remove prototype.
16193 * sched-deps.c (get_dep_weak_1): Make static.
16194 * target.def (speculate_insn, needs_block_p, gen_spec_check,
16195 get_insn_spec_ds, get_insn_checked_ds): Adjust hook prototypes.
16196 * doc/tm.texi: Regenerate.
16197 * config/ia64/ia64.c (ia64_needs_block_p): Update prototype.
16198
cb5cb194
SB
161992013-05-24 Steven Bosscher <steven@gcc.gnu.org>
16200
16201 PR debug/56950
16202 * haifa-sched.c (sched_extend_bb): Ignore DEBUG_INSNs.
16203
5bd93ff6
NS
162042013-05-24 Nathan Sidwell <nathan@codesourcery.com>
16205 Sandra Loosemore <sandra@codesourcery.com>
16206
16207 * config.gcc (powerpc-*): Allow native for with-cpu.
16208
2343af65
JL
162092013-05-24 Jeff Law <law@redhat.com>
16210
16211 PR tree-optimization/57124
16212 * tree-vrp.c (simplify_cond_using_ranges): Only simplify a
16213 conversion feeding a condition if the range has an overflow
16214 if -fstrict-overflow. Add warnings for when we do make the
16215 transformation.
16216
3ad695b9
DC
162172013-05-24 Dehao Chen <dehao@google.com>
16218
04960246 16219 * tree-cfg.c (locus_discrim_map): Fix the typo.
3ad695b9
DC
16220 (locus_discrim_hasher): Likewise.
16221 (locus_discrim_hasher::hash): Likewise.
16222 (locus_discrim_hasher::equal): Likewise.
16223
82338059
MJ
162242013-05-24 Martin Jambor <mjambor@suse.cz>
16225
16226 PR tree-optimization/57294
16227 * cgraph.h (ipa_record_stmt_references): Declare.
16228 * cgraphbuild.c (ipa_record_stmt_references): New function.
16229 (build_cgraph_edges): Use ipa_record_stmt_references.
16230 (rebuild_cgraph_edges): Likewise.
16231 (cgraph_rebuild_references): Likewise.
16232 * ipa-prop.c (ipa_modify_call_arguments): Discard references
16233 associated with the old statement and build references from the
16234 newly built statements.
16235 * ipa-ref.c (ipa_remove_stmt_references): New function.
16236 * ipa-ref.h (ipa_remove_stmt_references): Declare.
16237
1ccd4874
VM
162382013-05-24 Vladimir Makarov <vmakarov@redhat.com>
16239
55805e54 16240 * lra-constraints.c (emit_spill_move): Use smaller mode for
1ccd4874 16241 mem-mem moves.
55805e54 16242 (check_and_process_move): Consider mem-reg moves for secondary
1ccd4874 16243 too.
55805e54 16244 (curr_insn_transform): Don't lose insns emitted before for
1ccd4874
VM
16245 secondary memory moves.
16246 (inherit_in_ebb): Mark defined reg. Add usage only if it is not a
16247 reg set up in the current insn.
16248
25e25c73
DC
162492013-05-24 Dehao Chen <dehao@google.com>
16250
04960246 16251 * tree-cfg.c (locus_descrim_hasher::hash): Change discriminator
25e25c73
DC
16252 hash function.
16253 (locus_descrim_hasher::equal): Likewise.
04960246 16254 (build_gimple_cfg): New discriminator assignment algorithm.
25e25c73
DC
16255 (make_edges): Likewise.
16256 (next_discriminator_for_locus): Likewise.
16257 (same_line_p): Likewise.
16258 (assign_discriminators): Likewise.
16259 (make_cond_expr_edges): Likewise.
16260 (make_gimple_switch_edges): Likewise.
16261 (make_goto_expr_edges): Likewise.
16262 (make_gimple_asm_edges): Likewise.
16263
50d38551
IB
162642013-05-24 Ian Bolton <ian.bolton@arm.com>
16265
16266 * config/aarch64/aarch64.c (aarch64_print_operand): Change the
16267 X format specifier to only display bottom 16 bits.
16268 * config/aarch64/aarch64.md (insv_imm<mode>): Allow any size of
16269 immediate to match for operand 2, since it will be masked.
16270
aea0101d
RB
162712013-05-24 Richard Biener <rguenther@suse.de>
16272
16273 PR tree-optimization/57287
16274 * tree-ssa-uninit.c (compute_uninit_opnds_pos): Disregard
16275 all SSA names that occur in abnormal PHIs.
16276
634e03d3
AI
162772013-05-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
16278
16279 PR tree-ssa/57385
16280 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Check
16281 that index is not negative.
16282
b17c024f
EB
162832013-05-24 Eric Botcazou <ebotcazou@adacore.com>
16284
16285 PR rtl-optimization/55177
16286 * simplify-rtx.c (simplify_unary_operation_1) <NOT>: Deal with BSWAP.
16287 (simplify_byte_swapping_operation): New.
16288 (simplify_binary_operation_1): Call it for AND, IOR and XOR.
16289 (simplify_relational_operation_1): Deal with BSWAP.
16290
46aeac1b
RH
162912013-05-23 Richard Henderson <rth@redhat.com>
16292
16293 PR target/56742
16294 * config/i386/i386.c (ix86_seh_fixup_eh_fallthru): New.
16295 (ix86_reorg): Call it.
16296
70cc1536
UB
162972013-05-23 Uros Bizjak <ubizjak@gmail.com>
16298
16299 PR target/57379
16300 * config/alpha/alpha.md (unspec): Add UNSPEC_XFLT_COMPARE.
16301 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Construct
16302 REG_EQUAL note as UNSPEC_XFLT_COMPARE unspec.
16303
b3851501
CB
163042013-05-23 Christian Bruel <christian.bruel@st.com>
16305
16306 PR debug/57351
16307 * config/arm/arm.c (arm_dwarf_register_span): Do not use dbx number.
16308
12211b99 163092013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
4e194912
CSS
16310 Marcus Shawcroft <marcus.shawcroft@arm.com>
16311
16312 * config/aarch64/aarch64.md (*movdi_aarch64): Replace Usa with S.
16313 * config/aarch64/constraints.md (Usa): Remove.
16314 * doc/md.texi (AArch64 Usa): Remove.
16315
12211b99 163162013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
83f8c414
CSS
16317 Marcus Shawcroft <marcus.shawcroft@arm.com>
16318
16319 * config/aarch64/aarch64-protos.h (aarch64_mov_operand_p): Define.
16320 * config/aarch64/aarch64.c (aarch64_mov_operand_p): Define.
16321 * config/aarch64/predicates.md (aarch64_const_address): Remove.
16322 (aarch64_mov_operand): Use aarch64_mov_operand_p.
16323
12211b99 163242013-05-23 Vidya Praveen <vidyapraveen@arm.com>
b5574232
VP
16325
16326 * config/aarch64/aarch64-simd.md (clzv4si2): Support for CLZ
16327 instruction (AdvSIMD).
16328 * config/aarch64/aarch64-builtins.c
16329 (aarch64_builtin_vectorized_function): Handler for BUILT_IN_CLZ.
16330 * config/aarch64/aarch-simd-builtins.def: Entry for CLZ.
16331
76c36cb1 163322013-05-23 Martin Jambor <mjambor@suse.cz>
7d2fb524
MJ
16333
16334 PR middle-end/57347
16335 * tree.h (contains_bitfld_component_ref_p): Declare.
16336 * tree-sra.c (contains_bitfld_comp_ref_p): Move...
70cc1536
UB
16337 * tree.c (contains_bitfld_component_ref_p): ...here. Adjust its
16338 caller.
7d2fb524
MJ
16339 * ipa-prop.c (determine_known_aggregate_parts): Check that LHS does
16340 not access a bit-field. Assert all final offsets are byte-aligned.
16341
ce521ae6
RB
163422013-05-23 Richard Biener <rguenther@suse.de>
16343
16344 PR tree-optimization/57380
16345 * tree-ssa-phiprop.c (propagate_with_phi): Do not require at
16346 least one invariant or re-used load.
16347 * passes.c (init_optimization_passes): Move pass_phiprop before
16348 pass_forwprop.
16349
75c7257f
JG
163502013-05-23 James Greenhalgh <james.greenhalgh@arm.com>
16351
16352 * config/aarch64/aarch64-simd.md
16353 (aarch64_cm<optab>di): Add clobber of CC_REGNUM to unsplit pattern.
16354
af6d44b5
RB
163552013-05-23 Richard Biener <rguenther@suse.de>
16356
16357 PR middle-end/57381
16358 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
16359 OEP_CONSTANT_ADDRESS_OF retained.
16360
bd3647bf
JJ
163612013-05-23 Jakub Jelinek <jakub@redhat.com>
16362
16363 PR middle-end/57344
70cc1536
UB
16364 * expmed.c (store_split_bit_field): If op0 is a REG or SUBREG of a REG,
16365 don't lower unit. Handle unit not being always BITS_PER_WORD.
bd3647bf 16366
a55757ea
RB
163672013-05-23 Richard Biener <rguenther@suse.de>
16368
16369 PR rtl-optimization/57341
16370 * ira.c (validate_equiv_mem_from_store): Use anti_dependence
16371 instead of true_dependence.
16372
cfb00b41
DM
163732013-05-22 David Malcolm <dmalcolm@redhat.com>
16374
dd1c676f
DM
16375 * bb-reorder.c (branch_threshold): Make const.
16376 (exec_threshold): Ditto.
cfb00b41 16377
f62511da 163782013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
16379 Pat Haugen <pthaugen@us.ibm.com>
16380 Peter Bergner <bergner@vnet.ibm.com>
f62511da
MM
16381
16382 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Add
16383 documentation for the power8 crypto builtins.
16384
16385 * config/rs6000/t-rs6000 (MD_INCLUDES): Add crypto.md.
16386
16387 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_1): Add support
16388 macros for defining power8 builtin functions.
16389 (BU_P8V_AV_2): Likewise.
16390 (BU_P8V_AV_P): Likewise.
16391 (BU_P8V_VSX_1): Likewise.
16392 (BU_P8V_OVERLOAD_1): Likewise.
16393 (BU_P8V_OVERLOAD_2): Likewise.
16394 (BU_CRYPTO_1): Likewise.
16395 (BU_CRYPTO_2): Likewise.
16396 (BU_CRYPTO_3): Likewise.
16397 (BU_CRYPTO_OVERLOAD_1): Likewise.
16398 (BU_CRYPTO_OVERLOAD_2): Likewise.
16399 (XSCVSPDP): Fix typo, point to the correct instruction.
16400 (VCIPHER): Add power8 crypto builtins.
16401 (VCIPHERLAST): Likewise.
16402 (VNCIPHER): Likewise.
16403 (VNCIPHERLAST): Likewise.
16404 (VPMSUMB): Likewise.
16405 (VPMSUMH): Likewise.
16406 (VPMSUMW): Likewise.
16407 (VPERMXOR_V2DI): Likewise.
16408 (VPERMXOR_V4SI: Likewise.
16409 (VPERMXOR_V8HI: Likewise.
16410 (VPERMXOR_V16QI: Likewise.
16411 (VSHASIGMAW): Likewise.
16412 (VSHASIGMAD): Likewise.
16413 (VPMSUM): Likewise.
16414 (VPERMXOR): Likewise.
16415 (VSHASIGMA): Likewise.
16416
16417 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
16418 __CRYPTO__ if the crypto instructions are available.
16419 (altivec_overloaded_builtins): Add support for overloaded power8
16420 builtins.
16421
16422 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
16423 support for power8 crypto builtins.
16424 (builtin_function_type): Likewise.
16425 (altivec_init_builtins): Add support for builtins that take vector
16426 long long (V2DI) arguments.
16427
16428 * config/rs6000/crypto.md: New file, define power8 crypto
16429 instructions.
16430
164312013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
16432 Pat Haugen <pthaugen@us.ibm.com>
16433 Peter Bergner <bergner@vnet.ibm.com>
f62511da
MM
16434
16435 * doc/invoke.texi (Option Summary): Add power8 options.
16436 (RS/6000 and PowerPC Options): Likewise.
16437
16438 * doc/md.texi (PowerPC and IBM RS6000 constraints): Update to use
16439 constraints.md instead of rs6000.h. Reorder w* constraints. Add
16440 wm, wn, wr documentation.
16441
f43245d1 16442 * config/rs6000/constraints.md (wm): New constraint for VSX
f62511da
MM
16443 registers if direct move instructions are enabled.
16444 (wn): New constraint for no registers.
16445 (wq): New constraint for quad word even GPR registers.
16446 (wr): New constraint if 64-bit instructions are enabled.
16447 (wv): New constraint if power8 vector instructions are enabled.
16448 (wQ): New constraint for quad word memory locations.
16449
f43245d1 16450 * config/rs6000/predicates.md (const_0_to_15_operand): New
f62511da
MM
16451 constraint for 0..15 for crypto instructions.
16452 (gpc_reg_operand): If VSX allow registers in VSX registers as well
16453 as GPR and floating point registers.
16454 (int_reg_operand): New predicate to match only GPR registers.
16455 (base_reg_operand): New predicate to match base registers.
16456 (quad_int_reg_operand): New predicate to match even GPR registers
16457 for quad memory operations.
16458 (vsx_reg_or_cint_operand): New predicate to allow vector logical
16459 operations in both GPR and VSX registers.
16460 (quad_memory_operand): New predicate for quad memory operations.
16461 (reg_or_indexed_operand): New predicate for direct move support.
16462
f43245d1 16463 * config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED):
f62511da
MM
16464 Inherit from ISA_2_4_MASKS, not ISA_2_2_MASKS.
16465 (ISA_2_7_MASKS_SERVER): New mask for ISA 2.07 (i.e. power8).
16466 (POWERPC_MASKS): Add power8 options.
16467 (power8 cpu): Use ISA_2_7_MASKS_SERVER instead of specifying the
16468 various options.
16469
f43245d1 16470 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
f62511da
MM
16471 Define _ARCH_PWR8 and __POWER8_VECTOR__ for power8.
16472
f43245d1 16473 * config/rs6000/rs6000.opt (-mvsx-timode): Add documentation.
f62511da
MM
16474 (-mpower8-fusion): New power8 options.
16475 (-mpower8-fusion-sign): Likewise.
16476 (-mpower8-vector): Likewise.
16477 (-mcrypto): Likewise.
16478 (-mdirect-move): Likewise.
16479 (-mquad-memory): Likewise.
16480
f43245d1 16481 * config/rs6000/rs6000.c (power8_cost): Initial definition for power8.
f62511da
MM
16482 (rs6000_hard_regno_mode_ok): Make PTImode only match even GPR
16483 registers.
70cc1536 16484 (rs6000_debug_reg_print): Print the base register class if -mdebug=reg.
f62511da
MM
16485 (rs6000_debug_vector_unit): Add p8_vector.
16486 (rs6000_debug_reg_global): If -mdebug=reg, print power8 constraint
16487 definitions. Also print fusion state.
16488 (rs6000_init_hard_regno_mode_ok): Set up power8 constraints.
16489 (rs6000_builtin_mask_calculate): Add power8 builtin support.
16490 (rs6000_option_override_internal): Add support for power8.
16491 (rs6000_common_init_builtins): Add debugging for skipped builtins
16492 if -mdebug=builtin.
16493 (rs6000_adjust_cost): Add power8 support.
16494 (rs6000_issue_rate): Likewise.
16495 (insn_must_be_first_in_group): Likewise.
16496 (insn_must_be_last_in_group): Likewise.
16497 (force_new_group): Likewise.
16498 (rs6000_register_move_cost): Likewise.
16499 (rs6000_opt_masks): Likewise.
16500
16501 * config/rs6000/rs6000.h (ASM_CPU_POWER8_SPEC): If we don't have a
16502 power8 capable assembler, default to power7 options.
16503 (TARGET_DIRECT_MOVE): Likewise.
16504 (TARGET_CRYPTO): Likewise.
16505 (TARGET_P8_VECTOR): Likewise.
16506 (VECTOR_UNIT_P8_VECTOR_P): Define power8 vector support.
16507 (VECTOR_UNIT_VSX_OR_P8_VECTOR_P): Likewise.
16508 (VECTOR_MEM_P8_VECTOR_P): Likewise.
16509 (VECTOR_MEM_VSX_OR_P8_VECTOR_P): Likewise.
16510 (VECTOR_MEM_ALTIVEC_OR_VSX_P): Likewise.
16511 (TARGET_XSCVDPSPN): Likewise.
16512 (TARGET_XSCVSPDPN): Likewsie.
16513 (TARGET_SYNC_HI_QI): Likewise.
16514 (TARGET_SYNC_TI): Likewise.
16515 (MASK_CRYPTO): Likewise.
16516 (MASK_DIRECT_MOVE): Likewise.
16517 (MASK_P8_FUSION): Likewise.
16518 (MASK_P8_VECTOR): Likewise.
70cc1536
UB
16519 (REG_ALLOC_ORDER): Move fr13 to be lower in priority so that the TFmode
16520 temporary used by some of the direct move instructions to get two FP
16521 temporary registers does not force creation of a stack frame.
f62511da
MM
16522 (VLOGICAL_REGNO_P): Allow vector logical operations in GPRs.
16523 (MODES_TIEABLE_P): Move the VSX tests above the Altivec tests so
16524 that any VSX registers are tieable, even if they are also an
16525 Altivec vector mode.
16526 (r6000_reg_class_enum): Add wm, wr, wv constraints.
16527 (RS6000_BTM_P8_VECTOR): Power8 builtin support.
16528 (RS6000_BTM_CRYPTO): Likewise.
16529 (RS6000_BTM_COMMON): Likewise.
16530
16531 * config/rs6000/rs6000.md (cpu attribute): Add power8.
16532 * config/rs6000/rs6000-opts.h (PROCESSOR_POWER8): Likewise.
16533 (enum rs6000_vector): Add power8 vector support.
16534
73a1a707
RR
165352013-05-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16536
16537 PR target/19599
16538 PR target/57340
16539 * config/arm/arm.c (any_sibcall_uses_r3): Rename to ..
16540 (any_sibcall_could_use_r3): this and handle indirect calls.
16541 (arm_get_frame_offsets): Rename use of any_sibcall_uses_r3.
16542
d28073d4
BS
165432013-05-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16544
16545 * config/rs6000/rs6000.h (MALLOC_ABI_ALIGNMENT): New #define.
16546
bee0b10c
RB
165472013-05-22 Richard Biener <rguenther@suse.de>
16548
16549 PR middle-end/57349
16550 * profile.c (branch_prob): Do not split blocks that are
16551 abnormally receiving from ECF_RETURNS_TWICE functions.
16552
98409b51
RS
165532013-05-22 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
16554
16555 * recog.c (offsettable_address_addr_space_p): Fix calculation of
16556 address mode. Move pointer mode initialization to the same place.
16557
c0602ab8
MZ
165582013-05-22 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
16559
16560 * read-rtl.c (copy_rtx_for_iterators): Continue applying iterators
16561 while it has any effect.
16562
4f7a634e
ER
165632013-05-21 Easwaran Raman <eraman@google.com>
16564
16565 PR tree-optimization/57322
9daf6dbb
ER
16566 * tree-ssa-reassoc.c (build_and_add_sum): If a BB is empty, set the
16567 UID of the statement added to the BB to be 1.
4f7a634e 16568
a4ce1258
JJ
165692013-05-21 Jakub Jelinek <jakub@redhat.com>
16570
16571 PR tree-optimization/57331
70cc1536
UB
16572 * tree-vrp.c (simplify_cond_using_ranges): Don't optimize comparison
16573 of conversion from pointer type to integral type with integer.
a4ce1258 16574
1b14621a
MJ
165752013-05-21 Martin Jambor <mjambor@suse.cz>
16576
16577 PR lto/57289
16578 * ipa-prop.c (ipa_read_node_info): Process param_used and
16579 controlled_uses in the same order as when writing.
16580
e60661f0
MG
165812013-05-21 Magnus Granberg <baldrick@free.fr>
16582
16583 PR plugins/56754
ee49aa34 16584 * Makefile.in (PLUGIN_HEADERS): Add $(TARGET_H).
e60661f0 16585
4a61be9a
RB
165862013-05-21 Richard Biener <rguenther@suse.de>
16587
16588 PR tree-optimization/57318
16589 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Do not
16590 estimate stmts with side-effects as likely eliminated.
16591
c52da5f7
RB
165922013-05-21 Richard Biener <rguenther@suse.de>
16593
16594 PR tree-optimization/57330
16595 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Properly
16596 preserve the call stmts fntype.
16597
7ec67e2a
RB
165982013-05-21 Richard Biener <rguenther@suse.de>
16599
16600 PR tree-optimization/57303
16601 * tree-ssa-sink.c (statement_sink_location): Improve killing
16602 stmt detection and properly handle self-assignments.
16603
b112d513
CB
166042013-05-21 Christian Bruel <christian.bruel@st.com>
16605
55805e54
YR
16606 * dwarf2out.c (multiple_reg_loc_descriptor): Use dbx_reg_number for
16607 spanning registers. LEAF_REG_REMAP is supported only for contiguous
b112d513
CB
16608 registers. Set register size out of the PARALLEL loop.
16609
14c2ec26
OE
166102013-05-20 Oleg Endo <olegendo@gcc.gnu.org>
16611
16612 PR target/56547
16613 * config/sh/sh.md (fmasf4): Remove empty constraints strings.
16614 (*fmasf4, *fmasf4_media): New insns.
16615
da734fa1
RS
166162013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
16617
16618 * config/mips/mips.h (BASE_INSN_LENGTH, NOP_INSN_LENGTH): New macros.
16619 * config/mips/mips.c (mips_symbol_insns, mips_address_insns)
16620 (mips_const_insns, mips_split_const_insns, mips_load_store_insns)
16621 (mips_idiv_insns): Update the comments to say that the returned
16622 instruction counts are in units of BASE_INSN_LENGTH.
16623 (mips_adjust_insn_length): Multiply the mips_load_label_num_insns
16624 by BASE_INSN_LENGTH rather than 4. Add the jump separately,
16625 using 2 rather than 4 as the length of indirect MIPS16 and
16626 microMIPS jumps. Use NOP_INSN_LENGTH rather than 4 as the
16627 length of a NOP. Don't divide MIPS16 lengths by 2.
16628 (mips16_split_long_branches): Assume a branch is long if the
16629 length is greater than 4 rather than 8.
16630 * config/mips/mips.md (length): Give MIPS16 lengths directly,
16631 rather than multiplying them by 2. Multiply instruction counts
16632 by BASE_INSN_LENGTH rather than 4.
16633 (*jump_mips16, tls_get_tp_mips16_<mode>)
16634 (*tls_get_tp_mips16_call_<mode>): Divide lengths by 2.
16635
13719e8b
RS
166362013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
16637
16638 * config/mips/mips.md (extended_mips16): Remove branch case.
16639 (length): Remove duplicated extended_mips16 test.
16640
c3850d14
RS
166412013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
16642
16643 * config/mips/t-sde: Don't build 64-bit microMIPS multilibs.
16644
8da2e059
RS
166452013-05-18 Richard Sandiford <rdsandiford@googlemail.com>
16646
16647 * recog.h (Recog_data): Rename to...
16648 (recog_data_d): ...this.
16649 (recog_data): Update accordingly.
16650 * recog.c (recog_data): Likewise.
16651 * reload.c (save_recog_data): Likewise.
16652 * config/picochip/picochip.c (picochip_saved_recog_data): Likewise.
16653 (picochip_save_recog_data, picochip_restore_recog_data): Likewise.
16654
2df013f3
JB
166552013-05-17 Julian Brown <julian@codesourcery.com>
16656
16657 * gcse.c (compute_ld_motion_mems): If a non-simple MEM is
16658 found in a REG_EQUAL note, invalidate it.
16659
371e77e3 166602013-05-17 Easwaran Raman <eraman@google.com>
933f507d
ER
16661
16662 * tree-ssa-reassoc.c (find_insert_point): New function.
16663 (insert_stmt_after): Likewise.
16664 (get_def_stmt): Likewise.
16665 (ensure_ops_are_available): Likewise.
16666 (not_dominated_by): Likewise.
16667 (rewrite_expr_tree): Do not move statements beyond what is
16668 necessary. Remove call to swap_ops_for_binary_stmt...
16669 (reassociate_bb): ... and move it here.
16670 (build_and_add_sum): Assign UIDs for new statements.
16671 (linearize_expr): Likewise.
16672 (do_reassoc): Renumber gimple statement UIDs.
16673
e01c7cca
JH
166742013-05-17 Jan Hubicka <jh@suse.cz>
16675
16676 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Resolve cross module
16677 weakrefs.
16678 * cgraph.c (dump_cgraph_node): Do not ice on unresolved alias.
e2420687
UB
16679 * cgraphunit.c (handle_alias_pairs): Store target of unresolved
16680 weakrefs.
e01c7cca
JH
16681 (output_weakrefs): Update.
16682
c3272a92
PCC
166832013-05-17 Po-Chun Chang <pchang9@cs.wisc.edu>
16684 Martin Jambor <mjambor@suse.cz>
16685
16686 PR middle-end/57276
16687 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Break when a
16688 value that corresponds to the given aggval is found in values vector.
16689
11c2aa39
UB
166902013-05-17 Uros Bizjak <ubizjak@gmail.com>
16691
16692 * config/i386/driver-i386.c (host_detect_local_cpu): Pass mmx, 3dnow,
16693 sse, sse2, sse3, ssse3 and sse4a flags to options.
16694
abecc8c6
DM
166952013-05-17 David Malcolm <dmalcolm@redhat.com>
16696
16697 * gengtype-state.c: (s_expr_writer): New class, to handle
16698 prettifying of output layout of s-expressions.
16699 (state_writer): New class, to write out gtype.state.
16700 (state_written_type_count): Move this variable into member data of
16701 state_writer.
16702 (s_expr_writer::s_expr_writer): New code: constructor for new class
16703 (state_writer::state_writer(): ditto
16704 (s_expr_writer::write_new_line): New function
16705 (s_expr_writer::write_any_indent): ditto
16706 (s_expr_writer::begin_s_expr): ditto
16707 (s_expr_writer::end_s_expr): ditto
16708 (write_state_fileloc): convert to method of state_writer...
16709 (state_writer:: write_state_fileloc): ...and use methods of
16710 s_expr_writer to write indentation into the gtype.state output file
16711 to visually represent the hierarchical structure of the list
16712 structures
16713 (write_state_fields): ditto, renaming to...
16714 (state_writer::write_state_fields)
16715 (write_state_a_string): ditto, renaming to...
16716 (state_writer::write_state_a_string)
16717 (write_state_string_option): ditto, renaming to...
16718 (state_writer::write_state_string_option)
16719 (write_state_type_option): ditto, renaming to...
16720 (state_writer::write_state_type_option)
16721 (write_state_nested_option): ditto, renaming to...
16722 (state_writer::write_state_nested_option)
16723 (write_state_option): ditto, renaming to...
16724 (state_writer::write_state_option)
16725 (write_state_options): ditto, renaming to...
16726 (state_writer::write_state_options)
16727 (write_state_lang_bitmap): ditto, renaming to...
16728 (state_writer::write_state_lang_bitmap)
16729 (write_state_version): ditto, renaming to...
16730 (state_writer::write_state_version)
16731 (write_state_scalar_type): ditto, renaming to...
16732 (state_writer::write_state_scalar_type)
16733 (write_state_string_type): ditto, renaming to...
16734 (state_writer::write_state_string_type)
16735 (write_state_undefined_type): ditto, renaming to...
16736 (state_writer::write_state_undefined_type)
16737 (write_state_struct_union_type): ditto, renaming to...
16738 (state_writer::write_state_struct_union_type)
16739 (write_state_struct_type): ditto, renaming to...
16740 (state_writer::write_state_struct_type)
16741 (write_state_user_struct_type): ditto, renaming to...
16742 (state_writer::write_state_user_struct_type)
16743 (write_state_lang_struct_type): ditto, renaming to...
16744 (state_writer::write_state_lang_struct_type)
16745 (write_state_param_struct_type): ditto, renaming to...
16746 (state_writer::write_state_param_struct_type)
16747 (write_state_pointer_type): ditto, renaming to...
16748 (state_writer::write_state_pointer_type)
16749 (write_state_array_type): ditto, renaming to...
16750 (state_writer::write_state_array_type)
16751 (write_state_gc_used): ditto, renaming to...
16752 (state_writer::write_state_gc_used)
16753 (write_state_common_type_content): ditto, renaming to...
16754 (state_writer::write_state_common_type_content)
16755 (write_state_type): ditto, renaming to...
16756 (state_writer::write_state_type)
16757 (write_state_pair_list): ditto, renaming to...
16758 (state_writer::write_state_pair_list)
16759 (write_state_pair): ditto, renaming to...
16760 (state_writer::write_state_pair)
16761 (write_state_typedefs): ditto, renaming to...
16762 (state_writer::write_state_typedefs)
16763 (write_state_structures): ditto, renaming to...
16764 (state_writer::write_state_structures)
16765 (write_state_param_structs): ditto, renaming to...
16766 (state_writer::write_state_param_structs)
16767 (write_state_variables): ditto, renaming to...
16768 (state_writer::write_state_variables)
16769 (write_state_srcdir): ditto, renaming to...
16770 (state_writer::write_state_srcdir)
16771 (write_state_files_list): ditto, renaming to...
16772 (state_writer::write_state_files_list)
16773 (write_state_languages): ditto, renaming to...
16774 (state_writer::write_state_languages)
16775 (write_state): create a state_writer instance and use it when
16776 writing out the state file
16777
d6545f29
MS
167782013-05-17 Mike Stump <mikestump@comcast.net>
16779
816a3f73 16780 PR rtl-optimization/57304
d6545f29
MS
16781 * web.c (union_match_dups): Ensure that DF_REF_LOC exists before
16782 accessing DF_REF_REAL_LOC.
16783
38c821cf
JJ
167842013-05-17 Jakub Jelinek <jakub@redhat.com>
16785
16786 PR rtl-optimization/57281
16787 PR rtl-optimization/57300
16788 * config/i386/i386.md (extendsidi2_1 dead reg splitter): Remove.
16789 (extendsidi2_1 peephole2s): Add instead 2 new peephole2s, that undo
16790 what the other splitter did if the registers are dead.
16791
2a293391
RB
167922013-05-17 Richard Biener <rguenther@suse.de>
16793
16794 * tree-ssa-alias.c (stmt_kills_ref_p_1): Properly compare
16795 MEM_REF offsets.
16796
17042d2b
JJ
167972013-05-17 Jakub Jelinek <jakub@redhat.com>
16798
16799 * gcc.c (SANITIZER_SPEC): Reject -fsanitize=address -fsanitize=thread
16800 linking.
16801
5b115c1f
MP
168022013-05-17 Marek Polacek <polacek@redhat.com>
16803
11c2aa39
UB
16804 * tree-ssa-strlen.c (handle_char_store): Don't invalidate cached
16805 length when doing non-zero store of storing '\0' to '\0'.
5b115c1f 16806
52d84413
JJ
168072013-05-17 Jakub Jelinek <jakub@redhat.com>
16808
68119618
JJ
16809 * tree-vect-patterns.c (vect_recog_rotate_pattern): For
16810 vect_external_def oprnd1 with loop_vinfo, try to emit
16811 optional cast, negation and and stmts on the loop preheader
16812 edge instead of into the pattern def seq.
16813
52d84413
JJ
16814 PR tree-optimization/57051
16815 * fold-const.c (const_binop) <case VEC_LSHIFT_EXPR,
16816 case VEC_RSHIFT_EXPR>: Fix BYTES_BIG_ENDIAN handling.
16817
17b962bd
NC
168182013-05-16 Nick Clifton <nickc@redhat.com>
16819
16820 * config/rl78/rl78.c (rl78_attribute_table): Add naked.
16821 (rl78_is_naked_func): New function.
56aefbf7
UB
16822 (rl78_expand_prologue): Skip prologue generation for naked functions.
16823 (rl78_expand_epilogue): Skip epilogue generation for naked functions.
17b962bd
NC
16824 * doc/extend.texi (naked): Add RL78 to the list of processors
16825 that supports this attribute.
16826
b1a0f84e
JL
168272013-05-16 Jeff Law <law@redhat.com>
16828
16829 * Makefile.in (tree-switch-conversion.o): Depend on $(OPTABS_H).
16830
af0e415b
UB
168312013-05-16 Uros Bizjak <ubizjak@gmail.com>
16832
16833 * config/i386/driver-i386.c (host_detect_local_cpu): Determine
16834 cache parameters using detect_caches_amd also for CYRIX,
16835 NSC and TM2 signatures.
16836
19db293a
UB
168372013-05-16 Uros Bizjak <ubizjak@gmail.com>
16838 Dzianis Kahanovich <mahatma@eu.by>
16839
16840 PR target/45359
16841 PR target/46396
16842 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
16843 VIA/Centaur processors and determine their cache parameters
16844 using detect_caches_amd.
16845
251a41b9
TJ
168462013-05-16 Teresa Johnson <tejohnson@google.com>
16847
16848 * cfgrtl.c (verify_hot_cold_block_grouping): Return err.
16849 (rtl_verify_edges): New function.
16850 (rtl_verify_bb_insns): Ditto.
16851 (rtl_verify_bb_pointers): Ditto.
16852 (rtl_verify_bb_insn_chain): Ditto.
16853 (rtl_verify_fallthru): Ditto.
16854 (rtl_verify_bb_layout): Ditto.
16855 (rtl_verify_flow_info_1): Outline checks into new functions.
16856 (rtl_verify_flow_info): Ditto.
16857
f14540b6
SE
168582013-05-16 Steve Ellcey <sellcey@imgtec.com>
16859
16860 * cfghooks.c (copy_bbs): Add update_dominance argument.
16861 * cfghooks.h (copy_bbs): Update prototype.
16862 * tree-cfg.c (gimple_duplicate_sese_region):
16863 Add update_dominance argument.
16864 * tree-flow.h (gimple_duplicate_sese_region): Update prototype.
16865 * tree-ssa-loop-ch.c (copy_loop_headers): Update
16866 gimple_duplicate_sese_region call.
16867 * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg):
16868 Update copy_bbs call.
16869 * cfgloopmanip.c (duplicate_loop_to_header_edge): Ditto.
16870 * trans-mem.c (ipa_uninstrument_transaction): Ditto.
16871
7e9a3abb
JJ
168722013-05-16 Jakub Jelinek <jakub@redhat.com>
16873
16874 * tree-vectorizer.h (NUM_PATTERNS): Increment.
16875 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
16876 vect_recog_rotate_pattern.
16877 (vect_recog_rotate_pattern): New function.
16878
427b248d
JM
168792013-05-16 Jason Merrill <jason@redhat.com>
16880
16881 * Makefile.in (LLINKER): New variable.
16882 (mostlyclean): Remove link mutex.
16883 * configure.ac: Handle --enable-link-mutex.
16884 * lock-and-run.sh: New script.
16885
b871e3d2
RR
168862013-05-16 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16887
16888 PR target/19599
16889 * config/arm/arm.c (arm_function_ok_for_sibcall): Add check
16890 for NULL decl.
16891
ce858126
RO
168922013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16893
16894 * reorg.c (link_cc0_insns): Wrap in #ifdef HAVE_cc0.
16895
798d3d04
GY
168962013-05-16 Greta Yorsh <Greta.Yorsh@arm.com>
16897
16898 * config/arm/arm-protos.h (gen_movmem_ldrd_strd): New declaration.
16899 * config/arm/arm.c (next_consecutive_mem): New function.
16900 (gen_movmem_ldrd_strd): Likewise.
16901 * config/arm/arm.md (movmemqi): Update condition and code.
16902 (unaligned_loaddi, unaligned_storedi): New patterns.
16903
0baddc45
RO
169042013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16905
16906 * config.gcc: Obsolete *-*-solaris2.9*.
16907 * doc/install.texi (Specific, *-*-solaris2*): Document it.
16908
aa9d5bcf
RB
169092013-05-16 Richard Biener <rguenther@suse.de>
16910
16911 * passes.c (init_optimization_passes): Move pass_parallelize_loops
16912 earlier, after GRAPHITE transforms and IV canonicalization.
16913
5a0f4dd3
JJ
169142013-05-16 Jakub Jelinek <jakub@redhat.com>
16915
16916 * omp-low.c (extract_omp_for_data): For collapsed loops,
16917 if at least one of the loops is known at compile time to
16918 iterate zero times, set count to 0.
16919 (expand_omp_regimplify_p): New function.
16920 (expand_omp_for_generic): For collapsed loops, if at least
16921 one of the loops isn't known to iterate at least once,
16922 add runtime check with setting count to 0.
16923 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
16924 For unsigned types if it isn't known at compile time that
16925 the loop will iterate at least once, add runtime check to bypass
16926 the whole loop if initial condition isn't true.
16927
e3753785
NS
169282013-05-16 Nathan Sidwell <nathan@codesourcery.com>
16929
16930 * varasm.c (default_use_anchors_for_symbol_p): Use decl_replaceable_p.
16931
43bb4dd1
MG
169322013-05-16 Marc Glisse <marc.glisse@inria.fr>
16933
16934 PR middle-end/57286
16935 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Disable some
16936 transformations to avoid an infinite loop.
16937
3571dde6
MP
169382013-05-16 Marek Polacek <polacek@redhat.com>
16939
16940 * tree-scalar-evolution.c (scev_const_prop): Add more dumps.
16941
b8b3f0ca
LE
169422013-05-15 Leif Ekblad <leif@rdos.net>
16943
16944 * config/i386/i386.c (ix86_decompose_address): Use
16945 DEFAULT_TLS_SEG_REG to access TLS segment register.
16946 * config/i386/i386.h (DEFAULT_TLS_SEG_REG): New define.
16947 * config/i386/rdos.h (DEFAULT_TLS_SEG_REG): Ditto.
16948 (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Ditto.
16949
e299a383
RS
169502013-05-15 Richard Sandiford <rdsandiford@googlemail.com>
16951
16952 PR target/57260
16953 * config/mips/mips.c (mips_function_ok_for_sibcall): Don't allow
16954 sibling calls to functions that would normally be lazily bound,
16955 unless $gp is call-clobbered.
16956
e7208ea3
UB
169572013-05-15 Uros Bizjak <ubizjak@gmail.com>
16958
19db293a 16959 * config/i386/i386.c (ix86_option_override_internal): Update
e7208ea3 16960 processor_alias_table for missing PTA_PRFCHW and PTA_FXSR flags. Add
5d280e2b
UB
16961 PTA_POPCNT to corei7 entry. Do not enable SSE prefetch on
16962 non-SSE 3dNow! targets. Enable TARGET_PRFCHW for TARGET_3DNOW targets.
e7208ea3
UB
16963 * config/i386/i386.md (prefetch): Enable for TARGET_PRFCHW instead
16964 of TARGET_3DNOW.
16965 (*prefetch_3dnow): Enable for TARGET_PRFCHW only.
16966
e7413f3d
AS
169672013-05-15 Andreas Schwab <schwab@suse.de>
16968
16969 * config/m68k/m68k.md (*rotlhi3_lowpart, *rotlqi3_lowpart): Name
16970 for rotlhi3+1 and rotlqi3+1, resp. Fix reference to non-existing
16971 third operand.
16972
ad4db775
TJ
169732013-05-15 Teresa Johnson <tejohnson@google.com>
16974
16975 * loop-unroll.c (report_unroll_peel): Check decision before
16976 emitting unroll/peel message.
16977
af205f67
TJ
169782013-05-15 Teresa Johnson <tejohnson@google.com>
16979
16980 * function.h (has_bb_partition): New rtl_data flag.
16981 (bb_reorder_complete): Ditto.
16982 * cfgcleanup.c (try_crossjump_to_edge): Check for has_bb_partition
16983 instead of flag_reorder_blocks_and_partition.
16984 * cfgrtl.c (verify_hot_cold_block_grouping): Moved from bb-reorder.c,
16985 with some enhancements.
16986 (rtl_verify_flow_info_1): Call verify_hot_cold_block_grouping.
16987 * bb-reorder.c (connect_traces): Check for has_bb_partition
16988 instead of flag_reorder_blocks_and_partition.
16989 (verify_hot_cold_block_grouping): Moved to cfgrtl.c.
16990 (reorder_basic_blocks): Set bb_reorder_complete flag, remove call to
16991 verify_hot_cold_block_grouping.
16992 (partition_hot_cold_basic_blocks): Set has_bb_partition.
16993
9adcfa3c
RR
169942013-05-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16995
16996 PR target/19599
16997 * config/arm/predicates.md (call_insn_operand): New predicate.
16998 * config/arm/constraints.md ("Cs", "Ss"): New constraints.
16999 * config/arm/arm.md (*call_insn, *call_value_insn): Match only
17000 if insn is not a tail call.
17001 (*sibcall_insn, *sibcall_value_insn): Adjust for tailcalling through
17002 registers.
17003 * config/arm/arm.h (enum reg_class): New caller save register class.
17004 (REG_CLASS_NAMES): Likewise.
17005 (REG_CLASS_CONTENTS): Likewise.
17006 * config/arm/arm.c (arm_function_ok_for_sibcall): Allow tailcalling
17007 without decls.
17008
ccb3ad87
RB
170092013-05-15 Richard Biener <rguenther@suse.de>
17010
17011 * tree-vect-loop.c (vect_transform_loop): Use MSG_NOTE instead
17012 of MSG_OPTIMIZED_LOCATIONS.
17013 * tree-vect-slp.c (vect_make_slp_decision): Likewise.
17014 (vect_slp_transform_bb): Indicate location in MSG_OPTIMIZED_LOCATIONS
17015 message.
17016 * tree-vectorizer.c (vectorize_loops): Use MSG_NOTE instead
17017 of MSG_OPTIMIZED_LOCATIONS.
17018 (execute_vect_slp): Likewise.
17019 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
17020 (vect_create_cond_for_alias_checks): Likewise.
17021 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Likewise.
17022 (vect_recog_widen_mult_pattern): Likewise.
17023 (vect_recog_widen_sum_pattern): Likewise.
17024 (vect_recog_over_widening_pattern): Likewise.
17025 (vect_recog_widen_shift_pattern): Likewise.
17026 (vect_recog_vector_vector_shift_pattern): Likewise.
17027 (vect_recog_divmod_pattern): Likewise.
17028 (vect_recog_mixed_size_cond_pattern): Likewise.
17029 (vect_recog_bool_pattern): Likewise.
17030 (vect_pattern_recog_1): Likewise.
17031
48b1474e
MJ
170322013-05-15 Martin Jambor <mjambor@suse.cz>
17033
17034 * ipa-prop.c (ipa_make_edge_direct_to_target): Redirect calls to
17035 non-functions to builtin_unreachable.
17036 * ipa-inline-transform.c (inline_call): Do not assert estimates were
17037 correct when new direct edges were discovered.
17038
9de04252
MJ
170392013-05-15 Martin Jambor <mjambor@suse.cz>
17040
17041 * ipa-prop.c (ipa_print_node_jump_functions): Print symbol order in
17042 header, print symbol order instead of node uid, print more information
17043 about indirect edge targets.
17044 (ipa_make_edge_direct_to_target): Print symbol order instead of node
17045 uids.
17046 (ipa_make_edge_direct_to_target): Likewise.
17047 (remove_described_reference): Likewise.
17048 (propagate_controlled_uses): Likewise.
17049 (ipa_print_node_params): Also print symbol order.
17050 (ipcp_transform_function): Print symbol order instead of node uids.
17051 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Likewise.
17052 (cgraph_get_create_real_symbol_node): Likewise.
17053 * ipa-cp.c (print_lattice): Likewise.
17054 (print_all_lattices): Likewise.
17055 (determine_versionability): Likewise.
17056 (initialize_node_lattices): Likewise.
17057 (estimate_local_effects): Likewise.
17058 (update_profiling_info): Likewise.
17059 (create_specialized_node): Likewise.
17060 (perhaps_add_new_callers): Likewise.
17061 (decide_about_value): Likewise.
17062 (decide_whether_version_node): Likewise.
17063 (identify_dead_nodes): Likewise.
17064 * ipa-inline-analysis.c (dump_inline_edge_summary): Likewise.
17065 (dump_inline_summary): Likewise.
17066 (estimate_node_size_and_time): Likewise.
17067 (inline_analyze_function): Likewise.
17068 * ipa-inline.c (report_inline_failed_reason): Likewise.
17069 (want_early_inline_function_p): Likewise.
17070 (edge_badness): Likewise.
17071 (update_edge_key): Likewise.
17072 (inline_small_functions): Likewise. Add dumping of order to two other
17073 dumps.
17074 * ipa-pure-const.c (pure_const_read_summary): Print symbol order
17075 instead of node uids.
17076 (propagate_pure_const): Likewise.
17077 (propagate_pure_const): Likewise.
17078 * ipa-utils.c (dump_cgraph_node_set): Likewise.
17079 * lto-cgraph.c (input_node): Explicitly specify we dump uid.
17080 * lto-symtab.c (lto_cgraph_replace_node): Print symbol order instead
17081 of node uids.
17082 * tree-pretty-print.c (dump_function_header): Likewise.
17083 * tree-sra.c (convert_callers_for_node): Dump in traditional format.
17084 Print symbol order instead of node uids.
17085
1dd03b91
AK
170862013-05-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17087
17088 * config/s390/s390.c (s390_register_move_cost): Don't impose the
17089 FPR<->GPR move cost penalty if ldgr/lgdr can be used.
17090
fdf6a7b9
RB
170912013-05-15 Richard Biener <rguenther@suse.de>
17092
17093 PR tree-optimization/57275
17094 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Fix
17095 return value for fail to do runtime alias checks for gather loads.
17096
2d6e4603
JH
170972013-05-15 Jan Hubicka <jh@suse.cz>
17098
17099 PR lto/57038
17100 PR lto/47375
e7208ea3
UB
17101 * lto-symtab.c (lto_symtab_symbol_p): Add external symbol;
17102 weakrefs are not external.
17103 (lto_symtab_merge_decls): Fix thinko when dealing with
17104 non-lto_symtab decls.
2d6e4603
JH
17105 (lto_symtab_merge_cgraph_nodes): Use lto_symtab_symbol_p.
17106 (lto_symtab_prevailing_decl): Get int sync with lto_symtab_symbol_p.
17107 * varpool.c (dump_varpool_node): Dump more flags.
17108
83f44b39
GG
171092013-05-15 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
17110
17111 * config/i386/i386.c (processor_alias_table): Add instruction
17112 FSGSBASE for AMD bdver3 architecture.
17113
2e55d062
JJ
171142013-05-14 Jakub Jelinek <jakub@redhat.com>
17115
17116 * tree.c (warn_deprecated_use): Print file:line using locus color.
17117 * diagnostic.c (diagnostic_report_current_module): Print file:line
17118 and file:line:column using locus color.
17119
0bfdb81e
MS
171202013-05-14 Mike Stump <mikestump@comcast.net>
17121
17122 * gdbinit.in: Add __null.
17123
a508ef22
MS
171242013-05-14 Mike Stump <mikestump@comcast.net>
17125
17126 * recog.h: Rename struct recog_data to Recog_data.
17127 * recog.c: Likewise.
17128 * reload.c (can_reload_into): Likewise.
17129 * config/picochip/picochip.c: Likewise.
17130
e7180acb
MS
171312013-05-14 Mike Stump <mikestump@comcast.net>
17132
17133 * web.c (union_match_dups): Also check DF_REF_REAL_LOC.
17134
61216c26
SB
171352013-05-14 Steven Bosscher <steven@gcc.gnu.org>
17136
fd6beed4
SB
17137 * resource.h (struct resources): Remove unch_memory member.
17138 (CLEAR_RESOURCE): Don't clear unch_memory.
17139 * resource.c (mark_referenced_resources): Don't set it.
17140 (mark_set_resources): Likewise.
17141 (mark_target_live_regs): Don't clear it.
17142 (init_resource_info): Likewise.
17143 * reorg.c (resource_conflicts_p): Don't compare it.
17144 (redundant_insn): Don't set it.
17145
61216c26
SB
17146 * rtl.h (next_label, skip_consecutive_labels, link_cc0_insns):
17147 Remove prototypes.
17148 * emit-rtl.c (next_label): Remove unused function.
17149 (skip_consecutive_labels, link_cc0_insns): Move to ...
17150 * reorg.c (skip_consecutive_labels, link_cc0_insns): ... here, the
17151 only place where these functions are used, and make them static.
17152
418d1b87
MG
171532013-05-14 Marc Glisse <marc.glisse@inria.fr>
17154
17155 * fold-const.c (fold_negate_expr): Handle vectors.
17156 (fold_truth_not_expr): Make it static.
17157 (fold_invert_truthvalue): New static function.
17158 (invert_truthvalue_loc): Handle vectors. Do not call
17159 fold_truth_not_expr directly.
17160 (fold_unary_loc) <BIT_NOT_EXPR>: Handle comparisons.
17161 <TRUTH_NOT_EXPR>: Do not cast to boolean.
17162 (fold_comparison): Handle vector constants.
17163 (fold_binary_loc) <TRUTH_XOR_EXPR>: Remove redundant code.
17164 (fold_ternary_loc) <VEC_COND_EXPR>: Adapt more COND_EXPR optimizations.
17165 * tree.h (fold_truth_not_expr): Remove declaration.
17166
fc21784d
JG
171672013-05-14 James Greenhalgh <james.greenhalgh@arm.com>
17168
17169 * config/aarch64/aarch64-simd.md
17170 (aarch64_vcond_internal<mode>): Rename to...
17171 (aarch64_vcond_internal<mode><mode>): ...This, for integer modes.
17172 (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): ...This for
17173 float modes. Clarify all iterator modes.
17174 (vcond<mode><mode>): Use new name for vcond expanders.
17175 (vcond<v_cmp_result><mode>): Likewise.
17176 (vcondu<mode><mode>: Likewise.
17177 * config/aarch64/iterators.md (VDQF_COND): New.
17178
d4c52634
MG
171792013-05-14 Marc Glisse <marc.glisse@inria.fr>
17180
17181 PR bootstrap/57266
17182 * fold-const.c (fold_binary_loc) <shift>: Use an unsigned
17183 variable for the shift amount. Check that we shift by non-negative
17184 amounts.
17185
2b261262
CLT
171862013-05-14 Chung-Lin Tang <cltang@codesourcery.com>
17187
17188 PR target/42017
17189 * config/arm/arm.h (EPILOGUE_USES): Only return true
17190 for LR_REGNUM after epilogue_completed.
17191
12211b99 171922013-05-14 Joern Rennecke <joern.rennecke@embecosm.com>
6e022d7b
JR
17193
17194 * config/avr/avr.c (avr_encode_section_info): Bail out if the type
e7208ea3 17195 is error_mark_node.
6e022d7b 17196
56cf7859
RO
171972013-05-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17198
17199 PR target/57261
17200 * configure.ac (gcc_cv_ld_as_needed): Disable before Solaris 11
17201 and Solaris 11+/x86 with gld.
17202 * configure: Regenerate.
17203
75776c6d
JJ
172042013-05-14 Jakub Jelinek <jakub@redhat.com>
17205
17206 * expmed.c (expand_shift_1): Canonicalize rotates by
17207 constant bitsize / 2 to bitsize - 1.
7f998021 17208 * simplify-rtx.c (simplify_binary_operation_1) <case ROTATE,
75776c6d
JJ
17209 case ROTATERT>: Likewise.
17210
17211 Revert:
17212 2013-05-10 Jakub Jelinek <jakub@redhat.com>
17213
17214 * config/i386/i386.md (rotateinv): New code attr.
17215 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
17216 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
17217 roll $31, %eax, etc.
17218
df35498a
RB
172192013-05-14 Richard Biener <rguenther@suse.de>
17220
17221 PR middle-end/57235
17222 * tree-eh.c (sink_clobbers): Give up for successors with
17223 multiple predecessors and no virtual uses.
17224
cc6e7ece
EB
172252013-05-14 Eric Botcazou <ebotcazou@adacore.com>
17226
17227 * config/sparc/sp64-elf.h (CPP_SUBTARGET_SPEC): Delete.
17228 * config/sparc/openbsd64.h (CPP_SUBTARGET_SPEC): Likewise.
17229
f778dd4d
JJ
172302013-05-14 Jakub Jelinek <jakub@redhat.com>
17231
17232 PR middle-end/57251
17233 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Handle
17234 the case when both op0 and op1 have VOIDmode.
17235
bad4df9b
KP
172362013-05-14 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
17237
17238 * config/rl78/rl78.md(mulsi3_g13): Add additional 'nop' required
17239 in multiply-accumulate mode.
17240
56f3e9ac
GW
172412013-05-13 Guozhi Wei <carrot@google.com>
17242
17243 * dwarf2asm.c (dw2_output_indirect_constant_1): Mark new decl STATIC.
17244
a3d7ab92
KT
172452013-05-13 Kai Tietz <ktietz@redhat.com>
17246
17247 PR target/56975
17248 * config/i386/cygming.h (TARGET_PECOFF): Define as true.
e7208ea3 17249 * config/i386/i386.h (TARGET_PECOFF): Define by default as false.
a3d7ab92 17250 (PIC_OFFSET_TABLE_REGNUM): Use TARGET_PECOFF.
e7208ea3 17251 * config/i386/i386.c (ix86_option_override_internal): Likewise.
a3d7ab92
KT
17252 (ix86_expand_prologue): Likewise.
17253 (ix86_expand_split_stack_prologue): Likewise.
17254 (legitimate_pic_address_disp_p): Likewise.
17255 (legitimize_pic_address): Likewise.
17256 (legitimize_tls_address): Likewise.
17257 (legitimize_pe_coff_symbol): Likewise.
17258 (output_pic_addr_const): Likewise.
17259 (construct_plt_address): Likewise.
17260 (ix86_expand_call): Likewise.
17261 (x86_output_mi_thunk): Likewise.
17262 (x86_function_profiler): Likewise.
17263
c59b7e28
SN
172642013-05-13 Sofiane Naci <sofiane.naci@arm.com>
17265
17266 * config/aarch64/aarch64-simd.md (aarch64_simd_mov<mode>): Group
17267 similar switch cases.
17268 (aarch64_simd_mov): Rename to aarch64_split_simd_mov. Update.
17269 (aarch64_simd_mov_to_<mode>low): Delete.
17270 (aarch64_simd_mov_to_<mode>high): Delete.
17271 (move_lo_quad_<mode>): Add w<-r alternative.
17272 (aarch64_simd_move_hi_quad_<mode>): Likewise.
17273 (aarch64_simd_mov_from_*): Update type attribute.
17274 * config/aarch64/aarch64.c (aarch64_split_simd_move): Refacror switch
17275 statement.
17276
5f28524a
JH
172772013-05-13 Jan Hubicka <jh@suse.cz>
17278
17279 * mode-switching.c (optimize_mode_switching): Set correct RTL profile.
17280 * config/i386/i386.c (ix86_compute_frame_layout,
e7208ea3
UB
17281 ix86_expand_epilogue, emit_i387_cw_initialization,
17282 ix86_expand_vector_move_misalign, ix86_fp_comparison_strategy,
17283 ix86_local_alignment): Fix use of size/speed predicates.
5f28524a 17284
ae6fa899
JJ
172852013-05-13 Jakub Jelinek <jakub@redhat.com>
17286
17287 PR tree-optimization/45216
17288 PR tree-optimization/57157
17289 * tree-ssa-forwprop.c (simplify_rotate): Only recognize
17290 the (-Y) & (B - 1) variant if OP is |.
17291 * expmed.c (expand_shift_1): For rotations by const0_rtx just
17292 return shifted. Use (-op1) & (prec - 1) as other_amount
17293 instead of prec - op1.
17294
4502fe8d
MJ
172952013-05-13 Martin Jambor <mjambor@suse.cz>
17296
17297 PR middle-end/42371
17298 * ipa-prop.h (IPA_UNDESCRIBED_USE): New macro.
17299 (ipa_constant_data): New type.
17300 (ipa_jump_func): Use ipa_constant_data to hold information about
17301 constant jump functions.
17302 (ipa_get_jf_constant): Adjust to jump function type changes.
17303 (ipa_get_jf_constant_rdesc): New function.
17304 (ipa_param_descriptor): New field controlled_uses.
17305 (ipa_get_controlled_uses): New function.
17306 (ipa_set_controlled_uses): Likewise.
17307 * ipa-ref.h (ipa_find_reference): Declare.
17308 * ipa-prop.c (ipa_cst_ref_desc): New type.
17309 (ipa_print_node_jump_functions_for_edge): Adjust for jump function type
17310 changes.
17311 (ipa_set_jf_constant): Likewise. Also create reference descriptions.
17312 New parameter cs. Adjust all callers.
17313 (ipa_analyze_params_uses): Detect uncontrolled and controlled uses.
17314 (remove_described_reference): New function.
17315 (jfunc_rdesc_usable): Likewise.
17316 (try_make_edge_direct_simple_call): Decrement controlled use count,
17317 attempt to remove reference if it hits zero.
17318 (combine_controlled_uses_counters): New function.
17319 (propagate_controlled_uses): Likewise.
17320 (ipa_propagate_indirect_call_infos): Call propagate_controlled_uses.
17321 (ipa_edge_duplication_hook): Duplicate reference descriptions.
17322 (ipa_print_node_params): Print described use counter.
17323 (ipa_write_jump_function): Adjust to jump function type changes.
17324 (ipa_read_jump_function): New parameter CS, pass it to
17325 ipa_set_jf_constant. Adjust caller.
17326 (ipa_write_node_info): Stream controlled use count
17327 (ipa_read_node_info): Likewise.
17328 * cgraph.c (cgraph_mark_address_taken_node): Bail out instead of
17329 asserting.
17330 * ipa-cp.c (ipcp_discover_new_direct_edges): Decrement controlled use
17331 count. Remove cloning-added reference if it reaches zero.
17332 * ipa-ref.c (ipa_find_reference): New function.
17333
0864bfc2
GG
173342013-05-13 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
17335
e7208ea3 17336 * config/i386/i386.c (processor_target_table): Modified default
0864bfc2
GG
17337 alignment values for AMD BD and BT architectures.
17338
640bfeb2
MG
173392013-05-13 Marc Glisse <marc.glisse@inria.fr>
17340
17341 * tree-vect-generic.c (uniform_vector_p): Move ...
17342 * tree.c (uniform_vector_p): ... here.
17343 * tree.h (uniform_vector_p): Declare it.
17344 * fold-const.c (fold_binary_loc) <shift>: Turn the second argument
17345 into a scalar.
17346
3a60f32b
JJ
173472013-05-13 Jakub Jelinek <jakub@redhat.com>
17348
198fe1bf
JJ
17349 PR tree-optimization/57230
17350 * tree-ssa-strlen.c (handle_char_store): Record length for
17351 array store from STRING_CST.
17352
3a60f32b
JJ
17353 PR tree-optimization/57230
17354 * tree-ssa-strlen.c (handle_char_store): Add missing integer_zerop
17355 check.
17356
566be57c
JR
173572013-05-12 Joern Rennecke <joern.rennecke@embecosm.com>
17358
17359 * config/epiphany/epiphany.c (epiphany_init): Check size of
17360 NUM_MODES_FOR_MODE_SWITCHING.
17361 (epiphany_expand_prologue):
17362 Remove CONFIG_REGNUM initial value handling code.
17363 (epiphany_optimize_mode_switching): Handle EPIPHANY_MSW_ENTITY_CONFIG.
17364 (epiphany_mode_needed, epiphany_mode_entry_exit): Likewise.
2710a27a 17365 (emit_set_fp_mode, epiphany_mode_after): Likewise.
566be57c
JR
17366 (epiphany_mode_needed) <Handle EPIPHANY_MSW_ENTITY_AND>:
17367 Don't return 1 for FP_MODE_NONE.
17368 * config/epiphany/epiphany.h (NUM_MODES_FOR_MODE_SWITCHING):
17369 Add value for EPIPHANY_MSW_ENTITY_CONFIG.
17370 (EPIPHANY_MSW_ENTITY_CONFIG, EPIPHANY_MSW_ENTITY_NUM): Define.
17371 * config/epiphany/epiphany.md (save_config): New pattern.
17372
0f2c2331
UB
173732013-05-12 Uros Bizjak <ubizjak@gmail.com>
17374
17375 * config/i386/i386.md (*zero_extendsidi2): Add *x->?r alternative.
17376
5b3f93c7
UB
173772013-05-10 Uros Bizjak <ubizjak@gmail.com>
17378
17379 * config/i386/i386.md (memory): Handle sseishft1.
17380 * config/i386/sse.md (*vec_extractv4si): Remove memory attribute.
17381 (*vec_extractv2di_1): Ditto.
17382
1f873f0e
VM
173832013-05-10 Vladimir Makarov <vmakarov@redhat.com>
17384
17385 * lra-assigns.c (find_hard_regno_for): Add 1 to the cost of call
17386 saved registers.
17387
341427fa 173882013-05-10 Sebastian Huber <sebastian.huber@embedded-brains.de>
d7de6455
SH
17389
17390 * config/arm/t-rtems-eabi: Remove mthumb/march=armv7 multilib.
17391 Add mthumb/march=armv7-a multilib.
17392 Add mthumb/march=armv7-r multilib.
17393 Add mthumb/march=armv7-a/mfpu=neon/mfloat-abi=hard multilib.
17394
9e69bdde
RC
173952013-05-10 Ralf Corsépius <ralf.corsepius@rtems.org>
17396
17397 * config/v850/t-rtems: Add more multilibs.
17398
9ff09a22
RB
173992013-05-10 Richard Biener <rguenther@suse.de>
17400
17401 PR tree-optimization/57214
17402 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling): Do
17403 not propagate from SSA names that occur in abnormal PHI nodes.
17404
a5e0cd1d
MG
174052013-05-10 Marc Glisse <marc.glisse@inria.fr>
17406
17407 * stor-layout.c (element_precision): New function.
17408 * machmode.h (element_precision): Declare it.
17409 * tree.c (build_minus_one_cst): New function.
17410 (element_precision): Likewise.
17411 * tree.h (build_minus_one_cst): Declare new function.
17412 (element_precision): Likewise.
17413 * fold-const.c (operand_equal_p): Use element_precision.
17414 (fold_binary_loc): Handle vector types.
17415 * convert.c (convert_to_integer): Use element_precision.
17416 * gimple.c (iterative_hash_canonical_type): Handle complex and vectors
17417 separately.
17418
cb2558bc
RS
174192013-05-10 Richard Sandiford <rdsandiford@googlemail.com>
17420
17421 * config/mips/mips-protos.h (m16_uimm3_b, m16_simm4_1, m16_nsimm4_1)
17422 (m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4, m16_simm8_1)
17423 (m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1, m16_uimm8_4)
17424 (m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
17425 * config/mips/mips.c (m16_check_op, m16_uimm3_b, m16_simm4_1)
17426 (m16_nsimm4_1, m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4)
17427 (m16_simm8_1, m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1)
17428 (m16_uimm8_4, m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
17429 * config/mips/constraints.md (Udb8, Usb5, Usb8, Usd8, Uub8, Uuw5)
17430 (Uuw8): New constraints.
17431 (Usb4): Move into alphabetical order.
17432 * config/mips/predicates.md (db8_operand, sb5_operand, sb8_operand)
17433 (sd8_operand, ub8_operand, uw8_operand): New predicates.
17434 * config/mips/mips.md (*xor<mode>3, *xor<mode>3_mips16): Name
17435 previously unnamed patterns.
17436 (*add<mode>3_mips16, *xor<mode>3_mips16, *<optab>si3_mips16)
17437 (*ashldi3_mips16, *ashrdi3_mips16, *lshrdi3_mips16)
17438 (*slt<u>_<GPR:mode><GPR2:mode>_mips16)
17439 (*sle<u>_<GPR:mode><GPR2:mode>_mips16): Use constraints instead
17440 of set_attr_alternative/if_then_else. Use extended_mips16 instead
17441 of specific lengths.
17442
cb3b8d33
JJ
174432013-05-10 Jakub Jelinek <jakub@redhat.com>
17444
6f93c008
JJ
17445 * config/i386/i386.md (rotateinv): New code attr.
17446 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
17447 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
17448 roll $31, %eax, etc.
17449
cb3b8d33
JJ
17450 PR tree-optimization/45216
17451 PR tree-optimization/57157
17452 * tree-ssa-forwprop.c (simplify_rotate): New function.
17453 (ssa_forward_propagate_and_combine): Call it.
17454
afb119be
RB
174552013-05-10 Richard Biener <rguenther@suse.de>
17456
17457 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
17458 disable peeling when we version for aliasing.
17459 (vector_alignment_reachable_p): Honor explicit user alignment.
17460 (vect_supportable_dr_alignment): Likewise.
17461 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Use
17462 STMT_VINFO_LOOP_PHI_EVOLUTION_PART instead of recomputing it.
17463 * tree-vect-loop.c (vect_transform_loop): First apply versioning,
17464 then peeling to arrange for the cost-model check to come first.
17465
01ae4861
AM
174662013-05-10 Alan Modra <amodra@gmail.com>
17467
17468 * configure.ac (HAVE_AS_TLS): Swap powerpc64 and powerpc cases.
17469 (HAVE_LD_LARGE_TOC): Don't mention AIX in help text.
17470 * configure: Regenerate.
17471
ebc9a431
AM
174722013-05-10 Alan Modra <amodra@gmail.com>
17473
17474 PR target/55033
17475 * varasm.c (default_elf_select_section): Move !DECL_P check..
17476 (get_named_section): ..to here before calling get_section_name.
17477 Adjust assertion.
17478 (default_section_type_flags): Add DECL_P check.
17479 * config/i386/winnt.c (i386_pe_section_type_flags): Likewise.
17480 * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags): Likewise.
17481
d4bca93c
JR
174822013-05-09 Joern Rennecke <joern.rennecke@embecosm.com>
17483
17484 * config/epiphany/epiphany.c (epiphany_expand_prologue):
17485 When using gen_stack_adjust_str with a register offset, add a
17486 REG_FRAME_RELATED_EXPR note.
17487
60ca9a65
UB
174882013-05-09 Uros Bizjak <ubizjak@gmail.com>
17489
17490 * config/i386/sse.md (*vec_extractv4si_0_zext): New pattern.
17491 (*vec_extractv4si_zext_mem): Ditto.
17492 (*vec_extractv2di): Add 0->x and x->x alternatives.
17493 * config/i386/mmx.md (*vec_extractv2si_zext_mem): New pattern.
17494 * config/i386/i386.md (*zero_extendsidi2): Add *Yj->?r alternative.
17495
a3409c02
JM
174962013-05-09 Jason Merrill <jason@redhat.com>
17497
0138d6b2
JM
17498 N3639 C++1y VLA support
17499 * gimplify.c (gimplify_vla_decl): Don't touch an existing
17500 DECL_VALUE_EXPR.
17501
a3409c02
JM
17502 * tree.c (build_constructor_va): New.
17503 * tree.h: Declare it.
17504
66e6b990
MJ
175052013-05-09 Martin Jambor <mjambor@suse.cz>
17506
17507 PR lto/57084
17508 * gimple-fold.c (canonicalize_constructor_val): Call
17509 cgraph_get_create_real_symbol_node instead of cgraph_get_create_node.
17510
64cfa6c0
JH
175112013-05-09 Jan Hubicka <jh@suse.cz>
17512 Richard Biener <rguenther@suse.de>
17513
17514 PR lto/54095
17515 * symtab.c (symtab_make_decl_local): Do not add private names.
17516
c3167b00
JH
175172013-05-09 Jan Hubicka <jh@suse.cz>
17518
17519 PR lto/54095
17520 * symtab.c (insert_to_assembler_name_hash): Handle clones.
17521 (unlink_from_assembler_name_hash): Likewise.
17522 (symtab_prevail_in_asm_name_hash, symtab_register_node,
17523 symtab_unregister_node, symtab_initialize_asm_name_hash,
17524 change_decl_assembler_name): Update.
17525
12dc6974
SN
175262013-05-09 Sofiane Naci <sofiane.naci@arm.com>
17527
17528 * config/aarch64/aarch64.md: New movtf split.
17529 (*movtf_aarch64): Update.
17530 (aarch64_movdi_tilow): Handle TF modes and rename to
17531 aarch64_movdi_<mode>low.
17532 (aarch64_movdi_tihigh): Handle TF modes and rename to
17533 aarch64_movdi_<mode>high
17534 (aarch64_movtihigh_di): Handle TF modes and rename to
17535 aarch64_mov<mode>high_di
17536 (aarch64_movtilow_di): Handle TF modes and rename to
17537 aarch64_mov<mode>low_di
17538 (aarch64_movtilow_tilow): Remove spurious whitespace.
17539 * config/aarch64/aarch64.c (aarch64_split_128bit_move): Handle TFmode
17540 splits.
17541 (aarch64_print_operand): Update.
17542
227eb343
AM
175432013-05-09 Alan Modra <amodra@gmail.com>
17544
17545 * configure.ac (HAVE_AS_TLS): Enable tests for powerpcle and
17546 powerpc64le.
17547 * configure: Regenerate.
17548
0b013847
UB
175492013-05-08 Uros Bizjak <ubizjak@gmail.com>
17550
17551 * config/i386/mmx.md (*vec_extract* splitters): Simplify post-reload
17552 splitter preparation statements.
17553 * config/i386/sse.md (*vec_extract* splitters): Ditto.
17554 (*avx_vperm_broadcast_<mode>): Use adjust_address instead of
17555 adjust_address_nv.
17556
1dc3d6e9
BS
175572013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17558
17559 * gimple-ssa-strength-reduction.c (count_candidates): Change
17560 return value to int.
17561 (analyze_candidates_and_replace): Change type of length to int.
17562
e61e7d28
UB
175632013-05-08 Uros Bizjak <ubizjak@gmail.com>
17564
17565 * config/i386/sse.md (PEXTR_MODE, PEXTR_MODEx): Remove.
17566 (*vec_extract<mode>): Use VI12_128 mode iterator.
17567 (*vec_extract<mode>_mem): Ditto.
17568 (*vec_extract*_mem splitters): Merge splitters using VI_128 mode
17569 attribute.
17570
4fbfcf44
DN
175712013-05-08 Diego Novillo <dnovillo@google.com>
17572
17573 PR bootstrap/54659
17574
17575 Revert:
4fbfcf44
DN
17576 2012-08-17 Diego Novillo <dnovillo@google.com>
17577
e61e7d28
UB
17578 PR bootstrap/54281
17579 * configure.ac: Add libintl.h to AC_CHECK_HEADERS list.
17580 * config.in: Regenerate.
17581 * configure: Regenerate.
17582 * intl.h: Always include libintl.h if HAVE_LIBINTL_H is set.
4fbfcf44 17583
702d8703
JH
175842013-05-08 Jan Hubicka <jh@suse.cz>
17585
17586 PR lto/54095
17587 * cgraph.c (cgraph_make_node_local_1): Se unique_name.
17588 * cgraph.h (symtab_node_base): Add unique_name.
17589 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
17590 input_overwrite_node, input_varpool_node): Stream unique_name.
17591 * cgraphclones.c (cgraph_create_virtual_clone,
17592 cgraph_function_versioning): Set unique_name.
17593 * ipa.c (function_and_variable_visibility): Set unique_name.
17594
8b28cf47
BS
175952013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17596
17597 * gimple-ssa-strength-reduction.c (find_phi_def): Revert former "fix."
17598 (alloc_cand_and_find_basis): Restrict conditional candidate
17599 processing to CAND_MULTs.
17600
e86074fd
JH
176012013-05-08 Jan Hubicka <jh@suse.cz>
17602
17603 PR lto/54095
17604 lto-symtab.c (lto_symtab_symbol_p): New function.
17605 (lto_symtab_resolve_can_prevail_p, lto_symtab_resolve_symbols,
17606 lto_symtab_resolve_symbols, lto_symtab_merge_decls_2,
17607 lto_symtab_merge_decls_1, lto_symtab_merge_cgraph_nodes_1):
17608 Skip static symbols.
17609
44398cbe
PC
176102013-05-08 Paolo Carlini <paolo.carlini@oracle.com>
17611
17612 PR tree-optimization/57200
17613 * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
17614 Only call inform if the preceding warning_at returns true.
17615
f6bc1c4a
HS
176162013-05-07 Han Shen <shenhan@google.com>
17617
17618 * cfgexpand.c (record_or_union_type_has_array_p): New function.
17619 (expand_used_vars): Add logic handling '-fstack-protector-strong'.
17620 * common.opt (fstack-protector-strong): New option.
17621 * doc/cpp.texi (__SSP_STRONG__): New builtin "__SSP_STRONG__".
17622 * doc/invoke.texi (Optimization Options): Document
17623 "-fstack-protector-strong".
17624 * gcc.c (LINK_SSP_SPEC): Add 'fstack-protector-strong'.
17625
4ffecb1f
SB
176262013-05-06 Steven Bosscher <steven@gcc.gnu.org>
17627
17628 * config/mips/mips.c (mips_machine_reorg2): Return 0.
17629
5a107a0f
VM
176302013-05-07 Vladimir Makarov <vmakarov@redhat.com>
17631
17632 * ira.c (update_equiv_regs): Add insn having equiv memory even if
17633 it is not lhs of the insn.
17634 (setup_reg_equiv): Remove insn having equiv memory which it is not
17635 lhs of the insn.
17636 * lra-constraints.c (process_address): Try to improve generation
17637 code for address base + disp.
17638 (lra_constraints): Make correct the code for checking insn setting
17639 up backward equivalence. Remove insn only if it is in the init
17640 insn list.
17641 * lra-eliminations.c (update_reg_eliminate): Change return value.
17642 (lra_eliminate): Use the result.
17643
3f5783ea
UB
176442013-05-07 Uros Bizjak <ubizjak@gmail.com>
17645
17646 * config/i386/sse.md (ssescalarnummask): New mode attribute.
17647 (PEXTR_MODE, PEXTR_MODEx): New mode iterators.
17648 (*vec_extract<mode>): Merge from *sse4_1_pextrb_memory and
17649 *sse4_1_pextrw_memory using PEXTR_MODE mode iterator. Handle
17650 register target operands.
17651 (*vec_extractv8hi_sse2): New pattern.
17652 (*vec_extractv16qi_zext): Rename from *sse4_1_pextrb_<mode>.
17653 (*vec_extractv8hi_zext): Rename from *sse2_pextrw_<mode>.
17654 (*vec_extract<mode>_mem): New insn and split pattern.
17655
8a5800b8
CL
176562013-05-07 Christophe Lyon <christophe.lyon@linaro.org>
17657
17658 * config/arm/arm.c (arm_asan_shadow_offset): New function.
17659 (TARGET_ASAN_SHADOW_OFFSET): Define.
17660 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Define.
17661 (LINUX_OR_ANDROID_CC): Add ASAN_CC1_SPEC.
17662
7bf55a70
BS
176632013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17664
17665 * gimple-ssa-strength-reduction.c (MAX_INCR_VEC_LEN): New constant.
17666 (incr_vec_index): Return -1 if increment not found.
17667 (create_add_on_incoming_edge): Assert if increment not found.
17668 (record_increment): Limit number of increments recorded.
17669 (all_phi_incrs_profitable): Return false if an increment not found.
17670 (replace_profitable_candidates): Don't process increments that were
17671 not recorded.
17672 (analyze_candidates_and_replace): Limit size of incr_vec.
17673
3f8825c0
RB
176742013-05-07 Richard Biener <rguenther@suse.de>
17675
17676 * calls.c (special_function_p): setjmp-like functions are leaf.
17677 * builtins.def (BUILT_IN_SETJMP): setjmp is leaf.
17678 * tree-inline.c (update_ssa_across_abnormal_edges): Remove assert.
17679
fd4842cd
SN
176802013-05-07 Sofiane Naci <sofiane.naci@arm.com>
17681
17682 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): call splitter.
17683 (aarch64_simd_mov<mode>): New expander.
17684 (aarch64_simd_mov_to_<mode>low): New instruction pattern.
17685 (aarch64_simd_mov_to_<mode>high): Likewise.
17686 (aarch64_simd_mov_from_<mode>low): Likewise.
17687 (aarch64_simd_mov_from_<mode>high): Likewise.
17688 (aarch64_dup_lane<mode>): Update.
17689 (aarch64_dup_lanedi): New instruction pattern.
17690 * config/aarch64/aarch64-protos.h (aarch64_split_simd_move): New prototype.
17691 * config/aarch64/aarch64.c (aarch64_split_simd_move): New function.
17692
a7a7d10e
BS
176932013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17694
17695 * gimple-ssa-strength-reduction.c (lazy_create_slsr_reg): Remove.
17696 (replace_mult_candidate): Remove unnecessary argument; remove
17697 unnecessary parameter from call to introduce_cast_before_cand.
17698 (replace_unconditional_candidate): Remove unnecessary parameter
17699 from call to replace_mult_candidate.
17700 (replace_conditional_candidate): Likewise.
17701 (insert_initializers): Use make_temp_ssa_name.
17702 (introduce_cast_before_cand): Remove unnecessary argument; use
17703 make_temp_ssa_name.
17704 (replace_one_candidate): Remove unnecessary argument; remove
17705 unnecessary parameter from calls to introduce_cast_before_cand.
17706 (replace_profitable_candidates): Remove unnecessary parameters
17707 from calls to replace_one_candidate.
17708
29105868
BS
177092013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17710
17711 * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
17712 phi def as possibly hiding a basis for a CAND_ADD whose operands
17713 have been commuted in the analysis.
17714 (alloc_cand_and_find_basis): Add parms to call to find_phi_def.
17715
4095f9fa
N
177162013-05-07 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
17717
17718 * config/aarch64/aarch64.md
17719 (cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): Restrict the
17720 shift value between 0-4.
17721
39e843e8
RB
177222013-05-07 Richard Biener <rguenther@suse.de>
17723
17724 * double-int.h (rshift): New overload.
17725 * double-int.c (rshift): New function.
17726 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Optimize.
17727 (create_reference_ops_from_ref): Remove.
17728 (vn_reference_insert): Use shared ops for constructing the
17729 reference and copy it.
17730
0a1a83cb
RB
177312013-05-07 Richard Biener <rguenther@suse.de>
17732
17733 PR middle-end/57190
17734 * tree-eh.c (sink_clobbers): Properly propagate
17735 SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
17736
43303d6f
JJ
177372013-05-07 Jakub Jelinek <jakub@redhat.com>
17738
ba7e83f8
JJ
17739 PR tree-optimization/57149
17740 * tree-ssa-uninit.c (uninit_undefined_value_p): New inline.
17741 (can_skip_redundant_opnd, compute_uninit_opnds_pos,
17742 collect_phi_def_edges, execute_late_warn_uninitialized): Use
17743 uninit_undefined_value_p instead of ssa_undefined_value_p.
17744
43303d6f
JJ
17745 PR debug/57184
17746 * expr.c (expand_expr_addr_expr_1): Handle COMPOUND_LITERAL_EXPR
17747 for modifier == EXPAND_INITIALIZER.
17748
14523c25
AB
177492013-05-07 Anton Blanchard <anton@samba.org>
17750
17751 * configure.ac (HAVE_LD_LARGE_TOC): Use correct linker emulation
17752 for powerpc64 little endian.
17753 * configure: Regenerate.
17754
cb7c8be9
GS
177552013-05-06 Graham Stott <grahams@btinternet.com>
17756
17757 * expmed.c (init_expmed_rtl): Remove unused fields reg_fld, plus_fld,
17758 mult_fld, sdiv_fld1, udiv_fld1, sdiv_32_fld1, smod_32_fld1,
17759 wide_mult_fld1, wide_lshr_fld1, shift_fld1, shift_mult_fld1,
17760 shift_add_fld1, shift_sub0_fld1, shift_sub1_fld1.
17761
177622013-05-06 Graham Stott <grahams@btinternet.com>
a8fd4225
GS
17763
17764 * gensupport.c (add_predicate_code): Also exclude SCRATCH from rtx
17765 codes which allow non-lvalues.
17766
9a0ee7b0
MG
177672013-05-06 Marc Glisse <marc.glisse@inria.fr>
17768
17769 * tree.c (integer_all_onesp) <COMPLEX_CST>: Test that both
17770 components are all 1s.
17771 (integer_minus_onep): New function.
17772 * tree.h (integer_minus_onep): Declare it.
17773 * fold-const.c (fold_binary_loc) <MULT_EXPR>: Test
17774 integer_minus_onep instead of integer_all_onesp.
17775
f2c17ea9
OE
177762013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
17777
17778 PR target/52933
17779 * config/sh/sh.md (*cmp_div0s_0, *cmp_div0s_1, *movsicc_div0s): Add
17780 variations of these patterns.
17781
f75e6a51
UB
177822013-05-06 Uros Bizjak <ubizjak@gmail.com>
17783
17784 * config/i386/i386.md (isa): Add x64_sse4 member.
17785 (enabled): Handle x64_sse4.
17786 (*movdi_internal): Add *x->?r alternative to emit pextrq $0,%xmm,%reg
17787 instruction for 64bit SSE4_1 targets. Update insn attributes.
17788 (*movsi_internal): Add *x->?r alternative to emit pextrd $0,%xmm,%reg
17789 instruction for SSE4_1 targets. Update insn attributes.
17790 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
17791 with *sse4_1_pextrd and *sse4_1_pextrq having const_0 selector.
17792 (*vec_extractv2di_1): Merge with *sse4_1_pextrq having
17793 const_1 selector.
17794 (*vec_extractv4si): Rename from *sse4_1_pextrd.
17795 (*vec_extractv4si_zext): Rename from *sse4_1_pextrd_zext.
17796 (*vec_extract<ssevecmodelower>_0 splitters): Merge splitters together.
17797
a986d468
OE
177982013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
17799
17800 PR target/57108
17801 * config/sh/sh.md (tstsi_t_zero_extract_eq): Use QIHISIDI mode iterator.
17802
382522cb
MK
178032013-05-06 Maxim Kuznetsov <maks.kuznetsov@gmail.com>
17804
17805 * final.c (do_assembler_dialects): Don't handle curly braces and
17806 vertical bar escaped by % as dialect delimiters.
17807 (output_asm_insn): Print curly braces and vertical bar if escaped
17808 by % and ASSEMBLER_DIALECT defined.
17809 * doc/tm.texi.in (ASSEMBLER_DIALECT): Document new standard escapes.
17810 * doc/tm.texi: Regenerated.
17811
fb0d5c60
SB
178122013-05-06 Steven Bosscher <steven@gcc.gnu.org>
17813
fb0d5c60
SB
17814 * config/mips/mips.c: Include tree-pass.h.
17815 (mips_reorg): Split in pre- and post-dbr_schedule parts.
17816 (mips_machine_reorg2): Move mips_reorg post-dbr_schedule parts here.
17817 (pass_mips_machine_reorg2): New machine specific pass.
17818 (insert_pass_mips_machine_reorg2): New pass plugin definition.
17819 (mips_option_override): Register the new pass.
17820 * rtl.h (cleanup_barriers): Remove prototype.
17821 (dbr_schedule): Likewise.
17822 * jump.c (cleanup_barriers): Make static.
17823 * reorg.c (dbr_schedule): Likewise.
17824
aa06a978
RB
178252013-05-06 Richard Biener <rguenther@suse.de>
17826
17827 PR tree-optimization/57185
17828 * tree-parloops.c (add_field_for_reduction): Handle anonymous
17829 SSA names properly.
17830
0b953bec
UB
178312013-05-06 Uros Bizjak <ubizjak@gmail.com>
17832
17833 PR target/57106
17834 * config/i386/i386.c (add_parameter_dependencies): Add dependence
17835 between "first_arg" and "insn", not "last" and "insn".
17836
28708525
WS
178372013-05-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17838
17839 * gimple-ssa-strength-reduction.c (slsr_process_phi): Re-enable.
17840 (find_candidates_in_block): Re-enable slsr_process_phi.
17841 (create_phi_basis): Fix double counting of candidate adjustment.
17842
0107dca2
RB
178432013-05-06 Richard Biener <rguenther@suse.de>
17844
17845 PR middle-end/57147
17846 * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): If
17847 the edge is also fallthru, preserve it and just clear the
17848 abnormal flag.
17849 * tree-cfgcleanup.c (remove_fallthru_edge): If the edge is
17850 also complex, preserve that and just clear the fallthru flag.
17851 * tree-inline.c (update_ssa_across_abnormal_edges): Also
17852 update virtual operands.
17853
470d4d13
AM
178542013-05-06 Alan Modra <amodra@gmail.com>
17855
17856 * config/rs6000/linux.h (DEFAULT_ASM_ENDIAN): Define.
17857 (LINK_OS_LINUX_EMUL): Use ENDIAN_SELECT.
17858 * config/rs6000/linux64.h (DEFAULT_ASM_ENDIAN): Define.
17859 * config/rs6000/sysv4le.h (DEFAULT_ASM_ENDIAN): Define.
17860 (LINK_TARGET_SPEC): Use ENDIAN_SELECT.
17861 * config/rs6000/sysv4.h (DEFAULT_ASM_ENDIAN): Define as -mbig.
17862
8f1dbf8d
AM
178632013-05-06 Alan Modra <amodra@gmail.com>
17864
17865 * config/rs6000/sysv4.h (ENDIAN_SELECT): Define, extracted from
17866 (ASM_SPEC): ..here. Emit DEFAULT_ASM_ENDIAN too.
17867 (DEFAULT_ASM_ENDIAN): Define.
17868 (CC1_SPEC, LINK_TARGET_SPEC): Use ENDIAN_SELECT.
17869 * config/rs6000/linux64.h (ASM_SPEC32): Remove endian options.
17870 Update -K PIC clause from sysv4.h.
17871 (ASM_SPEC_COMMON): Use ENDIAN_SELECT.
17872 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Likewise.
17873
54890767
AM
178742013-05-06 Alan Modra <amodra@gmail.com>
17875
17876 * config/rs6000/rs6000.md (bswapdi 2nd splitter): Don't swap words
17877 twice for little-endian.
17878 (ashrdi3_no_power, ashrdi3): Support little-endian.
17879
2353515d
OE
178802013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
17881
17882 PR target/55303
17883 * config/sh/sh.c (sh_rtx_costs): Handle SMIN and SMAX cases.
17884 * config/sh/sh.md (*clips, uminsi3, *clipu, clipu_one): New insns and
17885 related expanders.
17886 * config/sh/iterators.md (SMIN_SMAX): New code iterator.
17887 * config/sh/predicates.md (arith_reg_or_0_or_1_operand,
17888 clips_min_const_int, clips_max_const_int, clipu_max_const_int):
17889 New predicates.
17890
33e67557
SB
178912013-05-05 Steven Bosscher <steven@gcc.gnu.org>
17892 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17893
17894 * config.gcc (hppa*-*-*): Remove MASK_BIG_SWITCH from CPU default.
17895 * config/pa/pa.opt: Make mbig-switch a no-op.
17896 * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_BIG_SWITCH.
17897 (CASE_VECTOR_MODE): Always return SImode.
17898 (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove code
17899 for the !TARGET_BIG_SWITCH case.
17900 * config/pa/pa-linux.h: Likewise.
17901 * config/pa/pa-openbsd.h: Likewise.
17902 * config/pa/pa-hpux.h: Define TARGET_DEFAULT to 0.
17903 * config/pa/pa.md (short_jump): Remove define_insn.
17904 (casesi): Remove code for the !TARGET_BIG_SWITCH case.
17905 (casesi0): Remove define_insn.
17906 (type): Remove btable_branch.
17907 (pa_combine_type): Likewise.
17908 (in_nullified_branch_delay): Likewise.
17909 (in_call_delay): Likewise.
17910 (define_delay): Likewise.
17911 (define_insn_reservation "Z3"): Likewise.
17912 (define_insn_reservation "Z4"): Likewise.
17913 * config/pa/pa.c (pa_reorg): Remove code for !TARGET_BIG_SWITCH.
17914 (pa_adjust_insn_length): Remove adjustment for btable branches.
17915 * doc/invoke.texi (HPPA Options): Delete documentation for mbig-switch
17916 and mno-big-switch
17917
3095685e
UB
179182013-05-05 Uros Bizjak <ubizjak@gmail.com>
17919
17920 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
17921 from sse2_stored and *sse2_storeq_rex64 using SWI48 mode iterator.
17922 Add m->r,x alternatives.
17923 (*vec_extract<ssevecmodelower>_0 splitters): Merge V2DI and V4SI
17924 splitters using SWI48x mode iterator.
17925 (*vec_extract_v2di_0_sse): Rename from *sse2_storeq. Disable for
17926 TARGET_64BIT. Add m->x alternative.
17927 (*vec_extractv4si_mem): Rename from *vec_ext_v4si_mem.
17928 Add o->x alternative. Enable for TARGET_SSE.
17929 (sse_storeq): Remove expander.
17930 (*vec_extractv2di_1): Enable for TARGET_SSE. Split alternatives
17931 with memory input operand.
17932 (*vec_extractv2di_1 splitter): New.
17933 (*vec_extractv4sf_mem): Rename from *vec_extract_v4sf_mem.
17934 * config/i386/i386.md (ssevecmodelower): New mode attribute.
17935
4b36ae28
SB
179362013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
17937
17938 * config/rs6000/rs6000.c (INT_P): Reformat. Delete obsolete comment.
17939 (INT_LOWPART): Delete.
17940 (extract_MB): Adjust.
17941 (extract_ME): Adjust.
17942 (print_operand): Adjust.
17943
da226db2
SB
179442013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
17945
17946 * config/rs6000/predicates.md (reg_or_add_cint_operand,
17947 reg_or_sub_cint_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
17948 (reg_or_logical_cint_operand, easy_fp_constant,
17949 logical_const_operand): Delete "CONST_DOUBLE" case.
17950 * config/rs6000/rs6000.c (num_insns_constant_wide): Delete
17951 "HOST_BITS_PER_WIDE_INT == 64" test.
3095685e 17952 (num_insns_constant): Ditto. Delete CONST_DOUBLE DImode/VOIDmode case.
da226db2
SB
17953 (build_mask64_2_operands): Delete "HOST_BITS_PER_WIDE_INT >= 64" test.
17954 (rs6000_emit_set_const): Delete CONST_DOUBLE case.
17955 (rs6000_emit_set_long_const): Delete "HOST_BITS_PER_WIDE_INT >= 64"
17956 test.
17957 (includes_rldic_lshift_p, includes_rldicr_lshift_p): Delete
17958 CONST_DOUBLE DImode/VOIDmode case.
17959 (INT_P, INT_LOWPART): Delete CONST_DOUBLE case.
17960 (print_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case. Delete
17961 CONST_DOUBLE VOIDmode case.
17962 (output_toc): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
17963 (rs6000_rtx_costs): Delete CONST_DOUBLE DImode/VOIDmode case.
17964 * config/rs6000/rs6000.md (iordi3, xordi3, splitter for these):
17965 Delete CONST_DOUBLE case.
17966 (splitters for mov FMOVE64 const_double): Delete
17967 "HOST_BITS_PER_WIDE_INT == 32" case. Delete
17968 "HOST_BITS_PER_WIDE_INT >= 64" test.
17969 (splitter for mov DI const_int): Delete "HOST_BITS_PER_WIDE_INT == 32"
17970 case.
17971 (mov DI const_double): Delete.
17972
40de22d6
JJ
179732013-05-04 Jakub Jelinek <jakub@redhat.com>
17974
17975 * combine.c (combine_simplify_rtx) <case SUBREG>: If nonzero_bits
17976 on op shows all bits zero in mode of a lowpart subreg, return zero.
17977
5ec6aff2
MM
179782013-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
17979
17980 PR target/57150
17981 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Use DFmode
17982 to save TFmode registers and DImode to save TImode registers for
17983 caller save operations.
17984 (HARD_REGNO_CALL_PART_CLOBBERED): TFmode and TDmode do not need to
17985 mark being partially clobbered since they only use the first
17986 double word.
17987
17988 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): TFmode
17989 and TDmode only use the upper 64-bits of each VSX register.
17990
2cefad90
BS
179912013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17992
17993 * gimple-ssa-strength-reduction.c (slsr_process_phi): Disable.
17994 (find_candidates_in_block): Disable slsr_process_phi.
17995
d6d7eee1
GW
179962013-05-03 Guozhi Wei <carrot@google.com>
17997
17998 * coverage.c (coverage_obj_init): Move the construction of gcov
3095685e
UB
17999 constructor to ...
18000 (build_init_ctor): ... here.
d6d7eee1 18001
9b92d12b
BS
180022013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18003
18004 * gimple-ssa-strength-reduction.c (cand_kind): Add CAND_PHI.
18005 (slsr_cand_d): Redefine def_phi.
18006 (stride_status, phi_adjust_status, count_phis_status): New enums.
18007 (find_phi_def): New.
18008 (find_basis_for_base_expr): New.
18009 (find_basis_for_candidate): Handle hidden bases.
18010 (alloc_cand_and_find_basis): Handle phi candidates.
18011 (slsr_process_phi): New.
18012 (create_mul_ssa_cand): Exclude phi base candidates; use integer_onep.
18013 (create_mul_imm_cand): Likewise.
18014 (create_add_ssa_cand): Exclude phi base candidates.
18015 (create_add_imm_cand): Likewise.
18016 (slsr_process_cast): Likewise.
18017 (slsr_process_copy): Likewise.
18018 (find_candidates_in_block): Handle phi candidates.
18019 (dump_candidate): Likewise.
18020 (unconditional_cands): Delete.
18021 (unconditional_cands_with_known_stride_p): Delete.
18022 (phi_dependent_cand_p): New.
18023 (cand_increment): Handle phi-dependent candidates.
18024 (replace_dependent): Delete.
18025 (replace_mult_candidate): New.
18026 (replace_unconditional_candidate): New.
18027 (incr_vec_index): Move to avoid forward reference.
18028 (create_add_on_incoming_edge): New.
18029 (create_phi_basis): New.
18030 (replace_dependents): Delete.
18031 (replace_conditional_candidate): New.
18032 (phi_add_costs): New.
18033 (replace_uncond_cands_and_profitable_phis): New.
18034 (record_increment): Handle phi adjustments.
18035 (record_phi_increments): New.
18036 (record_increments): Handle phi adjustments.
18037 (phi_incr_cost): New.
18038 (lowest_cost_path): Handle phis.
18039 (total_savings): Likewise.
18040 (analyze_increments): Likewise.
18041 (ncd_with_phi): New.
18042 (ncd_of_cand_and_phis): New.
18043 (nearest_common_dominator_for_cands): Handle phi increments.
18044 (all_phi_incrs_profitable): New.
18045 (replace_profitable_candidates): Handle phi-dependent candidates.
18046 (analyze_candidates_and_replace): Likewise.
18047
68f073d4
TJ
180482013-05-03 Teresa Johnson <tejohnson@google.com>
18049
18050 PR bootstrap/57154
18051 * sched-rgn.c (compute_dom_prob_ps): Ensure accumulated probabilities
18052 do not exceed REG_BR_PROB_BASE.
18053
a4ee7cb9
JL
180542013-05-03 Jeff Law <law@redhat.com>
18055
ade67f70 18056 PR tree-optimization/57144
a4ee7cb9
JL
18057 * tree-vrp.c (simplify_cond_using_ranges): Verify the constant
18058 operand of the condition will bit into the new type when eliminating
18059 a cast feeding a condition.
18060
47954c4e
JJ
180612013-05-03 Jakub Jelinek <jakub@redhat.com>
18062
18063 PR rtl-optimization/57130
3095685e
UB
18064 * combine.c (make_compound_operation) <case SUBREG>: Pass SET instead
18065 of COMPARE as in_code to the recursive call if needed.
47954c4e 18066
3c21604f
UB
180672013-05-03 Uros Bizjak <ubizjak@gmail.com>
18068
18069 * config/i386/i386.md (isa): Add x64_sse4_noavx and x64_avx members.
18070 (enabled): Handle new members.
18071 * config/i386/sse.md (*vec_concatv2si): Merge from
18072 *vec_concatv2si_sse2 and vec_concatv2si_sse.
18073 (vec_concatv2di): Merge with *vec_concatv2di_rex64.
18074
12211b99 180752013-05-03 Joern Rennecke <joern.rennecke@embecosm.com>
95c03b36
JR
18076
18077 PR tree-optimization/57027
18078 * tree-ssa-math-opts.c (convert_mult_to_fma): When checking
18079 for fnms opportunity, check we got the prerequisite kind
18080 of tree / gimple before using accessor functions.
18081
07bfc9ec
RB
180822013-05-03 Richard Biener <rguenther@suse.de>
18083
18084 * double-int.h (lshift): New overload without precision
18085 and arith argument.
18086 (operator *=, operator +=, operator -=): Move ...
18087 * double-int.c (operator *=, operator +=, operator -=): ... here
18088 and implement more efficiently.
18089 (mul_double_with_sign): Remove.
18090 (lshift_double): Adjust to take unsinged shift argument, push
18091 dispatching code to callers.
18092 (mul_double_wide_with_sign): Add early out for callers that
18093 are not interested in high parts or overflow.
18094 (lshift): New function.
18095 (lshift, rshift, alshift, arshift, llshift, lrshift): Add
18096 dispatch code here.
18097 (lrotate, rrotate): Use logical shifts.
18098 * expr.c (get_inner_reference): Use lshift.
18099 * fixed-value.c (do_fixed_divide): Likewise.
18100 * tree-dfa.c (get_ref_base_and_extent): Likewise.
18101 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
18102 (indirect_refs_may_alias_p): Likewise.
18103 (stmt_kills_ref_p_1): Likewise.
18104
7769bb64
VP
181052013-05-03 Vidya Praveen <vidyapraveen@arm.com>
18106
18107 * config/aarch64/aarch64-simd.md (simd_fabd): Correct the description.
18108
1d0c8e5c
VP
181092013-05-03 Vidya Praveen <vidyapraveen@arm.com>
18110
18111 * config/aarch64/aarch64-simd.md (*fabd_scalar<mode>3): Support
18112 scalar form of FABD instruction.
18113
f15feaf9
VM
181142013-05-02 Vladimir Makarov <vmakarov@redhat.com>
18115
18116 * lra-constraints.c (process_alt_operands): Add checking alt
18117 number to choose the best alternative.
18118
d90e76d4
RB
181192013-05-02 Richard Biener <rguenther@suse.de>
18120
18121 * tree-eh.c (cleanup_empty_eh_merge_phis): Remove rename_virts
18122 bitmap and its handling.
18123 (pass_cleanup_eh): Set todo_flags_finish to TODO_verify_ssa.
18124
9f8e7a96
RB
181252013-05-02 Richard Biener <rguenther@suse.de>
18126
18127 PR middle-end/57140
18128 * tree-inline.c (copy_loops): Properly handle removed loops.
18129 (copy_cfg_body): Mark destination loops for fixup if source
18130 loops needed fixup.
18131
f3a81b39
GY
181322013-05-02 Greta Yorsh <Greta.Yorsh@arm.com>
18133
18134 PR target/56732
18135 * config/arm/arm.c (arm_expand_epilogue): Check really_return before
18136 generating simple_return for naked functions.
18137
7b920a9a
MJ
181382013-05-02 Martin Jambor <mjambor@suse.cz>
18139
18140 PR middle-end/56988
18141 * ipa-prop.h (ipa_agg_replacement_value): New flag by_ref.
18142 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also check that by_ref
18143 flags match.
18144 (find_aggregate_values_for_callers_subset): Fill in the by_ref flag of
18145 ipa_agg_replacement_value structures.
18146 (known_aggs_to_agg_replacement_list): Likewise.
18147 * ipa-prop.c (write_agg_replacement_chain): Stream by_ref flag.
18148 (read_agg_replacement_chain): Likewise.
18149 (ipcp_transform_function): Also check that by_ref flags match.
18150
2c41c19d
RB
181512013-05-02 Richard Biener <rguenther@suse.de>
18152
18153 * graphds.h (struct graph): Add obstack member.
18154 * graphds.c (new_graph): Initialize obstack and allocate
18155 vertices from it.
18156 (add_edge): Allocate edge from the obstack.
3c21604f 18157 (free_graph): Free the obstack instead of all edges and vertices.
2c41c19d 18158
8b47039c
TJ
181592013-05-02 Teresa Johnson <tejohnson@google.com>
18160
18161 * loop-unswitch.c (unswitch_loop): Use helper routines with rounding
18162 divides.
18163 * cfg.c (update_bb_profile_for_threading): Ditto.
18164 * tree-inline.c (copy_bb): Ditto.
18165 (copy_edges_for_bb): Ditto.
18166 (initialize_cfun): Ditto.
18167 (copy_cfg_body): Ditto.
18168 (expand_call_inline): Ditto.
18169 * ipa-inline-analysis.c (estimate_edge_size_and_time): Ditto.
18170 (estimate_node_size_and_time): Ditto.
18171 (inline_merge_summary): Ditto.
18172 * cgraphclones.c (cgraph_clone_edge): Ditto.
18173 (cgraph_clone_node): Ditto.
18174 * sched-rgn.c (compute_dom_prob_ps): Ditto.
18175 (compute_trg_info): Ditto.
18176
da65928c
IB
181772013-05-02 Ian Bolton <ian.bolton@arm.com>
18178
18179 * config/aarch64/aarch64.md (movsi_aarch64): Only allow to/from
18180 S reg when fp attribute set.
18181 (movdi_aarch64): Only allow to/from D reg when fp attribute set.
18182
add3c965
IB
181832013-05-02 Ian Bolton <ian.bolton@arm.com>
18184
18185 * config/aarch64/aarch64.md (*and_one_cmpl<mode>3_compare0):
18186 New pattern.
18187 (*and_one_cmplsi3_compare0_uxtw): Likewise.
18188 (*and_one_cmpl_<SHIFT:optab><mode>3_compare0): Likewise.
18189 (*and_one_cmpl_<SHIFT:optab>si3_compare0_uxtw): Likewise.
18190
fdd43ac4
RB
181912013-05-02 Richard Biener <rguenther@suse.de>
18192
18193 * tree-scalar-evolution.c (scev_info_hasher): Remove.
18194 (struct instantiate_cache_entry): New type.
18195 (struct instantiate_cache_entry_hasher): New hashtable descriptor.
18196 (struct instantiate_cache_type): New type.
18197 (set_instantiated_value, get_instantiated_value): Remove.
18198 (get_instantiated_value_entry): New function.
18199 (instantiate_scev_name): Use the new cache and adjust.
18200 (instantiate_scev_poly): Adjust.
18201 (instantiate_scev_binary): Likewise.
18202 (instantiate_array_ref): Likewise.
18203 (instantiate_scev_convert): Likewise.
18204 (instantiate_scev_not): Likewise.
18205 (instantiate_scev_3): Likewise.
18206 (instantiate_scev_2): Likewise.
18207 (instantiate_scev_r): Likewise.
18208 (instantiate_scev): Likewise.
18209 (resolve_mixers): Likewise.
18210
36ff9dfb
VM
182112013-05-01 Vladimir Makarov <vmakarov@redhat.com>
18212
18213 PR target/57091
18214 * lra-constraints.c (best_small_class_operands_num): Remove.
18215 (process_alt_operands): Remove small_class_operands_num. Take
18216 small classes operands into losers and only if the operand is not
18217 matched. Modify debugging output.
18218 (curr_insn_transform): Remove best_small_class_operands_num.
18219 Print insn name.
18220
36054fab
JG
182212013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18222
18223 * config/aarch64/aarch64-builtins.c
18224 (aarch64_gimple_fold_builtin.c): Fold more modes for reduc_splus_.
18225 * config/aarch64/aarch64-simd-builtins.def
18226 (reduc_splus_): Add new modes.
18227 (reduc_uplus_): New.
18228 * config/aarch64/aarch64-simd.md (aarch64_addvv4sf): Remove.
18229 (reduc_uplus_v4sf): Likewise.
18230 (reduc_splus_v4sf): Likewise.
18231 (aarch64_addv<mode>): Likewise.
18232 (reduc_uplus_<mode>): Likewise.
18233 (reduc_splus_<mode>): Likewise.
18234 (aarch64_addvv2di): Likewise.
18235 (reduc_uplus_v2di): Likewise.
18236 (reduc_splus_v2di): Likewise.
18237 (aarch64_addvv2si): Likewise.
18238 (reduc_uplus_v2si): Likewise.
18239 (reduc_splus_v2si): Likewise.
18240 (reduc_<sur>plus_<mode>): New.
18241 (reduc_<sur>plus_v2di): Likewise.
18242 (reduc_<sur>plus_v2si): Likewise.
18243 (reduc_<sur>plus_v4sf): Likewise.
18244 (aarch64_addpv4sf): Likewise.
18245 * config/aarch64/arm_neon.h
18246 (vaddv<q>_<s,u,f><8, 16, 32, 64): Rewrite using builtins.
18247 * config/aarch64/iterators.md (unspec): Remove UNSPEC_ADDV,
18248 add UNSPEC_SADDV, UNSPEC_UADDV.
18249 (SUADDV): New.
18250 (sur): Add UNSPEC_SADDV, UNSPEC_UADDV.
18251
6dce23a8
JG
182522013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18253
18254 * config/aarch64/arm_neon.h
18255 (v<max,min><nm><q><v>_<sfu><8, 16, 32, 64>): Rewrite using builtins.
18256
1598945b
JG
182572013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18258
18259 * config/aarch64/aarch64-builtins
18260 (aarch64_gimple_fold_builtin): Fold reduc_<su><maxmin>_ builtins.
18261
998eaf97
JG
182622013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18263
18264 * config/aarch64/aarch64-simd-builtins.def
18265 (reduc_smax_): New.
18266 (reduc_smin_): Likewise.
18267 (reduc_umax_): Likewise.
18268 (reduc_umin_): Likewise.
18269 (reduc_smax_nan_): Likewise.
18270 (reduc_smin_nan_): Likewise.
18271 (fmax): Remove.
18272 (fmin): Likewise.
18273 (smax): Update for V2SF, V4SF and V2DF modes.
18274 (smin): Likewise.
18275 (smax_nan): New.
18276 (smin_nan): Likewise.
18277 * config/aarch64/aarch64-simd.md (<maxmin><mode>3): Rename to...
18278 (<su><maxmin><mode>3): ...This, refactor.
18279 (s<maxmin><mode>3): New.
18280 (<maxmin_uns><mode>3): Likewise.
18281 (reduc_<maxmin_uns>_<mode>): Refactor.
18282 (reduc_<maxmin_uns>_v4sf): Likewise.
18283 (reduc_<maxmin_uns>_v2si): Likewise.
18284 (aarch64_<fmaxmin><mode>: Remove.
18285 * config/aarch64/arm_neon.h (vmax<q>_f<32,64>): Rewrite to use
18286 new builtin names.
18287 (vmin<q>_f<32,64>): Likewise.
18288 * config/iterators.md (unspec): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
18289 (FMAXMIN): New.
18290 (su): Add mappings for smax, smin, umax, umin.
18291 (maxmin): New.
18292 (FMAXMINV): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
18293 (FMAXMIN): Rename as...
18294 (FMAXMIN_UNS): ...This.
18295 (maxminv): Remove.
18296 (fmaxminv): Likewise.
18297 (fmaxmin): Likewise.
18298 (maxmin_uns): New.
18299 (maxmin_uns_op): Likewise.
18300
bd11644e
JG
183012013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18302
18303 * config/aarch64/arm_neon.h
18304 (vac<ge, gt><sd>_f<32, 64>): Rename to...
18305 (vca<ge, gt><sd>_f<32, 64>): ...this, reimpliment in C.
18306 (vca<ge, gt, lt, le><q>_f<32, 64>): Reimpliment in C.
18307
75dd5ace
JG
183082013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18309
18310 * config/aarch64/aarch64-simd.md (*aarch64_fac<optab><mode>): New.
18311 * config/aarch64/iterators.md (FAC_COMPARISONS): New.
18312
7c19979f
JG
183132013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18314
18315 * config/aarch64/aarch64-simd.md
18316 (vcond<mode>_internal): Handle special cases for constant masks.
18317 (vcond<mode><mode>): Allow nonmemory_operands for outcome vectors.
18318 (vcondu<mode><mode>): Likewise.
18319 (vcond<v_cmp_result><mode>): New.
18320
bb60efd9
JG
183212013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18322
18323 * config/aarch64/aarch64-builtins.c (BUILTIN_VALLDI): Define.
18324 (aarch64_fold_builtin): Add folding for cm<eq,ge,gt,tst>.
18325 * config/aarch64/aarch64-simd-builtins.def
18326 (cmeq): Update to BUILTIN_VALLDI.
18327 (cmgt): Likewise.
18328 (cmge): Likewise.
18329 (cmle): Likewise.
18330 (cmlt): Likewise.
18331 * config/aarch64/arm_neon.h
18332 (vc<eq, lt, le, gt, ge, tst><z><qsd>_<fpsu><8,16,32,64>): Remap
18333 to builtins or C as appropriate.
18334
889b9412
JG
183352013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18336
18337 * config/aarch64/aarch64-simd-builtins.def (cmhs): Rename to...
18338 (cmgeu): ...This.
18339 (cmhi): Rename to...
18340 (cmgtu): ...This.
18341 * config/aarch64/aarch64-simd.md
18342 (simd_mode): Add SF.
18343 (aarch64_vcond_internal): Use new names for unsigned comparison insns.
18344 (aarch64_cm<optab><mode>): Rewrite to not use UNSPECs.
18345 * config/aarch64/aarch64.md (*cstore<mode>_neg): Rename to...
18346 (cstore<mode>_neg): ...This.
18347 * config/aarch64/iterators.md
18348 (VALLF): new.
18349 (unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>.
18350 (COMPARISONS): New.
18351 (UCOMPARISONS): Likewise.
18352 (optab): Add missing comparisons.
18353 (n_optab): New.
18354 (cmp_1): Likewise.
18355 (cmp_2): Likewise.
18356 (CMP): Likewise.
18357 (cmp): Remove.
18358 (VCMP_S): Likewise.
18359 (VCMP_U): Likewise.
18360 (V_cmp_result): Add DF, SF modes.
18361 (v_cmp_result): Likewise.
18362 (v): Likewise.
18363 (vmtype): Likewise.
18364 * config/aarch64/predicates.md (aarch64_reg_or_fp_zero): New.
18365
0a7dbb76
GY
183662013-05-01 Greta Yorsh <Greta.Yorsh@arm.com>
18367
18368 * config/arm/thumb2.md (thumb2_smaxsi3,thumb2_sminsi3): Convert
18369 define_insn to define_insn_and_split.
18370 (thumb32_umaxsi3,thumb2_uminsi3): Likewise.
18371 (thumb2_negdi2,thumb2_abssi2,thumb2_neg_abssi2): Likewise.
18372 (thumb2_mov_scc,thumb2_mov_negscc,thumb2_mov_notscc): Likewise.
18373 (thumb2_movsicc_insn,thumb2_and_scc,thumb2_ior_scc): Likewise.
18374 (thumb2_negscc): Likewise.
18375
fb614ca6
GY
183762013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
18377
18378 * config/arm/thumb2.md (thumb2_incscc, thumb2_decscc): Delete.
18379
9e64a0bf
GY
183802013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
18381
18382 * config/arm/thumb2.md: Remove trailing whitespaces.
18383
d6b28156
RS
183842013-04-30 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
18385
18386 * explow.c (plus_constant): Pass "mode" to immed_double_int_const.
18387 Use gen_int_mode rather than GEN_INT.
18388
f91674c3
L
183892013-04-30 H.J. Lu <hongjiu.lu@intel.com>
18390
b0dec607 18391 * value-prof.c (stream_in_histogram_value): Remove the strayed
f91674c3
L
18392 debug_gimple_stmt.
18393
3551257c
RB
183942013-04-30 Richard Biener <rguenther@suse.de>
18395
18396 PR middle-end/57122
3c21604f 18397 * cfghooks.c (split_edge): Properly check for the loop latch edge.
3551257c 18398
4c1aff1c
RB
183992013-04-30 Richard Biener <rguenther@suse.de>
18400
18401 PR middle-end/57107
18402 * tree-eh.c (sink_clobbers): Preserve virtual SSA form.
18403
54b8379a
AB
184042013-04-30 Andrey Belevantsev <abel@ispras.ru>
18405
18406 PR rtl-optimization/56957
18407 PR rtl-optimization/57105
54b8379a
AB
18408 * sel-sched.c (move_op_orig_expr_found): Remove insn_emitted
18409 variable. Use just INSN_UID for determining whether an insn
18410 should be only disconnected from the insn stream.
18411 * sel-sched-ir.h (EXPR_WAS_CHANGED): Remove.
18412
abc27962
JJ
184132013-04-30 Jakub Jelinek <jakub@redhat.com>
18414
18415 PR tree-optimization/57104
18416 * tsan.c (instrument_expr): Don't instrument accesses to
18417 DECL_HARD_REGISTER VAR_DECLs.
18418
0fc822d0
RB
184192013-04-30 Richard Biener <rguenther@suse.de>
18420
18421 * function.h (loops_for_fn): New inline function.
18422 (set_loops_for_fn): Likewise.
18423 * cfgloop.h (place_new_loop): Add struct function parameter.
18424 (get_loop): Likewise.
18425 (get_loops): Likewise.
18426 (number_of_loops): Likewise.
18427 (fel_next): Adjust.
18428 (fel_init): Likewise.
18429 * cfg.c (get_loop_copy): Adjust.
18430 * cfgloop.c (flow_loops_dump): Likewise.
18431 (record_loop_exits): Likewise.
18432 (verify_loop_structure): Likewise.
18433 * cfgloopanal.c (mark_irreducible_loops): Likewise.
18434 (estimate_reg_pressure_cost): Likewise.
18435 (mark_loop_exit_edges): Likewise.
18436 * cfgloopmanip.c (place_new_loop): Likewise.
18437 (add_loop): Likewise.
18438 (duplicate_loop): Likewise.
18439 * graph.c (draw_cfg_nodes): Likewise.
18440 * graphite-clast-to-gimple.c (translate_clast_user): Likewise.
18441 * graphite-sese-to-poly.c (build_scop_scattering): Likewise.
18442 (extract_affine_chrec): Likewise.
18443 (build_scop_iteration_domain): Likewise.
18444 * graphite.c (graphite_initialize): Likewise.
18445 * ira-build.c (create_loop_tree_nodes): Likewise.
18446 (more_one_region_p): Likewise.
18447 (rebuild_regno_allocno_maps): Likewise.
18448 (mark_loops_for_removal): Likewise.
18449 (mark_all_loops_for_removal): Likewise.
18450 (remove_unnecessary_regions): Likewise.
18451 (ira_build): Likewise.
18452 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
18453 * loop-init.c (fix_loop_structure): Likewise.
18454 (gate_rtl_move_loop_invariants): Likewise.
18455 (gate_rtl_unswitch): Likewise.
18456 (gate_rtl_unroll_and_peel_loops): Likewise.
18457 (rtl_doloop): Likewise.
18458 * lto-streamer-in.c (input_cfg): Likewise.
18459 * lto-streamer-out.c (output_cfg): Likewise.
18460 * modulo-sched.c (sms_schedule): Likewise.
18461 * predict.c (tree_estimate_probability): Likewise.
18462 (tree_estimate_probability_driver): Likewise.
18463 (estimate_loops): Likewise.
18464 * tree-cfg.c (fixup_loop_arrays_after_move): Likewise.
18465 (move_sese_region_to_fn): Likewise.
18466 (debug_loop_num): Likewise.
18467 * tree-chrec.c (chrec_evaluate): Likewise.
18468 (hide_evolution_in_other_loops_than_loop): Likewise.
18469 (chrec_component_in_loop_num): Likewise.
18470 (reset_evolution_in_loop): Likewise.
18471 (evolution_function_is_invariant_rec_p): Likewise.
18472 * tree-if-conv.c (main_tree_if_conversion): Likewise.
18473 * tree-inline.c (copy_loops): Likewise.
18474 (copy_cfg_body): Likewise.
18475 (tree_function_versioning): Likewise.
18476 * tree-loop-distribution.c (rdg_flag_loop_exits): Likewise.
18477 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
18478 Likewise.
18479 (add_to_evolution_1): Likewise.
18480 (scev_const_prop): Likewise.
18481 * tree-scalar-evolution.h (get_chrec_loop): Likewise.
18482 * tree-ssa-loop-ch.c (copy_loop_headers): Likewise.
18483 * tree-ssa-loop-im.c (analyze_memory_references): Likewise.
18484 (tree_ssa_lim_initialize): Likewise.
18485 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Likewise.
18486 (verify_loop_closed_ssa): Likewise.
18487 * tree-ssa-loop.c (tree_ssa_loop_init): Likewise.
18488 (tree_ssa_loop_im): Likewise.
18489 (tree_ssa_loop_unswitch): Likewise.
18490 (tree_vectorize): Likewise.
18491 (check_data_deps): Likewise.
18492 (tree_ssa_loop_ivcanon): Likewise.
18493 (tree_ssa_loop_bounds): Likewise.
18494 (tree_complete_unroll): Likewise.
18495 (tree_complete_unroll_inner): Likewise.
18496 (tree_parallelize_loops): Likewise.
18497 (tree_ssa_loop_prefetch): Likewise.
18498 (tree_ssa_loop_ivopts): Likewise.
18499 * tree-ssa.c (execute_update_addresses_taken): Liekwise.
18500 * tree-vectorizer.c (vectorize_loops): Likewise.
18501
37953bd3
MF
185022013-04-29 Mike Frysinger <vapier@gentoo.org>
18503
18504 * config/arm/bpabi.h (EABI_LINK_SPEC): Define.
18505 (BPABI_LINK_SPEC): Use new EABI_LINK_SPEC.
18506 * config/arm/linux-eabi.h (LINK_SPEC): Replace BE8_LINK_SPEC
18507 with EABI_LINK_SPEC.
18508
f9ed28db
UB
185092013-04-29 Uros Bizjak <ubizjak@gmail.com>
18510
18511 PR target/44578
18512 * config/i386/i386.md (*zero_extendsidi2): Add "!" to m->?*y
18513 alternative.
18514
deca73f5
VM
185152013-04-29 Vladimir Makarov <vmakarov@redhat.com>
18516
18517 PR target/57097
37953bd3 18518 * lra-constraints.c (process_alt_operands): Discourage a bit more
deca73f5
VM
18519 using memory for pseudos. Print cost dump for alternatives.
18520 Modify cost values for conflicts with early clobbers.
18521 (curr_insn_transform): Spill pseudos reassigned to NO_REGS.
18522
fdca7d03
UB
185232013-04-29 Uros Bizjak <ubizjak@gmail.com>
18524
18525 PR target/57098
18526 * config/i386/i386.c (ix86_expand_vec_perm): Validize constant memory.
18527
0b064172
IB
185282013-04-29 Ian Bolton <ian.bolton@arm.com>
18529
18530 * config/aarch64/aarch64.md (movsi_aarch64): Support LDR/STR
18531 from/to S register.
18532 (movdi_aarch64): Support LDR/STR from/to D register.
18533
473cec55
IB
185342013-04-29 Ian Bolton <ian.bolton@arm.com>
18535
18536 * common/config/aarch64/aarch64-common.c: Enable REE pass at O2
18537 or higher by default.
18538
a6f30e66
RB
185392013-04-29 Richard Biener <rguenther@suse.de>
18540
18541 PR middle-end/57075
18542 * tree-inline.c (copy_edges_for_bb): Still split the bbs,
18543 even if not adding abnormal edges for calls that can make
18544 abnormal gotos.
18545
0c2b2040
RB
185462013-04-29 Richard Biener <rguenther@suse.de>
18547
18548 PR middle-end/57103
18549 * tree-cfg.c (move_stmt_op): Fix condition under which to update
18550 TREE_BLOCK.
18551 (move_stmt_r): Remove redundant checking.
18552
f41f80f9
TJ
185532013-04-29 Teresa Johnson <tejohnson@google.com>
18554
18555 PR bootstrap/57077
18556 * basic-block.h (apply_scale): New function.
18557 (apply_probability): Use apply_scale.
18558 * gimple-streamer-in.c (input_bb): Ditto.
18559 * lto-streamer-in.c (input_cfg): Ditto.
18560 * lto-cgraph.c (merge_profile_summaries): Ditto.
18561 * tree-optimize.c (execute_fixup_cfg): Ditto.
fdca7d03 18562 * tree-inline.c (copy_bb): Update comment to use apply_scale.
f41f80f9
TJ
18563 (copy_edges_for_bb): Ditto.
18564 (copy_cfg_body): Ditto.
18565
315bbd2e
TV
185662013-04-29 Tom de Vries <tom@codesourcery.com>
18567
18568 * tree-ssa-tail-merge.c (find_same_succ_bb): Skip loop latch bbs.
18569 (replace_block_by): Don't set LOOPS_NEED_FIXUP.
18570 (tail_merge_optimize): Handle current_loops == NULL.
18571
ebbd90d8
JL
185722013-04-26 Jeff Law <law@redhat.com>
18573
18574 * tree-vrp.c (range_fits_type_p): Move to earlier point in file.
18575 (simplify_cond_using_ranges): Generalize code to simplify
18576 COND_EXPRs where one argument is a constant and the other
18577 is an SSA_NAME created by an integral type conversion.
18578
8b9b57eb
KT
185792013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18580
18581 * config/arm/arm.md (store_minmaxsi): Use only when
18582 optimize_insn_for_size_p.
18583
9498e5dc
CB
185842013-04-29 Christian Bruel <christian.bruel@st.com>
18585
18586 PR target/57108
18587 * sh.md (tstsi_t_zero_extract_eq): Set mode for operand 0.
18588
6093bc06
RB
185892013-04-29 Richard Biener <rguenther@suse.de>
18590
18591 PR middle-end/57089
fdca7d03
UB
18592 * omp-low.c (expand_omp_taskreg): If the parent function had a broken
18593 loop tree make sure to schedule a fixup for the child as well.
6093bc06
RB
18594 (expand_omp_for_generic): Properly add loops.
18595 (expand_omp_for_static_nochunk): Likewise.
18596 (expand_omp_for_static_chunk): Likewise.
18597 (expand_omp_for): For the degenerate case fixup loops.
18598 (expand_omp_sections): Fix default bb placement in loops.
18599 (expand_omp_atomic_pipeline): Properly add loops.
18600
84aacbfd
KT
186012013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18602
18603 * predict.c: Fix typo in comment above #define PROB_VERY_UNLIKELY.
18604
8dee4479
TV
186052013-04-29 Tom de Vries <tom@codesourcery.com>
18606
18607 * tree-ssa-tail-merge.c: Update header comment.
18608
47934dc4
JG
186092013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18610
18611 * config/aarch64/arm_neon.h
18612 (vcvt<sd>_f<32,64>_s<32,64>): Rewrite in C.
18613 (vcvt<q>_f<32,64>_s<32,64>): Rewrite using builtins.
18614 (vcvt_<high_>_f<32,64>_f<32,64>): Likewise.
18615 (vcvt<qsd>_<su><32,64>_f<32,64>): Likewise.
18616 (vcvta<qsd>_<su><32,64>_f<32,64>): Likewise.
18617 (vcvtm<qsd>_<su><32,64>_f<32,64>): Likewise.
18618 (vcvtn<qsd>_<su><32,64>_f<32,64>): Likewise.
18619 (vcvtp<qsd>_<su><32,64>_f<32,64>): Likewise.
18620
384be29f
JG
186212013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18622
18623 * config/aarch64/aarch64-simd.md
18624 (<optab><VDQF:mode><fcvt_target>2): New, maps to fix, fixuns.
18625 (<fix_trunc_optab><VDQF:mode><fcvt_target>2): New, maps to
18626 fix_trunc, fixuns_trunc.
18627 (ftrunc<VDQF:mode>2): New.
18628 * config/aarch64/iterators.md (optab): Add fix, fixuns.
18629 (fix_trunc_optab): New.
18630
0386b123
JG
186312013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18632
18633 * config/aarch64/aarch64-builtins.c
18634 (aarch64_builtin_vectorized_function): Vectorize over ifloorf,
18635 iceilf, lround, iroundf.
18636
00fcb892
UB
186372013-04-29 Uros Bizjak <ubizjak@gmail.com>
18638
18639 PR target/54349
18640 * config/i386/i386.h (enum ix86_tune_indices)
18641 <X86_TUNE_INTER_UNIT_MOVES_TO_VEC, X86_TUNE_INTER_UNIT_MOVES_FROM_VEC>:
18642 New, split from X86_TUNE_INTER_UNIT_MOVES.
18643 <X86_TUNE_INTER_UNIT_MOVES>: Remove.
18644 (TARGET_INTER_UNIT_MOVES_TO_VEC): New define.
18645 (TARGET_INTER_UNIT_MOVES_FROM_VEC): Ditto.
18646 (TARGET_INTER_UNIT_MOVES): Remove.
18647 * config/i386/i386.c (initial_ix86_tune_features): Update.
18648 Disable X86_TUNE_INTER_UNIT_MOVES_FROM_VEC for m_ATHLON_K8 only.
18649 (ix86_expand_convert_uns_didf_sse): Use
18650 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
18651 (ix86_expand_vector_init_one_nonzero): Ditto.
18652 (ix86_expand_vector_init_interleave): Ditto.
18653 (inline_secondary_memory_needed): Return true for moves from SSE class
18654 registers for !TARGET_INTER_UNIT_MOVES_FROM_VEC targets and for moves
18655 to SSE class registers for !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
18656 * config/i386/constraints.md (Yi, Ym): Depend on
18657 TARGET_INTER_UNIT_MOVES_TO_VEC.
18658 (Yj, Yn): New constraints.
18659 * config/i386/i386.md (*movdi_internal): Change constraints of
18660 operand 1 from Yi to Yj and from Ym to Yn.
18661 (*movsi_internal): Ditto.
18662 (*movdf_internal): Ditto.
18663 (*movsf_internal): Ditto.
18664 (*float<SWI48x:mode><X87MODEF:mode>2_1): Use
18665 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
18666 (*float<SWI48x:mode><X87MODEF:mode>2_1 splitters): Ditto.
18667 (floatdi<X87MODEF:mode>2_i387_with_xmm): Ditto.
18668 (floatdi<X87MODEF:mode>2_i387_with_xmm splitters): Ditto.
18669 * config/i386/sse.md (movdi_to_sse): Ditto.
18670 (sse2_stored): Change constraint of operand 1 from Yi to Yj.
18671 Use TARGET_INTER_UNIT_MOVES_FROM_VEC instead of
18672 TARGET_INTER_UNIT_MOVES.
18673 (sse_storeq_rex64): Change constraint of operand 1 from Yi to Yj.
18674 (sse_storeq_rex64 splitter): Use TARGET_INTER_UNIT_MOVES_FROM_VEC
18675 instead of TARGET_INTER_UNIT_MOVES.
18676 * config/i386/mmx.md (*mov<mode>_internal): Change constraint of
18677 operand 1 from Yi to Yj and from Ym to Yn.
18678
4c871069
JG
186792013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18680
18681 * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi_): New.
18682 (float_truncate_hi_): Likewise.
18683 (float_extend_lo_): Likewise.
18684 (float_truncate_lo_): Likewise.
18685 * config/aarch64/aarch64-simd.md (vec_unpacks_lo_v4sf): New.
18686 (aarch64_float_extend_lo_v2df): Likewise.
18687 (vec_unpacks_hi_v4sf): Likewise.
18688 (aarch64_float_truncate_lo_v2sf): Likewise.
18689 (aarch64_float_truncate_hi_v4sf): Likewise.
18690 (vec_pack_trunc_v2df): Likewise.
18691 (vec_pack_trunc_df): Likewise.
18692
1709ff9b
JG
186932013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18694
18695 * config/aarch64/aarch64-builtins.c
18696 (aarch64_fold_builtin): Fold float conversions.
18697 * config/aarch64/aarch64-simd-builtins.def
18698 (floatv2si, floatv4si, floatv2di): New.
18699 (floatunsv2si, floatunsv4si, floatunsv2di): Likewise.
18700 * config/aarch64/aarch64-simd.md
18701 (<optab><fcvt_target><VDQF:mode>2): New, expands to float and floatuns.
18702 * config/aarch64/iterators.md (FLOATUORS): New.
18703 (optab): Add float, floatuns.
18704 (su_optab): Likewise.
18705
ce966824
JG
187062013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18707
18708 * config/aarch64/aarch64-builtins.c
18709 (aarch64_builtin_vectorized_function): Use new names for
18710 fcvt builtins.
18711 * config/aarch64/aarch64-simd-builtins.def (fcvtzs): Split as...
18712 (lbtruncv2sf, lbtruncv4sf, lbtruncv2df): ...This.
18713 (fcvtzu): Split as...
18714 (lbtruncuv2sf, lbtruncuv4sf, lbtruncuv2df): ...This.
18715 (fcvtas): Split as...
18716 (lroundv2sf, lroundv4sf, lroundv2df, lroundsf, lrounddf): ...This.
18717 (fcvtau): Split as...
18718 (lrounduv2sf, lrounduv4sf, lrounduv2df, lroundusf, lroundudf): ...This.
18719 (fcvtps): Split as...
18720 (lceilv2sf, lceilv4sf, lceilv2df): ...This.
18721 (fcvtpu): Split as...
18722 (lceiluv2sf, lceiluv4sf, lceiluv2df, lceilusf, lceiludf): ...This.
18723 (fcvtms): Split as...
18724 (lfloorv2sf, lfloorv4sf, lfloorv2df): ...This.
18725 (fcvtmu): Split as...
18726 (lflooruv2sf, lflooruv4sf, lflooruv2df, lfloorusf, lfloorudf): ...This.
18727 (lfrintnv2sf, lfrintnv4sf, lfrintnv2df, lfrintnsf, lfrintndf): New.
18728 (lfrintnuv2sf, lfrintnuv4sf, lfrintnuv2df): Likewise.
18729 (lfrintnusf, lfrintnudf): Likewise.
18730 * config/aarch64/aarch64-simd.md
18731 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Convert to
18732 define_insn.
18733 (aarch64_fcvt<frint_suffix><su><mode>): Remove.
18734 * config/aarch64/iterators.md (FCVT): Include UNSPEC_FRINTN.
18735 (fcvt_pattern): Likewise.
18736
b9de24fe
JG
187372013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18738
18739 * config/aarch64/aarch64-simd.md
18740 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Rename to...
18741 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): ... This.
18742
77a205be
JG
187432013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18744
18745 * config/aarch64/arm_neon.h (vrndq<a,m,n,p>_f<32, 64>): Rename to...
18746 (vrnd<a,m,n,p>q_f<32, 64>): ...This, implement using builtin.
18747 (vrnd<a,m,n,p>_f32): Implement using builtins.
18748 (vrnd<i,x><q>_f<32, 64>): New.
18749
0659ce6f
JG
187502013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18751
18752 * config/aarch64/aarch64-builtins.c
18753 (aarch64_builtin_vectorized_function): Fold to standard pattern names.
18754 * config/aarch64/aarch64-simd-builtins.def (frintn): New.
18755 (frintz): Rename to...
18756 (btrunc): ...this.
18757 (frintp): Rename to...
18758 (ceil): ...this.
18759 (frintm): Rename to...
18760 (floor): ...this.
18761 (frinti): Rename to...
18762 (nearbyint): ...this.
18763 (frintx): Rename to...
18764 (rint): ...this.
18765 (frinta): Rename to...
18766 (round): ...this.
18767 * config/aarch64/aarch64-simd.md
18768 (aarch64_frint<frint_suffix><mode>): Delete.
18769 (<frint_pattern><mode>2): Convert to insn.
18770 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRINTN.
18771 * config/aarch64/iterators.md (FRINT): Add UNSPEC_FRINTN.
18772 (frint_pattern): Likewise.
18773 (frint_suffix): Likewise.
18774
ea78906a
RB
187752013-04-29 Richard Biener <rguenther@suse.de>
18776
18777 PR tree-optimization/57081
18778 * loop-init.c: Include tree-flow.h.
18779 (loop_optimizer_finalize): Free number of iteration estimates.
18780 * Makefile.in (loop-init.o): Add $(TREE_FLOW_H) dependency.
18781
baee1763
JJ
187822013-04-29 Jakub Jelinek <jakub@redhat.com>
18783
94dc5332
JJ
18784 PR tree-optimization/57083
18785 * tree-vrp.c (extract_range_from_binary_expr_1): For LSHIFT_EXPR with
18786 non-singleton shift count range, zero extend low_bound for uns case.
18787
baee1763
JJ
18788 * config/i386/predicates.md (general_vector_operand): New predicate.
18789 * config/i386/i386.c (const_vector_equal_evenodd_p): New function.
18790 (ix86_expand_mul_widen_evenodd): Force op1 resp. op2 into register
18791 if they aren't nonimmediate operands. If their original values
18792 satisfy const_vector_equal_evenodd_p, don't shift them.
18793 * config/i386/sse.md (mul<mode>3): Use general_vector_operand
18794 predicates. For the SSE4.1 case force operands[{1,2}] into registers
18795 if not nonimmediate_operand.
18796 (vec_widen_smult_even_v4si): Use nonimmediate_operand predicates
18797 instead of register_operand.
18798 (vec_widen_<s>mult_odd_<mode>): Use general_vector_operand predicates.
18799
a9073727 188002013-04-28 Eric Botcazou <ebotcazou@adacore.com>
22ad5e0a
EB
18801
18802 * stor-layout.c (finalize_size_functions): Allocate a structure and
18803 reset cfun before dumping the functions.
18804
ba8011e6
JJ
188052013-04-27 Jakub Jelinek <jakub@redhat.com>
18806
d6fde69e
JJ
18807 * config/i386/i386.c (ix86_expand_call): Make cregs_size unsigned.
18808
ba8011e6
JJ
18809 PR target/56866
18810 * config/i386/i386.c (ix86_expand_mul_widen_evenodd): Don't
18811 use xop_pmacsdqh if uns_p.
18812 * config/i386/sse.md (xop_rotr<mode>3): Fix up computation of
18813 the immediate rotate count.
18814
2c62cbaa
VM
188152013-04-26 Vladimir Makarov <vmakarov@redhat.com>
18816
18817 * rtl.h (struct rtx_def): Add comment for field jump.
18818 (LRA_SUBREG_P): New macro.
18819 * recog.c (register_operand): Check LRA_SUBREG_P.
18820 * lra.c (lra): Add note at the end of RTL code. Align non-empty
18821 stack frame.
18822 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
18823 (lra_final_code_change): Skip subreg change for operators.
18824 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
18825 if there are no operand changes.
18826 * lra-constraints.c (curr_insn_set): New.
18827 (match_reload): Set LRA_SUBREG_P.
18828 (emit_spill_move): Ditto.
18829 (check_and_process_move): Use curr_insn_set. Process only single
18830 set insns. Don't initialize sec_mem_p and change_p.
18831 (simplify_operand_subreg): Use LRA_SUBREG_P.
18832 (reg_in_class_p): New function.
18833 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
18834 of #ifdef. Add code to remove cycling.
18835 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
18836 non-null disp. Reload inner instead of disp when base and index
18837 are null. Try to put lo_sum into register.
18838 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
18839 (check_and_process_move): Move code for move cost check to
18840 simple_move_p. Remove equiv_substitution.
18841 (simple_move_p): New function.
18842 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
18843 curr_insn_set. Call check_and_process_move only for single set
18844 insns. Use the new function. Move call of check_and_process_move
18845 after operand equiv substitution and address process.
18846
e7d764f3
JJ
188472013-04-26 Jakub Jelinek <jakub@redhat.com>
18848
18849 PR go/57045
18850 * tree-ssa-uninit.c (compute_uninit_opnds_pos): In functions
18851 with nonlocal goto receivers or returns twice calls, ignore
18852 unininitialized values from abnormal edges to nl goto receiver
18853 or returns twice call.
18854
41e10689
JJ
188552013-04-26 Jakub Jelinek <jakub@redhat.com>
18856
18857 PR tree-optimization/57051
18858 * fold-const.c (const_binop): Handle VEC_LSHIFT_EXPR
18859 and VEC_RSHIFT_EXPR if shift count is a multiple of element
18860 bitsize.
18861
d7ed20db
RB
188622013-04-26 Richard Biener <rguenther@suse.de>
18863
18864 * omp-low.c (finalize_task_copyfn): Do not drop PROP_loops.
18865 (expand_omp_taskreg): Likewise. Mark loops for fixup.
18866 * tree-cfg.c (move_block_to_fn): Remap loop fathers.
18867 (fixup_loop_arrays_after_move): New function.
18868 (move_sese_region_to_fn): Properly outline the loop tree parts
18869 of the SESE region.
18870
df93505e
UB
188712013-04-26 Uros Bizjak <ubizjak@gmail.com>
18872
18873 * config/i386/i386.md (type, unit): Fix long lines.
18874
dd366ec3
RB
188752013-04-26 Richard Biener <rguenther@suse.de>
18876
18877 * Makefile.in (lto-streamer-in.o): Add $(CFGLOOP_H) dependency.
18878 (lto-streamer-out.o): Likewise.
18879 * cfgloop.c (init_loops_structure): Export, add struct function
18880 argument and adjust.
18881 (flow_loops_find): Adjust.
18882 * cfgloop.h (enum loop_estimation): Add EST_LAST.
18883 (init_loops_structure): Declare.
18884 * lto-streamer-in.c: Include cfgloop.h.
18885 (input_cfg): Input the loop tree.
18886 * lto-streamer-out.c: Include cfgloop.h.
18887 (output_cfg): Output the loop tree.
18888 (output_struct_function_base): Do not drop PROP_loops.
18889
a9e0d843
RB
188902013-03-26 Richard Biener <rguenther@suse.de>
18891
18892 * tree-cfg.c (execute_build_cfg): Build the loop tree.
18893 (pass_build_cfg): Provide PROP_loops.
18894 (move_sese_region_to_fn): Remove loops that are outlined into fn
18895 for now.
18896 * tree-inline.c: Include cfgloop.h.
18897 (initialize_cfun): Do not drop PROP_loops.
18898 (copy_loops): New function.
18899 (copy_cfg_body): Copy loop structure.
18900 (tree_function_versioning): Initialize destination loop tree.
18901 * tree-ssa-loop.c (pass_tree_loop_init): Do not provide PROP_loops.
18902 (pass_parallelize_loops): Do IL verification.
18903 * loop-init.c (loop_optimizer_init): Fixup loops if required.
18904 * tree-optimize.c (execute_fixup_cfg): If we need to cleanup
18905 the CFG make sure we fixup loops as well.
18906 * tree-ssa-tail-merge.c: Include cfgloop.h.
18907 (replace_block_by): When merging loop latches mark loops for fixup.
18908 * lto-streamer-out.c (output_struct_function_base): Drop
18909 PROP_loops for now.
18910 * tree-ssa-phiopt.c: Include tree-scalar-evolution.h.
18911 (tree_ssa_cs_elim): Initialize the loop optimizer and SCEV.
18912 * ipa-split.c: Include cfgloop.h.
18913 (split_function): Add the new return block to the loop tree root.
18914 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Return
18915 whether we have removed the forwarder block.
18916 (merge_phi_nodes): If we removed a forwarder mark loops for fixup.
18917 * cfgloop.h (place_new_loop): Declare.
18918 * cfgloopmanip.c (place_new_loop): Export.
18919 * Makefile.in (asan.o): Add $(CFGLOOP_H) dependency.
18920 (tree-switch-conversion.o): Likewise.
18921 (tree-complex.o): Likewise.
18922 (tree-inline.o): Likewise.
18923 (tree-ssa-tailmerge.o): Likewise.
18924 (ipa-split.o): Likewise.
18925 (tree-ssa-phiopt.o): Add $(SCEV_H) dependency.
18926 (tree-ssa-copy.o): Likewise.
18927 * tree-switch-conversion.c: Include cfgloop.h
18928 (process_switch): If we emit a bit-test cascade, schedule loops
18929 for fixup.
18930 * tree-complex.c: Include cfgloop.h.
18931 (expand_complex_div_wide): Properly add new basic-blocks to loops.
18932 * asan.c: Include cfgloop.h.
18933 (create_cond_insert_point): Properly add new basic-blocks to
18934 loops, schedule loop fixup.
18935 * cfgloop.c (verify_loop_structure): Check that looks are not
18936 marked for fixup.
18937 * omp-low.c (expand_parallel_call): Properly add new basic-blocks
18938 to loops.
18939 (expand_omp_for_generic): Likewise.
18940 (expand_omp_sections): Likewise.
18941 (expand_omp_atomic_pipeline): Schedule loops for fixup.
18942 * tree-ssa-copy.c: Include tree-scalar-evolution.h.
18943 (fini_copy_prop): Disable DCE in substitute_and_fold if SCEV
18944 is initialized, not when loops are present.
18945 * tree-parloops.c (parallelize_loops): Remove checking here.
18946 * passes.c (init_optimization_passes): Schedule a copy-propagation
18947 pass before complete unrolling of inner loops.
18948
e78e8a0b
JJ
189492013-04-26 Jakub Jelinek <jakub@redhat.com>
18950
a2e836b2
JJ
18951 * Makefile.in (toplev.o): Depend on diagnostic-color.h.
18952 * diagnostic-color.c (should_colorize): Remove _WIN32 version.
18953 (colorize_init): Add argument to _WIN32 version.
18954 * toplev.c: Include diagnostic-color.h.
18955 (process_options): Default to -fdiagnostics-color=auto if
18956 GCC_COLORS env var is in the environment.
18957 * common.opt (fdiagnostics-color=): Add Var and Init.
df93505e
UB
18958 * doc/invoke.texi (-fdiagnostics-color=): Document that if GCC_COLORS
18959 env var is in the environment, the default is auto rather than never.
a2e836b2 18960
e78e8a0b
JJ
18961 * diagnostic.h (file_name_as_prefix): Add context argument.
18962 * diagnostic.c (file_name_as_prefix): Likewise. Colorize
18963 the string as locus.
18964 * langhooks.c (lhd_print_error_function): Adjust caller.
18965
013e5ef9
LC
189662013-04-25 Lawrence Crowl <crowl@google.com>
18967
18968 * var-tracking.c (shared_hash_def::htab):
18969 Change type to hash_table. Update dependent calls and types.
18970
4a8fb1a1
LC
189712013-04-25 Lawrence Crowl <crowl@google.com>
18972
18973 * Makefile.in: Update as needed below.
18974
18975 * alloc-pool.c (static hash_table <alloc_pool_hasher> alloc_pool_hash):
18976 Move declaration to after the type's method definitons.
18977
18978 * attribs.c (htab_t scoped_attributes::attribute_hash):
18979 Change type to hash_table. Update dependent calls and types.
18980
18981 * bitmap.c (htab_t bitmap_desc_hash):
18982 Change type to hash_table. Update dependent calls and types.
18983
18984 * cselib.c (htab_t cselib_hash_table):
18985 Change type to hash_table. Update dependent calls and types.
18986
18987 * data-streamer.h (struct string_slot): Move to lto-streamer.h.
18988 (hash_string_slot_node): Move implementation into lto-streamer.h
18989 struct string_slot_hasher.
18990 (eq_string_slot_node): Likewise.
18991
18992 * data-streamer-out.c: Update output_block::string_hash_table
18993 dependent calls and types.
18994
18995 * dwarf2cfi.c (htab_t trace_index):
18996 Change type to hash_table. Update dependent calls and types.
18997
18998 * dwarf2out.c (htab_t break_out_includes::cu_hash_table):
18999 Change type to hash_table. Update dependent calls and types.
19000 (htab_t copy_decls_for_unworthy_types::decl_table): Likewise.
19001 (htab_t optimize_external_refs::map): Likewise.
19002 (htab_t output_comp_unit::extern_map): Likewise.
19003 (htab_t output_comdat_type_unit::extern_map): Likewise.
19004 (htab_t output_macinfo::macinfo_htab): Likewise.
19005 (htab_t optimize_location_lists::htab): Likewise.
19006 (htab_t dwarf2out_finish::comdat_type_table): Likewise.
19007
19008 * except.c (htab_t ehspec_hash_type):
19009 Change type to hash_table. Update dependent calls and types.
19010 (assign_filter_values::ttypes): Likewise.
19011 (assign_filter_values::ehspec): Likewise.
19012 (sjlj_assign_call_site_values::ar_hash): Likewise.
19013 (convert_to_eh_region_ranges::ar_hash): Likewise.
19014
19015 * gcse.c (htab_t pre_ldst_table):
19016 Change type to hash_table. Update dependent calls and types.
19017
19018 * ggc-common.c (htab_t saving_htab):
19019 Change type to hash_table. Update dependent calls and types.
19020 (htab_t loc_hash): Likewise.
19021 (htab_t ptr_hash): Likewise.
19022 (call_count): Rename ggc_call_count.
19023 (call_alloc): Rename ggc_call_alloc.
19024 (loc_descriptor): Rename make_loc_descriptor.
19025 (add_statistics): Rename ggc_add_statistics.
19026
19027 * ggc-common.c (saving_htab):
19028 Change type to hash_table. Update dependent calls and types.
19029
19030 * gimple.h (struct gimplify_ctx): Move to gimplify-ctx.h.
19031 (push_gimplify_context): Likewise.
19032 (pop_gimplify_context): Likewise.
19033 (struct gimple_temp_hash_elt): Added.
19034 (struct gimplify_hasher): Likewise.
19035 (struct gimplify_ctx.temp_htab):
19036 Change type to hash_table. Update dependent calls and types.
19037
19038 * gimple-fold.c: Include gimplify-ctx.h.
19039
19040 * gimple-ssa-strength-reduction.c (htab_t base_cand_map):
19041 Change type to hash_table. Update dependent calls and types.
19042 (base_cand_dump_callback): Rename to ssa_base_cand_dump_callback to
19043 avoid potential global name collision.
19044
19045 * gimplify.c: Include gimplify-ctx.h.
19046 (struct gimple_temp_hash_elt): Move to gimplify-ctx.h.
19047 (htab_t gimplify_ctx::temp_htab):
19048 Update dependent calls and types for new type hash_table.
19049 (gimple_tree_hash): Move into gimplify_hasher in gimplify-ctx.h.
19050 (gimple_tree_eq): Move into gimplify_hasher in gimplify-ctx.h.
19051
19052 * gimplify-ctx.h: New.
19053 (struct gimple_temp_hash_elt): Move from gimplify.c.
19054 (class gimplify_hasher): New.
19055 (struct gimplify_ctx): Move from gimple.h.
19056 (htab_t gimplify_ctx::temp_htab):
19057 Change type to hash_table. Update dependent calls and types.
19058
19059 * graphite-clast-to-gimple.c: Include graphite-htab.h.
19060 (htab_t ivs_params::newivs_index):
19061 Change type to hash_table. Update dependent calls and types.
19062 (htab_t ivs_params::params_index): Likewise.
19063 (htab_t print_generated_program::params_index): Likewise.
19064 (htab_t gloog::newivs_index): Likewise.
19065 (htab_t gloog::params_index): Likewise.
19066
19067 * graphite.c: Include graphite-htab.h.
19068 4htab_t graphite_transform_loops::bb_pbb_mapping):
19069 Change type to hash_table. Update dependent calls and types.
19070
19071 * graphite-clast-to-gimple.h: (extern gloog) Move to graphite-htab.h.
19072 (bb_pbb_map_hash): Fold into bb_pbb_htab_type in graphite-htab.h.
19073 (eq_bb_pbb_map): Fold into bb_pbb_htab_type in graphite-htab.h.
19074
19075 * graphite-dependences.c: Include graphite-htab.h.
19076 (loop_is_parallel_p): Change hash table type of parameter.
19077
19078 * graphite-htab.h: New.
19079 (typedef hash_table <bb_pbb_hasher> bb_pbb_htab_type): New.
19080 (extern find_pbb_via_hash): Move from graphite-poly.h.
19081 (extern loop_is_parallel_p): Move from graphite-poly.h.
19082 (extern get_loop_body_pbbs): Move from graphite-poly.h.
19083
19084 * graphite-poly.h (extern find_pbb_via_hash): Move to graphite-htab.h.
19085 (extern loop_is_parallel_p): Move to graphite-htab.h.
19086 (extern get_loop_body_pbbs): Move to graphite-htab.h.
19087
19088 * haifa-sched.c (htab_t delay_htab):
19089 Change type to hash_table. Update dependent calls and types.
19090 (htab_t delay_htab_i2): Likewise.
19091
19092 * ira-color.c (htab_t allocno_hard_regs_htab):
19093 Change type to hash_table. Update dependent calls and types.
19094
19095 * ira-costs.c (htab_t cost_classes_htab):
19096 Change type to hash_table. Update dependent calls and types.
19097
19098 * loop-invariant.c (htab_t merge_identical_invariants::eq):
19099 Change type to hash_table. Update dependent calls and types.
19100
19101 * loop-iv.c (htab_t bivs):
19102 Change type to hash_table. Update dependent calls and types.
19103
19104 * loop-unroll.c (htab_t opt_info::insns_to_split):
19105 Change type to hash_table. Update dependent calls and types.
19106 (htab_t opt_info::insns_with_var_to_expand): Likewise.
19107
19108 * lto-streamer.h (struct string_slot): Move from data-streamer.h
19109 (struct string_slot_hasher): New.
19110 (htab_t output_block::string_hash_table):
19111 Change type to hash_table. Update dependent calls and types.
19112
19113 * lto-streamer-in.c (freeing_string_slot_hasher): New.
19114 (htab_t file_name_hash_table):
19115 Change type to hash_table. Update dependent calls and types.
19116
19117 * lto-streamer-out.c: Update output_block::string_hash_table dependent
19118 calls and types.
19119
19120 * lto-streamer.c (htab_t tree_htab):
19121 Change type to hash_table. Update dependent calls and types.
19122
19123 * omp-low.c: Include gimplify-ctx.h.
19124
19125 * passes.c (htab_t name_to_pass_map):
19126 Change type to hash_table. Update dependent calls and types.
19127 (pass_traverse): Rename to passes_pass_traverse.
19128
19129 * plugin.c (htab_t event_tab):
19130 Change type to hash_table. Update dependent calls and types.
19131
19132 * postreload-gcse.c (htab_t expr_table):
19133 Change type to hash_table. Update dependent calls and types.
19134 (dump_hash_table_entry): Rename dump_expr_hash_table_entry.
19135
19136 * sese.c (debug_rename_map_1): Make extern.
19137 (htab_t copy_bb_and_scalar_dependences::rename_map):
19138 Change type to hash_table. Update dependent calls and types.
19139
19140 * sese.h (extern debug_rename_map): Move to .c file.
19141
19142 * store-motion.c (htab_t store_motion_mems_table):
19143 Change type to hash_table. Update dependent calls and types.
19144
19145 * trans-mem.c (htab_t tm_new_mem_hash):
19146 Change type to hash_table. Update dependent calls and types.
19147
19148 * tree-browser.c (htab_t TB_up_ht):
19149 Change type to hash_table. Update dependent calls and types.
19150
19151 * tree-cfg.c (htab_t discriminator_per_locus):
19152 Change type to hash_table. Update dependent calls and types.
19153
19154 * tree-complex.c: Include tree-hasher.h
19155 (htab_t complex_variable_components):
19156 Change type to hash_table. Update dependent calls and types.
19157
19158 * tree-eh.c (htab_t finally_tree):
19159 Change type to hash_table. Update dependent calls and types.
19160
19161 * tree-flow.h (extern int_tree_map_hash): Moved into tree-hasher
19162 struct int_tree_hasher.
19163 (extern int_tree_map_eq): Likewise.
19164 (uid_decl_map_hash): Removed.
19165 (extern decl_tree_map_eq): Likewise.
19166
19167 * tree-hasher.h: New.
19168 (struct int_tree_hasher): New.
19169 (typedef int_tree_htab_type): New.
19170
19171 * tree-inline.c: Include gimplify-ctx.h.
19172
19173 * tree-mudflap.c: Include gimplify-ctx.h.
19174
19175 * tree-parloops.c: Include tree-hasher.h.
19176 (htab_t eliminate_local_variables_stmt::decl_address):
19177 Change type to hash_table. Update dependent calls and types.
19178 (htab_t separate_decls_in_region::decl_copies): Likewise.
19179
19180 * tree-scalar-evolution.c (htab_t resolve_mixers::cache):
19181 Change type to hash_table. Update dependent calls and types.
19182
19183 * tree-sra.c (candidates):
19184 Change type to hash_table. Update dependent calls and types.
19185
19186 * tree-ssa.c (int_tree_map_eq): Moved into struct int_tree_hasher
19187 in tree-flow.h.
19188 (int_tree_map_hash): Likewise.
19189
19190 * tree-ssa-dom.c (htab_t avail_exprs):
19191 Change type to hash_table. Update dependent calls and types.
19192
19193 * tree-ssa-live.c (var_map_base_init::tree_to_index):
19194 Change type to hash_table. Update dependent calls and types.
19195
19196 * tree-ssa-loop-ivopts.c (struct ivopts_data.inv_expr_tab):
19197 Change type to hash_table. Update dependent calls and types.
19198
19199 * tree-ssa-phiopt.c (seen_ssa_names):
19200 Change type to hash_table. Update dependent calls and types.
19201
19202 * tree-ssa-strlen.c (decl_to_stridxlist_htab):
19203 Change type to hash_table. Update dependent calls and types.
19204
19205 * tree-ssa-uncprop.c (equiv):
19206 Change type to hash_table. Update dependent calls and types.
19207
c5a44004
JJ
192082013-04-25 Jakub Jelinek <jakub@redhat.com>
19209
19210 PR rtl-optimization/57003
19211 * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
19212 call note_stores with kill_clobbered_value callback again after
19213 killing regs_invalidated_by_call.
19214
09962a4a
JG
192152013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
19216
19217 * config/aarch64/aarch64-simd.md
19218 (aarch64_simd_bsl<mode>_internal): Rewrite RTL to not use UNSPEC_BSL.
19219 (aarch64_simd_bsl<mode>): Likewise.
19220 * config/aarch64/iterators.md (unspec): Remove UNSPEC_BSL.
19221
ea28bb0b
MP
192222013-04-25 Marek Polacek <polacek@redhat.com>
19223
19224 PR tree-optimization/57066
3c21604f 19225 * builtins.c (fold_builtin_logb): Return +Inf for -Inf.
ea28bb0b 19226
96659611
JG
192272013-04-25 James Greenhalgh <jame.greenhalgh@arm.com>
19228
19229 * config/aarch64/aarch64-simd.md (neg<mode>2): Use VDQ iterator.
19230
9697e620
JG
192312013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
19232
19233 * config/aarch64/aarch64-builtins.c
19234 (aarch64_fold_builtin): New.
19235 * config/aarch64/aarch64-protos.h (aarch64_fold_builtin): New.
19236 * config/aarch64/aarch64.c (TARGET_FOLD_BUILTIN): Define.
19237 * config/aarch64/aarch64-simd-builtins.def (abs): New.
19238 * config/aarch64/arm_neon.h
19239 (vabs<q>_<f32, 64>): Implement using __builtin_aarch64_fabs.
19240
0ac198d3
JG
192412013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
19242 Tejas Belagod <tejas.belagod@arm.com>
19243
19244 * config/aarch64/aarch64-builtins.c
19245 (aarch64_gimple_fold_builtin): New.
19246 * config/aarch64/aarch64-protos.h (aarch64_gimple_fold_builtin): New.
19247 * config/aarch64/aarch64-simd-builtins.def (addv): New.
19248 * config/aarch64/aarch64-simd.md (addpv4sf): New.
19249 (addvv4sf): Update.
19250 * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define.
19251
58cff58c
N
192522013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
19253
df93505e 19254 * config/aarch64/aarch64.md
58cff58c
N
19255 (*cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): New pattern.
19256
7e0228bf
N
192572013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
19258
19259 * config/aarch64/aarch64.md (*ngc<mode>): New pattern.
19260 (*ngcsi_uxtw): New pattern.
19261
5819f96f 192622013-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3c21604f 19263 Julian Brown <julian@codesourcery.com>
5819f96f
KT
19264
19265 * config/arm/arm.c (neon_builtin_type_mode): Add T_V4HF.
19266 (TB_DREG): Add T_V4HF.
19267 (v4hf_UP): New macro.
19268 (neon_itype): Add NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
df93505e 19269 (arm_init_neon_builtins): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
5819f96f
KT
19270 Handle initialisation of V4HF. Adjust initialisation of reinterpret
19271 built-ins.
df93505e 19272 (arm_expand_neon_builtin): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
5819f96f
KT
19273 (arm_vector_mode_supported_p): Handle V4HF.
19274 (arm_mangle_map): Handle V4HFmode.
19275 * config/arm/arm.h (VALID_NEON_DREG_MODE): Add V4HF.
19276 * config/arm/arm_neon_builtins.def: Add entries for
19277 vcvtv4hfv4sf, vcvtv4sfv4hf.
19278 * config/arm/neon.md (neon_vcvtv4sfv4hf): New pattern.
19279 (neon_vcvtv4hfv4sf): Likewise.
19280 * config/arm/neon-gen.ml: Handle half-precision floating point
19281 features.
19282 * config/arm/neon-testgen.ml: Handle Requires_FP_bit feature.
19283 * config/arm/arm_neon.h: Regenerate.
19284 * config/arm/neon.ml (type elts): Add F16.
19285 (type vectype): Add T_float16x4, T_floatHF.
19286 (type vecmode): Add V4HF.
19287 (type features): Add Requires_FP_bit feature.
19288 (elt_width): Handle F16.
19289 (elt_class): Likewise.
19290 (elt_of_class_width): Likewise.
19291 (mode_of_elt): Refactor.
19292 (type_for_elt): Handle F16, fix error messages.
19293 (vectype_size): Handle T_float16x4.
19294 (vcvt_sh): New function.
19295 (ops): Add entries for vcvt_f16_f32, vcvt_f32_f16.
19296 (string_of_vectype): Handle T_floatHF, T_float16, T_float16x4.
19297 (string_of_mode): Handle V4HF.
19298 * doc/arm-neon-intrinsics.texi: Regenerate.
19299
1ef395e4
JG
193002013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
19301
19302 * config/aarch64/aarch64.c (aarch64_print_operand): Fix asm_fprintf
19303 format specifier in 'X' case.
19304
41c34e94
AM
193052013-04-25 Alan Modra <amodra@gmail.com>
19306
19307 PR target/57052
19308 * config/rs6000/rs6000.md (rotlsi3_internal7): Rename to
19309 rotlsi3_internal7le and condition on !BYTES_BIG_ENDIAN.
19310 (rotlsi3_internal8be): New BYTES_BIG_ENDIAN insn.
19311 Repeat for many other rotate/shift and mask patterns using subregs.
19312 Name lshiftrt insns.
19313 (ashrdisi3_noppc64): Rename to ashrdisi3_noppc64be and condition
19314 on WORDS_BIG_ENDIAN.
19315
b9a7eb5d
AM
193162013-04-25 Alan Modra <amodra@gmail.com>
19317
19318 * config.gcc: Support little-endian powerpc-linux targets.
19319 * config/rs6000/linux.h (LINK_OS_LINUX_EMUL): Define.
19320 (LINK_OS_LINUX_SPEC): Define.
19321 * config/rs6000/linuxspe.h (TARGET_DEFAULT):
19322 Preserve MASK_LITTLE_ENDIAN.
19323 * config/rs6000/default64.h (TARGET_DEFAULT): Likewise.
19324 * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Likewise.
19325 * config/rs6000/linux64.h (OPTION_LITTLE_ENDIAN): Don't zero.
19326 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Define.
19327 (LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Use above.
19328 * config/rs6000/rs6000.c (output_toc): Don't use .tc for TARGET_ELF.
19329 Correct fp word order for little-endian. Don't shift toc entries
19330 smaller than a word for little-endian.
19331 * config/rs6000/rs6000.md (bswaphi2, bswapsi2 split): Comment.
19332 (bswapdi2 splits): Correct low-part subreg for little-endian.
19333 Remove wrong BYTES_BIG_ENDIAN tests, and rename vars to remove
19334 low/high where such is correct only for be.
19335 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Allow
19336 little-endian for -mcall-aixdesc.
19337
87f73374
AM
193382013-04-25 Alan Modra <amodra@gmail.com>
19339
19340 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
19341 replace_equiv_address_nv.
19342
cabf91cd
AM
193432013-04-25 Alan Modra <amodra@gmail.com>
19344
19345 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Tidy.
19346
0ae24cc8
VM
193472013-04-24 Vladimir Makarov <vmakarov@redhat.com>
19348
19349 Revert:
19350 2013-04-24 Vladimir Makarov <vmakarov@redhat.com>
19351 * rtl.h (struct rtx_def): ...
cabf91cd 19352
77bce07c
VM
193532013-04-24 Vladimir Makarov <vmakarov@redhat.com>
19354
19355 PR rtl-optimizations/57046
19356 * lra-constraints (split_reg): Set up lra_risky_transformations_p
19357 for multi-reg splits.
19358
0db63e7f
L
193592013-04-24 H.J. Lu <hongjiu.lu@intel.com>
19360
19361 * config/i386/x86-64.h (ASM_SPEC): Support -mx32.
19362
3362b6b6
SA
193632013-04-24 Sterling Augustine <saugustine@google.com>
19364
19365 * dwarf2out.c (skeleton_debug_str_hash, add_skeleton_AT_string)
19366 (comp_dir_string, debug_str_dwo_section): New.
19367 (DEBUG_STR_DWO_SECTION): Rename to ...
19368 (DEBUG_DWO_STR_SECTION): ... this.
19369 (DEBUG_NORM_STR_SECTION): Delete.
19370 (DEBUG_STR_SECTION, DEBUG_STR_SECTION_FLAGS): Edit definitions.
19371 (DEBUG_STR_DWO_SECTION_FLAGS): New.
19372 (find_AT_string): Move most logic to ...
19373 (find_AT_string_in_table): ... here. New.
19374 (add_top_level_skeleton_die_attrs): Call comp_dir_string and
19375 add_skeleton_AT_string. Delete logic.
19376 (output_skeleton_debug_sections): Remove call to
19377 add_top_level_skeleton_die_attrs.
19378 (add_comp_dir_attribute): Move logic to comp_dir_string.
19379 (dwarf2out_init): Initialize debug_str_dwo_section.
19380 (output_indirect_string): Call find_string_form.
19381 (output_indirect_strings): Rewrite.
19382 (prune_unused_types): Empty skeleton_debug_str_hash.
19383 Call get_skeleton_type_unit and add_top_level_skeleton_die_attrs.
19384 (dwarf2out_finish): Call output_indirect_strings.
19385
e93e18e9
PC
193862013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
19387
19388 * doc/cpp.texi: Remove __GXX_EXPERIMENTAL_CXX1Y__.
19389
f6ce35ac
VM
193902013-04-24 Vladimir Makarov <vmakarov@redhat.com>
19391
cabf91cd 19392 * rtl.h (struct rtx_def): Add comment for field jump.
f6ce35ac
VM
19393 (LRA_SUBREG_P): New macro.
19394 * recog.c (register_operand): Check LRA_SUBREG_P.
19395 * lra.c (lra): Add note at the end of RTL code. Align non-empty
19396 stack frame.
19397 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
19398 (lra_final_code_change): Skip subreg change for operators.
19399 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
19400 if there are no operand changes.
19401 * lra-constraints.c (curr_insn_set): New.
19402 (match_reload): Set LRA_SUBREG_P.
19403 (emit_spill_move): Ditto.
19404 (check_and_process_move): Use curr_insn_set. Process only single
19405 set insns. Don't initialize sec_mem_p and change_p.
19406 (simplify_operand_subreg): Use LRA_SUBREG_P.
19407 (reg_in_class_p): New function.
19408 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
19409 of #ifdef. Add code to remove cycling.
19410 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
19411 non-null disp. Reload inner instead of disp when base and index
19412 are null. Try to put lo_sum into register.
19413 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
cabf91cd 19414 (check_and_process_move): Move code for move cost check to
f6ce35ac 19415 simple_move_p. Remove equiv_substitution.
cabf91cd 19416 (simple_move_p): New function.
f6ce35ac
VM
19417 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
19418 curr_insn_set. Call check_and_process_move only for single set
19419 insns. Use the new function. Move call of check_and_process_move
19420 after operand equiv substitution and address process.
19421
38047d90
JG
194222013-04-24 James Greenhalgh <james.greenhalgh@arm.com>
19423
19424 * config/aarch64/arm_neon.h (vld1<q>_lane*): Fix constraints.
19425 (vld1<q>_dup_<sufp><8, 16, 32, 64>): Likewise.
19426 (vld1<q>_<sufp><8, 16, 32, 64>): Likewise.
19427
13f39b2e
PC
194282013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
19429
19430 * doc/cpp.texi: Document __GXX_EXPERIMENTAL_CXX1Y__.
19431
97c116dc
MP
194322013-04-24 Marek Polacek <polacek@redhat.com>
19433
19434 * tree-scalar-evolution.h (analyze_scalar_evolution): Remove.
19435 * tree-scalar-evolution.c (get_exit_conditions_rec): Likewise.
19436 (select_loops_exit_conditions): Likewise.
19437 (number_of_iterations_for_all_loops): Likewise.
19438 (analyze_scalar_evolution_for_all_loop_phi_nodes): Likewise.
19439 (scev_analysis): Likewise.
19440
83082391 194412013-04-02 Catherine Moore <clm@codesourcery.com>
12211b99 19442 Chao-ying Fu <fu@mips.com>
83082391 19443
cabf91cd
AM
19444 * config/mips/micromips.md (jraddiusp): New pattern.
19445 * config/mips/mips.c (mips_expand_epilogue): Use the JRADDIUSP
19446 instruction if possible.
83082391 19447
19e34aa2
AM
194482013-04-24 Alan Modra <amodra@gmail.com>
19449
19450 * config/rs6000/driver-rs6000.c (elf_dcachebsize): Fix comment pasto.
19451
fdb6603c
JB
194522013-04-24 Julian Brown <julian@codesourcery.com>
19453 Chung-Lin Tang <cltang@codesourcery.com>
19454
19455 * dwarf2out.c (gen_enumeration_type_die): Fix HOST_BITS_PER_WIDE_INT
df93505e
UB
19456 dependency behavior in enumeration type DIE generation. Add TODO note
19457 to comments about future DW_FORM_sdata/udata re-work of related code.
fdb6603c 19458
bf190e8d
LC
194592013-04-23 Lawrence Crowl <crowl@google.com>
19460
19461 * Makefile.in: Update as needed below.
19462
19463 * hash-table.h (class hash_table):
19464 Correct many methods with parameter types compare_type to the correct
19465 value_type. (Correct code was unlikely to notice the change.)
19466 (hash_table::elements_with_deleted) New.
19467 (class hashtable::iterator): New.
19468 (hashtable::begin()): New.
19469 (hashtable::end()): New.
19470 (FOR_EACH_HASH_TABLE_ELEMENT): New.
19471
19472 * statistics.c (statistics_hashes):
19473 Change type to hash_table. Update dependent calls and types.
19474
19475 * tree-into-ssa.c (var_infos):
19476 Change type to hash_table. Update dependent calls and types.
19477
19478 * tree-ssa-coalesce.c (struct coalesce_list_d.list):
19479 Change type to hash_table. Update dependent calls and types.
19480
19481 * tree-ssa-loop-im.c (struct mem_ref.refs):
19482 Change type to hash_table. Update dependent calls and types.
19483
19484 * tree-ssa-reassoc.c (undistribute_ops_list::ctable):
19485 Change type to hash_table. Update dependent calls and types.
19486
19487 * tree-ssa-sccvn.c (vn_tables_s::nary):
19488 Change type to hash_table. Update dependent calls and types.
19489 (vn_tables_s::phis): Likewise.
19490 (vn_tables_s::references): Likewise.
19491
19492 * tree-ssa-sccvn.h (vn_nary_op_eq): Update parameter and return types.
19493 (vn_reference_eq): Update parameter and return types.
19494
19495 * tree-ssa-structalias.c (pointer_equiv_class_table):
19496 Change type to hash_table. Update dependent calls and types.
19497 (location_equiv_class_table): Likewise.
19498
19499 * tree-vect-data-refs.c: Consequential changes for making
19500 peeling a hash_table.
19501
19502 * tree-vect-loop.c (new_loop_vec_info): Dependent hash_table update.
19503 (destroy_loop_vec_info): Dependent hash_table update.
19504
19505 * tree-vectorizer.h (peeling_htab):
19506 Change type to hash_table. Update dependent calls and types.
19507
d70a81dd
SC
195082013-04-23 Shiva Chen <shiva0217@gmail.com>
19509
cabf91cd
AM
19510 * lra-assigns.c (find_hard_regno_for): Use lra_reg_val_equal_p
19511 to check the register content is equal or not.
19512 * lra-constraints.c (match_reload): Use lra_assign_reg_val
19513 to assign register content record.
19514 * lra-eliminations.c (update_reg_eliminate): Use
d70a81dd 19515 lra_update_reg_val_offset to update register content offset.
cabf91cd
AM
19516 * lra-int.h (struct lra_reg): Add offset member.
19517 (lra_reg_val_equal_p): New static inline function.
19518 (lra_update_reg_val_offset): New static inline function.
19519 (lra_assign_reg_val): New static inline function.
19520 * lra.c (lra_create_new_reg): Use lra_assign_reg_val
19521 to assign register content record.
19522 (initialize_lra_reg_info_element): Initial offset to zero.
d70a81dd 19523
b894a1f3
CM
195242013-04-23 Catherine Moore <clm@codesourcery.com>
19525
19526 * config/mips/mips.md (*movhi_internal, *movqi_internal): New
19527 operands. Record compression.
19528
ecd14de9
XDL
195292013-04-23 Xinliang David Li <davidxl@google.com>
19530
19531 * cfghhooks.c (dump_bb_for_graph): Support 'slim' graph dump.
19532
92e776e9
RB
195332013-04-23 Richard Biener <rguenther@suse.de>
19534
19535 PR middle-end/57036
19536 * tree-inline.c (copy_edges_for_bb): Add can_make_abnormal_goto
19537 parameter, only add abnormal goto edges from the copied body
19538 if the call could perform abnormal gotos.
19539 (copy_cfg_body): Adjust.
19540
a15ee567
SN
195412013-04-23 Sofiane Naci <sofiane.naci@arm.com>
19542
19543 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add simd attribute.
19544
08c52234
AS
195452013-04-23 Andreas Schwab <schwab@linux-m68k.org>
19546
19547 * coretypes.h (gimple_stmt_iterator): Add struct to make
19548 compatible with C.
19549
999c1171
RB
195502013-04-23 Richard Biener <rguenther@suse.de>
19551
19552 PR tree-optimization/57026
19553 * tree-vrp.c (simplify_conversion_using_ranges): Do not propagate
19554 from SSA names occuring in abnormal PHI nodes.
19555
53669259
AK
195562013-04-22 Andi Kleen <ak@linux.intel.com>
19557
19558 * lto/lto.c (print_lto_report_1): Fix LTO report names.
19559
1a0ad150
AK
195602013-04-22 Andi Kleen <ak@linux.intel.com>
19561
19562 * lto/lto.c (print_lto_report_1): Declare early.
19563 (read_cgraph_and_symbols): Call print_lto_report_1 early.
19564
057f8f20
AK
195652013-04-22 Andi Kleen <ak@linux.intel.com>
19566
19567 * common.opt (-flto-report-wpa): Add.
19568 * doc/invoke.texi (-flto-report-wpa): Add.
19569 * lto/lto.c (do_whole_program_analysis): Check for lto-report-wpa.
19570 (lto_main): dito.
19571
473b1e05
XDL
195722013-04-22 Xinliang David Li <davidxl@google.com>
19573
19574 * graph.c (draw_cfg_node_succ_edges): Add branch probility as label.
19575 * cfghhooks.c (dump_bb_for_graph): Dump profile count and frquency.
19576 * Makefile.in: New dependency
19577
cabf91cd 19578 David Daney <ddaney.cavm@gmail.com>
b1485a33 19579
cabf91cd
AM
19580 * configure.ac (gcc_cv_as_micromips_support): Use the
19581 --fatal-warnings option.
19582 * configure: Regenerate.
b1485a33 19583
829d0168
MP
195842013-04-22 Marek Polacek <polacek@redhat.com>
19585
19586 PR sanitizer/56990
19587 * tsan.c (instrument_expr): Don't instrument expression
19588 in case its size is zero.
19589
6d9b7208
UB
195902013-04-22 Uros Bizjak <ubizjak@gmail.com>
19591
19592 PR target/57032
19593 Revert:
19594 2013-03-17 Uros Bizjak <ubizjak@gmail.com>
19595
19596 * config/alpha/alpha.c (TARGET_LRA_P): New define.
19597
ea679d55
JG
195982013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
19599
19600 * coretypes.h (gimple_stmt_iterator_d): Forward declare.
19601 (gimple_stmt_iterator): New typedef.
19602 * gimple.h (gimple_stmt_iterator): Rename to...
19603 (gimple_stmt_iterator_d): ... This.
19604 * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Detail restriction that
19605 trees be valid for GIMPLE and GENERIC.
19606 (TARGET_GIMPLE_FOLD_BUILTIN): New.
19607 * gimple-fold.c (gimple_fold_call): Call target hook
19608 gimple_fold_builtin.
19609 * hooks.c (hook_bool_gsiptr_false): New.
19610 * hooks.h (hook_bool_gsiptr_false): New.
19611 * target.def (fold_stmt): New.
19612 * doc/tm.texi: Regenerate.
19613
88a581da
VM
196142013-04-22 Vladimir Makarov <vmakarov@redhat.com>
19615
19616 PR target/57018
19617 * lra-eliminations.c (mark_not_eliminable): Prevent elimination of
19618 a set sp if no stack realignment.
19619
92be22dc
NC
196202013-04-22 Nick Clifton <nickc@redhat.com>
19621
19622 * config.gcc (tilegx-linux): Extend extra_objs rather than
19623 overwriting it.
19624 (tilepro-linux): Likewise.
19625
0ddec79f
JG
196262013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
19627
19628 * config/aarch64/aarch64-builtins.c
19629 (CF): Remove.
19630 (CF0, CF1, CF2, CF3, CF4, CF10): New.
19631 (VAR<1-12>): Add MAP parameter.
19632 (BUILTIN_*): Likewise.
19633 * config/aarch64/aarch64-simd-builtins.def: Set MAP parameter.
19634 * config/aarch64/aarch64-simd.md (aarch64_sshl_n<mode>): Remove.
19635 (aarch64_ushl_n<mode>): Likewise.
19636 (aarch64_sshr_n<mode>): Likewise.
19637 (aarch64_ushr_n<mode>): Likewise.
19638 (aarch64_<maxmin><mode>): Likewise.
19639 (aarch64_sqrt<mode>): Likewise.
19640 * config/aarch64/arm_neon.h (vshl<q>_n_*): Use new builtin names.
19641 (vshr<q>_n_*): Likewise.
19642
0050faf8
JG
196432013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
19644
19645 * config/aarch64/aarch64-builtins.c
19646 (aarch64_simd_builtin_type_mode): Handle SF types.
19647 (sf_UP): Define.
19648 (BUILTIN_GPF): Define.
19649 (aarch64_init_simd_builtins): Handle SF types.
19650 * config/aarch64/aarch64-simd-builtins.def (frecpe): Add support.
19651 (frecps): Likewise.
19652 (frecpx): Likewise.
19653 * config/aarch64/aarch64-simd.md
19654 (simd_types): Update simd_frcp<esx> to simd_frecp<esx>.
19655 (aarch64_frecpe<mode>): New.
19656 (aarch64_frecps<mode>): Likewise.
19657 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRECP<ESX>.
19658 (v8type): Add frecp<esx>.
19659 (aarch64_frecp<FRECP:frecp_suffix><mode>): New.
19660 (aarch64_frecps<mode>): Likewise.
19661 * config/aarch64/iterators.md (FRECP): New.
19662 (frecp_suffix): Likewise.
19663 * config/aarch64/arm_neon.h
19664 (vrecp<esx><qsd>_<fd><32, 64>): Convert to using builtins.
19665
0fad3dbc 196662013-04-22 Christian Bruel <christian.bruel@st.com>
1818d01c
CB
19667
19668 PR target/56995
19669 * config/sh/sh.h (enum reg_class): Remove DF_HI_REGS.
19670 (REG_CLASS_NAMES): Idem.
19671 (REG_CLASS_CONTENTS): Idem.
19672 (REGCLASS_HAS_FP_REG): Idem.
19673 * config/sh/sh.c (sh_cannot_change_mode_class): Idem.
19674 (sh_conditional_register_usage): Idem.
19675
3e8a33f9
JL
196762013-04-21 Jeff Law <law@redhat.com>
19677
19678 * tree-ssa-forwprop.c (simplify_conversion_from_bitmask): New function.
19679 (ssa_forward_propagate_and_combine): Use it.
19680
f38e1b0a
VM
196812013-04-19 Vladimir Makarov <vmakarov@redhat.com>
19682
19683 * lra.c: Update the flow chart diagram.
19684
682303da
VM
196852013-04-19 Vladimir Makarov <vmakarov@redhat.com>
19686
19687 PR rtl-optimization/56847
19688 * lra-constraints.c (process_alt_operands): Discourage alternative
19689 with non-matche doffsettable memory constraint fro memory with
19690 known offset.
19691
f6b64c35
RB
196922013-04-19 Richard Biener <rguenther@suse.de>
19693
19694 PR tree-optimization/56982
19695 * builtins.def (BUILT_IN_LONGJMP): longjmp is not a leaf
19696 function.
19697 * gimplify.c (gimplify_call_expr): Notice special calls.
19698 (gimplify_modify_expr): Likewise.
19699 * tree-cfg.c (make_abnormal_goto_edges): Handle setjmp-like
19700 abnormal control flow receivers.
19701 (call_can_make_abnormal_goto): Handle cfun->calls_setjmp
19702 in the same way as cfun->has_nonlocal_labels.
19703 (gimple_purge_dead_abnormal_call_edges): Likewise.
19704 (stmt_starts_bb_p): Make setjmp-like abnormal control flow
19705 receivers start a basic-block.
19706
01d8bf07
RB
197072013-04-19 Richard Biener <rguenther@suse.de>
19708
19709 * tree-vectorizer.h (struct _slp_instance): Move load_permutation
19710 member ...
19711 (struct _slp_tree): ... here. Make it a vector of unsigned ints.
19712 (SLP_INSTANCE_LOAD_PERMUTATION): Remove.
19713 (SLP_TREE_LOAD_PERMUTATION): Add.
19714 (vect_transform_slp_perm_load): Adjust prototype.
19715 * tree-vect-slp.c (vect_free_slp_tree): Adjust.
19716 (vect_free_slp_instance): Likewise.
19717 (vect_create_new_slp_node): Likewise.
19718 (vect_supported_slp_permutation_p): Remove.
19719 (vect_slp_rearrange_stmts): Adjust.
19720 (vect_supported_load_permutation_p): Likewise. Inline
19721 vect_supported_slp_permutation_p here.
19722 (vect_analyze_slp_instance): Compute load permutations per
19723 slp node instead of per instance.
19724 (vect_get_slp_defs): Adjust.
19725 (vect_transform_slp_perm_load): Likewise.
19726 (vect_schedule_slp_instance): Remove redundant code.
19727 (vect_schedule_slp): Remove hack for PR56270, add it ...
19728 * tree-vect-stmts.c (vectorizable_load): ... here, do not
19729 CSE loads for SLP. Adjust.
19730
ede22fc3
GY
197312013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
19732
19733 * config/arm/arm.c (load_multiple_sequence, ldm_stm_operation_p): Fix
19734 spelling in two comments.
19735
67bc84fb
GY
197362013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
19737
19738 PR target/56797
19739 * config/arm/arm.c (load_multiple_sequence): Require SP
19740 as base register for loads if SP is in the register list.
19741
e248d83f
MJ
197422013-04-19 Martin Jambor <mjambor@suse.cz>
19743
19744 PR tree-optimization/56718
19745 * ipa-cp.c (ipa_value_from_known_type_jfunc): Moved...
19746 * ipa-prop.c (ipa_binfo_from_known_type_jfunc): ...here, renamed
19747 and made public. Adjusted all callers.
19748 (ipa_intraprocedural_devirtualization): New function.
19749 * ipa-prop.h (ipa_binfo_from_known_type_jfunc): Declare.
19750 (ipa_intraprocedural_devirtualization): Likewise.
19751 * Makefile.in (tree-ssa-pre.o): Add ipa-prop.h to dependencies.
19752
4891e8f8
RB
197532013-04-19 Richard Biener <rguenther@suse.de>
19754
19755 PR tree-optimization/57000
19756 * tree-ssa-reassoc.c (pass_reassoc): Add TODO_update_ssa_only_virtuals.
19757
dad89f7c
TG
197582013-04-19 Terry Guo <terry.guo@arm.com>
19759
19760 * config/arm/cortex-m4-fpu.md (cortex_m4_v): Delete cpu unit.
19761 Replace with ...
19762 (cortex_m4_v_a, cortex_m4_v_b): ... new cpu units.
19763 (cortex_m4_v, cortex_m4_exa_va, cortex_m4_exb_vb): New reservations.
19764 (cortex_m4_fmacs): Use new reservations.
19765 (cortex_m4_f_load, cortex_m4_f_store): Likewise.
19766
72ea0d47
VM
197672013-04-18 Vladimir Makarov <vmakarov@redhat.com>
19768
f1e6512c 19769 PR rtl-optimization/56999
72ea0d47
VM
19770 * lra-coalesce.c (coalescable_pseudo_p): Remove 2nd parameter and
19771 related code.
19772 (lra_coalesce): Remove split_origin_bitmap and related code.
19773 * lra.c (lra): Coalesce after undoing inheritance. Recreate live
19774 ranges if necessary.
19775
780a5b71
UB
197762013-04-18 Uros Bizjak <ubizjak@gmail.com>
19777
19778 * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers):
19779 New array.
19780 (ix86_expand_call): Remove clobbered_registers array and use
19781 x86_64_ms_sysv_extra_clobbered_registers instead.
19782 * config/i386/i386.h (x86_64_ms_sysv_extra_clobbered_registers):
19783 Declare here.
19784 * config/i386/predicates.md (call_rex64_ms_sysv_operation): New
19785 predicate.
19786 * config/i386/i386.md (*call_rex64_ms_sysv): Use
19787 call_rex64_ms_sysv_operation predicate. Remove explicit clobbers.
19788 (*call_value_rex64_ms_sysv): Ditto.
19789
6f5a366a
CC
197902013-04-18 Cary Coutant <ccoutant@google.com>
19791
19792 * dwarf2out.c (output_pubnames): Check die_perennial_p of
19793 parent instead of die_mark.
19794
475b8f37
DN
197952013-04-18 Diego Novillo <dnovillo@google.com>
19796
19797 * gimple.c (create_gimple_tmp): New.
19798 (get_expr_type): New.
19799 (build_assign): New.
19800 (build_type_cast): New.
19801 * gimple.h (enum ssa_mode): Define.
19802 (gimple_seq_set_location): New.
19803 * asan.c (build_check_stmt): Change some gimple_build_* calls
780a5b71 19804 to use build_assign and build_type_cast.
475b8f37 19805
08940f33
RB
198062013-04-18 Richard Biener <rguenther@suse.de>
19807
19808 * tree-vect-data-refs.c (vect_analyze_group_access): Properly
19809 handle negative step. Remove redundant checks.
19810 (vect_create_data_ref_ptr): Avoid ICEs with non-constant steps.
19811 * tree-vect-stmts.c (vectorizable_load): Instead of asserting
19812 for negative step and grouped loads fail to vectorize.
19813
0e0f87d4
SB
198142013-04-18 Steven Bosscher <steven@gcc.gnu.org>
19815
19816 * emit-rtl.c (reset_insn_used_flags): New function.
19817 (reset_all_used_flags): Use it.
19818 (verify_insn_sharing): New function.
19819 (verify_rtl_sharing): Fix verification for SEQUENCEs.
19820
4c445590
JJ
198212013-04-18 Jakub Jelinek <jakub@redhat.com>
19822
19823 PR tree-optimization/56984
19824 * tree-vrp.c (register_edge_assert_for_2): For (x >> M) < N
19825 and (x >> M) >= N don't register any assertion if N << M is the
19826 minimum value.
19827
6873ecab
SB
198282013-04-18 Steven Bosscher <steven@gcc.gnu.org>
19829
19830 * lower-subreg.c (resolve_simple_move): If called self-recursive,
19831 do not delete_insn insns that have not yet been emitted, only
19832 unlink them with remove_insn.
19833 * df-scan.c (df_insn_delete): Revert r197492.
19834
3ccb989e
SB
198352013-04-17 Steven Bosscher <steven@gcc.gnu.org>
19836
19837 * emit-rtl.c (link_insn_into_chain): Handle chaining of SEQUENCEs.
19838 * reorg.c (emit_delay_sequence): Simplify with emit-rtl API.
19839
198402013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
0480fff0
GY
19841
19842 * config/arm/arm.md (movsicc_insn): Convert define_insn into
19843 define_insn_and_split.
19844 (and_scc,ior_scc,negscc): Likewise.
19845 (cmpsi2_addneg, subsi3_compare): Convert to named patterns.
19846
3ccb989e 198472013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
367075fe
GY
19848
19849 * config/arm/arm.c (use_return_insn): Return 0 for targets that
19850 can benefit from using a sequence of LDRD instructions in epilogue
19851 instead of a single LDM instruction.
19852
6d10a203
MLI
198532013-04-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
19854
19855 PR 45688
19856 * doc/extend.texi: Fix typo.
19857
6983e6b5
RB
198582013-04-17 Richard Biener <rguenther@suse.de>
19859
19860 * tree-vect-slp.c (vect_build_slp_tree_1): Split out from ...
19861 (vect_build_slp_tree): ... here.
19862 (vect_build_slp_tree_1): Compute which stmts of the SLP group
19863 match. Remove special-casing of mismatched complex loads.
19864 (vect_build_slp_tree): Based on the result from vect_build_slp_tree_1
19865 re-try the match with swapped commutative operands.
19866 (vect_supported_load_permutation_p): Remove special-casing of
19867 mismatched complex loads.
19868 (vect_analyze_slp_instance): Adjust.
19869
ef23e6a2
RB
198702013-04-17 Richard Biener <rguenther@suse.de>
19871
19872 PR rtl-optimization/56921
19873 * cfgloop.h (struct loop): Add simple_loop_desc member.
19874 (struct niter_desc): Mark with GTY(()).
19875 (simple_loop_desc): Do not use aux field but simple_loop_desc.
19876 * loop-iv.c (get_simple_loop_desc): Likewise.
19877 (free_simple_loop_desc): Likewise.
19878
19879 Revert
19880 2013-04-16 Richard Biener <rguenther@suse.de>
19881
19882 PR rtl-optimization/56921
19883 * loop-init.c (pass_rtl_move_loop_invariants): Add
19884 TODO_do_not_ggc_collect to todo_flags_finish.
19885 (pass_rtl_unswitch): Same.
19886 (pass_rtl_unroll_and_peel_loops): Same.
19887 (pass_rtl_doloop): Same.
19888
fc6f94f5
EB
198892013-04-17 Eric Botcazou <ebotcazou@adacore.com>
19890
19891 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): New.
19892 (decl_refs_may_alias_p): Add REF1 and REF2 parameters.
19893 Use nonoverlapping_component_refs_of_decl_p to disambiguate component
19894 references.
19895 (refs_may_alias_p_1): Adjust call to decl_refs_may_alias_p.
19896 * tree-streamer.c (record_common_node): Adjust reference in comment.
19897
10a88311
TG
198982013-04-17 Terry Guo <terry.guo@arm.com>
19899
19900 * config/arm/cortex-m4.md: Add a new bypass.
19901
6d9b7208 199022013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
f3d096b0
N
19903
19904 * config/aarch64/aarch64.md (*adds_<optab><mode>_multp2):
19905 New pattern.
19906 (*subs_<optab><mode>_multp2): New pattern.
19907 (*adds_<optab><ALLX:mode>_<GPI:mode>): New pattern.
19908 (*subs_<optab><ALLX:mode>_<GPI:mode>): New pattern.
19909
6d9b7208 199102013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
860ad33f
N
19911
19912 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>): New pattern.
19913 (*subs_mul_imm_<mode>): New pattern.
19914
18a6701e
DE
199152013-04-16 David Edelsohn <dje.gcc@gmail.com>
19916
19917 PR target/56948
19918 * config/rs6000/vsx.md (vsx_mov<mode>): Add j->r alternative.
19919 (vsx_movti_64bit): Change j->wa to O->wa. Add n->r alternative.
19920 (vsx_movti_32bit): Change j->wa to O->wa.
19921
07c37b2f
RB
199222013-04-16 Richard Biener <rguenther@suse.de>
19923
19924 PR rtl-optimization/56921
19925 * loop-init.c (pass_rtl_move_loop_invariants): Add
19926 TODO_do_not_ggc_collect to todo_flags_finish.
19927 (pass_rtl_unswitch): Same.
19928 (pass_rtl_unroll_and_peel_loops): Same.
19929 (pass_rtl_doloop): Same.
19930
0e0f87d4 199312013-04-16 Greta Yorsh <Greta.Yorsh@arm.com>
974ba22d
GY
19932
19933 * config/arm/arm.c (emit_multi_reg_push): New declaration
19934 for an existing function.
19935 (arm_emit_strd_push): New function.
19936 (arm_expand_prologue): Used here.
19937 (arm_emit_ldrd_pop): New function.
19938 (arm_expand_epilogue): Used here.
19939 (arm_get_frame_offsets): Update condition.
19940 (arm_emit_multi_reg_pop): Add a special case for load of a single
19941 register with writeback.
19942
5e8e2af4
UB
199432013-04-16 Uros Bizjak <ubizjak@gmail.com>
19944
19945 * doc/invoke.texi (i386 Option): Reword -mstack-protector-guard
19946 description.
19947
9fd9ccf7
RB
199482013-04-16 Richard Biener <rguenther@suse.de>
19949
19950 PR tree-optimization/56756
19951 * tree-ssa-loop-im.c (struct first_mem_ref_loc_1): New functor.
19952 (first_mem_ref_loc): New.
19953 (execute_sm): Place the load temporarily before a previous
19954 access instead of in the latch edge to ensure its SSA dependencies
19955 are defined at points dominating the load.
19956
96fba521
SB
199572013-04-16 Steven Bosscher <steven@gcc.gnu.org>
19958
4c8af858
SB
19959 * cfgrtl.c (cfg_layout_merge_blocks): Revert r184005, implement
19960 correct fix by moving header and footer insn to the footer of
19961 the merged basic block. Clear BB_END of the merged-away block.
19962
96fba521
SB
19963 PR middle-end/43631
19964 * emit-rtl.c (make_note_raw): New function.
19965 (link_insn_into_chain): New static inline function.
19966 (add_insn): Use it.
19967 (add_insn_before, add_insn_after): Factor insn chain linking code...
19968 (add_insn_before_nobb, add_insn_after_nobb): ...here, new functions
19969 using link_insn_into_chain.
19970 (note_outside_basic_block_p): New helper function for emit_note_after
19971 and emit_note_before.
19972 (emit_note_after): Use nobb variant of add_insn_after if the note
19973 should not be contained in a basic block.
19974 (emit_note_before): Use nobb variant of add_insn_before if the note
19975 should not be contained in a basic block.
19976 (emit_note_copy): Use make_note_raw.
19977 (emit_note): Likewise.
19978 * bb-reorder.c (insert_section_boundary_note): Remove hack to set
19979 BLOCK_FOR_INSN to NULL manually for NOTE_INSN_SWITCH_TEXT_SECTIONS.
19980 * jump.c (cleanup_barriers): Use reorder_insns_nobb to avoid making
19981 the moved barrier the tail of the basic block it follows.
19982 * var-tracking.c (pass_variable_tracking): Add TODO_verify_flow.
19983
7b8265ba
JJ
199842013-04-15 Jakub Jelinek <jakub@redhat.com>
19985
19986 PR tree-optimization/56962
19987 * gimple-ssa-strength-reduction.c (record_increment): Only set
19988 initializer if gimple_assign_rhs_code is {,POINTER_}PLUS_EXPR and
19989 either rhs1 or rhs2 is equal to c->base_expr.
19990
5185d248
RB
199912013-04-15 Richard Biener <rguenther@suse.de>
19992
19993 PR tree-optimization/56933
19994 * tree-vectorizer.h (struct _stmt_vec_info): Remove read_write_dep
19995 member.
19996 (GROUP_READ_WRITE_DEPENDENCE): Remove.
19997 (STMT_VINFO_GROUP_READ_WRITE_DEPENDENCE): Likewise.
19998 * tree-vect-data-refs.c (vect_analyze_group_access): Move
19999 dependence check ...
20000 vect_analyze_data_ref_dependence (vect_analyze_data_ref_dependence):
20001 ... here.
20002 * tree-vect-stmts.c (new_stmt_vec_info): Do not initialize
20003 GROUP_READ_WRITE_DEPENDENCE.
20004
a24243a0
AK
200052013-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20006
20007 * emit-rtl.c (reset_all_used_flags): New function.
20008 (verify_rtl_sharing): Call reset_all_used_flags before and after
20009 performing the checks.
20010
1c50eada
KT
200112013-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20012
20013 * config/arm/arm.c (const_ok_for_dimode_op): Handle AND case.
20014 * config/arm/arm.md (*anddi3_insn): Change to insn_and_split.
20015 * config/arm/constraints.md (De): New constraint.
20016 * config/arm/neon.md (anddi3_neon): Delete.
20017 (neon_vand<mode>): Expand to standard anddi3 pattern.
20018 * config/arm/predicates.md (imm_for_neon_inv_logic_operand):
20019 Move earlier in the file.
20020 (neon_inv_logic_op2): Likewise.
20021 (arm_anddi_operand_neon): New predicate.
20022
e927b6ad
RO
200232013-04-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20024
20025 * configure.ac (gcc_cv_ld_as_needed): Set
20026 gcc_cv_ld_as_needed_option, gcc_cv_no_as_needed_option.
20027 Use -z ignore, -z record on *-*-solaris2*.
20028 (HAVE_LD_AS_NEEDED): Update comment.
20029 (LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION): Define.
20030 * configure: Regenerate.
20031 * config.in: Regenerate.
20032 * gcc.c (init_gcc_specs) [USE_LD_AS_NEEDED]: Use
20033 LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION.
20034 * config/sol2.h [HAVE_LD_AS_NEEDED] (USE_LD_AS_NEEDED): Define.
20035 * doc/tm.texi.in (USE_LD_AS_NEEDED): Allow for --as-needed
20036 equivalents. Fix markup.
20037 * doc/tm.texi: Regenerate.
20038
e0ea8797
AH
200392013-04-15 Andrew Hsieh <andrewhsieh.google.com>
20040
20041 * config/i386/i386.opt: New option mstack-protector-guard=.
20042 * config/i386/i386-opts.h: Add enum stack_protector_guard.
20043 * config/i386/i386.h: Define TARGET_SSP_GLOBAL_GUARD and
20044 TARGET_SSP_TLS_GUARD.
20045 * config/i386/i386.c (ix86_option_override_internal): Set
20046 ix86_stack_protector_guard.
20047 * config/i386/i386.md (stack_protect_set): Enable for
20048 TARGET_SSP_TLS_GUARD only.
20049 (stack_protect_set_<mode>): Ditto.
20050 (stack_protect_test): Ditto.
20051 (stack_protect_test_<mode>): Ditto.
20052 * doc/invoke.texi (i386 Option): Document.
20053
811b72f9
EB
200542013-04-15 Eric Botcazou <ebotcazou@adacore.com>
20055
20056 PR target/56890
20057 * config/sparc/sparc.c (enum sparc_mode_class): Add H_MODE value.
20058 (S_MODES): Set H_MODE bit.
20059 (SF_MODES): Set only S_MODE and SF_MODE bits.
20060 (DF_MODES): Set SF_MODES and only D_MODE and DF_MODE bits.
20061 (sparc_init_modes) <MODE_INT>: Set H_MODE bit for sub-word modes.
20062 <MODE_VECTOR_INT>: Do not set SF_MODE for sub-word modes.
20063 <MODE_FLOAT>: Likewise.
20064
5529fdd6
JY
200652013-04-15 Joey Ye <joey.ye@arm.com>
20066
20067 * config/arm/arm.c (thumb_far_jump_used_p): Fix typo in comments.
20068
517b1da2
JY
200692013-04-15 Joey Ye <joey.ye@arm.com>
20070
20071 * config/arm/arm.c (thumb1_final_prescan_insn): Assert lr save
20072 for real far jump.
20073 (thumb_far_jump_used_p): Count instruction size and set
20074 far_jump_used.
20075
01007ae0
EB
200762013-04-14 Eric Botcazou <ebotcazou@adacore.com>
20077
20078 * reorg.c (fill_simple_delay_slots): Reindent block of code.
20079 * resource.c (mark_target_live_regs): Reformat conditional block.
20080
c46f6580
SB
200812013-04-13 Steven Bosscher <steven@gcc.gnu.org>
20082
20083 * sched-deps.c (deps_analyze_insn): Do not check for EH_REGION insn
20084 notes, they are emitted only just before final.
20085 * sched-int.h: Include insn-attr.h before checking INSN_SCHEDULING.
20086
1f397f45
SB
200872013-04-13 Steven Bosscher <steven@gcc.gnu.org>
20088
20089 * emit-rtl.c (remove_insn): Do not call df_insn_delete here.
20090 * cfgrtl.c (delete_insn): Call it here instead.
20091 * lra-spills.c (lra_final_code_change): Use delete_insn.
20092 * haifa-sched.c (sched_remove_insn): Likewise.
20093 * sel-sched-ir.c (return_nop_to_pool): Clear INSN_DELETED_P for nops
20094 returning to the nop pool.
20095 (sel_remove_insn): Simplify the only_disconnect case via remove_insn,
20096 use delete_insn for definitive removal. Clear BLOCK_FOR_INSN.
20097
58a51369
SB
200982013-04-12 Steven Bosscher <steven@gcc.gnu.org>
20099
20100 * doc/tm.texi.in (LOOP_ALIGN): Remove loop note references.
20101 * doc/tm.texi: Regenerated.
20102
33159866
UB
201032013-04-12 Uros Bizjak <ubizjak@gmail.com>
20104
20105 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use ANY_QI_REGNO_P in
20106 QImode checks.
20107
226e378f
SB
201082013-04-12 Steven Bosscher <steven@gcc.gnu.org>
20109
20110 * df-core.c (df_find_def): Compare register numbers.
20111 (df_find_use): Likewise.
20112
fafb9b18
VM
201132013-04-12 Vladimir Makarov <vmakarov@redhat.com>
20114
20115 PR target/56903
20116 * config/i386/i386.c (ix86_hard_regno_mode_ok): Add
20117 lra_in_progress for return.
20118
9a946fd6
GY
201192013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
20120
20121 * config/arm/arm.md (mov_scc,mov_negscc,mov_notscc): Convert
20122 define_insn into define_insn_and_split and emit movsicc patterns.
20123
41b83758
GY
201242013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
20125
20126 * config/arm/arm.c (gen_operands_ldrd_strd): Initialize "base".
20127
d3afd9aa
RB
201282013-04-12 Richard Biener <rguenther@suse.de>
20129
20130 * tree-pass.h (TODO_do_not_ggc_collect): New.
20131 * passes.c (execute_one_ipa_transform_pass): Honor
20132 TODO_do_not_ggc_collect.
20133 (execute_one_pass): Likewise.
20134
20135 Revert
20136 2013-04-10 Richard Biener <rguenther@suse.de>
20137
20138 * passes.c (init_optimization_passes): Remove reload pass.
20139 * ira.c (do_reload): Merge into ...
20140 (ira): ... this.
20141 (rest_of_handle_reload): Remove.
20142 (pass_reload): Likewise.
20143 * config/i386/i386.c (ix86_option_override): Refer to ira instead
20144 of reload for vzeroupper pass placement.
20145
06f9b387
JJ
201462013-04-12 Jakub Jelinek <jakub@redhat.com>
20147
20148 PR tree-optimization/56918
20149 PR tree-optimization/56920
20150 * fold-const.c (int_const_binop_1): Use op1.mul_with_sign (op2, ...)
20151 instead of op1 - op2. Pass 2 * TYPE_PRECISION (type) as second
20152 argument to rshift method. For 2 * HOST_BITS_PER_WIDE_INT precision
20153 use wide_mul_with_sign method.
20154
953094d2
RB
201552013-04-12 Richard Biener <rguenther@suse.de>
20156
20157 * gimple.c (is_gimple_constant): Vector CONSTRUCTORs should
20158 not be considered a gimple constant.
20159
bb506982
MG
201602013-04-12 Marc Glisse <marc.glisse@inria.fr>
20161
20162 * fold-const.c (const_binop): Handle vector shifts by a scalar.
20163 (fold_binary_loc): Call const_binop also for mixed vector-scalar
20164 operations.
20165
4b84d650
JJ
201662013-04-12 Manuel López-Ibáñez <manu@gcc.gnu.org>
20167 Jakub Jelinek <jakub@redhat.com>
20168
20169 * opts.c: Include diagnostic-color.h.
20170 (common_handle_option): Handle OPT_fdiagnostics_color_.
20171 * Makefile.in (OBJS-libcommon): Add diagnostic-color.o.
20172 (diagnostic.o, opts.o, pretty-print.o): Depend on diagnostic-color.h.
20173 (diagnostic-color.o): New.
20174 * common.opt (fdiagnostics-color, fdiagnostics-color=): New options.
20175 (diagnostic_color_rule): New enum.
20176 * dwarf2out.c (gen_producer_string): Don't print -fdiagnostics-color*.
20177 * langhooks.c (lhd_print_error_function): Add %r "locus" and %R around
20178 the location string.
20179 * diagnostic.def: Add 3rd argument to DEFINE_DIAGNOSTIC_KIND macros,
20180 either NULL, or color kind.
20181 * diagnostic-color.c: New file.
20182 * diagnostic-color.h: New file.
20183 * diagnostic-core.h (DEFINE_DIAGNOSTIC_KIND): Adjust macro for 3
20184 arguments.
20185 * doc/invoke.texi (-fdiagnostics-color): Document.
20186 * pretty-print.h (pp_show_color): Define.
20187 (struct pretty_print_info): Add show_color field.
20188 * diagnostic.c: Include diagnostic-color.h.
20189 (diagnostic_build_prefix): Adjust for 3 argument DEFINE_DIAGNOSTIC_KIND
20190 macros. Colorize error:, warning: etc. strings and also the location
20191 string.
20192 (diagnostic_show_locus): Colorize the caret line.
20193 * pretty-print.c: Include diagnostic-color.h.
20194 (pp_base_format): Handle %r and %R format specifiers. Colorize strings
20195 inside of %< %> quotes or quoted through q format modifier.
20196
067a1e71
AK
201972013-04-12 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20198
33159866 20199 * ifcvt.c (end_ifcvt_sequence): Mark a and b for unsharing as well.
067a1e71 20200
33159866 202012013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
b056c910
N
20202
20203 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Allow NEG
20204 code in CC_NZ mode.
20205 * config/aarch64/aarch64.md (*neg_<shift><mode>3_compare0): New
20206 pattern.
20207
7b55f98f
MP
202082013-04-11 Marek Polacek <polacek@redhat.com>
20209
20210 PR tree-optimization/48184
33159866 20211 * params.def (PARAM_ALIGN_THRESHOLD): Increase the minimum value to 1.
7b55f98f 20212
966b587e
EB
202132013-04-11 Eric Botcazou <ebotcazou@adacore.com>
20214
20215 * stor-layout.c (skip_simple_constant_arithmetic): Move to...
20216 * tree.c (skip_simple_constant_arithmetic): ...here and make public.
20217 (skip_simple_arithmetic): Tidy up.
20218 * tree.h (skip_simple_constant_arithmetic): Declare.
20219
33159866 202202013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
f8bf91ab
N
20221
20222 * config/aarch64/aarch64.h (REVERSIBLE_CC_MODE): Define.
20223
1d42c1ec
RB
202242013-04-11 Richard Biener <rguenther@suse.de>
20225
20226 * tree-vect-loop.c (get_initial_def_for_induction): Properly
20227 generate vector constants.
20228
4ba5ea11
RB
202292013-04-11 Richard Biener <rguenther@suse.de>
20230
20231 PR tree-optimization/56878
20232 * tree-flow.h (outermost_invariant_loop_for_expr): Declare.
20233 * tree-ssa-loop-ivopts.c (outermost_invariant_loop_for_expr):
20234 New function.
20235 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
20236 Prefer to align the DR with the most invariant base address.
20237
f0defe58
SKS
202382013-04-11 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
20239
20240 * opts.c (common_handle_option): Fix formatting and add FALLTHRU
20241 comment.
20242
d07458be
JG
202432013-04-11 James Greenhalgh <james.greenhalgh@arm.com>
20244
20245 * config/aarch64/aarch64-simd.md (aarch64_vcond_internal): Fix
20246 floating-point vector comparisons against 0.
20247
146b8692
JJ
202482013-04-11 Jakub Jelinek <jakub@redhat.com>
20249
20250 PR tree-optimization/56899
20251 * fold-const.c (extract_muldiv_1): Apply distributive law
20252 only if TYPE_OVERFLOW_WRAPS (ctype).
20253
b8578ff7
BC
202542013-04-11 Bin Cheng <bin.cheng@arm.com>
20255
20256 PR target/56124
20257 * ira-costs.c (scan_one_insn): Check whether the source rtx of
20258 loading has side effect.
20259
0ea8a6f9
SB
202602013-04-10 Steven Bosscher <steven@gcc.gnu.org>
20261
20262 * config/sparc/sparc.c: Include tree-pass.h.
20263 (TARGET_MACHINE_DEPENDENT_REORG): Do not redefine.
20264 (sparc_reorg): Rename to sparc_do_work_around_errata. Move to
20265 head of file. Change return type. Split off gate function.
20266 (sparc_gate_work_around_errata): New function.
20267 (pass_work_around_errata): New pass definition.
20268 (insert_pass_work_around_errata) New pass insert definition to
20269 insert pass_work_around_errata just after delayed-branch scheduling.
20270 (sparc_option_override): Insert the pass.
20271 * config/sparc/t-sparc (sparc.o): Add TREE_PASS_H dependence.
20272
42e37616
DM
202732013-04-10 David S. Miller <davem@davemloft.net>
20274
89deeb3b
DM
20275 * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=supersparc
20276 or -mcpu=hypersparc.
20277
42e37616
DM
20278 * target.def (cstore_mode): New hook.
20279 * target.h: Include insn-codes.h
20280 * targhooks.c: Likewise.
20281 (default_cstore_mode): New function.
20282 * targhooks.h: Declare it.
20283 * doc/tm.texi.in: New hook slot for TARGET_CSTORE_MODE.
20284 * doc/tm.texi: Rebuild.
20285 * expmed.c (emit_cstore): Obtain cstore boolean result mode using
20286 target hook, rather than inspecting the insn_data.
20287 * config/sparc/sparc.c (sparc_cstore_mode): New function.
20288 (TARGET_CSTORE_MODE): Redefine.
20289 (emit_scc_insn): When TARGET_ARCH64, emit new 64-bit boolean
20290 result patterns.
20291 * config/sparc/predicates.md (cstore_result_operand): New special
20292 predicate.
20293 * config/sparc/sparc.md (cstoresi4, cstoredi4, cstore<F:mode>4):
20294 Use it for operand 0.
20295 (*seqsi_special): Rewrite using 'P' mode iterator on operand 0.
20296 (*snesi_special): Likewise.
20297 (*snesi_zero): Likewise.
20298 (*seqsi_zero): Likewise.
20299 (*sltu_insn): Likewise.
20300 (*sgeu_insn): Likewise.
20301 (*seqdi_special): Make operand 0 and comparison operation be of
20302 DImode.
20303 (*snedi_special): Likewise.
20304 (*snedi_special_vis3): Likewise.
20305 (*neg_snesi_zero): Rename to *neg_snesisi_zero.
20306 (*neg_snesi_sign_extend): Rename to *neg_snesidi_zero.
20307 (*snesi_zero_extend): Delete, covered by 'P' mode iterator.
20308 (*neg_seqsi_zero): Rename to *neg_seqsisi_zero.
20309 (*neg_seqsi_sign_extend): Rename to *neg_seqsidi_zero.
20310 (*seqsi_zero_extend): Delete, covered by 'P' mode iterator.
20311 (*sltu_extend_sp64): Likewise.
20312 (*neg_sltu_insn): Rename to *neg_sltusi_insn.
20313 (*neg_sltu_extend_sp64): Rename to *neg_sltudi_insn.
20314 (*sgeu_extend_sp64): Delete, covered by 'P' mode iterator.
20315 (*neg_sgeu_insn): Rename to *neg_sgeusi_insn.
20316 (*neg_sgeu_extend_sp64): Rename to *neg_sgeudi_insn.
20317
95ca411e
YZ
203182013-04-10 Yufeng Zhang <yufeng.zhang@arm.com>
20319
20320 * config/aarch64/aarch64.c (aarch64_print_extension): New function.
20321 (aarch64_start_file): Use the new function.
20322
6782438d 203232013-04-10 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
33159866 20324 Jason Merrill <jason@redhat.com>
6782438d
SKS
20325
20326 * common.opt: Add -gdwarf.
20327 * opts.c (common_handle_option): Handle it.
20328 * gcc.c (ASM_DEBUG_SPEC): Don't expect "-2" for DWARF.
20329
bb313b93
RB
203302013-04-10 Richard Biener <rguenther@suse.de>
20331
20332 * passes.c (execute_todo): Do not call ggc_collect conditional here.
20333 (execute_one_ipa_transform_pass): But unconditionally here.
20334 (execute_one_pass): And here.
20335 (init_optimization_passes): Remove reload pass.
20336 * tree-pass.h (TODO_ggc_collect): Remove.
20337 (pass_reload): Likewise.
20338 * ira.c (do_reload): Merge into ...
20339 (ira): ... this.
20340 (rest_of_handle_reload): Remove.
20341 (pass_reload): Likewise.
20342 * config/i386/i386.c (ix86_option_override): Refer to ira instead
20343 of reload for vzeroupper pass placement.
20344 * <everywhere>: Remove TODO_ggc_collect from todo_flags_start
20345 and todo_flags_finish of all passes.
20346
793d9a16
RB
203472013-04-10 Richard Biener <rguenther@suse.de>
20348
20349 * tree-vectorizer.h (struct _slp_oprnd_info): Remove
20350 first_const_oprnd field, rename first_def_type to first_op_type.
20351 * tree-vect-slp.c (vect_create_oprnd_info): Adjust.
20352 (vect_get_and_check_slp_defs): Always use the type of the
20353 operand. Allow mixed vect_external_def, vect_constant_def types.
20354 (vect_get_constant_vectors): Handle mixed vect_external_def,
20355 vect_constant_def types.
20356
12211b99 203572013-04-10 Joern Rennecke <joern.rennecke@embecosm.com>
ee8a9b7b
JR
20358
20359 PR tree-optimization/55524
20360 * tree-ssa-math-opts.c
20361 (convert_mult_to_fma): Don't use an fms construct
20362 when we don't have an fms operation, but fnma, and it looks
20363 likely that we'll be able to use the latter.
20364
12211b99 203652013-04-10 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
6957a6f6
ZZ
20366
20367 * cif-code.def (OVERWRITABLE): Correct the comment for overwritable
20368 function.
20369 * ipa-inline.c (can_inline_edge_p): Let dump mechanism report the
20370 inline fail caused by overwritable functions.
20371
34ab4a5b
CJW
203722013-04-10 Chung-Ju Wu <jasonwucj@gmail.com>
20373
20374 * combine.c (simplify_compare_const): Use GET_MODE_MASK to filter out
20375 unnecessary bits in the constant power of two case.
20376
abf9bfbc
RB
203772013-04-10 Richard Biener <rguenther@suse.de>
20378
20379 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove
20380 broken code swapping operands.
20381 (vect_build_slp_tree): Do not compute load permutations here.
20382 (vect_analyze_slp_instance): Compute load permutations here,
20383 after building the SLP tree.
20384
f408477e
CB
203852013-04-09 Christian Bruel <christian.bruel@st.com>
20386
20387 * config/sh/sh.md (barrier_align): Use next/prev_active_insn instead
20388 of next/prev_real_insn.
20389
5ac42672
JH
203902013-04-09 Jan Hubicka <jh@suse.cz>
20391
abf9bfbc
RB
20392 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
20393 Drop aliased parameter.
5ac42672
JH
20394 (function_and_variable_visibility): Do not handle alias pairs.
20395 * cgraph.c (varpool_externally_visible_p): Update prototype.
20396 * varpool.c (varpool_add_new_variable): Update.
20397
5017f1d2
KT
203982013-04-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20399
20400 * config/arm/arm.md (minmax_arithsi_non_canon): New pattern.
20401
48eecbee
SB
204022013-04-09 Steven Bosscher <steven@gcc.gnu.org>
20403
a949cf1c
SB
20404 * sched-vis.c (print_pattern): Print SEQUENCE of insns as insns.
20405
48eecbee
SB
20406 * config/sparc/sparc.md: Use define_c_enum for "unspec" and "unspecv".
20407
75ef8e3d
MP
204082013-04-09 Marek Polacek <polacek@redhat.com>
20409
20410 PR tree-optimization/48762
33159866 20411 * params.def (PARAM_MAX_CSE_INSNS): Increase the minimum value to 1.
75ef8e3d 20412
23847df4
RB
204132013-04-09 Richard Biener <rguenther@suse.de>
20414
20415 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove code
20416 dealing with cost.
20417 (vect_build_slp_tree): Likewise.
20418 (vect_analyze_slp_cost_1, vect_analyze_slp_cost): New functions
20419 calculating the cost of a SLP instance.
20420 (vect_analyze_slp_instance): Use it from here, after building
20421 the SLP tree.
20422
ea3a0fde
JJ
204232013-04-09 Jakub Jelinek <jakub@redhat.com>
20424
20425 PR middle-end/56883
20426 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
20427 expand_omp_for_static_chunk): Use simple_p = true in
20428 force_gimple_operand_gsi calls when assigning to addressable decls.
20429
a32dfe9d
JL
204302013-04-09 Jeff Law <law@redhat.com>
20431
20432 * tree-vrp.c (simplify_cond_using_ranges): Simplify test of boolean
20433 when the boolean was created by converting a wider object which
20434 had a boolean range.
20435
d755c7ef
RB
204362013-04-09 Richard Biener <rguenther@suse.de>
20437
20438 * tree-vectorizer.h (slp_void_p): Remove.
20439 (slp_tree): Typedef before _slp_tree declaration.
20440 (struct _slp_tree): Use a vector of slp_tree as children.
20441 (vect_get_place_in_interleaving_chain): Remove.
20442 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain):
20443 Move ...
20444 * tree-vect-slp.c (vect_get_place_in_interleaving_chain): ... here
20445 and make static.
20446 (vect_free_slp_tree, vect_print_slp_tree, vect_mark_slp_stmts,
20447 vect_mark_slp_stmts_relevant, vect_slp_rearrange_stmts,
20448 vect_detect_hybrid_slp_stmts, vect_slp_analyze_node_operations,
20449 vect_schedule_slp_instance, vect_remove_slp_scalar_calls):
20450 Use slp_node instead of slp_void_p and adjust.
20451
3d741091
RB
204522013-04-09 Richard Biener <rguenther@suse.de>
20453
20454 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Avoid
20455 work that is not necessary.
20456
39307ba7
JJ
204572013-04-09 Jakub Jelinek <jakub@redhat.com>
20458
20459 PR tree-optimization/56854
20460 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't
20461 forward into clobber stmts if it would change MEM_REF lhs into
20462 non-MEM_REF.
20463
343881fd
MK
204642013-04-09 Maxim Kuvyrkov <maxim@kugelworks.com>
20465
20466 * tree.c (type_hash_lookup, type_hash_add): Make static.
20467 * tree.h (type_hash_lookup, type_hash_add): Remove global declarations.
20468
3922658a
RB
204692013-04-09 Richard Biener <rguenther@suse.de>
20470
20471 * tree.h (unsave_expr_now): Remove.
20472 * tree-inline.c (mark_local_for_remap_r): Remove.
20473 (unsave_expr_1): Likewise.
20474 (unsave_r): Likewise.
20475 (unsave_expr_now): Likewise.
20476 * tree-ssa-copy.c (replace_exp_1): Use unshare_expr.
20477 (propagate_tree_value): Likewise.
20478
9fb6b620
SB
204792013-04-08 Steven Bosscher <steven@gcc.gnu.org>
20480
20481 * doc/rtl.texi (sequence): Rewrite documentation to match the
20482 current use of SEQUENCE rtl objects.
20483 * rtl.def (SEQUENCE): Likewise.
20484
20485 * doc/rtl.texi (NOTE_INSN_EH_REGION_BEG, NOTE_INSN_EH_REGION_END):
20486 Update documentation.
20487 (NOTE_INSN_LOOP_BEG, NOTE_INSN_LOOP_END, NOTE_INSN_LOOP_CONT,
20488 NOTE_INSN_LOOP_VTOP): Remove documentation for non-existing notes.
20489
20490 * reg-notes.def (REG_EH_CONTEXT): Remove unused note.
20491
8ddb5a29
TJ
204922013-04-08 Teresa Johnson <tejohnson@google.com>
20493
20494 * basic-block.h (GCOV_COMPUTE_SCALE): Define.
20495 * ipa-inline-analysis.c (param_change_prob): Use helper rounding divide
33159866 20496 methods.
8ddb5a29
TJ
20497 (estimate_edge_size_and_time): Add comment to suggest using rounding
20498 methods.
20499 (estimate_node_size_and_time): Ditto.
20500 (remap_edge_change_prob): Use helper rounding divide methods.
20501 * value-prof.c (gimple_divmod_fixed_value_transform): Ditto.
20502 (gimple_mod_pow2_value_transform): Ditto.
20503 (gimple_mod_subtract_transform): Ditto.
20504 (gimple_ic_transform): Ditto.
20505 (gimple_stringops_transform): Ditto.
20506 * stmt.c (conditional_probability): Ditto.
20507 (emit_case_dispatch_table): Ditto.
20508 * lto-cgraph.c (merge_profile_summaries): Ditto.
20509 * tree-optimize.c (execute_fixup_cfg): Ditto.
20510 * cfgcleanup.c (try_forward_edges): Ditto.
20511 * cfgloopmanip.c (scale_loop_profile): Ditto.
20512 (loopify): Ditto.
20513 (duplicate_loop_to_header_edge): Ditto.
20514 (lv_adjust_loop_entry_edge): Ditto.
20515 * tree-vect-loop.c (vect_transform_loop): Ditto.
20516 * profile.c (compute_branch_probabilities): Ditto.
20517 * cfgbuild.c (compute_outgoing_frequencies): Ditto.
20518 * lto-streamer-in.c (input_cfg): Ditto.
20519 * gimple-streamer-in.c (input_bb): Ditto.
20520 * ipa-cp.c (update_profiling_info): Ditto.
20521 (update_specialized_profile): Ditto.
20522 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Ditto.
20523 * cfg.c (update_bb_profile_for_threading): Add comment to suggest using
33159866 20524 rounding methods.
8ddb5a29
TJ
20525 * sched-rgn.c (compute_dom_prob_ps): Ditto.
20526 (compute_trg_info): Ditto.
20527 * cfgrtl.c (force_nonfallthru_and_redirect): Ditto.
20528 (purge_dead_edges): Ditto.
20529 * loop-unswitch.c (unswitch_loop): Ditto.
20530 * cgraphclones.c (cgraph_clone_edge): Ditto.
20531 (cgraph_clone_node): Ditto.
20532 * tree-inline.c (copy_bb): Ditto.
20533 (copy_edges_for_bb): Ditto.
20534 (initialize_cfun): Ditto.
20535 (copy_cfg_body): Ditto.
20536 (expand_call_inline): Ditto.
20537
661e6bd7
KT
205382013-04-08 Kai Tietz <ktietz@redhat.com>
20539
20540 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Replaced
20541 TARGET_CYGWIN64 by TARGET_64BIT.
20542
105766f3
JR
205432013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
20544
20545 * config/epiphany/epiphany.md (GPR_1): New constant.
20546 (define_expand "mov<mode>cc): FAIL if gen_compare_reg returned 0.
20547 * config/epiphany/epiphany.c (gen_compare_reg):
20548 For flag_finite_math_only, avoid swapping operands when r0 and/or r1
20549 is already in place.
20550 Use GPR_0 / GPR_1 instead of 0/1 for r0/r1 register numbers.
20551 Don't require being called during rtl expansion; If y operlaps r0,
20552 return 0.
20553 (epiphany_compute_frame_size, epiphany_expand_prologue): Use GPR_1.
20554 (epiphany_expand_epilogue): Likewise.
20555
8afab237
JR
20556 * config/epiphany/epiphany.c (epiphany_select_cc_mode):
20557 Don't use CC_FPmode for ORDERED / UNORDERED.
33159866 20558 * config/epiphany/epiphany.md (cmpsf_ord): Make pattern unconditional.
8afab237 20559
fa7707d6
JR
20560 * config/epiphany/constraints.md (CnL): New constraint.
20561 * config/epiphany/epiphany.md (addsi3_i): Add r/r/CnL alternative.
20562 * config/epiphany/predicates.md (add_operand): Allow 1024.
20563
5138e18d
JR
20564 * config/epiphany/epiphany.md (logical_op): New code iterator.
20565 (op_mnc): New code attribute.
20566 (<op_mnc>_f, mov_f, cstoresi4): New patterns.
20567 (mov_f+1, mov_f+2): New peephole2 patterns.
20568
2ccc703d
JR
20569 * config/epiphany/epiphany.md (mov_f+2): New peephole2 pattern.
20570 (cstoresi4): Also allow re-use of zero result when doing a NE
20571 comparison to a non-zero operand.
aefb0819 20572 Use (clobber (scratch)) for first insn if the gpr output is not needed.
2ccc703d 20573
093ac0a5
JR
20574 * config/epiphany/epiphany.md (<insn_opname>v2si3):
20575 Use gen_addsi3_i / gen_subsi3_i.
20576
f223bb13
JJ
205772013-04-08 Jakub Jelinek <jakub@redhat.com>
20578
20579 PR c++/34949
20580 PR c++/50243
20581 * tree-eh.c (optimize_clobbers): Only remove clobbers if bb doesn't
20582 contain anything but clobbers, at most one __builtin_stack_restore,
20583 optionally debug stmts and final resx, and if it has at least one
20584 incoming EH edge. Don't check for SSA_NAME on LHS of a clobber.
20585 (sink_clobbers): Don't check for SSA_NAME on LHS of a clobber.
20586 Instead of moving clobbers with MEM_REF LHS with SSA_NAME address
20587 which isn't defaut definition, remove them.
20588 (unsplit_eh, cleanup_empty_eh): Use single_{pred,succ}_{p,edge}
20589 instead of EDGE_COUNT comparisons or EDGE_{PRED,SUCC}.
20590 * tree-ssa-ccp.c (execute_fold_all_builtins): Remove clobbers
20591 with MEM_REF LHS with SSA_NAME address.
20592
4481581f
JL
205932013-04-08 Jeff Law <law@redhat.com>
20594
20595 * gimple.c (canonicalize_cond_expr_cond): Rewrite x ^ y into x != y.
a32dfe9d 20596
451dabda
RB
205972013-04-08 Richard Biener <rguenther@suse.de>
20598
20599 * gimple-pretty-print.c (debug_gimple_stmt): Do not print
20600 extra newline.
20601 * tree-vect-loop.c (vect_determine_vectorization_factor): Dump
20602 determined vector type.
20603 (vect_analyze_data_refs): Likewise.
20604 (vect_get_new_vect_var): Adjust.
20605 (vect_create_destination_var): Preserve SSA name versions.
20606 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Do
20607 not dump anything here.
20608
3b088b47
JR
206092013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
20610
20611 * config/epiphany/epiphany.h (struct GTY (()) machine_function):
20612 Add member lr_slot_known.
20613 * config/epiphany/epiphany.md (reload_insi_ra): Compute lr_slot_offs
20614 if necessary.
20615 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
20616 Remove code that sets lr_slot_offset according to what a previous
20617 version of epiphany_emit_save_restore used to do.
20618 (epiphany_emit_save_restore): When doing an lr save or restore,
20619 set/verify lr_slot_known and lr_slot_offset.
20620
d8484d41
XQ
206212013-04-08 Xinyu Qi <xyqi@marvell.com>
20622
33159866
UB
20623 PR target/54338
20624 * config/arm/arm.h (REG_CLASS_CONTENTS): Include IWMMXT_GR_REGS
d8484d41
XQ
20625 in ALL_REGS.
20626
481be1c4
RB
206272013-04-08 Richard Biener <rguenther@suse.de>
20628
20629 * alias.c (find_base_term): Fix thinko in previous change.
20630
401f3a81
JJ
206312013-04-08 Jakub Jelinek <jakub@redhat.com>
20632
20633 * tree-loop-distribution.c (const_with_all_bytes_same): New function.
20634 (generate_memset_builtin): Only handle integer_all_onesp as -1 val if
20635 TYPE_PRECISION is equal to mode bitsize. Use const_with_all_bytes_same
20636 if possible to compute val.
20637 (classify_partition): Verify CONSTRUCTOR doesn't have any elts.
20638 For QImode integers don't require anything about precision. Use
20639 const_with_all_bytes_same to find out if the constant doesn't have
20640 repeated bytes in it.
20641
03ed99a8
AK
206422013-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20643
20644 * config/s390/s390.c (s390_expand_insv): Only accept insertions
20645 within mode size.
20646
781b2e62
MP
206472013-04-08 Marek Polacek <polacek@redhat.com>
20648
20649 PR rtl-optimization/48182
20650 * params.def (PARAM_MIN_CROSSJUMP_INSNS): Increase the minimum
20651 value to 1.
20652
27e430a2
JDA
206532013-04-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20654
20655 PR target/55487
20656 * config/pa/pa.c (legitimize_pic_address): Before incrementing label
20657 nuses, make sure we have a label.
20658
4902aa64
BS
206592013-04-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
20660
20661 PR target/56843
20662 * config/rs6000/rs6000.c (rs6000_emit_swdiv_high_precision): Remove.
20663 (rs6000_emit_swdiv_low_precision): Remove.
20664 (rs6000_emit_swdiv): Rewrite to handle between one and four
20665 iterations of Newton-Raphson generally; modify required number of
20666 iterations for some cases.
20667 * config/rs6000/rs6000.h (RS6000_RECIP_HIGH_PRECISION_P): Remove.
20668
7bca81dc
SB
206692013-04-05 Steven Bosscher <steven@gcc.gnu.org>
20670
20671 * bb-reorder.c (fix_crossing_unconditional_branches): Remove a
20672 set-but-unused variable.
20673
20674 * cgraph.c (cgraph_release_function_body): Clear cfun->cfg to make
20675 basic blocks of released function bodies garbage-collectable.
20676
20677 * ree.c (find_and_remove_re): Do not call df_finish_pass here.
20678 (struct rtl_opt_pass): Add TODO_df_finish.
20679
20680 * rtl.def (DEFINE_SUBST, DEFINE_SUBST_ATTR): Add documentation.
20681
4542a38a
GY
206822013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20683
20684 * config/arm/constraints.md (q): New constraint.
20685 * config/arm/ldrdstrd.md: New file.
20686 * config/arm/arm.md (ldrdstrd.md) New include.
20687 (arm_movdi): Use "q" instead of "r" constraint
20688 for double-word memory access.
20689 (movdf_soft_insn): Likewise.
20690 * config/arm/vfp.md (movdi_vfp): Likewise.
20691 * config/arm/t-arm (MD_INCLUDES): Add ldrdstrd.md.
33159866 20692 * config/arm/arm-protos.h (gen_operands_ldrd_strd): New declaration.
4542a38a
GY
20693 * config/arm/arm.c (gen_operands_ldrd_strd): New function.
20694 (mem_ok_for_ldrd_strd): Likewise.
20695 (output_move_double): Update assertion.
20696
2385b218
GY
206972013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20698
20699 * config/arm/arm.md: Comment on splitting Thumb1 patterns.
20700
75fe1cb5
GY
207012013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20702
20703 * config/arm/arm.md (arm_smax_insn): Convert define_insn into
20704 define_insn_and_split.
20705 (arm_smin_insn,arm_umaxsi3,arm_uminsi3): Likewise.
20706
dd660e8e
GY
207072013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20708
20709 * config/arm/arm.md (arm_ashldi3_1bit): Convert define_insn into
20710 define_insn_and_split.
33159866 20711 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
dd660e8e
GY
20712 (shiftsi3_compare): New pattern.
20713 (rrx): New pattern.
20714 * config/arm/unspecs.md (UNSPEC_RRX): New.
20715
045e472c
GY
207162013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20717
20718 * config/arm/arm.md (negdi_extendsidi): New pattern.
20719 (negdi_zero_extendsidi): Likewise.
20720
3f3bf1a8
GY
207212013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20722
20723 * config/arm/arm.md (andsi_iorsi3_notsi): Convert define_insn into
20724 define_insn_and_split.
20725 (arm_negdi2,arm_abssi2,arm_neg_abssi2): Likewise.
20726 (arm_cmpdi_insn,arm_cmpdi_unsigned): Likewise.
20727
b0b49556
GY
207282013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20729
20730 * config/arm/arm.md (arm_subdi3): Convert define_insn into
20731 define_insn_and_split.
20732 (subdi_di_zesidi,subdi_di_sesidi): Likewise.
20733 (subdi_zesidi_di,subdi_sesidi_di,subdi_zesidi_zesidi): Likewise.
20734
d633dd84
GY
207352013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20736
20737 * config/arm/arm.md (subsi3_carryin): New pattern.
20738 (subsi3_carryin_const): Likewise.
20739 (subsi3_carryin_compare,subsi3_carryin_compare_const): Likewise.
20740 (subsi3_carryin_shift,rsbsi3_carryin_shift): Likewise.
20741
f4499066
GY
207422013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20743
20744 * config/arm/arm.md (incscc,arm_incscc,decscc,arm_decscc): Delete.
20745
ceef6fd9
GY
207462013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20747
20748 * config/arm/arm.md (addsi3_carryin_<optab>): Set attribute predicable.
d633dd84 20749 (addsi3_carryin_alt2_<optab>,addsi3_carryin_shift_<optab>): Likewise.
ceef6fd9 20750
ddbdd8a7
KT
207512013-04-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20752
20753 * config/arm/arm.c (arm_expand_builtin): Change fcode
20754 type to unsigned int.
20755
8456d78a
RR
207562013-04-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
20757
20758 * doc/invoke.texi (ARM Options): Document cortex-a53 support.
20759
526c230f
ILT
207602013-04-04 Ian Lance Taylor <iant@google.com>
20761
33159866
UB
20762 * doc/standards.texi (Standards): The Go frontend supports the Go 1
20763 language standard.
526c230f 20764
3cfbe04d
SB
207652013-04-04 Steven Bosscher <steven@gcc.gnu.org>
20766
20767 PR middle-end/56729
20768 * df-scan.c (df_insn_delete): Disable failing assert.
20769
dfa3f8d0
KT
207702013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20771
20772 * config/arm/arm-protos.h (arm_builtin_vectorized_function):
20773 New function prototype.
20774 * config/arm/arm.c (TARGET_VECTORIZE_BUILTINS): Define.
20775 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Likewise.
20776 (arm_builtin_vectorized_function): New function.
20777
f7837758
KT
207782013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20779
20780 * config/arm/arm_neon_builtins.def: New file.
20781 * config/arm/arm.c (neon_builtin_data): Move contents to
20782 arm_neon_builtins.def.
20783 (enum arm_builtins): Include neon builtin definitions.
20784 (ARM_BUILTIN_NEON_BASE): Move from enum to macro.
33159866 20785 * config/arm/t-arm (arm.o): Add dependency on arm_neon_builtins.def.
f7837758 20786
39c1b6db
MP
207872013-04-04 Marek Polacek <polacek@redhat.com>
20788
20789 PR tree-optimization/48186
20790 * predict.c (maybe_hot_frequency_p): Return false if
20791 HOT_BB_FREQUENCY_FRACTION is 0.
20792 (cgraph_maybe_hot_edge_p): Likewise.
20793
314f64eb
RB
207942013-04-04 Richard Biener <rguenther@suse.de>
20795
20796 PR tree-optimization/56826
20797 * tree-vect-slp.c (vect_build_slp_tree): Compute ncopies
20798 more accurately.
20799
51a905b2
RB
208002013-04-04 Richard Biener <rguenther@suse.de>
20801
20802 PR tree-optimization/56213
20803 * tree-vect-data-refs.c (vect_check_strided_load): Remove.
33159866 20804 (vect_analyze_data_refs): Allow all non-nested loads as strided loads.
51a905b2 20805
f1bf4f3a
RB
208062013-04-04 Richard Biener <rguenther@suse.de>
20807
20808 PR tree-optimization/56837
20809 * tree-loop-distribution.c (classify_partition): For non-zero
20810 values require that the value has the same precision as its
20811 mode to be useful as memset value.
20812
0bca7ded
NC
208132013-04-03 Nick Clifton <nickc@redhat.com>
20814
33159866 20815 * config/v850/v850e3v5.md (fmasf4): Use fmaf.s on E3V5 architectures.
0bca7ded
NC
20816 (fmssf4): Use fmsf.s on E3V5 architectures.
20817 (fnmasf4): Use fnmaf.s on E3V5 architectures.
20818 (fnmssf4): Use fnmsf.s on E3V5 architectures.
20819
b4019227
JL
208202013-04-03 Jeff Law <law@redhat.com>
20821
20822 * Makefile.in (lra-constraints.o): Depend on $(OPTABS_H).
20823 (lra-eliminations.o): Likewise.
20824
f57ddb5b
TJ
208252013-04-03 Teresa Johnson <tejohnson@google.com>
20826
20827 * gcov-io.c (compute_working_sets): Moved most of body of old
33159866 20828 compute_working_sets here from profile.c.
f57ddb5b 20829 * gcov-io.h (NUM_GCOV_WORKING_SETS): Moved here from profile.c.
33159866
UB
20830 (gcov_working_set_t): Moved typedef here from basic-block.h
20831 (compute_working_set): Declare.
f57ddb5b
TJ
20832 * profile.c (NUM_GCOV_WORKING_SETS): Moved to gcov-io.h.
20833 (get_working_sets): Renamed from compute_working_set,
33159866 20834 replace most of body with call to new compute_working_sets.
f57ddb5b 20835 (get_exec_counts): Replace call to compute_working_sets
33159866
UB
20836 to get_working_sets.
20837 * profile.h (get_working_sets): Renamed from compute_working_set.
f57ddb5b 20838 * lto-cgraph.c (input_symtab): Replace call to compute_working_sets
33159866 20839 to get_working_sets.
f57ddb5b
TJ
20840 * basic-block.h (gcov_working_set_t): Moved to gcov-io.h.
20841 * gcov-dump.c (dump_working_sets): New function.
20842
12211b99 208432013-04-03 Kenneth Zadeck <zadeck@naturalbridge.com>
5e0919f1
KZ
20844
20845 * hwint.c (sext_hwi, zext_hwi): New functions.
20846 * hwint.h (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT,
20847 HOST_HALF_WIDE_INT_PRINT, HOST_HALF_WIDE_INT_PRINT_C,
20848 HOST_HALF_WIDE_INT_PRINT_DEC, HOST_HALF_WIDE_INT_PRINT_DEC_C,
20849 HOST_HALF_WIDE_INT_PRINT_UNSIGNED, HOST_HALF_WIDE_INT_PRINT_HEX,
20850 HOST_HALF_WIDE_INT_PRINT_HEX_PURE): New symbols.
20851 (sext_hwi, zext_hwi): New functions.
0bca7ded 20852
be672e08
JL
208532013-04-03 Jeff Law <law@redhat.com>
20854
20855 PR tree-optimization/56799
33159866
UB
20856 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Bring
20857 back test for widening conversion erroneously dropped in prior change.
be672e08 20858
9d821fa5
KT
208592013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20860
20861 PR target/56809
20862 * config/aarch64/aarch64.c (is_jump_table): Use next_active_insn
20863 instead of next_real_insn.
20864
71c581e7
MP
208652013-04-03 Marek Polacek <polacek@redhat.com>
20866
20867 PR sanitizer/55702
33159866 20868 * tsan.c (instrument_func_exit): Allow BUILT_IN_RETURN functions.
71c581e7 20869
4a32ef80
KT
208702013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20871
20872 PR target/56809
20873 * config/arm/arm.c (is_jump_table): Use next_active_insn instead of
20874 next_real_insn.
20875 (thumb1_output_casesi): Likewise.
20876 (thumb2_output_casesi): Likewise.
20877
1b2253d4
RB
208782013-04-03 Richard Biener <rguenther@suse.de>
20879
20880 PR tree-optimization/56817
20881 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
20882 Split out ...
20883 (tree_unroll_loops_completely_1): ... new function to manually
20884 walk the loop tree, properly defering outer loops of unrolled
20885 loops to later iterations.
20886
38000232
MG
208872013-04-03 Marc Glisse <marc.glisse@inria.fr>
20888
20889 * tree-vect-stmts.c (vectorizable_store): Accept BIT_FIELD_REF.
20890 (vectorizable_load): Likewise.
20891 * tree-vect-slp.c (vect_build_slp_tree): Likewise.
20892 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Handle VECTOR_TYPE.
20893
3fa35298
MG
208942013-04-03 Marc Glisse <marc.glisse@inria.fr>
20895
20896 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Handle
20897 BIT_FIELD_REF.
20898
b3d45ff0
UW
208992013-04-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
20900
20901 * config/spu/spu.c (emit_nop_for_insn): Handle JUMP_TABLE_DATA.
20902
ec9202a8
BC
209032013-04-03 Bin Cheng <bin.cheng@arm.com>
20904
20905 * rtl.h (AUTO_INC_DEC): Fix typo of HAVE_POST_MODIFY_DISP.
20906
6805bd36
MG
209072013-04-03 Marc Glisse <marc.glisse@inria.fr>
20908
20909 PR tree-optimization/56790
33159866
UB
20910 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Add constant
20911 folding.
6805bd36 20912
da694a77
MG
209132013-04-03 Marc Glisse <marc.glisse@inria.fr>
20914
20915 * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
20916 Handle VEC_MERGE.
20917 (simplify_ternary_operation) <VEC_MERGE>: Use unsigned HOST_WIDE_INT
20918 for masks. Test for side effects. Handle nested VEC_MERGE. Handle
20919 equal arguments.
20920
4e7d7b3d
JJ
209212013-04-03 Jakub Jelinek <jakub@redhat.com>
20922
20923 PR c/19449
20924 * tree.h (force_folding_builtin_constant_p): New decl.
20925 * builtins.c (force_folding_builtin_constant_p): New variable.
20926 (fold_builtin_constant_p): Fold immediately also if
20927 force_folding_builtin_constant_p.
20928
e6c9d234
RB
209292013-04-03 Richard Biener <rguenther@suse.de>
20930
20931 PR tree-optimization/56812
20932 * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependence):
20933 DRs of the same interleaving chain are independent.
20934
984d07dd
JM
209352013-04-02 Jason Merrill <jason@redhat.com>
20936
20937 * gdbinit.in (pbb): Use debug fn.
20938
622849c9
LC
209392013-04-02 Lawrence Crowl <crowl@google.com>
20940
20941 * sese.h (struct ivtype_map_elt_s): Remove unused.
20942 (extern debug_ivtype_map): Remove unused.
20943 (extern eq_ivtype_map_elts): Remove unused.
20944 * sese.c (debug_ivtype_map): Removed unused.
20945 (debug_ivtype_map_1): Removed unused.
20946 (debug_ivtype_elt): Remove unused.
20947 (eq_ivtype_map_elts): Remove unused.
20948
20949
82c0e1a0
KT
209502013-04-02 Kai Tietz <ktietz@redhat.com>
20951
20952 PR target/52790
20953 * config/i386/cygming.h (SUB_TARGET_RECORD_STUB): New sub-target macro.
20954 * config/i386/i386-protos.h (i386_pe_record_stub): Add new prototype.
33159866
UB
20955 * config/i386/i386.c (legitimize_pe_coff_extern_decl): New static
20956 function.
82c0e1a0
KT
20957 (legitimize_pe_coff_symbol): Likewise.
20958 (is_imported_p): New helper-function.
20959 (ix86_option_override_internal): Make MEDIUM_PIC the default code-model
20960 for Windows x64 targets.
20961 (ix86_expand_prologue): Optimize for pe-coff targets.
20962 (ix86_expand_split_stack_prologue): Adjust for pe-coff targets.
20963 (legitimate_pic_address_disp_p): Adjust for x64 pe-coff to support
20964 medium/large code-model.
20965 (legitimize_pic_address): Likewise.
20966 (legitimize_tls_address): Likewise.
20967 (ix86_expand_call): Likewise.
20968 (x86_output_mi_thunk): Likewise.
20969 (get_dllimport_decl): Add new beimport argument.
20970 (construct_plt_address): Don't assert for x64 pe-coff targets.
20971 * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Adjust for x64 pe-coff
20972 targets.
20973 (SYMBOL_FLAG_STUBVAR): New macro.
20974 (SYMBOL_REF_STUBVAR_P): Likewise.
20975 * config/i386/winnt.c (stub_list): New structure.
20976 (stub_head): New local variable.
20977 (i386_pe_record_stub): New function.
20978 (i386_pe_file_end): Emit refptr-stubs.
20979
5d751b0c
JJ
209802013-04-02 Jakub Jelinek <jakub@redhat.com>
20981
09bb4c99
JJ
20982 PR rtl-optimization/56745
20983 * ifcvt.c (cond_exec_find_if_block): Don't try to optimize
20984 if then_bb has no successors and else_bb is EXIT_BLOCK_PTR.
20985
a1d8947a
JJ
20986 PR c++/34949
20987 * tree-ssa-alias.c (stmt_kills_ref_p_1): If base != ref->base
20988 and both of them are MEM_REFs, just compare first argument for
20989 equality and attempt to deal even with differing offsets.
20990
5d751b0c
JJ
20991 PR c++/34949
20992 * tree-cfg.c (verify_gimple_assign_single): Allow lhs
20993 of gimple_clobber_p to be MEM_REF.
20994 * gimplify.c (gimplify_modify_expr): Gimplify *to_p of
20995 an assignment from TREE_CLOBBER_P. Allow it to be MEM_REF
20996 after gimplification.
20997 * asan.c (get_mem_ref_of_assignment): Don't instrument
20998 gimple_clobber_p stmts.
20999 * tree-ssa-dse.c (dse_optimize_stmt): Allow DSE of
21000 gimple_clobber_p stmt if they have MEM_REF lhs and
21001 are dead because of another gimple_clobber_p stmt.
21002 * tree-ssa-live.c (clear_unused_block_pointer): Treat
21003 gimple_clobber_p stmts like debug stmts.
21004 (remove_unused_locals): Remove clobbers with MEM_REF lhs
21005 that refer to unused VAR_DECLs or uninitialized values.
21006 * tree-sra.c (sra_ipa_reset_debug_stmts): Also remove
21007 gimple_clobber_p stmts if they refer to removed parameters.
21008 (get_repl_default_def_ssa_name, sra_ipa_modify_expr): Fix up
21009 formatting.
21010
e594716a
UB
210112013-04-02 Uros Bizjak <ubizjak@gmail.com>
21012
21013 * config/i386/i386.md (*testqi_ext_3): Merge with *testqi_ext_3_rex64
21014 using SWI48 mode attribute.
21015
7a80735b
WM
210162013-04-02 Wei Mi <wmi@google.com>
21017
21018 * config/i386/i386.c (ix86_rtx_costs): Set proper rtx cost for
21019 ashl<mode>3_mask, *<shift_insn><mode>3_mask and
21020 *<rotate_insn><mode>3_mask in i386.md.
21021
f423a9e4
AI
210222013-04-02 Alexander Ivchenko <alexander.ivchenko@intel.com>
21023
21024 * config.gcc (arm*-*-linux-*): Remove duplicate t-linux-android.
21025
90eb75f2
RB
210262013-04-02 Richard Biener <rguenther@suse.de>
21027
21028 PR tree-optimization/56778
21029 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
21030 Runtime alias tests are not supported for gather loads.
21031 * tree-vect-loop-manip.c (vect_loop_versioning): Insert
21032 stmts referenced from SSA operands before updating SSA form.
21033
d8c69a92
IC
210342013-04-02 Ian Caulfield <ian.caulfield@arm.com>
21035 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
21036
21037 * config/arm/arm-arches.def (armv8-a): Default to cortex-a53.
e594716a
UB
21038 * config/arm/t-arm (MD_INCLUDES): Depend on cortex-a53.md.
21039 * config/arm/cortex-a53.md: New file.
21040 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle cortex-a53.
21041 * config/arm/arm.md (generic_sched, generic_vfp): Handle cortex-a53.
21042 * config/arm/arm.c (arm_issue_rate): Likewise.
21043 * config/arm/arm-tune.md: Regenerate
21044 * config/arm/arm-tables.opt: Regenerate.
21045 * config/arm/arm-cores.def: Add cortex-a53.
d8c69a92 21046
239eb04c
ZC
210472013-04-02 Zhenqiang Chen <zhenqiang.chen@arm.com>
21048
21049 * config/arm/uclinux-elf.h: Add %L to LINK_GCC_C_SEQUENCE_SPEC for
21050 non-static link.
21051
c902d3c8
SN
210522013-04-02 Sofiane Naci <sofiane.naci@arm.com>
21053
d8c69a92
IC
21054 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add variants for
21055 scalar load/store operations using B/H registers.
c902d3c8
SN
21056 (*zero_extend<SHORT:mode><GPI:mode>2_aarch64): Likewise.
21057
051d0e2f
SN
210582013-04-02 Sofiane Naci <sofiane.naci@arm.com>
21059
21060 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add alternatives for
21061 scalar move.
21062 * config/aarch64/aarch64.c
21063 (aarch64_simd_scalar_immediate_valid_for_move): New.
21064 * config/aarch64/aarch64-protos.h
21065 (aarch64_simd_scalar_immediate_valid_for_move): New.
21066 * config/aarch64/constraints.md (Dh, Dq): New.
21067 * config/aarch64/iterators.md (hq): New.
21068
0ee1e3d9
EB
210692013-04-02 Eric Botcazou <ebotcazou@adacore.com>
21070
21071 * reorg.c (get_branch_condition): Deal with conditional returns.
21072 (fill_simple_delay_slots): Remove dead code dealing with jumps.
21073
136fb3f7
WM
210742013-04-01 Wei Mi <wmi@google.com>
21075
21076 * config/i386/i386.md (*ashl<mode>3_mask): Rewrite as define_insn.
21077 Truncate operand 2 using %b asm operand modifier.
21078 (*<shift_insn><mode>3_mask): Ditto.
21079 (*<rotate_insn><mode>3_mask): Ditto.
21080
6388c738
SB
210812013-04-01 Steven Bosscher <steven@gcc.gnu.org>
21082
21083 PR middle-end/56798
21084 * cfgbuild.c (inside_basic_block_p): Restore check broken at r197234.
21085
f7a4d826
KK
210862013-03-31 Kaz Kojima <kkojima@gcc.gnu.org>
21087
21088 * config/sh/sh.md (casesi_worker_1): Use next_active_insn instead
21089 of next_real_insn.
21090 (casesi_worker_2, casesi_shift_media, casesi_load_media): Likewise.
21091
4b943a49
LC
210922013-03-30 Lawrence Crowl <crowl@google.com>
21093
21094 * dse.c (clear_alias_sets): Remove never set.
21095 (disqualified_clear_alias_sets): Remove never set.
21096 (clear_alias_mode_pool): Remove never set.
21097 (dse_step0): Remove condition that is never true.
21098 (canon_address): Remove condition that is never true.
21099 (dse_step7): Remove condition that is never true.
21100 (rest_of_handle_dse): Remove condition that is never true.
21101 (rest_of_handle_dse::did_global): Remove never read from above.
21102 (dse_step2_spill): Remove never called from above.
21103 (dse_step5_spill): Remove never called from above.
21104
39718607
SB
211052013-03-30 Steven Bosscher <steven@gcc.gnu.org>
21106
da5c6bde
SB
21107 * doc/md.texi (Standard Names) <casesi>: Update documentation for
21108 JUMP_TABLE_DATA changes.
21109 * doc/tm.texi.in (Dispatch Tables) <ASM_OUTPUT_CASE_LABEL>: Likewise.
21110 * doc/rtl.texi (Flags) <INSN_DELETED_P, SCHED_GROUP_P>: Likewise.
21111 (Insns) <jump_table_data>: New entry.
21112 * doc/tm.texi: Regenerate.
21113
39718607
SB
21114 * cfgrtl.c (fixup_reorder_chain): Do not emit barriers to BB_FOOTER.
21115
21116 * postreload-gcse.c (bb_has_well_behaved_predecessors): Correct test
21117 for table jump at the end of a basic block using tablejump_p.
21118 * targhooks.c (default_invalid_within_doloop): Likewise.
21119 * config/rs6000/rs6000.c (TARGET_INVALID_WITHIN_DOLOOP): Remove
21120 target hook implementation that is identical to the default hook.
21121 (rs6000_invalid_within_doloop): Remove.
21122
21123 * bb-reorder.c (fix_crossing_unconditional_branches): Remove set but
21124 unused variable from tablejump_p call.
21125
21126 * rtl.def (JUMP_TABLE_DATA): New RTX_INSN object.
21127 * rtl.h (RTX_PREV, RTX_NEXT): Adjust for new JUMP_TABLE_DATA.
21128 (INSN_DELETED_P): Likewise.
21129 (emit_jump_table_data): New prototype.
21130 * gengtype.c (adjust_field_rtx_def): Handle JUMP_TABLE_DATA fields
21131 after 4th as unused.
21132 * print-rtl.c (print_rtl): Handle JUMP_TABLE_DATA.
21133 * sched-vis.c (print_insn): Likewise.
21134 * emit-rtl.c (active_insn_p): Consider JUMP_TABLE_DATA an active
21135 insn for compatibility with back ends that use next_active_insn to
21136 identify jump table data.
21137 (set_insn_deleted): Remove no longer useful JUMP_TABLE_DATA_P check.
21138 (remove_insn): Likewise.
21139 (emit_insn): Do not accept JUMP_TABLE_DATA objects in insn chains
21140 to be emitted.
21141 (emit_debug_insn, emit_jump_insn, emit_call_insn, emit_label): Idem.
21142 (emit_jump_table_data): New function.
21143
21144 * cfgbuild.c (inside_basic_block_p): A JUMP_INSN is always inside a
21145 basic block, a JUMP_TABLE_DATA never is.
21146 (control_flow_insn_p): JUMP_TABLE_DATA is not a control flow insn.
21147 * cfgrtl.c (duplicate_insn_chain): Split handling of JUMP_TABLE_DATA
21148 off from code handling real insns.
21149 * final.c (get_attr_length_1): Simplify for JUMP_INSNs.
21150 * function.c (instantiate_virtual_regs): Remove JUMP_TABLE_DATA_P
21151 test, now redundant because JUMP_TABLE_DATA is not an INSN_P insn.
21152 * gcse.c (insert_insn_end_basic_block): Likewise, JUMP_TABLE_DATA_P
21153 is not a NONDEBUG_INSN_P.
21154 * ira-costs.c (scan_one_insn): Likewise.
21155 * jump.c (mark_all_labels): Likewise.
21156 (mark_jump_label_1): Likewise.
21157 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
21158 * lra.c (get_insn_freq): Expect all insns reaching here to be in
21159 a basic block.
21160 (check_rtl): Remove JUMP_TABLE_DATA_P test, not a NONDEBUG_INSN_P insn.
21161 * predict.c (expensive_function_p): Use FOR_BB_INSNS.
21162 * reload1.c (calculate_needs_all_insns): Call set_label_offsets for
21163 JUMP_TABLE_DATA_P insns.
21164 (calculate_elim_costs_all_insns): Likewise.
21165 (set_label_offsets): Recurse on the PATTERN of JUMP_TABLE_DATA insns.
21166 (elimination_costs_in_insn): Remove redundant JUMP_TABLE_DATA_P test.
21167 (delete_output_reload): Code style fixups.
21168 * reorg.c (dbr_schedule): Move JUMP_TABLE_DATA_P up to avoid setting
21169 insn flags on this non-insn.
21170 * sched-rgn.c (add_branch_dependences): Treat JUMP_TABLE_DATA insns
21171 as scheduling barriers, for pre-change compatibility.
21172 * stmt.c (emit_case_dispatch_table): Emit jump table data not as
21173 JUMP_INSN objects but instead as JUMP_TABLE_DATA objects.
21174
21175 * config/alpha/alpha.c (alpha_does_function_need_gp): Remove
21176 redundant JUMP_TABLE_DATA_P test.
21177 * config/arm/arm.c (thumb_far_jump_used_p): Likewise.
21178 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
21179 (frv_for_each_packet): Likewise.
21180 * config/i386/i386.c (min_insn_size): Likewise.
21181 (ix86_avoid_jump_mispredicts): Likewise.
21182 * config/m32r/m32r.c (m32r_is_insn): Likewise.
21183 * config/mep/mep.c (mep_reorg_erepeat): Likewise.
21184 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
21185 (mips16_insn_length): Robustify.
21186 (mips_has_long_branch_p): Remove redundant JUMP_TABLE_DATA_P test.
21187 (mips16_split_long_branches): Likewise.
21188 * config/pa/pa.c (pa_combine_instructions): Likewise.
21189 * config/rs6000/rs6000.c (get_next_active_insn): Treat
21190 JUMP_TABLE_DATA objects as active insns, like in active_insn_p.
21191 * config/s390/s390.c (s390_chunkify_start): Treat JUMP_TABLE_DATA
21192 as contributing to pool range lengths.
21193 * config/sh/sh.c (find_barrier): Restore check for ADDR_DIFF_VEC.
21194 Remove redundant JUMP_TABLE_DATA_P test.
21195 (sh_loop_align): Likewise.
21196 (split_branches): Likewise.
21197 (sh_insn_length_adjustment): Likewise.
21198 * config/spu/spu.c (get_branch_target): Likewise.
21199
0208f7da
JH
212002013-03-29 Jan Hubicka <jh@suse.cz>
21201
21202 * lto-cgraph.c (output_profile_summary, input_profile_summary): Use
21203 gcov streaming; stream hot bb threshold to ltrans.
21204 * predict.c (get_hot_bb_threshold): Break out from ....
21205 (maybe_hot_count_p): ... here.
21206 (set_hot_bb_threshold): New function.
21207 * lto-section-in.c (lto_section_name): Add profile.
21208 * profile.h (get_hot_bb_threshold, set_hot_bb_threshold): Declare.
21209 * ipa.c: Include hash-table.h, tree-inline.h, profile.h, lto-streamer.h
21210 and data-streamer.h
21211 (histogram_entry): New structure.
21212 (histogram, histogram_pool): New global vars.
21213 (histogram_hash): New structure.
21214 (histogram_hash::hash): New method.
21215 (histogram_hash::equal): Likewise.
21216 (account_time_size): New function.
21217 (cmp_counts): New function.
21218 (dump_histogram): New function.
21219 (ipa_profile_generate_summary): New function.
21220 (ipa_profile_write_summary): New function.
21221 (ipa_profile_read_summary): New function.
21222 (ipa_profile): Decide on threshold.
e594716a
UB
21223 (pass_ipa_profile): Add ipa_profile_write_summary and
21224 ipa_profile_read_summary.
0208f7da
JH
21225 * Makefile.in (ipa.o): Update dependencies.
21226 * lto-streamer.h (LTO_section_ipa_profile): New section.
21227
5a6ccc94
GDR
212282013-03-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
21229
21230 * tree.h (VAR_P): New.
21231
39385fa6
PC
212322013-03-29 Paolo Carlini <paolo.carlini@oracle.com>
21233
21234 PR lto/56777
21235 * doc/invoke.texi ([-fwhole-program]): Fix typo.
21236
34f0d87a
SB
212372013-03-29 Steven Bosscher <steven@gcc.gnu.org>
21238
21239 * cfgbuild.c (inside_basic_block_p): Use JUMP_TABLE_DATA_P in lieu
21240 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
21241 (control_flow_insn_p): Likewise.
21242 * cfgrtl.c (duplicate_insn_chain): Likewise.
21243 * final.c (get_attr_length_1): Likewise.
21244 (shorten_branches): Likewise.
21245 (final_scan_insn): Likewise.
21246 * function.c (instantiate_virtual_regs): Likewise.
21247 * gcse.c (insert_insn_end_basic_block): Likewise.
21248 * ira-costs.c (scan_one_insn): Likewise.
21249 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
21250 * lra.c (check_rtl): Likewise.
21251 * reload1.c (elimination_costs_in_insn): Likewise.
21252 * reorg.c (follow_jumps): Likewise.
21253
21254 * config/arm/arm.c (is_jump_table): Use JUMP_TABLE_DATA_P in lieu
21255 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
21256 (thumb_far_jump_used_p): Likewise.
21257 * config/bfin/bfin.c (workaround_rts_anomaly): Likewise.
21258 (workaround_speculation): Likewise.
21259 (add_sched_insns_for_speculation): Likewise.
21260 * config/c6x/c6x.c (reorg_emit_nops): Likewise.
21261 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
21262 (frv_for_each_packet): Likewise.
21263 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Likewise.
21264 * config/ia64/ia64.c (emit_all_insn_group_barriers): Likewise.
21265 (final_emit_insn_group_barriers): Likewise.
21266 * config/m32r/m32r.c (m32r_is_insn): Likewise.
21267 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
21268 (mips16_insn_length): Likewise.
21269 * config/pa/pa.c (pa_reorg): Likewise.
21270 (pa_combine_instructions): Likewise.
21271 * config/rs6000/rs6000.c (rs6000_invalid_within_doloop): Likewise.
21272 * config/sh/sh.c (fixup_addr_diff_vecs): Likewise.
21273 (sh_reorg): Likewise.
21274 (split_branches): Likewise.
21275 * config/spu/spu.c (get_branch_target): Likewise.
21276
21277 * config/s390/s390.c (s390_chunkify_start): Simplify logic using
21278 JUMP_TABLE_DATA_P.
21279
4ac761b0
KY
212802013-03-29 Kirill Yukhin <kirill.yukhin@intel.com>
21281
39385fa6 21282 * config/i386/avx2intrin.h (_mm256_broadcastsi128_si256):
4ac761b0
KY
21283 Fix declaration name.
21284
58a49189
LC
212852013-03-28 Lawrence Crowl <crowl@google.com>
21286
21287 * graphds.h (struct graph.indicies): Remove unused.
21288 * graphite-poly.h (struct graph.original_pddrs): Remove unused.
21289 (SCOP_ORIGINAL_PDDRS): Remove unused.
21290 * sese.h (extern insert_loop_close_phis): Removed unused.
21291 (extern insert_guard_phis): Removed unused.
21292 (extern ivtype_map_elt_info): Removed unused.
21293 (new_ivtype_map_elt): Removed unused.
21294 * sese.c (ivtype_map_elt_info): Removed unused.
21295
7b3b6ae4
LC
212962013-03-28 Lawrence Crowl <crowl@google.com>
21297
21298 * Makefile.in: Add several missing include dependences.
21299 (DUMPFILE_H): New.
21300 (test-dump.o): New. This object is not added to any executable,
21301 but is present for ad-hoc testing.
21302 * bitmap.c
21303 (debug (const bitmap_head_def &)): New.
21304 (debug (const bitmap_head_def *)): New.
21305 * bitmap.h
21306 (extern debug (const bitmap_head_def &)): New.
21307 (extern debug (const bitmap_head_def *)): New.
21308 * cfg.c
21309 (debug (edge_def &)): New.
21310 (debug (edge_def *)): New.
21311 * cfghooks.c
21312 (debug (basic_block_def &)): New.
21313 (debug (basic_block_def *)): New.
21314 * dumpfile.h
21315 (dump_node (const_tree, int, FILE *)): Correct source file.
21316 * dwarf2out.c
21317 (debug (die_struct &)): New.
21318 (debug (die_struct *)): New.
21319 * dwarf2out.h
21320 (extern debug (die_struct &)): New.
21321 (extern debug (die_struct *)): New.
21322 * gimple-pretty-print.c
21323 (debug (gimple_statement_d &)): New.
21324 (debug (gimple_statement_d *)): New.
21325 * gimple-pretty-print.h
21326 (extern debug (gimple_statement_d &)): New.
21327 (extern debug (gimple_statement_d *)): New.
21328 * ira-build.c
21329 (debug (ira_allocno_copy &)): New.
21330 (debug (ira_allocno_copy *)): New.
21331 (debug (ira_allocno &)): New.
21332 (debug (ira_allocno *)): New.
21333 * ira-int.h
21334 (extern debug (ira_allocno_copy &)): New.
21335 (extern debug (ira_allocno_copy *)): New.
21336 (extern debug (ira_allocno &)): New.
21337 (extern debug (ira_allocno *)): New.
21338 * ira-lives.c
21339 (debug (live_range &)): New.
21340 (debug (live_range *)): New.
21341 * lra-int.h
21342 (debug (lra_live_range &)): New.
21343 (debug (lra_live_range *)): New.
21344 * lra-lives.c
21345 (debug (lra_live_range &)): New.
21346 (debug (lra_live_range *)): New.
21347 * omega.c
21348 (debug (omega_pb_d &)): New.
21349 (debug (omega_pb_d *)): New.
21350 * omega.h
21351 (extern debug (omega_pb_d &)): New.
21352 (extern debug (omega_pb_d *)): New.
21353 * print-rtl.c
21354 (debug (const rtx_def &)): New.
21355 (debug (const rtx_def *)): New.
21356 * print-tree.c
21357 (debug_tree (tree): Move within file.
21358 (debug_raw (const tree_node &)): New.
21359 (debug_raw (const tree_node *)): New.
21360 (dump_tree_via_hooks (const tree_node *, int)): New.
21361 (debug (const tree_node &)): New.
21362 (debug (const tree_node *)): New.
21363 (debug_verbose (const tree_node &)): New.
21364 (debug_verbose (const tree_node *)): New.
21365 (debug_head (const tree_node &)): New.
21366 (debug_head (const tree_node *)): New.
21367 (debug_body (const tree_node &)): New.
21368 (debug_body (const tree_node *)): New.
21369 (debug_vec_tree (tree): Move and reimplement in terms of dump.
21370 (debug (vec<tree, va_gc> &)): New.
21371 (debug (vec<tree, va_gc> *)): New.
21372 * rtl.h
21373 (extern debug (const rtx_def &)): New.
21374 (extern debug (const rtx_def *)): New.
21375 * sbitmap.c
21376 (debug_raw (simple_bitmap_def &)): New.
21377 (debug_raw (simple_bitmap_def *)): New.
21378 (debug (simple_bitmap_def &)): New.
21379 (debug (simple_bitmap_def *)): New.
21380 * sbitmap.h
21381 (extern debug (simple_bitmap_def &)): New.
21382 (extern debug (simple_bitmap_def *)): New.
21383 (extern debug_raw (simple_bitmap_def &)): New.
21384 (extern debug_raw (simple_bitmap_def *)): New.
21385 * sel-sched-dump.c
21386 (debug (vinsn_def &)): New.
21387 (debug (vinsn_def *)): New.
21388 (debug_verbose (vinsn_def &)): New.
21389 (debug_verbose (vinsn_def *)): New.
21390 (debug (expr_def &)): New.
21391 (debug (expr_def *)): New.
21392 (debug_verbose (expr_def &)): New.
21393 (debug_verbose (expr_def *)): New.
21394 (debug (vec<rtx> &)): New.
21395 (debug (vec<rtx> *)): New.
21396 * sel-sched-dump.h
21397 (extern debug (vinsn_def &)): New.
21398 (extern debug (vinsn_def *)): New.
21399 (extern debug_verbose (vinsn_def &)): New.
21400 (extern debug_verbose (vinsn_def *)): New.
21401 (extern debug (expr_def &)): New.
21402 (extern debug (expr_def *)): New.
21403 (extern debug_verbose (expr_def &)): New.
21404 (extern debug_verbose (expr_def *)): New.
21405 (extern debug (vec<rtx> &)): New.
21406 (extern debug (vec<rtx> *)): New.
21407 * sel-sched-ir.h
21408 (_list_iter_cond_expr): Make inline instead of static.
21409 * sreal.c
21410 (debug (sreal &)): New.
21411 (debug (sreal *)): New.
21412 * sreal.h
21413 (extern debug (sreal &)): New.
21414 (extern debug (sreal *)): New.
21415 * tree.h
21416 (extern debug_raw (const tree_node &)): New.
21417 (extern debug_raw (const tree_node *)): New.
21418 (extern debug (const tree_node &)): New.
21419 (extern debug (const tree_node *)): New.
21420 (extern debug_verbose (const tree_node &)): New.
21421 (extern debug_verbose (const tree_node *)): New.
21422 (extern debug_head (const tree_node &)): New.
21423 (extern debug_head (const tree_node *)): New.
21424 (extern debug_body (const tree_node &)): New.
21425 (extern debug_body (const tree_node *)): New.
21426 (extern debug (vec<tree, va_gc> &)): New.
21427 (extern debug (vec<tree, va_gc> *)): New.
21428 * tree-cfg.c
21429 (debug (struct loop &)): New.
21430 (debug (struct loop *)): New.
21431 (debug_verbose (struct loop &)): New.
21432 (debug_verbose (struct loop *)): New.
21433 * tree-dump.c: Add header dependence.
21434 * tree-flow.h
21435 (extern debug (struct loop &)): New.
21436 (extern debug (struct loop *)): New.
21437 (extern debug_verbose (struct loop &)): New.
21438 (extern debug_verbose (struct loop *)): New.
21439 * tree-data-ref.c
21440 (debug (data_reference &)): New.
21441 (debug (data_reference *)): New.
21442 (debug (vec<data_reference_p> &)): New.
21443 (debug (vec<data_reference_p> *)): New.
21444 (debug (vec<ddr_p> &)): New.
21445 (debug (vec<ddr_p> *)): New.
21446 * tree-data-ref.h
21447 (extern debug (data_reference &)): New.
21448 (extern debug (data_reference *)): New.
21449 (extern debug (vec<data_reference_p> &)): New.
21450 (extern debug (vec<data_reference_p> *)): New.
21451 (extern debug (vec<ddr_p> &)): New.
21452 (extern debug (vec<ddr_p> *)): New.
21453 * tree-ssa-alias.c
21454 (debug (pt_solution &)): New.
21455 (debug (pt_solution *)): New.
21456 * tree-ssa-alias.h
21457 (extern debug (pt_solution &)): New.
21458 (extern debug (pt_solution *)): New.
21459 * tree-ssa-alias.c
21460 (debug (_var_map &)): New.
21461 (debug (_var_map *)): New.
21462 (debug (tree_live_info_d &)): New.
21463 (debug (tree_live_info_d *)): New.
21464 * tree-ssa-alias.h
21465 (extern debug (_var_map &)): New.
21466 (extern debug (_var_map *)): New.
21467 (extern debug (tree_live_info_d &)): New.
21468 (extern debug (tree_live_info_d *)): New.
21469
be77e1e5
JH
214702013-03-28 Jan Hubicka <jh@suse.cz>
21471
21472 * lto-cgraph.c (merge_profile_summaries): Fix overflows.
21473
777e6976
IB
214742013-03-28 Ian Bolton <ian.bolton@arm.com>
21475
21476 * config/aarch64/aarch64.md (aarch64_can_eliminate): Keep frame
21477 record only when desired or required.
21478
9cd347ae
UB
214792013-03-28 Uros Bizjak <ubizjak@gmail.com>
21480
21481 * config/i386/i386.md (*vec_extract2vdi_1): Merge with
21482 *vec_extractv2di_1_rex64. Use x64 isa attribute.
21483
33159866 214842013-03-28 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
2a1d1991
N
21485
21486 * config/aarch64/aarch64.md (*and<mode>3_compare0): New pattern.
21487 (*andsi3_compare0_uxtw): New pattern.
21488 (*and_<SHIFT:optab><mode>3_compare0): New pattern.
21489 (*and_<SHIFT:optab>si3_compare0_uxtw): New pattern.
21490
89ab31c1
JH
214912013-03-28 Jan Hubicka <jh@suse.cz>
21492
21493 * data-streamer-in.c (streamer_read_gcov_count): New function.
21494 * gimple-streamer-out.c: Include value-prof.h.
21495 (output_gimple_stmt): Output histogram.
21496 (output_bb): Use streamer_write_gcov_count.
21497 * value-prof.c: Include data-streamer.h
21498 (dump_histogram_value): Add HIST_TYPE_MAX.
21499 (stream_out_histogram_value): New function.
21500 (stream_in_histogram_value): New function.
21501 * value-prof.h (enum hist_type): Add HIST_TYPE_MAX.
21502 (stream_out_histogram_value, stream_in_histogram_value): Declare.
21503 * data-streamer-out.c (streamer_write_gcov_count): New function.
21504 (streamer_write_gcov_count_stream): New function.
21505 * lto-cgraph.c (lto_output_edge): Update counter streaming.
21506 (lto_output_node): Likewise.
21507 (input_node, input_edge): Likewise.
21508 * lto-streamer-out.c (output_cfg): Update streaming.
21509 * lto-streamer-in.c (input_cfg): Likewise.
21510 * data-streamer.h (streamer_write_gcov_count,
21511 streamer_write_gcov_count_stream, streamer_read_gcov_count): Declare.
21512 * gimple-streamer-in.c: Include value-prof.h
21513 (input_gimple_stmt): Input histograms.
21514 (input_bb): Update profile streaming.
21515
e594716a 215162013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
b4c73eed 21517
33159866 21518 * genmodes.c (emit_max_int): New function.
8697be17 21519 (emit_insn_modes_h): Added call to emit_max_function.
39385fa6
PC
21520 * doc/rtl.texi (MAX_BITSIZE_MODE_ANY_INT, MAX_BITSIZE_MODE_ANY_MODE):
21521 Added doc.
8697be17 21522 * machmode.def: Fixed comment.
89ab31c1 21523
e594716a 215242013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
8697be17
KZ
21525
21526 * combine.c (try_combine): Removed useless assert.
b4c73eed
KZ
21527 * cselib.c (rtx_equal_for_cselib_1): Removed unnecessary parens.
21528
74946978
MP
215292013-03-28 Marek Polacek <polacek@redhat.com>
21530 Richard Biener <rguenther@suse.de>
21531
21532 PR tree-optimization/56695
21533 * tree-vect-stmts.c (vectorizable_condition): Unconditionally
21534 build signed result of a vector comparison.
21535 * tree-cfg.c (verify_gimple_comparison): Check that a result
21536 of a vector comparison has signed type.
21537
a64b9c26
RB
215382013-03-28 Richard Biener <rguenther@suse.de>
21539
21540 PR tree-optimization/37021
21541 * tree-vect-slp.c (vect_build_slp_tree): When not unrolling
21542 do not restrict gaps between groups.
21543 * tree-vect-stmts.c (vectorizable_load): Properly account for
21544 a gap between groups.
21545
a9dc2a2f
EB
215462013-03-28 Eric Botcazou <ebotcazou@adacore.com>
21547
21548 * toplev.c (process_options): Do not disable -fomit-frame-pointer on a
21549 general basis if unwind info is requested and ACCUMULATE_OUTGOING_ARGS
21550 is not enabled.
21551
53cb97f9
GP
215522013-03-27 Gerald Pfeifer <gerald@pfeifer.com>
21553
21554 * doc/invoke.texi (AVR Options): Tweak link for AVR-LibC user manual.
21555 * doc/extend.texi (Named Address Spaces): Ditto.
21556 (Variable Attributes): Ditto.
21557
b802ae5c
KT
215582013-03-27 Kai Tietz <ktietz@redhat.com>
21559
eddae10a
KT
21560 * config.build: Add support for cygwin x64 target.
21561 * config.gcc: Likewise.
21562 * config.host: Likewise.
21563 * configure.ac: Likewise
21564 * configure: Regenerated.
b802ae5c 21565
371e77e3 215662013-03-27 Kai Tietz <ktietz@redhat.com>
8269de54
KT
21567
21568 * config/i386/cygwin-stdint.h: Add support for cygwin x64 target.
21569 * config/i386/t-cygwin-w64: New file.
21570 * config/i386/cygwin-w64.h: New file.
21571 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Extend
21572 and add support for x64-cygwin target.
21573 (CPP_SPEC): Likewise.
21574 (CXX_WRAP_SPEC_LIST): Undefine before define.
21575 (LIBGCJ_SONAME): Use 15 as version.
21576
f49b33cb
RB
215772013-03-27 Richard Biener <rguenther@suse.de>
21578
21579 PR tree-optimization/56716
21580 * tree-ssa-structalias.c (perform_var_substitution): Adjust
21581 dumping for ref nodes.
21582
b37a6ce5
MJ
215832013-03-27 Martin Jambor <mjambor@suse.cz>
21584
21585 PR tree-optimization/55334
21586 * ipa-cp.c (initialize_node_lattices): Allow IPA-CP through and to
21587 restricted pointers to arrays.
21588
9469b9b2
GDR
215892013-03-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
21590
21591 * Makefile.in (.SUFFIXES): Add .cc.
21592 (.c.o): Apply same recipe for implicit rule .cc.o.
21593
7d24f650
RB
215942013-03-27 Richard Biener <rguenther@suse.de>
21595
21596 PR tree-optimization/37021
21597 * tree-vect-data-refs.c (vect_check_strided_load): Allow
21598 REALPART/IMAGPART_EXPRs around the supported refs.
21599 * tree-ssa-structalias.c (find_func_aliases): Assume that
21600 floating-point values are not used to transfer pointers.
21601
2f251a05
AI
216022013-03-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
21603
f43245d1
UB
21604 * target.def (TARGET_HAS_IFUNC_P): New target hook.
21605 * doc/tm.texi.in (TARGET_HAS_IFUNC_P): New.
21606 * doc/tm.texi: Regenerate.
21607 * targhooks.h (default_has_ifunc_p): New.
21608 * targhooks.c (default_has_ifunc_p): Ditto.
21609 * config/linux-protos.h: New file.
21610 * config/linux-android.h (TARGET_HAS_IFUNC_P): Using version of this
21611 hook for linux which disables support of indirect functions in android.
21612 * config/linux-android.c: New file.
21613 * config/t-linux-android.c: Ditto.
21614 * config.gcc: Added new object file linux-android.o.
21615 * config/i386/i386.c (ix86_get_function_versions_dispatcher):
2f251a05 21616 Using TARGET_HAS_IFUNC hook instead of HAVE_GNU_INDIRECT_FUNCTION.
f43245d1 21617 * varasm.c (do_assemble_alias): Likewise.
2f251a05
AI
21618 * configure.ac: Define HAVE_GNU_INDIRECT_FUNCTION as zero if the target
21619 doesn't support indirect functions.
21620 * configure: Regenerate.
21621
78b4e425
BC
216222013-03-27 Bin Cheng <bin.cheng@arm.com>
21623
21624 PR target/56102
21625 * config/arm/arm.c (thumb1_rtx_costs, thumb1_size_rtx_costs): Fix
21626 rtx costs for SET/ASHIFT/ASHIFTRT/LSHIFTRT/ROTATERT patterns with
21627 mult-word mode.
21628
a5ba7b92
AK
216292013-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21630
21631 * config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Define.
21632
be624986
TG
216332013-03-27 Terry Guo <terry.guo@arm.com>
21634
21635 * config/arm/arm-cores.def: Added core cortex-r7.
21636 * config/arm/arm-tune.md: Regenerated.
21637 * config/arm/arm-tables.opt: Regenerated.
21638 * doc/invoke.texi: Added entry for core cortex-r7.
21639
0a514f47
WL
216402013-03-27 Walter Lee <walt@tilera.com>
21641
21642 * config/tilegx/tilegx.c (tilegx_expand_prologue): Avoid
21643 double-decrement of next_scratch_regno.
21644
9332b0d2
WL
216452013-03-27 Walter Lee <walt@tilera.com>
21646
801d9b2a 21647 * config/tilegx/tilegx.md (insn_v1mulu): Fix predicates on
9332b0d2
WL
21648 input operands.
21649 (insn_v1mulus): Ditto.
21650 (insn_v2muls): Ditto.
21651
f54ea5dd
WL
216522013-03-27 Walter Lee <walt@tilera.com>
21653
e594716a 21654 * config/tilegx/tilegx.h (ASM_OUTPUT_ADDR_VEC_ELT): Delete extra tab.
f54ea5dd
WL
21655 (ASM_OUTPUT_ADDR_DIFF_ELT): Ditto.
21656
bf60f4ca
WL
216572013-03-27 Walter Lee <walt@tilera.com>
21658
e594716a 21659 * config/tilegx/tilegx.md (*sibcall_insn): Fix type atribute for jr.
bf60f4ca
WL
21660 (*sibcall_value): Ditto.
21661
e3b51eeb
WL
216622013-03-27 Walter Lee <walt@tilera.com>
21663
21664 * config/tilegx/tilegx.md (insn_mnz_<mode>): Replaced by ...
21665 (insn_mnz_v8qi): ... this ...
21666 (insn_mnz_v4hi): ... and this. Replace (const_int 0) with the
21667 vector equivalent.
21668 (insn_v<n>mnz): Replaced by ...
21669 (insn_v1mnz): ... this ...
21670 (insn_v2mnz): ... and this. Replace (const_int 0) with the vector
21671 equivalent.
21672 (insn_mz_<mode>): Replaced by ...
21673 (insn_mz_v8qi): ... this ...
21674 (insn_mz_v4hi): ... and this. Replace (const_int 0) with the
21675 vector equivalent.
21676 (insn_v<n>mz): Replaced by ...
21677 (insn_v1mz): ... this ...
21678 (insn_v2mz): ... and this. Replace (const_int 0) with the vector
21679 equivalent.
21680
4fc7b145
EB
216812013-03-26 Eric Botcazou <ebotcazou@adacore.com>
21682
21683 * doc/invoke.texi (SPARC options): Remove -mlittle-endian.
21684
6f33817e
RM
216852013-03-26 Roland McGrath <mcgrathr@google.com>
21686
21687 * config/arm/arm.c (arm_print_operand: case 'w'): Use fputs rather
21688 than fprintf with a non-constant, non-format string.
21689
93a4145b
UB
216902013-03-26 Uros Bizjak <ubizjak@gmail.com>
21691
21692 * config/i386/i386.md (*cmpqi_ext_1): Merge with *cmpqi_ext_1_rex64
21693 using nox64 isa attribute. Use nonimmediate_x86nomem_operand as
21694 operand 0 predicate.
21695 (*cmpqi_ext_3): Merge with *cmpqi_ext_3_rex64 using nox64 isa
21696 attribute. Use general_x64nomem_operand as operand 1 predicate.
21697 (*movqi_extv_1): Merge with *movqi_extv_1_rex64 using nox64 isa
21698 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
21699 (*movqi_extzv_2): Merge with *movqi_extzv_2_rex64 using nox64 isa
21700 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
21701 (mov<mode>_insv_1): Remove expander. Merge insn with
21702 movsi_insv_1 using SWI48 mode iterator and nox64 isa attribute.
21703 Use general_x64nomem_operand as operand 1 predicate.
21704 (addqi_ext_1): Merge with *addqi_ext_1_rex64 using nox64 isa attribute.
21705 (*testqi_ext_1): Merge with *testqi_ext_1_rex64 using nox64 isa
21706 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
21707 (*andqi_ext_1): Merge with *andqi_ext_1_rex64 using nox64 isa
21708 attribute. Use nonimmediate_x64nomem_operand as operand 2 predicate.
21709 (*<code>qi_ext_1): Merge with *<code>qi_ext_1_rex64 using nox64 isa
21710 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
21711 (*xorqi_cc_ext_1): Merge with *xorqi_cc_ext_1_rex64 using nox64
21712 isa attribute. Use general_x64nomem_operand as operand 2 predicate.
21713 * config/i386/predicates.md (nonimmediate_x64nomem_operand): New.
21714 (general_x64nomem_operand): Ditto.
21715
c6a9ed5a 217162013-03-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
df599020
SH
21717
21718 * config/rtems.opt: Add -pthread option.
21719
31b0a960
RB
217202013-03-26 Richard Biener <rguenther@suse.de>
21721
93a4145b
UB
21722 * alias.c (find_base_term): Avoid redundant and not used recursion.
21723 (base_alias_check): Get the initial base term from the caller.
31b0a960
RB
21724 (true_dependence_1): Compute and pass base terms to base_alias_check.
21725 (write_dependence_p): Likewise.
21726 (may_alias_p): Likewise.
21727
79517551
SN
217282013-03-26 Sofiane Naci <sofiane.naci@arm.com>
21729
21730 * config/aarch64/aarch64.c (aarch64_classify_address): Support
21731 PC-relative load in SI modes and above only.
21732
a76213b9
XQ
217332013-03-26 Xinyu Qi <xyqi@marvell.com>
21734
21735 * config/arm/arm.h (FIRST_IWMMXT_GR_REGNUM): Add comment.
33159866
UB
21736 * config/arm/iwmmxt.md (WCGR0): Update.
21737 (WCGR1, WCGR2, WCGR3): Likewise.
a76213b9 21738
37ff9355
UB
217392013-03-26 Uros Bizjak <ubizjak@gmail.com>
21740
21741 * config/i386/i386.md (*movdfcc_1): Merge with *movdfcc_1_rex64.
21742 Use x64 and nox64 isa attributes.
21743
30b0317c
RB
217442013-03-26 Richard Biener <rguenther@suse.de>
21745
21746 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
21747 alignment computations and rely on get_object_alignment_1
21748 for the !TYPE_P case.
21749 Commonize DECL/COMPONENT_REF handling in the ARRAY_REF path.
21750
cbcdb140
WL
217512013-03-26 Walter Lee <walt@tilera.com>
21752
21753 * config/tilegx/tilegx.h (PROFILE_BEFORE_PROLOGUE): Define.
21754 * config/tilegx/tilepro.h (PROFILE_BEFORE_PROLOGUE): Define.
21755
dd884525 217562013-03-25 Jeff Law <law@redhat.com>
be672e08 21757
33159866
UB
21758 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Add missing
21759 check for INTEGRAL_TYPE_P that was missing due to checking in
dd884525
JL
21760 wrong version of prior patch.
21761
0051d3ec
WL
217622013-03-25 Walter Lee <walt@tilera.com>
21763
21764 * config/tilegx/tilegx-builtins.h (enum tilegx_builtin): Add
21765 TILEGX_INSN_SHUFFLEBYTES1.
21766 * config/tilegx/tilegx.c (tilegx_builtin_info): Add entry for
21767 shufflebytes1.
21768 (tilegx_builtins): Ditto.
21769 * config/tilegx/tilegx.md (insn_shufflebytes1): New pattern.
21770
065a3605
WL
217712013-03-25 Walter Lee <walt@tilera.com>
21772
21773 * config/tilegx/tilegx.md (floatsisf2): New pattern.
0051d3ec
WL
21774 (floatunssisf2): New pattern.
21775 (floatsidf2): New pattern.
21776 (floatunssidf2): New pattern.
065a3605 21777
5b2a3c82
WL
217782013-03-25 Walter Lee <walt@tilera.com>
21779
21780 * config/tilegx/tilegx.c (expand_set_cint64_one_inst): Inline
21781 tests for constraint J, K, N, P.
21782
192ea533
WL
217832013-03-25 Walter Lee <walt@tilera.com>
21784
21785 * config/tilegx/tilegx.c (tilegx_asm_preferred_eh_data_format):
21786 Use indirect/pcrel encoding.
21787 * config/tilepro/tilepro.c (tilepro_asm_preferred_eh_data_format):
21788 Ditto.
21789
855e0d0b
SE
217902013-03-25 Steve Ellcey <sellcey@mips.com>
21791
21792 * config/mips/mmips-cpus.def (74kc, 74kf2_1, 74kf, 74kf, 74kf1_1,
21793 74kfx, 74kx, 74kf3_2): Add PTF_AVOID_IMADD.
21794 * config/mips/mips.c (mips_option_override): Set IMADD default.
21795 * config/mips/mips.h (PTF_AVOID_IMADD): New.
21796 (ISA_HAS_MADD_MSUB): Remove MIPS16 check.
21797 (GENERATE_MADD_MSUB): Remove TUNE_74K check, add MIPS16 check.
21798 * config/mips/mips.md (mimadd): New flag for integer madd/msub.
21799 * doc/invoke.texi (-mimadd/-mno-imadd): New.
21800
39e45653
JL
218012013-03-25 Jeff Law <law@redhat.com>
21802
21803 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Rework
21804 slightly to avoid creating and folding useless trees. Simplify
21805 slightly by restricting to INTEGER_CSTs and using int_fits_type_p.
21806
7482c470
UB
218072013-03-25 Uros Bizjak <ubizjak@gmail.com>
21808
21809 * config/i386/i386.md (*zero_extendsidi2): Merge with
21810 *zero_extendsidi2_rex64. Use x64 and nox64 isa attributes.
21811 * config/i386/predicates.md (x86_64_zext_operand): Rename from
21812 x86_64_zext_general_operand. Use nonimmediate_operand on 32bit
21813 targets. Clarify comment.
21814
4a53743e
MJ
218152013-03-25 Martin Jambor <mjambor@suse.cz>
21816
21817 * ipa-prop.c (ipa_write_jump_function): Stream simple and aritmetic
21818 pass-through jump functions differently.
21819 (ipa_read_jump_function): Likewise. Also use setter functions to set
21820 up jump functions.
21821
162712de
MJ
218222013-03-25 Martin Jambor <mjambor@suse.cz>
21823
21824 * ipa-cp.c (ipa_get_indirect_edge_target): Renamed to
21825 ipa_get_indirect_edge_target_1, added parameter agg_reps and ability to
21826 process it.
21827 (ipa_get_indirect_edge_target): New function.
21828 (devirtualization_time_bonus): New parameter known_aggs, pass it to
21829 ipa_get_indirect_edge_target. Update all callers.
21830 (ipcp_discover_new_direct_edges): New parameter aggvals. Pass it to
21831 ipa_get_indirect_edge_target_1 instead of calling
21832 ipa_get_indirect_edge_target.
21833 (create_specialized_node): Pass aggvlas to
21834 ipcp_discover_new_direct_edges.
21835
a5a4c20a
KT
218362013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21837
21838 * config/arm/arm.md (f_sels, f_seld): New types.
21839 (*cmov<mode>): New pattern.
21840 * config/arm/predicates.md (arm_vsel_comparison_operator): New
21841 predicate.
21842
f992b9fc
KT
218432013-03-25 Kai Tietz <ktietz@redhat.com>
21844
21845 * config/i386/xm-mingw32.h (__USE_MINGW_ANSI_STDIO): Enable
21846 POSIX-printf for mingw-hosted builds.
21847
c16fd676
RB
218482013-03-25 Richard Biener <rguenther@suse.de>
21849
21850 PR middle-end/56694
21851 * tree-eh.c (lower_eh_must_not_throw): Strip BLOCKs from the
21852 must-not-throw stmt location.
21853
5ad29f12
KT
218542013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21855
21856 * config/arm/arm.c (arm_emit_load_exclusive): Add acq parameter.
21857 Emit load-acquire versions when acq is true.
21858 (arm_emit_store_exclusive): Add rel parameter.
21859 Emit store-release versions when rel is true.
21860 (arm_split_compare_and_swap): Use acquire-release instructions
21861 instead.
21862 of barriers when appropriate.
21863 (arm_split_atomic_op): Likewise.
21864 * config/arm/arm.h (TARGET_HAVE_LDACQ): New macro.
21865 * config/arm/unspecs.md (VUNSPEC_LAX): New unspec.
21866 (VUNSPEC_SLX): Likewise.
21867 (VUNSPEC_LDA): Likewise.
21868 (VUNSPEC_STL): Likewise.
21869 * config/arm/sync.md (atomic_load<mode>): New pattern.
21870 (atomic_store<mode>): Likewise.
21871 (arm_load_acquire_exclusive<mode>): Likewise.
21872 (arm_load_acquire_exclusivesi): Likewise.
21873 (arm_load_acquire_exclusivedi): Likewise.
21874 (arm_store_release_exclusive<mode>): Likewise.
21875
03a7dddb
CM
218762013-03-25 Catherine Moore <clm@codesourcery.com>
21877
21878 * config/mips/constraints.md (u, Udb7 Uead, Uean, Uesp, Uib3,
21879 Uuw6, Usb4, ZS, ZT, ZU, ZV, ZW): New constraints.
21880 * config/mip/predicates.md (lwsp_swsp_operand,
21881 lw16_sw16_operand, lhu16_sh16_operand, lbu16_operand,
21882 sb16_operand, db4_operand, db7_operand, ib3_operand,
21883 sb4_operand, ub4_operand, uh4_operand, uw4_operand,
21884 uw5_operand, uw6_operand, addiur2_operand, addiusp_operand,
21885 andi16_operand): New predicates.
21886 * config/mips/mips.md (compression): New attribute.
21887 (enabled): New attribute.
21888 (length): Consider compression in computing length.
21889 (shift_compression): New code attribute.
21890 (*add<mode>3): New operands. Record compression.
21891 (sub<mode>3): Likewise.
21892 (one_cmpl<mode>2): Likewise.
21893 (*and<mode>3): Likewise.
21894 (*ior<mode>3): Likewise.
21895 (unnamed pattern for xor): Likewise.
21896 (*zero_extend<SHORT:mode><GPR:mode>2): Likewise.
21897 (*<optab><mode>3): Likewise.
21898 (*mov<mode>_internal: Likewise.
21899 * config/mips/mips-protos.h (mips_signed_immediate_p): New.
21900 (mips_unsigned_immediate_p): New.
21901 (umips_lwsp_swsp_address_p): New.
21902 (m16_based_address_p): New.
21903 * config/mips/mips-protos.h (mips_signed_immediate_p): New prototype.
21904 (mips_unsigned_immediate_p): New prototype.
21905 (lwsp_swsp_address_p): New prototype.
21906 (m16_based_address_p): New prototype.
21907 * config/mips/mips.c (mips_unsigned_immediate_p): New function.
21908 (mips_signed_immediate_p): New function.
21909 (m16_based_address_p): New function.
21910 (lwsp_swsp_address_p): New function.
21911 (mips_print_operand_punctuation): Recognize short delay slot insns
21912 for microMIPS.add<mode>3"
21913
f35c297f 219142013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
a5784ce6 21915
f35c297f
KT
21916 PR target/56720
21917 * config/arm/iterators.md (v_cmp_result): New mode attribute.
21918 * config/arm/neon.md (vcond<mode><mode>): Handle unordered cases.
21919
051b9446
RB
219202013-03-25 Richard Biener <rguenther@suse.de>
21921
21922 PR tree-optimization/56689
21923 * tree-vrp.c (execute_vrp): Mark loops for fixup if we removed
21924 any edge.
21925
374001cb
RB
219262013-03-25 Richard Biener <rguenther@suse.de>
21927
21928 * tree-ssa-loop-im.c (struct mem_ref): Use bitmap_head instead
21929 of bitmap.
21930 (memory_references): Likewise.
21931 (outermost_indep_loop, mem_ref_alloc, mark_ref_stored,
21932 gather_mem_refs_stmt, record_dep_loop, ref_indep_loop_p_1,
21933 ref_indep_loop_p_2, find_refs_for_sm): Adjust.
21934 (gather_mem_refs_in_loops): Fold into ...
21935 (analyze_memory_references): ... this. Move initialization
21936 to tree_ssa_lim_initialize.
21937 (fill_always_executed_in): Rename to ...
21938 (fill_always_executed_in_1): ... this.
21939 (fill_always_executed_in): Move contains_call computation to
21940 this new function from ...
21941 (tree_ssa_lim_initialize): ... here.
21942 (tree_ssa_lim): Call fill_always_executed_in.
21943
57895947
EB
219442013-03-25 Eric Botcazou <ebotcazou@adacore.com>
21945
21946 * postreload.c (reload_combine): Fix code detecting returns.
21947
1e1b18c1
EB
219482013-03-25 Eric Botcazou <ebotcazou@adacore.com>
21949
21950 * function.c (emit_use_return_register_into_block): On cc0 targets,
21951 do not emit the sequence between cc0 setter and user.
21952
9216baf1
KT
219532013-03-25 Kai Tietz <ktietz@redhat.com>
21954
1e1b18c1
EB
21955 * config/i386/predicates.md (local_symbolic_operand): Interpret
21956 dll-imported symbols as none-local.
9216baf1 21957
76421b44
RB
219582013-03-25 Richard Biener <rguenther@suse.de>
21959
21960 * tree-ssa-loop-im.c (struct depend): Remove.
21961 (struct lim_aux_data): Make depends a vec of gimples.
21962 (free_lim_aux_data): Adjust.
21963 (add_dependency): Likewise.
21964 (set_level): Likewise.
21965
d154bfa2
RB
219662013-03-25 Richard Biener <rguenther@suse.de>
21967
21968 PR middle-end/56434
21969 * calls.c (expand_call): Use MALLOC_ABI_ALIGNMENT to annotate
21970 the pointer returned by calls with ECF_MALLOC set.
21971
2cd9804e
UB
219722013-03-24 Uros Bizjak <ubizjak@gmail.com>
21973
acef5fe0
UB
21974 * config/i386/mmx.md (mov<mode>): Add ?!Ym,r and r,?!Ym alternatives.
21975
219762013-03-24 Uros Bizjak <ubizjak@gmail.com>
21977
21978 * config/i386/mmx.md (mov<mode>): Merge with movv2sf expander
2cd9804e
UB
21979 using MMXMODE mode iterator.
21980 (*move<mode>_internal): Merge with *movv2sf_internal and
21981 *movv2sf_internal_rex64 using MMXMODE mode iterator.
21982
225ccc68
SB
219832013-03-23 Steven Bosscher <steven@gcc.gnu.org>
21984
85c0f02d
SB
21985 * gcse.c (oprs_unchanged_p): Respect flag_gcse_lm.
21986 (record_last_mem_set_info): Likewise.
21987
225ccc68
SB
21988 * df-core.c (rest_of_handle_df_initialize): Use XCNEWVEC instead
21989 of XNEWVEC followed by memset.
21990 (df_worklist_dataflow): Use XNEWVEC instead of xmalloc with a cast.
21991
b64925dc
SB
219922013-03-23 Steven Bosscher <steven@gcc.gnu.org>
21993
21994 * config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
21995 config/epiphany/epiphany.c, config/frv/frv.c, config/ia64/ia64.c,
21996 config/iq2000/iq2000.c, config/mcore/mcore.c, config/mep/mep.c,
21997 config/mmix/mmix.c, config/pa/pa.c, config/rs6000/rs6000.c,
21998 config/s390/s390.c, config/sparc/sparc.c, config/spu/spu.c,
21999 config/stormy16/stormy16.c, config/v850/v850.c, config/xtensa/xtensa.c,
22000 dwarf2out.c, hw-doloop.c, resource.c, rtl.h : Where applicable, use
22001 the predicates NOTE_P, NONJUMP_INSN_P, JUMP_P, CALL_P, LABEL_P, and
22002 BARRIER_P instead of GET_CODE.
22003
b9aaf52e
EB
220042013-03-23 Eric Botcazou <ebotcazou@adacore.com>
22005
22006 * config/sparc/sparc.c (sparc_emit_probe_stack_range): Fix small
22007 inaccuracy in the probing code.
22008
22009 * config/sparc/sparc.md (ctrapsi4): Add predicate for operand #3.
22010 (ctrapdi4): Likewise.
22011
66de4d7c
EB
220122013-03-23 Eric Botcazou <ebotcazou@adacore.com>
22013
22014 * calls.c (expand_call): Add missing guard to code handling return
22015 of non-BLKmode structures in MSB.
22016 * function.c (expand_function_end): Likewise.
22017
4f25c8fb
EB
220182013-03-23 Eric Botcazou <ebotcazou@adacore.com>
22019
22020 * combine.c (try_combine): Adjust comment. Do not add the set of
22021 insn #0 if the destination indirectly is set or dies in insn #2.
22022 Tidy up code to distribute a new note.
22023
23b7850d
UB
220242013-03-22 Uros Bizjak <ubizjak@gmail.com>
22025
22026 * config/i386/i386.md (*movdi_internal): Set prefix_rex attribute
22027 also for alternatives 16 and 17.
22028
bed852cf
UB
220292013-03-22 Uros Bizjak <ubizjak@gmail.com>
22030
22031 * config/i386/sse.md (*mov<mode>_internal): Merge with
22032 *mov<mode>_internal_rex64. Use x64 and nox64 isa attributes.
22033 Emit insn template depending on type attribute. Use
22034 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
22035 movd instead of movq mnemonic for interunit moves. Rewrite mode
22036 attribute calculation. Remove unit attribute calculation.
22037 Set prefix attribute to maybe_vex for sselog1 and ssemov types.
22038 Set prefix_data16 attribute for DImode ssemov types.
22039 Use Ym instead of y for SSE-MMX conversion alternatives.
22040 Reorder operand constraints.
22041
1e8a7937
SB
220422013-03-22 Steven Bosscher <steven@gcc.gnu.org>
22043
22044 * df.h (df_insn_delete): Adjust prototype.
22045 * emit-rtl.c (remove_insn): Pass a basic block to df_insn_delete
22046 and let it decide whether mark the basic block dirty.
22047 (set_insn_deleted): Only pass INSN_P insns to df_insn_delete.
22048 * df-scan.c (df_insn_info_delete): New helper function, split
22049 off from df_insn_delete.
22050 (df_scan_free_bb_info): Use it.
22051 (df_insn_rescan, df_insn_rescan_all, df_process_deferred_rescans):
22052 Likewise.
22053 (df_insn_delete): Likewise. Take insn rtx as argument. Verify
22054 that the insn is actually an insn and it has a non-NULL basic block.
22055 Do not mark basic block dirty if only deleting a DEBUG_INSN.
22056
e14d094c
RB
220572013-03-22 Richard Biener <rguenther@suse.de>
22058
22059 * tree-ssa-loop-im.c (struct mem_ref): Remove indep_ref and
22060 dep_ref members.
22061 (mem_ref_alloc): Do not allocate them.
22062 (refs_independent_p): Do not query or maintain a cache.
22063
e9cf7316
RB
220642013-03-22 Richard Biener <rguenther@suse.de>
22065
22066 * tree-ssa-loop-im.c (memory_references): Drop all_refs_in_loop.
22067 (gather_mem_refs_in_loops): Do not compute it.
22068 (analyze_memory_references): Do not allocate it.
22069 (tree_ssa_lim_finalize): Do not free it.
22070 (for_all_locs_in_loop): Do not query all_refs_in_loop.
22071
f046e81b
RB
220722013-03-22 Richard Biener <rguenther@suse.de>
22073
22074 * is-a.h (as_a): Use gcc_checking_assert.
bed852cf 22075
a05c0ddf
IB
220762013-03-22 Ian Bolton <ian.bolton@arm.com>
22077
22078 * config/aarch64/aarch64.c (aarch64_print_operand): New
22079 format specifier for printing a constant in hex.
22080 * config/aarch64/aarch64.md (insv_imm<mode>): Use the X
22081 format specifier for printing second operand.
22082
c00217fc
RB
220832013-03-22 Richard Biener <rguenther@suse.de>
22084
22085 * tree-ssa-loop-im.c (memory_references): Add refs_stored_in_loop
22086 bitmaps.
22087 (gather_mem_refs_in_loops): Perform store accumulation here.
22088 (create_vop_ref_mapping_loop): Remove.
22089 (create_vop_ref_mapping): Likewise.
22090 (analyze_memory_references): Initialize refs_stored_in_loop.
bed852cf 22091 (LOOP_DEP_BIT): New define to map to bits in (in)dep_loop bitmaps.
c00217fc
RB
22092 (record_indep_loop): Remove.
22093 (record_dep_loop): New function.
22094 (ref_indep_loop_p_1): Adjust to only walk over references
22095 in the loop, not its subloops.
22096 (ref_indep_loop_p): Rename to ...
22097 (ref_indep_loop_p_2): ... this and recurse over the loop tree,
22098 maintaining a more fine-grained cache.
22099 (ref_indep_loop_p): Wrap ref_indep_loop_p_2.
22100 (tree_ssa_lim_finalize): Free refs_stored_in_loop.
22101
15d19bf8
RB
221022013-03-22 Richard Biener <rguenther@suse.de>
22103
22104 * tree-ssa-loop-im.c (struct mem_ref_locs): Remove.
22105 (struct mem_ref): Make accesses_in_loop a vec of a vec of
22106 aggregate mem_ref_loc.
22107 (free_mem_ref_locs): Inline into ...
22108 (memref_free): ... this and adjust.
22109 (mem_ref_alloc): Adjust.
22110 (mem_ref_locs_alloc): Remove.
22111 (record_mem_ref_loc): Adjust.
22112 (get_all_locs_in_loop): Rewrite into ...
22113 (for_all_locs_in_loop): ... this iterator.
22114 (rewrite_mem_ref_loc): New functor.
22115 (rewrite_mem_refs): Use for_all_locs_in_loop.
22116 (sm_set_flag_if_changed): New functor.
22117 (execute_sm_if_changed_flag_set): Use for_all_locs_in_loop.
22118 (ref_always_accessed): New functor.
22119 (ref_always_accessed_p): Use for_all_locs_in_loop.
22120
6f37411d
MG
221212013-03-21 Marc Glisse <marc.glisse@inria.fr>
22122
22123 * tree-pass.h (PROP_gimple_lvec): New.
22124 * passes.c (dump_properties): Handle PROP_gimple_lvec.
22125 (init_optimization_passes): Move pass_lower_vector.
22126 * tree-vect-generic.c (gate_expand_vector_operations_ssa): Test
22127 PROP_gimple_lvec.
22128 (pass_lower_vector): Provide PROP_gimple_lvec.
22129 (pass_lower_vector_ssa): Likewise.
22130 * cfgexpand.c (pass_expand): Require PROP_gimple_lvec.
22131
511ef689
MW
221322013-03-21 Mark Wielaard <mjw@redhat.com>
22133
22134 * dwarf2out.c (size_of_aranges): Skip DECL_IGNORED_P functions.
22135
cc1df30b
UB
221362013-03-21 Uros Bizjak <ubizjak@gmail.com>
22137
22138 * config/i386/i386.md (*movdi_internal): Disparage slightly
22139 all MMX moves to/from memory. Use Yi instead of x for SSE-MMX
22140 conversion alternatives.
22141
c845cfe1
JJ
221422013-03-21 Jakub Jelinek <jakub@redhat.com>
22143
37e99116
JJ
22144 PR middle-end/48087
22145 * diagnostic.def (DK_WERROR): New kind.
22146 * diagnostic.h (werrorcount): Define.
22147 * diagnostic.c (diagnostic_report_diagnostic): For DK_WARNING
22148 promoted to DK_ERROR, increment DK_WERROR counter instead of
22149 DK_ERROR counter.
22150 * toplev.c (toplev_main): Call print_ignored_options even if
22151 just werrorcount is non-zero. Exit with FATAL_EXIT_CODE
22152 even if just werrorcount is non-zero.
22153
c845cfe1
JJ
22154 PR debug/55608
22155 * dwarf2out.c (tree_add_const_value_attribute): Call ggc_free (array)
22156 on failure.
22157 (resolve_one_addr): Fail if referenced STRING_CST hasn't been written.
22158 (string_cst_pool_decl): New function.
22159 (optimize_one_addr_into_implicit_ptr): New function.
22160 (resolve_addr_in_expr): Optimize DWARF location expression
22161 DW_OP_addr DW_OP_stack_value where DW_OP_addr refers to some variable
22162 which doesn't live in memory, but has DW_AT_location or
22163 DW_AT_const_value, or refers to a string literal, into
22164 DW_OP_GNU_implicit_pointer.
22165 (optimize_location_into_implicit_ptr): New function.
22166 (resolve_addr): If removing DW_AT_location of a variable because
22167 it was DW_OP_addr of address of the variable, but the variable doesn't
22168 live in memory, try to emit const value attribute for the initializer.
22169
08e0cda6
MG
221702013-03-21 Marc Glisse <marc.glisse@inria.fr>
22171
22172 * tree.h (VECTOR_TYPE_P): New macro.
22173 (VECTOR_INTEGER_TYPE_P, VECTOR_FLOAT_TYPE_P, FLOAT_TYPE_P,
22174 TYPE_MODE): Use it.
22175 * fold-const.c (fold_cond_expr_with_comparison): Use build_zero_cst.
22176 VEC_COND_EXPR cannot be lvalues.
22177 (fold_ternary_loc) <VEC_COND_EXPR>: Merge with the COND_EXPR case.
22178
d08633b4
MG
221792013-03-21 Marc Glisse <marc.glisse@inria.fr>
22180
22181 * simplify-rtx.c (simplify_binary_operation_1) <VEC_CONCAT>:
22182 Restrict the transformation to equal modes.
22183
e6647190
RB
221842013-03-21 Richard Biener <rguenther@suse.de>
22185
22186 PR tree-optimization/39326
22187 * tree-ssa-loop-im.c (UNANALYZABLE_MEM_ID): New define.
22188 (MEM_ANALYZABLE): Adjust.
22189 (record_mem_ref_loc): Move bitmap ops ...
22190 (gather_mem_refs_stmt): ... here. Use the shared mem-ref for
22191 unanalyzable refs, do not record locations for it.
22192 (analyze_memory_references): Allocate ref zero as shared
22193 unanalyzable ref.
22194 (refs_independent_p): Do not test for unanalyzed mems here.
22195 (ref_indep_loop_p_1): Special-case disambiguation against
22196 the unanalyzed ref.
cc1df30b 22197 (ref_indep_loop_p): Assert we are not queried for the unanalyzed mem.
e6647190 22198
65074f54
CL
221992013-03-21 Christophe Lyon <christophe.lyon@linaro.org>
22200
22201 * config/arm/arm-protos.h (tune_params): Add
22202 prefer_neon_for_64bits field.
22203 * config/arm/arm.c (prefer_neon_for_64bits): New variable.
22204 (arm_slowmul_tune): Default prefer_neon_for_64bits to false.
22205 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
22206 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
22207 (arm_cortex_a15_tune, arm_cortex_a5_tune): Ditto.
22208 (arm_cortex_a9_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
22209 (arm_option_override): Handle -mneon-for-64bits new option.
22210 * config/arm/arm.h (TARGET_PREFER_NEON_64BITS): New macro.
22211 (prefer_neon_for_64bits): Declare new variable.
22212 * config/arm/arm.md (arch): Rename neon_onlya8 and neon_nota8 to
cc1df30b 22213 avoid_neon_for_64bits and neon_for_64bits. Remove onlya8 and nota8.
65074f54
CL
22214 (arch_enabled): Handle new arch types. Remove support for onlya8
22215 and nota8.
22216 (one_cmpldi2): Use new arch names.
bc5faa5b 22217 (zero_extend<mode>di2, extend<mode>di2): Ditto.
65074f54
CL
22218 * config/arm/arm.opt (mneon-for-64bits): Add option.
22219 * config/arm/neon.md (adddi3_neon, subdi3_neon, iordi3_neon)
22220 (anddi3_neon, xordi3_neon, ashldi3_neon, <shift>di3_neon): Use
22221 neon_for_64bits instead of nota8 and avoid_neon_for_64bits instead
22222 of onlya8.
22223 * doc/invoke.texi (-mneon-for-64bits): Document.
22224
5a2d2a79
RB
222252013-03-21 Richard Biener <rguenther@suse.de>
22226
22227 PR tree-optimization/39326
22228 * tree-ssa-loop-im.c (bb_loop_postorder): New global static.
22229 (sort_bbs_in_loop_postorder_cmp): New function.
cc1df30b 22230 (gather_mem_refs_in_loops): Assign mem-ref IDs in loop postorder.
5a2d2a79 22231
5abe1e05
RB
222322013-03-21 Richard Biener <rguenther@suse.de>
22233
22234 * tree-vect-data-refs.c (vect_update_interleaving_chain): Remove.
22235 (vect_insert_into_interleaving_chain): Likewise.
22236 (vect_drs_dependent_in_basic_block): Inline ...
22237 (vect_slp_analyze_data_ref_dependence): ... here. New function,
22238 split out from ...
22239 (vect_analyze_data_ref_dependence): ... here. Simplify.
22240 (vect_check_interleaving): Simplify.
22241 (vect_analyze_data_ref_dependences): Likewise. Split out ...
22242 (vect_slp_analyze_data_ref_dependences): ... this new function.
22243 (dr_group_sort_cmp): New function.
22244 (vect_analyze_data_ref_accesses): Compute data-reference groups
22245 here instead of in vect_analyze_data_ref_dependence. Use
22246 a more efficient algorithm.
22247 * tree-vect-slp.c (vect_slp_analyze_bb_1): Use
22248 vect_slp_analyze_data_ref_dependences. Call
22249 vect_analyze_data_ref_accesses earlier.
22250 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
22251 * tree-vectorizer.h (vect_analyze_data_ref_dependences): Adjust.
22252 (vect_slp_analyze_data_ref_dependences): New prototype.
22253
cad1735b
RB
222542013-03-21 Richard Biener <rguenther@suse.de>
22255
22256 * tree-ssa-loop-im.c (can_sm_ref_p): Do not test whether
22257 ref is stored in the loop.
22258 (find_refs_for_sm): Walk only over all stores.
22259 (store_motion_loop): Allocate from lim_bitmap_obstack.
22260 (store_motion): Likewise.
22261
141310ef
RB
222622013-03-21 Richard Biener <rguenther@suse.de>
22263
22264 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge):
22265 Update virtual SSA form.
22266
5022315a
RO
222672013-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22268
22269 * configure.ac (gcc_cv_ld_eh_frame_ciev3): New test.
22270 * configure: Regenerate.
22271 * config.in: Regenerate.
22272 * config/sol2.c (solaris_override_options): Only enforce DWARF 2
22273 if !HAVE_LD_EH_FRAME_CIEV3.
22274
50d4421c
RB
222752013-03-21 Richard Biener <rguenther@suse.de>
22276
22277 * tree-cfg.c (verify_expr_no_block): New function.
22278 (verify_expr_location_1): Verify that neither DECL_DEBUG_EXPR
22279 nor DECL_VALUE_EXPR have locations with associated blocks.
22280 * tree-ssa-live.c (clear_unused_block_pointer_1): Remove.
22281 (clear_unused_block_pointer): Remove code dealing with
22282 blocks in DECL_DEBUG_EXPR locations.
22283
839b422f
RB
222842013-03-21 Richard Biener <rguenther@suse.de>
22285
22286 * tree.h (DECL_DEBUG_EXPR_IS_FROM): Rename to ...
22287 (DECL_HAS_DEBUG_EXPR_P): ... this. Guard properly.
22288 * tree.c (copy_node_stat): Do not copy DECL_HAS_DEBUG_EXPR_P.
22289 * dwarf2out.c (add_var_loc_to_decl): Use DECL_HAS_DEBUG_EXPR_P
22290 instead of DECL_DEBUG_EXPR_IS_FROM.
22291 * gimplify.c (gimplify_modify_expr): Likewise.
22292 * tree-cfg.c (verify_expr_location_1): Likewise.
22293 * tree-complex.c (create_one_component_var): Likewise.
22294 * tree-sra.c (create_access_replacement): Likewise.
22295 * tree-ssa-live.c (clear_unused_block_pointer_1): Likewise.
22296 (clear_unused_block_pointer): Likewise.
22297 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
22298 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
22299 * var-tracking.c (var_debug_decl): Likewise.
22300 (track_expr_p): Likewise.
22301 * tree-inline.c (add_local_variables): Likewise. Set
22302 DECL_HAS_DEBUG_EXPR_P after copying it.
22303 * tree-diagnostic.c (default_tree_printer): Use DECL_HAS_DEBUG_EXPR_P
22304 instead of DECL_DEBUG_EXPR_IS_FROM. Guard properly.
22305
fe04878d
UB
223062013-03-21 Uros Bizjak <ubizjak@gmail.com>
22307
22308 PR bootstrap/56656
22309 * configure.ac (HAVE_AS_IX86_INTERUNIT_MOVQ): New test.
22310 * configure: Regenerate.
22311 * config.in: Regenerate.
22312 * config/i386/i386.md (*movdf_internal): Use
22313 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
22314 movd instead of movq mnemonic for interunit moves.
22315 (*movdi_internal): Ditto.
22316
bd059b26 223172013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
fa2e9a58
N
22318
22319 * config/aarch64/aarch64-simd.md (simd_fabd): New Attribute.
22320 (abd<mode>_3): New pattern.
22321 (aba<mode>_3): New pattern.
22322 (fabd<mode>_3): New pattern.
22323
bd059b26 223242013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
50ce6f88
N
22325
22326 * config/aarch64/aarch64-elf.h (REGISTER_PREFIX): Remove.
22327 * config/aarch64/aarch64.c (aarch64_print_operand): Remove all
22328 occurrence of REGISTER_PREFIX as its empty string.
22329
4f1f78b9
JL
223302013-03-20 Jeff Law <law@redhat.com>
22331
22332 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Record
22333 addititional equivalences for equality comparisons between an SSA_NAME
22334 and a constant where the SSA_NAME was set from a widening conversion.
22335
327a1118
WL
223362013-03-20 Walter Lee <walt@tilera.com>
22337
22338 * config/tilegx/sync.md (atomic_test_and_set): New pattern.
22339
813e0036
UB
223402013-03-20 Uros Bizjak <ubizjak@gmail.com>
22341
22342 * config/i386/i386.md (*movoi_internal_avx): Emit insn template
22343 depending on type attribute.
22344 (*movti_internal): Ditto.
22345 (*movtf_internal): Ditto.
22346 (*movxf_internal): Ditto.
22347 (*movdf_internal): Ditto.
22348 (*movsf_internal): Ditto.
22349
7cf34aae
UB
223502013-03-20 Uros Bizjak <ubizjak@gmail.com>
22351
22352 * config/i386/i386.md (*movti_internal): Set prefix attribute to
22353 maybe_vex for sselog1 and ssemov types.
22354 (*movdi_internal): Reorder operand constraints.
22355 (*movsi_internal): Ditto. Set prefix attribute to
22356 maybe_vex for sselog1 and ssemov types.
22357 (*movtf_internal): Set prefix attribute to maybe_vex
22358 for sselog1 and ssemov types.
22359 (*movdf_internal): Ditto. Set prefix_data16 attribute for
22360 DImode ssemov types. Reorder operand constraints.
22361 (*movsf_internal): Set type of alternatives 3,4 to imov. Set prefix
22362 attribute to maybe_vex for sselog1 and ssemov types. Set prefix_data16
22363 attribute for SImode ssemov types. Reorder operand constraints.
22364
19321415
MJ
223652013-03-20 Martin Jambor <mjambor@suse.cz>
22366
22367 * params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): New parameter.
22368 * ipa-cp.c (hint_time_bonus): Add abonus for known array indices.
22369
12211b99 223702013-03-20 Pat Haugen <pthaugen@us.ibm.com>
c6d5ff83
MM
22371
22372 * config/rs6000/predicates.md (indexed_address, update_address_mem
22373 update_indexed_address_mem): New predicates.
22374 * config/rs6000/vsx.md (vsx_extract_<mode>_zero): Set correct "type"
22375 attribute for load/store instructions.
22376 * config/rs6000/dfp.md (movsd_store): Likewise.
22377 (movsd_load): Likewise.
22378 * config/rs6000/rs6000.md (zero_extend<mode>di2_internal1): Likewise.
22379 (unnamed HI->DI extend define_insn): Likewise.
22380 (unnamed SI->DI extend define_insn): Likewise.
22381 (unnamed QI->SI extend define_insn): Likewise.
22382 (unnamed QI->HI extend define_insn): Likewise.
22383 (unnamed HI->SI extend define_insn): Likewise.
22384 (unnamed HI->SI extend define_insn): Likewise.
22385 (extendsfdf2_fpr): Likewise.
22386 (movsi_internal1): Likewise.
22387 (movsi_internal1_single): Likewise.
22388 (movhi_internal): Likewise.
22389 (movqi_internal): Likewise.
22390 (movcc_internal1): Correct mnemonic for stw insn. Set correct "type"
22391 attribute for load/store instructions.
22392 (mov<mode>_hardfloat): Set correct "type" attribute for load/store
22393 instructions.
22394 (mov<mode>_softfloat): Likewise.
22395 (mov<mode>_hardfloat32): Likewise.
22396 (mov<mode>_hardfloat64): Likewise.
22397 (mov<mode>_softfloat64): Likewise.
22398 (movdi_internal32): Likewise.
22399 (movdi_internal64): Likewise.
22400 (probe_stack_<mode>): Likewise.
22401
224022013-03-20 Michael Meissner <meissner@linux.vnet.ibm.com>
22403
22404 * config/rs6000/vector.md (VEC_R): Add 32-bit integer, binary
22405 floating point, and decimal floating point to reload iterator.
22406
22407 * config/rs6000/constraints.md (wl constraint): New constraints to
22408 return FLOAT_REGS if certain options are used to reduce the number
22409 of separate patterns that exist in the file.
22410 (wx constraint): Likewise.
22411 (wz constraint): Likewise.
22412
22413 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
22414 -mdebug=reg, print wg, wl, wx, and wz constraints.
22415 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
22416 Initialize the reload functions for 64-bit binary/decimal floating
22417 point types.
22418 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
22419 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
22420 create the buffer on the stack to overcome not having a 32-bit
22421 load and store.
22422 (rs6000_emit_move): Likewise.
22423 (rs6000_secondary_memory_needed_rtx): Likewise.
22424 (rs6000_alloc_sdmode_stack_slot): Likewise.
22425 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
22426 via xxlxor, just like DFmode 0.0.
22427
22428 * config/rs6000/rs6000.h (TARGET_NO_SDMODE_STACK): New macro,
22429 define as 1 if we are running on a power7 or newer.
22430 (enum r6000_reg_class_enum): Add new constraints.
22431
22432 * config/rs6000/dfp.md (movsd): Delete, combine with binary
22433 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
22434 with other moves by using conditional constraits (wg). Use LFIWZX
bd059b26 22435 and STFIWX for loading SDmode on power7. Use xxlxor to create 0.0f.
c6d5ff83
MM
22436 (movsd splitter): Likewise.
22437 (movsd_hardfloat): Likewise.
22438 (movsd_softfloat): Likewise.
22439
22440 * config/rs6000/rs6000.md (FMOVE32): New iterators to combine
22441 binary and decimal floating point moves.
22442 (fmove_ok): New attributes to combine binary and decimal floating
22443 point moves, and to combine power6x (mfpgpr) moves along normal
22444 floating moves.
22445 (real_value_to_target): Likewise.
22446 (f32_lr): Likewise.
22447 (f32_lm): Likewise.
22448 (f32_li): Likewise.
22449 (f32_sr): Likewise.
22450 (f32_sm): Likewise.
22451 (f32_si): Likewise.
22452 (movsf): Combine binary and decimal floating point moves. Combine
22453 power6x (mfpgpr) moves with other moves by using conditional
bd059b26 22454 constraits (wg). Use LFIWZX and STFIWX for loading SDmode on power7.
c6d5ff83
MM
22455 (mov<mode> for SFmode/SDmode); Likewise.
22456 (SFmode/SDmode splitters): Likewise.
22457 (movsf_hardfloat): Likewise.
22458 (mov<mode>_hardfloat for SFmode/SDmode): Likewise.
22459 (movsf_softfloat): Likewise.
22460 (mov<mode>_softfloat for SFmode/SDmode): Likewise.
22461
22462 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wl,
22463 wx and wz constraints.
22464
22465 * config/rs6000/constraints.md (wg constraint): New constraint to
22466 return FLOAT_REGS if -mmfpgpr (power6x) was used.
22467
22468 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wg
22469 constraint.
22470
22471 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
22472 -mdebug=reg, print wg, wl, wx, and wz constraints.
22473 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
22474 Initialize the reload functions for 64-bit binary/decimal floating
22475 point types.
22476 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
22477 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
22478 create the buffer on the stack to overcome not having a 32-bit
22479 load and store.
22480 (rs6000_emit_move): Likewise.
22481 (rs6000_secondary_memory_needed_rtx): Likewise.
22482 (rs6000_alloc_sdmode_stack_slot): Likewise.
22483 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
22484 via xxlxor, just like DFmode 0.0.
22485
c6d5ff83
MM
22486 * config/rs6000/dfp.md (movdd): Delete, combine with binary
22487 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
22488 with other moves by using conditional constraits (wg). Use LFIWZX
22489 and STFIWX for loading SDmode on power7.
22490 (movdd splitters): Likewise.
22491 (movdd_hardfloat32): Likewise.
22492 (movdd_softfloat32): Likewise.
22493 (movdd_hardfloat64_mfpgpr): Likewise.
22494 (movdd_hardfloat64): Likewise.
22495 (movdd_softfloat64): Likewise.
22496
22497 * config/rs6000/rs6000.md (FMOVE64): New iterators to combine
22498 64-bit binary and decimal floating point moves.
22499 (FMOVE64X): Likewise.
22500 (movdf): Combine 64-bit binary and decimal floating point moves.
22501 Combine power6x (mfpgpr) moves with other moves by using
22502 conditional constraits (wg).
22503 (mov<mode> for DFmode/DDmode): Likewise.
22504 (DFmode/DDmode splitters): Likewise.
22505 (movdf_hardfloat32): Likewise.
22506 (mov<mode>_hardfloat32 for DFmode/DDmode): Likewise.
22507 (movdf_softfloat32): Likewise.
22508 (movdf_hardfloat64_mfpgpr): Likewise.
22509 (movdf_hardfloat64): Likewise.
22510 (mov<mode>_hardfloat64 for DFmode/DDmode): Likewise.
22511 (movdf_softfloat64): Likewise.
22512 (mov<mode>_softfloat64 for DFmode/DDmode): Likewise.
22513 (reload_<mode>_load): Move to later in the file so they aren't in
22514 the middle of the floating point move insns.
22515 (reload_<mode>_store): Likewise.
22516
22517 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wg
22518 constraint.
22519
22520 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print out wg
22521 constraint if -mdebug=reg.
bd059b26
UB
22522 (rs6000_initi_hard_regno_mode_ok): Enable wg constraint if -mfpgpr.
22523 Enable using dd reload support if needed.
c6d5ff83
MM
22524
22525 * config/rs6000/dfp.md (movtd): Delete, combine with 128-bit
22526 binary and decimal floating point moves in rs6000.md.
22527 (movtd_internal): Likewise.
22528
22529 * config/rs6000/rs6000.md (FMOVE128): Combine 128-bit binary and
22530 decimal floating point moves.
22531 (movtf): Likewise.
22532 (movtf_internal): Likewise.
22533 (mov<mode>_internal, TDmode/TFmode): Likewise.
22534 (movtf_softfloat): Likewise.
22535 (mov<mode>_softfloat, TDmode/TFmode): Likewise.
22536
22537 * config/rs6000/rs6000.md (movdi_mfpgpr): Delete, combine with
22538 movdi_internal64, using wg constraint for move direct operations.
22539 (movdi_internal64): Likewise.
22540
22541 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print
22542 MODES_TIEABLE_P for selected modes. Print the numerical value of
22543 the various virtual registers. Use GPR/FPR first/last values,
22544 instead of hard coding the register numbers. Print which modes
22545 have reload functions registered.
bd059b26
UB
22546 (rs6000_option_override_internal): If -mdebug=reg, trace the options
22547 settings before/after setting cpu, target and subtarget settings.
22548 (rs6000_secondary_reload_trace): Improve the RTL dump for -mdebug=addr
22549 and for secondary reload failures in rs6000_secondary_reload_inner.
c6d5ff83
MM
22550 (rs6000_secondary_reload_fail): Likewise.
22551 (rs6000_secondary_reload_inner): Likewise.
22552
22553 * config/rs6000/rs6000.md (FIRST_GPR_REGNO): Add convenience
22554 macros for first/last GPR and FPR registers.
22555 (LAST_GPR_REGNO): Likewise.
22556 (FIRST_FPR_REGNO): Likewise.
22557 (LAST_FPR_REGNO): Likewise.
22558
22559 * config/rs6000/vector.md (mul<mode>3): Use the combined macro
22560 VECTOR_UNIT_ALTIVEC_OR_VSX_P instead of separate calls to
22561 VECTOR_UNIT_ALTIVEC_P and VECTOR_UNIT_VSX_P.
22562 (vcond<mode><mode>): Likewise.
22563 (vcondu<mode><mode>): Likewise.
22564 (vector_gtu<mode>): Likewise.
22565 (vector_gte<mode>): Likewise.
22566 (xor<mode>3): Don't allow logical operations on TImode in 32-bit
bd059b26 22567 to prevent the compiler from converting DImode operations to TImode.
c6d5ff83
MM
22568 (ior<mode>3): Likewise.
22569 (and<mode>3): Likewise.
22570 (one_cmpl<mode>2): Likewise.
22571 (nor<mode>3): Likewise.
22572 (andc<mode>3): Likewise.
22573
22574 * config/rs6000/constraints.md (wt constraint): New constraint
22575 that returns VSX_REGS if TImode is allowed in VSX registers.
22576
22577 * config/rs6000/predicates.md (easy_fp_constant): 0.0f is an easy
22578 constant under VSX.
22579
22580 * config/rs6000/rs6000-modes.def (PTImode): Define, PTImode is
22581 similar to TImode, but it is restricted to being in the GPRs.
22582
22583 * config/rs6000/rs6000.opt (-mvsx-timode): New switch to allow
22584 TImode to occupy a single VSX register.
22585
22586 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Default to
22587 -mvsx-timode for power7/power8.
22588 (power7 cpu): Likewise.
22589 (power8 cpu): Likewise.
22590
22591 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Make
22592 sure that TFmode/TDmode take up two registers if they are ever
22593 allowed in the upper VSX registers.
22594 (rs6000_hard_regno_mode_ok): If -mvsx-timode, allow TImode in VSX
22595 registers.
22596 (rs6000_init_hard_regno_mode_ok): Likewise.
22597 (rs6000_debug_reg_global): Add debugging for PTImode and wt
22598 constraint. Print if LRA is turned on.
22599 (rs6000_option_override_internal): Give an error if -mvsx-timode
22600 and VSX is not enabled.
22601 (invalid_e500_subreg): Handle PTImode, restricting it to GPRs. If
22602 -mvsx-timode, restrict TImode to reg+reg addressing, and PTImode
22603 to reg+offset addressing. Use PTImode when checking offset
22604 addresses for validity.
22605 (reg_offset_addressing_ok_p): Likewise.
22606 (rs6000_legitimate_offset_address_p): Likewise.
22607 (rs6000_legitimize_address): Likewise.
22608 (rs6000_legitimize_reload_address): Likewise.
22609 (rs6000_legitimate_address_p): Likewise.
22610 (rs6000_eliminate_indexed_memrefs): Likewise.
22611 (rs6000_emit_move): Likewise.
22612 (rs6000_secondary_reload): Likewise.
22613 (rs6000_secondary_reload_inner): Handle PTImode. Allow 64-bit
22614 reloads to fpr registers to continue to use reg+offset addressing,
22615 but 64-bit reloads to altivec registers need reg+reg addressing.
22616 Drop test for PRE_MODIFY, since VSX loads/stores no longer support
22617 it. Treat LO_SUM like a PLUS operation.
22618 (rs6000_secondary_reload_class): If type is 64-bit, prefer to use
bd059b26 22619 FLOAT_REGS instead of VSX_RGS to allow use of reg+offset addressing.
c6d5ff83
MM
22620 (rs6000_cannot_change_mode_class): Do not allow TImode in VSX
22621 registers to share a register with a smaller sized type, since VSX
22622 puts scalars in the upper 64-bits.
22623 (print_operand): Add support for PTImode.
22624 (rs6000_register_move_cost): Use VECTOR_MEM_VSX_P instead of
22625 VECTOR_UNIT_VSX_P to catch types that can be loaded in VSX
22626 registers, but don't have arithmetic support.
22627 (rs6000_memory_move_cost): Add test for VSX.
22628 (rs6000_opt_masks): Add -mvsx-timode.
22629
22630 * config/rs6000/vsx.md (VSm): Change to use 64-bit aligned moves
22631 for TImode.
22632 (VSs): Likewise.
22633 (VSr): Use wt constraint for TImode.
22634 (VSv): Drop TImode support.
22635 (vsx_movti): Delete, replace with versions for 32-bit and 64-bit.
22636 (vsx_movti_64bit): Likewise.
22637 (vsx_movti_32bit): Likewise.
22638 (vec_store_<mode>): Use VSX iterator instead of vector iterator.
22639 (vsx_and<mode>3): Delete use of '?' constraint on inputs, just put
22640 one '?' on the appropriate output constraint. Do not allow TImode
22641 logical operations on 32-bit systems.
22642 (vsx_ior<mode>3): Likewise.
22643 (vsx_xor<mode>3): Likewise.
22644 (vsx_one_cmpl<mode>2): Likewise.
22645 (vsx_nor<mode>3): Likewise.
22646 (vsx_andc<mode>3): Likewise.
22647 (vsx_concat_<mode>): Likewise.
22648 (vsx_xxpermdi_<mode>): Fix thinko for non V2DF/V2DI modes.
22649
22650 * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Map from
22651 OPTION_MASK_VSX_TIMODE.
22652 (enum rs6000_reg_class_enum): Add RS6000_CONSTRAINT_wt.
22653 (STACK_SAVEAREA_MODE): Use PTImode instead of TImode.
22654
22655 * config/rs6000/rs6000.md (INT mode attribute): Add PTImode.
22656 (TI2 iterator): New iterator for TImode, PTImode.
22657 (wd mode attribute): Add values for vector types.
bd059b26
UB
22658 (movti_string): Replace TI move operations with operations for TImode
22659 and PTImode. Add support for TImode being allowed in VSX registers.
c6d5ff83
MM
22660 (mov<mode>_string, TImode/PTImode): Likewise.
22661 (movti_ppc64): Likewise.
22662 (mov<mode>_ppc64, TImode/PTImode): Likewise.
22663 (TI mode splitters): Likewise.
22664
22665 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wt
22666 constraint.
22667
1fc5eced
MG
226682013-03-20 Marc Glisse <marc.glisse@inria.fr>
22669
22670 PR tree-optimization/56355
22671 * fold-const.c (tree_binary_nonnegative_warnv_p) <MULT_EXPR>:
22672 Also handle integers with undefined overflow.
22673
22c4c869
CM
226742013-03-20 Catherine Moore <clm@codesourcery.com>
22675 Maciej W. Rozycki <macro@codesourcery.com>
22676 Tom de Vries <tom@codesourcery.com>
12211b99 22677 Nathan Sidwell <nathan@codesourcery.com>
22c4c869
CM
22678 Iain Sandoe <iain@codesourcery.com>
22679 Nathan Froyd <froydnj@codesourcery.com>
12211b99 22680 Chao-ying Fu <fu@mips.com>
22c4c869
CM
22681
22682 * doc/extend.texi: (micromips, nomicromips, nocompression):
7cf34aae 22683 Document new function attributes.
22c4c869
CM
22684 * doc/invoke.texi (minterlink-compressed, mmicromips,
22685 m14k, m14ke, m14kec): Document new options.
22686 (minterlink-mips16): Update documentation.
22687 * doc/md.texi (ZC, ZD): Document new constraints.
22688 * configure.ac (gcc_cv_as_micromips): Check if linker
22689 supports the .set micromips directive.
22690 * configure: Regenerate.
22691 * config.in: Regenerate.
22692 * config/mips/mips-tables.opt: Regenerate.
22693 * config/mips/micromips.md: New file.
22694 * constraints.md (ZC, ZD): New constraints.
22695 * config/mips/predicates.md (movep_src_register): New predicate.
22696 (movep_src_operand): New predicate.
22697 (non_volatile_mem_operand): New predicate.
22698 * config/mips/mips.md (multimem): New type.
22699 (length): Differentiate between 17-bit and 18-bit branch offsets.
22700 (MOVEP1, MOVEP2): New mode iterator.
33159866 22701 (mov_<load>l): Use ZC constraint.
22c4c869
CM
22702 (mov_<load>r): Likewise.
22703 (mov_<store>l): Likewise.
22704 (mov_<store>r): Likewise.
22705 (*branch_equality<mode>_inverted): Add microMIPS support.
22706 (*branch_equality<mode>): Likewise.
22707 (*jump_absolute): Likewise.
22708 (indirect_jump_<mode>): Likewise.
22709 (tablejump_<mode>): Likewise.
22710 (<optab>_internal): Likewise.
22711 (sibcall_internal): Likewise.
22712 (sibcall_value_internal): Likewise.
22713 (prefetch): Use constraint ZD.
22714 * config/mips/mips.opt (minterlink-compressed): New option.
22715 (minterlink-mips16): Now an alias for minterlink-compressed.
22716 (mmicromips): New option.
22717 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
22718 (compare_and_swap_12): Likewise.
22719 (sync_add<mode>): Likewise.
22720 (sync_<optab>_12): Likewise.
22721 (sync_old_<optab>_12): Likewise.
22722 (sync_new_<optab>_12): Likewise.
22723 (sync_nand_12): Likewise.
22724 (sync_old_nand_12): Likewise.
22725 (sync_new_nand_12): Likewise.
22726 (sync_sub<mode>): Likewise.
22727 (sync_old_add<mode>): Likewise.
22728 (sync_old_sub<mode>): Likewise.
22729 (sync_new_add<mode>): Likewise.
22730 (sync_new_sub<mode>): Likewise.
22731 (sync_<optab><mode>): Likewise.
22732 (sync_old_<optab><mode>): Likewise.
22733 (sync_new_<optab><mode>): Likewise.
22734 (sync_nand<mode>): Likewise.
22735 (sync_old_nand<mode>): Likewise.
22736 (sync_new_nand<mode>): Likewise.
22737 (sync_lock_test_and_set<mode>): Likewise.
22738 (test_and_set_12): Likewise.
22739 (atomic_compare_and_swap<mode>): Likewise.
22740 (atomic_exchange<mode>_llsc): Likewise.
22741 (atomic_fetch_add<mode>_llsc): Likewise.
22742 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
22743 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
22744 (umips_save_restore_pattern_p): Likewise.
22745 (umips_load_store_pair_p): Likewise.
22746 (umips_output_load_store_pair): Likewise.
22747 (umips_movep_target_p): Likewise.
22748 (umips_12bit_offset_address_p): Likewise.
22749 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
22750 (mips_base_mips16): Rename this...
22751 (mips_base_compression_flags): ...to this. Update all uses.
22752 (mips_attribute_table): Add micromips, nomicromips and nocompression.
22753 (mips_mips16_decl_p): Delete.
22754 (mips_nomips16_decl_p): Delete.
33159866 22755 (mips_get_compress_on_flags): New function.
22c4c869
CM
22756 (mips_get_compress_off_flags): New function.
22757 (mips_get_compress_mode): New function.
22758 (mips_get_compress_on_name): New function.
22759 (mips_get_compress_off_name): New function.
22760 (mips_insert_attributes): Support multiple compression types.
22761 (mips_merge_decl_attributes): Likewise.
22762 (umips_12bit_offset_address_p): New function.
22763 (mips_start_function_definition): Emit .set micromips directive.
22764 (mips_call_may_need_jalx_p): New function.
22765 (mips_function_ok_for_sibcall): Add microMIPS support.
22766 (mips_print_operand_punctuation): Support short delay slots and
22767 compact jumps.
22768 (umips_swm_mask, umips_swm_encoding): New.
22769 (umips_build_save_restore): New function.
22770 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
22771 (was_mips16_p): Remove.
22772 (old_compression_mode): New.
22773 (mips_set_compression_mode): New function.
22774 (mips_set_current_function): Add microMIPS support.
22775 (mips_option_override): Likewise.
22776 (umips_save_restore_pattern_p): New function.
22777 (umips_output_save_restore): New function.
22778 (umips_load_store_pair_p_1): New function.
22779 (umips_load_store_pair_p): New function.
22780 (umips_output_load_store_pair_1): New function.
22781 (umips_output_load_store_pair): New function.
22782 (umips_movep_target_p) New function.
22783 (mips_prepare_pch_save): Add microMIPS support.
22784 * config/mips/mips.h (TARGET_COMPRESSION): New.
22785 (TARGET_CPU_CPP_BUILTINS): Update macro
22786 to use new compression flags and to support microMIPS.
22787 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
22788 (MIPS_ARCH_FLOAT_SPEC): Likewise.
22789 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
22790 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
22791 (ASM_SPEC): Support mmicromips and mno-micromips.
22792 (M16STORE_REG_P): New macro.
22793 (MIPS_CALL): Support TARGET_MICROMIPS.
22794 (MICROMIPS_J): New macro.
22795 (mips_base_mips16): Rename this...
22796 (mips_base_compression_flags): ...to this.
22797 (UMIPS_12BIT_OFFSET_P): New macro.
22798 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
22799 (MULTILIB_DIRNAMES): Likewise.
92a8d7a7
RB
228002013-03-20 Richard Biener <rguenther@suse.de>
22801
22802 PR tree-optimization/56661
22803 * tree-ssa-sccvn.c (visit_use): Only value-number calls if
22804 the result does not have to be distinct.
22805
54714c68
RB
228062013-03-20 Richard Biener <rguenther@suse.de>
22807
22808 * tree-inline.c (copy_tree_body_r): Sync MEM_REF code with
22809 remap_gimple_op_r.
22810
cca1130d 228112013-03-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 22812 Steven Bosscher <steven@gcc.gnu.org>
cca1130d
BS
22813
22814 PR rtl-optimization/56605
22815 * loop-iv.c (implies_p): Handle equal RTXs and subregs.
22816
2a930377
UB
228172013-03-20 Uros Bizjak <ubizjak@gmail.com>
22818
22819 PR bootstrap/56656
22820 * config/i386/i386.md (*movdi_internal): Handle broken assemblers
22821 that require movd instead of movq.
22822
d6d305fe
RB
228232013-03-20 Richard Biener <rguenther@suse.de>
22824
22825 * tree-ssa-structalias.c (struct variable_info): Add pointer
22826 to the first field of an aggregate with sub-vars. Make
22827 this and the pointer to the next subfield its ID.
22828 (vi_next): New function.
22829 (nothing_id, anything_id, readonly_id, escaped_id, nonlocal_id,
22830 storedanything_id, integer_id): Increment by one.
22831 (new_var_info, get_call_vi, lookup_call_clobber_vi,
22832 get_call_clobber_vi): Adjust.
22833 (solution_set_expand): Simplify and speedup.
22834 (solution_set_add): Inline into ...
22835 (set_union_with_increment): ... this. Adjust accordingly.
22836 (do_sd_constraint): Likewise.
22837 (do_ds_constraint): Likewise.
22838 (do_complex_constraint): Simplify.
22839 (build_pred_graph): Adjust.
22840 (solve_graph): Likewise. Simplify and speedup.
22841 (get_constraint_for_ssa_var, get_constraint_for_ptr_offset,
22842 get_constraint_for_component_ref, get_constraint_for_1,
22843 first_vi_for_offset, first_or_preceding_vi_for_offset,
22844 create_function_info_for, create_variable_info_for_1,
22845 create_variable_info_for, intra_create_variable_infos): Adjust.
22846 (init_base_vars): Push NULL for ID zero.
22847 (compute_points_to_sets): Adjust.
22848
a271b42d
RB
228492013-03-20 Richard Biener <rguenther@suse.de>
22850
22851 * cfgloop.c (verify_loop_structure): Streamline and avoid
22852 ICEing on corrupt loop tree.
22853 * graph.c (draw_cfg_nodes_for_loop): Avoid ICEing on corrupt
22854 loop tree.
22855
ebd65954
RB
228562013-03-20 Richard Biener <rguenther@suse.de>
22857
22858 * tree-vect-loop-manip.c (slpeel_can_duplicate_loop_p): Do not
22859 check whether an SSA update is needed.
22860
4547b7ee
RS
228612013-03-20 Richard Sandiford <rdsandiford@googlemail.com>
22862
22863 * config/mips/constraints.md (T): Rename to...
22864 (Yf): ...this.
22865 (U): Rename to...
22866 (Yd): ...this.
22867 * config/mips/mips.md (*movdi_64bit, *movdi_64bit_mips16)
22868 (*mov<mode>_internal, *mov<mode>_mips16): Update accordingly.
22869
0b8cdc58
IB
228702013-03-19 Ian Bolton <ian.bolton@arm.com>
22871
22872 * config/aarch64/aarch64.md (*sub<mode>3_carryin): New pattern.
22873 (*subsi3_carryin_uxtw): Likewise.
22874
5977a10d
IB
228752013-03-19 Ian Bolton <ian.bolton@arm.com>
22876
22877 * config/aarch64/aarch64.md (*ror<mode>3_insn): New pattern.
22878 (*rorsi3_insn_uxtw): Likewise.
22879
bd83ff2c
IB
228802013-03-19 Ian Bolton <ian.bolton@arm.com>
22881
22882 * config/aarch64/aarch64.md (*extr<mode>5_insn): New pattern.
22883 (*extrsi5_insn_uxtw): Likewise.
22884
ba65123c
RB
228852013-03-19 Richard Biener <rguenther@suse.de>
22886
22887 PR tree-optimization/56273
22888 * passes.c (init_optimization_passes): Move second VRP after DOM.
22889
2eac0476
UB
228902013-03-19 Uros Bizjak <ubizjak@gmail.com>
22891
22892 * config/i386/i386.md (*movti_internal): Merge from
22893 *movti_internal_rex64 and *movti_internal_sse. Use x64 isa attribute.
22894 (*movdi_internal): Merge with *movdi_internal_rex64. Use x64 and
22895 nox64 isa attributes.
22896
6e55eda7
RB
228972013-03-18 Richard Biener <rguenther@suse.de>
22898
22899 * tree-ssa-structalias.c (find): Use gcc_checking_assert.
22900 (unite): Likewise.
22901 (merge_node_constraints): Likewise.
22902 (build_succ_graph): Likewise.
22903 (valid_graph_edge): Inline into single caller.
22904 (unify_nodes): Likewise. Use bitmap_set_bit return value
22905 and cache varinfo.
22906 (scc_visit): Fix formatting and variable use.
22907 (do_sd_constraint): Use gcc_checking_assert.
22908 (do_ds_constraint): Likewise.
22909 (do_complex_constraint): Likewise.
22910 (condense_visit): Likewise. Cleanup.
22911 (dump_pred_graph): New function.
22912 (perform_var_substitution): Dump the pred-graph before
22913 variable substitution.
22914 (find_equivalent_node): Use gcc_checking_assert.
22915 (rewrite_constraints): Guard checking loop with ENABLE_CHECKING.
22916
4bdd44c4
RB
229172013-03-18 Richard Biener <rguenther@suse.de>
22918
22919 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
22920 Remove cond_expr_stmt_list argument and do not gimplify the
22921 built expression.
22922 (vect_loop_versioning): Adjust.
22923 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
22924 Cleanup to use less temporaries.
22925 (vect_create_data_ref_ptr): Cleanup.
22926
38c56a5b
JJ
229272013-03-18 Jakub Jelinek <jakub@redhat.com>
22928
22929 PR tree-optimization/56635
22930 * fold-const.c (operand_equal_p): For MEM_REF and TARGET_MEM_REF,
22931 require types_compatible_p types.
22932
20b2e6a0
NC
229332013-03-18 Nick Clifton <nickc@redhat.com>
22934
a6178a25
NC
22935 * config/stormy16/stormy16.c (xstormy16_expand_prologue): Remove
22936 spurious backslash.
22937
20b2e6a0
NC
22938 * config/mn10300/mn10300.c (mn10300_get_live_callee_saved_regs):
22939 Add missing line to comment describing function.
22940
92608d0e
RB
229412013-03-18 Richard Biener <rguenther@suse.de>
22942
22943 PR tree-optimization/56210
22944 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
22945 Handle string / character search functions.
22946 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
22947
31348d52
RB
229482013-03-18 Richard Biener <rguenther@suse.de>
22949
22950 PR middle-end/56483
22951 * cfgexpand.c (expand_gimple_cond): Inline gimple_cond_single_var_p
22952 and implement properly.
22953 * gimple.h (gimple_cond_single_var_p): Remove.
22954
fcac74a1
RB
229552013-03-18 Richard Biener <rguenther@suse.de>
22956
22957 * tree-data-ref.h (find_data_references_in_loop): Declare.
22958 * tree-data-ref.c (get_references_in_stmt): Use a stack
22959 vector pre-allocated in the callers.
22960 (find_data_references_in_stmt): Adjust.
22961 (graphite_find_data_references_in_stmt): Likewise.
22962 (create_rdg_vertices): Likewise.
22963 (find_data_references_in_loop): Export.
22964 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
22965 Compute dependences here...
22966 (vect_analyze_data_refs): ...not here. When we encounter
22967 a non-vectorizable data reference in basic-block vectorization
22968 truncate the data reference vector. Do not bother to
22969 fixup data-dependence information for gather loads.
22970 * tree-vect-slp.c (vect_slp_analyze_bb_1): Check the number
22971 of data references, as reported.
22972
0d5a1b56
RB
229732013-03-18 Richard Biener <rguenther@suse.de>
22974
22975 PR tree-optimization/3713
22976 * tree-ssa-sccvn.c (visit_copy): Simplify. Always propagate
22977 has_constants and expr.
22978 (stmt_has_constants): Properly valueize SSA names when deciding
22979 whether the stmt has constants.
22980
789c34e3
RB
229812013-03-18 Richard Biener <rguenther@suse.de>
22982
22983 * tree-ssa-loop-manip.c (find_uses_to_rename): Do not scan the
22984 whole function when there is nothing to do.
22985 * tree-ssa-loop.c (pass_vectorize): Remove TODO_update_ssa.
22986 * tree-vectorizer.c (vectorize_loops): Update virtual and
22987 loop-closed SSA once.
22988 * tree-vect-loop.c (vect_transform_loop): Do not update SSA here.
22989
076b4605
RB
229902013-03-18 Richard Biener <rguenther@suse.de>
22991
22992 PR middle-end/56113
22993 * domwalk.c (bb_postorder): New global static.
22994 (cmp_bb_postorder): New function.
22995 (walk_dominator_tree): Replace scheme imposing an order for
22996 visiting dominator sons by one sorting them at the time they
22997 are pushed on the stack.
22998
bdb01696
RB
229992013-03-18 Richard Biener <rguenther@suse.de>
23000
23001 PR tree-optimization/39326
23002 * tree-ssa-loop-im.c (refs_independent_p): Exploit symmetry.
23003 (struct mem_ref): Replace mem member with ao_ref typed member.
23004 (MEM_ANALYZABLE): Adjust.
23005 (memref_eq): Likewise.
23006 (mem_ref_alloc): Likewise.
23007 (gather_mem_refs_stmt): Likewise.
23008 (mem_refs_may_alias_p): Use the ao_ref to query the alias oracle.
23009 (execute_sm_if_changed_flag_set): Adjust.
23010 (execute_sm): Likewise.
23011 (ref_always_accessed_p): Likewise.
23012 (refs_independent_p): Likewise.
23013 (can_sm_ref_p): Likewise.
23014
12d2dc5e
JJ
230152013-03-18 Jakub Jelinek <jakub@redhat.com>
23016
23017 PR c/56566
23018 * tree.c (tree_int_cst_min_precision): For integer_zerop (value)
23019 return 1 even for !unsignedp.
23020
286fb677
UB
230212013-03-17 Uros Bizjak <ubizjak@gmail.com>
23022
23023 * config/i386/i386.md (isa): Add x64 and nox64.
23024 (enabled): Define x64 for TARGET_64BIT and nox64 for !TARGET_64BIT.
23025 (*pushtf): Enable *roF alternative for x64 isa only.
23026 (*pushxf): Merge with *pushxf_nointeger. Use Yx*r constraint. Set
23027 mode attribute of integer alternatives to DImode for TARGET_64BIT.
23028 (*pushdf): Merge with *pushdf_rex64. Use x64 and nox64 isa attributes.
23029 (*movtf_internal): Merge from *movtf_internal_rex64 and
23030 *movtf_internal_sse. Use x64 and nox64 isa attributes.
23031 (*movxf_internal): Merge with *movxf_internal_rex64. Use x64 and
23032 nox64 isa attributes.
23033 (*movdf_internal): Merge with *movdf_internal_rex64. Use x64 and
23034 nox64 isa attributes.
23035 * config/i386/constraints.md (Yd): Do not set for TARGET_64BIT.
23036
88b97037
UB
230372013-03-17 Uros Bizjak <ubizjak@gmail.com>
23038
23039 * config/alpha/alpha.c (TARGET_LRA_P): New define.
23040
9f4f1735
JJ
230412013-03-17 Jakub Jelinek <jakub@redhat.com>
23042
23043 PR target/56640
23044 * config/arm/arm.h (REG_CLASS_NAMES): Add "SFP_REG" and "AFP_REG"
23045 class names. Remove trailing comma after "ALL_REGS".
23046
48f4a6fa
JH
230472013-03-16 Jan Hubicka <jh@suse.cz>
23048
23049 * cgraph.h (cgraph_get_create_real_symbol_node): Declare.
23050 * cgraph.c (cgraph_get_create_real_symbol_node): New function.
23051 * cgrpahbuild.c: Use cgraph_get_create_real_symbol_node instead
23052 of cgraph_get_create_node.
23053 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
23054
98e81123
JM
230552013-03-16 Jason Merrill <jason@redhat.com>
23056
23057 PR debug/49090
23058 * dwarf2out.c (gen_generic_params_dies): Indicate default arguments
23059 with DW_AT_default_value.
23060
8a298c04
JJ
230612013-03-16 Jakub Jelinek <jakub@redhat.com>
23062
23063 * BASE-VER: Set to 4.9.0.
23064
4323afa0
AK
230652013-03-14 Andi Kleen <ak@linux.intel.com>
23066
23067 PR target/56619
23068 * doc/extend.texi: Document __ATOMIC_HLE_ACQUIRE,
23069 __ATOMIC_HLE_RELEASE. Document __builtin_ia32 TSX intrincs.
23070 Document _x* TSX intrinsics.
23071
b3c0d469
JJ
230722013-03-14 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
23073 David Holsgrove <david.holsgrove@xilinx.com>
8cc9a5a5
EI
23074
23075 * configure.ac: Add MicroBlaze TLS support detection.
23076 * configure: Regenerate.
88b97037
UB
23077 * config/microblaze/microblaze-protos.h
23078 (microblaze_cannot_force_const_mem, microblaze_tls_referenced_p,
23079 symbol_mentioned_p, label_mentioned_p): Add prototypes.
23080 * config/microblaze/microblaze.c (microblaze_address_type): Add
23081 ADDRESS_TLS and tls_reloc address types.
8cc9a5a5
EI
23082 (microblaze_address_info): Add tls_reloc.
23083 (TARGET_HAVE_TLS): Define.
23084 (get_tls_get_addr, microblaze_tls_symbol_p, microblaze_tls_operand_p_1,
23085 microblaze_tls_referenced_p, microblaze_cannot_force_const_mem,
88b97037
UB
23086 symbol_mentioned_p, label_mentioned_p, tls_mentioned_p,
23087 load_tls_operand, microblaze_call_tls_get_addr,
23088 microblaze_legitimize_tls_address): New functions.
8cc9a5a5
EI
23089 (microblaze_classify_unspec): Handle UNSPEC_TLS.
23090 (get_base_reg): Use microblaze_tls_symbol_p.
23091 (microblaze_classify_address): Handle TLS.
88b97037
UB
23092 (microblaze_legitimate_pic_operand): Use symbol_mentioned_p,
23093 label_mentioned_p and microblaze_tls_referenced_p.
8cc9a5a5
EI
23094 (microblaze_legitimize_address): Handle TLS.
23095 (microblaze_address_insns): Handle ADDRESS_TLS.
23096 (pic_address_needs_scratch): Handle TLS.
23097 (print_operand_address): Handle TLS.
23098 (microblaze_expand_prologue): Check TLS_NEEDS_GOT.
23099 (microblaze_expand_move): Handle TLS.
88b97037
UB
23100 (microblaze_legitimate_constant_p): Check
23101 microblaze_cannot_force_const_mem and microblaze_tls_symbol_p.
8cc9a5a5
EI
23102 (TARGET_CANNOT_FORCE_CONST_MEM): Define.
23103 * config/microblaze/microblaze.h (TLS_NEEDS_GOT): Define
23104 (PIC_OFFSET_TABLE_REGNUM): Set.
23105 * config/microblaze/linux.h (TLS_NEEDS_GOT): Define.
23106 * config/microblaze/microblaze.md (UNSPEC_TLS): Define.
23107 (addsi3, movsi_internal2, movdf_internal): Update constraints
23108 * config/microblaze/predicates.md (arith_plus_operand): Define
88b97037
UB
23109 (move_operand): Redefine as move_src_operand,
23110 check microblaze_tls_referenced_p.
8cc9a5a5 23111
d803a491
IB
231122013-03-14 Ian Bolton <ian.bolton@arm.com>
23113
23114 * config/aarch64/aarch64.md: (*and<mode>3nr_compare0): Use CC_NZ.
23115 (*and_<SHIFT:optab><mode>3nr_compare0): Likewise.
23116
a8504f22
IB
231172013-03-14 Ian Bolton <ian.bolton@arm.com>
23118
23119 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return correct
23120 CC mode for AND.
23121
df2dfaea
JJ
231222013-03-14 Jakub Jelinek <jakub@redhat.com>
23123
fbd28bc3
JJ
23124 PR tree-optimization/53265
23125 * common.opt (Waggressive-loop-optimizations): New option.
23126 * tree-ssa-loop-niter.c: Include tree-pass.h.
23127 (do_warn_aggressive_loop_optimizations): New function.
23128 (record_estimate): Call it. Don't add !is_exit bounds to loop->bounds
23129 if number_of_latch_executions returned constant.
23130 (estimate_numbers_of_iterations_loop): Call number_of_latch_executions
23131 early. If number_of_latch_executions returned constant, set
23132 nb_iterations_upper_bound back to it.
23133 * cfgloop.h (struct loop): Add warned_aggressive_loop_optimizations
23134 field.
23135 * Makefile.in (tree-ssa-loop-niter.o): Depend on $(TREE_PASS_H).
23136 * doc/invoke.texi (-Wno-aggressive-loop-optimizations): Document.
23137
df2dfaea
JJ
23138 * config/aarch64/t-aarch64-linux (MULTARCH_DIRNAME): Remove.
23139 (MULTILIB_OSDIRNAMES): Set.
23140 * genmultilib: If defaultosdirname doesn't start with :: , set
23141 defaultosdirname2 instead, clear it and emit two . multilib_raw
23142 entries instead of just one.
23143
ee0d2b68
KK
231442013-03-14 Kaz Kojima <kkojima@gcc.gnu.org>
23145
23146 * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_USERMODE.
23147 (SUBTARGET_OVERRIDE_OPTIONS): Set TARGET_USERMODE as default.
23148 * config/sh/netbsd-elf.h (TARGET_DEFAULT): Remove MASK_USERMODE.
23149 (SUBTARGET_OVERRIDE_OPTIONS): New.
23150
decc676e
OE
231512013-03-13 Oleg Endo <olegendo@gcc.gnu.org>
23152
23153 PR target/49880
23154 * config/sh/sh.opt (FPU_SINGLE_ONLY): New mask.
23155 (musermode): Convert to Var(TARGET_USERMODE).
23156 * config/sh/sh.h (SELECT_SH2A_SINGLE_ONLY, SELECT_SH4_SINGLE_ONLY,
23157 MASK_ARCH): Add MASK_FPU_SINGLE_ONLY.
23158 * config/sh/sh.c (sh_option_override): Use
23159 TARGET_FPU_DOUBLE || TARGET_FPU_SINGLE_ONLY for call-fp case.
23160 * config/sh/sh.md (udivsi3_i1, divsi3_i1): Remove ! TARGET_SH4
23161 condition.
23162 (udivsi3_i4, divsi3_i4): Use TARGET_FPU_DOUBLE condition instead of
23163 TARGET_SH4.
23164 (udivsi3_i4_single, divsi3_i4_single): Use
23165 TARGET_FPU_SINGLE_ONLY || TARGET_FPU_DOUBLE instead of TARGET_HARD_SH4.
23166
f4b719c7
DK
231672013-03-13 Dave Korn <dave.korn.cygwin@....>
23168
23169 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): Make shared libgcc the
23170 default setting.
23171
c40eced0
RB
231722013-03-13 Richard Biener <rguenther@suse.de>
23173
23174 PR tree-optimization/56608
23175 * tree-vect-slp.c (vect_schedule_slp): Do not remove scalar
23176 calls when vectorizing basic-blocks.
23177
1bfa5973
JJ
231782013-03-13 Jakub Jelinek <jakub@redhat.com>
23179
23180 PR plugins/45078
23181 * config.gcc: On arm, mips, sh and sparc add vxworks-dummy.h to
23182 tm_file.
23183
6fcf5434
JJ
231842013-03-12 Jakub Jelinek <jakub@redhat.com>
23185
23186 * doc/invoke.texi (-Waddr-space-convert): Move into the table earlier.
23187
4f38fa8c
JH
231882013-03-11 Jan Hubicka <jh@suse.cz>
23189
23190 PR lto/56557
23191 * lto-streamer-out.c (output_symbol_p): Skip references from
23192 constructors of external variables.
23193
c5c5ba89
JH
231942013-03-11 Jan Hubicka <jh@suse.cz>
23195
23196 PR middle-end/56571
23197 * valtrack.c (cleanup_auto_inc_dec): Unshare clobbers originating
23198 from pseudos.
23199 * emit-rtl.c (verify_rtx_sharing): Likewise.
23200 (copy_insn_1): Likewise.
23201 * rtl.c (copy_rtx): Likewise.
23202
c2a939b1
GJL
232032013-03-11 Georg-Johann Lay <avr@gjlay.de>
23204
23205 PR target/56591
23206 * config/avr/avr.c (avr_print_operand): Add space after '%c' in
23207 output_operand_lossage message.
88b97037 23208
3c3279fb
RE
232092013-03-11 Richard Earnshaw <rearnsha@arm.com>
23210
23211 PR target/56470
23212 * arm.c (shift_op): Validate RTL pattern on the fly.
23213 (arm_print_operand, case 'S'): Don't use shift_operator to validate
23214 the RTL.
23215
aef5ef9d
JDA
232162013-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
23217
23218 PR target/56347
23219 * config/pa/pa.md (call_value): Check for calls to powf and direct to
23220 new call patterns that clobber %fr12.
23221 (call_val_powf, call_val_powf_pic, call_val_powf_64bit): New insn,
23222 split and postreload patterns.
23223 * config/pa/pa.c (pa_conditional_register_usage): Revert marking
23224 registers %fr12 and %fr12R as call used.
23225
456610d3
SB
232262013-03-09 Steven Bosscher <steven@gcc.gnu.org>
23227
23228 * dse.c (delete_dead_store_insn): Respect TDF_DETAILS.
23229 (canon_address, record_store, replace_read, check_mem_read_rtx,
23230 scan_insn, dse_step1, dse_step2_init, dse_step2_spill,
23231 dse_step4, dse_step5_nospill, dse_step5_spill, dse_step6,
23232 rest_of_handle_dse): Likewise.
23233
4b1baac8
RS
232342013-03-09 Richard Sandiford <rdsandiford@googlemail.com>
23235
23236 PR middle-end/56524
23237 * tree.h (tree_optimization_option): Rename target_optabs to optabs.
23238 Add base_optabs.
23239 (TREE_OPTIMIZATION_OPTABS): Update after previous field change.
23240 (TREE_OPTIMIZATION_BASE_OPTABS): New macro.
23241 (save_optabs_if_changed): Replace with...
23242 (init_tree_optimization_optabs): ...this.
23243 * optabs.c (save_optabs_if_changed): Rename to...
23244 (init_tree_optimization_optabs): ...this. Take the optimization node
23245 as argument. Do nothing if the base optabs are already correct.
23246 Reuse the existing TREE_OPTIMIZATION_OPTABS memory if we need
23247 to recompute optabs.
23248 * function.h (function): Remove optabs field.
23249 * function.c (invoke_set_current_function_hook): Call
23250 init_tree_optimization_optabs. Use the result to initialize
23251 this_fn_optabs.
23252
b7a78683
AH
232532013-02-27 Aldy Hernandez <aldyh@redhat.com>
23254
23255 * trans-mem.c (expand_transaction): Do not set PR_INSTRUMENTEDCODE
23256 if GTMA_HAS_NO_INSTRUMENTATION.
23257 (generate_tm_state): Keep GTMA_HAS_NO_INSTRUMENTATION bit.
23258 (ipa_tm_transform_transaction): Set GTMA_HAS_NO_INSTRUMENTATION.
23259 * gimple.h (GTMA_HAS_NO_INSTRUMENTATION): Define.
23260 * gimple-pretty-print.c (dump_gimple_transaction): Handle
23261 GTMA_HAS_NO_INSTRUMENTATION.
23262
6384c29b
JJ
232632013-03-08 Jakub Jelinek <jakub@redhat.com>
23264
23265 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Don't link against
23266 libasan_preinit.o.
23267
ecd4f20a
MP
232682013-03-08 Marek Polacek <polacek@redhat.com>
23269 Jakub Jelinek <jakub@redhat.com>
23270
23271 PR tree-optimization/56478
23272 * predict.c (is_comparison_with_loop_invariant_p): Change the
23273 type of loop_step to tree.
23274 (predict_loops): Adjust.
23275 (predict_iv_comparison): Perform the computations on double_ints.
23276
64366d35
RB
232772013-03-08 Richard Biener <rguenther@suse.de>
23278
23279 PR tree-optimization/56570
23280 * tree-cfg.c (verify_expr_location_1): Verify locations for
23281 DECL_DEBUG_EXPR.
23282 * tree-sra.c (create_access_replacement): Strip locations
23283 from DECL_DEBUG_EXPRs.
23284
a9d5a059
RB
232852013-03-08 Richard Biener <rguenther@suse.de>
23286
23287 * tree-inline.c (expand_call_inline): Do not associate
23288 a BLOCK with the location in BLOCK_SOURCE_LOCATION.
23289 * tree-cfg.c (verify_location): Verify BLOCK_SOURCE_LOCATION.
23290
b7aa4e9a
RB
232912013-03-08 Richard Biener <rguenther@suse.de>
23292
23293 * tree-ssa-ter.c (is_replaceable_p): Do not TER across location
23294 or block changes with -Og. Fix for location / block encoding
23295 changes and PHI arguments with locations.
23296
c4c2f9fa
SB
232972013-03-07 Steven Bosscher <steven@gcc.gnu.org>
23298
23299 * bitmap.c (struct bitmap_descriptor_d): Use unsigned HOST_WIDEST_INT
23300 for all counters.
23301 (struct output_info): Likewise.
23302 (register_overhead): Remove bad gcc_assert.
23303 (bitmap_find_bit): If there is only a single bitmap element, do not
23304 count a miss as a search.
23305 (print_statistics): Update for counter type changes.
23306 (dump_bitmap_statistics): Likewise. Print headers such that they
23307 are properly lined up with the printed counters.
23308
5bf6606a
JJ
233092013-03-07 Jakub Jelinek <jakub@redhat.com>
23310
23311 PR tree-optimization/56559
23312 * tree-ssa-reassoc.c (zero_one_operation): When looking at rhs2,
23313 check that it has only a single use.
23314
2c653d46
RB
233152013-03-07 Richard Biener <rguenther@suse.de>
23316
23317 * doc/invoke.texi (fwhole-program): Discourage use in combination
23318 with -flto.
23319
a72d8780
JJ
233202013-03-06 Jakub Jelinek <jakub@redhat.com>
23321
01a454df
JJ
23322 * config/arm/t-arm (TM_H, OPTIONS_H_EXTRA): Add arm-cores.def.
23323
c1781047
JJ
23324 PR tree-optimization/56539
23325 * tree-tailcall.c (adjust_return_value_with_ops): Use GSI_SAME_STMT
23326 instead of GSI_CONTINUE_LINKING as last argument to
23327 force_gimple_operand_gsi. Adjust function comment.
23328
9772c47a
JJ
23329 * config/aarch64/t-aarch64 (TM_H, OPTIONS_H_EXTRA): Add
23330 aarch64-cores.def.
23331
a72d8780
JJ
23332 PR middle-end/56548
23333 * expr.c (expand_cond_expr_using_cmove): When expanding cmove in
23334 promoted mode, convert the result back to the original mode.
23335
fa5556de
RB
233362013-03-06 Richard Biener <rguenther@suse.de>
23337
23338 PR middle-end/56294
23339 * tree-into-ssa.c (insert_phi_nodes_for): Add dumping.
23340 (insert_updated_phi_nodes_compare_uids): New function.
23341 (update_ssa): Sort symbols_to_rename after UID before
23342 traversing it to insert PHI nodes.
23343
010403d1
RB
233442013-03-06 Richard Biener <rguenther@suse.de>
23345
23346 PR middle-end/50494
23347 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p):
23348 Do not adjust alignment of DECL_IN_CONSTANT_POOL decls.
23349
23350 Revert
23351 2013-02-13 Richard Biener <rguenther@suse.de>
23352
23353 PR lto/50494
23354 * varasm.c (output_constant_def_1): Get the decl representing
23355 the constant as argument.
23356 (output_constant_def): Wrap output_constant_def_1.
23357 (make_decl_rtl): Use output_constant_def_1 with the decl
23358 representing the constant.
23359 (build_constant_desc): Optionally re-use a decl already
23360 representing the constant.
23361 (tree_output_constant_def): Adjust.
23362
3c27ce4c
JY
233632013-03-06 Joey Ye <joey.ye@arm.com>
23364
23365 PR lto/50293
23366 * gcc.c (convert_white_space): New function.
23367 (main): Handles white space in function name.
23368
8f6d1c86
OE
233692013-03-06 Oleg Endo <olegendo@gcc.gnu.org>
23370
23371 PR target/56529
23372 * config/sh/sh.c (sh_option_override): Check for TARGET_DYNSHIFT
23373 instead of TARGET_SH2 for call-table case. Do not set sh_div_strategy
23374 to SH_DIV_CALL_TABLE for TARGET_SH2.
23375 * config.gcc (sh_multilibs): Add m2 and m2a to sh*-*-linux* multilib
23376 list.
23377 * doc/invoke.texi (SH options): Document mdiv= call-div1, call-fp,
23378 call-table options.
23379
798a209f
SA
233802013-03-05 Sterling Augustine <saugustine@google.com>
23381 Cary Coutant <ccoutant@google.com>
23382
23383 PR debug/55364
23384 * dwarf2out.c (resolve_addr): Don't call
23385 remove_loc_list_addr_table_entries a second time for the same
23386 expression.
23387
6cfa417f 233882013-03-05 Jakub Jelinek <jakub@redhat.com>
ee61ea38 23389
6cfa417f
JJ
23390 PR debug/56510
23391 * cfgexpand.c (expand_debug_parm_decl): Call copy_rtx on incoming.
23392 (avoid_complex_debug_insns): New function.
23393 (expand_debug_locations): Call it.
23394
23395 PR rtl-optimization/56484
23396 * ifcvt.c (noce_process_if_block): If else_bb is NULL, avoid extending
23397 lifetimes of hard registers on small register class machines.
23398
233992013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
23400
23401 * config/microblaze/microblaze-protos.h: Rename
ee61ea38 23402 microblaze_is_interrupt_handler to microblaze_is_interrupt_variant.
6cfa417f 23403 * config/microblaze/microblaze.c (microblaze_attribute_table): Add
ee61ea38
DH
23404 fast_interrupt.
23405 (microblaze_fast_interrupt_function_p): New function.
23406 (microblaze_is_interrupt_handler): Rename to
23407 microblaze_is_interrupt_variant and add fast_interrupt check.
23408 (microblaze_must_save_register): Use microblaze_is_interrupt_variant.
23409 (save_restore_insns): Likewise.
23410 (compute_frame_size): Likewise.
23411 (microblaze_function_prologue): Add FAST_INTERRUPT_NAME.
23412 (microblaze_globalize_label): Likewise.
6cfa417f
JJ
23413 * config/microblaze/microblaze.h: Define FAST_INTERRUPT_NAME.
23414 * config/microblaze/microblaze.md: Use wrapper
ee61ea38
DH
23415 microblaze_is_interrupt_variant.
23416
731aefac
KT
234172013-03-05 Kai Tietz <ktietz@redhat.com>
23418
23419 * sdbout.c (sdbout_one_type): Switch to current function's section
23420 supporting cold/hot.
23421
a72d8780 234222013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
e34fd5a7
DH
23423
23424 * doc/invoke.texi (MicroBlaze): Add -mbig-endian, -mlittle-endian,
23425 -mxl-reorder.
23426
334e71e8
JJ
234272013-03-05 Jakub Jelinek <jakub@redhat.com>
23428
0b50e654
JJ
23429 PR middle-end/56461
23430 * ggc-common.c (gt_pch_save): For ENABLE_VALGRIND_CHECKING,
23431 if VALGRIND_GET_VBITS is defined, temporarily make object
23432 memory all defined, and restore previous valgrind addressability
23433 and definability afterwards. Free this_object at the end.
23434
4ccf8f43
JJ
23435 PR middle-end/56461
23436 * lra.c (lra): Call lra_clear_live_ranges if live_p,
23437 right before calling lra_create_live_ranges, also call it
23438 when clearing live_p. Only call lra_clear_live_ranges
23439 at the end if live_p.
23440
334e71e8
JJ
23441 PR middle-end/56461
23442 * sched-deps.c (delete_dep_node): Free DEP_REPLACE.
23443
9ca966ca
RB
234442013-03-05 Richard Biener <rguenther@suse.de>
23445
23446 PR tree-optimization/56521
23447 * tree-ssa-sccvn.c (set_value_id_for_result): Always initialize
23448 value-id.
23449
d273b176
SB
234502013-03-05 Steven Bosscher <steven@gcc.gnu.org>
23451
23452 PR c++/55135
23453 * except.h (remove_unreachable_eh_regions): New prototype.
23454 * except.c (remove_eh_handler_splicer): New function, split out
23455 of remove_eh_handler.
23456 (remove_eh_handler): Use remove_eh_handler_splicer. Add comment
23457 warning about running it on many EH regions one at a time.
23458 (remove_unreachable_eh_regions_worker): New function, walk the
23459 EH tree in depth-first order and remove non-marked regions.
23460 (remove_unreachable_eh_regions): New function.
23461 * tree-eh.c (mark_reachable_handlers): New function, split out
23462 from remove_unreachable_handlers.
23463 (remove_unreachable_handlers): Use mark_reachable_handlers and
23464 remove_unreachable_eh_regions.
23465 (remove_unreachable_handlers_no_lp): Use mark_reachable_handlers
23466 and remove_unreachable_eh_regions.
23467
5e7f1aef
RB
234682013-03-05 Richard Biener <rguenther@suse.de>
23469
23470 PR middle-end/56525
23471 * loop-init.c (fix_loop_structure): Remove loops in two stages,
23472 not freeing them until the end.
23473
f276b762
AK
234742013-03-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
23475
23476 * config/s390/s390.h: Define DWARF2_ASM_LINE_DEBUG_INFO.
23477
12a43ab8
RB
234782013-03-05 Richard Biener <rguenther@suse.de>
23479
23480 PR tree-optimization/56270
23481 * tree-vect-slp.c (vect_schedule_slp): Clear vectorized stmts
23482 of loads after scheduling an SLP instance.
23483
93675444
JJ
234842013-03-05 Jakub Jelinek <jakub@redhat.com>
23485
db4138e3
JJ
23486 * Makefile.in (dg_target_exps): Add aarch64.exp, epiphany.exp and
23487 tic6x.exp.
23488 (check_gcc_parallelize): Run guality.exp as a separate job from
23489 vect.exp with unsorted.exp and $(dg_target_exps) separately from
23490 struct-layout-1.exp with stackalign.exp.
23491
dd3d1ec0
JJ
23492 * alias.c (init_alias_analysis): Clear reg_known_equiv_p bitmap.
23493
b8d381a3
JJ
23494 PR middle-end/56461
23495 * tree-vect-slp.c (vect_supported_load_permutation_p): Free
23496 load_index sbitmap even if some bit in it isn't set.
23497
b4f9786b
JJ
23498 PR middle-end/56461
23499 * tree-ssa-loop-niter.c (bb_queue): Remove typedef.
23500 (discover_iteration_bound_by_body_walk): Change queues to
23501 vec<vec<basic_block> > and queue to vec<basic_block>. Fix up
23502 spelling in comment. Call safe_push on queues[bound_index] directly.
23503 Release queues[queue_index] in every iteration unconditionally.
23504 Release bounds vector.
23505
93675444
JJ
23506 PR middle-end/56461
23507 * tree-vect-stmts.c (free_stmt_vec_info_vec): Call
23508 free_stmt_vec_info on any left-over stmt_vec_info in the vector.
23509 * tree-vect-loop.c (vect_create_epilog_for_reduction): Release
23510 inner_phis vector.
23511
3e492e9c
RB
235122013-03-05 Richard Biener <rguenther@suse.de>
23513
23514 PR lto/56515
23515 * tree-inline.c (remap_blocks_to_null): New function.
23516 (expand_call_inline): When expanding a call stmt without
23517 an associated block inline remap all callee blocks to NULL.
23518
a5d1569a
JJ
235192013-03-05 Jakub Jelinek <jakub@redhat.com>
23520
86efb5cd
JJ
23521 PR rtl-optimization/56494
23522 * simplify-rtx.c (simplify_truncation): If C is narrower than A,
23523 optimize (truncate:A (subreg:B (truncate:C X) 0)) into
23524 (subreg:A (truncate:C X) 0) instead of (truncate:A X).
23525
85f5dbea
JJ
23526 PR middle-end/56461
23527 * sel-sched-ir.c (free_sched_pools): Release
23528 succs_info_pool.stack[succs_info_pool.max_top] vectors too
23529 if succs_info_pool.max_top isn't -1.
23530
a5d1569a
JJ
23531 PR bootstrap/56509
23532 * opts.c (opts_obstack, opts_concat): Moved to...
23533 * opts-common.c (opts_obstack, opts_concat): ... here.
23534
4432aa6c
JJ
235352013-03-04 Jakub Jelinek <jakub@redhat.com>
23536
23537 PR middle-end/56461
23538 * diagnostic.c (diagnostic_append_note): Save and restore old prefix.
23539
f3a1fb91
MJ
235402013-03-04 Martin Jambor <mjambor@suse.cz>
23541
23542 * tree-dfa.c (get_or_create_ssa_default_def): Use parameter fn in
23543 all appropriate places.
23544
22110e6c
EB
235452013-01-04 Eric Botcazou <ebotcazou@adacore.com>
23546
23547 PR tree-optimization/56424
23548 * ipa-split.c (split_function): Do not set the RSO flag if result is
23549 not by reference and its type is a register type.
23550
a72d8780 235512013-03-04 David Holsgrove <david.holsgrove@xilinx.com>
91c4e421 23552
88b97037 23553 * config/microblaze/microblaze.c (microblaze_valid_pic_const): New
91c4e421 23554 (microblaze_legitimate_pic_operand): Likewise
88b97037 23555 * config/microblaze/microblaze.h (LEGITIMATE_PIC_OPERAND_P): calls
91c4e421
DH
23556 new function microblaze_legitimate_pic_operand
23557 * config/microblaze/microblaze-protos.h
23558 (microblaze_legitimate_pic_operand): Declare.
23559
a72d8780 235602013-03-04 Edgar E. Iglesias <edgar.iglesias@gmail.com>
82f8f53a 23561
a72d8780 23562 * config/microblaze/predicates.md (call_insn_simple_operand):
82f8f53a 23563 New predicate for supported rtx code types.
a72d8780 23564 * config/microblaze/microblaze.md (call_internal1): Use
82f8f53a
EI
23565 call_insn_simple_operand predicate.
23566
541d9ac8
JJ
235672013-03-04 Jakub Jelinek <jakub@redhat.com>
23568
5eb010bc
JJ
23569 PR middle-end/56461
23570 * tree-loop-distribution.c (ldist_gen): Call partition_free after each
23571 partitions.ordered_remove.
23572
30862efc
JJ
23573 PR middle-end/56461
23574 * tree-vect-stmts.c (vectorizable_conversion): Don't call
23575 vec_oprnds0.create (1) for modifier == NONE.
23576
8930f723
JJ
23577 PR middle-end/56461
23578 * tree-vect-stmts.c (vectorizable_shift): Don't call create methods
23579 on vec_oprnds0 or vec_oprnds1 before loop, only call it on
23580 vec_oprnds1 right before pushing anything to it for
23581 scalar_shift_arg.
23582
541d9ac8
JJ
23583 PR middle-end/56461
23584 * tree-vect-loop.c (destroy_loop_vec_info): For !clean_stmts, just
23585 set nbbs to 0 instead of having separate code path.
23586 (vect_analyze_loop_form): Call destroy_loop_vec_info with true
23587 instead of false as last argument if returning NULL.
23588
7aa7f2e3
SL
235892013-03-03 Sandra Loosemore <sandra@codesourcery.com>
23590
23591 * target.def (TARGET_OPTION_VALID_ATTRIBUTE_P): Update comments;
23592 the attribute is now called "target" instead of "option".
23593 (TARGET_OPTION_PRAGMA_PARSE): Likewise, for the pragma.
23594 * doc/tm.texi.in (Target Attributes): Likewise document the correct
23595 attribute/pragma name for TARGET_OPTION_VALID_P and
23596 TARGET_OPTION_PRAGMA_PARSE. Also copy-edit and correct markup.
23597 * doc/tm.texi: Regenerated.
23598
8930f723 235992013-03-02 David Holsgrove <david.holsgrove@xilinx.com>
cb8a1637 23600
8930f723 23601 * config/microblaze/microblaze.c:
cb8a1637 23602 Check mcpu, pcmp requirement and set TARGET_REORDER to 0 if not met.
8930f723
JJ
23603 * config/microblaze/microblaze.h: Add -mxl-reorder to
23604 DRIVER_SELF_SPECS.
23605 * config/microblaze/microblaze.md: New bswapsi2 and bswaphi2.
23606 instructions emitted if TARGET_REORDER.
88b97037
UB
23607 * config/microblaze/microblaze.opt: New option -mxl-reorder set to 1
23608 or 0 for -m/-mno case, but initialises as 2 to detect default use case
8930f723 23609 separately.
cb8a1637 23610
4dc1d68c
XDL
236112013-03-01 Xinliang David Li <davidxl@google.com>
23612
23613 * tree-ssa-uninit.c (compute_control_dep_chain): Limit post-dom
23614 walk length.
23615
689eaba3
JJ
236162013-03-01 Jakub Jelinek <jakub@redhat.com>
23617
9d676bf6
JJ
23618 PR middle-end/56461
23619 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Release path
23620 vector even when returning true. Fix up function comment formatting.
23621
caff7edf
JJ
23622 PR middle-end/56461
23623 * ira-build.c (ira_loop_nodes_count): New variable.
23624 (create_loop_tree_nodes): Initialize it.
23625 (finish_loop_tree_nodes): Use it instead of looking at current_loops.
23626
b6b9227d
JJ
23627 PR middle-end/56461
23628 * tree-vect-data-refs.c (vect_permute_store_chain): Avoid using copy
23629 method on dr_chain and result_chain.
23630 * tree-vect-stmts.c (vectorizable_store): Only call
23631 result_chain.create if j == 0.
23632
689eaba3
JJ
23633 PR middle-end/56461
23634 * tree-vect-stmts.c (vect_create_vectorized_promotion_stmts): Call
23635 vec_oprnds0->release (); rather than vec_oprnds0->truncate (0)
23636 before overwriting it.
23637
40bf31ed
TB
236382013-03-01 Tobias Burnus <burnus@net-b.de>
23639
23640 * doc/extended.texi (C Extensions): Change order in @menu
23641 to match @node.
23642 (Other MIPS Built-in Functions): Move last MIPS entry before
23643 "picoChip Built-in Functions".
23644 (SH Built-in Functions): Move after RX Built-in Functions.
23645 * doc/gcc.texi (Introduction): Change order in @menu
23646 to match @node.
23647 * doc/md.texi (Constraints): Ditto.
23648 * gty.texi (Type Information): Ditto.
23649 (User-provided marking routines for template types): Make
23650 subsection.
23651 * doc/invoke.texi (AArch64 Options): Move before
23652 "Adapteva Epiphany Options".
23653
e664c61c
KS
236542013-02-28 Konstantin Serebryany <konstantin.s.serebryany@gmail.com>
23655 Jakub Jelinek <jakub@redhat.com>
23656
23657 PR sanitizer/56454
23658 * asan.c (gate_asan): Lookup no_sanitize_address instead of
23659 no_address_safety_analysis attribute.
23660 * doc/extend.texi (no_address_safety_attribute): Rename to
23661 no_sanitize_address attribute, mention no_address_safety_analysis
23662 attribute as deprecated alias.
23663
37b5ec8f
JJ
236642013-02-28 Jakub Jelinek <jakub@redhat.com>
23665
23666 PR middle-end/56461
23667 * tree-vectorizer.h (vect_get_slp_defs): Change 3rd argument
23668 type to vec<vec<tree> > *.
23669 * tree-vect-slp.c (vect_get_slp_defs): Likewise. Change vec_defs
23670 to be vec<tree> instead of vec<tree> *, set vec_defs
23671 to vNULL and call vec_defs.create (number_of_vects), adjust other
23672 uses of vec_defs.
23673 * tree-vect-stmts.c (vect_get_vec_defs, vectorizable_call,
23674 vectorizable_condition): Adjust vect_get_slp_defs callers.
23675
ba96cdfb
JG
236762013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
23677
23678 * config/aarch64/aarch64.c
23679 (aarch64_float_const_representable): Remove unused variable.
23680
6f549691
JG
236812013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
23682
23683 * config/aarch64/aarch64.c (aarch64_mangle_type): Make static.
23684
af55e82d
JG
236852013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
23686
23687 * config/aarch64/aarch64-builtins.c
23688 (aarch64_init_simd_builtins): Make static.
23689
1df3f464
JG
236902013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
23691
23692 * config/aarch64/aarch64.c
23693 (aarch64_simd_make_constant): Make static.
23694
f8f42513
MJ
236952013-02-28 Martin Jambor <mjambor@suse.cz>
23696
23697 * tree-sra.c (load_assign_lhs_subreplacements): Do not put replacements
23698 with no initialization to the RHS of debug statements.
23699
b48b3fc4
MJ
237002013-02-28 Martin Jambor <mjambor@suse.cz>
23701
23702 PR tree-optimization/56294
23703 * tree-sra.c (analyze_access_subtree): Create replacement declarations.
23704 Adjust dumping.
23705 (get_access_replacement): Do not call create_access_replacement.
23706 Assert a replacement exists.
23707 (get_repl_default_def_ssa_name): Create the replacement declaration
23708 itself.
23709
c3ae224c
RR
237102013-02-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
23711
23712 * config/arm/arm.c (arm_output_mi_thunk): Call final_start_function and
23713 final_end_function.
23714
45fa0eef
MP
237152013-02-28 Marek Polacek <polacek@redhat.com>
23716
23717 PR rtl-optimization/56466
23718 * loop-unroll.c (unroll_and_peel_loops): Call fix_loop_structure
23719 if we're changing a loop.
23720 (peel_loops_completely): Likewise.
23721
502c067d
PC
237222013-02-28 Paolo Carlini <paolo.carlini@oracle.com>
23723
23724 PR c++/55813
23725 * doc/invoke.texi ([-Wctor-dtor-privacy]): Complete.
23726
ff24afc8
GJL
237272013-02-28 Georg-Johann Lay <avr@gjlay.de>
23728
23729 PR target/56445
23730 * config/avr/avr.c (avr_init_builtins): Use 'n' instead of empty
23731 macro parameters with: FX_FTYPE_FX, FX_FTYPE_FX_INT, INT_FTYPE_FX,
23732 INTX_FTYPE_FX, FX_FTYPE_INTX.
23733 * config/avr/builtins.def: Adjust respective DEF_BUILTIN.
23734
c7b1fc1b
GJL
237352013-02-28 Georg-Johann Lay <avr@gjlay.de>
23736
23737 * avr/avr-mcus.def (ata5272, ata5505, attiny1634, ata6285)
23738 (ata6286, atmega8a, atmega48pa, ata5790, ata5790n, ata5795)
23739 (atmega164pa, atmega165pa, atmega168pa, atmega16hva, atmega16hvb)
23740 (atmega16hvbrevb, atmega16m1, atmega16u4, atmega26hvg, atmega32a)
23741 (atmega32a, atmega3250pa, atmega3290pa, atmega32c1, atmega32m1)
23742 (atmega32u4, atmega32u6, atmega64a, atmega6490a, atmega6490p)
23743 (atmega64c1, atmega64m1, atmega64rfa2, atmega64rfr2, atmega32hvb)
23744 (atmega32hvbrevb, atmega16hva2, atmega48hvf, at90pwm161)
23745 (atmega128a, atmega1284, atmxt112sl, atmxt224, atmxt224e)
23746 (atmxt336s, atxmega16a4u, atxmega16c4, atxmega32a4u, atxmega32c4)
23747 (atxmega32e5, atxmega64a3u, atxmega64a4u, atxmega64b1, atxmega64b3)
23748 (atxmega64c3, atxmega64d4, atxmega128a3u, atxmega128b1)
23749 (atxmega128b3, atxmega128c3, atxmega128d4, atmxt540s, atmxt540sreva)
23750 (atxmega192a3u, atxmega192c3, atxmega256a3u, atxmega256c3)
23751 (atxmega384c3, atxmega384d3, atxmega128a4u): New AVR_MCU.
23752 (avrxmega6): Increase max flash segments from 5 to 6.
23753 * config/avr/t-multilib: Regenerate.
23754 * config/avr/avr-tables.opt: Regenerate.
23755 * doc/avr-mmcu.texi: Regenerate.
23756
4a0e3cfe
GJL
237572013-02-28 Georg-Johann Lay <avr@gjlay.de>
23758
23759 * config/avr/avr.h (device_to_arch): Rename to device_to_ld.
23760 (avr_device_to_arch): Rename to avr_device_to_ld.
23761 (avr_device_to_as): New prototype.
23762 (EXTRA_SPEC_FUNCTIONS): Add device_to_as.
23763 (ASM_SPEC): Use device_to_as to get -mmcu= and -mno-skip-bug=.
23764 * config/avr/driver-avr.c (avr_device_to_as): New.
23765 (avr_device_to_arch): Rename to avr_device_to_ld.
23766
97785e52
JJ
237672013-02-27 Jakub Jelinek <jakub@redhat.com>
23768
3f292312
JJ
23769 PR middle-end/56461
23770 * tree-vect-data-refs.c (vect_permute_load_chain): Avoid using copy
23771 method on dr_chain and result_chain.
23772
a344216b
JJ
23773 PR middle-end/56461
23774 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Call
23775 pointer_set_destroy on not_executed_last_iteration.
23776
f121ad02 23777 PR middle-end/56461
88b97037 23778 * tree-vect-loop.c (vectorizable_reduction): Release vect_defs vector.
f121ad02 23779
307f83a3
JJ
23780 PR middle-end/56461
23781 * ipa-pure-const.c (propagate): Use FOR_EACH_FUNCTION instead of
23782 FOR_EACH_DEFINED_FUNCTION when freeing state.
23783
e19624ee
JJ
23784 PR middle-end/56461
23785 * df-scan.c (df_insn_delete): Use df_scan_free_mws_vec before
23786 pool_free.
23787 (df_insn_rescan_debug_internal): Use df_scan_free_mws_vec before
23788 overwriting it.
23789
90e709fd
JJ
23790 PR middle-end/56461
23791 * ipa-cp.c (decide_whether_version_node): Call vec_free on
23792 known_aggs[i].items and release known_aggs vector.
23793
97785e52
JJ
23794 PR middle-end/56461
23795 * ipa-reference.c (propagate): Free node_info even for alias nodes.
23796
237972013-02-27 Edgar E. Iglesias <edgar.iglesias@gmail.com>
bbb3a9e2 23798
97785e52
JJ
23799 * config/microblaze/microblaze.c (microblaze_emit_compare):
23800 Use xor for EQ/NE comparisions.
23801 * config/microblaze/microblaze.md (cstoresf4): Add constraints
23802 (cbranchsf4): Adjust operator to comparison_operator.
bbb3a9e2 23803
6fa5e0ed
JJ
238042013-02-27 Jakub Jelinek <jakub@redhat.com>
23805
23806 PR middle-end/56461
23807 * tree-flow.h (edge_var_map_vector): Change into va_heap, vl_embed
23808 vector.
23809 * tree-ssa.c (redirect_edge_var_map_add): Use vec_safe_reserve and
23810 vec_safe_push, always update *slot.
23811 (redirect_edge_var_map_clear): Use vec_free.
23812 (redirect_edge_var_map_dup): Use vec_safe_copy and vec_safe_reserve.
23813 (free_var_map_entry): Use vec_free.
23814 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Use
23815 FOR_EACH_VEC_SAFE_ELT instead of FOR_EACH_VEC_ELT.
23816
436a956a
AB
238172013-02-27 Andrey Belevantsev <abel@ispras.ru>
23818
23819 PR middle-end/45472
436a956a
AB
23820 * sel-sched-ir.c (merge_expr): Also change vinsn of merged expr
23821 when the may_trap_p bit of the exprs being merged differs.
436a956a
AB
23822 Reorder tests for speculativeness in the logical and operator.
23823
f5c2caca
JJ
238242013-02-27 Jakub Jelinek <jakub@redhat.com>
23825
0fcb564b
JJ
23826 * incpath.c (add_standard_paths): Use reconcat instead of concat
23827 where appropriate and avoid leaking memory.
23828
dc357798
JJ
23829 * opts.h: Include obstack.h.
23830 (opts_concat): New prototype.
23831 (opts_obstack): New declaration.
23832 * opts.c (opts_concat): New function.
23833 (opts_obstack): New variable.
23834 (init_options_struct): Call gcc_init_obstack on opts_obstack.
23835 (finish_options): Use opts_concat instead of concat
23836 and XOBNEWVEC instead of XNEWVEC.
23837 * opts-common.c (generate_canonical_option, decode_cmdline_option,
23838 generate_option): Likewise.
23839 * Makefile.in (OPTS_H): Depend on $(OBSTACK_H).
23840 * lto-wrapper.c (main): Call gcc_init_obstack on opts_obstack.
23841
f5c2caca
JJ
23842 PR target/56455
23843 * stmt.c (expand_switch_as_decision_tree_p): If flag_pic
23844 and ASM_OUTPUT_ADDR_DIFF_ELT isn't defined, return true.
23845
d0163673
JJ
238462013-02-26 Jakub Jelinek <jakub@redhat.com>
23847
23848 PR middle-end/56461
23849 * lra-spills.c (lra_spill): Free spill_hard_reg at the end.
23850
b5ad2b8e
JR
238512013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
23852
23853 * config/arm/arm.c (const_ok_for_dimode_op): Back out last change.
23854 (arm_block_move_unaligned_straight): Likewise.
23855 (arm_adjust_block_mem): Likewise.
23856
9b639e2c
JR
238572013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
23858
23859 PR target/48901
23860 * config/lm32/lm32.c (gen_int_relational): Remove unused variables
23861 temp, cond and label.
23862 * config/lm32/lm32.md (ashlsi3): Remove unused variable one.
23863
e13a0ccb
JR
23864 PR target/52500
23865 * config/c6x/c6x.c (dbx_register_map): Change to unsigned.
23866 * config/c6x/c6x.h (dbx_register_map): Update declaration.
23867
fbe4f171
JR
23868 PR target/52501
23869 * config/cr16/cr16-protos.h: Move end of RTX_CODE guard below end
23870 of prologue/epilogue functions.
23871
ae006543
JR
23872 PR target/52550
23873 * config/tilegx/tilegx.c (tilegx_expand_prologue):
23874 Remove unused variable cfa_offset.
23875 * config/tilepro/tilepro.c (tilepro_expand_prologue): Likewise.
23876
c81369fa
JR
23877 PR target/54639
23878 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Avoid offset
23879 type promotion to unsigned.
23880
f8a8fea7
JR
23881 PR target/54640
23882 * config/arm/arm.c (const_ok_for_dimode_op): Make code consistent
23883 for HOST_WIDE_INT of 32 bit / same size as int.
23884 (arm_block_move_unaligned_straight): Likewise.
23885 (arm_adjust_block_mem): Likewise.
23886
f8be5169
JR
23887 PR target/54662
23888 * config/mep/t-mep (mep-pragma.o): Use ALL_COMPILERFLAGS instead of
23889 ALL_CFLAGS.
23890
f1ad3354
MP
238912013-02-26 Marek Polacek <polacek@redhat.com>
23892
23893 PR tree-optimization/56426
88b97037 23894 * tree-ssa-loop.c (tree_ssa_loop_init): Always call scev_initialize.
f1ad3354 23895
a6af0f42
RB
238962013-02-26 Richard Biener <rguenther@suse.de>
23897
23898 PR target/56444
23899 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): Remove
23900 unused variable loops.
23901
aca43c6c
JJ
239022013-02-26 Jakub Jelinek <jakub@redhat.com>
23903
cecbe5d9
JJ
23904 PR tree-optimization/56448
23905 * fold-const.c (operand_equal_p) <case tcc_reference>: Don't look at
23906 TREE_SIDE_EFFECTS if flags contain OEP_CONSTANT_ADDRESS_OF.
23907 Clear OEP_CONSTANT_ADDRESS_OF from flags before recursing on second or
23908 later operands of the references, or even first operand for
23909 INDIRECT_REF, TARGET_MEM_REF or MEM_REF.
23910
aca43c6c
JJ
23911 PR tree-optimization/56443
23912 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): For
23913 overaligned types, pass TYPE_UNSIGNED (scalar_type) as second argument
23914 to type_for_mode langhook.
23915
53e2e141
MT
239162013-02-25 Matt Turner <mattst88@gmail.com>
23917
23918 * doc/invoke.texi: Document r4700.
23919
259ee451
RB
239202013-02-25 Richard Biener <rguenther@suse.de>
23921
23922 PR tree-optimization/56175
23923 * tree-ssa-forwprop.c (hoist_conversion_for_bitop_p): New predicate,
23924 split out from ...
23925 (simplify_bitwise_binary): ... here. Also guard the conversion
23926 of (type) X op CST to (type) (X op ((type-x) CST)) with it.
23927
6d65e8f1
CM
239282013-02-25 Catherine Moore <clm@codesourcery.com>
23929
23930 Revert:
23931 2013-02-24 Catherine Moore <clm@codesourcery.com>
23932 Maciej W. Rozycki <macro@codesourcery.com>
23933 Tom de Vries <tom@codesourcery.com>
a72d8780 23934 Nathan Sidwell <nathan@codesourcery.com>
6d65e8f1
CM
23935 Iain Sandoe <iain@codesourcery.com>
23936 Nathan Froyd <froydnj@codesourcery.com>
a72d8780 23937 Chao-ying Fu <fu@mips.com>
88b97037 23938
6d65e8f1 23939 * doc/extend.texi: (micromips, nomicromips, nocompression):
88b97037 23940 Document new function attributes.
6d65e8f1
CM
23941 * doc/invoke.texi (minterlink-compressed, mmicromips,
23942 m14k, m14ke, m14kec): Document new options.
23943 (minterlink-mips16): Update documentation.
23944 * doc/md.texi (ZC, ZD): Document new constraints.
23945 * configure.ac (gcc_cv_as_micromips): Check if linker
23946 supports the .set micromips directive.
23947 * configure: Regenerate.
23948 * config.in: Regenerate.
23949 * config/mips/mips-tables.opt: Regenerate.
23950 * config/mips/micromips.md: New file.
23951 * constraints.md (ZC, AD): New constraints.
23952 * config/mips/predicates.md (movep_src_register): New predicate.
23953 (movep_src_operand): New predicate.
23954 (non_volatile_mem_operand): New predicate.
23955 * config/mips/mips.md (multimem): New type.
23956 (length): Differentiate between 17-bit and 18-bit branch offsets.
23957 (MOVEP1, MOVEP2): New mode iterator.
23958 (mov_<load>l): Use ZC constraint.
23959 (mov_<load>r): Likewise.
23960 (mov_<store>l): Likewise.
23961 (mov_<store>r): Likewise.
23962 (*branch_equality<mode>_inverted): Add microMIPS support.
23963 (*branch_equality<mode>): Likewise.
23964 (*jump_absolute): Likewise.
23965 (indirect_jump_<mode>): Likewise.
23966 (tablejump_<mode>): Likewise.
23967 (<optab>_internal): Likewise.
23968 (sibcall_internal): Likewise.
23969 (sibcall_value_internal): Likewise.
23970 (prefetch): Use constraint ZD.
23971 * config/mips/mips.opt (minterlink-compressed): New option.
23972 (minterlink-mips16): Now an alias for minterlink-compressed.
23973 (mmicromips): New option.
23974 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
23975 (compare_and_swap_12): Likewise.
23976 (sync_add<mode>): Likewise.
23977 (sync_<optab>_12): Likewise.
23978 (sync_old_<optab>_12): Likewise.
23979 (sync_new_<optab>_12): Likewise.
23980 (sync_nand_12): Likewise.
23981 (sync_old_nand_12): Likewise.
23982 (sync_new_nand_12): Likewise.
23983 (sync_sub<mode>): Likewise.
23984 (sync_old_add<mode>): Likewise.
23985 (sync_old_sub<mode>): Likewise.
23986 (sync_new_add<mode>): Likewise.
23987 (sync_new_sub<mode>): Likewise.
23988 (sync_<optab><mode>): Likewise.
23989 (sync_old_<optab><mode>): Likewise.
23990 (sync_new_<optab><mode>): Likewise.
23991 (sync_nand<mode>): Likewise.
23992 (sync_old_nand<mode>): Likewise.
23993 (sync_new_nand<mode>): Likewise.
23994 (sync_lock_test_and_set<mode>): Likewise.
23995 (test_and_set_12): Likewise.
23996 (atomic_compare_and_swap<mode>): Likewise.
23997 (atomic_exchange<mode>_llsc): Likewise.
23998 (atomic_fetch_add<mode>_llsc): Likewise.
23999 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
24000 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
24001 (umips_save_restore_pattern_p): Likewise.
24002 (umips_load_store_pair_p): Likewise.
24003 (umips_output_load_store_pair): Likewise.
24004 (umips_movep_target_p): Likewise.
24005 (umips_12bit_offset_address_p): Likewise.
24006 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
24007 (mips_base_mips16): Rename this...
24008 (mips_base_compression_flags): ...to this. Update all uses.
24009 (mips_attribute_table): Add micromips, nomicromips and nocompression.
24010 (mips_mips16_decl_p): Delete.
24011 (mips_nomips16_decl_p): Delete.
24012 (mips_get_compress_on_flags): New function.
24013 (mips_get_compress_off_flags): New function.
24014 (mips_get_compress_mode): New function.
24015 (mips_get_compress_on_name): New function.
24016 (mips_get_compress_off_name): New function.
24017 (mips_insert_attributes): Support multiple compression types.
24018 (mips_merge_decl_attributes): Likewise.
24019 (umips_12bit_offset_address_p): New function.
24020 (mips_start_function_definition): Emit .set micromips directive.
24021 (mips_call_may_need_jalx_p): New function.
24022 (mips_function_ok_for_sibcall): Add microMIPS support.
24023 (mips_print_operand_punctuation): Support short delay slots and
24024 compact jumps.
24025 (umips_swm_mask, umips_swm_encoding): New.
24026 (umips_build_save_restore): New function.
24027 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
24028 (was_mips16_p): Remove.
24029 (old_compression_mode): New.
24030 (mips_set_compression_mode): New function.
24031 (mips_set_current_function): Add microMIPS support.
24032 (mips_option_override): Likewise.
24033 (umips_save_restore_pattern_p): New function.
24034 (umips_output_save_restore): New function.
24035 (umips_load_store_pair_p_1): New function.
24036 (umips_load_store_pair_p): New function.
24037 (umips_output_load_store_pair_1): New function.
24038 (umips_output_load_store_pair): New function.
24039 (umips_movep_target_p) New function.
24040 (mips_prepare_pch_save): Add microMIPS support.
24041 * config/mips/mips.h (TARGET_COMPRESSION): New.
24042 (TARGET_CPU_CPP_BUILTINS): Update macro
24043 to use new compression flags and to support microMIPS.
24044 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
24045 (MIPS_ARCH_FLOAT_SPEC): Likewise.
24046 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
24047 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
24048 (ASM_SPEC): Support mmicromips and mno-micromips.
24049 (M16STORE_REG_P): New macro.
24050 (MIPS_CALL): Support TARGET_MICROMIPS.
24051 (MICROMIPS_J): New macro.
24052 (mips_base_mips16): Rename this...
24053 (mips_base_compression_flags): ...to this.
24054 (UMIPS_12BIT_OFFSET_P): New macro.
24055 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
24056 (MULTILIB_DIRNAMES): Likewise.
24057
5e5df392
TV
240582013-02-25 Tom de Vries <tom@codesourcery.com>
24059
24060 PR rtl-optimization/56131
24061 * insn-notes.def (INSN_NOTE_BASIC_BLOCK): Update comment.
24062 * cfgrtl.c (delete_insn): Don't reorder NOTE_INSN_DELETED_LABEL and
24063 NOTE_INSN_BASIC_BLOCK if BLOCK_FOR_INSN == NULL.
24064
3fdb53c1
TB
240652013-02-25 Tobias Burnus <burnus@net-b.de>
24066
24067 * doc/invoke.texi (-fsanitize=): Move from optimization
24068 to debugging options.
24069
ed358aea
AB
240702013-02-25 Andrey Belevantsev <abel@ispras.ru>
24071
24072 * sched-deps.c (sched_analyze_insn): Fix typo in comment.
24073
f45e9053
AB
240742013-02-25 Andrey Belevantsev <abel@ispras.ru>
24075 Alexander Monakov <amonakov@ispras.ru>
24076
24077 PR middle-end/56077
24078 * sched-deps.c (sched_analyze_insn): When reg_pending_barrier,
24079 flush pending lists also on non-jumps. Adjust comment.
24080
6941b508
CM
240812013-02-24 Catherine Moore <clm@codesourcery.com>
24082 Maciej W. Rozycki <macro@codesourcery.com>
24083 Tom de Vries <tom@codesourcery.com>
a72d8780 24084 Nathan Sidwell <nathan@codesourcery.com>
6941b508
CM
24085 Iain Sandoe <iain@codesourcery.com>
24086 Nathan Froyd <froydnj@codesourcery.com>
a72d8780 24087 Chao-ying Fu <fu@mips.com>
6941b508
CM
24088
24089 * doc/extend.texi: (micromips, nomicromips, nocompression):
88b97037 24090 Document new function attributes.
6941b508
CM
24091 * doc/invoke.texi (minterlink-compressed, mmicromips,
24092 m14k, m14ke, m14kec): Document new options.
24093 (minterlink-mips16): Update documentation.
24094 * doc/md.texi (ZC, ZD): Document new constraints.
24095 * configure.ac (gcc_cv_as_micromips): Check if linker
24096 supports the .set micromips directive.
24097 * configure: Regenerate.
24098 * config.in: Regenerate.
24099 * config/mips/mips-tables.opt: Regenerate.
24100 * config/mips/micromips.md: New file.
24101 * constraints.md (ZC, AD): New constraints.
24102 * config/mips/predicates.md (movep_src_register): New predicate.
24103 (movep_src_operand): New predicate.
24104 (non_volatile_mem_operand): New predicate.
24105 * config/mips/mips.md (multimem): New type.
24106 (length): Differentiate between 17-bit and 18-bit branch offsets.
24107 (MOVEP1, MOVEP2): New mode iterator.
3fdb53c1 24108 (mov_<load>l): Use ZC constraint.
6941b508
CM
24109 (mov_<load>r): Likewise.
24110 (mov_<store>l): Likewise.
24111 (mov_<store>r): Likewise.
24112 (*branch_equality<mode>_inverted): Add microMIPS support.
24113 (*branch_equality<mode>): Likewise.
24114 (*jump_absolute): Likewise.
24115 (indirect_jump_<mode>): Likewise.
24116 (tablejump_<mode>): Likewise.
24117 (<optab>_internal): Likewise.
24118 (sibcall_internal): Likewise.
24119 (sibcall_value_internal): Likewise.
24120 (prefetch): Use constraint ZD.
24121 * config/mips/mips.opt (minterlink-compressed): New option.
24122 (minterlink-mips16): Now an alias for minterlink-compressed.
24123 (mmicromips): New option.
24124 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
24125 (compare_and_swap_12): Likewise.
24126 (sync_add<mode>): Likewise.
24127 (sync_<optab>_12): Likewise.
24128 (sync_old_<optab>_12): Likewise.
24129 (sync_new_<optab>_12): Likewise.
24130 (sync_nand_12): Likewise.
24131 (sync_old_nand_12): Likewise.
24132 (sync_new_nand_12): Likewise.
24133 (sync_sub<mode>): Likewise.
24134 (sync_old_add<mode>): Likewise.
24135 (sync_old_sub<mode>): Likewise.
24136 (sync_new_add<mode>): Likewise.
24137 (sync_new_sub<mode>): Likewise.
24138 (sync_<optab><mode>): Likewise.
24139 (sync_old_<optab><mode>): Likewise.
24140 (sync_new_<optab><mode>): Likewise.
24141 (sync_nand<mode>): Likewise.
24142 (sync_old_nand<mode>): Likewise.
24143 (sync_new_nand<mode>): Likewise.
24144 (sync_lock_test_and_set<mode>): Likewise.
24145 (test_and_set_12): Likewise.
24146 (atomic_compare_and_swap<mode>): Likewise.
24147 (atomic_exchange<mode>_llsc): Likewise.
24148 (atomic_fetch_add<mode>_llsc): Likewise.
24149 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
24150 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
24151 (umips_save_restore_pattern_p): Likewise.
24152 (umips_load_store_pair_p): Likewise.
24153 (umips_output_load_store_pair): Likewise.
24154 (umips_movep_target_p): Likewise.
24155 (umips_12bit_offset_address_p): Likewise.
24156 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
24157 (mips_base_mips16): Rename this...
24158 (mips_base_compression_flags): ...to this. Update all uses.
24159 (mips_attribute_table): Add micromips, nomicromips and nocompression.
24160 (mips_mips16_decl_p): Delete.
24161 (mips_nomips16_decl_p): Delete.
3fdb53c1 24162 (mips_get_compress_on_flags): New function.
6941b508
CM
24163 (mips_get_compress_off_flags): New function.
24164 (mips_get_compress_mode): New function.
24165 (mips_get_compress_on_name): New function.
24166 (mips_get_compress_off_name): New function.
24167 (mips_insert_attributes): Support multiple compression types.
24168 (mips_merge_decl_attributes): Likewise.
24169 (umips_12bit_offset_address_p): New function.
24170 (mips_start_function_definition): Emit .set micromips directive.
24171 (mips_call_may_need_jalx_p): New function.
24172 (mips_function_ok_for_sibcall): Add microMIPS support.
24173 (mips_print_operand_punctuation): Support short delay slots and
24174 compact jumps.
24175 (umips_swm_mask, umips_swm_encoding): New.
24176 (umips_build_save_restore): New function.
24177 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
24178 (was_mips16_p): Remove.
24179 (old_compression_mode): New.
24180 (mips_set_compression_mode): New function.
24181 (mips_set_current_function): Add microMIPS support.
24182 (mips_option_override): Likewise.
24183 (umips_save_restore_pattern_p): New function.
24184 (umips_output_save_restore): New function.
24185 (umips_load_store_pair_p_1): New function.
24186 (umips_load_store_pair_p): New function.
24187 (umips_output_load_store_pair_1): New function.
24188 (umips_output_load_store_pair): New function.
24189 (umips_movep_target_p) New function.
24190 (mips_prepare_pch_save): Add microMIPS support.
24191 * config/mips/mips.h (TARGET_COMPRESSION): New.
24192 (TARGET_CPU_CPP_BUILTINS): Update macro
24193 to use new compression flags and to support microMIPS.
24194 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
24195 (MIPS_ARCH_FLOAT_SPEC): Likewise.
24196 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
24197 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
24198 (ASM_SPEC): Support mmicromips and mno-micromips.
24199 (M16STORE_REG_P): New macro.
24200 (MIPS_CALL): Support TARGET_MICROMIPS.
24201 (MICROMIPS_J): New macro.
24202 (mips_base_mips16): Rename this...
24203 (mips_base_compression_flags): ...to this.
24204 (UMIPS_12BIT_OFFSET_P): New macro.
24205 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
24206 (MULTILIB_DIRNAMES): Likewise.
24207
cdebbc6d
JJ
242082013-02-24 Jakub Jelinek <jakub@redhat.com>
24209
24210 PR target/52555
24211 * target-globals.c (save_target_globals): For init_reg_sets and
24212 target_reinit remporarily set this_fn_optabs to this_target_optabs.
24213
18c63565
JG
242142013-02-22 James Grennahlgh <james.greenhalgh@arm.com>
24215
24216 * config/aarch64/aarch64-simd-builtins.def: Add copyright header.
24217 * config/aarch64/t-aarch64
24218 (aarch64-builtins.o): Depend on aarch64-simd-builtins.def.
24219
2194f7a2
VM
242202013-02-22 Vladimir Makarov <vmakarov@redhat.com>
24221
24222 PR inline-asm/56148
24223 * lra-constraints.c (process_alt_operands): Reload operand
24224 conflicting with earlier clobber only if no more other conflicting
24225 operands.
24226
7d613735
JJ
242272013-02-22 Jakub Jelinek <jakub@redhat.com>
24228
24229 PR sanitizer/56393
24230 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Link in libasan_preinit.o
24231 if not linking a shared library.
24232
ac8d93a7
SL
242332013-02-22 Seth LaForge <sethml@google.com>
24234
24235 * config.gcc (arm*-*-eabi*): Treat arm*eb as big-endian.
24236
e0237780
GY
242372013-02-22 Greta Yorsh <Greta.Yorsh@arm.com>
24238
3fdb53c1
TB
24239 * config/arm/arm.md (split for extendsidi): Update condition.
24240 (zero_extend<mode>di2,extend<mode>di2): Add an alternative.
24241 * config/arm/iterators.md (qhs_extenddi_cstr): Likewise.
24242 (qhs_zextenddi_cstr): Likewise.
e0237780 24243
d7fde18c
JJ
242442013-02-21 Jakub Jelinek <jakub@redhat.com>
24245
be63b77d
JJ
24246 PR middle-end/56420
24247 * expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Do subtraction in uhwi, to
24248 avoid signed wrapping.
24249 (expand_mult): Handle properly multiplication by
24250 ((dword_type) -1) << (BITS_PER_WORD - 1). Improve multiplication by
24251 ((dword_type) 1) << (BITS_PER_WORD - 1). Avoid undefined behavior
24252 in the compiler if coeff is HOST_WIDE_INT_MIN.
24253 (expand_divmod): Don't make ext_op1 static, change it's type to
24254 uhwi. Avoid undefined behavior in -INTVAL (op1).
24255
d7fde18c
JJ
24256 PR rtl-optimization/50339
24257 * lower-subreg.h (struct lower_subreg_choices): Add splitting_ashiftrt
24258 field.
24259 * lower-subreg.c (compute_splitting_shift): Handle ASHIFTRT.
24260 (compute_costs): Call compute_splitting_shift also for ASHIFTRT
24261 into splitting_ashiftrt field.
24262 (find_decomposable_shift_zext, resolve_shift_zext): Handle also
24263 ASHIFTRT.
24264 (dump_choices): Fix up printing LSHIFTRT choices, print ASHIFTRT
24265 choices.
24266
6aad4455
AH
242672013-02-20 Aldy Hernandez <aldyh@redhat.com>
24268
24269 PR middle-end/56108
24270 * trans-mem.c (execute_tm_mark): Do not expand transactions that
24271 are sure to go irrevocable.
24272
38fe784d
HPN
242732013-02-21 Hans-Peter Nilsson <hp@axis.com>
24274
24275 * doc/rtl.texi (vec_concat, vec_duplicate): Mention that
24276 scalars are valid operands.
24277
0fd44da3
MJ
242782013-02-21 Martin Jambor <mjambor@suse.cz>
24279
24280 PR tree-optimization/56310
24281 * ipa-cp.c (agg_replacements_to_vector): New parameter index, copy
24282 only matching indices and non-negative final offsets.
24283 (intersect_aggregates_with_edge): Pass src_idx to
24284 agg_replacements_to_vector. Pass src_idx insstead of index to
24285 intersect_with_agg_replacements.
24286
7a92038b
MJ
242872013-02-21 Martin Jambor <mjambor@suse.cz>
24288
24289 * ipa-cp.c (good_cloning_opportunity_p): Dump the real threshold
24290 instead of hard-wired defaults.
24291
c0da9c37
MR
242922013-02-21 Maciej W. Rozycki <macro@codesourcery.com>
24293
24294 * doc/invoke.texi (MIPS Options): Update documentation of the
24295 floating-point multiply-accumulate instruction restrictions.
24296
d247ea0c 242972013-02-21 Kostya Serebryany <kcc@google.com>
7df59255
KS
24298
24299 * config/i386/i386.c (ix86_asan_shadow_offset): Use 0x7fff8000 as
24300 asan_shadow_offset on x86_64 linux.
24301
22deefcb
RB
243022013-02-21 Richard Biener <rguenther@suse.de>
24303
24304 PR tree-optimization/56415
24305 Revert
24306 2013-02-11 Richard Biener <rguenther@suse.de>
24307
24308 PR tree-optimization/56273
24309 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
24310 first VRP run.
24311
7bcc6e75
JJ
243122013-02-21 Jakub Jelinek <jakub@redhat.com>
24313
a0ad148f
JJ
24314 PR bootstrap/56258
24315 * doc/invoke.texi (-fdump-rtl-pro_and_epilogue): Use @item
24316 instead of @itemx.
24317
7bcc6e75
JJ
24318 PR inline-asm/56405
24319 * expr.c (expand_expr_real_1) <case TARGET_MEM_REF, MEM_REF>: Don't
24320 use movmisalign or extract_bit_field for EXPAND_MEMORY modifier.
24321
a0a7b611
JH
243222013-02-20 Jan Hubicka <jh@suse.cz>
24323
24324 PR tree-optimization/56265
88b97037
UB
24325 * ipa-prop.c (ipa_make_edge_direct_to_target): Fixup callgraph
24326 when target is referenced for first time.
a0a7b611 24327
c0e50f72
RB
243282013-02-20 Richard Biener <rguenther@suse.de>
24329
24330 * tree-call-cdce.c (tree_call_cdce): Do not remove unused locals.
24331 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise.
24332 * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
24333 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do
24334 not return anything.
24335 (rename_ssa_copies): Do not remove unused locals.
24336 * tree-ssa-ccp.c (do_ssa_ccp): Likewise.
88b97037 24337 * tree-ssanames.c (pass_release_ssa_names): Remove unused locals first.
c0e50f72
RB
24338 * passes.c (execute_function_todo): Do not schedule unused locals
24339 removal if cleanup_tree_cfg did something.
24340 * tree-ssa-live.c (remove_unused_locals): Dump statistics
24341 about the number of removed locals.
24342
a52ca739
RB
243432013-02-20 Richard Biener <rguenther@suse.de>
24344
24345 PR tree-optimization/56398
88b97037 24346 * tree-vect-loop-manip.c (adjust_debug_stmts): Skip SSA default defs.
a52ca739 24347
ec9c9d1b
MJ
243482013-02-20 Martin Jambor <mjambor@suse.cz>
24349
24350 PR tree-optimization/55334
24351 * ipa-cp.c (initialize_node_lattices): Disable IPA-CP through and to
24352 restricted pointers to arrays.
24353
e91c8ed6 243542013-02-20 Richard Biener <rguenther@suse.de>
88b97037 24355 Jakub Jelinek <jakub@redhat.com>
e91c8ed6
RB
24356
24357 PR tree-optimization/56396
24358 * tree-ssa-ccp.c (n_const_val): New static variable.
24359 (get_value): Return NULL for SSA names we don't have a lattice
24360 entry for.
24361 (ccp_initialize): Initialize n_const_val.
24362 * tree-ssa-copy.c (n_copy_of): New static variable.
24363 (init_copy_prop): Initialize n_copy_of.
24364 (get_value): Return NULL_TREE for SSA names we don't have a
24365 lattice entry for.
24366
3d916479
MJ
243672013-02-20 Martin Jambor <mjambor@suse.cz>
24368
24369 * ipa-cp.c (initialize_node_lattices): Fix dumping condition.
24370
71a86758
RB
243712013-02-20 Richard Biener <rguenther@suse.de>
24372
24373 * genpreds.c (write_lookup_constraint): Do not compare first
24374 letter of the constraint again.
24375
79836a12
RB
243762013-02-20 Richard Biener <rguenther@suse.de>
24377
24378 * tree-ssa-loop-ivopts.c (alloc_use_cost_map): Use bitmap_count_bits
24379 and ceil_log2.
24380 (get_use_iv_cost): Terminate hashtable walk when coming across
24381 an empty entry.
24382
bbe4fb2c
IZ
243832013-02-20 Igor Zamyatin <igor.zamyatin@intel.com>
24384
24385 * config/i386/i386.c (initial_ix86_tune_features): Turn on fp
24386 reassociation for avx2 targets.
24387
a72d8780 243882012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
79836a12 24389
c77f83d5
EI
24390 * config/microblaze/microblaze.c: microblaze_has_clz = 0
24391 Add version check for v8.10.a to enable microblaze_has_clz
88b97037 24392 * config/microblaze/microblaze.h: Add TARGET_HAS_CLZ as combined
c77f83d5
EI
24393 version and TARGET_PATTERN_COMPARE check
24394 * config/microblaze/microblaze.md: New clzsi2 instruction
3fdb53c1 24395
a72d8780 243962012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
959434e6 24397
a72d8780 24398 * config/microblaze/microblaze.md (call_value_intern): Check symbol is
959434e6
EI
24399 function before branching.
24400
242387fa
AB
244012012-02-19 Andrey Belevantsev <abel@ispras.ru>
24402
24403 * sel-sched-dump.c (dump_insn_rtx_flags): Explicitly set
24404 DUMP_INSN_RTX_UID.
24405 (dump_insn_rtx_1): Pass PATTERN (insn) to str_pattern_slim.
24406
b4979ab9
AB
244072012-02-19 Andrey Belevantsev <abel@ispras.ru>
24408
24409 PR middle-end/55889
b4979ab9
AB
24410 * sel-sched.c: Include ira.h.
24411 (implicit_clobber_conflict_p): New function.
24412 (moveup_expr): Use it.
88b97037 24413 * Makefile.in (sel-sched.o): Depend on ira.h.
b4979ab9 24414
24d63016
RB
244152013-02-19 Richard Biener <rguenther@suse.de>
24416
24417 PR tree-optimization/56384
24418 * tree-ssa-sccvn.h (struct vn_phi_s): Add type member.
24419 (vn_hash_type): Split out from ...
24420 (vn_hash_constant_with_type): ... here.
24421 * tree-ssa-sccvn.c (vn_phi_compute_hash): Use vn_hash_type.
24422 (vn_phi_eq): Compare types from vn_phi_s structure.
24423 (vn_phi_lookup): Populate vn_phi_s type.
24424 (vn_phi_insert): Likewise.
24425
a475fd3d
JJ
244262013-02-19 Jakub Jelinek <jakub@redhat.com>
24427
47cc28f5
JJ
24428 PR tree-optimization/56350
24429 * tree-vect-loop.c (vectorizable_reduction): If orig_stmt, return false
24430 if haven't found reduction or nested cycle operand, rather than
24431 asserting we must find it.
24432
a475fd3d
JJ
24433 PR tree-optimization/56381
24434 * tree-ssa-pre.c (create_expression_by_pieces): Fix up last argument
24435 to fold_build3.
24436
244372013-02-18 Aldy Hernandez <aldyh@redhat.com>
135204dd
AH
24438 Jakub Jelinek <jakub@redhat.com>
24439
24440 PR target/52555
24441 * genopinit.c (raw_optab_handler): Use this_fn_optabs.
24442 (swap_optab_enable): Same.
24443 (init_all_optabs): Use argument instead of global.
88b97037 24444 * tree.h (struct tree_optimization_option): New field target_optabs.
135204dd
AH
24445 * expr.h (init_all_optabs): Add argument to prototype.
24446 (TREE_OPTIMIZATION_OPTABS): New.
24447 (save_optabs_if_changed): Protoize.
24448 * optabs.h: Declare this_fn_optabs.
24449 * optabs.c (save_optabs_if_changed): New.
24450 Declare this_fn_optabs.
24451 (init_optabs): Add argument to init_all_optabs() call.
24452 * function.c (invoke_set_current_function_hook): Handle per
24453 function optabs.
24454 * function.h (struct function): New field optabs.
24455 * config/mips/mips.c (mips_set_mips16_mode): Handle when
24456 optimization_current_node has changed.
24457 * target-globals.h (save_target_globals_default_opts): Protoize.
24458 * target-globals.c (save_target_globals_default_opts): New.
24459
3f587ca3
JDA
244602013-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
24461
24462 PR target/56347
24463 * config/pa/pa.c (pa_conditional_register_usage): On HP-UX, mark
24464 registers %fr12 and %fr12R as call used.
ceaca33e
JDA
24465
24466 PR target/56214
24467 * config/pa/predicates.md (base14_operand): Except for BLKmode, QImode
88b97037
UB
24468 and HImode, require all displacements to be an integer multiple of
24469 their mode size.
ceaca33e
JDA
24470 * config/pa/pa.c (pa_legitimate_address_p): For REG+BASE addresses,
24471 only allow QImode and HImode when reload is in progress and strict is
24472 true. Likewise for symbolic addresses. Use base14_operand to check
24473 displacements in REG+BASE addresses.
24474
fe0b4796
RB
244752013-02-18 Richard Biener <rguenther@suse.de>
24476
24477 PR tree-optimization/56366
24478 * tree-vect-loop.c (get_initial_def_for_induction): Properly
24479 handle sign-conversion of outer-loop initial induction value.
24480
6aaf596b
RB
244812013-02-18 Richard Biener <rguenther@suse.de>
24482
73db8ff1 24483 PR middle-end/56349
6aaf596b
RB
24484 * cfghooks.c (merge_blocks): If we merge a latch into another
24485 block adjust references to it.
24486 * cfgloop.c (flow_loops_find): Reset latch before recomputing it.
24487 (verify_loop_structure): Verify that a recorded latch is in fact
24488 a latch.
24489
5e97dfb6
RB
244902013-02-18 Richard Biener <rguenther@suse.de>
24491
24492 PR tree-optimization/56321
24493 * tree-ssa-reassoc.c (propagate_op_to_single_use): Properly
24494 order SSA name release and virtual operand unlinking.
24495
825527e8
EI
244962013-02-17 Edgar E. Iglesias <edgar.iglesias@gmail.com>
24497
24498 * config/microblaze/microblaze.md (save_stack_block): Define.
24499 (restore_stack_block): Likewise.
24500
debd11d9
EI
245012013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
24502
24503 * config/microblaze/linux.h (TARGET_SUPPORTS_PIC): Define as 1.
24504 * config/microblaze/microblaze.h (TARGET_SUPPORTS_PIC): Define as 1.
24505 * config/microblaze/microblaze.c (microblaze_option_override):
24506 Bail out early for PIC modes when target does not support PIC.
24507
8ec77be0
EI
245082013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
24509
88b97037 24510 * config/microblaze/microblaze.c (microblaze_asm_trampoline_template):
8ec77be0
EI
24511 Replace with a microblaze version.
24512 (microblaze_trampoline_init): Adapt for microblaze.
a752b80f 24513 * config/microblaze/microblaze.h (TRAMPOLINE_SIZE): Adapt for
8ec77be0
EI
24514 microblaze.
24515
b41288b3
JJ
245162013-02-16 Jakub Jelinek <jakub@redhat.com>
24517 Dodji Seketeli <dodji@redhat.com>
24518
24519 PR asan/56330
88b97037 24520 * asan.c (get_mem_refs_of_builtin_call): White space and style cleanup.
b41288b3
JJ
24521 (instrument_mem_region_access): Do not forget to always put
24522 instrumentation of the of 'base' and 'base + len' in a "if (len !=
24523 0) statement, even for cases where either 'base' or 'base + len'
24524 are not instrumented -- because they have been previously
24525 instrumented. Simplify the logic by putting all the statements
24526 instrument 'base + len' inside a sequence, and then insert that
24527 sequence right before the current insertion point. Then, to
24528 instrument 'base + len', just get an iterator on that statement.
24529 And do not forget to update the pointer to iterator the function
24530 received as argument.
24531
47918951
VM
245322013-02-15 Vladimir Makarov <vmakarov@redhat.com>
24533
24534 PR rtl-optimization/56348
24535 * lra-assigns.c (reload_pseudo_compare_func): Prefer bigger pseudos.
24536
3fb7c699
SB
245372013-02-15 Steven Bosscher <steven@gcc.gnu.org>
24538
24539 * graph.c (start_graph_dump): Print dumpfile base as digraph label.
24540 (clean_graph_dump_file): Pass base to start_graph_dump.
24541
576fe41a
RH
245422013-02-14 Richard Henderson <rth@redhat.com>
24543
24544 PR target/55941
24545 * lower-subreg.c (simple_move): Check dest mode instead of src mode.
24546
bb3accfa
SB
245472013-02-14 Steven Bosscher <steven@gcc.gnu.org>
24548
24549 * collect2-aix.h: Define F_LOADONLY.
24550
03143140
RB
245512013-02-14 Richard Biener <rguenther@suse.de>
24552
24553 PR lto/50494
24554 * varasm.c (output_constant_def_1): Get the decl representing
24555 the constant as argument.
24556 (output_constant_def): Wrap output_constant_def_1.
24557 (make_decl_rtl): Use output_constant_def_1 with the decl
24558 representing the constant.
24559 (build_constant_desc): Optionally re-use a decl already
24560 representing the constant.
24561 (tree_output_constant_def): Adjust.
24562
8fb06726
DS
245632013-02-14 Dodji Seketeli <dodji@redhat.com>
24564
24565 Fix an asan crash
24566 * asan.c (instrument_builtin_call): Really put the length of the
24567 second source argument into src1_len.
24568
c4bfe8bf
JJ
245692013-02-13 Jakub Jelinek <jakub@redhat.com>
24570
24571 * asan.c (create_cond_insert_point): Add create_then_fallthru_edge
24572 argument. If it is false, don't create edge from then_bb to
24573 fallthru_bb.
24574 (insert_if_then_before_iter): Pass true to it.
24575 (build_check_stmt): Pass false to it.
24576 (transform_statements): Flush hash table only on extended basic
24577 block boundaries, rather than at the beginning of every bb.
24578 Don't flush hash table on nonfreeing_call_p calls.
24579 * tree-flow.h (nonfreeing_call_p): New prototype.
24580 * tree-ssa-phiopt.c (nonfreeing_call_p): No longer static.
24581
7afe2801
DM
245822013-02-13 David S. Miller <davem@davemloft.net>
24583
24584 * expmed.c (expand_shift_1): Only strip scalar integer subregs.
24585
70cc3288
VM
245862013-02-13 Vladimir Makarov <vmakarov@redhat.com>
24587
24588 PR target/56184
24589 * ira.c (max_regno_before_ira): Move from ...
24590 (ira): ... here.
24591 (fix_reg_equiv_init): Use max_regno_before_ira instead of
24592 vec_safe_length.
24593
6422242b
JJ
245942013-02-13 Jakub Jelinek <jakub@redhat.com>
24595
24596 * config/i386/i386.c (ix86_asan_shadow_offset): Revert last change.
24597
976a81ee
RB
245982013-02-13 Richard Biener <rguenther@suse.de>
24599
24600 PR lto/56295
24601 * gimple-streamer-out.c (output_gimple_stmt): Undo wrapping
24602 globals in MEM_REFs.
24603
c1874a87
RB
246042013-02-13 Richard Biener <rguenther@suse.de>
24605
24606 * loop-init.c (loop_optimizer_init): Clear loop state when
24607 re-initializing preserved loops.
24608 * loop-unswitch.c (unswitch_single_loop): Return whether
24609 we unswitched the loop. Do not verify loop state here.
88b97037 24610 (unswitch_loops): When we unswitched a loop discover new loops.
c1874a87 24611
b4ab7d34
KS
246122013-02-13 Kostya Serebryany <kcc@google.com>
24613
88b97037
UB
24614 * config/i386/i386.c: Use 0x7fff8000 as asan_shadow_offset
24615 on x86_64 linux.
b4ab7d34
KS
24616 * sanitizer.def: Rename __asan_init to __asan_init_v1.
24617
bdcbe80c
DS
246182013-02-12 Dodji Seketeli <dodji@redhat.com>
24619
24620 Avoid instrumenting duplicated memory access in the same basic block
24621 * Makefile.in (asan.o): Add new dependency on hash-table.h
24622 * asan.c (struct asan_mem_ref, struct mem_ref_hasher): New types.
24623 (asan_mem_ref_init, asan_mem_ref_get_end, get_mem_ref_hash_table)
24624 (has_stmt_been_instrumented_p, empty_mem_ref_hash_table)
24625 (free_mem_ref_resources, has_mem_ref_been_instrumented)
24626 (has_stmt_been_instrumented_p, update_mem_ref_hash_table)
24627 (get_mem_ref_of_assignment): New functions.
24628 (get_mem_refs_of_builtin_call): Extract from
24629 instrument_builtin_call and tweak a little bit to make it fit with
24630 the new signature.
24631 (instrument_builtin_call): Use the new
24632 get_mem_refs_of_builtin_call. Use gimple_call_builtin_p instead
24633 of is_gimple_builtin_call.
24634 (instrument_derefs, instrument_mem_region_access): Insert the
24635 instrumented memory reference into the hash table.
24636 (maybe_instrument_assignment): Renamed instrument_assignment into
24637 this, and change it to advance the iterator when instrumentation
24638 actually happened and return true in that case. This makes it
24639 homogeneous with maybe_instrument_assignment, and thus give a
24640 chance to callers to be more 'regular'.
24641 (transform_statements): Clear the memory reference hash table
24642 whenever we enter a new BB, when we cross a function call, or when
24643 we are done transforming statements. Use
24644 maybe_instrument_assignment instead of instrumentation. No more
24645 need to special case maybe_instrument_assignment and advance the
24646 iterator after calling it; it's now handled just like
24647 maybe_instrument_call. Update comment.
24648
4861a1f7
RB
246492013-02-13 Richard Biener <rguenther@suse.de>
24650
24651 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
24652 Fix loop discovery code.
24653
1c86bd80
VM
246542013-02-12 Vladimir Makarov <vmakarov@redhat.com>
24655
24656 PR inline-asm/56148
24657 * lra-constraints.c (process_alt_operands): Match early clobber
70cc3288 24658 operand with itself. Check conflicts with earlyclobber only if
1c86bd80
VM
24659 the operand is not reloaded. Prefer to reload conflicting operand
24660 if earlyclobber and matching operands are the same.
24661
7cbda518
RB
246622013-02-12 Richard Biener <rguenther@suse.de>
24663
24664 PR lto/56297
24665 * lto-streamer-out.c (write_symbol): Do not output symbols
24666 for hard register variables.
24667
e68a4ef6
GJL
246682013-02-12 Georg-Johann Lay <avr@gjlay.de>
24669
24670 PR target/54222
24671 * config/avr/avr-dimode.md (umulsidi3, mulsidi3): New expanders.
24672 (umulsidi3_insn, mulsidi3_insn): New insns.
24673
a72d8780 246742013-02-12 Christophe Lyon <christophe.lyon@linaro.org>
2597da22
CL
24675
24676 * config/arm/arm-protos.h (struct cpu_vec_costs): New struct type.
24677 (struct tune_params): Add vec_costs field.
24678 * config/arm/arm.c (arm_builtin_vectorization_cost)
24679 (arm_add_stmt_cost): New functions.
24680 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST)
24681 (TARGET_VECTORIZE_ADD_STMT_COST): Define.
24682 (arm_default_vec_cost): New struct of type cpu_vec_costs.
24683 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
24684 (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune)
24685 (arm_cortex_a15_tune, arm_cortex_a5_tune, arm_cortex_a9_tune)
24686 (arm_v6m_tune, arm_fa726te_tune): Define new vec_costs field.
24687
43320568
RB
246882013-02-12 Richard Biener <rguenther@suse.de>
24689
24690 PR lto/56295
24691 * gimple-streamer-in.c (input_gimple_stmt): Strip MEM_REFs off
24692 decls again if possible.
24693
a011aa39
RB
246942013-02-12 Richard Biener <rguenther@suse.de>
24695
24696 PR middle-end/56288
24697 * tree-ssa.c (verify_ssa_name): Fix check, move
24698 SSA_NAME_IN_FREE_LIST check up.
24699
6da26889
JJ
247002013-02-12 Jakub Jelinek <jakub@redhat.com>
24701 Steven Bosscher <steven@gcc.gnu.org>
24702
24703 PR rtl-optimization/56151
24704 * optabs.c (add_equal_note): Don't return 0 if target is a MEM,
24705 equal to op0 or op1, and last_insn pattern is CODE operation
24706 with MEM dest and one of the operands matches that MEM.
24707
f80e0faf
ST
247082013-02-11 Sriraman Tallam <tmsriramgoogle.com>
24709
24710 * doc/extend.texi: Document Function Multiversioning and "default"
24711 parameter string to target attribute.
24712 * config/i386/i386.c (get_builtin_code_for_version): Return 0 if
24713 target attribute parameter is "default".
24714 (ix86_compare_version_priority): Remove checks for target attribute.
24715 (ix86_mangle_function_version_assembler_name): Change error to sorry.
24716 Remove check for target attribute equal to NULL. Add assert.
24717 (ix86_generate_version_dispatcher_body): Change error to sorry.
24718
6c59ffd1
IS
247192013-02-11 Iain Sandoe <iain@codesourcery.com>
24720 Jack Howarth <howarth@bromo.med.uc.edu>
24721 Patrick Marlier <patrick.marlier@gmail.com>
24722
24723 PR libitm/55693
24724 * config/darwin.h: Replace ENDFILE_SPEC with TM_DESTRUCTOR and
24725 define ENDFILE_SPEC as TM_DESTRUCTOR.
24726 * config/i386/darwin.h (ENDFILE_SPEC): Use TM_DESTRUCTOR.
24727
a72d8780 247282013-02-11 Alexander Potapenko <glider@google.com>
6a52ccb3
AP
24729 Jack Howarth <howarth@bromo.med.uc.edu>
24730 Jakub Jelinek <jakub@redhat.com>
24731
24732 PR sanitizer/55617
24733 * config/darwin.c (cdtor_record): Rename ctor_record.
24734 (sort_cdtor_records): Rename sort_ctor_records.
24735 (finalize_dtors): New routine to sort destructors by
24736 priority before use in assemble_integer.
24737 (machopic_asm_out_destructor): Use finalize_dtors if needed.
24738
b63fe007
UB
247392013-02-11 Uros Bizjak <ubizjak@gmail.com>
24740
24741 PR rtl-optimization/56275
24742 * simplify-rtx.c (avoid_constant_pool_reference): Check that
24743 offset is non-negative and less than cmode size before
24744 calling simplify_subreg.
24745
8e89b5b5
RB
247462013-02-11 Richard Biener <rguenther@suse.de>
24747
24748 PR tree-optimization/56264
24749 * cfgloop.h (fix_loop_structure): Adjust prototype.
24750 * loop-init.c (fix_loop_structure): Return the number of
24751 newly discovered loops.
24752 * tree-cfgcleanup.c (repair_loop_structures): When new loops
24753 are discovered, do a full loop-closed SSA rewrite.
24754
b4a4b56d
RB
247552013-02-11 Richard Biener <rguenther@suse.de>
24756
24757 PR tree-optimization/56273
24758 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
24759 first VRP run.
24760 (check_array_ref): Fix missing newline in dumps.
24761 (search_for_addr_array): Likewise.
24762
0c885229
DE
247632013-02-09 David Edelsohn <dje.gcc@gmail.com>
24764
24765 * config/rs6000/aix61.h (OS_MISSING_ALTIVEC): Undefine.
24766
59ac9a55
JJ
247672013-02-09 Jakub Jelinek <jakub@redhat.com>
24768
24769 PR target/56256
24770 * config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Define.
24771
25bb0bb5
VM
247722013-02-08 Vladimir Makarov <vmakarov@redhat.com>
24773
24774 PR rtl-optimization/56246
0c885229 24775 * lra-constraints.c (simplify_operand_subreg): Try to reuse
25bb0bb5
VM
24776 reload pseudo.
24777 * lra.c (lra): Clear lra_optional_reload_pseudos only when all
24778 constraints are satisfied.
24779
a698cc03
JL
247802013-02-08 Jeff Law <law@redhat.com>
24781
24782 PR debug/53948
24783 * emit-rtl.c (reg_is_parm_p): New function.
24784 * regs.h (reg_is_parm_p): New prototype.
24785 * ira-conflicts.c (ira_build_conflicts): Allow parameters in
24786 callee-clobbered registers.
24787
e1122ddd
MM
247882013-02-08 Michael Meissner <meissner@linux.vnet.ibm.com>
24789
24790 PR target/56043
24791 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass):
24792 If there is no implicit builtin declaration, just return NULL.
24793
19c5f6e6
UB
247942013-02-08 Uros Bizjak <ubizjak@gmail.com>
24795
24796 * config/i386/sse.md (FMAMODEM): New mode iterator.
24797 (fma<mode>4, fms<mode>4, fnma<mode>4, fnms<mode>4): Use FMAMODEM
24798 mode iterator. Do not use TARGET_SSE_MATH in insn constraint.
24799
2480f2ca 248002013-02-08 Uros Bizjak <ubizjak@gmail.com>
76ef61fb 24801
2480f2ca
UB
24802 * config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Define only
24803 when HAVE_GAS_CFI_PERSONALITY_DIRECTIVE is set.
24804 * config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): Ditto.
24805
248062013-02-08 Edgar E. Iglesias <edgar.iglesias@gmail.com>
24807
24808 * config.gcc (microblaze*-linux*): Add TARGET_BIG_ENDIAN_DEFAULT.
24809 (microblaze*-*-elf): Likewise.
24810 * config/microblaze/linux.h: Add -mbig-endian / -mlittle-endian to
24811 LINK_SPEC.
24812 * config/microblaze/microblaze-c.c: Add builtin defines for
24813 _LITTLE_ENDIAN and _BIG_ENDIAN.
24814 * config/microblaze/microblaze.h: Add TARGET_ENDIAN_DEFAULT and
24815 add to TARGET_DEFAULT flags.
76ef61fb 24816 Expand ASM_SPEC and LINK_SPEC.
2480f2ca
UB
24817 Update BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN.
24818 * config/microblaze/microblaze.md: Update extendsidi2 and
24819 movdi_internal instructions to use low-order / high-order reg
24820 print_operands.
24821 * config/microblaze/microblaze.opt: Add mbig-endian and mlittle-endian
24822 options and inversemask / mask of LITTLE_ENDIAN.
24823 * config/microblaze/t-microblaze: Expand multilib options to
24824 include mlittle-endian (le) and update exceptions patterns.
24825
600a5961
JJ
248262013-02-08 Jakub Jelinek <jakub@redhat.com>
24827
5df81313
JJ
24828 PR rtl-optimization/56195
24829 * lra-constraints.c (get_reload_reg): Don't reuse regs
24830 if they have smaller mode than requested, if they have
24831 wider mode than requested, try to return a SUBREG.
24832
600a5961
JJ
24833 PR tree-optimization/56250
24834 * fold-const.c (extract_muldiv_1) <case NEGATE_EXPR>: Don't optimize
24835 if type is unsigned and code isn't MULT_EXPR.
24836
ff544649
GJL
248372013-02-08 Georg-Johann Lay <avr@gjlay.de>
24838
24839 PR tree-optimization/56064
24840 * fixed-value.c (fixed_from_double_int): Sign/zero extend payload
24841 bits according to mode.
24842 * fixed-value.h (fixed_from_double_int)
24843 (const_fixed_from_double_int): Adjust comments.
24844
e45cde98
RB
248452013-02-08 Richard Biener <rguenther@suse.de>
24846
24847 PR lto/56231
24848 * lto-streamer.h (struct data_in): Remove current_file, current_line
24849 and current_col members.
24850 * lto-streamer-out.c (lto_output_location): Stream changed bits
24851 en-block for efficiency.
24852 * lto-streamer-in.c (clear_line_info): Remove.
24853 (lto_input_location): Cache current file, line and column
24854 globally via local statics. Read changed bits en-block.
24855 (input_function): Do not call clear_line_info.
24856 (lto_read_body): Likewise.
24857 (lto_input_toplevel_asms): Likewise.
24858
c1ca73d8
MM
248592013-02-08 Michael Matz <matz@suse.de>
24860
24861 PR tree-optimization/52448
24862 * tree-ssa-phiopt.c (struct name_to_bb): Add phase member.
24863 (nt_call_phase): New static.
24864 (add_or_mark_expr): Only mark accesses with newer phase than any
24865 call seen.
24866 (nonfreeing_call_p): New.
24867 (nt_init_block): Update nt_call_phase, mark blocks as visited.
24868 (nt_fini_block): Keep blocks marked as visited.
24869 (get_non_trapping): Initialize nt_call_phase, and reset aux pointer.
24870
57548aa2
RB
248712013-02-08 Richard Biener <rguenther@suse.de>
24872
24873 * ira.c (ira): Free broken dominator information.
24874
8e10366f
UB
248752013-02-08 Uros Bizjak <ubizjak@gmail.com>
24876
24877 * config/i386/i386.c (ix86_spill_class): Use INTEGER_CLASS_P macro.
24878
f64fb0fa
MP
248792013-02-08 Marek Polacek <polacek@redhat.com>
24880
8e10366f 24881 * cfgloop.c (verify_loop_structure): Add more checking of headers.
f64fb0fa 24882
0375167b
RB
248832013-02-08 Richard Biener <rguenther@suse.de>
24884
24885 PR middle-end/56181
24886 * cfgloop.h (flow_loops_find): Adjust.
24887 (bb_loop_header_p): Declare.
24888 * cfgloop.c (bb_loop_header_p): New function split out from ...
24889 (flow_loops_find): ... here. Adjust function signature,
24890 support incremental loop structure update.
24891 (verify_loop_structure): Cleanup. Verify a loop is a loop.
24892 * cfgloopmanip.c (fix_loop_structure): Move ...
24893 * loop-init.c (fix_loop_structure): ... here.
24894 (apply_loop_flags): Split out from ...
24895 (loop_optimizer_init): ... here.
24896 (fix_loop_structure): Use apply_loop_flags. Use flow_loops_find
24897 in incremental mode, only remove dead loops here.
24898
85d768f3
GJL
248992013-02-08 Georg-Johann Lay <avr@gjlay.de>
24900
24901 PR target/54222
24902 * config/avr/avr.md (unspec) <UNSPEC_ROUND>: Add.
24903 * config/avr/avr-fixed.md (ALL4QA, ALL124QA): New mode iterators.
24904 (round<mode>3, round<mode>3_const): New expanders for fixed-mode.
24905 (*round<mode>3.libgcc): New insns for fixed-modes.
24906 * config/avr/builtins.def (ABSxx): Use a non-NULL LIBNAME.
24907 (ROUNDxx, COUNTLSxx, BITSxx, xxBITS): New DEF_BUILTINs.
24908 (ROUNDFX, COUNTLSFX, ABSFX): New DEF_BUILTINs.
24909 * config/avr/stdfix.h (absFX, bitsFX, FXbits): Remove inline
24910 implementations. Define to __builtin_avr_absFX,
24911 __builtin_avr_bitsFX, __builtin_avr_FXbits, respectively.
24912 (roundFX, countlsFX): Define to __builtin_avr_roundFX,
24913 __builtin_avr_countlsFX, respectively.
24914 * config/avr/avr-c.c (target.h): Include it.
24915 (enum avr_builtin_id): New enum.
24916 (avr_resolve_overloaded_builtin): New static function.
24917 (avr_register_target_pragmas): Use it to set
24918 targetm.resolve_overloaded_builtin.
24919 * config/avr/avr.c (avr_init_builtins): Supply myriads of local
24920 tree nodes used by DEF_BUILTIN.
24921 (avr_expand_builtin) <AVR_BUILTIN_ROUNDxx>: Sanity-check them.
24922 (avr_fold_builtin) <AVR_BUILTIN_BITSxx>: Fold to VIEW_COVERT_EXPR.
24923 <AVR_BUILTIN_xxBITS>: Same.
24924
661bc682
RB
249252013-02-08 Richard Biener <rguenther@suse.de>
24926
24927 * cfgloop.c (verify_loop_structure): Properly handle
24928 a loop exiting to another loop header.
24929 * ira-int.h (ira_loops): Remove.
24930 * ira.c (ira_loops): Remove.
24931 (ira): Use loop_optimizer_init and loop_optimizer_finalize.
24932 (do_reload): Use loop_optimizer_finalize.
24933 * ira-build.c (create_loop_tree_nodes): Use get_loops and
24934 number_of_loops to access the loop tree.
24935 (more_one_region_p): Likewise.
24936 (finish_loop_tree_nodes): Likewise.
24937 (rebuild_regno_allocno_maps): Likewise.
24938 (mark_loops_for_removal): Likewise.
24939 (mark_all_loops_for_removal): Likewise.
24940 (remove_unnecessary_regions): Likewise.
24941 (ira_build): Likewise.
24942 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
24943
0d5049b2
RB
249442013-02-08 Richard Biener <rguenther@suse.de>
24945
24946 * Makefile.in (tree-tailcall.o): Add $(CFGLOOP_H) dependency.
24947 * ipa-pure-const.c (analyze_function): Avoid calling
24948 mark_irreducible_loops twice.
8e10366f 24949 * tree-tailcall.c (tree_optimize_tail_calls_1): Mark loops for fixup.
0d5049b2 24950
499f32e8
DM
249512013-02-07 David S. Miller <davem@davemloft.net>
24952
24953 * dwarf2out.c (based_loc_descr): Perform leaf register remapping
24954 on 'reg'.
24955 * var-tracking.c (vt_add_function_parameter): Test the presence of
24956 HAVE_window_save properly and do not remap argument registers when
24957 we have a leaf function.
24958
6edc3e32
UB
249592013-02-07 Uros Bizjak <ubizjak@gmail.com>
24960
24961 PR bootstrap/56227
24962 * ggc-page.c (ggc_print_statistics): Use HOST_LONG_LONG_FORMAT
24963 instead of "ll".
24964 * config/i386/i386.c (ix86_print_operand): Ditto.
24965
5306401f
VM
249662013-02-07 Vladimir Makarov <vmakarov@redhat.com>
24967
6edc3e32 24968 * lra-constraints.c (process_alt_operands): Fix recently added comment.
5306401f 24969
027ece11
VM
249702013-02-07 Vladimir Makarov <vmakarov@redhat.com>
24971
24972 PR rtl-optimization/56225
24973 * lra-constraints.c (process_alt_operands): Check that reload hard
24974 reg can hold value for strict_low_part.
24975
f980dfdb
JJ
249762013-02-07 Jakub Jelinek <jakub@redhat.com>
24977
24978 PR debug/56154
24979 * dwarf2out.c (dwarf2_debug_hooks): Set end_function hook to
24980 dwarf2out_end_function.
24981 (in_first_function_p, maybe_at_text_label_p,
24982 first_loclabel_num_not_at_text_label): New variables.
24983 (dwarf2out_var_location): In the first function find out
6edc3e32 24984 lowest loclabel_num N where .LVLN is known not to be equal to .Ltext0.
f980dfdb
JJ
24985 (find_empty_loc_ranges_at_text_label, dwarf2out_end_function): New
24986 functions.
24987
73dd3123
EB
249882013-02-07 Eric Botcazou <ebotcazou@adacore.com>
24989
24990 PR rtl-optimization/56178
24991 * cse.c (cse_insn): Do not create a REG_EQUAL note if the source is a
24992 SUBREG of a register. Tidy up related block of code.
24993 * fwprop.c (forward_propagate_and_simplify): Do not create a REG_EQUAL
24994 note if the source is a register or a SUBREG of a register.
24995
e3936f47
JJ
249962013-02-07 Jakub Jelinek <jakub@redhat.com>
24997
24998 PR target/56228
24999 * config/rs6000/rs6000.md (ptrm): New mode attr.
25000 (call_indirect_aix<ptrsize>, call_indirect_aix<ptrsize>_nor11,
25001 call_value_indirect_aix<pttrsize>,
25002 call_value_indirect_aix<pttrsize>_nor11): Use <ptrm> instead of
25003 m in constraints.
25004
d96d674b
MH
250052013-02-07 Michael Haubenwallner <michael.haubenwallner@salomon.at>
25006
25007 * collect2.c (main): Set aix64_flag for -G and -bsvr4 too, disable
25008 if -bnortl. Convert to strcmp and strncmp.
25009
921f2dee
AM
250102013-02-07 Alan Modra <amodra@gmail.com>
25011
25012 PR target/54009
25013 * config/rs6000/rs6000.c (mem_operand_gpr): Check that LO_SUM
25014 addresses won't wrap when offsetting.
25015 (rs6000_secondary_reload): Provide secondary reloads needed for
25016 wrapping LO_SUM addresses.
25017
d09c7dba
TS
250182013-02-06 Thomas Schwinge <thomas@codesourcery.com>
25019
25020 * config/gnu.h (GNU_USER_TARGET_OS_CPP_BUILTINS): Never define
25021 MACH, just __MACH__.
25022
a44bbd48
RB
250232013-02-06 Richard Biener <rguenther@suse.de>
25024
25025 * tracer.c (tracer): Mark loops with LOOPS_NEED_FIXUP
25026 instead of calling fix_loop_structure.
25027
6d840d99
JJ
250282013-02-06 Jakub Jelinek <jakub@redhat.com>
25029
25030 PR middle-end/56217
25031 * omp-low.c (use_pointer_for_field): Return false if
25032 lower_send_shared_vars doesn't generate any copy-out code.
25033
0f33baa9
TV
250342013-02-06 Tom de Vries <tom@codesourcery.com>
25035
25036 PR rtl-optimization/56131
25037 * cfgrtl.c (delete_insn): Use NOTE_BASIC_BLOCK instead of BLOCK_FOR_INSN
25038 to get the bb of a NOTE_INSN_BASIC_BLOCK. Handle the case that the bb
25039 of the label is NULL. Add comment.
25040
11f1e3ab
JJ
250412013-02-05 Jakub Jelinek <jakub@redhat.com>
25042
31502f9f
JJ
25043 * tree.h (struct tree_decl_with_vis): Remove thread_local field.
25044
a74db9bd
JJ
25045 PR sanitizer/55374
25046 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Define.
25047 (STATIC_LIBTSAN_LIBS): Likewise.
25048 * gcc.c (ADD_STATIC_LIBTSAN_LIBS, LIBTSAN_EARLY_SPEC): Define.
25049 (LIBTSAN_SPEC): Add ADD_STATIC_LIBTSAN_LIBS, if LIBTSAN_EARLY_SPEC
25050 is defined, don't add anything else beyond that.
25051 (SANITIZER_EARLY_SPEC, SANITIZER_SPEC): Define.
25052 (LINK_COMMAND_SPEC): Use them.
25053
11f1e3ab
JJ
25054 PR tree-optimization/56205
25055 * tree-stdarg.c (check_all_va_list_escapes): Return true if
25056 there are any PHI nodes that set non-va_list_escape_vars SSA_NAME
25057 and some va_list_escape_vars SSA_NAME appears in some PHI argument.
25058
14ac6aa2
RB
250592013-02-05 Richard Biener <rguenther@suse.de>
25060
25061 PR tree-optimization/53342
25062 PR tree-optimization/53185
25063 * tree-vectorizer.h (vect_check_strided_load): Remove.
25064 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do
25065 not disallow peeling for vectorized strided loads.
25066 (vect_check_strided_load): Make static and simplify.
25067 (vect_analyze_data_refs): Adjust.
25068 * tree-vect-stmts.c (vectorizable_load): Handle peeled loops
25069 correctly when vectorizing strided loads.
25070
6f22445a
RB
250712013-02-05 Richard Biener <rguenther@suse.de>
25072
25073 * doc/install.texi: Refer to ISL, not PPL.
25074
39f9719e
JH
250752013-02-05 Jan Hubicka <jh@suse.cz>
25076
ec4224ac
JH
25077 PR tree-optimization/55789
25078 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): Drop to 1.
25079
250802013-02-05 Jan Hubicka <jh@suse.cz>
25081
25082 PR tree-optimization/55789
39f9719e
JH
25083 * cgraphclones.c (cgraph_remove_node_and_inline_clones): Remove
25084 the dead call anyway.
25085
956d3b33
EB
250862013-02-05 Eric Botcazou <ebotcazou@adacore.com>
25087
25088 PR sanitizer/55374
25089 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Add missing guard.
25090
250912013-02-04 Alexander Potapenko <glider@google.com>
25092 Jack Howarth <howarth@bromo.med.uc.edu>
ae526fe5
AP
25093 Jakub Jelinek <jakub@redhat.com>
25094
25095 PR sanitizer/55617
25096 * config/darwin.c (sort_ctor_records): Stabilized qsort
25097 on constructor priority by using original position.
25098 (finalize_ctors): New routine to sort constructors by
25099 priority before use in assemble_integer.
25100 (machopic_asm_out_constructor): Use finalize_ctors if needed.
25101
7ac3af38
JJ
251022013-02-04 Jakub Jelinek <jakub@redhat.com>
25103
25104 PR libstdc++/54314
25105 * config/i386/winnt.c (i386_pe_assemble_visibility): Don't warn
25106 about visibility on artificial decls.
25107 * config/sol2.c (solaris_assemble_visibility): Likewise.
25108
152689dc
KT
251092013-02-04 Kai Tietz <ktietz@redhat.com>
25110
25111 PR target/56186
25112 * config/i386/i386.c (function_value_ms_64): Add additional valtype
25113 argument and improve checking of return-argument types for 16-byte
25114 modes.
25115 (ix86_function_value_1): Add additional valtype argument on call
25116 of function_value_64.
25117 (return_in_memory_ms_64): Sync 16-byte sized mode handling with
25118 handling infunction_value_64 function.
25119
2b5987b5
MGD
251202013-02-04 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
25121
7ac3af38 25122 * reload.c (subst_reloads): Fix DEBUG_RELOAD build issue.
2b5987b5 25123
14597080
RB
251242013-02-04 Richard Biener <rguenther@suse.de>
25125
25126 PR tree-optimization/56188
25127 * tree-ssa-structalias.c (label_visit): Consider case with
25128 initially non-empty points-to set.
25129 (perform_var_substitution): Dump node mapping and clean up.
25130
ed73881e
RG
251312013-02-04 Richard Guenther <rguenther@suse.de>
25132
25133 PR lto/56168
25134 * lto-symtab.c (lto_symtab_merge_decls_1): Make non-builtin
25135 node prevail as last resort.
25136 (lto_symtab_merge_decls): Remove guard on LTRANS here.
6edc3e32 25137 (lto_symtab_prevailing_decl): Builtins are their own prevailing decl.
ed73881e 25138
139a0707
RB
251392013-02-04 Richard Biener <rguenther@suse.de>
25140
25141 PR tree-optimization/56113
25142 * tree-ssa-structalias.c (equiv_class_lookup, equiv_class_add):
25143 Merge into ...
25144 (equiv_class_lookup_or_add): ... this.
25145 (label_visit): Adjust and fix error in previous patch.
25146 (perform_var_substitution): Adjust.
25147
50fe8924
OE
251482013-02-03 Oleg Endo <olegendo@gcc.gnu.org>
25149
25150 * config/sh/divtab.c: Fix formatting and comments throughout the file.
25151 * config/sh/sh4-300.md: Likewise.
25152 * config/sh/sh4a.md: Likewise.
25153 * config/sh/constraints.md: Likewise.
25154 * config/sh/sh.md: Likewise.
25155 * config/sh/netbsd-elf.h: Likewise.
25156 * config/sh/predicates.md: Likewise.
25157 * config/sh/sh-protos.h: Likewise.
25158 * config/sh/ushmedia.h: Likewise.
25159 * config/sh/linux.h: Likewise.
25160 * config/sh/sh.c: Likewise.
25161 * config/sh/superh.h: Likewise.
25162 * config/sh/elf.h: Likewise.
25163 * config/sh/sh4.md: Likewise.
25164 * config/sh/sh.h: Likewise.
25165
1a04ac2b
JDA
251662013-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
25167
25168 * config/pa/constraints.md: Adjust unused letters. Change "T"
25169 constraint to match_test floating_point_store_memory_operand().
25170 * config/pa/predicates.md (reg_plus_base_memory_operand): New.
25171 (base14_operand): New.
25172 (floating_point_store_memory_operand): New.
25173 (integer_store_memory_operand): Revise to use base14_operand and
25174 reg_plus_base_memory_operand.
25175 (move_dest_operand): Allow symbolic_memory_operands.
25176 (symbolic_memory_operand): Check for LO_SOM.
25177 (symbolic_operand): Change default case to break.
25178 * config/pa/pa.md: Remove unamed DFmode and SFmode patterns to force
25179 CONST_DOUBLE values to be reloaded by putting them into memory when
25180 the destination is a floating point register.
25181 (movdf): Remove code to handle CONST_DOUBLE.
25182 (movsf): Likewise.
25183 (reload_indf_r1): New.
25184 (reload_insf_r1): New.
25185 Consistently use "Q" and "T" constraints with integer and floating
25186 point move instructions, respectively.
25187 (movdi): Remove FAIL.
25188 Change predicate for source operand unamed DImode move from
25189 general_operand to move_src_operand.
25190 (umulsidi3): Change predicate for destination operand to
25191 register_operand.
25192 Likewise for similar unamed patterns.
25193 * config/pa/pa-protos.h (pa_legitimize_reload_address): Declare.
25194 * config/pa/pa.c (pa_symbolic_expression_p): Remove extra parenthesis.
25195 (hppa_legitimize_address): Simplify mask calculation.
25196 (pa_emit_move_sequence): Revised handling of secondary reloads from
25197 REG+D addresses for floating point loads and stores. Directly handle
25198 loading CONST0_RTX (mode) to a floating point register.
25199 (pa_secondary_reload): Handle reloading DF and SFmode constant values
25200 to floating point registers. Don't restrict secondary reloads to
25201 floating point registers to integer modes. Revise some comments and
25202 cleanup some code.
25203 (TARGET_LEGITIMATE_ADDRESS_P): Define.
25204 (pa_legitimate_address_p): New.
25205 (pa_legitimize_reload_address): New.
25206 * config/pa/pa.h (STRICT_REG_OK_FOR_INDEX_P): New.
25207 (STRICT_REG_OK_FOR_BASE_P): New.
25208 (GO_IF_LEGITIMATE_ADDRESS): Delete. Update some related comments.
25209 (LEGITIMIZE_RELOAD_ADDRESS): Revise to use pa_legitimize_reload_address.
25210
3bf65591
DE
252112013-02-03 David Edelsohn <dje.gcc@gmail.com>
25212 Andrew Dixie <andrewd@gentrack.com>
25213
25214 * collect2.c (GCC_CHECK_HDR): Do not scan objects with F_LOADONLY
25215 flag set.
25216
c0a8a3e6
RS
252172013-02-03 Richard Sandiford <rdsandiford@googlemail.com>
25218
25219 * expmed.c (extract_bit_field_1): Pass the full width of the
25220 structure to get_best_reg_extraction_insn.
25221
99113dff
DE
252222013-02-01 David Edelsohn <dje.gcc@gmail.com>
25223
25224 PR target/54601
25225 * configure.ac (use_cxa_atexit): Add AIX.
25226 * configure: Regenerate.
25227
25228 * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtcxa.o.
25229
ddd84654
JJ
252302013-02-01 Jakub Jelinek <jakub@redhat.com>
25231
25232 PR debug/54793
25233 * final.c (need_profile_function): New variable.
25234 (final_start_function): Drop ATTRIBUTE_UNUSED from first argument.
25235 If first of NOTE_INSN_BASIC_BLOCK or NOTE_INSN_FUNCTION_BEG
25236 is only preceeded by NOTE_INSN_VAR_LOCATION or NOTE_INSN_DELETED
25237 notes, targetm.asm_out.function_prologue doesn't emit anything,
25238 HAVE_prologue and profiler should be emitted before prologue,
25239 set need_profile_function instead of emitting it.
25240 (final_scan_insn): If need_profile_function, emit
25241 profile_function on the first NOTE_INSN_BASIC_BLOCK or
25242 NOTE_INSN_FUNCTION_BEG note.
25243
252442013-02-01 Richard Henderson <rth@redhat.com>
749af8ee
RH
25245
25246 * config/rs6000/rs6000.md (smulditi3): New.
25247 (umulditi3): New.
25248
ff2a9d88
RH
25249 * config/alpha/alpha.md (umulditi3): New.
25250
14d52b90
DE
252512013-02-01 David Edelsohn <dje.gcc@gmail.com>
25252
25253 * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_COMMON): Use floor_log2.
25254 (ASM_OUTPUT_ALIGNED_LOCAL): New.
25255
8c7ca45c
RB
252562013-02-01 Richard Biener <rguenther@suse.de>
25257
25258 PR tree-optimization/56113
25259 * tree-ssa-structalias.c (label_visit): Reduce work for
25260 single-predecessor nodes.
25261
9f419393
EB
252622013-02-01 Eric Botcazou <ebotcazou@adacore.com>
25263
25264 * fold-const.c (make_range_step) <TRUTH_NOT_EXPR>: Bail out if the
25265 range isn't testing for zero.
25266
c5f4be84
SB
252672013-01-31 Steven Bosscher <steven@gcc.gnu.org>
25268
25269 PR middle-end/56113
25270 * fwprop.c (fwprop_init): Set up loops without CFG modifications.
25271
dbdbd982
NC
252722013-01-31 Hiroyuki Ono <hiroyuki.ono.jc@renesas.com>
25273 Nick Clifton <nickc@redhat.com>
25274
25275 * config/v850/constraints.md (Q): Define as a memory constraint.
25276 * config/v850/predicates.md (label_ref_operand): New predicate.
25277 (e3v5_shift_operand): New predicate.
25278 (ior_operator): New predicate.
25279 * config/v850/t-v850: Add e3v5 multilib.
25280 * config/v850/v850-protos.h (v850_adjust_insn_length): Prototype.
25281 (v850_gen_movdi): Prototype.
25282 * config/v850/v850.c: Add support for e3v5 architecture.
25283 Rename all uses of TARGET_V850E || TARGET_V850E2_ALL to
25284 TARGET_V850E_UP.
25285 (construct_save_jarl): Add e3v5 long JARL support.
25286 (v850_adjust_insn_length): New function. Adjust length of call
25287 insns when using e3v5 instructions.
25288 (v850_gen_movdi): New function: Generate instructions to move a
25289 DImode value.
25290 * config/v850/v850.h (TARGET_CPU_v850e3v5): Define.
25291 (CPP_SPEC): Define __v850e3v5__ as appropriate.
25292 (TARGET_USE_FPU): Enable for e3v5.
25293 (CONST_OK_FOR_W): New macro.
25294 (ADJUST_INSN_LENGTH): Define.
25295 * config/v850/v850.md (UNSPEC_LOOP): Define.
25296 (attr cpu): Add v850e3v5.
25297 Rename all uses of TARGET_V850E2 to TARGET_V850E2V3_UP.
25298 (movdi): New pattern.
25299 (movdi_internal): New pattern.
25300 (cbranchsf4): Conditionalize on TARGET_USE_FPU.
25301 (cbranchdf4): Conditionalize on TARGET_USE_FPU.
25302 (cstoresf4): Likewise.
25303 (cstoredf4): Likewise.
25304 (insv): New pattern.
25305 (rotlso3_a): New pattern.
25306 (rotlsi3_b): New pattern
25307 (rotlsi3_v850e3v5): New pattern.
25308 (doloop_begin): New pattern.
25309 (fix_loop_counter): New pattern.
25310 (doloop_end): New pattern.
25311 (branch_normal): Add e3v5 long branch support.
25312 (branch_invert): Likewise.
25313 (branch_z_normal): Likewise.
25314 (branch_z_invert): Likewise.
25315 (branch_nz_normal): Likewise.
25316 (branch_nz_invert): Likewise.
25317 (call_internal_short): Add e3v5 register-indirect JARL support.
25318 (call_internal_long): Likewise.
25319 (call_value_internal_short): Likewise.
25320 (call_value_internal_long): Likewise.
25321 * config/v850/v850.opt (mv850e3v5, mv850e2v4): New options.
25322 (mloop): New option.
25323 * config.gcc: Add support for configuring v840e3v5 target.
6edc3e32 25324 * doc/invoke.texi: Document new v850 specific command line options.
dbdbd982 25325
73861a41
PK
253262013-01-31 Paul Koning <ni1d@arrl.net>
25327
25328 PR debug/55059
25329 PR debug/54508
25330 * dwarf2out.c (prune_unused_types_mark): Mark all of parent's
25331 children if parent is a class.
25332 (prune_unused_types_prune): Don't add DW_AT_declaration.
25333
e44978dc
RB
253342013-01-31 Richard Biener <rguenther@suse.de>
25335
25336 PR tree-optimization/56157
25337 * tree-vect-slp.c (vect_get_slp_defs): More thoroughly try to
25338 match up operand with SLP child.
25339
90b10dec
JM
253402013-01-31 Jason Merrill <jason@redhat.com>
25341
04d2dadd 25342 PR debug/54410
90b10dec
JM
25343 * dwarf2out.c (gen_struct_or_union_type_die): Always schedule template
25344 parameters the first time.
25345 (gen_scheduled_generic_parms_dies): Check completeness here.
25346
6e616110
RB
253472013-01-31 Richard Biener <rguenther@suse.de>
25348
25349 PR middle-end/53073
25350 * common.opt (faggressive-loop-optimizations): New flag,
25351 enabled by default.
25352 * doc/invoke.texi (faggressive-loop-optimizations): Document.
25353 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Guard
25354 infer_loop_bounds_from_undefined by it.
25355
636f59cf
RB
253562013-01-31 Richard Biener <rguenther@suse.de>
25357
25358 PR tree-optimization/56150
25359 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Do not
25360 visit virtual operands.
25361 (find_uses_to_rename_bb): Likewise.
25362
253632013-01-31 Richard Biener <rguenther@suse.de>
fcfa87ac
RB
25364
25365 PR tree-optimization/56150
25366 * tree-ssa-tail-merge.c (gimple_equal_p): Properly handle
25367 mixed store non-store stmts.
25368
32887460
JJ
253692013-01-30 Jakub Jelinek <jakub@redhat.com>
25370
e60e09a0
JJ
25371 PR sanitizer/55374
25372 * gcc.c (LIBASAN_SPEC): Define just to ADD_STATIC_LIBASAN_LIBS if
25373 LIBASAN_EARLY_SPEC is defined.
25374 (LIBASAN_EARLY_SPEC): Define to empty string if not already defined.
25375 (LINK_COMMAND_SPEC): Add LIBASAN_EARLY_SPEC for -fsanitize=address,
25376 before %o.
25377 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Define.
25378
32887460
JJ
25379 PR c++/55742
25380 * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Diagnose
25381 invalid args instead of ICEing on it.
25382 (ix86_valid_target_attribute_tree): Return error_mark_node if
25383 ix86_valid_target_attribute_inner_p failed.
25384 (ix86_valid_target_attribute_p): Return false only if
25385 ix86_valid_target_attribute_tree returned error_mark_node. Allow
25386 target("default") attribute.
25387 (sorted_attr_string): Change argument from const char * to tree,
25388 merge in all target attribute arguments rather than just one.
25389 Formatting fix. Use XNEWVEC instead of xmalloc and XDELETEVEC
25390 instead of free. Avoid using strcat.
25391 (ix86_mangle_function_version_assembler_name): Mangle
25392 target("default") as if no target attribute is present. Adjust
25393 sorted_attr_string caller. Avoid leaking memory. Use XNEWVEC
25394 instead of xmalloc and XDELETEVEC instead of free.
25395 (ix86_function_versions): Don't return true if one of the decls
25396 doesn't have target attribute. If they don't and one of the decls
25397 is DECL_FUNCTION_VERSIONED, report an error. Adjust
25398 sorted_attr_string caller. Use XDELETEVEC instead of free.
25399 (ix86_supports_function_versions): Remove.
25400 (make_name): Fix up formatting.
25401 (make_dispatcher_decl): Remove resolver_name and its initialization.
25402 Avoid leaking memory.
25403 (is_function_default_version): Return true if there is
25404 target("default") attribute rather than no target attribute at all.
25405 (make_resolver_func): Avoid leaking memory.
25406 (ix86_generate_version_dispatcher_body): Likewise.
25407 (TARGET_OPTION_SUPPORTS_FUNCTION_VERSIONS): Remove.
25408 * target.def (supports_function_versions): Remove.
25409 * doc/tm.texi.in (SUPPORTS_FUNCTION_VERSIONS): Remove.
25410 * doc/tm.texi: Regenerated.
25411
73cca0cc
VM
254122013-01-30 Vladimir Makarov <vmakarov@redhat.com>
25413
25414 PR rtl-optimization/56144
25415 * lra-constraints.c (get_reload_reg): Don't reuse reload pseudo
25416 for values with side effects.
25417
11452e7b
RB
254182013-01-30 Richard Biener <rguenther@suse.de>
25419
25420 * sparseset.h (sparseset_bit_p): Use gcc_checking_assert.
25421 (sparseset_pop): Likewise.
25422 * cfganal.c (compute_idf): Likewise. Increase work-stack size
25423 to be able to use quick_push in the worker loop.
25424
01cb1ef5
MP
254252013-01-30 Marek Polacek <polacek@redhat.com>
25426
25427 * cfgcleanup.c (cleanup_cfg): Don't mark affected BBs.
25428
e892936e
RB
254292013-01-30 Richard Biener <rguenther@suse.de>
25430
25431 PR lto/56147
6edc3e32 25432 * lto-symtab.c (lto_symtab_merge_decls_1): Guard DECL_BUILT_IN check.
e892936e 25433
cc06c01d
GJL
254342013-01-30 Georg-Johann Lay <avr@gjlay.de>
25435
25436 PR tree-optimization/56064
25437 * fixed-value.c (fixed_from_double_int): New function.
25438 * fixed-value.h (fixed_from_double_int): New prototype.
25439 (const_fixed_from_double_int): New static inline function.
25440 * fold-const.c (native_interpret_fixed): New static function.
25441 (native_interpret_expr) <FIXED_POINT_TYPE>: Use it.
25442 (can_native_interpret_type_p) <FIXED_POINT_TYPE>: Return true.
25443 (native_encode_fixed): New static function.
25444 (native_encode_expr) <FIXED_CST>: Use it.
25445 (native_interpret_int): Move double_int worker code to...
25446 * double-int.c (double_int::from_buffer): ...this new static method.
25447 * double-int.h (double_int::from_buffer): Prototype it.
25448
d394a308
RB
254492013-01-30 Richard Biener <rguenther@suse.de>
25450
25451 * tree-ssa-structalias.c (final_solutions, final_solutions_obstack):
25452 New pointer-map and obstack.
25453 (init_alias_vars): Allocate pointer-map and obstack.
25454 (delete_points_to_sets): Free them.
25455 (find_what_var_points_to): Cache result.
25456 (find_what_p_points_to): Adjust for changed interface of
25457 find_what_var_points_to.
25458 (compute_points_to_sets): Likewise.
25459 (ipa_pta_execute): Likewise.
25460
20804d96
RO
254612013-01-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25462
25463 * configure.ac (HAVE_AS_SPARC_NOBITS): New test.
25464 * configure: Regenerate.
25465 * config.in: Regenerate.
25466 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Emit
25467 #nobits/#progbits if supported.
25468
a7ad88a2
OE
254692013-01-29 Oleg Endo <olegendo@gcc.gnu.org>
25470
25471 PR target/56121
25472 * config/sh/sh.md (bclr_m2a, bset_m2a, bst_m2a, bld_m2a, bldsign_m2a,
25473 bld_reg, *bld_regqi, band_m2a, bandreg_m2a, bor_m2a, borreg_m2a,
25474 bxor_m2a, bxorreg_m2a): Add satisfies_constraint_K03 condition.
25475
7af79f92
GY
254762013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
25477
91bfca59
OE
25478 * config/arm/cortex-a7.md (cortex_a7_neon, cortex_a7_all): Remove.
25479 (cortex_a7_idiv): Use cortex_a7_both instead of cortex_a7_all.
7af79f92 25480
753bcf7b
GY
254812013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
25482
91bfca59
OE
25483 * config/arm/arm.c (cortexa7_younger): Return true for TYPE_CALL.
25484 * config/arm/cortex-a7.md (cortex_a7_call): Update required units.
753bcf7b 25485
8cbc2ea8
GY
254862013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
25487
91bfca59
OE
25488 * config/arm/arm-protos.h (arm_mac_accumulator_is_result): New
25489 declaration.
25490 * config/arm/arm.c (arm_mac_accumulator_is_result): New function.
25491 * config/arm/cortex-a7.md: New bypasses using
25492 arm_mac_accumulator_is_result.
8cbc2ea8 25493
697a3325
GY
254942013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
25495
91bfca59 25496 * config/arm/cortex-a7.md (cortex_a7_neon_mul): New reservation.
697a3325 25497 (cortex_a7_neon_mla): Likewise.
91bfca59
OE
25498 (cortex_a7_fpfmad): New reservation.
25499 (cortex_a7_fpmacs): Use ffmas and update required units.
25500 (cortex_a7_fpmuld): Update required units and latency.
25501 (cortex_a7_fpmacd): Likewise.
25502 (cortex_a7_fdivs, cortex_a7_fdivd): Likewise.
25503 (cortex_a7_neon). Likewise.
25504 (bypass) Update participating units.
697a3325 25505
29637783
GY
255062013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
25507
91bfca59
OE
25508 * config/arm/arm.md (type): Add ffmas and ffmad to "type" attribute.
25509 * config/arm/vfp.md (fma,fmsub,fnmsub,fnmadd): Change type
25510 from fmac to ffma.
25511 * config/arm/vfp11.md (vfp_farith): Use ffmas.
25512 (vfp_fmul): Use ffmad.
25513 * config/arm/cortex-r4f.md (cortex_r4_fmacs): Use ffmas.
25514 (cortex_r4_fmacd): Use ffmad.
25515 * config/arm/cortex-m4-fpu.md (cortex_m4_fmacs): Use ffmas.
25516 * config/arm/cortex-a9.md (cortex_a9_fmacs): Use ffmas.
25517 (cortex_a9_fmacd): Use ffmad.
25518 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_macs): Use ffmas.
25519 (cortex_a8_vfp_macd): Use ffmad.
25520 * config/arm/cortex-a5.md (cortex_a5_fpmacs): Use ffmas.
25521 (cortex_a5_fpmacd): Use ffmad.
25522 * config/arm/cortex-a15-neon.md (cortex_a15_vfp_macs) Use ffmas.
25523 (cortex_a15_vfp_macd): Use ffmad.
25524 * config/arm/arm1020e.md (v10_fmul): Use ffmas and ffmad.
29637783 25525
2ee8a2d5
JM
255262013-01-29 Jason Merrill <jason@redhat.com>
25527
25528 PR libstdc++/54314
25529 * varasm.c (default_assemble_visibility): Don't warn about
25530 visibility on artificial decls.
25531
78d087bc
RB
255322013-01-29 Richard Biener <rguenther@suse.de>
25533
25534 PR tree-optimization/56113
25535 * tree-ssa-structalias.c (equiv_class_lookup): Also return
25536 the bitmap leader.
25537 (label_visit): Free duplicate bitmaps and record the leader instead.
25538 (perform_var_substitution): Adjust.
25539
83ba4d6f
RB
255402013-01-29 Richard Biener <rguenther@suse.de>
25541
25542 PR tree-optimization/55270
25543 * tree-ssa-dom.c (eliminate_degenerate_phis): If we changed
25544 the CFG, schedule loops for fixup.
25545
66dfe13f
NC
255462013-01-29 Nick Clifton <nickc@redhat.com>
25547
25548 * config/rl78/rl78.c (rl78_regno_mode_code_ok_for_base_p): Allow
25549 SP_REG.
25550
5a579c3b
LE
255512013-01-28 Leif Ekblad <leif@rdos.net>
25552
25553 * config.gcc (i[34567]86-*-rdos*, x86_64-*-rdos*): New targets.
25554 * config/i386/i386.h (TARGET_RDOS): New macro.
25555 (DEFAULT_LARGE_SECTION_THRESHOLD): New macro.
25556 * config/i386/i386.c (ix86_option_override_internal): For 64bit
25557 TARGET_RDOS, set ix86_cmodel to CM_MEDIUM_PIC and flag_pic to 1.
25558 * config/i386/i386.opt (mlarge-data-threshold): Initialize to
25559 DEFAULT_LARGE_SECTION_THRESHOLD.
25560 * config/i386/i386.md (R14_REG, R15_REG): New constants.
25561 * config/i386/rdos.h: New file.
25562 * config/i386/rdos64.h: New file.
25563
51e44392
BS
255642013-01-28 Bernd Schmidt <bernds@codesourcery.com>
25565
25566 PR other/54814
25567 * reload.c (find_valid_class_1): Use in_hard_reg_set_p instead of
25568 TEST_HARD_REG_BIT.
25569
db1fb332
JJ
255702013-01-28 Jakub Jelinek <jakub@redhat.com>
25571
25572 PR rtl-optimization/56117
25573 * sched-deps.c (sched_analyze_2) <case PREFETCH>: For use_cselib
25574 call cselib_lookup_from_insn on the MEM before calling
25575 add_insn_mem_dependence.
25576
16917761
RB
255772013-01-28 Richard Biener <rguenther@suse.de>
25578
25579 * tree-inline.c (remap_gimple_stmt): Do not assing a BLOCK
25580 to a stmt that didn't have one.
25581 (copy_phis_for_bb): Likewise for PHI arguments.
25582 (copy_debug_stmt): Likewise for debug stmts.
25583
b9fc0497
RB
255842013-01-28 Richard Biener <rguenther@suse.de>
25585
25586 PR tree-optimization/56034
6edc3e32 25587 * tree-loop-distribution.c (enum partition_kind): Add PKIND_REDUCTION.
b9fc0497
RB
25588 (partition_builtin_p): Adjust.
25589 (generate_code_for_partition): Handle PKIND_REDUCTION. Assert
25590 it is the last partition.
25591 (rdg_flag_uses): Check SSA_NAME_IS_DEFAULT_DEF before looking
25592 up the vertex for the definition.
25593 (classify_partition): Classify whether a partition is a
25594 PKIND_REDUCTION, thus has uses outside of the loop.
25595 (ldist_gen): Inherit PKIND_REDUCTION when merging partitions.
25596 Merge all PKIND_REDUCTION partitions into the last partition.
25597 (tree_loop_distribution): Seed partitions from reductions as well.
25598
aa710d25
JJ
255992013-01-28 Jakub Jelinek <jakub@redhat.com>
25600
0bfbca58
JJ
25601 PR tree-optimization/56125
25602 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Don't optimize
25603 pow(x,c) into sqrt(x) * powi(x, n/2) or
25604 1.0 / (sqrt(x) * powi(x, abs(n/2))) if c is an integer or when
25605 optimizing for size.
25606 Don't optimize pow(x,c) into powi(x, n/3) * powi(cbrt(x), n%3) or
25607 1.0 / (powi(x, abs(n)/3) * powi(cbrt(x), abs(n)%3)) if 2c is an
25608 integer.
25609
aa710d25
JJ
25610 PR tree-optimization/56094
25611 * gimplify.c (force_gimple_operand_1): Temporarily set input_location
25612 to UNKNOWN_LOCATION while gimplifying expr.
25613
77dc5297
UB
256142013-01-27 Uros Bizjak <ubizjak@gmail.com>
25615
25616 PR target/56114
25617 * config/i386/i386.md (*movabs<mode>_1): Add square brackets around
25618 operand 0 in movabs insn template for -masm=intel asm alternative.
25619 (*movabs<mode>_2): Ditto for operand 1.
25620
0bfbca58 256212013-01-26 David Holsgrove <david.holsgrove@xilinx.com>
fbf0cf90
DH
25622
25623 PR target/54663
25624 * config.gcc (microblaze*-linux*): Add tmake_file to allow building
25625 of microblaze-c.o
25626
0bfbca58 256272013-01-26 Edgar E. Iglesias <edgar.iglesias@gmail.com>
6f14eef2
EI
25628
25629 * config.gcc (microblaze*-*-*): Rename microblaze*-*-elf, update
25630 tm_file.
25631
0bfbca58 256322013-01-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
706b2314
N
25633
25634 * config/aarch64/aarch64.c (TARGET_FIXED_CONDITION_CODE_REGS):
25635 Undef to avoid warning.
25636
478f60f9
MH
256372013-01-25 Michael Haubenwallner <michael.haubenwallner@salomon.at>
25638
25639 * configure.ac (gcc_cv_ld_static_dynamic): Define for AIX native ld.
25640 * configure: Regenerate.
25641
d7fa6ee2
JJ
256422013-01-25 Jakub Jelinek <jakub@redhat.com>
25643
25644 PR tree-optimization/56098
25645 * tree-ssa-phiopt.c (nt_init_block): Don't call add_or_mark_expr
25646 for stmts with volatile ops.
25647 (cond_store_replacement): Don't optimize if assign has volatile ops.
25648 (cond_if_else_store_replacement_1): Don't optimize if either
25649 then_assign or else_assign have volatile ops.
25650 (hoist_adjacent_loads): Don't optimize if either def1 or def2 have
25651 volatile ops.
25652
f8fe87bd
GJL
256532013-01-25 Georg-Johann Lay <avr@gjlay.de>
25654
25655 * doc/invoke.texi (AVR Built-in Macros): Document __XMEGA__.
25656
28398d0d
GJL
256572013-01-25 Georg-Johann Lay <avr@gjlay.de>
25658
25659 * doc/extend.texi (Example of asm with clobbered asm reg): Fix
25660 missing ':' in asm example.
25661
b7d7d917
TB
256622013-01-25 Tejas Belagod <tejas.belagod@arm.com>
25663
25664 * config/aarch64/aarch64-simd-builtins.def: Separate sq<r>dmulh_lane
25665 entries into lane and laneq entries.
77dc5297
UB
25666 * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_lane<mode>):
25667 Remove AdvSIMD scalar modes.
b7d7d917
TB
25668 (aarch64_sq<r>dmulh_laneq<mode>): New.
25669 (aarch64_sq<r>dmulh_lane<mode>): New RTL pattern for Scalar AdvSIMD
25670 modes.
25671 * config/aarch64/arm_neon.h: Fix all the vq<r>dmulh_lane* intrinsics'
25672 builtin implementations to relfect changes in RTL in aarch64-simd.md.
25673 * config/aarch64/iterators.md (VCOND): New.
25674 (VCONQ): New.
25675
556f9906
GJL
256762013-01-25 Georg-Johann Lay <avr@gjlay.de>
25677
25678 PR target/54222
25679 * config/avr/builtins.def (DEF_BUILTIN): Add LIBNAME argument.
25680 Add NULL LIBNAME argument to existing definitions.
25681 (ABSHR, ABSR, ABSLR, ABSLLR, ABSHK, ABSK, ABSLK, ABSLLK): New.
25682 * config/avr/avr-c.c (DEF_BUILTIN): Add LIBNAME argument.
25683 * config/avr/avr.c (DEF_BUILTIN): Same.
25684 (avr_init_builtins): Pass down LIBNAME to add_builtin_function.
25685 (avr_expand_builtin): Expand to a vanilla call if a libgcc
25686 implementation is available (DECL_ASSEMBLER_NAME is set).
25687 (avr_fold_absfx): New static function.
25688 (avr_fold_builtin): Use it to handle: AVR_BUILTIN_ABSHR,
25689 AVR_BUILTIN_ABSR, AVR_BUILTIN_ABSLR, AVR_BUILTIN_ABSLLR,
25690 AVR_BUILTIN_ABSHK, AVR_BUILTIN_ABSK, AVR_BUILTIN_ABSLK,
25691 AVR_BUILTIN_ABSLLK.
25692 * config/avr/stdfix.h (abshr, absr, abslr, absllr)
25693 (abshk, absk, abslk, absllk): Provide as static inline functions.
25694
1f546bbb
MP
256952013-01-25 Marek Polacek <polacek@redhat.com>
25696
25697 PR tree-optimization/56035
25698 * cfgloopmanip.c (fix_loop_structure): Remove redundant condition.
25699
7e184bd7
UB
257002012-01-24 Uros Bizjak <ubizjak@gmail.com>
25701
25702 * config/i386/i386.md (*movti_internal_rex64): Add (o,e) alternative.
25703 (*movtf_internal_rex64): Add (!o,C) alternative
25704 (*movxf_internal_rex64): Ditto.
25705 (*movdf_internal_rex64): Add (?r,C) and (?m,C) alternatives.
25706
f5ba49ac
SM
257072013-01-24 Shenghou Ma <minux.ma@gmail.com>
25708
25709 * doc/invoke.texi: fix typo.
25710 * doc/objc.texi: fix typo.
25711
a6343728
RS
257122013-01-24 Richard Sandiford <rdsandiford@googlemail.com>
25713
25714 * config/mips/mips.md (*and<mode>3_mips16): Use the "W" constraint
25715 for the first two alternatives.
25716
cd030c07
DN
257172013-01-24 Diego Novillo <dnovillo@google.com>
25718
77dc5297 25719 * Makefile.in (GGC): Remove. Replace all instances with ggc-page.o.
cd030c07
DN
25720 (ggc-zone.o): Remove.
25721 * configure.ac: Remove option --with-gc.
25722 * configure: Re-generate.
25723 * doc/install.texi: Remove documentation for --with-gc.
25724 * gengtype.c (write_enum_defn): Remove. Update all users.
25725 (write_Types_process_field): Remove generation of gt_e_* argument.
25726 (output_type_enum): Remove. Update all users.
25727 (write_enum_defn): Remove. Update all users.
25728 (enum alloc_zone): Remove. Update all users.
77dc5297 25729 (write_splay_tree_allocator_def): Remove generation of gt_e_* argument.
cd030c07
DN
25730 * ggc-common.c (ggc_splay_alloc): Remove first argument.
25731 Update all callers.
25732 (struct ptr_data): Remove field TYPE. Update all users.
77dc5297 25733 (gt_pch_note_object): Remove argument TYPE. Update all users.
cd030c07
DN
25734 * ggc-internal.h (ggc_pch_alloc_object): Remove last argument.
25735 Update all users.
aaf1e810 25736 * ggc-none.c (ggc_alloc_typed_stat): Remove.
cd030c07
DN
25737 (struct alloc_zone): Remove.
25738 (ggc_internal_alloc_zone_stat): Remove.
25739 (ggc_internal_cleared_alloc_zone_stat): Remove.
25740 * ggc-page.c (ggc_alloc_typed_stat): Remove.
77dc5297
UB
25741 (ggc_pch_count_object): Remove last argument. Update all users.
25742 (ggc_pch_alloc_object): Remove last argument. Update all users.
cd030c07
DN
25743 (struct alloc_zone): Remove.
25744 * ggc-zone.c: Remove.
77dc5297 25745 * ggc.h (gt_pch_note_object): Remove last argument. Update all users.
cd030c07
DN
25746 (struct alloc_zone): Remove.
25747 (ggc_alloc_typed_stat): Remove.
25748 (ggc_alloc_typed): Remove.
25749 (ggc_splay_alloc): Remove first argument.
25750 (rtl_zone): Remove. Update all users.
25751 (tree_zone): Remove. Update all users.
25752 (tree_id_zone): Remove. Update all users.
25753 (ggc_internal_zone_alloc_stat): Remove. Update all users.
77dc5297 25754 (ggc_internal_zone_cleared_alloc_stat): Remove. Update all users.
cd030c07 25755 (ggc_internal_zone_vec_alloc_stat): Remove. Update all users.
77dc5297 25756 * tree-ssanames.c: Remove references to zone allocator in comments.
cd030c07 25757
a861ffa4
GJL
257582013-01-24 Georg-Johann Lay <avr@gjlay.de>
25759
25760 * config/avr/avr.c (avr_out_fract): Make register numbers that
25761 might be outside of source operand signed.
25762
593c0ddd
UB
257632013-01-24 Uros Bizjak <ubizjak@gmail.com>
25764
25765 * config/i386/constraints.md (Yf): New constraint.
25766 * config/i386/i386.md (*movdf_internal_rex64): Use Yf*f instead
25767 of f constraint to conditionaly disable x87 register preferences.
25768 (*movdf_internal): Ditto.
25769 (*movsf_internal): Ditto.
25770
e86c0101
SB
257712013-01-24 Steven Bosscher <steven@gcc.gnu.org>
25772
25773 PR inline-asm/55934
25774 * lra-assigns.c (assign_by_spills): Throw away the pattern of asms
25775 that have operands with impossible constraints.
25776 Add a FIXME for a speed-up opportunity.
25777 * lra-constraints.c (process_alt_operands): Verify that a class
25778 selected from constraints on asms is valid for the operand mode.
25779 (curr_insn_transform): Remove incorrect comment.
25780
f6fee35f
DE
257812013-01-23 David Edelsohn <dje.gcc@gmail.com>
25782
25783 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Check that
25784 TOC operand is a valid symbol ref in the constant pool.
25785
257862013-01-23 Edgar E. Iglesias <edgar.iglesias@gmail.com>
c7729184 25787
aaf1e810 25788 * config/microblaze/linux.h: Add TARGET_OS_CPP_BUILTINS
c7729184 25789
dc62d7d1
GJL
257902013-01-23 Georg-Johann Lay <avr@gjlay.de>
25791
25792 PR target/54222
25793 * config/avr/stdfix.h: New file.
25794 * t-avr (stdfix-gcc.h): New rule to build it.
25795 (EXTRA_HEADERS): Set it to install stdfix.h, stdfix-gcc.h.
25796
2660d12d
KS
257972013-01-23 Kostya Serebryany <kcc@google.com>
25798
77dc5297
UB
25799 * config/darwin.h: remove dependency on
25800 CoreFoundation (asan on Mac OS).
2660d12d 25801
a70418fc
JJ
258022013-01-23 Jakub Jelinek <jakub@redhat.com>
25803
25804 PR target/49069
25805 * config/arm/arm.md (cbranchdi4, cstoredi4): Use s_register_operand
25806 instead of cmpdi_operand for first comparison operand.
25807 Don't assert that comparison operands aren't both constants.
25808
47876a2a
JW
258092013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
25810
25811 * doc/install.texi (Downloading the Source): Update references to
25812 downloading separate components.
25813
258142013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
4ebd56a5
JW
25815
25816 * doc/extend.texi (__int128): Improve grammar.
25817
47876a2a 258182013-01-22 Uros Bizjak <ubizjak@gmail.com>
32fc5b8a
UB
25819
25820 PR target/56028
25821 * config/i386/i386.md (*movti_internal_rex64): Change (o,riF)
25822 alternative to (o,r).
25823 (*movdi_internal_rex64): Remove (!o,n) alternative.
25824 (DImode immediate->memory splitter): Remove.
25825 (DImode immediate->memory peephole2): Remove.
25826 (movtf): Enable for TARGET_64BIT || TARGET_SSE.
25827 (*movtf_internal_rex64): Rename from *movtf_internal. Change (!o,F*r)
25828 alternative to (!o,*r).
25829 (*movtf_internal_sse): New pattern.
25830 (*movxf_internal_rex64): New pattern.
25831 (*movxf_internal): Disable for TARGET_64BIT.
25832 (*movdf_internal_rex64): Remove (!o,F) alternative.
25833
3a984f10
JJ
258342013-01-22 Jakub Jelinek <jakub@redhat.com>
25835
502498d5
JJ
25836 PR middle-end/56074
25837 * dumpfile.c (dump_loc): Only print loc if LOCATION_LOCUS (loc)
25838 isn't UNKNOWN_LOCATION nor BUILTINS_LOCATION.
25839 * tree-vect-loop-manip.c (find_loop_location): Also ignore
25840 stmt locations where LOCATION_LOCUS of the stmt location is
25841 UNKNOWN_LOCATION or BUILTINS_LOCATION.
25842
3a984f10
JJ
25843 PR target/55686
25844 * config/i386/i386.md (UNSPEC_STOS): New.
25845 (strset_singleop, *strsetdi_rex_1, *strsetsi_1, *strsethi_1,
25846 *strsetqi_1): Add UNSPEC_STOS.
25847
fa817f7f
PC
258482013-01-22 Paolo Carlini <paolo.carlini@oracle.com>
25849
25850 PR c++/56067
25851 * doc/invoke.texi: Remove left over -Wsynth example.
25852
8f498c1b
JJ
258532013-01-21 Jakub Jelinek <jakub@redhat.com>
25854
25855 PR tree-optimization/56051
25856 * fold-const.c (fold_binary_loc): Don't fold
25857 X < (cast) (1 << Y) into (X >> Y) != 0 if cast is either
25858 a narrowing conversion, or widening conversion from signed
25859 to unsigned.
25860
47876a2a 258612013-01-21 Uros Bizjak <ubizjak@gmail.com>
35d59da7
UB
25862
25863 PR rtl-optimization/56023
25864 * haifa-sched.c (fix_inter_tick): Do not update ticks of instructions,
25865 dependent on debug instruction.
25866
5b9db1bc
MJ
258672013-01-21 Martin Jambor <mjambor@suse.cz>
25868
25869 PR middle-end/56022
25870 * function.c (allocate_struct_function): Call
25871 invoke_set_current_function_hook earlier.
25872
e8bb7d68
JJ
258732013-01-21 Jakub Jelinek <jakub@redhat.com>
25874
25875 * reload1.c (init_reload): Only initialize reload_obstack
25876 during the first call.
25877
616a4e32
MP
258782013-01-21 Marek Polacek <polacek@redhat.com>
25879
25880 * cfgloop.c (verify_loop_structure): Fix up grammar.
25881
4401981b
YHH
258822013-01-21 Yi-Hsiu Hsu <ahsu@marvell.com>
25883
25884 * config/arm/marvell-pj4.md (pj4_shift_conds, pj4_alu_shift,
25885 pj4_alu_shift_conds, pj4_shift): Handle simple_alu_shift.
25886
8e87740b
RR
258872013-01-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
25888
25889 PR target/56058
25890 * config/arm/marvell-pj4.md: Update copyright year.
25891 Fix up use of alu to alu_reg and simple_alu_imm.
25892
47876a2a 258932013-01-21 Uros Bizjak <ubizjak@gmail.com>
1f6bc337
UB
25894
25895 * config/i386/i386.md (enabled): Do not disable fma4 for TARGET_FMA.
25896
89d56d79
VM
258972013-01-20 Vladimir Makarov <vmakarov@redhat.com>
25898
25899 PR target/55433
25900 * lra-constraints.c (curr_insn_transform): Don't reuse original
1f6bc337 25901 insn for secondary memory move when memory mode should be different.
89d56d79 25902
fe603553
JDA
259032013-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
25904
25905 * config/pa/pa.md (atomic_loaddi, atomic_loaddi_1, atomic_storedi,
25906 atomic_storedi_1): New patterns.
25907
01284895
VK
259082013-01-20 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
25909
25910 btver2 pipeline descriptions.
25911 * config/i386/i386.c: Enable CPU_BTVER2 to use btver2 pipeline
25912 descriptions.
25913 * config/i386/i386.md (btver2_decode): New type attributes.
1f6bc337 25914 * config/i386/sse.md (btver2_decode, btver2_sse_attr): New
01284895
VK
25915 type attributes.
25916 * config/i386/btver2.md: New file describing btver2 pipelines.
25917
5630e3e1
JL
259182013-01-19 Andrew Pinski <apinski@cavium.com>
25919
25920 PR tree-optimization/52631
25921 * tree-ssa-sccvn (visit_use): Before looking up the original
25922 statement, try looking up the simplified expression.
25923
650ae806
AG
259242013-01-19 Anthony Green <green@moxielogic.com>
25925
25926 * config/moxie/moxie.c (moxie_expand_prologue): Set
25927 current_function_static_stack_size.
25928
e300ec2d
JJ
259292013-01-18 Jakub Jelinek <jakub@redhat.com>
25930
25931 PR tree-optimization/56029
25932 * tree-phinodes.c (reserve_phi_args_for_new_edge): Set
25933 gimple_phi_arg_location for the new arg to UNKNOWN_LOCATION.
25934
a3d7af04
SS
259352013-01-18 Sharad Singhai <singhai@google.com>
25936
25937 PR tree-optimization/55995
25938 * dumpfile.c (dump_loc): Print location only if available.
25939 * tree-vectorizer.c (increase_alignment): Intialize vect_location.
25940
66aa7879
VM
259412013-01-18 Vladimir Makarov <vmakarov@redhat.com>
25942
25943 PR target/55433
25944 * lra-constraints.c (curr_insn_transform): Reuse original insn for
25945 secondary memory move.
25946 (inherit_reload_reg): Use rclass instead of cl for
25947 check_secondary_memory_needed_p.
25948
3f0fee7b
JJ
259492013-01-18 Jakub Jelinek <jakub@redhat.com>
25950
25951 PR middle-end/56015
25952 * expr.c (expand_expr_real_2) <case COMPLEX_EXPR>: Handle
1f6bc337 25953 the case where writing real complex part of target modifies op1.
3f0fee7b 25954
70c67693
JG
259552013-01-18 James Greenhalgh <james.greenhalgh@arm.com>
25956
25957 * config/aarch64/aarch64-simd.md
25958 (aarch64_vcond_internal<mode>): Handle unordered cases.
25959 * config/aarch64/iterators.md (v_cmp_result): New.
25960
df8de9b3
YHH
259612013-01-18 Yi-Hsiu Hsu <ahsu@marvell.com>
25962 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
25963
25964 * config/arm/marvell-pj4.md: New file.
25965 * config/arm/arm.c (arm_issue_rate): Add marvell_pj4.
25966 * config/arm/arm.md (generic_sched): Add marvell_pj4.
25967 (generic_vfp): Likewise.
25968 * config/arm/arm-cores.def: Add marvell-pj4.
25969 * config/arm/arm-tune.md: Regenerate.
25970 * config/arm/arm-tables.opt: Regenerate.
25971 * config/arm/bpabi.h (BE8_LINK_SPEC): Add marvell_pj4.
25972 * doc/invoke.texi: Document marvell-pj4.
25973
be30c356
TB
259742013-01-18 Tejas Belagod <tejas.belagod@arm.com>
25975
25976 * config/aarch64/arm_neon.h: Map scalar types to standard types.
25977
0bfbca58 259782013-01-18 Alexandre Oliva <aoliva@redhat.com>
af6236c1
AO
25979
25980 PR debug/54114
25981 PR debug/54402
25982 PR debug/49888
25983 * var-tracking.c (negative_power_of_two_p): New.
25984 (global_get_addr_cache, local_get_addr_cache): New.
25985 (get_addr_from_global_cache, get_addr_from_local_cache): New.
25986 (vt_canonicalize_addr): Rewrite using the above. Adjust the
25987 heading comment.
25988 (vt_stack_offset_p): Remove.
25989 (vt_canon_true_dep): Always canonicalize loc's address.
25990 (clobber_overlapping_mems): Make sure we have a MEM.
25991 (local_get_addr_clear_given_value): New.
25992 (val_reset): Clear local cached entries.
25993 (compute_bb_dataflow): Create and release the local cache.
25994 Disable duplicate MEMs clobbering.
25995 (emit_notes_in_bb): Clobber MEMs likewise.
25996 (vt_emit_notes): Create and release the local cache.
25997 (vt_initialize, vt_finalize): Create and release the global
25998 cache, respectively.
1f6bc337 25999 * alias.c (rtx_equal_for_memref_p): Compare operands of ENTRY_VALUEs.
af6236c1 26000
0bfbca58 260012013-01-18 Alexandre Oliva <aoliva@redhat.com>
7ff37ffa
AO
26002
26003 PR libmudflap/53359
26004 * tree-mudflap.c (mudflap_finish_file): Skip deferred decls
26005 not found in the symtab.
26006
0bfbca58 260072013-01-18 Alexandre Oliva <aoliva@redhat.com>
3aa03517 26008
c350ba53 26009 PR debug/56006
3aa03517
AO
26010 PR rtl-optimization/55547
26011 PR rtl-optimization/53827
26012 PR debug/53671
26013 PR debug/49888
26014 * alias.c (offset_overlap_p): New, factored out of...
26015 (memrefs_conflict_p): ... this. Use absolute sizes. Retain
26016 the conservative special case for symbolic constants. Don't
26017 adjust zero sizes on alignment.
26018
c664546f
JL
260192013-01-18 Bernd Schmidt <bernds@codesourcery.com>
26020
26021 PR rtl-optimization/52573
26022 * regrename.c (build_def_use): Ignore REG_DEAD notes if there is a
26023 REG_UNUSED for the same register.
26024
1bd3f750
MP
260252013-01-17 Richard Biener <rguenther@suse.de>
26026 Marek Polacek <polacek@redhat.com>
26027
26028 PR rtl-optimization/55833
26029 * loop-unswitch.c (unswitch_loops): Move loop verification...
26030 (unswitch_single_loop): ...here. Call mark_irreducible_loops.
26031 * cfgloopmanip.c (fix_loop_placement): Add IRRED_INVALIDATED parameter.
26032 Set it to true when we're removing a loop from hierarchy tree in
26033 an irreducible region.
26034 (fix_bb_placements): Adjust caller.
26035 (fix_loop_placements): Likewise.
26036
e52a8b71
GJL
260372013-01-17 Georg-Johann Lay <avr@gjlay.de>
26038
26039 * config/avr/builtins.def (DEF_BUILTIN): Factor out
26040 "__builtin_avr_" from NAME, turn NAME to an uppercase identifier.
26041 Factor out 'CODE_FOR_' from ICODE, use 'nothing' instead of '-1'.
26042 Remove ID. Adjust comments.
26043 * config/avr/avr-c.c (avr_builtin_name): Remove.
26044 (avr_cpu_cpp_builtins): Use DEF_BUILTIN instead of for-loop.
26045 * config/avr/avr.c (avr_tolower): New static function.
26046 (DEF_BUILTIN): Remove parameter ID. Prefix ICODE by 'CODE_FOR_'.
26047 Stringify NAME, prefix it with "__builtin_avr_" and lowercase it.
26048 (avr_expand_builtin): Assert insn_code != CODE_FOR_nothing for
26049 default expansion.
26050
8386a7ea
JH
260512013-01-17 Jan Hubicka <jh@suse.cz>
26052
610fb637 26053 PR tree-optimization/55273
8386a7ea
JH
26054 * loop-iv.c (iv_number_of_iterations): Consider zero iteration case.
26055
47876a2a 260562013-01-17 Uros Bizjak <ubizjak@gmail.com>
8abaebcd
UB
26057
26058 PR target/55981
26059 * config/i386/sync.md (atomic_store<mode>): Always generate SWImode
26060 store through atomic_store<mode>_1.
26061 (atomic_store<mode>_1): Macroize insn using SWI mode iterator.
26062
8222c37e
MJ
260632013-01-17 Martin Jambor <mjambor@suse.cz>
26064
26065 PR tree-optimizations/55264
26066 * ipa-inline-transform.c (can_remove_node_now_p_1): Never return true
26067 for virtual methods.
26068 * ipa.c (symtab_remove_unreachable_nodes): Never return true for
26069 virtual methods before inlining is over.
26070 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Return false for
26071 virtual functions.
26072 * cgraphclones.c (cgraph_create_virtual_clone): Mark clones as
26073 non-virtual.
26074
79f01c76
VM
260752013-01-16 Vladimir Makarov <vmakarov@redhat.com>
26076
26077 PR rtl-optimization/56005
26078 * sched-deps.c (sched_analyze_2): Check deps->readonly for adding
26079 pending reads for prefetch.
26080
d0b6bb1b
IB
260812013-01-16 Ian Bolton <ian.bolton@arm.com>
26082
aaf1e810 26083 * config/aarch64/aarch64.md
d0b6bb1b
IB
26084 (*cstoresi_neg_uxtw): New pattern.
26085 (*cmovsi_insn_uxtw): New pattern.
26086 (*<optab>si3_uxtw): New pattern.
26087 (*<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): New pattern.
26088 (*<optab>si3_insn_uxtw): New pattern.
26089 (*bswapsi2_uxtw): New pattern.
26090
cb9cf03b
RB
260912013-01-16 Richard Biener <rguenther@suse.de>
26092
26093 * tree-inline.c (tree_function_versioning): Remove set but
26094 never used variable.
26095
2cfc56b9
RB
260962013-01-16 Richard Biener <rguenther@suse.de>
26097
26098 PR tree-optimization/55964
26099 * tree-flow.h (rename_variables_in_loop): Remove.
26100 (rename_variables_in_bb): Likewise.
26101 * tree-loop-distribution.c (update_phis_for_loop_copy): Remove.
26102 (copy_loop_before): Adjust and delete update-ssa status.
26103 * tree-vect-loop-manip.c (rename_variables_in_bb): Make static.
8abaebcd 26104 (rename_variables_in_bb): Likewise. Properly walk over predecessors.
2cfc56b9
RB
26105 (rename_variables_in_loop): Remove.
26106 (slpeel_update_phis_for_duplicate_loop): Likewise.
26107 (slpeel_tree_duplicate_loop_to_edge_cfg): Handle nested loops,
26108 use available cfg machinery instead of duplicating it.
26109 Update PHI nodes and perform poor-mans SSA update here.
26110 (slpeel_tree_peel_loop_to_edge): Adjust.
26111
c25a0c60
RB
261122013-01-16 Richard Biener <rguenther@suse.de>
26113
26114 PR tree-optimization/54767
26115 PR tree-optimization/53465
26116 * tree-vrp.c (vrp_meet_1): Revert original fix for PR53465.
26117 (vrp_visit_phi_node): For PHI arguments coming via backedges
26118 drop all symbolical range information.
26119 (execute_vrp): Compute backedges.
26120
04b535af
RB
261212013-01-16 Richard Biener <rguenther@suse.de>
26122
26123 * doc/install.texi: Update CLooG and ISL requirements to
26124 0.18.0 and 0.11.1.
26125
8b0a1e0b
CB
261262013-01-16 Christian Bruel <christian.bruel@st.com>
26127
26128 PR target/55301
26129 * config/sh/sh.c (sh_expand_prologue): Postpone new_stack mem symbol.
26130 (broken_move): Handle UNSPECV_SP_SWITCH_B.
26131 * config/sh/sh.md (sp_switch_1): Use set (reg:SI SP_REG).
26132
261332013-01-16 DJ Delorie <dj@redhat.com>
26134
26135 * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
26136 (UNSPECV_SP_SWITCH_E): New.
26137 (sp_switch_1): Change to an unspec.
26138 (sp_switch_2): Change to an unspec. Don't use post-inc when we
26139 replace $r15.
26140
261412013-01-16 Uros Bizjak <ubizjak@gmail.com>
88e784e6
UB
26142
26143 * emit-rtl.c (need_atomic_barrier_p): Mask memory model argument
26144 with MEMMODEL_MASK before comparing with MEMMODEL_* memory types.
26145 * optabs.c (maybe_emit_sync_lock_test_and_set): Ditto.
26146 (expand_mem_thread_fence): Ditto.
26147 (expand_mem_signal_fence): Ditto.
26148 (expand_atomic_load): Ditto.
26149 (expand_atomic_store): Ditto.
26150
0bfbca58 261512013-01-16 Alexandre Oliva <aoliva@redhat.com>
5147bf6a
AO
26152
26153 PR rtl-optimization/55547
26154 PR rtl-optimization/53827
26155 PR debug/53671
26156 PR debug/49888
26157 * alias.c (memrefs_conflict_p): Set sizes to negative after
26158 AND adjustments.
26159
305e3ac1
JJ
261602013-01-15 Jakub Jelinek <jakub@redhat.com>
26161
26162 PR target/55940
26163 * function.c (thread_prologue_and_epilogue_insns): Always
26164 add crtl->drap_reg to set_up_by_prologue.set, even if
26165 stack_realign_drap is false.
26166
f78ac4f2
JBG
261672013-01-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
26168
26169 * config/vax/vax.md (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3,
26170 and<mode>3, *and<mode>_const_int, ior<mode>3, xor<mode>3, ashrsi3,
26171 *call): Fix indention.
26172
a78a8cc4
TV
261732013-01-15 Tom de Vries <tom@codesourcery.com>
26174
26175 PR target/55876
26176 * optabs.c (widen_operand): Use gen_lowpart instead of gen_rtx_SUBREG.
26177 Update comment.
26178
0e80383f
VM
261792013-01-15 Vladimir Makarov <vmakarov@redhat.com>
26180
305e3ac1 26181 PR rtl-optimization/55153
0e80383f
VM
26182 * sched-deps.c (sched_analyze_2): Add pending reads for prefetch.
26183
207b5956
MJ
261842013-01-15 Martin Jambor <mjambor@suse.cz>
26185
26186 PR tree-optimization/55920
26187 * tree-sra.c (analyze_access_subtree): Do not mark non-removable
26188 accesses as grp_to_be_debug_replaced.
26189
a7818b54
JJ
261902013-01-15 Jakub Jelinek <jakub@redhat.com>
26191
26192 PR tree-optimization/55920
26193 * tree-sra.c (sra_modify_assign): If for lacc->grp_to_be_debug_replaced
26194 there is non-useless type conversion needed from debug rhs to lhs,
26195 use build_debug_ref_for_model and/or VIEW_CONVERT_EXPR.
26196
b0fe107e
JM
261972013-01-15 Joseph Myers <joseph@codesourcery.com>
26198 Mikael Pettersson <mikpe@it.uu.se>
26199
26200 PR target/43961
26201 * config/arm/arm.h (ADDR_VEC_ALIGN): Align SImode jump tables for
26202 Thumb.
26203 (ASM_OUTPUT_CASE_LABEL): Remove.
26204 (ASM_OUTPUT_BEFORE_CASE_LABEL): Define to empty.
26205 * final.c (shorten_branches): Update alignment of labels before
26206 jump tables if CASE_VECTOR_SHORTEN_MODE.
26207
34ab62ee
RB
262082013-01-15 Richard Biener <rguenther@suse.de>
26209
26210 PR bootstrap/55961
26211 * system.h: Do not include gmp.h for building host tools.
26212
783a3a05
RB
262132013-01-15 Richard Biener <rguenther@suse.de>
26214
26215 PR middle-end/55882
26216 * emit-rtl.c (set_mem_attributes_minus_bitpos): Correctly
26217 account for bitpos when computing alignment.
26218
3a579e09
VY
262192013-01-15 Vladimir Yakovlev <vladimir.b.yakovlev@intel.com>
26220
26221 * config/i386/i386-c.c (ix86_target_macros_internal): New case.
26222 (ix86_target_macros_internal): Likewise.
26223
26224 * config/i386/i386.c (m_CORE2I7): Removed.
26225 (m_CORE_HASWELL): New macro.
26226 (m_CORE_ALL): Likewise.
26227 (initial_ix86_tune_features): m_CORE2I7 is replaced by m_CORE_ALL.
26228 (initial_ix86_arch_features): Likewise.
26229 (processor_target_table): Initializations for Core avx2.
26230 (cpu_names): New names "core-avx2".
26231 (ix86_option_override_internal): Changed PROCESSOR_COREI7 by
26232 PROCESSOR_CORE_HASWELL.
26233 (ix86_issue_rate): New case.
26234 (ia32_multipass_dfa_lookahead): Likewise.
26235 (ix86_sched_init_global): Likewise.
26236
26237 * config/i386/i386.h (TARGET_HASWELL): New macro.
26238 (target_cpu_default): New TARGET_CPU_DEFAULT_haswell.
26239 (processor_type): New PROCESSOR_HASWELL.
26240
955f5a07
JJ
262412013-01-15 Jakub Jelinek <jakub@redhat.com>
26242
ff784829
JJ
26243 PR tree-optimization/55955
26244 * tree-vect-loop.c (vectorizable_reduction): Give up early on
26245 *SHIFT_EXPR and *ROTATE_EXPR codes.
26246
955f5a07
JJ
26247 PR tree-optimization/48766
26248 * opts.c (common_handle_option): For -fwrapv disable -ftrapv, for
26249 -ftrapv disable -fwrapv.
26250
aeb8b4e9
GJL
262512013-01-14 Georg-Johann Lay <avr@gjlay.de>
26252
26253 PR target/55974
26254 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Define __FLASH
26255 etc. to 1 and not to __flash.
26256 Use LL suffix for __INT24_MAX__ with -mint8.
26257 Use ULL suffix for __UINT24_MAX__ with -mint8.
26258
1c494c6a
GJL
262592013-01-14 Georg-Johann Lay <avr@gjlay.de>
26260
26261 * config/avr/avr-arch.h
26262 (struct base_arch_s): Use typedef avr_arch_t instead.
26263 (struct arch_info_s): Use typedef avr_arch_info_t instead.
26264 (struct mcu_type_s): Use typedef avr_mcu_t instead.
26265 * config/avr/avr.c: Same.
26266 * config/avr/avr-devices.c: Same.
26267 * config/avr/driver-avr.c: Same.
26268 * config/avr/gen-avr-mmcu-texi.c: Same.
26269 * config/avr/avr-mcus.def: Adjust comment.
26270
a50344cb
TB
262712013-01-14 Tejas Belagod <tejas.belagod@arm.com>
26272
88e784e6
UB
26273 * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): New.
26274 * config/aarch64/iterators.md (VALLDI): New.
a50344cb 26275
47876a2a 262762013-01-14 Uros Bizjak <ubizjak@gmail.com>
e6f0e052
UB
26277 Andi Kleen <ak@linux.intel.com>
26278
26279 PR target/55948
26280 * config/i386/sync.md (atomic_store<mode>_1): New pattern.
26281 (atomic_store<mode>): Call atomic_store<mode>_1 for IX86_HLE_RELEASE
26282 memmodel flag.
26283
00892272
GJL
262842013-01-14 Georg-Johann Lay <avr@gjlay.de>
26285
26286 * config/avr/avr-stdint.h: Remove trailing blanks.
26287 * config/avr/avr-log.h: Same.
26288 * config/avr/avr-arch.h: Same.
26289 * config/avr/avr-devices.c: Same.
26290 * config/avr/avr-dimode.md: Same.
26291 * config/avr/predicates.md: Same.
26292 * config/avr/avr-c.c: Same. And fix typo.
e6f0e052 26293
00892272
GJL
26294 * config/avr/avr-protos.h: Same. And:
26295 (function_arg_regno_p): Rename to avr_function_arg_regno_p.
26296 (init_cumulative_args): Rename to avr_init_cumulative_args.
26297 (expand_prologue): Rename to avr_expand_prologue.
26298 (expand_epilogue): Rename to avr_expand_epilogue.
26299 (adjust_insn_length): Rename to avr_adjust_insn_length.
26300 (notice_update_cc): Rename to avr_notice_update_cc.
26301 (final_prescan_insn): Rename to avr_final_prescan_insn.
26302 * config/avr/avr.c: Same.
26303 * config/avr/avr.h: Same.
26304 * config/avr/avr.md: Remove trailing blanks.
26305 (prologue): Use avr_expand_prologue.
26306 (epilogue, sibcall_epilogue): Use avr_expand_epilogue.
26307
7bb01996
RB
263082013-01-14 Richard Biener <rguenther@suse.de>
26309
26310 * tree-cfg.c (verify_expr_location, verify_expr_location_1,
26311 verify_location, collect_subblocks): New functions.
26312 (verify_gimple_in_cfg): Verify that locations only reference
26313 BLOCKs in the functions BLOCK tree.
26314
2724573f
RB
263152013-01-14 Richard Biener <rguenther@suse.de>
26316
26317 * tree-cfgcleanup.c (remove_forwarder_block): Unshare propagated
26318 PHI argument.
26319 * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Properly
26320 unshare reference.
26321 (insert_out_of_ssa_copy_on_edge): Likewise.
26322 (rewrite_close_phi_out_of_ssa): Likewise.
26323 * tree-ssa.c (insert_debug_temp_for_var_def): Properly unshare
26324 debug expressions.
26325 * tree-ssa-pre.c (insert_into_preds_of_block): Properly unshare
26326 propagated constants.
26327 * tree-cfg.c (tree_node_can_be_shared): Handled component-refs
26328 can not be shared.
26329
9a0bbab6
GJL
263302013-01-14 Georg-Johann Lay <avr@gjlay.de>
26331
26332 * config/avr/avr-modes.def: Add GPL copyright notice.
26333
45805f17
UB
263342013-01-13 Uros Bizjak <ubizjak@gmail.com>
26335
26336 * config/i386/sync.md (mem_thread_fence): Mask operands[0] with
26337 MEMMODEL_MASK to determine memory model.
26338 (atomic_store<mode>): Ditto from operands[2].
26339 * config/i386/i386.c (ix86_memmodel_check): Declare "strong" as bool.
26340
9d60be38
JJ
263412013-01-13 Jakub Jelinek <jakub@redhat.com>
26342
26343 PR fortran/55935
45805f17 26344 * gimple-fold.c (get_symbol_constant_value): Call unshare_expr.
9d60be38
JJ
26345 (fold_gimple_assign): Don't call unshare_expr here.
26346 (fold_ctor_reference): Call unshare_expr.
26347
e7f49d92
TG
263482013-01-13 Terry Guo <terry.guo@arm.com>
26349
aaf1e810
EB
26350 * Makefile.in (s-mlib): New argument MULTILIB_REUSE.
26351 * doc/fragments.texi: Document MULTILIB_REUSE.
26352 * gcc.c (multilib_reuse): New internal spec.
e7f49d92 26353 (set_multilib_dir): Also search multilib from multilib_reuse.
aaf1e810 26354 * genmultilib (tmpmultilib3): Refactor code.
e7f49d92
TG
26355 (tmpmultilib4): Ditto.
26356 (multilib_reuse): New multilib argument.
26357
fbd03a27
RS
263582013-01-13 Richard Sandiford <rdsandiford@googlemail.com>
26359
26360 * Makefile.in: Update copyright.
26361
b3681f13
TV
263622013-01-12 Tom de Vries <tom@codesourcery.com>
26363
26364 PR middle-end/55890
26365 * calls.c (expand_call): Check if arg_nr is valid.
26366
3f287e4b
MM
263672013-01-11 Michael Meissner <meissner@linux.vnet.ibm.com>
26368
26369 * doc/extend.texi (X86 Built-in Functions): Add whitespace in
26370 __builtin_ia32_paddb256 and __builtin_ia32_pavgb256
5bc35113
MM
26371 documentation. Add missing '__' in front of
26372 __builtin_ia32_packssdw256.
3f287e4b 26373
1abcd5eb
AK
263742013-01-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
26375
26376 PR target/55719
26377 * config/s390/s390.c (s390_preferred_reload_class): Do not return
26378 NO_REGS for larl operands.
26379 (s390_reload_larl_operand): Use s390_load_address instead of
26380 emit_move_insn.
26381
980d0812
RB
263822013-01-11 Richard Biener <rguenther@suse.de>
26383
26384 * tree-cfg.c (verify_node_sharing_1): Split out from ...
26385 (verify_node_sharing): ... here.
26386 (verify_gimple_in_cfg): Use verify_node_sharing_1 for walk_tree.
26387
7cb9fd07
EB
263882013-01-11 Eric Botcazou <ebotcazou@adacore.com>
26389
26390 * configure.ac (Tree checking): Set TREECHECKING to yes if enabled.
26391 Substitute TREECHECKING.
26392 * configure: Regenerate.
26393 * Makefile.in (TREECHECKING): New.
26394
47876a2a 263952013-01-11 Richard Guenther <rguenther@suse.de>
c7ab2530
RG
26396
26397 PR tree-optimization/44061
26398 * tree-vrp.c (extract_range_basic): Compute zero as
26399 value-range for __builtin_constant_p of function parameters.
26400
d1e082c2
RS
264012013-01-10 Richard Sandiford <rdsandiford@googlemail.com>
26402
45805f17 26403 Update copyright years.
d1e082c2 26404
f85021b0
VM
264052013-01-10 Vladimir Makarov <vmakarov@redhat.com>
26406
9d60be38 26407 PR rtl-optimization/55672
0160442c
VM
26408 * lra-eliminations.c (mark_not_eliminable): Permit addition with
26409 const to be eliminable.
f85021b0 26410
7a8b1ec4
DE
264112013-01-10 David Edelsohn <dje.gcc@gmail.com>
26412
26413 * configure.ac (HAVE_AS_TLS): Add check for powerpc-ibm-aix.
26414 * configure: Regenerate.
26415
ad2e5b71
RB
264162013-01-10 Richard Biener <rguenther@suse.de>
26417
ddf9322d 26418 * builtins.c (expand_builtin_init_trampoline): Use set_mem_attributes.
ad2e5b71 26419
ffc5b2bb
RB
264202013-01-10 Richard Biener <rguenther@suse.de>
26421
26422 PR bootstrap/55792
26423 * tree-into-ssa.c (rewrite_add_phi_arguments): Do not set
26424 locations for virtual PHI arguments.
26425 (rewrite_update_phi_arguments): Likewise.
26426
e1f674e4
JS
264272013-01-10 Joel Sherrill <joel.sherrill@OARcorp.com>
26428
26429 * config/v850/rtems.h (ASM_SPEC): Pass -m8byte-align and -mgcc-abi
26430 on to assembler.
26431
a57fc743
JJ
264322013-01-10 Jakub Jelinek <jakub@redhat.com>
26433
26434 PR tree-optimization/55921
26435 * tree-complex.c (expand_complex_asm): New function.
26436 (expand_complex_operations_1): Call it for GIMPLE_ASM.
26437
0ff4390d
AK
264382013-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
26439
26440 PR target/55718
26441 * config/s390/s390.c (s390_symref_operand_p)
26442 (s390_loadrelative_operand_p): Merge the two functions.
26443 (s390_check_qrst_address, print_operand_address): Add parameters
26444 to s390_loadrelative_operand_p invokation.
26445 (s390_check_symref_alignment): Use s390_loadrelative_operand_p.
26446 (s390_reload_larl_operand, s390_secondary_reload): Use
26447 s390_loadrelative_operand_p instead of s390_symref_operand_p.
26448 (legitimize_pic_address): Handle @GOTENT and @PLT + addend.
26449
6f557e0e
MS
264502013-01-09 Mike Stump <mikestump@comcast.net>
26451
26452 * dse.c (record_store): Remove unnecessary assert.
26453
7770c9e9
JH
264542013-01-09 Jan Hubicka <jh@suse.cz>
26455
26456 PR tree-optimization/55569
26457 * cfgloopmanip.c (scale_loop_profile): Make ITERATION_BOUND gcov_type.
26458 * cfgloop.h (scale_loop_profile): Likewise.
26459
a19b1432
JH
264602013-01-09 Jan Hubicka <jh@suse.cz>
26461
26462 PR lto/45375
ddf9322d
UB
26463 * ipa-inline.c (ipa_inline): Remove extern inlines and virtual
26464 functions.
a19b1432
JH
26465 * cgraphclones.c (cgraph_clone_node): Cpoy also LTO file data.
26466
9a002da8
RS
264672013-01-09 Richard Sandiford <rdsandiford@googlemail.com>
26468
26469 PR middle-end/55114
26470 * expr.h (maybe_emit_group_store): Declare.
26471 * expr.c (maybe_emit_group_store): New function.
26472 * builtins.c (expand_builtin_int_roundingfn): Call it.
26473 (expand_builtin_int_roundingfn_2): Likewise.
26474
511dcace
VM
264752013-01-09 Vladimir Makarov <vmakarov@redhat.com>
26476
e1f2b729 26477 PR rtl-optimization/55829
511dcace
VM
26478 * lra-constraints.c (match_reload): Add code for absent output.
26479 (curr_insn_transform): Add code for reloads of matched inputs
26480 without output.
26481
7b0fe4f4
UB
264822013-01-09 Uros Bizjak <ubizjak@gmail.com>
26483
26484 * config/i386/sse.md (*vec_interleave_highv2df): Change mode
26485 attribute of movddup insn to DF.
26486 (*vec_interleave_lowv2df): Ditto.
26487 (vec_dupv2df): Ditto.
26488
870ca331
JH
264892013-01-09 Jan Hubicka <jh@suse.cz>
26490
26491 PR tree-optimiation/55875
26492 * tree-ssa-loop-niter.c (number_of_iterations_cond): Add
26493 EVERY_ITERATION parameter.
7b0fe4f4 26494 (number_of_iterations_exit): Check if exit is executed every iteration.
870ca331
JH
26495 (idx_infer_loop_bounds): Similarly here.
26496 (n_of_executions_at_most): Simplify
26497 to only test for cases where statement is dominated by the
7b0fe4f4 26498 particular bound; handle correctly the "postdominance" test.
870ca331
JH
26499 (scev_probably_wraps_p): Use max loop iterations info
26500 as a global bound first.
26501
6f575fe4 265022013-01-09 Nguyen Duy Dat <dat.nguyen.yn@rvc.renesas.com>
3cd232b5
NDD
26503 Nick Clifton <nickc@redhat.com>
26504
26505 * config/v850/v850.md (cbranchsf4): New pattern.
26506 (cstoresf4): New pattern.
26507 (cbranchdf4): New pattern.
26508 (cstoredf4): New pattern.
26509 (movsicc): Disallow floating point comparisons.
26510 (cmpsf_le_insn): Fix order of operators.
26511 (cmpsf_lt_insn): Likewise.
26512 (cmpsf_eq_insn): Likewise.
26513 (cmpdf_le_insn): Likewise.
26514 (cmpdf_lt_insn): Likewise.
26515 (cmpdf_eq_insn): Likewise.
26516 (cmpsf_ge_insn): Use LE comparison.
26517 (cmpdf_ge_insn): Likewise.
26518 (cmpsf_gt_insn): Use LT comparison.
26519 (cmpdf_gt_insn): Likewise.
26520 (cmpsf_ne_insn): Delete pattern.
26521 (cmpdf_ne_insn): Delete pattern.
26522 * config/v850/v850.c (v850_gen_float_compare): Use
26523 gen_cmpdf_eq_insn for NE comparison.
26524 (v850_float_z_comparison_operator)
26525 (v850_float_nz_comparison_operator): Move from here ...
26526 * config/v850/predicates.md: ... to here. Move GT and GE
26527 comparisons into v850_float_z_comparison_operator.
26528 * config/v850/v850-protos.h (v850_float_z_comparison_operator):
26529 Delete prototype.
26530 (v850_float_nz_comparison_operator): Likewise.
26531
f0d54148
JDA
265322013-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
26533
26534 * config/pa/pa.c (pa_emit_move_sequence): Replace calls to gen_insv
26535 with calls to gen_insvsi/gen_insvdi.
26536
8f01beca
VK
265372013-01-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
26538
26539 * config/i386/i386.c (initial_ix86_tune_features): Set up
26540 X86_TUNE_AVX128_OPTIMAL for m_BTVER2.
26541
2aa579ad
JJ
265422013-01-09 Steven Bosscher <steven@gcc.gnu.org>
26543 Jakub Jelinek <jakub@redhat.com>
26544
26545 PR tree-optimization/48189
26546 * predict.c (predict_loops): If max is 0, don't call compare_tree_int.
26547 If nitercst is 0, don't predict the exit edge.
26548
6edc3e32 265492013-01-08 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
01a3a324
N
26550
26551 * config/aarch64/aarch64.c (aarch64_print_operand): Replace %r
26552 in asm_fprintf with reg_names.
26553 (aarch64_print_operand_address): Likewise.
26554 (aarch64_return_addr): Likewise.
26555 * config/aarch64/aarch64.h (ASM_FPRINTF_EXTENSIONS): Remove.
26556
f6f94d94
JDA
265572013-01-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
26558
26559 * config/pa/pa.h (VAL_U6_BITS_P): Define.
26560 (INT_U6_BITS): Likewise.
26561 * config/pa/predicates.md (uint6_operand): New predicate.
26562 (shift5_operand, shift6_operand): Likewise.
26563 * config/pa/pa.md (lshrsi3, rotrsi3): Use shift5_operand instead of
26564 arith32_operand.
26565 (lshrdi3): Use shift6_operand.
26566 (shrpsi4, shrpdi4): New insn patterns.
26567 (extzv): Delete expander.
26568 (extzvsi, extzvdi): New expanders. Use uint5_operand and uint6_operand
26569 predicates in unamed zero extract patterns. Tighten common constraint.
26570 (extv): Delete expander.
26571 (extvsi, extvdi): New expanders. Use uint5_operand and uint6_operand
26572 predicates in unamed sign extract patterns. Tighten common constraint.
26573 (insv): Delete expander.
26574 (insvsi, insvdi): New expanders. Use uint5_operand and uint6_operand
26575 predicates in unamed insert patterns. Tighten common constraint.
26576 Change uint32_operand predicate to uint6_operand predicate in unamed
26577 DImode pattern to insert constant values of type 1...1xxxx.
26578
36b72910
JH
265792013-01-04 Jan Hubicka <jh@suse.cz>
26580
26581 PR tree-optimization/55823
7b0fe4f4
UB
26582 * ipa-prop.c (update_indirect_edges_after_inlining): Fix ordering
26583 issue.
36b72910 26584
47876a2a 265852013-01-08 Jakub Jelinek <jakub@redhat.com>
c6d851b9
JJ
26586 Uros Bizjak <ubizjak@gmail.com>
26587
26588 PR rtl-optimization/55845
26589 * df-problems.c (can_move_insns_across): Stop scanning at
26590 volatile_insn_p source instruction or give up if
26591 across_from .. across_to range contains any volatile_insn_p
26592 instructions.
26593
4369c11e
TB
265942013-01-08 Tejas Belagod <tejas.belagod@arm.com>
26595
7b0fe4f4
UB
26596 * config/aarch64/aarch64-simd.md (vec_init<mode>): New.
26597 * config/aarch64/aarch64-protos.h (aarch64_expand_vector_init):
26598 Declare.
4369c11e 26599 * config/aarch64/aarch64.c (aarch64_simd_dup_constant,
7b0fe4f4 26600 aarch64_simd_make_constant, aarch64_expand_vector_init): New.
4369c11e 26601
aeb7e7c1
JJ
266022013-01-08 Jakub Jelinek <jakub@redhat.com>
26603
26604 PR fortran/55341
26605 * asan.c (asan_clear_shadow): New function.
26606 (asan_emit_stack_protection): Use it.
26607
a02ad1aa
TB
266082013-01-08 Tejas Belagod <tejas.belagod@arm.com>
26609
26610 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_<su>mult_lo_<mode>,
26611 aarch64_simd_vec_<su>mult_hi_<mode>): Separate instruction and operand
26612 with tab instead of space.
26613
f90d87f5
NC
266142013-01-08 Nick Clifton <nickc@redhat.com>
26615
26616 * config/rl78/rl78.c (rl78_expand_prologue): Always select
26617 register bank 0 at the start of an interrupt handler.
83ffd964
NC
26618 * config/rl78/rl78.md (mulsi3_g13): Correct values for MDBL and
26619 MDBH registers.
f90d87f5 26620
385eb93d
JG
266212013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
26622
26623 * config/aarch64/aarch64-simd.md
26624 (aarch64_simd_bsl<mode>_internal): Add floating-point modes.
26625 (aarch64_simd_bsl): Likewise.
26626 (aarch64_vcond_internal<mode>): Likewise.
26627 (vcond<mode><mode>): Likewise.
26628 (aarch64_cm<cmp><mode>): Fix constraints, add new modes.
26629 * config/aarch64/iterators.md (V_cmp_result): Add V2DF.
26630
4dcd1054
JG
266312013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
26632
26633 * config/aarch64/aarch64-builtins.c
26634 (aarch64_builtin_vectorized_function): Handle sqrt, sqrtf.
26635
4267a4a6
MJ
266362013-01-08 Martin Jambor <mjambor@suse.cz>
26637
26638 PR debug/55579
26639 * tree-sra.c (analyze_access_subtree): Return true also after
26640 potentially creating a debug-only replacement.
26641
5f4e6de3
JJ
266422013-01-08 Jakub Jelinek <jakub@redhat.com>
26643
3138f224
JJ
26644 PR middle-end/55890
26645 * tree-ssa-ccp.c (evaluate_stmt): Use gimple_call_builtin_p.
26646
5f4e6de3
JJ
26647 PR tree-optimization/54120
26648 * tree-vrp.c (range_fits_type_p): Don't allow
26649 src_precision < precision from signed vr to unsigned_p
26650 if vr->min or vr->max is negative.
26651 (simplify_float_conversion_using_ranges): Test can_float_p
26652 against CODE_FOR_nothing.
26653
f3ef18ff
JJ
266542013-01-08 Jakub Jelinek <jakub@redhat.com>
26655 Richard Biener <rguenther@suse.de>
26656
26657 PR middle-end/55851
26658 * fold-const.c (int_binop_types_match_p): Allow all INTEGRAL_TYPE_P
26659 types instead of just INTEGER_TYPE types.
26660
25c210f9
MK
266612013-01-07 Mark Kettenis <kettenis@openbsd.org>
26662
26663 * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT,
26664 TF_SIZE): Define.
f90d87f5 26665
81826a7b
SE
266662013-01-07 Steve Ellcey <sellcey@mips.com>
26667
26668 PR target/42661
26669 * config/mips/mips.opt: Change mad to mmad to match documentation.
26670
35678514
GJL
266712013-01-07 Georg-Johann Lay <avr@gjlay.de>
26672
26673 PR target/55897
26674 * doc/extend.texi (AVR Named Address Spaces): __memx goes into
26675 .progmemx.data now.
26676
e5669488
GJL
266772013-01-07 Georg-Johann Lay <avr@gjlay.de>
26678
26679 PR target/55897
26680 * config/avr/avr.h (ADDR_SPACE_COUNT): New enum.
26681 (avr_addrspace_t): Add .section_name field.
26682 * config/avr/avr.c (progmem_section): Use ADDR_SPACE_COUNT as
26683 array size.
26684 (avr_addrspace): Same. Initialize .section_name. Remove last
26685 NULL entry. Put __memx into .progmemx.data.
26686 (progmem_section_prefix): Remove.
26687 (avr_asm_init_sections): No need to initialize progmem_section.
26688 (avr_asm_named_section): Use avr_addrspace[].section_name to get
26689 section name prefix.
26690 (avr_asm_select_section): Ditto. And use get_unnamed_section to
26691 retrieve the progmem section.
26692 * avr-c.c (avr_cpu_cpp_builtins): Use ADDR_SPACE_COUNT as loop
26693 boundary to run over avr_addrspace[].
26694 (avr_register_target_pragmas): Ditto.
26695
656e6f37
JJ
266962013-01-06 Jakub Jelinek <jakub@redhat.com>
26697
26698 * varasm.c (output_constant_def_contents): For asan_protect_global
26699 protected strings, adjust DECL_ALIGN if needed, before testing for
26700 anchored symbols.
26701 (place_block_symbol): Adjust size for asan protected STRING_CSTs if
26702 TREE_CONSTANT_POOL_ADDRESS_P. Increase alignment for asan protected
26703 normal decls.
26704 (output_object_block): For asan protected decls, emit asan padding
26705 after their contents.
26706 * asan.c (asan_protect_global): Don't check TREE_ASM_WRITTEN here.
26707 (asan_finish_file): Test it here instead.
26708
6edc3e32
UB
267092013-01-07 Nick Clifton <nickc@redhat.com>
26710 Matthias Klose <doko@debian.org>
26711 Doug Kwan <dougkwan@google.com>
26712 H.J. Lu <hongjiu.lu@intel.com>
b352afba
NC
26713
26714 PR driver/55470
26715 * collect2.c (main): Support -fuse-ld=bfd and -fuse-ld=gold.
26716
26717 * common.opt: Add fuse-ld=bfd and fuse-ld=gold.
26718
26719 * gcc.c (LINK_COMMAND_SPEC): Pass -fuse-ld=* to collect2.
26720
7b0fe4f4 26721 * opts.c (comman_handle_option): Ignore -fuse-ld=bfd and -fuse-ld=gold.
b352afba
NC
26722
26723 * doc/invoke.texi: Document -fuse-ld=bfd and -fuse-ld=gold.
26724
2a095093
GJL
267252013-01-07 Georg-Johann Lay <avr@gjlay.de>
26726
f3b503f4 26727 PR target/54461
2a095093
GJL
26728 * doc/install.texi (Cross-Compiler-Specific Options): Document
26729 --with-avrlibc.
26730
383f9b34
TB
267312013-01-07 Tejas Belagod <tejas.belagod@arm.com>
26732
26733 * config/aarch64/arm_neon.h (vmovn_high_is16, vmovn_high_s32,
26734 vmovn_high_s64, vmovn_high_u16, vmovn_high_u32, vmovn_high_u64,
26735 vqmovn_high_s16, vqmovn_high_s32, vqmovn_high_s64, vqmovn_high_u16,
26736 vqmovn_high_u32, vqmovn_high_u64, vqmovun_high_s16, vqmovun_high_s32,
26737 vqmovun_high_s64): Fix source operand number and update copyright.
26738
3626621a
RB
267392013-01-07 Richard Biener <rguenther@suse.de>
26740
26741 PR middle-end/55890
26742 * gimple.h (gimple_call_builtin_p): New overload.
26743 * gimple.c (validate_call): New function.
26744 (gimple_call_builtin_p): Likewise.
26745 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
26746 Use gimple_call_builtin_p.
26747 (find_func_clobbers): Likewise.
26748 * tree-ssa-strlen.c (adjust_last_stmt): Likewise.
26749 (strlen_optimize_stmt): Likewise.
26750
8b2ea410
JG
267512013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
26752
26753 * config/aarch64/arm_neon.h (vld1_dup_*): Make argument const.
26754 (vld1q_dup_*): Likewise.
26755 (vld1_*): Likewise.
26756 (vld1q_*): Likewise.
26757 (vld1_lane_*): Likewise.
26758 (vld1q_lane_*): Likewise.
26759
9713d329
RB
267602013-01-07 Richard Biener <rguenther@suse.de>
26761
26762 * lto-streamer.h (LTO_minor_version): Bump to 2.
26763
3520f7cc
JG
267642013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
26765
26766 * config/aarch64/aarch64-protos.h
26767 (aarch64_const_double_zero_rtx_p): Rename to...
26768 (aarch64_float_const_zero_rtx_p): ...this.
26769 (aarch64_float_const_representable_p): New.
26770 (aarch64_output_simd_mov_immediate): Likewise.
26771 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): Refactor
26772 move immediate case.
26773 * config/aarch64/aarch64.c
26774 (aarch64_const_double_zero_rtx_p): Rename to...
26775 (aarch64_float_const_zero_rtx_p): ...this.
26776 (aarch64_print_operand): Allow printing of new constants.
26777 (aarch64_valid_floating_const): New.
26778 (aarch64_legitimate_constant_p): Check for valid floating-point
26779 constants.
26780 (aarch64_simd_valid_immediate): Likewise.
26781 (aarch64_vect_float_const_representable_p): New.
26782 (aarch64_float_const_representable_p): Likewise.
26783 (aarch64_simd_imm_zero_p): Also allow for floating-point 0.0.
26784 (aarch64_output_simd_mov_immediate): New.
26785 * config/aarch64/aarch64.md (*movsf_aarch64): Add new alternative.
26786 (*movdf_aarch64): Likewise.
26787 * config/aarch64/constraints.md (Ufc): New.
26788 (Y): call aarch64_float_const_zero_rtx.
26789 * config/aarch64/predicates.md (aarch64_fp_compare_operand): New.
26790
e167c04d
RB
267912013-01-07 Richard Biener <rguenther@suse.de>
26792
26793 PR tree-optimization/55888
26794 PR tree-optimization/55862
26795 * tree-ssa-pre.c (phi_translate_1): Revert previous change.
26796 (valid_in_sets): Check if a NAME has a leader in AVAIL_OUT,
26797 not if it is contained therein.
26798
0139aaab
GJL
267992013-01-07 Georg-Johann Lay <avr@gjlay.de>
26800
26801 * config/avr/t-avr: Typo.
26802
4a176b23
GJL
268032013-01-07 Georg-Johann Lay <avr@gjlay.de>
26804
26805 PR55243
26806 * config/avr/t-avr: Don't automatically rebuild
26807 $(srcdir)/config/avr/t-multilib
26808 $(srcdir)/config/avr/avr-tables.opt
26809 $(srcdir)/doc/avr-mmcu.texi
26810 (avr-mcus): New phony target to build them on request.
26811 (s-avr-mlib, s-avr-mmcu-texi): Remove.
26812 * avr/avr-mcus.def: Adjust comments.
26813
c7afdc98
UB
268142013-01-07 Uros Bizjak <ubizjak@gmail.com>
26815
26816 * config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Remove.
26817
1ab05c31
RS
268182013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
26819
26820 * file-find.c, file-find.h, realmpfr.c: Add FSF as copyright holder.
26821
488e3acc
RS
268222013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
26823
26824 * config/tilepro/gen-mul-tables.cc: Put copyright on one line.
26825
a89599d2
DE
268262013-01-05 David Edelsohn <dje.gcc@gmail.com>
26827
26828 * config/rs6000/aix53.h (LIB_SPEC): Add -lpthreads when compiling
26829 to generate profiling.
26830 * config/rs6000/aix64.h (LIB_SPEC): Same.
26831
70f09188
AP
268322013-01-04 Andrew Pinski <apinski@cavium.com>
26833
26834 * config/aarch64/aarch64.c (aarch64_fixed_condition_code_regs):
26835 New function.
26836 (TARGET_FIXED_CONDITION_CODE_REGS): Define.
26837
918d445f
UB
268382013-01-04 Uros Bizjak <ubizjak@gmail.com>
26839
26840 * config/i386/i386.c (ix86_legitimize_address): Call convert_to_mode
26841 unconditionally.
26842 (ix86_expand_move): Ditto.
26843 (ix86_zero_extend_to_Pmode): Ditto.
26844 (ix86_expand_call): Ditto.
26845 (ix86_expand_special_args_builtin): Ditto.
26846 (ix86_expand_builtin): Ditto.
26847
361618ec
RB
268482013-01-04 Richard Biener <rguenther@suse.de>
26849
26850 PR tree-optimization/55862
26851 * tree-ssa-pre.c (phi_translate_1): Valueize SSA names after
26852 translating them through PHI nodes.
26853
87eab554
MJ
268542013-01-04 Martin Jambor <mjambor@suse.cz>
26855
26856 PR tree-optimization/55755
26857 * tree-sra.c (sra_modify_assign): Do not check that an access has no
26858 children when trying to avoid producing a VIEW_CONVERT_EXPR.
26859
33879b9f
MP
268602013-01-04 Marek Polacek <polacek@redhat.com>
26861
26862 PR middle-end/55859
26863 * opts.c (default_options_optimization): Clarify error message.
26864
3068819a
RB
268652013-01-04 Richard Biener <rguenther@suse.de>
26866
26867 PR middle-end/55863
26868 * fold-const.c (split_tree): Undo -X - 1 to ~X folding for
26869 reassociation.
26870
0e4ae794
JDA
268712013-01-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
26872
26873 PR target/53789
26874 * config/pa/pa.md (movsi): Revert previous change.
e58d2e48
JDA
26875 * config/pa/pa.c (pa_legitimate_constant_p): Reject all TLS symbol
26876 references.
0e4ae794 26877
65c88cef
RH
268782013-01-03 Richard Henderson <rth@redhat.com>
26879
26880 * config/i386/i386.c (ix86_expand_move): Always assign to op1
26881 after eliminating TLS symbols.
26882
8ac16127
MG
268832013-01-03 Marc Glisse <marc.glisse@inria.fr>
26884
26885 PR bootstrap/50167
26886 * graphite-interchange.c (pdr_stride_in_loop): Use gmp_fprintf.
26887 * graphite-poly.c (debug_gmp_value): Likewise.
26888
bb664f09
UB
268892013-01-03 Uros Bizjak <ubizjak@gmail.com>
26890
26891 PR target/55712
26892 * config/i386/i386-c.c (ix86_target_macros_internal): Depending on
26893 selected code model, define __code_mode_small__, __code_model_medium__,
26894 __code_model_large__, __code_model_32__ or __code_model_kernel__.
26895 * config/i386/cpuid.h (__cpuid, __cpuid_count) [__i386__]: Prefix
26896 xchg temporary register with %k. Declare temporary register as
26897 early clobbered.
26898 [__x86_64__]: For medium and large code models, preserve %rbx register.
26899
bcf1ef00
RB
269002013-01-03 Richard Biener <rguenther@suse.de>
26901
0506634a 26902 * tree-data-ref.c (dump_conflict_function): Use less vertical spacing.
bcf1ef00
RB
26903 (dump_subscript): Adjust.
26904 (finalize_ddr_dependent): Do not dump redundant info.
26905 (analyze_siv_subscript): Adjust.
26906 (subscript_dependence_tester): Likewise.
26907 (compute_affine_dependence): Likewise.
26908
59fd17e3
RB
269092013-01-03 Richard Biener <rguenther@suse.de>
26910
26911 Revert
26912 2013-01-03 Richard Biener <rguenther@suse.de>
26913
26914 PR tree-optimization/55857
26915 * tree-vect-stmts.c (vectorizable_load): Do not setup
26916 re-alignment for invariant loads.
26917
26918 2013-01-02 Richard Biener <rguenther@suse.de>
26919
26920 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
0506634a 26921 invariant load do not generate a vector load from the scalar location.
59fd17e3 26922
595c2679
RB
269232013-01-03 Richard Biener <rguenther@suse.de>
26924
26925 * tree-vect-loop.c (vect_analyze_loop_form): Clarify reason
26926 for not vectorizing.
26927 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
26928 not build INDIRECT_REFs, call get_name once only.
26929 (vect_create_data_ref_ptr): Likewise. Dump base object kind
26930 based on DR_BASE_OBJECT, not DR_BASE_ADDRESS.
26931
90bb7d7a
RB
269322013-01-03 Richard Biener <rguenther@suse.de>
26933
26934 PR tree-optimization/55857
26935 * tree-vect-stmts.c (vectorizable_load): Do not setup
26936 re-alignment for invariant loads.
26937
f09b77ca
RB
269382013-01-03 Richard Biener <rguenther@suse.de>
26939
26940 PR lto/55848
26941 * lto-symtab.c (lto_symtab_merge_decls_1): As last resort, always
26942 prefer a built-in decl.
26943
3461a16e
JJ
269442013-01-03 Jakub Jelinek <jakub@redhat.com>
26945
df8e2b4f
JJ
26946 * gcc.c (process_command): Update copyright notice dates.
26947 * gcov.c (print_version): Likewise.
26948 * gcov-dump.c (print_version): Likewise.
26949
3461a16e
JJ
26950 PR rtl-optimization/55838
26951 * loop-iv.c (iv_number_of_iterations): Call lowpart_subreg on
26952 iv0.step, iv1.step and step.
26953
8b5546d6
JJ
269542013-01-03 Jakub Jelinek <jakub@redhat.com>
26955 Marc Glisse <marc.glisse@inria.fr>
26956
26957 PR tree-optimization/55832
26958 * fold-const.c (fold_binary_loc): For ABS_EXPR<x> >= 0 and
26959 ABS_EXPR<x> < 0 folding use constant_boolean_node instead of
26960 integer_{one,zero}_node.
26961
8ab1d2e9
JJ
269622013-01-03 Jakub Jelinek <jakub@redhat.com>
26963
26964 PR debug/54402
26965 * params.def (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE): New param.
26966 * var-tracking.c (reverse_op): Don't add reverse ops to
26967 VALUEs that have already
0506634a 26968 PARAM_VALUE (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE) or longer locs list.
8ab1d2e9 26969
5b9ad1d4
GP
269702013-01-02 Gerald Pfeifer <gerald@pfeifer.com>
26971
26972 * doc/contrib.texi: Note years as release manager for Mark Mitchell.
26973
e25a6711
TJ
269742013-01-02 Teresa Johnson <tejohnson@google.com>
26975
26976 * dumpfile.c (dump_loc): Print filename with location.
26977 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Use
26978 new location_t parameter to emit complete unroll message with
26979 new dump framework.
26980 (canonicalize_loop_induction_variables): Compute loops location
26981 and pass to try_unroll_loop_completely.
26982 * loop-unroll.c (report_unroll_peel): New function.
26983 (peel_loops_completely): Use new dump format with location
26984 for main dumpfile message, and invoke report_unroll_peel on success.
26985 (decide_unrolling_and_peeling): Ditto.
26986 (decide_peel_once_rolling): Remove old dumpfile message subsumed
26987 by report_unroll_peel.
26988 (decide_peel_completely): Ditto.
26989 (decide_unroll_constant_iterations): Ditto.
26990 (decide_unroll_runtime_iterations): Ditto.
26991 (decide_peel_simple): Ditto.
26992 (decide_unroll_stupid): Ditto.
26993 * cfgloop.c (get_loop_location): New function.
26994 * cfgloop.h (get_loop_location): Declare.
26995
77878621
ST
269962013-01-02 Sriraman Tallam <tmsriram@google.com>
26997
26998 * config/i386/i386.c (fold_builtin_cpu): Remove unnecessary checks for
26999 NULL.
27000
9e65d03e
JDA
270012013-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
27002
27003 PR middle-end/55198
27004 * expr.c (expand_expr_real_1): Don't use bitfield extraction for non
27005 BLKmode objects when EXPAND_MEMORY is specified.
27006
6a7da30f
ST
270072013-01-02 Sriraman Tallam <tmsriram@google.com>
27008
27009 * config/i386/i386.c (ix86_get_function_versions_dispatcher): Fix bug
27010 in loop predicate.
27011 (fold_builtin_cpu): Do not share cpu model decls across statements.
27012
e78167f2
JM
270132013-01-02 Jason Merrill <jason@redhat.com>
27014
27015 PR c++/55804
27016 * tree.c (build_array_type_1): Revert earlier change.
27017
8c075fb4
YZ
270182013-01-02 Yufeng Zhang <yufeng.zhang@arm.com>
27019
27020 * config/aarch64/aarch64-cores.def: Add entries for "cortex-a53" and
27021 "cortex-a57".
27022 * config/aarch64/aarch64-tune.md: Re-generate.
27023
0682ed3e
RB
270242013-01-02 Richard Biener <rguenther@suse.de>
27025
27026 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
0506634a 27027 invariant load do not generate a vector load from the scalar location.
0682ed3e 27028
b8f6a302
RB
270292013-01-02 Richard Biener <rguenther@suse.de>
27030
27031 PR bootstrap/55784
27032 * configure.ac: Add $GMPINC to CFLAGS/CXXFLAGS.
27033 * configure: Regenerate.
27034
04b80dbb
RS
270352013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
27036
27037 * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2)
27038 (expand_builtin_mathfn_ternary, expand_builtin_mathfn_3)
27039 (expand_builtin_int_roundingfn_2): Keep the original target around
27040 for the fallback case.
27041
635b0b0c
RS
270422013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
27043
27044 * tree-vrp.c (range_fits_type_p): Require the MSB of the double_int
27045 to be clear for sign changes.
27046
42d57399
JH
270472013-01-01 Jan Hubicka <jh@suse.cz>
27048
27049 * ipa-inline-analysis.c: Fix formatting.
27050
5bb6669d
JJ
270512013-01-01 Jakub Jelinek <jakub@redhat.com>
27052
27053 PR tree-optimization/55831
27054 * tree-vect-loop.c (get_initial_def_for_induction): Use
27055 gsi_after_labels instead of gsi_start_bb.
ad41bd84 27056\f
86a2db33 27057Copyright (C) 2013 Free Software Foundation, Inc.
ad41bd84
JM
27058
27059Copying and distribution of this file, with or without modification,
27060are permitted in any medium without royalty provided the copyright
27061notice and this notice are preserved.