]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
re PR libstdc++/58729 (tr2::dynamic_bitset::resize fails)
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
4484a35a
AM
12013-10-18 Andrew MacLeod <amacleod@redhat.com>
2
3 * tree-ssa.h: Don't include gimple-low.h, tree-ssa-address.h, sbitmap.h,
4 tree-ssa-threadedge.h, tree-ssa-dom.h, and tree-cfgcleanup.h.
5 * gimple-low.c (gimple_check_call_arg,
6 gimple_check_call_matching_types): Move to cgraph.c.
7 * gimple-low.h: Remove prototype.
8 * cgraph.c: (gimple_check_call_arg, gimple_check_call_matching_types):
9 Relocate from gimple-low.c.
10 * cgraph.h: Add prototype. Don't include basic-block.h.
11 * gimplify.c: Add gimple-low to include list.
12 * omp-low.c: Add gimple-low and tree-cfgcleanup.h to include list.
13 * tree-eh.c: Add gimple-low to include list.
14 * tree-nested.c: Likewise.
15 * cfgexpand.c: Add tree-ssa-address.h to include list.
16 * expr.c: Likewise.
17 * gimple-fold.c: Likewise.
18 * gimple-ssa-strength-reduction.c: Likewise.
19 * trans-mem.c: Likewise.
20 * tree-mudflap.c: Likewise.
21 * tree-ssa-loop-ivopts.c: Likewise.
22 * tree-ssa-dom.c: Include tree-ssa-threadedge.h and tree-ssa-dom.h.
23 (degenerate_phi_result): Move to tree-phinodes.c.
24 * tree-ssa-loop-ch.c: Include tree-ssa-threadedge.h.
25 * tree-ssa-threadedge.c: Likewise.
26 * tree-vrp.c: Likewise.
27 * tree-phinodes.c (degenerate_phi_result): Relocate here.
28 * tree-ssa-dom.h (degenerate_phi_result): Remove Prototype.
29 * tree-phinodes.h (degenerate_phi_result): Add prototype.
30 * tree-ssa-copy.c: Include tree-ssa-dom.h.
31 * tree-ssa-forwprop.c: Likewise.
32 * tree-cfgcleanup.c (execute_cleanup_cfg_post_optimizing,
33 pass_data_cleanup_cfg_post_optimizing,
34 make_pass_cleanup_cfg_post_optimizing): Relocate from tree-optimize.c.
35 * tree-optimize.c: Delete File.
36 * graphite.c: Include tree-cfgcleanup.h.
37 * passes.c: Likewise.
38 * tree-cfg.c: Likewise.
39 * tree-profile.c: Likewise.
40 * tree-ssa-dse.c: Likewise.
41 * tree-ssa-loop-ivcanon.c: Likewise.
42 * tree-switch-conversion.c: Don't include tree-ssa-operands.h.
43 * tree-outof-ssa.c: Include sbitmap.h.
44 * tree-ssa-live.c: Likewise.
45 * tree-ssa-propagate.c: Likewise.
46 * tree-ssa-structalias.c: Likewise.
47 * tree-stdarg.c: Likewise.
48 * Makefile.in (OBJS): Delete tree-optimize.o.
49 * basic-block.h (gcov_type, gcov_type_unsigned): Move to coretypes.h.
50 * coretypes.h (gcov_type, gcov_type_unsigned): Relocate here.
51 * varasm.c: Include basic-block.h.
52 * cfgloop.h: Include function.h instead of basic-block.h
53 (bb_loop_depth): Move to cfgloop.c.
54 * cfgloop.c (bb_loop_depth): Relocate from cfgloop.h.
55
bfaa17c1
TJ
562013-10-18 Teresa Johnson <tejohnson@google.com>
57
58 * predict.c (probably_never_executed): Compare frequency-based
59 count to number of training runs.
60 * params.def (UNLIKELY_BB_COUNT_FRACTION): New parameter.
61
f58883bd
KT
622013-10-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
63
64 * config/arm/arm.c (cortexa9_extra_costs): New table.
65 (arm_cortex_a9_tune): Use cortexa9_extra_costs.
66
01e127b1
JL
672013-10-18 Jeff Law <law@redhat.com>
68
69 * tree-ssa-threadupdate.c: Do not include "tm.h" or "tm_p.h".
70
71 * tree-ssa-threadupdate.c: Include "dbgcnt.h".
72 (register_jump_thread): Add "registered_jump_thread" debug counter support.
73 * dbgcnt.def (registered_jump_thread): New debug counter.
74
f41b8848
AM
752013-10-18 Andrew MacLeod <amacleod@redhat.com>
76
77 * config/rs6000/rs6000.c: Include cgraph.h.
78
adc7a812
TJ
792013-10-18 Teresa Johnson <tejohnson@google.com>
80
81 * tree-ssa-tail-merge.c (replace_block_by): Update edge
82 weights during merging.
83
377d9792
AM
842013-10-18 Andrew MacLeod <amacleod@redhat.com>
85
86 * tree-cfg.h: Rename from tree-flow.h. Remove #includes.
87 * tree-ssa.h: Relocate required #includes from tree-cfg.h.
88 * tree-ssa-operands.h: Remove prototype.
89 * tree-ssa-operands.c (virtual_operand_p): Move to gimple.c.
90 * gimple.c (virtual_operand_p): Relocate from gimple.c.
91 * gimple.h: Add prototype.
92 * gimple-ssa.h: Include tree-ssa-operands.h.
93 * tree-dump.c: Add tree-cfg.h to include list.
94 * tree-ssa-alias.c: Add ipa-reference.h to include list.
95 * config/alpha/alpha.c: Include gimple-ssa.h instead of tree-flow.h.
96 * config/i386/i386.c: Don't include tree-flow.h.
97 * config/rs6000/rs6000.c: Likewise.
98
8ad8afaf
JBG
992013-10-18 Jan-Benedict Glaw <jbglaw@lug-owl.de>
100
101 * config/frv/frv.c (frv_init_cumulative_args): Fix wrong cast.
102
c0e081a9
RB
1032013-10-18 Richard Biener <rguenther@suse.de>
104
105 * stor-layout.c (layout_type): Do not change TYPE_PRECISION
106 or TYPE_UNSIGNED of integral types.
107 (set_min_and_max_values_for_integral_type): Leave TYPE_MIN/MAX_VALUE
108 NULL_TREE for zero-precision integral types.
109
054fceb5
JG
1102013-10-18 James Greenhalgh <james.greenhalgh@arm.com>
111
112 * config/aarch64/arm_neon.h
113 (vcvt<ds>_n_<fsu><32,64>_<fsu><32,64>): Correct argument types.
114
70e8b89b
ST
1152013-10-17 Sriraman Tallam <tmsriram@google.com>
116
117 * opth-gen.awk: Define target_flags_explicit.
118
3170766c 1192013-10-17 Michael Meissner <meissner@linux.vnet.ibm.com>
5845f602
MM
120
121 * config/rs6000/rs6000.c (enum rs6000_reload_reg_type): Add new
122 fields to the reg_addr array that describes the valid addressing
123 mode for any register, general purpose registers, floating point
124 registers, and Altivec registers.
125 (FIRST_RELOAD_REG_CLASS): Likewise.
126 (LAST_RELOAD_REG_CLASS): Likewise.
127 (struct reload_reg_map_type): Likewise.
128 (reload_reg_map_type): Likewise.
129 (RELOAD_REG_VALID): Likewise.
130 (RELOAD_REG_MULTIPLE): Likewise.
131 (RELOAD_REG_INDEXED): Likewise.
132 (RELOAD_REG_OFFSET): Likewise.
133 (RELOAD_REG_PRE_INCDEC): Likewise.
134 (RELOAD_REG_PRE_MODIFY): Likewise.
135 (reg_addr): Likewise.
136 (mode_supports_pre_incdec_p): New helper functions to say whether
137 a given mode supports PRE_INC, PRE_DEC, and PRE_MODIFY.
138 (mode_supports_pre_modify_p): Likewise.
139 (rs6000_debug_vector_unit): Rearrange the -mdebug=reg output to
140 print the valid address mode bits for each mode.
141 (rs6000_debug_print_mode): Likewise.
142 (rs6000_debug_reg_global): Likewise.
143 (rs6000_setup_reg_addr_masks): New function to set up the address
144 mask bits for each type.
145 (rs6000_init_hard_regno_mode_ok): Use memset to clear arrays.
146 Call rs6000_setup_reg_addr_masks to set up the address mask bits.
147 (rs6000_legitimate_address_p): Use mode_supports_pre_incdec_p and
148 mode_supports_pre_modify_p to determine if PRE_INC, PRE_DEC, and
149 PRE_MODIFY are supported.
3170766c
MM
150 (rs6000_output_move_128bit): Change to use {src,dest}_vmx_p for altivec
151 registers, instead of {src,dest}_av_p.
5845f602
MM
152 (rs6000_print_options_internal): Tweak the debug output slightly.
153
82e33890
UB
1542013-10-17 Uros Bizjak <ubizjak@gmail.com>
155
156 * config/i386/sse.md (*vec_widen_smult_even_v8si): Remove
157 isa attribute.
158
0645c1a2
AM
1592013-10-17 Andrew MacLeod <amacleod@redhat.com>
160
161 * tree-flow.h (struct omp_region): Move to omp-low.c.
162 Remove omp_ prototypes and variables.
163 * gimple.h (omp_reduction_init): Move prototype to omp-low.h.
164 (copy_var_decl): Relocate prototype from tree-flow.h.
165 * gimple.c (copy_var_decl): Relocate from omp-low.c.
166 * tree.h: Move prototype to omp-low.h.
167 * omp-low.h: New File. Relocate prototypes here.
168 * omp-low.c (struct omp_region): Make local here.
169 (root_omp_region): Make static.
170 (copy_var_decl) Move to gimple.c.
171 (new_omp_region): Make static.
172 (make_gimple_omp_edges): New. Refactored from tree-cfg.c make_edges.
173 * tree-cfg.c: Include omp-low.h.
174 (make_edges): Factor out OMP specific bits to make_gimple_omp_edges.
175 * gimplify.c: Include omp-low.h.
176 * tree-parloops.c: Likewise.
177
6f1abb55
UB
1782013-10-17 Uros Bizjak <ubizjak@gmail.com>
179
180 * config/i386/i386.c (ix86_fixup_binary_operands): When both source
181 operands are in memory, prefer to force non-matched operand 1 to
182 the register.
183
1ddbbbc0
MM
1842013-10-17 Michael Meissner <meissner@linux.vnet.ibm.com>
185
186 PR target/58673
187 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Only
188 restrict TImode addresses to single indirect registers if both
189 -mquad-memory and -mvsx-timode are used.
190 (rs6000_output_move_128bit): Use quad_load_store_p to determine if
191 we should emit load/store quad. Remove using %y for quad memory
192 addresses.
193
194 * config/rs6000/rs6000.md (mov<mode>_ppc64, TI/PTImode): Add
195 constraints to allow load/store quad on machines where TImode is
196 not allowed in VSX registers. Use 'n' instead of 'F' constraint
197 for TImode to load integer constants.
198
f541a481
KT
1992013-10-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
200
201 * config/aarch64/aarch64.c (aarch64_print_operand): Handle 'c'.
202
51bb310d
MS
2032013-10-17 Marcus Shawcroft <marcus.shawcroft@arm.com>
204
205 * config/aarch64/aarch64.c (aarch64_preferred_reload_class): Adjust
206 handling of STACK_REG.
207
f4bed77b
RB
2082013-10-17 Richard Biener <rguenther@suse.de>
209
210 PR tree-optimization/58143
211 * tree-ssa-loop-im.c (arith_code_with_undefined_signed_overflow):
212 New function.
213 (rewrite_to_defined_overflow): Likewise.
214 (move_computations_dom_walker::before_dom): Rewrite stmts
215 with undefined signed overflow that are not always executed
216 into unsigned arithmetic.
217
d358fb9d
MM
2182013-10-16 Michael Meissner <meissner@linux.vnet.ibm.com>
219
220 PR target/57756
221 * config/rs6000/rs6000.opt (rs6000_isa_flags_explicit): Move the
222 explicit isa flag to be an options variable, instead of using
223 global_options_set. Remove define from rs6000.h.
224 * config/rs6000/rs6000.h (rs6000_isa_flags_explicit): Likewise.
225
226 * config/rs6000/rs6000.c (rs6000_option_override_internal):
227 Initialize rs6000_isa_flags_explicit.
228 (rs6000_function_specific_save): Add gcc_options* parameter, so
229 that the powerpc builds after the 2013-10-15 changes.
230 (rs6000_function_specific_restore): Likewise.
231
c71aed47
DD
2322013-10-16 DJ Delorie <dj@redhat.com>
233
234 * config/rl78/rl78.c (rl78_alloc_address_registers_macax): Verify
235 op is a REG before checking REGNO.
236 (rl78_alloc_physical_registers): Verify pattern is a SET before
237 checking SET_SRC.
238
90d3bd51
BS
2392013-10-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
240
241 * gcc/config/rs6000/vector.md (vec_unpacks_hi_v4sf): Correct for
242 endianness.
243 (vec_unpacks_lo_v4sf): Likewise.
244 (vec_unpacks_float_hi_v4si): Likewise.
245 (vec_unpacks_float_lo_v4si): Likewise.
246 (vec_unpacku_float_hi_v4si): Likewise.
247 (vec_unpacku_float_lo_v4si): Likewise.
248
de75c876
BS
2492013-10-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
250
251 * config/rs6000/vsx.md (vsx_concat_<mode>): Adjust output for LE.
252 (vsx_concat_v2sf): Likewise.
253
21216998
JG
2542013-10-16 James Greenhalgh <james.greenhalgh@arm.com>
255
256 * config/aarch64/aarch64.md
257 (*mov<mode>_aarch64): Fix output template for DUP (element) Scalar.
258
1ef88893 2592013-10-16 Andrew MacLeod <amacleod@redhat.com>
7ab4168e 260
1ef88893 261 PR tree-optimization/58697
7ab4168e 262 * cfgloop.c (get_estimated_loop_iterations_int): Rename from
1ef88893
AM
263 estimated_loop_iterations_int.
264 (max_stmt_executions_int): Call get_max_loop_iterations_int.
7ab4168e 265 (get_max_loop_iterations_int): New. HWINT version of
1ef88893
AM
266 get_max_loop_iterations.
267 * cfgloop.h: Add prototypes.
268 * loop-iv.c (find_simple_exit): call get_estimated_loop_iterations_int.
7ab4168e 269 * loop-unroll.c (decide_peel_once_rolling): Call
1ef88893
AM
270 get_estimated_loop_iterations_int.
271 * tree-ssa-loop-niter.c (estimated_loop_iterations_int): Add back.
272 * tree-ssa-loop-niter.h: Tweak prototypes.
273
c22df64f
DM
2742013-10-16 David Malcolm <dmalcolm@redhat.com>
275
276 * gengtype-parse.c (struct_field_seq): Ignore access-control
277 keywords ("public:" etc).
278
f24bb080
MS
2792013-10-16 Marcus Shawcroft <marcus.shawcroft@arm.com>
280
281 * config/aarch64/aarch64.c (aarch64_regno_regclass): Classify
282 FRAME_POINTER_REGNUM and ARG_POINTER_REGNUM as POINTER_REGS.
283
c281bf26
YR
2842013-10-16 Yvan Roux <yvan.roux@linaro.org>
285
286 * config/arm/arm.opt (mlra): New option.
287 * config/arm/arm.c (arm_lra_p): New function.
288 (TARGET_LRA_P): Define.
289
5806f481
PM
2902013-10-16 Paulo Matos <pmatos@broadcom.com>
291
292 * tree-core.h (tree_code_name): Remove.
293 * tree.h (get_tree_code_name): New prototype.
294 * tree.c (tree_code_name): Make static.
295 (get_tree_code_name): New function.
296 (dump_tree_statistics, tree_check_failed, tree_not_check_failed,
297 tree_class_check_failed, tree_range_check_failed,
298 tree_not_class_check_failed, omp_clause_check_failed,
299 tree_contains_struct_check_failed, tree_operand_check_failed): Use new
300 wrapper get_tree_code_name instead of calling tree_code_name directly.
301 * tree-vrp.c (dump_asserts_for): Likewise.
302 * tree-dump.c (dequeue_and_dump): Likewise.
303 * tree-pretty-print.c (do_niy, dump_generic_node): Likewise.
304 * tree-pretty-print.h (pp_unsupported_tree): Likewise.
305 * lto-streamer-out.c (lto_write_tree, DFS_write_tree): Likewise.
306 * tree-ssa-dom.c (print_expr_hash_elt): Likewise.
307 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
308 dump_ternary_rhs, dump_gimple_assign, dump_gimple_cond,
309 dump_gimple_omp_for): Likewise.
310 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Likewise.
311 * tree-ssa-pre.c (print_pre_expr): Likewise.
312 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Likewise.
313 * print-tree.c (print_node_brief, print_node): Likewise.
314 * gimple.c (gimple_check_failed): Likewise.
315 * lto-streamer.c (lto_tag_name, print_lto_report): Likewise.
316 * config/frv/frv.c (frv_init_cumulative_args): Likewise.
317 * config/mep/mep.c (mep_validate_vliw): Likewise.
318 * config/iq2000/iq2000.c (init_cumulative_args): Likewise.
319 * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
320
82c9df56
GG
3212013-10-16 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
322
323 * config/i386/i386.c (ix86_option_override_internal): Enable FMA4
324 for AMD bdver3.
325
b82d0df9
HPN
3262013-10-16 Hans-Peter Nilsson <hp@axis.com>
327
328 * config/cris/t-elfmulti (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
329 (MULTILIB_MATCHES): Add multilib for -march=v8.
330
bf7b5747
ST
3312013-10-15 Sriraman Tallam <tmsriram@google.com>
332
333 PR target/57756
334 * optc-save-gen.awk: Add extra parameter to the save and restore
335 target calls.
336 * opth-gen.awk: Generate new TARGET_* macros to accept a parameter.
337 * tree.c (build_optimization_node): New parameter. Add extra parameter
338 to call to cl_optimization_save.
339 (build_target_option_node): New parameter. Add extra parameter
340 to call to cl_target_option_save.
341 * tree.h (build_optimization_node): New parameter.
342 (build_target_option_node): New parameter.
343 * c-family/c-common.c (handle_optimize_attribute): Fix calls to
344 build_optimization_node and build_target_option_node.
345 * c-family/c-pragma.c (handle_pragma_optimize): Ditto.
346 (handle_pragma_push_options): Ditto.
347 * toplev.c (process_options): Ditto.
348 * opts.c (init_options_struct): Check for opts_set non-null.
349 * target.def (target_option.save): New parameter.
350 (target_option.restore): New parameter.
351 * tm.texi: Generate.
352 * config/i386/i386-c.c (ix86_target_macros_internal): Ditto.
353 (ix86_pragma_target_parse): Ditto.
354 * config/i386/i386-protos.h (ix86_valid_target_attribute_tree): New
355 parameters.
356 * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix calls
357 to build_optimization_node and build_target_option_node.
358 (rs6000_valid_attribute_p): Ditto.
359 (rs6000_pragma_target_parse): Ditto.
360 * config/i386/i386.opt (x_ix86_target_flags_explicit): New TargetSave
361 data.
362 * config/i386/i386.h:
363 TARGET_64BIT_P: New Macro
364 TARGET_MMX_P: New Macro.
365 TARGET_3DNOW_P: New Macro.
366 TARGET_3DNOW_A_P: New Macro.
367 TARGET_SSE_P: New Macro.
368 TARGET_SSE2_P: New Macro.
369 TARGET_SSE3_P: New Macro.
370 TARGET_SSSE3_P: New Macro.
371 TARGET_SSE4_1_P: New Macro.
372 TARGET_SSE4_2_P: New Macro.
373 TARGET_AVX_P: New Macro.
374 TARGET_AVX2_P: New Macro.
375 TARGET_AVX512F_P: New Macro.
376 TARGET_AVX512PF_P: New Macro.
377 TARGET_AVX512ER_P: New Macro.
378 TARGET_AVX512CD_P: New Macro.
379 TARGET_FMA_P: New Macro.
380 TARGET_SSE4A_P: New Macro.
381 TARGET_FMA4_P: New Macro.
382 TARGET_XOP_P: New Macro.
383 TARGET_LWP_P: New Macro.
384 TARGET_ABM_P: New Macro.
385 TARGET_BMI_P: New Macro.
386 TARGET_BMI2_P: New Macro.
387 TARGET_LZCNT_P: New Macro.
388 TARGET_TBM_P: New Macro.
389 TARGET_POPCNT_P: New Macro.
390 TARGET_SAHF_P: New Macro.
391 TARGET_MOVBE_P: New Macro.
392 TARGET_CRC32_P: New Macro.
393 TARGET_AES_P: New Macro.
394 TARGET_PCLMUL_P: New Macro.
395 TARGET_CMPXCHG16B_P: New Macro.
396 TARGET_FSGSBASE_P: New Macro.
397 TARGET_RDRND_P: New Macro.
398 TARGET_F16C_P: New Macro.
399 TARGET_RTM_P: New Macro.
400 TARGET_HLE_P: New Macro.
401 TARGET_RDSEED_P: New Macro.
402 TARGET_PRFCHW_P: New Macro.
403 TARGET_ADX_P: New Macro.
404 TARGET_FXSR_P: New Macro.
405 TARGET_XSAVE_P: New Macro.
406 TARGET_XSAVEOPT_P: New Macro.
407 TARGET_LP64_P: New Macro.
408 TARGET_X32_P: New Macro.
409 TARGET_FPMATH_DEFAULT_P: New Macro.
410 TARGET_FLOAT_RETURNS_IN_80387_P: New Macro.
411 * config/i386/i386.c (ix86_option_override_internal): New parameters.
412 opts and opts_set.
413 Change ix86_tune_string to access opts->x_ix86_tune_string.
414 Change ix86_isa_flags to access opts->x_ix86_isa_flags.
415 Change ix86_arch_string to access opts->x_ix86_arch_string.
416 Change ix86_stringop_alg to access opts->x_ix86_stringop_alg.
417 Change ix86_pmode to access opts->x_ix86_pmode.
418 Change ix86_abi to access opts->x_ix86_abi.
419 Change ix86_cmodel to access opts->x_ix86_cmodel.
420 Change ix86_asm_dialect to access opts->x_ix86_asm_dialect.
421 Change ix86_isa_flags_explicit to access
422 opts->x_ix86_isa_flags_explicit.
423 Change ix86_dump_tunes to access opts->x_ix86_dump_tunes.
424 Change ix86_regparm to access opts->x_ix86_regparm.
425 Change ix86_branch_cost to access opts->x_ix86_branch_cost.
426 Change ix86_preferred_stack_boundary_arg to access
427 opts->x_ix86_preferred_stack_boundary_arg.
428 Change ix86_force_align_arg_pointer to access
429 opts->x_ix86_force_align_arg_pointer.
430 Change ix86_incoming_stack_boundar_arg to access
431 opts->x_ix86_incoming_stack_boundar_arg.
432 Change ix86_fpmath to access opts->x_ix86_fpmath.
433 Change ix86_veclibabi_type to access opts->x_ix86_veclibabi_type.
434 Change ix86_recip_name to access opts->x_ix86_recip_name.
435 Change ix86_stack_protector_guard to access
436 opts->x_ix86_stack_protector_guard.
437 Change ix86_tune_memcpy_strategy to access
438 opts->x_ix86_tune_memcpy_strategy.
439 Change ix86_tune_memset_strategy to access
440 opts->x_ix86_tune_memset_strategy.
441 Change global_options to access opts.
442 Change global_options_set to access opts_set.
6f1abb55
UB
443 Change TARGET_64BIT to TARGET_64BIT_P (opts->...).
444 Change TARGET_MMX to TARGET_MMX_P (opts->...).
445 Change TARGET_3DNOW to TARGET_3DNOW_P (opts->...).
446 Change TARGET_3DNOW_A to TARGET_3DNOW_A_P (opts->...).
447 Change TARGET_SSE to TARGET_SSE_P (opts->...).
448 Change TARGET_SSE2 to TARGET_SSE2_P (opts->...).
449 Change TARGET_SSE3 to TARGET_SSE3_P (opts->...).
450 Change TARGET_SSSE3 to TARGET_SSSE3_P (opts->...).
451 Change TARGET_SSE4_1 to TARGET_SSE4_1_P (opts->...).
452 Change TARGET_SSE4_2 to TARGET_SSE4_2_P (opts->...).
453 Change TARGET_AVX to TARGET_AVX_P (opts->...).
454 Change TARGET_AVX2 to TARGET_AVX2_P (opts->...).
455 Change TARGET_AVX512F to TARGET_AVX512F_P (opts->...).
456 Change TARGET_AVX512PF to TARGET_AVX512PF_P (opts->...).
457 Change TARGET_AVX512ER to TARGET_AVX512ER_P (opts->...).
458 Change TARGET_AVX512CD to TARGET_AVX512CD_P (opts->...).
459 Change TARGET_FMA to TARGET_FMA_P (opts->...).
460 Change TARGET_SSE4A to TARGET_SSE4A_P (opts->...).
461 Change TARGET_FMA4 to TARGET_FMA4_P (opts->...).
462 Change TARGET_XOP to TARGET_XOP_P (opts->...).
463 Change TARGET_LWP to TARGET_LWP_P (opts->...).
464 Change TARGET_ABM to TARGET_ABM_P (opts->...).
465 Change TARGET_BMI to TARGET_BMI_P (opts->...).
466 Change TARGET_BMI2 to TARGET_BMI2_P (opts->...).
467 Change TARGET_LZCNT to TARGET_LZCNT_P (opts->...).
468 Change TARGET_TBM to TARGET_TBM_P (opts->...).
469 Change TARGET_POPCNT to TARGET_POPCNT_P (opts->...).
470 Change TARGET_SAHF to TARGET_SAHF_P (opts->...).
471 Change TARGET_MOVBE to TARGET_MOVBE_P (opts->...).
472 Change TARGET_CRC32 to TARGET_CRC32_P (opts->...).
473 Change TARGET_AES to TARGET_AES_P (opts->...).
474 Change TARGET_PCLMUL to TARGET_PCLMUL_P (opts->...).
475 Change TARGET_CMPXCHG16B to TARGET_CMPXCHG16B_P (opts->...).
476 Change TARGET_FSGSBASE to TARGET_FSGSBASE_P (opts->...).
477 Change TARGET_RDRND to TARGET_RDRND_P (opts->...).
478 Change TARGET_F16C to TARGET_F16C_P (opts->...).
479 Change TARGET_RTM to TARGET_RTM_P (opts->...).
480 Change TARGET_HLE to TARGET_HLE_P (opts->...).
481 Change TARGET_RDSEED to TARGET_RDSEED_P (opts->...).
482 Change TARGET_PRFCHW to TARGET_PRFCHW_P (opts->...).
483 Change TARGET_ADX to TARGET_ADX_P (opts->...).
484 Change TARGET_FXSR to TARGET_FXSR_P (opts->...).
485 Change TARGET_XSAVE to TARGET_XSAVE_P (opts->...).
486 Change TARGET_XSAVEOPT to TARGET_XSAVEOPT_P (opts->...).
487 Change TARGET_LP64 to TARGET_LP64_P (opts->...).
488 Change TARGET_X32 to TARGET_X32_P (opts->...).
489 Change TARGET_FPMATH_DEFAULT to TARGET_FPMATH_DEFAULT_P (opts->...).
490 Change TARGET_FLOAT_RETURNS_IN_80387 to
491 TARGET_FLOAT_RETURNS_IN_80387_P (opts->...).
bf7b5747
ST
492 (ix86_function_specific_save): New parameter. Use opts-> fields
493 to replace global fields.
494 (ix86_function_specific_restore): Ditto.
495 (ix86_valid_target_attribute_inner_p): New parameters.
496 Fix recursive call.
497 Fix call to ix86_handle_option and set_option.
498 (ix86_valid_target_attribute_tree): New parameters.
499 Change global_options to access opts.
500 Change global_options_set to access opts_set.
501 Fix call to ix86_valid_target_attribute_inner_p.
502 Change ix86_tune_string to access opts->x_ix86_tune_string.
503 Change ix86_arch_string to access opts->x_ix86_arch_string.
504 Change ix86_fpmath to access opts->x_ix86_fpmath
505 Fix call to ix86_option_override_internal.
506 Fix call to ix86_add_new_builtins.
507 Fix calls to build_optimization_node and build_target_option_node.
508 (ix86_valid_target_attribute_p): Remove access to global_options.
509 Use new gcc_options structure func_options.
510 Fix call to ix86_valid_target_attribute_tree.
511 Fix call to build_optimization_node.
512 (get_builtin_code_for_version): Fix call to
513 ix86_valid_target_attribute_tree.
514
459260ec
DM
5152013-10-15 David Malcolm <dmalcolm@redhat.com>
516
517 * Makefile.in (PICFLAG): New.
518 (enable_host_shared): New.
519 (INTERNAL_CFLAGS): Use PICFLAG.
520 (LIBIBERTY): Use pic build of libiberty.a if configured with
521 --enable-host-shared.
522 * configure.ac: Add --enable-host-shared, setting up new
523 PICFLAG variable.
524 * configure: Regenerate.
6f1abb55 525 * doc/install.texi (--enable-shared): Add note contrasting it with ...
459260ec
DM
526 (--enable-host-shared): New option.
527
16022041
RS
5282013-10-15 Richard Biener <rguenther@suse.de>
529
530 * tree-tailcall.c (find_tail_calls): Don't use tail-call recursion
531 for built-in functions.
532
b114bfb4
ZC
5332013-10-15 Zhenqiang Chen <zhenqiang.chen@arm.com>
534
535 * tree-ssa-reassoc.c: Include rtl.h and tm_p.h.
536 (optimize_range_tests_1): New function,
537 extracted from optimize_range_tests.
538 (optimize_range_tests_xor): Similarly.
539 (optimize_range_tests_diff): New function.
540 (optimize_range_tests): Use optimize_range_tests_1.
541
69b8f2f9
CH
5422013-10-15 Cong Hou <congh@google.com>
543
7ab4168e
MS
544 * tree-vect-loop.c (vect_is_simple_reduction_1): Relax the
545 requirement of the reduction pattern so that one operand of the
69b8f2f9
CH
546 reduction operation can come from outside of the loop.
547
8ff5a4e4
JG
5482013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
549
550 * config/arm/neon-schedgen.ml: Remove.
551 * config/arm/cortex-a9-neon.md: Remove comment regarding
552 neon-schedgen.ml.
553
52b69ad2
JG
5542013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
555
556 * config/arm/types: Remove old neon types.
557
e7c6a556
JG
5582013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
559
560 * config/arm/cortex-a7.md
561 (cortex_a7_neon_type): New.
562 (cortex_a7_neon_mul): Update for new types.
563 (cortex_a7_neon_mla): Likewise.
564 (cortex_a7_neon): Likewise.
565
795dd8d5
JG
5662013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
567
568 * config/arm/cortex-a15-neon.md
569 (cortex_a15_neon_type): New,
570
571 (cortex_a15_neon_int_1): Remove.
572 (cortex_a15_neon_int_2): Likewise.
573 (cortex_a15_neon_int_3): Likewise.
574 (cortex_a15_neon_int_4): Likewise.
575 (cortex_a15_neon_int_5): Likewise.
576 (cortex_a15_neon_vqneg_vqabs): Likewise.
577 (cortex_a15_neon_vmov): Likewise.
578 (cortex_a15_neon_vaba): Likewise.
579 (cortex_a15_neon_vaba_qqq): Likewise.
580 (cortex_a15_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
581 (cortex_a15_neon_mul_qqq_8_16_32_ddd_32): Likewise.
582 (cortex_a15_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_long_scalar):
583 Likewise.
584 (cortex_a15_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
585 (cortex_a15_neon_mla_qqq_8_16): Likewise.
586 (cortex_a15_neon_mla_ddd_32_qqd_16_ddd_32_scalar): Likewise.
587 (cortex_a15_neon_mla_qqq_32_qqd_32_scalar): Likewise.
588 (cortex_a15_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
589 (cortex_a15_neon_mul_qqd_32_scalar): Likewise.
590 (cortex_a15_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
591 (cortex_a15_neon_shift_1): Likewise.
592 (cortex_a15_neon_shift_2): Likewise.
593 (cortex_a15_neon_shift_3): Likewise.
594 (cortex_a15_neon_vshl_ddd): Likewise.
595 (cortex_a15_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
596 (cortex_a15_neon_vsra_vrsra): Likewise.
597 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
598 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
599 (cortex_a15_neon_bp_3cycle): Likewise.
600 (cortex_a15_neon_ldm_2): Likewise.
601 (cortex_a15_neon_stm_2): Likewise.
602 (cortex_a15_neon_mcr): Likewise.
603 (cortex_a15_neon_mrc): Likewise.
604 (cortex_a15_neon_fp_vadd_ddd_vabs_dd): Likewise.
605 (cortex_a15_neon_fp_vadd_qqq_vabs_qq): Likewise.
606 (cortex_a15_neon_fp_vmul_ddd): Likewise.
607 (cortex_a15_neon_fp_vmul_qqd): Likewise.
608 (cortex_a15_neon_fp_vmla_ddd): Likewise.
609 (cortex_a15_neon_fp_vmla_qqq): Likewise.
610 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
611 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
612 (cortex_a15_neon_fp_vrecps_vrsqrts_ddd): Likewise.
613 (cortex_a15_neon_fp_vrecps_vrsqrts_qqq): Likewise.
614 (cortex_a15_neon_bp_simple): Likewise.
615 (cortex_a15_neon_bp_2cycle): Likewise.
616 (cortex_a15_neon_bp_3cycle): Likewise.
617 (cortex_a15_neon_vld1_1_2_regs): Likewise.
618 (cortex_a15_neon_vld1_3_4_regs): Likewise.
619 (cortex_a15_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
620 (cortex_a15_neon_vld2_4_regs): Likewise.
621 (cortex_a15_neon_vld3_vld4): Likewise.
622 (cortex_a15_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
623 (cortex_a15_neon_vst1_3_4_regs): Likewise.
624 (cortex_a15_neon_vst2_4_regs_vst3_vst4): Rename to...
625 (cortex_a15_neon_vst2_4_regs_vst3): ...This, update for new attributes.
626 (cortex_a15_neon_vst3_vst4): Rename to...
627 (cortex_a15_neon_vst4): This, update for new attributes.
628 (cortex_a15_neon_vld1_vld2_lane): Update for new attributes.
629 (cortex_a15_neon_vld3_vld4_lane): Likewise.
630 (cortex_a15_neon_vst1_vst2_lane): Likewise.
631 (cortex_a15_neon_vst3_vst4_lane): Likewise.
632 (cortex_a15_neon_vld3_vld4_all_lanes): Likewise.
633 (cortex_a15_neon_ldm_2): Likewise.
634 (cortex_a15_neon_stm_2): Likewise.
635 (cortex_a15_neon_mcr): Likewise.
636 (cortex_a15_neon_mcr_2_mcrr): Likewise.
637 (cortex_a15_neon_mrc): Likewise.
638 (cortex_a15_neon_mrrc): Likewise.
639
640 (cortex_a15_neon_abd): New.
641 (cortex_a15_neon_abd_q): Likewise.
642 (cortex_a15_neon_aba): Likewise.
643 (cortex_a15_neon_aba_q): Likewise.
644 (cortex_a15_neon_acc): Likewise.
645 (cortex_a15_neon_acc_q): Likewise.
646 (cortex_a15_neon_arith_basic): Likewise.
647 (cortex_a15_neon_arith_complex): Likewise.
648 (cortex_a15_neon_multiply): Likewise.
649 (cortex_a15_neon_multiply_q): Likewise.
650 (cortex_a15_neon_mla): Likewise.
651 (cortex_a15_neon_mla_q): Likewise.
652 (cortex_a15_neon_sat_mla_long): Likewise.
653 (cortex_a15_neon_shift_acc): Likewise.
654 (cortex_a15_neon_shift_imm_basic): Likewise.
655 (cortex_a15_neon_shift_imm_complex): Likewise.
656 (cortex_a15_neon_shift_reg_basic): Likewise.
657 (cortex_a15_neon_shift_reg_basic_q): Likewise.
658 (cortex_a15_neon_shift_reg_complex): Likewise.
659 (cortex_a15_neon_shift_reg_complex_q): Likewise.
660 (cortex_a15_neon_fp_negabs): Likewise
661 (cortex_a15_neon_fp_arith): Likewise
662 (cortex_a15_neon_fp_arith_q): Likewise
663 (cortex_a15_neon_fp_cvt_int): Likewise
664 (cortex_a15_neon_fp_cvt_int_q): Likewise
665 (cortex_a15_neon_fp_cvt_16): Likewise
666 (cortex_a15_neon_fp_mul): Likewise
667 (cortex_a15_neon_fp_mul_q): Likewise
668 (cortex_a15_neon_fp_mla): Likewise
669 (cortex_a15_neon_fp_mla_q): Likewise
670 (cortex_a15_neon_fp_recps_rsqrte): Likewise.
671 (cortex_a15_neon_fp_recps_rsqrte_q): Likewise.
672 (cortex_a15_neon_bitops): Likewise.
673 (cortex_a15_neon_bitops_q): Likewise.
674 (cortex_a15_neon_from_gp): Likewise.
675 (cortex_a15_neon_from_gp_q): Likewise.
676 (cortex_a15_neon_tbl3_tbl4): Likewise.
677 (cortex_a15_neon_zip_q): Likewise.
678 (cortex_a15_neon_to_gp): Likewise.
679 (cortex_a15_neon_load_a): Likewise.
680 (cortex_a15_neon_load_b): Likewise.
681 (cortex_a15_neon_load_c): Likewise.
682 (cortex_a15_neon_load_d): Likewise.
683 (cortex_a15_neon_load_e): Likewise.
684 (cortex_a15_neon_load_f): Likewise.
685 (cortex_a15_neon_store_a): Likewise.
686 (cortex_a15_neon_store_b): Likewise.
687 (cortex_a15_neon_store_c): Likewise.
688 (cortex_a15_neon_store_d): Likewise.
689 (cortex_a15_neon_store_e): Likewise.
690 (cortex_a15_neon_store_f): Likewise.
691 (cortex_a15_neon_store_g): Likewise.
692 (cortex_a15_neon_store_h): Likewise.
693 (cortex_a15_vfp_to_from_gp): Likewise.
694
bc5e57e3
JG
6952013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
696
697 * config/arm/cortex-a9-neon.md (cortex_a9_neon_type): New.
698
699 (cortex_a9_neon_vshl_ddd): Remove.
700 (cortex_a9_neon_vst3_vst4): Likewise.
701 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
702
703 (cortex_a9_neon_bit_ops_q): New.
704
705 (cortex_a9_neon_int_1): Use cortex_a8_neon_type.
706 (cortex_a9_neon_int_2): Likewise.
707 (cortex_a9_neon_int_3): Likewise.
708 (cortex_a9_neon_int_4): Likewise.
709 (cortex_a9_neon_int_5): Likewise.
710 (cortex_a9_neon_vqneg_vqabs): Likewise.
711 (cortex_a9_neon_vmov): Likewise.
712 (cortex_a9_neon_vaba): Likewise.
713 (cortex_a9_neon_vaba_qqq): Likewise.
714 (cortex_a9_neon_shift_1): Likewise.
715 (cortex_a9_neon_shift_2): Likewise.
716 (cortex_a9_neon_shift_3): Likewise.
717 (cortex_a9_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
718 (cortex_a9_neon_vsra_vrsra): Likewise.
719 (cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
720 (cortex_a9_neon_mul_qqq_8_16_32_ddd_32): Likewise.
721 (cortex_a9_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_long_scalar):
722 Likewise.
723 (cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
724 (cortex_a9_neon_mla_qqq_8_16): Likewise.
725 (cortex_a9_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_long_scalar_qdd_64_32_long):
726 Likewise.
727 (cortex_a9_neon_mla_qqq_32_qqd_32_scalar): Likewise.
728 (cortex_a9_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
729 (cortex_a9_neon_mul_qqd_32_scalar): Likewise.
730 (cortex_a9_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
731 (cortex_a9_neon_fp_vadd_ddd_vabs_dd): Likewise.
732 (cortex_a9_neon_fp_vadd_qqq_vabs_qq): Likewise.
733 (cortex_a9_neon_fp_vsum): Likewise.
734 (cortex_a9_neon_fp_vmul_ddd): Likewise.
735 (cortex_a9_neon_fp_vmul_qqd): Likewise.
736 (cortex_a9_neon_fp_vmla_ddd): Likewise.
737 (cortex_a9_neon_fp_vmla_qqq): Likewise.
738 (cortex_a9_neon_fp_vmla_ddd_scalar): Likewise.
739 (cortex_a9_neon_fp_vmla_qqq_scalar): Likewise.
740 (cortex_a9_neon_fp_vrecps_vrsqrts_ddd): Likewise.
741 (cortex_a9_neon_fp_vrecps_vrsqrts_qqq): Likewise.
742 (cortex_a9_neon_bp_simple): Likewise.
743 (cortex_a9_neon_bp_2cycle): Likewise.
744 (cortex_a9_neon_bp_3cycle): Likewise.
745 (cortex_a9_neon_ldr): Likewise.
746 (cortex_a9_neon_str): Likewise.
747 (cortex_a9_neon_vld1_1_2_regs): Likewise.
748 (cortex_a9_neon_vld1_3_4_regs): Likewise.
749 (cortex_a9_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
750 (cortex_a9_neon_vld2_4_regs): Likewise.
751 (cortex_a9_neon_vld3_vld4): Likewise.
752 (cortex_a9_neon_vld1_vld2_lane): Likewise.
753 (cortex_a9_neon_vld3_vld4_lane): Likewise.
754 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
755 (cortex_a9_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
756 (cortex_a9_neon_vst1_3_4_regs): Likewise.
757 (cortex_a9_neon_vst2_4_regs_vst3_vst4): Likewise.
758 (cortex_a9_neon_vst1_vst2_lane): Likewise.
759 (cortex_a9_neon_vst3_vst4_lane): Likewise.
760 (cortex_a9_neon_mcr): Likewise.
761 (cortex_a9_neon_mcr_2_mcrr): Likewise.
762 (cortex_a9_neon_mrc): Likewise.
763 (cortex_a9_neon_mrrc): Likewise.
764
9deda8cb
JG
7652013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
766
767 * config/arm/cortex-a8-neon.md (cortex_a8_neon_type): New.
768
769 (cortex_a8_neon_vshl_ddd): Remove.
770 (cortex_a8_neon_vst3_vst4): Likewise.
771 (cortex_a8_neon_vld3_vld4_all_lanes): Likewise.
772
773 (cortex_a8_neon_bit_ops_q): New.
774
775 (cortex_a8_neon_int_1): Use cortex_a8_neon_type.
776 (cortex_a8_neon_int_2): Likewise..
777 (cortex_a8_neon_int_3): Likewise.
778 (cortex_a8_neon_int_5): Likewise.
779 (cortex_a8_neon_vqneg_vqabs): Likewise.
780 (cortex_a8_neon_int_4): Likewise.
781 (cortex_a8_neon_vaba): Likewise.
782 (cortex_a8_neon_vaba_qqq): Likewise.
783 (cortex_a8_neon_shift_1): Likewise.
784 (cortex_a8_neon_shift_2): Likewise.
785 (cortex_a8_neon_shift_3): Likewise.
786 (cortex_a8_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
787 (cortex_a8_neon_vsra_vrsra): Likewise.
788 (cortex_a8_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
789 (cortex_a8_neon_mul_qqq_8_16_32_ddd_32): Likewise.
790 (cortex_a8_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_long_scalar):
791 Likewise.
792 (cortex_a8_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
793 (cortex_a8_neon_mla_qqq_8_16): Likewise.
794 (cortex_a8_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_long_scalar_qdd_64_32_long):
795 Likewise.
796 (cortex_a8_neon_mla_qqq_32_qqd_32_scalar): Likewise.
797 (cortex_a8_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
798 (cortex_a8_neon_mul_qqd_32_scalar): Likewise.
799 (cortex_a8_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
800 (cortex_a8_neon_fp_vadd_ddd_vabs_dd): Likewise.
801 (cortex_a8_neon_fp_vadd_qqq_vabs_qq): Likewise.
802 (cortex_a8_neon_fp_vsum): Likewise.
803 (cortex_a8_neon_fp_vmul_ddd): Likewise.
804 (cortex_a8_neon_fp_vmul_qqd): Likewise.
805 (cortex_a8_neon_fp_vmla_ddd): Likewise.
806 (cortex_a8_neon_fp_vmla_qqq): Likewise.
807 (cortex_a8_neon_fp_vmla_ddd_scalar): Likewise.
808 (cortex_a8_neon_fp_vmla_qqq_scalar): Likewise.
809 (cortex_a8_neon_fp_vrecps_vrsqrts_ddd): Likewise.
810 (cortex_a8_neon_fp_vrecps_vrsqrts_qqq): Likewise.
811 (cortex_a8_neon_bp_simple): Likewise.
812 (cortex_a8_neon_bp_2cycle): Likewise.
813 (cortex_a8_neon_bp_3cycle): Likewise.
814 (cortex_a8_neon_ldr): Likewise.
815 (cortex_a8_neon_str): Likewise.
816 (cortex_a8_neon_vld1_1_2_regs): Likewise.
817 (cortex_a8_neon_vld1_3_4_regs): Likewise.
818 (cortex_a8_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
819 (cortex_a8_neon_vld2_4_regs): Likewise.
820 (cortex_a8_neon_vld3_vld4): Likewise.
821 (cortex_a8_neon_vld1_vld2_lane): Likewise.
822 (cortex_a8_neon_vld3_vld4_lane): Likewise.
823 (cortex_a8_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
824 (cortex_a8_neon_vst1_3_4_regs): Likewise.
825 (cortex_a8_neon_vst2_4_regs_vst3_vst4): Likewise.
826 (cortex_a8_neon_vst1_vst2_lane): Likewise.
827 (cortex_a8_neon_vst3_vst4_lane): Likewise.
828 (cortex_a8_neon_mcr): Likewise.
829 (cortex_a8_neon_mcr_2_mcrr): Likewise.
830 (cortex_a8_neon_mrc): Likewise.
831 (cortex_a8_neon_mrrc): Likewise.
832
0f686aa9
JG
8332013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
834
835 * config/aarch64/iterators.md (Vetype): Add SF and DF modes.
836 (fp): New.
837 * config/aarch64/aarch64-simd.md (neon_type): Remove.
838 (aarch64_simd_dup<mode>): Add "type" attribute.
839 (aarch64_dup_lane<mode>): Likewise.
840 (aarch64_dup_lane_<vswap_width_name><mode>): Likewise.
841 (*aarch64_simd_mov<mode>): Likewise.
842 (aarch64_simd_mov_from_<mode>low): Likewise.
843 (aarch64_simd_mov_from_<mode>high): Likewise.
844 (orn<mode>3): Likewise.
845 (bic<mode>3): Likewise.
846 (add<mode>3): Likewise.
847 (sub<mode>3): Likewise.
848 (mul<mode>3): Likewise.
849 (*aarch64_mul3_elt<mode>): Likewise.
850 (*aarch64_mul3_elt_<vswap_width_name><mode>): Likewise.
851 (*aarch64_mul3_elt_to_128df): Likewise.
852 (*aarch64_mul3_elt_to_64v2df): Likewise.
853 (neg<mode>2): Likewise.
854 (abs<mode>2): Likewise.
855 (abd<mode>_3): Likewise.
856 (aba<mode>_3): Likewise.
857 (fabd<mode>_3): Likewise.
858 (*fabd_scalar<mode>3): Likewise.
859 (and<mode>3): Likewise.
860 (ior<mode>3): Likewise.
861 (xor<mode>3): Likewise.
862 (one_cmpl<mode>2): Likewise.
863 (aarch64_simd_vec_set<mode>): Likewise.
864 (aarch64_simd_lshr<mode>): Likewise.
865 (aarch64_simd_ashr<mode>): Likewise.
866 (aarch64_simd_imm_shl<mode>): Likewise.
867 (aarch64_simd_reg_sshl<mode): Likewise.
868 (aarch64_simd_reg_shl<mode>_unsigned): Likewise.
869 (aarch64_simd_reg_shl<mode>_signed): Likewise.
870 (aarch64_simd_vec_setv2di): Likewise.
871 (aarch64_simd_vec_set<mode>): Likewise.
872 (aarch64_mla<mode>): Likewise.
873 (*aarch64_mla_elt<mode>): Likewise.
874 (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
875 (aarch64_mls<mode>): Likewise.
876 (*aarch64_mls_elt<mode>): Likewise.
877 (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
878 (<su><maxmin><mode>3): Likewise.
879 (move_lo_quad_<mode>): Likewise.
880 (aarch64_simd_move_hi_quad_<mode>): Likewise.
881 (aarch64_simd_vec_pack_trunc_<mode>): Likewise.
882 (vec_pack_trunc_<mode>): Likewise.
883 (aarch64_simd_vec_unpack<su>_lo_<mode>): Likewise.
884 (aarch64_simd_vec_unpack<su>_hi_<mode>): Likewise.
885 (*aarch64_<su>mlal_lo<mode>): Likewise.
886 (*aarch64_<su>mlal_hi<mode>): Likewise.
887 (*aarch64_<su>mlsl_lo<mode>): Likewise.
888 (*aarch64_<su>mlsl_hi<mode>): Likewise.
889 (*aarch64_<su>mlal<mode>): Likewise.
890 (*aarch64_<su>mlsl<mode>): Likewise.
891 (aarch64_simd_vec_<su>mult_lo_<mode>): Likewise.
892 (aarch64_simd_vec_<su>mult_hi_<mode>): Likewise.
893 (add<mode>3): Likewise.
894 (sub<mode>3): Likewise.
895 (mul<mode>3): Likewise.
896 (div<mode>3): Likewise.
897 (neg<mode>2): Likewise.
898 (abs<mode>2): Likewise.
899 (fma<mode>4): Likewise.
900 (*aarch64_fma4_elt<mode>): Likewise.
901 (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
902 (*aarch64_fma4_elt_to_128df): Likewise.
903 (*aarch64_fma4_elt_to_64v2df): Likewise.
904 (fnma<mode>4): Likewise.
905 (*aarch64_fnma4_elt<mode>): Likewise.
906 (*aarch64_fnma4_elt_<vswap_width_name><mode>
907 (*aarch64_fnma4_elt_to_128df): Likewise.
908 (*aarch64_fnma4_elt_to_64v2df): Likewise.
909 (<frint_pattern><mode>2): Likewise.
910 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): Likewise.
911 (<optab><fcvt_target><VDQF:VDQF:mode>2): Likewise.
912 (vec_unpacks_lo_v4sf): Likewise.
913 (aarch64_float_extend_lo_v2df): Likewise.
914 (vec_unpacks_hi_v4sf): Likewise.
915 (aarch64_float_truncate_lo_v2sf): Likewise.
916 (aarch64_float_truncate_hi_v4sf): Likewise.
917 (aarch64_vmls<mode>): Likewise.
918 (<su><maxmin><mode>3): Likewise.
919 (<maxmin_uns><mode>3): Likewise.
920 (reduc_<sur>plus_<mode>): Likewise.
921 (reduc_<sur>plus_v2di): Likewise.
922 (reduc_<sur>plus_v2si): Likewise.
923 (reduc_<sur>plus_<mode>): Likewise.
924 (aarch64_addpv4sf): Likewise.
925 (clz<mode>2): Likewise.
926 (reduc_<maxmin_uns>_<mode>): Likewise.
927 (reduc_<maxmin_uns>_v2di): Likewise.
928 (reduc_<maxmin_uns>_v2si): Likewise.
929 (reduc_<maxmin_uns>_<mode>): Likewise.
930 (reduc_<maxmin_uns>_v4sf): Likewise.
931 (aarch64_simd_bsl<mode>_internal): Likewise.
932 (*aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): Likewise.
933 (*aarch64_get_lane_zero_extendsi<mode>): Likewise.
934 (aarch64_get_lane<mode>): Likewise.
935 (*aarch64_combinez<mode>): Likewise.
936 (aarch64_combine<mode>): Likewise.
937 (aarch64_simd_combine<mode>): Likewise.
938 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_hi_internal): Likewise.
939 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_lo_internal): Likewise.
940 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>): Likewise.
941 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>w<mode>): Likewise.
942 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>w2<mode>_internal): Likewise.
943 (aarch64_<sur>h<addsub><mode>): Likewise.
944 (aarch64_<sur><addsub>hn<mode>): Likewise.
945 (aarch64_<sur><addsub>hn2<mode>): Likewise.
946 (aarch64_pmul<mode>): Likewise.
947 (aarch64_<su_optab><optab><mode>): Likewise.
948 (aarch64_<sur>qadd<mode>): Likewise.
949 (aarch64_sqmovun<mode>): Likewise.
950 (aarch64_<sur>qmovn<mode>): Likewise.
951 (aarch64_s<optab><mode>): Likewise.
952 (aarch64_sq<r>dmulh<mode>): Likewise.
953 (aarch64_sq<r>dmulh_lane<mode>): Likewise.
954 (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
955 (aarch64_sq<r>dmulh_lane<mode>): Likewise.
956 (aarch64_sqdml<SBINQOPS:as>l<mode>): Likewise.
957 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
958 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
959 (aarch64_sqdml<SBINQOPS:as>l_n<mode>): Likewise.
960 (aarch64_sqdml<SBINQOPS:as>l2<mode>_internal): Likewise.
961 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
962 (aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Likewise.
963 (aarch64_sqdmull<mode>): Likewise.
964 (aarch64_sqdmull_lane<mode>_internal): Likewise.
965 (aarch64_sqdmull_n<mode>): Likewise.
966 (aarch64_sqdmull2<mode>_internal): Likewise.
967 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
968 (aarch64_sqdmull2_n<mode>_internal): Likewise.
969 (aarch64_<sur>shl<mode>): Likewise.
970 (aarch64_<sur>q<r>shl<mode>
971 (aarch64_<sur>shll_n<mode>): Likewise.
972 (aarch64_<sur>shll2_n<mode>): Likewise.
973 (aarch64_<sur>shr_n<mode>): Likewise.
974 (aarch64_<sur>sra_n<mode>): Likewise.
975 (aarch64_<sur>s<lr>i_n<mode>): Likewise.
976 (aarch64_<sur>qshl<u>_n<mode>): Likewise.
977 (aarch64_<sur>q<r>shr<u>n_n<mode>): Likewise.
978 (aarch64_cm<optab><mode>): Likewise.
979 (aarch64_cm<optab>di): Likewise.
980 (aarch64_cm<optab><mode>): Likewise.
981 (aarch64_cm<optab>di): Likewise.
982 (aarch64_cmtst<mode>): Likewise.
983 (aarch64_cmtstdi): Likewise.
984 (aarch64_cm<optab><mode>): Likewise.
985 (*aarch64_fac<optab><mode>): Likewise.
986 (aarch64_addp<mode>): Likewise.
987 (aarch64_addpdi): Likewise.
988 (sqrt<mode>2): Likewise.
989 (vec_load_lanesoi<mode>): Likewise.
990 (vec_store_lanesoi<mode>): Likewise.
991 (vec_load_lanesci<mode>): Likewise.
992 (vec_store_lanesci<mode>): Likewise.
993 (vec_load_lanesxi<mode>): Likewise.
994 (vec_store_lanesxi<mode>): Likewise.
995 (*aarch64_mov<mode>): Likewise.
996 (aarch64_ld2<mode>_dreg): Likewise.
997 (aarch64_ld2<mode>_dreg): Likewise.
998 (aarch64_ld3<mode>_dreg): Likewise.
999 (aarch64_ld3<mode>_dreg): Likewise.
1000 (aarch64_ld4<mode>_dreg): Likewise.
1001 (aarch64_ld4<mode>_dreg): Likewise.
1002 (aarch64_tbl1<mode>): Likewise.
1003 (aarch64_tbl2v16qi): Likewise.
1004 (aarch64_combinev16qi): Likewise.
1005 (aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>): Likewise.
1006 (aarch64_st2<mode>_dreg): Likewise.
1007 (aarch64_st2<mode>_dreg): Likewise.
1008 (aarch64_st3<mode>_dreg): Likewise.
1009 (aarch64_st3<mode>_dreg): Likewise.
1010 (aarch64_st4<mode>_dreg): Likewise.
1011 (aarch64_st4<mode>_dreg): Likewise.
1012 (*aarch64_simd_ld1r<mode>): Likewise.
1013 (aarch64_frecpe<mode>): Likewise.
1014 (aarch64_frecp<FRECP:frecp_suffix><mode>): Likewise.
1015 (aarch64_frecps<mode>): Likewise.
1016
f7379e5e
JG
10172013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
1018
1019 * config/arm/iterators.md (V_elem_ch): New.
1020 (q): Likewise.
1021 (VQH_type): Likewise.
1022 * config/arm/arm.md (is_neon_type): New.
1023 (conds): Use is_neon_type.
1024 (anddi3_insn): Update type attribute.
1025 (xordi3_insn): Likewise.
1026 (one_cmpldi2): Likewise.
1027 * gcc/config/arm/vfp.md (movhf_vfp_neon): Update type attribute.
1028 * gcc/config/arm/neon.md (neon_mov): Update type attribute.
1029 (*movmisalign<mode>_neon_store): Likewise.
1030 (*movmisalign<mode>_neon_load): Likewise.
1031 (vec_set<mode>_internal): Likewise.
1032 (vec_set<mode>_internal): Likewise.
1033 (vec_setv2di_internal): Likewise.
1034 (vec_extract<mode>): Likewise.
1035 (vec_extract<mode>): Likewise.
1036 (vec_extractv2di): Likewise.
1037 (*add<mode>3_neon): Likewise.
1038 (adddi3_neon): Likewise.
1039 (*sub<mode>3_neon): Likewise.
1040 (subdi3_neon): Likewise.
1041 (fma<VCVTF:mode>4): Likewise.
1042 (fma<VCVTF:mode>4_intrinsic): Likewise.
1043 (*fmsub<VCVTF:mode>4): Likewise.
1044 (fmsub<VCVTF:mode>4_intrinsic): Likewise.
1045 (neon_vrint<NEON_VRINT:nvrint_variant><VCVTF:mode>): Likewise.
1046 (ior<mode>3): Likewise.
1047 (and<mode>3): Likewise.
1048 (orn<mode>3_neon): Likewise.
1049 (orndi3_neon): Likewise.
1050 (bic<mode>3_neon): Likewise.
1051 (bicdi3_neon): Likewise.
1052 (xor<mode>3): Likewise.
1053 (one_cmpl<mode>2): Likewise.
1054 (abs<mode>2): Likewise.
1055 (neg<mode>2): Likewise.
1056 (negdi2_neon): Likewise.
1057 (*umin<mode>3_neon): Likewise.
1058 (*umax<mode>3_neon): Likewise.
1059 (*smin<mode>3_neon): Likewise.
1060 (*smax<mode>3_neon): Likewise.
1061 (vashl<mode>3): Likewise.
1062 (vashr<mode>3_imm): Likewise.
1063 (vlshr<mode>3_imm): Likewise.
1064 (ashl<mode>3_signed): Likewise.
1065 (ashl<mode>3_unsigned): Likewise.
1066 (neon_load_count): Likewise.
1067 (ashldi3_neon_noclobber): Likewise.
1068 (ashldi3_neon): Likewise.
1069 (signed_shift_di3_neon): Likewise.
1070 (unsigned_shift_di3_neon): Likewise.
1071 (ashrdi3_neon_imm_noclobber): Likewise.
1072 (lshrdi3_neon_imm_noclobber): Likewise.
1073 (<shift>di3_neon): Likewise.
1074 (widen_ssum<mode>3): Likewise.
1075 (widen_usum<mode>3): Likewise.
1076 (quad_halves_<code>v4si): Likewise.
1077 (quad_halves_<code>v4sf): Likewise.
1078 (quad_halves_<code>v8hi): Likewise.
1079 (quad_halves_<code>v16qi): Likewise.
1080 (reduc_splus_v2di): Likewise.
1081 (neon_vpadd_internal<mode>): Likewise.
1082 (neon_vpsmin<mode>): Likewise.
1083 (neon_vpsmax<mode>): Likewise.
1084 (neon_vpumin<mode>): Likewise.
1085 (neon_vpumax<mode>): Likewise.
1086 (*ss_add<mode>_neon): Likewise.
1087 (*us_add<mode>_neon): Likewise.
1088 (*ss_sub<mode>_neon): Likewise.
1089 (*us_sub<mode>_neon): Likewise.
1090 (neon_vadd<mode>_unspec): Likewise.
1091 (neon_vaddl<mode>): Likewise.
1092 (neon_vaddw<mode>): Likewise.
1093 (neon_vhadd<mode>): Likewise.
1094 (neon_vqadd<mode>): Likewise.
1095 (neon_vaddhn<mode>): Likewise.
1096 (neon_vmul<mode>): Likewise.
1097 (neon_vfms<VCVTF:mode>): Likewise.
1098 (neon_vmlal<mode>): Likewise.
1099 (neon_vmls<mode>): Likewise.
1100 (neon_vmlsl<mode>): Likewise.
1101 (neon_vqdmulh<mode>): Likewise.
1102 (neon_vqdmlal<mode>): Likewise.
1103 (neon_vqdmlsl<mode>): Likewise.
1104 (neon_vmull<mode>): Likewise.
1105 (neon_vqdmull<mode>): Likewise.
1106 (neon_vsub<mode>_unspec): Likewise.
1107 (neon_vsubl<mode>): Likewise.
1108 (neon_vsubw<mode>): Likewise.
1109 (neon_vqsub<mode>): Likewise.
1110 (neon_vhsub<mode>): Likewise.
1111 (neon_vsubhn<mode>): Likewise.
1112 (neon_vceq<mode>): Likewise.
1113 (neon_vcge<mode>): Likewise.
1114 (neon_vcgeu<mode>): Likewise.
1115 (neon_vcgt<mode>): Likewise.
1116 (neon_vcgtu<mode>): Likewise.
1117 (neon_vcle<mode>): Likewise.
1118 (neon_vclt<mode>): Likewise.
1119 (neon_vcage<mode>): Likewise.
1120 (neon_vcagt<mode>): Likewise.
1121 (neon_vtst<mode>): Likewise.
1122 (neon_vabd<mode>): Likewise.
1123 (neon_vabdl<mode>): Likewise.
1124 (neon_vaba<mode>): Likewise.
1125 (neon_vabal<mode>): Likewise.
1126 (neon_vmax<mode>): Likewise.
1127 (neon_vmin<mode>): Likewise.
1128 (neon_vpaddl<mode>): Likewise.
1129 (neon_vpadal<mode>): Likewise.
1130 (neon_vpmax<mode>): Likewise.
1131 (neon_vpmin<mode>): Likewise.
1132 (neon_vrecps<mode>): Likewise.
1133 (neon_vrsqrts<mode>): Likewise.
1134 (neon_vqabs<mode>): Likewise.
1135 (neon_vqneg<mode>): Likewise.
1136 (neon_vcls<mode>): Likewise.
1137 (clz<mode>2): Likewise.
1138 (popcount<mode>2): Likewise.
1139 (neon_vrecpe<mode>): Likewise.
1140 (neon_vrsqrte<mode>): Likewise.
1141 (neon_vget_lane<mode>_sext_internal): Likewise.
1142 (neon_vget_lane<mode>_zext_internal): Likewise.
1143 (neon_vdup_n<mode>): Likewise.
1144 (neon_vdup_n<mode>): Likewise.
1145 (neon_vdup_nv2di): Likewise.
1146 (neon_vdup_lane<mode>_interal): Likewise.
1147 (*neon_vswp<mode>): Likewise.
1148 (neon_vcombine<mode>): Likewise.
1149 (float<mode><V_cvtto>2): Likewise.
1150 (floatuns<mode><V_cvtto>2): Likewise.
1151 (fix_trunc<mode><V_cvtto>2): Likewise.
1152 (fixuns_trunc<mode><V_cvtto>2
1153 (neon_vcvt<mode>): Likewise.
1154 (neon_vcvt<mode>): Likewise.
1155 (neon_vcvtv4sfv4hf): Likewise.
1156 (neon_vcvtv4hfv4sf): Likewise.
1157 (neon_vcvt_n<mode>): Likewise.
1158 (neon_vcvt_n<mode>): Likewise.
1159 (neon_vmovn<mode>): Likewise.
1160 (neon_vqmovn<mode>): Likewise.
1161 (neon_vqmovun<mode>): Likewise.
1162 (neon_vmovl<mode>): Likewise.
1163 (neon_vmul_lane<mode>): Likewise.
1164 (neon_vmul_lane<mode>): Likewise.
1165 (neon_vmull_lane<mode>): Likewise.
1166 (neon_vqdmull_lane<mode>): Likewise.
1167 (neon_vqdmulh_lane<mode>): Likewise.
1168 (neon_vqdmulh_lane<mode>): Likewise.
1169 (neon_vmla_lane<mode>): Likewise.
1170 (neon_vmla_lane<mode>): Likewise.
1171 (neon_vmlal_lane<mode>): Likewise.
1172 (neon_vqdmlal_lane<mode>): Likewise.
1173 (neon_vmls_lane<mode>): Likewise.
1174 (neon_vmls_lane<mode>): Likewise.
1175 (neon_vmlsl_lane<mode>): Likewise.
1176 (neon_vqdmlsl_lane<mode>): Likewise.
1177 (neon_vext<mode>): Likewise.
1178 (neon_vrev64<mode>): Likewise.
1179 (neon_vrev32<mode>): Likewise.
1180 (neon_vrev16<mode>): Likewise.
1181 (neon_vbsl<mode>_internal): Likewise.
1182 (neon_vshl<mode>): Likewise.
1183 (neon_vqshl<mode>): Likewise.
1184 (neon_vshr_n<mode>): Likewise.
1185 (neon_vshrn_n<mode>): Likewise.
1186 (neon_vqshrn_n<mode>): Likewise.
1187 (neon_vqshrun_n<mode>): Likewise.
1188 (neon_vshl_n<mode>): Likewise.
1189 (neon_vqshl_n<mode>): Likewise.
1190 (neon_vqshlu_n<mode>): Likewise.
1191 (neon_vshll_n<mode>): Likewise.
1192 (neon_vsra_n<mode>): Likewise.
1193 (neon_vsri_n<mode>): Likewise.
1194 (neon_vsli_n<mode>): Likewise.
1195 (neon_vtbl1v8qi): Likewise.
1196 (neon_vtbl2v8qi): Likewise.
1197 (neon_vtbl3v8qi): Likewise.
1198 (neon_vtbl4v8qi): Likewise.
1199 (neon_vtbl1v16qi): Likewise.
1200 (neon_vtbl2v16qi): Likewise.
1201 (neon_vcombinev16qi): Likewise.
1202 (neon_vtbx1v8qi): Likewise.
1203 (neon_vtbx2v8qi): Likewise.
1204 (neon_vtbx3v8qi): Likewise.
1205 (neon_vtbx4v8qi): Likewise.
1206 (*neon_vtrn<mode>_insn): Likewise.
1207 (*neon_vzip<mode>_insn): Likewise.
1208 (*neon_vuzp<mode>_insn): Likewise.
1209 (neon_vld1<mode>): Likewise.
1210 (neon_vld1_lane<mode>): Likewise.
1211 (neon_vld1_lane<mode>): Likewise.
1212 (neon_vld1_dup<mode>): Likewise.
1213 (neon_vld1_dup<mode>): Likewise.
1214 (neon_vld1_dupv2di): Likewise.
1215 (neon_vst1<mode>): Likewise.
1216 (neon_vst1_lane<mode>): Likewise.
1217 (neon_vst1_lane<mode>): Likewise.
1218 (neon_vld2<mode>): Likewise.
1219 (neon_vld2<mode>): Likewise.
1220 (neon_vld2_lane<mode>): Likewise.
1221 (neon_vld2_lane<mode>): Likewise.
1222 (neon_vld2_dup<mode>): Likewise.
1223 (neon_vst2<mode>): Likewise.
1224 (neon_vst2<mode>): Likewise.
1225 (neon_vst2_lane<mode>): Likewise.
1226 (neon_vst2_lane<mode>): Likewise.
1227 (neon_vld3<mode>): Likewise.
1228 (neon_vld3qa<mode>): Likewise.
1229 (neon_vld3qb<mode>): Likewise.
1230 (neon_vld3_lane<mode>): Likewise.
1231 (neon_vld3_lane<mode>): Likewise.
1232 (neon_vld3_dup<mode>): Likewise.
1233 (neon_vst3<mode>): Likewise.
1234 (neon_vst3qa<mode>): Likewise.
1235 (neon_vst3qb<mode>): Likewise.
1236 (neon_vst3_lane<mode>): Likewise.
1237 (neon_vst3_lane<mode>): Likewise.
1238 (neon_vld4<mode>): Likewise.
1239 (neon_vld4qa<mode>): Likewise.
1240 (neon_vld4qb<mode>): Likewise.
1241 (neon_vld4_lane<mode>): Likewise.
1242 (neon_vld4_lane<mode>): Likewise.
1243 (neon_vld4_dup<mode>): Likewise.
1244 (neon_vst4<mode>): Likewise.
1245 (neon_vst4qa<mode>): Likewise.
1246 (neon_vst4qb<mode>): Likewise.
1247 (neon_vst4_lane<mode>): Likewise.
1248 (neon_vst4_lane<mode>): Likewise.
1249 (neon_vec_unpack<US>_lo_<mode>): Likewise.
1250 (neon_vec_unpack<US>_hi_<mode>): Likewise.
1251 (neon_vec_<US>mult_lo_<mode>): Likewise.
1252 (neon_vec_<US>mult_hi_<mode>): Likewise.
1253 (neon_vec_<US>shiftl_<mode>): Likewise.
1254 (neon_unpack<US>_<mode>): Likewise.
1255 (neon_vec_<US>mult_<mode>): Likewise.
1256 (vec_pack_trunc_<mode>): Likewise.
1257 (neon_vec_pack_trunc_<mode>): Likewise.
1258 (neon_vabd<mode>_2): Likewise.
1259 (neon_vabd<mode>_3): Likewise.
1260
a9e66678
JG
12612013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
1262
1263 * config/aarch64/aarch64.md (movtf_aarch64): Update type attribute.
1264 (load_pair): Update type attribute.
1265 (store_pair): Update type attribute.
1266 * config/aarch64/iterators.md (q): New.
1267
20445ed6
JG
12682013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
1269
1270 * config/arm/types.md: Add new types for Neon insns.
1271
afb4ac68
AI
12722013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
1273 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1274 Sergey Lega <sergey.s.lega@intel.com>
1275 Anna Tikhonova <anna.tikhonova@intel.com>
1276 Ilya Tocar <ilya.tocar@intel.com>
1277 Andrey Turetskiy <andrey.turetskiy@intel.com>
1278 Ilya Verbin <ilya.verbin@intel.com>
1279 Kirill Yukhin <kirill.yukhin@intel.com>
1280 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1281
1282 * config/i386/sse.md (unspec): Add UNSPEC_RCP14, UNSPEC_RSQRT14,
1283 UNSPEC_FIXUPIMM, UNSPEC_SCALEF, UNSPEC_GETEXP, UNSPEC_GETMANT,
1284 UNSPEC_EXP2, UNSPEC_RCP28, UNSPEC_RSQRT28.
1285 (rcp14<mode>): New.
1286 (srcp14<mode>): Ditto.
1287 (rsqrt14<mode>): Ditto.
1288 (rsqrt14<mode>): Ditto.
1289 (avx512f_vmscalef<mode>): Ditto.
1290 (avx512f_scalef<mode>): Ditto.
1291 (avx512f_getexp<mode>): Ditto.
1292 (avx512f_sgetexp<mode>): Ditto.
1293 (avx512f_fixupimm<mode>): Ditto.
1294 (avx512f_sfixupimm<mode>): Ditto.
1295 (avx512f_rndscale<mode>): Ditto.
1296 (*avx512er_exp2<mode>): Ditto.
1297 (*avx512er_rcp28<mode>): Ditto.
1298 (avx512er_rsqrt28<mode>): Ditto.
1299 (avx512f_getmant<mode>): Ditto.
1300 (avx512f_getmant<mode>): Ditto.
1301 (avx512f_rndscale<mode>): Fix formatting.
1302
a1b499a3
JL
13032013-10-15 Martin Jambor <mjambor@suse.cz>
1304
1305 * ipa-utils.h (ipa_edge_within_scc): Declare.
1306 * ipa-cp.c (edge_within_scc): Moved...
1307 * ipa-utils.c (ipa_edge_within_scc): ...here. Updated all callers.
afb4ac68 1308
2e2206fa
AI
13092013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
1310 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1311 Sergey Lega <sergey.s.lega@intel.com>
1312 Anna Tikhonova <anna.tikhonova@intel.com>
1313 Ilya Tocar <ilya.tocar@intel.com>
1314 Andrey Turetskiy <andrey.turetskiy@intel.com>
1315 Ilya Verbin <ilya.verbin@intel.com>
1316 Kirill Yukhin <kirill.yukhin@intel.com>
1317 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1318
1319 * config/i386/predicates.md (const_8_to_15_operand): New.
1320 (const_16_to_31_operand): Ditto.
1321 * config/i386/sse.md (V8FI): New.
1322 (V16FI): Ditto.
1323 (reduc_splus_v8df): Ditto.
1324 (reduc_splus_v16sf): Ditto.
1325 (avx512f_vextract<shuffletype>32x4_1): Ditto.
1326 (vec_extract_hi_<mode>): Ditto.
1327 (avx512f_vinsert<shuffletype>32x4_1): Ditto.
1328 (vec_set_lo_<mode>): Ditto.
1329 (vec_set_hi_<mode>): Ditto.
1330 (avx512f_shuf_<shuffletype>64x2_1): Ditto.
1331 (avx512f_shuf_<shuffletype>32x4_1): Ditto.
1332 (avx512f_pshufd_1): Ditto.
1333 (avx512f_broadcast<mode>): Ditto.
1334 (avx512f_broadcast<mode>): Ditto.
1335 (define_split): Split vec_extract_lo into move.
1336 (ssequartermode): Ditto.
1337 (ssedoublemode): Extened with wider modes.
1338 (vec_extract_lo_<mode>): Ditto.
1339
0fe65b75
AI
13402013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
1341 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1342 Sergey Lega <sergey.s.lega@intel.com>
1343 Anna Tikhonova <anna.tikhonova@intel.com>
1344 Ilya Tocar <ilya.tocar@intel.com>
1345 Andrey Turetskiy <andrey.turetskiy@intel.com>
1346 Ilya Verbin <ilya.verbin@intel.com>
1347 Kirill Yukhin <kirill.yukhin@intel.com>
1348 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1349
1350 * config/i386/predicates.md (register_or_constm1_operand): New.
1351 * config/i386/sse.md (unspec): Add UNSPEC_UNSIGNED_PCMP, UNSPEC_TESTM,
1352 UNSPEC_TESTNM, UNSPEC_VTERNLOG, UNSPEC_ALIGN, UNSPEC_CONFLICT,
1353 UNSPEC_MASKED_EQ, UNSPEC_MASKED_GT, UNSPEC_GATHER_PREFETCH,
1354 UNSPEC_SCATTER_PREFETCH
1355 (VI48_512): New.
1356 (avx512f_ucmp<mode>3): Ditto.
1357 (avx512f_vternlog<mode>): Ditto.
1358 (avx512f_align<mode>): Ditto.
1359 (<shift_insn><mode>3): Ditto.
1360 (avx512f_<rotate>v<mode>): Ditto.
1361 (avx512f_<rotate><mode>): Ditto.
1362 (avx512f_eq<mode>3): Ditto.
1363 (avx512f_eq<mode>3_1): Ditto.
1364 (avx512f_gt<mode>3): Ditto.
1365 (avx512f_testm<mode>3): Ditto.
1366 (avx512f_testnm<mode>3): Ditto.
1367 (avx512pf_gatherpf<mode>): Ditto.
1368 (*avx512pf_gatherpf<mode>_mask): Ditto.
1369 (*avx512pf_gatherpf<mode>): Ditto.
1370 (avx512pf_scatterpf<mode>): Ditto.
1371 (*avx512pf_scatterpf<mode>_mask): Ditto.
1372 (*avx512pf_scatterpf<mode>): Ditto.
1373 (avx512f_vec_dup_gpr<mode>): Ditto.
1374 (clz<mode>2): Ditto.
1375 (conflict<mode>): Ditto.
1376 (REDUC_SMINMAX_MODE): Extened with wider modes.
1377 (reduc_<code>_<mode>): Ditto.
1378 (vlshr<mode>3): Ditto.
1379 (vashl<mode>3): Ditto.
1380
ab931c71
AI
13812013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
1382 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1383 Sergey Lega <sergey.s.lega@intel.com>
1384 Anna Tikhonova <anna.tikhonova@intel.com>
1385 Ilya Tocar <ilya.tocar@intel.com>
1386 Andrey Turetskiy <andrey.turetskiy@intel.com>
1387 Ilya Verbin <ilya.verbin@intel.com>
1388 Kirill Yukhin <kirill.yukhin@intel.com>
1389 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1390
1391 * config/i386/sse.md (unspec): Added UNSPEC_VPERMI2, UNSPEC_VPERMT2,
1392 UNSPEC_SCATTER.
1393 (VI48F_512): New.
1394 (avx512fmaskmode): Ditto.
1395 (bcstscalarsuff): Ditto.
1396 (avx512f_blendm<mode>): Ditto.
1397 (cmp_imm_predicate): Ditto.
1398 (avx512f_cmp<mode>3): Ditto.
1399 (avx512f_vec_dup<mode>): Ditto.
1400 (avx512f_vec_dup_mem<mode>): Ditto.
1401 (avx512f_vpermi2var<mode>3): Ditto.
1402 (avx512f_vpermt2var<mode>3): Ditto.
1403 (vec_init<mode>): Ditto.
1404 (avx512f_gathersi<mode>): Ditto.
1405 (*avx512f_gathersi<mode>): Ditto.
1406 (*avx512f_gathersi<mode>_2): Ditto.
1407 (avx512f_gatherdi<mode>): Ditto.
1408 (*avx512f_gatherdi<mode>): Ditto.
1409 (*avx512f_gatherdi<mode>_2): Ditto.
1410 (avx512f_scattersi<mode>): Ditto.
1411 (*avx512f_scattersi<mode>): Ditto.
1412 (avx512f_scatterdi<mode>): Ditto.
1413 (*avx512f_scatterdi<mode>): Ditto.
1414 (sseintprefix): Extened with wider modes.
1415 (VEC_GATHER_IDXSI): Ditto.
1416 (VEC_GATHER_IDXDI): Ditto.
1417 (VEC_GATHER_SRCDI): Ditto.
1418
c9acb877
MGD
14192013-10-15 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
1420 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1421
1422 * config/arm/t-aprofile: New file.
1423 * config.gcc: Handle --with-multilib-list option.
1424
ecbda484
BS
14252013-10-15 Bernd Schmidt <bernds@codesourcery.com>
1426
6f1abb55
UB
1427 * reload1.c (reloads_unique_chain_p): Ensure that r1 is
1428 the input for r2.
ecbda484 1429
24f161fd
RB
14302013-10-15 Richard Biener <rguenther@suse.de>
1431
1432 * tree-loop-distribution.c (build_empty_rdg): Inline into
1433 single user.
1434 (rdg_flag_vertex): Inline into single user.
1435 (rdg_flag_vertex_and_dependent): Likewise.
1436 (build_rdg_partition_for_vertex): Remove processed bitmap.
1437 (rdg_build_partitions): Simplify.
1438
5de989ed
RB
14392013-10-15 Richard Biener <rguenther@suse.de>
1440
1441 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
1442 Restructure forwarding through conversions and copies to
1443 avoid performing copy-propagation the wrong way. Adjust
1444 recursion invocations.
1445 (forward_propagate_addr_expr): Add argument stating if we
1446 are recursing from a single-use.
1447 (ssa_forward_propagate_and_combine): Adjust.
1448
47e0da37
DM
14492013-10-14 David Malcolm <dmalcolm@redhat.com>
1450
1451 * dumpfile.h (gcc::dump_manager): New class, to hold state
1452 relating to dumpfile management.
1453 (get_dump_file_name): Remove in favor of method of dump_manager.
1454 (dump_initialized_p): Likewise.
1455 (dump_start): Likewise.
1456 (dump_finish): Likewise.
1457 (dump_switch_p): Likewise.
1458 (dump_register): Likewise.
1459 (get_dump_file_info): Likewise.
1460 * context.c (gcc::context::context): Construct the dump_manager
1461 instance.
1462 * context.h (gcc::context::get_dumps): New.
1463 (gcc::context::m_dumps): New.
1464 * coverage.c (coverage_init): Port to dump_manager API.
6f1abb55 1465 * dumpfile.c (extra_dump_files): Convert to field of gcc::dump_manager.
47e0da37
DM
1466 (extra_dump_files_in_use): Likewise.
1467 (extra_dump_files_alloced): Likewise.
1468 (gcc::dump_manager::dump_manager): New.
1469 (dump_register): Convert to...
1470 (gcc::dump_manager::dump_register): ...method, replacing
1471 function-static next_dump with m_next_dump field.
1472 (get_dump_file_info): Convert to...
1473 (gcc::dump_manager::get_dump_file_info): ...method.
1474 (get_dump_file_name): Convert to...
1475 (gcc::dump_manager::get_dump_file_name): ...method.
1476 (dump_start): Convert to...
1477 (gcc::dump_manager::dump_start): ...method.
1478 (dump_finish): Convert to...
1479 (gcc::dump_manager::dump_finish): ...method.
1480 (dump_begin): Replace body with...
1481 (gcc::dump_manager::dump_begin): ...new method.
1482 (dump_phase_enabled_p): Convert to...
1483 (gcc::dump_manager::dump_phase_enabled_p): ...method.
1484 (dump_phase_enabled_p): Convert to...
1485 (gcc::dump_manager::dump_phase_enabled_p): ...method.
1486 (dump_initialized_p): Convert to...
1487 (gcc::dump_manager::dump_initialized_p): ...method.
1488 (dump_flag_name): Replace body with...
1489 (gcc::dump_manager::dump_flag_name): ...new method.
1490 (dump_enable_all): Convert to...
1491 (gcc::dump_manager::dump_enable_all): ...new method.
1492 (opt_info_enable_passes): Convert to...
1493 (gcc::dump_manager::opt_info_enable_passes): ...new method.
1494 (dump_switch_p_1): Convert to...
1495 (gcc::dump_manager::dump_switch_p_1): ...new method.
1496 (dump_switch_p): Convert to...
1497 (gcc::dump_manager::dump_switch_p): ...new method.
1498 (opt_info_switch_p): Port to dump_manager API.
1499 (enable_rtl_dump_file): Likewise.
1500 * opts-global.c (handle_common_deferred_options): Port to new
1501 dump_manager API.
1502 * passes.c (pass_manager::finish_optimization_passes): Likewise.
1503 (pass_manager::register_one_dump_file): Likewise.
1504 (pass_manager::register_pass): Likewise.
1505 (pass_init_dump_file): Likewise.
1506 (pass_fini_dump_file): Likewise.
1507 * statistics.c (statistics_early_init): Likewise.
1508
83fd5d11
RB
15092013-10-14 Richard Biener <rguenther@suse.de>
1510
1511 * gimple.c (gimple_canonical_types, canonical_type_hash_cache,
1512 iterative_hash_canonical_type, gimple_canonical_type_hash,
1513 gimple_canonical_types_compatible_p, gimple_canonical_type_eq,
1514 gimple_register_canonical_type, print_gimple_types_stats,
1515 free_gimple_type_tables): Move to lto/lto.c
1516 (gt-gimple.h): Do not include.
1517 * gimple.h (gimple_register_canonical_type,
1518 print_gimple_types_stats, free_gimple_type_tables): Remove.
1519 * Makefile.in (GTFILES): Remove gimple.c.
1520
a6dbd0f7
TS
15212013-10-14 Travis Snoozy <quandary@remstate.com>
1522
1523 PR target/58716
1524 * config/msp430/msp430.c (msp430_option_override): Correct thinko
1525 scanning for msp430x targets.
1526
b5ccb9ed
EB
15272013-10-14 Eric Botcazou <ebotcazou@adacore.com>
1528
1529 PR bootstrap/58509
1530 * config/sparc/sparc-protos.h (widen_mem_for_ldd_peep): Declare.
1531 (registers_ok_for_ldd_peep): Move around.
1532 * config/sparc/sparc.c (widen_mem_for_ldd_peep): New.
1533 * config/sparc/sparc.md (widening peepholes): Use it.
1534
fd7e5084
RB
15352013-10-14 Richard Biener <rguenther@suse.de>
1536
1537 PR middle-end/58712
1538 PR middle-end/55358
1539 * gimple.c (iterative_hash_canonical_type): Make sure to
1540 record the hash into the correct hashtable slot.
1541
3246afaa
EB
15422013-10-13 Eric Botcazou <ebotcazou@adacore.com>
1543
1544 PR rtl-optimization/58662
1545 * combine.c (try_combine): Take into account death nodes on I2 when
1546 splitting a PARALLEL of two independent SETs. Fix dump message.
1547
5d30dc5b
OE
15482013-10-12 Oleg Endo <olegendo@gcc.gnu.org>
1549
1550 PR target/51244
1551 * config/sh/sh_treg_combine.cc: New SH specific RTL pass.
1552 * config.gcc (SH extra_objs): Add sh_ifcvt.o.
1553 * config/sh/t-sh (sh_treg_combine.o): New entry.
1554 * config/sh/sh.c (sh_fixed_condition_code_regs): New function that
1555 implements the target hook TARGET_FIXED_CONDITION_CODE_REGS.
1556 (register_sh_passes): New function. Register sh_treg_combine pass.
1557 (sh_option_override): Invoke it.
1558 (sh_canonicalize_comparison): Handle op0_preserve_value.
1559 * sh.md (*cbranch_t"): Do not try to optimize missed test and branch
1560 opportunities. Canonicalize branch condition.
1561 (nott): Allow only if pseudos can be created for non-SH2A.
1562
37d1c5db
L
15632013-10-12 H.J. Lu <hongjiu.lu@intel.com>
1564
1565 PR target/58690
1566 * config/i386/i386.c (ix86_copy_addr_to_reg): New function.
1567 (ix86_expand_movmem): Replace copy_addr_to_reg with
1568 ix86_copy_addr_to_reg.
1569 (ix86_expand_setmem): Likewise.
1570
b86a70ff
AM
15712013-10-12 Alexander Monakov <amonakov@ispras.ru>
1572
1573 * config/i386/i386.c (ix86_expand_sse_compare_and_jump): Use mode
1574 provided by ix86_fp_compare_mode instead of CCFPUmode.
1575
6e1d5961
JG
15762013-10-12 James Greenhalgh <james.greenhalgh@arm.com>
1577
1578 * config/aarch64/arm_neon.h
1579 (vtbx<1,3>_<psu>8): Fix register constriants.
1580
ef3cfba2
JL
15812013-10-11 Jeff Law <law@redhat.com>
1582
1583 PR tree-optimization/58640
adcfd489
UB
1584 * tree-ssa-threadupdate.c (mark_threaded_blocks): Truncate jump
1585 threading paths that cross over two loop entry points.
ef3cfba2 1586
6e8b7d9c
BS
15872013-10-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1588
1589 * config/rs6000/vsx.md (*vsx_le_perm_load_v2di): Generalize to
1590 handle vector float as well.
1591 (*vsx_le_perm_load_v4si): Likewise.
1592 (*vsx_le_perm_store_v2di): Likewise.
1593 (*vsx_le_perm_store_v4si): Likewise.
1594
f200869a
BS
15952013-10-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1596
1597 * config/rs6000/vector.md (vec_realign_load<mode>): Generate vperm
1598 directly to circumvent subtract from splat{31} workaround.
1599 * config/rs6000/rs6000-protos.h (altivec_expand_vec_perm_le): New
1600 prototype.
1601 * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): New.
1602 * config/rs6000/altivec.md (define_c_enum "unspec"): Add
1603 UNSPEC_VPERM_X and UNSPEC_VPERM_UNS_X.
1604 (altivec_vperm_<mode>): Convert to define_insn_and_split to
1605 separate big and little endian logic.
1606 (*altivec_vperm_<mode>_internal): New define_insn.
1607 (altivec_vperm_<mode>_uns): Convert to define_insn_and_split to
1608 separate big and little endian logic.
1609 (*altivec_vperm_<mode>_uns_internal): New define_insn.
1610 (vec_permv16qi): Add little endian logic.
1611
8d28e3fc
MG
16122013-10-11 Marc Glisse <marc.glisse@inria.fr>
1613
1614 * doc/extend.texi (returns_nonnull): Remove arguments.
1615
3c87b77b
AI
16162013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1617 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1618 Sergey Lega <sergey.s.lega@intel.com>
1619 Anna Tikhonova <anna.tikhonova@intel.com>
1620 Ilya Tocar <ilya.tocar@intel.com>
1621 Andrey Turetskiy <andrey.turetskiy@intel.com>
1622 Ilya Verbin <ilya.verbin@intel.com>
1623 Kirill Yukhin <kirill.yukhin@intel.com>
1624 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1625
1626 * config/i386/sse.md (VI48F_256_512): New.
1627 (avx2_permvar<mode>): Change to ...
1628 (<avx2_avx512f>_permvar<mode>): This.
1629
50e60d7d
AI
16302013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1631 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1632 Sergey Lega <sergey.s.lega@intel.com>
1633 Anna Tikhonova <anna.tikhonova@intel.com>
1634 Ilya Tocar <ilya.tocar@intel.com>
1635 Andrey Turetskiy <andrey.turetskiy@intel.com>
1636 Ilya Verbin <ilya.verbin@intel.com>
1637 Kirill Yukhin <kirill.yukhin@intel.com>
1638 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1639
6f1abb55 1640 * config/i386/i386.c (bdesc_args): Change corresponding pattern for
50e60d7d
AI
1641 __builtin_ia32_cvtps2dq, __builtin_ia32_cvtps2dq256.
1642 * config/i386/sse.md (VI4_AVX): New.
1643 (sf2simodelower): Ditto.
1644 (sse2_cvtps2dq): Change to ...
1645 (<sse2_avx_avx512f>_fix_notrunc<sf2simodelower><mode>): This.
1646
f62ce24f
AI
16472013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1648 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1649 Sergey Lega <sergey.s.lega@intel.com>
1650 Anna Tikhonova <anna.tikhonova@intel.com>
1651 Ilya Tocar <ilya.tocar@intel.com>
1652 Andrey Turetskiy <andrey.turetskiy@intel.com>
1653 Ilya Verbin <ilya.verbin@intel.com>
1654 Kirill Yukhin <kirill.yukhin@intel.com>
1655 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1656
1657 * config/i386/sse.md (V_512): New.
1658 (VI_512): Ditto.
1659 (vcond<V_512:mode><VF_512:mode>): Ditto.
1660 (vcond<V_512:mode><VI_512:mode>): Ditto.
1661 (vcondu<V_512:mode><VI_512:mode>): Ditto.
1662
558d9f79
AI
16632013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1664 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1665 Sergey Lega <sergey.s.lega@intel.com>
1666 Anna Tikhonova <anna.tikhonova@intel.com>
1667 Ilya Tocar <ilya.tocar@intel.com>
1668 Andrey Turetskiy <andrey.turetskiy@intel.com>
1669 Ilya Verbin <ilya.verbin@intel.com>
1670 Kirill Yukhin <kirill.yukhin@intel.com>
1671 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1672
1673 * config/i386/i386.c (ix86_rtx_costs): Enable fma for TARGET_AVX512F.
1674 * config/i386/sse.md (FMAMODEM): Changed modes and conditions.
1675 (FMAMODE): Ditto.
1676 (fma<mode>4): Removed condition.
1677 (fms<mode>4): Ditto.
1678 (fnma<mode>4): Ditto.
1679 (fnms<mode>4): Ditto.
1680 (fma4i_fmadd_<mode>): Ditto.
1681 (*fma_fmadd_<mode>): Ditto.
1682 (*fma_fmsub_<mode>): Ditto.
1683 (*fma_fnmadd_<mode>): Ditto.
1684 (*fma_fnmsub_<mode>): Ditto.
1685 (fmaddsub_<mode>): Allow for TARGET_AVX512F.
1686 (*fma_fmaddsub_<mode>): Ditto.
1687 (*fma_fmsubadd_<mode>): Ditto.
1688 (*fmai_fmadd_<mode>): Ditto.
1689 (*fmai_fmsub_<mode>): Ditto.
1690 (*fmai_fnmadd_<mode>): Ditto.
1691 (*fmai_fnmsub_<mode>): Ditto.
1692
e8d08206
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 (VI248_AVX2_8_AVX512F): New.
1704 (VI124_256): Changed to ...
1705 (VI124_256_48_512): This.
1706 (ssepackmode): Extended with wider modes.
1707 (<code><mode>3): Changed iterator.
1708 (*avx2_<code><mode>3): Ditto.
1709 (vec_pack_trunc_<mode>): Ditto.
1710
16821545
AI
17112013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1712 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1713 Sergey Lega <sergey.s.lega@intel.com>
1714 Anna Tikhonova <anna.tikhonova@intel.com>
1715 Ilya Tocar <ilya.tocar@intel.com>
1716 Andrey Turetskiy <andrey.turetskiy@intel.com>
1717 Ilya Verbin <ilya.verbin@intel.com>
1718 Kirill Yukhin <kirill.yukhin@intel.com>
1719 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1720
1721 * config/i386/sse.md (VI124_AVX2_48_AVX512F): New.
1722 (VI8F_256_512): Ditto.
1723 (abs<mode>2): Changed iterator.
1724 (avx2_perm<mode>): Changed to ...
1725 (<avx2_avx512f>_perm<mode>): This.
1726 (avx2_perm<mode>_1): Changed to ...
1727 (<avx2_avx512f>_perm<mode>_1): This.
1728
5348cff8
AI
17292013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1730 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1731 Sergey Lega <sergey.s.lega@intel.com>
1732 Anna Tikhonova <anna.tikhonova@intel.com>
1733 Ilya Tocar <ilya.tocar@intel.com>
1734 Andrey Turetskiy <andrey.turetskiy@intel.com>
1735 Ilya Verbin <ilya.verbin@intel.com>
1736 Kirill Yukhin <kirill.yukhin@intel.com>
1737 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1738
1739 * config/i386/sse.md (VI48_AVX512F): New.
1740 (VI48_AVX2): Changed to ...
1741 (VI48_AVX2_48_AVX512F): This.
1742 (avx2_ashrv<mode>): Changed to ...
1743 (<avx2_avx512f>_ashrv<mode>): This.
1744 (avx2_<shift_insn>v<mode>): Changed to ...
1745 (<avx2_avx512f>_<shift_insn>v<mode>): This.
1746
f5f41d88
AI
17472013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1748 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1749 Sergey Lega <sergey.s.lega@intel.com>
1750 Anna Tikhonova <anna.tikhonova@intel.com>
1751 Ilya Tocar <ilya.tocar@intel.com>
1752 Andrey Turetskiy <andrey.turetskiy@intel.com>
1753 Ilya Verbin <ilya.verbin@intel.com>
1754 Kirill Yukhin <kirill.yukhin@intel.com>
1755 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1756
1757 * config/i386/sse.md (VI4_AVX512F): New.
1758 (VI8_AVX2_AVX512F): Ditto.
1759 (mul<mode>3): Extended with wider modes.
1760 (*<sse4_1_avx2>_mul<mode>3): Ditto.
1761 (mul<mode>3): Ditto.
1762 (vec_widen_<s>mult_odd_<mode>): Ditto.
1763
3bdf6340
AI
17642013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1765 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1766 Sergey Lega <sergey.s.lega@intel.com>
1767 Anna Tikhonova <anna.tikhonova@intel.com>
1768 Ilya Tocar <ilya.tocar@intel.com>
1769 Andrey Turetskiy <andrey.turetskiy@intel.com>
1770 Ilya Verbin <ilya.verbin@intel.com>
1771 Kirill Yukhin <kirill.yukhin@intel.com>
1772 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1773
1774 * config/i386/sse.md (VI2_AVX512F): New.
1775 (VI124_AVX512F): Ditto.
1776 (sseunpackmode): Extended with wider modes.
1777 (sseunpackfltmode): Ditto.
1778 (vec_unpacks_float_hi_<mode>): Ditto.
1779 (vec_unpacks_float_lo_<mode>): Ditto.
1780 (vec_unpacku_float_hi_<mode>): Ditto.
1781 (vec_unpacku_float_lo_<mode>): Ditto.
1782 (vec_unpacks_lo_<mode>): Ditto.
1783 (vec_unpacks_hi_<mode>): Ditto.
1784 (vec_unpacku_lo_<mode>): Ditto.
1785 (vec_unpacku_hi_<mode>): Ditto.
1786
67f783cb
AI
17872013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1788 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1789 Sergey Lega <sergey.s.lega@intel.com>
1790 Anna Tikhonova <anna.tikhonova@intel.com>
1791 Ilya Tocar <ilya.tocar@intel.com>
1792 Andrey Turetskiy <andrey.turetskiy@intel.com>
1793 Ilya Verbin <ilya.verbin@intel.com>
1794 Kirill Yukhin <kirill.yukhin@intel.com>
1795 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1796
1797 * config/i386/i386.md (multdiv): New.
1798 (multdiv_mnemonic): Ditto.
1799 * config/i386/sse.md (<sse>_vmmul<mode>3): Changed to...
1800 (<sse>_vm<multdiv_mnemonic><mode>3): This.
1801 (<sse>_vmdiv<mode>3): Removed.
1802
ec5e777c
AI
18032013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1804 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1805 Sergey Lega <sergey.s.lega@intel.com>
1806 Anna Tikhonova <anna.tikhonova@intel.com>
1807 Ilya Tocar <ilya.tocar@intel.com>
1808 Andrey Turetskiy <andrey.turetskiy@intel.com>
1809 Ilya Verbin <ilya.verbin@intel.com>
1810 Kirill Yukhin <kirill.yukhin@intel.com>
1811 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1812
1813 * config/i386/sse.md (V): Extended with wider modes.
1814 (VF2): Ditto.
1815 (ssehalfvecmode): Ditto.
1816 (i128): Ditto.
1817 (ssepackfltmode): Ditto.
1818 (avx_vec_concat<mode>): Ditto.
1819 (V_256_512): New iterator.
1820 (VF2_512_256): Ditto.
1821 (si2dfmode): New attribute.
1822 (si2dfmodelower): Ditto.
1823 (sf2dfmode): Ditto.
1824 (concat_tg_mode): Ditto.
1825 (floatv4siv4df2): Changed to ...
1826 (float<si2dfmodelower><mode>2): This.
1827 (avx_cvtps2pd256): Changed to ...
1828 (<sse2_avx_avx512f>_cvtps2pd<avxsizesuffix>): This.
1829 (vec_pack_trunc_v4df): Changed to ...
1830 (vec_pack_trunc_<mode>): This.
1831 (avx_vpermil<mode>): Changed to ...
1832 (<sse2_avx_avx512f>_vpermil<mode>): This.
1833 (<fixsuffix>fix_truncv8dfv8si2): New.
1834 (vec_pack_sfix_trunc_v8df): Ditto.
1835 (avx512f_rndscale<mode>): Ditto.
1836 (avx512f_roundpd512): Ditto.
1837 (vec_pack_ufix_trunc_<mode>): Updated iterator.
1838
a9ccbba2
AI
18392013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1840 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1841 Sergey Lega <sergey.s.lega@intel.com>
1842 Anna Tikhonova <anna.tikhonova@intel.com>
1843 Ilya Tocar <ilya.tocar@intel.com>
1844 Andrey Turetskiy <andrey.turetskiy@intel.com>
1845 Ilya Verbin <ilya.verbin@intel.com>
1846 Kirill Yukhin <kirill.yukhin@intel.com>
1847 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1848
1849 * config/i386/i386.md (any_fix): New iterator.
1850 (fixsuffix): New attribute.
1851 * config/i386/sse.md (VF1): Extened with wider modes.
1852 (VI): Ditto.
1853 (VI_AVX2): Ditto.
1854 (VI8): Ditto.
1855 (sseintvecmodelower): Ditto.
1856 (ssescalarmode): Ditto.
1857 (ssescalarnum): Ditto.
1858 (VF1_128_256): New.
1859 (ssexmmmode): Ditto.
1860 (<fixsuffix>fix_truncv16sfv16si2): Ditto.
1861 (<sse>_rcp<mode>2): Change iterator.
1862 (rsqrt<mode>2): Ditto.
1863 (<sse>_rsqrt<mode>2): Ditto.
1864 (avx2_vec_dup<mode>): Ditto.
1865 (<sse4_1>_round<ssemodesuffix>_sfix<avxsizesuffix>): Ditto.
1866 (round<mode>2_sfix): Ditto.
1867 (avx2_pbroadcast<mode>): Ditto.
1868 (*andnot<mode>3): Handle XI mode.
1869 (*<code><mode>3): Ditto.
1870 (AVXTOSSEMODE): Removed.
1871 (avx_vpermil<mode>): Changed to ...
1872 (<sse2_avx_avx512f>_vpermil<mode>): This.
1873
2b1ebb0c
AI
18742013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1875 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1876 Sergey Lega <sergey.s.lega@intel.com>
1877 Anna Tikhonova <anna.tikhonova@intel.com>
1878 Ilya Tocar <ilya.tocar@intel.com>
1879 Andrey Turetskiy <andrey.turetskiy@intel.com>
1880 Ilya Verbin <ilya.verbin@intel.com>
1881 Kirill Yukhin <kirill.yukhin@intel.com>
1882 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1883
1884 * config/i386/sse.md (<sse2>_movnt<mode>): Update constraint to "v".
1885 (<sse>_comi): Ditto.
1886 (<sse>_ucomi): Ditto.
1887 (sse_cvtss2siq_2): Ditto.
1888 (sse2_cvtsd2si): Ditto.
1889 (sse2_cvtsd2siq): Ditto.
1890 (sse2_cvttsd2si): Ditto.
1891 (sse2_cvttsd2siq): Ditto.
1892 (<shift_insn><mode>3): Ditto.
1893 (sse2_cvtsi2sdq): Update constraint and prefix.
1894 (sse_cvtsi2ss): Update prefix.
1895 (sse_cvtsi2ssq): Ditto.
1896
d89124ed
JJ
18972013-10-11 Jakub Jelinek <jakub@redhat.com>
1898
1899 * tree-vrp.c (infer_nonnull_range): Use is_gimple_call,
1900 ignore internal calls.
1901
e6ad28c3
RB
19022013-10-11 Richard Biener <rguenther@suse.de>
1903
6f1abb55
UB
1904 * tree-pretty-print.c (dump_generic_node): Allow to dump both (D)
1905 and (ab) for SSA_NAMEs. Mark INTEGER_CSTs with (OVF) if
1906 TREE_OVERFLOW is set.
e6ad28c3 1907
d1227447
TS
19082013-10-11 Thomas Schwinge <thomas@codesourcery.com>
1909
1ac4b8e4
TS
1910 * tree.h (OMP_CLAUSE_CODE): Remove duplicate definition.
1911
7d05cebb
TS
1912 * gimple.c: GIMPLE statements have subcodes, not sub-codes.
1913 * gimple.h: Likewise.
1914
adcfd489 1915 * doc/generic.texi (OpenMP): OMP_CLAUSE_* are subcodes, not sub-codes.
6545f0b3 1916
1a79fb8a
TS
1917 * doc/generic.texi (Adding new DECL node types): Explain *_CHECK
1918 macros.
1919
3afd2873
TS
1920 * doc/gimple.texi (is_gimple_omp): Move into the correct section.
1921
adcfd489 1922 * acinclude.m4 (gcc_GAS_FLAGS): Add more gcc_cv_as_flags overrides.
d1227447
TS
1923 * configure: Regenerate.
1924
acf0174b
JJ
19252013-10-11 Jakub Jelinek <jakub@redhat.com>
1926
1927 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__LOOPTEMP_
1928 and new OpenMP 4.0 clauses, handle UDR OMP_CLAUSE_REDUCTION,
1929 formatting fixes, use pp_colon instead of pp_character (..., ':'),
1930 similarly pp_right_paren.
1931 (dump_generic_node): Handle OMP_DISTRIBUTE, OMP_TEAMS,
1932 OMP_TARGET_DATA, OMP_TARGET, OMP_TARGET_UPDATE, OMP_TASKGROUP,
1933 allow OMP_FOR_INIT to be NULL, handle OMP_ATOMIC_SEQ_CST.
1934 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add OpenMP 4.0
1935 clauses.
1936 (omp_declare_simd_clauses_equal,
1937 omp_remove_redundant_declare_simd_attrs): New functions.
1938 (attribute_value_equal): Use omp_declare_simd_clauses_equal.
1939 (walk_tree_1): Handle new OpenMP 4.0 clauses.
1940 * tree.h (OMP_LOOP_CHECK): Define.
1941 (OMP_FOR_BODY, OMP_FOR_CLAUSES, OMP_FOR_INIT, OMP_FOR_COND,
1942 OMP_FOR_INCR, OMP_FOR_PRE_BODY): Use it.
1943 (OMP_TASKGROUP_BODY, OMP_TEAMS_BODY, OMP_TEAMS_CLAUSES,
1944 OMP_TARGET_DATA_BODY, OMP_TARGET_DATA_CLAUSES, OMP_TARGET_BODY,
1945 OMP_TARGET_CLAUSES, OMP_TARGET_UPDATE_CLAUSES, OMP_CLAUSE_SIZE,
1946 OMP_ATOMIC_SEQ_CST, OMP_CLAUSE_DEPEND_KIND, OMP_CLAUSE_MAP_KIND,
1947 OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION, OMP_CLAUSE_PROC_BIND_KIND,
1948 OMP_CLAUSE_REDUCTION_OMP_ORIG_REF, OMP_CLAUSE_ALIGNED_ALIGNMENT,
1949 OMP_CLAUSE_NUM_TEAMS_EXPR, OMP_CLAUSE_THREAD_LIMIT_EXPR,
1950 OMP_CLAUSE_DEVICE_ID, OMP_CLAUSE_DIST_SCHEDULE_CHUNK_EXPR,
1951 OMP_CLAUSE_SIMDLEN_EXPR): Define.
1952 (OMP_CLAUSE_DECL): Change range up to OMP_CLAUSE__LOOPTEMP_.
1953 (omp_remove_redundant_declare_simd_attrs): New prototype.
1954 * gimple.def (GIMPLE_OMP_TASKGROUP, GIMPLE_OMP_TARGET,
1955 GIMPLE_OMP_TEAMS): New codes.
1956 (GIMPLE_OMP_RETURN): Use GSS_OMP_ATOMIC_STORE instead of GSS_BASE.
1957 * omp-low.c (struct omp_context): Add cancel_label and cancellable
1958 fields.
1959 (target_nesting_level): New variable.
1960 (extract_omp_for_data): Handle GF_OMP_FOR_KIND_DISTRIBUTE and
1961 OMP_CLAUSE_DIST_SCHEDULE. Don't fallback to library implementation
1962 for collapse > 1 static schedule unless ordered.
1963 (get_ws_args_for): Add par_stmt argument. Handle combined loops.
1964 (determine_parallel_type): Adjust get_ws_args_for caller.
1965 (install_var_field): Handle mask & 4 for double indirection.
1966 (scan_sharing_clauses): Ignore shared clause on teams construct.
1967 Handle OMP_CLAUSE__LOOPTEMP_ and new OpenMP 4.0 clauses.
1968 (create_omp_child_function): If inside target or declare target
adcfd489 1969 constructs, set "omp declare target" attribute on the child function.
acf0174b
JJ
1970 (find_combined_for): New function.
1971 (scan_omp_parallel): Handle combined loops.
1972 (scan_omp_target, scan_omp_teams): New functions.
1973 (check_omp_nesting_restrictions): Check new OpenMP 4.0 nesting
1974 restrictions and set ctx->cancellable for cancellable constructs.
1975 (scan_omp_1_stmt): Call check_omp_nesting_restrictions also on
1976 selected builtin calls. Handle GIMPLE_OMP_TASKGROUP,
1977 GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS.
adcfd489 1978 (build_omp_barrier): Add lhs argument, return gimple rather than tree.
acf0174b 1979 (omp_clause_aligned_alignment): New function.
6f1abb55 1980 (lower_rec_simd_input_clauses): Only call SET_DECL_VALUE_EXPR on decls.
acf0174b
JJ
1981 (lower_rec_input_clauses): Add FD argument. Ignore shared clauses
1982 on teams constructs. Handle user defined reductions and new
1983 OpenMP 4.0 clauses.
1984 (lower_reduction_clauses): Don't set placeholder to address of ref
1985 if it has already the right type.
1986 (lower_send_clauses): Handle OMP_CLAUSE__LOOPTEMP_.
1987 (expand_parallel_call): Use the new non-_start suffixed builtins,
1988 handle OMP_CLAUSE_PROC_BIND, don't call the outlined function
1989 and GOMP_parallel_end after the call.
1990 (expand_task_call): Handle OMP_CLAUSE_DEPEND.
1991 (expand_omp_for_init_counts): Handle combined loops.
1992 (expand_omp_for_init_vars): Add inner_stmt argument, handle combined
1993 loops.
1994 (expand_omp_for_generic): Likewise. Use GOMP_loop_end_cancel at the
1995 end of cancellable loops.
1996 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
1997 Likewise. Handle collapse > 1 loops.
1998 (expand_omp_simd): Handle combined loops.
1999 (expand_omp_for): Add inner_stmt argument, adjust callers of
2000 expand_omp_for* functions, use expand_omp_for_static*chunk even
2001 for collapse > 1 unless ordered.
2002 (expand_omp_sections): Use GOMP_sections_end_cancel at the end
2003 of cancellable sections.
2004 (expand_omp_single): Remove need_barrier variable, just rely on
2005 gimple_omp_return_nowait_p. Adjust build_omp_barrier caller.
2006 (expand_omp_synch): Allow GIMPLE_OMP_TASKGROUP and GIMPLE_OMP_TEAMS.
2007 (expand_omp_atomic_load, expand_omp_atomic_store,
2008 expand_omp_atomic_fetch_op): Handle gimple_omp_atomic_seq_cst_p.
2009 (expand_omp_target): New function.
2010 (expand_omp): Handle combined loops. Handle GIMPLE_OMP_TASKGROUP,
2011 GIMPLE_OMP_TEAMS, GIMPLE_OMP_TARGET.
2012 (build_omp_regions_1): Immediately close region for
2013 GF_OMP_TARGET_KIND_UPDATE.
2014 (maybe_add_implicit_barrier_cancel): New function.
2015 (lower_omp_sections): Adjust lower_rec_input_clauses caller. Handle
2016 cancellation.
2017 (lower_omp_single): Likewise. Add clobber after the barrier.
2018 (lower_omp_taskgroup): New function.
2019 (lower_omp_for): Handle combined loops. Adjust
2020 lower_rec_input_clauses caller. Handle cancellation.
2021 (lower_depend_clauses): New function.
2022 (lower_omp_taskreg): Lower depend clauses. Adjust
2023 lower_rec_input_clauses caller. Add clobber after the call. Handle
2024 cancellation.
2025 (lower_omp_target, lower_omp_teams): New functions.
2026 (lower_omp_1): Handle cancellation. Handle GIMPLE_OMP_TASKGROUP,
2027 GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GOMP_barrier, GOMP_cancel
2028 and GOMP_cancellation_point calls.
2029 (lower_omp): Fold stmts inside of target region.
2030 (diagnose_sb_1, diagnose_sb_2): Handle GIMPLE_OMP_TASKGROUP,
2031 GIMPLE_OMP_TARGET and GIMPLE_OMP_TEAMS.
2032 * builtin-types.def (DEF_FUNCTION_TYPE_8): Document.
2033 (BT_FN_VOID_OMPFN_PTR_UINT,
2034 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
2035 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG,
2036 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): Remove.
2037 (BT_FN_VOID_OMPFN_PTR_UINT_UINT_UINT,
2038 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_UINT,
2039 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG_UINT,
2040 BT_FN_BOOL_INT, BT_FN_BOOL_INT_BOOL, BT_FN_VOID_UINT_UINT,
2041 BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
2042 BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
2043 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): New.
2044 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
2045 call_may_clobber_ref_p_1): Handle BUILT_IN_GOMP_BARRIER_CANCEL,
2046 BUILT_IN_GOMP_TASKGROUP_END, BUILT_IN_GOMP_LOOP_END_CANCEL,
2047 BUILT_IN_GOMP_SECTIONS_END_CANCEL. Don't handle
2048 BUILT_IN_GOMP_PARALLEL_END.
2049 * gimple-low.c (lower_stmt): Handle GIMPLE_OMP_TASKGROUP,
2050 GIMPLE_OMP_TARGET and GIMPLE_OMP_TEAMS.
2051 * gimple-pretty-print.c (dump_gimple_omp_for): Handle
2052 GF_OMP_FOR_KIND_DISTRIBUTE.
2053 (dump_gimple_omp_target, dump_gimple_omp_teams): New functions.
2054 (dump_gimple_omp_block): Handle GIMPLE_OMP_TASKGROUP.
2055 (dump_gimple_omp_return): Print lhs if it has any.
2056 (dump_gimple_omp_atomic_load, dump_gimple_omp_atomic_store): Handle
2057 gimple_omp_atomic_seq_cst_p.
2058 (pp_gimple_stmt_1): Handle GIMPLE_OMP_TASKGROUP, GIMPLE_OMP_TARGET
2059 and GIMPLE_OMP_TEAMS.
2060 * langhooks.c (lhd_omp_mappable_type): New function.
2061 * tree-vectorizer.c (struct simd_array_to_simduid): Fix up comment.
2062 * langhooks.h (struct lang_hooks_for_types): Add omp_mappable_type
2063 hook.
2064 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP,
2065 GOVD_ALIGNED and GOVD_MAP_TO_ONLY.
6f1abb55 2066 (enum omp_region_type): Add ORT_TEAMS, ORT_TARGET_DATA and ORT_TARGET.
acf0174b
JJ
2067 (struct gimplify_omp_ctx): Add combined_loop field.
2068 (gimplify_call_expr, gimplify_modify_expr): Don't call fold_stmt
2069 on stmts inside of target region.
2070 (is_gimple_stmt): Return true for OMP_DISTRIBUTE and OMP_TASKGROUP.
2071 (omp_firstprivatize_variable): Handle GOVD_MAP, GOVD_ALIGNED,
2072 ORT_TARGET and ORT_TARGET_DATA.
2073 (omp_add_variable): Avoid checks on readding var for GOVD_ALIGNED.
2074 Handle GOVD_MAP.
2075 (omp_notice_threadprivate_variable): Complain about threadprivate
2076 variables in target region.
2077 (omp_notice_variable): Complain about vars with non-mappable type
2078 in target region. Handle ORT_TEAMS, ORT_TARGET and ORT_TARGET_DATA.
2079 (omp_check_private): Ignore ORT_TARGET* regions.
2080 (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1,
2081 gimplify_adjust_omp_clauses): Handle new OpenMP 4.0 clauses.
2082 (find_combined_omp_for): New function.
2083 (gimplify_omp_for): Handle gimplification of combined loops.
2084 (gimplify_omp_workshare): Gimplify also OMP_TARGET, OMP_TARGET_DATA,
2085 OMP_TEAMS.
2086 (gimplify_omp_target_update): New function.
2087 (gimplify_omp_atomic): Handle OMP_ATOMIC_SEQ_CST.
2088 (gimplify_expr): Handle OMP_DISTRIBUTE, OMP_TARGET, OMP_TARGET_DATA,
2089 OMP_TARGET_UPDATE, OMP_TEAMS, OMP_TASKGROUP.
2090 (gimplify_body): If fndecl has "omp declare target" attribute, add
2091 implicit ORT_TARGET context around it.
2092 * tree.def (OMP_DISTRIBUTE, OMP_TEAMS, OMP_TARGET_DATA, OMP_TARGET,
2093 OMP_TASKGROUP, OMP_TARGET_UPDATE): New tree codes.
2094 * tree-nested.c (convert_nonlocal_reference_stmt,
2095 convert_local_reference_stmt, convert_gimple_call): Handle
2096 GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
2097 * omp-builtins.def (BUILT_IN_GOMP_TASK): Use
2098 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR
2099 instead of BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT.
2100 (BUILT_IN_GOMP_TARGET, BUILT_IN_GOMP_TARGET_DATA,
2101 BUILT_IN_GOMP_TARGET_END_DATA, BUILT_IN_GOMP_TARGET_UPDATE,
2102 BUILT_IN_GOMP_TEAMS, BUILT_IN_BARRIER_CANCEL,
2103 BUILT_IN_GOMP_LOOP_END_CANCEL,
2104 BUILT_IN_GOMP_SECTIONS_END_CANCEL, BUILT_IN_OMP_GET_TEAM_NUM,
2105 BUILT_IN_OMP_GET_NUM_TEAMS, BUILT_IN_GOMP_TASKGROUP_START,
2106 BUILT_IN_GOMP_TASKGROUP_END, BUILT_IN_GOMP_PARALLEL_LOOP_STATIC,
2107 BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC,
2108 BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED,
2109 BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME, BUILT_IN_GOMP_PARALLEL,
2110 BUILT_IN_GOMP_PARALLEL_SECTIONS, BUILT_IN_GOMP_CANCEL,
2111 BUILT_IN_GOMP_CANCELLATION_POINT): New built-ins.
2112 (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
2113 BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
2114 BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
2115 BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
2116 BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END,
2117 BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Remove.
2118 * tree-inline.c (remap_gimple_stmt, estimate_num_insns):
2119 Handle GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
2120 * gimple.c (gimple_build_omp_taskgroup, gimple_build_omp_target,
2121 gimple_build_omp_teams): New functions.
2122 (walk_gimple_op): Handle GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and
2123 GIMPLE_OMP_TASKGROUP. Walk optional lhs on GIMPLE_OMP_RETURN.
2124 (walk_gimple_stmt, gimple_copy): Handle GIMPLE_OMP_TARGET,
2125 GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
2126 * gimple.h (enum gf_mask): GF_OMP_FOR_KIND_DISTRIBUTE,
2127 GF_OMP_FOR_COMBINED, GF_OMP_FOR_COMBINED_INTO,
2128 GF_OMP_TARGET_KIND_MASK, GF_OMP_TARGET_KIND_REGION,
2129 GF_OMP_TARGET_KIND_DATA, GF_OMP_TARGET_KIND_UPDATE,
2130 GF_OMP_ATOMIC_SEQ_CST): New.
2131 (gimple_build_omp_taskgroup, gimple_build_omp_target,
2132 gimple_build_omp_teams): New prototypes.
2133 (gimple_has_substatements): Handle GIMPLE_OMP_TARGET,
2134 GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
2135 (gimple_omp_subcode): Use GIMPLE_OMP_TEAMS instead of
2136 GIMPLE_OMP_SINGLE as end of range.
2137 (gimple_omp_return_set_lhs, gimple_omp_return_lhs,
2138 gimple_omp_return_lhs_ptr, gimple_omp_atomic_seq_cst_p,
2139 gimple_omp_atomic_set_seq_cst, gimple_omp_for_combined_p,
2140 gimple_omp_for_set_combined_p, gimple_omp_for_combined_into_p,
2141 gimple_omp_for_set_combined_into_p, gimple_omp_target_clauses,
2142 gimple_omp_target_clauses_ptr, gimple_omp_target_set_clauses,
2143 gimple_omp_target_kind, gimple_omp_target_set_kind,
2144 gimple_omp_target_child_fn, gimple_omp_target_child_fn_ptr,
2145 gimple_omp_target_set_child_fn, gimple_omp_target_data_arg,
2146 gimple_omp_target_data_arg_ptr, gimple_omp_target_set_data_arg,
2147 gimple_omp_teams_clauses, gimple_omp_teams_clauses_ptr,
2148 gimple_omp_teams_set_clauses): New inlines.
2149 (CASE_GIMPLE_OMP): Add GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS
2150 and GIMPLE_OMP_TASKGROUP.
adcfd489 2151 * tree-core.h (enum omp_clause_code): Add new OpenMP 4.0 clause codes.
acf0174b
JJ
2152 (enum omp_clause_depend_kind, enum omp_clause_map_kind,
2153 enum omp_clause_proc_bind_kind): New.
2154 (union omp_clause_subcode): Add depend_kind, map_kind and
2155 proc_bind_kind fields.
2156 * tree-cfg.c (make_edges): Handle GIMPLE_OMP_TARGET,
2157 GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
2158 * langhooks-def.h (lhd_omp_mappable_type): New prototype.
2159 (LANG_HOOKS_OMP_MAPPABLE_TYPE): Define.
2160 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
2161
67fa7880
TJ
21622013-10-10 Teresa Johnson <tejohnson@google.com>
2163
2164 * predict.c (tree_estimate_probability): Add new parameter
2165 for estimate_bb_frequencies.
2166 (estimate_bb_frequencies): Add new parameter to force estimation.
2167 (rebuild_frequencies): When max frequency in function is small,
2168 recompute counts from frequencies.
2169 * predict.h (estimate_bb_frequencies): New parameter.
2170
b591a8b7
DM
21712013-10-10 David Malcolm <dmalcolm@redhat.com>
2172
2173 * ipa-inline.c (ipa_inline): Fix leak of "order" when
2174 optimizations are disabled.
2175
782f0db2
DM
21762013-10-10 David Malcolm <dmalcolm@redhat.com>
2177
2178 * coverage.c (coverage_finish): Fix leak of da_file_name.
2179
13ef00fa
JH
21802013-10-10 Jan Hubicka <jh@suse.cz>
2181
2182 * config/i386/x86-tune.def: Enable X86_TUNE_SSE_TYPELESS_STORES
2183 for generic, enable X86_TUNE_SSE_LOAD0_BY_PXOR for Bulldozer,
2184 Bobcat and generic.
2185
a1d50386
JJ
21862013-10-10 Jakub Jelinek <jakub@redhat.com>
2187
2188 PR middle-end/58670
2189 * stmt.c (expand_asm_operands): Add FALLTHRU_BB argument,
2190 if any labels are in FALLTHRU_BB, use a special label emitted
2191 immediately after the asm goto insn rather than label_rtx
2192 of the LABEL_DECL.
2193 (expand_asm_stmt): Adjust caller.
2194 * cfgrtl.c (commit_one_edge_insertion): Force splitting of
2195 edge if the last insn in predecessor is a jump with single successor,
2196 but it isn't simplejump_p.
2197
e2c2fde2
RB
21982013-10-10 Richard Biener <rguenther@suse.de>
2199
2200 PR tree-optimization/58656
6f1abb55 2201 * tree-ssa-pre.c (phi_translate): Do not cache failed translations.
e2c2fde2 2202
de6a5608
AM
22032013-10-10 Andrew MacLeod <amacleod@redhat.com>
2204
adcfd489
UB
2205 * gimplify.c: Include expr.h and tm_p.h for targets with special
2206 va-arg padding requirements.
de6a5608 2207
b184c8f1
AM
22082013-10-10 Andrew MacLeod <amacleod@redhat.com>
2209
2210 * tree-flow.h: Move some prototypes to gimple.h.
2211 (gimple_fold_indirect_ref): Move prototype to gimple-fold.h.
2212 * gimple.h: Relocate some prototypes from tree-flow.h
2213 * builtins.c (std_gimplify_va_arg_expr, build_va_arg_indirect_ref):
2214 Move to gimplify.c.
2215 * gimplify.c (gimple_fold_indirect_ref): Move to gimple-fold.c.
2216 (build_va_arg_indirect_ref): Relocate and make static.
2217 (std_gimplify_va_arg_expr): Relocate here.
2218 * gimple-fold.c (gimple_fold_indirect_ref): Relocate here.
2219 * gimple-fold.h (gimple_fold_indirect_ref): Add prototype.
2220
13b72c22
AK
22212013-10-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2222
2223 * doc/md.texi: Document the mnemonic attribute.
2224
5db40447
AK
22252013-10-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2226
2227 PR target/57377
2228 * gensupport.c (gen_mnemonic_attr): Handle (set (attr x) y) and
2229 (set_attr_alternative x ...) when searching for user defined
2230 mnemonic attribute.
2231
ed018d4b
AM
22322013-10-10 Andrew MacLeod <amacleod@redhat.com>
2233
2234 * config/aplha/alpha.c: Add gimple-ssa.h to include list.
2235
4d5b5e9f
ER
22362013-10-09 Easwaran Raman <eraman@google.com>
2237
2238 * params.def (PARAM_MIN_SIZE_FOR_STACK_SHARING): New param...
2239 * cfgexpand.c (defer_stack_allocation): ...use here
2240 * doc/invoke.texi: Add documentation for min-size-for-stack-sharing.
2241
c9ef86a1
ZC
22422013-10-09 Zhenqiang Chen <zhenqiang.chen@arm.com>
2243
2244 * tree-ssa-phiopts.c (rhs_is_fed_for_value_replacement): New function.
2245 (operand_equal_for_value_replacement): New function, extracted from
2246 value_replacement and enhanced to catch more cases.
2247 (value_replacement): Use operand_equal_for_value_replacement.
2248
2431114f
AM
22492013-10-09 Andrew MacLeod <amacleod@redhat.com>
2250
adcfd489 2251 * loop-doloop.c (doloop_modify, doloop_optimize): Use
2431114f
AM
2252 get_max_loop_iterations.
2253
1dd2a9a0
KT
22542013-10-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2255
2256 * config/arm/aarch-common.c (arm_early_load_addr_dep):
2257 Place comment above function.
2258
c1bf2a39
AM
22592013-10-09 Andrew MacLeod <amacleod@redhat.com>
2260
2261 * tree-flow.h: Remove all remaining prototypes, enums and structs that
2262 are not related to tree-cfg.c.
2263 * tree-ssa-address.h: New file. Relocate prototypes.
2264 * tree-ssa-address.c: (struct mem_address): Relocate from tree-flow.h.
2265 (addr_for_mem_ref): New. Combine call to get_address_description and
2266 return addr_for_mem_ref.
2267 * expr.c (expand_expr_real_1): Use new addr_for_mem_ref routine.
2268 * tree-ssa-live.h: Adjust prototypes.
2269 * passes.c: Include tree-ssa-live.h.
2270 * gimple-pretty-print.h (gimple_dump_bb): Add prototype.
2271 * graphite.c (graphite_transform_loops): Make static.
2272 (graphite_transforms, gate_graphite_transforms, pass_data_graphite,
adcfd489 2273 make_pass_graphite, pass_data_graphite_transforms,
c1bf2a39
AM
2274 make_pass_graphite_transforms): Relocate here from tree-ssa-loop.c.
2275 * ipa-pure-const.c (warn_function_noreturn): Make static.
2276 (execute_warn_function_noreturn, gate_warn_function_noreturn,
2277 class pass_warn_function_noreturn, make_pass_warn_function_noreturn):
2278 Relocate from tree-cfg.c
2279 * tree-cfg.c (tree_node_can_be_shared, gimple_empty_block_p): Make
2280 static.
2281 (execute_warn_function_noreturn, gate_warn_function_noreturn,
2282 class pass_warn_function_noreturn, make_pass_warn_function_noreturn):
2283 Move to ipa-pure-const.c.
adcfd489
UB
2284 (execute_fixup_cfg, class pass_fixup_cfg, make_pass_fixup_cfg):
2285 Relocate from tree-optimize.c.
c1bf2a39
AM
2286 * tree-optimize.c (execute_fixup_cfg, class pass_fixup_cfg,
2287 make_pass_fixup_cfg): Move to tree-cfg.c.
2288 * tree-chrec.h: (enum ev_direction): Relocate here from tree-flow.h.
2289 Relocate some prototypes.
2290 * tree-data-ref.h (tree_check_data_deps) Add prototype.
2291 * tree-dump.c (dump_function_to_file): Remove prototype.
2292 Add tree-flow.h to the include file.
2293 * tree-dump.h: Remove prototype.
2294 * tree-parloops.h: New File. Add prototypes.
2295 * tree-parloops.c (gate_tree_parallelize_loops, tree_parallelize_loops,
2296 pass_data_parallelize_loops, make_pass_parallelize_loops): Relocate
2297 from tree-ssa-loop.c.
2298 * tree-predcom.c (run_tree_predictive_commoning,
2299 gate_tree_predictive_commoning, pass_data_predcom, make_pass_predcom):
2300 Relocate here from tree-ssa-loop.c.
adcfd489 2301 * tree-ssa-dom.c (tree_ssa_dominator_optimize) Don't call
c1bf2a39
AM
2302 ssa_name_values.release ().
2303 * tree-ssa-threadedge.h: New File. Relocate prototypes here.
2304 (ssa_name_values): Relocate from tree-flow.h.
2305 * tree-ssa.h: Include tree-ssa-threadedge.h and tree-ssa-address.h.
2306 * tree-ssa-loop.c (run_tree_predictive_commoning,
2307 gate_tree_predictive_commoning, pass_data_predcom, make_pass_predcom,
2308 graphite_transforms, gate_graphite_transforms, pass_data_graphite,
2309 make_pass_graphite, pass_data_graphite_transforms,
2310 make_pass_graphite_transforms, gate_tree_parallelize_loops,
2311 tree_parallelize_loops, pass_data_parallelize_loops,
2312 make_pass_parallelize_loops): Move to other files.
2313 * tree-vectorizer.h (lpeel_tree_duplicate_loop_to_edge_cfg): Prototype
2314 moved here.
2315 * tree.h: Remove prototypes from tree-address.c.
2316
cc524fc7
AM
23172013-10-09 Andrew MacLeod <amacleod@redhat.com>
2318
2319 * tree-flow.h (tm_restart_node, gimple_df): Move to gimple-ssa.h.
2320 (struct int_tree_map): Move to tree-hasher.h
2321 (SCALE, LABEL, PERCENT): Move to gimple.h
2322 * tree-flow-inline.h: Delete. Move functions to other files.
2323 (unmodifiable_var_p, ref_contains_array_ref): Unused, so delete.
2324 * gimple-ssa.h (tm_restart_node, gimple_df): Relocate from tree-flow.h.
2325 (gimple_in_ssa_p, gimple_vop): Relocate from tree-flow-inline.h
2326 * gimple.h (imple_stmt_max_uid, set_gimple_stmt_max_uid,
2327 inc_gimple_stmt_max_uid, get_lineno): Relocate from tree-flow-inline.h.
2328 (SCALE, LABEL, PERCENT): Relocate from tree-flow.h
2329 * tree-hasher.h: Don't include tree-flow.h.
2330 (struct int_tree_map): Relocate from tree-flow.h.
2331 * tree-sra.c (contains_view_convert_expr_p): Relocate from
2332 tree-flow-inline.h and make static.
adcfd489
UB
2333 * tree-ssa-alias.h (ranges_overlap_p): Relocate from
2334 tree-flow-inline.h.
cc524fc7
AM
2335 * tree-ssa-operands.c (gimple_ssa_operands): Relocate from
2336 tree-flow-inline.h and make static.
2337 * tree.h (is_global_var, may_be_aliased): Relocate from
2338 tree-flow-inline.h.
2339 * Makefile.in (GTFILES): Remove tree-flow.h and add gimple-ssa.h.
2340 * value-prof.c: No longer include tree-flow-inline.h.
2341 * tree-switch-conversion.c: No longer include tree-flow-inline.h.
2342
71343877
AM
23432013-10-09 Andrew MacLeod <amacleod@redhat.com>
2344
2345 * tree-flow.h: Move some protoypes. Include new tree-ssa-loop.h.
2346 (struct affine_iv, struct tree_niter_desc): Move to tree-ssa-loop.h.
2347 (enum move_pos): Move to tree-ssa-loop-im.h
2348 * cfgloop.h: Move some prototypes.
2349 (gcov_type_to_double_int): relocate from tree-ssa-loop.niter.c.
2350 * tree-flow-inline.h (loop_containing_stmt): Move to tree-ssa-loop.h.
2351 * tree-ssa-loop.h: New File. Include other tree-ssa-loop-*.h files.
2352 (struct affine_iv, struct tree_niter_desc): Relocate from tree-flow.h.
2353 (loop_containing_stmt): Relocate from tree-flow-inline.h.
2354 * tree-ssa-loop-ch.c: (do_while_loop_p): Make static.
2355 * tree-ssa-loop-im.c (for_each_index): Move to tree-ssa-loop.c.
2356 (enum move_pos): Relocate here.
2357 (lsm_tmp_name_add, gen_lsm_tmp_name, get_lsm_tmp_name): Move to
2358 tree-ssa-loop.c.
2359 (execute_sm_if_changed_flag_set): Change get_lsm_tmp_name call.
adcfd489
UB
2360 (tree_ssa_loop_im, gate_tree_ssa_loop_im, pass_data_lim,
2361 make_pass_lim): Relocate here from tree-ssa-loop.c.
2362 * tree-ssa-loop-ivcanon.c (tree_num_loop_insns): Move to
71343877
AM
2363 tree-ssa-loop.c.
2364 (loop_edge_to_cancel, unloop_loops): Make static.
2365 (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_data_iv_canon,
2366 make_pass_iv_canon): Relocate from tree-ssa-loop.c.
2367 (tree_complete_unroll, gate_tree_complete_unroll,
2368 pass_data_complete_unroll, make_pass_complete_unroll): Relocate here.
2369 (tree_complete_unroll_inner, gate_tree_complete_unroll_inner,
2370 pass_data_complete_unrolli, make_pass_complete_unrolli): Relocate here.
2371 * tree-ssa-loop-ivopts.c: Remove local prototypes.
2372 (stmt_invariant_in_loop_p): Remove unused function.
2373 * tree-ssa-loop-ivopts.h: New file. Add prototypes.
2374 * tree-ssa-loop-manip.h: New file. Add prototypes.
2375 * tree-ssa-loop-niter.c (record_niter_bound): Move to cfgloop.c.
2376 (gcov_type_to_double_int): Move to cfgloop.h.
2377 (double_int_cmp, bound_index,
2378 estimate_numbers_of_iterations_loop): Make static.
2379 (estimated_loop_iterations): Factor out get_estimated_loop_iterations.
2380 (max_loop_iterations): Factor out get_max_loop_iterations.
2381 (estimated_loop_iterations_int, max_stmt_executions_int): Move to
2382 cfgloop.c.
2383 * tree-ssa-loop-niter.h: New file. Add prototypes.
2384 * tree-ssa-loop-prefetch.c (tree_ssa_loop_prefetch,
2385 gate_tree_ssa_loop_prefetch, pass_data_loop_prefetch,
2386 make_pass_loop_prefetch): Relocate from tree-ssa-loop.c.
2387 * tree-ssa-loop-unswitch.c (tree_ssa_loop_unswitch,
2388 gate_tree_ssa_loop_unswitch, pass_data_tree_unswitch,
2389 make_pass_tree_unswitch): Relocate from tree-ssa-loop.c.
2390 * tree-ssa-loop.c (tree_ssa_loop_im, gate_tree_ssa_loop_im,
2391 pass_data_lim, make_pass_lim): Move to tree-ssa-loop-im.c.
2392 (tree_ssa_loop_unswitch, gate_tree_ssa_loop_unswitch,
2393 pass_data_tree_unswitch, make_pass_tree_unswitch): Move.
2394 (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_data_iv_canon,
2395 make_pass_iv_canon, tree_complete_unroll, gate_tree_complete_unroll,
2396 pass_data_complete_unroll, make_pass_complete_unroll,
2397 tree_complete_unroll_inner, gate_tree_complete_unroll_inner,
2398 pass_data_complete_unrolli, make_pass_complete_unrolli): Move to
2399 tree-ssa-loop-ivcanon.c.
2400 (tree_ssa_loop_prefetch, gate_tree_ssa_loop_prefetch,
2401 pass_data_loop_prefetch, make_pass_loop_prefetch): Move to
2402 tree-ssa-loop-prefetch.c.
2403 (for_each_index, lsm_tmp_name_add, gen_lsm_tmp_name): Relocate from
2404 tree-ssa-loop-im.c.
2405 (get_lsm_tmp_name): Relocate and add suffix parameter.
2406 (tree_num_loop_insns): Relocate from tree-ssa-ivcanon.c.
2407 * tree-scalar-evolution.h (simple_iv): Don't use affive_iv typedef.
2408 * cfgloop.c (record_niter_bound, estimated_loop_iterations_int,
2409 max_stmt_executions_int): Move from tree-ssa-loop-niter.c.
adcfd489 2410 (get_estimated_loop_iterations): Factor out accessor from
71343877 2411 estimated_loop_iterations in tree-ssa-loop-niter.c.
adcfd489
UB
2412 (get_max_loop_iterations): Factor out accessor from
2413 _max_loop_iterations in tree-ssa-niter.c.
71343877
AM
2414 * loop-unroll.c (decide_unroll_constant_iterations,
2415 decide_unroll_runtime_iterations, decide_peel_simple,
2416 decide_unroll_stupid): Use new get_* accessors.
2417
826cacfe
MG
24182013-10-09 Marc Glisse <marc.glisse@inria.fr>
2419
2420 PR tree-optimization/20318
2421 * doc/extend.texi (returns_nonnull): New function attribute.
2422 * fold-const.c (tree_expr_nonzero_warnv_p): Look for returns_nonnull
2423 attribute.
2424 * tree-vrp.c (gimple_stmt_nonzero_warnv_p): Likewise.
2425 (stmt_interesting_for_vrp): Accept all GIMPLE_CALL.
2426
378f8976
EB
24272013-10-09 Eric Botcazou <ebotcazou@adacore.com>
2428
2429 PR middle-end/58570
2430 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): Return
2431 false if both components are bitfields.
2432
0fe04f5c
AV
24332013-10-09 Alex Velenko <Alex.Velenko@arm.com>
2434
2435 * config/aarch64/arm_neon.h (vclz_s8, vclz_s16, vclz_s32)
2436 (vclzq_s8, vclzq_s16, vclzq_s32, vclz_u8, vclz_u16, vclz_u32)
2437 (vclzq_u8, vclzq_u16, vclzq_u32): Replace ASM with C.
2438 * config/aarch64/aarch64.h
2439 (CLZ_DEFINED_VALUE_AT_ZERO): Macro fixed for clz.
2440 * config/aarch64/aarch64-simd-builtins.def
2441 (VAR1 (UNOP, clz, 0, v4si)): Replaced with iterator.
2442
bed9bae4
AV
24432013-10-09 Alex Velenko <Alex.Velenko@arm.com>
2444
2445 * config/aarch64/arm_neon.h (vadd_f64, vsub_f64): Implementation added.
2446
7f3d8b19
AV
24472013-10-09 Alex Velenko <Alex.Velenko@arm.com>
2448
2449 * config/aarch64/arm_neon.h (vdiv_f64): Added.
2450
7df625a6
AV
24512013-10-09 Alex Velenko <Alex.Velenko@arm.com>
2452
2453 * config/aarch64/arm_neon.h (vneg_f32): Asm replaced with C.
2454 (vneg_f64): New intrinsic.
2455 (vneg_s8): Asm replaced with C.
2456 (vneg_s16): Likewise.
2457 (vneg_s32): Likewise.
2458 (vneg_s64): New intrinsic.
2459 (vnegq_f32): Asm replaced with C.
2460 (vnegq_f64): Likewise.
2461 (vnegq_s8): Likewise.
2462 (vnegq_s16): Likewise.
2463 (vnegq_s32): Likewise.
2464 (vnegq_s64): Likewise.
2465
2b86fca7
RL
24662013-10-09 Renlin Li <Renlin.Li@arm.com>
2467
2468 * config/arm/arm.c (arm_output_mi_thunk): Use plus_constant.
2469
e179df83
AK
24702013-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2471
2472 * config/s390/s390.c (s390_register_info_stdarg_fpr): Remove
2473 packed stack special handling.
2474 (s390_frame_info, s390_emit_prologue, s390_emit_epilogue): Switch
2475 back to fixed stack slots for FPRs saved due to stdarg.
2476
74129172
AK
24772013-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2478
2479 * config/s390/s390.c (s390_frame_info): Restructure function.
2480
6455a49e
AK
24812013-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2482
2483 * config/s390/s390.c (struct s390_frame_layout): New field
2484 gpr_save_slots.
2485 (cfun_save_arg_fprs_p, cfun_gpr_save_slot): New macros.
2486 (s390_reg_clobbered_rtx, s390_regs_ever_clobbered): Change type of
2487 regs_ever_clobbered to char*.
adcfd489
UB
2488 (s390_regs_ever_clobbered): Check crtl->saves_all_registers instead
2489 of cfun->has_nonlocal_label. Ignore frame related restore INSNs.
6455a49e
AK
2490 (s390_register_info): Enable FPR save slots. Move/Copy some
2491 functionality into ...
2492 (s390_register_info_gprtofpr, s390_register_info_stdarg_fpr)
2493 (s390_register_info_stdarg_gpr, s390_optimize_register_info): New
2494 function.
2495 (s390_frame_info): Do gpr slot allocation here now. stdarg does
2496 not imply a stack frame.
2497 (s390_init_frame_layout): Remove variable clobbered_regs.
2498 (s390_update_register_info): Remove function.
2499 (s390_hard_regno_rename_ok): Call-saved regs without a save slot
2500 cannot be used for register renaming.
2501 (s390_hard_regno_scratch_ok): New function.
2502 (TARGET_HARD_REGNO_SCRATCH_OK): Define target hook.
2503 (s390_initial_elimination_offset): Change offset calculation of
2504 the return address pointer.
adcfd489 2505 (save_gprs): Deal with only r6 being saved from the call-saved regs.
6455a49e 2506 (restore_gprs): Set frame related flag.
adcfd489 2507 (s390_save_gprs_to_fprs, s390_restore_gprs_from_fprs): New functions.
6455a49e
AK
2508 (s390_emit_prologue): Call s390_register_info instead of
2509 s390_update_frame_layout. Call s390_save_gprs_to_fprs.
2510 (s390_emit_epilogue): Call s390_restore_gprs_from_fprs.
2511 (s390_optimize_prologue): Call s390_optimize_register_info.
2512 Try to remove also FPR slot save/restore INSNs. Remove frame
2513 related flags from restore INSNs.
2514
59d96342
DD
25152013-10-08 DJ Delorie <dj@redhat.com>
2516
0dc7adad
DD
2517 * config/rl78/rl78-expand.md (movqi): use operands[] not operandN.
2518 (movhi): Likewise.
2519
59d96342
DD
2520 * config/rl78/rl78.c (rl78_print_operand_1): Change %c to %C to
2521 avoid conflict with the MI use of %c.
2522 * config/rl78/rl78-real.md: change %c to %C throughout.
2523 * config/rl78/rl78-virt.md: Likewise.
2524
a81169d8
JH
25252013-10-08 Jan Hubicka <jh@suse.cz>
2526
2527 * config/i386/i386.c (ix86_option_override_internal): Switch
2528 to SSE math for -ffast-math when target ISA supports SSE2.
2529
481d1b81
AM
25302013-10-08 Andrew MacLeod <amacleod@redhat.com>
2531
2532 * tree-flow.h: Remove some prototypes.
2533 * tree.h: Remove some protypes, add a couple.
2534 * tree.c (using_eh_for_cleanups_flag, using_eh_for_cleanups,
2535 using_eh_for_cleanups_p): Add interface routines for front ends.
2536 * tree-eh.h: New file. Add protoptyes.
2537 * tree-eh.c (using_eh_for_cleanups_p, using_eh_for_cleanups): Delete.
2538 (add_stmt_to_eh_lp_fn): Make static.
2539 (lower_try_finally): Use new using_eh_for_cleanups_p.
2540 * emit-rtl.c: Include tree-eh.h.
2541 * gimple.h: Include tree-eh.h.
2542
0e6a0e48
MG
25432013-10-08 Marc Glisse <marc.glisse@inria.fr>
2544
2545 PR tree-optimization/58480
2546 * tree-vrp.c (infer_nonnull_range): New function.
2547 (infer_value_range): Call infer_nonnull_range.
2548
ef6179d1
DC
25492013-10-08 Dehao Chen <dehao@google.com>
2550
2551 PR tree-optimization/58619
2552 * tree-inline.c (copy_phis_for_bb): Combine location data
2553 only if non-null.
2554
07d964d5
ZC
25552013-10-08 Zhenqiang Chen <zhenqiang.chen@linaro.org>
2556
2557 PR target/58423
2558 * config/arm/arm.c (arm_emit_ldrd_pop): Attach
2559 RTX_FRAME_RELATED_P on INSN.
2560
19e9b2a3
BS
25612013-10-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2562
2563 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const_le): New.
2564 (altivec_expand_vec_perm_const): Call it.
2565
0cf68694
BS
25662013-10-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2567
2568 * config/rs6000/vector.md (mov<mode>): Emit permuted move
2569 sequences for LE VSX loads and stores at expand time.
2570 * config/rs6000/rs6000-protos.h (rs6000_emit_le_vsx_move): New
2571 prototype.
2572 * config/rs6000/rs6000.c (rs6000_const_vec): New.
2573 (rs6000_gen_le_vsx_permute): New.
2574 (rs6000_gen_le_vsx_load): New.
2575 (rs6000_gen_le_vsx_store): New.
2576 (rs6000_gen_le_vsx_move): New.
2577 * config/rs6000/vsx.md (*vsx_le_perm_load_v2di): New.
2578 (*vsx_le_perm_load_v4si): New.
2579 (*vsx_le_perm_load_v8hi): New.
2580 (*vsx_le_perm_load_v16qi): New.
2581 (*vsx_le_perm_store_v2di): New.
2582 (*vsx_le_perm_store_v4si): New.
2583 (*vsx_le_perm_store_v8hi): New.
2584 (*vsx_le_perm_store_v16qi): New.
2585 (*vsx_xxpermdi2_le_<mode>): New.
2586 (*vsx_xxpermdi4_le_<mode>): New.
2587 (*vsx_xxpermdi8_le_V8HI): New.
2588 (*vsx_xxpermdi16_le_V16QI): New.
2589 (*vsx_lxvd2x2_le_<mode>): New.
2590 (*vsx_lxvd2x4_le_<mode>): New.
2591 (*vsx_lxvd2x8_le_V8HI): New.
2592 (*vsx_lxvd2x16_le_V16QI): New.
2593 (*vsx_stxvd2x2_le_<mode>): New.
2594 (*vsx_stxvd2x4_le_<mode>): New.
2595 (*vsx_stxvd2x8_le_V8HI): New.
2596 (*vsx_stxvd2x16_le_V16QI): New.
2597
9520e1eb
RL
25982013-10-07 Renlin Li <Renlin.Li@arm.com>
2599
2600 * config/arm/arm-cores.def (cortex-a53): Use cortex tuning.
2601
36c0bd4f
AK
26022013-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2603
2604 * config/s390/s390.c (s390_register_info): Make the call-saved FPR
2605 loop to work also for 31bit ABI.
2606 Save the stack pointer for frame_size > 0.
2607
ee163e72
AK
26082013-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2609
2610 * config/s390/s390.md ("tbegin", "tbegin_nofloat", "tbegin_retry")
2611 ("tbegin_retry_nofloat", "tend", "tabort", "tx_assist"): Remove
2612 constraint letters from expanders.
2613 ("tbegin_retry", "tbegin_retry_nofloat"): Change predicate of the
2614 retry count to general_operand.
2615 ("tabort"): Give operand 0 a mode.
2616 ("tabort_1"): Add mode and constraint letter for operand 0.
2617 * doc/extend.texi: Fix protoype of __builtin_non_tx_store.
2618
45d99234
JL
26192013-10-04 Jeff Law <law@redhat.com>
2620
2621 * tree-ssa-threadedge.c: Fix some trailing whitespace problems.
2622
adcfd489
UB
2623 * tree-ssa-threadedge.c (thread_through_normal_block): Broken
2624 out of ...
45d99234
JL
2625 (thread_across_edge): Here. Call it.
2626
7c327f7b
CC
26272013-10-04 Cary Coutant <ccoutant@google.com>
2628
2629 * dwarf2out.c (dw_sra_loc_expr): Release addr_table entries when
adcfd489 2630 discarding a location list expression (or a piece of one).
7c327f7b 2631
6867e128
JH
26322013-10-03 Jan Hubicka <jh@suse.cz>
2633
65efa7e7
UB
2634 * config/i386/i386.c (ix86_issue_rate): Pentium4, Nocona has issue
2635 rate of 2. Core2, Corei7 and Haswell has issue rate of 4.
3700bce3 2636 (ix86_adjust_cost): Remove Atom case; fix core2/corei7/Haswell case.
6867e128 2637
c7f36d55
JH
26382013-10-03 Jan Hubicka <jh@suse.cz>
2639
65efa7e7 2640 * config/i386/i386.c (ix86_option_override_internal): Do not enable
c7f36d55
JH
2641 accumulate-outgoing-args when producing unwind info.
2642
4f0bee4c
WM
26432013-10-03 Wei Mi <wmi@google.com>
2644
2645 * lra-constraints.c (insert_move_for_subreg): New function
2646 extracted from simplify_operand_subreg.
2647 (simplify_operand_subreg): Add reload for paradoxical subreg.
2648
111c3f39
RX
26492013-10-03 Rong Xu <xur@google.com>
2650
65efa7e7
UB
2651 * ipa-inline-analysis.c (find_foldable_builtin_expect): Find
2652 the candidate of builtin_expect such that we should fix the
2653 size/time estimation.
2654 (estimate_function_body_sizes): Do the acutally size/time fix-up
2655 for builtin_expect.
111c3f39 2656
942df739
RX
26572013-10-03 Rong Xu <xur@google.com>
2658
65efa7e7
UB
2659 * predict.c (tree_predict_by_opcode): Get the probability
2660 for builtin_expect from param builtin_expect_probability.
2661 * params.def (BUILTIN_EXPECT_PROBABILITY): New parameter.
2662 * predict.def (PRED_BUILTIN_EXPECT_RELAXED): Fix comments.
2663 * doc/invoke.texi: Add documentation for builtin-expect-probability.
942df739 2664
2284b034
MG
26652013-10-03 Marc Glisse <marc.glisse@inria.fr>
2666
2667 PR c++/19476
2668 * common.opt (fcheck-new): Moved from c.opt. Make it 'Common'.
2669 * calls.c (alloca_call_p): Use get_callee_fndecl.
2670 * fold-const.c (tree_expr_nonzero_warnv_p): Handle operator new.
2671 * tree-vrp.c (gimple_stmt_nonzero_warnv_p, stmt_interesting_for_vrp):
2672 Likewise.
2673 (vrp_visit_stmt): Remove duplicated code.
2674
0609bdf2
MM
26752013-10-03 Michael Meissner <meissner@linux.vnet.ibm.com>
2676
2677 * config/rs6000/rs6000-builtin.def (XSRDPIM): Use floatdf2,
2678 ceildf2, btruncdf2, instead of vsx_* name.
2679
2680 * config/rs6000/vsx.md (vsx_add<mode>3): Change arithmetic
2681 iterators to only do V2DF and V4SF here. Move the DF code to
2682 rs6000.md where it is combined with SF mode. Replace <VSv> with
2683 just 'v' since only vector operations are handled with these insns
2684 after moving the DF support to rs6000.md.
2685 (vsx_sub<mode>3): Likewise.
2686 (vsx_mul<mode>3): Likewise.
2687 (vsx_div<mode>3): Likewise.
2688 (vsx_fre<mode>2): Likewise.
2689 (vsx_neg<mode>2): Likewise.
2690 (vsx_abs<mode>2): Likewise.
2691 (vsx_nabs<mode>2): Likewise.
2692 (vsx_smax<mode>3): Likewise.
2693 (vsx_smin<mode>3): Likewise.
2694 (vsx_sqrt<mode>2): Likewise.
2695 (vsx_rsqrte<mode>2): Likewise.
2696 (vsx_fms<mode>4): Likewise.
2697 (vsx_nfma<mode>4): Likewise.
2698 (vsx_copysign<mode>3): Likewise.
2699 (vsx_btrunc<mode>2): Likewise.
2700 (vsx_floor<mode>2): Likewise.
2701 (vsx_ceil<mode>2): Likewise.
2702 (vsx_smaxsf3): Delete scalar ops that were moved to rs6000.md.
2703 (vsx_sminsf3): Likewise.
2704 (vsx_fmadf4): Likewise.
2705 (vsx_fmsdf4): Likewise.
2706 (vsx_nfmadf4): Likewise.
2707 (vsx_nfmsdf4): Likewise.
2708 (vsx_cmpdf_internal1): Likewise.
2709
2710 * config/rs6000/rs6000.h (TARGET_SF_SPE): Define macros to make it
2711 simpler to select whether a target has SPE or traditional floating
2712 point support in iterators.
2713 (TARGET_DF_SPE): Likewise.
2714 (TARGET_SF_FPR): Likewise.
2715 (TARGET_DF_FPR): Likewise.
2716 (TARGET_SF_INSN): Macros to say whether floating point support
2717 exists for a given operation for expanders.
2718 (TARGET_DF_INSN): Likewise.
2719
2720 * config/rs6000/rs6000.c (Ftrad): New mode attributes to allow
2721 combining of SF/DF mode operations, using both traditional and VSX
2722 registers.
2723 (Fvsx): Likewise.
2724 (Ff): Likewise.
2725 (Fv): Likewise.
2726 (Fs): Likewise.
2727 (Ffre): Likewise.
2728 (FFRE): Likewise.
2729 (abs<mode>2): Combine SF/DF modes using traditional floating point
2730 instructions. Add support for using the upper DF registers with
2731 VSX support, and SF registers with power8-vector support. Update
2732 expanders for operations supported by both the SPE and traditional
2733 floating point units.
2734 (abs<mode>2_fpr): Likewise.
2735 (nabs<mode>2): Likewise.
2736 (nabs<mode>2_fpr): Likewise.
2737 (neg<mode>2): Likewise.
2738 (neg<mode>2_fpr): Likewise.
2739 (add<mode>3): Likewise.
2740 (add<mode>3_fpr): Likewise.
2741 (sub<mode>3): Likewise.
2742 (sub<mode>3_fpr): Likewise.
2743 (mul<mode>3): Likewise.
2744 (mul<mode>3_fpr): Likewise.
2745 (div<mode>3): Likewise.
2746 (div<mode>3_fpr): Likewise.
2747 (sqrt<mode>3): Likewise.
2748 (sqrt<mode>3_fpr): Likewise.
2749 (fre<Fs>): Likewise.
2750 (rsqrt<mode>2): Likewise.
2751 (cmp<mode>_fpr): Likewise.
2752 (smax<mode>3): Likewise.
2753 (smin<mode>3): Likewise.
2754 (smax<mode>3_vsx): Likewise.
2755 (smin<mode>3_vsx): Likewise.
2756 (negsf2): Delete SF operations that are merged with DF.
2757 (abssf2): Likewise.
2758 (addsf3): Likewise.
2759 (subsf3): Likewise.
2760 (mulsf3): Likewise.
2761 (divsf3): Likewise.
2762 (fres): Likewise.
2763 (fmasf4_fpr): Likewise.
2764 (fmssf4_fpr): Likewise.
2765 (nfmasf4_fpr): Likewise.
2766 (nfmssf4_fpr): Likewise.
2767 (sqrtsf2): Likewise.
2768 (rsqrtsf_internal1): Likewise.
2769 (smaxsf3): Likewise.
2770 (sminsf3): Likewise.
2771 (cmpsf_internal1): Likewise.
2772 (copysign<mode>3_fcpsgn): Add VSX/power8-vector support.
2773 (negdf2): Delete DF operations that are merged with SF.
2774 (absdf2): Likewise.
2775 (nabsdf2): Likewise.
2776 (adddf3): Likewise.
2777 (subdf3): Likewise.
2778 (muldf3): Likewise.
2779 (divdf3): Likewise.
2780 (fred): Likewise.
2781 (rsqrtdf_internal1): Likewise.
2782 (fmadf4_fpr): Likewise.
2783 (fmsdf4_fpr): Likewise.
2784 (nfmadf4_fpr): Likewise.
2785 (nfmsdf4_fpr): Likewise.
2786 (sqrtdf2): Likewise.
2787 (smaxdf3): Likewise.
2788 (smindf3): Likewise.
2789 (cmpdf_internal1): Likewise.
2790 (lrint<mode>di2): Use TARGET_<MODE>_FPR macro.
2791 (btrunc<mode>2): Delete separate expander, and combine with the
2792 insn and add VSX instruction support. Use TARGET_<MODE>_FPR.
2793 (btrunc<mode>2_fpr): Likewise.
2794 (ceil<mode>2): Likewise.
2795 (ceil<mode>2_fpr): Likewise.
2796 (floor<mode>2): Likewise.
2797 (floor<mode>2_fpr): Likewise.
2798 (fma<mode>4_fpr): Combine SF and DF fused multiply/add support.
2799 Add support for using the upper registers with VSX and
2800 power8-vector. Move insns to be closer to the define_expands. On
2801 VSX systems, prefer the traditional form of FMA over the VSX
2802 version, since the traditional form allows the target not to
2803 overlap with the inputs.
2804 (fms<mode>4_fpr): Likewise.
2805 (nfma<mode>4_fpr): Likewise.
2806 (nfms<mode>4_fpr): Likewise.
2807
5bea0c6c 28082013-10-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
65efa7e7 2809 Richard Earnshaw <richard.earnshaw@arm.com>
5bea0c6c
KT
2810
2811 * config/arm/aarch-common-protos.h (struct alu_cost_table): New.
2812 (struct mult_cost_table): Likewise.
2813 (struct mem_cost_table): Likewise.
2814 (struct fp_cost_table): Likewise.
2815 (struct vector_cost_table): Likewise.
2816 (cpu_cost_table): Likewise.
2817 * config/arm/arm.opt (mold-rts-costs): New option.
2818 (mnew-generic-costs): Likewise.
2819 * config/arm/arm.c (generic_extra_costs): New table.
2820 (cortexa15_extra_costs): Likewise.
2821 (arm_slowmul_tune): Use NULL as new costs.
2822 (arm_fastmul_tune): Likewise.
2823 (arm_strongarm_tune): Likewise.
2824 (arm_xscale_tune): Likewise.
2825 (arm_9e_tune): Likewise.
2826 (arm_v6t2_tune): Likewise.
2827 (arm_cortex_a5_tune): Likewise.
2828 (arm_cortex_a9_tune): Likewise.
2829 (arm_v6m_tune): Likewise.
2830 (arm_fa726te_tune): Likewise.
2831 (arm_cortex_a15_tune): Use cortex15_extra_costs.
2832 (arm_cortex_tune): Use generict_extra_costs.
2833 (shifter_op_p): New function.
2834 (arm_unspec_cost): Likewise.
2835 (LIBCALL_COST): Define.
2836 (arm_new_rtx_costs): New function.
2837 (arm_rtx_costs): Use arm_new_rtx_costs when core-specific
2838 table is available. Use old costs otherwise unless mnew-generic-costs
2839 is specified.
2840 * config/arm/arm-protos.h (tune_params): Add insn_extra_cost field.
2841 (cpu_cost_table): Declare.
2842
24c56925
MS
28432013-10-03 Marcus Shawcroft <marcus.shawcroft@arm.com>
2844
2845 PR target/58460
2846 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>)
2847 (*subs_mul_imm_<mode>)
2848 (*add_<shift>_<mode>, *add_<shift>_si_uxtw,*add_mul_imm_<mode>)
2849 (*sub_<shift>_<mode>)
2850 (*sub_<shift>_si_uxtw,*sub_mul_imm_<mode>, *sub_mul_imm_si_uxtw):
2851 Remove k constraint.
2852
2ab8f063
IB
28532013-10-03 Ian Bolton <ian.bolton@arm.com>
2854
2855 * config/aarch64/aarch64.c (aarch64_secondary_reload): Remove legacy
2856 code.
2857 * config/aarch64/aarch64.md (reload_sp_immediate): Likewise.
2858
79221839
TJ
28592013-10-02 Teresa Johnson <tejohnson@google.com>
2860
2861 * predict.c (probably_never_executed): New function.
2862 (probably_never_executed_bb_p): Invoke probably_never_executed.
2863 (probably_never_executed_edge_p): Ditto.
2864 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
2865 Treat profile insanities conservatively.
2866
d441afe0
JDA
28672013-10-02 John David Anglin <danglin@gcc.gnu.org>
2868
2869 * config.gcc (hppa*64*-*-linux*): Don't add pa/t-linux to tmake_file.
2870
80f466c4
VM
28712013-10-02 Vladimir Makarov <vmakarov@redhat.com>
2872
2873 * lra-constraints.c (process_alt_operand): Calculate scratch_p and
2874 use it. Use smaller increase for scratch. Don't increase reject
2875 for early clobber scratch.
2876 * lra-eliminations.c (eliminate_regs_in_insn): Remove all insns
2877 setting eliminated regs except setting fp from hfp.
2878 (lra_eliminate): Check lra_insn_recog_data on NULL.
2879
6e228b4b
MM
28802013-10-02 Michael Meissner <meissner@linux.vnet.ibm.com>
2881
2882 PR target/58587
2883 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Turn off
65efa7e7 2884 setting -mvsx-timode by default until the underlying problem is fixed.
6e228b4b
MM
2885 (RS6000_CPU, power7 defaults): Likewise.
2886
11b54a5a
UB
28872013-10-02 Uros Bizjak <ubizjak@gmail.com>
2888
2889 * config/x-linux (host-linux.o): Remove header dependencies.
2890 Use $(COMPILE) and $(POSTCOMPILE).
2891 * config/t-linux-android (linux-android.o): Ditto.
2892
bbc02b69
UB
28932013-10-02 Uros Bizjak <ubizjak@gmail.com>
2894
2895 * Makefile.in (expmed.o-warn): Remove.
2896
440917de
AM
28972013-10-02 Andrew MacLeod <amacleod@redhat.com>
2898
2899 * graphite-scop-detection.c: Include tree-ssa-propagate,h.
2900 * graphite-sese-to-poly.c: Include tree-ssa-propagate.h.
2901
99206ca9
TJ
29022013-10-02 Teresa Johnson <tejohnson@google.com>
2903
2904 * dojump.c (do_jump_1): Divide probability between
2905 both conditions of a TRUTH_ANDIF_EXPR/TRUTH_ORIF_EXPR.
2906
56e82b14
TT
29072013-10-02 Tom Tromey <tromey@redhat.com>
2908
2909 * Makefile.in (DRIVER_DEFINES): Use $(if), not $(and).
2910
3d9c733e
AM
29112013-10-02 Andrew MacLeod <amacleod@redhat.com>
2912
2913 * tree-flow.h: Remove some prototypes.
2914 * tree-ssa-dce.c (mark_virtual_operand_for_renaming,
2915 mark_virtual_phi_result_for_renaming): Move to tree-into-ssa.c.
2916 * tree-into-ssa.c (mark_virtual_operand_for_renaming,
2917 mark_virtual_phi_result_for_renaming): Relocate here.
2918 * tree-into-ssa.h: Add prototypes.
bbc02b69 2919 * tree-ssa-phiopt.c: (tree_ssa_phiopt_worker) Use
3d9c733e
AM
2920 single_pred_before_succ_order.
2921 (blocks_in_phiopt_order): Rename and move to cfganal.c.
2922 (nonfreeing_call_p) Move to gimple.c.
2923 * cfganal.c (single_pred_before_succ_order): Move and renamed from
2924 tree-ssa-phiopt.c.
2925 * basic-block.h (single_pred_before_succ_order): Add prototype.
2926 * gimple.c (nonfreeing_call_p): Relocate here.
2927 * gimple.h: Add prototype.
2928 * tree-ssa-ifcombine.c: Include tree-ssa-phiopt.h.
2929 * tree-ssa-dom.h: New file. Relocate prototypes here.
2930 * tree-ssa.h: Include tree-ssa-dom.h.
2931
78cedfb1
UB
29322013-10-02 Uros Bizjak <ubizjak@gmail.com>
2933
2934 * config/i386/x-i386 (driver-i386.o): Remove header dependencies.
2935 Use $(COMPILE) and $(POSTCOMPILE).
2936
2937 * config/alpha/x-alpha (driver-alpha.o): Ditto.
2938
744730a4
AM
29392013-10-02 Andrew MacLeod <amacleod@redhat.com>
2940
2941 * tree-flow.h: Remove some prototypes.
2942 * gimple-fold.h: Add prototypes from gimple.h and tree-flow.h.
2943 * tree-ssa-propagate.h: Relocate prototypes from tree-flow.h.
2944 * tree-ssa-copy.c (may_propagate*, propagate_value, replace_exp,
2945 propagate_tree_value*): Move from here to...
2946 * tree-ssa-propagate.c (may_propagate*, propagate_value, replace_exp,
2947 propagate_tree_value*): Relocate here.
2948 * tree-ssa-propagate.h: Relocate prototypes from tree-flow.h.
2949 * gimple.h: Include gimple-fold.h, move prototypes into gimple-fold.h.
2950 * gimple-fold.c: Remove gimple-fold.h from include list.
2951 * tree-vrp.c: Remove gimple-fold.h from include list.
2952 * tree-ssa-sccvn.c: Remove gimple-fold.h from include list.
2953 * tree-ssa-ccp.c: Remove gimple-fold.h from include list.
2954 * tree-scalar-evolution.c: Add tree-ssa-propagate.h to include list.
2955 * tree-ssa-pre.c: Add tree-ssa-propagate.h to include list.
2956 * sese.c: Add tree-ssa-propagate.h to include list.
2957
826a536d
RB
29582013-10-02 Richard Biener <rguenther@suse.de>
2959
2960 * tree-loop-distribution.c: Include tree-vectorizer.h for
2961 find_loop_location.
2962 (enum partition_kind): Remove PKIND_REDUCTION.
78cedfb1 2963 (struct partition_s): Remove has_writes member, add reduction_p member.
826a536d
RB
2964 (partition_alloc): Adjust.
2965 (partition_builtin_p): Likewise.
2966 (partition_has_writes): Remove.
2967 (partition_reduction_p): New function.
2968 (partition_merge_into): Likewise.
2969 (generate_code_for_partition): Commonize builtin partition
2970 handling tail.
2971 (rdg_cannot_recompute_vertex_p): Remove.
2972 (already_processed_vertex_p): Likewise.
2973 (rdg_flag_vertex): Do not set has_writes.
2974 (classify_partition): Adjust.
2975 (rdg_build_partitions): Do not set has_writes, treat all
2976 partitions as useful.
78cedfb1 2977 (distribute_loop): Record number of library calls generated. Adjust.
826a536d
RB
2978 (tree_loop_distribution): Report number of loops and library
2979 calls generated as opt-info.
2980
4b403ece
AM
29812013-10-02 Andrew MacLeod <amacleod@redhat.com>
2982
2983 * tree-flow.h: Include new .h files. Move prototypes.
2984 * tree-cfgcleanup.h: New file. Add prototypes from tree-flow.h.
2985 * tree-dfa.h: New File. Add prototypes from tree-flow.h.
2986 (get_addr_base_and_unit_offset_1) Move from tree-flow-inline.h.
2987 * tree-pretty-print.h: Add prototypes from tree-flow.h.
2988 * tree-into-ssa.h: New File. Add prototypes from tree-flow.h.
2989 ({debug|dump}*): Move debugging prototypes out of tree-into-ssa.c.
2990 * tree-into-ssa.c ({debug|dump}*): Move prototypes to header file.
2991 * tree.h (get_ref_base_and_extent): Move prototype out.
78cedfb1 2992 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Move to
4b403ece
AM
2993 tree-dfa.h.
2994 * gimple-low.h: New File. Add prototypes from tree-flow.h.
2995 * gimple-low.c (try_catch_may_fallthru, block_may_fallthru): Move to...
2996 * tree.c (try_catch_may_fallthru, block_may_fallthru): Here.
2997 * tree-scalar-evolution.c: Include tree.h.
2998 * sese.c: Include tree.h.
2999 * dumpfile.c: Move gimple-pretty-print.h include after tree.h.
3000 * dwarf2out.c: Include tree-dfa.h.
3001 * tree-chrec.c: Include tree.h.
3002 * tree-data-ref.c: Include tree.h.
3003
1d2151c6
YZ
30042013-10-02 Yufeng Zhang <yufeng.zhang@arm.com>
3005
3006 * gimple-ssa-strength-reduction.c (backtrace_base_for_ref):
3007 Fix whitespace.
3008
441ad147
RO
30092013-10-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3010
3011 * config/t-sol2 (sol2-c.o): Remove header dependencies.
3012 Use $(COMPILE) and $(POSTCOMPILE).
3013 (sol2-cxx.o): Likewise.
3014 (sol2-stubs.o): Likewise.
3015 (sol2.o): Likewise.
3016 * config/x-solaris (host-solaris.o): Likewise.
3017
3018 * config/sparc/t-sparc (sparc.o): Remove.
3019 (sparc-c.o): Remove header dependencies.
3020 Use $(COMPILE) and $(POSTCOMPILE).
3021 * config/sparc/x-sparc: Likewise.
3022
2deaf8b0
JR
30232013-10-02 Joern Rennecke <joern.rennecke@embecosm.com>
3024
3025 * config/arc/arc-opts.h: Add 2013 to Copyright years.
3026 * config/arc/arc700.md: Likewise.
3027 * config/arc/arc-modes.def: Likewise.
3028 * config/arc/arc-simd.h: Likewise.
3029 * config/arc/t-arc-uClibc: Likewise.
3030 * config/arc/t-arc-newlib: Likewise.
3031
f6fe771a
RL
30322013-10-02 Renlin Li <renlin.li@arm.com>
3033
78cedfb1
UB
3034 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use
3035 plus_constant.
f6fe771a
RL
3036 (aarch64_expand_epilogue): Likewise.
3037
0916f876
YZ
30382013-10-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3039 Yufeng Zhang <yufeng.zhang@arm.com>
3040
3041 * gimple-ssa-strength-reduction.c (legal_cast_p_1): Forward
3042 declaration.
3043 (backtrace_base_for_ref): Call get_unwidened with 'base_in' if
3044 'base_in' represent a conversion and legal_cast_p_1 holds; set
3045 'base_in' with the returned value from get_unwidened.
3046
ebfcd719
KT
30472013-10-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3048
3049 * config/arm/arm.c (arm_legitimize_reload_address): Explain why
3050 plus_constant is not used.
3051
157ca3e9
WM
30522013-10-01 Wei Mi <wmi@google.com>
3053
78cedfb1 3054 * config/i386/x86-tune.def (DEF_TUNE): Remove m_CORE_ALL.
157ca3e9
WM
3055 * config/i386/i386.md: Add define_peephole2 to
3056 break partial reg stall for cvtss2sd/cvtsd2ss.
3057
cd4dd8f0
JR
30582013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
3059
3060 * config/arc/arc.c (pass_arc_ifcvt::clone):
78cedfb1 3061 Update for ctxt_ -> m_ctxt change.
cd4dd8f0 3062
1465e5cf
JL
30632013-10-01 Jeff Law <law@redhat.com>
3064
3065 * tree-ssa-threadupdate.c (struct redirection_data): Delete
3066 outgoing_edge and intermediate_edge fields. Instead store the path.
3067 (redirection_data::hash): Hash on the last edge's destination index.
3068 (redirection_data::equal): Check the entire thread path.
3069 (lookup_redirectio_data): Corresponding changes.
3070 (create_edge_and_update_destination_phis): Likewise.
3071 (thread_single_edge): Likewise.
3072
25c606cb 30732013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
0ccbc132 3074 Diego Novillo <dnovillo@google.com>
25c606cb
JR
3075
3076 * config/arc/simdext.md (UNSPEC_ARC_SIMD_VLD32WH): Delete.
3077 (UNSPEC_ARC_SIMD_VLD32WL): Likewise.
3078 (vld32wh_insn, vld32wl_insn): Delete commented-out old
3079 versions of these patterns.
3080
0ccbc132
JR
3081 * doc/extend.texi (long_call/medium_call/short_call): Typo fix.
3082 (__builtin_arc_aligned): Likewise.
3083
f55d4a20
JR
3084 * config/arc/arc.md: Expand adc_0 comment stating the intended
3085 purpose and why it isn't ready.
3086 Replace commented out call_value_via_label_mixed with a
3087 plain comment about bl_s.
3088
5719867d 3089 * config/arc/arc.c (stdio.h): Don't include directly.
5719867d
JR
3090 (arc_expand_epilogue): Remove [0]: Remove fp_restored_p.
3091 Remove if (1) condition.
3092 (arc_encode_section_info): Fix comment.
3093
6462fab0
JR
30942013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
3095
3096 * config/arc/arc.c (arc_conditional_register_usage):
3097 Use ARC_FIRST_SIMD_VR_REG / ARC_LAST_SIMD_VR_REG.
3098 Also set reg_alloc_order for DMA config regs.
3099
5d5f6720
JR
31002013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
3101 Jeremy Bennett <jeremy.bennett@embecosm.com>
3102
3103 * doc/install.texi (--with-cpu): Mention ARC.
3104 (arc-*-elf32): New paragraph.
3105 (arc-linux-uclibc): Likewise.
3106 * doc/md.texi (Machine Constraints): Add ARC part.
3107 * doc/invoke.texi: (menu): Add ARC Options.
3108 (Machine Dependent Options) <ARC Options>: Add synopsis.
3109 (node ARC Options): Add.
3110 * doc/extend.texi (long_call / short_call attribute): Add ARC.
3111 (ARC Built-in Functions): New section defining
3112 generic ARC built-in functions.
3113 (ARC SIMD Built-in Functions): New section defining SIMD specific
3114 built-in functions.
3115 (Declaring Attributes of Functions): Extended
3116 description of short_call and long_call attributes for ARC and
3117 added index entries.
3118
526b7aee
SV
31192013-10-01 Saurabh Verma <saurabh.verma@codito.com>
3120 Ramana Radhakrishnan <ramana.radhakrishnan@codito.com>
3121 Joern Rennecke <joern.rennecke@embecosm.com>
3122 Muhammad Khurram Riaz <khurram.riaz@arc.com>
3123 Brendan Kehoe <brendan@zen.org>
3124 Michael Eager <eager@eagercon.com>
3125 Simon Cook <simon.cook@embecosm.com>
3126 Jeremy Bennett <jeremy.bennett@embecosm.com>
3127
3128 * config/arc, common/config/arc: New directories.
3129
53426f6c
JR
31302013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
3131 Brendan Kehoe <brendan@zen.org>
3132 Simon Cook <simon.cook@embecosm.com>
3133
3134 * config.gcc (arc*-*-elf*, arc*-*-linux-uclibc*): New configurations.
3135
1df9f5a9
AM
31362013-10-01 Andrew MacLeod <amacleod@redhat.com>
3137
3138 * tree-ssa-live.h (coalesce_ssa_name): Move Prototype to...
3139 * tree-ssa-coalesce.h: New. Move prototype to here.
3140 * tree-outof-ssa.h: Include tree-ssa-coalesce.h.
3141 * tree-ssa-coalesce.c: Include tree-outof-ssa.h.
3142 (gimple_can_coalesce_p): Move to...
3143 * gimple.c (gimple_can_coalesce_p): Here.
3144
80560f95
AM
31452013-10-01 Andrew MacLeod <amacleod@redhat.com>
3146
3147 * tree-into-ssa.c (enum need_phi_state): Relocate from tree-flow.h.
3148 (dump_decl_set): Move to gimple.c.
3149 * gimple.h: Don't include tree-ssa-operands.h.
3150 (dump_decl_set): Add prototype.
3151 (gimple_vuse_op, gimple_vdef_op, update_stmt, update_stmt_if_modified):
3152 Move to gimple-ssa.h.
3153 (phi_ssa_name_p, phi_nodes, phi_nodes_ptr, gimple_phi_arg_def,
3154 gimple_phi_arg_def_ptr, gimple_phi_arg_edge, gimple_phi_arg_location,
3155 gimple_phi_arg_location_from_edge, gimple_phi_arg_set_location,
3156 gimple_phi_arg_has_location): Relocate from tree-flow-inline.h
3157 * gimple.c (walk_stmt_load_store_ops): Use gimple_phi_arg_def rather
3158 than PHI_ARG_DEF.
3159 (dump_decl_set): Relocate here.
3160 * gimple-ssa.h: New file.
3161 (gimple_vuse_op, gimple_vdef_op, update_stmt, update_stmt_if_modified):
3162 Relocate from gimple.h.
3163 * tree-cfg.c (has_zero_uses_1, single_imm_use_1): Move to...
3164 * tree-ssa-operands.c (swap_ssa_operands): Rename from
3165 swap_tree_operands and remove non-ssa path.
3166 (has_zero_uses_1, single_imm_use_1): Relocate from tree-cfg.c.
3167 * tree-ssa-reassoc.c (linearize_expr_tree, repropagate_negates): Use
3168 swap_ssa_operands.
3169 * tree-vect-loop.c (destroy_loop_vec_info, vect_is_slp_reduction,
3170 vect_is_simple_reduction_1): Use swap_ssa_operands.
3171 * tree-flow.h: Move various prototypes to tree-phinodes.h.
3172 (enum need_phi_state): Move to tree-into-ssa.c.
3173 (struct immediate_use_iterator_d, FOR_EACH_IMM_*,
3174 BREAK_FROM_IMM_USE_STMT): Move to ssa-iterators.h.
3175 (swap_tree_operands): Rename and move prototype to tree-ssa-operands.h.
3176 * tree-flow-inline.h (delink_imm_use, link_imm_use_to_list,
3177 link_imm_use, set_ssa_use_from_ptr, link_imm_use_stmt, relink_imm_use,
3178 relink_imm_use_stmt, end_readonly_imm_use_p, first_readonly_imm_use,
3179 next_readonly_imm_use, has_zero_uses, has_single_use, single_imm_use,
3180 num_imm_uses): Move to ssa-iterators.h.
3181 (get_use_from_ptr, get_def_from_ptr): Move to tree-ssa-operands.h
7ab4168e 3182 (gimple_phi_arg_imm_use_ptr, phi_arg_index_from_use): Move to
80560f95
AM
3183 tree-phinodes.h.
3184 (op_iter_done, op_iter_next_def, op_iter_next_tree,
3185 clear_and_done_ssa_iter, op_iter_init, op_iter_init_use,
3186 op_iter_init_def, op_iter_init_tree, single_ssa_tree_operand,
3187 single_ssa_use_operand, single_ssa_def_operand, zero_ssa_operands,
3188 num_ssa_operands, delink_stmt_imm_use, single_phi_def,
3189 op_iter_init_phiuse, op_iter_init_phidef, end_imm_use_stmt_p,
3190 end_imm_use_stmt_traverse, move_use_after_head, link_use_stmts_after,
3191 first_imm_use_stmt, next_imm_use_stmt, first_imm_use_on_stmt,
3192 end_imm_use_on_stmt_p, next_imm_use_on_stmt): Move to ssa-iterators.h.
3193 (gimple_phi_arg_def, gimple_phi_arg_def_ptr, gimple_phi_arg_edge,
3194 gimple_phi_arg_location, gimple_phi_arg_location_from_edge,
3195 gimple_phi_arg_set_location, gimple_phi_arg_has_location, phi_nodes,
3196 phi_nodes_ptr, phi_ssa_name_p): Move to gimple.h.
3197 (set_phi_nodes): Move to tree-phinodes.h.
3198 * tree-ssa-operands.h (enum ssa_op_iter_type,
3199 struct ssa_operand_iterator_d, SSA_OP*, FOR_EACH_SSA*, SINGLE_SSA*,
3200 ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS): Move to ssa-iterators.h.
3201 (dump_decl_set): Remove prototype.
3202 (get_use_from_ptr, get_def_from_ptr): Relocate from tree-flow.h.
3203 * tree-phinodes.h: New file. Move some prototypes from tree-flow.h.
3204 (set_phi_nodes): Relocate from tree-flow-inline.h.
3205 (gimple_phi_arg_imm_use_ptr, phi_arg_index_from_use): Relocate from
3206 tree-flow-inline.h
3207 * tree-ssa.h: Add tree-phinodes.h, gimple-ssa.h, ssa-iterators.h to
3208 include list. Temporarily add gimple.h to include list.
3209 * ssa-iterators.h: New file.
3210 (struct immediate_use_iterator_d, FOR_EACH_IMM_*,
3211 BREAK_FROM_IMM_USE_STMT): Relocate from tree-flow.h.
3212 (enum ssa_op_iter_type, struct ssa_operand_iterator_d, SSA_OP*,
3213 FOR_EACH_SSA*, SINGLE_SSA*, ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS):
3214 Relocate from tree-ssa-operands.h.
3215 (delink_imm_use, link_imm_use_to_list, link_imm_use,
3216 set_ssa_use_from_ptr, link_imm_use_stmt, relink_imm_use,
3217 relink_imm_use_stmt, end_readonly_imm_use_p, first_readonly_imm_use,
3218 next_readonly_imm_use, has_zero_uses, has_single_use, single_imm_use,
3219 num_imm_uses, get_use_from_ptr, get_def_from_ptr,
3220 phi_arg_index_from_use, op_iter_done, op_iter_next_def,
3221 op_iter_next_tree, clear_and_done_ssa_iter, op_iter_init,
3222 op_iter_init_use, op_iter_init_def, op_iter_init_tree,
3223 single_ssa_tree_operand, single_ssa_use_operand, single_ssa_def_operand,
3224 zero_ssa_operands, num_ssa_operands, delink_stmt_imm_use,
3225 single_phi_def, op_iter_init_phiuse, op_iter_init_phidef,
3226 end_imm_use_stmt_p, end_imm_use_stmt_traverse, move_use_after_head,
3227 link_use_stmts_after, first_imm_use_stmt, next_imm_use_stmt,
3228 first_imm_use_on_stmt, end_imm_use_on_stmt_p, next_imm_use_on_stmt):
3229 Relocate from tree-flow-inline.h.
3230 * tree-outof-ssa.h: Change _SSAEXPAND_H macro to GCC_TREE_OUTOF_SSA_H.
3231
8da00d65
VP
32322013-10-01 Vidya Praveen <vidyapraveen@arm.com>
3233
3234 * aarch64-simd.md
3235 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l2<mode>_internal): Rename to ...
3236 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_hi_internal): ... this;
3237 Insert '\t' to output template.
3238 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_lo_internal): New.
3239 (aarch64_saddl2<mode>, aarch64_uaddl2<mode>): Modify to call
3240 gen_aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_hi_internal() instead.
3241 (aarch64_ssubl2<mode>, aarch64_usubl2<mode>): Ditto.
3242
e2ebe1c2
UB
32432013-10-01 Uros Bizjak <ubizjak@gmail.com>
3244
3245 * doc/install.texi (Host/target specific installation notes for GCC):
3246 Put @anchor before @heading.
3247 * doc/gcc.texi (titlepage): Use @uref and http:// prefix for website.
3248 Use @email for email addresses.
3249
aee2d611
JL
32502013-10-01 Jeff Law <law@redhat.com>
3251
3252 * tree-ssa-threadedge.c (thread_across_edge): Make path a pointer to
3253 a vec. Only delete the path if we create one without successfully
3254 registering a jump thread.
3255 * tree-ssa-threadupdate.h (register_jump_thread): Pass in path vector
3256 as a pointer.
3257 * tree-ssa-threadupdate.c (threaded_edges): Remove. No longer used
3258 (paths): New vector of jump threading paths.
3259 (THREAD_TARGET, THREAD_TARGET2): Remove accessor macros.
3260 (THREAD_PATH): New accessor macro for the entire thread path.
3261 (lookup_redirection_data): Get intermediate and final outgoing edge
3262 from the thread path.
3263 (create_edge_and_update_destination_phis): Copy the threading path.
3264 (ssa_fix_duplicate_block_edges): Get edges and block types from the
3265 jump threading path.
3266 (ssa_redirect_edges): Get edges and block types from the jump threading
3267 path. Free the path vector.
3268 (thread_block): Get edges from the jump threading path. Look at the
3269 entire path to see if we thread to a loop exit. If we cancel a jump
3270 thread request, then free the path vector.
3271 (thread_single_edge): Get edges and block types from the jump threading
3272 path. Free the path vector.
3273 (thread_through_loop_header): Get edges and block types from the jump
3274 threading path. Free the path vector.
3275 (mark_threaded_blocks): Iterate over the vector of paths and store
3276 the path on the appropriate edge. Get edges and block types from the
3277 jump threading path.
3278 (mark_threaded_blocks): Get edges and block types from the jump
3279 threading path. Free the path vector.
3280 (thread_through_all_blocks): Use the vector of paths rather than
3281 a vector of 3-edge sets.
3282 (register_jump_thread): Accept pointer to a path vector rather
3283 than the path vector itself. Store the path vector for later use.
3284 Simplify.
3285
966f97ac 32862013-10-01 Jakub Jelinek <jakub@redhat.com>
8da00d65 3287 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
966f97ac
JJ
3288
3289 PR target/58574
3290 * config/s390/s390.c (s390_split_branches): Modify check for table
3291 jump insns.
3292 (s390_chunkify_start): Rearrange table jump insn check in order to
3293 deal with compare and branch insns correctly.
3294
3a323a38
KV
32952013-10-01 Kugan Vivekanandarajah <kuganv@linaro.org>
3296
3297 PR target/58578
3298 Revert
3299 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
3300 * config/arm/arm.md (arm_ashldi3_1bit): define_insn into
3301 define_insn_and_split.
3302 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
3303 (shiftsi3_compare): New pattern.
3304 (rrx): New pattern.
3305 * config/arm/unspecs.md (UNSPEC_RRX): New.
3306
90444831
AM
33072013-10-01 Alan Modra <amodra@gmail.com>
3308
3309 * stmt.c (expand_asm_operands): Revert part of 2013-09-24 special
3310 casing inout operands.
3311
818625cf
RB
33122013-10-01 Richard Biener <rguenther@suse.de>
3313
3314 PR tree-optimization/58553
3315 * tree-loop-distribution.c (struct partition_s): Add niter member.
3316 (classify_partition): Populate niter member for the partition
3317 and properly identify whether the relevant store happens before
3318 or after the loop exit.
3319 (generate_memset_builtin): Use niter member from the partition.
3320 (generate_memcpy_builtin): Likewise.
3321
30f641cd
RS
33222013-09-30 Richard Sandiford <rdsandiford@googlemail.com>
3323
3324 * vec.h (vec_prefix, vec): Prefix member names with "m_".
3325 * vec.c (vec_prefix::calculate_allocation): Update accordingly.
3326
65d3284b
RS
33272013-09-30 Richard Sandiford <rdsandiford@googlemail.com>
3328
3329 * basic-block.h (edge_list): Prefix member names with "m_".
3330 * context.h (context): Likewise.
3331 * domwalk.h (dom_walker): Likewise.
3332 * gengtype-state.c (s_expr_writer, state_writer): Likewise.
3333 * graphite-sese-to-poly.c (sese_dom_walker): Likewise.
3334 * hash-table.h (hash_table): Likewise.
3335 * machmode.h (bit_field_mode_iterator): Likewise.
3336 * pass_manager.h (pass_list): Likewise.
3337 * tree-into-ssa.c (mark_def_dom_walker): Likewise.
3338 * tree-pass.h (pass_data): Likewise.
3339 * tree-ssa-dom.c (dom_opt_dom_walker): Likewise.
3340 * tree-ssa-phiopt.c (nontrapping_dom_walker): Likewise,
3341 * tree-ssa-uncprop.c (uncprop_dom_walker): Likewise.
3342 * asan.c (pass_data_asan): Update accordingly.
3343 * cfganal.c (control_dependences::find_control_dependence): Likewise.
3344 (control_dependences::control_dependences): Likewise.
3345 (control_dependences::~control_dependences): Likewise.
3346 (control_dependences::~control_dependences): Likewise.
3347 (control_dependences::get_edges_dependent_on): Likewise.
3348 * cgraphbuild.c (pass_data_rebuild_cgraph_edges::clone): Likewise.
3349 (pass_data_remove_cgraph_callee_edges::clone): Likewise.
3350 * context.c (gcc::context::context): Likewise.
3351 * cprop.c (pass_rtl_cprop::clone): Likewise.
3352 * domwalk.c (dom_walker::walk): Likewise.
3353 * ipa-inline-analysis.c (pass_inline_parameters::clone): Likewise.
3354 * ipa-pure-const.c (pass_local_pure_const::clone): Likewise.
3355 * mode-switching.c (pass_mode_switching::clone): Likewise.
3356 * passes.c (opt_pass::opt_pass): Likewise.
3357 (pass_manager::pass_manager): Likewise.
3358 * predict.c (pass_strip_predict_hints::clone): Likewise.
3359 * recog.c (pass_data pass_data_peephole2::clone): Likewise.
3360 (pass_split_all_insns::clone): Likewise.
3361 * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator):
3362 Likewise.
3363 (bit_field_mode_iterator::next_mode): Likewise.
3364 (bit_field_mode_iterator::prefer_smaller_modes): Likewise.
3365 * tree-cfg.c (pass_split_crit_edges::clone): Likewise.
3366 * tree-cfgcleanup.c (pass_merge_phi::clone): Likewise.
3367 * tree-complex.c (pass_lower_complex::clone): Likewise.
3368 * tree-eh.c (pass_cleanup_eh::clone): Likewise.
3369 * tree-object-size.c (pass_object_sizes::clone): Likewise.
3370 * tree-optimize.c (pass_fixup_cfg::clone): Likewise.
3371 * tree-ssa-ccp.c (pass_data_ccp::clone): Likewise.
3372 (pass_fold_builtins::clone): Likewise.
3373 * tree-ssa-copy.c (pass_data_copy_prop::clone): Likewise.
3374 * tree-ssa-copyrename.c (pass_rename_ssa_copies::clone): Likewise.
3375 * tree-ssa-dce.c (pass_dce::clone, pass_dce_loop::clone): Likewise.
3376 (pass_cd_dce::clone): Likewise.
3377 * tree-ssa-dom.c (pass_dominator::clone): Likewise.
3378 (pass_phi_only_cprop::clone): Likewise.
3379 * tree-ssa-dse.c (pass_dse::clone): Likewise.
3380 * tree-ssa-forwprop.c (pass_forwprop::clone): Likewise.
3381 * tree-ssa-loop.c (pass_lim::clone): Likewise.
3382 * tree-ssa-phiopt.c (pass_phiopt::clone): Likewise.
3383 * tree-ssa-pre.c (pass_fre::clone): Likewise.
3384 * tree-ssa-reassoc.c (pass_reassoc::clone): Likewise.
3385 * tree-ssa-uninit.c (pass_late_warn_uninitialized::clone): Likewise.
3386 * tree-tailcall.c (pass_tail_recursion::clone): Likewise.
3387 * tree-vect-generic.c (pass_lower_vector_ssa::clone): Likewise.
3388 * tree-vrp.c (pass_vrp::clone): Likewise.
3389 * tsan.c (pass_tsan::clone): Likewise.
3390
f66d0891
JJ
33912013-09-30 Jakub Jelinek <jakub@redhat.com>
3392
d2a365a8
JJ
3393 PR middle-end/58564
3394 * fold-const.c (tree_unary_nonnegative_warnv_p): Use
3395 INTEGRAL_TYPE_P (t) instead of TREE_CODE (t) == INTEGER_TYPE.
3396
f66d0891
JJ
3397 PR middle-end/58564
3398 * fold-const.c (fold_ternary_loc): For A < 0 : <sign bit of A> : 0
3399 optimization, punt if sign_bit_p looked through any zero extension.
3400
05357ac3
TJ
34012013-09-30 Teresa Johnson <tejohnson@google.com>
3402
3403 * tree-ssa-threadupdate.c (ssa_fix_duplicate_block_edges):
3404 Update redirected out edge count in joiner case.
3405 (ssa_redirect_edges): Common the joiner and non-joiner cases
3406 so that joiner case gets profile updates.
3407
ca406576
RB
34082013-09-30 Richard Biener <rguenther@suse.de>
3409
3410 PR tree-optimization/58554
e2ebe1c2
UB
3411 * tree-loop-distribution.c (classify_partition): Require
3412 unconditionally executed stores for memcpy and memset recognition.
ca406576
RB
3413 (tree_loop_distribution): Calculate dominance info.
3414
92d649c4
VK
34152013-09-30 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
3416
3417 * config/aarch64/aarch64.h (MCOUNT_NAME): Define.
3418 (NO_PROFILE_COUNTERS): Likewise.
3419 (PROFILE_HOOK): Likewise.
3420 (FUNCTION_PROFILER): Likewise.
3421 * config/aarch64/aarch64.c (aarch64_function_profiler): Remove.
3422
bd9534e2
IS
34232013-09-30 Iain Sandoe <iain@codesourcery.com>
3424
3425 * config/rs6000/darwin.md (load_macho_picbase_si): Wrap machopic
3426 calls and defines in TARGET_MACHO conditional.
3427 (load_macho_picbase_di): Likewise.
3428 (reload_macho_picbase): Likewise.
3429 (reload_macho_picbase_si): Likewise.
3430 (reload_macho_picbase_di): Likewise.
3431 (nonlocal_goto_receiver): Likewise.
3432
4494fbc9
NC
34332013-09-30 Nick Clifton <nickc@redhat.com>
3434
3435 * config/msp430/msp430.c (msp430x_names): New array. Lists MCUs
3436 that use the MSP430X ISA.
3437 (msp430_option_override): Scan -mmcu command line option for any
3438 MCU name that supports the MSP430X ISA.
3439 * config/msp430/t-msp430 (MULTILIB_MATCHES): Add matches for known
3440 -mmcu options which enable the MSP430X ISA.
3441
791d9044
RB
34422013-09-30 Richard Biener <rguenther@suse.de>
3443
3444 PR middle-end/58532
3445 * tree-cfg.c (make_abnormal_goto_edges): Skip debug statements
3446 before looking for setjmp-like calls.
3447
e1c5c877
IS
34482013-09-29 Iain Sandoe <iain@codesourcery.com>
3449
3450 PR target/10901
3451 * config/darwin-protos.h (machopic_get_function_picbase): New.
3452 * config/darwin.c (machopic_get_function_picbase): New.
3453 * config/rs6000/darwin.md (load_macho_picbase_si): Update picbase
3454 label for a new func. (load_macho_picbase_di): Likewise.
3455 (reload_macho_picbase): New expand.
3456 (reload_macho_picbase_si): New insn.
3457 (reload_macho_picbase_di): New insn.
3458 (nonlocal_goto_receiver): New define and split.
3459 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_RELD_MPIC.
3460 (unspecv enum): Add UNSPECV_NLGR.
3461
749278c5
IS
34622013-09-29 Iain Sandoe <iain@codesourcery.com>
3463
3464 * config/rs6000/rs6000.c (rs6000_init_dwarf_reg_sizes_extra): Ensure
3465 that altivec registers are correctly sized on Darwin.
3466
2c43a51c
IS
34672013-09-29 Iain Sandoe <iain@codesourcery.com>
3468
3469 * config/t-darwin (darwin.o, darwin-c.o, darwin-f.o,
3470 darwin-driver.o): Use COMPILE and POSTCOMPILE.
3471 * config/x-darwin (host-darwin.o): Likewise.
3472 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
3473 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
3474 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
3475
7a5911d3
UB
34762013-09-29 Uros Bizjak <ubizjak@gmail.com>
3477
3478 * doc/invoke.texi: Fix usage of @tie{} command.
3479
3f67a73d
EB
34802013-09-29 Eric Botcazou <ebotcazou@adacore.com>
3481
3482 * config/sparc/sync.md: Add peephole for consecutive memory barriers.
3483
9ac2f538
JH
34842013-09-28 Jan Hubicka <jh@suse.cz>
3485
3486 * config/i386/x86-tune.def: Add documentation for each of the options;
3487 add whitespace.
3488
b0ff06da
JH
34892013-09-28 Jan Hubicka <jh@suse.cz>
3490
7a5911d3
UB
3491 * x86-tune.def (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL): Enable for
3492 generic.
b0ff06da
JH
3493 (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Likewise.
3494 (X86_TUNE_FOUR_JUMP_LIMIT): Drop for generic and buldozer.
3495 (X86_TUNE_PAD_RETURNS): Drop for buldozer chips.
3496 (X86_TUNE_AVOID_VECTOR_DECODE): Drop for generic.
3497 (X86_TUNE_REASSOC_FP_TO_PARALLEL): Enable for generic.
3498
c3284718
RS
34992013-09-28 Richard Sandiford <rdsandiford@googlemail.com>
3500
3501 * alloc-pool.c, asan.c, auto-inc-dec.c, basic-block.h, bb-reorder.c,
3502 bitmap.c, bitmap.h, bt-load.c, builtins.c, calls.c, cfgcleanup.c,
3503 cfgexpand.c, cfghooks.c, cfgloop.c, cfgloopmanip.c, cfgrtl.c, cgraph.c,
3504 cgraph.h, cgraphbuild.c, cgraphclones.c, cgraphunit.c, collect2.c,
3505 combine-stack-adj.c, combine.c, compare-elim.c, context.c, context.h,
3506 cprop.c, cse.c, cselib.c, dbxout.c, dce.c, defaults.h, df-core.c,
3507 df-problems.c, df-scan.c, df.h, diagnostic.c, double-int.c, dse.c,
3508 dumpfile.c, dwarf2asm.c, dwarf2cfi.c, dwarf2out.c, emit-rtl.c,
3509 errors.c, except.c, expmed.c, expr.c, file-find.c, final.c,
3510 fixed-value.c, fold-const.c, function.c, fwprop.c, gcc-ar.c, gcc.c,
3511 gcov-io.c, gcov-io.h, gcov.c, gcse.c, genattr-common.c, genattr.c,
3512 genattrtab.c, genautomata.c, genconfig.c, genemit.c, genextract.c,
3513 genflags.c, gengenrtl.c, gengtype-state.c, gengtype.c, genmodes.c,
3514 genopinit.c, genoutput.c, genpeep.c, genpreds.c, genrecog.c,
3515 gensupport.c, ggc-common.c, ggc-page.c, gimple-fold.c, gimple-low.c,
3516 gimple-pretty-print.c, gimple-ssa-strength-reduction.c, gimple.c,
3517 gimple.h, godump.c, graphite-clast-to-gimple.c,
3518 graphite-optimize-isl.c, graphite-poly.h, graphite-sese-to-poly.c,
3519 graphite.c, haifa-sched.c, hash-table.c, hash-table.h, hwint.c,
3520 hwint.h, ifcvt.c, incpath.c, init-regs.c, input.h, intl.c, intl.h,
3521 ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
3522 ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c,
3523 ipa-utils.c, ipa.c, ira-build.c, ira.c, jump.c, loop-doloop.c,
3524 loop-init.c, loop-invariant.c, loop-iv.c, lower-subreg.c, lto-cgraph.c,
3525 lto-streamer-in.c, lto-streamer-out.c, lto-wrapper.c, mcf.c,
3526 mode-switching.c, modulo-sched.c, omp-low.c, optabs.c, opts.c,
3527 pass_manager.h, passes.c, plugin.c, postreload-gcse.c, postreload.c,
3528 predict.c, prefix.c, pretty-print.c, print-rtl.c, print-tree.c,
3529 profile.c, read-md.c, real.c, real.h, recog.c, ree.c, reg-stack.c,
3530 regcprop.c, reginfo.c, regmove.c, regrename.c, regs.h, regstat.c,
3531 reload1.c, reorg.c, rtl.c, rtl.h, rtlanal.c, sbitmap.c, sched-rgn.c,
3532 sdbout.c, sel-sched-ir.c, sel-sched.c, sparseset.c, stack-ptr-mod.c,
3533 statistics.c, stmt.c, stor-layout.c, store-motion.c, streamer-hooks.h,
3534 system.h, target-hooks-macros.h, targhooks.c, targhooks.h, toplev.c,
3535 tracer.c, trans-mem.c, tree-browser.c, tree-call-cdce.c, tree-cfg.c,
3536 tree-cfgcleanup.c, tree-complex.c, tree-data-ref.c, tree-data-ref.h,
3537 tree-eh.c, tree-emutls.c, tree-flow.h, tree-if-conv.c, tree-into-ssa.c,
3538 tree-iterator.c, tree-loop-distribution.c, tree-mudflap.c,
3539 tree-nested.c, tree-nomudflap.c, tree-nrv.c, tree-object-size.c,
3540 tree-optimize.c, tree-pass.h, tree-pretty-print.c, tree-profile.c,
3541 tree-scalar-evolution.c, tree-sra.c, tree-ssa-ccp.c,
3542 tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
3543 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
3544 tree-ssa-ifcombine.c, tree-ssa-live.c, tree-ssa-loop-ch.c,
3545 tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-loop-prefetch.c,
3546 tree-ssa-loop.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
3547 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
3548 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
3549 tree-ssa-structalias.c, tree-ssa-threadedge.c, tree-ssa-threadupdate.c,
3550 tree-ssa-uncprop.c, tree-ssa-uninit.c, tree-ssa.c, tree-ssanames.c,
3551 tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
3552 tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
3553 tree-vect-stmts.c, tree-vectorizer.c, tree-vectorizer.h, tree-vrp.c,
3554 tree.c, tree.h, tsan.c, tsystem.h, value-prof.c, var-tracking.c,
3555 varasm.c, vec.h, vmsdbgout.c, vtable-verify.c, web.c: Add missing
3556 whitespace before "(".
3557
c6285bd7
SL
35582013-09-28 Sandra Loosemore <sandra@codesourcery.com>
3559
3560 * expr.h (extract_bit_field): Remove packedp parameter.
3561 * expmed.c (extract_fixed_bit_field): Remove packedp parameter
3562 from forward declaration.
3563 (store_split_bit_field): Remove packedp arg from calls to
3564 extract_fixed_bit_field.
3565 (extract_bit_field_1): Remove packedp parameter and packedp
3566 argument from recursive calls and calls to extract_fixed_bit_field.
3567 (extract_bit_field): Remove packedp parameter and corresponding
3568 arg to extract_bit_field_1.
3569 (extract_fixed_bit_field): Remove packedp parameter. Remove code
3570 to issue warnings.
3571 (extract_split_bit_field): Remove packedp arg from call to
3572 extract_fixed_bit_field.
3573 * expr.c (emit_group_load_1): Adjust calls to extract_bit_field.
3574 (copy_blkmode_from_reg): Likewise.
3575 (copy_blkmode_to_reg): Likewise.
3576 (read_complex_part): Likewise.
3577 (store_field): Likewise.
3578 (expand_expr_real_1): Likewise.
3579 * calls.c (store_unaligned_arguments_into_pseudos): Adjust call
3580 to extract_bit_field.
3581 * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Adjust
3582 call to extract_bit_field.
3583 * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Adjust
3584 call to extract_bit_field.
3585 * doc/invoke.texi (Code Gen Options): Remove mention of warnings
3586 and special packedp behavior from -fstrict-volatile-bitfields
3587 documentation.
3588
522d4efc
JBG
35892013-09-27 Jan-Benedict Glaw <jbglaw@lug-owl.de>
3590
3591 * lra-eliminations.c (init_elim_table): Guard value_p.
3592
19cdb489
MM
35932013-09-27 Michael Meissner <meissner@linux.vnet.ibm.com>
3594
3595 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Allow
3596 DFmode, DImode, and SFmode in the upper VSX registers based on the
3597 -mupper-regs-{df,sf} flags. Fix wu constraint to be ALTIVEC_REGS
3598 if -mpower8-vector. Combine -mvsx-timode handling with the rest
3599 of the VSX register handling.
3600
3601 * config/rs6000/rs6000.md (f32_lv): Use %x0 for VSX regsters.
3602 (f32_sv): Likewise.
3603 (zero_extendsidi2_lfiwzx): Add support for loading into the
3604 Altivec registers with -mpower8-vector. Use wu/wv constraints to
3605 only do VSX memory options on Altivec registers.
3606 (extendsidi2_lfiwax): Likewise.
3607 (extendsfdf2_fpr): Likewise.
3608 (mov<mode>_hardfloat, SF/SD modes): Likewise.
3609 (mov<mode>_hardfloat32, DF/DD modes): Likewise.
3610 (mov<mode>_hardfloat64, DF/DD modes): Likewise.
3611 (movdi_internal64): Likewise.
3612
d6d11272
XDL
36132013-09-27 Xinliang David Li <davidxl@google.com>
3614
3615 * opts.c (finish_options): Adjust parameters
3616 according to vect cost model.
3617 (common_handle_option): Set dynamic vect cost
3618 model for FDO.
3619 targhooks.c (default_add_stmt_cost): Compute stmt cost
3620 unconditionally.
3621 * tree-vect-loop.c (vect_estimate_min_profitable_iters):
3622 Use helper function.
3623 * tree-vectorizer.h (unlimited_cost_model): New function.
3624 * tree-vect-slp.c (vect_slp_analyze_bb_1): Use helper function.
3625 * tree-vect-data-refs.c (vect_peeling_hash_insert): Use helper
3626 function.
3627 (vect_enhance_data_refs_alignment): Ditto.
3628 * flag-types.h: New enum.
3629 * common/config/i386/i386-common.c (ix86_option_init_struct):
3630 No need to initialize vect_cost_model flag.
3631 * config/i386/i386.c (ix86_add_stmt_cost): Compute stmt cost
3632 unconditionally.
3633
ac1857a3
DN
36342013-09-27 Diego Novillo <dnovillo@google.com>
3635
3636 * gimple.h (enum ssa_mode): Remove.
3637
0d0e2af6
PM
36382013-09-27 Paulo Matos <pmatos@broadcom.com>
3639
3640 * cfgloop.h (number_of_loops): Fix typo in check for null.
3641
09dc585e
JJ
36422013-09-27 Jakub Jelinek <jakub@redhat.com>
3643
3644 PR middle-end/58551
3645 * tree-cfg.c (move_sese_region_to_fn): Also move loops that
3646 are children of outermost saved_cfun's loop, and set it up to
3647 be moved to dest_cfun's outermost loop. Fix up num_nodes adjustments
3648 if loop != loop0 and SESE region contains bbs that belong to loop0.
3649
ec5a3504
RS
36502013-09-27 Richard Sandiford <rdsandiford@googlemail.com>
3651
3652 * rtlanal.c (must_be_base_p, must_be_index_p): Delete.
3653 (binary_scale_code_p, get_base_term, get_index_term): New functions.
3654 (set_address_segment, set_address_base, set_address_index)
3655 (set_address_disp): Accept the argument unconditionally.
3656 (baseness): Remove must_be_base_p and must_be_index_p checks.
3657 (decompose_normal_address): Classify as much as possible in the
3658 main loop.
3659
f91aec98
RS
36602013-09-27 Richard Sandiford <rdsandiford@googlemail.com>
3661
3662 * cse.c (count_reg_usage): Handle INT_LIST.
3663 * lra-eliminations.c (lra_eliminate_regs_1): Likewise.
3664 * reginfo.c (reg_scan_mark_refs): Likewise.
3665 * reload1.c (eliminate_regs_1): Likewise.
3666
a9195970
IS
36672013-09-27 Iain Sandoe <iain@codesourcery.com>
3668
3669 PR middle-end/58547
3670 * rtlanal.c (lsb_bitfield_op_p): Make both parts of the comparison
3671 signed.
3672
e6f1c509
RB
36732013-09-27 Richard Biener <rguenther@suse.de>
3674
3675 PR tree-optimization/58459
3676 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Remove
3677 restriction not propagating into loops.
3678
84f48495
FW
36792013-09-26 Florian Weimer <fw@deneb.enyo.de>
3680
3681 * tree-ssa.h (walk_use_def_chains_fn, walk_use_def_chains): Delete.
3682 * tree-ssa.c (walk_use_def_chains_1, walk_use_def_chains): Delete.
3683 * doc/tree-ssa.texi (Walking use-def chains): Delete.
3684
74fc8b8a
RB
36852013-09-26 Richard Biener <rguenther@suse.de>
3686
7a5911d3 3687 * tree-into-ssa.c (rewrite_into_ssa): Make more SSA names to anonymous.
74fc8b8a 3688
b4ada065
RB
36892013-09-26 Richard Biener <rguenther@suse.de>
3690
3691 * alias.h (component_uses_parent_alias_set): Rename to ...
3692 (component_uses_parent_alias_set_from): ... this.
3693 * alias.c (component_uses_parent_alias_set): Rename to ...
3694 (component_uses_parent_alias_set_from): ... this and return
3695 the desired parent.
3696 (reference_alias_ptr_type_1): Use the result from
3697 component_uses_parent_alias_set_from instead of stripping
3698 components one at a time.
3699 * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust.
3700
78bca40d
AM
37012013-09-26 Andrew MacLeod <amacleod@redhat.com>
3702
7a5911d3
UB
3703 * tree-ssa-live.h (find_replaceable_exprs, dump_replaceable_exprs):
3704 Move prototypes to...
78bca40d
AM
3705 * tree-ssa-ter.h: New File. Move prototypes here.
3706 * tree-flow.h (stmt_is_replaceable_p): Remove prototype.
3707 * tree-outof-ssa.h: New. Rename ssaexpand.h, include tree-ssa-ter.h.
3708 * tree-outof-ssa.c (ssa_is_replaceable_p): New. Refactor common bits
7a5911d3 3709 from is_replaceable_p.
78bca40d
AM
3710 * tree-ssa-ter.c (is_replaceable_p, stmt_is_replaceable_p): Delete.
3711 (ter_is_replaceable_p): New. Use new refactored ssa_is_replaceable_p.
3712 (process_replaceable): Use ter_is_replaceable_p.
3713 (find_replaceable_in_bb): Use ter_is_replaceable_p.
3714 * expr.c (stmt_is_replaceable_p): Relocate from tree-ssa-ter.c. Use
3715 newly refactored ssa_is_replaceable_p.
3716 * cfgexpand.c: Include tree-outof-ssa.h.
3717 * ssaexpand.h: Delete.
3718
ff2a63a7
AM
37192013-09-26 Andrew MacLeod <amacleod@redhat.com>
3720
3721 * gimple.c (gimple_replace_lhs): Move to tree-ssa.c and rename.
3722 (struct count_ptr_d, count_ptr_derefs, count_uses_and_derefs): Move to
3723 tree-ssa.c
3724 (create_gimple_tmp): Delete.
3725 (get_expr_type, build_assign, build_type_cast): Move to...
3726 * gimple-builder.c: New File.
3727 (get_expr_type): Relocate from gimple.c.
3728 (build_assign, build_type_cast): Change to only create ssanames.
3729 * gimple.h: Move prototypes to...
3730 * gimple-builder.h: New File. Here.
3731 * tree-ssa.h: And here.
3732 * tree-ssa.c (struct count_ptr_d, count_ptr_derefs,
3733 count_uses_and_derefs): Relocate from gimple.c.
3734 (gimple_replace_ssa_lhs): Renamed gimple_replace_ssa from gimple.c
3735 * tree-ssa-reassoc.c (repropagate_negates): Use gimple_replace_ssa_lhs.
3736 * tree-ssa-math-opts (execute_cse_reciprocals): Use
3737 gimple_replace_ssa_lhs.
3738 * asan.c: Include gimple-builder.h.
3739 * Makefile.in: Add gimple-builder.o.
3740
a2544177
RB
37412013-09-26 Richard Biener <rguenther@suse.de>
3742
3743 * tree-ssa-live.c (var_map_base_init): Handle SSA names with
3744 DECL_IGNORED_P base VAR_DECLs like anonymous SSA names.
3745 (loe_visit_block): Use gcc_checking_assert.
3746 * tree-ssa-coalesce.c (create_outofssa_var_map): Use
3747 gimple_assign_ssa_name_copy_p.
3748 (gimple_can_coalesce_p): Adjust according to the var_map_base_init
3749 change.
3750
6d1ca9a0
DE
37512013-09-26 David Edelsohn <dje.gcc@gmail.com>
3752
3753 * config/rs6000/t-rs6000 (rs6000.o): Remove.
3754 (rs6000-c.o): Use COMPILE and POSTCOMPILE.
3755
46e950db
RB
37562013-09-26 Richard Biener <rguenther@suse.de>
3757
3758 PR tree-optimization/58539
3759 * tree-vect-loop.c (vect_create_epilog_for_reduction): Honor
3760 the fact that debug statements are not taking part in loop-closed
3761 SSA construction.
3762
40ada30a
NC
37632013-09-26 Nick Clifton <nickc@redhat.com>
3764
3765 * config/msp430/msp430.c (msp430_expand_epilogue): Fix compile
3766 time warning message.
3767 (msp430_print_operand_raw): Delete unused letter parameter.
3768 (TARGET_PRINT_OPERAND_ADDRESS): Define.
3769 (msp430_print_operand_address): New function.
3770 (msp430_print_operand): Move address printing code from here to
3771 new function.
3772 * config/msp430/msp430.md (movsipsi2): Add comment in generated
3773 assembler.
3774 (zero_extendpsisi2): Likewise.
3775 (extendpsisi2): New pattern.
3776 (andneghi3): New pattern.
3777
38e8f663
YR
37782013-09-26 Yvan Roux <yvan.roux@linaro.org>
3779
3780 * config/aarch64/aarch64.opt (mlra): New option.
3781 * config/aarch64/aarch64.c (aarch64_lra_p): New function.
3782 (TARGET_LRA_P): Define.
3783
4167e8d4
EB
37842013-09-26 Eric Botcazou <ebotcazou@adacore.com>
3785
3786 * expr.c (expand_assignment): Remove obsolete comment.
3787
5254eac4
JL
37882013-09-25 Jeff Law <law@redhat.com>
3789
3790 * tree-flow.h (thread_through_all_blocks): Prototype moved into
3791 tree-ssa-threadupdate.h.
3792 (register_jump_thread): Similarly.
3793 * tree-ssa-threadupdate.h: New header file.
3794 * tree-ssa-dom.c: Include tree-ssa-threadupdate.h.
3795 * tree-vrp.c: Likewise.
3796 * tree-ssa-threadedge.c: Include tree-ssa-threadupdate.h.
3797 (thread_around_empty_blocks): Change type of path vector argument to
3798 an edge,type pair from just an edge. Initialize both elements when
3799 appending to a jump threading path. Tweak references to elements
3800 appropriately.
3801 (thread_across_edge): Similarly. Release memory for the elements
3802 as needed.
3803 * tree-ssa-threadupdate.c: Include tree-ssa-threadupdate.h.
3804 (dump_jump_thread_path): New function broken out from
3805 register_jump_thread.
3806 (register_jump_thread): Use dump_jump_thread_path. Change type of
3807 path vector entries. Search the path for NULL edges and dump
3808 the path if one is found. Tweak the conversion of path to 3-edge
3809 form to use the block copy type information embedded in the path.
3810
20f114a3
YR
38112013-09-25 Yvan Roux <yvan.roux@linaro.org>
3812
3813 * lra.c (update_inc_notes): Remove all REG_DEAD and REG_UNUSED notes.
3814
3936bafc
YR
38152013-09-25 Yvan Roux <yvan.roux@linaro.org>
3816 Vladimir Makarov <vmakarov@redhat.com>
3817
3818 * rtlanal.c (lsb_bitfield_op_p): New predicate for bitfield operations
3819 from the least significant bit.
3820 (strip_address_mutations): Add bitfield operations handling.
3821 (must_be_index_p): Add shifting and rotate operations handling.
3822 (set_address_base): Use must_be_base_p predicate.
4167e8d4 3823 (set_address_index): Use must_be_index_p predicate.
3936bafc 3824
b86f6e9e
AI
38252013-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
3826 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
3827 Sergey Lega <sergey.s.lega@intel.com>
3828 Anna Tikhonova <anna.tikhonova@intel.com>
3829 Ilya Tocar <ilya.tocar@intel.com>
3830 Andrey Turetskiy <andrey.turetskiy@intel.com>
3831 Ilya Verbin <ilya.verbin@intel.com>
3832 Kirill Yukhin <kirill.yukhin@intel.com>
3833 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
3834
3835 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
3836 Use new names.
3837 (ix86_expand_vector_move_misalign): Support new unaligned load and
3838 stores and use new names.
3839 (CODE_FOR_sse2_storedqu): Rename to ...
3840 (CODE_FOR_sse2_storedquv16qi): ... this.
3841 (CODE_FOR_sse2_loaddqu): Rename to ...
3842 (CODE_FOR_sse2_loaddquv16qi): ... this.
3843 (CODE_FOR_avx_loaddqu256): Rename to ...
3844 (CODE_FOR_avx_loaddquv32qi): ... this.
3845 (CODE_FOR_avx_storedqu256): Rename to ...
3846 (CODE_FOR_avx_storedquv32qi): ... this.
3847 * config/i386/i386.md (fpint_logic): New.
3848 * config/i386/sse.md (VMOVE): Extend for AVX512.
3849 (VF): Ditto.
3850 (VF_128_256): New.
3851 (VF_512): Ditto.
3852 (VI_UNALIGNED_LOADSTORE): Ditto.
3853 (sse2_avx_avx512f): Ditto.
3854 (sse2_avx2): Extend for AVX512.
3855 (sse4_1_avx2): Ditto.
3856 (avx2_avx512f): New.
3857 (sse): Extend for AVX512.
3858 (sse2): Ditto.
3859 (sse4_1): Ditto.
3860 (avxsizesuffix): Ditto.
3861 (sseintvecmode): Ditto.
3862 (ssePSmode): Ditto.
3863 (<sse>_loadu<ssemodesuffix><avxsizesuffix>): Ditto.
3864 (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Ditto.
3865 (<sse2>_loaddqu<avxsizesuffix>): Extend for AVX512 and rename to ...
3866 (<sse2_avx_avx512f>_loaddqu<mode>): ... this.
3867 (<sse2>_storedqu<avxsizesuffix>): Extend for AVX512 and rename to ...
3868 (<sse2_avx_avx512f>_storedqu<mode): ... this.
3869 (<sse>_movnt<mode>): Replace constraint "x" with "v".
3870 (STORENT_MODE): Extend for AVX512.
3871 (*absneg<mode>2): Replace constraint "x" with "v".
3872 (*mul<mode>3): Ditto.
3873 (*ieee_smin<mode>3): Ditto.
3874 (*ieee_smax<mode>3): Ditto.
3875 (avx_cmp<mode>3): Replace VF with VF_128_256.
3876 (*<sse>_maskcmp<mode>3_comm): Ditto.
3877 (<sse>_maskcmp<mode>3): Ditto.
3878 (<sse>_andnot<mode>3): Extend for AVX512.
3879 (<code><mode>3, anylogic): Replace VF with VF_128_256.
3880 (<code><mode>3, fpint_logic): New.
3881 (*<code><mode>3): Extend for AVX512.
3882 (avx512flogicsuff): New.
3883 (avx512f_<logic><mode>): Ditto.
3884 (<sse>_movmsk<ssemodesuffix><avxsizesuffix>): Replace VF with
3885 VF_128_256.
3886 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Ditto.
3887 (<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>): Ditto.
3888 (<sse4_1>_dp<ssemodesuffix><avxsizesuffix>): Ditto.
3889 (avx_vtest<ssemodesuffix><avxsizesuffix>): Ditto.
3890 (<sse4_1>_round<ssemodesuffix><avxsizesuffix>): Ditto.
3891 (xop_vpermil2<mode>3): Ditto.
3892 (*avx_vpermilp<mode>): Extend for AVX512 and rename to ...
3893 (*<sse2_avx_avx512f>_vpermilp<mode>): ... this.
3894 (avx_vpermilvar<mode>3): Extend for AVX512 and rename to ...
3895 (<sse2_avx_avx512f>_vpermilvar<mode>3): ... this.
3896
4d44d03c
TT
38972013-09-25 Tom Tromey <tromey@redhat.com>
3898
3899 * Makefile.in (PARTITION_H, LTO_SYMTAB_H, COMMON_TARGET_DEF_H)
3900 (RTL_ERROR_H, TRANS_MEM_H, COVERAGE_H, DEMANGLE_H, ALIAS_H)
3901 (SCHED_INT_H, SEL_SCHED_IR_H, SEL_SCHED_DUMP_H, VALTRACK_H, DDG_H)
3902 (GGC_INTERNAL_H, DECNUM_H, BACKTRACE_H, MKDEPS_H, TREE_HASHER_H)
3903 (TREE_SSA_LIVE_H, SSAEXPAND_H, DWARF2OUT_H, SCEV_H, OMEGA_H)
3904 (TREE_DATA_REF_H, IRA_INT_H, LRA_INT_H, DBGCNT_H, DATA_STREAMER_H)
3905 (GIMPLE_STREAMER_H, TREE_STREAMER_H, STREAMER_HOOKS_H)
3906 (TREE_VECTORIZER_H, IPA_INLINE_H, GSTAB_H, LIBFUNCS_H)
3907 (GRAPHITE_HTAB_H): Remove.
3908
86aaf68d
TT
39092013-09-25 Tom Tromey <tromey@redhat.com>
3910
3911 * config/mcore/t-mcore (CROSS_FLOAT_H): Remove.
3912
c987deb8
TT
39132013-09-25 Tom Tromey <tromey@redhat.com>
3914
3915 * config/t-glibc (glibc-c.o): Use COMPILE and POSTCOMPILE.
3916
9439747e
TT
39172013-09-25 Tom Tromey <tromey@redhat.com>
3918
3919 * config/i386/t-i386 (i386.o): Remove.
3920 (i386-c.o): Use COMPILE and POSTCOMPILE.
3921
aefc31a1
TT
39222013-09-25 Tom Tromey <tromey@redhat.com>
3923
3924 * Makefile.in ($(out_object_file)): Use COMPILE and POSTCOMPILE.
3925
b6541edc
TT
39262013-09-25 Tom Tromey <tromey@redhat.com>
3927
3928 * Makefile.in (graph.o, sbitmap.o, sparseset.o, gcc-ar.o)
3929 (gcc-ranlib.o, gcc-nm.o, collect2.o, collect2-aix.o, tlink.o)
3930 (lto-wrapper.o, default-c.o, attribs.o, incpath.o, prefix.o)
3931 (gcc.o, options.o, options-save.o, version.o, gtype-desc.o)
3932 (trans-mem.o, ggc-common.o, ggc-page.o, ggc-none.o, stringpool.o)
3933 (convert.o, double-int.o, lto-compress.o, data-streamer-in.o)
3934 (data-streamer-out.o, data-streamer.o, gimple-streamer-in.o)
3935 (gimple-streamer-out.o, tree-streamer.o, tree-streamer-in.o)
3936 (tree-streamer-out.o, streamer-hooks.o, lto-cgraph.o)
3937 (lto-streamer-in.o, lto-streamer-out.o, lto-section-in.o)
3938 (lto-section-out.o, lto-opts.o, lto-streamer.o, langhooks.o)
3939 (test-dump.o, tree.o, tree-dump.o, tree-inline.o, print-tree.o)
3940 (stor-layout.o, asan.o, tsan.o, ubsan.o, tree-ssa-tail-merge.o)
3941 (tree-ssa-structalias.o, tree-ssa-uninit.o, tree-ssa.o)
3942 (tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o)
3943 (tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o)
3944 (tree-ssa-phiprop.o, tree-ssa-ifcombine.o, tree-ssa-phiopt.o)
3945 (tree-nrv.o, tree-ssa-copy.o, tree-ssa-propagate.o)
3946 (tree-ssa-dom.o, tree-ssa-uncprop.o, tree-ssa-threadedge.o)
3947 (tree-ssa-threadupdate.o, tree-ssanames.o, tree-phinodes.o)
3948 (domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o)
3949 (tree-ssa-pre.o, tree-ssa-sccvn.o)
3950 (gimple-ssa-strength-reduction.o, tree-vrp.o, tree-cfg.o)
3951 (tree-cfgcleanup.o, tree-tailcall.o, tree-ssa-sink.o)
3952 (tree-nested.o, tree-if-conv.o, tree-iterator.o, tree-dfa.o)
3953 (tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o)
3954 (tree-ssa-loop-unswitch.o, tree-ssa-address.o)
3955 (tree-ssa-loop-niter.o, tree-ssa-loop-ivcanon.o)
3956 (tree-ssa-loop-ch.o, tree-ssa-loop-prefetch.o, tree-predcom.o)
3957 (tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-manip.o)
3958 (tree-ssa-loop-im.o, tree-ssa-math-opts.o, tree-ssa-alias.o)
3959 (tree-ssa-reassoc.o, tree-optimize.o, gimplify.o)
3960 (gimple-iterator.o, gimple-fold.o, gimple-low.o, omp-low.o)
3961 (tree-browser.o, omega.o, tree-chrec.o, tree-scalar-evolution.o)
3962 (tree-data-ref.o, sese.o, graphite.o, graphite-blocking.o)
3963 (graphite-clast-to-gimple.o, graphite-dependences.o)
3964 (graphite-interchange.o, graphite-poly.o)
3965 (graphite-scop-detection.o, graphite-sese-to-poly.o)
3966 (graphite-optimize-isl.o, tree-vect-loop.o)
3967 (tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o)
3968 (tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o)
3969 (vtable-verify.o, tree-loop-distribution.o, tree-parloops.o)
3970 (tree-stdarg.o, tree-object-size.o, internal-fn.o, gimple.o)
3971 (gimple-pretty-print.o, tree-mudflap.o, tree-nomudflap.o)
3972 (tree-pretty-print.o, tree-diagnostic.o, fold-const.o)
3973 (diagnostic.o, diagnostic-color.o, opts.o, opts-global.o)
3974 (opts-common.o, targhooks.o, common/common-targhooks.o, input.o)
3975 (toplev.o, hwint.o, passes.o, plugin.o, main.o, host-default.o)
3976 (rtl-error.o, rtl.o, print-rtl.o, rtlanal.o, varasm.o, function.o)
3977 (statistics.o, stmt.o, except.o, expr.o, dojump.o, builtins.o)
3978 (calls.o, expmed.o, explow.o, optabs.o, dbxout.o, debug.o)
3979 (sdbout.o, dwarf2out.o, dwarf2cfi.o, dwarf2asm.o, vmsdbgout.o)
3980 (xcoffout.o, godump.o, emit-rtl.o, real.o, realmpfr.o, dfp.o)
3981 (fixed-value.o, jump.o, simplify-rtx.o, symtab.o, cgraph.o)
3982 (cgraphunit.o, cgraphclones.o, cgraphbuild.o, varpool.o, ipa.o)
3983 (ipa-profile.o, ipa-devirt.o, ipa-prop.o, ipa-ref.o, ipa-cp.o)
3984 (ipa-split.o, ipa-inline.o, ipa-inline-analysis.o)
3985 (ipa-inline-transform.o, ipa-utils.o, ipa-reference.o)
3986 (ipa-pure-const.o, coverage.o, cselib.o, cse.o, dce.o, dumpfile.o)
3987 (dse.o, fwprop.o, web.o, ree.o, cprop.o, gcse.o, store-motion.o)
3988 (resource.o, lcm.o, mode-switching.o, tree-ssa-dce.o)
3989 (tree-call-cdce.o, tree-ssa-ccp.o, tree-ssa-strlen.o, tree-sra.o)
3990 (tree-switch-conversion.o, tree-complex.o, tree-emutls.o)
3991 (tree-vect-generic.o, df-core.o, df-problems.o, df-scan.o)
3992 (regstat.o, valtrack.o, var-tracking.o, profile.o, mcf.o)
3993 (tree-profile.o, value-prof.o, loop-doloop.o, alloc-pool.o)
3994 (auto-inc-dec.o, cfg.o, cfghooks.o, cfgexpand.o, cfgrtl.o)
3995 (cfganal.o, cfgbuild.o, cfgcleanup.o, cfgloop.o, cfgloopanal.o)
3996 (graphds.o, loop-iv.o, loop-invariant.o, cfgloopmanip.o)
3997 (loop-init.o, loop-unswitch.o, loop-unroll.o, dominance.o)
3998 (et-forest.o, combine.o, reginfo.o, bitmap.o, vec.o, hash-table.o)
3999 (reload.o, reload1.o, rtlhooks.o, postreload.o, postreload-gcse.o)
4000 (caller-save.o, bt-load.o, reorg.o, alias.o, stack-ptr-mod.o)
4001 (init-regs.o, ira-build.o, ira-costs.o, ira-conflicts.o)
4002 (ira-color.o, ira-emit.o, ira-lives.o, ira.o, lra.o)
4003 (lra-assigns.o, lra-coalesce.o, lra-constraints.o)
4004 (lra-eliminations.o, lra-lives.o, lra-spills.o, regmove.o)
4005 (combine-stack-adj.o, compare-elim.o, ddg.o, modulo-sched.o)
4006 (haifa-sched.o, sched-deps.o, sched-rgn.o, sched-ebb.o)
4007 (sched-vis.o, sel-sched.o, sel-sched-dump.o, sel-sched-ir.o)
4008 (final.o, recog.o, reg-stack.o, sreal.o, predict.o, lists.o)
4009 (bb-reorder.o, tracer.o, timevar.o, regcprop.o, regrename.o)
4010 (ifcvt.o, params.o, pointer-set.o, hooks.o, pretty-print.o)
4011 (errors.o, dbgcnt.o, lower-subreg.o, target-globals.o)
4012 (hw-doloop.o, file-find.o, context.o, $(common_out_object_file))
4013 (insn-attrtab.o, insn-automata.o, insn-dfatab.o, insn-emit.o)
4014 (insn-enums.o, insn-extract.o, insn-latencytab.o, insn-modes.o)
4015 (insn-opinit.o, insn-output.o, insn-peep.o, insn-preds.o)
4016 (insn-recog.o, intl.o, cppbuiltin.o, cppdefault.o, gcov.o)
4017 (gcov-dump.o): Remove.
4018 (default-c.o): Use COMPILE and POSTCOMPILE.
4019 (CFLAGS-gcc.o): New variable.
4020 ($(common_out_object_file)): Use COMPILE and POSTCOMPILE.
4021
8c796d19
TT
40222013-09-25 Tom Tromey <tromey@redhat.com>
4023
4024 * Makefile.in (c-family/cppspec.o, c-family/c-common.o)
4025 (c-family/c-cppbuiltin.o, c-family/c-dump.o, c-family/c-format.o)
4026 (c-family/c-gimplify.o, c-family/c-lex.o, c-family/c-omp.o)
4027 (c-family/c-opts.o, c-family/c-pch.o, c-family/c-ppoutput.o)
4028 (c-family/c-pragma.o, c-family/c-pretty-print.o)
4029 (c-family/c-semantics.o, c-family/c-ada-spec.o)
4030 (c-family/array-notation-common.o, c-family/stub-objc.o)
4031 (c-family/c-ubsan.o): Remove.
4032
0a6c2227
TT
40332013-09-25 Tom Tromey <tromey@redhat.com>
4034
4035 * Makefile.in (C_TREE_H): Reference c/c-tree.h.
4036
f3bc55f0
TT
40372013-09-25 Tom Tromey <tromey@redhat.com>
4038
4039 * Makefile.in (DRIVER_DEFINES): Use $(and), not shell code,
4040 to add -DENABLE_SHARED_LIBGCC.
4041 (gcc.o): Don't use subshell.
4042
c11c795e
TT
40432013-09-25 Tom Tromey <tromey@redhat.com>
4044
4045 * Makefile.in (OUTPUT_OPTION): Define as "-o $@".
4046 * configure.ac: Don't invoke AM_PROG_CC_C_O.
4047 (NO_MINUS_C_MINUS_O, OUTPUT_OPTION): Don't subst.
4048 * configure, config.in: Rebuild.
4049
043378c3
TT
40502013-09-25 Tom Tromey <tromey@redhat.com>
4051
4052 * Makefile.in (CCDEPMODE, DEPDIR, depcomp, COMPILE.base)
4053 (COMPILE, POSTCOMPILE): New variables.
4054 (.cc.o .c.o): Use COMPILE, POSTCOMPILE.
4055 (DEPFILES): New variable.
4056 Include ".Po" files.
4057 * configure.ac: Add checks for dependency checking.
4058 * configure, aclocal.m4: Regenerate.
4059
eab34643
TT
40602013-09-25 Tom Tromey <tromey@redhat.com>
4061
4062 * Makefile.in (ALL_HOST_BACKEND_OBJS): Add lto-wrapper.o.
7a5911d3 4063 ($(ALL_HOST_OBJS)): Move order-only dependency to end of file.
eab34643 4064
d2db5e91
TT
40652013-09-25 Tom Tromey <tromey@redhat.com>
4066
4067 * Makefile.in (generated_files): Add options.h,
4068 target-hooks-def.h, insn-opinit.h,
4069 common/common-target-hooks-def.h, pass-instances.def,
4070 c-family/c-target-hooks-def.h.
4071
af33629e
JL
40722013-09-25 Jeff Law <law@redhat.com>
4073
4074 * tree-ssa-threadedge.c (thread_across_edge): Use foo.last () rather
4075 than foo[foo.length () - 1] to access last member in a vec.
4076 * tree-ssa-threadupdate.c (register_jump_thread): Similarly.
4077
ed0d3051
RB
40782013-09-25 Richard Biener <rguenther@suse.de>
4079
4080 PR middle-end/58521
4081 * tree.c (iterative_hash_expr): Remove MEM_REF special handling.
4082
123485ca
JH
40832013-09-25 Jan Hubicka <jh@suse.cz>
4084
4085 * cgraph.c (cgraph_resolve_speculation): Use semantical equivalency
4086 test.
4087
d70b0f1f
MP
40882013-09-25 Marek Polacek <polacek@redhat.com>
4089
4090 PR sanitizer/58420
4091 * ubsan.c (ubsan_type_descriptor): Handle IDENTIFIER_NODEs
4092 when determining the type name.
4093
e3f02798
OE
40942013-09-24 Oleg Endo <olegendo@gcc.gnu.org>
4095
4096 * config/sh/sh.md: Fix formatting.
4097
7a5911d3 40982013-09-24 Xinliang David Li <davidxl@google.com>
4f17aa0b 4099
7a5911d3
UB
4100 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Check
4101 max peel iterations parameter.
4f17aa0b
XDL
4102 * param.def: New parameter.
4103 * doc/invoke.texi: Document New parameter.
4104
0498471b
CL
41052013-09-24 Christophe Lyon <christophe.lyon@linaro.org>
4106
4107 * gimple-pretty-print.c: Various whitespace tweaks.
4108 * tree-core.h: Likewise.
4109 * tree-pretty-print.c: Likewise.
4110 * tree-ssa-alias.c: Likewise.
4111 * tree-ssa-copy.c: Likewise.
4112 * tree-ssanames.c: Likewise.
4113 * tree-ssanames.h: Likewise.
4114 * tree-vrp.c: Likewise.
4115
5a8c2b57
AM
41162013-09-24 Alan Modra <amodra@gmail.com>
4117
4118 PR middle-end/57134
4119 PR middle-end/57586
7a5911d3
UB
4120 * stmt.c (expand_asm_operands): Call expand_expr with EXPAND_MEMORY
4121 for output operands that disallow regs. Don't use EXPAND_WRITE on
4122 inout operands.
5a8c2b57 4123
f40333af
RB
41242013-09-24 Richard Biener <rguenther@suse.de>
4125
4126 PR middle-end/58513
4127 * tree.c (reference_alias_ptr_type): Move ...
4128 * alias.c (reference_alias_ptr_type): ... here and implement
4129 in terms of the new reference_alias_ptr_type_1.
4130 (ref_all_alias_ptr_type_p): New helper.
4131 (get_deref_alias_set_1): Drop flag_strict_aliasing here,
4132 use ref_all_alias_ptr_type_p.
4133 (get_deref_alias_set): Add flag_strict_aliasing check here.
4134 (reference_alias_ptr_type_1): New function, split out from ...
4135 (get_alias_set): ... here.
4136 (alias_ptr_types_compatible_p): New function.
4137 * alias.h (reference_alias_ptr_type): Declare.
4138 (alias_ptr_types_compatible_p): Likewise.
4139 * tree.h (reference_alias_ptr_type): Remove.
4140 * fold-const.c (operand_equal_p): Use alias_ptr_types_compatible_p
4141 to compare MEM_REF alias types.
4142
583e8bf5
RB
41432013-09-24 Richard Biener <rguenther@suse.de>
4144
4145 * tree-vrp.c (vrp_finalize): Check for SSA name presence.
4146
5e8586d7
MM
41472013-09-23 Michael Meissner <meissner@linux.vnet.ibm.com>
4148
19c3e797
MM
4149 * config/rs6000/rs6000.c (rs6000_vector_reload): Delete, combine
4150 reload helper function arrays into a single array reg_addr.
4151 (reload_fpr_gpr): Likewise.
4152 (reload_gpr_vsx): Likewise.
4153 (reload_vsx_gpr): Likewise.
4154 (struct rs6000_reg_addr): Likewise.
4155 (reg_addr): Likewise.
4156 (rs6000_debug_reg_global): Change rs6000_vector_reload,
4157 reload_fpr_gpr, reload_gpr_vsx, reload_vsx_gpr uses to reg_addr.
4158 (rs6000_init_hard_regno_mode_ok): Likewise.
4159 (rs6000_secondary_reload_direct_move): Likewise.
4160 (rs6000_secondary_reload): Likewise.
4161
5e8586d7
MM
4162 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add new
4163 constraints: wu, ww, and wy. Repurpose wv constraint added during
4164 power8 changes. Put wg constraint in alphabetical order.
4165
4166 * config/rs6000/rs6000.opt (-mvsx-scalar-float): New debug switch
4167 for future work to add ISA 2.07 VSX single precision support.
4168 (-mvsx-scalar-double): Change default from -1 to 1, update
4169 documentation comment.
4170 (-mvsx-scalar-memory): Rename debug switch to -mupper-regs-df.
4171 (-mupper-regs-df): New debug switch to control whether DF values
4172 can go in the traditional Altivec registers.
4173 (-mupper-regs-sf): New debug switch to control whether SF values
4174 can go in the traditional Altivec registers.
4175
4176 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print wu, ww,
4177 and wy constraints.
4178 (rs6000_init_hard_regno_mode_ok): Use ssize_t instead of int for
4179 loop variables. Rename -mvsx-scalar-memory to -mupper-regs-df.
4180 Add new constraints, wu/ww/wy. Repurpose wv constraint.
4181 (rs6000_debug_legitimate_address_p): Print if we are running
4182 before, during, or after reload.
4183 (rs6000_secondary_reload): Add a comment.
4184 (rs6000_opt_masks): Add -mupper-regs-df, -mupper-regs-sf.
4185
4186 * config/rs6000/constraints.md (wa constraint): Sort w<x>
4187 constraints. Update documentation string.
4188 (wd constraint): Likewise.
4189 (wf constraint): Likewise.
4190 (wg constraint): Likewise.
4191 (wn constraint): Likewise.
4192 (ws constraint): Likewise.
4193 (wt constraint): Likewise.
4194 (wx constraint): Likewise.
4195 (wz constraint): Likewise.
4196 (wu constraint): New constraint for ISA 2.07 SFmode scalar
4197 instructions.
4198 (ww constraint): Likewise.
4199 (wy constraint): Likewise.
358e1993
MM
4200 (wv constraint): Repurpose ISA 2.07 constraint that we did not use
4201 in the previous submissions.
5e8586d7
MM
4202 * doc/md.texi (PowerPC and IBM RS6000): Likewise.
4203
e5af9ddd
RS
42042013-09-23 Richard Sandiford <rdsandiford@googlemail.com>
4205
4206 * doc/rtl.texi (REG_NOTES): Say that int_list can also be used.
4207 (REG_BR_PROB): Say that the probability is stored in an int_list.
4208 * reg-notes.def: Update commentary to mention INT_LIST.
4209 * rtl.def (EXPR_LIST, INSN_LIST): Capitalize comments.
4210 (INT_LIST): New rtx.
4211 * rtl.h (add_int_reg_note, add_shallow_copy_of_reg_note): Declare.
4212 * rtlanal.c (int_reg_note_p): New function.
4213 (alloc_reg_note): Assert that the note does not have an int argument.
4214 (add_int_reg_note, add_shallow_copy_of_reg_note): New functions.
4215 * combine.c (distribute_notes): Use add_shallow_copy_of_rtx.
4216 * cse.c (cse_process_notes_1): Expect REG_EQUAL to be an EXPR_LIST
4217 rather than an INSN_LIST. Handle INT_LIST.
4218 * ifcvt.c (cond_exec_process_insns): Take the probability as an int
4219 rather than an rtx. Use gen_rtx_INT_LIST to create a REG_BR_PROB note.
4220 (cond_exec_process_if_block): Use XINT to extract REG_BR_PROB values.
4221 Manipulate them as ints rather than rtxes.
4222 * reg-stack.c (subst_asm_stack_regs): Only handle EXPR_LIST notes.
4223 * regmove.c (copy_src_to_dest): Likewise.
4224 * sched-vis.c (print_insn_with_notes): Handle INT_LIST.
4225
4226 * config/i386/winnt.c (i386_pe_seh_unwind_emit): Sink pat assignment
4227 into the cases that need it.
4228 * config/arm/arm.c (arm_unwind_emit): Likewise.
4229
4230 * asan.c (asan_clear_shadow): Use add_int_reg_note for REG_BR_PROB.
4231 * emit-rtl.c (try_split, emit_copy_of_insn_after): Likewise.
4232 * loop-doloop.c (add_test, doloop_modify): Likewise.
4233 * loop-unswitch.c (compare_and_jump_seq): Likewise.
4234 * optabs.c (emit_cmp_and_jump_insn_1): Likewise.
4235 * predict.c (combine_predictions_for_insn): Likewise.
4236 * print-rtl.c (print_rtx): Handle INT_LIST.
4237 * config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): Likewise.
4238 * config/alpha/alpha.c (emit_unlikely_jump): Likewise.
4239 * config/arm/arm.c (emit_unlikely_jump): Likewise.
4240 * config/i386/i386.c (ix86_expand_split_stack_prologue): Likewise.
4241 (ix86_split_fp_branch, predict_jump): Likewise.
4242 * config/rs6000/rs6000.c (emit_unlikely_jump): Likewise.
4243 * config/sh/sh.c (expand_cbranchsi4): Likewise.
4244 * config/spu/spu.c (ea_load_store_inline): Likewise.
4245
4246 * cfgbuild.c (compute_outgoing_frequencies): Use XINT to access the
4247 value of a REG_BR_PROB note.
4248 * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
4249 (update_br_prob_note, rtl_verify_edges, purge_dead_edges): Likewise.
4250 * emit-rtl.c (try_split): Likewise.
4251 * predict.c (br_prob_note_reliable_p): Likewise.
4252 (invert_br_probabilities, combine_predictions_for_insn): Likewise.
4253 * reorg.c (mostly_true_jump): Likewise.
4254 * config/bfin/bfin.c (cbranch_predicted_taken_p): Likewise.
4255 * config/frv/frv.c (frv_print_operand_jump_hint): Likewise.
4256 * config/i386/i386.c (ix86_print_operand): Likewise.
4257 * config/ia64/ia64.c (ia64_print_operand): Likewise.
4258 * config/mmix/mmix.c (mmix_print_operand): Likewise.
4259 * config/rs6000/rs6000.c (output_cbranch): Likewise.
4260 * config/s390/s390.c (s390_expand_tbegin): Likewise.
4261 * config/sh/sh.c (sh_print_operand, sh_adjust_cost): Likewise.
4262 * config/sparc/sparc.c (output_cbranch): Likewise.
4263 * config/spu/spu.c (get_branch_target): Likewise.
4264 * config/tilegx/tilegx.c (cbranch_predicted_p): Likewise.
4265 * config/tilepro/tilepro.c (cbranch_predicted_p): Likewise.
4266
450ad0cd
JH
42672013-09-23 Jan Hubicka <jh@suse.cz>
4268
4269 * ipa-cp.c (ipa_get_indirect_edge_target_1): Add sanity check
4270 for ipa-devirt.
4271 * ipa-utils.h (possible_polymorphic_call_target_p): New function.
4272 * ipa-devirt.c (possible_polymorphic_call_target_p): Be tolerant
4273 of external calls
4274 * gimple-fold.c: Include ipa-utils.h and gimple-pretty-print.h
4275 (gimple_fold_call): Dump inconsistent devirtualizations; add
4276 sanity check for type based devirtualizations.
4277 * ipa-prop.c: Include ipa-utils.h
4278 (ipa_intraprocedural_devirtualization): Add sanity check.
4279 (try_make_edge_direct_virtual_call): Likewise.
4280
cefce769
EB
42812013-09-23 Eric Botcazou <ebotcazou@adacore.com>
4282
4283 * tree-ssa-ccp.c (insert_clobber_before_stack_restore): Recurse on copy
4284 assignment statements.
4285
a895a2b8
KV
42862013-09-23 Kugan Vivekanandarajah <kuganv@linaro.org>
4287
4288 * gimple-pretty-print.c (dump_ssaname_info): New function.
4289 (dump_gimple_phi): Call it.
4290 (pp_gimple_stmt_1): Likewise.
4291 * tree-core.h (tree_ssa_name): New union ssa_name_info_type field.
4292 (range_info_def): Declare.
4293 * tree-pretty-print.c (pp_double_int): New function.
4294 (dump_generic_node): Call it.
4295 * tree-pretty-print.h (pp_double_int): Declare.
4296 * tree-ssa-alias.c (dump_alias_info): Check pointer type.
4297 * tree-ssanames.h (range_info_def): New structure.
4298 (value_range_type): Move definition here.
4299 (set_range_info, value_range_type, duplicate_ssa_name_range_info):
4300 Declare.
4301 * tree-ssanames.c (make_ssa_name_fn): Check pointer type at
4302 initialization.
4303 (set_range_info): New function.
4304 (get_range_info): Likewise.
4305 (duplicate_ssa_name_range_info): Likewise.
4306 (duplicate_ssa_name_fn): Check pointer type and call
4307 duplicate_ssa_name_range_info.
4308 * tree-ssa-copy.c (fini_copy_prop): Likewise.
4309 * tree-vrp.c (value_range_type): Remove definition, now in
4310 tree-ssanames.h.
7a5911d3 4311 (vrp_finalize): Call set_range_info to update value range of SSA_NAMEs.
a895a2b8
KV
4312 * tree.h (SSA_NAME_PTR_INFO): Macro changed to access via union.
4313 (SSA_NAME_RANGE_INFO): New macro.
4314
984af6ac
RB
43152013-09-23 Richard Biener <rguenther@suse.de>
4316
4317 PR tree-optimization/58464
4318 * tree-ssa-pre.c (phi_trans_lookup): Remove.
7a5911d3 4319 (phi_trans_add): Change to add conditionally on being not present.
984af6ac
RB
4320 (phi_translate_1): Remove recursion detection here.
4321 (phi_translate): Pre-seed the cache with NULL to catch
4322 recursion here in a more generic way.
4323 (bitmap_find_leader): Adjust comment.
4324 (get_representative_for): Dump value-numbers.
4325 (create_expression_by_pieces): Likewise.
4326 (insert_into_preds_of_block): Likewise.
4327
0e26cf79
CB
43282013-09-23 Christian Bruel <christian.bruel@st.com>
4329
4330 PR target/58475
4331 * config/sh/sh.md (movsf_ie): Allow fpul_operand.
4332 * config/sh/predicate.md (arith_reg_operand): Disallow FPUL_REG.
4333
4d0e5b54
JG
43342013-09-23 James Greenhalgh <james.greenhalgh@arm.com>
4335
4336 Revert r202780:
4337 2013-09-20 Renlin Li <renlin.li@arm.com>
4338
7a5911d3
UB
4339 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use
4340 plus_constant.
4d0e5b54
JG
4341 (aarch64_expand_epilogue): Likewise.
4342 (aarch64_legitimize_reload_address): Likewise.
4343
ca081cc8
EB
43442013-09-22 Eric Botcazou <ebotcazou@adacore.com>
4345
4346 * gimplify.c (gimplify_asm_expr): Reset the TREE_CHAIN of clobbers to
4347 NULL_TREE before pushing them onto the vector. Likewise for labels.
4348
8fc53a5f
EB
43492013-09-21 Eric Botcazou <ebotcazou@adacore.com>
4350
4351 * config/ia64/predicates.md (ia64_cbranch_operator): Accept unordered
4352 comparison operators when -fno-trapping-math is in effect.
4353 * config/ia64/ia64.c (ia64_expand_compare): Add support for unordered
4354 comparison operators in TFmode and assert that unsupported operators
4355 cannot reach here.
4356 (ia64_print_operand): Likewise.
4357
43582013-09-21 Jan Hubicka <jh@suse.cz>
0ca6c49f
JH
4359
4360 * x86-tune.def (partial_reg_stall): Disable for CoreI7 and newer.
4361 (sse_typeless_stores): Enable for core
4362 (sse_load0_by_pxor): Likewise.
4363 (four_jump_limit): Disable for core.
4364 (pad_returns): Likewise.
4365 (avoid_vector_decode): Likewise.
4366 (fuse_cmp_and_branch): Enable for cores.
4367 * i386.c (x86_accumulate_outgoing_args): Disable for cores.
4368
578e51e6
JDA
43692013-09-20 John David Anglin <danglin@gcc.gnu.org>
4370
96ce28a3
JDA
4371 PR middle-end/56791
4372 * config/pa/pa.c (pa_option_override): Disable auto increment and
4373 decrement instructions until reload is completed.
4374
578e51e6
JDA
4375 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Define
4376 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2,
4377 and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
4378
6fcd3a13 43792013-09-20 DJ Delorie <dj@redhat.com>
7a5911d3 4380 Nick Clifton <nickc@redhat.com>
6fcd3a13
DD
4381
4382 * config/rl78/rl78.c: Various whitespace and comment tweaks.
4383 (need_to_save): Save bank 0 on interrupts.
4384 (characterize_address): Strip far address wrappers.
4385 (rl78_as_legitimate_address): Likewise.
4386 (transcode_memory_rtx): Likewise.
4387 (rl78_peep_movhi_p): Disable this peephole after devirt.
4388 (rl78_propogate_register_origins): Forget all origins when a
4389 CLOBBER is seen.
4390 * config/rl78/rl78-virt.md: Various whitespace tweaks.
4391 * config/rl78/rl78-real.md: Various whitespace tweaks. Additional
4392 peephole2's.
4393 * config/rl78/rl78.md (sel_rb): Disable for G10 just in case.
4394 * config/rl78/rl78-expand.md (movqi): Check for subregs of consts.
4395 * config/rl78/rl78.h (LINK_SPEC): Pass -gc-sections unless
4396 relocating.
4397 * config/rl78/constraints.md: Various whitespace and paren tweaks.
4398
4a08db33
JDA
43992013-09-20 John David Anglin <danglin@gcc.gnu.org>
4400
4401 * config/pa/pa.md: In "scc" insn patterns, change output template to
4402 handle const0_rtx in reg_or_0_operand operands.
4403
7691132c
JBG
44042013-09-20 Martin Husemann <martin@NetBSD.org>
4405
4406 PR target/56875
4407 * config/vax/vax.c (vax_output_int_move): Use D format specifier.
4408 * config/vax/vax.md (ashldi3, <unnamed>): Ditto.
4409
a3cc13cc
RB
44102013-09-20 Richard Biener <rguenther@suse.de>
4411
4412 PR middle-end/58484
4413 * tree-scalar-evolution.c (struct scev_info_str): Shrink by
4414 remembering SSA name version and block index.
4415 (new_scev_info_str): Adjust.
4416 (hash_scev_info): Likewise. Also hash the block index.
4417 (eq_scev_info): Adjust.
4418 (find_var_scev_info): Likewise.
4419 (struct instantiate_cache_entry): Remove.
4420 (struct instantiate_cache_type): Use a htab to map name, block
4421 to chrec.
4422 (instantiate_cache_type::~instantiate_cache_type): Adjust.
4423 (get_instantiated_value_entry): Likewise.
4424 (hash_idx_scev_info, eq_idx_scev_info): New functions.
4425 (instantiate_scev_name): Adjust.
4426
925f3871
JL
44272013-09-20 Jeff Law <law@redhat.com>
4428
4429 * tree-ssa-dom.c (record_temporary_equivalences): Add comment.
4430
2888c331
YZ
44312013-09-20 Yufeng Zhang <yufeng.zhang@arm.com>
4432
4433 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args):
4434 Call aarch64_simd_expand_args to update op[argc].
4435
0a811e96
BS
44362013-09-20 Basile Starynkevitch <basile@starynkevitch.net>
4437
7a5911d3
UB
4438 * plugin.c (parse_plugin_arg_opt): Accept equal sign inside
4439 plugin argument.
0a811e96 4440
0078f462
BS
44412013-09-20 Basile Starynkevitch <basile@starynkevitch.net>
4442
7a5911d3
UB
4443 * gengtype.c (file_rules): Added rule for *.cc files.
4444 (get_output_file_with_visibility): Give fatal message when no
4445 rules found.
0078f462 4446
d20e48b0
RL
44472013-09-20 Renlin Li <renlin.li@arm.com>
4448
4449 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use plus_constant.
4450 (aarch64_expand_epilogue): Likewise.
4451 (aarch64_legitimize_reload_address): Likewise.
4452
59bb1544
BE
44532013-09-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
4454
4455 PR middle-end/57748
4456 * expr.c (expand_assignment): Remove misalignp code path.
4457
a5430019
MP
44582013-09-20 Marek Polacek <polacek@redhat.com>
4459
4460 PR sanitizer/58413
4461 * ubsan.c (get_ubsan_type_info_for_type): Use TYPE_SIZE instead of
4462 TYPE_PRECISION. Add asserts.
4463
9fed7f3a
RB
44642013-09-20 Richard Biener <rguenther@suse.de>
4465
4466 PR tree-optimization/58453
4467 * tree-loop-distribution.c (distribute_loop): Apply the cost
4468 model for -ftree-loop-distribute-patterns, too.
4469
a820c834
RB
44702013-09-20 Richard Biener <rguenther@suse.de>
4471
4472 PR middle-end/58473
4473 * tree-chrec.h (build_polynomial_chrec): Use gcc_checking_assert,
4474 make type comparison less strict.
4475
3cbe17f7
AM
44762013-09-20 Alan Modra <amodra@gmail.com>
4477
4478 * configure: Regenerate.
4479 * aclocal.m4: Regenerate.
4480
87fccdbb
MP
44812013-09-20 Marek Polacek <polacek@redhat.com>
4482
4483 PR other/58467
4484 * doc/extend.texi: Document that attribute used is meant to be used
4485 on variables with static storage duration.
4486
8928eff3
JJ
44872013-09-19 Jakub Jelinek <jakub@redhat.com>
4488
4489 PR tree-optimization/58472
4490 * tree-vect-stmts.c (vectorizable_store, vectorizable_load): For
4491 simd_lane_access set inv_p = false.
4492 * omp-low.c (lower_rec_input_clauses): Set TREE_NO_WARNING on
4493 the simduid magic VAR_DECL.
4494
b7b28c53
JH
44952013-09-19 Jan Hubicka <jh@suse.cz>
4496
4497 * i386.c (generic_memcpy, generic_memset): Fix 32bit template.
4498
83ae86f5
JL
44992013-09-17 Jeff Law <law@redhat.com>
4500
4501 * tree-ssa-dom.c (record_temporary_equivalences): New function
4502 split out of dom_opt_dom_walker::after_dom_children.
4503 (dom_opt_dom_walker::thread_across_edge): Move common code
4504 in here from dom_opt_dom_walker::after_dom_children.
4505 (dom_opt_dom_walker::after_dom_children): Corresponding simplifictions.
4506
9d532162
JH
45072013-09-19 Jan Hubicka <jh@suse.cz>
4508
4509 * i386.h (TARGET_GENERIC32, TARGET_GENERIC64): Remove.
4510 (TARGET_GENERIC): Use PROCESOR_GENERIC
4511 (enum processor_type): Unify generic32 and 64.
4512 * i386.md (cpu): Likewise.
4513 * x86-tune.def (use_leave): Enable for generic32.
4514 (avoid_vector_decode, slow_imul_imm32_mem, slow_imul_imm8): Likewise.
4515 * athlon.md: Change generic64 to generic in all occurences.
4516 * i386-c.c (ix86_target_macros_internal): Unify generic64 and 32.
4517 (ix86_target_macros_internal): Likewise.
4518 * driver-i386.c (host_detect_local_cpu): Likewise.
7a5911d3
UB
4519 * i386.c (generic64_memcpy, generic64_memset, generic64_cost): Rename
4520 to ..
9d532162
JH
4521 (generic_memcpy, generic_memset, generic_cost): This one.
4522 (generic32_memcpy, generic32_memset, generic32_cost): Remove.
4523 (m_GENERIC32, m_GENERIC64): Remove.
4524 (m_GENERIC): Turn into one flag.
4525 (processor_target): Unify generic tunnings.
4526 (ix86_option_override_internal): Replace generic32/64 by generic.
4527 (ix86_issue_rate): Likewise.
4528 (ix86_adjust_cost): Likewise.
4529
188c7d00
JH
45302013-09-19 Jan Hubicka <jh@suse.cz>
4531
4532 * cgraph.c (cgraph_create_edge_1): Avoid uninitialized read
4533 of speculative flag.
4534
4befd127
JJ
45352013-09-19 Jakub Jelinek <jakub@redhat.com>
4536
4537 * omp-low.c (expand_omp_sections): Always pass len - 1 to
4538 GOMP_sections_start, even if !exit_reachable.
4539
8a26ad39
VM
45402013-09-18 Vladimir Makarov <vmakarov@redhat.com>
4541
4542 * lra-constraints.c (need_for_all_save_p): Use macro
4543 HARD_REGNO_CALL_PART_CLOBBERED.
4544 * lra-lives.c (check_pseudos_live_through_calls): Use the macro to
4545 set up pseudo conflict hard regs.
4546
09487185
MM
45472013-09-18 Michael Meissner <meissner@linux.vnet.ibm.com>
4548
4549 PR target/58452
4550 * config/rs6000/paired.md (movmisalignv2sf): Fix to allow memory
4551 operands.
4552
080cbf9e
VM
45532013-09-18 Vladimir Makarov <vmakarov@redhat.com>
4554
4555 PR rtl-optimization/58438
4556 * lra.c (lra): Clear lra_optional_reload_pseudos in upper loop.
4557 * lra-constraints.c (undo_optional_reloads): Keep optional reloads
4558 from previous subpasses.
4559
a0f70fcb
RE
45602013-09-18 Richard Earnshaw <rearnsha@arm.com>
4561
4562 * arm.c (arm_get_frame_offsets): Validate architecture supports
4563 LDRD/STRD before accepting the tuning preference.
4564 (arm_expand_prologue): Likewise.
4565 (arm_expand_epilogue): Likewise.
4566
0547c9b6
RB
45672013-09-18 Richard Biener <rguenther@suse.de>
4568
4569 PR tree-optimization/58417
4570 * tree-chrec.c (chrec_fold_plus_1): Assert that we do not
4571 have chrecs with symbols defined in the loop as operands.
4572 (chrec_fold_multiply): Likewise.
4573 * tree-scalar-evolution.c (interpret_rhs_expr): Instantiate
4574 parameters before folding binary operations.
4575 (struct instantiate_cache_entry_hasher): Remove.
4576 (struct instantiate_cache_type): Use a pointer-map.
4577 (instantiate_cache_type::instantiate_cache_type): New function.
4578 (instantiate_cache_type::get): Likewise.
4579 (instantiate_cache_type::set): Likewise.
4580 (instantiate_cache_type::~instantiate_cache_type): Adjust.
4581 (get_instantiated_value_entry): Likewise.
4582 (global_cache): New global.
4583 (instantiate_scev_r, instantiate_scev_poly, instantiate_scev_binary,
4584 instantiate_array_ref, instantiate_scev_convert, instantiate_scev_3,
4585 instantiate_scev_2, instantiate_scev_1): Do not pass along cache.
4586 (instantiate_scev_name): Adjust.
4587 (instantiate_scev): Construct global instead of local cache.
4588 (resolve_mixers): Likewise.
4589
309dc1aa
DM
45902013-09-18 Daniel Morris <danielm@ecoscentric.com>
4591 Paolo Carlini <paolo.carlini@oracle.com>
4592
4593 PR c++/58458
4594 * doc/implement-cxx.texi: Fix references to the C++ standards.
4595
995a1b4a
JJ
45962013-09-18 Jakub Jelinek <jakub@redhat.com>
4597
4598 * omp-low.c (copy_var_decl): Copy DECL_ATTRIBUTES.
4599 * tree-vect-data-refs.c (vect_analyze_data_refs): For
4600 simd_lane_access drs, update also DR_ALIGNED_TO.
4601
ce6923c5
MP
46022013-09-18 Marek Polacek <polacek@redhat.com>
4603
4604 PR sanitizer/58411
4605 * doc/extend.texi: Document no_sanitize_undefined attribute.
4606 * builtins.c (fold_builtin_0): Don't sanitize function if it has the
4607 no_sanitize_undefined attribute.
4608
d30d00a2
NC
46092013-09-18 Nick Clifton <nickc@redhat.com>
4610
4611 * config/msp430/msp430.h (ASM_SPEC): Pass -md on to the assembler.
4612 (ASM_DECLARE_FUNCTION_NAME): Define.
4613
4d9192b5
TS
46142013-09-17 Trevor Saunders <tsaunders@mozilla.com>
4615
4616 * compare-elim.c (find_comparison_dom_walker): New class
4617 (find_comparisons_in_bb): Rename to
4618 find_comparison_dom_walker::before_dom_children
4619 (find_comparisons): Adjust
4620 * domwalk.c (walk_dominator_tree): Rename to dom_walker::walk, and
4621 adjust.
4622 (init_walk_dominator_tree, fini_walk_dominator_tree): Remove
4623 * domwalk.h (dom_walk_data): Convert it To a class dom_walker.
4624 (init_walk_dominator_tree): Remove declaration.
4625 (fini_walk_dominator_tree): Remove declaration.
4626 * fwprop.c (single_def_use_dom_walker): New class
4627 (single_def_use_enter_block): Convert to
4628 single_def_use_dom_walker::before_dom_children.
4629 (single_def_use_leave_block): Convert to
4630 single_def_use_dom_walker::after_dom_children.
4631 (build_single_def_use_links): Adjust.
4632 * gimple-ssa-strength-reduction.c (find_candidates_dom_walker): New
4633 class.
4634 (find_candidates_in_block): Convert to
4635 find_candidates_dom_walker::before_dom_children.
4636 (execute_strength_reduction): Adjust.
4637 * graphite-sese-to-poly.c (struct bsc, build_sese_conditions): Remove.
4638 (sese_dom_walker): New class.
4639 (sese_dom_walker::sese_dom_walker): New constructor.
4640 (sese_dom_walker::~sese_dom_walker): New destructor.
4641 (build_sese_conditions_before): Convert to
4642 sese_dom_walker::before_dom_children.
4643 (build_sese_conditions_after): Convert to
4644 sese_dom_walker::after_dom_children.
4645 (build_poly_scop): Adjust
4646 * tree-into-ssa.c (rewrite_dom_walker): New class
4647 (rewrite_enter_block): Convert to
4648 rewrite_dom_walker::before_dom_children.
4649 (rewrite_leave_block): Convert to
4650 rewrite_dom_walker::after_dom_children.
4651 (rewrite_update_dom_walker): New class.
4652 (rewrite_update_enter_block): Convert to
4653 rewrite_update_dom_walker::before_dom_children.
4654 (rewrite_update_leave_block): Convert to
4655 rewrite_update_dom_walker::after_dom_children.
4656 (rewrite_blocks, rewrite_into_ssa): Adjust.
4657 (mark_def_dom_walker): New class.
4658 (mark_def_dom_walker::mark_def_dom_walker): New constructor.
4659 (mark_def_dom_walker::~mark_def_dom_walker): New destructor.
4660 (mark_def_sites_blocks): Convert to
4661 mark_def_dom_walker::before_dom_children.
4662 (mark_def_site_blocks): Remove.
4663 * tree-ssa-dom.c (dom_opt_dom_walker): New class.
4664 (tree_ssa_dominator_optimize): Adjust.
4665 (dom_thread_across_edge): Convert to method
4666 dom_opt_dom_walker::thread_across_edge.
4667 (dom_opt_enter_block): Convert to member function
4668 dom_opt_dom_walker::before_dom_children.
4669 (dom_opt_leave_block): Convert to member function
4670 dom_opt_dom_walker::after_dom_children.
4671 * tree-ssa-dse.c (dse_dom_walker): New class.
4672 (dse_enter_block): Convert to member function
4673 dse_dom_walker::before_dom_children.
4674 (tree_ssa_dse): Adjust.
4675 * tree-ssa-loop-im.c (invariantness_dom_walker): New class.
4676 (determine_invariantness_stmt): Convert to method
4677 invariantness_dom_walker::before_dom_children.
4678 (determine_invariantness): Remove
4679 (move_computations_dom_walker): New class.
4680 (move_computations_stmt): Convert to method
4681 move_computations_dom_walker::before_dom_children.
4682 (move_computations, tree_ssa_lim): Adjust.
4683 * tree-ssa-phiopt.c (nontrapping_dom_walker): new class
4684 (nt_init_block): Make method
4685 notrappping_dom_walker::before_dom_children.
4686 (nt_fini_block): Make
4687 method nontrapping_dom_walker::after_dom_children.
4688 (get_non_trapping): Adjust.
4689 * tree-ssa-pre.c (eliminate_dom_walker): New class.
4690 (eliminate_bb): Make method eliminate_dom_walker::before_dom_children.
4691 (eliminate_leave_block): Make method.
4692 eliminate_dom_walker::after_dom_children.
4693 (eliminate): Adjust
4694 * tree-ssa-strlen.c (strlen_dom_walker): New class.
4695 (strlen_enter_block): Make method
4696 strlen_dom_walker::before_dom_children.
4697 (strlen_leave_block): Make
4698 method strlen_dom_walker::after_dom_children.
4699 (tree_ssa_strlen): Adjust.
4700 * tree-ssa-uncprop.c (uncprop_dom_walker): New class.
4701 (tree_ssa_uncprop): Adjust.
4702 (uncprop_leave_block): Make method
4703 uncprop_dom_walker::after_dom_children.
4704 (uncprop_leave_block): Make method
4705 uncprop_dom_walker::before_dom_children.
4706
3b3cc26b
BC
47072013-09-18 Bin Cheng <bin.cheng@arm.com>
4708
7a5911d3
UB
4709 * config/arm/arm.c (thumb1_reorg): Search for flag setting insn before
4710 branch in same basic block. Check both src and dest of the move insn.
3b3cc26b 4711
b5ba3a9b
NC
47122013-09-17 Nick Clifton <nickc@redhat.com>
4713
4714 * config/rl78/rl78-real.md (bf): New pattern.
4715 (bt): New pattern.
4716 * config/rl78/rl78.c (rl78_print_operand_1): Handle %B.
4717 (rl78_print_operand): Do not put a # before a %B.
4718 * config/rl78/rl78.opt: Tweak doc strings.
4719
09d5094b
DD
47202013-09-17 DJ Delorie <dj@redhat.com>
4721
4722 * config/rl78/constraints.md (Wcv): Allow up to $r31.
4723 * config/rl78/rl78.c (rl78_asm_file_start: Likewise.
4724 (rl78_option_override): Likewise, if -mallregs.
4725 (is_virtual_register): Likewise.
4726 * config/rl78/rl78.h (reg_class): Extend VREGS to $r31.
4727 (REGNO_OK_FOR_BASE_P): Likewise.
4728 * config/rl78/rl78.opt (-mallregs): New.
4729
2ba1dca1
NC
47302013-09-17 Nick Clifton <nickc@redhat.com>
4731
4732 * config/rl78/rl78.c (need_to_save): Change return type to bool.
4733 For interrupt functions: save all call clobbered registers if the
4734 interrupt handler is not a leaf function.
4735 (rl78_expand_prologue): Always recompute the frame information.
4736 For interrupt functions: only select bank 0 if one of the bank 0
4737 registers is going to be psuhed.
4738
2e7c3f21
DD
47392013-09-17 DJ Delorie <dj@redhat.com>
4740
4741 * config/rl78/constraints.md: For each W* constraint, rename to C*
4742 and create a W* constraint that checks for an optional ES: prefix
4743 pattern also.
4744 * config/rl78/rl78.md (UNS_ES_ADDR): New.
4745 (es_addr): New. Used to wrap far addresses.
4746 * config/rl78/rl78-protos.h (rl78_es_addr): New.
4747 (rl78_es_base): New.
4748 * config/rl78/rl78.c (rl78_as_legitimate_address): Accept "unspec"
4749 wrapped far addresses.
4750 (rl78_print_operand_1): Unwrap far addresses before processing.
4751 (rl78_lo16): Wrap far addresses in unspecs.
4752 (rl78_es_addr): New.
4753 (rl78_es_base): New.
4754 (insn_ok_now): Check for not-yet-wrapped far addresses.
4755 (transcode_memory_rtx): Properly re-wrap far addresses.
4756
5c26a69a
SH
47572013-09-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
4758
4759 * config/sparc/t-rtems: Add leon3 multilibs.
4760
181f5f3e
CH
47612013-09-17 Cong Hou <congh@google.com>
4762
4763 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Fix a bug
4764 when checking the dot production pattern. The type of rhs operand
4765 of multiply is now checked correctly.
4766
8d34e421
JL
47672013-09-17 Jeff Law <law@redhat.com>
4768
4769 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
4770 edge implied equivalences into successor phis.
4771 * tree-ssa-threadupdate.c (phi_args_equal_on_edges): Moved into
4772 here from tree-ssa-threadedge.c.
4773 (mark_threaded_blocks): When threading through a joiner, if both
4774 successors of the joiner's clone reach the same block, verify the
4775 PHI arguments are equal. If not, cancel the jump threading request.
4776 * tree-ssa-threadedge.c (phi_args_equal_on_edges): Moved into
4777 tree-ssa-threadupdate.c
4778 (thread_across_edge): Don't check PHI argument equality when
4779 threading through joiner block here.
7a5911d3 4780
c152901f
AM
47812013-09-17 Andrew MacLeod <amacleod@redhat.com>
4782
4783 * tree-flow.h (ssa_undefined_value_p): Remove prototype.
4784 * tree-ssa.c (ssa_undefined_value_p): Move pass independent parts here.
7a5911d3
UB
4785 (warn_uninit, warn_uninitialized_vars,
4786 execute_early_warn_uninitialized, make_pass_early_warn_uninitialized):
4787 Move to tree-ssa-uninit.c.
78cedfb1 4788 * tree-ssa-uninit.c (ssa_undefined_value_p): Move to tree-ssa.c.
7a5911d3 4789 (has_undefined_value_p): New. Pass dependant parts of
c152901f
AM
4790 ssa_undefined_value_p.
4791 (uninit_undefined_value_p): Use has_undefined_value_p.
7a5911d3
UB
4792 (warn_uninit, warn_uninitialized_vars,
4793 execute_early_warn_uninitialized, make_pass_early_warn_uninitialized):
4794 Move from tree-ssa.c.
4795 * tree-ssa.h: Adjust prototypes.
c152901f 4796
b631d45a
JH
47972013-09-17 Jan Hubicka <jh@suse.cz>
4798
4799 PR middle-end/58332
4800 * cif-code.def (FUNCTION_NOT_OPTIMIZED): New CIF code.
4801 * ipa-inline.c (can_inline_edge_p): Do not downgrade
4802 FUNCTION_NOT_OPTIMIZED.
4803 * ipa-inline-analysis.c (compute_inline_parameters): Function
4804 not optimized is not inlinable unless it is alwaysinline.
4805 (inline_analyze_function): Force calls in not optimized
4806 function not inlinable.
4807
5b79657a
JH
48082013-09-17 Jan Hubicka <jh@suse.cz>
4809
4810 PR middle-end/58329
4811 * ipa-devirt.c (ipa_devirt): Be ready for symtab_nonoverwritable_alias
4812 to return NULL.
4813 * ipa.c (function_and_variable_visibility): Likewise.
4814 * ipa-profile.c (ipa_profile): Likewise.
4815
27442c24
BE
48162013-09-17 Bernd Edlinger <bernd.edlinger@hotmail.de>
4817
4818 PR ipa/58398
4819 * cgraph.c (cgraph_function_body_availability): Check for ifunc
4820 attribute, and don't inline the resolver in this case.
4821
753b9bc3
TJ
48222013-09-17 Teresa Johnson <tejohnson@google.com>
4823
4824 * coverage.c (get_coverage_counts): Add missing newline.
4825
e3d3cfb4
KT
48262013-09-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4827
4828 PR tree-optimization/58088
4829 * fold-const.c (mask_with_trailing_zeros): New function.
4830 (fold_binary_loc): Make sure we don't recurse infinitely
4831 when the X in (X & C1) | C2 is a tree of the form (Y * K1) & K2.
4832 Use mask_with_trailing_zeros where appropriate.
4833
9a0ac98f
YR
48342013-09-17 Yuri Rumyantsev <ysrumyan@gmail.com>
4835
4836 * config/i386/i386.c (distance_agu_use_in_bb) : Proper initialization
4837 of 'prev' var to get better distance estimation.
4838
78bbd765
EB
48392013-09-17 Eric Botcazou <ebotcazou@adacore.com>
4840
4841 * tree-inline.h (struct copy_body_data): Add transform_parameter.
4842 * tree-inline.c (is_parameter_of): New predicate.
4843 (remap_gimple_op_r): Do not propagate TREE_THIS_NOTRAP on MEM_REF if
4844 a parameter has been remapped.
4845 (copy_tree_body_r): Likewise on INDIRECT_REF and MEM_REF.
4846 (optimize_inline_calls): Initialize transform_parameter.
4847 (copy_gimple_seq_and_replace_locals): Likewise.
4848 (tree_function_versioning): Likewise.
4849 (maybe_inline_call_in_expr): Likewise.
4850
cad055a4
NC
48512013-09-17 Nick Clifton <nickc@redhat.com>
4852
4853 * config/msp430/msp430-protos.h: Add prototypes for new functions.
4854 * config/msp430/msp430.c (msp430_preserve_reg_p): Add support for
4855 interrupt handlers.
4856 (is_attr_func): New function.
4857 (msp430_is_interrupt_func): New function.
4858 (is_naked_func): New function.
4859 (is_reentrant_func): New function.
4860 (is_critical_func): New function.
4861 (msp430_start_function): Add annotations for function attributes.
4862 (msp430_attr): New function.
4863 (msp430_attribute_table): New.
4864 (msp430_function_section): New function.
4865 (TARGET_ASM_FUNCTION_SECTION): Define.
4866 (msp430_builtin): New enum.
4867 (msp430_init_builtins): New function.
4868 (msp430_builtin_devl): New function.
4869 (msp430_expand_builtin): New function.
4870 (TARGET_INIT_BUILTINS): Define.
4871 (TARGET_EXPAND_BUILTINS): Define.
4872 (TARGET_BUILTIN_DECL): Define.
4873 (msp430_expand_prologue): Add support for naked, interrupt,
4874 critical and reentrant functions.
4875 (msp430_expand_epilogue): Likewise.
4876 (msp430_print_operand): Handle 'O' character.
4877 * config/msp430/msp430.h (TARGET_CPU_CPP_BUILTINS): Define
4878 NO_TRAMPOLINES.
4879 * config/msp430/msp430.md (unspec): Add UNS_DINT, UNS_EINT,
4880 UNS_PUSH_INTR, UNS_POP_INTR, UNS_BIC_SR, UNS_BIS_SR.
4881 (pushm): Use a 'n' rather than an 'i' constraint.
4882 (msp_return): Add generation of the interrupt return instruction.
4883 (disable_interrupts): New pattern.
4884 (enable_interrupts): New pattern.
4885 (push_intr_state): New pattern.
4886 (pop_intr_state): New pattern.
4887 (bic_SR): New pattern.
4888 (bis_SR): New pattern.
4889 * doc/extend.texi: Document MSP430 function attributes and builtin
4890 functions.
4891
deb6c11a
RB
48922013-09-17 Richard Biener <rguenther@suse.de>
4893
4894 PR tree-optimization/58432
4895 * tree-loop-distribution.c (tree_loop_distribution): Also
4896 scan PHIs for outside loop uses and seed a partition from them.
4897
c068654b
BC
48982013-09-17 Bin Cheng <bin.cheng@arm.com>
4899
4900 * gimple-ssa-strength-reduction.c (backtrace_base_for_ref): New.
4901 (restructure_reference): Call backtrace_base_for_ref.
4902
567969e4
AM
49032013-09-17 Alan Modra <amodra@gmail.com>
4904
4905 PR target/57589
7a5911d3
UB
4906 * config/rs6000/driver-rs6000.c (elf_platform): Revert 2013-06-11
4907 patch.
567969e4 4908
5c0029de
DD
49092013-09-16 DJ Delorie <dj@redhat.com>
4910
4911 * config/rl78/rl78.c (rl78_asm_file_start): Specify alternate
4912 vregs location for RL78/G10.
4913 (rl78_expand_prologue): Avoid SEL on G10.
4914 (rl78_expand_epilogue): Likewise.
4915 (rl78_peep_movhi_p): Can't move a constant to memory in HImode.
4916 * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
4917 __RL78_G10__ when appropriate.
4918 (ASM_SPEC): Pass -mg10 along to the assembler.
4919 * config/rl78/rl78.md (sel_rb): Disable for G10.
4920 * config/rl78/rl78.opt: Add -mg10 option.
4921 * config/rl78/t-rl78: Add -mg10 multilib.
4922
ea0f3e87
XDL
49232013-09-16 Xinliang David Li <davidxl@google.com>
4924
4925 * tree-if-conv.c (main_tree_if_conversion): Check new flag.
4926 * omp-low.c (omp_max_vf): Ditto.
4927 (expand_omp_simd): Ditto.
4928 * tree-vectorizer.c (vectorize_loops): Ditto.
4929 (gate_vect_slp): Ditto.
4930 (gate_increase_alignment): Ditto.
4931 * tree-ssa-pre.c (inhibit_phi_insertion): Ditto.
4932 * tree-ssa-loop.c (gate_tree_vectorize): Ditto.
4933 (gate_tree_vectorize): Name change.
4934 (tree_vectorize): Ditto.
4935 (pass_vectorize::gate): Call new function.
4936 (pass_vectorize::execute): Ditto.
7a5911d3 4937 * opts.c: O3 default setting change.
ea0f3e87
XDL
4938 (finish_options): Check new flag.
4939 * doc/invoke.texi: Document new flags.
4940 * common.opt: New flags.
4941
4f3da2e5
AS
49422013-09-16 Andreas Schwab <schwab@linux-m68k.org>
4943
4944 * doc/tm.texi.in (Cond Exec Macros): Remove node.
4945 (Condition Code): Don't reference it.
4946 * doc/tm.texi: Regenerate.
4947
aa940f7c
VM
49482013-09-16 Vladimir Makarov <vmakarov@redhat.com>
4949
4950 PR middle-end/58418
4951 * lra-constraints.c (undo_optional_reloads): Consider all optional
4952 reload even if it did not get a hard reg.
4953
e645e942
TJ
49542013-09-16 Teresa Johnson <tejohnson@google.com>
4955
4956 * dumpfile.c (dump_loc): Remove newline emission.
4957 * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Add newline
4958 emission to dump_printf_loc calls where missing.
4959 (vect_mark_for_runtime_alias_test): Ditto.
4960 (vect_analyze_data_ref_dependence): Ditto.
4961 (vect_analyze_data_ref_dependences): Ditto.
4962 (vect_slp_analyze_data_ref_dependence): Ditto.
4963 (vect_slp_analyze_data_ref_dependences): Ditto.
4964 (vect_compute_data_ref_alignment): Ditto.
4965 (vect_update_misalignment_for_peel): Ditto.
4966 (vect_verify_datarefs_alignment): Ditto.
4967 (vector_alignment_reachable_p): Ditto.
4968 (vect_get_data_access_cost): Ditto.
4969 (vect_enhance_data_refs_alignment): Ditto.
4970 (vect_find_same_alignment_drs): Ditto.
4971 (vect_analyze_data_refs_alignment): Ditto.
4972 (vect_analyze_group_access): Ditto.
4973 (vect_analyze_data_ref_access): Ditto.
4974 (vect_analyze_data_ref_accesses): Ditto.
4975 (vect_prune_runtime_alias_test_list): Ditto.
4976 (vect_analyze_data_refs): Ditto.
4977 (vect_create_addr_base_for_vector_ref): Ditto.
4978 (vect_create_data_ref_ptr): Ditto.
4979 (vect_grouped_store_supported): Ditto.
4980 (vect_grouped_load_supported): Ditto.
4981 * value-prof.c (check_counter): Ditto.
4982 (check_ic_target): Ditto.
4983 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Ditto.
4984 (vect_recog_widen_mult_pattern): Ditto.
4985 (vect_recog_widen_sum_pattern): Ditto.
4986 (vect_recog_over_widening_pattern): Ditto.
4987 (vect_recog_widen_shift_pattern): Ditto.
4988 (vect_recog_rotate_pattern): Ditto.
4989 (vect_recog_vector_vector_shift_pattern): Ditto.
4990 (vect_recog_divmod_pattern): Ditto.
4991 (vect_recog_mixed_size_cond_pattern): Ditto.
4992 (vect_recog_bool_pattern): Ditto.
4993 (vect_pattern_recog_1): Ditto.
4994 (vect_pattern_recog): Ditto.
4995 * tree-vect-loop.c (vect_determine_vectorization_factor): Ditto.
4996 (vect_is_simple_iv_evolution): Ditto.
4997 (vect_analyze_scalar_cycles_1): Ditto.
4998 (vect_get_loop_niters): Ditto.
4999 (vect_analyze_loop_1): Ditto.
5000 (vect_analyze_loop_form): Ditto.
5001 (vect_analyze_loop_operations): Ditto.
5002 (vect_analyze_loop_2): Ditto.
5003 (vect_analyze_loop): Ditto.
5004 (report_vect_op): Ditto.
5005 (vect_is_slp_reduction): Ditto.
5006 (vect_is_simple_reduction_1): Ditto.
5007 (vect_get_known_peeling_cost): Ditto.
5008 (vect_estimate_min_profitable_iters): Ditto.
5009 (vect_model_reduction_cost): Ditto.
5010 (vect_model_induction_cost): Ditto.
5011 (get_initial_def_for_induction): Ditto.
5012 (vect_create_epilog_for_reduction): Ditto.
5013 (vectorizable_reduction): Ditto.
5014 (vectorizable_induction): Ditto.
5015 (vectorizable_live_operation): Ditto.
5016 (vect_loop_kill_debug_uses): Ditto.
5017 (vect_transform_loop): Ditto.
5018 * tree-vect-stmts.c (vect_mark_relevant): Ditto.
5019 (vect_stmt_relevant_p): Ditto.
5020 (process_use): Ditto.
5021 (vect_mark_stmts_to_be_vectorized): Ditto.
5022 (vect_model_simple_cost): Ditto.
5023 (vect_model_promotion_demotion_cost): Ditto.
5024 (vect_model_store_cost): Ditto.
5025 (vect_get_store_cost): Ditto.
5026 (vect_model_load_cost): Ditto.
5027 (vect_get_load_cost): Ditto.
5028 (vect_init_vector_1): Ditto.
5029 (vect_get_vec_def_for_operand): Ditto.
5030 (vect_finish_stmt_generation): Ditto.
5031 (vectorizable_call): Ditto.
5032 (vectorizable_conversion): Ditto.
5033 (vectorizable_assignment): Ditto.
5034 (vectorizable_shift): Ditto.
5035 (vectorizable_operation): Ditto.
5036 (vectorizable_store): Ditto.
5037 (vectorizable_load): Ditto.
5038 (vectorizable_condition): Ditto.
5039 (vect_analyze_stmt): Ditto.
5040 (vect_transform_stmt): Ditto.
5041 (vect_is_simple_use): Ditto.
5042 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): Ditto.
5043 (vect_can_advance_ivs_p): Ditto.
5044 (vect_update_ivs_after_vectorizer): Ditto.
5045 (vect_do_peeling_for_loop_bound): Ditto.
5046 (vect_gen_niters_for_prolog_loop): Ditto.
5047 (vect_update_inits_of_drs): Ditto.
5048 (vect_create_cond_for_alias_checks): Ditto.
5049 * tree-vect-slp.c (vect_get_and_check_slp_defs): Ditto.
5050 (vect_build_slp_tree_1): Ditto.
5051 (vect_supported_load_permutation_p): Ditto.
5052 (vect_analyze_slp_instance): Ditto.
5053 (vect_analyze_slp): Ditto.
5054 (vect_make_slp_decision): Ditto.
5055 (vect_detect_hybrid_slp): Ditto.
5056 (vect_bb_vectorization_profitable_p): Ditto.
5057 (vect_slp_analyze_bb_1): Ditto.
5058 (vect_update_slp_costs_according_to_vf): Ditto.
5059 (vect_get_mask_element): Ditto.
5060 (vect_transform_slp_perm_load): Ditto.
5061 (vect_schedule_slp_instance): Ditto.
5062 (vect_schedule_slp): Ditto.
5063 (vect_slp_transform_bb): Ditto.
5064 * profile.c (read_profile_edge_counts): Ditto.
5065 (compute_branch_probabilities): Ditto.
5066 * coverage.c (get_coverage_counts): Ditto.
5067
46f851f3
DN
50682013-09-16 Diego Novillo <dnovillo@google.com>
5069
7a5911d3 5070 * tree-core.h: Add missing comment lines from refactoring of tree.h.
46f851f3 5071
1632a686
JH
50722013-09-16 Jan Hubicka <jh@suse.cz>
5073
5074 * gimple-fold.c (can_refer_decl_in_current_unit_p): Do not accept
7a5911d3 5075 abstract functions; for static functions check the presence of body.
1632a686 5076
828e70c1
JG
50772013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
5078
5079 * config/aarch64/aarch64-simd-builtins.def (fma): New.
5080 * config/aarch64/aarch64-simd.md
5081 (aarch64_mla_elt<mode>): New.
5082 (aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
5083 (aarch64_mls_elt<mode>): Likewise.
5084 (aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
5085 (aarch64_fma4_elt<mode>): Likewise.
5086 (aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
5087 (aarch64_fma4_elt_to_128v2df): Likewise.
5088 (aarch64_fma4_elt_to_64df): Likewise.
5089 (fnma<mode>4): Likewise.
5090 (aarch64_fnma4_elt<mode>): Likewise.
5091 (aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
5092 (aarch64_fnma4_elt_to_128v2df): Likewise.
5093 (aarch64_fnma4_elt_to_64df): Likewise.
5094 * config/aarch64/iterators.md (VDQSF): New.
5095 * config/aarch64/arm_neon.h
5096 (vfm<as><sdq>_lane<q>_f<32, 64>): Convert to C implementation.
5097 (vml<sa><q>_lane<q>_<fsu><16, 32, 64>): Likewise.
5098
779aea46
JG
50992013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
5100
5101 * config/aarch64/aarch64-simd.md (aarch64_mul3_elt<mode>): New.
5102 (aarch64_mul3_elt_<vswap_width_name><mode>): Likewise.
5103 (aarch64_mul3_elt_to_128df): Likewise.
5104 (aarch64_mul3_elt_to_64v2df): Likewise.
5105 * config/aarch64/iterators.md (VEL): Also handle DFmode.
5106 (VMUL): New.
5107 (VMUL_CHANGE_NLANES) Likewise.
5108 (h_con): Likewise.
5109 (f): Likewise.
5110 * config/aarch64/arm_neon.h
5111 (vmul<q>_lane<q>_<suf><16,32,64>): Convert to C implementation.
5112
a407a750
JG
51132013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
5114
5115 * config/aarch64/arm_neon.h
5116 (vcvtx_high_f32_f64): Fix parameters.
5117
f77e2d2d 51182013-09-16 Jan-Benedict Glaw <jbglaw@lug-owl.de>
a5bd71fa 5119 Uros Bizjak <ubizjak@gmail.com>
f77e2d2d 5120
a5bd71fa 5121 * config/alpha.c: Include tree-ssanames.h.
f77e2d2d 5122
36875e8f
RB
51232013-09-16 Richard Biener <rguenther@suse.de>
5124
5125 * tree-loop-distribution.c (enum rdg_dep_type): Add control_dd.
5126 (dot_rdg_1): Handle control_dd.
5127 (create_edge_for_control_dependence): New function.
5128 (create_rdg_edges): Add control dependences if asked for.
5129 (build_rdg): Likewise.
5130 (generate_loops_for_partition): If there are not necessary
5131 control stmts remove all their dependencies.
5132 (collect_condition_stmts, rdg_flag_loop_exits): Remove.
5133 (distribute_loop): Pass on control dependences.
5134 (tree_loop_distribution): Compute control dependences and remove
5135 restriction on number of loop nodes.
5136
96e24d49
JJ
51372013-09-16 Jakub Jelinek <jakub@redhat.com>
5138
5139 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Return early
5140 for internal calls.
5141
40dbb05c
RS
51422013-09-16 Richard Sandiford <rdsandiford@googlemail.com>
5143
5144 * cse.c (try_const_anchors): Punt on CC modes.
5145
97191ad0
JBG
51462013-09-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
5147
5148 * config/vax/constraints.md (T): Add missing CONSTANT_P check.
5149
403a3fb7
JDA
51502013-09-14 John David Anglin <danglin@gcc.gnu.org>
5151
5152 PR target/58382
5153 * config/pa/pa.c (pa_expand_prologue): Change mode in gen_rtx_POST_INC
5154 calls to word_mode.
5155
fb5610fb
IS
51562013-09-14 Iain Sandoe <iain@codesourcery.com>
5157
5158 PR target/48094
5159 * config/darwin.c (darwin_objc2_section): Note if ObjC Metadata is
f77e2d2d
JBG
5160 seen.
5161 (darwin_objc1_section): Likewise.
fb5610fb
IS
5162 (darwin_file_end): Emit Image Info section when required.
5163
afdec9bd
JH
51642013-09-14 Jan Hubicka <jh@suse.cz>
5165
5166 * tree-into-ssa.c (gate_into_ssa): New.
5167 (pass_data_build_ssa): Use it.
5168 * cgraph.h (expand_thunk): Update prototype.
5169 * cgraphunit.c (analyze_function): Expand thunks early.
5170 (expand_thunk): Fix DECL_CONTEXT of reust_decl;
5171 build proper cgraph; set in_ssa_p; clear bogus TREE_ASM_WRITTEN;
5172 set lowered flag; do not add new function.
5173 (assemble_thunks_and_aliases): Update.
5174 * tree-ssa.c (gate_init_datastructures): New gate.
5175 (pass_data_init_datastructures): Use it.
5176
492d1e0a
IS
51772013-09-14 Iain Sandoe <iain@codesourcery.com>
5178
5179 PR target/58269
f77e2d2d 5180 * config/i386/i386.c (ix86_function_arg_regno_p): Make Darwin use the
492d1e0a
IS
5181 xmm register set described in the psABI.
5182
d13c6b70
EG
51832013-09-13 Evgeny Gavrin <e.gavrin@samsung.com>
5184
f77e2d2d
JBG
5185 * dwarf2out.c (should_emit_struct_debug): Add check
5186 for type_decl variable is not NULL.
d13c6b70 5187
88b0e79e
JC
51882013-09-13 Jacek Caban <jacek@codeweavers.com>
5189
5190 * config.gcc: Use new winnt-c.c target hooks
5191 * config/t-winnt: New file
5192 * config/winnt-c.c: New file
5193 * doc/tm.texi.in: Document new hook
5194 * doc/tm.texi: Regenerated
5195
19ba6aab
JH
51962013-09-13 Jan Hubicka <jh@suse.cz>
5197
5198 PR middle-end/58094
5199 * ipa-inline.c (check_callers): New function.
5200 (check_caller_edge): Remove.
5201 (want_inline_function_to_all_callers_p): Also permit alises that are
5202 called dirrectly.
5203 (inline_to_all_callers): Terminate the walk when devirtualization
5204 introduce new calls.
5205
a93c18c8
JH
52062013-09-13 Jan Hubicka <jh@suse.cz>
5207
5208 * ipa-inline-analysis.c (struct growth_data): Add node.
5209 (do_estimate_growth_1): Fix detection of recursion.
5210
f3b331d1
JJ
52112013-09-13 Jakub Jelinek <jakub@redhat.com>
5212
5213 PR tree-optimization/58392
5214 * tree-cfg.c (move_sese_region_to_fn): Rename loop variable
5215 to avoid shadowing of outer loop variable. If
5216 saved_cfun->has_simduid_loops or saved_cfun->has_force_vect_loops,
5217 replace_by_duplicate_decl simduid of loops that have it set and
5218 set dest_cfun->has_simduid_loops and/or
5219 dest_cfun->has_force_vect_loops.
5220 * omp-low.c (build_outer_var_ref): Call maybe_lookup_decl_in_outer_ctx
5221 instead of maybe_lookup_decl.
5222 * tree-inline.c (copy_loops): Change blocks_to_copy argument to id.
5223 Use id->blocks_to_copy instead of blocks_to_copy. Adjust recursive
5224 call. Copy over force_vect and copy and remap simduid. Set
5225 cfun->has_simduid_loops and/or cfun->has_force_vect_loops.
5226 (copy_cfg_body): Remove blocks_to_copy argument. Use
5227 id->blocks_to_copy instead of blocks_to_copy. Adjust copy_loops
5228 caller. Don't set cfun->has_simduid_loops and/or
5229 cfun->has_force_vect_loops here.
5230 (copy_body): Remove blocks_to_copy argument. Adjust copy_cfg_body
5231 caller.
5232 (expand_call_inline, tree_function_versioning): Adjust copy_body
5233 callers.
5234
ae6d0907
MJ
52352013-09-13 Martin Jambor <mjambor@suse.cz>
5236
5237 PR bootstrap/58388
5238 * ipa-prop.c (try_make_edge_direct_simple_call): Be less strict in
5239 the assert if the edge was a speculative one.
5240
2fd5894f
RB
52412013-09-13 Richard Biener <rguenther@suse.de>
5242
5243 * tree-data-ref.h (known_dependences_p): Move here ...
5244 * tree-loop-distribution.c (known_dependences_p): ... from here.
5245 (dump_rdg_component, debug_rdg_component): Remove.
5246 (dump_rdg): Adjust.
5247 (generate_loops_for_partition): Use gimple_uid instead of
5248 relying on matching stmt visit order.
5249 (rdg_build_partitions): Take starting stmt vector.
5250 (ldist_gen): Merge into ...
5251 (distribute_loop): ... this function. Do not compute starting
5252 vertices vector.
5253 * tree-cfg.c (gimple_duplicate_bb): Copy UID for PHIs.
5254
86eb4bd7
KT
52552013-09-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5256
5257 * config/arm/arm.md (arm_cmpsi_insn): Split rI alternative.
5258 Set type attribute correctly. Set predicable_short_it attribute.
5259 (cmpsi_shiftsi): Remove %? from output template.
5260
83a95546
RB
52612013-09-13 Richard Biener <rguenther@suse.de>
5262
5263 * tree-loop-distribution.c (struct rdg_component,
5264 rdg_defs_used_in_other_loops_p, free_rdg_components,
5265 rdg_build_components): Remove.
5266 (stmts_from_loop): Do not record virtual PHIs.
5267 (generate_loops_for_partition): Skip virtual PHIs.
5268 (build_rdg_partition_for_component): Rename to ...
5269 (build_rdg_partition_for_vertex): ... this and adjust.
5270 (rdg_build_partitions): Take a vector of starting vertices
5271 instead of components. Remove unnecessary leftover handling.
5272 (ldist_gen): Do not build components or record other stores.
5273 (distribute_loop): Do not distribute loops containing stmts
5274 with side-effects.
5275
c0ecf7f1
CB
52762013-09-13 Christian Bruel <christian.bruel@st.com>
5277
5278 PR target/58314
5279 * config/sh/sh.md (mov<mode>_reg_reg): Allow memory reloads.
5280
34f56efc
KT
52812013-09-13 Kai Tietz <ktietz@redhat.com>
5282
740f2bf3
KT
5283 * config.gcc: Separate cases for mingw and cygwin targets,
5284 and add 64-bit cygwin target case.
5285
34f56efc
KT
5286 * config/i386/winnt-cxx.c (i386_pe_type_dllexport_p): Don't
5287 dll-export inline-functions.
5288 * config/i386/winnt.c (i386_pe_determine_dllexport_p): Likewise.
5289
5290
52912013-09-13 Jeff Law <law@redhat.com>
823b5d6b
JL
5292
5293 PR middle-end/58387
5294 Revert:
5295 2013-09-06 Jeff Law <law@redhat.com>
5296
5297 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
5298 edge implied equivalences into successor phis.
5299
aadb52ad
DD
53002013-09-12 DJ Delorie <dj@redhat.com>
5301
5302 * config/rl78/rl78-virt.md: Change from | to \; for asm line
5303 separators.
5304
90ae7019
BM
53052013-09-12 Brooks Moses <bmoses@google.com>
5306
5307 PR driver/42955
5308 * Makefile.in: Do not install driver binaries in $(target)/bin.
5309
17b2557c
DD
53102013-09-12 DJ Delorie <dj@redhat.com>
5311
c5215a9b
DD
5312 * config/rl78/rl78.opt (mrelax): New.
5313 * config/rl78/rl78.h (ASM_SPEC): New, pass on -mrelax to gas.
5314 * config/rl78/rl78.h (LINK_SPEC): New, pass on -mrelax to ld.
5315
17b2557c
DD
5316 * config/rl78/rl78.c (rl78_expand_prologue): Use AX to copy
5317 between SP and FP.
5318 (rl78_expand_epilogue): Likewise.
5319
ecafcf05
VM
53202013-09-12 Vladimir Makarov <vmakarov@redhat.com>
5321
5322 PR middle-end/58335
84f6d9fa 5323 * lra-eliminations.c (remove_reg_equal_offset_note): New.
ecafcf05
VM
5324 (eliminate_regs_in_insn): Rewrite frame pointer to hard frame
5325 pointer elimination with using remove_reg_equal_offset_note.
5326
8369f38a
DD
53272013-09-12 DJ Delorie <dj@redhat.com>
5328
f6a83b4a
DD
5329 * config/msp430/: New port.
5330 * config.gcc (msp430): Added.
5331 * doc/invoke.texi: Document MSP430 options.
5332 * doc/install.texi: Document msp430-elf
5333 * doc/md.texi: Document msp430-elf
5334 * doc/contrib.texi: Document msp430-elf
5335
8369f38a
DD
5336 * cfgexpand.c (expand_debug_expr): Avoid sign-extending SImode to
5337 PSImode.
5338
a854f856
MJ
53392013-09-12 Martin Jambor <mjambor@suse.cz>
5340
5341 PR ipa/58389
5342 * ipa-prop.c (remove_described_reference): Give up if the edge in the
5343 reference descriptor is NULL.
5344 (ipa_edge_removal_hook): If owning a reference descriptor, set its
5345 edge to NULL.
5346
b12ebd96
AM
53472013-09-12 Andrew MacLeod <amacleod@redhat.com>
5348
5349 * tree-flow.h (FREE_SSANAMES): Move to tree-ssanames.c
5350 (SSANAMES, MODIFIED_NORETURN_CALLS, DEFAULT_DEFS, ptr_info_def,
5351 num_ssa_names, ssa_name): Move to tree-ssanames.h + prototypes.
5352 * tree-flow-inline.h (make_ssa_name, copy_ssa_name, duplicate_ssa_name,
5353 make_temp_ssa_name): move to tree-ssanames.h
5354 * tree-ssa-alias.h: Move prototype.
5355 * tree-ssa.h: Include tree-ssanames.h.
5356 * tree-ssanames.c (FREE_SSANAMES): Move to here.
5357 * tree-ssanames.h: New. Move items from tree-flow*.h
5358 * Makefile.in (tree-ssanames.h): Add to tree-ssanames.o and GTFILES.
5359
e1fb4ad3
RB
53602013-09-12 Richard Biener <rguenther@suse.de>
5361
5362 PR tree-optimization/58404
5363 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
5364 propagate non-invariant addresses into dereferences wrapped
5365 in component references.
5366
154c9188
RB
53672013-09-12 Richard Biener <rguenther@suse.de>
5368
5369 PR tree-optimization/58402
5370 * passes.def: Move pass_late_warn_uninitialized later.
5371
7a300452
AM
53722013-09-12 Andrew MacLeod <amacleod@redhat.com>
5373
5374 * tree-ssa.h: New. Move content from tree-flow.h and
5375 tree-flow-inline.h.
5376 * tree-flow.h (_edge_var_map, edge_var_map_vector): Move to tree-ssa.h.
5377 Move prototypes belonging to tree-ssa.c.
f77e2d2d 5378 * tree-flow-inline.h (redirect_edge_var_map_def,
7a300452
AM
5379 redirect_edge_var_map_result, redirect_edge_var_map_location): Move to
5380 tree-ssa.h.
5381 * gimple.h: Adjust prototypes.
f77e2d2d
JBG
5382 * tree-ssa.c (useless_type_conversion_p, types_compatible_p): Move
5383 to...
5384 * gimple.c (useless_type_conversion_p, types_compatible_p): Here.
7a300452
AM
5385 * tree.h: Move prototype to tree-ssa.h.
5386 * gengtype.c (open_base_files): Replace tree-flow.h with tree-ssa.h.
5387 * Makefile.in: (TREE_SSA_H, TREE_FLOW_H): Adjust dependencies.
5388 * alias.c, asan.c, builtins.c, calls.c, cfgexpand.c, cfghooks.c,
5389 cfgloop.c, cfgloopmanip.c, cgraph.c, cgraphbuild.c, cgraphclones.c,
5390 cgraphunit.c, dse.c, except.c, expr.c, final.c, fold-const.c,
5391 ggc-page.c, gimple-fold.c, gimple-iterator.c, gimple-low.c,
5392 gimple-pretty-print.c, gimple-ssa-strength-reduction.c,
5393 gimple-streamer-in.c, gimple-streamer-out.c, gimple.c, gimplify.c,
f77e2d2d
JBG
5394 graphite-blocking.c, graphite-clast-to-gimple.c,
5395 graphite-dependences.c, graphite-interchange.c,
5396 graphite-optimize-isl.c, graphite-poly.c, graphite-scop-detection.c,
5397 graphite-sese-to-poly.c, graphite.c, ipa-cp.c, ipa-inline-analysis.c,
5398 ipa-inline-transform.c, ipa-inline.c, ipa-prop.c, ipa-pure-const.c,
5399 ipa-reference.c, ipa-split.c, ipa-utils.c,
7a300452
AM
5400 loop-init.c, lto-cgraph.c, lto-section-in.c, lto-section-out.c,
5401 lto-streamer-in.c, lto-streamer-out.c, lto-streamer.c, omp-low.c,
5402 passes.c, predict.c, print-tree.c, profile.c, sese.c, targhooks.c,
5403 tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
5404 tree-chrec.c, tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-eh.c,
5405 tree-emutls.c, tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
5406 tree-loop-distribution.c, tree-mudflap.c, tree-nested.c, tree-nrv.c,
5407 tree-object-size.c, tree-optimize.c, tree-outof-ssa.c, tree-parloops.c,
5408 tree-phinodes.c, tree-predcom.c, tree-pretty-print.c, tree-profile.c,
5409 tree-scalar-evolution.c, tree-sra.c, tree-ssa*.c, tree-stdarg.c,
5410 tree-streamer-in.c, tree-switch-conversion.c, tree-tailcall.c,
5411 tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
5412 tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
5413 tree-vect-stmts.c, tree-vectorizer.c, tree-vrp.c, tsan.c,
5414 value-prof.c, var-tracking.c,
5415 varpool.c, vtable-verify.c: Replace tree-flow.h with tree-ssa.h
5416
97463b2b
RB
54172013-09-12 Richard Biener <rguenther@suse.de>
5418
5419 PR tree-optimization/58396
5420 * tree-loop-distribution.c (create_rdg_edges): Free unused DDRs.
5421 (build_rdg): Take a loop-nest parameter, fix memleaks.
5422 (distribute_loop): Compute loop-nest here and pass it to build_rdg.
5423
80ecd89d
YR
54242013-09-12 Yuri Rumyantsev <ysrumyan@gmail.com>
5425
5426 * config/i386/x86-tune.def: Turn on X86_TUNE_AVOID_MEM_OPND_FOR_CMOVE
5427 for SLM.
5428
893e85fa
CM
54292013-09-12 Cameron McInally <cameron.mcinally@nyu.edu>
5430
5431 * doc/extend.texi: Fix errors in x86 FMA builtin naming.
5432 The FMA instruction names should have a 'v' prefix.
5433
174ec470
RB
54342013-09-12 Richard Biener <rguenther@suse.de>
5435
5436 * tree-loop-distribution.c (dot_rdg_1): Make graph prettier.
5437 (dot_rdg): Use popen instead of system in optional code.
5438 (remaining_stmts, upstream_mem_writes): Remove global bitmaps.
5439 (already_processed_vertex_p): Adjust.
5440 (has_anti_or_output_dependence, predecessor_has_mem_write,
5441 mark_nodes_having_upstream_mem_writes, has_upstream_mem_writes,
5442 rdg_flag_uses): Remove.
5443 (rdg_flag_vertex): Simplify.
5444 (rdg_flag_vertex_and_dependent): Rely on a correct RDG and
5445 remove recursion.
5446 (build_rdg_partition_for_component): Process the first vertex
5447 of a component only.
5448 (ldist_gen): Do not compute remaining_stmts or upstream_mem_writes.
5449
38c89763
AM
54502013-09-12 Alan Modra <amodra@gmail.com>
5451
5452 * config/rs6000/rs6000.c (toc_relative_expr_p): Use add_cint_operand.
5453
3e3d9d17
DD
54542013-09-11 DJ Delorie <dj@redhat.com>
5455 Nick Clifton <nickc@redhat.com>
5456
5457 * config/rl78/predicates.md (rl78_cmp_operator_signed): New.
5458 (rl78_stack_based_mem): New.
5459 * config/rl78/constraints.md (Iv08): New.
5460 (Iv16): New.
5461 (Iv24): New.
5462 (Is09): New.
5463 (Is17): New.
5464 (Is25): New.
5465 (ISsi): New.
5466 (IShi): New.
5467 (ISqi): New.
5468 * config/rl78/rl78-expand.md (movqi): Reject more SUBREG operands.
5469 (movhi): Likewise.
5470 (movsi): Change from expand to insn-and-split.
5471 (ashrsi3): Clobber AX.
5472 (lshrsi3): New.
5473 (ashlsi3): New.
5474 (cbranchsi4): New.
5475 * config/rl78/rl78.md (CC_REG): Fix.
5476 (addsi3): Allow memory and immediate operands.
5477 (addsi3_internal): Split into...
5478 (addsi3_internal_virt): ...new, and ...
5479 (addsi3_internal_real): ...new.
5480 (subsi): New.
5481 (subsi3_internal_virt): New.
5482 (subsi3_internal_real): New.
5483 (mulsi3): Add memory operand.
5484 (mulsi3_rl78): Likewise.
5485 (mulsi3_g13): Likewise.
5486 * config/rl78/rl78-real.md (cbranchqi4_real_signed): New.
5487 (cbranchqi4_real): Add more constraint options.
5488 (cbranchhi4_real): Expand pattern.
5489 (cbranchhi4_real_signed): New.
5490 (cbranchhi4_real_inverted): New.
5491 (cbranchsi4_real_lt): New.
5492 (cbranchsi4_real_ge): New.
5493 (cbranchsi4_real_signed): New.
5494 (cbranchsi4_real): New.
5495 (peephole2): New.
893e85fa
CM
5496 * config/rl78/rl78-virt.md (ashrsi3_virt): Add custom cases for
5497 constant shifts.
3e3d9d17
DD
5498 (lshrsi3_virt): Likewise.
5499 (ashlsi3_virt): Likewise.
5500 (cbranchqi4_virt_signed): New.
5501 (cbranchhi4_virt_signed): New.
5502 (cbranchsi4_virt): New.
5503 * config/rl78/rl78.c: Whitespace fixes throughout.
5504 (move_elim_pass): New.
5505 (pass_data_rl78_move_elim): New.
5506 (pass_rl78_move_elim): New.
5507 (make_pass_rl78_move_elim): New.
5508 (rl78_devirt_info): Run devirt earlier.
5509 (rl78_move_elim_info): New.
5510 (rl78_asm_file_start): Register it.
5511 (rl78_split_movsi): New.
5512 (rl78_as_legitimate_address): Allow virtual base registers when
5513 appropriate.
5514 (rl78_addr_space_convert): Remove spurious debug stuff.
5515 (rl78_print_operand_1): Add z,s,S,r,E modifiers.
5516 (rl78_print_operand): More cases for not printing '#'.
5517 (rl78_expand_compare): Remove most of the logic.
5518 (content_memory): New.
5519 (clear_content_memory): New.
5520 (get_content_index): New.
5521 (get_content_name): New.
5522 (display_content_memory): New.
5523 (update_content): New.
5524 (record_content): New.
5525 (already_contains): New.
5526 (insn_ok_now): Re-recog insns with virtual registers.
5527 (add_postponed_content_update): New.
5528 (process_postponed_content_update): New.
5529 (gen_and_emit_move): New.
893e85fa
CM
5530 (transcode_memory_rtx): Record new location content.
5531 Use gen_and_emit_move.
3e3d9d17
DD
5532 (force_into_acc): New.
5533 (move_to_acc): Use gen_and_emit_move.
5534 (move_from_acc): Likewise.
5535 (move_acc_to_reg): Likewise.
5536 (move_to_x): Likewise.
5537 (move_to_hl): Likewise.
5538 (move_to_de): Likewise.
5539 (rl78_alloc_physical_registers_op1): Record location content.
5540 (has_constraint): New.
5541 (rl78_alloc_physical_registers_op2): Record location content.
5542 Optimize use of HL.
5543 (rl78_alloc_physical_registers_ro1): Likewise.
5544 (rl78_alloc_physical_registers_cmp): Likewise.
5545 (rl78_alloc_physical_registers_umul): Likewise.
5546 (rl78_alloc_address_registers_macax): New.
5547 (rl78_alloc_physical_registers): Initialize and set location
5548 content memory as needed.
5549 (rl78_reorg): Make sure split2 is called.
5550 (rl78_rtx_costs): New.
5551
088845a5
RS
55522013-09-11 Richard Sandiford <rdsandiford@googlemail.com>
5553
5554 * simplify-rtx.c (simplify_unary_operation_1): Use simplify_gen_binary
5555 for (not (neg ...)) and (neg (not ...)) cases.
5556
5c2961cf
RB
55572013-09-11 Richard Biener <rguenther@suse.de>
5558
5559 PR middle-end/58377
5560 * passes.def: Split critical edges before late uninit warning passes.
5561 * tree-cfg.c (pass_split_crit_edges): Implement clone method.
5562
427e6a14
JJ
55632013-09-11 Jakub Jelinek <jakub@redhat.com>
5564
5565 PR tree-optimization/58385
5566 * fold-const.c (build_range_check): If both low and high are NULL,
5567 use omit_one_operand_loc to preserve exp side-effects.
5568
df45c0cc
KT
55692013-09-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5570
5571 * config/arm/arm.md (arm_shiftsi3): New alternative l/l/M.
5572
80ab0b19
RB
55732013-09-11 Richard Biener <rguenther@suse.de>
5574
5575 * tree-data-ref.c (dump_rdg_vertex, debug_rdg_vertex,
5576 dump_rdg_component, debug_rdg_component, dump_rdg, debug_rdg,
5577 dot_rdg_1, dot_rdg, rdg_vertex_for_stmt, create_rdg_edge_for_ddr,
5578 create_rdg_edges_for_scalar, create_rdg_edges, create_rdg_vertices,
5579 stmts_from_loop, known_dependences_p, build_empty_rdg,
5580 build_rdg, free_rdg, rdg_defs_used_in_other_loops_p): Move ...
5581 * tree-loop-distribution.c: ... here.
5582 * tree-data-ref.h (struct rdg_vertex, RDGV_STMT, RDGV_DATAREFS,
5583 RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT, RDG_DATAREFS,
5584 RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT, enum rdg_dep_type,
5585 struct rdg_edge, RDGE_TYPE, RDGE_LEVEL, RDGE_RELATION): Move ...
5586 * tree-loop-distribution.c: ... here.
5587 * tree-loop-distribution.c: Include gimple-pretty-print.h.
5588 (struct partition_s): Add loops member.
5589 (partition_alloc, partition_free, rdg_flag_uses, rdg_flag_vertex,
5590 rdg_flag_vertex_and_dependent, rdg_flag_loop_exits,
5591 build_rdg_partition_for_component, rdg_build_partitions): Adjust.
5592
85a77221
AI
55932013-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
5594 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
5595 Sergey Lega <sergey.s.lega@intel.com>
5596 Anna Tikhonova <anna.tikhonova@intel.com>
5597 Ilya Tocar <ilya.tocar@intel.com>
5598 Andrey Turetskiy <andrey.turetskiy@intel.com>
5599 Ilya Verbin <ilya.verbin@intel.com>
5600 Kirill Yukhin <kirill.yukhin@intel.com>
5601 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
5602
5603 * config/i386/constraints.md (k): New.
5604 (Yk): Ditto.
5605 * config/i386/i386.c (const regclass_map): Add new mask registers.
5606 (dbx_register_map): Ditto.
5607 (dbx64_register_map): Ditto.
5608 (svr4_dbx_register_map): Ditto.
5609 (ix86_conditional_register_usage): Squash mask registers if AVX512F is
5610 disabled.
5611 (ix86_preferred_reload_class): Disable constants for mask registers.
5612 (ix86_secondary_reload): Do spill of mask register using 32-bit insn.
5613 (ix86_hard_regno_mode_ok): Support new mask registers.
5614 (x86_order_regs_for_local_alloc): Ditto.
5615 * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Update.
5616 (FIXED_REGISTERS): Add new mask registers.
5617 (CALL_USED_REGISTERS): Ditto.
5618 (REG_ALLOC_ORDER): Ditto.
5619 (VALID_MASK_REG_MODE): New.
5620 (FIRST_MASK_REG): Ditto.
5621 (LAST_MASK_REG): Ditto.
5622 (reg_class): Add MASK_EVEX_REGS, MASK_REGS.
5623 (MAYBE_MASK_CLASS_P): New.
5624 (REG_CLASS_NAMES): Add MASK_EVEX_REGS, MASK_REGS.
5625 (REG_CLASS_CONTENTS): Ditto.
5626 (MASK_REGNO_P): New.
5627 (ANY_MASK_REG_P): Ditto.
5628 (HI_REGISTER_NAMES): Add new mask registers.
893e85fa
CM
5629 * config/i386/i386.md (MASK0_REG, MASK1_REG, MASK2_REG, MASK3_REG,
5630 MASK4_REG, MASK5_REG, MASK6_REG, MASK7_REG): Constants for new
5631 mask registers.
85a77221
AI
5632 (attribute "type"): Add mskmov, msklog.
5633 (attribute "length_immediate"): Support them.
5634 (attribute "memory"): Ditto.
5635 (attribute "prefix_0f"): Ditto.
5636 (*movhi_internal): Support new mask registers.
5637 (*movqi_internal): Ditto.
5638 (define_split): Split out clobber pattern is a logic
5639 insn on mask registers.
5640 (*k<logic><mode>): New.
5641 (*andhi_1): Extend to support mask regs.
5642 (*andqi_1): Extend to support mask regs.
5643 (kandn<mode>): New.
5644 (define_split): Split and-not to and and not if operands
5645 are not mask regs.
5646 (*<code><mode>_1): Separate HI mode to new pattern...
5647 (*<code>hi_1): This.
5648 (*<code>qi_1): Extend to support mask regs.
5649 (kxnor<mode>): New.
5650 (kortestzhi): Ditto.
5651 (kortestchi): Ditto.
5652 (kunpckhi): Ditto.
5653 (*one_cmpl<mode>2_1): Remove HImode and handle it...
5654 (*one_cmplhi2_1): ...Here, now with mask registers support.
5655 (*one_cmplqi2_1): Support new mask registers.
893e85fa
CM
5656 (HI/QImode arithmetics splitter): Don't split if mask registers
5657 are used.
85a77221
AI
5658 (HI/QImode not splitter): Ditto.
5659 * config/i386/predicated.md (mask_reg_operand): New.
5660 (general_reg_operand): Ditto.
5661
7e570821
AI
56622013-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
5663
5664 * doc/invoke.texi: Document fxsr, xsave and xsaveopt options.
5665 * doc/extend.texi: Document fxsr, xsave and xsaveopt builtins.
5666
9e1376e9
JL
56672013-09-10 Jeff Law <law@redhat.com>
5668
5669 PR tree-optimization/58380
5670 * tree-ssa-threadupdate.c (thread_block): Recognize another case
5671 of threading through a buried loop header.
5672
5673 * tree-ssa-threadedge.c (thread_around_empty_blocks): Correct
5674 return value for single successor case.
5675
5bbcb888
JH
56762013-09-10 Jan Hubicka <jh@suse.cz>
5677
5678 * ipa-devirt.c (ipa_devirt): Enable with LTO.
5679
d742ff4b
RE
56802013-09-10 Richard Earnshaw <rearnsha@arm.com>
5681
5682 PR target/58361
5683 * arm/vfp.md (combine_vcvt_f32_<FCVTI32typename>): Fix pattern to
5684 support conditional execution.
5685 (combine_vcvt_f64_<FCVTI32typename>): Likewise.
5686
b0681c9e
VM
56872013-09-10 Vladimir Makarov <vmakarov@redhat.com>
5688
5689 * lra.c (lra): Clear lra_optional_reload_pseudos before every
5690 constraint pass.
f77e2d2d
JBG
5691 * lra-constraints.c (curr_insn_transform): Switch on optional reloads.
5692 Check destination too to check move insn.
b0681c9e 5693 (undo_optional_reloads): Add check that the original peudo did not
f77e2d2d
JBG
5694 changed its allocation and the optional reload was inherited on last
5695 inheritance pass. Break loop after deciding to keep optional reload.
b0681c9e
VM
5696 (lra_undo_inheritance): Add check that inherited pseudo still in
5697 memory.
5698
c9b1c957
JG
56992013-09-10 James Greenhalgh <james.greenhalgh@arm.com>
5700
5701 * config/aarch64/aarch64.md (generic_sched): New.
5702 * config/aarch64/aarch64-generic.md (load): Make conditional
5703 on generic_sched attribute.
5704 (nonload): Likewise.
5705
82d618d3
JH
57062013-09-10 Jan Hubicka <jh@suse.cz>
5707
5708 * lto-cgraph.c: Include ipa-utils.h.
5709 (compute_ltrans_boundary): Also add possible targets into the boundary.
5710
668b6894
JH
57112013-09-10 Jan Hubicka <jh@suse.cz>
5712
5713 * gimple-fold.c (gimple_get_virt_method_for_binfo): Pass real
5714 VAR_DECL of vtable rather than full expression.
5715
4f90d3e0
JH
57162013-09-10 Jan Hubicka <jh@suse.cz>
5717 Paolo Carlini <paolo.carlini@oracle.com>
5718
5719 * cgraphunit.c (analyze_functions): Save input_location, set it
5720 to UNKNOWN_LOCATION and restore it at the end.
5721
39e87baf
MJ
57222013-09-10 Martin Jambor <mjambor@suse.cz>
5723
5724 * ipa-cp.c (propagate_constants_topo): Do not ignore SCC
5725 represented by a thunk.
5726
581aedec
JL
57272013-09-10 Jeff Law <law@redhat.com>
5728
5729 PR tree-optimization/58343
5730 * tree-ssa-threadupdate.c (thread_block): Identify and disable
5731 jump threading requests through loop headers buried in the middle
5732 of a jump threading path.
5733
5734 * tree-ssa-threadedge.c (thread_around_empty_blocks): Fix thinko
5735 in return value/type.
5736
84cf4ab6
JJ
57372013-09-10 Jakub Jelinek <jakub@redhat.com>
5738
5739 PR rtl-optimization/58365
5740 * cfgcleanup.c (merge_memattrs): Also clear MEM_READONLY_P
5741 resp. MEM_NOTRAP_P if they differ, or set MEM_VOLATILE_P if
5742 it differs.
5743
447dd906
RB
57442013-09-10 Richard Biener <rguenther@suse.de>
5745
5746 * tree-data-ref.h (build_rdg): Drop all parameters but loop.
5747 * tree-data-ref.c (create_rdg_vertices): Collect all data
5748 references, signal failure to the caller, use data-ref API.
893e85fa
CM
5749 (build_rdg): Compute data references only once. Maintain lifetime
5750 of data references and data dependences from within RDG.
447dd906
RB
5751 (free_rdg): Free dependence relations.
5752 * tree-loop-distribution.c (rdg_flag_uses): Drop weird code
5753 inventing extra dependences.
5754 (distribute_loop): Update for RDG API changes.
5755
f14a7324
KT
57562013-09-10 Kai Tietz <ktietz@redhat.com>
5757
5758 * doc/invoke.texi (fms-extensions): Document changed
5759 behavior for ms-abi targets.
5760 * config/i386/i386.c (ix86_option_override_internal):
5761 Set default value of option -fms-extension for ms-abi targets.
5762
ff131f26
MZ
57632013-09-10 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
5764
5765 * config/i386/i386.c (ix86_expand_movmem): Fix epilogue generation.
5766
33115a2c
AM
57672013-09-10 Alan Modra <amodra@gmail.com>
5768
5769 PR target/58330
5770 * config/rs6000/rs6000.md (bswapdi2_64bit): Disable for volatile mems.
5771
b6872a13
AM
57722013-09-10 Alan Modra <amodra@gmail.com>
5773
5774 * config/rs6000/predicates.md (add_cint_operand): New.
5775 (reg_or_add_cint_operand, small_toc_ref): Use add_cint_operand.
5776 * config/rs6000/rs6000.md (largetoc_high_plus): Restrict offset
5777 using add_cint_operand.
5778 (largetoc_high_plus_aix): Likewise.
5779
28fd0ba2
JJ
57802013-09-09 Jakub Jelinek <jakub@redhat.com>
5781
5782 PR tree-optimization/58364
5783 * tree-ssa-reassoc.c (init_range_entry): For BIT_NOT_EXPR on
5784 BOOLEAN_TYPE, only invert in_p and continue with arg0 if
5785 the current range can't be an unconditional true or false.
5786
552d99fe
JG
57872013-09-09 James Greenhalgh <james.greenhalgh@arm.com>
5788
5789 * config/aarch64/arm_neon.h (vrsqrte_f64): Fix parameter type.
5790
f43245d1
UB
57912013-09-09 Uros Bizjak <ubizjak@gmail.com>
5792
5793 * ipa-prop.c (ipa_modify_call_arguments): Initialize deref_align.
5794
c9b0866a
PC
57952013-09-09 Paolo Carlini <paolo.carlini@oracle.com>
5796
5797 PR c++/43452
5798 * doc/invoke.texi (-Wdelete-incomplete): Document it.
5799
78d8b9f0
IB
58002013-09-09 Ian Bolton <ian.bolton@arm.com>
5801
5802 * config/aarch64/aarch64.c (aarch64_preferred_reload_class): Return
5803 NO_REGS for immediate that can't be moved directly into FP_REGS.
5804
274b2532
KT
58052013-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5806
5807 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
5808 comparison with negated operand.
c9b0866a
PC
5809 * config/aarch64/aarch64.md (compare_neg<mode>): Match canonical
5810 RTL form.
274b2532 5811
467a3558
RB
58122013-09-09 Richard Biener <rguenther@suse.de>
5813
5814 PR middle-end/58326
5815 * cfgloopmanip.c (fix_bb_placements): When fixing the placement
5816 of a subloop record all its block as affecting loop-closed SSA form.
5817
088c5368
RS
58182013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
5819
5820 * expmed.c (lshift_value): Take an unsigned HOST_WIDE_INT instead
5821 of an rtx/bitpos pair.
5822 (store_fixed_bit_field): Update accordingly.
5823
69db2d57
RS
58242013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
5825
5826 * asan.c (asan_emit_stack_protection): Use gen_int_mode instead of
5827 GEN_INT.
5828 * builtins.c (expand_errno_check): Likewise.
5829 * dwarf2cfi.c (init_return_column_size): Likewise.
5830 * except.c (sjlj_mark_call_sites): Likewise.
5831 * expr.c (move_by_pieces_1, store_by_pieces_2): Likewise.
5832 * lra-constraints.c (emit_inc): Likewise.
5833 * ree.c (combine_set_extension): Likewise.
5834 * regmove.c (fixup_match_2): Likewise.
5835 * reload1.c (inc_for_reload): Likewise.
5836
69a59f0f
RS
58372013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
5838
5839 * combine.c (simplify_set, expand_field_assignment, extract_left_shift)
5840 (force_to_mode, simplify_shift_const_1, simplify_comparison):
5841 Use gen_int_mode with the mode of the associated simplify_* call.
5842 * explow.c (probe_stack_range, anti_adjust_stack_and_probe): Likewise.
5843 * expmed.c (expand_shift_1): Likewise.
5844 * function.c (instantiate_virtual_regs_in_insn): Likewise.
5845 * loop-iv.c (iv_number_of_iterations): Likewise.
5846 * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
5847 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
5848
2f1cd2eb
RS
58492013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
5850
5851 * asan.c (asan_clear_shadow): Use gen_int_mode with the mode
5852 of the associated expand_* call.
5853 (asan_emit_stack_protection): Likewise.
5854 * builtins.c (round_trampoline_addr): Likewise.
5855 * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise.
5856 * expmed.c (expand_smod_pow2, expand_sdiv_pow2, expand_divmod)
5857 (emit_store_flag): Likewise.
5858 * expr.c (emit_move_resolve_push, push_block, emit_single_push_insn_1)
5859 (emit_push_insn, optimize_bitfield_assignment_op, expand_expr_real_1):
5860 Likewise.
5861 * function.c (instantiate_virtual_regs_in_insn): Likewise.
5862 * ifcvt.c (noce_try_store_flag_constants): Likewise.
5863 * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
5864 * modulo-sched.c (generate_prolog_epilog): Likewise.
5865 * optabs.c (expand_binop, widen_leading, expand_doubleword_clz)
5866 (expand_ctz, expand_ffs, expand_unop): Likewise.
5867
4789c0ce
RS
58682013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
5869
5870 * alias.c (addr_side_effect_eval): Use gen_int_mode with the mode
5871 of the associated gen_rtx_* call.
5872 * caller-save.c (init_caller_save): Likewise.
5873 * combine.c (find_split_point, make_extraction): Likewise.
5874 (make_compound_operation): Likewise.
5875 * dwarf2out.c (mem_loc_descriptor): Likewise.
5876 * explow.c (plus_constant, probe_stack_range): Likewise.
5877 * expmed.c (expand_mult_const): Likewise.
5878 * expr.c (emit_single_push_insn_1, do_tablejump): Likewise.
5879 * reload1.c (init_reload): Likewise.
5880 * valtrack.c (cleanup_auto_inc_dec): Likewise.
5881 * var-tracking.c (adjust_mems): Likewise.
5882 * modulo-sched.c (sms_schedule): Likewise, but use gen_rtx_GT
5883 rather than gen_rtx_fmt_ee.
5884
a811f7cb
JH
58852013-09-09 Jan Hubicka <jh@suse.cz>
5886
5887 PR middle-end/58294
5888 * value-prof.c (gimple_ic): Copy also abnormal edges.
5889
dcad1dd3
RS
58902013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
5891
5892 * asan.c (asan_shadow_cst): Use gen_int_mode.
5893
daf5c770
JH
58942013-09-08 Jan Hubicka <jh@suse.cz>
5895
5896 * ipa-profile.c: Add toplevel comment.
5897 (ipa_propagate_frequency_1): Be more conservative when profile is read.
5898 (contains_hot_call_p): New function.
5899 (ipa_propagate_frequency): Set frequencies based on counts when
5900 profile is read.
5901 * predict.c (compute_function_frequency): Use PROFILE_READ gueard for
5902 profile; do not tamper with profile after inlining if it is read.
5903
a12cd2db
JH
59042013-09-08 Jan Hubicka <jh@suse.cz>
5905
5906 * ipa-prop.c (try_make_edge_direct_simple_call): Do not special case
5907 speculative edges.
5908
856a1588
JH
59092013-09-08 Jan Hubicka <jh@suse.cz>
5910
5911 * ipa.c (walk_polymorphic_call_targets): Fix redirection before IPA
5912 summary generation.
5913
4f4b0b73
JL
59142013-09-08 Jeff Law <law@redhat.com>
5915
5916 PR bootstrap/58340
5917 * tree-ssa-threadedge.c (thread_across_edge): Fix initialization
5918 of 'found'.
5919
cc4029ee
AK
59202013-09-08 Andi Kleen <ak@linux.intel.com>
5921
5922 * tree-inline.c (estimate_num_insns): Limit asm cost to 1000.
5923
7b395ddd
JH
59242013-09-08 Jan Hubicka <jh@suse.cz>
5925
5926 * ipa.c (walk_polymorphic_call_targets): Fix inliner summary update.
5927
c34c46dd
RS
59282013-09-08 Richard Sandiford <rdsandiford@googlemail.com>
5929
5930 * ira.c (update_equiv_regs): Only call set_paradoxical_subreg
5931 for non-debug insns.
5932 * lra.c (new_insn_reg): Take the containing insn as a parameter.
5933 Only modify lra_reg_info[].biggest_mode if it's non-debug insn.
5934 (collect_non_operand_hard_regs, add_regs_to_insn_regno_info): Update
5935 accordingly.
5936
3462aa02
JH
59372013-09-08 Jan Hubicka <jh@suse.cz>
5938
5939 * cgraphunit.c (walk_polymorphic_call_targets): Permit 0 possible
5940 targets and devirtualize to BUILT_IN_UNREACHABLE.
5941 * timevar.def (TV_IPA_UNREACHABLE): New timevar.
5942 * ipa.c (walk_polymorphic_call_targets): New function.
5943 (symtab_remove_unreachable_nodes): Use it; do not keep all virtual
5944 functions; use the new timevar.
5945 * ipa-devirt.c (maybe_record_node): Do not insert static nodes that
5946 was removed from the program.
5947 (record_binfo): If BINFO corresponds to an anonymous namespace, we may
5948 not consider it in the walk when its vtable is dead.
5949 (possible_polymorphic_call_targets_1): Pass anonymous flag to
5950 record_binfo.
5951 (devirt_variable_node_removal_hook): New function.
5952 (possible_polymorphic_call_targets): Also register
5953 devirt_variable_node_removal_hook.
5954 (ipa_devirt): Do not do non-speculative devirtualization.
5955 (gate_ipa_devirt): One execute if devirtualizing speculatively.
5956
26e5b0fd
JH
59572013-09-08 Jan Hubicka <jh@suse.cz>
5958
5959 * cgraph.h (varpool_node_hook, varpool_node_hook_list,
5960 varpool_add_node_removal_hook, varpool_add_variable_insertion_hook,
5961 varpool_remove_variable_insertion_hook): Declare.
5962 * varpool.c (varpool_node_hook_list): New structure.
5963 (first_varpool_node_removal_hook,
5964 first_varpool_variable_insertion_hook): New variables.
5965 (varpool_add_node_removal_hook, varpool_remove_node_removal_hook,
5966 varpool_call_node_removal_hooks, varpool_add_variable_insertion_hook,
5967 varpool_remove_variable_insertion_hook,
5968 varpool_call_variable_insertion_hooks): New functions.
5969 (varpool_remove_node): Use it.
5970
97f1f314 59712013-09-08 Paolo Carlini <paolo.carlini@oracle.com>
6df2ca09 5972
97f1f314
PC
5973 PR c++/54941
5974 * diagnostic.c (diagnostic_build_prefix): When s.file is
5975 "<built-in>" don't output line and column numbers.
6df2ca09 5976
bcb650cb
JH
59772013-09-06 Jan Hubicka <jh@suse.cz>
5978
5979 * cgraphunit.c (expand_thunk): Get body before touching arguments.
5980 * lto-streamer-out.c: Stream thunks, too.
5981 * lto-streamer-in.c (input_function): Pop cfun here
5982 (lto_read_body): Instead of here.
5983
87f3fea8
CT
59842013-09-06 Caroline Tice <cmtice@google.com>
5985
5986 * doc/install.texi: Add documentation for the --enable-vtable-verify
5987 and the --disable-libvtv configure options.
5988
5e8d9b45
JL
59892013-09-06 Jeff Law <law@redhat.com>
5990
5991 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
5992 edge implied equivalences into successor phis.
5993
3a001aff
JR
59942013-09-06 Joern Rennecke <joern.rennecke@embecosm.com>
5995
5996 * resource.c (mark_referenced_resources): Handle COND_EXEC.
5997
59982013-09-06 Claudiu Zissulescu <claziss@synopsys.com>
c42091c1
CZ
5999
6000 * resource.c (mark_target_live_regs): Compute resources taking
6001 into account if a call is predicated or not.
6002
2c641f8b
EB
60032013-09-06 Eric Botcazou <ebotcazou@adacore.com>
6004
6005 * toplev.c (output_stack_usage): Be prepared for suffixes created by
6006 the compiler in the function names.
6007
a81b0a3d
JH
60082013-09-06 Jan Hubicka <jh@suse.cz>
6009
6010 PR middle-end/58094
6011 * ipa-inline.c (has_caller_p): New function.
6012 (want_inline_function_to_all_callers_p): Use it.
6013 (sum_callers, inline_to_all_callers): Break out from ...
6014 (ipa_inline): ... here.
6015
68e4ca7e
JH
60162013-09-06 Jan Hubicka <jh@suse.cz>
6017
2c641f8b
EB
6018 * config/i386/i386.c (ix86_hard_regno_mode_ok): AVX modes are valid
6019 only when AVX is enabled.
68e4ca7e 6020
3c73e2fe
JG
60212013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
6022
6023 * config/aarch64/aarch64.md
6024 (*movtf_aarch64): Use neon_<ls>dm_2 as type where v8type
6025 is fpsimd_<load/store>2.
6026 (load_pair<mode>): Likewise.
6027 (store_pair<mode>): Likewise.
6028
8c48eecd
JG
60292013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
6030
6031 * config/arm/types.md (type): Add "mrs" type.
6032 * config/aarch64/aarch64.md
6033 (aarch64_load_tp_hard): Make type "mrs".
6034 * config/arm/arm.md
6035 (load_tp_hard): Make type "mrs".
6036 * config/arm/cortex-a15.md: Update with new attributes.
6037 * config/arm/cortex-a5.md: Update with new attributes.
6038 * config/arm/cortex-a53.md: Update with new attributes.
6039 * config/arm/cortex-a7.md: Update with new attributes.
6040 * config/arm/cortex-a8.md: Update with new attributes.
6041 * config/arm/cortex-a9.md: Update with new attributes.
6042 * config/arm/cortex-m4.md: Update with new attributes.
6043 * config/arm/cortex-r4.md: Update with new attributes.
6044 * config/arm/fa526.md: Update with new attributes.
6045 * config/arm/fa606te.md: Update with new attributes.
6046 * config/arm/fa626te.md: Update with new attributes.
6047 * config/arm/fa726te.md: Update with new attributes.
6048
9ea187a5
JG
60492013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
6050
6051 * config/aarch64/aarch64.md
6052 (*movti_aarch64): Use "multiple" for type where v8type is "move2".
6053 (*movtf_aarch64): Likewise.
6054 * config/arm/arm.md
6055 (thumb1_movdi_insn): Use "multiple" for type where more than one
6056 instruction is used for a move.
6057 (*arm32_movhf): Likewise.
6058 (*thumb_movdf_insn): Likewise.
6059
292b89b3
JG
60602013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
6061
6062 * config/arm/types.md (type): Rename fcpys to fmov.
6063 * config/arm/vfp.md
6064 (*arm_movsi_vfp): Rename type fcpys as fmov.
6065 (*thumb2_movsi_vfp): Likewise
6066 (*movhf_vfp_neon): Likewise
6067 (*movhf_vfp): Likewise
6068 (*movsf_vfp): Likewise
6069 (*thumb2_movsf_vfp): Likewise
6070 (*movsfcc_vfp): Likewise
6071 (*thumb2_movsfcc_vfp): Likewise
6072 * config/aarch64/aarch64-simd.md
6073 (move_lo_quad_<mode>): Replace type mov_reg with fmovs.
6074 * config/aarch64/aarch64.md
6075 (*movsi_aarch64): Replace type mov_reg with fmovs.
6076 (*movdi_aarch64): Likewise
6077 (*movsf_aarch64): Likewise
6078 (*movdf_aarch64): Likewise
6079 * config/arm/arm.c
6080 (cortexa7_older_only): Rename TYPE_FCPYS to TYPE_FMOV.
6081 * config/arm/iwmmxt.md
6082 (*iwmmxt_movsi_insn): Rename type fcpys as fmov.
6083 * config/arm/arm1020e.md: Update with new attributes.
6084 * config/arm/cortex-a15-neon.md: Update with new attributes.
6085 * config/arm/cortex-a5.md: Update with new attributes.
6086 * config/arm/cortex-a53.md: Update with new attributes.
6087 * config/arm/cortex-a7.md: Update with new attributes.
6088 * config/arm/cortex-a8-neon.md: Update with new attributes.
6089 * config/arm/cortex-a9.md: Update with new attributes.
6090 * config/arm/cortex-m4-fpu.md: Update with new attributes.
6091 * config/arm/cortex-r4f.md: Update with new attributes.
6092 * config/arm/marvell-pj4.md: Update with new attributes.
6093 * config/arm/vfp11.md: Update with new attributes.
6094
6a24a83e
JG
60952013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
6096
6097 * config/aarch64/aarch64.md
6098 (*madd<mode>): Fix type attribute.
6099 (*maddsi_uxtw): Likewise.
6100 (*msub<mode>): Likewise.
6101 (*msubsi_uxtw): Likewise.
6102 (<su_optab>maddsidi4): Likewise.
6103 (<su_optab>msubsidi4): Likewise.
6104
b86923f0
JG
61052013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
6106
6107 * config/arm/types.md: Split fdiv<sd> as fsqrt<sd>, fdiv<sd>.
6108 * config/arm/arm.md (core_cycles): Remove fdiv.
6109 * config/arm/vfp.md:
6110 (*sqrtsf2_vfp): Update for attribute changes.
6111 (*sqrtdf2_vfp): Likewise.
6112 * config/aarch64/aarch64.md:
6113 (sqrt<mode>2): Update for attribute changes.
6114 * config/arm/arm1020e.md: Update with new attributes.
6115 * config/arm/cortex-a15-neon.md: Update with new attributes.
6116 * config/arm/cortex-a5.md: Update with new attributes.
6117 * config/arm/cortex-a53.md: Update with new attributes.
6118 * config/arm/cortex-a7.md: Update with new attributes.
6119 * config/arm/cortex-a8-neon.md: Update with new attributes.
6120 * config/arm/cortex-a9.md: Update with new attributes.
6121 * config/arm/cortex-m4-fpu.md: Update with new attributes.
6122 * config/arm/cortex-r4f.md: Update with new attributes.
6123 * config/arm/marvell-pj4.md: Update with new attributes.
6124 * config/arm/vfp11.md: Update with new attributes.
6125
7b49c9e1
JG
61262013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
6127
6128 * config/arm/types.md
6129 (type): Split f_cvt as f_cvt, f_cvtf2i, f_cvti2f.
6130 * config/aarch64/aarch64.md
6131 (l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): Update with
6132 new attributes.
6133 (fix_trunc<GPF:mode><GPI:mode>2): Likewise.
6134 (fixuns_trunc<GPF:mode><GPI:mode>2): Likewise.
6135 (float<GPI:mode><GPF:mode>2): Likewise.
6136 * config/arm/vfp.md
6137 (*truncsisf2_vfp): Update with new attributes.
6138 (*truncsidf2_vfp): Likewise.
6139 (fixuns_truncsfsi2): Likewise.
6140 (fixuns_truncdfsi2): Likewise.
6141 (*floatsisf2_vfp): Likewise.
6142 (*floatsidf2_vfp): Likewise.
6143 (floatunssisf2): Likewise.
6144 (floatunssidf2): Likewise.
6145 (*combine_vcvt_f32_<FCVTI32typename>): Likewise.
6146 (*combine_vcvt_f64_<FCVTI32typename>): Likewise.
6147 * config/arm/arm1020e.md: Update with new attributes.
6148 * config/arm/cortex-a15-neon.md: Update with new attributes.
6149 * config/arm/cortex-a5.md: Update with new attributes.
6150 * config/arm/cortex-a53.md: Update with new attributes.
6151 * config/arm/cortex-a7.md: Update with new attributes.
6152 * config/arm/cortex-a8-neon.md: Update with new attributes.
6153 * config/arm/cortex-a9.md: Update with new attributes.
6154 * config/arm/cortex-m4-fpu.md: Update with new attributes.
6155 * config/arm/cortex-r4f.md: Update with new attributes.
6156 * config/arm/marvell-pj4.md: Update with new attributes.
6157 * config/arm/vfp11.md: Update with new attributes.
6158
e7df8af8
JG
61592013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
6160
6161 * config/aarch64/arm_neon.h
6162 (vqtbl<1,2,3,4><q>_s8): Fix control vector parameter type.
6163 (vqtbx<1,2,3,4><q>_s8): Likewise.
6164
594726e4
JG
61652013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
6166
f43245d1
UB
6167 * config/arm/types.md: Add "no_insn", "multiple" and "untyped" types.
6168 * config/arm/arm-fixed.md: Add type attribute to all insn patterns.
594726e4
JG
6169 (add<mode>3): Add type attribute.
6170 (add<mode>3): Likewise.
6171 (usadd<mode>3): Likewise.
6172 (ssadd<mode>3): Likewise.
6173 (sub<mode>3): Likewise.
6174 (sub<mode>3): Likewise.
6175 (ussub<mode>3): Likewise.
6176 (sssub<mode>3): Likewise.
6177 (ssmulsa3): Likewise.
6178 (usmulusa3): Likewise.
6179 (arm_usatsihi): Likewise.
6180 * config/arm/vfp.md
6181 (*movdi_vfp): Add types for all instructions.
6182 (*movdi_vfp_cortexa8): Likewise.
6183 (*movhf_vfp_neon): Likewise.
6184 (*movhf_vfp): Likewise.
6185 (*movdf_vfp): Likewise.
6186 (*thumb2_movdf_vfp): Likewise.
6187 (*thumb2_movdfcc_vfp): Likewise.
6188 * config/arm/arm.md: Add type attribute to all insn patterns.
6189 (*thumb1_adddi3): Add type attribute.
6190 (*arm_adddi3): Likewise.
6191 (*adddi_sesidi_di): Likewise.
6192 (*adddi_zesidi_di): Likewise.
6193 (*thumb1_addsi3): Likewise.
6194 (addsi3_compare0): Likewise.
6195 (*addsi3_compare0_scratch): Likewise.
6196 (*compare_negsi_si): Likewise.
6197 (cmpsi2_addneg): Likewise.
6198 (*addsi3_carryin_<optab>): Likewise.
6199 (*addsi3_carryin_alt2_<optab>): Likewise.
6200 (*addsi3_carryin_clobercc_<optab>): Likewise.
6201 (*subsi3_carryin): Likewise.
6202 (*subsi3_carryin_const): Likewise.
6203 (*subsi3_carryin_compare): Likewise.
6204 (*subsi3_carryin_compare_const): Likewise.
6205 (*arm_subdi3): Likewise.
6206 (*thumb_subdi3): Likewise.
6207 (*subdi_di_zesidi): Likewise.
6208 (*subdi_di_sesidi): Likewise.
6209 (*subdi_zesidi_di): Likewise.
6210 (*subdi_sesidi_di): Likewise.
6211 (*subdi_zesidi_ze): Likewise.
6212 (thumb1_subsi3_insn): Likewise.
6213 (*arm_subsi3_insn): Likewise.
6214 (*anddi3_insn): Likewise.
6215 (*anddi_zesidi_di): Likewise.
6216 (*anddi_sesdi_di): Likewise.
6217 (*ne_zeroextracts): Likewise.
6218 (*ne_zeroextracts): Likewise.
6219 (*ite_ne_zeroextr): Likewise.
6220 (*ite_ne_zeroextr): Likewise.
6221 (*anddi_notdi_di): Likewise.
6222 (*anddi_notzesidi): Likewise.
6223 (*anddi_notsesidi): Likewise.
6224 (andsi_notsi_si): Likewise.
6225 (thumb1_bicsi3): Likewise.
6226 (*iordi3_insn): Likewise.
6227 (*iordi_zesidi_di): Likewise.
6228 (*iordi_sesidi_di): Likewise.
6229 (*thumb1_iorsi3_insn): Likewise.
6230 (*xordi3_insn): Likewise.
6231 (*xordi_zesidi_di): Likewise.
6232 (*xordi_sesidi_di): Likewise.
6233 (*arm_xorsi3): Likewise.
6234 (*andsi_iorsi3_no): Likewise.
6235 (*smax_0): Likewise.
6236 (*smax_m1): Likewise.
6237 (*arm_smax_insn): Likewise.
6238 (*smin_0): Likewise.
6239 (*arm_smin_insn): Likewise.
6240 (*arm_umaxsi3): Likewise.
6241 (*arm_uminsi3): Likewise.
6242 (*minmax_arithsi): Likewise.
6243 (*minmax_arithsi_): Likewise.
6244 (*satsi_<SAT:code>): Likewise.
6245 (arm_ashldi3_1bit): Likewise.
6246 (arm_ashrdi3_1bit): Likewise.
6247 (arm_lshrdi3_1bit): Likewise.
6248 (*arm_negdi2): Likewise.
6249 (*thumb1_negdi2): Likewise.
6250 (*arm_negsi2): Likewise.
6251 (*thumb1_negsi2): Likewise.
6252 (*negdi_extendsid): Likewise.
6253 (*negdi_zero_extend): Likewise.
6254 (*arm_abssi2): Likewise.
6255 (*thumb1_abssi2): Likewise.
6256 (*arm_neg_abssi2): Likewise.
6257 (*thumb1_neg_abss): Likewise.
6258 (one_cmpldi2): Likewise.
6259 (extend<mode>di2): Likewise.
6260 (*compareqi_eq0): Likewise.
6261 (*arm_extendhisi2addsi): Likewise.
6262 (*arm_movdi): Likewise.
6263 (*thumb1_movdi_insn): Likewise.
6264 (*arm_movt): Likewise.
6265 (*thumb1_movsi_insn): Likewise.
6266 (pic_add_dot_plus_four): Likewise.
6267 (pic_add_dot_plus_eight): Likewise.
6268 (tls_load_dot_plus_eight): Likewise.
6269 (*thumb1_movhi_insn): Likewise.
6270 (*thumb1_movsf_insn): Likewise.
6271 (*movdf_soft_insn): Likewise.
6272 (*thumb_movdf_insn): Likewise.
6273 (cbranchsi4_insn): Likewise.
6274 (cbranchsi4_scratch): Likewise.
6275 (*negated_cbranchsi4): Likewise.
6276 (*tbit_cbranch): Likewise.
6277 (*tlobits_cbranch): Likewise.
6278 (*tstsi3_cbranch): Likewise.
6279 (*cbranchne_decr1): Likewise.
6280 (*addsi3_cbranch): Likewise.
6281 (*addsi3_cbranch_scratch): Likewise.
6282 (*arm_cmpdi_insn): Likewise.
6283 (*arm_cmpdi_unsig): Likewise.
6284 (*arm_cmpdi_zero): Likewise.
6285 (*thumb_cmpdi_zero): Likewise.
6286 (*deleted_compare): Likewise.
6287 (*mov_scc): Likewise.
6288 (*mov_negscc): Likewise.
6289 (*mov_notscc): Likewise.
6290 (*cstoresi_eq0_thumb1_insn): Likewise.
6291 (cstoresi_nltu_thumb1): Likewise.
6292 (cstoresi_ltu_thu): Likewise.
6293 (thumb1_addsi3_addgeu): Likewise.
6294 (*arm_jump): Likewise.
6295 (*thumb_jump): Likewise.
6296 (*check_arch2): Likewise.
6297 (arm_casesi_internal): Likewise.
6298 (thumb1_casesi_dispatch): Likewise.
6299 (*arm_indirect_jump): Likewise.
6300 (*thumb1_indirect_jump): Likewise.
6301 (nop): Likewise.
6302 (*and_scc): Likewise.
6303 (*ior_scc): Likewise.
6304 (*compare_scc): Likewise.
6305 (*cond_move): Likewise.
6306 (*cond_arith): Likewise.
6307 (*cond_sub): Likewise.
6308 (*cmp_ite0): Likewise.
6309 (*cmp_ite1): Likewise.
6310 (*cmp_and): Likewise.
6311 (*cmp_ior): Likewise.
6312 (*ior_scc_scc): Likewise.
6313 (*ior_scc_scc_cmp): Likewise.
6314 (*and_scc_scc): Likewise.
6315 (*and_scc_scc_cmp): Likewise.
6316 (*and_scc_scc_nod): Likewise.
6317 (*negscc): Likewise.
6318 (movcond_addsi): Likewise.
6319 (movcond): Likewise.
6320 (*ifcompare_plus_move): Likewise.
6321 (*if_plus_move): Likewise.
6322 (*ifcompare_move_plus): Likewise.
6323 (*if_move_plus): Likewise.
6324 (*ifcompare_arith_arith): Likewise.
6325 (*if_arith_arith): Likewise.
6326 (*ifcompare_arith_move): Likewise.
6327 (*if_arith_move): Likewise.
6328 (*ifcompare_move_arith): Likewise.
6329 (*if_move_arith): Likewise.
6330 (*ifcompare_move_not): Likewise.
6331 (*if_move_not): Likewise.
6332 (*ifcompare_not_move): Likewise.
6333 (*if_not_move): Likewise.
6334 (*ifcompare_shift_move): Likewise.
6335 (*if_shift_move): Likewise.
6336 (*ifcompare_move_shift): Likewise.
6337 (*if_move_shift): Likewise.
6338 (*ifcompare_shift_shift): Likewise.
6339 (*ifcompare_not_arith): Likewise.
6340 (*ifcompare_arith_not): Likewise.
6341 (*if_arith_not): Likewise.
6342 (*ifcompare_neg_move): Likewise.
6343 (*if_neg_move): Likewise.
6344 (*ifcompare_move_neg): Likewise.
6345 (*if_move_neg): Likewise.
6346 (prologue_thumb1_interwork): Likewise.
6347 (*cond_move_not): Likewise.
6348 (*sign_extract_onebit): Likewise.
6349 (*not_signextract_onebit): Likewise.
6350 (stack_tie): Likewise.
6351 (align_4): Likewise.
6352 (align_8): Likewise.
6353 (consttable_end): Likewise.
6354 (consttable_1): Likewise.
6355 (consttable_2): Likewise.
6356 (consttable_4): Likewise.
6357 (consttable_8): Likewise.
6358 (consttable_16): Likewise.
6359 (*thumb1_tablejump): Likewise.
6360 (prefetch): Likewise.
6361 (force_register_use): Likewise.
6362 (thumb_eh_return): Likewise.
6363 (load_tp_hard): Likewise.
6364 (load_tp_soft): Likewise.
6365 (tlscall): Likewise.
6366 (*arm_movtas_ze): Likewise.
6367 (*arm_rev): Likewise.
6368 (*arm_revsh): Likewise.
6369 (*arm_rev16): Likewise.
6370 * config/arm/thumb2.md
6371 (*thumb2_smaxsi3): Likewise.
6372 (*thumb2_sminsi3): Likewise.
6373 (*thumb32_umaxsi3): Likewise.
6374 (*thumb2_uminsi3): Likewise.
6375 (*thumb2_negdi2): Likewise.
6376 (*thumb2_abssi2): Likewise.
6377 (*thumb2_neg_abss): Likewise.
6378 (*thumb2_movsi_insn): Likewise.
6379 (tls_load_dot_plus_four): Likewise.
6380 (*thumb2_movhi_insn): Likewise.
6381 (*thumb2_mov_scc): Likewise.
6382 (*thumb2_mov_negs): Likewise.
6383 (*thumb2_mov_negs): Likewise.
6384 (*thumb2_mov_nots): Likewise.
6385 (*thumb2_mov_nots): Likewise.
6386 (*thumb2_movsicc_): Likewise.
6387 (*thumb2_movsfcc_soft_insn): Likewise.
6388 (*thumb2_indirect_jump): Likewise.
6389 (*thumb2_and_scc): Likewise.
6390 (*thumb2_ior_scc): Likewise.
6391 (*thumb2_ior_scc_strict_it): Likewise.
6392 (*thumb2_cond_move): Likewise.
6393 (*thumb2_cond_arith): Likewise.
6394 (*thumb2_cond_ari): Likewise.
6395 (*thumb2_cond_sub): Likewise.
6396 (*thumb2_negscc): Likewise.
6397 (*thumb2_movcond): Likewise.
6398 (thumb2_casesi_internal): Likewise.
6399 (thumb2_casesi_internal_pic): Likewise.
6400 (*thumb2_alusi3_short): Likewise.
6401 (*thumb2_mov<mode>_shortim): Likewise.
6402 (*thumb2_addsi_short): Likewise.
6403 (*thumb2_subsi_short): Likewise.
6404 (thumb2_addsi3_compare0): Likewise.
6405 (*thumb2_cbz): Likewise.
6406 (*thumb2_cbnz): Likewise.
6407 (*thumb2_one_cmplsi2_short): Likewise.
6408 (*thumb2_negsi2_short): Likewise.
6409 (*orsi_notsi_si): Likewise.
6410 * config/arm/arm1020e.md: Update with new attributes.
6411 * config/arm/arm1026ejs.md: Update with new attributes.
6412 * config/arm/arm1136jfs.md: Update with new attributes.
6413 * config/arm/arm926ejs.md: Update with new attributes.
6414 * config/arm/cortex-a15.md: Update with new attributes.
6415 * config/arm/cortex-a5.md: Update with new attributes.
6416 * config/arm/cortex-a53.md: Update with new attributes.
6417 * config/arm/cortex-a7.md: Update with new attributes.
6418 * config/arm/cortex-a8.md: Update with new attributes.
6419 * config/arm/cortex-a9.md: Update with new attributes.
6420 * config/arm/cortex-m4.md: Update with new attributes.
6421 * config/arm/cortex-r4.md: Update with new attributes.
6422 * config/arm/fa526.md: Update with new attributes.
6423 * config/arm/fa606te.md: Update with new attributes.
6424 * config/arm/fa626te.md: Update with new attributes.
6425 * config/arm/fa726te.md: Update with new attributes.
6426
1c83b673
JG
64272013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
6428
6429 * config/aarch64/aarch64-simd.md
6430 (aarch64_sqdml<SBINQOPS:as>l_n<mode>_internal): Use
6431 <vwx> iterator to ensure correct register choice.
6432 (aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Likewise.
6433 (aarch64_sqdmull_n<mode>): Likewise.
6434 (aarch64_sqdmull2_n<mode>_internal): Likewise.
6435 * config/aarch64/arm_neon.h
6436 (vml<as><q>_lane<q>_<su>16): Use 'x' constraint for element vector.
6437 (vml<as><q>_n_<su>16): Likewise.
6438 (vml<as>l_high_lane<q>_<su>16): Likewise.
6439 (vml<as>l_high_n_<su>16): Likewise.
6440 (vml<as>l_lane<q>_<su>16): Likewise.
6441 (vml<as>l_n_<su>16): Likewise.
6442 (vmul<q>_lane<q>_<su>16): Likewise.
6443 (vmul<q>_n_<su>16): Likewise.
6444 (vmull_lane<q>_<su>16): Likewise.
6445 (vmull_n_<su>16): Likewise.
6446 (vmull_high_lane<q>_<su>16): Likewise.
6447 (vmull_high_n_<su>16): Likewise.
6448 (vqrdmulh<q>_n_s16): Likewise.
6449
bb1ae543
TB
64502013-09-06 Tejas Belagod <tejas.belagod@arm.com>
6451
6452 * config/aarch64/arm_neon.h: Fix all vdup<bhsd_lane<q> intrinsics to
6453 have the correct lane parameter.
6454
f23c0742
RB
64552013-09-06 Richard Biener <rguenther@suse.de>
6456
6457 * cfganal.c (control_dependences::~control_dependences):
6458 Properly free all of the vector.
6459
c1d49770
KY
64602013-09-06 Kirill Yukhin <kirill.yukhin@intel.com>
6461
6462 PR target/58269
6463 * config/i386/i386.c (ix86_conditional_register_usage):
6464 Proper initialize extended SSE registers.
6465
6da47f52
JH
64662013-09-06 Jan Hubicka <jh@suse.cz>
6467
6468 PR tree-optimization/58311
6469 * ipa-devirt.c (gate_ipa_devirt): Only execute when optimizing.
6470
64712013-09-06 Jan Hubicka <jh@suse.cz>
6472
6473 * Makefile.in (tree-sra.o): Update dependencies.
6474 * tree-sra.c: Include ipa-utils.h
6475 (scan_function): Use recursive_call_p.
6476 (has_caller_p): New function.
6477 (cgraph_for_node_and_aliases): Count also callers of aliases.
6478
fc11f321
JH
64792013-09-06 Jan Hubicka <jh@suse.cz>
6480
6481 PR middle-end/58094
6482 * cgraph.h (symtab_semantically_equivalent_p): Declare.
6483 * tree-tailcall.c: Include ipa-utils.h.
6484 (find_tail_calls): Use it.
6485 * ipa-pure-const.c (check_call): Likewise.
6486 * ipa-utils.c (recursive_call_p): New function.
6487 * ipa-utils.h (recursive_call_p): Dclare.
6488 * symtab.c (symtab_nonoverwritable_alias): Fix formatting.
6489 (symtab_semantically_equivalent_p): New function.
6490 * Makefile.in (tree-tailcall.o): Update dependencies.
6491
9a6af450
EB
64922013-09-06 Eric Botcazou <ebotcazou@adacore.com>
6493
6494 * ipa-split.c (split_function): Set DECL_NO_INLINE_WARNING_P on the
6495 non-inlinable part.
6496
35f32ad4
RB
64972013-09-06 Richard Biener <rguenther@suse.de>
6498
6499 * lto-streamer.h (lto_global_var_decls): Remove.
6500 * Makefile.in (OBJS): Remove lto-symtab.o.
6501 (lto-symtab.o): Remove.
6502 (GTFILES): Remove lto-symtab.c
6503 * lto-symtab.c: Move to lto/
6504
d12a76f3
AK
65052013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6506
6507 * config/s390/s390.md (UNSPEC_FPINT_FLOOR, UNSPEC_FPINT_BTRUNC)
6508 (UNSPEC_FPINT_ROUND, UNSPEC_FPINT_CEIL, UNSPEC_FPINT_NEARBYINT)
6509 (UNSPEC_FPINT_RINT): New constant definitions.
6510 (FPINT, fpint_name, fpint_roundingmode): New integer iterator
6511 definition with 2 attributes.
6512 ("<FPINT:fpint_name><BFP:mode>2", "rint<BFP:mode>2")
6513 ("<FPINT:fpint_name><DFP:mode>2", "rint<DFP:mode>2"): New pattern
6514 definitions.
6515
65162013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6517
f43245d1 6518 * config/s390/s390.md: Add "bcr_flush" value to mnemonic attribute.
d12a76f3
AK
6519 ("mem_thread_fence_1"): Use bcr 14,0 for z196 and later.
6520 Set the mnemonic attribute to "bcr_flush". Set the "z196prop"
6521 attribute to "z196_alone".
6522 * config/s390/2827.md: Add "bcr_flush" to "ooo_groupalone" and
6523 "zEC12_simple".
6524
c8e9d8c3
RB
65252013-09-06 Richard Biener <rguenther@suse.de>
6526
6527 * basic-block.h (class control_dependences): New.
6528 * tree-ssa-dce.c (control_dependence_map): Remove.
6529 (cd): New global.
6530 (EXECUTE_IF_CONTROL_DEPENDENT): Remove.
6531 (set_control_dependence_map_bit, clear_control_dependence_bitmap,
6532 find_pdom, find_control_dependence, find_all_control_dependences):
6533 Move to cfganal.c.
f43245d1
UB
6534 (mark_control_dependent_edges_necessary,
6535 find_obviously_necessary_stmts, propagate_necessity, tree_dce_init,
6536 tree_dce_done, perform_tree_ssa_dce): Adjust.
c8e9d8c3
RB
6537 * cfganal.c (set_control_dependence_map_bit,
6538 clear_control_dependence_bitmap, find_pdom, find_control_dependence,
6539 find_all_control_dependences): Move from tree-ssa-dce.c and
6540 implement as methods of control_dependences class.
6541 (control_dependences::control_dependences): New.
6542 (control_dependences::~control_dependences): Likewise.
6543 (control_dependences::get_edges_dependent_on): Likewise.
6544 (control_dependences::get_edge): Likewise.
6545
7d2ba471
JH
65462013-09-04 Jan Hubicka <jh@suse.cz>
6547
6548 * tree.c (types_same_for_odr): Drop overactive check.
6549 * ipa-devirt.c (hash_type_name): Likewise.
6550
e18412fc
JH
65512013-09-04 Jan Hubicka <jh@suse.cz>
6552
6553 * cgraphunit.c (walk_polymorphic_call_targets): Break out from ...
6554 (analyze_functions): ... here.
6555
d352b245
JH
65562013-09-04 Jan Hubicka <jh@suse.cz>
6557
6558 PR middle-end/58201
6559 * cgraphunit.c (analyze_functions): Clear AUX fields
6560 after processing; initialize assembler name has.
6561
770da076
JL
65622013-09-05 Jeff Law <law@redhat.com>
6563
6564 * tree-ssa-threadedge.c (thread_around_empty_blocks): Renamed
6565 from thread_around_empty_block. Record threading path into PATH.
6566 Recurse if threading through the initial block is successful.
6567 (thread_across_edge): Corresponding changes to slightly simplify.
6568
fe6f68e2
JG
65692013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
6570
6571 * config/aarch64/aarch64.md
6572 (type): Remove frecpe, frecps, frecpx.
6573 (aarch64_frecp<FRECP:frecp_suffix><mode>): Move to aarch64-simd.md,
6574 fix to be a TARGET_SIMD instruction.
6575 (aarch64_frecps): Remove.
6576 * config/aarch64/aarch64-simd.md
6577 (aarch64_frecp<FRECP:frecp_suffix><mode>): New, moved from aarch64.md
6578 (aarch64_frecps<mode>): Handle all float/vector of float modes.
6579
6e4150e1
JG
65802013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
6581 Sofiane Naci <sofiane.naci@arm.com>
6582
f43245d1 6583 * config/arm/types.md (define_attr "type"): Expand "arlo_imm"
6e4150e1 6584 into "adr", "alu_imm", "alus_imm", "logic_imm", "logics_imm".
f43245d1
UB
6585 Expand "arlo_reg" into "adc_reg", "adc_imm", "adcs_reg", "adcs_imm",
6586 "alu_ext", "alu_reg", "alus_ext", "alus_reg", "bfm", "csel",
6587 "logic_reg", "logics_reg", "rev". Expand "arlo_shift" into
6588 "alu_shift_imm", "alus_shift_imm", "logic_shift_imm",
6589 "logics_shift_imm". Expand "arlo_shift_reg" into "alu_shift_reg",
6590 "alus_shift_reg", "logic_shift_reg", "logics_shift_reg". Expand "clz"
6591 into "clz, "rbit". Rename "shift" to "shift_imm".
6e4150e1 6592 * config/arm/arm.md (define_attr "core_cycles"): Update for attribute
f43245d1 6593 changes. Update for attribute changes all occurrences of arlo_* and
6e4150e1
JG
6594 shift* types.
6595 * config/arm/arm-fixed.md: Update for attribute changes
6596 all occurrences of arlo_* types.
6597 * config/arm/thumb2.md: Update for attribute changes all occurrences
6598 of arlo_* types.
6599 * config/arm/arm.c (xscale_sched_adjust_cost): (rtx insn, rtx
6600 (cortexa7_older_only): Likewise.
6601 (cortexa7_younger): Likewise.
6602 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
6603 (1020alu_shift_op): Likewise.
6604 (1020alu_shift_reg_op): Likewise.
6605 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
6606 (alu_shift_op): Likewise.
6607 (alu_shift_reg_op): Likewise.
f43245d1 6608 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
6e4150e1
JG
6609 (11_alu_shift_op): Likewise.
6610 (11_alu_shift_reg_op): Likewise.
6611 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
6612 (9_alu_shift_reg_op): Likewise.
6613 * config/arm/cortex-a15.md (cortex_a15_alu): Update for
6614 attribute changes.
6615 (cortex_a15_alu_shift): Likewise.
6616 (cortex_a15_alu_shift_reg): Likewise.
6617 * config/arm/cortex-a5.md (cortex_a5_alu): Update for
6618 attribute changes.
6619 (cortex_a5_alu_shift): Likewise.
f43245d1
UB
6620 * config/arm/cortex-a53.md (cortex_a53_alu): Update for
6621 attribute changes.
6e4150e1 6622 (cortex_a53_alu_shift): Likewise.
f43245d1
UB
6623 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for
6624 attribute changes.
6e4150e1
JG
6625 (cortex_a7_alu_reg): Likewise.
6626 (cortex_a7_alu_shift): Likewise.
f43245d1
UB
6627 * config/arm/cortex-a8.md (cortex_a8_alu): Update for
6628 attribute changes.
6e4150e1
JG
6629 (cortex_a8_alu_shift): Likewise.
6630 (cortex_a8_alu_shift_reg): Likewise.
f43245d1 6631 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
6e4150e1 6632 (cortex_a9_dp_shift): Likewise.
f43245d1
UB
6633 * config/arm/cortex-m4.md (cortex_m4_alu): Update for
6634 attribute changes.
6e4150e1
JG
6635 * config/arm/cortex-r4.md
6636 (cortex_r4_alu): Update for attribute changes.
6637 (cortex_r4_mov): Likewise.
6638 (cortex_r4_alu_shift_reg): Likewise.
f43245d1 6639 * config/arm/fa526.md (526_alu_op): Update for attribute changes.
6e4150e1 6640 (526_alu_shift_op): Likewise.
f43245d1
UB
6641 * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
6642 * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
6e4150e1 6643 (626te_alu_shift_op): Likewise.
f43245d1 6644 * config/arm/fa726te.md (726te_alu_op): Update for attribute changes.
6e4150e1
JG
6645 (726te_alu_shift_op): Likewise.
6646 (726te_alu_shift_reg_op): Likewise.
6647 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
6648 (mp626_alu_shift_op): Likewise.
6649 * config/arm/marvell-pj4.md (pj4_alu): Update for attribute changes.
6650 (pj4_alu_conds): Likewise.
6651 (pj4_shift): Likewise.
6652 (pj4_shift_conds): Likewise.
6653 (pj4_alu_shift): Likewise.
6654 (pj4_alu_shift_conds): Likewise.
6655 * config/aarch64/aarch64.md: Update for attribute change
6656 all occurrences of arlo_* and shift* types.
6657
e6523306
MS
66582013-09-05 Mike Stump <mikestump@comcast.net>
6659
6660 * tree.h: Move documentation for tree_function_decl to tree-core.h
6661 with the declaration.
6662
80a18161
PB
66632013-09-05 Peter Bergner <bergner@vnet.ibm.com>
6664
6665 PR target/58139
6666 * reginfo.c (choose_hard_reg_mode): Scan through all mode classes
6667 looking for widest mode.
6668
6994430a
EB
66692013-09-05 Eric Botcazou <ebotcazou@adacore.com>
6670
6671 * config.gcc (*-*-vxworks*): Do not override an existing extra_objs.
6672
e67f39f7
RB
66732013-09-05 Richard Biener <rguenther@suse.de>
6674
6675 PR tree-optimization/58137
6676 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
6677 Do not create vectors of pointers.
6678 * tree-vect-loop.c (get_initial_def_for_induction): Use proper
6679 types for the components of the vector initializer.
6680 * tree-cfg.c (verify_gimple_assign_binary): Remove special-casing
6681 allowing pointer vectors with PLUS_EXPR/MINUS_EXPR.
6682
568cda29
MJ
66832013-09-05 Martin Jambor <mjambor@suse.cz>
6684
6685 * ipa-prop.c (remove_described_reference): Accept missing references,
6686 return false if that hppens, otherwise return true.
6687 (cgraph_node_for_jfunc): New function.
6688 (try_decrement_rdesc_refcount): Likewise.
6689 (try_make_edge_direct_simple_call): Use them.
6690 (ipa_edge_removal_hook): Remove references from rdescs.
6691 (ipa_edge_duplication_hook): Clone rdescs and their references
6692 when the new edge has the same caller as the old one.
6693 * cgraph.c (cgraph_resolve_speculation): Remove speculative
6694 reference before removing any edges.
6695
5a200acb
RE
66962013-09-05 Richard Earnshaw <rearnsha@arm.com>
6697
6698 * arm.c (thumb2_emit_strd_push): Rewrite to use pre-decrement on
6699 initial store.
6700 * thumb2.md (thumb2_storewb_parisi): New pattern.
6701
5922847b
YZ
67022013-09-05 Yufeng Zhang <yufeng.zhang@arm.com>
6703
6704 * config/aarch64/aarch64-option-extensions.def: Add
6705 AARCH64_OPT_EXTENSION of 'crc'.
6706 * config/aarch64/aarch64.h (AARCH64_FL_CRC): New define.
6707 (AARCH64_ISA_CRC): Ditto.
6708 * doc/invoke.texi (-march and -mcpu feature modifiers): Add
6709 description of the CRC extension.
6710
996746aa
AI
67112013-09-05 Alexander Ivchenko <alexander.ivchenko@intel.com>
6712
6713 * config/rs6000/linux64.h: Define OPTION_BIONIC and OPTION_UCLIBC.
6714 * config/rs6000/linux.h: Ditto.
6715 * alpha/linux.h: Ditto.
6716 * config/bfin/uclinux.h: Define TARGET_LIBC_HAS_FUNCTION as
6717 no_c99_libc_has_function.
6718 * config/c6x/uclinux-elf.h: Ditto.
6719 * config/lm32/uclinux-elf.h: Ditto.
6720 * config/m68k/uclinux.h: Ditto.
6721 * config/moxie/uclinux.h: Ditto.
6722 * config.gcc (bfin*-linux-uclibc*): Add t-linux-android to tmake_file.
6723 (crisv32-*-linux*, cris-*-linux*): Ditto.
6724 * config/bfin/bfin.c: Include "tm_p.h".
6725
c370d99f
RB
67262013-09-05 Richard Biener <rguenther@suse.de>
6727
6728 * tree-vect-loop.c (vect_analyze_loop_operations): Properly
6729 check for a definition without a basic-block.
6730
003bb7f3
JG
67312013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
6732 Sofiane Naci <sofiane.naci@arm.com>
6733
6734 * config/aarch64/aarch64.md
6735 (*movti_aarch64): Rename r_2_f and f_2_r.
6736 (*movsf_aarch64): Likewise.
6737 (*movdf_aarch64): Likewise.
6738 (*movtf_aarch64): Likewise.
6739 (aarch64_movdi_<mode>low): Likewise.
6740 (aarch64_movdi_<mode>high): Likewise.
6741 (aarch64_mov<mode>high_di): Likewise.
6742 (aarch64_mov<mode>low_di): Likewise.
6743 (aarch64_movtilow_tilow): Likewise.
6744 * config/arm/arm.md (attribute "neon_type"): Delete. Move attribute
6745 values to config/arm/types.md
6746 (attribute "conds"): Update for attribute change.
6747 (anddi3_insn): Likewise.
6748 (iordi3_insn): Likewise.
6749 (xordi3_insn): Likewise.
6750 (one_cmpldi2): Likewise.
6751 * config/arm/types.md (type): Add Neon types.
6752 * config/arm/neon.md (neon_mov<mode>): Remove "neon_type" attribute,
6753 use "type" attribute.
6754 (movmisalign<mode>_neon_store): Likewise.
6755 (movmisalign<mode>_neon_load): Likewise.
6756 (vec_set<mode>_internal): Likewise.
6757 (vec_setv2di_internal): Likewise.
6758 (vec_extract<mode>): Likewise.
6759 (vec_extractv2di): Likewise.
6760 (add<mode>3_neon): Likewise.
6761 (adddi3_neon): Likewise.
6762 (sub<mode>3_neon): Likewise.
6763 (subdi3_neon): Likewise.
6764 (mul<mode>3_neon): Likewise.
6765 (mul<mode>3add<mode>_neon): Likewise.
6766 (mul<mode>3neg<mode>add<mode>_neon): Likewise.
6767 (fma<VCVTF:mode>4)): Likewise.
6768 (fma<VCVTF:mode>4_intrinsic): Likewise.
6769 (fmsub<VCVTF:mode>4)): Likewise.
6770 (fmsub<VCVTF:mode>4_intrinsic): Likewise.
6771 (neon_vrint<NEON_VRINT:nvrint_variant><VCVTF:mode>): Likewise.
6772 (ior<mode>3): Likewise.
6773 (and<mode>3): Likewise.
6774 (anddi3_neon): Likewise.
6775 (orn<mode>3_neon): Likewise.
6776 (orndi3_neon): Likewise.
6777 (bic<mode>3_neon): Likewise.
6778 (bicdi3_neon): Likewise.
6779 (xor<mode>3): Likewise.
6780 (one_cmpl<mode>2): Likewise.
6781 (abs<mode>2): Likewise.
6782 (neg<mode>2): Likewise.
6783 (umin<mode>3_neon): Likewise.
6784 (umax<mode>3_neon): Likewise.
6785 (smin<mode>3_neon): Likewise.
6786 (smax<mode>3_neon): Likewise.
6787 (vashl<mode>3): Likewise.
6788 (vashr<mode>3_imm): Likewise.
6789 (vlshr<mode>3_imm): Likewise.
6790 (ashl<mode>3_signed): Likewise.
6791 (ashl<mode>3_unsigned): Likewise.
6792 (neon_load_count): Likewise.
6793 (ashldi3_neon_noclobber): Likewise.
6794 (signed_shift_di3_neon): Likewise.
6795 (unsigned_shift_di3_neon): Likewise.
6796 (ashrdi3_neon_imm_noclobber): Likewise.
6797 (lshrdi3_neon_imm_noclobber): Likewise.
6798 (widen_ssum<mode>3): Likewise.
6799 (widen_usum<mode>3): Likewise.
6800 (quad_halves_<code>v4si): Likewise.
6801 (quad_halves_<code>v4sf): Likewise.
6802 (quad_halves_<code>v8hi): Likewise.
6803 (quad_halves_<code>v16qi): Likewise.
6804 (reduc_splus_v2di): Likewise.
6805 (neon_vpadd_internal<mode>): Likewise.
6806 (neon_vpsmin<mode>): Likewise.
6807 (neon_vpsmax<mode>): Likewise.
6808 (neon_vpumin<mode>): Likewise.
6809 (neon_vpumax<mode>): Likewise.
6810 (ss_add<mode>_neon): Likewise.
6811 (us_add<mode>_neon): Likewise.
6812 (ss_sub<mode>_neon): Likewise.
6813 (us_sub<mode>_neon): Likewise.
6814 (neon_vadd<mode>_unspec): Likewise.
6815 (neon_vaddl<mode>): Likewise.
6816 (neon_vaddw<mode>): Likewise.
6817 (neon_vhadd<mode>): Likewise.
6818 (neon_vqadd<mode>): Likewise.
6819 (neon_vaddhn<mode>): Likewise.
6820 (neon_vmul<mode>): Likewise.
6821 (neon_vmla<mode>): Likewise.
6822 (neon_vmlal<mode>): Likewise.
6823 (neon_vmls<mode>): Likewise.
6824 (neon_vmlsl<mode>): Likewise.
6825 (neon_vqdmulh<mode>): Likewise.
6826 (neon_vqdmlal<mode>): Likewise.
6827 (neon_vqdmlsl<mode>): Likewise.
6828 (neon_vmull<mode>): Likewise.
6829 (neon_vqdmull<mode>): Likewise.
6830 (neon_vsub<mode>_unspec): Likewise.
6831 (neon_vsubl<mode>): Likewise.
6832 (neon_vsubw<mode>): Likewise.
6833 (neon_vqsub<mode>): Likewise.
6834 (neon_vhsub<mode>): Likewise.
6835 (neon_vsubhn<mode>): Likewise.
6836 (neon_vceq<mode>): Likewise.
6837 (neon_vcge<mode>): Likewise.
6838 (neon_vcgeu<mode>): Likewise.
6839 (neon_vcgt<mode>): Likewise.
6840 (neon_vcgtu<mode>): Likewise.
6841 (neon_vcle<mode>): Likewise.
6842 (neon_vclt<mode>): Likewise.
6843 (neon_vcage<mode>): Likewise.
6844 (neon_vcagt<mode>): Likewise.
6845 (neon_vtst<mode>): Likewise.
6846 (neon_vabd<mode>): Likewise.
6847 (neon_vabdl<mode>): Likewise.
6848 (neon_vaba<mode>): Likewise.
6849 (neon_vabal<mode>): Likewise.
6850 (neon_vmax<mode>): Likewise.
6851 (neon_vmin<mode>): Likewise.
6852 (neon_vpaddl<mode>): Likewise.
6853 (neon_vpadal<mode>): Likewise.
6854 (neon_vpmax<mode>): Likewise.
6855 (neon_vpmin<mode>): Likewise.
6856 (neon_vrecps<mode>): Likewise.
6857 (neon_vrsqrts<mode>): Likewise.
6858 (neon_vqabs<mode>): Likewise.
6859 (neon_vqneg<mode>): Likewise.
6860 (neon_vcls<mode>): Likewise.
6861 (clz<mode>2): Likewise.
6862 (popcount<mode>2): Likewise.
6863 (neon_vrecpe): Likewise.
6864 (neon_vrsqrte): Likewise.
6865 (neon_vget_lane<mode>_sext_internal): Likewise.
6866 (neon_vget_lane<mode>_zext_internal): Likewise.
6867 (neon_vdup_n<mode>): Likewise.
6868 (neon_vdup_nv2di): Likewise.
6869 (neon_vdpu_lane<mode>_internal): Likewise.
6870 (neon_vswp<mode>): Likewise.
6871 (float<mode><V_cvtto>2): Likewise.
6872 (floatuns<mode><V_cvtto>2): Likewise.
6873 (fix_trunc<mode><V_cvtto>)2): Likewise
6874 (fixuns_trunc<mode><V_cvtto)2): Likewise.
6875 (neon_vcvt<mode>): Likewise.
6876 (neon_vcvtv4sfv4hf): Likewise.
6877 (neon_vcvtv4hfv4sf): Likewise.
6878 (neon_vcvt_n<mode>): Likewise.
6879 (neon_vmovn<mode>): Likewise.
6880 (neon_vqmovn<mode>): Likewise.
6881 (neon_vqmovun<mode>): Likewise.
6882 (neon_vmovl<mode>): Likewise.
6883 (neon_vmul_lane<mode>): Likewise.
6884 (neon_vmull_lane<mode>): Likewise.
6885 (neon_vqdmull_lane<mode>): Likewise.
6886 (neon_vqdmulh_lane<mode>): Likewise.
6887 (neon_vmla_lane<mode>): Likewise.
6888 (neon_vmlal_lane<mode>): Likewise.
6889 (neon_vqdmlal_lane<mode>): Likewise.
6890 (neon_vmls_lane<mode>): Likewise.
6891 (neon_vmlsl_lane<mode>): Likewise.
6892 (neon_vqdmlsl_lane<mode>): Likewise.
6893 (neon_vext<mode>): Likewise.
6894 (neon_vrev64<mode>): Likewise.
6895 (neon_vrev32<mode>): Likewise.
6896 (neon_vrev16<mode>): Likewise.
6897 (neon_vbsl<mode>_internal): Likewise.
6898 (neon_vshl<mode>): Likewise.
6899 (neon_vqshl<mode>): Likewise.
6900 (neon_vshr_n<mode>): Likewise.
6901 (neon_vshrn_n<mode>): Likewise.
6902 (neon_vqshrn_n<mode>): Likewise.
6903 (neon_vqshrun_n<mode>): Likewise.
6904 (neon_vshl_n<mode>): Likewise.
6905 (neon_vqshl_n<mode>): Likewise.
6906 (neon_vqshlu_n<mode>): Likewise.
6907 (neon_vshll_n<mode>): Likewise.
6908 (neon_vsra_n<mode>): Likewise.
6909 (neon_vsri_n<mode>): Likewise.
6910 (neon_vsli_n<mode>): Likewise.
6911 (neon_vtbl1v8qi): Likewise.
6912 (neon_vtbl2v8qi): Likewise.
6913 (neon_vtbl3v8qi): Likewise.
6914 (neon_vtbl4v8qi): Likewise.
6915 (neon_vtbx1v8qi): Likewise.
6916 (neon_vtbx2v8qi): Likewise.
6917 (neon_vtbx3v8qi): Likewise.
6918 (neon_vtbx4v8qi): Likewise.
6919 (neon_vtrn<mode>_internal): Likewise.
6920 (neon_vzip<mode>_internal): Likewise.
6921 (neon_vuzp<mode>_internal): Likewise.
6922 (neon_vld1<mode>): Likewise.
6923 (neon_vld1_lane<mode>): Likewise.
6924 (neon_vld1_dup<mode>): Likewise.
6925 (neon_vld1_dupv2di): Likewise.
6926 (neon_vst1<mode>): Likewise.
6927 (neon_vst1_lane<mode>): Likewise.
6928 (neon_vld2<mode>): Likewise.
6929 (neon_vld2_lane<mode>): Likewise.
6930 (neon_vld2_dup<mode>): Likewise.
6931 (neon_vst2<mode>): Likewise.
6932 (neon_vst2_lane<mode>): Likewise.
6933 (neon_vld3<mode>): Likewise.
6934 (neon_vld3qa<mode>): Likewise.
6935 (neon_vld3qb<mode>): Likewise.
6936 (neon_vld3_lane<mode>): Likewise.
6937 (neon_vld3_dup<mode>): Likewise.
6938 (neon_vst3<mode>): Likewise.
6939 (neon_vst3qa<mode>): Likewise.
6940 (neon_vst3qb<mode>): Likewise.
6941 (neon_vst3_lane<mode>): Likewise.
6942 (neon_vld4<mode>): Likewise.
6943 (neon_vld4qa<mode>): Likewise.
6944 (neon_vld4qb<mode>): Likewise.
6945 (neon_vld4_lane<mode>): Likewise.
6946 (neon_vld4_dup<mode>): Likewise.
6947 (neon_vst4<mode>): Likewise.
6948 (neon_vst4qa<mode>): Likewise.
6949 (neon_vst4qb<mode>): Likewise.
6950 (neon_vst4_lane<mode>): Likewise.
6951 (neon_vec_unpack<US>_lo_<mode>): Likewise.
6952 (neon_vec_unpack<US>_hi_<mode>): Likewise.
6953 (neon_vec_<US>mult_lo_<mode>): Likewise.
6954 (neon_vec_<US>mult_hi_<mode>): Likewise.
6955 (neon_vec_<US>shiftl_<mode>): Likewise.
6956 (neon_unpack<US>_<mode>): Likewise.
6957 (neon_vec_<US>mult_<mode>): Likewise.
6958 (vec_pack_trunc_<mode>): Likewise.
6959 (neon_vec_pack_trunk_<mode>): Likewise.
6960 (neon_vabd<mode>_2): Likewise.
6961 (neon_vabd<mode>_3): Likewise.
6962 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
6963 (thumb2_movsi_vfp): Likewise.
6964 (movdi_vfp): Likewise.
6965 (movdi_vfp_cortexa8): Likewise.
6966 (movhf_vfp_neon): Likewise.
6967 (movhf_vfp): Likewiwse.
6968 (movsf_vfp): Likewiwse.
6969 (thumb2_movsf_vfp): Likewiwse.
6970 (movdf_vfp): Likewise.
6971 (thumb2_movdf_vfp): Likewise.
6972 (movsfcc_vfp): Likewise.
6973 (thumb2_movsfcc_vfp): Likewise.
6974 (movdfcc_vfp): Likewise.
6975 (thumb2_movdfcc_vfp): Likewise.
6976 * config/arm/arm.c (cortexa7_older_only): Update for attribute change.
6977 * config/arm/arm1020e.md (v10_c2v): Update for attribute change.
6978 (v10_v2c): Likewise.
6979 * config/arm/cortex-a15-neon.md (cortex_a15_neon_int_1): Update for
6980 attribute change.
6981 (cortex_a15_neon_int_2): Likewise.
6982 (cortex_a15_neon_int_3): Likewise.
6983 (cortex_a15_neon_int_4): Likewise.
6984 (cortex_a15_neon_int_5): Likewise.
6985 (cortex_a15_neon_vqneg_vqabs): Likewise.
6986 (cortex_a15_neon_vmov): Likewise.
6987 (cortex_a15_neon_vaba): Likewise.
6988 (cortex_a15_neon_vaba_qqq): Likewise.
6989 (cortex_a15_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
6990 (cortex_a15_neon_mul_qqq_8_16_32_ddd_32): Likewise.
6991 (cortex_a15_neon_mul_qdd_64_32_long_qqd_16_ddd_32_\
6992 scalar_64_32_long_scalar): Likewise.
6993 (cortex_a15_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
6994 (cortex_a15_neon_mla_qqq_8_16): Likewise.
6995 (cortex_a15_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
6996 lotype_qdd_64_32_long): Likewise.
6997 (cortex_a15_neon_mla_qqq_32_qqd_32_scalar): Likewise.
6998 (cortex_a15_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
6999 (cortex_a15_neon_mul_qqd_32_scalar): Likewise.
7000 (cortex_a15_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
7001 (cortex_a15_neon_shift_1): Likewise.
7002 (cortex_a15_neon_shift_2): Likewise.
7003 (cortex_a15_neon_shift_3): Likewise.
7004 (cortex_a15_neon_vshl_ddd): Likewise.
7005 (cortex_a15_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
7006 (cortex_a15_neon_vsra_vrsra): Likewise.
7007 (cortex_a15_neon_fp_vadd_ddd_vabs_dd): Likewise.
7008 (cortex_a15_neon_fp_vadd_qqq_vabs_qq): Likewise.
7009 (cortex_a15_neon_fp_vmul_ddd): Likewise.
7010 (cortex_a15_neon_fp_vmul_qqd): Likewise.
7011 (cortex_a15_neon_fp_vmla_ddd): Likewise.
7012 (cortex_a15_neon_fp_vmla_qqq): Likewise.
7013 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
7014 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
7015 (cortex_a15_neon_fp_vrecps_vrsqrts_ddd): Likewise.
7016 (cortex_a15_neon_fp_vrecps_vrsqrts_qqq): Likewise.
7017 (cortex_a15_neon_bp_simple): Likewise.
7018 (cortex_a15_neon_bp_2cycle): Likewise.
7019 (cortex_a15_neon_bp_3cycle): Likewise.
7020 (cortex_a15_neon_vld1_1_2_regs): Likewise.
7021 (cortex_a15_neon_vld1_3_4_regs): Likewise.
7022 (cortex_a15_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
7023 (cortex_a15_neon_vld2_4_regs): Likewise.
7024 (cortex_a15_neon_vld3_vld4): Likewise.
7025 (cortex_a15_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
7026 (cortex_a15_neon_vst1_3_4_regs): Likewise.
7027 (cortex_a15_neon_vst2_4_regs_vst3_vst4): Likewise.
7028 (cortex_a15_neon_vst3_vst4): Likewise.
7029 (cortex_a15_neon_vld1_vld2_lane): Likewise.
7030 (cortex_a15_neon_vld3_vld4_lane" 10
7031 (cortex_a15_neon_vst1_vst2_lane): Likewise.
7032 (cortex_a15_neon_vst3_vst4_lane): Likewise.
7033 (cortex_a15_neon_vld3_vld4_all_lanes): Likewise.
7034 (cortex_a15_neon_ldm_2): Likewise.0
7035 (cortex_a15_neon_stm_2): Likewise.
7036 (cortex_a15_neon_mcr): Likewise.
7037 (cortex_a15_neon_mcr_2_mcrr): Likewise.
7038 (cortex_a15_neon_mrc): Likewise.
7039 (cortex_a15_neon_mrrc): Likewise.
7040 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
7041 change.
7042 (cortex_a15_alu_shift): Likewise.
7043 (cortex_a15_alu_shift_reg): Likewise.
7044 (cortex_a15_mult32): Likewise.
7045 (cortex_a15_mult64): Likewise.
7046 (cortex_a15_block): Likewise.
7047 (cortex_a15_branch): Likewise.
7048 (cortex_a15_load1): Likewise.
7049 (cortex_a15_load3): Likewise.
7050 (cortex_a15_store1): Likewise.
7051 (cortex_a15_store3): Likewise.
7052 (cortex_a15_call): Likewise.
f43245d1 7053 * config/arm/cortex-a5.md (cortex_a5_r2f): Update for attribute change.
003bb7f3
JG
7054 (cortex_a5_f2r): Likewise.
7055 * config/arm/cortex-a53.md (cortex_a53_r2f): Update for attribute
7056 change.
7057 (cortex_a53_f2r): Likewise.
7058 * config/arm/cortex-a7.md
7059 (cortex_a7_branch): Update for attribute change.
7060 (cortex_a7_call): Likewise.
7061 (cortex_a7_alu_imm): Likewise.
7062 (cortex_a7_alu_reg): Likewise.
7063 (cortex_a7_alu_shift): Likewise.
7064 (cortex_a7_mul): Likewise.
7065 (cortex_a7_load1): Likewise.
7066 (cortex_a7_store1): Likewise.
7067 (cortex_a7_load2): Likewise.
7068 (cortex_a7_store2): Likewise.
7069 (cortex_a7_load3): Likewise.
7070 (cortex_a7_store3): Likewise.
7071 (cortex_a7_load4): Likewise.
7072 (cortex_a7_store4): Likewise.
7073 (cortex_a7_fpalu): Likewise.
7074 (cortex_a7_fconst): Likewise.
7075 (cortex_a7_fpmuls): Likewise.
7076 (cortex_a7_neon_mul): Likewise.
7077 (cortex_a7_fpmacs): Likewise.
7078 (cortex_a7_neon_mla: Likewise.
7079 (cortex_a7_fpmuld: Likewise.
7080 (cortex_a7_fpmacd: Likewise.
7081 (cortex_a7_fpfmad: Likewise.
7082 (cortex_a7_fdivs: Likewise.
7083 (cortex_a7_fdivd: Likewise.
7084 (cortex_a7_r2f: Likewise.
7085 (cortex_a7_f2r: Likewise.
7086 (cortex_a7_f_flags: Likewise.
7087 (cortex_a7_f_loads: Likewise.
7088 (cortex_a7_f_loadd: Likewise.
7089 (cortex_a7_f_stores: Likewise.
7090 (cortex_a7_f_stored: Likewise.
7091 (cortex_a7_neon): Likewise.
7092 * config/arm/cortex-a8-neon.md
7093 (cortex_a8_neon_mrc): Update for attribute change.
7094 (cortex_a8_neon_mrrc): Likewise.
7095 (cortex_a8_neon_int_1): Likewise.
7096 (cortex_a8_neon_int_2): Likewise.
7097 (cortex_a8_neon_int_3): Likewise.
7098 (cortex_a8_neon_int_4): Likewise.
7099 (cortex_a8_neon_int_5): Likewise.
7100 (cortex_a8_neon_vqneg_vqabs): Likewise.
7101 (cortex_a8_neon_vmov): Likewise.
7102 (cortex_a8_neon_vaba): Likewise.
7103 (cortex_a8_neon_vaba_qqq): Likewise.
7104 (cortex_a8_neon_vsma): Likewise.
7105 (cortex_a8_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
7106 (cortex_a8_neon_mul_qqq_8_16_32_ddd_32): Likewise.
f43245d1
UB
7107 (cortex_a8_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_\
7108 long_scalar): Likewise.
003bb7f3
JG
7109 (cortex_a8_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
7110 (cortex_a8_neon_mla_qqq_8_16): Likewise.
7111 (cortex_a8_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
7112 long_scalar_qdd_64_32_long): Likewise.
7113 (cortex_a8_neon_mla_qqq_32_qqd_32_scalar): Likewise.
7114 (cortex_a8_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
7115 (cortex_a8_neon_mul_qqd_32_scalar): Likewise.
7116 (cortex_a8_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
7117 (cortex_a8_neon_shift_1): Likewise.
7118 (cortex_a8_neon_shift_2): Likewise.
7119 (cortex_a8_neon_shift_3): Likewise.
7120 (cortex_a8_neon_vshl_ddd): Likewise.
7121 (cortex_a8_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
7122 (cortex_a8_neon_vsra_vrsra): Likewise.
7123 (cortex_a8_neon_fp_vadd_ddd_vabs_dd): Likewise.
7124 (cortex_a8_neon_fp_vadd_qqq_vabs_qq): Likewise.
7125 (cortex_a8_neon_fp_vsum): Likewise.
7126 (cortex_a8_neon_fp_vmul_ddd): Likewise.
7127 (cortex_a8_neon_fp_vmul_qqd): Likewise.
7128 (cortex_a8_neon_fp_vmla_ddd): Likewise.
7129 (cortex_a8_neon_fp_vmla_qqq): Likewise.
7130 (cortex_a8_neon_fp_vmla_ddd_scalar): Likewise.
7131 (cortex_a8_neon_fp_vmla_qqq_scalar): Likewise.
7132 (cortex_a8_neon_fp_vrecps_vrsqrts_ddd): Likewise.
7133 (cortex_a8_neon_fp_vrecps_vrsqrts_qqq): Likewise.
7134 (cortex_a8_neon_bp_simple): Likewise.
7135 (cortex_a8_neon_bp_2cycle): Likewise.
7136 (cortex_a8_neon_bp_3cycle): Likewise.
7137 (cortex_a8_neon_ldr): Likewise.
7138 (cortex_a8_neon_str): Likewise.
7139 (cortex_a8_neon_vld1_1_2_regs): Likewise.
7140 (cortex_a8_neon_vld1_3_4_regs): Likewise.
7141 (cortex_a8_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
7142 (cortex_a8_neon_vld2_4_regs): Likewise.
7143 (cortex_a8_neon_vld3_vld4): Likewise.
7144 (cortex_a8_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
7145 (cortex_a8_neon_vst1_3_4_regs): Likewise.
7146 (cortex_a8_neon_vst2_4_regs_vst3_vst4): Likewise.
7147 (cortex_a8_neon_vst3_vst4): Likewise.
7148 (cortex_a8_neon_vld1_vld2_lane): Likewise.
7149 (cortex_a8_neon_vld3_vld4_lane): Likewise.
7150 (cortex_a8_neon_vst1_vst2_lane): Likewise.
7151 (cortex_a8_neon_vst3_vst4_lane): Likewise.
7152 (cortex_a8_neon_vld3_vld4_all_lanes): Likewise.
7153 (cortex_a8_neon_mcr): Likewise.
7154 (cortex_a8_neon_mcr_2_mcrr): Likewise.
f43245d1 7155 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
003bb7f3
JG
7156 * config/arm/cortex-a9-neon.md (ca9_neon_mrc): Update for attribute
7157 change.
7158 (ca9_neon_mrrc): Likewise.
7159 (cortex_a9_neon_int_1): Likewise.
7160 (cortex_a9_neon_int_2): Likewise.
7161 (cortex_a9_neon_int_3): Likewise.
7162 (cortex_a9_neon_int_4): Likewise.
7163 (cortex_a9_neon_int_5): Likewise.
7164 (cortex_a9_neon_vqneg_vqabs): Likewise.
7165 (cortex_a9_neon_vmov): Likewise.
7166 (cortex_a9_neon_vaba): Likewise.
7167 (cortex_a9_neon_vaba_qqq): Likewise.
7168 (cortex_a9_neon_vsma): Likewise.
7169 (cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
7170 (cortex_a9_neon_mul_qqq_8_16_32_ddd_32): Likewise.
f43245d1
UB
7171 (cortex_a9_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_\
7172 long_scalar): Likewise.
003bb7f3
JG
7173 (cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
7174 (cortex_a9_neon_mla_qqq_8_16): Likewise.
7175 (cortex_a9_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
7176 long_scalar_qdd_64_32_long): Likewise.
7177 (cortex_a9_neon_mla_qqq_32_qqd_32_scalar): Likewise.
7178 (cortex_a9_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
7179 (cortex_a9_neon_mul_qqd_32_scalar): Likewise.
7180 (cortex_a9_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
7181 (cortex_a9_neon_shift_1): Likewise.
7182 (cortex_a9_neon_shift_2): Likewise.
7183 (cortex_a9_neon_shift_3): Likewise.
7184 (cortex_a9_neon_vshl_ddd): Likewise.
7185 (cortex_a9_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
7186 (cortex_a9_neon_vsra_vrsra): Likewise.
7187 (cortex_a9_neon_fp_vadd_ddd_vabs_dd): Likewise.
7188 (cortex_a9_neon_fp_vadd_qqq_vabs_qq): Likewise.
7189 (cortex_a9_neon_fp_vsum): Likewise.
7190 (cortex_a9_neon_fp_vmul_ddd): Likewise.
7191 (cortex_a9_neon_fp_vmul_qqd): Likewise.
7192 (cortex_a9_neon_fp_vmla_ddd): Likewise.
7193 (cortex_a9_neon_fp_vmla_qqq): Likewise.
7194 (cortex_a9_neon_fp_vmla_ddd_scalar): Likewise.
7195 (cortex_a9_neon_fp_vmla_qqq_scalar): Likewise.
7196 (cortex_a9_neon_fp_vrecps_vrsqrts_ddd): Likewise.
7197 (cortex_a9_neon_fp_vrecps_vrsqrts_qqq): Likewise.
7198 (cortex_a9_neon_bp_simple): Likewise.
7199 (cortex_a9_neon_bp_2cycle): Likewise.
7200 (cortex_a9_neon_bp_3cycle): Likewise.
7201 (cortex_a9_neon_ldr): Likewise.
7202 (cortex_a9_neon_str): Likewise.
7203 (cortex_a9_neon_vld1_1_2_regs): Likewise.
7204 (cortex_a9_neon_vld1_3_4_regs): Likewise.
7205 (cortex_a9_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
7206 (cortex_a9_neon_vld2_4_regs): Likewise.
7207 (cortex_a9_neon_vld3_vld4): Likewise.
7208 (cortex_a9_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
7209 (cortex_a9_neon_vst1_3_4_regs): Likewise.
7210 (cortex_a9_neon_vst2_4_regs_vst3_vst4): Likewise.
7211 (cortex_a9_neon_vst3_vst4): Likewise.
7212 (cortex_a9_neon_vld1_vld2_lane): Likewise.
7213 (cortex_a9_neon_vld3_vld4_lane): Likewise.
7214 (cortex_a9_neon_vst1_vst2_lane): Likewise.
7215 (cortex_a9_neon_vst3_vst4_lane): Likewise.
7216 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
7217 (cortex_a9_neon_mcr): Likewise.
7218 (cortex_a9_neon_mcr_2_mcrr): Likewise.
7219 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
7220 (cortex_a9_fps): Likewise.
7221 * config/arm/cortex-m4-fpu.md (cortex_m4_vmov_2): Update for attribute
7222 change.
7223 (cortex_m4_fmuls): Likewise.
7224 * config/arm/cortex-r4f.md (cortex_r4_mcr): Update for attribute
7225 change.
7226 (cortex_r4_mrc): Likewise.
7227 * config/arm/iterators.md: Update comment referring to neon_type.
f43245d1 7228 * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Update for attribute change.
003bb7f3 7229 (iwmmxt_movsi_insn): Likewise.
f43245d1
UB
7230 * config/arm/marvell-pj4.md (pj4_vfp_to_core): Update for
7231 attribute change.
003bb7f3
JG
7232 (pj4_core_to_vfp): Likewise.
7233 * config/arm/neon-schedgen.ml (emit_insn_reservations): Update for
7234 attribute change.
7235 * config/arm/vfp11.md (vfp_fload): Update for attribute change.
7236 (vfp_fstore): Likewise.
7237 * doc/md.texi: Change references to neon_type to refer to type.
7238
fbe0dc78
DS
72392013-09-04 Dodji Seketeli <dodji@redhat.com>
7240
7241 * tree.h (DECL_BUILT_IN): Fix typo in comment.
7242
c167bc5b
DE
72432013-09-04 David Edelsohn <dje.gcc@gmail.com>
7244
7245 * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Only emit
7246 lglobl if not weak.
7247
035cb59f
ER
72482013-09-04 Easwaran Raman <eraman@google.com>
7249
7250 PR middle-end/57370
7251 * tree-ssa-reassoc.c (get_stmt_uid_with_default): New function,
7252 (build_and_add_sum): Use it.
7253 (appears_later_in_bb): Simplify code.
7254
71191083
TJ
72552013-09-04 Teresa Johnson <tejohnson@google.com>
7256
7257 * dumpfile.c (dump_finish): Don't close stderr/stdout.
7258
0c488213
JG
72592013-09-04 James Greenhalgh <james.greenhalgh@arm.com>
7260
7261 * config/aarch64/arm_neon.h (vaddvq_<su>64): Fix return types.
7262
61a74079
JH
72632013-09-04 Jan Hubicka <jh@suse.cz>
7264
7265 * Makefile.in (ipa-devirt.o): Add dependency on diagnostic.h
7266 * ipa-devirt.c: Include diganostic.h
7267 (odr_type_d): Add types and types_set.
7268 (hash_type_name): Work for types with vtables during LTO.
7269 (odr_hasher::remove): Fix comment; destroy types_set.
7270 (add_type_duplicate): New function,
7271 (get_odr_type): Use it.
7272 (dump_type_inheritance_graph): Dump type duplicates.
7273 * ipa.c (symtab_remove_unreachable_nodes): Build type inheritance
7274 graph.
7275 * tree.c (types_same_for_odr): Give exact answers on types with
7276 virtual tables.
7277
24ba8195
DS
72782013-09-04 Dodji Seketeli <dodji@redhat.com>
7279
7280 * tree.h (DECL_BUILT_IN, DECL_IS_BUILTIN): Add more comments
7a5911d3 7281 explaining their differences.
24ba8195 7282
0a04869e
SKS
72832013-09-04 Sandeep Kumar Singh<Sandeep.Singh2@kpitcummins.com>
7284
7285 * config/rx/rx.h: Add option -mcpu for target variants RX100 and RX200.
7286
3b18bc42
JL
72872013-09-03 Jeff Law <law@redhat.com>
7288
7289 * tree-ssa-threadedge.c (thread_across_edge): Record entire path
7290 when not threading through a joiner block. Pass joiner/no joiner
7291 state to register_jump_thread.
7292 * tree-ssa-threadupdate.c (register_jump_thread): Get joiner/no joiner
7293 state from argument rather than implying on path length.
7294 Dump the entire jump thread path into debugging dump.
7295 * tree-flow.h (register_jump_thread): Update prototype.
7296
ae84e151
XDL
72972013-08-29 Xinliang David Li <davidxl@google.com>
7298
7299 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
7300 Remove a trivial gcc_assert.
7301
c716e67f
XDL
73022013-08-29 Xinliang David Li <davidxl@google.com>
7303
7304 * tree-vect-slp.c (destroy_bb_vec_info): Data ref cleanup.
7305 * tree-vect-loop.c (destroy_bb_vec_info): Ditto.
7306 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
7307 Delay base decl alignment adjustment.
7308 * tree-vectorizer.c (vect_destroy_datarefs): New function.
7309 * tree-vectorizer.h: New data structure.
7310 (set_dr_misalignment): New function.
7311 (dr_misalignment): Ditto.
7312 * tree-vect-stmts.c (vectorizable_store): Ensure alignment.
7313 (vectorizable_load): Ditto.
7314 (ensure_base_align): New function.
7315 (vectorize_loops): Add dbg_cnt support.
7316 (execute_vect_slp): Ditto.
7317 * dbgcnt.def: New debug counter.
7318 * Makefile: New dependency.
7319
db8800bc
MI
73202013-09-03 Meador Inge <meadori@codesourcery.com>
7321
7322 Revert:
7323
7324 2013-08-30 Meador Inge <meadori@codesourcery.com>
7325
7326 * tree-vrp.c (check_array_ref): Bail out on zero-length arrays.
7327
0d9b4f5c
DE
73282013-09-03 David Edelsohn <dje.gcc@gmail.com>
7329
7330 * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Emit lglobl for
7331 function descriptor.
7332
29e810b9
RB
73332013-09-03 Richard Biener <rguenther@suse.de>
7334
7335 * tree-affine.c (add_elt_to_tree): Fix association issue,
7336 avoid useless converts and make sure to always return a
7337 properly typed result.
7338
dbfc2894
RB
73392013-09-03 Richard Biener <rguenther@suse.de>
7340
7341 PR middle-end/57656
7342 * fold-const.c (negate_expr_p): Fix division case.
7343 (negate_expr): Likewise.
7344
fa3bf4ce
RB
73452013-09-03 Richard Biener <rguenther@suse.de>
7346
7347 PR lto/58285
7348 * tree-streamer-out.c: Include tm.h.
7349 * Makefile.in (tree-streamer-out.o): Depend on $(TM_H).
7350
a64bbb3f
JH
73512013-09-03 Jan Hubicka <jh@suse.cz>
7352
7353 * tree-profile.c (tree_profiling): Cleanup CFG when done.
7354
93ed07e2
AM
73552013-09-03 Alan Modra <amodra@gmail.com>
7356
7357 * config.gcc (powerpc*-*-linux*): Add support for little-endian
7358 multilibs to big-endian target and vice versa.
7359 * config/rs6000/t-linux64: Use := assignment on all vars.
7360 (MULTILIB_EXTRA_OPTS): Remove fPIC.
7361 (MULTILIB_OSDIRNAMES): Specify using mapping from multilib_options.
7362 * config/rs6000/t-linux64le: New file.
7363 * config/rs6000/t-linux64bele: New file.
7364 * config/rs6000/t-linux64lebe: New file.
7365
07d6cd64
JH
73662013-09-02 Jan Hubicka <jh@suse.cz>
7367
7368 * ipa-inline-transform.c (inline_transform): Do not
7369 optimize_inline_calls when not optimizing.
7370
8e4c9a10
JH
73712013-09-02 Jan Hubicka <jh@suse.cz>
7372
7373 * lto-symtab.c (lto_symtab_merge_symbols): Add comments; merge
7374 duplicated nodes for assembler names.
7375 * symtab.c (symtab_unregister_node): Do not attempt to unlink
7376 hard registers from assembler name hash.
7377
c91061e6
JH
73782013-09-02 Jan Hubicka <jh@suse.cz>
7379
7380 * ipa-split.c (execute_split_functions): Split externally visible
7381 functions called once.
7382
2fd0985c
MJ
73832013-09-02 Martin Jambor <mjambor@suse.cz>
7384
7385 PR ipa/58106
7386 * ipa-prop.c (ipa_edge_duplication_hook): Always put new rdesc to the
7387 linked list. When finding the correct duplicate, also consider also
7388 the caller in additon to its inlined_to node.
7389
91bd4114
JG
73902013-09-02 James Greenhalgh <james.greenhalgh@arm.com>
7391
7392 * config/aarch64/aarch64-simd-builtins.def
7393 (dup_lane_scalar): Remove.
7394 * config/aarch64/aarch64-simd.md
7395 (aarch64_simd_dup): Add 'w->w' alternative.
7396 (aarch64_dup_lane<mode>): Allow for VALL.
7397 (aarch64_dup_lane_scalar<mode>): Remove.
7398 (aarch64_dup_lane_<vswap_width_name><mode>): New.
7399 (aarch64_get_lane_signed<mode>): Add w->w altenative.
7400 (aarch64_get_lane_unsigned<mode>): Likewise.
7401 (aarch64_get_lane<mode>): Likewise.
7402 * config/aarch64/aarch64.c (aarch64_evpc_dup): New.
7403 (aarch64_expand_vec_perm_const_1): Use aarch64_evpc_dup.
7404 * config/aarch64/iterators.md (VSWAP_WIDTH): New.
7405 (VCON): Change container of V2SF.
7406 (vswap_width_name): Likewise.
7407 * config/aarch64/arm_neon.h
7408 (__aarch64_vdup_lane_any): New.
7409 (__aarch64_vdup<q>_lane<q>_<fpsu><8,16,32,64>): Likewise.
7410 (vdup<q>_n_<psuf><8,16,32,64>): Convert to C implementation.
7411 (vdup<q>_lane<q>_<fpsu><8,16,32,64>): Likewise.
7412
d617d2d8
EB
74132013-09-02 Eric Botcazou <ebotcazou@adacore.com>
7414
7415 PR middle-end/56382
7416 * expr.c (emit_move_complex): Do not move complex FP values as parts if
7417 the source or the destination is a single hard register.
7418
63fdb7be
RB
74192013-09-02 Richard Biener <rguenther@suse.de>
7420
7421 PR middle-end/57511
7422 * tree-scalar-evolution.c (instantiate_scev_name): Allow
7423 non-linear SCEVs.
7424
78de2333
RB
74252013-09-02 Richard Biener <rguenther@suse.de>
7426
7427 * tree-affine.c (add_elt_to_tree): Avoid converting all pointer
7428 arithmetic to sizetype.
7429
85ff4ec6
BC
74302013-09-02 Bin Cheng <bin.cheng@arm.com>
7431
7432 * tree-ssa-loop-ivopts.c (set_autoinc_for_original_candidates):
7433 Find auto-increment use both before and after candidate.
7434
576016fe
MP
74352013-09-02 Marek Polacek <polacek@redhat.com>
7436
7437 * Makefile.in (ubsan.o): Add $(TM_P_H) dependency.
7438
08f835dc
JH
74392013-09-01 Jan Hubicka <jh@suse.cz>
7440
7441 * Makefile.in: Add ipa-profile.o
7442 (ipa.o, ipa-devrit.o, ipa-inline-analysis.o): Adjust dependencies.
7443 * cgraph.c (struct cgraph_propagate_frequency_data,
7444 cgraph_propagate_frequency_1, cgraph_propagate_frequency): Move to
7445 ipa-profile.c; replace cgraph_ by ipa_ prefix.
7446 * cgraph.h (cgraph_propagate_frequency): Remove.
f43245d1
UB
7447 * ipa-inline-analysis.c: Include ipa-utils.h;
7448 drop duplicated cfgloop.h.
08f835dc
JH
7449 (inline_update_callee_summaries): Update.
7450 * ipa-profile.c: New file.
7451 * ipa-utils.h (ipa_propagate_frequency): Declare.
7452 * ipa.c: Do not include pointer-set.h, hash-table.h, lto-streamer.h,
f43245d1 7453 data-streamer.h, value-prof.h.
08f835dc
JH
7454 (symtab_remove_unreachable_nodes): Update profile.
7455 (struct histogram_entry, histogram, histogram_pool, histogram_hash,
7456 account_time_size, cmp_counts, dump_histogram,
7457 ipa_profile_generate_summary, ipa_profile_write_summary,
7458 ipa_profile_read_summary, ipa_profile, gate_ipa_profile,
7459 pass_data_ipa_profile, pass_ipa_profile, make_pass_ipa_profile):
f43245d1 7460 Move to ipa-profile.c.
08f835dc 7461
cec8583c
JDA
74622013-09-01 John David Anglin <danglin@gcc.gnu.org>
7463
7464 * config/pa/pa.md: Allow "const 0" operand 1 in "scc" insns.
7465
bbc9396b
JH
74662013-09-01 Jan Hubicka <jh@suse.cz>
7467
7468 * common.opt (fdevirtualize-speculatively): New function.
7469 * invoke.texi (fdevirtualize-speculatively): Document.
7470 * ipa-devirt.c: Include ipa-inline.h
7471 (likely_target_p): New function.
7472 (ipa_devirt): New function.
7473 (gate_ipa_devirt): New function.
7474 (pass_data_ipa_devirt): New static var.
7475 (pass_ipa_devirt): Likewise.
7476 (make_pass_ipa_devirt): New function.
7477 * opts.c (default_options): Add OPT_fdevirtualize_speculatively.
7478 (common_handle_option): Disable devirtualization when
7479 value range profiling is available.
7480 * passes.def (pass_ipa_devirt): Add.
7481 * timever.def (TV_IPA_DEVIRT): New timevar.
f43245d1 7482 * tree-pass.h (make_pass_ipa_devirt):
bbc9396b 7483
0cea211e
IS
74842013-09-01 Iain Sandoe <iain@codesourcery.com>
7485
7486 * config/darwin.h (LINK_COMMAND_SPEC_A): Revise sanitizer specs to
7487 include sanitize(undefined).
7488
5e351e96
DN
74892013-08-31 Diego Novillo <dnovillo@google.com>
7490
7491 * Makefile.in (TREE_CORE_H): Define.
7492 (TREE_H): Use.
7493 (GTFILES): Add tree-core.h.
7494 * builtins.c (built_in_class_names): Use BUILT_IN_LAST to
7495 size the array.
7496 * tree-core.h: New file.
7497 Move all data structures, enum, typedefs, global
7498 declarations and constants from ...
7499 * tree.h: ... here.
7500
63bf9a90
JH
75012013-08-31 Jan Hubicka <jh@suse.cz>
7502
7503 * bulitins.c (expand_builtin): Do not early exit for gcov
7504 instrumented functions.
7505
5c0abd6a
MP
75062013-08-31 Marek Polacek <polacek@redhat.com>
7507
7508 * ubsan.c: Include tm_p.h.
7509
4843f032
JH
75102013-08-31 Jan Hubicka <jh@suse.cz>
7511
8356c89c
JH
7512 * gimple-streamer-in.c (input_gimple_stmt): Silence parameter unused
7513 warning.
7514
4843f032
JH
7515 * cgraph.c (cgraph_get_body): Update call of lto_input_function_body.
7516 * gimple-streamer-in.c (input_gimple_stmt): Move sanity check to ...
5e581212 7517 * tree-cfg.c (verify_gimple_label): ... here.
4843f032
JH
7518 * ipa-utils.c: Include lto-streamer.h, ipa-inline.h
7519 (ipa_merge_profiles): New function.
7520 * lto-streamer-in.c (lto_read_body): Take node instead of fn_decl.
7521 (lto_input_function_body): Likewise.
5e581212
JH
7522 * ipa-utils.h (ipa_merge_profiles): Declare.
7523 * lto-streamer.h (lto_input_function_body): Update prototype.
7524 (emit_label_in_global_context_p): Remove.
7525 * lto-symtab.c: Include ipa-utils.h
7526 (lto_cgraph_replace_node): Use ipa_merge_profiles.
4843f032 7527
57292ce9
JH
75282013-08-31 Jan Hubicka <jh@suse.cz>
7529
7530 * cgraph.c (cgraph_speculative_call_info): Fix ref lookup
7531
b9cbfeeb
JH
75322013-08-31 Jan Hubicka <jh@suse.cz>
7533
7534 * basic-block.h (apply_scale): Make scale parmeter gcov_type.
7535
41dedebd
UB
75362013-08-31 Uros Bizjak <ubizjak@gmail.com>
7537
7538 * config/alpha/alpha.c (alpha_emit_conditional_move): Update
7539 "cmp" RTX before signed_comparison_operator check to account
7540 for "code" changes.
7541
06d65050
JH
75422013-08-30 Jan Hubicka <jh@suse.cz>
7543
41dedebd 7544 * ipa-prop.c (ipa_set_jf_known_type): Check that we add only records.
06d65050
JH
7545 (detect_type_change_1): Rename to ...
7546 (detect_type_change): ... this one; early return on non-polymorphic
7547 types.
41dedebd 7548 (detect_type_change_ssa): Add comp_type parameter; update
06d65050
JH
7549 use of detect_type_change.
7550 (compute_complex_assign_jump_func): Add param_type parameter;
7551 update use of detect_type_change_ssa.
7552 (compute_complex_ancestor_jump_func): Likewise.
7553 (ipa_get_callee_param_type): New function.
7554 (ipa_compute_jump_functions_for_edge): Compute parameter type;
7555 update calls to the jump function computation functions.
7556
600b5b1d
TJ
75572013-08-30 Teresa Johnson <tejohnson@google.com>
7558 Steven Bosscher <steven@gcc.gnu.org>
7559
7560 * cfgrtl.c (fixup_new_cold_bb): New routine.
7561 (commit_edge_insertions): Invoke fixup_partitions.
7562 (find_partition_fixes): New routine.
7563 (fixup_partitions): Ditto.
7564 (verify_hot_cold_block_grouping): Update comments.
7565 (rtl_verify_edges): Invoke find_partition_fixes.
7566 (rtl_verify_bb_pointers): Update comments.
7567 (rtl_verify_bb_layout): Ditto.
7568 * basic-block.h (probably_never_executed_edge_p): Declare.
7569 (fixup_partitions): Ditto.
7570 * cfgcleanup.c (try_optimize_cfg): Invoke fixup_partitions.
7571 * bb-reorder.c (sanitize_hot_paths): New function.
7572 (find_rarely_executed_basic_blocks_and_crossing_edges): Invoke
7573 sanitize_hot_paths.
7574 * predict.c (probably_never_executed_edge_p): New routine.
7575 * cfg.c (check_bb_profile): Add partition insanity warnings.
7576
0a6ea5c9
MI
75772013-08-30 Meador Inge <meadori@codesourcery.com>
7578
7579 * tree-vrp.c (check_array_ref): Bail out on zero-length arrays.
7580
de5a5fa1
MP
75812013-08-30 Marek Polacek <polacek@redhat.com>
7582
7583 * Makefile.in (ubsan.o): Add.
7584 (c-family/c-ubsan.o): Add.
7585 (builtins.o): Add ubsan.h dependency.
7586 * ubsan.h: New file.
7587 * ubsan.c: New file.
7588 * common.opt: Add -fsanitize=undefined option.
7589 (flag_sanitize): Add variable.
7590 (fsanitize=): Add option. Add Driver.
7591 (fsanitize=thread): Remove option.
7592 (fsanitize=address): Likewise.
7593 (static-libubsan): New option.
7594 * doc/invoke.texi: Document the new flag and -static-libubsan.
7595 * sanitizer.def (DEF_SANITIZER_BUILTIN): Define.
7596 (BUILT_IN_UBSAN_HANDLE_BUILTIN_UNREACHABLE): Define.
7597 * builtin-attrs.def (ATTR_COLD): Define.
7598 (ATTR_COLD_NOTHROW_LEAF_LIST): Define.
7599 * builtins.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW,
7600 BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS): Define.
7601 * flag-types.h (sanitize_code): New enum.
7602 * opts.c (common_handle_option): Parse command line arguments
7603 of -fsanitize=. Add -fsanitize=unreachable option.
7604 * varasm.c (get_variable_section): Adjust.
7605 (assemble_noswitch_variable): Likewise.
7606 (assemble_variable): Likewise.
7607 (output_constant_def_contents): Likewise.
7608 (categorize_decl_for_section): Likewise.
7609 (place_block_symbol): Likewise.
7610 (output_object_block): Likewise.
7611 * builtins.def: Likewise.
7612 * toplev.c (compile_file): Likewise.
7613 (process_options): Likewise.
7614 * cppbuiltin.c: Likewise.
7615 * tsan.c (tsan_pass): Likewise.
7616 (tsan_gate): Likewise.
7617 (tsan_gate_O0): Likewise.
7618 * cfgexpand.c (partition_stack_vars): Likewise.
7619 (expand_stack_vars): Likewise.
7620 (defer_stack_allocation): Likewise.
7621 (expand_used_vars): Likewise.
7622 * cfgcleanup.c (old_insns_match_p): Likewise.
7623 * asan.c (asan_finish_file): Likewise.
7624 (asan_instrument): Likewise.
7625 (gate_asan): Likewise.
7626 (initialize_sanitizer_builtins): Build BT_FN_VOID_PTR_PTR_PTR.
7627 (ATTR_COLD_NOTHROW_LEAF_LIST): Define.
7628 (asan_global_struct): Use pointer_sized_int_node instead
7629 calling build_nonstandard_integer_type.
7630 (initialize_sanitizer_builtins): Likewise.
7631 (asan_finish_file): Likewise.
7632 * gcc.c: Document %{%:function(args):X}.
7633 (static_spec_functions): Add sanitize.
7634 (handle_spec_function): Add retval_nonnull argument and if non-NULL,
7635 store funcval != NULL there.
7636 (do_spec_1): Adjust handle_spec_function caller.
7637 (handle_braces): Allow %:function(args) as condition.
7638 (sanitize_spec_function): New function.
7639 (ADD_STATIC_LIBUBSAN_LIBS): Define.
7640 (LIBUBSAN_SPEC): Likewise.
7641 (LIBUBSAN_EARLY_SPEC): Likewise.
7642 (SANITIZER_SPEC): Handle libubsan.
7643 (SANITIZER_EARLY_SPEC): Likewise.
7644 * config/darwin.h (LINK_COMMAND_SPEC_A): Use %:sanitize(address)
7645 instead of fsanitize=address.
7646 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Use %:sanitize(address)
7647 instead of fsanitize=address*.
7648 * builtins.c: Include ubsan.h.
7649 (fold_builtin_0): Instrument __builtin_unreachable.
7650 * config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Use flag_sanitize
7651 instead of flag_asan.
7652 * tree.h (enum tree_index): Add TI_POINTER_SIZED_TYPE.
7653 (pointer_sized_int_node): Define.
41dedebd 7654 * tree.c (build_common_tree_nodes): Initialize pointer_sized_int_node.
de5a5fa1 7655
f07f30cf
MS
76562013-08-30 Mike Stump <mikestump@comcast.net>
7657
7658 * doc/install.texi (Prerequisites): Note regression in Tcl 8.6
7659 with RE patterns.
7660
8a41354f
JH
76612013-08-29 Jan Hubicka <jh@suse.cz>
7662
7663 * cgraph.c (cgraph_function_body_availability): Handle weakref
7664 correctly.
7665 * passes.def: Remove pass_fixup_cfg.
7666 * ipa-inline.c (ipa_inline): When not optimizing, do not inline;
7667 track when we need to remove functions.
7668 (gate_ipa_inline): Execute inlining always; add comment why.
7669 (pass_data_ipa_inline): Remove TODO_remove_functions.
7670 * ipa-inline-analysis.c (inline_generate_summary): When not optimizing
7671 do not produce summaries.
7672 * symtab.c (change_decl_assembler_name): Handle renaming of weakrefs.
7673 (symtab_nonoverwritable_alias): Assert we are not called on weakref.
7674 * varpool.c (cgraph_variable_initializer_availability): Fix weakrefs,
7675 constant pool and vtable.
7676
dc8d7a0f
TB
76772013-08-30 Tejas Belagod <tejas.belagod@arm.com>
7678
41dedebd
UB
7679 * config/aarch64/arm_neon.h (__AARCH64_UINT64_C, __AARCH64_INT64_C):
7680 New arm_neon.h's internal macros to specify 64-bit constants.
7681 Avoid using stdint.h's macros.
dc8d7a0f 7682
ac7eacd2
JR
76832013-08-30 Joern Rennecke <joern.rennecke@embecosm.com>
7684
7685 * recog.c (verify_changes): Verify that changes[i].old is non-zero
7686 before applying REG_P.
7687
8b29fd4e
JJ
76882013-08-30 Jakub Jelinek <jakub@redhat.com>
7689
7690 PR tree-optimization/58277
7691 * tree-ssa-strlen.c (strlen_enter_block): If do_invalidate gave up
7692 after seeing too many stmts with vdef in between dombb and current
7693 bb, invalidate everything.
7694
26d75703
RB
76952013-08-30 Richard Biener <rguenther@suse.de>
7696
7697 * fold-const.c (fold_single_bit_test): Fix overflow test.
7698
f7e088e7
EB
76992013-08-30 Eric Botcazou <ebotcazou@adacore.com>
7700
7701 * function.c (assign_parm_setup_reg): For a parameter passed by pointer
7702 and which can live in a register, always retrieve the value on entry.
7703 * var-tracking.c (add_stores): Treat the copy on entry for a parameter
7704 passed by invisible reference specially.
7705 (emit_notes_in_bb) <MO_VAL_USE>: Emit notes before the instruction.
7706 (vt_add_function_parameter): Correctly deal with a parameter passed by
7707 invisible reference.
7708
77092013-08-30 Jan Hubicka <jh@suse.cz>
47500756
JH
7710
7711 * tree.c (set_call_expr_flags): Fix handling of TM_PURE.
7712
6e8dad05
RB
77132013-08-30 Richard Biener <rguenther@suse.de>
7714
7715 PR tree-optimization/58228
7716 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Do not
7717 allow invariant loads in nested loop vectorization.
7718
062ef2c8
RB
77192013-08-30 Richard Biener <rguenther@suse.de>
7720
7721 PR tree-optimization/58223
7722 * tree-loop-distribution.c (has_anti_dependence): Rename to ...
7723 (has_anti_or_output_dependence): ... this and adjust to also
7724 look for output dependences.
7725 (mark_nodes_having_upstream_mem_writes): Adjust.
7726 (rdg_flag_uses): Likewise.
7727
7a764c60
RB
77282013-08-30 Richard Biener <rguenther@suse.de>
7729
7730 PR tree-optimization/58010
7731 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
7732 assert that we have a loop-closed PHI.
7733
82e9d642
JH
77342013-08-29 Jan Hubicka <jh@suse.cz>
7735
7736 * lto-symtab.c (lto_cgraph_replace_node): Free decl_in_state.
7737 * cgraph.c (cgraph_release_function_body): Free decl_in_state.
7738 * lto-section-in.c (lto_free_function_in_decl_state): New function.
7739 (lto_free_function_in_decl_state_for_node): New function.
7740
9cc1fb4b
XDL
77412013-08-29 Xinliang David Li <davidxl@google.com>
7742
41dedebd 7743 * loop-unroll.c (report_unroll_peel): Minor message change.
9cc1fb4b
XDL
7744 * tree-vect-loop-manip.c (vect_do_peeling_for_alignment):
7745 Emit alignment peeling message with default -fopt-info.
7746 (vect_loop_versioning): Emit loop version info message.
41dedebd 7747 * tree-vectorizer.c (vectorize_loops): Minor message change.
9cc1fb4b
XDL
7748 (execute_vect_slp): Ditto.
7749
440a5082
EB
77502013-08-29 Eric Botcazou <ebotcazou@adacore.com>
7751
7752 * cgraphclones.c (cgraph_create_virtual_clone): Compute the DECL_NAME
7753 of the clone from the DECL_NAME of the original function.
7754
3fa3690d
OE
77552013-08-29 Oleg Endo <olegendo@gcc.gnu.org>
7756
7757 * passes.c (register_pass): Add overload.
7758 * tree-pass.h (register_pass): Forward declare it. Add comment.
7759
0170f33c
JH
77602013-08-29 Jan Hubicka <jh@suse.cz>
7761
41dedebd
UB
7762 * lto-streamer-out.c (hash_tree): Stream DECL_FINAL_P,
7763 DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P and TYPE_FINAL_P.
7764 * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Stream
7765 DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
0170f33c
JH
7766 (unpack_ts_type_common_value_fields): Stream TYPE_FINAL_P.
7767 * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields):
41dedebd 7768 Add DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
0170f33c
JH
7769 (pack_ts_type_common_value_fields): Add TYPE_FINAL_P.
7770
103ff0d6
TJ
77712013-08-29 Teresa Johnson <tejohnson@google.com>
7772
7773 * dumpfile.c (dump_loc): Output column number.
7774 * dumpfile.h (OPTGROUP_OTHER): Add and enable under OPTGROUP_ALL.
7775 * doc/invoke.texi: Document optall -fopt-info flag.
7776 * profile.c (read_profile_edge_counts): Use new dump framework.
7777 (compute_branch_probabilities): Ditto.
7778 * passes.c (pass_manager::register_one_dump_file): Use OPTGROUP_OTHER
7779 when pass not in any opt group.
7780 * pass_manager.h (pass_manager::get_pass_profile): New method.
7781 * value-prof.c (check_counter): Use new dump framework.
7782 (check_ic_target): Ditto.
7783 * coverage.c (get_coverage_counts): Ditto.
7784 (coverage_init): Setup new dump framework.
7785
301bbc16
RB
77862013-08-29 Richard Biener <rguenther@suse.de>
7787
7788 PR tree-optimization/58246
7789 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Properly
7790 handle the dominance check inside a basic-block.
7791
1b275000
RB
77922013-08-29 Richard Biener <rguenther@suse.de>
7793
7794 PR middle-end/57287
7795 * tree-ssa-copy.c (may_propagate_copy): Allow propagating
7796 of default defs that appear in abnormal PHI nodes.
7797
6b1184ba
RB
77982013-08-29 Richard Biener <rguenther@suse.de>
7799
7800 PR tree-optimization/57685
7801 * tree-vrp.c (register_edge_assert_for_1): Recurse only for
7802 single-use operands to avoid exponential complexity.
7803
1b08b734
DC
78042013-08-28 Dehao Chen <dehao@google.com>
7805
7806 * ipa-inline.c (edge_badness): Fix integer underflow.
7807
48a3fa69
UB
78082013-08-28 Uros Bizjak <ubizjak@gmail.com>
7809
7810 * gtm-builtins.def (_ITM_free): Declare leaf.
7811
215f73e6
JJ
78122013-08-28 Jakub Jelinek <jakub@redhat.com>
7813
7814 PR target/58067
7815 * config/i386/i386.md (*tls_global_dynamic_64_largepic): New insn.
7816 (*tls_local_dynamic_base_64_largepic): Likewise.
7817 (tls_global_dynamic_64_<mode>, tls_local_dynamic_base_64_<mode>):
7818 Remove predicate from call operand.
7819 * config/i386/i386.c (ix86_tls_get_addr): For -mcmodel=large -fpic
7820 return sum of pic_offset_table_rtx and UNSPEC_PLTOFF of the symbol.
7821
34554d1a
JL
78222013-08-28 Jeff Law <law@redhat.com>
7823
7824 * tree-ssa-threadedge.c (thread_around_empty_block): Remove
7825 checks for the number of predecessors and successors allowed.
7826 * tree-ssa-threadupdate.c (mark_threaded_blocks): Ignore requests
7827 which require copying a joiner block if there is a request which
7828 is a subpath that requires no joiner block copying.
7829
c01c111b
JH
78302013-08-28 Jan Hubicka <jh@suse.cz>
7831
7832 * lto-streamer-out.c (DFS_write_tree_body): Drop
7833 BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX and BINFO_VPTR_INDEX.
7834 (hash_tree): Do not hash DECL_DEFER_OUTPUT, BINFO_INHERITANCE_CHAIN,
7835 BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, DECL_IN_TEXT_SECTION.
7836 * tree-streamer-in.c (unpack_ts_decl_common_value_fields):
7837 Do not read DECL_ERROR_ISSUED.
7838 (unpack_ts_decl_with_vis_value_fields): Do not read
7839 DECL_DEFER_OUTPUT.
48a3fa69
UB
7840 (lto_input_ts_binfo_tree_pointers): Do not read
7841 BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX
c01c111b
JH
7842 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Do not
7843 write DECL_ERROR_ISSUED..
7844 (pack_ts_decl_with_vis_value_fields): Do not write
7845 DECL_DEFER_OUTPUT.
7846 (write_ts_binfo_tree_pointers): Do not read BINFO_INHERITANCE_CHAIN,
48a3fa69 7847 BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX.
c01c111b
JH
7848 * print-tree.c (print_node): Do not print DECL_ERROR_ISSUED.
7849 * tree.h (tree_decl_common): Update comment.
7850 (DECL_ERROR_ISSUED): Remove.
7851
4b128ece
JJ
78522013-08-28 Jakub Jelinek <jakub@redhat.com>
7853
7854 PR middle-end/58257
7855 * omp-low.c (copy_var_decl): Copy over TREE_NO_WARNING flag.
7856
12211b99 78572013-08-28 Jan Hubicka <jh@suse.cz>
9e57846a
JH
7858
7859 * builtins.def (free): Declare leaf.
7860
8dce4dbc
DM
78612013-08-27 David Malcolm <dmalcolm@redhat.com>
7862
7863 * gdbhooks.py: New.
7864 * configure.ac (gdbinit.in): Add import of gcc/gdbhooks.py.
7865 * configure: Regenerate.
7866
b8f6e610
MJ
78672013-08-27 Martin Jambor <mjambor@suse.cz>
7868
7869 * ipa-prop.h (ipa_pass_through_data): New field type_preserved.
7870 (ipa_ancestor_jf_data): Likewise.
7871 (ipa_get_jf_pass_through_agg_preserved): Fix comment typo.
7872 (ipa_get_jf_pass_through_type_preserved): New function.
7873 (ipa_get_jf_ancestor_agg_preserved): Fix comment typo.
7874 (ipa_get_jf_ancestor_type_preserved): New function.
12211b99 7875 * ipa-cp.c (ipa_get_jf_pass_through_result): Honor type_preserved flag.
b8f6e610
MJ
7876 (ipa_get_jf_ancestor_result): Likewise.
7877 (propagate_vals_accross_pass_through): Use
7878 ipa_get_jf_pass_through_result to do all the value mappings.
7879 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Dump the
7880 type_preserved flag.
7881 (ipa_set_jf_cst_copy): New function.
7882 (ipa_set_jf_simple_pass_through): Set the type_preserved flag.
7883 (ipa_set_jf_arith_pass_through): Likewise.
7884 (ipa_set_ancestor_jf): Likewise.
7885 (compute_complex_assign_jump_func): Set type_preserved instead of
7886 punting.
7887 (ipa_compute_jump_functions_for_edge): Likewise.
7888 (combine_known_type_and_ancestor_jfs): Honor type_preserved.
7889 (update_jump_functions_after_inlining): Update type_preserved.
12211b99 7890 Explicitely create jump functions when combining one with pass_through.
b8f6e610
MJ
7891 (ipa_write_jump_function): Stream the type_preserved flags.
7892 (ipa_read_jump_function): Likewise.
7893
74bf76ed
JJ
78942013-08-27 Jakub Jelinek <jakub@redhat.com>
7895 Aldy Hernandez <aldyh@redhat.com>
7896
7897 * Makefile.in (omp-low.o): Depend on $(TARGET_H).
7898 * cfgloop.h (struct loop): Add safelen, force_vect, simduid.
7899 * function.h (struct function): Add has_force_vect_loops and
7900 has_simduid_loops.
12211b99 7901 * gimple-pretty-print.c (dump_gimple_omp_for): Handle GF_OMP_FOR_KIND*.
74bf76ed
JJ
7902 * gimple.c (gimple_build_omp_critical): Add KIND argument and
7903 handle it.
7904 * gimple.def: Update CLAUSES comments.
7905 * gimple.h (enum gf_mask): Add GF_OMP_FOR_KIND_{FOR,SIMD}.
7906 (gimple_build_omp_for): Add argument to prototype.
7907 (gimple_omp_for_kind): New.
7908 (gimple_omp_for_set_kind): New.
7909 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_LINEAR to
7910 GOVD_DATA_SHARE_CLASS.
7911 (enum omp_region_type): Add ORT_SIMD.
7912 (gimple_add_tmp_var): Handle ORT_SIMD.
7913 (gimplify_var_or_parm_decl): Same.
7914 (is_gimple_stmt): Same.
7915 (omp_firstprivatize_variable): Same.
7916 (omp_add_variable): Only use splay_tree_insert if lookup failed.
7917 (omp_notice_variable): Handle ORT_SIMD.
12211b99 7918 (omp_is_private): Add SIMD argument and handle it as well as ORT_SIMD.
74bf76ed
JJ
7919 (omp_check_private): Handle ORT_SIMD.
7920 (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_LINEAR and
7921 OMP_CLAUSE_SAFELEN.
7922 (gimplify_adjust_omp_clauses_1): Handle GOVD_LINEAR.
7923 Handle OMP_CLAUSE_LASTPRIVATE.
7924 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_LINEAR and
7925 OMP_CLAUSE_SAFELEN.
7926 (gimplify_omp_for): Handle OMP_SIMD and OMP_CLAUSE_LINEAR.
7927 (gimplify_expr): Handle OMP_SIMD.
7928 * internal-fn.c (expand_GOMP_SIMD_LANE): New.
7929 (expand_GOMP_SIMD_VF): New.
7930 (expand_GOMP_SIMD_LAST_LANE): New.
7931 * internal-fn.def (GOMP_SIMD_LANE): New.
7932 (GOMP_SIMD_VF): New.
7933 (GOMP_SIMD_LAST_LANE): New.
7934 * omp-low.c: Include target.h.
7935 (extract_omp_for_data): Handle OMP_SIMD, OMP_CLAUSE_LINEAR,
7936 OMP_CLAUSE_SAFELEN.
7937 (check_omp_nesting_restrictions): Same.
7938 (omp_max_vf): New.
7939 (lower_rec_simd_input_clauses): New.
7940 (lower_rec_input_clauses): Handle OMP_SIMD, GF_OMP_FOR_KIND_SIMD,
7941 OMP_CLAUSE_LINEAR.
7942 (lower_lastprivate_clauses): Handle OMP_CLAUSE_LINEAR,
7943 GF_OMP_FOR_KIND_SIMD, OMP_SIMD.
7944 (expand_omp_build_assign): New.
7945 (expand_omp_for_init_counts): New.
7946 (expand_omp_for_init_vars): New.
7947 (extract_omp_for_update_vars): New.
7948 (expand_omp_for_generic): Use expand_omp_for_{init,update}_vars
7949 and rewrite accordingly.
7950 (expand_omp_simd): New.
7951 (expand_omp_for): Use expand_omp_simd.
7952 (lower_omp_for_lastprivate): Unshare vinit when appropriate.
7953 (lower_omp_for): Do not lower the body.
7954 * tree-data-ref (get_references_in_stmt): Allow IFN_GOMP_SIMD_LANE
7955 in their own loops.
7956 * tree-flow.h (find_omp_clause): Remove prototype.
12211b99
UB
7957 * tree-if-conv.c (main_tree_if_conversion): Run if doing if conversion,
7958 forcing vectorization of the loop, or if flag_tree_vectorize.
74bf76ed
JJ
7959 (gate_tree_if_conversion): Similarly.
7960 * tree-inline.c (remap_gimple_stmt): Pass for kind argument to
7961 gimple_build_omp_for.
7962 (copy_cfg_body): set has_force_vect_loops and has_simduid_loops.
7963 * tree-parloops (create_parallel_loop): Pass kind argument to
7964 gimple_build_omp_for.
7965 * tree-pretty-print.c (dump_omp_clause): Add cases for
7966 OMP_CLAUSE_UNIFORM, OMP_CLAUSE_LINEAR, OMP_CLAUSE_SAFELEN,
7967 OMP_CLAUSE__SIMDUID_.
7968 (dump_generic_node): Handle OMP_SIMD.
7969 * tree-ssa-ccp.c (likely_value): Handle IFN_GOMP_SIMD*.
7970 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Do not
7971 unroll OMP_SIMD loops here.
12211b99 7972 * tree-ssa-loop.c (gate_tree_vectorize): Run if has_force_vect_loops.
74bf76ed 7973 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Handle
12211b99 7974 loop->safelen.
74bf76ed
JJ
7975 (vect_analyze_data_refs): Handle simd loops.
7976 * tree-vect-loop.c (vectorizable_live_operation): Handle
7977 IFN_GOMP_SIMD*.
12211b99 7978 * tree-vect-stmts.c (vectorizable_call): Handle IFN_GOMP_SIMD_LANE.
74bf76ed
JJ
7979 (vectorizable_store): Handle STMT_VINFO_SIMD_LANE_ACCESS_P.
7980 (vectorizable_load): Same.
12211b99 7981 * tree-vectorizer.c: Include hash-table.h and tree-ssa-propagate.h.
74bf76ed
JJ
7982 (struct simduid_to_vf): New.
7983 (simduid_to_vf::hash): New.
7984 (simduid_to-vf::equal): New.
7985 (struct simd_array_to_simduid): New.
7986 (simd_array_to_simduid::hash): New.
7987 (simd_array_to_simduid::equal): New.
7988 (adjust_simduid_builtins): New.
7989 (struct note_simd_array_uses_struct): New.
7990 (note_simd_array_uses_cb): New.
7991 (note_simd_array_uses): New.
7992 (vectorize_loops): Handle simd hints and adjust simd builtins
7993 accordingly.
7994 * tree-vectorizer.h (struct _stmt_vec_info): Add
7995 simd_lane_access_p field.
7996 (STMT_VINFO_SIMD_LANE_ACCESS_P): New macro.
7997 * tree.c (omp_clause_num_ops): Add entries for OMP_CLAUSE_LINEAR,
7998 OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_UNIFORM.
7999 (omp_clause_code_name): Same.
8000 (walk_tree_1): Handle OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN,
8001 OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_LINEAR.
8002 * tree.def (OMP_SIMD): New entry.
12211b99
UB
8003 * tree.h (enum omp_clause_code): Add entries for OMP_CLAUSE_LINEAR,
8004 OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_.
74bf76ed
JJ
8005 (OMP_CLAUSE_DECL): Adjust range for new clauses.
8006 (OMP_CLAUSE_LINEAR_NO_COPYIN): New.
8007 (OMP_CLAUSE_LINEAR_NO_COPYOUT): New.
8008 (OMP_CLAUSE_LINEAR_STEP): New.
8009 (OMP_CLAUSE_SAFELEN_EXPR): New.
8010 (OMP_CLAUSE__SIMDUID__DECL): New.
8011 (find_omp_clause): New prototype.
8012
d0cf4e84
L
80132013-08-27 H.J. Lu <hongjiu.lu@intel.com>
8014
8015 * config/i386/driver-i386.c (host_detect_local_cpu): Update
8016 Haswell processor detection.
8017
992592ec
CW
80182013-08-27 Christian Widmer <shadow@umbrox.de>
8019
8020 PR target/57927
8021 * config/i386/driver-i386.c (host_detect_local_cpu): Add detection
8022 of Ivy Bridge and Haswell processors. Assume core-avx2 for unknown
8023 AVX2 capable processors.
8024
9116eb22
TB
80252013-08-27 Tejas Belagod <tejas.belagod@arm.com>
8026
8027 * config/aarch64/arm_neon.h: Replace all inline asm implementations
8028 of vget_low_* with implementations in terms of other intrinsics.
8029
1c5abb53
MG
80302013-08-27 Marc Glisse <marc.glisse@inria.fr>
8031
8032 PR middle-end/57219
8033 * doc/extend.texi (__builtin_isinf_sign): Restrict the return
8034 values to -1, 0 and 1.
8035
2e100703
VP
80362013-08-27 Vidya Praveen <vidyapraveen@arm.com>
8037
8038 * config/aarch64/aarch64.md (unspec): Add UNSPEC_SISD_SSHL,
8039 UNSPEC_SISD_USHL, UNSPEC_USHL_2S, UNSPEC_SSHL_2S, UNSPEC_SISD_NEG.
8040 (<optab><mode>3_insn): Remove.
8041 (aarch64_ashl_sisd_or_int_<mode>3): New Pattern.
8042 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
8043 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
8044 (define_split for aarch64_lshr_sisd_or_int_di3): Likewise.
8045 (define_split for aarch64_lshr_sisd_or_int_si3): Likewise.
8046 (define_split for aarch64_ashr_sisd_or_int_di3): Likewise.
8047 (define_split for aarch64_ashr_sisd_or_int_si3): Likewise.
8048 (aarch64_sisd_ushl, aarch64_sisd_sshl): Likewise.
8049 (aarch64_ushl_2s, aarch64_sshl_2s, aarch64_sisd_neg_qi): Likewise.
8050 (ror<mode>3_insn): Likewise.
8051 * config/aarch64/predicates.md (aarch64_simd_register): New.
8052
4ded8276
RB
80532013-08-27 Richard Biener <rguenther@suse.de>
8054
8055 PR tree-optimization/57521
8056 * tree-if-conv.c (if_convertible_bb_p): Verify that at least
8057 one edge is non-critical.
8058 (find_phi_replacement_condition): Make sure to use a non-critical
8059 edge. Cleanup and remove old bug workarounds.
8060 (bb_postdominates_preds): Remove.
8061 (if_convertible_loop_p_1): Do not compute post-dominators.
8062 (combine_blocks): Do not free post-dominators.
8063 (main_tree_if_conversion): Likewise.
8064 (pass_data_if_conversion): Add TODO_verify_ssa.
8065
5aa11061
DD
80662013-08-27 DJ Delorie <dj@redhat.com>
8067
8068 * config/i386/djgpp.h (ASM_DECLARE_FUNCTION_NAME): New.
8069
fd91cfe3
YZ
80702013-08-27 Yufeng Zhang <yufeng.zhang@arm.com>
8071
8072 * function.c (assign_parm_find_data_types): Set passed_mode and
8073 nominal_mode to the TYPE_MODE of nominal_type for the built
8074 pointer type in case of the struct-pass-by-reference.
8075
907555ce
JR
80762013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
8077
8078 * config/avr/avr-stdint.h (INT16_TYPE): Change default to "int".
8079 (UINT16_TYPE): Change default to "unsigned int".
8080
67518c93
JR
8081 * config/avr/avr.opt (mfract-convert-truncate): New option.
8082 * config/avr/avr.c (avr_out_fract): Unless TARGET_FRACT_CONV_TRUNC
8083 is set, round negative fractional integers according to n1169
8084 when converting to integer types.
8085
d6d989fc
JH
80862013-08-26 Jan Hubicka <jh@suse.cz>
8087
8088 * cgraph.c (cgraph_propagate_frequency): Do not assume that virtual
8089 methods can not be called indirectly when their address is not taken.
8090
2aa3da06
JH
80912013-08-26 Jan Hubicka <jh@suse.cz>
8092
12211b99
UB
8093 * gimple-fold.c (gimple_get_virt_method_for_binfo): Use
8094 ctor_for_folding.
2aa3da06 8095
0987ffe7
JH
80962013-08-26 Jan Hubicka <jh@suse.cz>
8097
8098 * ipa.c (comdat_can_be_unshared_p_1): C++ constructors and destructors
8099 can be unshared.
8100
befe8647
JR
81012013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
8102
8103 * reload.c (find_valid_class): Allow classes that do not include
8104 FIRST_PSEUDO_REGISTER - 1.
8105
a21e735e
JH
81062013-08-26 Jan Hubicka <jh@suse.cz>
8107
8108 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix formatting;
8109 fix edge count/frequency when speculation failed; fix type check
8110 for the direct call.
8111
e067bd43
JH
81122013-08-26 Jan Hubicka <jh@suse.cz>
8113
8114 * ipa-prop.c (ipa_print_node_params): Do not ICE during WPA.
8115
e8aec975
JH
81162013-08-26 Jan Hubicka <jh@suse.cz>
8117
8118 * ipa-inline-transform.c (inline_transform): Be ready for basic block
8119 to be changed by edge redirection.
8120
d0b66480
JH
81212013-08-26 Jan Hubicka <jh@suse.cz>
8122
12211b99
UB
8123 * cgraph.c (cgraph_speculative_call_info): Fix parameter order and
8124 formating; add sanity check.
d0b66480
JH
8125 (cgraph_resolve_speculation): Add FIXME about scaling profiles.
8126 (cgraph_redirect_edge_call_stmt_to_callee): Fix ICE in debug dump.
8127 * ipa-inline.c (heap_edge_removal_hook): Reset node growth cache.
8128 (resolve_noninline_speculation): Update callee keys, too.
8129
0f9aaac7
JH
81302013-08-26 Jan Hubicka <jh@suse.cz>
8131
8132 * tree.h (tree_decl_with_vis): Add cxx_constructor, cxx_destructor.
8133 (DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P): New macros.
8134
4b37444e
JR
81352013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
8136
8137 * config/i386/i386.c (x86_64_elf_select_section): Put ATTRIBUTE_UNUSED
8138 into proper place.
8139
5339fc0c
UB
81402013-08-26 Uros Bizjak <ubizjak@gmail.com>
8141
8142 * config/i386/i386.c (ix86_debug_options): Remove prototype.
8143 (x86_64_elf_select_section): Ditto.
8144 (ix86_handle_tm_regparm_attribute): Remove ATTRIBUTE_UNUSED on used
8145 arguments.
8146 (ix86_pass_by_reference): Ditto.
5339fc0c
UB
8147 (output_set_got): Ditto.
8148 (ix86_unary_operator_ok): Ditto.
8149 (ix86_expand_builtin): Ditto.
8150
d5c3d3ef
JH
81512013-08-23 Jan Hubicka <jh@suse.cz>
8152
5339fc0c 8153 * cgraph.c (cgraph_turn_edge_to_speculative): Fix debug output.
d5c3d3ef 8154
5b1e7435
JH
81552013-08-23 Jan Hubicka <jh@suse.cz>
8156
8157 * tree.h (TYPE_FINAL_P, DECL_FINAL_P): New macros.
8158 (tree_decl_with_vis): Add FINAL field.
8159
ead69dac
JL
81602013-08-23 Jeff Law <law@redhat.com>
8161
8162 * tree-ssa-pre.c (do_regular_insertion): Include the expression in
8163 the debugging dump when the expression is fully redundant.
8164
025311c4
GDR
81652013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
8166
8167 * diagnostic.c (diagnostic_set_caret_max_width): Use pp_buffer.
8168 * gimple-pretty-print.c (gimple_dump_bb_buff): Likewise.
8169 * pretty-print.c (pp_formatted_text_data): Likewise.
8170 (pp_write_text_to_stream): Likewise.
8171 (pp_write_text_as_dot_label_to_stream): Likewise.
8172 (pp_append_r): Likewise.
8173 (pp_format): Likewise.
8174 (pp_flush): Likewise.
8175 (pp_clear_output_area): Likewise.
8176 (pp_append_text): Likewise.
8177 (pp_formatted_text): Likewise.
8178 (pp_remaining_character_count_for_line): Likewise.
8179 (pp_newline): Likewise.
8180 (pp_character): Likewise.
8181 (output_buffer::~output_buffer): Define.
8182 (pretty_printer::~pretty_printer): Destruct output buffer.
8183 * pretty-print.h (output_buffer::~output_buffer): Declare.
8184 (pretty_printer::~pretty_printer): Declare virtual.
8185
0cadbfaa
MG
81862013-08-24 Marc Glisse <marc.glisse@inria.fr>
8187
8188 PR other/57324
8189 * hwint.h (HOST_WIDE_INT_UC, HOST_WIDE_INT_1U, HOST_WIDE_INT_M1,
8190 HOST_WIDE_INT_M1U): New macros.
8191 * fold-const.c (sign_bit_p, build_range_check, fold_unary_loc,
8192 fold_binary_loc, fold_ternary_loc): Use the new macros. Use an
8193 unsigned -1 for lshift.
8194 * cse.c (cse_insn): Likewise.
8195 * double-int.c (rshift_double, lshift_double): Likewise.
8196 * builtins.c (fold_builtin_bitop): Likewise.
8197 * combine.c (force_to_mode): Likewise.
8198 * tree.c (integer_pow2p, tree_log2, tree_floor_log2): Likewise.
8199 * simplify-rtx.c (simplify_const_unary_operation,
8200 simplify_const_binary_operation): Likewise.
8201 * tree-stdarg.c (va_list_counter_bump, va_list_ptr_read,
8202 check_va_list_escapes): Likewise.
8203 * rtlanal.c (nonzero_bits1): Likewise.
8204 * expmed.c (expand_smod_pow2): Likewise.
8205 * tree-ssa-structalias.c (UNKNOWN_OFFSET): Use HOST_WIDE_INT_MIN.
8206
009e5353
JH
82072013-08-23 Jan Hubicka <jh@suse.cz>
8208
8209 * cgraph.c (cgraph_turn_edge_to_speculative): Mark target node
8210 as having address taken.
8211
c4be6568
JH
82122013-08-23 Jan Hubicka <jh@suse.cz>
8213
64cbf23d
JH
8214 * ipa-utils.h (method_class_type): Declare.
8215 * ipa-devirt.c (method_class_type): Export.
8216
c4be6568
JH
8217 * cgraphunit.c (analyze_functions): Do basic devirtualization;
8218 do not walk base classes of anonymous types.
8219
97aba8e9
KK
82202013-08-23 Kaz Kojima <kkojima@gcc.gnu.org>
8221
8222 PR rtl-optimization/58220
8223 PR regression/58221
8224 * final.c (reemit_insn_block_notes): Use NEXT_INSN to
8225 handle SEQUENCE insns properly.
8226
0fc80001
GDR
82272013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
8228
8229 * pretty-print.h (pp_newline_and_flush): Declare. Remove macro
8230 definition.
8231 (pp_newline_and_indent): Likewise.
8232 (pp_separate_with): Likewise.
8233 * pretty-print.c (pp_newline_and_flush): Define.
8234 (pp_newline_and_indent): Likewise.
8235 (pp_separate_with): Likewise.
8236
520a5868
JJ
82372013-08-23 Jakub Jelinek <jakub@redhat.com>
8238
8239 PR target/58218
8240 * config/i386/x86-64.h (TARGET_SECTION_TYPE_FLAGS): Define.
8241 * config/i386/i386.c (x86_64_elf_section_type_flags): New function.
8242
e500c62a
KY
82432013-08-23 Kirill Yukhin <kirill.yukhin@intel.com>
8244
f43245d1
UB
8245 * config/i386/predicates.md (ext_sse_reg_operand): New.
8246 * config/i386/i386.md (*movti_internal): Use
e500c62a
KY
8247 predicate to determine if EVEX is needed.
8248 (*movsi_internal): Ditto.
8249 (*movdf_internal): Ditto.
8250 (*movsf_internal): Ditto.
f43245d1 8251 * config/i386/mmx.md (*mov<mode>_internal): Ditto.
e500c62a 8252
6b00d7dd
JJ
82532013-08-23 Jakub Jelinek <jakub@redhat.com>
8254
8255 PR tree-optimization/58209
8256 * tree-tailcall.c (process_assignment): Handle POINTER_PLUS_EXPR.
8257 (find_tail_calls): Give up for pointer result types if m is non-NULL.
8258 (adjust_return_value_with_ops): For PLUS_EXPR and pointer result type
8259 emit POINTER_PLUS_EXPR.
8260 (create_tailcall_accumulator): For pointer result type accumulate in
8261 sizetype type.
8262
4f2a9f90
PC
82632013-08-22 Paolo Carlini <paolo.carlini@oracle.com>
8264
8265 * configure.ac: Add backslashes missing from the last change.
8266 * configure: Regenerate.
8267
7bf4274e
JH
82682013-08-22 Jan Hubicka <jh@susue.cz>
8269
4f2a9f90
PC
8270 * ipa.c (function_and_variable_visibility): First remember function
8271 was global and then make it local.
7bf4274e 8272
1bea243d
JB
82732013-08-22 Julian Brown <julian@codesourcery.com>
8274
8275 * configure.ac: Add aarch64 to list of arches which use "nop" in
8276 debug_line test.
8277 * configure: Regenerate.
8278
bcba7ecc
AK
82792013-08-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8280
8281 * config/s390/linux.h (TARGET_LIBC_HAS_FUNCTION): Define as
8282 gnu_libc_has_function.
8283 * config/s390/tpf.h: Likewise.
8284
4c495b0d
JH
82852013-08-22 Jan Hubicka <jh@susue.cz>
8286
8287 * timevar.c (validate_phases): Add cast.
8288
5e302bca
JH
82892013-08-22 Jan Hubicka <jh@susue.cz>
8290
8291 * timevar.c (validate_phases): Use size_t for memory.
8292 * timevar.h (struct timevar_time_def): Use size_t for ggc_mem.
8293
da6ca2b5
GDR
82942013-08-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
8295
8296 * pretty-print.h (output_buffer::output_buffer): Declare.
8297 (pretty_printer::pretty_printer): Likewise.
8298 (pp_construct): Remove.
8299 * pretty-print.c (output_buffer::output_buffer): Define.
8300 (pretty_printer::pretty_printer): Rename from pp_construct. Simplify.
8301 * gimple-pretty-print.c (print_gimple_stmt): Do not call pp_construct.
8302 (print_gimple_expr): Likewise.
8303 (print_gimple_seq): Likewise.
8304 (gimple_dump_bb): Likewise.
8305 * sched-vis.c (dump_value_slim): Likewise.
8306 (dump_insn_slim): Likewise.
8307 (dump_rtl_slim): Likewise.
8308 (str_pattern_slim): Likewise.
8309 * tree-mudflap.c (mf_varname_tree): Likewise.
8310 * graph.c (print_graph_cfg): Likewise.
8311 (start_graph_dump): Likewise.
8312 * tree-pretty-print.c (maybe_init_pretty_print): Likewise. Use
8313 placement-new.
8314 * diagnostic.c (diagnostic_initialize): Simplify early diagnostic
8315 pretty printer initialization.
8316 * coretypes.h (diagnostic_context): Remove superflous type alias
8317 declaration.
8318 (pretty_printer): Likewise. Declare directly as a class.
8319 (pretty_print_info): Remove declaration as class.
8320 * asan.c (asan_emit_stack_protection): Remove call to pp_construct
8321 and pp_clear_output_area.
8322 (asan_add_global): Likewise.
8323
0e1474e5
JH
83242013-08-22 Jan Hubicka <jh@suse.cz>
8325
8326 * cgraphunit.c (analyze_functions) Use update_type_inheritance_graph.
8327 * ipa-utils.h (update_type_inheritance_graph): Declare.
8328 (possible_polymorphic_call_target_p): Declare.
8329 (possible_polymorphic_call_target_p): New.
8330 * ipa-devirt.c: Update toplevel comments.
8331 (cached_polymorphic_call_targets): Move up.
8332 (odr_type_d): Move ID down.
8333 (polymorphic_type_binfo_p): Update comment.
8334 (odr_hasher::remove): Likewise;
8335 (get_odr_type): Set anonymous_namespace.
8336 (dump_odr_type): Dump it.
8337 (dump_type_inheritance_graph): Do not ICE when there are no ODR types.
8338 (maybe_record_node): Record node in cached_polymorphic_call_targets.
8339 (record_binfo): Add comment.
5339fc0c
UB
8340 (free_polymorphic_call_targets_hash): Do not ICE when cache is not
8341 built.
0e1474e5
JH
8342 (devirt_node_removal_hook): Do not iCE when cache is freed.
8343 (possible_polymorphic_call_target_p): New predicate.
8344 (update_type_inheritance_graph): New function.
8345
3f97cb0b
AI
83462013-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
8347 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
8348 Sergey Lega <sergey.s.lega@intel.com>
8349 Anna Tikhonova <anna.tikhonova@intel.com>
8350 Ilya Tocar <ilya.tocar@intel.com>
8351 Andrey Turetskiy <andrey.turetskiy@intel.com>
8352 Ilya Verbin <ilya.verbin@intel.com>
8353 Kirill Yukhin <kirill.yukhin@intel.com>
8354 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
8355
8356 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512F_SET): New.
8357 (OPTION_MASK_ISA_AVX512CD_SET): Ditto.
8358 (OPTION_MASK_ISA_AVX512PF_SET): Ditto.
8359 (OPTION_MASK_ISA_AVX512ER_SET): Ditto.
8360 (OPTION_MASK_ISA_AVX2_UNSET): Update.
8361 (OPTION_MASK_ISA_AVX512F_UNSET): New.
8362 (OPTION_MASK_ISA_AVX512CD_UNSET): Ditto.
8363 (OPTION_MASK_ISA_AVX512PF_UNSET): Ditto.
8364 (OPTION_MASK_ISA_AVX512ER_UNSET): Ditto.
8365 (ix86_handle_option): Handle OPT_mavx512f, OPT_mavx512cd,
8366 OPT_mavx512pf, OPT_mavx512er cases.
8367 * config/i386/constraints.md (v): New constraint.
8368 (Yi, Yj): Replace SSE_REGS with ALL_SSE_REGS.
8369 * config/i386/cpuid.h (bit_AVX512F, bit_AVX512PF, bit_AVX512ER)
8370 (bit_AVX512CD): New.
8371 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
8372 AVX512F, AVX512ER, AVX512PF, AVX512CD features.
8373 * config/i386/i386-c.c (ix86_target_macros_internal):
8374 Conditionally define __AVX512F__, __AVX512ER__, __AVX512CD__,
8375 __AVX512PF__.
8376 * config/i386/i386-modes.def (VECTOR_MODES (INT, 128))
8377 (VECTOR_MODES (FLOAT, 128), INT_MODE (XI, 64)): New modes.
8378 * config/i386/i386.c (regclass_map, dbx_register_map)
8379 (dbx64_register_map, svr4_dbx_register_map): Add new SSE registers.
8380 (gate_insert_vzeroupper): Disable vzeroupper for TARGET_AVX512F.
8381 (ix86_target_string): Define -mavx512f, -mavx512er, -mavx512cd,
8382 -mavx512pf options.
8383 (ix86_option_override_internal): Define PTA_AVX512F, PTA_AVX512ER,
8384 PTA_AVX512PF, PTA_AVX512CD. Handle -mavx512f, -mavx512er, -mavx512cd,
8385 -mavx512pf options. Fix formatting.
8386 (ix86_conditional_register_usage): Squash EXT_REX_SSE_REGs for 32-bit
8387 targets. Squash EVEX_SSE_REGS if AVX512F is disabled.
8388 (ix86_valid_target_attribute_inner_p): Handle -mavx512f, -mavx512er,
8389 -mavx512cd, -mavx512pf options.
8390 (standard_sse_constant_opcode): Add vpternlogd for 512-bit modes.
8391 (print_reg, ix86_print_operand): Handle 'g' to output 512-bit operands.
8392 (ix86_preferred_output_reload_class): Replace SSE_REGS with
8393 ALL_SSE_REGS.
8394 (ix86_hard_regno_mode_ok): Support 512-bit registers.
8395 (ix86_set_reg_reg_cost): Ditto.
8396 (x86_order_regs_for_local_alloc): Ditto.
8397 (MAX_VECT_LEN): Extend to 64-byte.
8398 (ix86_spill_class): Replace SSE_REGS with ALL_SSE_REGS.
8399 * config/i386/i386.h (TARGET_AVX512F, TARGET_AVX512PF)
8400 (TARGET_AVX512ER, TARGET_AVX512CD): New.
8401 (BIGGEST_ALIGNMENT): Extend to 512-bits.
8402 (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS): Add new registers.
8403 (CALL_USED_REGISTERS, REG_ALLOC_ORDER): Likewise.
8404 (VALID_AVX512F_SCALAR_MODE, VALID_AVX512F_REG_MODE): New.
8405 (SSE_REG_MODE_P): Support new modes.
8406 (FIRST_MMX_REG, FIRST_REX_INT_REG, FIRST_REX_SSE_REG): Add comments.
8407 (FIRST_EXT_REX_SSE_REG, LAST_EXT_REX_SSE_REG): New.
8408 (reg_class, REG_CLASS_NAMES): Add EVEX_SSE_REGS, ALL_SSE_REGS.
8409 (SSE_CLASS_P, MAYBE_SSE_CLASS_P): Replace SSE_REGS with ALL_SSE_REGS.
8410 (REG_CLASS_CONTENTS): Add new registers.
8411 (SSE_REGNO_P, SSE_REGNO, HARD_REGNO_RENAME_OK): Support new registers.
8412 (EXT_REX_SSE_REGNO_P): New.
8413 (HI_REGISTER_NAMES): Add new registers.
8414 * config/i386/i386.md: Define constants for new registers.
8415 (mode): Add new 512-bit modes.
8416 (prefix): Support evex prefix.
8417 (isa): Support avx512f, noavx512f, fma_avx512f.
8418 (ssemodesuffix): Add new 512-bit modes.
8419 (movxi): New.
8420 (*movxi_internal_avx512f): Ditto.
8421 (*movdi_internal): Replace constraint "x" with the new constraint "v".
8422 Support MODE_XI.
8423 (*movsi_internal): Likewise.
8424 (*movdf_internal): Likewise.
8425 (*movsf_internal): Likewise.
8426 (*fop_<mode>_comm_sse): Replace constraint "x" with new constraint "v".
8427 (<code><mode>3): Likewise.
5339fc0c
UB
8428 * config/i386/i386.opt (mavx512f, mavx512pf, mavx512er, mavx512cd):
8429 New.
3f97cb0b
AI
8430 * config/i386/mmx.md (*mov<mode>_internal): Replace constraint "x"
8431 with the new constraint "v".
8432 * config/i386/sse.md (*mov<mode>_internal): Support new registers and
8433 modes.
8434 (<sse>_loadu<ssemodesuffix><avxsizesuffix>): Replace constraint "x"
8435 with the new constraint "v".
8436 (<sse2>_loaddqu<avxsizesuffix>): Likewise.
8437 (<sse2>_storedqu<avxsizesuffix>): Likewise.
8438 (*<plusminus_insn><mode>3): Likewise.
8439 (<sse>_vm<plusminus_insn><mode>3): Likewise.
8440 (*mul<mode>3): Likewise.
8441 (<sse>_vmmul<mode>3): Likewise.
8442 (<sse>_div<mode>3): Likewise.
8443 (<sse>_vmdiv<mode>3): Likewise.
8444 (<sse>_sqrt<mode>2): Likewise.
8445 (<sse>_vmsqrt<mode>2): Likewise.
8446 (*<code><mode>3_finite): Likewise.
8447 (*<code><mode>3) <smaxmin>: Likewise.
8448 (<sse>_vm<code><mode>3): Likewise.
8449 (*<code><mode>3) <any_logic>: Likewise.
8450 (*fma_fmadd_<mode>): Likewise.
8451 (*fma_fmsub_<mode>): Likewise.
8452 (*fma_fnmadd_<mode>): Likewise.
8453 (*fma_fnmsub_<mode>): Likewise.
8454 (*fma_fmaddsub_<mode>): Likewise.
8455 (*fma_fmsubadd_<mode>): Likewise.
8456 (*fmai_fmadd_<mode>): Likewise.
8457 (*fmai_fmsub_<mode>): Likewise.
8458 (*fmai_fnmadd_<mode>): Likewise.
8459 (*fmai_fnmsub_<mode>): Likewise.
8460 (sse_cvtsi2ss): Likewise.
8461 (sse_cvtsi2ssq): Likewise.
8462 (sse_cvtss2si): Likewise.
8463 (sse_cvtss2si_2): Likewise.
8464 (sse_cvtss2siq): Likewise.
8465 (sse_cvtss2siq_2): Likewise.
8466 (sse_cvttss2si): Likewise.
8467 (sse_cvtss2siq_2): Likewise.
8468 (float<sseintvecmodelower><mode>2): Likewise.
8469 (sse2_cvtsd2si_2): Likewise.
8470 (sse2_cvtsd2siq_2): Likewise.
8471 (*<plusminus_insn><mode>3): Likewise.
8472 (*<sse2_avx2>_<plusminus_insn><mode>3): Likewise.
8473 (*<sse4_1_avx2>_mul<mode>3): Likewise.
8474 (ashr<mode>3): Likewise.
8475 (<shift_insn><mode>3): Likewise.
8476 (avx2_<code><mode>3): Likewise.
8477 (*avx2_<code><mode>3): Likewise.
8478 (*andnot<mode>3): Likewise.
8479 (*<code><mode>3) <any_logic>: Likewise.
8480 (abs<mode>2): Likewise.
8481 (avx2_permvar<mode>): Likewise.
8482 (avx2_perm<mode>_1): Likewise.
8483 (*avx_vpermilp<mode>): Likewise.
8484 (avx_vpermilvar<mode>3): Likewise.
8485 (avx2_ashrv<mode>): Likewise.
8486 (avx2_<shift_insn>v<mode>): Likewise.
8487 * doc/invoke.texi: Document -mavx512f, -mavx512pf, -mavx512er,
8488 -mavx512cd.
8489 * doc/rtl.texi: Document XImode.
8490
dd5e8423
JL
84912013-08-21 Jeff Law <law@redhat.com>
8492
b9ebee5d
JL
8493 * tree-flow.h (register_jump_thread): Pass vector of edges
8494 instead of each important edge.
8495 * tree-ssa-threadedge.c (thread_across_edge): Build the jump
8496 thread path into a vector and pass that to register_jump_thread.
8497 * tree-ssa-threadupdate.c (register_jump_thread): Conver the
8498 passed in edge vector to the current 3-edge form.
8499
dd5e8423
JL
8500 Revert:
8501 2013-08-20 Alexey Makhalov <makhaloff@gmail.com>
8502
9bb6628e 8503 * dce.c (fini_dce): Call df_analyze again just in case
dd5e8423
JL
8504 delete_unmarked_insns removed anything.
8505
445dc8df
JR
85062013-08-21 Joern Rennecke <joern.rennecke@embecosm.com>
8507
8508 * reload.h (struct reg_equivs): Rename to ..
8509 (struct reg_equivs_s): .. this.
8510
e0df53dd
ML
85112013-08-20 Martin Liska <marxin.liska@gmail.com>
8512
8513 * ipa.c (ipa_profile_read_summary): Fix buffer overflow.
8514
e7d1d3eb
RO
85152013-08-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8516
5339fc0c 8517 * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Don't nest comment.
e7d1d3eb 8518
5562e26e
JL
85192013-08-21 Jeff Law <law@redhat.com>
8520
8521 * tree-vrp.c (simplify_stmt_for_jump_threading): Try to
8522 simplify assignments too. If the RHS collapses to a singleton
8523 range, then return the value for the range.
8524
c7ecdec6
KY
85252013-08-21 Kirill Yukhin <kirill.yukhin@intel.com>
8526
7a5911d3
UB
8527 * config/i386/sse.md (V16): Rename to...
8528 (VMOVE): this.
8529 (mov<mode>): Update iterator name.
8530 (*mov<mode>_internal): Ditto.
8531 (push<mode>1): Ditto.
8532 (movmisalign<mode>): Ditto.
c7ecdec6 8533
bfa3b50a
JH
85342013-08-20 Jan Hubicka <jh@suse.cz>
8535
8536 PR bootstrap/58186
8537 * cgraph.c (cgraph_add_edge_to_call_site_hash): Overwrite hash
8538 entry for direct edges.
8539 (cgraph_turn_edge_to_speculative): Fix setting of can_throw_external.
8540
6cd4d135
DM
85412013-08-20 David Malcolm <dmalcolm@redhat.com>
8542
8543 Revert my last two changes, r201865 and r201864:
8544
8545 Revert r201865:
8546 2013-08-20 David Malcolm <dmalcolm@redhat.com>
8547
8548 Make opt_pass and gcc::pass_manager be GC-managed, so that pass
8549 instances can own GC refs.
8550
8551 * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h.
8552 * context.c (gcc::context::gt_ggc_mx): Traverse passes_.
8553 (gcc::context::gt_pch_nx): Likewise.
8554 (gcc::context::gt_pch_nx): Likewise.
8555 * ggc.h (gt_ggc_mx <T>): New.
8556 (gt_pch_nx_with_op <T>): New.
8557 (gt_pch_nx <T>): New.
8558 * passes.c (opt_pass::gt_ggc_mx): New.
8559 (opt_pass::gt_pch_nx): New.
8560 (opt_pass::gt_pch_nx_with_op): New.
8561 (pass_manager::gt_ggc_mx): New.
8562 (pass_manager::gt_pch_nx): New.
8563 (pass_manager::gt_pch_nx_with_op): New.
8564 (pass_manager::operator new): Use
8565 ggc_internal_cleared_alloc_stat rather than xcalloc.
8566 * pass_manager.h (class pass_manager): Add GTY((user)) marking.
8567 (pass_manager::gt_ggc_mx): New.
8568 (pass_manager::gt_pch_nx): New.
8569 (pass_manager::gt_pch_nx_with_op): New.
8570 * tree-pass.h (class opt_pass): Add GTY((user)) marking.
8571 (opt_pass::operator new): New.
8572 (opt_pass::gt_ggc_mx): New.
8573 (opt_pass::gt_pch_nx): New.
8574 (opt_pass::gt_pch_nx_with_op): New.
8575
8576 Revert r201864:
8577 2013-08-20 David Malcolm <dmalcolm@redhat.com>
8578
8579 * Makefile.in (GTFILES): Add context.h.
8580 * context.c (gcc::context::operator new): New.
8581 (gcc::context::gt_ggc_mx): New.
8582 (gcc::context::gt_pch_nx): New.
8583 (gcc::context::gt_pch_nx): New.
8584 * context.h (gcc::context): Add GTY((user)) marking.
8585 (gcc::context::operator new): New.
8586 (gcc::context::gt_ggc_mx): New.
8587 (gcc::context::gt_pch_nx): New.
8588 (gcc::context::gt_pch_nx): New.
8589 (g): Add GTY marking.
8590 (gt_ggc_mx (gcc::context *)): New.
8591 (gt_pch_nx (gcc::context *)): New.
8592 (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op,
8593 void *cookie)): New.
8594 * gengtype.c (open_base_files) <ifiles>: Add context.h.
8595
a046136a
AM
85962013-08-20 Alexey Makhalov <makhaloff@gmail.com>
8597
8598 * dce.c (fini_dce): Call df_analyze again just in case
8599 delete_unmarked_insns removed anything.
8600
67598720
TJ
86012013-08-20 Teresa Johnson <tejohnson@google.com>
8602
8603 PR rtl-optimizations/57451
8604 * final.c (reemit_insn_block_notes): Prevent lexical blocks
8605 from crossing split section boundaries.
8606
f8693faf
MGD
86072013-08-20 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
8608
8609 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Remove definition.
8610 * config/arm/t-linux-eabi (MULTILIB_OPTIONS): Document association
8611 with MULTLIB_DEFAULTS.
8612
7d0b9a9c
NC
86132013-08-20 Nick Clifton <nickc@redhat.com>
8614
8615 * target.def (narrow_volatile_bitfield): Note that the default
8616 value is false, not !TARGET_STRICT_ALIGN.
8617 * doc/tm.texi: Regenerate.
8618
8edb8dc8
PC
86192013-08-20 Pavel Chupin <pavel.v.chupin@intel.com>
8620
8621 Fix LIB_SPEC for systems without libpthread.
8622
8623 * config/gnu-user.h: Introduce GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC.
8624 * config/arm/linux-eabi.h: Use GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC
8625 for Android.
8626 * config/i386/linux-common.h: Likewise.
8627 * config/mips/linux-common.h: Likewise.
8628
12211b99 86292013-08-20 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
d71ff3fa
ZZ
8630
8631 * tree-ssa-ccp.c (get_default_value): Remove redundant condition
8632 checks.
8633
e42c64cb
DM
86342013-08-20 David Malcolm <dmalcolm@redhat.com>
8635
8636 Make opt_pass and gcc::pass_manager be GC-managed, so that pass
8637 instances can own GC refs.
8638
8639 * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h.
8640 * context.c (gcc::context::gt_ggc_mx): Traverse passes_.
8641 (gcc::context::gt_pch_nx): Likewise.
8642 (gcc::context::gt_pch_nx): Likewise.
8643 * ggc.h (gt_ggc_mx <T>): New.
8644 (gt_pch_nx_with_op <T>): New.
8645 (gt_pch_nx <T>): New.
8646 * passes.c (opt_pass::gt_ggc_mx): New.
8647 (opt_pass::gt_pch_nx): New.
8648 (opt_pass::gt_pch_nx_with_op): New.
8649 (pass_manager::gt_ggc_mx): New.
8650 (pass_manager::gt_pch_nx): New.
8651 (pass_manager::gt_pch_nx_with_op): New.
8652 (pass_manager::operator new): Use
8653 ggc_internal_cleared_alloc_stat rather than xcalloc.
8654 * pass_manager.h (class pass_manager): Add GTY((user)) marking.
8655 (pass_manager::gt_ggc_mx): New.
8656 (pass_manager::gt_pch_nx): New.
8657 (pass_manager::gt_pch_nx_with_op): New.
8658 * tree-pass.h (class opt_pass): Add GTY((user)) marking.
8659 (opt_pass::operator new): New.
8660 (opt_pass::gt_ggc_mx): New.
8661 (opt_pass::gt_pch_nx): New.
8662 (opt_pass::gt_pch_nx_with_op): New.
8663
910c02a0
DM
86642013-08-20 David Malcolm <dmalcolm@redhat.com>
8665
8666 * Makefile.in (GTFILES): Add context.h.
8667 * context.c (gcc::context::operator new): New.
8668 (gcc::context::gt_ggc_mx): New.
8669 (gcc::context::gt_pch_nx): New.
8670 (gcc::context::gt_pch_nx): New.
8671 * context.h (gcc::context): Add GTY((user)) marking.
8672 (gcc::context::operator new): New.
8673 (gcc::context::gt_ggc_mx): New.
8674 (gcc::context::gt_pch_nx): New.
8675 (gcc::context::gt_pch_nx): New.
8676 (g): Add GTY marking.
8677 (gt_ggc_mx (gcc::context *)): New.
8678 (gt_pch_nx (gcc::context *)): New.
8679 (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op,
8680 void *cookie)): New.
8681 * gengtype.c (open_base_files) <ifiles>: Add context.h.
8682
af4b4236
AM
86832013-08-20 Alan Modra <amodra@gmail.com>
8684
8685 PR target/57865
8686 * config/rs6000/rs6000.c (rs6000_emit_prologue): Correct ool_adjust.
8687 (rs6000_emit_epilogue): Likewise.
8688
12211b99 86892013-08-19 Dehao Chen <dehao@google.com>
0d633222
DC
8690
8691 * value-prof.c (gimple_ic): Fix the bug of adding EH edge.
8692
e2323f5b
PB
86932013-08-19 Peter Bergner <bergner@vnet.ibm.com>
8694 Jakub Jelinek <jakub@redhat.com>
8695
8696 * builtins.def (BUILT_IN_FABSD32): New DFP ABS builtin.
8697 (BUILT_IN_FABSD64): Likewise.
8698 (BUILT_IN_FABSD128): Likewise.
8699 * builtins.c (expand_builtin): Add support for new DFP ABS builtins.
8700 (fold_builtin_1): Likewise.
5339fc0c
UB
8701 * config/rs6000/dfp.md (*negtd2_fpr): Handle non-overlapping
8702 destination and source operands.
e2323f5b
PB
8703 (*abstd2_fpr): Likewise.
8704 (*nabstd2_fpr): Likewise.
8705
cfbf3ee8
RS
87062013-08-19 Richard Sandiford <rdsandiford@googlemail.com>
8707
8708 * config/mips/mips.c (mips_adjust_insn_length): Add checks for
8709 JUMP_P and INSN_P.
8710
d3136aeb
AH
87112013-08-19 Aldy Hernandez <aldyh@redhat.com>
8712
8713 * doc/invoke.texi (-fcilkplus): Clarify that implementation is
8714 incomplete.
8715
d33d9e47
AI
87162013-08-19 Alexander Ivchenko <alexander.ivchenko@intel.com>
8717
8718 * target.def (TARGET_LIBC_HAS_FUNCTION): New target hook.
8719 * builtins.c (default_libc_has_function): New.
8720 (gnu_libc_has_function): Ditto.
8721 (no_c99_libc_has_function): Ditto.
8722 (expand_builtin_cexpi): Using new target hook TARGET_LIBC_HAS_FUNCTION
8723 instead of TARGET_HAS_SINCOS and TARGET_C99_FUNCTIONS.
8724 (fold_builtin_sincos): Likewise.
8725 (fold_builtin_cexp): Likewise.
8726 * builtins.def (DEF_C94_BUILTIN): Likewise.
8727 (DEF_C99_BUILTIN): Likewise.
8728 (DEF_C99_C90RES_BUILTIN): Likewise.
8729 (DEF_C99_COMPL_BUILTIN): New define. Change all complex c99 builtin
8730 definitions to using this define.
8731 * config/darwin-protos.h (darwin_libc_has_function): New.
5339fc0c 8732 * config/darwin.c (darwin_libc_has_function): Ditto.
d33d9e47
AI
8733 * config/alpha/linux.h: Remove TARGET_C99_FUNCTIONS and
8734 TARGET_HAS_SINCOS. Redefine TARGET_LIBC_HAS_FUNCTION.
8735 * config/darwin.h: Ditto.
8736 * config/elfos.h: Ditto.
8737 * config/freebsd.h: Ditto.
8738 * config/i386/cygming.h: Ditto.
8739 * config/i386/djgpp.h: Ditto.
8740 * config/i386/i386-interix.h: Ditto.
8741 * config/microblaze/microblaze.h: Ditto.
8742 * config/mmix/mmix.h: Ditto.
8743 * config/gnu-user.h: Ditto.
8744 * config/ia64/hpux.h: Ditto.
8745 * config/pa/pa-hpux.h: Ditto.
8746 * config/pdp11/pdp11.h: Ditto.
8747 * config/picochip/picochip.h: Ditto.
8748 * config/linux.h: Ditto.
8749 * config/netbsd.h: Ditto.
8750 * config/openbsd.h: Ditto.
8751 * config/rs6000/aix43.h: Ditto.
8752 * config/rs6000/aix51.h: Ditto.
8753 * config/rs6000/aix52.h: Ditto.
8754 * config/rs6000/aix53.h: Ditto.
8755 * config/rs6000/aix61.h: Ditto.
8756 * config/rs6000/darwin.h: Ditto.
8757 * config/rs6000/linux.h: Ditto.
8758 * config/rs6000/linux64.h: Ditto.
8759 * config/s390/tpf.h: Ditto.
8760 * config/sol2-10.h: Ditto.
8761 * config/sol2.h: Ditto.
8762 * config/vms/vms.h: Ditto.
8763 * config/vxworks.h: Ditto.
8764 * config/linux-android.c (linux_android_libc_has_function):
8765 New linux-specific implementation of TARGET_LIBC_HAS_FUNCTION.
8766 * config/linux-protos.h (linux_android_libc_has_function):
8767 New declaration.
8768 * config/i386/i386.c (ix86_libc_has_function): New.
8769 * config/i386/i386-protos.h
8770 (ix86_libc_has_function): New declaration.
8771 * config/i386/i386.md
8772 ("isinfxf2"): Change condition for TARGET_LIBC_HAS_FUNCTION.
8773 ("isinf<mode>2): Likewise.
8774 * convert.c (convert_to_integer): Using new target hook
8775 TARGET_LIBC_HAS_FUNCTION istead of TARGET_HAS_SINCOS and
8776 TARGET_C99_FUNCTIONS.
8777 * fortran/f95-lang.c (gfc_init_builtin_functions): Ditto.
8778 * tree-ssa-math-opts.c (execute_cse_sincos): Ditto.
8779 * coretypes.h (function_class): New enum for different
8780 classes of functions.
8781 * defaults.h: Remove TARGET_C99_FUNCTIONS and TARGET_HAS_SINCOS.
8782 * doc/tm.texi.in (TARGET_C99_FUNCTIONS): Remove documentation.
8783 (TARGET_HAS_SINCOS): Likewise.
8784 (TARGET_LIBC_HAS_FUNCTION): New.
8785 * doc/tm.texi: Regenerated.
8786 * targhooks.h (default_libc_has_function): New declaration.
8787 (no_c99_libc_has_function): Ditto.
8788 (gnu_libc_has_function): Ditto.
8789 * system.h: Add the poisoning of TARGET_C99_FUNCTIONS
8790 and TARGET_HAS_SINCOS.
8791
eefe9a99
JH
87922013-08-18 Jan Hubicka <jh@suse.cz>
8793
8794 * Makeifle-in (ipa-devirt.o): New.
8795 (GTFILES): Add ipa-utils.h and ipa-devirt.c
8796 * cgraphunit.c (decide_is_symbol_needed): Do not care about virtuals.
8797 (analyze_functions): Look into possible targets of polymorphic call.
8798 * dumpfile.c (dump_files): Add type-inheritance dump.
8799 * dumpfile.h (TDI_inheritance): New.
8800 * ipa-devirt.c: New file.
8801 * ipa-utils.h (odr_type_d): Forward declare.
8802 (odr_type): New type.
8803 (build_type_inheritance_graph): Declare.
8804 (possible_polymorphic_call_targets): Declare and introduce inline
8805 variant when only edge is pased.
8806 (dump_possible_polymorphic_call_targets): Likewise.
8807 * timevar.def (TV_IPA_INHERITANCE, TV_IPA_VIRTUAL_CALL): New.
8808 * tree.c (type_in_anonymous_namespace_p): Break out from ...
8809 (types_same_for_odr): ... here.
8810 * tree.h (type_in_anonymous_namespace_p): Declare.
8811
29b89442
JJ
88122013-08-18 Jakub Jelinek <jakub@redhat.com>
8813
8814 PR tree-optimization/58006
8815 * tree-parloops.c (take_address_of): Don't ICE if get_name
8816 returns NULL.
8817 (eliminate_local_variables_stmt): Remove clobber stmts.
8818
4f219961
EB
88192013-08-18 Eric Botcazou <ebotcazou@adacore.com>
8820
8821 * cgraphunit.c (handle_alias_pairs): Reset the alias flag after the
8822 error message is issued for an alias to undefined symbol.
8823
1d5755ef
JH
88242013-08-18 Jan Hubicka <jh@suse.cz>
8825
8826 * cgraph.c (cgraph_create_indirect_edge): Discover
8827 polymorphic calls and record basic info into indirect_info.
8828 * gimple-fold.c (gimple_fold_call): When doing BINFO based
8829 devirtualization, ignore objc function calls.
8830 * ipa-cp.c (initialize_node_lattices): Be ready for polymorphic
8831 call with no parm index info.
8832 * ipa-prop.c (ipa_analyze_call_uses): Likewise.
8833 * tree.c (virtual_method_call_p): New function.
8834 * tree.h (virtual_method_call_p): Declare.
8835
5945bebf
JH
88362013-08-16 Jan Hubicka <jh@suse.cz>
8837
8838 PR middle-end/58179
8839 * tree.c (obj_type_ref_class): Do not ICE on non-method calls.
8840
47fa5d23
DE
88412013-08-16 David Edelsohn <dje.gcc@gmail.com>
8842
8843 * config/rs6000/rs6000.md (rs6000_get_timebase_ppc32): Add length
8844 attribute.
8845
c74f54a0
DM
88462013-08-16 David Malcolm <dmalcolm@redhat.com>
8847
8848 * gengtype.c (type_for_name): Add special-case support for
8849 locating types within the "gcc::" namespace.
8850 (open_base_files): Emit a "using namespace gcc" directive.
8851
f758f299
MM
88522013-08-16 Michael Meissner <meissner@linux.vnet.ibm.com>
8853
8854 PR target/58160
8855 * config/rs6000/predicates.md (fusion_gpr_mem_load): Allow the
8856 memory rtx to contain ZERO_EXTEND and SIGN_EXTEND.
8857
8858 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Pass operands
8859 array instead of each individual operand as a separate argument.
8860 (emit_fusion_gpr_load): Likewise.
8861 (expand_fusion_gpr_load): Add new function declaration.
8862
8863 * config/rs6000/rs6000.c (fusion_gpr_load_p): Change the calling
8864 signature to have the operands passed as an array, instead of as
8865 separate arguments. Allow ZERO_EXTEND to be in the memory
8866 address, and also SIGN_EXTEND if -mpower8-fusion-sign. Do not
8867 depend on the register live/dead flags when peepholes are run.
8868 (expand_fusion_gpr_load): New function to be called from the
8869 peephole2 pass, to change the register that addis sets to be the
8870 target register.
8871 (emit_fusion_gpr_load): Change the calling signature to have the
8872 operands passed as an array, instead of as separate arguments.
8873 Allow ZERO_EXTEND to be in the memory address, and also
8874 SIGN_EXTEND if -mpower8-fusion-sign.
8875
8876 * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): Delete unused
8877 unspec enumeration.
8878 (power8 fusion peephole/peephole2): Rework the fusion peepholes to
8879 adjust the register addis loads up in the peephole2 pass. Do not
5339fc0c 8880 depend on the register live/dead state when the peephole pass is done.
f758f299 8881
158f4e4f
DM
88822013-08-16 David Malcolm <dmalcolm@redhat.com>
8883
8884 * gengtype.c (create_user_defined_type): Ensure that the kind
8885 is set to TYPE_USER_STRUCT, fixing a bug seen when an incomplete
8886 declaration is seen before the GTY((user)) marking.
8887
22f8cea5
BE
88882013-08-16 Bernd Edlinger <bernd.edlinger@hotmail.de>
8889
8890 PR target/58105
8891 * config/i386/i386.c (make_resolver_func): Set DECL_UNINLINABLE.
8892
c49bdb2e
JH
88932013-08-16 Jan Hubicka <jh@suse.cz>
8894
8895 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Add new
8896 arugment expected_type.
8897 (gimple_fold_call): Use it.
8898 * gimple.h (gimple_extract_devirt_binfo_from_cst): Update prototype.
8899 * ipa-cp.c (ipa_get_indirect_edge_target_1): Update.
22f8cea5 8900 * ipa-prop.c (ipa_analyze_virtual_call_uses): Use obj_type_ref_class.
c49bdb2e
JH
8901 (try_make_edge_direct_virtual_call): Likewise.
8902 * tree.c (obj_type_ref_class): New.
8903 * tree.h (obj_type_ref_class): Use it.
8904
4042dca9
GDR
89052013-08-16 Gabriel Dos Reis <gdr@integrable-solutions.net>
8906
8907 * sched-vis.c (rtl_slim_pp_initialized): Remove.
8908 (rtl_slim_pp): Likewise.
8909 (init_rtl_slim_pretty_print): Likewise.
8910 (dump_value_slim): Don't call it. Use local pretty printer.
8911 (dump_insn_slim): Likewise.
8912 (dump_rtl_slim): Likewise.
8913 (str_pattern_slim): Likewise.
8914 * tree-mudflap.c (mf_varname_tree): Use local pretty printer.
8915 Simplify.
8916
7a460594
JJ
89172013-08-16 Jakub Jelinek <jakub@redhat.com>
8918
639dc669
JJ
8919 PR tree-optimization/58164
8920 * gimple.c (walk_stmt_load_store_addr_ops): For visit_addr
8921 walk gimple_goto_dest of GIMPLE_GOTO.
8922
7a460594
JJ
8923 PR tree-optimization/58165
8924 * tree-call-cdce.c (shrink_wrap_one_built_in_call): If
8925 bi_call must be the last stmt in a bb, don't split_block, instead
8926 use fallthru edge from it and give up if there is none.
8927 Release conds vector when returning early.
8928
e3c02cc7
XDL
89292013-08-14 Xinliang David Li <davidxl@google.com>
8930
8931 * config/i386/i386.c (ix86_option_override_internal):
8932 Remove unused variable and field.
8933
6469da2c
BS
89342013-08-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8935
8936 PR target/57949
22f8cea5 8937 * doc/invoke.texi: Add documentation of mcompat-align-parm option.
6469da2c
BS
8938 * config/rs6000/rs6000.opt: Add mcompat-align-parm option.
8939 * config/rs6000/rs6000.c (rs6000_function_arg_boundary): For AIX
8940 and Linux, correct BLKmode alignment when 128-bit alignment is
8941 required and compatibility flag is not set.
22f8cea5
BE
8942 (rs6000_gimplify_va_arg): For AIX and Linux, honor specified alignment
8943 for zero-size arguments when compatibility flag is not set.
6469da2c 8944
4ca890e2
JJ
89452013-08-14 Jakub Jelinek <jakub@redhat.com>
8946
8947 PR tree-optimization/58145
8948 * tree-sra.c (build_ref_for_offset): If prev_base has
8949 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS, propagate it to MEM_REF.
8950
daec1759 89512013-08-14 Xinliang David Li <davidxl@google.com>
4ca890e2 8952
daec1759 8953 * config/i386/i386.c (ix86_option_override_internal):
e3c02cc7 8954 Fix uninitialized variable error.
daec1759 8955
3ad20bd4
XDL
89562013-08-14 Xinliang David Li <davidxl@google.com>
8957
8958 * config/i386/i386.opt: Define two new options.
8959 * config/i386/x86-tune.def: Add arch selector field in macros.
8960 * config/i386/i386.h: Adjust macro definition.
8961 * config/i386/i386.c (ix86_option_override_internal):
8962 Refactor the code.
8963 (parse_mtune_ctrl_str): New function.
8964 (set_ix86_tune_features): New function.
8965 (ix86_function_specific_restore): Call the new helper function.
8966
e839e2a9
AB
89672013-08-14 Andrey Belevantsev <abel@ispras.ru>
8968
8969 PR rtl-optimization/57662
8970 * sel-sched.c (code_motion_process_successors): When the current insn
8971 is removed after the recursive traversal, break from the loop.
8972 Add comments and debug printouts.
8973
27ed665f
JJ
89742013-08-14 Jakub Jelinek <jakub@redhat.com>
8975 Alexandre Oliva <aoliva@redhat.com>
8976
8977 PR target/58067
8978 * config/i386/i386.c (ix86_delegitimize_address): For CM_MEDIUM_PIC
8979 and CM_LARGE_PIC ix86_cmodel fall thru into the -m32 code, handle
8980 there also UNSPEC_PLTOFF.
8981
61c1a609
MP
89822013-08-14 Marek Polacek <polacek@redhat.com>
8983
8984 * ipa-inline-analysis.c (add_clause): Avoid shifting integer
8985 NUM_CONDITIONS bit positions.
8986
0e901c67
CC
89872013-08-13 Cary Coutant <ccoutant@google.com>
8988
8989 * dwarf2out.c (CHECKSUM_BLOCK): New macro.
8990 (attr_checksum): Hash vector contents instead of pointer.
8991 (attr_checksum_ordered): Likewise.
8992
061eff6d
UB
89932013-08-13 Uros Bizjak <ubizjak@gmail.com>
8994
8995 * config/i386/sse.md (*sse2_maskmovdqu): Emit addr32 prefix
8996 when Pmode != word_mode. Add length_address attribute.
8997 (sse3_monitor_<mode>): Merge from sse3_monitor and
8998 sse3_monitor64_<mode> insn patterns. Emit addr32 prefix when
8999 Pmode != word_mode. Update insn length attribute.
9000 * config/i386/i386.c (ix86_option_override_internal): Update
9001 ix86_gen_monitor selection for merged sse3_monitor insn.
9002
8ec9249b
JB
90032013-08-13 Julian Brown <julian@codesourcery.com>
9004
9005 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
9006 perform invalid legitimization on greater-than-word-size modes for
9007 TARGET_E500_DOUBLE.
9008
761a8eb7
VM
90092013-08-13 Vladimir Makarov <vmakarov@redhat.com>
9010
9011 * ira.c (setup_class_translate_array): Use aclass instead of cl
9012 for classes not fully covered by allocno classes.
9013
99c2bd54
JJ
90142013-08-13 Jakub Jelinek <jakub@redhat.com>
9015
4029a5e0
JJ
9016 PR tree-optimization/57661
9017 * tree-inline.h (struct copy_body_data): Add blocks_to_copy field.
9018 * tree-inline.c (tree_function_versioning): Initialize it.
9019 (remap_gimple_stmt): Return GIMPLE_NOP for MEM_REF lhs clobber stmts
9020 if id->blocks_to_copy and MEM_REF's SSA_NAME is defined in a block
9021 that is not being copied.
9022
99c2bd54
JJ
9023 PR sanitizer/56417
9024 * asan.c (instrument_strlen_call): Fix typo in comment.
9025 Use char * type even for the lhs of POINTER_PLUS_EXPR.
9026
b5f8f063
SE
90272013-08-13 Steve Ellcey <sellcey@mips.com>
9028
9029 * config/mips/mips.md (prefetch): Use lw instead of ld on
9030 loongson in 32bit mode.
9031
4de80584
NC
90322013-08-13 Nick Clifton <nickc@redhat.com>
9033
9034 * config.gcc: (avr-linux): Allow for tmake_file not being empty.
9035
09ce3660
JH
90362013-08-13 Jan Hubicka <jh@suse.cz>
9037
9038 * cgraph.c (cgraph_turn_edge_to_speculative): Return newly
9039 introduced edge; fix typo in sanity check.
9040 (cgraph_resolve_speculation): Export; improve diagnostic.
9041 (cgraph_redirect_edge_call_stmt_to_callee): Better diagnostic; cancel
9042 speculation at type mismatch.
9043 * cgraph.h (cgraph_turn_edge_to_speculative): Update.
9044 (cgraph_resolve_speculation): Declare.
9045 (symtab_can_be_discarded): New function.
9046 * value-prof.c (gimple_ic_transform): Remove actual transform code.
9047 * ipa-inline-transform.c (speculation_removed): New global var.
9048 (clone_inlined_nodes): See if speculation can be removed.
9049 (inline_call): If speculations was removed, we growths may not match.
9050 * ipa-inline.c (can_inline_edge_p): Add DISREGARD_LIMITS parameter.
9051 (speculation_useful_p): New function.
9052 (resolve_noninline_speculation): New function.
9053 (inline_small_functions): Resolve useless speculations.
9054 * ipa-inline.h (speculation_useful_p): Declare
9055 * ipa.c (can_replace_by_local_alias): Simplify.
9056 (ipa_profile): Produce speculative calls in non-lto, too;
9057 add simple cost model; produce local aliases.
9058
f971dc24
DM
90592013-08-13 David Malcolm <dmalcolm@redhat.com>
9060
9061 * config/i386/t-i386 (i386.o): Rename stray PIPELINE_H to
061eff6d 9062 PASS_MANAGER_H.
f971dc24 9063
2e507b9a
PC
90642013-08-12 Paolo Carlini <paolo.carlini@oracle.com>
9065
9066 * config/i386/i386.c (ix86_function_versions): Use error + inform.
9067
c97fd4b8
UB
90682013-08-12 Uros Bizjak <ubizjak@gmail.com>
9069
9070 * config/i386/i386.md (floatunssi<mode>2 expand): Use MODEF mode
9071 iterator instead of X87MODEF.
9072
90732013-08-12 Perez Read <netfirewall@gmail.com>
9074
9075 PR target/58132
9076 * config/i386/i386.md (*movabs<mode>_1): Add <ptrsize> PTR before
9077 operand 0 for intel asm alternative.
9078 (*movabs<mode>_2): Ditto for operand 1.
9079
f4f4204c
JG
90802013-08-12 James Greenhalgh <james.greenhalgh@arm.com>
9081
9082 * config/aarch64/arm_none.h
9083 (vdup<bhsd>_lane_<su><8,16,32,64>): Fix macro call.
9084
133b1a8e
NC
90852013-08-12 Nick Clifton <nickc@redhat.com>
9086
9087 * config.gcc (m32r-linux): Allow for tmake_file not being empty.
9088
15dd8b3a
YR
90892013-08-12 Yuri Rumyantsev <ysrumyan@gmail.com>
9090
9091 * config/i386/i386.md (floatunssi<mode>2 expand): Add new
9092 expand for QI/HImode operand to produce more effictive code for
9093 unsigned char(short) --> float(double) conversion.
9094
94109a6a
AM
90952013-08-12 Alexander Monakov <amonakov@ispras.ru>
9096
9097 * doc/invoke.texi: Mention that -ftls-model does not force the final
9098 model.
9099
4e115102
MP
91002013-08-12 Marek Polacek <polacek@redhat.com>
9101 Marc Glisse <marc.glisse@inria.fr>
9102
9103 PR tree-optimization/57980
9104 * tree-tailcall.c (process_assignment): Call build_minus_one_cst
9105 when creating -1 constant.
9106
748d71f3
JH
91072013-08-10 Jan Hubicka <jh@suse.cz>
9108
1f97e193 9109 Workaround binutils PR14342.
748d71f3
JH
9110 * tree-profile.c (init_ic_make_global_vars): Add LTO path.
9111 (gimple_init_edge_profiler): Likewise.
9112 (gimple_gen_ic_func_profiler): Likewise.
9113
5979aa54
JH
91142013-08-09 Jan Hubicka <jh@suse.cz>
9115
9116 * cgraph.c (cgraph_create_edge_1): Clear speculative flag.
9117
ad83025e
XDL
91182013-08-09 Xinliang David Li <davidxl@google.com>
9119
9120 * config/i386/stringop.def: New file.
9121 * config/i386/stringop.opt: New file.
9122 * config/i386/i386-opts.h: Include stringopt.def.
9123 * config/i386/i386.opt: Include stringopt.opt.
9124 * config/i386/i386.c (ix86_option_override_internal):
c97fd4b8 9125 Override default size based stringop inline strategies with options.
ad83025e
XDL
9126 * config/i386/i386.c (ix86_parse_stringop_strategy_string):
9127 New function.
9128
e59df5fd
JH
91292013-08-09 Jan Hubicka <jh@suse.cz>
9130
c97fd4b8 9131 * ipa-ref.c (ipa_clear_stmts_in_references): Clear lto_stmt_uid, too.
e59df5fd 9132
634ab819
JH
91332013-08-09 Jan Hubicka <jh@suse.cz>
9134
9135 * cgraph.c (cgraph_resolve_speculation): Cut frequency to
9136 CGRAPH_FREQ_MAX.
9137 (dump_cgraph_node): Dump profile-id.
9138 * cgraph.h (cgraph_indirect_call_info): Add common_target_id
9139 and common_target_probability.
9140 * lto-cgraph.c (lto_output_edge): Stream common targets.
9141 (lto_output_node): Stream profile ids.
9142 (input_node): Stream profile ids.
9143 (input_edge): Stream common targets.
9144 * lto-streamer-in.c (fixup_call_stmt_edges_1): Fix formatting.
9145 * ipa.c: Include value-prof.h
9146 (ipa_profile_generate_summary): Turn indirect call statement histograms
9147 into common targets.
9148 (ipa_profile): Turn common targets into speculative edges.
9149
2fa3d31b
JH
91502013-08-09 Jan Hubicka <jh@suse.cz>
9151
9152 * cgraph.h (cgraph_node): Add profile_id.
9153 * value-prof.c (cgraph_node_map): Turn into pointer_map.
c97fd4b8 9154 (init_node_map): Rewrite to handle hashes increas of incremental IDs.
2fa3d31b
JH
9155 (del_node_map): Update.
9156 (find_func_by_funcdef_no): Replace by ...
9157 (find_func_by_profile_id): ... this one.
9158 (gimple_ic_transform): Do not remove useful histograms when
9159 speculation is not done; dump info when indirect call removal
9160 can happen at LTO.
9161 * value-prof.h (find_func_by_profile_id, gimple_ic): Declare.
9162 * gcov-io.h (__gcov_indirect_call_profiler): Replace by ...
9163 (__gcov_indirect_call_profiler_v2): .. this one.
9164 * profile.h (init_node_map): Update.
9165 * coverage.c (coverage_compute_profile_id): New function.
9166 * coverage.h (coverage_compute_profile_id): Declare.
9167 * tree-profile.c (init_ic_make_global_vars): Make
9168 __gcov_indirect_call_callee and __gcov_indirect_call_counters global.
9169 (gimple_init_edge_profiler): Update prototype of
9170 __gcov_indirect_call_profiler.
9171 (gimple_gen_ic_func_profiler): Simplify.
9172 (tree_profiling): Use init_node_map
9173
042ae7d2
JH
91742013-08-09 Jan Hubicka <jh@suse.cz>
9175
c97fd4b8
UB
9176 * cgraphbuild.c (cgraph_rebuild_references): Rebuild only
9177 non-speculative refs.
042ae7d2
JH
9178 * cgraph.c (cgraph_update_edge_in_call_site_hash): New function.
9179 (cgraph_add_edge_to_call_site_hash): Deal with speculative calls.
9180 (cgraph_set_call_stmt): Likewise.
9181 (cgraph_create_edge_1): Fix release checking compilatoin;
9182 clear lto_stmt_uid.
9183 (cgraph_free_edge): Free indirect info.
9184 (cgraph_turn_edge_to_speculative): New function.
9185 (cgraph_speculative_call_info): New function.
9186 (cgraph_make_edge_direct): Return direct edge; handle speculation.
c97fd4b8 9187 (cgraph_redirect_edge_call_stmt_to_callee): Expand speculative edges.
042ae7d2
JH
9188 (dump_cgraph_node): Dump speculation.
9189 (verify_edge_count_and_frequency): Accept speculative edges.
9190 (verify_edge_corresponds_to_fndecl): Handle partitioned cgraph.
9191 (verify_cgraph_node): Handle speculation.
9192 * cgraph.h (cgraph_edge): Add SPECULATIVE flag.
9193 (cgraph_set_call_stmt): Update prototype.
9194 (cgraph_make_edge_direct): Update prototype.
9195 (cgraph_speculative_call_info): Declare.
9196 * ipa-cp.c (ipcp_discover_new_direct_edges): Be ready for edge
9197 to change; update call of ipa_find_references.
9198 * ipa-ref.c (ipa_record_reference): Fix return value; clear
9199 lto_stmt_uid and speculative flags.
9200 (ipa_dump_references): Dump speculation.
9201 (ipa_clone_references): Clone speculative flag.
9202 (ipa_clone_referring): Likewise.
9203 (ipa_clone_ref): New function.
9204 (ipa_find_reference): Look into lto_stmt_uids
9205 (ipa_clear_stmts_in_references): Do not clear speculative calls.
9206 * ipa-ref.h (ipa_ref): Add lto_stmt_uid and speculative flags.
9207 (ipa_find_reference): Update declaration.
9208 (ipa_clone_ref): Declare.
9209 * lto-cgraph.c (lto_output_edge): Make lto_stmt_uids start from 0;
9210 stream speculative flag.
9211 (lto_output_ref): Stream statements uids and speculation.
9212 (input_ref): Likewise.
9213 (input_edge): Stream speuclation.
9214 * cgraphclones.c (cgraph_clone_edge): Clone speculation.
9215 (cgraph_set_call_stmt_including_clones): Handle speculation.
9216 * ipa-inline.c (heap_edge_removal_hook): New function.
9217 (inline_small_functions): Register it.
9218 * lto-streamer-in.c (fixup_call_stmt_edges_1): Bounds checking;
9219 also initialize refs.
9220 * ipa-prop.c (ipa_make_edge_direct_to_target): Be ready for
9221 edge to change.
9222 (try_make_edge_direct_simple_call): Likewise.
9223 (try_make_edge_direct_simple_call): Likewise.
9224 (update_indirect_edges_after_inlining): Likewise.
9225 (remove_described_reference): Look proper lto_stmt_uid.
9226 (propagate_controlled_uses): Likewise.
9227 (propagate_controlled_uses): Liekwise.
9228 * tree-inline.c (copy_bb): Copy speculative edges.
9229 (redirect_all_calls): New function.
c97fd4b8
UB
9230 (copy_cfg_body): Do redirection after loop info is updated.
9231 (delete_unreachable_blocks_update_callgraph): Updadte speculation.
042ae7d2 9232
aa1e10cc
JH
92332013-08-09 Jan Hubicka <jh@suse.cz>
9234
9235 * lto-streamer-out.c (output_function): Renumber PHIs.
9236 * lto-streamer-in.c (input_function): Likewise.
9237
66adb8eb
JG
92382013-08-09 James Greenhalgh <james.greenhalgh@arm.com>
9239
9240 * config/aarch64/aarch64-simd-builtins.def (get_lane_signed): Remove.
9241 (get_lane_unsigned): Likewise.
9242 (dup_lane_scalar): Likewise.
9243 (get_lane): enable for VALL.
9244 * config/aarch64/aarch64-simd.md
9245 (aarch64_dup_lane_scalar<mode>): Remove.
9246 (aarch64_get_lane_signed<mode>): Likewise.
9247 (aarch64_get_lane_unsigned<mode>): Likewise.
9248 (aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): New.
9249 (aarch64_get_lane_zero_extendsi<mode>): Likewise.
9250 (aarch64_get_lane<mode>): Enable for all vector modes.
9251 (aarch64_get_lanedi): Remove misleading constraints.
9252 * config/aarch64/arm_neon.h
9253 (__aarch64_vget_lane_any): Define.
9254 (__aarch64_vget<q>_lane_<fpsu><8,16,32,64>): Likewise.
9255 (vget<q>_lane_<fpsu><8,16,32,64>): Use __aarch64_vget_lane macros.
9256 (vdup<bhsd>_lane_<su><8,16,32,64>): Likewise.
9257 * config/aarch64/iterators.md (VDQQH): New.
9258 (VDQQHS): Likewise.
9259 (vwcore): Likewise.
9260
1f65ae7a
EB
92612013-08-09 Eric Botcazou <ebotcazou@adacore.com>
9262
9263 * configure.ac: Add GAS check for LEON instructions on SPARC.
9264 * configure: Regenerate.
9265 * config.in: Likewise.
9266 * config.gcc (with_cpu): Remove sparc-leon*-* and deal with LEON in the
9267 sparc*-*-* block.
9268 * config/sparc/sparc.opt (LEON, LEON3): New masks.
9269 * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Set to AS_LEON_FLAG
9270 for LEON or LEON3.
9271 (ASM_CPU_SPEC): Pass AS_LEON_FLAG if -mcpu=leon or -mcpu=leon3.
9272 (AS_LEON_FLAG): New macro.
9273 * config/sparc/sparc.c (sparc_option_override): Set MASK_LEON for leon
9274 and MASK_LEON3 for leon3 and unset them if HAVE_AS_LEON is not defined.
9275 Deal with LEON and LEON3 for the memory model.
23a6cb78 9276 * config/sparc/sync.md (atomic_compare_and_swap<mode>): Enable if LEON3
1f65ae7a
EB
9277 (atomic_compare_and_swap<mode>_1): Likewise.
9278 (*atomic_compare_and_swap<mode>_1): Likewise.
9279
ff522f7f
ZC
92802013-08-09 Zhenqiang Chen <zhenqiang.chen@linaro.org>
9281
9282 * config/arm/neon.md (vcond): Fix floating-point vector
9283 comparisons against 0.
9284
cb1cca12
VM
92852013-08-08 Vladimir Makarov <vmakarov@redhat.com>
9286
9287 * lra-constraints.c (emit_spill_move): Remove assert.
9288 (process_alt_operands): Add more debugging
9289 output. Increase reject for spilling into memory. Decrease
9290 reject for reloading scratch.
9291 (split_reg): Use HARD_REGNO_CALLER_SAVE_MODE.
9292
a3719e31
SE
92932013-08-08 Steve Ellcey <sellcey@mips.com>
9294
9295 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add nan2008.
9296 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Make mips16 and
9297 micromips incompatible. Add nan2008.
9298 (MULTILIB_DIRNAMES): Add nan2008.
9299 (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
9300 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Make mips16
9301 and micromips incompatible. Add nan2008.
9302 (MULTILIB_DIRNAMES): Add nan2008.
9303 (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
9304
f40423e2
RS
93052013-08-08 Richard Sandiford <rdsandiford@googlemail.com>
9306
9307 PR rtl-optimization/58079
9308 * combine.c (combine_simplify_rtx): Avoid using SUBST if
9309 simplify_comparison has widened a comparison with an integer.
9310
869b9125
KT
93112013-08-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9312
9313 * config/arm/neon.md (movmisalign<mode>): Disable when we
9314 don't allow unaligned accesses.
9315 (*movmisalign<mode>_neon_store): Likewise.
9316 (*movmisalign<mode>_neon_load): Likewise.
9317 (*movmisalign<mode>_neon_store): Likewise.
9318 (*movmisalign<mode>_neon_load): Likewise.
9319
71cafea9
JH
93202013-08-08 Jan Hubicka <jh@suse.cz>
9321
9322 * cgraphbuild.c (build_cgraph_edges): Do not walk into debugs.
9323 (make_pass_rebuild_cgraph_edges): Also clear references.
9324 * cgraph.c (verify_cgraph_node): Add basic ipa-ref verifier.
9325 * ipa-inline-transform.c (inline_transform): Remove all references
9326 after inlining.
c97fd4b8
UB
9327 * cgraphunit.c (expand_function): Remove all references after
9328 expansion.
71cafea9
JH
9329 * ipa-ref.c (ipa_ref_has_aliases_p): Fix formatting.
9330 (ipa_find_reference): Rewrite to iterator.
9331 (remove_stmt_references): Likewise.
9332 (ipa_clear_stmts_in_references): New function.
9333 * ipa-ref.h (ipa_clear_stmts_in_references): Declare.
03b0ee0a
UB
9334 * cgraphclones.c (cgraph_materialize_all_clones): Remove or
9335 clear references.
71cafea9
JH
9336 * ipa-split.c (split_function): Remove references in split function.
9337
27d2e612
RE
93382013-08-08 Richard Earnshaw <rearnsha@arm.com>
9339
9340 PR target/57431
1f65ae7a 9341 * config/arm/arm/neon.md (neon_vld1_dupdi): New expand pattern.
27d2e612
RE
9342 (neon_vld1_dup<mode> VD iterator): Iterate over VD not VDX.
9343
5efc661c
RE
93442013-08-08 Richard Earnshaw <rearnsha@arm.com>
9345
9346 PR target/56979
1f65ae7a 9347 * config/arm/arm.c (aapcs_vfp_allocate): Decompose the argument if the
5efc661c
RE
9348 suggested mode for the assignment isn't compatible with the
9349 registers required.
9350
f276d31d
BE
93512013-08-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
9352
9353 PR target/58065
9354 * config/arm/arm.h (MALLOC_ABI_ALIGNMENT): Define.
9355
4b8bc035
XDL
93562013-08-07 Xinliang David Li <davidxl@google.com>
9357
9358 * config/i386/i386.opt: New option -mtune-ctrl=.
9359 * config/i386/x86-tune.def: New file.
9360 * config/i386/i386.h: include x86-tune.def.
9361 * config/i386/i386.c (ix86_option_override_internal):
9362 Parsing -mtune-ctrl= option and set tune features.
9363
12211b99 93642013-08-07 Oleg Endo <olegendo@gcc.gnu.org>
a5b38740
OE
9365
9366 PR other/12081
03b0ee0a 9367 * config/rs6000/rs6000.c (gen_2arg_fn_t): Remove typedef.
a5b38740
OE
9368 (rs6000_emit_swdiv, rs6000_emit_swrsqrt): Don't cast result of GEN_FCN
9369 to gen_2arg_fn_t.
9370
5cf6635b
EB
93712013-08-07 Eric Botcazou <ebotcazou@adacore.com>
9372
9373 * rtl.h (update_alignments): Declare.
9374 * final.c (grow_label_align): New function extracted from...
9375 (shorten_branches): ...here. Call it.
9376 (update_alignments): New function.
9377 * reorg.c (sibling_labels): New variable.
9378 (get_label_before): Add SIBLING parameter. If it is non-zero, push
9379 the new label along with it onto the sibling_labels vector.
9380 (fill_simple_delay_slots): Adjust call to get_label_before.
9381 (fill_slots_from_thread): Likewise.
9382 (relax_delay_slots): Likewise.
9383 (make_return_insns): Likewise.
9384 (dbr_schedule): Invoke update_alignment on the sibling_labels vector.
9385
3c8ca1ab
EB
93862013-08-07 Eric Botcazou <ebotcazou@adacore.com>
9387
9388 * diagnostic.c (diagnostic_classify_diagnostic): Accept zero index and
9389 document its semantics.
9390 (diagnostic_report_diagnostic): Adjust accordingly.
9391
5ee5b32c
DM
93922013-08-07 David Malcolm <dmalcolm@redhat.com>
9393
03b0ee0a 9394 * config/sparc/sparc.c (insert_pass_work_around_errata): Move into...
5ee5b32c
DM
9395 (sparc_option_override): ...and port to new C++ pass API.
9396 * config/sparc/t-sparc (sparc.o): Add dep on CONTEXT_H
9397
abd566fa
PB
93982013-08-07 Peter Bergner <bergner@vnet.ibm.com>
9399
9400 * config/rs6000/rs6000.c (htm_expand_builtin) <case 0>: Remove.
9401
2077db1b
CT
94022013-08-06 Caroline Tice <cmtice@google.com>
9403
9404 * gcc.c (VTABLE_VERIFICATION_SPEC): New definition.
9405 (LINK_COMMAND_SPEC): Add VTABLE_VERIFICATION_SPEC.
9406 * tree-pass.h: Add pass_vtable_verify.
9407 * varasm.c (assemble_variable): Add code to properly set the comdat
9408 section and name for the .vtable_map_vars section.
9409 (assemble_vtyv_preinit_initializer): New function.
9410 (default_sectin_type_flags): Make sure .vtable_map_vars section has
9411 LINK_ONCE flag.
9412 * output.h: Add function decl for assemble_vtv_preinit_initializer.
9413 * vtable-verify.c: New file.
9414 * vtable-verify.h: New file.
9415 * flag-types.h (enum vtv_priority): Defintions for flag_vtable_verify
9416 initialiation levels.
9417 * timevar.def (TV_VTABLE_VERIFICATION): New definition.
9418 * passes.def: Insert pass_vtable_verify.
9419 * aclocal.m4: Reorder includes.
9420 * doc/invoke.texi: Document the -fvtable-verify=, -fvtv-debug, and
9421 -fvtv-counts options.
9422 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add vtv_start*.o,
9423 as appropriate, if -fvtable-verify=... is used.
9424 (GNU_USER_TARGET_ENDFILE_SPEC): Add vtv_end*.o as appropriate, if
9425 -fvtable-verify=... is used.
9426 * Makefile.in (OBJS): Add vtable-verify.o to list.
9427 (vtable-verify.o): Add new build rule.
9428 (GTFILES): Add vtable-verify.c to list.
9429 * common.opt (fvtable-verify=): New flag.
9430 (vtv_priority): Values for fvtable-verify= flag.
9431 (fvtv-counts): New flag.
9432 (fvtv-debug): New flag.
9433 * tree.h (save_vtable_map_decl): New extern function decl.
9434
03085d1c
DM
94352013-08-07 David Malcolm <dmalcolm@redhat.com>
9436
9437 * config/rl78/rl78.c (rl78_devirt_pass): Convert from a struct to...
9438 (pass_rl78_devirt): ...new subclass of rtl_opt_pass along with...
9439 (pass_data_rl78_devirt): ...new pass_data instance and...
9440 (make_pass_rl78_devirt): ...new function.
9441 (rl78_asm_file_start): Port pass registration to new C++ API.
9442
05555c4a
DM
94432013-08-07 David Malcolm <dmalcolm@redhat.com>
9444
9445 * coretypes.h (rtl_opt_pass): Add.
9446 (gcc::context): Add.
9447 * config/epiphany/epiphany.c (pass_mode_switch_use): New.
9448 (epiphany_init): Port to new C++ pass API.
9449 (epiphany_optimize_mode_switching): Likewise.
9450 * pass_manager.h (pass_manager::get_pass_split_all_insns): New.
9451 (pass_manager::get_pass_mode_switching): New.
9452 (pass_manager::get_pass_peephole2): New.
9453 * mode-switching.c (pass_mode_switching): Add clone method.
9454 * recog.c (pass_peephole2): Add clone method.
9455 (pass_split_all_insns): Add clone method.
9456
c5a12e26
DM
94572013-08-06 David Malcolm <dmalcolm@redhat.com>
9458
03b0ee0a
UB
9459 * config/mips/mips.c (insert_pass_mips_machine_reorg2): Move into...
9460 (mips_option_override): ...here, porting to new C++ API for passes.
c5a12e26 9461
a2e2a668
JH
94622013-08-06 Jan Hubicka <jh@suse.cz>
9463
9464 * cgraph.c (cgraph_get_body): New function based on lto.c
9465 implementation.
9466 * cgraph.h (cgraph_get_body): Declare.
03b0ee0a
UB
9467 * cgraphclones.c (cgraph_create_virtual_clone): Commonize WPA and
9468 LTO paths.
a2e2a668
JH
9469 * cgraphunit.c (expand_function): Get body prior expanding.
9470 * ipa.c (function_and_variable_visibility): Use gimple_has_body_p test.
03b0ee0a
UB
9471 * lto-cgraph.c (lto_output_node): Do not stream bodies we don't
9472 really need.
a2e2a668
JH
9473 * passes.c (do_per_function_toporder): Get body.
9474 * tree-inline.c (expand_call_inline): Get body prior inlining it.
9475 * tree-ssa-structalias.c (ipa_pta_execute): Get body; skip clones.
9476
15682f24
MJ
94772013-08-06 Martin Jambor <mjambor@suse.cz>
9478
9479 PR fortran/57987
9480 * cgraphunit.c (cgraph_finalize_function): Assert that nested function
9481 is not re-finalized. Rename second parameter to no_collect.
9482
78f6dd68
MJ
94832013-08-06 Martin Jambor <mjambor@suse.cz>
9484
9485 PR middle-end/58041
9486 * gimple-ssa-strength-reduction.c (replace_ref): Make sure built
9487 MEM_REF has proper alignment information.
9488
12211b99 94892013-08-05 Oleg Endo <olegendo@gcc.gnu.org>
eb923e54
OE
9490
9491 PR other/12081
9492 * recog.h (rtx (*insn_gen_fn) (rtx, ...)): Replace typedef with new
9493 class insn_gen_fn.
9494 * expr.c (move_by_pieces_1, store_by_pieces_2): Replace argument
9495 rtx (*) (rtx, ...) with insn_gen_fn.
9496 * genoutput.c (output_insn_data): Cast gen_? function pointers to
9497 insn_gen_fn::stored_funcptr. Add initializer braces.
9498
8ac69a6c
DM
94992013-08-05 David Malcolm <dmalcolm@redhat.com>
9500
9501 Rewrite how instances of passes are cloned to remove assumptions
9502 about their sizes (thus allowing pass subclasses to have
9503 additional data fields, albeit non-GC-managed ones at this point).
9504
9505 * passes.c (make_pass_instance): Now that passes have clone
9506 methods, rewrite this function to eliminate XNEW and memcpy
9507 calls that used hardcoded sizes. Since this function no longer
9508 creates pass instances, rename it to...
03b0ee0a
UB
9509 (add_pass_instance): ...this. Document the old way that passes were
9510 numbered and flagged, and rework this function to continue using it.
8ac69a6c
DM
9511 (next_pass_1): Add an initial_pass argument for use by
9512 add_pass_instance.
9513 (position_pass): When adding multiple instances of a pass, use
9514 the pass's clone method, rather than relying on the XNEW/memcpy
9515 within the former make_pass_instance (now add_pass_instance).
03b0ee0a
UB
9516 (pass_manager::pass_manager): When invoking next_pass_1, also supply
9517 the initial instance of the current pass within the pass manager.
8ac69a6c 9518
27a4cd48
DM
95192013-08-05 David Malcolm <dmalcolm@redhat.com>
9520
9521 This is the automated part of the conversion of passes from C
9522 structs to C++ classes.
9523
9524 Patch autogenerated by refactor_passes.py from
9525 https://github.com/davidmalcolm/gcc-refactoring-scripts
9526 revision 03fe39476a4c4ea450b49e087cfa817b5f92021e
9527
9528 * asan.c (pass_asan): Convert from a global struct to a subclass of
9529 gimple_opt_pass along with...
9530 (pass_data_asan): ...new pass_data instance and...
9531 (make_pass_asan): ...new function.
9532 (pass_asan_O0): Convert from a global struct to a subclass of
9533 gimple_opt_pass along with...
9534 (pass_data_asan_O0): ...new pass_data instance and...
9535 (make_pass_asan_O0): ...new function.
9536 * auto-inc-dec.c (pass_inc_dec): Convert from a global struct to a
9537 subclass of rtl_opt_pass along with...
9538 (pass_data_inc_dec): ...new pass_data instance and...
9539 (make_pass_inc_dec): ...new function.
9540 * bb-reorder.c (pass_reorder_blocks): Convert from a global struct to
9541 a subclass of rtl_opt_pass along with...
9542 (pass_data_reorder_blocks): ...new pass_data instance and...
9543 (make_pass_reorder_blocks): ...new function.
9544 (pass_duplicate_computed_gotos): Convert from a global struct to a
9545 subclass of rtl_opt_pass along with...
9546 (pass_data_duplicate_computed_gotos): ...new pass_data instance and...
9547 (make_pass_duplicate_computed_gotos): ...new function.
9548 (pass_partition_blocks): Convert from a global struct to a subclass of
9549 rtl_opt_pass along with...
9550 (pass_data_partition_blocks): ...new pass_data instance and...
9551 (make_pass_partition_blocks): ...new function.
9552 * bt-load.c (pass_branch_target_load_optimize1): Convert from a global
9553 struct to a subclass of rtl_opt_pass along with...
9554 (pass_data_branch_target_load_optimize1): ...new pass_data instance
9555 and...
9556 (make_pass_branch_target_load_optimize1): ...new function.
9557 (pass_branch_target_load_optimize2): Convert from a global struct to a
9558 subclass of rtl_opt_pass along with...
9559 (pass_data_branch_target_load_optimize2): ...new pass_data instance
9560 and...
9561 (make_pass_branch_target_load_optimize2): ...new function.
9562 * cfgcleanup.c (pass_jump): Convert from a global struct to a subclass
9563 of rtl_opt_pass along with...
9564 (pass_data_jump): ...new pass_data instance and...
9565 (make_pass_jump): ...new function.
9566 (pass_jump2): Convert from a global struct to a subclass of
9567 rtl_opt_pass along with...
9568 (pass_data_jump2): ...new pass_data instance and...
9569 (make_pass_jump2): ...new function.
9570 * cfgexpand.c (pass_expand): Convert from a global struct to a
9571 subclass of rtl_opt_pass along with...
9572 (pass_data_expand): ...new pass_data instance and...
9573 (make_pass_expand): ...new function.
9574 * cfgrtl.c (pass_free_cfg): Convert from a global struct to a subclass
9575 of rtl_opt_pass along with...
9576 (pass_data_free_cfg): ...new pass_data instance and...
9577 (make_pass_free_cfg): ...new function.
9578 (pass_into_cfg_layout_mode): Convert from a global struct to a
9579 subclass of rtl_opt_pass along with...
9580 (pass_data_into_cfg_layout_mode): ...new pass_data instance and...
9581 (make_pass_into_cfg_layout_mode): ...new function.
9582 (pass_outof_cfg_layout_mode): Convert from a global struct to a
9583 subclass of rtl_opt_pass along with...
9584 (pass_data_outof_cfg_layout_mode): ...new pass_data instance and...
9585 (make_pass_outof_cfg_layout_mode): ...new function.
9586 * cgraphbuild.c (pass_build_cgraph_edges): Convert from a global
9587 struct to a subclass of gimple_opt_pass along with...
9588 (pass_data_build_cgraph_edges): ...new pass_data instance and...
9589 (make_pass_build_cgraph_edges): ...new function.
9590 (pass_rebuild_cgraph_edges): Convert from a global struct to a
9591 subclass of gimple_opt_pass along with...
9592 (pass_data_rebuild_cgraph_edges): ...new pass_data instance and...
9593 (make_pass_rebuild_cgraph_edges): ...new function.
9594 (pass_remove_cgraph_callee_edges): Convert from a global struct to a
9595 subclass of gimple_opt_pass along with...
9596 (pass_data_remove_cgraph_callee_edges): ...new pass_data instance
9597 and...
9598 (make_pass_remove_cgraph_callee_edges): ...new function.
9599 * combine-stack-adj.c (pass_stack_adjustments): Convert from a global
9600 struct to a subclass of rtl_opt_pass along with...
9601 (pass_data_stack_adjustments): ...new pass_data instance and...
9602 (make_pass_stack_adjustments): ...new function.
9603 * combine.c (pass_combine): Convert from a global struct to a subclass
9604 of rtl_opt_pass along with...
9605 (pass_data_combine): ...new pass_data instance and...
9606 (make_pass_combine): ...new function.
9607 * compare-elim.c (pass_compare_elim_after_reload): Convert from a
9608 global struct to a subclass of rtl_opt_pass along with...
9609 (pass_data_compare_elim_after_reload): ...new pass_data instance
9610 and...
9611 (make_pass_compare_elim_after_reload): ...new function.
9612 * cprop.c (pass_rtl_cprop): Convert from a global struct to a subclass
9613 of rtl_opt_pass along with...
9614 (pass_data_rtl_cprop): ...new pass_data instance and...
9615 (make_pass_rtl_cprop): ...new function.
9616 * cse.c (pass_cse): Convert from a global struct to a subclass of
9617 rtl_opt_pass along with...
9618 (pass_data_cse): ...new pass_data instance and...
9619 (make_pass_cse): ...new function.
9620 (pass_cse2): Convert from a global struct to a subclass of
9621 rtl_opt_pass along with...
9622 (pass_data_cse2): ...new pass_data instance and...
9623 (make_pass_cse2): ...new function.
9624 (pass_cse_after_global_opts): Convert from a global struct to a
9625 subclass of rtl_opt_pass along with...
9626 (pass_data_cse_after_global_opts): ...new pass_data instance and...
9627 (make_pass_cse_after_global_opts): ...new function.
9628 * dce.c (pass_ud_rtl_dce): Convert from a global struct to a subclass
9629 of rtl_opt_pass along with...
9630 (pass_data_ud_rtl_dce): ...new pass_data instance and...
9631 (make_pass_ud_rtl_dce): ...new function.
9632 (pass_fast_rtl_dce): Convert from a global struct to a subclass of
9633 rtl_opt_pass along with...
9634 (pass_data_fast_rtl_dce): ...new pass_data instance and...
9635 (make_pass_fast_rtl_dce): ...new function.
9636 * df-core.c (pass_df_initialize_opt): Convert from a global struct to
9637 a subclass of rtl_opt_pass along with...
9638 (pass_data_df_initialize_opt): ...new pass_data instance and...
9639 (make_pass_df_initialize_opt): ...new function.
9640 (pass_df_initialize_no_opt): Convert from a global struct to a
9641 subclass of rtl_opt_pass along with...
9642 (pass_data_df_initialize_no_opt): ...new pass_data instance and...
9643 (make_pass_df_initialize_no_opt): ...new function.
9644 (pass_df_finish): Convert from a global struct to a subclass of
9645 rtl_opt_pass along with...
9646 (pass_data_df_finish): ...new pass_data instance and...
9647 (make_pass_df_finish): ...new function.
9648 * dse.c (pass_rtl_dse1): Convert from a global struct to a subclass of
9649 rtl_opt_pass along with...
9650 (pass_data_rtl_dse1): ...new pass_data instance and...
9651 (make_pass_rtl_dse1): ...new function.
9652 (pass_rtl_dse2): Convert from a global struct to a subclass of
9653 rtl_opt_pass along with...
9654 (pass_data_rtl_dse2): ...new pass_data instance and...
9655 (make_pass_rtl_dse2): ...new function.
9656 * dwarf2cfi.c (pass_dwarf2_frame): Convert from a global struct to a
9657 subclass of rtl_opt_pass along with...
9658 (pass_data_dwarf2_frame): ...new pass_data instance and...
9659 (make_pass_dwarf2_frame): ...new function.
9660 * except.c (pass_set_nothrow_function_flags): Convert from a global
9661 struct to a subclass of rtl_opt_pass along with...
9662 (pass_data_set_nothrow_function_flags): ...new pass_data instance
9663 and...
9664 (make_pass_set_nothrow_function_flags): ...new function.
9665 (pass_convert_to_eh_region_ranges): Convert from a global struct to a
9666 subclass of rtl_opt_pass along with...
9667 (pass_data_convert_to_eh_region_ranges): ...new pass_data instance
9668 and...
9669 (make_pass_convert_to_eh_region_ranges): ...new function.
9670 * final.c (pass_compute_alignments): Convert from a global struct to a
9671 subclass of rtl_opt_pass along with...
9672 (pass_data_compute_alignments): ...new pass_data instance and...
9673 (make_pass_compute_alignments): ...new function.
9674 (pass_final): Convert from a global struct to a subclass of
9675 rtl_opt_pass along with...
9676 (pass_data_final): ...new pass_data instance and...
9677 (make_pass_final): ...new function.
9678 (pass_shorten_branches): Convert from a global struct to a subclass of
9679 rtl_opt_pass along with...
9680 (pass_data_shorten_branches): ...new pass_data instance and...
9681 (make_pass_shorten_branches): ...new function.
9682 (pass_clean_state): Convert from a global struct to a subclass of
9683 rtl_opt_pass along with...
9684 (pass_data_clean_state): ...new pass_data instance and...
9685 (make_pass_clean_state): ...new function.
9686 * function.c (pass_instantiate_virtual_regs): Convert from a global
9687 struct to a subclass of rtl_opt_pass along with...
9688 (pass_data_instantiate_virtual_regs): ...new pass_data instance and...
9689 (make_pass_instantiate_virtual_regs): ...new function.
9690 (pass_leaf_regs): Convert from a global struct to a subclass of
9691 rtl_opt_pass along with...
9692 (pass_data_leaf_regs): ...new pass_data instance and...
9693 (make_pass_leaf_regs): ...new function.
9694 (pass_thread_prologue_and_epilogue): Convert from a global struct to a
9695 subclass of rtl_opt_pass along with...
9696 (pass_data_thread_prologue_and_epilogue): ...new pass_data instance
9697 and...
9698 (make_pass_thread_prologue_and_epilogue): ...new function.
9699 (pass_match_asm_constraints): Convert from a global struct to a
9700 subclass of rtl_opt_pass along with...
9701 (pass_data_match_asm_constraints): ...new pass_data instance and...
9702 (make_pass_match_asm_constraints): ...new function.
9703 * fwprop.c (pass_rtl_fwprop): Convert from a global struct to a
9704 subclass of rtl_opt_pass along with...
9705 (pass_data_rtl_fwprop): ...new pass_data instance and...
9706 (make_pass_rtl_fwprop): ...new function.
9707 (pass_rtl_fwprop_addr): Convert from a global struct to a subclass of
9708 rtl_opt_pass along with...
9709 (pass_data_rtl_fwprop_addr): ...new pass_data instance and...
9710 (make_pass_rtl_fwprop_addr): ...new function.
9711 * gcse.c (pass_rtl_pre): Convert from a global struct to a subclass of
9712 rtl_opt_pass along with...
9713 (pass_data_rtl_pre): ...new pass_data instance and...
9714 (make_pass_rtl_pre): ...new function.
9715 (pass_rtl_hoist): Convert from a global struct to a subclass of
9716 rtl_opt_pass along with...
9717 (pass_data_rtl_hoist): ...new pass_data instance and...
9718 (make_pass_rtl_hoist): ...new function.
9719 * gimple-low.c (pass_lower_cf): Convert from a global struct to a
9720 subclass of gimple_opt_pass along with...
9721 (pass_data_lower_cf): ...new pass_data instance and...
9722 (make_pass_lower_cf): ...new function.
9723 * gimple-ssa-strength-reduction.c (pass_strength_reduction): Convert
9724 from a global struct to a subclass of gimple_opt_pass along with...
9725 (pass_data_strength_reduction): ...new pass_data instance and...
9726 (make_pass_strength_reduction): ...new function.
9727 * ifcvt.c (pass_rtl_ifcvt): Convert from a global struct to a subclass
9728 of rtl_opt_pass along with...
9729 (pass_data_rtl_ifcvt): ...new pass_data instance and...
9730 (make_pass_rtl_ifcvt): ...new function.
9731 (pass_if_after_combine): Convert from a global struct to a subclass of
9732 rtl_opt_pass along with...
9733 (pass_data_if_after_combine): ...new pass_data instance and...
9734 (make_pass_if_after_combine): ...new function.
9735 (pass_if_after_reload): Convert from a global struct to a subclass of
9736 rtl_opt_pass along with...
9737 (pass_data_if_after_reload): ...new pass_data instance and...
9738 (make_pass_if_after_reload): ...new function.
9739 * init-regs.c (pass_initialize_regs): Convert from a global struct to
9740 a subclass of rtl_opt_pass along with...
9741 (pass_data_initialize_regs): ...new pass_data instance and...
9742 (make_pass_initialize_regs): ...new function.
9743 * ipa-cp.c (pass_ipa_cp): Convert from a global struct to a subclass
9744 of ipa_opt_pass_d along with...
9745 (pass_data_ipa_cp): ...new pass_data instance and...
9746 (make_pass_ipa_cp): ...new function.
9747 * ipa-inline-analysis.c (pass_inline_parameters): Convert from a
9748 global struct to a subclass of gimple_opt_pass along with...
9749 (pass_data_inline_parameters): ...new pass_data instance and...
9750 (make_pass_inline_parameters): ...new function.
9751 * ipa-inline.c (pass_early_inline): Convert from a global struct to a
9752 subclass of gimple_opt_pass along with...
9753 (pass_data_early_inline): ...new pass_data instance and...
9754 (make_pass_early_inline): ...new function.
9755 (pass_ipa_inline): Convert from a global struct to a subclass of
9756 ipa_opt_pass_d along with...
9757 (pass_data_ipa_inline): ...new pass_data instance and...
9758 (make_pass_ipa_inline): ...new function.
9759 * ipa-pure-const.c (pass_local_pure_const): Convert from a global
9760 struct to a subclass of gimple_opt_pass along with...
9761 (pass_data_local_pure_const): ...new pass_data instance and...
9762 (make_pass_local_pure_const): ...new function.
9763 (pass_ipa_pure_const): Convert from a global struct to a subclass of
9764 ipa_opt_pass_d along with...
9765 (pass_data_ipa_pure_const): ...new pass_data instance and...
9766 (make_pass_ipa_pure_const): ...new function.
9767 * ipa-reference.c (pass_ipa_reference): Convert from a global struct
9768 to a subclass of ipa_opt_pass_d along with...
9769 (pass_data_ipa_reference): ...new pass_data instance and...
9770 (make_pass_ipa_reference): ...new function.
9771 * ipa-split.c (pass_split_functions): Convert from a global struct to
9772 a subclass of gimple_opt_pass along with...
9773 (pass_data_split_functions): ...new pass_data instance and...
9774 (make_pass_split_functions): ...new function.
9775 (pass_feedback_split_functions): Convert from a global struct to a
9776 subclass of gimple_opt_pass along with...
9777 (pass_data_feedback_split_functions): ...new pass_data instance and...
9778 (make_pass_feedback_split_functions): ...new function.
9779 * ipa.c (pass_ipa_function_and_variable_visibility): Convert from a
9780 global struct to a subclass of simple_ipa_opt_pass along with...
9781 (pass_data_ipa_function_and_variable_visibility): ...new pass_data
9782 instance and...
9783 (make_pass_ipa_function_and_variable_visibility): ...new function.
9784 (pass_ipa_free_inline_summary): Convert from a global struct to a
9785 subclass of simple_ipa_opt_pass along with...
9786 (pass_data_ipa_free_inline_summary): ...new pass_data instance and...
9787 (make_pass_ipa_free_inline_summary): ...new function.
9788 (pass_ipa_whole_program_visibility): Convert from a global struct to a
9789 subclass of ipa_opt_pass_d along with...
9790 (pass_data_ipa_whole_program_visibility): ...new pass_data instance
9791 and...
9792 (make_pass_ipa_whole_program_visibility): ...new function.
9793 (pass_ipa_profile): Convert from a global struct to a subclass of
9794 ipa_opt_pass_d along with...
9795 (pass_data_ipa_profile): ...new pass_data instance and...
9796 (make_pass_ipa_profile): ...new function.
9797 (pass_ipa_cdtor_merge): Convert from a global struct to a subclass of
9798 ipa_opt_pass_d along with...
9799 (pass_data_ipa_cdtor_merge): ...new pass_data instance and...
9800 (make_pass_ipa_cdtor_merge): ...new function.
9801 * ira.c (pass_ira): Convert from a global struct to a subclass of
9802 rtl_opt_pass along with...
9803 (pass_data_ira): ...new pass_data instance and...
9804 (make_pass_ira): ...new function.
9805 (pass_reload): Convert from a global struct to a subclass of
9806 rtl_opt_pass along with...
9807 (pass_data_reload): ...new pass_data instance and...
9808 (make_pass_reload): ...new function.
9809 * jump.c (pass_cleanup_barriers): Convert from a global struct to a
9810 subclass of rtl_opt_pass along with...
9811 (pass_data_cleanup_barriers): ...new pass_data instance and...
9812 (make_pass_cleanup_barriers): ...new function.
9813 * loop-init.c (pass_loop2): Convert from a global struct to a subclass
9814 of rtl_opt_pass along with...
9815 (pass_data_loop2): ...new pass_data instance and...
9816 (make_pass_loop2): ...new function.
9817 (pass_rtl_loop_init): Convert from a global struct to a subclass of
9818 rtl_opt_pass along with...
9819 (pass_data_rtl_loop_init): ...new pass_data instance and...
9820 (make_pass_rtl_loop_init): ...new function.
9821 (pass_rtl_loop_done): Convert from a global struct to a subclass of
9822 rtl_opt_pass along with...
9823 (pass_data_rtl_loop_done): ...new pass_data instance and...
9824 (make_pass_rtl_loop_done): ...new function.
9825 (pass_rtl_move_loop_invariants): Convert from a global struct to a
9826 subclass of rtl_opt_pass along with...
9827 (pass_data_rtl_move_loop_invariants): ...new pass_data instance and...
9828 (make_pass_rtl_move_loop_invariants): ...new function.
9829 (pass_rtl_unswitch): Convert from a global struct to a subclass of
9830 rtl_opt_pass along with...
9831 (pass_data_rtl_unswitch): ...new pass_data instance and...
9832 (make_pass_rtl_unswitch): ...new function.
9833 (pass_rtl_unroll_and_peel_loops): Convert from a global struct to a
9834 subclass of rtl_opt_pass along with...
9835 (pass_data_rtl_unroll_and_peel_loops): ...new pass_data instance
9836 and...
9837 (make_pass_rtl_unroll_and_peel_loops): ...new function.
9838 (pass_rtl_doloop): Convert from a global struct to a subclass of
9839 rtl_opt_pass along with...
9840 (pass_data_rtl_doloop): ...new pass_data instance and...
9841 (make_pass_rtl_doloop): ...new function.
9842 * lower-subreg.c (pass_lower_subreg): Convert from a global struct to
9843 a subclass of rtl_opt_pass along with...
9844 (pass_data_lower_subreg): ...new pass_data instance and...
9845 (make_pass_lower_subreg): ...new function.
9846 (pass_lower_subreg2): Convert from a global struct to a subclass of
9847 rtl_opt_pass along with...
9848 (pass_data_lower_subreg2): ...new pass_data instance and...
9849 (make_pass_lower_subreg2): ...new function.
9850 * lto-streamer-out.c (pass_ipa_lto_gimple_out): Convert from a global
9851 struct to a subclass of ipa_opt_pass_d along with...
9852 (pass_data_ipa_lto_gimple_out): ...new pass_data instance and...
9853 (make_pass_ipa_lto_gimple_out): ...new function.
9854 (pass_ipa_lto_finish_out): Convert from a global struct to a subclass
9855 of ipa_opt_pass_d along with...
9856 (pass_data_ipa_lto_finish_out): ...new pass_data instance and...
9857 (make_pass_ipa_lto_finish_out): ...new function.
9858 * mode-switching.c (pass_mode_switching): Convert from a global struct
9859 to a subclass of rtl_opt_pass along with...
9860 (pass_data_mode_switching): ...new pass_data instance and...
9861 (make_pass_mode_switching): ...new function.
9862 * modulo-sched.c (pass_sms): Convert from a global struct to a
9863 subclass of rtl_opt_pass along with...
9864 (pass_data_sms): ...new pass_data instance and...
9865 (make_pass_sms): ...new function.
9866 * omp-low.c (pass_expand_omp): Convert from a global struct to a
9867 subclass of gimple_opt_pass along with...
9868 (pass_data_expand_omp): ...new pass_data instance and...
9869 (make_pass_expand_omp): ...new function.
9870 (pass_lower_omp): Convert from a global struct to a subclass of
9871 gimple_opt_pass along with...
9872 (pass_data_lower_omp): ...new pass_data instance and...
9873 (make_pass_lower_omp): ...new function.
9874 (pass_diagnose_omp_blocks): Convert from a global struct to a subclass
9875 of gimple_opt_pass along with...
9876 (pass_data_diagnose_omp_blocks): ...new pass_data instance and...
9877 (make_pass_diagnose_omp_blocks): ...new function.
9878 * passes.c (pass_early_local_passes): Convert from a global struct to
9879 a subclass of simple_ipa_opt_pass along with...
9880 (pass_data_early_local_passes): ...new pass_data instance and...
9881 (make_pass_early_local_passes): ...new function.
9882 (pass_all_early_optimizations): Convert from a global struct to a
9883 subclass of gimple_opt_pass along with...
9884 (pass_data_all_early_optimizations): ...new pass_data instance and...
9885 (make_pass_all_early_optimizations): ...new function.
9886 (pass_all_optimizations): Convert from a global struct to a subclass
9887 of gimple_opt_pass along with...
9888 (pass_data_all_optimizations): ...new pass_data instance and...
9889 (make_pass_all_optimizations): ...new function.
9890 (pass_all_optimizations_g): Convert from a global struct to a subclass
9891 of gimple_opt_pass along with...
9892 (pass_data_all_optimizations_g): ...new pass_data instance and...
9893 (make_pass_all_optimizations_g): ...new function.
9894 (pass_rest_of_compilation): Convert from a global struct to a subclass
9895 of rtl_opt_pass along with...
9896 (pass_data_rest_of_compilation): ...new pass_data instance and...
9897 (make_pass_rest_of_compilation): ...new function.
9898 (pass_postreload): Convert from a global struct to a subclass of
9899 rtl_opt_pass along with...
9900 (pass_data_postreload): ...new pass_data instance and...
9901 (make_pass_postreload): ...new function.
9902 * postreload-gcse.c (pass_gcse2): Convert from a global struct to a
9903 subclass of rtl_opt_pass along with...
9904 (pass_data_gcse2): ...new pass_data instance and...
9905 (make_pass_gcse2): ...new function.
9906 * postreload.c (pass_postreload_cse): Convert from a global struct to
9907 a subclass of rtl_opt_pass along with...
9908 (pass_data_postreload_cse): ...new pass_data instance and...
9909 (make_pass_postreload_cse): ...new function.
9910 * predict.c (pass_profile): Convert from a global struct to a subclass
9911 of gimple_opt_pass along with...
9912 (pass_data_profile): ...new pass_data instance and...
9913 (make_pass_profile): ...new function.
9914 (pass_strip_predict_hints): Convert from a global struct to a subclass
9915 of gimple_opt_pass along with...
9916 (pass_data_strip_predict_hints): ...new pass_data instance and...
9917 (make_pass_strip_predict_hints): ...new function.
9918 * recog.c (pass_peephole2): Convert from a global struct to a subclass
9919 of rtl_opt_pass along with...
9920 (pass_data_peephole2): ...new pass_data instance and...
9921 (make_pass_peephole2): ...new function.
9922 (pass_split_all_insns): Convert from a global struct to a subclass of
9923 rtl_opt_pass along with...
9924 (pass_data_split_all_insns): ...new pass_data instance and...
9925 (make_pass_split_all_insns): ...new function.
9926 (pass_split_after_reload): Convert from a global struct to a subclass
9927 of rtl_opt_pass along with...
9928 (pass_data_split_after_reload): ...new pass_data instance and...
9929 (make_pass_split_after_reload): ...new function.
9930 (pass_split_before_regstack): Convert from a global struct to a
9931 subclass of rtl_opt_pass along with...
9932 (pass_data_split_before_regstack): ...new pass_data instance and...
9933 (make_pass_split_before_regstack): ...new function.
9934 (pass_split_before_sched2): Convert from a global struct to a subclass
9935 of rtl_opt_pass along with...
9936 (pass_data_split_before_sched2): ...new pass_data instance and...
9937 (make_pass_split_before_sched2): ...new function.
9938 (pass_split_for_shorten_branches): Convert from a global struct to a
9939 subclass of rtl_opt_pass along with...
9940 (pass_data_split_for_shorten_branches): ...new pass_data instance
9941 and...
9942 (make_pass_split_for_shorten_branches): ...new function.
9943 * ree.c (pass_ree): Convert from a global struct to a subclass of
9944 rtl_opt_pass along with...
9945 (pass_data_ree): ...new pass_data instance and...
9946 (make_pass_ree): ...new function.
9947 * reg-stack.c (pass_stack_regs): Convert from a global struct to a
9948 subclass of rtl_opt_pass along with...
9949 (pass_data_stack_regs): ...new pass_data instance and...
9950 (make_pass_stack_regs): ...new function.
9951 (pass_stack_regs_run): Convert from a global struct to a subclass of
9952 rtl_opt_pass along with...
9953 (pass_data_stack_regs_run): ...new pass_data instance and...
9954 (make_pass_stack_regs_run): ...new function.
9955 * regcprop.c (pass_cprop_hardreg): Convert from a global struct to a
9956 subclass of rtl_opt_pass along with...
9957 (pass_data_cprop_hardreg): ...new pass_data instance and...
9958 (make_pass_cprop_hardreg): ...new function.
9959 * reginfo.c (pass_reginfo_init): Convert from a global struct to a
9960 subclass of rtl_opt_pass along with...
9961 (pass_data_reginfo_init): ...new pass_data instance and...
9962 (make_pass_reginfo_init): ...new function.
9963 * regmove.c (pass_regmove): Convert from a global struct to a subclass
9964 of rtl_opt_pass along with...
9965 (pass_data_regmove): ...new pass_data instance and...
9966 (make_pass_regmove): ...new function.
9967 * regrename.c (pass_regrename): Convert from a global struct to a
9968 subclass of rtl_opt_pass along with...
9969 (pass_data_regrename): ...new pass_data instance and...
9970 (make_pass_regrename): ...new function.
9971 * reorg.c (pass_delay_slots): Convert from a global struct to a
9972 subclass of rtl_opt_pass along with...
9973 (pass_data_delay_slots): ...new pass_data instance and...
9974 (make_pass_delay_slots): ...new function.
9975 (pass_machine_reorg): Convert from a global struct to a subclass of
9976 rtl_opt_pass along with...
9977 (pass_data_machine_reorg): ...new pass_data instance and...
9978 (make_pass_machine_reorg): ...new function.
9979 * sched-rgn.c (pass_sched): Convert from a global struct to a subclass
9980 of rtl_opt_pass along with...
9981 (pass_data_sched): ...new pass_data instance and...
9982 (make_pass_sched): ...new function.
9983 (pass_sched2): Convert from a global struct to a subclass of
9984 rtl_opt_pass along with...
9985 (pass_data_sched2): ...new pass_data instance and...
9986 (make_pass_sched2): ...new function.
9987 * stack-ptr-mod.c (pass_stack_ptr_mod): Convert from a global struct
9988 to a subclass of rtl_opt_pass along with...
9989 (pass_data_stack_ptr_mod): ...new pass_data instance and...
9990 (make_pass_stack_ptr_mod): ...new function.
9991 * store-motion.c (pass_rtl_store_motion): Convert from a global struct
9992 to a subclass of rtl_opt_pass along with...
9993 (pass_data_rtl_store_motion): ...new pass_data instance and...
9994 (make_pass_rtl_store_motion): ...new function.
9995 * tracer.c (pass_tracer): Convert from a global struct to a subclass
9996 of gimple_opt_pass along with...
9997 (pass_data_tracer): ...new pass_data instance and...
9998 (make_pass_tracer): ...new function.
9999 * trans-mem.c (pass_diagnose_tm_blocks): Convert from a global struct
10000 to a subclass of gimple_opt_pass along with...
10001 (pass_data_diagnose_tm_blocks): ...new pass_data instance and...
10002 (make_pass_diagnose_tm_blocks): ...new function.
10003 (pass_lower_tm): Convert from a global struct to a subclass of
10004 gimple_opt_pass along with...
10005 (pass_data_lower_tm): ...new pass_data instance and...
10006 (make_pass_lower_tm): ...new function.
10007 (pass_tm_init): Convert from a global struct to a subclass of
10008 gimple_opt_pass along with...
10009 (pass_data_tm_init): ...new pass_data instance and...
10010 (make_pass_tm_init): ...new function.
10011 (pass_tm_mark): Convert from a global struct to a subclass of
10012 gimple_opt_pass along with...
10013 (pass_data_tm_mark): ...new pass_data instance and...
10014 (make_pass_tm_mark): ...new function.
10015 (pass_tm_edges): Convert from a global struct to a subclass of
10016 gimple_opt_pass along with...
10017 (pass_data_tm_edges): ...new pass_data instance and...
10018 (make_pass_tm_edges): ...new function.
10019 (pass_tm_memopt): Convert from a global struct to a subclass of
10020 gimple_opt_pass along with...
10021 (pass_data_tm_memopt): ...new pass_data instance and...
10022 (make_pass_tm_memopt): ...new function.
10023 (pass_ipa_tm): Convert from a global struct to a subclass of
10024 simple_ipa_opt_pass along with...
10025 (pass_data_ipa_tm): ...new pass_data instance and...
10026 (make_pass_ipa_tm): ...new function.
10027 * tree-call-cdce.c (pass_call_cdce): Convert from a global struct to a
10028 subclass of gimple_opt_pass along with...
10029 (pass_data_call_cdce): ...new pass_data instance and...
10030 (make_pass_call_cdce): ...new function.
10031 * tree-cfg.c (pass_build_cfg): Convert from a global struct to a
10032 subclass of gimple_opt_pass along with...
10033 (pass_data_build_cfg): ...new pass_data instance and...
10034 (make_pass_build_cfg): ...new function.
10035 (pass_split_crit_edges): Convert from a global struct to a subclass of
10036 gimple_opt_pass along with...
10037 (pass_data_split_crit_edges): ...new pass_data instance and...
10038 (make_pass_split_crit_edges): ...new function.
10039 (pass_warn_function_return): Convert from a global struct to a
10040 subclass of gimple_opt_pass along with...
10041 (pass_data_warn_function_return): ...new pass_data instance and...
10042 (make_pass_warn_function_return): ...new function.
10043 (pass_warn_function_noreturn): Convert from a global struct to a
10044 subclass of gimple_opt_pass along with...
10045 (pass_data_warn_function_noreturn): ...new pass_data instance and...
10046 (make_pass_warn_function_noreturn): ...new function.
10047 (pass_warn_unused_result): Convert from a global struct to a subclass
10048 of gimple_opt_pass along with...
10049 (pass_data_warn_unused_result): ...new pass_data instance and...
10050 (make_pass_warn_unused_result): ...new function.
10051 * tree-cfgcleanup.c (pass_merge_phi): Convert from a global struct to
10052 a subclass of gimple_opt_pass along with...
10053 (pass_data_merge_phi): ...new pass_data instance and...
10054 (make_pass_merge_phi): ...new function.
10055 * tree-complex.c (pass_lower_complex): Convert from a global struct to
10056 a subclass of gimple_opt_pass along with...
10057 (pass_data_lower_complex): ...new pass_data instance and...
10058 (make_pass_lower_complex): ...new function.
10059 (pass_lower_complex_O0): Convert from a global struct to a subclass of
10060 gimple_opt_pass along with...
10061 (pass_data_lower_complex_O0): ...new pass_data instance and...
10062 (make_pass_lower_complex_O0): ...new function.
10063 * tree-eh.c (pass_lower_eh): Convert from a global struct to a
10064 subclass of gimple_opt_pass along with...
10065 (pass_data_lower_eh): ...new pass_data instance and...
10066 (make_pass_lower_eh): ...new function.
10067 (pass_refactor_eh): Convert from a global struct to a subclass of
10068 gimple_opt_pass along with...
10069 (pass_data_refactor_eh): ...new pass_data instance and...
10070 (make_pass_refactor_eh): ...new function.
10071 (pass_lower_resx): Convert from a global struct to a subclass of
10072 gimple_opt_pass along with...
10073 (pass_data_lower_resx): ...new pass_data instance and...
10074 (make_pass_lower_resx): ...new function.
10075 (pass_lower_eh_dispatch): Convert from a global struct to a subclass
10076 of gimple_opt_pass along with...
10077 (pass_data_lower_eh_dispatch): ...new pass_data instance and...
10078 (make_pass_lower_eh_dispatch): ...new function.
10079 (pass_cleanup_eh): Convert from a global struct to a subclass of
10080 gimple_opt_pass along with...
10081 (pass_data_cleanup_eh): ...new pass_data instance and...
10082 (make_pass_cleanup_eh): ...new function.
10083 * tree-emutls.c (pass_ipa_lower_emutls): Convert from a global struct
10084 to a subclass of simple_ipa_opt_pass along with...
10085 (pass_data_ipa_lower_emutls): ...new pass_data instance and...
10086 (make_pass_ipa_lower_emutls): ...new function.
10087 * tree-if-conv.c (pass_if_conversion): Convert from a global struct to
10088 a subclass of gimple_opt_pass along with...
10089 (pass_data_if_conversion): ...new pass_data instance and...
10090 (make_pass_if_conversion): ...new function.
10091 * tree-into-ssa.c (pass_build_ssa): Convert from a global struct to a
10092 subclass of gimple_opt_pass along with...
10093 (pass_data_build_ssa): ...new pass_data instance and...
10094 (make_pass_build_ssa): ...new function.
10095 * tree-loop-distribution.c (pass_loop_distribution): Convert from a
10096 global struct to a subclass of gimple_opt_pass along with...
10097 (pass_data_loop_distribution): ...new pass_data instance and...
10098 (make_pass_loop_distribution): ...new function.
10099 * tree-mudflap.c (pass_mudflap_1): Convert from a global struct to a
10100 subclass of gimple_opt_pass along with...
10101 (pass_data_mudflap_1): ...new pass_data instance and...
10102 (make_pass_mudflap_1): ...new function.
10103 (pass_mudflap_2): Convert from a global struct to a subclass of
10104 gimple_opt_pass along with...
10105 (pass_data_mudflap_2): ...new pass_data instance and...
10106 (make_pass_mudflap_2): ...new function.
10107 * tree-nomudflap.c (pass_mudflap_1): Convert from a global struct to a
10108 subclass of gimple_opt_pass along with...
10109 (pass_data_mudflap_1): ...new pass_data instance and...
10110 (make_pass_mudflap_1): ...new function.
10111 (pass_mudflap_2): Convert from a global struct to a subclass of
10112 gimple_opt_pass along with...
10113 (pass_data_mudflap_2): ...new pass_data instance and...
10114 (make_pass_mudflap_2): ...new function.
10115 * tree-nrv.c (pass_nrv): Convert from a global struct to a subclass of
10116 gimple_opt_pass along with...
10117 (pass_data_nrv): ...new pass_data instance and...
10118 (make_pass_nrv): ...new function.
10119 (pass_return_slot): Convert from a global struct to a subclass of
10120 gimple_opt_pass along with...
10121 (pass_data_return_slot): ...new pass_data instance and...
10122 (make_pass_return_slot): ...new function.
10123 * tree-object-size.c (pass_object_sizes): Convert from a global struct
10124 to a subclass of gimple_opt_pass along with...
10125 (pass_data_object_sizes): ...new pass_data instance and...
10126 (make_pass_object_sizes): ...new function.
10127 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Convert from a
10128 global struct to a subclass of gimple_opt_pass along with...
10129 (pass_data_cleanup_cfg_post_optimizing): ...new pass_data instance
10130 and...
10131 (make_pass_cleanup_cfg_post_optimizing): ...new function.
10132 (pass_fixup_cfg): Convert from a global struct to a subclass of
10133 gimple_opt_pass along with...
10134 (pass_data_fixup_cfg): ...new pass_data instance and...
10135 (make_pass_fixup_cfg): ...new function.
10136 * tree-pass.h (pass_mudflap_1): Replace declaration with that of...
10137 (make_pass_mudflap_1): ...new function.
10138 (pass_mudflap_2): Replace declaration with that of...
10139 (make_pass_mudflap_2): ...new function.
10140 (pass_asan): Replace declaration with that of...
10141 (make_pass_asan): ...new function.
10142 (pass_asan_O0): Replace declaration with that of...
10143 (make_pass_asan_O0): ...new function.
10144 (pass_tsan): Replace declaration with that of...
10145 (make_pass_tsan): ...new function.
10146 (pass_tsan_O0): Replace declaration with that of...
10147 (make_pass_tsan_O0): ...new function.
10148 (pass_lower_cf): Replace declaration with that of...
10149 (make_pass_lower_cf): ...new function.
10150 (pass_refactor_eh): Replace declaration with that of...
10151 (make_pass_refactor_eh): ...new function.
10152 (pass_lower_eh): Replace declaration with that of...
10153 (make_pass_lower_eh): ...new function.
10154 (pass_lower_eh_dispatch): Replace declaration with that of...
10155 (make_pass_lower_eh_dispatch): ...new function.
10156 (pass_lower_resx): Replace declaration with that of...
10157 (make_pass_lower_resx): ...new function.
10158 (pass_build_cfg): Replace declaration with that of...
10159 (make_pass_build_cfg): ...new function.
10160 (pass_early_tree_profile): Replace declaration with that of...
10161 (make_pass_early_tree_profile): ...new function.
10162 (pass_cleanup_eh): Replace declaration with that of...
10163 (make_pass_cleanup_eh): ...new function.
10164 (pass_sra): Replace declaration with that of...
10165 (make_pass_sra): ...new function.
10166 (pass_sra_early): Replace declaration with that of...
10167 (make_pass_sra_early): ...new function.
10168 (pass_early_ipa_sra): Replace declaration with that of...
10169 (make_pass_early_ipa_sra): ...new function.
10170 (pass_tail_recursion): Replace declaration with that of...
10171 (make_pass_tail_recursion): ...new function.
10172 (pass_tail_calls): Replace declaration with that of...
10173 (make_pass_tail_calls): ...new function.
10174 (pass_tree_loop): Replace declaration with that of...
10175 (make_pass_tree_loop): ...new function.
10176 (pass_tree_loop_init): Replace declaration with that of...
10177 (make_pass_tree_loop_init): ...new function.
10178 (pass_lim): Replace declaration with that of...
10179 (make_pass_lim): ...new function.
10180 (pass_tree_unswitch): Replace declaration with that of...
10181 (make_pass_tree_unswitch): ...new function.
10182 (pass_predcom): Replace declaration with that of...
10183 (make_pass_predcom): ...new function.
10184 (pass_iv_canon): Replace declaration with that of...
10185 (make_pass_iv_canon): ...new function.
10186 (pass_scev_cprop): Replace declaration with that of...
10187 (make_pass_scev_cprop): ...new function.
10188 (pass_empty_loop): Replace declaration with that of...
10189 (make_pass_empty_loop): ...new function.
10190 (pass_record_bounds): Replace declaration with that of...
10191 (make_pass_record_bounds): ...new function.
10192 (pass_graphite): Replace declaration with that of...
10193 (make_pass_graphite): ...new function.
10194 (pass_graphite_transforms): Replace declaration with that of...
10195 (make_pass_graphite_transforms): ...new function.
10196 (pass_if_conversion): Replace declaration with that of...
10197 (make_pass_if_conversion): ...new function.
10198 (pass_loop_distribution): Replace declaration with that of...
10199 (make_pass_loop_distribution): ...new function.
10200 (pass_vectorize): Replace declaration with that of...
10201 (make_pass_vectorize): ...new function.
10202 (pass_slp_vectorize): Replace declaration with that of...
10203 (make_pass_slp_vectorize): ...new function.
10204 (pass_complete_unroll): Replace declaration with that of...
10205 (make_pass_complete_unroll): ...new function.
10206 (pass_complete_unrolli): Replace declaration with that of...
10207 (make_pass_complete_unrolli): ...new function.
10208 (pass_parallelize_loops): Replace declaration with that of...
10209 (make_pass_parallelize_loops): ...new function.
10210 (pass_loop_prefetch): Replace declaration with that of...
10211 (make_pass_loop_prefetch): ...new function.
10212 (pass_iv_optimize): Replace declaration with that of...
10213 (make_pass_iv_optimize): ...new function.
10214 (pass_tree_loop_done): Replace declaration with that of...
10215 (make_pass_tree_loop_done): ...new function.
10216 (pass_ch): Replace declaration with that of...
10217 (make_pass_ch): ...new function.
10218 (pass_ccp): Replace declaration with that of...
10219 (make_pass_ccp): ...new function.
10220 (pass_phi_only_cprop): Replace declaration with that of...
10221 (make_pass_phi_only_cprop): ...new function.
10222 (pass_build_ssa): Replace declaration with that of...
10223 (make_pass_build_ssa): ...new function.
10224 (pass_build_alias): Replace declaration with that of...
10225 (make_pass_build_alias): ...new function.
10226 (pass_build_ealias): Replace declaration with that of...
10227 (make_pass_build_ealias): ...new function.
10228 (pass_dominator): Replace declaration with that of...
10229 (make_pass_dominator): ...new function.
10230 (pass_dce): Replace declaration with that of...
10231 (make_pass_dce): ...new function.
10232 (pass_dce_loop): Replace declaration with that of...
10233 (make_pass_dce_loop): ...new function.
10234 (pass_cd_dce): Replace declaration with that of...
10235 (make_pass_cd_dce): ...new function.
10236 (pass_call_cdce): Replace declaration with that of...
10237 (make_pass_call_cdce): ...new function.
10238 (pass_merge_phi): Replace declaration with that of...
10239 (make_pass_merge_phi): ...new function.
10240 (pass_split_crit_edges): Replace declaration with that of...
10241 (make_pass_split_crit_edges): ...new function.
10242 (pass_pre): Replace declaration with that of...
10243 (make_pass_pre): ...new function.
10244 (pass_profile): Replace declaration with that of...
10245 (make_pass_profile): ...new function.
10246 (pass_strip_predict_hints): Replace declaration with that of...
10247 (make_pass_strip_predict_hints): ...new function.
10248 (pass_lower_complex_O0): Replace declaration with that of...
10249 (make_pass_lower_complex_O0): ...new function.
10250 (pass_lower_complex): Replace declaration with that of...
10251 (make_pass_lower_complex): ...new function.
10252 (pass_lower_vector): Replace declaration with that of...
10253 (make_pass_lower_vector): ...new function.
10254 (pass_lower_vector_ssa): Replace declaration with that of...
10255 (make_pass_lower_vector_ssa): ...new function.
10256 (pass_lower_omp): Replace declaration with that of...
10257 (make_pass_lower_omp): ...new function.
10258 (pass_diagnose_omp_blocks): Replace declaration with that of...
10259 (make_pass_diagnose_omp_blocks): ...new function.
10260 (pass_expand_omp): Replace declaration with that of...
10261 (make_pass_expand_omp): ...new function.
10262 (pass_expand_omp_ssa): Replace declaration with that of...
10263 (make_pass_expand_omp_ssa): ...new function.
10264 (pass_object_sizes): Replace declaration with that of...
10265 (make_pass_object_sizes): ...new function.
10266 (pass_strlen): Replace declaration with that of...
10267 (make_pass_strlen): ...new function.
10268 (pass_fold_builtins): Replace declaration with that of...
10269 (make_pass_fold_builtins): ...new function.
10270 (pass_stdarg): Replace declaration with that of...
10271 (make_pass_stdarg): ...new function.
10272 (pass_early_warn_uninitialized): Replace declaration with that of...
10273 (make_pass_early_warn_uninitialized): ...new function.
10274 (pass_late_warn_uninitialized): Replace declaration with that of...
10275 (make_pass_late_warn_uninitialized): ...new function.
10276 (pass_cse_reciprocals): Replace declaration with that of...
10277 (make_pass_cse_reciprocals): ...new function.
10278 (pass_cse_sincos): Replace declaration with that of...
10279 (make_pass_cse_sincos): ...new function.
10280 (pass_optimize_bswap): Replace declaration with that of...
10281 (make_pass_optimize_bswap): ...new function.
10282 (pass_optimize_widening_mul): Replace declaration with that of...
10283 (make_pass_optimize_widening_mul): ...new function.
10284 (pass_warn_function_return): Replace declaration with that of...
10285 (make_pass_warn_function_return): ...new function.
10286 (pass_warn_function_noreturn): Replace declaration with that of...
10287 (make_pass_warn_function_noreturn): ...new function.
10288 (pass_cselim): Replace declaration with that of...
10289 (make_pass_cselim): ...new function.
10290 (pass_phiopt): Replace declaration with that of...
10291 (make_pass_phiopt): ...new function.
10292 (pass_forwprop): Replace declaration with that of...
10293 (make_pass_forwprop): ...new function.
10294 (pass_phiprop): Replace declaration with that of...
10295 (make_pass_phiprop): ...new function.
10296 (pass_tree_ifcombine): Replace declaration with that of...
10297 (make_pass_tree_ifcombine): ...new function.
10298 (pass_dse): Replace declaration with that of...
10299 (make_pass_dse): ...new function.
10300 (pass_nrv): Replace declaration with that of...
10301 (make_pass_nrv): ...new function.
10302 (pass_rename_ssa_copies): Replace declaration with that of...
10303 (make_pass_rename_ssa_copies): ...new function.
10304 (pass_sink_code): Replace declaration with that of...
10305 (make_pass_sink_code): ...new function.
10306 (pass_fre): Replace declaration with that of...
10307 (make_pass_fre): ...new function.
10308 (pass_check_data_deps): Replace declaration with that of...
10309 (make_pass_check_data_deps): ...new function.
10310 (pass_copy_prop): Replace declaration with that of...
10311 (make_pass_copy_prop): ...new function.
10312 (pass_vrp): Replace declaration with that of...
10313 (make_pass_vrp): ...new function.
10314 (pass_uncprop): Replace declaration with that of...
10315 (make_pass_uncprop): ...new function.
10316 (pass_return_slot): Replace declaration with that of...
10317 (make_pass_return_slot): ...new function.
10318 (pass_reassoc): Replace declaration with that of...
10319 (make_pass_reassoc): ...new function.
10320 (pass_rebuild_cgraph_edges): Replace declaration with that of...
10321 (make_pass_rebuild_cgraph_edges): ...new function.
10322 (pass_remove_cgraph_callee_edges): Replace declaration with that of...
10323 (make_pass_remove_cgraph_callee_edges): ...new function.
10324 (pass_build_cgraph_edges): Replace declaration with that of...
10325 (make_pass_build_cgraph_edges): ...new function.
10326 (pass_local_pure_const): Replace declaration with that of...
10327 (make_pass_local_pure_const): ...new function.
10328 (pass_tracer): Replace declaration with that of...
10329 (make_pass_tracer): ...new function.
10330 (pass_warn_unused_result): Replace declaration with that of...
10331 (make_pass_warn_unused_result): ...new function.
10332 (pass_diagnose_tm_blocks): Replace declaration with that of...
10333 (make_pass_diagnose_tm_blocks): ...new function.
10334 (pass_lower_tm): Replace declaration with that of...
10335 (make_pass_lower_tm): ...new function.
10336 (pass_tm_init): Replace declaration with that of...
10337 (make_pass_tm_init): ...new function.
10338 (pass_tm_mark): Replace declaration with that of...
10339 (make_pass_tm_mark): ...new function.
10340 (pass_tm_memopt): Replace declaration with that of...
10341 (make_pass_tm_memopt): ...new function.
10342 (pass_tm_edges): Replace declaration with that of...
10343 (make_pass_tm_edges): ...new function.
10344 (pass_split_functions): Replace declaration with that of...
10345 (make_pass_split_functions): ...new function.
10346 (pass_feedback_split_functions): Replace declaration with that of...
10347 (make_pass_feedback_split_functions): ...new function.
10348 (pass_strength_reduction): Replace declaration with that of...
10349 (make_pass_strength_reduction): ...new function.
10350 (pass_ipa_lower_emutls): Replace declaration with that of...
10351 (make_pass_ipa_lower_emutls): ...new function.
10352 (pass_ipa_function_and_variable_visibility): Replace declaration with
10353 that of...
10354 (make_pass_ipa_function_and_variable_visibility): ...new function.
10355 (pass_ipa_tree_profile): Replace declaration with that of...
10356 (make_pass_ipa_tree_profile): ...new function.
10357 (pass_early_local_passes): Replace declaration with that of...
10358 (make_pass_early_local_passes): ...new function.
10359 (pass_ipa_whole_program_visibility): Replace declaration with that
10360 of...
10361 (make_pass_ipa_whole_program_visibility): ...new function.
10362 (pass_ipa_lto_gimple_out): Replace declaration with that of...
10363 (make_pass_ipa_lto_gimple_out): ...new function.
10364 (pass_ipa_increase_alignment): Replace declaration with that of...
10365 (make_pass_ipa_increase_alignment): ...new function.
10366 (pass_ipa_inline): Replace declaration with that of...
10367 (make_pass_ipa_inline): ...new function.
10368 (pass_ipa_free_lang_data): Replace declaration with that of...
10369 (make_pass_ipa_free_lang_data): ...new function.
10370 (pass_ipa_free_inline_summary): Replace declaration with that of...
10371 (make_pass_ipa_free_inline_summary): ...new function.
10372 (pass_ipa_cp): Replace declaration with that of...
10373 (make_pass_ipa_cp): ...new function.
10374 (pass_ipa_reference): Replace declaration with that of...
10375 (make_pass_ipa_reference): ...new function.
10376 (pass_ipa_pure_const): Replace declaration with that of...
10377 (make_pass_ipa_pure_const): ...new function.
10378 (pass_ipa_pta): Replace declaration with that of...
10379 (make_pass_ipa_pta): ...new function.
10380 (pass_ipa_lto_finish_out): Replace declaration with that of...
10381 (make_pass_ipa_lto_finish_out): ...new function.
10382 (pass_ipa_tm): Replace declaration with that of...
10383 (make_pass_ipa_tm): ...new function.
10384 (pass_ipa_profile): Replace declaration with that of...
10385 (make_pass_ipa_profile): ...new function.
10386 (pass_ipa_cdtor_merge): Replace declaration with that of...
10387 (make_pass_ipa_cdtor_merge): ...new function.
10388 (pass_cleanup_cfg_post_optimizing): Replace declaration with that
10389 of...
10390 (make_pass_cleanup_cfg_post_optimizing): ...new function.
10391 (pass_init_datastructures): Replace declaration with that of...
10392 (make_pass_init_datastructures): ...new function.
10393 (pass_fixup_cfg): Replace declaration with that of...
10394 (make_pass_fixup_cfg): ...new function.
10395 (pass_expand): Replace declaration with that of...
10396 (make_pass_expand): ...new function.
10397 (pass_instantiate_virtual_regs): Replace declaration with that of...
10398 (make_pass_instantiate_virtual_regs): ...new function.
10399 (pass_rtl_fwprop): Replace declaration with that of...
10400 (make_pass_rtl_fwprop): ...new function.
10401 (pass_rtl_fwprop_addr): Replace declaration with that of...
10402 (make_pass_rtl_fwprop_addr): ...new function.
10403 (pass_jump): Replace declaration with that of...
10404 (make_pass_jump): ...new function.
10405 (pass_jump2): Replace declaration with that of...
10406 (make_pass_jump2): ...new function.
10407 (pass_lower_subreg): Replace declaration with that of...
10408 (make_pass_lower_subreg): ...new function.
10409 (pass_cse): Replace declaration with that of...
10410 (make_pass_cse): ...new function.
10411 (pass_fast_rtl_dce): Replace declaration with that of...
10412 (make_pass_fast_rtl_dce): ...new function.
10413 (pass_ud_rtl_dce): Replace declaration with that of...
10414 (make_pass_ud_rtl_dce): ...new function.
10415 (pass_rtl_dce): Replace declaration with that of...
10416 (make_pass_rtl_dce): ...new function.
10417 (pass_rtl_dse1): Replace declaration with that of...
10418 (make_pass_rtl_dse1): ...new function.
10419 (pass_rtl_dse2): Replace declaration with that of...
10420 (make_pass_rtl_dse2): ...new function.
10421 (pass_rtl_dse3): Replace declaration with that of...
10422 (make_pass_rtl_dse3): ...new function.
10423 (pass_rtl_cprop): Replace declaration with that of...
10424 (make_pass_rtl_cprop): ...new function.
10425 (pass_rtl_pre): Replace declaration with that of...
10426 (make_pass_rtl_pre): ...new function.
10427 (pass_rtl_hoist): Replace declaration with that of...
10428 (make_pass_rtl_hoist): ...new function.
10429 (pass_rtl_store_motion): Replace declaration with that of...
10430 (make_pass_rtl_store_motion): ...new function.
10431 (pass_cse_after_global_opts): Replace declaration with that of...
10432 (make_pass_cse_after_global_opts): ...new function.
10433 (pass_rtl_ifcvt): Replace declaration with that of...
10434 (make_pass_rtl_ifcvt): ...new function.
10435 (pass_into_cfg_layout_mode): Replace declaration with that of...
10436 (make_pass_into_cfg_layout_mode): ...new function.
10437 (pass_outof_cfg_layout_mode): Replace declaration with that of...
10438 (make_pass_outof_cfg_layout_mode): ...new function.
10439 (pass_loop2): Replace declaration with that of...
10440 (make_pass_loop2): ...new function.
10441 (pass_rtl_loop_init): Replace declaration with that of...
10442 (make_pass_rtl_loop_init): ...new function.
10443 (pass_rtl_move_loop_invariants): Replace declaration with that of...
10444 (make_pass_rtl_move_loop_invariants): ...new function.
10445 (pass_rtl_unswitch): Replace declaration with that of...
10446 (make_pass_rtl_unswitch): ...new function.
10447 (pass_rtl_unroll_and_peel_loops): Replace declaration with that of...
10448 (make_pass_rtl_unroll_and_peel_loops): ...new function.
10449 (pass_rtl_doloop): Replace declaration with that of...
10450 (make_pass_rtl_doloop): ...new function.
10451 (pass_rtl_loop_done): Replace declaration with that of...
10452 (make_pass_rtl_loop_done): ...new function.
10453 (pass_web): Replace declaration with that of...
10454 (make_pass_web): ...new function.
10455 (pass_cse2): Replace declaration with that of...
10456 (make_pass_cse2): ...new function.
10457 (pass_df_initialize_opt): Replace declaration with that of...
10458 (make_pass_df_initialize_opt): ...new function.
10459 (pass_df_initialize_no_opt): Replace declaration with that of...
10460 (make_pass_df_initialize_no_opt): ...new function.
10461 (pass_reginfo_init): Replace declaration with that of...
10462 (make_pass_reginfo_init): ...new function.
10463 (pass_inc_dec): Replace declaration with that of...
10464 (make_pass_inc_dec): ...new function.
10465 (pass_stack_ptr_mod): Replace declaration with that of...
10466 (make_pass_stack_ptr_mod): ...new function.
10467 (pass_initialize_regs): Replace declaration with that of...
10468 (make_pass_initialize_regs): ...new function.
10469 (pass_combine): Replace declaration with that of...
10470 (make_pass_combine): ...new function.
10471 (pass_if_after_combine): Replace declaration with that of...
10472 (make_pass_if_after_combine): ...new function.
10473 (pass_ree): Replace declaration with that of...
10474 (make_pass_ree): ...new function.
10475 (pass_partition_blocks): Replace declaration with that of...
10476 (make_pass_partition_blocks): ...new function.
10477 (pass_match_asm_constraints): Replace declaration with that of...
10478 (make_pass_match_asm_constraints): ...new function.
10479 (pass_regmove): Replace declaration with that of...
10480 (make_pass_regmove): ...new function.
10481 (pass_split_all_insns): Replace declaration with that of...
10482 (make_pass_split_all_insns): ...new function.
10483 (pass_fast_rtl_byte_dce): Replace declaration with that of...
10484 (make_pass_fast_rtl_byte_dce): ...new function.
10485 (pass_lower_subreg2): Replace declaration with that of...
10486 (make_pass_lower_subreg2): ...new function.
10487 (pass_mode_switching): Replace declaration with that of...
10488 (make_pass_mode_switching): ...new function.
10489 (pass_sms): Replace declaration with that of...
10490 (make_pass_sms): ...new function.
10491 (pass_sched): Replace declaration with that of...
10492 (make_pass_sched): ...new function.
10493 (pass_ira): Replace declaration with that of...
10494 (make_pass_ira): ...new function.
10495 (pass_reload): Replace declaration with that of...
10496 (make_pass_reload): ...new function.
10497 (pass_clean_state): Replace declaration with that of...
10498 (make_pass_clean_state): ...new function.
10499 (pass_branch_prob): Replace declaration with that of...
10500 (make_pass_branch_prob): ...new function.
10501 (pass_value_profile_transformations): Replace declaration with that
10502 of...
10503 (make_pass_value_profile_transformations): ...new function.
10504 (pass_postreload_cse): Replace declaration with that of...
10505 (make_pass_postreload_cse): ...new function.
10506 (pass_gcse2): Replace declaration with that of...
10507 (make_pass_gcse2): ...new function.
10508 (pass_split_after_reload): Replace declaration with that of...
10509 (make_pass_split_after_reload): ...new function.
10510 (pass_branch_target_load_optimize1): Replace declaration with that
10511 of...
10512 (make_pass_branch_target_load_optimize1): ...new function.
10513 (pass_thread_prologue_and_epilogue): Replace declaration with that
10514 of...
10515 (make_pass_thread_prologue_and_epilogue): ...new function.
10516 (pass_stack_adjustments): Replace declaration with that of...
10517 (make_pass_stack_adjustments): ...new function.
10518 (pass_peephole2): Replace declaration with that of...
10519 (make_pass_peephole2): ...new function.
10520 (pass_if_after_reload): Replace declaration with that of...
10521 (make_pass_if_after_reload): ...new function.
10522 (pass_regrename): Replace declaration with that of...
10523 (make_pass_regrename): ...new function.
10524 (pass_cprop_hardreg): Replace declaration with that of...
10525 (make_pass_cprop_hardreg): ...new function.
10526 (pass_reorder_blocks): Replace declaration with that of...
10527 (make_pass_reorder_blocks): ...new function.
10528 (pass_branch_target_load_optimize2): Replace declaration with that
10529 of...
10530 (make_pass_branch_target_load_optimize2): ...new function.
10531 (pass_leaf_regs): Replace declaration with that of...
10532 (make_pass_leaf_regs): ...new function.
10533 (pass_split_before_sched2): Replace declaration with that of...
10534 (make_pass_split_before_sched2): ...new function.
10535 (pass_compare_elim_after_reload): Replace declaration with that of...
10536 (make_pass_compare_elim_after_reload): ...new function.
10537 (pass_sched2): Replace declaration with that of...
10538 (make_pass_sched2): ...new function.
10539 (pass_stack_regs): Replace declaration with that of...
10540 (make_pass_stack_regs): ...new function.
10541 (pass_stack_regs_run): Replace declaration with that of...
10542 (make_pass_stack_regs_run): ...new function.
10543 (pass_df_finish): Replace declaration with that of...
10544 (make_pass_df_finish): ...new function.
10545 (pass_compute_alignments): Replace declaration with that of...
10546 (make_pass_compute_alignments): ...new function.
10547 (pass_duplicate_computed_gotos): Replace declaration with that of...
10548 (make_pass_duplicate_computed_gotos): ...new function.
10549 (pass_variable_tracking): Replace declaration with that of...
10550 (make_pass_variable_tracking): ...new function.
10551 (pass_free_cfg): Replace declaration with that of...
10552 (make_pass_free_cfg): ...new function.
10553 (pass_machine_reorg): Replace declaration with that of...
10554 (make_pass_machine_reorg): ...new function.
10555 (pass_cleanup_barriers): Replace declaration with that of...
10556 (make_pass_cleanup_barriers): ...new function.
10557 (pass_delay_slots): Replace declaration with that of...
10558 (make_pass_delay_slots): ...new function.
10559 (pass_split_for_shorten_branches): Replace declaration with that of...
10560 (make_pass_split_for_shorten_branches): ...new function.
10561 (pass_split_before_regstack): Replace declaration with that of...
10562 (make_pass_split_before_regstack): ...new function.
10563 (pass_convert_to_eh_region_ranges): Replace declaration with that
10564 of...
10565 (make_pass_convert_to_eh_region_ranges): ...new function.
10566 (pass_shorten_branches): Replace declaration with that of...
10567 (make_pass_shorten_branches): ...new function.
10568 (pass_set_nothrow_function_flags): Replace declaration with that of...
10569 (make_pass_set_nothrow_function_flags): ...new function.
10570 (pass_dwarf2_frame): Replace declaration with that of...
10571 (make_pass_dwarf2_frame): ...new function.
10572 (pass_final): Replace declaration with that of...
10573 (make_pass_final): ...new function.
10574 (pass_rtl_seqabstr): Replace declaration with that of...
10575 (make_pass_rtl_seqabstr): ...new function.
10576 (pass_release_ssa_names): Replace declaration with that of...
10577 (make_pass_release_ssa_names): ...new function.
10578 (pass_early_inline): Replace declaration with that of...
10579 (make_pass_early_inline): ...new function.
10580 (pass_inline_parameters): Replace declaration with that of...
10581 (make_pass_inline_parameters): ...new function.
10582 (pass_update_address_taken): Replace declaration with that of...
10583 (make_pass_update_address_taken): ...new function.
10584 (pass_convert_switch): Replace declaration with that of...
10585 (make_pass_convert_switch): ...new function.
10586 * tree-profile.c (pass_ipa_tree_profile): Convert from a global struct
10587 to a subclass of simple_ipa_opt_pass along with...
10588 (pass_data_ipa_tree_profile): ...new pass_data instance and...
10589 (make_pass_ipa_tree_profile): ...new function.
10590 * tree-sra.c (pass_sra_early): Convert from a global struct to a
10591 subclass of gimple_opt_pass along with...
10592 (pass_data_sra_early): ...new pass_data instance and...
10593 (make_pass_sra_early): ...new function.
10594 (pass_sra): Convert from a global struct to a subclass of
10595 gimple_opt_pass along with...
10596 (pass_data_sra): ...new pass_data instance and...
10597 (make_pass_sra): ...new function.
10598 (pass_early_ipa_sra): Convert from a global struct to a subclass of
10599 gimple_opt_pass along with...
10600 (pass_data_early_ipa_sra): ...new pass_data instance and...
10601 (make_pass_early_ipa_sra): ...new function.
10602 * tree-ssa-ccp.c (pass_ccp): Convert from a global struct to a
10603 subclass of gimple_opt_pass along with...
10604 (pass_data_ccp): ...new pass_data instance and...
10605 (make_pass_ccp): ...new function.
10606 (pass_fold_builtins): Convert from a global struct to a subclass of
10607 gimple_opt_pass along with...
10608 (pass_data_fold_builtins): ...new pass_data instance and...
10609 (make_pass_fold_builtins): ...new function.
10610 * tree-ssa-copy.c (pass_copy_prop): Convert from a global struct to a
10611 subclass of gimple_opt_pass along with...
10612 (pass_data_copy_prop): ...new pass_data instance and...
10613 (make_pass_copy_prop): ...new function.
10614 * tree-ssa-copyrename.c (pass_rename_ssa_copies): Convert from a
10615 global struct to a subclass of gimple_opt_pass along with...
10616 (pass_data_rename_ssa_copies): ...new pass_data instance and...
10617 (make_pass_rename_ssa_copies): ...new function.
10618 * tree-ssa-dce.c (pass_dce): Convert from a global struct to a
10619 subclass of gimple_opt_pass along with...
10620 (pass_data_dce): ...new pass_data instance and...
10621 (make_pass_dce): ...new function.
10622 (pass_dce_loop): Convert from a global struct to a subclass of
10623 gimple_opt_pass along with...
10624 (pass_data_dce_loop): ...new pass_data instance and...
10625 (make_pass_dce_loop): ...new function.
10626 (pass_cd_dce): Convert from a global struct to a subclass of
10627 gimple_opt_pass along with...
10628 (pass_data_cd_dce): ...new pass_data instance and...
10629 (make_pass_cd_dce): ...new function.
10630 * tree-ssa-dom.c (pass_dominator): Convert from a global struct to a
10631 subclass of gimple_opt_pass along with...
10632 (pass_data_dominator): ...new pass_data instance and...
10633 (make_pass_dominator): ...new function.
10634 (pass_phi_only_cprop): Convert from a global struct to a subclass of
10635 gimple_opt_pass along with...
10636 (pass_data_phi_only_cprop): ...new pass_data instance and...
10637 (make_pass_phi_only_cprop): ...new function.
10638 * tree-ssa-dse.c (pass_dse): Convert from a global struct to a
10639 subclass of gimple_opt_pass along with...
10640 (pass_data_dse): ...new pass_data instance and...
10641 (make_pass_dse): ...new function.
10642 * tree-ssa-forwprop.c (pass_forwprop): Convert from a global struct to
10643 a subclass of gimple_opt_pass along with...
10644 (pass_data_forwprop): ...new pass_data instance and...
10645 (make_pass_forwprop): ...new function.
10646 * tree-ssa-ifcombine.c (pass_tree_ifcombine): Convert from a global
10647 struct to a subclass of gimple_opt_pass along with...
10648 (pass_data_tree_ifcombine): ...new pass_data instance and...
10649 (make_pass_tree_ifcombine): ...new function.
10650 * tree-ssa-loop-ch.c (pass_ch): Convert from a global struct to a
10651 subclass of gimple_opt_pass along with...
10652 (pass_data_ch): ...new pass_data instance and...
10653 (make_pass_ch): ...new function.
10654 * tree-ssa-loop.c (pass_tree_loop): Convert from a global struct to a
10655 subclass of gimple_opt_pass along with...
10656 (pass_data_tree_loop): ...new pass_data instance and...
10657 (make_pass_tree_loop): ...new function.
10658 (pass_tree_loop_init): Convert from a global struct to a subclass of
10659 gimple_opt_pass along with...
10660 (pass_data_tree_loop_init): ...new pass_data instance and...
10661 (make_pass_tree_loop_init): ...new function.
10662 (pass_lim): Convert from a global struct to a subclass of
10663 gimple_opt_pass along with...
10664 (pass_data_lim): ...new pass_data instance and...
10665 (make_pass_lim): ...new function.
10666 (pass_tree_unswitch): Convert from a global struct to a subclass of
10667 gimple_opt_pass along with...
10668 (pass_data_tree_unswitch): ...new pass_data instance and...
10669 (make_pass_tree_unswitch): ...new function.
10670 (pass_predcom): Convert from a global struct to a subclass of
10671 gimple_opt_pass along with...
10672 (pass_data_predcom): ...new pass_data instance and...
10673 (make_pass_predcom): ...new function.
10674 (pass_vectorize): Convert from a global struct to a subclass of
10675 gimple_opt_pass along with...
10676 (pass_data_vectorize): ...new pass_data instance and...
10677 (make_pass_vectorize): ...new function.
10678 (pass_graphite): Convert from a global struct to a subclass of
10679 gimple_opt_pass along with...
10680 (pass_data_graphite): ...new pass_data instance and...
10681 (make_pass_graphite): ...new function.
10682 (pass_graphite_transforms): Convert from a global struct to a subclass
10683 of gimple_opt_pass along with...
10684 (pass_data_graphite_transforms): ...new pass_data instance and...
10685 (make_pass_graphite_transforms): ...new function.
10686 (pass_check_data_deps): Convert from a global struct to a subclass of
10687 gimple_opt_pass along with...
10688 (pass_data_check_data_deps): ...new pass_data instance and...
10689 (make_pass_check_data_deps): ...new function.
10690 (pass_iv_canon): Convert from a global struct to a subclass of
10691 gimple_opt_pass along with...
10692 (pass_data_iv_canon): ...new pass_data instance and...
10693 (make_pass_iv_canon): ...new function.
10694 (pass_scev_cprop): Convert from a global struct to a subclass of
10695 gimple_opt_pass along with...
10696 (pass_data_scev_cprop): ...new pass_data instance and...
10697 (make_pass_scev_cprop): ...new function.
10698 (pass_record_bounds): Convert from a global struct to a subclass of
10699 gimple_opt_pass along with...
10700 (pass_data_record_bounds): ...new pass_data instance and...
10701 (make_pass_record_bounds): ...new function.
10702 (pass_complete_unroll): Convert from a global struct to a subclass of
10703 gimple_opt_pass along with...
10704 (pass_data_complete_unroll): ...new pass_data instance and...
10705 (make_pass_complete_unroll): ...new function.
10706 (pass_complete_unrolli): Convert from a global struct to a subclass of
10707 gimple_opt_pass along with...
10708 (pass_data_complete_unrolli): ...new pass_data instance and...
10709 (make_pass_complete_unrolli): ...new function.
10710 (pass_parallelize_loops): Convert from a global struct to a subclass
10711 of gimple_opt_pass along with...
10712 (pass_data_parallelize_loops): ...new pass_data instance and...
10713 (make_pass_parallelize_loops): ...new function.
10714 (pass_loop_prefetch): Convert from a global struct to a subclass of
10715 gimple_opt_pass along with...
10716 (pass_data_loop_prefetch): ...new pass_data instance and...
10717 (make_pass_loop_prefetch): ...new function.
10718 (pass_iv_optimize): Convert from a global struct to a subclass of
10719 gimple_opt_pass along with...
10720 (pass_data_iv_optimize): ...new pass_data instance and...
10721 (make_pass_iv_optimize): ...new function.
10722 (pass_tree_loop_done): Convert from a global struct to a subclass of
10723 gimple_opt_pass along with...
10724 (pass_data_tree_loop_done): ...new pass_data instance and...
10725 (make_pass_tree_loop_done): ...new function.
10726 * tree-ssa-math-opts.c (pass_cse_reciprocals): Convert from a global
10727 struct to a subclass of gimple_opt_pass along with...
10728 (pass_data_cse_reciprocals): ...new pass_data instance and...
10729 (make_pass_cse_reciprocals): ...new function.
10730 (pass_cse_sincos): Convert from a global struct to a subclass of
10731 gimple_opt_pass along with...
10732 (pass_data_cse_sincos): ...new pass_data instance and...
10733 (make_pass_cse_sincos): ...new function.
10734 (pass_optimize_bswap): Convert from a global struct to a subclass of
10735 gimple_opt_pass along with...
10736 (pass_data_optimize_bswap): ...new pass_data instance and...
10737 (make_pass_optimize_bswap): ...new function.
10738 (pass_optimize_widening_mul): Convert from a global struct to a
10739 subclass of gimple_opt_pass along with...
10740 (pass_data_optimize_widening_mul): ...new pass_data instance and...
10741 (make_pass_optimize_widening_mul): ...new function.
10742 * tree-ssa-phiopt.c (pass_phiopt): Convert from a global struct to a
10743 subclass of gimple_opt_pass along with...
10744 (pass_data_phiopt): ...new pass_data instance and...
10745 (make_pass_phiopt): ...new function.
10746 (pass_cselim): Convert from a global struct to a subclass of
10747 gimple_opt_pass along with...
10748 (pass_data_cselim): ...new pass_data instance and...
10749 (make_pass_cselim): ...new function.
10750 * tree-ssa-phiprop.c (pass_phiprop): Convert from a global struct to a
10751 subclass of gimple_opt_pass along with...
10752 (pass_data_phiprop): ...new pass_data instance and...
10753 (make_pass_phiprop): ...new function.
10754 * tree-ssa-pre.c (pass_pre): Convert from a global struct to a
10755 subclass of gimple_opt_pass along with...
10756 (pass_data_pre): ...new pass_data instance and...
10757 (make_pass_pre): ...new function.
10758 (pass_fre): Convert from a global struct to a subclass of
10759 gimple_opt_pass along with...
10760 (pass_data_fre): ...new pass_data instance and...
10761 (make_pass_fre): ...new function.
10762 * tree-ssa-reassoc.c (pass_reassoc): Convert from a global struct to a
10763 subclass of gimple_opt_pass along with...
10764 (pass_data_reassoc): ...new pass_data instance and...
10765 (make_pass_reassoc): ...new function.
10766 * tree-ssa-sink.c (pass_sink_code): Convert from a global struct to a
10767 subclass of gimple_opt_pass along with...
10768 (pass_data_sink_code): ...new pass_data instance and...
10769 (make_pass_sink_code): ...new function.
10770 * tree-ssa-strlen.c (pass_strlen): Convert from a global struct to a
10771 subclass of gimple_opt_pass along with...
10772 (pass_data_strlen): ...new pass_data instance and...
10773 (make_pass_strlen): ...new function.
10774 * tree-ssa-structalias.c (pass_build_alias): Convert from a global
10775 struct to a subclass of gimple_opt_pass along with...
10776 (pass_data_build_alias): ...new pass_data instance and...
10777 (make_pass_build_alias): ...new function.
10778 (pass_build_ealias): Convert from a global struct to a subclass of
10779 gimple_opt_pass along with...
10780 (pass_data_build_ealias): ...new pass_data instance and...
10781 (make_pass_build_ealias): ...new function.
10782 (pass_ipa_pta): Convert from a global struct to a subclass of
10783 simple_ipa_opt_pass along with...
10784 (pass_data_ipa_pta): ...new pass_data instance and...
10785 (make_pass_ipa_pta): ...new function.
10786 * tree-ssa-uncprop.c (pass_uncprop): Convert from a global struct to a
10787 subclass of gimple_opt_pass along with...
10788 (pass_data_uncprop): ...new pass_data instance and...
10789 (make_pass_uncprop): ...new function.
10790 * tree-ssa-uninit.c (pass_late_warn_uninitialized): Convert from a
10791 global struct to a subclass of gimple_opt_pass along with...
10792 (pass_data_late_warn_uninitialized): ...new pass_data instance and...
10793 (make_pass_late_warn_uninitialized): ...new function.
10794 * tree-ssa.c (pass_init_datastructures): Convert from a global struct
10795 to a subclass of gimple_opt_pass along with...
10796 (pass_data_init_datastructures): ...new pass_data instance and...
10797 (make_pass_init_datastructures): ...new function.
10798 (pass_early_warn_uninitialized): Convert from a global struct to a
10799 subclass of gimple_opt_pass along with...
10800 (pass_data_early_warn_uninitialized): ...new pass_data instance and...
10801 (make_pass_early_warn_uninitialized): ...new function.
10802 (pass_update_address_taken): Convert from a global struct to a
10803 subclass of gimple_opt_pass along with...
10804 (pass_data_update_address_taken): ...new pass_data instance and...
10805 (make_pass_update_address_taken): ...new function.
10806 * tree-ssanames.c (pass_release_ssa_names): Convert from a global
10807 struct to a subclass of gimple_opt_pass along with...
10808 (pass_data_release_ssa_names): ...new pass_data instance and...
10809 (make_pass_release_ssa_names): ...new function.
10810 * tree-stdarg.c (pass_stdarg): Convert from a global struct to a
10811 subclass of gimple_opt_pass along with...
10812 (pass_data_stdarg): ...new pass_data instance and...
10813 (make_pass_stdarg): ...new function.
10814 * tree-switch-conversion.c (pass_convert_switch): Convert from a
10815 global struct to a subclass of gimple_opt_pass along with...
10816 (pass_data_convert_switch): ...new pass_data instance and...
10817 (make_pass_convert_switch): ...new function.
10818 * tree-tailcall.c (pass_tail_recursion): Convert from a global struct
10819 to a subclass of gimple_opt_pass along with...
10820 (pass_data_tail_recursion): ...new pass_data instance and...
10821 (make_pass_tail_recursion): ...new function.
10822 (pass_tail_calls): Convert from a global struct to a subclass of
10823 gimple_opt_pass along with...
10824 (pass_data_tail_calls): ...new pass_data instance and...
10825 (make_pass_tail_calls): ...new function.
10826 * tree-vect-generic.c (pass_lower_vector): Convert from a global
10827 struct to a subclass of gimple_opt_pass along with...
10828 (pass_data_lower_vector): ...new pass_data instance and...
10829 (make_pass_lower_vector): ...new function.
10830 (pass_lower_vector_ssa): Convert from a global struct to a subclass of
10831 gimple_opt_pass along with...
10832 (pass_data_lower_vector_ssa): ...new pass_data instance and...
10833 (make_pass_lower_vector_ssa): ...new function.
10834 * tree-vectorizer.c (pass_slp_vectorize): Convert from a global struct
10835 to a subclass of gimple_opt_pass along with...
10836 (pass_data_slp_vectorize): ...new pass_data instance and...
10837 (make_pass_slp_vectorize): ...new function.
10838 (pass_ipa_increase_alignment): Convert from a global struct to a
10839 subclass of simple_ipa_opt_pass along with...
10840 (pass_data_ipa_increase_alignment): ...new pass_data instance and...
10841 (make_pass_ipa_increase_alignment): ...new function.
10842 * tree-vrp.c (pass_vrp): Convert from a global struct to a subclass of
10843 gimple_opt_pass along with...
10844 (pass_data_vrp): ...new pass_data instance and...
10845 (make_pass_vrp): ...new function.
10846 * tree.c (pass_ipa_free_lang_data): Convert from a global struct to a
10847 subclass of simple_ipa_opt_pass along with...
10848 (pass_data_ipa_free_lang_data): ...new pass_data instance and...
10849 (make_pass_ipa_free_lang_data): ...new function.
10850 * tsan.c (pass_tsan): Convert from a global struct to a subclass of
10851 gimple_opt_pass along with...
10852 (pass_data_tsan): ...new pass_data instance and...
10853 (make_pass_tsan): ...new function.
10854 (pass_tsan_O0): Convert from a global struct to a subclass of
10855 gimple_opt_pass along with...
10856 (pass_data_tsan_O0): ...new pass_data instance and...
10857 (make_pass_tsan_O0): ...new function.
10858 * var-tracking.c (pass_variable_tracking): Convert from a global
10859 struct to a subclass of rtl_opt_pass along with...
10860 (pass_data_variable_tracking): ...new pass_data instance and...
10861 (make_pass_variable_tracking): ...new function.
10862 * web.c (pass_web): Convert from a global struct to a subclass of
10863 rtl_opt_pass along with...
10864 (pass_data_web): ...new pass_data instance and...
10865 (make_pass_web): ...new function.
10866 * config/epiphany/epiphany.h (pass_mode_switch_use): Replace
10867 declaration with that of...
10868 (make_pass_mode_switch_use): ...new function.
10869 (pass_resolve_sw_modes): Replace declaration with that of...
10870 (make_pass_resolve_sw_modes): ...new function.
10871 * config/epiphany/mode-switch-use.c (pass_mode_switch_use): Convert
10872 from a global struct to a subclass of rtl_opt_pass along with...
10873 (pass_data_mode_switch_use): ...new pass_data instance and...
10874 (make_pass_mode_switch_use): ...new function.
10875 * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes): Convert
10876 from a global struct to a subclass of rtl_opt_pass along with...
10877 (pass_data_resolve_sw_modes): ...new pass_data instance and...
10878 (make_pass_resolve_sw_modes): ...new function.
10879 * config/i386/i386.c (pass_insert_vzeroupper): Convert from a global
10880 struct to a subclass of rtl_opt_pass along with...
10881 (pass_data_insert_vzeroupper): ...new pass_data instance and...
10882 (make_pass_insert_vzeroupper): ...new function.
10883 * config/sparc/sparc.c (pass_work_around_errata): Convert from a
10884 global struct to a subclass of rtl_opt_pass along with...
10885 (pass_data_work_around_errata): ...new pass_data instance and...
10886 (make_pass_work_around_errata): ...new function.
10887 * config/mips/mips.c (pass_mips_machine_reorg2): Convert from a global
10888 struct to a subclass of rtl_opt_pass along with...
10889 (pass_data_mips_machine_reorg2): ...new pass_data instance and...
10890 (make_pass_mips_machine_reorg2): ...new function.
10891
6a389ed5
DM
108922013-08-05 David Malcolm <dmalcolm@redhat.com>
10893
10894 * passes.c (pass_manager::operator new): New.
10895
f7695dbf
DM
108962013-08-05 David Malcolm <dmalcolm@redhat.com>
10897
10898 Handwritten part of conversion of passes to C++ classes.
10899
10900 * Makefile.in (PASS_MANAGER_H): Add dep on pass-instances.def.
10901 (toplev.o): Add dep on PASS_MANAGER_H.
10902 * cgraphunit.c (cgraph_process_new_functions): Rework invocation
10903 of early local pases to reflect this moving from a global to a
10904 member of gcc::pass_manager.
10905 (cgraph_add_new_function): Likewise.
10906 * lto-cgraph.c (lto_output_node): Update for conversion of
10907 struct ipa_opt_pass_d to a C++ subclass of opt_pass.
10908 * passes.c (opt_pass::clone): New.
10909 (opt_pass::gate): New.
10910 (opt_pass::execute): New.
10911 (opt_pass::opt_pass): New.
10912 (pass_manager::execute_early_local_passes): New.
10913 (pass_manager::execute_pass_mode_switching): new.
10914 (finish_optimization_passes): Convert to...
10915 (pass_manager::finish_optimization_passes): ...this.
10916 (finish_optimization_passes): Update for conversion of passes to
10917 C++ classes.
10918 (register_dump_files_1): Use has_gate since we cannot portably
10919 check a vtable entry against NULL.
10920 (dump_one_pass): Likewise.
10921 (ipa_write_summaries_2): Likewise.
10922 (ipa_write_optimization_summaries_1): Likewise.
10923 (ipa_read_summaries_1): Likewise.
10924 (ipa_read_optimization_summaries_1): Likewise.
10925 (execute_ipa_stmt_fixups): Likewise.
10926 (pass_manager::pass_manager): Rewrite pass-creation, invoking
10927 pass-creation functions rather than wiring up globals, and
10928 storing the results in fields of pass_manager generated using
10929 pass-instances.def.
10930 (pass_manager::dump_profile_report): Update for conversion of
10931 passes to C++ classes.
10932 (pass_manager::execute_ipa_summary_passes): Likewise.
10933 (execute_one_ipa_transform_pass): Likewise.
10934 (execute_one_pass): Use has_gate and has_execute since we cannot
10935 portably check a vtable entry against NULL.
10936 * pass_manager.h (pass_manager::finish_optimization_passes): New.
10937 (pass_manager): Use pass-instances.def to add fields for the
10938 various pass instances.
10939 * toplev.c (finalize): Update for move of
10940 finish_optimization_passes to a method of gcc::pass_manager.
10941 * toplev.h (finish_optimization_passes): Move to method of class
10942 pass_manager.
10943 * tree-pass.h (struct pass_data): New.
03b0ee0a 10944 (opt_pass): Convert to C++ class, make it a subclass of pass_data.
f7695dbf
DM
10945 (opt_pass::gate): Convert to virtual function.
10946 (opt_pass::~opt_pass): New.
10947 (opt_pass::clone): New.
10948 (opt_pass::execute): Convert to virtual function.
10949 (opt_pass::opt_pass): New.
10950 (opt_pass::ctxt_): new.
10951 (gimple_opt_pass): Convert to subclass of opt_pass.
10952 (gimple_opt_pass::gimple_opt_pass): New.
10953 (rtl_opt_pass): Convert to subclass of opt_pass.
10954 (rtl_opt_pass::rtl_opt_pass): New.
10955 (ipa_opt_pass_d): Convert to subclass of opt_pass.
10956 (ipa_opt_pass_d::ipa_opt_pass_d): New.
10957 (simple_ipa_opt_pass): Convert to subclass of opt_pass.
10958 (simple_ipa_opt_pass::simple_ipa_opt_pass): New.
10959 * config/i386/i386.c (rest_of_handle_insert_vzeroupper): Rework
10960 invocation of pass_mode_switching to reflect this moving from a
10961 global to a member of gcc::pass_manager.
10962 (ix86_option_override): Rework how pass_insert_vzeroupper is
10963 added to the pass_manager to reflect autogenerated changes.
03b0ee0a 10964 * config/i386/t-i386 (i386.o) Add deps on CONTEXT_H and PASS_MANAGER_H.
f7695dbf 10965
d0b2f831
RE
109662013-08-05 Richard Earnshaw <rearnsha@arm.com>
10967
10968 PR rtl-optimization/57708
10969 * recog.c (peep2_find_free_register): Validate all regs in a
10970 multi-reg mode.
10971
51a5c0c2
JH
109722013-08-05 Jan Hubicka <jh@suse.cz>
10973
10974 PR lto/57602
03b0ee0a
UB
10975 * cgraph.c (verify_cgraph_node): Accept local flags from other
10976 partitions.
51a5c0c2
JH
10977 * ipa.c (symtab_remove_unreachable_nodes): Do not clear local flag.
10978 (function_and_variable_visibility): Likewise.
10979 * trans-mem.c (ipa_tm_create_version): TM versions are not local.
10980
65f0a120
GDR
109812013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
10982
10983 * graph.c (init_graph_slim_pretty_print): Remove.
10984 (print_graph_cfg): Do not call it. Use local pretty printer.
10985 (start_graph_dump): Likewise.
10986
b3f80694
GDR
109872013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
10988
10989 * gimple-pretty-print.c (buffer): Remove.
10990 (initialized): Likewise.
10991 (maybe_init_pretty_print): Likewise.
10992 (print_gimple_stmt): Do not call it. Use non-static local
10993 pretty_printer variable.
10994 (print_gimple_expr): Likewise.
10995 (print_gimple_seq): Likewise.
10996 (gimple_dump_bb): Likewise.
10997
11a877b3
GDR
109982013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
10999
11000 * asan.c (asan_pp): Remove.
11001 (asan_pp_initialized): Likewise.
11002 (asan_pp_initialize): Likewise.
11003 (asan_pp_string): Take a pretty_printer parameter. Adjust callers.
11004 (asan_emit_stack_protection): Tidy. Use local pretty printer.
11005 (asan_add_global): Likewise.
11006
b066401f
GDR
110072013-08-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
11008
11009 * pretty-print.h (pp_base): Remove. Adjust dependent macros.
11010 * diagnostic.h (diagnostic_flush_buffer): Adjust.
11011 * pretty-print.c (pp_formatted_text_data): Likewise.
11012 (pp_indent): Rename from pp_base_indent.
11013 (pp_format): Rename from pp_base_format.
11014 (pp_output_formatted_text): Rename from pp_base_output_formatted_text.
11015 (pp_format_verbatim): Rename from pp_base_format_verbatim.
11016 (pp_flush): Rename from pp_base_flush.
11017 (pp_set_line_maximum_length): Rename from
11018 pp_base_set_line_maximum_length.
11019 (pp_clear_output_area): Rename from pp_base_clear_output_area.
11020 (pp_set_prefix): Rename from pp_base_set_prefix.
11021 (pp_destroy_prefix): Rename from pp_base_destroy_prefix.
11022 (pp_emit_prefix): Rename from pp_base_emit_prefix.
11023 (pp_append_text): Rename from pp_base_append_text.
11024 (pp_formatted_text): Rename from pp_base_formatted_text.
11025 (pp_last_position_in_text): Rename from pp_base_last_position_in_text.
11026 (pp_remaining_character_count_for_line): Rename from
11027 pp_base_remaining_character_count_for_line.
11028 (pp_newline): Rename from pp_base_newline.
11029 (pp_character): Rename from pp_base_character.
11030 (pp_string): Rename from pp_base_string.
11031 (pp_maybe_space): Rename from pp_base_maybe_space.
11032 * asan.c (asan_pp_string): Adjust.
11033 (asan_emit_stack_protection): Likewise.
11034 (asan_add_global): Likewise.
11035 * sched-vis.c (str_pattern_slim): Adjust pretty printer function call.
11036 * tree-mudflap.c (mf_varname_tree): Likewise.
11037 * tree-pretty-print.c (pp_tree_identifier): Rename from
11038 pp_base_tree_identifier.
11039 * tree-pretty-print.h (pp_tree_identifier): Remove macro definition.
11040 Declare as function.
11041
137a1a27
GDR
110422013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
11043
11044 * pretty-print.h (pp_bar_bar): New.
11045 (pp_ampersand_ampersand): Likewise.
11046 (pp_less_equal): Likewise.
11047 (pp_greater_equal): Likewise.
11048 * gimple-pretty-print.c (dump_ternary_rhs): Use specialized pretty
11049 printer functions instead of pp_string or operators and punctuators.
11050 (dump_gimple_call): Likewise.
11051 (dump_gimple_omp_for): Likewise.
11052 (dump_gimple_transaction): Likewise.
11053 (dump_gimple_phi): Likewise.
11054 (pp_gimple_stmt_1): Likewise.
11055 * sched-vis.c (print_insn): Likewise.
11056 * tree-mudflap.c (mf_varname_tree): Likewise.
11057 * tree-pretty-print.c (dump_block_node): Likewise.
11058 (dump_generic_node): Likewise.
11059
815effe1
JH
110602013-08-02 Jan Hubicka <jh@suse.cz>
11061
11062 * lto-cgraph.c (compute_ltrans_boundary): Add abstract origins into
11063 boundaries.
11064 * lto-streamer-out.c (tree_is_indexable): Results decls and
11065 parm decls are not indexable.
11066 (DFS_write_tree_body): Do not follow args and results.
11067 (hash_tree): Likewise.
11068 (output_functions): Rearrange so struct function is needed
11069 only when real body is output; be able to also ouptut abstract
11070 functions; output DECL_ARGUMENTS and DECL_RESULT.
11071 (lto_output): When not in WPA, ale store abstract functions.
11072 (write_symbol): Do not care about RESULT_DECL.
11073 (output_symbol_p): Handle correctly sbtract decls.
11074 * lto-streamer-in.c (input_function): Rearrange so struct
11075 function can be NULL at entry; allow streaming of
11076 functions w/o body; store DECL_ARGUMENTS and DECL_RESULT.
11077 * ipa.c (symtab_remove_unreachable_nodes): Silence confused
11078 sanity check during LTO.
11079 * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Skip
11080 RESULT_DECl and DECL_ARGUMENTS.
11081 * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
11082 Likewise.
11083
07838b13
GDR
110842013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
11085
11086 * pretty-print.h (pp_underscore): New.
11087 (pp_comma): Tidy.
11088 * gimple-pretty-print.c (dump_unary_rhs): Use specialized pretty
11089 printer functions instead of pp_character.
11090 (dump_binary_rhs): Likewise.
11091 (dump_ternary_rhs): Likewise.
11092 (dump_gimple_call_args): Likewise.
11093 (pp_points_to_solution): Likewise.
11094 (dump_gimple_call): Likewise.
11095 (dump_gimple_switch): Likewise.
11096 (dump_gimple_cond): Likewise.
11097 (dump_gimple_bind): Likewise.
11098 (dump_gimple_try): Likewise.
11099 (dump_gimple_omp_for): Likewise.
11100 (dump_gimple_omp_continue): Likewise.
11101 (dump_gimple_omp_single): Likewise.
11102 (dump_gimple_omp_sections): Likewise.
11103 (dump_gimple_omp_block): Likewise.
11104 (dump_gimple_omp_critical): Likewise.
11105 (dump_gimple_transaction): Likewise.
11106 (dump_gimple_asm): Likewise.
11107 (dump_gimple_phi): Likewise.
11108 (dump_gimple_omp_parallel): Likewise.
11109 (dump_gimple_omp_task): Likewise.
11110 (dump_gimple_omp_atomic_load): Likewise.
11111 (dump_gimple_omp_atomic_store): Likewise.
11112 (dump_gimple_mem_ops): Likewise.
11113 (pp_gimple_stmt_1): Likewise.
11114 (pp_cfg_jump): Likewise.
11115 (dump_implicit_edges): Likewise.
11116 (gimple_dump_bb_for_graph): Likewise.
11117 * graph.c (draw_cfg_node): Likewise.
11118 * langhooks.c (lhd_print_error_function): Likewise.
11119 * sched-vis.c (print_exp): Likewise.
11120 (print_value): Likewise.
11121 (print_pattern): Likewise.
11122 (print_insn): Likewise.
11123 (rtl_dump_bb_for_graph): Likewise.
11124 * tree-pretty-print.c (dump_function_declaration): Likewise.
11125 (dump_array_domain): Likewise.
11126 (dump_omp_clause): Likewise.
11127 (dump_location): Likewise.
11128 (dump_generic_node): Likewise.
11129 (print_struct_decl): Likewise.
11130 * diagnostic.c (diagnostic_show_locus): Use pp_space.
11131
bb0d2039
BS
111322013-08-03 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
11133
11134 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Update
11135 candidate table when replacing a candidate statement.
11136 (replace_rhs_if_not_dup): Likewise.
11137 (replace_one_candidate): Likewise.
11138
bc0ec027 111392013-08-02 Jan Hubicka <jh@suse.cz>
cdaa808a 11140 Martin Liska <marxin.liska@gmail.com>
bc0ec027
JH
11141
11142 * cgraphunit.c (add_new_function): Fix logic when adding from
11143 late IPA pass.
11144 (assemble_thunk): Rename to ...
03b0ee0a
UB
11145 (expand_thunk); .. this one; export; get it working with
11146 general functions; make produced gimple valid.
bc0ec027
JH
11147 * cgraph.h (expand_thunk): Declare.
11148
0e8853ee
JH
111492013-08-02 Jan Hubicka <jh@suse.cz>
11150
03b0ee0a
UB
11151 * ipa-cp.c (gather_context_independent_values): Use
11152 ipa_get_param_move_cost.
11153 (get_replacement_map): Remove PARAM; move parameter folding
11154 into tree-inline.c
0e8853ee
JH
11155 (create_specialized_node): Update.
11156 * ipa-prop.c (ipa_populate_param_decls): Do not look for origins;
11157 assert that we have gimple body; update move_cost.
11158 (count_formal_params): Assert that we have gimple body.
11159 (ipa_dump_param): New function.
11160 (ipa_alloc_node_params): Break out from ...
11161 (ipa_initialize_node_params): ... here.
11162 (ipa_get_vector_of_formal_parms): ICE when used in WPA.
11163 (ipa_write_node_info): Stream move costs.
11164 (ipa_read_node_info): Read move costs.
11165 (ipa_update_after_lto_read): Do not recompute node params.
11166 * ipa-prop.h (ipa_param_descriptor): Add move_cost.
11167 (ipa_get_param): Check we are not in WPA.
11168 (ipa_get_param_move_cost): New.
11169 * tree-inline.c (tree_function_versioning): Fold replacement as needed.
11170 * ipa-inline-analysis.c (inline_node_duplication_hook): Expect only
11171 parm numbers to be present.
11172
ecee672b
VM
111732013-08-02 Vladimir Makarov <vmakarov@redhat.com>
11174
11175 PR rtl-optimization/58048
11176 * lra-constraints.c (process_alt_operands): Don't check asm
11177 operand on register.
11178
13ec0527
EB
111792013-08-02 Eric Botcazou <ebotcazou@adacore.com>
11180
11181 * config/sparc/sparc.c (sparc_emit_membar_for_model) <SMM_TSO>: Add
11182 the implied StoreLoad barrier for atomic operations if before.
11183
af15184a
JH
111842013-08-02 Jan Hubicka <jh@suse.cz>
11185 Martin Liska <marxin.liska@gmail.com>
11186
03b0ee0a
UB
11187 * cgraph.c (cgraph_function_body_availability): Do not check
11188 cgraph flags.
af15184a
JH
11189 * cgraph.h (symtab_for_node_and_aliases, symtab_nonoverwritable_alias,
11190 symtab_node_availability): Declare.
11191 * ipa.c (can_replace_by_local_alias): New.
11192 (function_and_variable_visibility): Use it.
03b0ee0a
UB
11193 * symtab.c (symtab_for_node_and_aliases,
11194 symtab_nonoverwritable_alias_1, symtab_nonoverwritable_alias): New.
af15184a 11195
01e54ef8
VM
111962013-08-02 Vladimir Makarov <vmakarov@redhat.com>
11197
11198 PR rtl-optimization/57963
03b0ee0a 11199 * lra-constraints.c (reverse_equiv_p, contains_reloaded_insn_p): New.
01e54ef8
VM
11200 (lra_constraints): Use them.
11201
e2fd7ca7
SN
112022013-08-02 Sofiane Naci <sofiane.naci@arm.com>
11203
03b0ee0a
UB
11204 * config/arm/types.md (define_attr "type"): Add "load_acq"
11205 and "store_rel".
e2fd7ca7
SN
11206 * config/arm/cortex-a53.md (cortex_a53_load1): Update for attribute
11207 changes.
11208 (cortex_a53_store1): Likewise.
11209
0dcc26c3
JH
112102013-08-01 Jan Hubicka <jh@suse.cz>
11211
03b0ee0a
UB
11212 * ipa.c (symtab_remove_unreachable_nodes): Nodes in other
11213 partitions are not needed.
0dcc26c3 11214
0bd72901
UB
112152013-08-01 Uros Bizjak <ubizjak@gmail.com>
11216
11217 * config/i386/i386.h (MAYBE_NON_Q_CLASS_P): New.
11218 * config/i386/i386.c (ix86_secondary_reload): Use INTEGER_CLASS_P and
11219 MAYBE_NON_Q_CLASS_P where appropriate.
11220
12123452
JH
112212013-08-01 Jan Hubicka <jh@suse.cz>
11222
11223 * cgraph.h (release_function_body): Declare.
11224 * tree.c (free_lang_data_in_decl): Free, parameters and return values
11225 of unused delcarations.
11226
ce852f9c
KT
112272013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11228
03b0ee0a
UB
11229 * config/arm/arm.md (minmax_arithsi_non_canon): Emit canonical
11230 RTL form when subtracting a constant.
ce852f9c 11231
c743b246
KT
112322013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11233
11234 * config/arm/arm.md (peepholes for eq (reg1) (reg2/imm)):
11235 Generate canonical plus rtx with negated immediate instead of minus
11236 where appropriate.
11237 * config/arm/arm.c (thumb2_reorg): Handle ADCS <Rd>, <Rn> case.
11238
c0c123ef
JH
112392013-08-01 Jan Hubicka <jh@suse.cz>
11240
11241 * cgraph.c (cgraph_release_function_body): Use used_as_abstract_origin.
11242 (cgraph_release_function_body): Likewise.
11243 (cgraph_can_remove_if_no_direct_calls_p): Likewise.
11244 * cgraph.h (cgrpah_node): Rename abstract_and_needed
11245 to used_as_abstract_origin.
11246 * tree-inline-transfrom.c (can_remove_node_now_p_1): Do not remove
11247 symbols used as abstract origins.
11248 * cgraphunit.c (analyze_functions): Update.
0bd72901
UB
11249 * ipa.c (symtab_remove_unreachable_nodes): Recompute
11250 used_as_abstract_origin.
c0c123ef 11251 * tree-inline.c (tree_function_versioning): Update
0bd72901
UB
11252 used_as_abstract_origin; be ready for DECL_RESULT and
11253 DECL_ARGUMENTS to be NULL.
c0c123ef 11254
0bd72901
UB
11255 * lto-symtab.c (lto_symtab_merge_symbols): Merge duplicated nodes
11256 for abstract functions.
11257 * cgraph.h (symtab_real_symbol_p): Abstract declarations are not
11258 real symbols.
c0c123ef 11259
1f029433
JH
112602013-08-01 Jan Hubicka <jh@suse.cz>
11261
11262 * profile.c (compute_value_histograms): Fix thinko.
11263
c451f4d6
SN
112642013-08-01 Sofiane Naci <sofiane.naci@arm.com>
11265
11266 * config.gcc (aarch64*-*-*): Add aarch-common.o to extra_objs. Add
11267 aarch-common-protos.h to extra_headers.
11268 (aarch64*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
11269 * config/aarch64/aarch64.md: Include "../arm/cortex-a53.md".
11270 * config/aarch64/t-aarch64 (aarch-common.o): Define.
11271
34b512f5
SN
112722013-08-01 Sofiane Naci <sofiane.naci@arm.com>
11273
11274 * config/aarch64/aarch64.md (define_attr "type"): Delete.
11275 Include "../arm/types.md". Define "type" attribute for all patterns.
11276 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update for
11277 attribute changes.
11278
d86e633a
MM
112792013-07-31 Michael Meissner <meissner@linux.vnet.ibm.com>
11280
11281 * config/rs6000/predicates.md (fusion_gpr_addis): New predicates
11282 to support power8 load fusion.
11283 (fusion_gpr_mem_load): Likewise.
11284
11285 * config/rs6000/rs6000-modes.def (PTImode): Update a comment.
11286
11287 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): New
11288 declarations for power8 load fusion.
11289 (emit_fusion_gpr_load): Likewise.
11290
11291 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
11292 tuning for power8, turn on fusion mode by default. Turn on sign
11293 extending fusion mode if normal fusion mode is on, and we are at
11294 -O2 or -O3.
11295 (fusion_gpr_load_p): New function, return true if we can fuse an
11296 addis instruction with a dependent load to a GPR.
11297 (emit_fusion_gpr_load): Emit the instructions for power8 load
11298 fusion to GPRs.
11299
0bd72901 11300 * config/rs6000/vsx.md (VSX_M2): New iterator for fusion peepholes.
d86e633a
MM
11301 (VSX load fusion peepholes): New peepholes to fuse together an
11302 addi instruction with a VSX load instruction.
11303
11304 * config/rs6000/rs6000.md (GPR load fusion peepholes): New
11305 peepholes to fuse an addis instruction with a load to a GPR base
11306 register. If we are supporting sign extending fusions, convert
11307 sign extending loads to zero extending loads and add an explicit
11308 sign extension.
11309
c3f35647
SN
113102013-07-31 Sofiane Naci <sofiane.naci@arm.com>
11311
11312 * config.gcc (arm*-*-*): Add aarch-common.o to extra_objs. Add
11313 aarch-common-protos.h to extra_headers.
11314 (arm*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
11315 * config/arm/arm.c (arm_early_load_addr_dep): Move from here to ...
11316 (arm_early_store_addr_dep): Likewise.
0bd72901
UB
11317 (arm_no_early_alu_shift_dep): Likewise.
11318 (arm_no_early_alu_shift_value_dep): Likewise.
11319 (arm_no_early_mul_dep): Likewise.
11320 (arm_no_early_store_addr_dep): Likewise.
11321 (arm_mac_accumulator_is_mul_result): Likewise.
11322 (arm_mac_accumulator_is_result): Likewise.
c3f35647 11323 * config/arm/aarch-common.c: ... here. New file.
0bd72901
UB
11324 * config/arm/arm-protos.h (arm_early_load_addr_dep): Move from
11325 here to ...
c3f35647 11326 (arm_early_store_addr_dep): Likewise.
0bd72901
UB
11327 (arm_no_early_alu_shift_dep): Likewise.
11328 (arm_no_early_alu_shift_value_dep): Likewise.
11329 (arm_no_early_mul_dep): Likewise.
11330 (arm_no_early_store_addr_dep): Likewise.
11331 (arm_mac_accumulator_is_mul_result): Likewise.
11332 (arm_mac_accumulator_is_result): Likewise.
c3f35647
SN
11333 * config/arm/aarch-common-protos.h: ... here. New file.
11334 * config/arm/t-arm (aarch-common.o): Define.
11335
113362013-07-31 Sofiane Naci <sofiane.naci@arm.com>
11337
11338 * config/arm/arm.md: Include new file "types.md".
11339 (define_attr "type"): Move from here to ...
11340 (define_attr "mul32"): Likewise.
11341 (define_attr "mul64"): Likewise.
11342 * config/arm/types.md: ... here. New file.
11343
228c1313
SH
113442013-07-31 Sebastian Huber <sebastian.huber@embedded-brains.de>
11345
11346 * config.gcc (*-*-rtems*): Use __cxa_atexit by default.
11347 * config/rs6000/rtems.h (TARGET_LIBGCC_SDATA_SECTION): Define.
11348
d6e9046d 113492013-07-31 Jan-Benedict Glaw <jbglaw@lug-owl.de>
8ac499bb
JBG
11350
11351 * gen-pass-instances.awk: Fix offset of substr().
11352
a167b052
DM
113532013-07-31 David Malcolm <dmalcolm@redhat.com>
11354
11355 * Makefile.in (pass-instances.def): New.
11356 (passes.o): Replace dependency on passes.def with one on
11357 pass-instances.def
11358
11359 * gen-pass-instances.awk: New.
11360
11361 * passes.c (pass_manager::pass_manager): Use pass-instances.def
11362 rather than passes.def, updating local definition of NEXT_PASS
11363 macro to add an extra NUM parameter (currently unused).
11364
315f8c0e
DM
113652013-07-30 David Malcolm <dmalcolm@redhat.com>
11366
11367 * Makefile.in (PASS_MANAGER_H): New.
11368 (lto-cgraph.o): Depend on CONTEXT_H and PASS_MANAGER_H.
11369 (passes.o): Likewise.
11370 (statistics.o): Likewise.
11371 (cgraphunit.o): Likewise.
11372 (context.o): Depend on PASS_MANAGER_H.
11373
11374 * pass_manager.h: New.
11375
11376 * cgraphunit.c (cgraph_add_new_function): Update for moves
11377 of globals to fields of pass_manager.
11378 (analyze_function): Likewise.
11379 (expand_function): Likewise.
11380 (ipa_passes): Likewise.
11381 (compile): Likewise.
11382
11383 * context.c (context::context): New.
11384 * context.h (context::context): New.
11385 (context::get_passes): New.
11386 (context::passes_): New.
11387
11388 * lto-cgraph.c (input_node): Update for moves of globals to
11389 fields of pass_manager.
11390
11391 * passes.c (all_passes): Remove, in favor of a field of the
11392 same name within the new class pass_manager.
11393 (all_small_ipa_passes): Likewise.
11394 (all_lowering_passes): Likewise.
11395 (all_regular_ipa_passes): Likewise.
11396 (all_late_ipa_passes): Likewise.
11397 (all_lto_gen_passes): Likewise.
11398 (passes_by_id): Likewise.
11399 (passes_by_id_size): Likewise.
11400 (gcc_pass_lists): Remove, in favor of "pass_lists" field within
11401 the new class pass_manager.
11402 (set_pass_for_id): Convert to...
11403 (pass_manager::set_pass_for_id): ...method.
11404 (get_pass_for_id): Convert to...
11405 (pass_manager::get_pass_for_id): ...method.
11406 (register_one_dump_file): Move body of implementation into...
11407 (pass_manager::register_one_dump_file): ...here.
11408 (register_dump_files_1): Convert to...
11409 (pass_manager::register_dump_files_1): ...method.
11410 (register_dump_files): Convert to...
11411 (pass_manager::register_dump_files): ...method.
11412 (create_pass_tab): Update for moves of globals to fields of
11413 pass_manager.
11414 (dump_passes): Move body of implementation into...
11415 (pass_manager::dump_passes): ...here.
11416 (register_pass): Move body of implementation into...
11417 (pass_manager::register_pass): ...here.
11418 (init_optimization_passes): Convert into...
11419 (pass_manager::pass_manager): ...constructor for new
11420 pass_manager class, and initialize the pass_lists array.
11421 (check_profile_consistency): Update for moves of globals to
11422 fields of pass_manager.
11423 (dump_profile_report): Move body of implementation into...
11424 (pass_manager::dump_profile_report): ...here.
11425 (ipa_write_summaries_1): Update for moves of pass lists from
11426 being globals to fields of pass_manager.
11427 (ipa_write_optimization_summaries): Likewise.
11428 (ipa_read_summaries): Likewise.
11429 (ipa_read_optimization_summaries): Likewise.
11430 (execute_all_ipa_stmt_fixups): Likewise.
11431
11432 * statistics.c (statistics_fini): Update for moves of globals to
11433 fields of pass_manager.
11434
11435 * toplev.c (general_init): Replace call to
11436 init_optimization_passes with construction of the pass_manager
11437 instance.
11438
11439 * tree-pass.h (all_passes): Remove, in favor of a field of the
11440 same name within the new class pass_manager.
11441 (all_small_ipa_passes): Likewise.
11442 (all_lowering_passes): Likewise.
11443 (all_regular_ipa_passes): Likewise.
11444 (all_lto_gen_passes): Likewise.
11445 (all_late_ipa_passes): Likewise.
11446 (passes_by_id): Likewise.
11447 (passes_by_id_size): Likewise.
11448 (gcc_pass_lists): Remove, in favor of "pass_lists" field within
11449 the new class pass_manager.
11450 (get_pass_for_id): Remove.
11451
02cab1c1
RE
114522013-07-30 Richard Earnshaw <rearnsha@arm.com>
11453
11454 * config.gcc (arm): Require 64-bit host-wide-int for all ARM target
11455 configs.
11456
b2d3f886
RE
114572013-07-30 Richard Earnshaw <rearnsha@arm.com>
11458
11459 * arm.md (mulhi3): New expand pattern.
11460
605e86fa
JH
114612013-07-30 Jan Hubicka <jh@suse.cz>
11462 Martin Liska <marxin.liska@gmail.com>
11463
11464 * profile.c (compute_value_histograms): Do not ICE when
11465 there is mismatch only on some counters.
11466
14a87636
ZC
114672013-07-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
11468
11469 PR rtl-optimization/57637
11470 * function.c (move_insn_for_shrink_wrap): Also check the
11471 GEN set of the LIVE problem for the liveness analysis
11472 if it exists, otherwise give up.
11473
0100cd3f
BS
114742013-07-29 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
11475
11476 PR tree-optimization/57993
11477 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Record
11478 replaced statement in the candidate table.
11479 (phi_add_costs): Return infinite cost when the hidden basis does
11480 not dominate all phis on which the candidate is dependent.
11481 (replace_one_candidate): Record replaced statement in the
11482 candidate table.
11483
f0d811f7
JR
114842013-07-29 Joern Rennecke <joern.rennecke@embecosm.com>
11485
11486 * config/epiphany/epiphany.md (*isub_i+2): New peephole.
11487 (ashlv2si3): New expander.
11488 (*ashlv2si3_i): New define_insn_and_split.
11489 * predicates.md (float_operation): Allow patterns with three
11490 basic sub-patterns.
11491
bba33211
JR
11492 PR rtl-optimization/58021
11493 * mode-switching.c (create_pre_exit): Always split off preceding
11494 insns if we are not at the basic block head.
11495
ff3f3951
MR
114962013-07-29 Maciej W. Rozycki <macro@codesourcery.com>
11497
11498 * config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Handle `-mnan=2008'.
11499 (UCLIBC_DYNAMIC_LINKER): New macro.
11500 * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32): Handle
11501 `-mnan=2008'.
11502 (GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32): Likewise.
11503 (UCLIBC_DYNAMIC_LINKER32): Undefine macro first. Handle
11504 `-mnan=2008'.
11505 (UCLIBC_DYNAMIC_LINKER64): Redefine macro.
11506 (UCLIBC_DYNAMIC_LINKERN32): Likewise.
11507 * config/mips/mips-modes.def: Remove RESET_FLOAT_FORMAT calls
11508 for SF and DF modes. Use ieee_quad_format for TF mode.
11509 * config/mips/mips-opts.h (mips_ieee_754_setting): New enum.
11510 * config/mips/mips.c (mips_file_start): Output a `.nan' directive.
11511 (mips_option_override): Handle `-mnan=legacy'.
11512 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Handle
11513 `-mabs=2008' and `-mnan=2008'.
11514 (OPTION_DEFAULT_SPECS): Add "nan" default.
11515 (ASM_SPEC): Handle `-mnan='.
11516 [!HAVE_AS_NAN] (HAVE_AS_NAN): New macro.
11517 * config/mips/mips.md (abs<mode>2): Handle `-mabs=2008', update
11518 comment accordingly.
11519 (neg<mode>2): Likewise.
11520 * config/mips/mips.opt (mabs, mnan): New options.
11521 * doc/install.texi (Configuration): Document `--with-nan=' option.
11522 * doc/invoke.texi (Option Summary): List MIPS `-mabs=' and
11523 `-mnan=' options.
11524 (MIPS Options): Document them.
11525 * config.gcc <mips*-*-*>: Handle `--with-nan='.
11526 * configure.ac <mips*-*-*>: Check for GAS `-mnan=2008' support.
11527 * configure: Regenerate.
11528 * config.in: Regenerate.
11529
576e2f37
UB
115302013-07-29 Uros Bizjak <ubizjak@gmail.com>
11531
11532 * config/i386/i386.md (float post-reload splitters): Do not check
11533 for subregs of SSE registers.
11534
115352013-07-29 Uros Bizjak <ubizjak@gmail.com>
11536 H.J. Lu <hongjiu.lu@intel.com>
11537
11538 PR target/57954
11539 PR target/57988
11540 * config/i386/i386.md (post-reload splitter
11541 to avoid partial SSE reg dependency stalls): New pattern.
11542
a71f0749
DV
115432013-07-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
11544
11545 * config/s390/s390.md ("movcc"): Swap load and store instructions.
11546
4c97f1cc
JR
115472013-07-27 Joern Rennecke <joern.rennecke@embecosm.com>
11548
11549 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
11550 Also reserve space for saving UNKNOWN_REGNUM for leaf functions.
11551
b0c733d8
CC
115522013-07-26 Cary Coutant <ccoutant@google.com>
11553
11554 * dwarf2out.c (die_checksum_ordered): Don't include template
11555 instantiations in signature.
11556 (is_template_parameter): New function.
11557 (is_template_instantiation): New function.
11558 (generate_skeleton_bottom_up): Don't include template instantiations
11559 in type unit DIE.
11560 (generate_skeleton): Likewise.
11561 (break_out_comdat_types): Move recursive call to break out nested
11562 types earlier.
11563 (prune_unused_types_mark_generic_parms_dies): Call
11564 is_template_parameter.
11565
040d8a1c
IB
115662013-07-26 Ian Bolton <ian.bolton@arm.com>
11567
11568 * config/aarch64/aarch64.md (neg<mode>2): Offer alternative that
11569 uses vector registers.
89fdc743 11570 * config/aarch64/iterators.md: Add attributes rtn and vas.
040d8a1c 11571
85bd4ac6 115722013-07-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
576e2f37 11573 Richard Earnshaw <richard.earnshaw@arm.com>
85bd4ac6
KT
11574
11575 * combine.c (simplify_comparison): Re-canonicalize operands
576e2f37 11576 where appropriate.
85bd4ac6
KT
11577 * config/arm/arm.md (movcond_addsi): New splitter.
11578
b6051207
SA
115792013-07-25 Sterling Augustine <saugustine@google.com>
11580
11581 * dwarf2out.c (size_of_pubnames): Move code to...
11582 (include_pubname_in_output): ...here. New.
11583 (want_pubnames): Rearrange.
11584 (output_pubnames): Call include_pubname_in_output. Move assertion.
11585
41a7c215
CM
115862013-07-25 Cameron McInally <cameron.mcinally@nyu.edu>
11587
11588 * doc/extend.texi: Fix return types for __builtin_ia32_cmp*s builtins.
11589
115902013-07-25 Cameron McInally <cameron.mcinally@nyu.edu>
11591
11592 PR target/38836
11593 * doc/extend.texi: Remove obsolete builtins. Fix
11594 typo for __builtin_ia32_loadss and __builtin_ia32_cmpnltss.
11595
49bde175
JH
115962013-07-25 Jan Hubicka <jh@suse.cz>
11597
11598 * cgraph.c (release_function_body): Break out from ...
11599 (cgraph_release_function_body): ... this one; also release DECL_RESULT
11600 and DECL_ARGUMENTS.
11601 * ipa-cp.c (get_replacement_map): Add parm_num argument; do not set
11602 old_tree in the map.
11603 (create_specialized_node): Update.
11604 * lto-cgraph.c (output_node_opt_summary): Do not translate old_tree
11605 into index.
41a7c215
CM
11606 * cgraphclones.c (cgraph_create_virtual_clone): Do not copy
11607 DECL_ARGUMENTS, DECL_INITIAL and DECL_RESULT.
49bde175
JH
11608 * ipa-prop.c (ipa_populate_param_decls): Look for origin of clones.
11609 * tree-inline.c (initialize_cfun): Initialize DECL_ARGUMENTS and
11610 DECL_RESULT.
11611
4870352d
KT
116122013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11613
11614 * config/arm/arm.md (arm_addsi3, addsi3_carryin_<optab>,
11615 addsi3_carryin_alt2_<optab>): Correct output template.
11616
1d6aee1c
KT
116172013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11618
11619 * config/arm/arm-fixed.md (ssmulsa3, usmulusa3):
11620 Adjust for arm_restrict_it.
11621 Remove trailing whitespace.
11622
c7cafd75
MK
116232013-07-25  Mark Kettenis  <kettenis@openbsd.org>
11624
017d38f5
MK
11625 * config/pa/pa.c (pa_trampoline_init): Emit __enable_execute_stack
11626 libcall if HAVE_ENABLE_EXECUTE_STACK is defined.
11627
c7cafd75
MK
11628 * config.gcc (hppa-*-openbsd*): Don't set tmake_file.
11629
00b7527b
VM
116302013-07-25 Vladimir Makarov <vmakarov@redhat.com>
11631
11632 PR rtl-optimization/57960
11633 * lra-constraints.c (process_alt_operands): Use the right mode
11634 when checking strict_low.
11635
4f63dfc6
JH
116362013-07-25 Jan Hubicka <jh@suse.cz>
11637
11638 * lto-symtab.c (lto_cgraph_replace_node): Release function body.
11639 * cgraph.c (cgraph_remove_node): Do not release function body
11640 when in cgraph streaming.
11641 * ipa.c (process_references, symtab_remove_unreachable_nodes): Objects
41a7c215
CM
11642 in other partitions are not considered reachable; fix handling of
11643 clones.
4f63dfc6 11644
e6dcfa18
RR
116452013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11646
11647 * config/arm/arm.md (*sibcall_insn): Remove unnecessary space.
11648
0b93d3b6
RR
116492013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11650
11651 PR target/19599
11652 PR target/57731
bb80c2eb 11653 PR target/57837
e6dcfa18 11654 * config/arm/arm.md ("*sibcall_insn): Replace use of
0b93d3b6 11655 Ss with US. Adjust output for v5 and v4t.
41a7c215 11656 (*sibcall_value_insn): Likewise and loosen predicate on operand0.
e6dcfa18 11657
0b93d3b6
RR
11658 * config/arm/constraints.md ("Ss"): Rename to US.
11659
690688b3
TG
116602013-07-25 Terry Guo <terry.guo@arm.com>
11661
11662 * config/arm/arm.c (thumb1_size_rtx_costs): Assign proper cost for
11663 shift_add/shift_sub0/shift_sub1 RTXs.
11664
a4ad093b 116652013-07-24 Bill Schmidt <wschmidt@linux.ibm.com>
12211b99 11666 Anton Blanchard <anton@au1.ibm.com>
a4ad093b
BS
11667
11668 * config/rs6000/altivec.md (altivec_vpkpx): Handle little endian.
11669 (altivec_vpks<VI_char>ss): Likewise.
11670 (altivec_vpks<VI_char>us): Likewise.
11671 (altivec_vpku<VI_char>us): Likewise.
11672 (altivec_vpku<VI_char>um): Likewise.
11673
8c5005ce
DM
116742013-07-24 David Malcolm <dmalcolm@redhat.com>
11675
11676 Introduce context class.
11677
11678 * Makefile.in (CONTEXT_H): New.
11679 (OBJS): Add context.o.
11680 (toplev.o): Add CONTEXT_H to dependencies.
11681 (context.o): New.
11682
41a7c215 11683 * toplev.c (general_init): Create the singleton gcc::context instance.
8c5005ce
DM
11684
11685 * context.c: New.
11686
11687 * context.h: New.
11688
ce4a9422
JR
116892013-07-24 Joern Rennecke <joern.rennecke@embecosm.com>
11690
11691 PR rtl-optimization/57968
11692 * mode-switching.c (create_pre_exit): Allow instructions that
11693 don't set a return register to need a non-exit mode.
11694
493f4c9e 116952013-07-24 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
12211b99 11696 Anton Blanchard <anton@au1.ibm.com>
493f4c9e 11697
b5860fd3
WS
11698 * config/rs6000/vector.md (vec_realign_load_<mode>): Reorder input
11699 operands to vperm for little endian.
11700 * config/rs6000/rs6000.c (rs6000_expand_builtin): Use lvsr instead
11701 of lvsl to create the control mask for a vperm for little endian.
493f4c9e 11702
73792b92 117032013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 11704 Anton Blanchard <anton@au1.ibm.com>
73792b92
BS
11705
11706 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Reverse
11707 two operands for little-endian.
11708
14c21302
SE
117092013-07-23 Steve Ellcey <sellcey@mips.com>
11710
11711 * config/mips/mips.c (mips_case_values_threshold): New.
11712 (TARGET_CASE_VALUES_THRESHOLD): Define.
11713
a6056198 117142013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 11715 Anton Blanchard <anton@au1.ibm.com>
a6056198
BS
11716
11717 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Correct
11718 selection of field for vector splat in little endian mode.
11719
dd7a40e1
MM
117202013-07-23 Michael Meissner <meissner@linux.vnet.ibm.com>
11721
11722 * config/rs6000/vector.md (xor<mode>3): Move 128-bit boolean
11723 expanders to rs6000.md.
11724 (ior<mode>3): Likewise.
11725 (and<mode>3): Likewise.
11726 (one_cmpl<mode>2): Likewise.
11727 (nor<mode>3): Likewise.
11728 (andc<mode>3): Likewise.
11729 (eqv<mode>3): Likewise.
11730 (nand<mode>3): Likewise.
11731 (orc<mode>3): Likewise.
11732
11733 * config/rs6000/rs6000-protos.h (rs6000_split_logical): New
11734 declaration.
11735
11736 * config/rs6000/rs6000.c (rs6000_split_logical_inner): Add support
11737 to split multi-word logical operations.
11738 (rs6000_split_logical_di): Likewise.
11739 (rs6000_split_logical): Likewise.
11740
11741 * config/rs6000/vsx.md (VSX_L2): Delete, no longer used.
11742 (vsx_and<mode>3_32bit): Move 128-bit logical insns to rs6000.md,
11743 and allow TImode operations in 32-bit.
11744 (vsx_and<mode>3_64bit): Likewise.
11745 (vsx_ior<mode>3_32bit): Likewise.
11746 (vsx_ior<mode>3_64bit): Likewise.
11747 (vsx_xor<mode>3_32bit): Likewise.
11748 (vsx_xor<mode>3_64bit): Likewise.
11749 (vsx_one_cmpl<mode>2_32bit): Likewise.
11750 (vsx_one_cmpl<mode>2_64bit): Likewise.
11751 (vsx_nor<mode>3_32bit): Likewise.
11752 (vsx_nor<mode>3_64bit): Likewise.
11753 (vsx_andc<mode>3_32bit): Likewise.
11754 (vsx_andc<mode>3_64bit): Likewise.
11755 (vsx_eqv<mode>3_32bit): Likewise.
11756 (vsx_eqv<mode>3_64bit): Likewise.
11757 (vsx_nand<mode>3_32bit): Likewise.
11758 (vsx_nand<mode>3_64bit): Likewise.
11759 (vsx_orc<mode>3_32bit): Likewise.
11760 (vsx_orc<mode>3_64bit): Likewise.
11761
11762 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Always allow vector
11763 logical types in GPRs.
11764
11765 * config/rs6000/altivec.md (altivec_and<mode>3): Move 128-bit
11766 logical insns to rs6000.md, and allow TImode operations in
11767 32-bit.
11768 (altivec_ior<mode>3): Likewise.
11769 (altivec_xor<mode>3): Likewise.
11770 (altivec_one_cmpl<mode>2): Likewise.
11771 (altivec_nor<mode>3): Likewise.
11772 (altivec_andc<mode>3): Likewise.
11773
11774 * config/rs6000/rs6000.md (BOOL_128): New mode iterators and mode
11775 attributes for moving the 128-bit logical operations into
11776 rs6000.md.
11777 (BOOL_REGS_OUTPUT): Likewise.
11778 (BOOL_REGS_OP1): Likewise.
11779 (BOOL_REGS_OP2): Likewise.
11780 (BOOL_REGS_UNARY): Likewise.
11781 (BOOL_REGS_AND_CR0): Likewise.
11782 (one_cmpl<mode>2): Add support for DI logical operations on
11783 32-bit, splitting the operations to 32-bit.
11784 (anddi3): Likewise.
11785 (iordi3): Likewise.
11786 (xordi3): Likewise.
11787 (and<mode>3, 128-bit types): Rewrite 2013-06-06 logical operator
11788 changes to combine the 32/64-bit code, allow logical operations on
11789 TI mode in 32-bit, and to use similar match_operator patterns like
11790 scalar mode uses. Combine the Altivec and VSX code for logical
11791 operations, and move it here.
11792 (ior<mode>3, 128-bit types): Likewise.
11793 (xor<mode>3, 128-bit types): Likewise.
11794 (one_cmpl<mode>3, 128-bit types): Likewise.
11795 (nor<mode>3, 128-bit types): Likewise.
11796 (andc<mode>3, 128-bit types): Likewise.
11797 (eqv<mode>3, 128-bit types): Likewise.
11798 (nand<mode>3, 128-bit types): Likewise.
11799 (orc<mode>3, 128-bit types): Likewise.
11800 (and<mode>3_internal): Likewise.
11801 (bool<mode>3_internal): Likewise.
11802 (boolc<mode>3_internal1): Likewise.
11803 (boolc<mode>3_internal2): Likewise.
11804 (boolcc<mode>3_internal1): Likewise.
11805 (boolcc<mode>3_internal2): Likewise.
11806 (eqv<mode>3_internal1): Likewise.
11807 (eqv<mode>3_internal2): Likewise.
11808 (one_cmpl1<mode>3_internal): Likewise.
11809
12211b99 118102013-07-23 David Holsgrove <david.holsgrove@xilinx.com>
9b69d4b4
DH
11811
11812 * config/microblaze/microblaze.c (microblaze_expand_prologue):
11813 Rename flag_stack_usage to flag_stack_usage_info.
11814
12211b99 118152013-07-23 David Holsgrove <david.holsgrove@xilinx.com>
450b0ebb 11816
a5f257fd
ME
11817 * config/microblaze/sync.md: New file.
11818 * config/microblaze/microblaze.md: Include sync.md
11819 * config/microblaze/microblaze.c: Add print_operand 'y'.
11820 * config/microblaze/constraints.md: Add memory_contraint
11821 'Q' which is a single register.
450b0ebb 11822
49fba14f
EB
118232013-07-23 Eric Botcazou <ebotcazou@adacore.com>
11824
11825 * doc/invoke.texi (SPARC Options): Document new leon3 processor value.
11826
c7b3b99f
PCC
118272013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu>
11828
11829 * reload.c (find_reloads): Exit loop once we find this operand
11830 cannot be reloaded somehow for this alternative.
11831
11832 * reload.c (find_reloads): Exit loop once we find a hard register.
11833
11834 * rtlanal.c (computed_jump_p): Exit loop once we find label
11835 reference is used.
11836
11837 * i386.c (ix86_pad_returns): Exit loop after setting replace.
11838
11839 * cfgloopmanip.c (remove_path): Exit loop after setting
11840 irred_invalidated.
11841
11842 * gensupport.c (subst_dup): Avoid loop if code is not
11843 MATCH_DUP nor MATCH_OP_DUP.
11844
c8fbf1fa
NBJ
118452013-07-23 Nicklas Bo Jensen <nbjensen@gmail.com>
11846
11847 * doc/md.texi (Machine-Specific Peephole Optimizers): Fix a typo.
11848
9259db42
YZ
118492013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
11850
11851 * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Also return
11852 true for SP_REGNUM if mode == ptr_mode.
11853 * config/aarch64/aarch64.h (ADDITIONAL_REGISTER_NAMES): Add "wsp"
11854 with value R0_REGNUM + 31.
11855
00edcfbe
YZ
118562013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
11857
11858 * config/aarch64/aarch64.c (aarch64_pad_arg_upward): In big-endian,
11859 pad pointer-typed argument downward.
11860
43be9a95
YZ
118612013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
11862
11863 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define _ILP32
11864 and __ILP32__ when the ILP32 model is in use.
11865
28514dda
YZ
118662013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
11867
11868 * config/aarch64/aarch64.c (POINTER_BYTES): New define.
11869 (aarch64_load_symref_appropriately): In the case of
11870 SYMBOL_SMALL_ABSOLUTE, use the mode of 'dest' instead of Pmode
11871 to generate new rtx; likewise to the case of SYMBOL_SMALL_GOT.
11872 (aarch64_expand_mov_immediate): In the case of SYMBOL_FORCE_TO_MEM,
11873 change to pass 'ptr_mode' to force_const_mem and zero-extend 'mem'
11874 if 'mode' doesn't equal to 'ptr_mode'.
11875 (aarch64_output_mi_thunk): Add an assertion on the alignment of
11876 'vcall_offset'; change to call aarch64_emit_move differently depending
11877 on whether 'Pmode' equals to 'ptr_mode' or not; use 'POINTER_BYTES'
11878 to calculate the upper bound of 'vcall_offset'.
11879 (aarch64_cannot_force_const_mem): Change to also return true if
11880 mode != ptr_mode.
11881 (aarch64_legitimize_reload_address): In the case of large
11882 displacements, add new local variable 'xmode' and an assertion
11883 based on it; change to use 'xmode' to generate the new rtx and
11884 reload.
11885 (aarch64_asm_trampoline_template): Change to generate the template
11886 differently depending on TARGET_ILP32 or not; change to use
11887 'POINTER_BYTES' in the argument passed to assemble_aligned_integer.
11888 (aarch64_trampoline_size): Removed.
11889 (aarch64_trampoline_init): Add new local constant 'tramp_code_sz'
11890 and replace immediate literals with it. Change to use 'ptr_mode'
11891 instead of 'DImode' and call convert_memory_address if the mode
11892 of 'fnaddr' doesn't equal to 'ptr_mode'.
11893 (aarch64_elf_asm_constructor): Change to use assemble_aligned_integer
11894 to output symbol.
11895 (aarch64_elf_asm_destructor): Likewise.
11896 * config/aarch64/aarch64.h (TRAMPOLINE_SIZE): Change to be dependent
11897 on TARGET_ILP32 instead of aarch64_trampoline_size.
11898 * config/aarch64/aarch64.md (movsi_aarch64): Add new alternatives
11899 of 'mov' between WSP and W registers as well as 'adr' and 'adrp'.
11900 (loadwb_pair<GPI:mode>_<PTR:mode>): Rename to ...
11901 (loadwb_pair<GPI:mode>_<P:mode>): ... this. Replace PTR with P.
11902 (storewb_pair<GPI:mode>_<PTR:mode>): Likewise; rename to ...
11903 (storewb_pair<GPI:mode>_<P:mode>): ... this.
11904 (add_losym): Change to 'define_expand' and call gen_add_losym_<mode>
11905 depending on the value of 'mode'.
11906 (add_losym_<mode>): New.
11907 (ldr_got_small_<mode>): New, based on ldr_got_small.
11908 (ldr_got_small): Remove.
11909 (ldr_got_small_sidi): New.
11910 * config/aarch64/iterators.md (P): New.
11911 (PTR): Change to 'ptr_mode' in the condition.
11912
17a819cb
YZ
119132013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
11914
11915 * config.gcc (aarch64*-*-*): Support --with-abi.
11916 (aarch64*-*-elf): Support --with-multilib-list.
11917 (aarch64*-*-linux*): Likewise.
11918 (supported_defaults): Add abi to aarch64*-*-*.
11919 * configure.ac: Mention AArch64 for --with-multilib-list.
11920 * configure: Re-generated.
11921 * config/aarch64/biarchilp32.h: New file.
11922 * config/aarch64/biarchlp64.h: New file.
11923 * config/aarch64/aarch64-elf.h (ENDIAN_SPEC): New define.
11924 (ABI_SPEC): Ditto.
11925 (MULTILIB_DEFAULTS): Ditto.
11926 (DRIVER_SELF_SPECS): Ditto.
11927 (ASM_SPEC): Update to also substitute -mabi.
11928 * config/aarch64/aarch64-elf-raw.h (LINK_SPEC): Add linker script
11929 file whose name depends on -mabi= and -mbig-endian.
11930 * config/aarch64/aarch64.h (LONG_TYPE_SIZE): Change to depend on
11931 TARGET_ILP32.
11932 (POINTER_SIZE): New define.
11933 (POINTERS_EXTEND_UNSIGNED): Ditto.
11934 (enum aarch64_abi_type): New enumeration tag.
11935 (AARCH64_ABI_LP64, AARCH64_ABI_ILP32): New enumerators.
11936 (AARCH64_ABI_DEFAULT): Define to AARCH64_ABI_LP64 if undefined.
11937 (TARGET_ILP32): New define.
11938 * config/aarch64/aarch64.opt (mabi): New.
11939 (aarch64_abi): New.
11940 (ilp32, lp64): New values for -mabi.
11941 * config/aarch64/t-aarch64 (comma): New define.
11942 (MULTILIB_OPTIONS): Ditto.
11943 (MULTILIB_DIRNAMES): Ditto.
11944 * config/aarch64/t-aarch64-linux (MULTIARCH_DIRNAME): New define.
11945 * doc/invoke.texi: Document -mabi for AArch64.
11946
9f9cbdce
GJL
119472013-07-23 Georg-Johann Lay <avr@gjlay.de>
11948
11949 * config/avr/avr.md: Explain asm print modifier 'r' for REG.
11950
7061977b 119512013-07-22 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
12211b99 11952 Anton Blanchard <anton@au1.ibm.com>
7061977b
BS
11953
11954 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Fix
11955 endianness when selecting field to splat.
11956
75a41878
EC
119572013-07-22 Eric Christopher <echristo@gmail.com>
11958
11959 * dwarf2out.c (die_odr_checksum): New function to use
11960 CHECKSUM_ macros and ULEB128 for DIE tag.
11961 (generate_type_signature): Use.
41a7c215 11962
38ae58ca
EB
119632013-07-22 Eric Botcazou <ebotcazou@adacore.com>
11964
11965 * config.gcc (sparc*-*-*): Accept leon3 processor.
11966 (sparc-leon*-*): Merge with sparc*-*-* and add leon3 support.
11967 * doc/invoke.texi (SPARC Options): Adjust -mfix-ut699 entry.
11968 * config/sparc/sparc-opts.h (enum processor_type): Add PROCESSOR_LEON3.
11969 * config/sparc/sparc.opt (enum processor_type): Add leon3.
11970 (mfix-ut699): Adjust comment.
11971 * config/sparc/sparc.h (TARGET_CPU_leon3): New define.
11972 (CPP_CPU32_DEFAULT_SPEC): Add leon3 support.
11973 (CPP_CPU_SPEC): Likewise.
11974 (ASM_CPU_SPEC): Likewise.
11975 * config/sparc/sparc.c (leon3_cost): New constant.
11976 (sparc_option_override): Add leon3 support.
11977 (mem_ref): New function.
11978 (sparc_gate_work_around_errata): Return true if -mfix-ut699 is enabled.
11979 (sparc_do_work_around_errata): Look into the instruction in the delay
11980 slot and adjust accordingly. Add fix for the data cache nullify issues
11981 of the UT699. Change insertion position for the NOP.
11982 * config/sparc/leon.md (leon_fpalu, leon_fpmds, write_buf): Delete.
11983 (leon3_load): New reservation.
11984 (leon_store): Bump latency to 2.
11985 (grfpu): New automaton.
11986 (grfpu_alu): New unit.
11987 (grfpu_ds): Likewise.
11988 (leon_fp_alu): Adjust.
11989 (leon_fp_mult): Delete.
11990 (leon_fp_div): Split into leon_fp_divs and leon_fp_divd.
11991 (leon_fp_sqrt): Split into leon_fp_sqrts and leon_fp_sqrtd.
11992 * config/sparc/sparc.md (cpu): Add leon3.
11993 * config/sparc/sync.md (atomic_exchangesi): Disable if -mfix-ut699.
11994 (swapsi): Likewise.
11995 (atomic_test_and_set): Likewise.
11996 (ldstub): Likewise.
11997
04dfc6df
JU
119982013-07-22 Jürgen Urban <JuergenUrban@gmx.de>
11999
12000 * config.gcc (mips*-*-*): Add --with-fpu support. Make single the
12001 default for R5900 targets.
12002 * config/mips/mips.h (OPTION_DEFAULT_SPECS): Handle --with-fpu.
12003 (ISA_HAS_LDC1_SDC1): Set to false for TARGET_MIPS5900.
12004 * config/mips/mips.c (mips_option_override): Report an error for
12005 -march=r5900 -mhard-float -mdouble-float. Use spu_single_format
12006 for -march=r5900 -mhard-float.
12007
c7b3b99f 120082013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu>
ae382ebd
PCC
12009
12010 * df-problems.c (can_move_insns_across): Exit loop once we
12011 find a non-fixed, non-global register.
12012
12013 * ipa-pure-const.c (propagate_nothrow): Exit loop after
12014 setting can_throw.
12015
12016 * omega.c (omega_eliminate_red): Break after setting red_found.
12017 (omega_problem_has_red_equations): Similarly after setting found.
12018 (omega_query_variable): Similarly after setting coupled.
12019
9b6e6981
MP
120202013-07-22 Marek Polacek <polacek@redhat.com>
12021
12022 * gimplify.c: Don't include gimple.h twice.
12023
5e5f7673
KT
120242013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12025
12026 * config/arm/constraints.md (Pd): Allow TARGET_THUMB
12027 instead of TARGET_THUMB1.
12028 (Pz): New constraint.
12029 * config/arm/arm.md (arm_addsi3): Add alternatives for 16-bit
12030 encodings.
12031 (compare_negsi_si): Likewise.
12032 (compare_addsi2_op0): Likewise.
12033 (compare_addsi2_op1): Likewise.
12034 (addsi3_carryin_<optab>): Likewise.
12035 (addsi3_carryin_alt2_<optab>): Likewise.
12036 (addsi3_carryin_shift_<optab>): Disable cond_exec variant
12037 for arm_restrict_it.
12038 (subsi3_carryin): Likewise.
12039 (arm_subsi3_insn): Add alternatives for 16-bit encoding.
12040 (minmax_arithsi): Disable for arm_restrict_it.
12041 (minmax_arithsi_non_canon): Adjust for arm_restrict_it.
12042 (satsi_<SAT:code>): Disable cond_exec variant for arm_restrict_it.
12043 (satsi_<SAT:code>_shift): Likewise.
12044 (arm_shiftsi3): Add alternative for 16-bit encoding.
12045 (arm32_movhf): Disable for arm_restrict_it.
12046 (arm_cmpdi_unsigned): Add alternatives for 16-bit encoding.
12047 (arm_movtas_ze): Disable cond_exec variant for arm_restrict_it.
12048
859abddd
SN
120492013-07-22 Sofiane Naci <sofiane.naci@arm.com>
12050
12051 * config/arm/arm.md (attribute "insn"): Delete.
12052 (attribute "type"): Add "mov_imm", "mov_reg", "mov_shift",
12053 "mov_shift_reg", "mvn_imm", "mvn_reg", "mvn_shift" and "mvn_shift_reg".
12054 (not_shiftsi): Update for attribute change.
12055 (not_shiftsi_compare0): Likewise.
12056 (not_shiftsi_compare0_scratch): Likewise.
12057 (arm_one_cmplsi2): Likewise.
12058 (thumb1_one_cmplsi2): Likewise.
12059 (notsi_compare0): Likewise.
12060 (notsi_compare0_scratch): Likewise.
12061 (thumb1_movdi_insn): Likewise.
12062 (arm_movsi_insn): Likewise.
12063 (movhi_insn_arch4): Likewise.
12064 (movhi_bytes): Likewise.
12065 (arm_movqi_insn): Likewise.
12066 (thumb1_movqi_insn): Likewise.
12067 (arm32_movhf): Likewise.
12068 (thumb1_movhf): Likewise.
12069 (arm_movsf_soft_insn): Likewise.
12070 (thumb1_movsf_insn): Likewise.
12071 (thumb_movdf_insn): Likewise.
12072 (movsicc_insn): Likewise.
12073 (movsfcc_soft_insn): Likewise.
12074 (and_scc): Likewise.
12075 (cond_move): Likewise.
12076 (if_move_not): Likewise.
12077 (if_not_move): Likewise.
12078 (if_shift_move): Likewise.
12079 (if_move_shift): Likewise.
12080 (if_shift_shift): Likewise.
12081 (if_not_arith): Likewise.
12082 (if_arith_not): Likewise.
12083 (cond_move_not): Likewise.
12084 * config/arm/neon.md (neon_mov<mode>): Update for attribute change.
12085 (neon_mov<mode>): Likewise.
12086 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute change.
12087 (thumb2_movsi_vfp): Likewise.
12088 (movsf_vfp): Likewise.
12089 (thumb2_movsf_vfp): Likewise.
371e77e3
UB
12090 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute
12091 change.
859abddd
SN
12092 (cortexa7_older_only): Likewise.
12093 (cortexa7_younger): Likewise.
12094 * config/arm/arm1020e.md (1020alu_op): Update for attribute change.
12095 (1020alu_shift_op): Likewise.
12096 (1020alu_shift_reg_op): Likewise.
12097 * config/arm/arm1026ejs.md (alu_op): Update for attribute change.
12098 (alu_shift_op): Likewise.
12099 (alu_shift_reg_op): Likewise.
12100 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute change.
12101 (11_alu_shift_op): Likewise.
12102 (11_alu_shift_reg_op): Likewise.
12103 * config/arm/arm926ejs.md (9_alu_op): Update for attribute change.
12104 (9_alu_shift_reg_op): Likewise.
371e77e3
UB
12105 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
12106 change.
859abddd
SN
12107 (cortex_a15_alu_shift): Likewise.
12108 (cortex_a15_alu_shift_reg): Likewise.
12109 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute change.
12110 (cortex_a5_alu_shift): Likewise.
371e77e3
UB
12111 * config/arm/cortex-a53.md (cortex_a53_alu): Update for attribute
12112 change.
859abddd 12113 (cortex_a53_alu_shift): Likewise.
371e77e3
UB
12114 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
12115 change.
859abddd
SN
12116 (cortex_a7_alu_reg): Likewise.
12117 (cortex_a7_alu_shift): Likewise.
12118 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
12119 (cortex_a8_alu_shift): Likewise.
12120 (cortex_a8_alu_shift_reg): Likewise.
12121 (cortex_a8_mov): Likewise.
12122 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
12123 (cortex_a9_dp_shift): Likewise.
12124 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute change.
12125 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute change.
12126 (cortex_r4_mov): Likewise.
12127 (cortex_r4_alu_shift): Likewise.
12128 (cortex_r4_alu_shift_reg): Likewise.
12129 * config/arm/fa526.md (526_alu_op): Update for attribute change.
12130 (526_alu_shift_op): Likewise.
12131 * config/arm/fa606te.md (606te_alu_op): Update for attribute change.
12132 * config/arm/fa626te.md (626te_alu_op): Update for attribute change.
12133 (626te_alu_shift_op): Likewise.
12134 * config/arm/fa726te.md (726te_shift_op): Update for attribute change.
12135 (726te_alu_op): Likewise.
12136 (726te_alu_shift_op): Likewise.
12137 (726te_alu_shift_reg_op): Likewise.
12138 * config/arm/fmp626.md (mp626_alu_op): Update for attribute change.
12139 (mp626_alu_shift_op): Likewise.
12140 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute change.
12141 (pj4_alu_e1_conds): Likewise.
12142 (pj4_alu): Likewise.
12143 (pj4_alu_conds): Likewise.
12144 (pj4_shift): Likewise.
12145 (pj4_shift_conds): Likewise.
12146 (pj4_alu_shift): Likewise.
12147 (pj4_alu_shift_conds): Likewise.
12148
95b97fac
KT
121492013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12150
12151 * config/arm/predicates.md (shiftable_operator_strict_it):
12152 New predicate.
12153 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si):
12154 Disable cond_exec version for arm_restrict_it.
12155 (thumb2_smaxsi3): Convert to generate cond_exec.
12156 (thumb2_sminsi3): Likewise.
12157 (thumb32_umaxsi3): Likewise.
12158 (thumb2_uminsi3): Likewise.
12159 (thumb2_abssi2): Adjust constraints for arm_restrict_it.
12160 (thumb2_neg_abssi2): Likewise.
12161 (thumb2_mov_scc): Add alternative for 16-bit encoding.
12162 (thumb2_movsicc_insn): Adjust alternatives.
12163 (thumb2_mov_negscc): Disable for arm_restrict_it.
12164 (thumb2_mov_negscc_strict_it): New pattern.
12165 (thumb2_mov_notscc_strict_it): New pattern.
12166 (thumb2_mov_notscc): Disable for arm_restrict_it.
12167 (thumb2_ior_scc): Likewise.
12168 (thumb2_ior_scc_strict_it): New pattern.
12169 (thumb2_cond_move): Adjust for arm_restrict_it.
12170 (thumb2_cond_arith): Disable for arm_restrict_it.
12171 (thumb2_cond_arith_strict_it): New pattern.
12172 (thumb2_cond_sub): Adjust for arm_restrict_it.
12173 (thumb2_movcond): Likewise.
12174 (thumb2_extendqisi_v6): Disable cond_exec variant for arm_restrict_it.
12175 (thumb2_zero_extendhisi2_v6): Likewise.
12176 (thumb2_zero_extendqisi2_v6): Likewise.
12177 (orsi_notsi_si): Likewise.
12178 (orsi_not_shiftsi_si): Likewise.
12179
d5a6ef82
GJL
121802013-07-22 Georg-Johann Lay <avr@gjlay.de>
12181
12182 * config/avr/avr.c (avr_out_xload): No SBIS around LPM so that
12183 instruction sequence is 1 byte shorter.
12184
d9e71154
UB
121852013-07-22 Uros Bizjak <ubizjak@gmail.com>
12186
12187 * config/i386/i386.md (nonlocal_goto_receiver): Delete insn if
12188 it is not needed after split.
12189
8c6381ec
IS
121902013-07-20 Iain Sandoe <iain@codesourcery.com>
12191
12192 PR target/51784
12193 * config/i386/i386.c (output_set_got) [TARGET_MACHO]: Adjust to emit a
12194 second label for nonlocal goto receivers. Don't output pic base labels
12195 unless we're producing PIC; mark that action unreachable().
12196 (ix86_save_reg): If the function contains a nonlocal label, save the
12197 PIC base reg.
12198 * config/darwin-protos.h (machopic_should_output_picbase_label): New.
f43245d1 12199 * config/darwin.c (emitted_pic_label_num): New GTY.
8c6381ec
IS
12200 (update_pic_label_number_if_needed): New.
12201 (machopic_output_function_base_name): Adjust for nonlocal receiver
12202 case.
12203 (machopic_should_output_picbase_label): New.
12204 * config/i386/i386.md (enum unspecv): UNSPECV_NLGR: New.
12205 (nonlocal_goto_receiver): New insn and split.
12206
d05d0709
JG
122072013-07-20 James Greenhalgh <james.greenhalgh@arm.com>
12208
12209 * config/aarch64/aarch64-builtins.c
12210 (aarch64_fold_builtin): Fold abs in all modes.
12211 * config/aarch64/aarch64-simd-builtins.def
12212 (abs): Enable for all modes.
12213 * config/aarch64/arm_neon.h
12214 (vabs<q>_s<8,16,32,64): Rewrite using builtins.
12215 (vabs_f64): Add missing intrinsic.
12216
ba590e63
IB
122172013-07-19 Ian Bolton <ian.bolton@arm.com>
12218
12219 * config/aarch64/arm_neon.h (vabs_s64): New function
12220
02371798
GJL
122212013-07-19 Georg-Johann Lay <avr@gjlay.de>
12222
12223 PR target/57516
12224 * config/avr/avr-fixed.md (round<mode>3_const): Turn expander to insn.
12225 * config/avr/avr.md (adjust_len): Add `round'.
12226 * config/avr/avr-protos.h (avr_out_round): New prototype.
12227 (avr_out_plus): Add `out_label' argument.
12228 * config/avr/avr.c (avr_out_plus_1): Add `out_label' argument.
12229 (avr_out_plus): Pass down `out_label' to avr_out_plus_1.
12230 Handle the case where `insn' is just a pattern.
12231 (avr_out_bitop): Handle the case where `insn' is just a pattern.
12232 (avr_out_round): New function.
12233 (avr_adjust_insn_length): Handle ADJUST_LEN_ROUND.
12234
12211b99 122352013-07-18 David Holsgrove <david.holsgrove@xilinx.com>
b950ac25
DH
12236
12237 * config/microblaze/microblaze.c (microblaze_expand_prologue):
12238 Add check for flag_stack_usage to handle -fstack-usage support
12239
12211b99 122402013-07-18 Pat Haugen <pthaugen@us.ibm.com>
ed1fd999
PH
12241
12242 * config/rs6000/rs6000.c (rs6000_option_override_internal): Adjust flag
12243 interaction for new Power8 flags and VSX.
12244
df9dda2d
ST
122452013-07-18 Sriraman Tallam <tmsriram@google.com>
12246
12247 PR middle-end/57698
12248 * tree-inline.c (expand_call_inline): Emit errors during
12249 early_inlining only if optimization is not turned on.
12250
0f9cdef4
DM
122512013-07-18 David Malcolm <dmalcolm@redhat.com>
12252
12253 * passes.def: New.
12254
12255 * passes.c (init_optimization_passes): Move the construction of
12256 the pass hierarchy into a new passes.def file.
12257
12258 * Makefile.in (passes.o): Add dependency on passes.def.
12259
2efa4087
DM
122602013-07-18 David Malcolm <dmalcolm@redhat.com>
12261
12262 * passes.c (init_optimization_passes): Introduce macros for
12263 constructing the tree of passes (INSERT_PASSES_AFTER,
12264 PUSH_INSERT_PASSES_WITHIN, POP_INSERT_PASSES,
12265 TERMINATE_PASS_LIST).
12266
bc404e1b
VM
122672013-07-18 Vladimir Makarov <vmakarov@redhat.com>
12268 Wei Mi <wmi@google.com>
12269
12270 PR rtl-optimization/57878
12271 * lra-assigns.c (assign_by_spills): Move non_reload_pseudos to the
12272 top.
12273 (reload_pseudo_compare_func): Check nregs first for reload
12274 pseudos.
12275
d675843f
DM
122762013-07-18 David Malcolm <dmalcolm@redhat.com>
12277
12278 * tree-pass.h (pass_ipa_lto_wpa_fixup): Remove redundant decl.
12279
c7b3b99f 122802013-07-18 Po-Chun Chang <pchang9@cs.wisc.edu>
bcb97fbd
PCC
12281
12282 * read-rtl.c (validate_const_int): Once an invalid character is
12283 seen, quit the loop.
12284
12285 * gengtype.c (write_roots): Similarly once we find the "deletable"
12286 or "if_marked" option.
12287
52fceb44
SN
122882013-07-18 Sofiane Naci <sofiane.naci@arm.com>
12289
12290 * config/arm/arm.md (attribute "insn"): Delete values "mrs", "msr",
12291 "xtab" and "sat". Move value "clz" from here to ...
12292 (attriubte "type"): ... here.
12293 (satsi_<SAT:code>): Delete "insn" attribute.
12294 (satsi_<SAT:code>_shift): Likewise.
12295 (arm_zero_extendqisi2addsi): Likewise.
12296 (arm_extendqisi2addsi): Likewise.
12297 (clzsi2): Update for attribute changes.
12298 (rbitsi2): Likewise.
371e77e3
UB
12299 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Delete "insn"
12300 attribute.
52fceb44
SN
12301 (arm_usatsihi): Likewise.
12302 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
12303
006bd006
SN
123042013-07-18 Sofiane Naci <sofiane.naci@arm.com>
12305
12306 * config/arm/arm.md (attribute "type"): Rename "simple_alu_imm" to
371e77e3
UB
12307 "arlo_imm". Rename "alu_reg" to "arlo_reg". Rename "simple_alu_shift"
12308 to "extend". Split "alu_shift" into "shift" and "arlo_shift". Split
006bd006
SN
12309 "alu_shift_reg" into "shift_reg" and "arlo_shift_reg". List types
12310 in alphabetical order.
12311 (attribute "core_cycles"): Update for attribute changes.
12312 (arm_addsi3): Likewise.
12313 (addsi3_compare0): Likewise.
12314 (addsi3_compare0_scratch): Likewise.
12315 (addsi3_compare_op1): Likewise.
12316 (addsi3_compare_op2): Likewise.
12317 (compare_addsi2_op0): Likewise.
12318 (compare_addsi2_op1): Likewise.
12319 (addsi3_carryin_shift_<optab>): Likewise.
12320 (subsi3_carryin_shift): Likewise.
12321 (rsbsi3_carryin_shift): Likewise.
12322 (arm_subsi3_insn): Likewise.
12323 (subsi3_compare0): Likewise.
12324 (subsi3_compare): Likewise.
12325 (arm_andsi3_insn): Likewise.
12326 (thumb1_andsi3_insn): Likewise.
12327 (andsi3_compare0): Likewise.
12328 (andsi3_compare0_scratch): Likewise.
12329 (zeroextractsi_compare0_scratch
12330 (andsi_not_shiftsi_si): Likewise.
12331 (iorsi3_insn): Likewise.
12332 (iorsi3_compare0): Likewise.
12333 (iorsi3_compare0_scratch): Likewise.
12334 (arm_xorsi3): Likewise.
12335 (thumb1_xorsi3_insn): Likewise.
12336 (xorsi3_compare0): Likewise.
12337 (xorsi3_compare0_scratch): Likewise.
12338 (satsi_<SAT:code>_shift): Likewise.
12339 (rrx): Likewise.
12340 (arm_shiftsi3): Likewise.
12341 (shiftsi3_compare0): Likewise.
12342 (not_shiftsi): Likewise.
12343 (not_shiftsi_compare0): Likewise.
12344 (not_shiftsi_compare0_scratch): Likewise.
12345 (arm_one_cmplsi2): Likewise.
12346 (thumb_one_complsi2): Likewise.
12347 (notsi_compare0): Likewise.
12348 (notsi_compare0_scratch): Likewise.
12349 (thumb1_zero_extendhisi2): Likewise.
12350 (arm_zero_extendhisi2): Likewise.
12351 (arm_zero_extendhisi2_v6): Likewise.
12352 (arm_zero_extendhisi2addsi): Likewise.
12353 (thumb1_zero_extendqisi2): Likewise.
12354 (thumb1_zero_extendqisi2_v6): Likewise.
12355 (arm_zero_extendqisi2): Likewise.
12356 (arm_zero_extendqisi2_v6): Likewise.
12357 (arm_zero_extendqisi2addsi): Likewise.
12358 (thumb1_extendhisi2): Likewise.
12359 (arm_extendhisi2): Likewise.
12360 (arm_extendhisi2_v6): Likewise.
12361 (arm_extendqisi): Likewise.
12362 (arm_extendqisi_v6): Likewise.
12363 (arm_extendqisi2addsi): Likewise.
12364 (thumb1_extendqisi2): Likewise.
12365 (thumb1_movdi_insn): Likewise.
12366 (arm_movsi_insn): Likewise.
12367 (movsi_compare0): Likewise.
12368 (movhi_insn_arch4): Likewise.
12369 (movhi_bytes): Likewise.
12370 (arm_movqi_insn): Likewise.
12371 (thumb1_movqi_insn): Likewise.
12372 (arm32_movhf): Likewise.
12373 (thumb1_movhf): Likewise.
12374 (arm_movsf_soft_insn): Likewise.
12375 (thumb1_movsf_insn): Likewise.
12376 (movdf_soft_insn): Likewise.
12377 (thumb_movdf_insn): Likewise.
12378 (arm_cmpsi_insn): Likewise.
12379 (cmpsi_shiftsi): Likewise.
12380 (cmpsi_shiftsi_swp): Likewise.
12381 (arm_cmpsi_negshiftsi_si): Likewise.
12382 (movsicc_insn): Likewise.
12383 (movsfcc_soft_insn): Likewise.
12384 (arith_shiftsi): Likewise.
12385 (arith_shiftsi_compare0
12386 (arith_shiftsi_compare0_scratch
12387 (sub_shiftsi): Likewise.
12388 (sub_shiftsi_compare0
12389 (sub_shiftsi_compare0_scratch
12390 (and_scc): Likewise.
12391 (cond_move): Likewise.
12392 (if_plus_move): Likewise.
12393 (if_move_plus): Likewise.
12394 (if_move_not): Likewise.
12395 (if_not_move): Likewise.
12396 (if_shift_move): Likewise.
12397 (if_move_shift): Likewise.
12398 (if_shift_shift): Likewise.
12399 (if_not_arith): Likewise.
12400 (if_arith_not): Likewise.
12401 (cond_move_not): Likewise.
12402 (thumb1_ashlsi3): Set type attribute.
12403 (thumb1_ashrsi3): Likewise.
12404 (thumb1_lshrsi3): Likewise.
12405 (thumb1_rotrsi3): Likewise.
12406 (shiftsi3_compare0_scratch): Likewise.
12407 * config/arm/neon.md (neon_mov<mode>): Update for attribute changes.
12408 (neon_mov<mode>): Likewise.
371e77e3
UB
12409 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si): Update for
12410 attribute changes.
006bd006
SN
12411 (thumb2_movsi_insn): Likewise.
12412 (thumb2_cmpsi_neg_shiftsi): Likewise.
12413 (thumb2_extendqisi_v6): Likewise.
12414 (thumb2_zero_extendhisi2_v6): Likewise.
12415 (thumb2_zero_extendqisi2_v6): Likewise.
12416 (thumb2_shiftsi3_short): Likewise.
12417 (thumb2_addsi3_compare0_scratch): Likewise.
12418 (orsi_not_shiftsi_si): Likewise.
12419 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
12420 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Update for attribute
12421 changes.
12422 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
12423 (1020alu_shift_op): Likewise.
12424 (1020alu_shift_reg_op): Likewise.
12425 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
12426 (alu_shift_op): Likewise.
12427 (alu_shift_reg_op): Likewise.
12428 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
12429 (11_alu_shift_op): Likewise.
12430 (11_alu_shift_reg_op): Likewise.
12431 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
12432 (9_alu_shift_reg_op): Likewise.
371e77e3
UB
12433 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
12434 changes.
006bd006
SN
12435 (cortex_a15_alu_shift): Likewise.
12436 (cortex_a15_alu_shift_reg): Likewise.
371e77e3
UB
12437 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute
12438 changes.
006bd006
SN
12439 (cortex_a5_alu_shift): Likewise.
12440 * config/arm/cortex-a53.md (cortex_a53_alu) : Update for attribute
12441 changes.
12442 (cortex_a53_alu_shift): Likewise.
12443 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
12444 changes.
12445 (cortex_a7_alu_reg): Likewise.
12446 (cortex_a7_alu_shift): Likewise.
371e77e3
UB
12447 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute
12448 changes.
006bd006
SN
12449 (cortex_a8_alu_shift): Likewise.
12450 (cortex_a8_alu_shift_reg): Likewise.
12451 (cortex_a8_mov): Likewise.
12452 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
12453 (cortex_a9_dp_shift): Likewise.
371e77e3
UB
12454 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute
12455 changes.
12456 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute
12457 changes.
006bd006
SN
12458 (cortex_r4_mov): Likewise.
12459 (cortex_r4_alu_shift): Likewise.
12460 (cortex_r4_alu_shift_reg): Likewise.
12461 * config/arm/fa526.md (526_alu_op): Update for attribute changes.
12462 (526_alu_shift_op): Likewise.
12463 * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
12464 * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
12465 (626te_alu_shift_op): Likewise.
12466 * config/arm/fa726te.md (726te_shift_op): Update for attribute changes.
12467 (726te_alu_op): Likewise.
12468 (726te_alu_shift_op): Likewise.
12469 (726te_alu_shift_reg_op): Likewise.
12470 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
12471 (mp626_alu_shift_op): Likewise.
12472 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute changes.
12473 (pj4_alu_e1_conds): Likewise.
12474 (pj4_alu): Likewise.
12475 (pj4_alu_conds): Likewise.
12476 (pj4_shift): Likewise.
12477 (pj4_shift_conds): Likewise.
12478 (pj4_alu_shift): Likewise.
12479 (pj4_alu_shift_conds): Likewise.
371e77e3
UB
12480 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute
12481 changes.
006bd006
SN
12482 (cortexa7_older_only): Likewise.
12483 (cortexa7_younger): Likewise.
12484
651df1b2
DM
124852013-07-18 David Malcolm <dmalcolm@redhat.com>
12486
12487 * ipa-pure-const.c (generate_summary): Rename to...
12488 (pure_const_generate_summary): ... this.
12489
ea717bd7
IS
124902013-07-17 Iain Sandoe <iain@codesourcery.com>
12491
12492 * config/rs6000/darwin.h (REGISTER_NAMES): Add HTM registers.
12493
a1259a13
YR
124942013-07-17 Yvan Roux <yvan.roux@linaro.org>
12495
12496 PR target/57909
12497 * config/arm/arm.c (gen_movmem_ldrd_strd): Fix unaligned load/store
12498 usage in HI mode.
12499
167f68ed
AK
125002013-07-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12501
12502 * config/s390/s390.c: (s390_expand_builtin): Allow -mhtm to be
12503 enabled without -march=zEC12.
12504 * config/s390/s390.h (TARGET_HTM): Do not require EC12 machine
12505 flags to be set.
12506
f900a982
MR
125072013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
12508
12509 * config/mips/mips.h (ISA_HAS_FP4): Correct formatting.
12510 (ISA_HAS_FP_MADD4_MSUB4): Also enable for ISA_MIPS32R2.
12511 (ISA_HAS_NMADD4_NMSUB4): Remove the MODE argument; rewrite in
12512 terms of ISA_HAS_FP4, and also enable for ISA_MIPS32R2.
12513 (ISA_HAS_NMADD3_NMSUB3): Remove the MODE argument.
12514 * config/mips/mips.c (mips_rtx_costs) <PLUS>: Check for
12515 ISA_HAS_FP_MADD4_MSUB4 || ISA_HAS_FP_MADD3_MSUB3 rather than
12516 ISA_HAS_FP4.
12517 <MINUS, NEG>: Update according to changes to ISA_HAS_NMADD4_NMSUB4
12518 and ISA_HAS_NMADD3_NMSUB3.
12519 * config/mips/mips.md (nmadd4<mode>, nmadd3<mode>): Likewise.
12520 (nmadd4<mode>_fastmath, nmadd3<mode>_fastmath): Likewise.
12521 (nmsub4<mode>, nmsub3<mode>): Likewise.
12522 (nmsub4<mode>_fastmath, nmsub3<mode>_fastmath): Likewise.
12523
d4ed27eb
MR
125242013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
12525
12526 * config/mips/mips.h (ISA_HAS_NMADD4_NMSUB4): Remove
12527 TARGET_MIPS5400 checking.
12528
7a5add18
PB
125292013-07-16 Jakub Jelinek <jakub@redhat.com>
12530 Peter Bergner <bergner@vnet.ibm.com>
12531
12532 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTERS): Mention HTM
12533 registers in the comment.
12534 (DWARF_FRAME_REGISTERS): Subtract also the 3 HTM registers.
12535 (DWARF_REG_TO_UNWIND_COLUMN): Use DWARF_FRAME_REGISTERS
12536 rather than FIRST_PSEUDO_REGISTERS.
12537
125382013-07-16 Peter Bergner <bergner@vnet.ibm.com>
c694dc01
PB
12539
12540 * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
12541 enable extra ISA flags with TARGET_HTM.
12542
d2ab0929
MR
125432013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
12544
12545 * config/mips/mips.h (ISA_HAS_MULS, ISA_HAS_MSAC, ISA_HAS_MACC):
12546 Fix comment typos.
12547
839c74bc
CH
125482013-07-15 Cong Hou <congh@google.com>
12549
12550 * tree-vect-data-refs.c (dr_group_sort_cmp): Do not use hash function
12551 in compare function for sorting.
12552
7a5add18 125532013-07-15 Peter Bergner <bergner@vnet.ibm.com>
0258b6e4
PB
12554
12555 * config.gcc (powerpc*-*-*): Install htmintrin.h and htmxlintrin.h.
12556 * config/rs6000/t-rs6000 (MD_INCLUDES): Add htm.md.
12557 * config/rs6000/rs6000.opt: Add -mhtm option.
12558 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add OPTION_MASK_HTM.
12559 (ISA_2_7_MASKS_SERVER): Add OPTION_MASK_HTM.
12560 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
12561 __HTM__ if the HTM instructions are available.
12562 * config/rs6000/predicates.md (u3bit_cint_operand, u10bit_cint_operand,
12563 htm_spr_reg_operand): New define_predicates.
12564 * config/rs6000/rs6000.md (define_attr "type"): Add htm.
12565 (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO): New define_constants.
12566 Include htm.md.
12567 * config/rs6000/rs6000-builtin.def (BU_HTM_0, BU_HTM_1, BU_HTM_2,
12568 BU_HTM_3, BU_HTM_SPR0, BU_HTM_SPR1): Add support macros for defining
12569 HTM builtin functions.
12570 * config/rs6000/rs6000.c (RS6000_BUILTIN_H): New macro.
12571 (rs6000_reg_names, alt_reg_names): Add HTM SPR register names.
12572 (rs6000_init_hard_regno_mode_ok): Add support for HTM instructions.
12573 (rs6000_builtin_mask_calculate): Likewise.
12574 (rs6000_option_override_internal): Likewise.
12575 (bdesc_htm): Add new HTM builtin support.
12576 (htm_spr_num): New function.
12577 (htm_spr_regno): Likewise.
12578 (rs6000_htm_spr_icode): Likewise.
12579 (htm_expand_builtin): Likewise.
12580 (htm_init_builtins): Likewise.
12581 (rs6000_expand_builtin): Add support for HTM builtin functions.
12582 (rs6000_init_builtins): Likewise.
371e77e3
UB
12583 (rs6000_invalid_builtin, rs6000_opt_mask): Add support for -mhtm
12584 option.
0258b6e4
PB
12585 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for -mhtm.
12586 (TARGET_HTM, MASK_HTM): Define macros.
12587 (FIRST_PSEUDO_REGISTER): Adjust for new HTM SPR registers.
12588 (FIXED_REGISTERS): Likewise.
12589 (CALL_USED_REGISTERS): Likewise.
12590 (CALL_REALLY_USED_REGISTERS): Likewise.
12591 (REG_ALLOC_ORDER): Likewise.
12592 (enum reg_class): Likewise.
12593 (REG_CLASS_NAMES): Likewise.
12594 (REG_CLASS_CONTENTS): Likewise.
12595 (REGISTER_NAMES): Likewise.
12596 (ADDITIONAL_REGISTER_NAMES): Likewise.
12597 (RS6000_BTC_SPR, RS6000_BTC_VOID, RS6000_BTC_32BIT, RS6000_BTC_64BIT,
12598 RS6000_BTC_MISC_MASK, RS6000_BTM_HTM): New macros.
12599 (RS6000_BTM_COMMON): Add RS6000_BTM_HTM.
12600 * config/rs6000/htm.md: New file.
12601 * config/rs6000/htmintrin.h: New file.
12602 * config/rs6000/htmxlintrin.h: New file.
12603
87dd8ab0
MS
126042013-07-15 Marcus Shawcroft <marcus.shawcroft@arm.com>
12605
12606 * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
12607 Define SYMBOL_TINY_GOT, update comment.
12608 * config/aarch64/aarch64.c
12609 (aarch64_load_symref_appropriately): Handle SYMBOL_TINY_GOT.
12610 (aarch64_expand_mov_immediate): Likewise.
12611 (aarch64_print_operand): Likewise.
12612 (aarch64_classify_symbol): Likewise.
12613 * config/aarch64/aarch64.md (UNSPEC_GOTTINYPIC): Define.
12614 (ldr_got_tiny): Define.
12615
52d676b6
TG
126162013-07-13 Tobias Grosser <tobias@grosser.es>
12617
12618 PR tree-optimization/54094
12619 * graphite-clast-to-gimple.c (translate_clast_for_loop): Derive the
12620 scheduling dimension for the parallelism check from the polyhedral
12621 information in the AST.
12622 * graphite-dependences.c (carries_deps): Do not assume the schedule is
12623 in 2D + 1 form.
12624
286e8fc1
JM
126252013-07-13 Jason Merrill <jason@redhat.com>
12626
12627 * print-tree.c (debug_vec_tree): Use debug_raw.
12628 (debug_raw (vec<tree, va_gc> &)): New.
12629 (debug_raw (vec<tree, va_gc> *)): New.
12630 * tree.h: Declare them.
12631
e43257e8
BC
126322013-07-13 Bin Cheng <bin.cheng@arm.com>
12633
12634 * ifcvt.c (ifcvt_after_combine): New static variable.
12635 (cheap_bb_rtx_cost_p): Set scale to REG_BR_PROB_BASE when optimizing
12636 for size.
12637 (if_convert): New parameter after_combine. Set ifcvt_after_combine.
12638 (rest_of_handle_if_conversion, rest_of_handle_if_after_combine,
12639 rest_of_handle_if_after_reload): Pass new argument for if_convert.
12640
da582d46
MR
126412013-07-12 Maciej W. Rozycki <macro@codesourcery.com>
12642
12643 * config/mips/mips.c (mips_expand_call): Remove empty statement.
12644
18b0ea8f
MM
126452013-07-12 Michael Matz <matz@suse.de>
12646
12647 PR middle-end/55771
12648 * convert.c (convert_to_real): Reject non-float inner types.
12649
e4f0f84d
TB
126502013-07-12 Tejas Belagod <tejas.belagod@arm.com>
12651
12652 * config/aarch64/aarch64-protos.h
12653 (aarch64_simd_immediate_valid_for_move): Remove.
12654 * config/aarch64/aarch64.c (simd_immediate_info): New member.
12655 (aarch64_simd_valid_immediate): Recognize idioms for shifting ones
12656 cases.
12657 (aarch64_output_simd_mov_immediate): Print the correct shift specifier.
12658
76500022
SE
126592013-07-11 Steve Ellcey <sellcey@mips.com>
12660
12661 * config/mips/mips.c (mips_conditional_register_usage): Do not
12662 use t[0-7] registers in MIPS16 mode when optimizing for size.
12663
78039734
ST
126642013-07-11 Sriraman Tallam <tmsriram@google.com>
12665
12666 * config/i386/i386.c (dispatch_function_versions): Fix array
12667 indexing of function_version_info to match actual_versions.
12668
7b24b675
TJ
126692013-07-11 Teresa Johnson <tejohnson@google.com>
12670
12671 * vec.h (struct va_gc): Move release out-of-line.
12672 (va_gc::release): Call ggc_free on released vec.
12673
85d4cbb8
UW
126742013-07-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12675
12676 * config/rs6000/rs6000.md (""*tls_gd_low<TLSmode:tls_abi_suffix>"):
12677 Require GOT register as additional operand in UNSPEC.
12678 ("*tls_ld_low<TLSmode:tls_abi_suffix>"): Likewise.
12679 ("*tls_got_dtprel_low<TLSmode:tls_abi_suffix>"): Likewise.
12680 ("*tls_got_tprel_low<TLSmode:tls_abi_suffix>"): Likewise.
12681 ("*tls_gd<TLSmode:tls_abi_suffix>"): Update splitter.
12682 ("*tls_ld<TLSmode:tls_abi_suffix>"): Likewise.
12683 ("tls_got_dtprel_<TLSmode:tls_abi_suffix>"): Likewise.
12684 ("tls_got_tprel_<TLSmode:tls_abi_suffix>"): Likewise.
12685
52b3f9e2
GJL
126862013-07-11 Georg-Johann Lay <avr@gjlay.de>
12687
12688 PR target/57631
12689 * config/avr/avr.c (avr_set_current_function): Sanity-check signal
12690 name seen by assembler/linker rather if available.
12691
3f3e266e
AS
126922013-07-11 Andreas Schwab <schwab@suse.de>
12693
12694 * config/aarch64/aarch64-linux.h (CPP_SPEC): Define.
12695
21231ca6
VM
126962013-07-10 Vladimir Makarov <vmakarov@redhat.com>
12697
371e77e3 12698 * lra-constraints.c (curr_insn_transform): Switch off optional reloads.
21231ca6 12699
d331d374
JM
127002013-07-10 Joseph Myers <joseph@codesourcery.com>
12701
673c2f63
JM
12702 * doc/tm.texi.in: Move hook documentation to ....
12703 * target.def: ... here.
12704
d331d374
JM
12705 * doc/tm.texi.in (TARGET_CANONICALIZE_COMPARISON): Remove stray
12706 text on @hook line.
12707 * doc/tm.texi: Regenerate.
12708
dfeadaa0
PC
127092013-07-10 Paolo Carlini <paolo.carlini@oracle.com>
12710
12711 PR c++/57869
12712 * doc/invoke.texi: Document -Wconditionally-supported.
12713
bb6f2bac
GJL
127142013-07-10 Georg-Johann Lay <avr@gjlay.de>
12715
12716 PR target/57844
12717 * config/avr/avr.c (avr_prologue_setup_frame): Trunk -size to mode
12718 of my_fp.
12719
5219b232
GJL
127202013-07-10 Georg-Johann Lay <avr@gjlay.de>
12721
12722 PR target/57506
12723 * config/avr/avr-mcus.def (atmega16hva, atmega16hva2, atmega16hvb)
12724 (atmega16m1, atmega16u4, atmega32a, atmega32c1, atmega32hvb)
12725 (atmega32m1, atmega32u4, atmega32u6, atmega64c1, atmega64m1):
12726 Remove duplicate devices.
12727 * config/avr/gen-avr-mmcu-texi.c (print_mcus): Fail on duplicate MCUs.
12728 * config/avr/t-multilib: Regenerate.
12729 * config/avr/avr-tables.opt: Regenerate.
12730 * doc/avr-mmcu.texi: Regenerate.
12731
283045c0
GJL
127322013-07-10 Georg-Johann Lay <avr@gjlay.de>
12733
12734 PR target/56987
12735 * config/avr/avr.opt (Waddr-space-convert): Fix typo.
12736
ceb2d59f 127372013-07-10 Graham Stott <graham.stott@btinternet.com>
6a2fa4b2 12738
ceb2d59f
GS
12739 * config/mips/mips.c (mips_rtx_costs): Very slightly increase
12740 the cost of MULT when optimizing for size.
12741
055e0a99
JBG
127422013-07-10 Jan-Benedict Glaw <jbglaw@lug-owl.de>
12743
12744 * config/cr16/cr16-protos.h: Don't include target.h.
12745
ef43e868
JM
127462013-07-09 Joseph Myers <joseph@codesourcery.com>
12747
12748 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Only
12749 adjust register size for TDmode and TFmode for VSX registers.
12750
4a283fdf
KT
127512013-07-08 Kai Tietz <ktietz@redhat.com>
12752
12753 PR target/56892
12754 * config/i386/i386.c (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): Define as
12755 hook_bool_const_tree_true.
12756
2cf4c39e
AK
127572013-07-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12758
12759 * config/s390/s390.c: Replace F*_REGNUM with FPR*_REGNUM.
12760 * config/s390/s390.h: Remove F*_REGNUM macro definitions.
12761 * config/s390/s390.md: Define FPR*_REGNUM constants.
12762 Fix FPR2_REGNUM constant (18 -> 17).
12763 ("*trunc<BFP:mode><DFP_ALL:mode>2")
12764 ("*trunc<DFP_ALL:mode><BFP:mode>2")
12765 ("trunc<BFP:mode><DFP_ALL:mode>2")
12766 ("trunc<DFP_ALL:mode><BFP:mode>2")
12767 ("*extend<BFP:mode><DFP_ALL:mode>2")
12768 ("*extend<DFP_ALL:mode><BFP:mode>2")
12769 ("extend<BFP:mode><DFP_ALL:mode>2")
12770 ("extend<DFP_ALL:mode><BFP:mode>2"): Replace FPR2_REGNUM with
12771 FPR4_REGNUM.
12772
e6ac0270 127732013-07-08 Graham Stott <graham.stott@btinternet.com>
e6ac0270 12774
6a2fa4b2 12775 * Makefile.in: (c-family-warn): Define to $(STRICT_WARN)
64a92610 12776
b89b22fc
AK
127772013-07-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12778
12779 * config/s390/s390.c: Rename cfun_set_fpr_bit to cfun_set_fpr_save
12780 and cfun_fpr_bit_p to cfun_fpr_save_p.
12781 (s390_frame_area, s390_register_info, s390_frame_info)
12782 (s390_emit_prologue, s390_emit_epilogue)
12783 (s390_conditional_register_usage): Use the *_REGNUM macros for FPR
12784 register numbers.
12785 * config/s390/s390.h: Define *_REGNUM macros for floating point
12786 register numbers.
12787
07f398aa
EB
127882013-07-08 Eric Botcazou <ebotcazou@adacore.com>
12789
12790 * Makefile.in (tree-ssa-reassoc.o): Add dependency on $(PARAMS_H).
12791
75fefa91
PCC
127922013-07-08 Po-Chun Chang <pchang9@cs.wisc.edu>
12793
12794 PR rtl-optimization/57786
12795 * combine.c (distribute_notes) <case REG_DEAD>: Change all_used to bool
12796 and break out of the loop when it is set to false.
12797
046f1eee
JJ
127982013-07-08 Jakub Jelinek <jakub@redhat.com>
12799
8140c065
JJ
12800 PR target/57819
12801 * simplify-rtx.c (simplify_unary_operation_1) <case ZERO_EXTEND>:
12802 Simplify (zero_extend:SI (subreg:QI (and:SI (reg:SI)
12803 (const_int 63)) 0)).
12804 * combine.c (make_extraction): Create ZERO_EXTEND or SIGN_EXTEND
12805 using simplify_gen_unary instead of gen_rtx_*_EXTEND.
12806 * config/i386/i386.md (*jcc_bt<mode>_1): New define_insn_and_split.
12807
046f1eee
JJ
12808 PR rtl-optimization/57829
12809 * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Ensure that
12810 mask bits outside of mode are just sign-extension from mode to HWI.
12811
930b700b
MZ
128122013-07-08 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
12813
12814 * config/i386/i386-opts.h (enum stringop_alg): Add vector_loop.
12815 * config/i386/i386.c (expand_set_or_movmem_via_loop): Use
12816 adjust_address instead of change_address to keep info about alignment.
12817 (emit_strmov): Remove.
12818 (emit_memmov): New function.
12819 (expand_movmem_epilogue): Refactor to properly handle bigger sizes.
12820 (expand_movmem_epilogue): Likewise and return updated rtx for
12821 destination.
12822 (expand_constant_movmem_prologue): Likewise and return updated rtx for
12823 destination and source.
12824 (decide_alignment): Refactor, handle vector_loop.
12825 (ix86_expand_movmem): Likewise.
12826 (ix86_expand_setmem): Likewise.
12827 * config/i386/i386.opt (Enum): Add vector_loop to option stringop_alg.
12828
7b9d1bd8
UB
128292013-07-07 Uros Bizjak <ubizjak@gmail.com>
12830
12831 * config/i386/driver-i386.c (host_detect_local_cpu): Do not check
12832 signature_TM2_ebx, it interferes with signature_INTEL_ebx.
12833
eabb5f48
UB
128342013-07-06 Uros Bizjak <ubizjak@gmail.com>
12835
12836 * config/i386/sse.md (sse_movlhps): Change alternative 3
12837 of operand 2 to "m".
12838
128392013-07-06 Uros Bizjak <ubizjak@gmail.com>
12840
12841 PR target/57807
12842 * config/i386/sse.md (iptr): New mode attribute.
12843 (sse2_movq128): Add pointer size overrides for Intel asm dialect.
12844 (<sse>_vm<plusminus_insn><mode>3): Ditto.
12845 (<sse>_vmmul<mode>3): Ditto.
12846 (<sse>_vmdiv<mode>3): Ditto.
12847 (sse_vmrcpv4sf2): Ditto.
12848 (<sse>_vmsqrt<mode>2): Ditto.
12849 (sse_vmrsqrtv4sf2): Ditto.
12850 (<sse>_vm<code><mode>3): Ditto.
12851 (avx_vmcmp<mode>3): Ditto.
12852 (<sse>_vmmaskcmp<mode>3): Ditto.
12853 (<sse>_comi): Ditto.
12854 (<sse>_ucomi): Ditto.
12855 (*xop_vmfrcz_<mode>): Ditto.
12856 (*fmai_fmadd_<mode>): Ditto.
12857 (*fmai_fmsub_<mode>): Ditto.
12858 (*fmai_fnmadd_<mode>): Ditto.
12859 (*fmai_fnmsub_<mode>): Ditto.
12860 (*fma4i_vmfmadd_<mode>): Ditto.
12861 (*fma4i_vmfmsub_<mode>): Ditto.
12862 (*fma4i_vmfnmadd_<mode>): Ditto.
12863 (*fma4i_vmfnmsub_<mode>): Ditto.
12864 (*xop_vmfrcz_<mode>): Ditto.
12865 (sse_cvtps2pi): Ditto.
12866 (sse_cvttps2pi): Ditto.
12867 (sse_cvtss2si): Ditto.
12868 (sse_cvtss2si_2): Ditto.
12869 (sse_cvtss2siq_2): Ditto.
12870 (sse_cvttss2si): Ditto.
12871 (sse_cvttss2siq): Ditto.
12872 (sse_cvtsd2si): Ditto.
12873 (sse_cvtsd2si_2): Ditto.
12874 (sse_cvtsd2siq_2): Ditto.
12875 (sse_cvttsd2si): Ditto.
12876 (sse_cvttsd2siq): Ditto.
12877 (sse_cvtsd2ss): Ditto.
12878 (sse_cvtss2sd): Ditto.
12879 (avx2_pbroadcast<mode>): Ditto.
12880 (avx2_pbroadcast<mode>_1): Ditto.
12881 (*avx_vperm_broadcast_v4sf): Ditto.
12882
12883 (sse_movhlps): Ditto for movlp[sd]/movhp[sd] alternatives.
12884 (sse_movlhps): Ditto.
12885 (sse_storehps): Ditto.
12886 (sse_loadhps): Ditto.
12887 (sse_storelps): Ditto.
12888 (sse_loadlps): Ditto.
12889 (*vec_concatv4sf): Ditto.
12890 (*vec_interleave_highv2df): Ditto.
12891 (*vec_interleave_lowv2df): Ditto.
12892 (*vec_extractv2df_1_sse): Ditto.
12893 (*vec_extractv2df_0_sse): Ditto.
12894 (sse2_storelpd): Ditto.
12895 (sse2_loadlpd): Ditto.
12896 (sse2_movsd): Ditto.
12897 (*vec_concatv4si): Ditto.
12898 (vec_concatv2di): Ditto.
12899
12900 * config/i386/mmx.md (mmx_punpcklbw): Add pointer size overrides
12901 for Intel asm dialect.
12902 (mmx_punpcklwd): Ditto.
12903 (mmx_punpckldq): Ditto.
12904
12905 * config/i386/i386.c (ix86_print_operand) ['H']: Output 'qword ptr'
12906 for intel assembler dialect.
12907
1f6eac90
JJ
129082013-07-06 Jakub Jelinek <jakub@redhat.com>
12909
12910 PR target/29776
12911 * fold-const.c (tree_call_nonnegative_warnv_p): Return true
12912 for BUILT_IN_C{LZ,LRSB}*.
12913 * tree.h (CASE_INT_FN): Add FN##IMAX case.
12914 * tree-vrp.c (extract_range_basic): Handle
12915 BUILT_IN_{FFS,PARITY,POPCOUNT,C{LZ,TZ,LRSB}}*. For
12916 BUILT_IN_CONSTANT_P if argument isn't (D) of PARM_DECL,
12917 fall thru to code calling set_value*.
12918 * builtins.c (expand_builtin): Remove *IMAX cases.
12919 (fold_builtin_bitop): For BUILT_IN_CLRSB* return NULL_TREE
12920 if width is bigger than 2*HWI.
12921
2b778c9d
VM
129222013-07-05 Vladimir Makarov <vmakarov@redhat.com>
12923
12924 PR rtl-optimization/55342
12925 * lra-int.h (lra_subreg_reload_pseudos): New.
12926 * lra.c: Add undoing optional reloads to the block diagram.
12927 (lra_subreg_reload_pseudos): New.
12928 (lra_optional_reload_pseudos): Change comments.
12929 (lra): Init and clear lra_subreg_reload_pseudos. Clear
12930 lra_optional_reload_pseudos after undo transformations.
12931 * lra-assigns.c (pseudo_prefix_title): New.
12932 (lra_setup_reg_renumber): Use it.
12933 (spill_for): Ditto. Check subreg reload pseudos too.
12934 (assign_by_spills): Consider subreg reload pseudos too.
12935 * lra-constraints.c (simplify_operand_subreg): Use
12936 lra_subreg_reload_pseudos instead of lra_optional_reload_pseudos.
12937 (curr_insn_transform): Recognize and do optional reloads.
12938 (undo_optional_reloads): New.
12939 (lra_undo_inheritance): Call undo_optional_reloads.
12940
207156e4
TQ
129412013-07-05 Thomas Quinot <quinot@adacore.com>
12942
12943 * tree-complex.c (expand_complex_operations_1): Fix typo.
12944
8990e73a
TB
129452013-07-04 Tejas Belagod <tejas.belagod@arm.com>
12946
12947 * config/aarch64/aarch64-protos.h (cpu_vector_cost): New.
12948 (tune_params): New member 'const vec_costs'.
12949 * config/aarch64/aarch64.c (generic_vector_cost): New.
12950 (generic_tunings): New member 'generic_vector_cost'.
12951 (aarch64_builtin_vectorization_cost): New.
12952 (aarch64_add_stmt_cost): New.
12953 (TARGET_VECTORIZE_ADD_STMT_COST): New.
12954 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): New.
12955
f7bc421d
JJ
129562013-07-03 Jakub Jelinek <jakub@redhat.com>
12957
12958 PR target/57777
12959 * config/i386/predicates.md (vsib_address_operand): Disallow
12960 SYMBOL_REF or LABEL_REF in parts.disp if TARGET_64BIT && flag_pic.
12961
e90d1568
HPN
129622013-07-03 Hans-Peter Nilsson <hp@bitrange.com>
12963
12964 PR middle-end/55030
12965 * stmt.c (expand_nl_goto_receiver): Remove almost-copy of
12966 expand_builtin_setjmp_receiver.
12967 (expand_label): Adjust, call expand_builtin_setjmp_receiver
12968 with NULL for the label parameter.
12969 * builtins.c (expand_builtin_setjmp_receiver): Don't clobber
12970 the frame-pointer. Adjust comments.
12971 [HAVE_builtin_setjmp_receiver]: Emit builtin_setjmp_receiver
12972 only if LABEL is non-NULL.
12973
cbd7413b
YZ
129742013-07-03 Yufeng Zhang <yufeng.zhang@arm.com>
12975
12976 * config/aarch64/aarch64.h (enum arm_abi_type): Remove.
12977 (ARM_ABI_AAPCS64): Ditto.
12978 (arm_abi): Ditto.
12979 (ARM_DEFAULT_ABI): Ditto.
12980
dec11868
JG
129812013-07-03 James Greenhalgh <james.greenhalgh@arm.com>
12982
12983 * config/aarch64/aarch64-builtins.c
12984 (aarch64_simd_expand_builtin): Handle AARCH64_SIMD_STORE1.
12985 * config/aarch64/aarch64-simd-builtins.def (ld1): New.
12986 (st1): Likewise.
12987 * config/aarch64/aarch64-simd.md
12988 (aarch64_ld1<VALL:mode>): New.
12989 (aarch64_st1<VALL:mode>): Likewise.
12990 * config/aarch64/arm_neon.h
12991 (vld1<q>_<fpsu><8, 16, 32, 64>): Convert to RTL builtins.
12992
786fb9b6
ST
129932013-07-02 Sriraman Tallam <tmsriram@google.com>
12994
0ba6aff3
UB
12995 * config/i386/i386.c (gate_insert_vzeroupper): Check if
12996 target ISA is AVX.
786fb9b6
ST
12997 (ix86_option_override_internal):Turn on all -mavx target flags by
12998 default as they are dependent on AVX anyway.
12999
4b043553
CC
130002013-07-02 Cary Coutant <ccoutant@google.com>
13001
13002 * dwarf2out.c (loc_checksum): Call hash_loc_operands for a
13003 deterministic hash.
13004 (loc_checksum_ordered): Likewise.
13005 (hash_loc_operands): Remove inline keyword.
13006
c4e87a13
JJ
130072013-07-02 Jakub Jelinek <jakub@redhat.com>
13008
13009 PR tree-optimization/57741
13010 * tree-vect-loop.c (vect_is_simple_iv_evolution): Disallow
13011 non-INTEGRAL_TYPE_P non-SCALAR_FLOAT_TYPE_P SSA_NAME step_exprs,
13012 or SCALAR_FLOAT_TYPE_P SSA_NAMEs if !flag_associative_math.
13013 Allow REAL_CST step_exprs if flag_associative_math.
13014 (get_initial_def_for_induction): Handle SCALAR_FLOAT_TYPE_P step_expr.
13015
26366d28
IB
130162013-07-02 Ian Bolton <ian.bolton@arm.com>
13017
0ba6aff3 13018 * config/aarch64/aarch64-simd.md (absdi2): Support abs for DI mode.
26366d28 13019
2879bb2b
IB
130202013-07-02 Ian Bolton <ian.bolton@arm.com>
13021
13022 * config/aarch64/aarch64.md (*extr_insv_reg<mode>): New pattern.
13023
afc5e8a6
KT
130242013-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13025
13026 * config/arm/arm.md (arm_andsi3_insn): Add alternatives for 16-bit
13027 encoding.
13028 (iorsi3_insn): Likewise.
13029 (arm_xorsi3): Likewise.
13030
31f8442b
SN
130312013-07-01 Sofiane Naci <sofiane.naci@arm.com>
13032
13033 * arm.md (attribute "wtype"): Delete. Move attribute values from here
13034 to ...
13035 (attribute "type"): ... here, and prefix with "wmmx_".
13036 (attribute "core_cycles"): Update for attribute changes.
13037 * iwmmxt.md (tbcstv8qi): Update for attribute changes.
13038 (tbcstv4hi): Likewise.
13039 (tbcstv2si): Likewise.
13040 (iwmmxt_iordi3): Likewise.
13041 (iwmmxt_xordi3): Likewise.
13042 (iwmmxt_anddi3): Likewise.
13043 (iwmmxt_nanddi3): Likewise.
13044 (iwmmxt_arm_movdi): Likewise.
13045 (iwmmxt_movsi_insn): Likewise.
13046 (mov<mode>_internal): Likewise.
13047 (and<mode>3_iwmmxt): Likewise.
13048 (ior<mode>3_iwmmxt): Likewise.
13049 (xor<mode>3_iwmmxt): Likewise.
13050 (add<mode>3_iwmmxt): Likewise.
13051 (ssaddv8qi3): Likewise.
13052 (ssaddv4hi3): Likewise.
13053 (ssaddv2si3): Likewise.
13054 (usaddv8qi3): Likewise.
13055 (usaddv4hi3): Likewise.
13056 (usaddv2si3): Likewise.
13057 (sub<mode>3_iwmmxt): Likewise.
13058 (sssubv8qi3): Likewise.
13059 (sssubv4hi3): Likewise.
13060 (sssubv2si3): Likewise.
13061 (ussubv8qi3): Likewise.
13062 (ussubv4hi3): Likewise.
13063 (ussubv2si3): Likewise.
13064 (mulv4hi3_iwmmxt): Likewise.
13065 (smulv4hi3_highpart): Likewise.
13066 (umulv4hi3_highpart): Likewise.
13067 (iwmmxt_wmacs): Likewise.
13068 (iwmmxt_wmacsz): Likewise.
13069 (iwmmxt_wmacu): Likewise.
13070 (iwmmxt_wmacuz): Likewise.
13071 (iwmmxt_clrdi): Likewise.
13072 (iwmmxt_clrv8qi): Likewise.
13073 (iwmmxt_clr4hi): Likewise.
13074 (iwmmxt_clr2si): Likewise.
13075 (iwmmxt_uavgrndv8qi3): Likewise.
13076 (iwmmxt_uavgrndv4hi3): Likewise.
13077 (iwmmxt_uavgv8qi3): Likewise.
13078 (iwmmxt_uavgv4hi3): Likewise.
13079 (iwmmxt_tinsrb): Likewise.
13080 (iwmmxt_tinsrh): Likewise.
13081 (iwmmxt_tinsrw): Likewise.
13082 (iwmmxt_textrmub): Likewise.
13083 (iwmmxt_textrmsb): Likewise.
13084 (iwmmxt_textrmuh): Likewise.
13085 (iwmmxt_textrmsh): Likewise.
13086 (iwmmxt_textrmw): Likewise.
13087 (iwmxxt_wshufh): Likewise.
13088 (eqv8qi3): Likewise.
13089 (eqv4hi3): Likewise.
13090 (eqv2si3): Likewise.
13091 (gtuv8qi3): Likewise.
13092 (gtuv4hi3): Likewise.
13093 (gtuv2si3): Likewise.
13094 (gtv8qi3): Likewise.
13095 (gtv4hi3): Likewise.
13096 (gtv2si3): Likewise.
13097 (smax<mode>3_iwmmxt): Likewise.
13098 (umax<mode>3_iwmmxt): Likewise.
13099 (smin<mode>3_iwmmxt): Likewise.
13100 (umin<mode>3_iwmmxt): Likewise.
13101 (iwmmxt_wpackhss): Likewise.
13102 (iwmmxt_wpackwss): Likewise.
13103 (iwmmxt_wpackdss): Likewise.
13104 (iwmmxt_wpackhus): Likewise.
13105 (iwmmxt_wpackwus): Likewise.
13106 (iwmmxt_wpackdus): Likewise.
13107 (iwmmxt_wunpckihb): Likewise.
13108 (iwmmxt_wunpckihh): Likewise.
13109 (iwmmxt_wunpckihw): Likewise.
13110 (iwmmxt_wunpckilb): Likewise.
13111 (iwmmxt_wunpckilh): Likewise.
13112 (iwmmxt_wunpckilw): Likewise.
13113 (iwmmxt_wunpckehub): Likewise.
13114 (iwmmxt_wunpckehuh): Likewise.
13115 (iwmmxt_wunpckehuw): Likewise.
13116 (iwmmxt_wunpckehsb): Likewise.
13117 (iwmmxt_wunpckehsh): Likewise.
13118 (iwmmxt_wunpckehsw): Likewise.
13119 (iwmmxt_wunpckelub): Likewise.
13120 (iwmmxt_wunpckeluh): Likewise.
13121 (iwmmxt_wunpckeluw): Likewise.
13122 (iwmmxt_wunpckelsb): Likewise.
13123 (iwmmxt_wunpckelsh): Likewise.
13124 (iwmmxt_wunpckelsw): Likewise.
13125 (ror<mode>3): Likewise.
13126 (ashr<mode>3_iwmmxt): Likewise.
13127 (lshr<mode>3_iwmmxt): Likewise.
13128 (ashl<mode>3_iwmmxt): Likewise.
13129 (ror<mode>3_di): Likewise.
13130 (ashr<mode>3_di): Likewise.
13131 (lshr<mode>3_di): Likewise.
13132 (ashl<mode>3_di): Likewise.
13133 (iwmmxt_wmadds): Likewise.
13134 (iwmmxt_wmaddu): Likewise.
13135 (iwmmxt_tmia): Likewise.
13136 (iwmmxt_tmiaph): Likewise.
13137 (iwmmxt_tmiabb): Likewise.
13138 (iwmmxt_tmiatb): Likewise.
13139 (iwmmxt_tmiabt): Likewise.
13140 (iwmmxt_tmiatt): Likewise.
13141 (iwmmxt_tmovmskb): Likewise.
13142 (iwmmxt_tmovmskh): Likewise.
13143 (iwmmxt_tmovmskw): Likewise.
13144 (iwmmxt_waccb): Likewise.
13145 (iwmmxt_wacch): Likewise.
13146 (iwmmxt_waccw): Likewise.
13147 (iwmmxt_waligni): Likewise.
13148 (iwmmxt_walignr): Likewise.
13149 (iwmmxt_walignr0): Likewise.
13150 (iwmmxt_walignr1): Likewise.
13151 (iwmmxt_walignr2): Likewise.
13152 (iwmmxt_walignr3): Likewise.
13153 (iwmmxt_wsadb): Likewise.
13154 (iwmmxt_wsadh): Likewise.
13155 (iwmmxt_wsadbz): Likewise.
13156 (iwmmxt_wsadhz): Likewise.
13157 * iwmmxt2.md (iwmmxt_wabs<mode>3): Update for attribute changes.
13158 (iwmmxt_wabsdiffb): Likewise.
13159 (iwmmxt_wabsdiffh): Likewise.
13160 (iwmmxt_wabsdiffw): Likewise.
13161 (iwmmxt_waddsubhx): Likewise
13162 (iwmmxt_wsubaddhx): Likewise.
13163 (addc<mode>3): Likewise.
13164 (iwmmxt_avg4): Likewise.
13165 (iwmmxt_avg4r): Likewise.
13166 (iwmmxt_wmaddsx): Likewise.
13167 (iwmmxt_wmaddux): Likewise.
13168 (iwmmxt_wmaddsn): Likewise.
13169 (iwmmxt_wmaddun): Likewise.
13170 (iwmmxt_wmulwsm): Likewise.
13171 (iwmmxt_wmulwum): Likewise.
13172 (iwmmxt_wmulsmr): Likewise.
13173 (iwmmxt_wmulumr): Likewise.
13174 (iwmmxt_wmulwsmr): Likewise.
13175 (iwmmxt_wmulwumr): Likewise.
13176 (iwmmxt_wmulwl): Likewise.
13177 (iwmmxt_wqmulm): Likewise.
13178 (iwmmxt_wqmulwm): Likewise.
13179 (iwmmxt_wqmulmr): Likewise.
13180 (iwmmxt_wqmulwmr): Likewise.
13181 (iwmmxt_waddbhusm): Likewise.
13182 (iwmmxt_waddbhusl): Likewise.
13183 (iwmmxt_wqmiabb): Likewise.
13184 (iwmmxt_wqmiabt): Likewise.
13185 (iwmmxt_wqmiatb): Likewise.
13186 (iwmmxt_wqmiatt): Likewise.
13187 (iwmmxt_wqmiabbn): Likewise.
13188 (iwmmxt_wqmiabtn): Likewise.
13189 (iwmmxt_wqmiatbn): Likewise.
13190 (iwmmxt_wqmiattn): Likewise.
13191 (iwmmxt_wmiabb): Likewise.
13192 (iwmmxt_wmiabt): Likewise.
13193 (iwmmxt_wmiatb): Likewise.
13194 (iwmmxt_wmiatt): Likewise.
13195 (iwmmxt_wmiabbn): Likewise.
13196 (iwmmxt_wmiabtn): Likewise.
13197 (iwmmxt_wmiatbn): Likewise.
13198 (iwmmxt_wmiattn): Likewise.
13199 (iwmmxt_wmiawbb): Likewise.
13200 (iwmmxt_wmiawbt): Likewise.
13201 (iwmmxt_wmiawtb): Likewise.
13202 (iwmmxt_wmiawtt): Likewise.
13203 (iwmmxt_wmiawbbn): Likewise.
13204 (iwmmxt_wmiawbtn): Likewise.
13205 (iwmmxt_wmiawtbn): Likewise.
13206 (iwmmxt_wmiawttn): Likewise.
13207 (iwmmxt_wmerge): Likewise.
13208 (iwmmxt_tandc<mode>3): Likewise.
13209 (iwmmxt_torc<mode>3): Likewise.
13210 (iwmmxt_torvsc<mode>3): Likewise.
13211 (iwmmxt_textrc<mode>3): Likewise.
13212 * marvell-f-iwmmxt.md (wmmxt_shift): Update for attribute changes.
13213 (wmmxt_pack): Likewise.
13214 (wmmxt_mult_c1): Likewise.
13215 (wmmxt_mult_c2): Likewise.
13216 (wmmxt_alu_c1): Likewise.
13217 (wmmxt_alu_c2): Likewise.
13218 (wmmxt_alu_c3): Likewise.
13219 (wmmxt_transfer_c1): Likewise.
13220 (wmmxt_transfer_c2): Likewise.
13221 (wmmxt_transfer_c3): Likewise.
13222 (marvell_f_iwmmxt_wstr): Likewise.
13223 (marvell_f_iwmmxt_wldr): Likewise.
13224
bdb7bf8a
YZ
132252013-06-29 Yufeng Zhang <yufeng.zhang@arm.com>
13226
0ba6aff3 13227 * config/aarch64/aarch64.c: Remove junk from the beginning of the file.
bdb7bf8a 13228
e6631d38
VM
132292013-06-28 Vladimir Makarov <vmakarov@redhat.com>
13230
13231 Revert:
13232 2013-06-28 Vladimir Makarov <vmakarov@redhat.com>
13233 * lra-constraints.c (need_for_split_p): Check call used hard regs
13234 living through calls.
13235
13236 * lra-constraints.c (inherit_in_ebb): Reset live_hard_regs for
13237 call used regs for call insn.
13238
53c1275b
JJ
132392013-06-28 Jakub Jelinek <jakub@redhat.com>
13240
13241 PR target/57736
0ba6aff3
UB
13242 * config/i386/i386.c (ix86_expand_builtin): If target == NULL and
13243 mode is VOIDmode, don't create a VOIDmode pseudo to copy result into.
53c1275b 13244
1141ed3f
BI
132452013-06-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
13246
13247 * builtins.def: Fixed the function type of CILKPLUS_BUILTIN.
e6631d38 13248
e32e4c4a
VM
132492013-06-28 Vladimir Makarov <vmakarov@redhat.com>
13250
13251 * lra-constraints.c (need_for_split_p): Check call used hard regs
13252 living through calls.
13253
f161bfd3
MM
132542013-06-28 Michael Meissner <meissner@linux.vnet.ibm.com>
13255
13256 PR target/57744
13257 * config/rs6000/rs6000.h (MODES_TIEABLE_P): Do not allow PTImode
13258 to tie with any other modes. Eliminate Altivec vector mode tests,
13259 since these are a subset of ALTIVEC or VSX vector modes. Simplify
13260 code, to return 0 if testing MODE2 for a condition, if we've
13261 already tested MODE1 for the same condition.
13262
7eda14e1
MS
132632013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
13264
13265 * config/aarch64/aarch64.c (aarch64_cannot_force_const_mem): Adjust
13266 layout.
13267
c822f852
MS
132682013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
13269
13270 * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
13271 Update comment w.r.t SYMBOL_TINY_ABSOLUTE.
13272
da4f13a4
MS
132732013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
13274
0ba6aff3
UB
13275 * config/aarch64/aarch64-protos.h (aarch64_classify_symbol_expression):
13276 Define.
da4f13a4
MS
13277 (aarch64_symbolic_constant_p): Remove.
13278 * config/aarch64/aarch64.c (aarch64_classify_symbol_expression): Remove
13279 static. Fix line length and white space.
13280 (aarch64_symbolic_constant_p): Remove.
13281 * config/aarch64/predicates.md (aarch64_valid_symref):
13282 Use aarch64_classify_symbol_expression.
13283
956a95a5
KT
132842013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13285
13286 * config/arm/constraints.md (Ts): New constraint.
13287 * config/arm/arm.md (arm_movqi_insn): Add alternatives for
13288 16-bit encodings.
13289 (compare_scc): Use "Ts" constraint for operand 0.
13290 (ior_scc_scc): Likewise.
13291 (and_scc_scc): Likewise.
13292 (and_scc_scc_nodom): Likewise.
13293 (ior_scc_scc_cmp): Likewise for operand 7.
13294 (and_scc_scc_cmp): Likewise.
13295 * config/arm/thumb2.md (thumb2_movsi_insn):
13296 Add alternatives for 16-bit encodings.
13297 (thumb2_movhi_insn): Likewise.
13298 (thumb2_movsicc_insn): Likewise.
13299 (thumb2_and_scc): Take 'and' outside cond_exec. Use "Ts" constraint.
13300 (thumb2_negscc): Use "Ts" constraint.
13301 Move mvn instruction outside cond_exec block.
13302 * config/arm/vfp.md (thumb2_movsi_vfp): Add alternatives
13303 for 16-bit encodings.
13304
31dfce10
KT
133052013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13306
13307 * config/arm/arm.md (arm_mulsi3_v6): Add alternative for 16-bit
13308 encoding.
13309 (mulsi3addsi_v6): Disable predicable variant for arm_restrict_it.
13310 (mulsi3subsi): Likewise.
13311 (mulsidi3adddi): Likewise.
13312 (mulsidi3_v6): Likewise.
13313 (umulsidi3_v6): Likewise.
13314 (umulsidi3adddi_v6): Likewise.
13315 (smulsi3_highpart_v6): Likewise.
13316 (umulsi3_highpart_v6): Likewise.
13317 (mulhisi3tb): Likewise.
13318 (mulhisi3bt): Likewise.
13319 (mulhisi3tt): Likewise.
13320 (maddhisi4): Likewise.
13321 (maddhisi4tb): Likewise.
13322 (maddhisi4tt): Likewise.
13323 (maddhidi4): Likewise.
13324 (maddhidi4tb): Likewise.
13325 (maddhidi4tt): Likewise.
13326 (zeroextractsi_compare0_scratch): Likewise.
13327 (insv_zero): Likewise.
13328 (insv_t2): Likewise.
13329 (anddi_notzesidi_di): Likewise.
13330 (anddi_notsesidi_di): Likewise.
13331 (andsi_notsi_si): Likewise.
13332 (iordi_zesidi_di): Likewise.
13333 (xordi_zesidi_di): Likewise.
13334 (andsi_iorsi3_notsi): Likewise.
13335 (smax_0): Likewise.
13336 (smax_m1): Likewise.
13337 (smin_0): Likewise.
13338 (not_shiftsi): Likewise.
13339 (unaligned_loadsi): Likewise.
13340 (unaligned_loadhis): Likewise.
13341 (unaligned_loadhiu): Likewise.
13342 (unaligned_storesi): Likewise.
13343 (unaligned_storehi): Likewise.
13344 (extv_reg): Likewise.
13345 (extzv_t2): Likewise.
13346 (divsi3): Likewise.
13347 (udivsi3): Likewise.
13348 (arm_zero_extendhisi2addsi): Likewise.
13349 (arm_zero_extendqisi2addsi): Likewise.
13350 (compareqi_eq0): Likewise.
13351 (arm_extendhisi2_v6): Likewise.
13352 (arm_extendqisi2addsi): Likewise.
13353 (arm_movt): Likewise.
13354 (thumb2_ldrd): Likewise.
13355 (thumb2_ldrd_base): Likewise.
13356 (thumb2_ldrd_base_neg): Likewise.
13357 (thumb2_strd): Likewise.
13358 (thumb2_strd_base): Likewise.
13359 (thumb2_strd_base_neg): Likewise.
13360 (arm_negsi2): Add alternative for 16-bit encoding.
13361 (arm_one_cmplsi2): Likewise.
13362
1572e697
KT
133632013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13364
13365 * config/arm/predicates.md (arm_cond_move_operator): New predicate.
13366 * config/arm/arm.md (movsfcc): Use arm_cond_move_operator predicate.
13367 (movdfcc): Likewise.
13368 * config/arm/vfp.md (*thumb2_movsf_vfp):
13369 Disable predication for arm_restrict_it.
13370 (*thumb2_movsfcc_vfp): Disable for arm_restrict_it.
13371 (*thumb2_movdfcc_vfp): Likewise.
13372 (*abssf2_vfp, *absdf2_vfp, *negsf2_vfp, *negdf2_vfp,*addsf3_vfp,
13373 *adddf3_vfp, *subsf3_vfp, *subdf3_vfpc, *divsf3_vfp,*divdf3_vfp,
13374 *mulsf3_vfp, *muldf3_vfp, *mulsf3negsf_vfp, *muldf3negdf_vfp,
13375 *mulsf3addsf_vfp, *muldf3adddf_vfp, *mulsf3subsf_vfp,
13376 *muldf3subdf_vfp, *mulsf3negsfaddsf_vfp, *fmuldf3negdfadddf_vfp,
13377 *mulsf3negsfsubsf_vfp, *muldf3negdfsubdf_vfp, *fma<SDF:mode>4,
13378 *fmsub<SDF:mode>4, *fnmsub<SDF:mode>4, *fnmadd<SDF:mode>4,
13379 *extendsfdf2_vfp, *truncdfsf2_vfp, *extendhfsf2, *truncsfhf2,
13380 *truncsisf2_vfp, *truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2,
13381 *floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2, floatunssidf2,
13382 *sqrtsf2_vfp, *sqrtdf2_vfp, *cmpsf_vfp, *cmpsf_trap_vfp, *cmpdf_vfp,
13383 *cmpdf_trap_vfp, <vrint_pattern><SDF:mode>2):
13384 Disable predication for arm_restrict_it.
13385
ebf8f0ea
KY
133862013-06-28 Kirill Yukhin <kirill.yukhin@intel.com>
13387
13388 * config/i386/bmiintrin.h (_bextr_u32): New.
13389 (_bextr_u64): Ditto.
13390
a290fcda
RS
133912013-06-27 Richard Sandiford <rdsandiford@googlemail.com>
13392
13393 * config.gcc (mips*-mti-elf*, mips*-sde-elf*, mips64r5900-*-elf*)
13394 (mips64r5900el-*-elf*): Include mips/n32-elf.h.
13395 * config/mips/sde.h (LOCAL_LABEL_PREFIX, NO_DOLLAR_IN_LABEL)
13396 (LONG_DOUBLE_TYPE_SIZE, LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Move to...
13397 * config/mips/n32-elf.h: ...this new file.
13398
ea169996
MG
133992013-06-27 Marc Glisse <marc.glisse@inria.fr>
13400
13401 PR target/57224
13402 * config/i386/i386.c (enum ix86_builtins, bdesc_args): Remove
13403 IX86_BUILTIN_CMPNGTSS and IX86_BUILTIN_CMPNGESS.
13404
12211b99 134052013-06-27 Catherine Moore <clm@codesourcery.com>
8e932114
CM
13406
13407 * config/mips/mips-tables.opt: Regenerate.
13408 * config/mips/mips-cpus.def: Add m14ke and m14kec.
0ba6aff3 13409 * config/mips/mips.h (BASE_DRIVER_SELF_SPECS): m14ke* implies -mdspr2.
8e932114 13410 * doc/invoke.texi: Add -m14kc.
ebf8f0ea 13411
2444244e
JJ
134122013-06-27 Jakub Jelinek <jakub@redhat.com>
13413
cd06d2a2
JJ
13414 PR target/57623
13415 * config/i386/i386.md (bmi_bextr_<mode>): Swap predicates and
13416 constraints of operand 1 and 2.
13417
2444244e
JJ
13418 PR target/57623
13419 * config/i386/i386.md (bmi2_bzhi_<mode>3): Swap AND arguments
13420 to match RTL canonicalization. Swap predicates and
13421 constraints of operand 1 and 2.
13422
2f259720
VM
134232013-06-27 Vladimir Makarov <vmakarov@redhat.com>
13424
0ba6aff3
UB
13425 * lra-constraints.c (inherit_in_ebb): Process static hard regs too.
13426 Process OP_INOUT regs for splitting too.
2f259720 13427
fef4d2b3
JJ
134282013-06-27 Jakub Jelinek <jakub@redhat.com>
13429
13430 * tree-vect-stmts.c (vectorizable_store): Move ptr_incr var
13431 decl before the loop, initialize to NULL.
13432 (vectorizable_load): Initialize ptr_incr to NULL.
13433
79ee9826
MJ
134342013-06-27 Martin Jambor <mjambor@suse.cz>
13435
13436 PR lto/57208
13437 * ipa-ref.h (ipa_maybe_record_reference): Declare.
13438 * ipa-ref.c (ipa_maybe_record_reference): New function.
13439 * cgraphclones.c (cgraph_create_virtual_clone): Use it.
13440 * ipa-cp.c (create_specialized_node): Record potential references from
13441 aggvals.
13442 * Makefile.in (ipa-ref.o): Add IPA_REF_H to dependencies.
13443
e18b4a81
YZ
134442013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
13445
13446 * config/aarch64/aarch64.c (aarch64_force_temporary): Add an extra
13447 parameter 'mode' of type 'enum machine_mode mode'; change to pass
13448 'mode' to force_reg.
13449 (aarch64_add_offset): Update calls to aarch64_force_temporary.
13450 (aarch64_expand_mov_immediate): Likewise.
13451
9c023bf0
YZ
134522013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
13453
13454 * config/aarch64/aarch64.c (aarch64_add_offset): Change to pass
13455 'mode' to aarch64_plus_immediate and gen_rtx_PLUS.
13456
5a3fe9b6
AK
134572013-06-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13458
13459 * config/s390/s390.c: Rename UNSPEC_CCU_TO_INT to
13460 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
13461 (struct machine_function): Add tbegin_p.
13462 (s390_canonicalize_comparison): Fold CC mode compares to
13463 conditional jump if possible.
13464 (s390_emit_jump): Return the emitted jump.
13465 (s390_branch_condition_mask, s390_branch_condition_mnemonic):
13466 Handle CCRAWmode compares.
13467 (s390_option_override): Default to -mhtm if available.
13468 (s390_reg_clobbered_rtx): Handle floating point regs as well.
13469 (s390_regs_ever_clobbered): Use s390_regs_ever_clobbered also for
13470 FPRs instead of df_regs_ever_live_p.
13471 (s390_optimize_nonescaping_tx): New function.
13472 (s390_init_frame_layout): Extend clobbered_regs array to cover
13473 FPRs as well.
13474 (s390_emit_prologue): Call s390_optimize_nonescaping_tx.
13475 (s390_expand_tbegin): New function.
13476 (enum s390_builtin): New enum definition.
13477 (code_for_builtin): New array definition.
13478 (s390_init_builtins): New function.
13479 (s390_expand_builtin): New function.
13480 (TARGET_INIT_BUILTINS): Define.
13481 (TARGET_EXPAND_BUILTIN): Define.
0ba6aff3 13482 * common/config/s390/s390-common.c (processor_flags_table): Add PF_TX.
5a3fe9b6
AK
13483 * config/s390/predicates.md (s390_comparison): Handle CCRAWmode.
13484 (s390_alc_comparison): Likewise.
13485 * config/s390/s390-modes.def: Add CCRAWmode.
13486 * config/s390/s390.h (processor_flags): Add PF_TX.
13487 (TARGET_CPU_HTM): Define macro.
13488 (TARGET_HTM): Define macro.
13489 (TARGET_CPU_CPP_BUILTINS): Define __HTM__ for htm.
13490 * config/s390/s390.md: Rename UNSPEC_CCU_TO_INT to
13491 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
13492 (UNSPECV_TBEGIN, UNSPECV_TBEGINC, UNSPECV_TEND, UNSPECV_TABORT)
0ba6aff3 13493 (UNSPECV_ETND, UNSPECV_NTSTG, UNSPECV_PPA): New unspecv enum values.
5a3fe9b6
AK
13494 (TBEGIN_MASK, TBEGINC_MASK): New constants.
13495 ("*cc_to_int"): Move up.
13496 ("*mov<mode>cc", "*cjump_64", "*cjump_31"): Accept integer
13497 constants other than 0.
13498 ("*ccraw_to_int"): New insn and splitter definition.
13499 ("tbegin", "tbegin_nofloat", "tbegin_retry")
13500 ("tbegin_retry_nofloat", "tbeginc", "tend", "tabort")
13501 ("tx_assist"): New expander.
13502 ("tbegin_1", "tbegin_nofloat_1", "*tbeginc_1", "*tend_1")
13503 ("*tabort_1", "etnd", "ntstg", "*ppa"): New insn definition.
13504 * config/s390/s390.opt: Add -mhtm option.
13505 * config/s390/s390-protos.h (s390_emit_jump): Add return type.
13506 * config/s390/htmxlintrin.h: New file.
13507 * config/s390/htmintrin.h: New file.
13508 * config/s390/s390intrin.h: New file.
13509 * doc/extend.texi: Document htm builtins.
13510 * config.gcc: Add the new header files to extra_headers.
13511
9e216629
TS
135122013-06-26 Thomas Schwinge <thomas@codesourcery.com>
13513
13514 * config/i386/gnu.h [TARGET_LIBC_PROVIDES_SSP]
0ba6aff3 13515 (TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Undefine.
9e216629 13516
fd8c65e7 135172013-06-26 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
13518 Pat Haugen <pthaugen@us.ibm.com>
13519 Peter Bergner <bergner@vnet.ibm.com>
fd8c65e7
MM
13520
13521 * config/rs6000/power8.md: New.
13522 * config/rs6000/rs6000-cpus.def (RS6000_CPU table): Adjust processor
13523 setting for power8 entry.
13524 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power8.md.
13525 * config/rs6000/rs6000.c (is_microcoded_insn, is_cracked_insn): Adjust
13526 test for Power4/Power5 only.
13527 (insn_must_be_first_in_group, insn_must_be_last_in_group): Add Power8
13528 support.
13529 (force_new_group): Adjust comment.
13530 * config/rs6000/rs6000.md: Include power8.md.
13531
b24a2ce5
GY
135322013-06-26 Greta Yorsh <Greta.Yorsh@arm.com>
13533
13534 * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Define macro.
13535 * config/arm/arm-protos.h (arm_max_conditional_execute): New
13536 declaration.
13537 (tune_params): Update comment.
13538 * config/arm/arm.c (arm_cortex_a15_tune): Set max_cond_insns to 2.
13539 (arm_max_conditional_execute): New function.
13540 (thumb2_final_prescan_insn): Use max_insn_skipped and
13541 MAX_INSN_PER_IT_BLOCK to compute maximum instructions in a block.
13542
f6fdeb62
JJ
135432013-06-25 Jakub Jelinek <jakub@redhat.com>
13544
13545 PR tree-optimization/57705
13546 * tree-vect-loop.c (vect_is_simple_iv_evolution): Allow
13547 SSA_NAME step, provided that it is not defined inside the loop.
0ba6aff3 13548 (vect_analyze_scalar_cycles_1): Disallow SSA_NAME step in nested loop.
f6fdeb62
JJ
13549 (get_initial_def_for_induction): Handle SSA_NAME IV step.
13550
c13bc3d9
MJ
135512013-06-25 Martin Jambor <mjambor@suse.cz>
13552
13553 PR middle-end/57670
13554 * cgraph.h (cgraph_indirect_call_info): New flag member_ptr.
13555 * ipa-prop.c (ipa_print_node_jump_functions): Mark member pointer
13556 calls in the dump.
13557 (ipa_note_param_call): Initialize member_ptr flag.
13558 (ipa_analyze_indirect_call_uses): Set member_ptr flag.
13559 (ipa_make_edge_direct_to_target): Bail out if member_ptr is set.
13560 (ipa_write_indirect_edge_info): Stream member_ptr flag.
13561 (ipa_read_indirect_edge_info): Likewise.
13562
8a845901
RB
135632013-06-25 Richard Biener <rguenther@suse.de>
13564
13565 PR middle-end/56977
13566 * passes.c (init_optimization_passes): Move pass_fold_builtins
13567 and pass_dce earlier with -Og.
13568
33be0bec
EB
135692013-06-25 Eric Botcazou <ebotcazou@adacore.com>
13570
13571 * expr.c (expand_expr_real_1) <ARRAY_REF>: Fix formatting glitches.
13572 <BIT_FIELD_REF>: Remove trailing TAB.
13573 * varasm.c (output_constructor_bitfield): Fix formatting glitch and
13574 remove blank line.
13575
5fe8e757
MJ
135762013-06-24 Martin Jambor <mjambor@suse.cz>
13577
13578 PR tree-optimization/57358
13579 * ipa-prop.c (ipa_func_spec_opts_forbid_analysis_p): New function.
13580 (ipa_compute_jump_functions_for_edge): Bail out if it returns true.
13581 (ipa_analyze_params_uses): Generate pessimistic info when true.
13582
44a60244
MJ
135832013-06-24 Martin Jambor <mjambor@suse.cz>
13584
13585 PR tree-optimization/57539
13586 * cgraphclones.c (cgraph_clone_node): Add parameter new_inlined_to, set
13587 global.inlined_to of the new node to it. All callers changed.
13588 * ipa-inline-transform.c (clone_inlined_nodes): New variable
13589 inlining_into, pass it to cgraph_clone_node.
13590 * ipa-prop.c (ipa_propagate_indirect_call_infos): Do not call
13591 ipa_free_edge_args_substructures.
13592 (ipa_edge_duplication_hook): Only add edges from inlined nodes to
13593 rdesc linked list. Do not assert rdesc edges have inlined caller.
13594 Assert we have found an rdesc in the rdesc list.
13595
7c5848b8
RB
135962013-06-24 Richard Biener <rguenther@suse.de>
13597
0ba6aff3 13598 * pointer-set.h (struct pointer_set_t): Move here from pointer-set.c.
7c5848b8
RB
13599 (pointer_set_lookup): Declare.
13600 (class pointer_map): New template class implementing a
13601 generic pointer to T map.
13602 (pointer_map<T>::pointer_map, pointer_map<T>::~pointer_map,
13603 pointer_map<T>::contains, pointer_map<T>::insert,
13604 pointer_map<T>::traverse): New functions.
13605 * pointer-set.c (struct pointer_set_t): Moved to pointer-set.h.
13606 (pointer_set_lookup): New function.
13607 (pointer_set_contains): Use pointer_set_lookup.
13608 (pointer_set_insert): Likewise.
13609 (insert_aux): Remove.
13610 (struct pointer_map_t): Embed a pointer_set_t.
13611 (pointer_map_create): Adjust.
13612 (pointer_map_destroy): Likewise.
13613 (pointer_map_contains): Likewise.
13614 (pointer_map_insert): Likewise.
13615 (pointer_map_traverse): Likewise.
13616 * tree-streamer.h (struct streamer_tree_cache_d): Use a
13617 pointer_map<unsigned> instead of a pointer_map_t.
13618 * tree-streamer.c (streamer_tree_cache_insert_1): Adjust.
13619 (streamer_tree_cache_lookup): Likewise.
13620 (streamer_tree_cache_create): Likewise.
13621 (streamer_tree_cache_delete): Likewise.
13622 * lto-streamer.h (struct lto_tree_ref_encoder): Use a
13623 pointer_map<unsigned> instead of a pointer_map_t.
13624 (lto_init_tree_ref_encoder): Adjust.
13625 (lto_destroy_tree_ref_encoder): Likewise.
13626 * lto-section-out.c (lto_output_decl_index): Likewise.
13627 (lto_record_function_out_decl_state): Likewise.
13628 * dominance.c (iterate_fix_dominators): Use pointer_map<int>.
13629
3dbc97a9
RB
136302013-06-24 Richard Biener <rguenther@suse.de>
13631
13632 PR tree-optimization/57488
13633 * tree-ssa-pre.c (insert): Clear NEW sets before each iteration.
13634
8345965a
AM
136352013-06-24 Alan Modra <amodra@gmail.com>
13636
13637 * config/rs6000/rs6000.c (vspltis_constant): Correct for little-endian.
13638 (gen_easy_altivec_constant): Likewise.
13639 * config/rs6000/predicates.md (easy_vector_constant_add_self,
13640 easy_vector_constant_msb): Likewise.
13641
b7df379f
JJ
136422013-06-23 Jakub Jelinek <jakub@redhat.com>
13643
13644 PR target/57688
13645 * common/config/i386/i386-common.c (ix86_handle_option): For OPT_mlzcnt
13646 add missing return true.
13647
12211b99 136482013-06-23 Oleg Endo <olegendo@gcc.gnu.org>
0bcf9a09
OE
13649
13650 PR target/52483
13651 * config/sh/predicates.md (general_extend_operand): Invoke
13652 general_movsrc_operand for memory operands.
13653 (general_movsrc_operand): Allow reg+reg addressing, do not use
13654 general_operand for memory operands.
13655
97db2bf7
ST
136562013-06-23 Sriraman Tallam <tmsriram@google.com>
13657
13658 * config/i386/i386.c (ix86_pragma_target_parse): Restore target
13659 when current target options does not apply.
13660 * config/i386/i386-protos.h (ix86_reset_previous_fndecl): New function.
13661 * config/i386/i386.c (ix86_reset_previous_fndecl): Ditto.
0ba6aff3
UB
13662 * config/i386/bmiintrin.h: Pass appropriate target
13663 attributes to header.
97db2bf7
ST
13664 * config/i386/mmintrin.h: Ditto.
13665 * config/i386/nmmintrin.h: Ditto.
13666 * config/i386/avx2intrin.h: Ditto.
13667 * config/i386/fxsrintrin.h: Ditto.
13668 * config/i386/tbmintrin.h: Ditto.
13669 * config/i386/xsaveintrin.h: Ditto.
13670 * config/i386/f16cintrin.h: Ditto.
13671 * config/i386/xtestintrin.h: Ditto.
13672 * config/i386/xsaveoptintrin.h: Ditto.
13673 * config/i386/bmi2intrin.h: Ditto.
13674 * config/i386/lzcntintrin.h: Ditto.
13675 * config/i386/smmintrin.h: Ditto.
13676 * config/i386/wmmintrin.h: Ditto.
13677 * config/i386/x86intrin.h: Remove all header include guards.
13678 * config/i386/prfchwintrin.h: Ditto.
13679 * config/i386/pmmintrin.h: Ditto.
13680 * config/i386/tmmintrin.h: Ditto.
13681 * config/i386/xmmintrin.h: Ditto.
13682 * config/i386/popcntintrin.h: Ditto.
13683 * config/i386/rdseedintrin.h: Ditto.
13684 * config/i386/ammintrin.h: Ditto.
13685 * config/i386/emmintrin.h: Ditto.
13686 * config/i386/immintrin.h: Remove all header include guards.
13687 * config/i386/fma4intrin.h: Ditto.
13688 * config/i386/lwpintrin.h: Ditto.
13689 * config/i386/xopintrin.h: Ditto.
13690 * config/i386/ia32intrin.h: Ditto.
13691 * config/i386/avxintrin.h: Ditto.
13692 * config/i386/rtmintrin.h: Ditto.
13693 * config/i386/fmaintrin.h: Ditto.
13694 * config/i386/mm3dnow.h: Ditto.
13695
495e6879
ST
136962013-06-22 Sriraman Tallam <tmsriram@google.com>
13697
13698 * common/config/i386/i386-common.c: Handle LZCNT.
13699
11e8f687
AK
137002013-06-22 Andi Kleen <ak@linux.intel.com>
13701
13702 * doc/extend.texi: Use __atomic_store_n instead of
13703 __atomic_store in HLE example.
13704
12211b99 137052013-06-22 Oleg Endo <olegendo@gcc.gnu.org>
664dd721
OE
13706
13707 * config/sh/sh.c: Remove <cstdlib> workaround.
13708
927f908b
AK
137092013-06-21 Andi Kleen <ak@linux.intel.com>
13710
0ba6aff3 13711 * doc/extend.texi: Dont use __atomic_clear in HLE example. Fix typo.
927f908b 13712
cca410b6
AK
137132013-06-21 Andi Kleen <ak@linux.intel.com>
13714
13715 * doc/extend.texi: Document that __atomic_clear and
13716 __atomic_test_and_set should only be used with bool.
13717
d84db1ed
JH
137182013-06-20 Jan Hubicka <jh@suse.cz>
13719
13720 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Use
13721 types_same_for_odr.
13722 * tree.c (decls_same_for_odr): New function.
13723 (same_for_edr): New function.
13724 (types_same_for_odr): New function.
13725 (get_binfo_at_offset): Use it.
13726 * tree.h (types_same_for_odr): Declare.
13727
12211b99 137282013-06-20 Oleg Endo <olegendo@gcc.gnu.org>
469a31a9
OE
13729 Jason Merrill <jason@redhat.com>
13730
13731 * system.h: Include <cstdlib> as well as <stdlib.h>.
13732
49b4ff63
UB
137332013-06-20 Uros Bizjak <ubizjak@gmail.com>
13734
13735 PR target/57655
13736 * config/i386/i386.c (construct_container): Report error if
13737 long double is used with disabled x87 float returns.
13738
7a89ad00
JH
137392013-06-20 Jan Hubicka <jh@suse.cz>
13740
13741 * lto-cgraph.c (input_symtab): Do not set cgraph state.
13742
12211b99 137432013-06-20 Joern Rennecke <joern.rennecke@embecosm.com>
bd280792
JR
13744
13745 PR rtl-optimization/57425
13746 PR rtl-optimization/57569
13747 * alias.c (write_dependence_p): Remove parameters mem_mode and
13748 canon_mem_addr. Add parameters x_mode, x_addr and x_canonicalized.
13749 Changed all callers.
13750 (canon_anti_dependence): Get comments and semantics in sync.
13751 Add parameter mem_canonicalized. Changed all callers.
13752 * rtl.h (canon_anti_dependence): Update prototype.
13753
d16e9a99
RB
137542013-06-20 Richard Biener <rguenther@suse.de>
13755
13756 * data-streamer-in.c (streamer_read_uhwi): Optimize single
13757 byte case, inline streamer_read_uchar and defer section
13758 overrun check.
13759
c3a9b91b
RB
137602013-06-20 Richard Biener <rguenther@suse.de>
13761
13762 PR tree-optimization/57584
13763 * tree-ssa-loop-niter.c (expand_simple_operations): Avoid including
13764 SSA names into the expanded expression that take part in
13765 abnormal coalescing.
13766
371e77e3 137672013-06-19 Sharad Singhai <singhai@google.com>
fc8a650e
SS
13768
13769 * gcov.c (print_usage): Handle new option.
13770 (process_args): Ditto.
13771 (get_gcov_intermediate_filename): New function.
13772 (output_intermediate_file): New function.
13773 (output_gcov_file): New function
13774 (generate_results): Handle new option.
13775 (release_function): Relase demangled name.
13776 (read_graph_file): Handle demangled name.
13777 (output_lines): Ditto.
13778 * doc/gcov.texi: Document gcov intermediate format.
13779
11f5b71a
VM
137802013-06-19 Vladimir Makarov <vmakarov@redhat.com>
13781
13782 PR bootstrap/57604
13783 * lra.c (emit_add3_insn, emit_add2_insn): New functions.
13784 (lra_emit_add): Use the functions. Add comment about Y as an
13785 address segment.
13786
e1f9340b
DE
137872013-06-19 David Edelsohn <dje.gcc@gmail.com>
13788
13789 PR driver/57652
13790 * collect2.c (collect_atexit): New.
13791 (collect_exit): Delete.
13792 (main): Register collect_atexit with atexit.
13793 (collect_wait): Change collect_exit to exit.
13794 (do_wait): Same.
13795 * collect2.h (collect_exit): Delete.
13796 * tlink.c (do_tlink): Rename exit to ret. Change collect_exit to exit.
13797
e3f9e0ac
WM
137982013-06-19 Wei Mi <wmi@google.com>
13799
13800 PR rtl-optimization/57518
13801 * ira.c (set_paradoxical_subreg): Set pdx_subregs[regno]
13802 if regno is used in paradoxical subreg.
13803 (update_equiv_regs): Check pdx_subregs[regno] before
13804 set a reg to be equivalent with a mem.
13805
a09f1a76
MK
138062013-06-19 Matthias Klose <doko@ubuntu.com>
13807
13808 PR driver/57651
13809 * file-find.h (find_a_file): Add a mode parameter.
13810 * file-find.c (find_a_file): Likewise.
13811 * gcc-ar.c (main): Call find_a_file with R_OK for the plugin,
13812 with X_OK for the executables.
13813 * collect2.c (main): Call find_a_file with X_OK.
13814
7d18b0ad
SE
138152013-06-19 Steve Ellcey <sellcey@mips.com>
13816
13817 PR target/56942
13818 * config/mips/mips.md (casesi_internal_mips16_<mode>):
13819 Use NEXT_INSN instead of next_real_insn.
13820
6a6dac52
JH
138212013-06-19 Jan Hubicka <jh@suse.cz>
13822
13823 * cgraph.h (const_value_known_p): Replace by ...
13824 (ctor_for_folding): .. this one.
13825 * cgraphunit.c (process_function_and_variable_attributes): Use it.
13826 * lto-cgraph.c (compute_ltrans_boundary): Use ctor_for_folding.
13827 * expr.c (expand_expr_real_1): Likewise.
13828 (string_constant): Likewise.
13829 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
13830 * ipa.c (process_references): Likewise.
13831 (symtab_remove_unreachable_nodes): Likewise.
13832 * ipa-inline-analysis.c (param_change_prob): Likewise.
13833 * gimple-fold.c (canonicalize_constructor_val): Likewise.
13834 (get_base_constructor): Likwise.
13835 * varpool.c (varpool_remove_node): Likewise.
13836 (varpool_remove_initializer): LIkewise.
13837 (dump_varpool_node): LIkwise.
13838 (const_value_known_p): Rewrite to ...
13839 (ctor_for_folding): ... this one.
13840
216c12ab
JJ
138412013-06-19 Jakub Jelinek <jakub@redhat.com>
13842
13843 PR driver/57651
13844 * gcc-ar.c (main): If not CROSS_DIRECTORY_STRUCTURE, look for
13845 PERSONALITY in $PATH derived prefixes.
13846
d53e2f99
JL
138472013-06-19 Jeff Law <law@redhat.com>
13848
ecdbf306
JL
13849 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): Fix typo
13850 in comment.
13851
d53e2f99
JL
13852 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): New function.
13853 (simplify_bitwise_binary): Use it to simpify certain binary ops on
13854 booleans.
13855
89e7fc04
SN
138562013-06-19 Sofiane Naci <sofiane.naci@arm.com>
13857
13858 * config/arm/vfp.md: Move VFP instruction classification documentation
13859 to ...
13860 * config/arm/arm.md: ... here. Update instruction classification
13861 documentation.
13862
5e7f6aaa
RE
138632013-06-19 Richard Earnshaw <rearnsha@arm.com>
13864
13865 arm.md (split for eq(reg, 0)): Add variants for ARMv5 and Thumb2.
13866 (peepholes for eq(reg, not-0)): Ensure condition register is dead after
13867 pattern. Use more efficient sequences on ARMv5 and Thumb2.
13868
5fdc1e5d
SB
138692013-06-19 Steven Bosscher <steven@gcc.gnu.org>
13870
13871 PR target/57609
13872 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
13873 with NEXT_INSN. Use tablejump_p to check for jump table data
13874 insns.
13875
e952afba
PC
138762013-06-19 Paolo Carlini <paolo.carlini@oracle.com>
13877
13878 PR c++/56544
13879 * doc/cpp.texi [Standard Predefined Macros, __cplusplus]: Document
13880 that now in C++ the value is correct per the C++ standards.
13881
3fd0303a
RB
138822013-06-19 Richard Biener <rguenther@suse.de>
13883
13884 * expr.c (expand_expr_real_1): Use SCOPE_FILE_SCOPE_P to check
13885 for global context.
13886
b04e4b08
AK
138872013-06-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13888
13889 Revert:
13890 2013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13891
13892 PR target/57609
13893 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
13894 with next_active_insn.
13895
bef8491a
ST
138962013-06-18 Sriraman Tallam <tmsriram@google.com>
13897
13898 * ipa-inline.c (inline_always_inline_functions): Pretend always_inline
13899 functions are inlined during failures to flag an error.
13900 * tree-inline.c (expand_call_inline): Allow the error to be flagged
13901 in early inline pass.
22fc7d3d 13902
c21b257d
L
139032013-06-18 H.J. Lu <hongjiu.lu@intel.com>
13904
13905 * config/i386/i386.c (initial_ix86_tune_features): Fix a typo
13906 in comments.
13907
33255ae3
JB
139082013-06-18 Julian Brown <julian@codesourcery.com>
13909
13910 * config/arm/arm.c (neon_vector_mem_operand): Add strict argument.
13911 Permit virtual register pre-reload if !strict.
13912 (coproc_secondary_reload_class): Adjust for neon_vector_mem_operand
13913 change.
13914 * config/arm/arm-protos.h (neon_vector_mem_operand): Adjust
13915 prototype.
13916 * config/arm/neon.md (movmisalign<mode>): Use
13917 neon_perm_struct_or_reg_operand instead of
13918 neon_struct_or_register_operand.
13919 (*movmisalign<mode>_neon_load, *movmisalign<mode>_neon_store): Use
13920 neon_permissive_struct_operand instead of neon_struct_operand.
13921 * config/arm/constraints.md (Un, Um, Us): Adjust calls to
13922 neon_vector_mem_operand.
13923 * config/arm/predicates.md (neon_struct_operand): Adjust call to
13924 neon_vector_mem_operand.
13925 (neon_permissive_struct_operand): New.
13926 (neon_struct_or_register_operand): Rename to...
13927 (neon_perm_struct_or_reg_operand): This. Adjust call to
13928 neon_vector_mem_operand.
13929
d579fcda
RB
139302013-06-18 Richard Biener <rguenther@suse.de>
13931
13932 * Makefile.in (LTO_STREAMER_H): Add pointer-set.h dependency.
13933 * lto-streamer.h: Include pointer-set.h.
13934 (struct lto_decl_slot): Remove.
13935 (struct lto_tree_ref_encoder): Make tree_hash_table a pointer-map.
13936 Remove next_index entry.
13937 (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
13938 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
13939 (lto_init_tree_ref_encoder): Adjust.
13940 (lto_destroy_tree_ref_encoder): Likewise.
13941 * lto-section-out.c (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
13942 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
13943 (lto_output_decl_index): Adjust.
13944 (lto_new_out_decl_state): Likewise.
13945 (lto_record_function_out_decl_state): Likewise.
13946 * lto-streamer-out.c (copy_function): Likewise.
13947
31ee20ba
RB
139482013-06-18 Richard Biener <rguenther@suse.de>
13949
13950 * Makefile.in (cgraphunit.o): Add $(CFGLOOP_H) dependency.
13951 * cgraphunit.c: Include cfgloop.h.
13952 (init_lowered_empty_function): Initialize the loop tree.
13953 (assemble_thunk): Insert new BBs into loops.
13954
ac0511f2
RB
139552013-06-18 Richard Biener <rguenther@suse.de>
13956
13957 * tree-streamer.h (streamer_tree_cache_create): Adjust prototype.
13958 * tree-streamer.c (streamer_tree_cache_create): Make maintaining
13959 the map from cache entry to cache index optional.
13960 (streamer_tree_cache_replace_tree): Adjust accordingly.
13961 (streamer_tree_cache_append): Likewise.
13962 (streamer_tree_cache_delete): Likewise.
13963 * lto-streamer-in.c (lto_data_in_create): Do not maintain the
13964 streamer cache map from cache entry to cache index.
13965 * lto-streamer-out.c (create_output_block): Adjust.
13966
09485a08
SN
139672013-06-18 Sofiane Naci <sofiane.naci@arm.com>
13968
22fc7d3d
UB
13969 * config/arm/arm.md (attribute "insn"): Move multiplication and
13970 division attributes to...
09485a08
SN
13971 (attribute "type"): ... here. Remove mult.
13972 (attribute "mul32"): New attribute.
13973 (attribute "mul64"): Add umaal.
13974 (*arm_mulsi3): Update attributes.
13975 (*arm_mulsi3_v6): Likewise.
13976 (*thumb_mulsi3): Likewise.
13977 (*thumb_mulsi3_v6): Likewise.
13978 (*mulsi3_compare0): Likewise.
13979 (*mulsi3_compare0_v6): Likewise.
13980 (*mulsi_compare0_scratch): Likewise.
13981 (*mulsi_compare0_scratch_v6): Likewise.
13982 (*mulsi3addsi): Likewise.
13983 (*mulsi3addsi_v6): Likewise.
13984 (*mulsi3addsi_compare0): Likewise.
13985 (*mulsi3addsi_compare0_v6): Likewise.
13986 (*mulsi3addsi_compare0_scratch): Likewise.
13987 (*mulsi3addsi_compare0_scratch_v6): Likewise.
13988 (*mulsi3subsi): Likewise.
13989 (*mulsidi3adddi): Likewise.
13990 (*mulsi3addsi_v6): Likewise.
13991 (*mulsidi3adddi_v6): Likewise.
13992 (*mulsidi3_nov6): Likewise.
13993 (*mulsidi3_v6): Likewise.
13994 (*umulsidi3_nov6): Likewise.
13995 (*umulsidi3_v6): Likewise.
13996 (*umulsidi3adddi): Likewise.
13997 (*umulsidi3adddi_v6): Likewise.
13998 (*smulsi3_highpart_nov6): Likewise.
13999 (*smulsi3_highpart_v6): Likewise.
14000 (*umulsi3_highpart_nov6): Likewise.
14001 (*umulsi3_highpart_v6): Likewise.
14002 (mulhisi3): Likewise.
14003 (*mulhisi3tb): Likewise.
14004 (*mulhisi3bt): Likewise.
14005 (*mulhisi3tt): Likewise.
14006 (maddhisi4): Likewise.
14007 (*maddhisi4tb): Likewise.
14008 (*maddhisi4tt): Likewise.
14009 (maddhidi4): Likewise.
14010 (*maddhidi4tb): Likewise.
14011 (*maddhidi4tt): Likewise.
14012 (divsi3): Likewise.
14013 (udivsi3): Likewise.
14014 * config/arm/thumb2.md (thumb2_mulsi_short): Update attributes.
14015 (thumb2_mulsi_short_compare0): Likewise.
14016 (thumb2_mulsi_short_compare0_scratch): Likewise.
14017 * config/arm/arm1020e.md (1020mult1): Update attribute change.
14018 (1020mult2): Likewise.
14019 (1020mult3): Likewise.
14020 (1020mult4): Likewise.
14021 (1020mult5): Likewise.
14022 (1020mult6): Likewise.
22fc7d3d
UB
14023 * config/arm/cortex-a15.md (cortex_a15_mult32): Update attribute
14024 change.
09485a08
SN
14025 (cortex_a15_mult64): Likewise.
14026 (cortex_a15_sdiv): Likewise.
14027 (cortex_a15_udiv): Likewise.
14028 * config/arm/arm1026ejs.md (mult1): Update attribute change.
14029 (mult2): Likewise.
14030 (mult3): Likewise.
14031 (mult4): Likewise.
14032 (mult5): Likewise.
14033 (mult6): Likewise.
14034 * config/arm/marvell-pj4.md (pj4_ir_mul): Update attribute change.
14035 (pj4_ir_div): Likewise.
14036 * config/arm/arm1136jfs.md (11_mult1): Update attribute change.
14037 (11_mult2): Likewise.
14038 (11_mult3): Likewise.
14039 (11_mult4): Likewise.
14040 (11_mult5): Likewise.
14041 (11_mult6): Likewise.
14042 (11_mult7): Likewise.
14043 * config/arm/cortex-a8.md (cortex_a8_mul): Update attribute change.
14044 (cortex_a8_mla): Likewise.
14045 (cortex_a8_mull): Likewise.
14046 (cortex_a8_smulwy): Likewise.
14047 (cortex_a8_smlald): Likewise.
14048 * config/arm/cortex-m4.md (cortex_m4_alu): Update attribute change.
14049 * config/arm/cortex-r4.md (cortex_r4_mul_4): Update attribute change.
14050 (cortex_r4_mul_3): Likewise.
14051 (cortex_r4_mla_4): Likewise.
14052 (cortex_r4_mla_3): Likewise.
14053 (cortex_r4_smlald): Likewise.
14054 (cortex_r4_mull): Likewise.
14055 (cortex_r4_sdiv): Likewise.
14056 (cortex_r4_udiv): Likewise.
14057 * config/arm/cortex-a7.md (cortex_a7_mul): Update attribute change.
14058 (cortex_a7_idiv): Likewise.
14059 * config/arm/arm926ejs.md (9_mult1): Update attribute change.
14060 (9_mult2): Likewise.
14061 (9_mult3): Likewise.
14062 (9_mult4): Likewise.
14063 (9_mult5): Likewise.
14064 (9_mult6): Likewise.
14065 * config/arm/cortex-a53.md (cortex_a53_mul): Update attribute change.
14066 (cortex_a53_sdiv): Likewise.
14067 (cortex_a53_udiv): Likewise.
14068 * config/arm/fa726te.md (726te_mult_op): Update attribute change.
14069 * config/arm/fmp626.md (mp626_mult1): Update attribute change.
14070 (mp626_mult2): Likewise.
14071 (mp626_mult3): Likewise.
14072 (mp626_mult4): Likewise.
14073 * config/arm/fa526.md (526_mult1): Update attribute change.
14074 (526_mult2): Likewise.
14075 * config/arm/arm-generic.md (mult): Update attribute change.
14076 (mult_ldsched_strongarm): Likewise.
14077 (mult_ldsched): Likewise.
14078 (multi_cycle): Likewise.
14079 * config/arm/cortex-a5.md (cortex_a5_mul): Update attribute change.
14080 * config/arm/fa606te.md (606te_mult1): Update attribute change.
14081 (606te_mult2): Likewise.
14082 (606te_mult3): Likewise.
14083 (606te_mult4): Likewise.
14084 * config/arm/cortex-a9.md (cortex_a9_mult16): Update attribute change.
14085 (cortex_a9_mac16): Likewise.
14086 (cortex_a9_multiply): Likewise.
14087 (cortex_a9_mac): Likewise.
14088 (cortex_a9_multiply_long): Likewise.
14089 * config/arm/fa626te.md (626te_mult1): Update attribute change.
14090 (626te_mult2): Likewise.
14091 (626te_mult3): Likewise.
14092 (626te_mult4): Likewise.
14093
8951f345
RB
140942013-06-18 Richard Biener <rguenther@suse.de>
14095
14096 PR lto/57334
14097 * lto-symtab.c (lto_symtab_merge_decls): Process nodes properly.
14098
d8101d05
AK
140992013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14100
14101 PR target/57609
14102 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
14103 with next_active_insn.
14104
69eff9da
AM
141052013-06-18 Alan Modra <amodra@gmail.com>
14106
14107 * config/rs6000/rs6000.h (enum data_align): New.
14108 (LOCAL_ALIGNMENT, DATA_ALIGNMENT): Use rs6000_data_alignment.
14109 (DATA_ABI_ALIGNMENT): Define.
14110 (CONSTANT_ALIGNMENT): Correct comment.
14111 * config/rs6000/rs6000-protos.h (rs6000_data_alignment): Declare.
14112 * config/rs6000/rs6000.c (rs6000_data_alignment): New function.
14113
8ed00d76
DM
141142013-06-17 David Malcolm <dmalcolm@redhat.com>
14115
14116 * ggc-page.c (ggc_pch_write_object) <d>: Remove erroneous
14117 ATTRIBUTE_UNUSED marking.
14118
3d33d06b
SN
141192013-06-17 Sofiane Naci <sofiane.naci@arm.com>
14120
14121 * config/aarch64/aarch64-simd.md (aarch64_dup_lane<mode>): Add r<-w
14122 alternative and update.
14123 (aarch64_dup_lanedi): Delete.
14124 * config/aarch64/arm_neon.h (vdup<bhsd>_lane_*): Update.
14125 * config/aarch64/aarch64-simd-builtins.def: Update.
14126
ee03e71d
RB
141272013-06-17 Richard Biener <rguenther@suse.de>
14128
14129 * lto-streamer.h (enum LTO_tags): Add LTO_tree_scc.
14130 (lto_input_scc): Declare.
14131 (lto_input_tree_1): Likewise.
14132 (struct lto_stats_d): Add num_tree_bodies_output and
14133 num_pickle_refs_output.
14134 * lto-streamer-in.c (lto_read_body): Use streamer_tree_cache_get_tree.
14135 (lto_read_tree_1): Split out from ...
14136 (lto_read_tree): ... this.
14137 (lto_input_scc): New function.
14138 (lto_input_tree_1): Split out from ...
14139 (lto_input_tree): ... this. Handle LTO_tree_scc.
14140 (lto_data_in_create): Create the streamer cache without hashes.
14141 * lto-streamer-out.c (create_output_block): Create the streamer
14142 cache with hashes when not doing WPA.
14143 (lto_write_tree_1): Split out from ...
14144 (lto_write_tree): ... this.
14145 (get_symbol_initial_value): New function.
14146 (lto_output_tree_1): Split out from ...
14147 (lto_output_tree): ... this. Write trees as series of SCCs
14148 using a DFS walk via DFS_write_tree.
14149 (struct sccs, struct scc_entry): New types.
14150 (next_dfs_num, sccstack, sccstate, sccstate_obstack): New globals.
14151 (DFS_write_tree_body): New function.
14152 (DFS_write_tree): Likewise.
14153 (hash_tree): Likewise.
14154 (scc_entry_compare): Likewise.
14155 (hash_scc): Likewise.
14156 (tree_is_indexable): DEBUG_EXPR_DECLs are local entities.
14157 * tree-streamer-in.c (lto_input_ts_list_tree_pointers): Stream
14158 TREE_CHAIN as regular reference.
14159 (streamer_read_integer_cst): Remove.
14160 (streamer_get_pickled_tree): Adjust.
14161 * tree-streamer-out.c (streamer_write_chain): Disable streaming
14162 of DECL_EXTERNALs in BLOCK_VARS for now.
14163 (write_ts_list_tree_pointers): Stream TREE_CHAIN as regular
14164 reference.
14165 * tree-streamer.c (streamer_tree_cache_add_to_node_array):
14166 Add hash value argument and record that if hashes are recorded
14167 in the cache.
14168 (streamer_tree_cache_insert_1): Adjust.
14169 (streamer_tree_cache_insert): Likewise.
14170 (streamer_tree_cache_insert_at): Rename to ...
14171 (streamer_tree_cache_replace_tree): ... this and adjust.
14172 (streamer_tree_cache_append): Adjust.
14173 (record_common_node): Likewise.
14174 (streamer_tree_cache_create): Add argument whether to
14175 record hash values together with trees.
14176 (streamer_tree_cache_delete): Adjust.
14177 * tree-streamer.h (struct streamer_tree_cache_d): Add
14178 vector of hashes.
14179 (streamer_read_integer_cst): Remove.
14180 (streamer_tree_cache_insert): Adjust.
14181 (streamer_tree_cache_append): Likewise.
14182 (streamer_tree_cache_insert_at): Rename to ...
14183 (streamer_tree_cache_replace_tree): ... this and adjust.
14184 (streamer_tree_cache_create): Add argument whether to record hashes.
14185 (streamer_tree_cache_get): Rename to ...
14186 (streamer_tree_cache_get_tree): ... this.
14187 (streamer_tree_cache_get_hash): New function.
14188 * tree.c (cache_integer_cst): New function.
14189 * tree.h (cache_integer_cst): Declare.
14190 (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Move here from cp/cp-tree.h.
14191 * lto-symtab.c (lto_varpool_replace_node): Only release
14192 DECL_INITIAL of non-prevailing decls.
14193 * varpool.c (varpool_remove_initializer): Do not release
14194 DECL_INITIAL when we are still in CGRAPH_LTO_STREAMING.
14195
0de86a92
JU
141962013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
14197
14198 * config/mips/mips.h (ISA_HAS_MUL3): Include TARGET_MIPS5900.
14199 (ISA_HAS_MULT, ISA_HAS_DMULT, ISA_HAS_DIV, ISA_HAS_DDIV): New macros.
14200 * config/mips/mips.md (mul<mode>3, mul<mode>3_internal)
14201 (mul<mode>3_r4000): Require ISA_HAS_<D>MULT.
14202 (mul<mode>3_mul3): Handle TARGET_MIPS5900.
14203 (mulsidi3_64bit_dmul): Remove redundant TARGET_64BIT test.
14204 (<su>muldi3_highpart, <su>muldi3_highpart_internal, <u>mulditi3)
14205 (<u>mulditi3_internal, <u>mulditi3_r4000): Require ISA_HAS_DMULT
14206 instead of TARGET_64BIT.
14207 (divmod<mode>4, udivmod<mode>4, <u>divmod<GPR:mode>4_hilo_<HILO:mode>):
14208 Require ISA_HAS_<D>DIV.
14209
74240413
RS
142102013-06-16 Richard Sandiford <rdsandiford@googlemail.com>
14211
14212 * config.gcc (mips*-mti-linux*, mips64*-*-linux*, mipsisa64*-*-linux*)
14213 (mips*-*-linux*): Move default with_llsc setting to where other
14214 defaults are set.
14215 (mips*-*-vxworks*): Move with_arch default from with_cpu block to
14216 with_arch block.
14217 (mips64r5900-*-*, mips64r5900el-*-*, mipsr5900-*-*, mipsr5900el-*-*):
14218 Likewise. Remove default with_tune setting. Move default float
14219 setting to its own block. Handle with_llsc in the same block as above.
14220
12211b99 142212013-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
393f9fed
JR
14222
14223 PR rtl-optimization/57425
14224 PR rtl-optimization/57569
299a5f6a 14225 * alias.c (write_dependence_p): Add new parameters mem_mode,
393f9fed
JR
14226 canon_mem_addr and mem_canonicalized. Change type of writep to bool.
14227 Changed all callers.
14228 (canon_anti_dependence): New function.
14229 * cse.c (check_dependence): Use canon_anti_dependence.
14230 * cselib.c (cselib_invalidate_mem): Likewise.
14231 * rtl.h (canon_anti_dependence): Declare.
14232
b259d352
JU
142332013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
14234
14235 * config/mips/mips.h (ISA_HAS_LL_SC): Exclude TARGET_MIPS5900.
14236 * config/mips/mips.c (mips_start_ll_sc_sync_block): Output
14237 ".set mips3" for 64-bit targets.
14238
4de09b85
DC
142392013-06-15 Dehao Chen <dehao@google.com>
14240
14241 * tree-flow.h (gimple_check_call_matching_types): Add new argument.
14242 * gimple-low.c (gimple_check_call_matching_types): Likewise.
14243 (gimple_check_call_args): Likewise.
14244 * value-prof.c (check_ic_target): Likewise.
14245 * ipa-inline.c (early_inliner): Likewise.
14246 * ipa-prop.c (update_indirect_edges_after_inlining): Likewise.
14247 * cgraph.c (cgraph_create_edge_1): Likewise.
14248 (cgraph_make_edge_direct): Likewise.
14249
d1aa4a76
MM
142502013-06-14 Michael Meissner <meissner@linux.vnet.ibm.com>
14251
14252 PR target/57615
14253 * config/rs6000/rs6000.md (mov<mode>_ppc64): Call
14254 rs6000_output_move_128bit to handle emitting quad memory
14255 operations. Set attribute length to 8 bytes.
14256
12211b99 142572013-06-14 Vidya Praveen <vidyapraveen@arm.com>
24244e4d
VP
14258
14259 * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_lo<mode>):
14260 New pattern.
14261 (aarch64_<su>mlal_hi<mode>, aarch64_<su>mlsl_lo<mode>): Likewise.
14262 (aarch64_<su>mlsl_hi<mode>, aarch64_<su>mlal<mode>): Likewise.
14263 (aarch64_<su>mlsl<mode>): Likewise.
14264
f5273574
MS
142652013-06-14 Mike Stump <mikestump@comcast.net>
14266
14267 * Makefile.in (TARGET_H): Add insn-codes.h.
14268
ef7e7ab2
AM
142692013-06-14 Alan Modra <amodra@gmail.com>
14270
14271 PR middle-end/57134
14272 PR middle-end/57586
14273 * expr.c (expand_expr_real_1 <normal_inner_ref>): Pass
14274 EXPAND_MEMORY and EXPAND_WRITE to recursive call. Don't use
14275 bitfield expansion when EXPAND_MEMORY.
14276 (expand_expr_real_1 <VIEW_CONVERT_EXPR>): Pass modifier likewise.
14277
135faab6
MM
142782013-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
14279
14280 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
14281 test for clearing quad memory on 32-bit later.
14282
948a1fd9
MG
142832013-06-13 Marc Glisse <marc.glisse@inria.fr>
14284
14285 * fold-const.c (negate_expr_p): Handle VECTOR_CST.
14286 (fold_negate_expr): Likewise.
14287 (fold_real_zero_addition_p): Handle vectors.
14288 (fold_binary_loc) <PLUS_EXPR, MINUS_EXPR>: Likewise.
14289
0597fb9c
AM
142902013-06-14 Alan Modra <amodra@gmail.com>
14291
14292 * varasm.c (force_const_mem): Revert 2013-06-07 change.
14293
e5b962d0
JH
142942013-06-13 Jan Hubicka <jh@suse.cz>
14295
14296 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
14297 Local comdats are not externally visible.
14298 * symtab.c (dump_symtab_base): Dump externally visible.
14299 (verify_symtab_base): Verify back links in the symtab hash.
14300
a8355e51
BC
143012013-06-13 Bin Cheng <bin.cheng@arm.com>
14302
14303 * fold-const.c (operand_equal_p): Consider NOP_EXPR and
14304 CONVERT_EXPR as equal nodes.
14305
8f7e6e33
BC
143062013-06-13 Bin Cheng <bin.cheng@arm.com>
14307
22fc7d3d 14308 * rtlanal.c (noop_move_p): Check the code to be executed for COND_EXEC.
8f7e6e33 14309
5d418483
MG
143102013-06-13 Marc Glisse <marc.glisse@inria.fr>
14311
14312 * tree-ssa-forwprop.c (simplify_bitwise_binary, associate_plusminus):
14313 Generalize to complex and vector.
14314 * tree.c (build_all_ones_cst): New function.
14315 * tree.h (build_all_ones_cst): Declare it.
14316
50751417
AM
143172013-06-13 Alan Modra <amodra@gmail.com>
14318
14319 * config/rs6000/rs6000.h (LONG_DOUBLE_LARGE_FIRST): Define.
14320 * config/rs6000/rs6000.md (signbittf2): New insn.
14321 (extenddftf2_internal): Use LONG_DOUBLE_LARGE_FIRST.
14322 (abstf2_internal, cmptf_internal2): Likewise.
14323 * config/rs6000/spe.md (spe_abstf2_cmp, spe_abstf2_tst): Likewise.
14324
4b02c962 143252013-06-12 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
14326 Pat Haugen <pthaugen@us.ibm.com>
14327 Peter Bergner <bergner@vnet.ibm.com>
4b02c962
MM
14328
14329 * config/rs6000/rs6000.c (emit_load_locked): Add support for
14330 power8 byte, half-word, and quad-word atomic instructions.
14331 (emit_store_conditional): Likewise.
14332 (rs6000_expand_atomic_compare_and_swap): Likewise.
14333 (rs6000_expand_atomic_op): Likewise.
14334
14335 * config/rs6000/sync.md (larx): Add new modes for power8.
14336 (stcx): Likewise.
14337 (AINT): New mode iterator to include TImode as well as normal
14338 integer modes on power8.
14339 (fetchop_pred): Use int_reg_operand instead of gpc_reg_operand so
14340 that VSX registers are not considered. Use AINT mode iterator
14341 instead of INT1 to allow inclusion of quad word atomic operations
14342 on power8.
14343 (load_locked<mode>): Likewise.
14344 (store_conditional<mode>): Likewise.
14345 (atomic_compare_and_swap<mode>): Likewise.
14346 (atomic_exchange<mode>): Likewise.
14347 (atomic_nand<mode>): Likewise.
14348 (atomic_fetch_<fetchop_name><mode>): Likewise.
14349 (atomic_nand_fetch<mode>): Likewise.
14350 (mem_thread_fence): Use gen_loadsync_<mode> instead of enumerating
14351 each type.
14352 (ATOMIC): On power8, add QImode, HImode modes.
14353 (load_locked<QHI:mode>_si): Varients of load_locked for QI/HI
14354 modes that promote to SImode.
14355 (load_lockedti): Convert TImode arguments to PTImode, so that we
14356 get a guaranteed even/odd register pair.
14357 (load_lockedpti): Likewise.
14358 (store_conditionalti): Likewise.
14359 (store_conditionalpti): Likewise.
14360
14361 * config/rs6000/rs6000.md (QHI): New mode iterator for power8
14362 atomic load/store instructions.
14363 (HSI): Likewise.
14364
710b6cc1
RS
143652013-06-12 Richard Sandiford <rdsandiford@googlemail.com>
14366
14367 * config/mips/mips.md (extended_mips16): Include GOT and constant-pool
14368 loads.
14369 (insn_count): New attribute, with most cases extracted from...
14370 (length): ...here. Redefine most cases in terms of insn_count.
14371 (single_insn): Delete.
14372 (can_delay): Use insn_count to check for single instructions.
14373 (*mul<mode>3_r4300, mul<mode>3_r4000, *mul_acc_si, *mul_acc_si_r3900)
14374 (*msac_using_macc, *mul_sub_si, <u>mulsidi3_32bit_r4000)
14375 (<u>mulsidi3_64bit_r4000, <su>muldi3_highpart_internal)
14376 (<su>mulsi3_highpart_split, <su>muldi3_highpart_internal)
14377 (<u>mulditi3_r4000, *div<mode>3, *recip<mode>3, divmod<mode>4)
14378 (udivmod<mode>4, sqrt<mode>2, *rsqrt<mode>a, *rsqrt<mode>b)
14379 (fix_truncdfsi2_macro, fix_truncsfsi2_macro, *lea_high64)
14380 (*lea64, cprestore_<mode>, clear_hazard_<mode>, <unnamed insn>)
14381 (casesi_internal_mips16_<mode>, *tls_get_tp_<mode>_split)
14382 (tls_get_tp_mips16, *tls_get_tp_mips16_call_<mode>): Use "insn_count"
14383 rather than "length".
14384 (tls_get_tp_<mode>): Likewise. Remove redundant "no_delay" attribute.
14385 * config/mips/mips-ps-3d.md (mips_c_cond_4s, mips_cabs_cond_4s):
14386 Use "insn_count" rather than "length".
14387 * config/mips/mips-dsp.md
14388 (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>)
14389 (mips_l<GPR:size>x_<P:mode>, *mips_lw<u>x_<P:mode>_ext): Remove
14390 length attributes.
14391
1951f101
MG
143922013-06-12 Marc Glisse <marc.glisse@inria.fr>
14393
14394 PR tree-optimization/57361
14395 * tree-ssa-dse.c (dse_possible_dead_store_p): Handle self-assignment.
14396
8b033a8a
SN
143972013-06-12 Sofiane Naci <sofiane.naci@arm.com>
14398
22fc7d3d
UB
14399 * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Convert
14400 to split.
8b033a8a
SN
14401 (aarch64_simd_combine<mode>): New instruction expansion.
14402 * config/aarch64/aarch64-protos.h (aarch64_split_simd_combine): New
14403 function prototype.
14404 * config/aarch64/aarch64.c (aarch64_split_combine): New function.
14405 * config/aarch64/iterators.md (Vdbl): Add entry for DF.
14406
ca0f62a8
JH
144072013-06-12 Jan Hubicka <jh@suse.cz>
14408
14409 * cgraph.c (verify_edge_corresponds_to_fndecl): Be lax about
14410 decl has when in streaming stage.
14411 * lto-symtab.c (lto_symtab_merge_symbols): Likewise.
14412 * cgraph.h (cgraph_state): Add CGRAPH_LTO_STREAMING.
14413
12211b99 144142013-06-12 Roland Stigge <stigge@antcom.de>
cddd69eb
RS
14415
14416 PR target/57578
14417 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Fix SPE version detection.
14418
bfdeda2c
JJ
144192013-06-12 Jakub Jelinek <jakub@redhat.com>
14420
14421 PR tree-optimization/57537
14422 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): If
14423 vect_handle_widen_op_by_const, convert oprnd1 to half_type1.
14424
a4fa02d1
RB
144252013-06-12 Richard Biener <rguenther@suse.de>
14426
14427 * data-streamer.h (streamer_write_char_stream): CSE
14428 obs->current_pointer.
14429 * data-streamer-out.c (streamer_write_uhwi_stream): Inline
14430 streamer_write_char_stream manually and optimize the resulting loop.
14431 (streamer_write_hwi_stream): Likewise.
14432
bbf9ad07
JH
144332013-06-12 Jan Hubicka <jh@suse.cz>
14434
14435 * lto-symtab.c (lto_symtab_merge_symbols): Populate symtab hashtable.
14436 * cgraph.h (varpool_create_empty_node): Declare.
14437 * lto-cgraph.c (input_node, input_varpool_node): Forcingly create
14438 duplicated nodes.
14439 * symtab.c (symtab_unregister_node): Be lax about missin entries
14440 in node hash.
14441 (symtab_get_node): Update comment.
14442 * varpool.c (varpool_create_empty_node): Break out from ...
14443 (varpool_node_for_decl): ... here.
14444 * lto-streamer.h (lto_file_decl_data): Add RESOLUTION_MAP.
14445
a53f90ad
EB
144462013-06-12 Eric Botcazou <ebotcazou@adacore.com>
14447
14448 * expr.c (expand_expr_real_1) <TARGET_MEM_REF>: Use straight-line flow.
14449 <MEM_REF>: Use 'type' instead of TREE_TYPE (exp) and tidy up the first
14450 part. Use straight-line flow at the end.
14451 <COMPONENT_REF>: Remove superfluous else.
14452 <VIEW_CONVERT_EXPR>: Use 'type' instead of TREE_TYPE (exp).
14453
946f9306
JJ
144542013-06-12 Jakub Jelinek <jakub@redhat.com>
14455
14456 PR target/56564
14457 * varasm.c (decl_binds_to_current_def_p): Call binds_local_p
14458 target hook even for !TREE_PUBLIC decls. If no resolution info
14459 is available, return false for common and external decls.
14460
a7fca6f0
KP
144612013-06-12 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
14462
14463 * config/rl78/constraints.md (U): New constraint.
14464 * config/rl78/rl78.md (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): Add
14465 valloc attribute.
14466
c7d8f446
MM
144672013-06-11 Michael Meissner <meissner@linux.vnet.ibm.com>
14468
14469 PR target/57589
14470 * config/rs6000/driver-rs6000.c (elf_platform): Make buffer static
14471 to allow returning address to AT_PLATFORM name.
14472
08346abd
JH
144732013-06-11 Jan Hubicka <jh@suse.cz>
14474
14475 * cgraph.c (cgraph_create_function_alias): Set weakref flag.
14476 * cgraph.h (symtab_node_base): Add weakref flag.
14477 * cgraphunit.c (cgraph_reset_node): Clear weakref flag.
14478 (handle_alias_pairs): Set weakref flag, do not set DECL_EXTERNAL.
14479 (output_weakrefs): Use weakref flag.
14480 * fold-const.c (simple_operand_p): Handle WEAK.
14481 * gimple-fold.c (can_refer_decl_in_current_unit_p): Drop weakref.
14482 * ipa.c (varpool_externally_visible_p): Drop weakref.
14483 (function_and_variable_visibility): Update comment; fix weakref
14484 sanity checks; do not clear DECL_WEAK on them.
14485 * lto-cgraph.c (lto_output_node): update.
14486 (lto_output_varpool_node): Update.
14487 (input_overwrite_node): Update.
14488 (input_node): Update.
14489 (input_varpool_node): Update.
14490 * lto-symtab.c (lto_symtab_symbol_p): Do not special case weakrefs.
14491 (lto_symtab_merge_symbols): Add sanity check.
14492 (lto_symtab_prevailing_decl): Do not special case weakrefs.
14493 * passes.c (rest_of_decl_compilation): Set static flag, too.
14494 * symtab.c (dump_symtab_base): Dump weakref.
14495 (verify_symtab_base): Sanity check weakrefs.
14496 (symtab_make_decl_local): Remove duplicated code.
14497 (symtab_alias_ultimate_target): Simplify.
14498 * varpool.c (varpool_create_variable_alias): Set weakref flag.
c7d8f446 14499
2e6a2f88
TV
145002013-06-11 Tom de Vries <tom@codesourcery.com>
14501
14502 * genautomata.c (gen_regexp_sequence): Handle els_num == -1. Handle
14503 sequence_vect == NULL.
14504
d9af3652
DD
145052013-06-11 DJ Delorie <dj@redhat.com>
14506
14507 * config/rl78/rl78.c (TARGET_UNWIND_WORD_MODE): Define.
14508 (rl78_unwind_word_mode): New.
14509
ffa66012
DM
145102013-06-11 David Malcolm <dmalcolm@redhat.com>
14511
14512 * final.c (debug_prefix_maps): Make static.
14513
783f2d35
DM
145142013-06-11 David Malcolm <dmalcolm@redhat.com>
14515
14516 * function.c (initial_trampoline): Remove stray copy.
14517
7af26def
SN
145182013-06-11 Sofiane Naci <sofiane.naci@arm.com>
14519
14520 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update.
14521
97756c0e
MJ
145222013-06-11 Martin Jambor <mjambor@suse.cz>
14523
14524 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that param_index is
14525 within bounds at the beginning of the function.
14526
2c7b8bf6
AM
145272013-06-11 Alan Modra <amodra@gmail.com>
14528
14529 * varasm.c (get_section): Don't die on !DECL_P decl. Tidy error
14530 reporting.
14531 (get_named_section): Don't NULL !DECL_P decl.
14532
77cea46e
IZ
145332013-06-11 Igor Zamyatin <igor.zamyatin@intel.com>
14534
14535 * doc/invoke.texi (core-avx2): Document.
14536 (slm): Likewise.
14537 (atom): Updated with MOVBE.
14538
888f0920
RB
145392013-06-11 Richard Biener <rguenther@suse.de>
14540
22fc7d3d 14541 * collect2.c (main): Do not redirect ld stdout/stderr when debugging.
888f0920 14542
6b438d58
AB
145432013-06-11 Anton Blanchard <anton@samba.org>
14544
14545 * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Calculate
14546 correct shift value in little-endian mode.
14547
3bc66938
JJ
145482013-06-11 Jakub Jelinek <jakub@redhat.com>
14549
14550 PR target/56564
14551 * varasm.c (get_variable_align): Move #endif to the right place.
14552
a5dc7f88
CC
145532013-06-10 Cary Coutant <ccoutant@google.com>
14554
14555 * dwarf2out.c (hash_external_ref): Use die_symbol or signature
14556 for hash so that hash table traversal order is deterministic.
14557
19be72ab 145582013-06-10 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
14559 Pat Haugen <pthaugen@us.ibm.com>
14560 Peter Bergner <bergner@vnet.ibm.com>
19be72ab
MM
14561
14562 * config/rs6000/vector.md (GPR move splitter): Do not split moves
14563 of vectors in GPRS if they are direct moves or quad word load or
14564 store moves.
14565
14566 * config/rs6000/rs6000-protos.h (rs6000_output_move_128bit): Add
14567 declaration.
14568 (direct_move_p): Likewise.
14569 (quad_load_store_p): Likewise.
14570
14571 * config/rs6000/rs6000.c (enum rs6000_reg_type): Simplify register
14572 classes into bins based on the physical register type.
14573 (reg_class_to_reg_type): Likewise.
14574 (IS_STD_REG_TYPE): Likewise.
14575 (IS_FP_VECT_REG_TYPE): Likewise.
14576 (reload_fpr_gpr): Arrays to determine what insn to use if we can
14577 use direct move instructions.
14578 (reload_gpr_vsx): Likewise.
14579 (reload_vsx_gpr): Likewise.
14580 (rs6000_init_hard_regno_mode_ok): Precalculate the register type
14581 information that is a simplification of register classes. Also
14582 precalculate direct move reload helpers.
14583 (direct_move_p): New function to return true if the operation can
14584 be done as a direct move instruciton.
14585 (quad_load_store_p): New function to return true if the operation
14586 is a quad memory operation.
14587 (rs6000_legitimize_address): If quad memory, only allow register
14588 indirect for TImode addresses.
14589 (rs6000_legitimate_address_p): Likewise.
14590 (enum reload_reg_type): Delete, replace with rs6000_reg_type.
14591 (rs6000_reload_register_type): Likewise.
14592 (register_to_reg_type): Return register type.
14593 (rs6000_secondary_reload_simple_move): New helper function for
14594 secondary reload and secondary memory needed to identify anything
14595 that is a simple move, and does not need reloading.
14596 (rs6000_secondary_reload_direct_move): New helper function for
14597 secondary reload to identify cases that can be done with several
14598 instructions via the direct move instructions.
14599 (rs6000_secondary_reload_move): New helper function for secondary
14600 reload to identify moves between register types that can be done.
14601 (rs6000_secondary_reload): Add support for quad memory operations
14602 and for direct move.
14603 (rs6000_secondary_memory_needed): Likewise.
14604 (rs6000_debug_secondary_memory_needed): Change argument names.
14605 (rs6000_output_move_128bit): New function to return the move to
14606 use for 128-bit moves, including knowing about the various
14607 limitations of quad memory operations.
14608
14609 * config/rs6000/vsx.md (vsx_mov<mode>): Add support for quad
14610 memory operations. call rs6000_output_move_128bit for the actual
14611 instruciton(s) to generate.
14612 (vsx_movti_64bit): Likewise.
14613
14614 * config/rs6000/rs6000.md (UNSPEC_P8V_FMRGOW): New unspec values.
14615 (UNSPEC_P8V_MTVSRWZ): Likewise.
14616 (UNSPEC_P8V_RELOAD_FROM_GPR): Likewise.
14617 (UNSPEC_P8V_MTVSRD): Likewise.
14618 (UNSPEC_P8V_XXPERMDI): Likewise.
14619 (UNSPEC_P8V_RELOAD_FROM_VSX): Likewise.
14620 (UNSPEC_FUSION_GPR): Likewise.
14621 (FMOVE128_GPR): New iterator for direct move.
22fc7d3d 14622 (f32_lv): New mode attribute for load/store of SFmode/SDmode values.
19be72ab
MM
14623 (f32_sv): Likewise.
14624 (f32_dm): Likewise.
14625 (zero_extend<mode>di2_internal1): Add support for power8 32-bit
14626 loads and direct move instructions.
14627 (zero_extendsidi2_lfiwzx): Likewise.
14628 (extendsidi2_lfiwax): Likewise.
14629 (extendsidi2_nocell): Likewise.
14630 (floatsi<mode>2_lfiwax): Likewise.
14631 (lfiwax): Likewise.
14632 (floatunssi<mode>2_lfiwzx): Likewise.
14633 (lfiwzx): Likewise.
14634 (fix_trunc<mode>_stfiwx): Likewise.
14635 (fixuns_trunc<mode>_stfiwx): Likewise.
14636 (mov<mode>_hardfloat, 32-bit floating point): Likewise.
14637 (mov<move>_hardfloat64, 64-bit floating point): Likewise.
14638 (parity<mode>2_cmpb): Set length/type attr.
14639 (unnamed shift right patterns, mov<mode>_internal2): Change type attr
14640 for 'mr.' to fast_compare.
14641 (bpermd_<mode>): Change type attr to popcnt.
14642 (p8_fmrgow_<mode>): New insns for power8 direct move support.
14643 (p8_mtvsrwz_1): Likewise.
14644 (p8_mtvsrwz_2): Likewise.
14645 (reload_fpr_from_gpr<mode>): Likewise.
14646 (p8_mtvsrd_1): Likewise.
14647 (p8_mtvsrd_2): Likewise.
14648 (p8_xxpermdi_<mode>): Likewise.
14649 (reload_vsx_from_gpr<mode>): Likewise.
14650 (reload_vsx_from_gprsf): Likewise.
14651 (p8_mfvsrd_3_<mode>): LIkewise.
14652 (reload_gpr_from_vsx<mode>): Likewise.
14653 (reload_gpr_from_vsxsf): Likewise.
14654 (p8_mfvsrd_4_disf): Likewise.
14655 (multi-word GPR splits): Do not split direct moves or quad memory
14656 operations.
14657
16876bdc
DM
146582013-06-10 David Malcolm <dmalcolm@redhat.com>
14659
14660 * tree-into-ssa.c (interesting_blocks): Make static.
14661
df8a1d28
JJ
146622013-06-10 Jakub Jelinek <jakub@redhat.com>
14663
14664 PR target/56564
14665 * varasm.c (align_variable): Don't use DATA_ALIGNMENT or
14666 CONSTANT_ALIGNMENT if !decl_binds_to_current_def_p (decl).
14667 Use DATA_ABI_ALIGNMENT for that case instead if defined.
14668 (get_variable_align): New function.
14669 (get_variable_section, emit_bss, emit_common,
14670 assemble_variable_contents, place_block_symbol): Use
14671 get_variable_align instead of DECL_ALIGN.
14672 (assemble_noswitch_variable): Add align argument, use it
14673 instead of DECL_ALIGN.
14674 (assemble_variable): Adjust caller. Use get_variable_align
14675 instead of DECL_ALIGN.
14676 * config/i386/i386.h (DATA_ALIGNMENT): Adjust x86_data_alignment
14677 caller.
14678 (DATA_ABI_ALIGNMENT): Define.
14679 * config/i386/i386-protos.h (x86_data_alignment): Adjust prototype.
14680 * config/i386/i386.c (x86_data_alignment): Add opt argument. If
14681 opt is false, only return the psABI mandated alignment increase.
14682 * config/c6x/c6x.h (DATA_ALIGNMENT): Renamed to...
14683 (DATA_ABI_ALIGNMENT): ... this.
14684 * config/mmix/mmix.h (DATA_ALIGNMENT): Renamed to...
14685 (DATA_ABI_ALIGNMENT): ... this.
14686 * config/mmix/mmix.c (mmix_data_alignment): Adjust function comment.
14687 * config/s390/s390.h (DATA_ALIGNMENT): Renamed to...
14688 (DATA_ABI_ALIGNMENT): ... this.
14689 * doc/tm.texi.in (DATA_ABI_ALIGNMENT): Document.
14690 * doc/tm.texi: Regenerated.
14691
57b29ca6
UB
146922013-06-10 Uros Bizjak <ubizjak@gmail.com>
14693
14694 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Also use
14695 cmp_code to construct REG_EQUAL note.
14696
3e56ed50
JJ
146972013-06-09 Jakub Jelinek <jakub@redhat.com>
14698
14699 PR target/57568
14700 * config/i386/i386.md (TARGET_READ_MODIFY_WRITE peepholes): Ensure
14701 that operands[2] doesn't overlap with operands[0].
14702
74fe2a1d
DE
147032013-06-09 David Edelsohn <dje.gcc@gmail.com>
14704 Jan Hubicka <jh@suse.cz>
14705
14706 * config/rs6000/rs6000.c (print_operand, 'z'): Remove historical
14707 hack to mark symbols as used.
14708
ed52a84e
VM
147092013-06-08 Vladimir Makarov <vmakarov@redhat.com>
14710
14711 PR rtl-optimization/57559
14712 * lra-constraints.c (process_alt_operands): Don't discourage
14713 memory with known offset for offsetable memory constraint.
14714 * lra.c (lra_emit_add): Exchange y and z for 2-op add insn.
14715
299316ed
EB
147162013-06-08 Eric Botcazou <ebotcazou@adacore.com>
14717
14718 * varasm.c (struct oc_local_state): Reorder fields.
14719 (output_constructor_bitfield): Replace OUTER parameter with BIT_OFFSET
14720 and adjust accordingly.
14721 (output_constructor): Reorder initialization code and adjust call to
14722 output_constructor_bitfield.
14723
88ac60d3
JH
147242013-06-07 Jan Hubicka <jh@suse.cz>
14725
14726 * symtab.c (symtab_resolve_alias): Do not remove alias attribute.
14727
4cdce1a8
DM
147282013-06-07 David Malcolm <dmalcolm@redhat.com>
14729
14730 * tree-object-size.c (unknown): Make const.
14731
b5e0425c
AK
147322013-06-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14733
14734 * config/s390/s390.md (cpu_facility): Add cpu_zarch.
14735 ("*movmem_short", "*clrmem_short", "*cmpmem_short): Use cpu_zarch
14736 for last alternative in the cpu_facility attribute.
14737
79678d04
KT
147382013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14739
14740 PR target/56315
14741 * config/arm/arm.md (*xordi3_insn): Change to insn_and_split.
14742 (xordi3): Change operand 2 constraint to arm_xordi_operand.
14743 * config/arm/arm.c (const_ok_for_dimode_op): Handle XOR.
14744 * config/arm/constraints.md (Dg): New constraint.
14745 * config/arm/neon.md (xordi3_neon): Remove.
14746 (neon_veor<mode>): Generate xordi3 instead of xordi3_neon.
14747 * config/arm/predicates.md (arm_xordi_operand): New predicate.
14748
b31ddbdb
KT
147492013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14750
14751 * config/arm/arm.md (anddi3_insn): Remove duplicate alternatives.
14752 Clean up alternatives.
14753
8f90b7d4
AM
147542013-06-07 Alan Modra <amodra@gmail.com>
14755
14756 * config/rs6000/rs6000.c (setup_incoming_varargs): Round up
14757 va_list_gpr_size.
14758
961ce119
AM
147592013-06-07 Alan Modra <amodra@gmail.com>
14760
14761 * varasm.c (force_const_mem): Assert mode is not VOID or BLK.
14762
33e49835
KT
147632013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14764
14765 * config/arm/constraints.md (Df): New constraint.
14766 * config/arm/arm.md (iordi3_insn): Use Df constraint instead of De.
14767 Correct length attribute for last two alternatives.
14768
acd17ae6
AM
147692013-06-07 Alan Modra <amodra@gmail.com>
14770
14771 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
14772 override user -mfp-in-toc.
14773 (offsettable_ok_by_alignment): Consider just the current access
14774 rather than the whole object, unless BLKmode. Handle
14775 CONSTANT_POOL_ADDRESS_P constants that lack a decl too.
14776 (use_toc_relative_ref): Allow CONSTANT_POOL_ADDRESS_P constants
14777 for -mcmodel=medium.
14778 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't
14779 override user -mfp-in-toc or -msum-in-toc. Default to
14780 -mno-fp-in-toc for -mcmodel=medium.
14781
73310b0e
DD
147822013-06-06 DJ Delorie <dj@redhat.com>
14783
14784 * config/rl78/rl78.c (rl78_valid_pointer_mode): New, implements
14785 TARGET_VALID_POINTER_MODE.
14786
0bd62dca 147872013-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
14788 Pat Haugen <pthaugen@us.ibm.com>
14789 Peter Bergner <bergner@vnet.ibm.com>
0bd62dca
MM
14790
14791 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
14792 Document new power8 builtins.
14793
14794 * config/rs6000/vector.md (and<mode>3): Add a clobber/scratch of a
14795 condition code register, to allow 128-bit logical operations to be
14796 done in the VSX or GPR registers.
14797 (nor<mode>3): Use the canonical form for nor.
14798 (eqv<mode>3): Add expanders for power8 xxleqv, xxlnand, xxlorc,
14799 vclz*, and vpopcnt* vector instructions.
14800 (nand<mode>3): Likewise.
14801 (orc<mode>3): Likewise.
14802 (clz<mode>2): LIkewise.
14803 (popcount<mode>2): Likewise.
14804
14805 * config/rs6000/predicates.md (int_reg_operand): Rework tests so
14806 that only the GPRs are recognized.
14807
14808 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
14809 support for new power8 builtins.
14810
14811 * config/rs6000/rs6000-builtin.def (xscvspdpn): Add new power8
14812 builtin functions.
14813 (xscvdpspn): Likewise.
14814 (vclz): Likewise.
14815 (vclzb): Likewise.
14816 (vclzh): Likewise.
14817 (vclzw): Likewise.
14818 (vclzd): Likewise.
14819 (vpopcnt): Likewise.
14820 (vpopcntb): Likewise.
14821 (vpopcnth): Likewise.
14822 (vpopcntw): Likewise.
14823 (vpopcntd): Likewise.
14824 (vgbbd): Likewise.
14825 (vmrgew): Likewise.
14826 (vmrgow): Likewise.
14827 (eqv): Likewise.
14828 (eqv_v16qi3): Likewise.
14829 (eqv_v8hi3): Likewise.
14830 (eqv_v4si3): Likewise.
14831 (eqv_v2di3): Likewise.
14832 (eqv_v4sf3): Likewise.
14833 (eqv_v2df3): Likewise.
14834 (nand): Likewise.
14835 (nand_v16qi3): Likewise.
14836 (nand_v8hi3): Likewise.
14837 (nand_v4si3): Likewise.
14838 (nand_v2di3): Likewise.
14839 (nand_v4sf3): Likewise.
14840 (nand_v2df3): Likewise.
14841 (orc): Likewise.
14842 (orc_v16qi3): Likewise.
14843 (orc_v8hi3): Likewise.
14844 (orc_v4si3): Likewise.
14845 (orc_v2di3): Likewise.
14846 (orc_v4sf3): Likewise.
14847 (orc_v2df3): Likewise.
14848
14849 * config/rs6000/rs6000.c (rs6000_option_override_internal): Only
14850 allow power8 quad mode in 64-bit.
14851 (rs6000_builtin_vectorized_function): Add support to vectorize
14852 ISA 2.07 count leading zeros, population count builtins.
14853 (rs6000_expand_vector_init): On ISA 2.07 use xscvdpspn to form
14854 V4SF vectors instead of xscvdpsp to avoid IEEE related traps.
14855 (builtin_function_type): Add vgbbd builtin function which takes an
14856 unsigned argument.
14857 (altivec_expand_vec_perm_const): Add support for new power8 merge
14858 instructions.
14859
14860 * config/rs6000/vsx.md (VSX_L2): New iterator for 128-bit types,
14861 that does not include TImdoe for use with 32-bit.
14862 (UNSPEC_VSX_CVSPDPN): Support for power8 xscvdpspn and xscvspdpn
14863 instructions.
14864 (UNSPEC_VSX_CVDPSPN): Likewise.
14865 (vsx_xscvdpspn): Likewise.
14866 (vsx_xscvspdpn): Likewise.
14867 (vsx_xscvdpspn_scalar): Likewise.
14868 (vsx_xscvspdpn_directmove): Likewise.
14869 (vsx_and<mode>3): Split logical operations into 32-bit and
14870 64-bit. Add support to do logical operations on TImode as well as
14871 VSX vector types. Allow logical operations to be done in either
14872 VSX registers or in general purpose registers in 64-bit mode. Add
14873 splitters if GPRs were used. For AND, add clobber of CCmode to
14874 allow use of ANDI on GPRs. Rewrite nor to use the canonical RTL
14875 encoding.
14876 (vsx_and<mode>3_32bit): Likewise.
14877 (vsx_and<mode>3_64bit): Likewise.
14878 (vsx_ior<mode>3): Likewise.
14879 (vsx_ior<mode>3_32bit): Likewise.
14880 (vsx_ior<mode>3_64bit): Likewise.
14881 (vsx_xor<mode>3): Likewise.
14882 (vsx_xor<mode>3_32bit): Likewise.
14883 (vsx_xor<mode>3_64bit): Likewise.
14884 (vsx_one_cmpl<mode>2): Likewise.
14885 (vsx_one_cmpl<mode>2_32bit): Likewise.
14886 (vsx_one_cmpl<mode>2_64bit): Likewise.
14887 (vsx_nor<mode>3): Likewise.
14888 (vsx_nor<mode>3_32bit): Likewise.
14889 (vsx_nor<mode>3_64bit): Likewise.
14890 (vsx_andc<mode>3): Likewise.
14891 (vsx_andc<mode>3_32bit): Likewise.
14892 (vsx_andc<mode>3_64bit): Likewise.
14893 (vsx_eqv<mode>3_32bit): Add support for power8 xxleqv, xxlnand,
14894 and xxlorc instructions.
14895 (vsx_eqv<mode>3_64bit): Likewise.
14896 (vsx_nand<mode>3_32bit): Likewise.
14897 (vsx_nand<mode>3_64bit): Likewise.
14898 (vsx_orc<mode>3_32bit): Likewise.
14899 (vsx_orc<mode>3_64bit): Likewise.
14900
14901 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Update comment.
14902
14903 * config/rs6000/altivec.md (UNSPEC_VGBBD): Add power8 vgbbd
14904 instruction.
14905 (p8_vmrgew): Add power8 vmrgew and vmrgow instructions.
14906 (p8_vmrgow): Likewise.
14907 (altivec_and<mode>3): Add clobber of CCmode to allow AND using
14908 GPRs to be split under VSX.
14909 (p8v_clz<mode>2): Add power8 count leading zero support.
14910 (p8v_popcount<mode>2): Add power8 population count support.
14911 (p8v_vgbbd): Add power8 gather bits by bytes by doubleword
14912 support.
14913
14914 * config/rs6000/rs6000.md (eqv<mode>3): Add support for powerp eqv
14915 instruction.
14916
14917 * config/rs6000/altivec.h (vec_eqv): Add defines to export power8
14918 builtin functions.
14919 (vec_nand): Likewise.
14920 (vec_vclz): Likewise.
14921 (vec_vclzb): Likewise.
14922 (vec_vclzd): Likewise.
14923 (vec_vclzh): Likewise.
14924 (vec_vclzw): Likewise.
14925 (vec_vgbbd): Likewise.
14926 (vec_vmrgew): Likewise.
14927 (vec_vmrgow): Likewise.
14928 (vec_vpopcnt): Likewise.
14929 (vec_vpopcntb): Likewise.
14930 (vec_vpopcntd): Likewise.
14931 (vec_vpopcnth): Likewise.
14932 (vec_vpopcntw): Likewise.
14933
37684c46
VM
149342013-06-06 Vladimir Makarov <vmakarov@redhat.com>
14935
14936 PR rtl-optimization/57468
14937 * config/i386/i386.c (inline_secondary_memory_needed): Ignore
14938 spilled pseudos.
14939
d89ae27c
VM
149402013-06-06 Vladimir Makarov <vmakarov@redhat.com>
14941
14942 PR rtl-optimization/57459
14943 * lra-constraints.c (update_ebb_live_info): Fix typo for operand
14944 type when setting live regs.
14945
3597e113
VM
149462013-06-06 Vladimir Makarov <vmakarov@redhat.com>
14947
14948 * config/s390/s390.opt (mlra): New option.
14949 * config/s390/s390.c (s390_decompose_address): Check displacement
14950 for all registers for LRA.
14951 (s390_secondary_reload): Don't used secondary reloads for LRA.
14952 (s390_lra_p): New function.
14953 (TARGET_LRA_P): Define.
14954 * config/s390/s390.md (*movmem_short, *clrmem_short): Change value
14955 of attribute cpu_facility to zarch for the last alternative.
14956 (*cmpmem_short): Ditto.
14957
01037aeb
EB
149582013-06-06 Eric Botcazou <ebotcazou@adacore.com>
14959
14960 * config/arm/arm.c (arm_r3_live_at_start_p): New predicate.
14961 (arm_compute_static_chain_stack_bytes): Use it. Tidy up.
14962 (arm_expand_prologue): Likewise.
14963
3371a64f
TJ
149642013-06-06 Teresa Johnson <tejohnson@google.com>
14965
14966 PR c++/53743
14967 * ifcvt.c (find_if_case_1): Replace BB_COPY_PARTITION with assert
14968 as this is now done by redirect_edge_and_branch_force.
14969 * function.c (thread_prologue_and_epilogue_insns): Insert new bb after
14970 barriers, and fix interaction with splitting.
14971 * emit-rtl.c (try_split): Copy REG_CROSSING_JUMP notes.
14972 * cfgcleanup.c (try_forward_edges): Fix early return value to properly
14973 reflect changes made in the routine.
14974 * bb-reorder.c (emit_barrier_after_bb): Move to cfgrtl.c.
14975 (fix_up_fall_thru_edges): Remove incorrect check for bb layout order
14976 since this is called in cfglayout mode, and replace partition fixup
14977 with assert as that is now done by force_nonfallthru_and_redirect.
14978 (add_reg_crossing_jump_notes): Handle the fact that some jumps may
14979 already be marked with region crossing note.
14980 (insert_section_boundary_note): Make non-static, gate on flag
14981 has_bb_partition, rewrite to also check for multiple partitions.
14982 (rest_of_handle_reorder_blocks): Remove call to
14983 insert_section_boundary_note, now done later during free_cfg.
14984 (duplicate_computed_gotos): Don't duplicate partition crossing edge.
14985 * bb-reorder.h (insert_section_boundary_note): Declare.
14986 * Makefile.in (cfgrtl.o): Depend on bb-reorder.h
14987 * cfgrtl.c (rest_of_pass_free_cfg): If partitions exist
14988 invoke insert_section_boundary_note.
14989 (try_redirect_by_replacing_jump): Remove unnecessary
14990 check for region crossing note.
14991 (fixup_partition_crossing): New function.
14992 (rtl_redirect_edge_and_branch): Fixup partition boundaries.
14993 (emit_barrier_after_bb): Move here from bb-reorder.c, handle insertion
14994 in non-cfglayout mode.
14995 (force_nonfallthru_and_redirect): Fixup partition boundaries,
14996 remove old code that tried to do this. Emit barrier correctly
14997 when we are in cfglayout mode.
14998 (last_bb_in_partition): New function.
14999 (rtl_split_edge): Correctly fixup partition boundaries.
15000 (commit_one_edge_insertion): Remove old code that tried to
15001 fixup region crossing edge since this is now handled in
15002 split_block, and set up insertion point correctly since
15003 block may now end in a jump.
15004 (verify_hot_cold_block_grouping): Guard against checking when not in
15005 linearized RTL mode.
15006 (rtl_verify_edges): Add checks for incorrect/missing REG_CROSSING_JUMP
15007 notes.
15008 (rtl_verify_flow_info_1): Move verify_hot_cold_block_grouping to
15009 rtl_verify_flow_info, so not called in cfglayout mode.
15010 (rtl_verify_flow_info): Move verify_hot_cold_block_grouping here.
15011 (fixup_reorder_chain): Remove old code that attempted to fixup region
15012 crossing note as this is now handled in force_nonfallthru_and_redirect.
15013 (duplicate_insn_chain): Don't duplicate switch section notes.
15014 (rtl_can_remove_branch_p): Remove unnecessary check for region crossing
15015 note.
15016 * basic-block.h (emit_barrier_after_bb): Declare.
15017
66071e10
KT
150182013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15019
15020 * config/arm/arm-fixed.md (add<mode>3,usadd<mode>3,ssadd<mode>3,
15021 sub<mode>3, ussub<mode>3, sssub<mode>3, arm_ssatsihi_shift,
15022 arm_usatsihi): Adjust alternatives for arm_restrict_it.
15023
0e26bf3d
KT
150242013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15025
15026 * config/arm/arm-ldmstm.ml: Set "predicable_short_it" to "no"
15027 where appropriate.
15028 * config/arm/ldmstm.md: Regenerate.
15029
12b4e7ef
KT
150302013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15031
15032 * config/arm/sync.md (atomic_loaddi_1):
15033 Disable predication for arm_restrict_it.
15034 (arm_load_exclusive<mode>): Likewise.
15035 (arm_load_exclusivesi): Likewise.
15036 (arm_load_exclusivedi): Likewise.
15037 (arm_load_acquire_exclusive<mode>): Likewise.
15038 (arm_load_acquire_exclusivesi): Likewise.
15039 (arm_load_acquire_exclusivedi): Likewise.
15040 (arm_store_exclusive<mode>): Likewise.
15041 (arm_store_exclusive<mode>): Likewise.
15042 (arm_store_release_exclusivedi): Likewise.
15043 (arm_store_release_exclusive<mode>): Likewise.
15044
15d16c8a
RB
150452013-06-06 Richard Biener <rguenther@suse.de>
15046
15047 * lto-streamer.h (enum LTO_tags): Move LTO_tree_pickle_reference
15048 after LTO_null.
15049 (lto_tag_is_tree_code_p): Adjust.
15050 (lto_tag_is_gimple_code_p): Likewise.
15051 (lto_gimple_code_to_tag): Likewise.
15052 (lto_tag_to_gimple_code): Likewise.
15053 (lto_tree_code_to_tag): Likewise.
15054 (lto_tag_to_tree_code): Likewise.
15055 * data-streamer.h (streamer_write_hwi_in_range): Use
15056 uhwi streaming to stream the normalized range.
15057 (streamer_read_hwi_in_range): Likewise.
15058
17a7fc37
KT
150592013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15060
15061 * config/arm/arm.md (enabled_for_depr_it): New attribute.
15062 (predicable_short_it): Likewise.
15063 (predicated): Likewise.
15064 (enabled): Handle above.
15065 (define_cond_exec): Set predicated attribute to yes.
15066
b57ca59b
MS
150672013-06-05 Mike Stump <mikestump@comcast.net>
15068
15069 * gdbinit.in (__FUNCTION__): Add.
15070
c1e183a9
UB
150712013-06-05 Uros Bizjak <ubizjak@gmail.com>
15072
15073 * config/alpha/alpha.c (alpha_emit_conditional_move): Swap all
15074 GE, GT, GEU and GTU compares, modulo DImode compares with zero.
15075
0378bddb
JH
150762013-06-05 Jan Hubicka <jh@suse.cz>
15077
15078 * varasm.c (mark_decl_referenced): Revert the removal until targets
15079 are fixed.
15080
8f8a2057
DE
150812013-06-05 David Edelsohn <dje.gcc@gmail.com>
15082
15083 * config/rs6000/rs6000.c (print_operand, 'z'): Use DECL_PRESERVE_P
15084 instead of mark_decl_referenced.
15085
edb983b2
JH
150862013-06-05 Jan Hubicka <jh@suse.cz>
15087
15088 * cgraph.c (cgraph_remove_node): Clear forced_by_abi.
15089 (cgraph_node_cannot_be_local_p_1): Honnor symbol.forced_by_abi
15090 and symtab_used_from_object_file_p.
15091 (cgraph_make_node_local_1): Clear forced_by_abi.
15092 (cgraph_can_remove_if_no_direct_calls_and): Use forced_by_abi
15093 * cgraph.h (symtab_node_base): Add forced_by_abi.
15094 (decide_is_variable_needed): Remove.
15095 (varpool_can_remove_if_no_refs): Honnor symbol.forced_by_abi.
15096 * cgraphunit.c (cgraph_decide_is_function_needed): Rename to ..
15097 (decide_is_symbol_needed): ... this one; handle symbols in general;
15098 always analyze virtuals; honnor forced_by_abi.
15099 (cgraph_finalize_function): Update.
15100 (varpool_finalize_decl): Update.
15101 (symbol_defined_and_needed): Remove.
15102 (analyze_functions): Update.
15103 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
15104 output_refs, input_overwrite_node): Handle forced_by_abi.
15105 * ipa.c (cgraph_address_taken_from_non_vtable_p): Rename to ...
15106 (address_taken_from_non_vtable_p): ... this one.
15107 (comdat_can_be_unshared_p_1): New function.
15108 (cgraph_comdat_can_be_unshared_p): Rename to ...
15109 (comdat_can_be_unshared_p): ... this one; handle symbols in general.
15110 (varpool_externally_visible_p): Use comdat_can_be_unshared_p.
15111 (function_and_variable_visibility): Clear forced_by_abi as needed.
15112 * trans-mem.c (ipa_tm_mark_forced_by_abi_node): New functoin.
15113 (ipa_tm_create_version_alias, ipa_tm_create_version): Update.
edb983b2
JH
15114 * symtab.c (dump_symtab_base): Dump forced_by_abi.
15115 * varpool.c (decide_is_variable_needed): Remove.
15116
9912dbe5
KT
151172013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15118
15119 * config/arm/arm.c (MAX_INSN_PER_IT_BLOCK): New macro.
15120 (arm_option_override): Override arm_restrict_it where appropriate.
15121 (thumb2_final_prescan_insn): Use MAX_INSN_PER_IT_BLOCK.
15122 * config/arm/arm.opt (mrestrict-it): New command-line option.
15123 * doc/invoke.texi: Document -mrestrict-it.
15124
34c136b6
DM
151252013-06-05 David Malcolm <dmalcolm@redhat.com>
15126
15127 * tsan.c (tsan_atomic_table): Make const.
15128
a367df53
RB
151292013-06-05 Richard Biener <rguenther@suse.de>
15130
15131 * tree-streamer.c (streamer_tree_cache_insert_1): Update the
15132 index associated with the tree we are supposed to replace.
15133 * tree-streamer-out.c (pack_ts_base_value_fields): Output
15134 TREE_ASM_WRITTEN as zero for everything but SSA names.
15135
70d51a19
DM
151362013-06-05 David Malcolm <dmalcolm@redhat.com>
15137
15138 * tree-ssa-structalias.c (call_stmt_vars): Make static.
15139
b9bd2075
JH
151402013-06-04 Jan Hubicka <jh@suse.cz>
15141
15142 * lto-cgraph.c (get_alias_symbol): Remove weakref sanity check.
15143 (input_node, input_varpool_node): Handle correctly external same
15144 body aliases.
15145 * ipa.c (symtab_remove_unreachable_nodes): Do not remove external
15146 nodes at ltrans stage.
15147
aaae719d
JH
151482013-06-04 Jan Hubicka <jh@suse.cz>
15149
15150 * ipa-inline.c (update_caller_keys): Fix availability test.
15151 (update_callee_keys): Likewise.
15152 * symtab.c (symtab_alias_ultimate_target): Make availaiblity logic
15153 to follow ELF standard.
15154
107eea2c
JU
151552013-06-04 Jürgen Urban <JuergenUrban@gmx.de>
15156
15157 * config.gcc (mipsr5900-*-elf*, mipsr5900el-*-elf*, mips64r5900-*-elf*)
15158 (mips64r5900el-*-elf*): New configurations.
15159 * config/mips/mips-cpus.def (r5900): New processor.
15160 * config/mips/mips-tables.opt: Regenerate.
15161 * config/mips/mips.c (mips_rtx_cost_data): Add an R5900 entry.
15162 (mips_issue_rate): Handle PROCESSOR_R5900.
15163 (mips_reorg_process_insns): Force reorder mode for the R5900.
15164 * config/mips/mips.h (TARGET_MIPS5900): Define.
15165 (ISA_HAS_CONDMOVE, ISA_HAS_PREFETCH, ISA_HAS_HILO_INTERLOCKS): Include
15166 TARGET_MIPS5900.
15167 (ISA_HAS_LOAD_DELAY, ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY): Exclude
15168 TARGET_MIPS5900.
15169 * config/mips/mips.md (processor): Add r5900.
15170 (MOVECC): Disallow CCmode conditions for TARGET_MIPS5900.
15171
b7342d25
IB
151722013-06-04 Ian Bolton <ian.bolton@arm.com>
15173
15174 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Call
15175 into function to generate MOVI instruction.
c1e183a9 15176 * config/aarch64/aarch64.c (aarch64_simd_container_mode): New function.
b7342d25
IB
15177 (aarch64_preferred_simd_mode): Turn into wrapper.
15178 (aarch64_output_scalar_simd_mov_immediate): New function.
15179 * config/aarch64/aarch64-protos.h: Add prototype for above.
15180
81c2dfb9
IB
151812013-06-04 Ian Bolton <ian.bolton@arm.com>
15182
15183 * config/aarch64/aarch64.c (simd_immediate_info): Remove
15184 element_char member.
15185 (sizetochar): Return signed char.
15186 (aarch64_simd_valid_immediate): Remove elchar and other
15187 unnecessary variables.
15188 (aarch64_output_simd_mov_immediate): Take rtx instead of &rtx.
15189 Calculate element_char as required.
15190 * config/aarch64/aarch64-protos.h: Update and move prototype
15191 for aarch64_output_simd_mov_immediate.
15192 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
15193 Update arguments.
15194
48063b9d
IB
151952013-06-04 Ian Bolton <ian.bolton@arm.com>
15196
15197 * config/aarch64/aarch64.c (simd_immediate_info): Struct to hold
15198 information completed by aarch64_simd_valid_immediate.
15199 (aarch64_legitimate_constant_p): Update arguments.
15200 (aarch64_simd_valid_immediate): Work with struct rather than many
15201 pointers.
15202 (aarch64_simd_scalar_immediate_valid_for_move): Update arguments.
15203 (aarch64_simd_make_constant): Update arguments.
15204 (aarch64_output_simd_mov_immediate): Work with struct rather than
15205 many pointers. Output immediate directly rather than as operand.
15206 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
15207 Update prototype.
15208 * config/aarch64/constraints.md (Dn): Update arguments.
15209
3ea63f60
IB
152102013-06-04 Ian Bolton <ian.bolton@arm.com>
15211
15212 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): No
15213 longer static.
15214 (aarch64_simd_immediate_valid_for_move): Remove.
15215 (aarch64_simd_scalar_immediate_valid_for_move): Update call.
15216 (aarch64_simd_make_constant): Update call.
15217 (aarch64_output_simd_mov_immediate): Update call.
15218 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
15219 Add prototype.
15220 * config/aarch64/constraints.md (Dn): Update call.
15221
d8edd899
IB
152222013-06-04 Ian Bolton <ian.bolton@arm.com>
15223
15224 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Change
15225 return type to bool for prototype.
15226 (aarch64_legitimate_constant_p): Check for true instead of not -1.
15227 (aarch64_simd_valid_immediate): Fix up each return to return a bool.
15228 (aarch64_simd_immediate_valid_for_move): Update retval for bool.
15229
44b20bb8
CM
152302013-06-04 Catherine Moore <clm@codesourcery.com>
15231
15232 * config/mips/mips.opt (meva): New.
c1e183a9 15233 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_eva.
44b20bb8
CM
15234 (ASM_SPEC): Handle -meva.
15235 * doc/invoke.texi (meva): Document.
15236
52befbd8
AM
152372013-06-04 Alan Modra <amodra@gmail.com>
15238
15239 * config/rs6000/rs6000.c (output_toc): Correct little-endian float
15240 constant output.
15241
aadaf24e
KT
152422013-06-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15243
15244 * rtl.def: Add extra fourth optional field to define_cond_exec.
15245 * gensupport.c (process_one_cond_exec): Process attributes from
15246 define_cond_exec.
15247 * doc/md.texi: Document fourth field in define_cond_exec.
15248
0cd9e9ee
EB
152492013-06-04 Eric Botcazou <ebotcazou@adacore.com>
15250
15251 * expmed.c (extract_bit_field_1): In the larger-than-a-word case, factor
15252 out the processing order as in store_bit_field_1.
15253
cb0f665d
JH
152542013-06-04 Jan Hubicka <jh@suse.cz>
15255
15256 PR middle-end/57500
15257 * cgraphunit.c (cgraph_process_same_body_aliases): Create
15258 non-VAR_DECL node if it does not exist yet.
15259
53984b9b
RS
152602013-06-03 Richard Sandiford <rdsandiford@googlemail.com>
15261
15262 * config.gcc (mipsisa64sr71k-*-elf*, mipsisa64sb1-*-elf*)
15263 (mipsisa64sb1el-*-elf*, mips64-*-elf*, mips64el-*-elf*)
15264 (mips64orion-*-elf*, mips64orionel-*-elf*): Remove
15265 target_cpu_default setting.
15266
5d318fd4
TJ
152672013-06-03 Teresa Johnson <tejohnson@google.com>
15268
15269 * dumpfile.c (opt_info_switch_p): Change -fopt-info
15270 default to -fopt-info=optimized instead of all.
15271 * doc/invoke.texi: Ditto.
15272 * tree-vectorizer.c (vectorize_loops): Emit loop vectorization
15273 success under MSG_OPTIMIZED_LOCATIONS, and use dump_printf_loc.
15274 (execute_vect_slp): Emit BB vectorization success under
15275 MSG_OPTIMIZED_LOCATIONS.
15276 * tree-vect-slp.c (vect_slp_transform_bb): Change
15277 MSG_OPTIMIZED_LOCATIONS to MSG_NOTE.
15278 * tree-vect-loop.c (vect_transform_loop): Ditto.
15279
ec3af349
JM
152802013-06-03 Jason Merrill <jason@redhat.com>
15281
15282 PR c++/57415
15283 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
15284 Use TARGET_EXPR for C++.
15285
1baf9159
JJ
152862013-06-03 Jakub Jelinek <jakub@redhat.com>
15287
15288 PR rtl-optimization/57268
0cd9e9ee 15289 * sched-deps.c (sched_analyze_2): Don't flush_pending_lists
1baf9159
JJ
15290 if DEBUG_INSN_P (insn).
15291
15292 Reapply
15293 2013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
15294
15295 PR rtl-optimization/57268
15296 * sched-deps.c (sched_analyze_2): Flush dependence lists if
15297 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
15298
0f1d3965
YR
152992013-06-03 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
15300
15301 * config/i386/i386.c (ix86_lea_outperforms): Fix formatting.
15302 (ix86_avoid_lea_for_addr): Likewise.
15303 (exact_dependency_1): Likewise.
15304 (ix86_adjust_cost): Likewise.
15305 (swap_top_of_ready_list): Fix formatting and !reload_completed check
15306 removed.
15307 (do_reorder_for_imul): Fix typo, formatting and
15308 !reload_completed check removed.
15309 (ix86_sched_reorder): Fix typo and formatting.
15310 (fold_builtin_cpu): Move M_INTEL_SLM at the end of processor types
15311 list.
15312
3bc30db4
SN
153132013-06-03 Sofiane Naci <sofiane.naci@arm.com>
15314
15315 * config/aarch64/aarch64.md (*movdi_aarch64): Define "simd" attribute.
15316
19cc6fac
EB
153172013-06-03 Eric Botcazou <ebotcazou@adacore.com>
15318
15319 * varasm.c (output_constant) <CONSTRUCTOR>: Minor formatting tweak.
15320 <STRING_CST>: Likewise.
15321 <VECTOR_CST>: Likewise.
15322
c68a6e08
JW
153232013-06-01 Janus Weil <janus@gcc.gnu.org>
15324 Mikael Morin <mikael@gcc.gnu.org>
15325
15326 * configure.ac: Add AC_HEADER_TIOCGWINSZ macro.
15327 * config.in: Regenerated.
15328 * configure: Regenerated.
15329
38e55e5c
JH
153302013-06-01 Jan Hubicka <jh@suse.cz>
15331
15332 PR middle-end/57366
15333 * cgraphunit.c (compile): When weakref is not supported,
15334 set up transparent aliases before final output pass.
15335 * varasm.c (assemble_alias): Do not try to do it here.
15336
eb51d2ff
JH
153372013-06-01 Jan Hubicka <jh@suse.cz>
15338
15339 PR middle-end/57467
15340 * passes.c (for_per_function): Skip unanalyzed functions.
15341
40a7fe1e
JH
153422013-06-01 Jan Hubicka <jh@suse.cz>
15343
15344 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Rename to ...
15345 (lto_symtab_merge_symbols_1): ... this one.
15346 (lto_symtab_merge_cgraph_nodes): Rename to ...
15347 (lto_symtab_merge_symbols): ... this one; simplify.
15348 * cgraph.c (same_body_aliases_done): Rename to ...
15349 (cpp_implicit_aliases_done): ... this one.
15350 (cgraph_create_function_alias): Update.
15351 (cgraph_same_body_alias): Update.
c1e183a9 15352 (dump_cgraph_node): Remove alias dumping; simplify thunk dumping.
40a7fe1e 15353 (verify_edge_corresponds_to_fndecl): Simplify.
c1e183a9 15354 * cgraph.h (symtab_node_base): Add cpp_implicit_alias, alias_target.
40a7fe1e
JH
15355 (cgraph_node): Remove same_body_alias.
15356 (varpool_node): Remove alias_of and extra_name_alias.
15357 (same_body_aliases_done): Rename to ..
15358 (cpp_implicit_aliases_done): ... this one.
15359 (symtab_alias_ultimate_target): Add default parameter.
15360 (symtab_resolve_alias): New function.
15361 (fixup_same_cpp_alias_visibility): Declare.
15362 (cgraph_function_node): Add default parameter.
15363 (cgraph_node_asm_name): Likewise.
15364 (cgraph_function_or_thunk_node): Add default parameter; do
15365 not ICE when it is NULL.
15366 (varpool_variable_node): Likewise.
15367 * tree-emutls.c (create_emultls_var): Update.
15368 (ipa_lower_emutls): Update.
15369 * cgraphunit.c (cgraph_decide_is_function_needed): Update.
15370 (cgraph_reset_node): Reset alias info.
15371 (cgraph_finalize_function): Update.
15372 (fixup_same_cpp_alias_visibility): Move to symtab.c.
15373 (analyze_function): Simplify.
15374 (cgraph_process_same_body_aliases): Simplify.
15375 (analyze_functions): Fixup same body aliases.
15376 (handle_alias_pairs): Simplify.
15377 (assemble_thunk): Update.
15378 (assemble_thunks_and_aliases): Update.
15379 (output_weakrefs): Rewrite.
15380 * lto-cgraph.c (lto_output_node): Rewrite alias handling.
15381 (lto_output_varpool_node): Likewise.
15382 (compute_ltrans_boundary): Remve assert.
15383 (get_alias_symbol): New functoin.
15384 (input_node): Rewrite alias handling.
15385 (input_varpool_node): Likewise.
15386 * ipa-pure-const.c (propagate_pure_const): Fix formating.
15387 * ipa.c (process_references): Handle weakrefs correctly.
15388 (symtab_remove_unreachable_nodes): Likewise.
15389 * trans-mem.c (get_cg_data): Update.
15390 (ipa_tm_create_version_alias): Update.
15391 (ipa_tm_execute): Update.
15392 * symtab.c (dump_symtab_base): Dump aliases.
15393 (verify_symtab_base): Verify aliases.
15394 (symtab_node_availability): New function.
15395 (symtab_alias_ultimate_target): Simplify.
15396 (fixup_same_cpp_alias_visibility): Move here from cgraphunit.c;
15397 handle all the fixup cases.
15398 (symtab_resolve_alias): New function.
15399 * passes.c (ipa_write_summaries): Handle weakrefs.
15400 * varpool.c (varpool_analyze_node): Simplify.
15401 (assemble_aliases): Update.
15402 (varpool_create_variable_alias): Simplify.
15403 (varpool_extra_name_alias): Simplify.
15404 * lto-streamer.h (lto_symtab_merge_cgraph_nodes): Rename to...
15405 (lto_symtab_merge_symbols): ... this one.
15406
21759881
DT
154072013-06-01 Dinar Temirbulatov <dinar@kugelworks.com>
15408
15409 Revert
15410 PR rtl-optimization/57268
15411 * sched-deps.c (sched_analyze_2): Flush dependence lists if
15412 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
15413
daf4e940
TB
154142013-06-01 Tobias Burnus <burnus@net-b.de>
15415
15416 Partially reverted:
15417 2013-05-31 Tobias Burnus <burnus@net-b.de>
15418
15419 PR middle-end/57073
15420 * tree-ssa-math-opts.c (execute_cse_sincos): Move check
15421 further up.
15422
c359d8d0
DT
154232013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
15424
15425 PR rtl-optimization/57268
15426 * sched-deps.c (sched_analyze_2): Flush dependence lists if
15427 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
15428
4172215d
EB
154292013-05-31 Eric Botcazou <ebotcazou@adacore.com>
15430
15431 * config/rs6000/predicates.md (rs6000_cbranch_operator): Accept some
15432 unordered comparison operators when -fno-trapping-math is in effect
15433 on the e500.
15434 * config/rs6000/rs6000.c (rs6000_generate_compare): Remove dead code
15435 and implement unordered comparison operators properly on the e500.
15436
a8c50132
EB
154372013-05-31 Eric Botcazou <ebotcazou@adacore.com>
15438
15439 * simplify-rtx.c (simplify_byte_swapping_operation): Use proper macro
15440 for constant scalar integers.
15441 (simplify_relational_operation_1): Likewise.
15442
44626634
SB
154432013-05-31 Segher Boessenkool <segher@kernel.crashing.org>
15444
15445 * config/rs6000/rs6000-opts.h (enum processor_type): Reorder.
15446 * config/rs6000/rs6000.md (cpu): Reorder. Split long line.
15447 Fix comment.
15448
55805e54
YR
154492013-05-31 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
15450 Igor Zamyatin <igor.zamyatin@intel.com>
15451
15452 Silvermont (SLM) architecture performance tuning.
15453 * config/i386/i386.h (enum ix86_tune_indices): Add
15454 X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS.
15455 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS): New define.
15456
15457 * config/i386/i386.c (initial_ix86_tune_features)
15458 <X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS>: Initialize.
15459 (ix86_lea_outperforms): Handle Silvermont tuning.
15460 (ix86_avoid_lea_for_add): Add new argument to ix86_lea_outperforms
15461 call.
15462 (ix86_use_lea_for_mov): Likewise.
15463 (ix86_avoid_lea_for_addr): Likewise.
15464 (ix86_lea_for_add_ok): Likewise.
15465 (exact_dependency_1): New function.
15466 (exact_store_load_dependency): Likewise.
15467 (ix86_adjust_cost): Handle Silvermont tuning.
15468 (do_reoder_for_imul): Likewise.
15469 (swap_top_of_ready_list): New function.
15470 (ix86_sched_reorder): Changed to handle Silvermont tuning.
15471
15472 * config/i386/i386.md (peepholes that split memory operand in fp
15473 converts): New.
15474
e19c9de2
MS
154752013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
15476
15477 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
15478 Remove un-necessary braces.
15479
38e6c9a6
MS
154802013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
15481
15482 * config/aarch64/aarch64.c (aarch64_classify_symbol):
15483 Use SYMBOL_TINY_ABSOLUTE for AARCH64_CMODEL_TINY_PIC.
15484
e3530904
TB
154852013-05-31 Tobias Burnus <burnus@net-b.de>
15486
15487 PR middle-end/57073
c1e183a9 15488 * tree-ssa-math-opts.c (execute_cse_sincos): Move check further up.
e3530904 15489
b6af05a9
KT
154902013-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15491
15492 PR target/56315
15493 * config/arm/arm.c (const_ok_for_dimode_op): Handle IOR.
15494 * config/arm/arm.md (*iordi3_insn): Change to insn_and_split.
15495 * config/arm/neon.md (iordi3_neon): Remove.
15496 (neon_vorr<mode>): Generate iordi3 instead of iordi3_neon.
15497 * config/arm/predicates.md (imm_for_neon_logic_operand):
15498 Move to earlier in the file.
15499 (neon_logic_op2): Likewise.
15500 (arm_iordi_operand_neon): New predicate.
15501
f800c166
RB
155022013-05-31 Richard Biener <rguenther@suse.de>
15503
15504 PR tree-optimization/57478
15505 PR tree-optimization/57453
15506 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Uses in PHI nodes
15507 are life as well.
15508
e571fa59
KP
155092013-05-31 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
15510
15511 * config/rl78/rl78.md (mulqi3,mulhi3): New define_expands.
15512 (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): New define_insns.
15513
0fa6e0ef
TB
155142013-05-30 Tobias Burnus <burnus@net-b.de>
15515 Thomas Koenig <tkoenig@gcc.gnu.org>
15516
15517 PR middle-end/57073
15518 * tree-ssa-math-opts.c (execute_cse_sincos): Optimize
15519 powi (-1.0, k) to (k & 1) ? -1.0 : 1.0.
15520
4688ddf5
SB
155212013-05-30 Steven Bosscher <steven@gcc.gnu.org>
15522
0fa6e0ef 15523 * rtlanal.c (tablejump_p): Expect table and label to be adjacent.
4688ddf5 15524
3b9ceb4b
VM
155252013-05-30 Vladimir Makarov <vmakarov@redhat.com>
15526
15527 * target.def (register_usage_leveling_p): New hook.
15528 * targhooks.c (default_register_usage_leveling_p): New.
15529 * targhooks.h (default_register_usage_leveling_p): New prototype.
15530 * lra-assigns.c (register_usage_leveling_p): Use the hook.
15531 * doc/tm.texi.in (TARGET_REGISTER_USAGE_LEVELING_P): New hook.
15532 * doc/tm.texi: Update.
15533 * config/i386/i386.c (TARGET_REGISTER_USAGE_LEVELING_P): Define.
15534
65f9e789
IB
155352013-05-30 Ian Bolton <ian.bolton@arm.com>
15536
15537 * config/aarch64/aarch64.md (insv<mode>): New define_expand.
15538 (*insv_reg<mode>): New define_insn.
15539
12211b99 155402013-05-30 Joern Rennecke <joern.rennecke@embecosm.com>
ca035367
JR
15541
15542 PR rtl-optimization/57439
15543 * postreload.c (move2add_valid_value_p): Check that we have
15544 a zero subreg_regno_offset when accessing the register in
15545 the requested mode.
15546
0b871ccf
YR
155472013-05-30 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
15548 Igor Zamyatin <igor.zamyatin@intel.com>
15549
15550 Silvermont (SLM) architecture pipeline model, tuning and
15551 insn selection.
15552 * config.gcc: Add slm config options and target.
15553
15554 * config/i386/slm.md: New.
15555
15556 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
15557
f43245d1 15558 * config/i386/i386-c.c (ix86_target_macros_internal): New case
0b871ccf
YR
15559 PROCESSOR_SLM.
15560 (ix86_target_macros_internal): Likewise.
15561
f43245d1 15562 * config/i386/i386.c (slm_cost): New cost.
0b871ccf
YR
15563 (m_SLM): New macro flag.
15564 (initial_ix86_tune_features): Set m_SLM.
15565 (x86_accumulate_outgoing_args): Likewise.
15566 (x86_arch_always_fancy_math_387): Likewise.
15567 (processor_target_table): Add slm cost.
15568 (cpu_names): Add slm cpu name.
15569 (x86_option_override_internal): Set SLM ISA.
15570 (ix86_issue_rate): New case PROCESSOR_SLM.
15571 (ia32_multipass_dfa_lookahead): Likewise.
15572 (fold_builtin_cpu): Add slm.
15573
15574 * config/i386/i386.h (TARGET_SLM): New target macro.
15575 (target_cpu_default): Add TARGET_CPU_DEFAULT_slm.
15576 (processor_type): Add PROCESSOR_SLM.
15577
15578 * config/i386/i386.md (cpu): Add new value "slm".
15579 (slm.md): Include slm.md.
15580
24d5b097
XG
155812013-05-30 Bernd Schmidt <bernds@codesourcery.com>
15582 Zhenqiang Chen <zhenqiang.chen@linaro.org>
15583
15584 * config/arm/arm-protos.h: Add and update function protos.
15585 * config/arm/arm.c (use_simple_return_p): New added.
15586 (thumb2_expand_return): Check simple_return flag.
15587 * config/arm/arm.md: Add simple_return and conditional simple_return.
15588 * config/arm/iterators.md: Add iterator for return and simple_return.
15589
c1cccc15
ZC
155902013-05-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
15591
15592 * config/arm/arm.c (arm_add_cfa_adjust_cfa_note): New added.
15593 (arm_emit_multi_reg_pop): Add REG_CFA_ADJUST_CFA notes.
15594 (arm_emit_vfp_multi_reg_pop): Likewise.
15595 (thumb2_emit_ldrd_pop): Likewise.
15596 (arm_expand_epilogue): Add misc REG_CFA notes.
15597 (arm_unwind_emit): Skip REG_CFA_ADJUST_CFA and REG_CFA_RESTORE.
15598
3a4f280b
LC
155992013-05-29 Lawrence Crowl <crowl@google.com>
15600
15601 * config/arm/t-arm: Update for below.
15602
15603 * config/arm/arm.c (arm_libcall_uses_aapcs_base::libcall_htab):
15604 Change type to hash_table. Update dependent calls and types.
15605
15606 * config/i386/t-cygming: Update for below.
15607
15608 * config/i386/t-interix: Update for below.
15609
15610 * config/i386/winnt.c (i386_pe_section_type_flags::htab):
15611 Change type to hash_table. Update dependent calls and types.
15612 (i386_find_on_wrapper_list::wrappers): Likewise.
15613
15614 * config/ia64/t-ia64: Update for below.
15615
15616 * config/ia64/ia64.c (bundle_state_table):
15617 Change type to hash_table. Update dependent calls and types.
15618
15619 * config/mips/mips.c (mips_reorg_process_insns::htab):
15620 Change type to hash_table. Update dependent calls and types.
15621
15622 * config/sol2.c (solaris_comdat_htab):
15623 Change type to hash_table. Update dependent calls and types.
15624
15625 * config/t-sol2: Update for above.
15626
1388a0e3
TJ
156272013-05-29 Teresa Johnson <tejohnson@google.com>
15628
15629 * passes.c (dump_passes): Use FOR_EACH_FUNCTION since
15630 functions are not yet marked as defined.
15631
a5965b52 156322013-05-29 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
15633 Pat Haugen <pthaugen@us.ibm.com>
15634 Peter Bergner <bergner@vnet.ibm.com>
a5965b52
MM
15635
15636 * config/rs6000/vector.md (VEC_I): Add support for new power8 V2DI
15637 instructions.
15638 (VEC_A): Likewise.
15639 (VEC_C): Likewise.
15640 (vrotl<mode>3): Likewise.
15641 (vashl<mode>3): Likewise.
15642 (vlshr<mode>3): Likewise.
15643 (vashr<mode>3): Likewise.
15644
15645 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
15646 support for power8 V2DI builtins.
15647
15648 * config/rs6000/rs6000-builtin.def (abs_v2di): Add support for
15649 power8 V2DI builtins.
15650 (vupkhsw): Likewise.
15651 (vupklsw): Likewise.
15652 (vaddudm): Likewise.
15653 (vminsd): Likewise.
15654 (vmaxsd): Likewise.
15655 (vminud): Likewise.
15656 (vmaxud): Likewise.
15657 (vpkudum): Likewise.
15658 (vpksdss): Likewise.
15659 (vpkudus): Likewise.
15660 (vpksdus): Likewise.
15661 (vrld): Likewise.
15662 (vsld): Likewise.
15663 (vsrd): Likewise.
15664 (vsrad): Likewise.
15665 (vsubudm): Likewise.
15666 (vcmpequd): Likewise.
15667 (vcmpgtsd): Likewise.
15668 (vcmpgtud): Likewise.
15669 (vcmpequd_p): Likewise.
15670 (vcmpgtsd_p): Likewise.
15671 (vcmpgtud_p): Likewise.
15672 (vupkhsw): Likewise.
15673 (vupklsw): Likewise.
15674 (vaddudm): Likewise.
15675 (vmaxsd): Likewise.
15676 (vmaxud): Likewise.
15677 (vminsd): Likewise.
15678 (vminud): Likewise.
15679 (vpksdss): Likewise.
15680 (vpksdus): Likewise.
15681 (vpkudum): Likewise.
15682 (vpkudus): Likewise.
15683 (vrld): Likewise.
15684 (vsld): Likewise.
15685 (vsrad): Likewise.
15686 (vsrd): Likewise.
15687 (vsubudm): Likewise.
15688
15689 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
15690 support for power8 V2DI instructions.
15691
15692 * config/rs6000/altivec.md (UNSPEC_VPKUHUM): Add support for
15693 power8 V2DI instructions. Combine pack and unpack insns to use an
15694 iterator for each mode. Check whether a particular mode supports
15695 Altivec instructions instead of just checking TARGET_ALTIVEC.
15696 (UNSPEC_VPKUWUM): Likewise.
15697 (UNSPEC_VPKSHSS): Likewise.
15698 (UNSPEC_VPKSWSS): Likewise.
15699 (UNSPEC_VPKUHUS): Likewise.
15700 (UNSPEC_VPKSHUS): Likewise.
15701 (UNSPEC_VPKUWUS): Likewise.
15702 (UNSPEC_VPKSWUS): Likewise.
15703 (UNSPEC_VPACK_SIGN_SIGN_SAT): Likewise.
15704 (UNSPEC_VPACK_SIGN_UNS_SAT): Likewise.
15705 (UNSPEC_VPACK_UNS_UNS_SAT): Likewise.
15706 (UNSPEC_VPACK_UNS_UNS_MOD): Likewise.
15707 (UNSPEC_VUPKHSB): Likewise.
15708 (UNSPEC_VUNPACK_HI_SIGN): Likewise.
15709 (UNSPEC_VUNPACK_LO_SIGN): Likewise.
15710 (UNSPEC_VUPKHSH): Likewise.
15711 (UNSPEC_VUPKLSB): Likewise.
15712 (UNSPEC_VUPKLSH): Likewise.
15713 (VI2): Likewise.
15714 (VI_char): Likewise.
15715 (VI_scalar): Likewise.
15716 (VI_unit): Likewise.
15717 (VP): Likewise.
15718 (VP_small): Likewise.
15719 (VP_small_lc): Likewise.
15720 (VU_char): Likewise.
15721 (add<mode>3): Likewise.
15722 (altivec_vaddcuw): Likewise.
15723 (altivec_vaddu<VI_char>s): Likewise.
15724 (altivec_vadds<VI_char>s): Likewise.
15725 (sub<mode>3): Likewise.
15726 (altivec_vsubcuw): Likewise.
15727 (altivec_vsubu<VI_char>s): Likewise.
15728 (altivec_vsubs<VI_char>s): Likewise.
15729 (altivec_vavgs<VI_char>): Likewise.
15730 (altivec_vcmpbfp): Likewise.
15731 (altivec_eq<mode>): Likewise.
15732 (altivec_gt<mode>): Likewise.
15733 (altivec_gtu<mode>): Likewise.
15734 (umax<mode>3): Likewise.
15735 (smax<mode>3): Likewise.
15736 (umin<mode>3): Likewise.
15737 (smin<mode>3): Likewise.
15738 (altivec_vpkuhum): Likewise.
15739 (altivec_vpkuwum): Likewise.
15740 (altivec_vpkshss): Likewise.
15741 (altivec_vpkswss): Likewise.
15742 (altivec_vpkuhus): Likewise.
15743 (altivec_vpkshus): Likewise.
15744 (altivec_vpkuwus): Likewise.
15745 (altivec_vpkswus): Likewise.
15746 (altivec_vpks<VI_char>ss): Likewise.
15747 (altivec_vpks<VI_char>us): Likewise.
15748 (altivec_vpku<VI_char>us): Likewise.
15749 (altivec_vpku<VI_char>um): Likewise.
15750 (altivec_vrl<VI_char>): Likewise.
15751 (altivec_vsl<VI_char>): Likewise.
15752 (altivec_vsr<VI_char>): Likewise.
15753 (altivec_vsra<VI_char>): Likewise.
15754 (altivec_vsldoi_<mode>): Likewise.
15755 (altivec_vupkhsb): Likewise.
15756 (altivec_vupkhs<VU_char>): Likewise.
15757 (altivec_vupkls<VU_char>): Likewise.
15758 (altivec_vupkhsh): Likewise.
15759 (altivec_vupklsb): Likewise.
15760 (altivec_vupklsh): Likewise.
15761 (altivec_vcmpequ<VI_char>_p): Likewise.
15762 (altivec_vcmpgts<VI_char>_p): Likewise.
15763 (altivec_vcmpgtu<VI_char>_p): Likewise.
15764 (abs<mode>2): Likewise.
15765 (vec_unpacks_hi_v16qi): Likewise.
15766 (vec_unpacks_hi_v8hi): Likewise.
15767 (vec_unpacks_lo_v16qi): Likewise.
15768 (vec_unpacks_hi_<VP_small_lc>): Likewise.
15769 (vec_unpacks_lo_v8hi): Likewise.
15770 (vec_unpacks_lo_<VP_small_lc>): Likewise.
15771 (vec_pack_trunc_v8h): Likewise.
15772 (vec_pack_trunc_v4si): Likewise.
15773 (vec_pack_trunc_<mode>): Likewise.
15774
15775 * config/rs6000/altivec.h (vec_vaddudm): Add defines for power8
15776 V2DI builtins.
15777 (vec_vmaxsd): Likewise.
15778 (vec_vmaxud): Likewise.
15779 (vec_vminsd): Likewise.
15780 (vec_vminud): Likewise.
15781 (vec_vpksdss): Likewise.
15782 (vec_vpksdus): Likewise.
15783 (vec_vpkudum): Likewise.
15784 (vec_vpkudus): Likewise.
15785 (vec_vrld): Likewise.
15786 (vec_vsld): Likewise.
15787 (vec_vsrad): Likewise.
15788 (vec_vsrd): Likewise.
15789 (vec_vsubudm): Likewise.
15790 (vec_vupkhsw): Likewise.
15791 (vec_vupklsw): Likewise.
15792
e70670cf
JH
157932013-05-29 Jan Hubicka <jh@suse.cz>
15794
15795 * cgraph.h (symtab_node_base): Add definition, alias and analyzed
15796 flags; reorder rest of fields in more consistent way.
15797 (varpool_node): Remove analyzed, finalized and alias.
15798 (cgraph_ndoe): Likewise.
15799 (symtab_alias_ultimate_target): New function.
15800 (cgraph_function_node): Move offline.
15801 (cgraph_reset_node): Declare.
15802 (cgraph_comdat_can_be_unshared_p): Remove.
15803 (varpool_remove_initializer): Declare.
15804 (varpool_first_defined_variable, varpool_next_defined_variable
15805 cgraph_first_defined_function, cgraph_next_defined_function): Update.
15806 (cgraph_function_with_gimple_body_p): Update.
15807 (varpool_all_refs_explicit_p): Update.
15808 (symtab_alias_target): New function.
15809 (cgraph_alias_aliased_node, varpool_alias_aliased_node): Rename to ...
15810 (cgraph_alias_target, varpool_alias_target): .. this one; simplify.
c1e183a9
UB
15811 (cgraph_function_or_thunk_node): Simplify using
15812 symtab_alias_ultimate_target.
e70670cf
JH
15813 (varpool_variable_node): Likewise.
15814 * cgraph.c (cgraph_create_function_alias): Update.
15815 (cgraph_add_thunk): Update.
15816 (cgraph_remove_node): Update.
15817 (dump_cgraph_node): Do not dump removed flags.
15818 (cgraph_function_body_availability): Update.
15819 (cgraph_propagate_frequency): Update.
15820 (verify_cgraph_node): Check sanity of local flag.
15821 (cgraph_function_node): Move here from cgraph.h; revamp for
15822 cgraph_function_or_thunk_node.
15823 * lto-symtab.c (lto_varpool_replace_node): Update.
15824 (lto_symtab_resolve_can_prevail_p): Update.
15825 (lto_symtab_merge_cgraph_nodes): Update.
15826 * ipa-cp.c (determine_versionability, initialize_node_lattices,
15827 propagate_constants_accross_call, devirtualization_time_bonus,
15828 ipcp_propagate_stage): Update.
15829 * tree-emutls.c (create_emultls_var, ipa_lower_emutls): Update.
c1e183a9
UB
15830 * ipa-inline-transform.c (clone_inlined_nodes,
15831 preserve_function_body_p): Update.
e70670cf
JH
15832 * ipa-reference.c (propagate): Update.
15833 (write_node_summary_p): Update.
15834 * toplev.c (wrapup_global_declaration_2): Update.
15835 * cgraphunit.c (cgraph_analyze_function): Rename to ...
15836 (analyze_function) ... this one.
15837 (cgraph_process_new_functions): Update.
15838 (cgraph_reset_node): Export.
15839 (cgraph_finalize_function): Update.
15840 (cgraph_add_new_function): Update.
15841 (process_function_and_variable_attributes): Update.
15842 (varpool_finalize_decl): Update.
15843 (symbol_finalized): Remove.
15844 (symbol_finalized_and_needed): Rename to ...
15845 (symbol_defined_and_needed): ... update.
15846 (cgraph_analyze_functions): Update.
15847 (handle_alias_pairs): Update.
15848 (mark_functions_to_output): Update.
15849 (assemble_thunk): Update.
15850 (output_in_order): Update.
15851 (output_weakrefs): Update.
15852 (finalize_compilation_unit): Update.
15853 * lto-cgraph.c (reachable_from_other_partition_p, lto_output_node,
15854 lto_output_varpool_node, compute_ltrans_boundary, input_overwrite_node,
15855 input_node, input_varpool_node): Update.
15856 * dbxout.c (dbxout_expand_expr): Update.
15857 * cgraphclones.c (cgraph_clone_node): Update.
15858 (cgraph_copy_node_for_versioning): Update.
15859 (cgraph_materialize_clone): Update.
15860 (cgraph_materialize_all_clones): Update.
15861 * ipa-pure-const.c (analyze_function, pure_const_write_summary,
15862 propagate_pure_const, propagate_nothrow): Update.
15863 * lto-streamer-out.c (lto_output, write_symbol): Update.
15864 * ipa-utils.c (ipa_reverse_postorder): Update.
15865 * ipa-inline.c (can_inline_edge_p): Update.
15866 (update_caller_keys, ipa_inline): Update.
15867 * dwarf2out.c (reference_to_unused,
15868 premark_types_used_by_global_vars_helper): Update.
15869 * tree-eh.c (tree_could_trap_p): Update.
15870 * ipa-split.c (consider_split, execute_split_functions): Update.
15871 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
c1e183a9
UB
15872 has_addr_references_p): Update; move ahead in file for better
15873 readability.
e70670cf
JH
15874 (process_references): Simplify.
15875 (symtab_remove_unreachable_nodes): Update; cleanup way function/var
15876 bodies are removed.
15877 (cgraph_comdat_can_be_unshared_p): Make static.
15878 (cgraph_externally_visible_p): Update.
15879 (varpool_externally_visible_p): Update.
15880 (function_and_variable_visibility): Update.
15881 * trans-mem.c (get_cg_data, ipa_tm_mayenterirr_function,
15882 ipa_tm_mark_force_output_node): Update.
15883 * ipa-inline-analysis.c (dump_inline_summary, initialize_inline_failed,
15884 estimate_edge_devirt_benefit, inline_generate_summary,
15885 inline_write_summary): Update.
15886 * gimple-fold.c (can_refer_decl_in_current_unit_p): Update.
15887 * ipa-prop.c (ipa_compute_jump_functions): Update.
c1e183a9
UB
15888 (ipa_print_node_params, ipa_prop_read_section,
15889 ipa_update_after_lto_read, read_replacements_section): Update.
e70670cf
JH
15890 * varasm.c (mark_decl_referenced): Update.
15891 (assemble_alias, dump_tm_clone_pairs): Update.
15892 * tree-inline.c (copy_bb): Update.
15893 (estimate_num_insns, optimize_inline_calls, tree_function_versioning):
15894 Update.
15895 * symtab.c (dump_symtab_base): Print new flags.
15896 (verify_symtab_base): Verify new flags.
15897 (symtab_alias_ultimate_target): New function.
15898 * tree-ssa-structalias.c (get_constraint_for_ssa_var,
15899 create_variable_info_for, associate_varinfo_to_alias, ipa_pta_execute):
15900 Update.
c1e183a9
UB
15901 * passes.c (ipa_write_summaries, ipa_write_optimization_summaries):
15902 Update.
e70670cf
JH
15903 * i386.c (ix86_get_function_versions_dispatcher,
15904 ix86_generate_version_dispatcher_body): Update.
15905 (fold_builtin_cpu): Use varpool_add_new_variable.
15906 * varpool.c (varpool_remove_initializer): Break out from ...
15907 (varpool_remove_node): ... this one.
15908 (dump_varpool_node, varpool_node_for_asm,
15909 cgraph_variable_initializer_availability, varpool_analyze_node,
15910 varpool_assemble_decl, varpool_remove_unreferenced_decls,
c1e183a9
UB
15911 varpool_finalize_named_section_flags, varpool_create_variable_alias):
15912 Update.
e70670cf 15913
182802ad
JH
159142013-05-29 Jan Hubicka <jh@suse.cz>
15915
15916 * passes.c (init_optimization_passes): Move OMP expansion into lowering.
15917
8190b609
ER
159182013-05-29 Easwaran Raman <eraman@google.com>
15919
15920 PR tree-optimization/57442
15921 * tree-ssa-reassoc.c (appears_later_in_bb): Return correct value
15922 when control exits the main loop.
15923
69f5aa9b
SKS
159242013-05-29 Sandeep Kumar Singh <Sandeep.Singh2@kpitcummins.com>
15925
15926 * rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add macros for RX100, RX200,
15927 and RX600.
c1e183a9 15928 * rx/rx.opt: Add macro for rx100 with string rx100 and value RX100.
69f5aa9b
SKS
15929 * rx/rx-opts.h (rx_cpu_types): Add new cpu type rx100.
15930 * rx/t-rx: Add rx100 under multi library matches option for nofpu
15931 option.
15932
4b847da9
BS
159332013-05-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15934
15935 PR tree-optimization/57441
15936 * gimple-ssa-strength-reduction.c (analyze_candidates_and_replace):
15937 Don't limit size of incr_vec to number of candidates.
15938
4fc43c39
SE
159392013-05-29 Steve Ellcey <sellcey@imgtec.com>
15940
15941 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add micromips
15942 and mips16 directories.
c1e183a9 15943 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Add micromips and mips16.
4fc43c39
SE
15944 (MULTILIB_DIRNAMES): Ditto.
15945 (MULTILIB_EXCEPTIONS): Add new exceptions.
15946 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Add micromips.
15947 (MULTILIB_DIRNAMES): Ditto.
15948 (MULTILIB_EXCEPTIONS): Add new exceptions.
15949
12211b99 159502012-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
a5350ddc
CSS
15951 Marcus Shawcroft <marcus.shawcroft@arm.com>
15952
15953 * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
15954 SYMBOL_TINY_ABSOLUTE.
15955 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Handle
15956 SYMBOL_TINY_ABSOLUTE.
15957 (aarch64_expand_mov_immediate): Likewise.
15958 (aarch64_classify_symbol): Likewise.
15959 (aarch64_mov_operand_p): Remove ATTRIBUTE_UNUSED.
15960 Permit SYMBOL_TINY_ABSOLUTE.
15961 * config/aarch64/predicates.md (aarch64_mov_operand): Permit CONST.
15962
12211b99 159632013-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
17f4d4bf
CSS
15964 Marcus Shawcroft <marcus.shawcroft@arm.com>
15965
15966 * config/aarch64/aarch64.c (aarch64_classify_symbol): Remove comment.
15967 Refactor if/switch. Replace gcc_assert with if.
15968
c0186656
GG
159692013-05-29 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
15970
15971 * config/i386/i386.c (initial_ix86_tune_features): Enable
15972 FP Reassociation for AMD bdver1 and bdver2.
15973
d20188f3
MJ
159742013-05-29 Martin Jambor <mjambor@suse.cz>
15975
15976 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REF, REALPART_EXPR
15977 and IMAGPART_EXPR do not occur within other handled_components.
15978
292cba13
RB
159792013-05-29 Richard Biener <rguenther@suse.de>
15980
15981 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Guard vinfo
15982 access on whether the use is in the BB we currently try to
15983 vectorize.
15984 (vect_bb_vectorization_profitable_p): Pass the BB we currently
15985 vectorize to vect_bb_slp_scalar_cost.
15986
6eddf228
RB
159872013-05-29 Richard Biener <rguenther@suse.de>
15988
15989 * tree-vect-slp.c (vect_bb_slp_scalar_cost): New function
15990 computing scalar cost offsetted by stmts that are kept live
15991 by scalar uses.
15992 (vect_bb_vectorization_profitable_p): Use vect_bb_slp_scalar_cost
15993 for computation of scalar cost.
15994
7df36117
SE
159952013-05-28 Steve Ellcey <sellcey@mips.com>
15996
15997 * config/mips/mips-cpus.def (mips32r2): Change processor type.
15998
36536d79
BI
159992013-05-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
16000
16001 * doc/extend.texi (C Extensions): Added documentation about Cilk Plus
16002 array notation built-in reduction functions.
16003 * doc/passes.texi (Passes): Added documentation about changes done
16004 for Cilk Plus.
16005 * doc/invoke.texi (C Dialect Options): Added documentation about
16006 the -fcilkplus flag.
16007 * Makefile.in (C_COMMON_OBJS): Added c-family/array-notation-common.o.
16008 (BUILTINS_DEF): Depend on cilkplus.def.
16009 * builtins.def: Include cilkplus.def. Define DEF_CILKPLUS_BUILTIN.
16010 * builtin-types.def: Define BT_FN_INT_PTR_PTR_PTR.
16011 * cilkplus.def: New file.
16012
12211b99 160132013-05-28 Joern Rennecke <joern.rennecke@embecosm.com>
b49eefa5
JR
16014
16015 PR rtl-optimization/57439
16016 * postreload.c (move2add_use_add2_insn): Use gen_lowpart_common.
16017
9daf6dbb
ER
160182013-05-28 Easwaran Raman <eraman@google.com>
16019
16020 PR tree-optimization/57337
16021 * tree-ssa-reassoc.c (appears_later_in_bb): New function.
16022 (find_insert_point): Correctly identify the insertion point
16023 when two statements with the same UID is compared.
16024
fbd7e877
RB
160252013-05-28 Richard Biener <rguenther@suse.de>
16026
16027 PR tree-optimization/56787
16028 * tree-vect-data-refs.c (vect_analyze_data_refs): Drop clobbers
16029 from the list of data references.
16030 * tree-vect-loop.c (vect_determine_vectorization_factor): Skip
16031 clobbers.
16032 (vect_analyze_loop_operations): Likewise.
16033 (vect_transform_loop): Remove clobbers.
16034
bbba1117
MJ
160352013-05-28 Martin Jambor <mjambor@suse.cz>
16036
16037 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REFs, IMAGPART_EXPRs
16038 and REALPART_EXPRs have scalar type.
16039
bd388c2a
RB
160402013-05-28 Richard Biener <rguenther@suse.de>
16041
16042 PR tree-optimization/57411
16043 * tree-ssa-copy.c (may_propagate_copy): Cannot propagate
16044 virtual operands.
16045 * tree-ssa-dom.c (eliminate_const_or_copy): Special-case
16046 virtual operand propagation.
16047
2f56a311
EB
160482013-05-28 Eric Botcazou <ebotcazou@adacore.com>
16049
16050 * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): Use %g0 as
16051 destination register for bmasksi_vis.
16052 (vector_init_bshuffle): Likewise.
16053 * config/sparc/sparc.md (vec_perm_constv8qi): Likewise.
16054
5c3eacbb
EB
160552013-05-28 Eric Botcazou <ebotcazou@adacore.com>
16056
16057 * doc/invoke.texi (SPARC Options): Document -mfix-ut699.
16058 * builtins.c (expand_builtin_mathfn) <BUILT_IN_SQRT>: Try to widen the
16059 mode if the instruction isn't available in the original mode.
16060 * config/sparc/sparc.opt (mfix-ut699): New option.
16061 * config/sparc/sparc.md (muldf3_extend): Disable if -mfix-ut699.
16062 (divdf3): Turn into expander.
16063 (divdf3_nofix): New insn.
16064 (divdf3_fix): Likewise.
16065 (divsf3): Disable if -mfix-ut699.
16066 (sqrtdf2): Turn into expander.
16067 (sqrtdf2_nofix): New insn.
16068 (sqrtdf2_fix): Likewise.
16069 (sqrtsf2): Disable if -mfix-ut699.
16070
a1756c0a
RB
160712013-05-27 Richard Biener <rguenther@suse.de>
16072
16073 PR middle-end/57412
16074 * omp-low.c (expand_omp_atomic_pipeline): Use the correct latch
16075 block for the new loop.
16076
5a892248
RB
160772013-05-27 Richard Biener <rguenther@suse.de>
16078
16079 PR tree-optimization/57343
16080 * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Do not
16081 use multiple_of_p if not TYPE_OVERFLOW_UNDEFINED.
16082 (number_of_iterations_cond): Do not build the folded tree.
16083
d1de852b
RB
160842013-05-27 Richard Biener <rguenther@suse.de>
16085
16086 Revert
16087 PR middle-end/57381
16088 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
16089 OEP_CONSTANT_ADDRESS_OF retained.
16090
16091 PR tree-optimization/57417
16092 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Fix test
16093 for unchanged base.
16094 (set_ssa_val_to): Compare addresses using
16095 get_addr_base_and_unit_offset.
16096
12211b99 160972013-05-27 Joern Rennecke <joern.rennecke@embecosm.com>
7894bc6b
JR
16098
16099 PR rtl-optimization/56833
16100 * postreload.c (move2add_record_mode): New function.
16101 (move2add_record_sym_value, move2add_valid_value_p): Likewise.
16102 (move2add_use_add2_insn): Use move2add_record_sym_value.
16103 (move2add_use_add3_insn): Likewise.
16104 (reload_cse_move2add): Use move2add_valid_value_p and
16105 move2add_record_mode. Invalidate call-clobbered and REG_INC
16106 affected regs by setting reg_mode to VOIDmode.
16107 (move2add_note_store): Don't pretend the inside of a SUBREG is
16108 the actual destination. Invalidate single/leading registers by
16109 setting reg_mode to VOIDmode.
16110 Use move2add_record_sym_value, move2add_valid_value_p and
16111 move2add_record_mode.
16112
b03be25f
RB
161132013-05-27 Richard Biener <rguenther@suse.de>
16114
16115 PR tree-optimization/57396
16116 * tree-affine.c (double_int_constant_multiple_p): Properly
16117 return false for val == 0 and div != 0.
16118
44e88db2
RS
161192013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
16120
16121 * config/mips/mips.h: Use #elif in preprocessor conditions.
16122
3b859704
RS
161232013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
16124
16125 PR target/53916
16126 * config/mips/constraints.md (kl): New constraint.
16127 * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Delete.
16128 (divmod<mode>4_internal): Rename to divmod<mode>4. Use "kl" as the
16129 constraint for operand 0. Split after CSE for MIPS16. Emit a move
16130 from LO for MIPS16.
16131 (udivmod<mode>4_internal): Likewise udivmod<mode>4.
16132
c979d5f5
RS
161332013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
16134
16135 PR target/55777
16136 * config/mips/mips.c (mips_can_inline_p): New function.
16137 (TARGET_CAN_INLINE_P): Define.
16138
8e90de43
SB
161392013-05-25 Steven Bosscher <steven@gcc.gnu.org>
16140
16141 * sched-int.h (ds_t, dw_t): Make unsigned int.
16142 Fix documentation that describes how all the ds_t bits are used.
16143 Reserve the last bit for delayed-branch scheduling.
16144 (BITS_PER_DEP_STATUS): Move to ds_t typedef.
16145 (BITS_PER_DEP_WEAK): Fix definition and documentation.
16146 (gen_dep_weak_1): Remove prototype.
16147 * sched-deps.c (get_dep_weak_1): Make static.
16148 * target.def (speculate_insn, needs_block_p, gen_spec_check,
16149 get_insn_spec_ds, get_insn_checked_ds): Adjust hook prototypes.
16150 * doc/tm.texi: Regenerate.
16151 * config/ia64/ia64.c (ia64_needs_block_p): Update prototype.
16152
cb5cb194
SB
161532013-05-24 Steven Bosscher <steven@gcc.gnu.org>
16154
16155 PR debug/56950
16156 * haifa-sched.c (sched_extend_bb): Ignore DEBUG_INSNs.
16157
5bd93ff6
NS
161582013-05-24 Nathan Sidwell <nathan@codesourcery.com>
16159 Sandra Loosemore <sandra@codesourcery.com>
16160
16161 * config.gcc (powerpc-*): Allow native for with-cpu.
16162
2343af65
JL
161632013-05-24 Jeff Law <law@redhat.com>
16164
16165 PR tree-optimization/57124
16166 * tree-vrp.c (simplify_cond_using_ranges): Only simplify a
16167 conversion feeding a condition if the range has an overflow
16168 if -fstrict-overflow. Add warnings for when we do make the
16169 transformation.
16170
3ad695b9
DC
161712013-05-24 Dehao Chen <dehao@google.com>
16172
04960246 16173 * tree-cfg.c (locus_discrim_map): Fix the typo.
3ad695b9
DC
16174 (locus_discrim_hasher): Likewise.
16175 (locus_discrim_hasher::hash): Likewise.
16176 (locus_discrim_hasher::equal): Likewise.
16177
82338059
MJ
161782013-05-24 Martin Jambor <mjambor@suse.cz>
16179
16180 PR tree-optimization/57294
16181 * cgraph.h (ipa_record_stmt_references): Declare.
16182 * cgraphbuild.c (ipa_record_stmt_references): New function.
16183 (build_cgraph_edges): Use ipa_record_stmt_references.
16184 (rebuild_cgraph_edges): Likewise.
16185 (cgraph_rebuild_references): Likewise.
16186 * ipa-prop.c (ipa_modify_call_arguments): Discard references
16187 associated with the old statement and build references from the
16188 newly built statements.
16189 * ipa-ref.c (ipa_remove_stmt_references): New function.
16190 * ipa-ref.h (ipa_remove_stmt_references): Declare.
16191
1ccd4874
VM
161922013-05-24 Vladimir Makarov <vmakarov@redhat.com>
16193
55805e54 16194 * lra-constraints.c (emit_spill_move): Use smaller mode for
1ccd4874 16195 mem-mem moves.
55805e54 16196 (check_and_process_move): Consider mem-reg moves for secondary
1ccd4874 16197 too.
55805e54 16198 (curr_insn_transform): Don't lose insns emitted before for
1ccd4874
VM
16199 secondary memory moves.
16200 (inherit_in_ebb): Mark defined reg. Add usage only if it is not a
16201 reg set up in the current insn.
16202
25e25c73
DC
162032013-05-24 Dehao Chen <dehao@google.com>
16204
04960246 16205 * tree-cfg.c (locus_descrim_hasher::hash): Change discriminator
25e25c73
DC
16206 hash function.
16207 (locus_descrim_hasher::equal): Likewise.
04960246 16208 (build_gimple_cfg): New discriminator assignment algorithm.
25e25c73
DC
16209 (make_edges): Likewise.
16210 (next_discriminator_for_locus): Likewise.
16211 (same_line_p): Likewise.
16212 (assign_discriminators): Likewise.
16213 (make_cond_expr_edges): Likewise.
16214 (make_gimple_switch_edges): Likewise.
16215 (make_goto_expr_edges): Likewise.
16216 (make_gimple_asm_edges): Likewise.
16217
50d38551
IB
162182013-05-24 Ian Bolton <ian.bolton@arm.com>
16219
16220 * config/aarch64/aarch64.c (aarch64_print_operand): Change the
16221 X format specifier to only display bottom 16 bits.
16222 * config/aarch64/aarch64.md (insv_imm<mode>): Allow any size of
16223 immediate to match for operand 2, since it will be masked.
16224
aea0101d
RB
162252013-05-24 Richard Biener <rguenther@suse.de>
16226
16227 PR tree-optimization/57287
16228 * tree-ssa-uninit.c (compute_uninit_opnds_pos): Disregard
16229 all SSA names that occur in abnormal PHIs.
16230
634e03d3
AI
162312013-05-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
16232
16233 PR tree-ssa/57385
16234 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Check
16235 that index is not negative.
16236
b17c024f
EB
162372013-05-24 Eric Botcazou <ebotcazou@adacore.com>
16238
16239 PR rtl-optimization/55177
16240 * simplify-rtx.c (simplify_unary_operation_1) <NOT>: Deal with BSWAP.
16241 (simplify_byte_swapping_operation): New.
16242 (simplify_binary_operation_1): Call it for AND, IOR and XOR.
16243 (simplify_relational_operation_1): Deal with BSWAP.
16244
46aeac1b
RH
162452013-05-23 Richard Henderson <rth@redhat.com>
16246
16247 PR target/56742
16248 * config/i386/i386.c (ix86_seh_fixup_eh_fallthru): New.
16249 (ix86_reorg): Call it.
16250
70cc1536
UB
162512013-05-23 Uros Bizjak <ubizjak@gmail.com>
16252
16253 PR target/57379
16254 * config/alpha/alpha.md (unspec): Add UNSPEC_XFLT_COMPARE.
16255 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Construct
16256 REG_EQUAL note as UNSPEC_XFLT_COMPARE unspec.
16257
b3851501
CB
162582013-05-23 Christian Bruel <christian.bruel@st.com>
16259
16260 PR debug/57351
16261 * config/arm/arm.c (arm_dwarf_register_span): Do not use dbx number.
16262
12211b99 162632013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
4e194912
CSS
16264 Marcus Shawcroft <marcus.shawcroft@arm.com>
16265
16266 * config/aarch64/aarch64.md (*movdi_aarch64): Replace Usa with S.
16267 * config/aarch64/constraints.md (Usa): Remove.
16268 * doc/md.texi (AArch64 Usa): Remove.
16269
12211b99 162702013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
83f8c414
CSS
16271 Marcus Shawcroft <marcus.shawcroft@arm.com>
16272
16273 * config/aarch64/aarch64-protos.h (aarch64_mov_operand_p): Define.
16274 * config/aarch64/aarch64.c (aarch64_mov_operand_p): Define.
16275 * config/aarch64/predicates.md (aarch64_const_address): Remove.
16276 (aarch64_mov_operand): Use aarch64_mov_operand_p.
16277
12211b99 162782013-05-23 Vidya Praveen <vidyapraveen@arm.com>
b5574232
VP
16279
16280 * config/aarch64/aarch64-simd.md (clzv4si2): Support for CLZ
16281 instruction (AdvSIMD).
16282 * config/aarch64/aarch64-builtins.c
16283 (aarch64_builtin_vectorized_function): Handler for BUILT_IN_CLZ.
16284 * config/aarch64/aarch-simd-builtins.def: Entry for CLZ.
16285
76c36cb1 162862013-05-23 Martin Jambor <mjambor@suse.cz>
7d2fb524
MJ
16287
16288 PR middle-end/57347
16289 * tree.h (contains_bitfld_component_ref_p): Declare.
16290 * tree-sra.c (contains_bitfld_comp_ref_p): Move...
70cc1536
UB
16291 * tree.c (contains_bitfld_component_ref_p): ...here. Adjust its
16292 caller.
7d2fb524
MJ
16293 * ipa-prop.c (determine_known_aggregate_parts): Check that LHS does
16294 not access a bit-field. Assert all final offsets are byte-aligned.
16295
ce521ae6
RB
162962013-05-23 Richard Biener <rguenther@suse.de>
16297
16298 PR tree-optimization/57380
16299 * tree-ssa-phiprop.c (propagate_with_phi): Do not require at
16300 least one invariant or re-used load.
16301 * passes.c (init_optimization_passes): Move pass_phiprop before
16302 pass_forwprop.
16303
75c7257f
JG
163042013-05-23 James Greenhalgh <james.greenhalgh@arm.com>
16305
16306 * config/aarch64/aarch64-simd.md
16307 (aarch64_cm<optab>di): Add clobber of CC_REGNUM to unsplit pattern.
16308
af6d44b5
RB
163092013-05-23 Richard Biener <rguenther@suse.de>
16310
16311 PR middle-end/57381
16312 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
16313 OEP_CONSTANT_ADDRESS_OF retained.
16314
bd3647bf
JJ
163152013-05-23 Jakub Jelinek <jakub@redhat.com>
16316
16317 PR middle-end/57344
70cc1536
UB
16318 * expmed.c (store_split_bit_field): If op0 is a REG or SUBREG of a REG,
16319 don't lower unit. Handle unit not being always BITS_PER_WORD.
bd3647bf 16320
a55757ea
RB
163212013-05-23 Richard Biener <rguenther@suse.de>
16322
16323 PR rtl-optimization/57341
16324 * ira.c (validate_equiv_mem_from_store): Use anti_dependence
16325 instead of true_dependence.
16326
cfb00b41
DM
163272013-05-22 David Malcolm <dmalcolm@redhat.com>
16328
dd1c676f
DM
16329 * bb-reorder.c (branch_threshold): Make const.
16330 (exec_threshold): Ditto.
cfb00b41 16331
f62511da 163322013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
16333 Pat Haugen <pthaugen@us.ibm.com>
16334 Peter Bergner <bergner@vnet.ibm.com>
f62511da
MM
16335
16336 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Add
16337 documentation for the power8 crypto builtins.
16338
16339 * config/rs6000/t-rs6000 (MD_INCLUDES): Add crypto.md.
16340
16341 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_1): Add support
16342 macros for defining power8 builtin functions.
16343 (BU_P8V_AV_2): Likewise.
16344 (BU_P8V_AV_P): Likewise.
16345 (BU_P8V_VSX_1): Likewise.
16346 (BU_P8V_OVERLOAD_1): Likewise.
16347 (BU_P8V_OVERLOAD_2): Likewise.
16348 (BU_CRYPTO_1): Likewise.
16349 (BU_CRYPTO_2): Likewise.
16350 (BU_CRYPTO_3): Likewise.
16351 (BU_CRYPTO_OVERLOAD_1): Likewise.
16352 (BU_CRYPTO_OVERLOAD_2): Likewise.
16353 (XSCVSPDP): Fix typo, point to the correct instruction.
16354 (VCIPHER): Add power8 crypto builtins.
16355 (VCIPHERLAST): Likewise.
16356 (VNCIPHER): Likewise.
16357 (VNCIPHERLAST): Likewise.
16358 (VPMSUMB): Likewise.
16359 (VPMSUMH): Likewise.
16360 (VPMSUMW): Likewise.
16361 (VPERMXOR_V2DI): Likewise.
16362 (VPERMXOR_V4SI: Likewise.
16363 (VPERMXOR_V8HI: Likewise.
16364 (VPERMXOR_V16QI: Likewise.
16365 (VSHASIGMAW): Likewise.
16366 (VSHASIGMAD): Likewise.
16367 (VPMSUM): Likewise.
16368 (VPERMXOR): Likewise.
16369 (VSHASIGMA): Likewise.
16370
16371 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
16372 __CRYPTO__ if the crypto instructions are available.
16373 (altivec_overloaded_builtins): Add support for overloaded power8
16374 builtins.
16375
16376 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
16377 support for power8 crypto builtins.
16378 (builtin_function_type): Likewise.
16379 (altivec_init_builtins): Add support for builtins that take vector
16380 long long (V2DI) arguments.
16381
16382 * config/rs6000/crypto.md: New file, define power8 crypto
16383 instructions.
16384
163852013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
16386 Pat Haugen <pthaugen@us.ibm.com>
16387 Peter Bergner <bergner@vnet.ibm.com>
f62511da
MM
16388
16389 * doc/invoke.texi (Option Summary): Add power8 options.
16390 (RS/6000 and PowerPC Options): Likewise.
16391
16392 * doc/md.texi (PowerPC and IBM RS6000 constraints): Update to use
16393 constraints.md instead of rs6000.h. Reorder w* constraints. Add
16394 wm, wn, wr documentation.
16395
f43245d1 16396 * config/rs6000/constraints.md (wm): New constraint for VSX
f62511da
MM
16397 registers if direct move instructions are enabled.
16398 (wn): New constraint for no registers.
16399 (wq): New constraint for quad word even GPR registers.
16400 (wr): New constraint if 64-bit instructions are enabled.
16401 (wv): New constraint if power8 vector instructions are enabled.
16402 (wQ): New constraint for quad word memory locations.
16403
f43245d1 16404 * config/rs6000/predicates.md (const_0_to_15_operand): New
f62511da
MM
16405 constraint for 0..15 for crypto instructions.
16406 (gpc_reg_operand): If VSX allow registers in VSX registers as well
16407 as GPR and floating point registers.
16408 (int_reg_operand): New predicate to match only GPR registers.
16409 (base_reg_operand): New predicate to match base registers.
16410 (quad_int_reg_operand): New predicate to match even GPR registers
16411 for quad memory operations.
16412 (vsx_reg_or_cint_operand): New predicate to allow vector logical
16413 operations in both GPR and VSX registers.
16414 (quad_memory_operand): New predicate for quad memory operations.
16415 (reg_or_indexed_operand): New predicate for direct move support.
16416
f43245d1 16417 * config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED):
f62511da
MM
16418 Inherit from ISA_2_4_MASKS, not ISA_2_2_MASKS.
16419 (ISA_2_7_MASKS_SERVER): New mask for ISA 2.07 (i.e. power8).
16420 (POWERPC_MASKS): Add power8 options.
16421 (power8 cpu): Use ISA_2_7_MASKS_SERVER instead of specifying the
16422 various options.
16423
f43245d1 16424 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
f62511da
MM
16425 Define _ARCH_PWR8 and __POWER8_VECTOR__ for power8.
16426
f43245d1 16427 * config/rs6000/rs6000.opt (-mvsx-timode): Add documentation.
f62511da
MM
16428 (-mpower8-fusion): New power8 options.
16429 (-mpower8-fusion-sign): Likewise.
16430 (-mpower8-vector): Likewise.
16431 (-mcrypto): Likewise.
16432 (-mdirect-move): Likewise.
16433 (-mquad-memory): Likewise.
16434
f43245d1 16435 * config/rs6000/rs6000.c (power8_cost): Initial definition for power8.
f62511da
MM
16436 (rs6000_hard_regno_mode_ok): Make PTImode only match even GPR
16437 registers.
70cc1536 16438 (rs6000_debug_reg_print): Print the base register class if -mdebug=reg.
f62511da
MM
16439 (rs6000_debug_vector_unit): Add p8_vector.
16440 (rs6000_debug_reg_global): If -mdebug=reg, print power8 constraint
16441 definitions. Also print fusion state.
16442 (rs6000_init_hard_regno_mode_ok): Set up power8 constraints.
16443 (rs6000_builtin_mask_calculate): Add power8 builtin support.
16444 (rs6000_option_override_internal): Add support for power8.
16445 (rs6000_common_init_builtins): Add debugging for skipped builtins
16446 if -mdebug=builtin.
16447 (rs6000_adjust_cost): Add power8 support.
16448 (rs6000_issue_rate): Likewise.
16449 (insn_must_be_first_in_group): Likewise.
16450 (insn_must_be_last_in_group): Likewise.
16451 (force_new_group): Likewise.
16452 (rs6000_register_move_cost): Likewise.
16453 (rs6000_opt_masks): Likewise.
16454
16455 * config/rs6000/rs6000.h (ASM_CPU_POWER8_SPEC): If we don't have a
16456 power8 capable assembler, default to power7 options.
16457 (TARGET_DIRECT_MOVE): Likewise.
16458 (TARGET_CRYPTO): Likewise.
16459 (TARGET_P8_VECTOR): Likewise.
16460 (VECTOR_UNIT_P8_VECTOR_P): Define power8 vector support.
16461 (VECTOR_UNIT_VSX_OR_P8_VECTOR_P): Likewise.
16462 (VECTOR_MEM_P8_VECTOR_P): Likewise.
16463 (VECTOR_MEM_VSX_OR_P8_VECTOR_P): Likewise.
16464 (VECTOR_MEM_ALTIVEC_OR_VSX_P): Likewise.
16465 (TARGET_XSCVDPSPN): Likewise.
16466 (TARGET_XSCVSPDPN): Likewsie.
16467 (TARGET_SYNC_HI_QI): Likewise.
16468 (TARGET_SYNC_TI): Likewise.
16469 (MASK_CRYPTO): Likewise.
16470 (MASK_DIRECT_MOVE): Likewise.
16471 (MASK_P8_FUSION): Likewise.
16472 (MASK_P8_VECTOR): Likewise.
70cc1536
UB
16473 (REG_ALLOC_ORDER): Move fr13 to be lower in priority so that the TFmode
16474 temporary used by some of the direct move instructions to get two FP
16475 temporary registers does not force creation of a stack frame.
f62511da
MM
16476 (VLOGICAL_REGNO_P): Allow vector logical operations in GPRs.
16477 (MODES_TIEABLE_P): Move the VSX tests above the Altivec tests so
16478 that any VSX registers are tieable, even if they are also an
16479 Altivec vector mode.
16480 (r6000_reg_class_enum): Add wm, wr, wv constraints.
16481 (RS6000_BTM_P8_VECTOR): Power8 builtin support.
16482 (RS6000_BTM_CRYPTO): Likewise.
16483 (RS6000_BTM_COMMON): Likewise.
16484
16485 * config/rs6000/rs6000.md (cpu attribute): Add power8.
16486 * config/rs6000/rs6000-opts.h (PROCESSOR_POWER8): Likewise.
16487 (enum rs6000_vector): Add power8 vector support.
16488
73a1a707
RR
164892013-05-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16490
16491 PR target/19599
16492 PR target/57340
16493 * config/arm/arm.c (any_sibcall_uses_r3): Rename to ..
16494 (any_sibcall_could_use_r3): this and handle indirect calls.
16495 (arm_get_frame_offsets): Rename use of any_sibcall_uses_r3.
16496
d28073d4
BS
164972013-05-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16498
16499 * config/rs6000/rs6000.h (MALLOC_ABI_ALIGNMENT): New #define.
16500
bee0b10c
RB
165012013-05-22 Richard Biener <rguenther@suse.de>
16502
16503 PR middle-end/57349
16504 * profile.c (branch_prob): Do not split blocks that are
16505 abnormally receiving from ECF_RETURNS_TWICE functions.
16506
98409b51
RS
165072013-05-22 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
16508
16509 * recog.c (offsettable_address_addr_space_p): Fix calculation of
16510 address mode. Move pointer mode initialization to the same place.
16511
c0602ab8
MZ
165122013-05-22 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
16513
16514 * read-rtl.c (copy_rtx_for_iterators): Continue applying iterators
16515 while it has any effect.
16516
4f7a634e
ER
165172013-05-21 Easwaran Raman <eraman@google.com>
16518
16519 PR tree-optimization/57322
9daf6dbb
ER
16520 * tree-ssa-reassoc.c (build_and_add_sum): If a BB is empty, set the
16521 UID of the statement added to the BB to be 1.
4f7a634e 16522
a4ce1258
JJ
165232013-05-21 Jakub Jelinek <jakub@redhat.com>
16524
16525 PR tree-optimization/57331
70cc1536
UB
16526 * tree-vrp.c (simplify_cond_using_ranges): Don't optimize comparison
16527 of conversion from pointer type to integral type with integer.
a4ce1258 16528
1b14621a
MJ
165292013-05-21 Martin Jambor <mjambor@suse.cz>
16530
16531 PR lto/57289
16532 * ipa-prop.c (ipa_read_node_info): Process param_used and
16533 controlled_uses in the same order as when writing.
16534
e60661f0
MG
165352013-05-21 Magnus Granberg <baldrick@free.fr>
16536
16537 PR plugins/56754
ee49aa34 16538 * Makefile.in (PLUGIN_HEADERS): Add $(TARGET_H).
e60661f0 16539
4a61be9a
RB
165402013-05-21 Richard Biener <rguenther@suse.de>
16541
16542 PR tree-optimization/57318
16543 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Do not
16544 estimate stmts with side-effects as likely eliminated.
16545
c52da5f7
RB
165462013-05-21 Richard Biener <rguenther@suse.de>
16547
16548 PR tree-optimization/57330
16549 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Properly
16550 preserve the call stmts fntype.
16551
7ec67e2a
RB
165522013-05-21 Richard Biener <rguenther@suse.de>
16553
16554 PR tree-optimization/57303
16555 * tree-ssa-sink.c (statement_sink_location): Improve killing
16556 stmt detection and properly handle self-assignments.
16557
b112d513
CB
165582013-05-21 Christian Bruel <christian.bruel@st.com>
16559
55805e54
YR
16560 * dwarf2out.c (multiple_reg_loc_descriptor): Use dbx_reg_number for
16561 spanning registers. LEAF_REG_REMAP is supported only for contiguous
b112d513
CB
16562 registers. Set register size out of the PARALLEL loop.
16563
14c2ec26
OE
165642013-05-20 Oleg Endo <olegendo@gcc.gnu.org>
16565
16566 PR target/56547
16567 * config/sh/sh.md (fmasf4): Remove empty constraints strings.
16568 (*fmasf4, *fmasf4_media): New insns.
16569
da734fa1
RS
165702013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
16571
16572 * config/mips/mips.h (BASE_INSN_LENGTH, NOP_INSN_LENGTH): New macros.
16573 * config/mips/mips.c (mips_symbol_insns, mips_address_insns)
16574 (mips_const_insns, mips_split_const_insns, mips_load_store_insns)
16575 (mips_idiv_insns): Update the comments to say that the returned
16576 instruction counts are in units of BASE_INSN_LENGTH.
16577 (mips_adjust_insn_length): Multiply the mips_load_label_num_insns
16578 by BASE_INSN_LENGTH rather than 4. Add the jump separately,
16579 using 2 rather than 4 as the length of indirect MIPS16 and
16580 microMIPS jumps. Use NOP_INSN_LENGTH rather than 4 as the
16581 length of a NOP. Don't divide MIPS16 lengths by 2.
16582 (mips16_split_long_branches): Assume a branch is long if the
16583 length is greater than 4 rather than 8.
16584 * config/mips/mips.md (length): Give MIPS16 lengths directly,
16585 rather than multiplying them by 2. Multiply instruction counts
16586 by BASE_INSN_LENGTH rather than 4.
16587 (*jump_mips16, tls_get_tp_mips16_<mode>)
16588 (*tls_get_tp_mips16_call_<mode>): Divide lengths by 2.
16589
13719e8b
RS
165902013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
16591
16592 * config/mips/mips.md (extended_mips16): Remove branch case.
16593 (length): Remove duplicated extended_mips16 test.
16594
c3850d14
RS
165952013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
16596
16597 * config/mips/t-sde: Don't build 64-bit microMIPS multilibs.
16598
8da2e059
RS
165992013-05-18 Richard Sandiford <rdsandiford@googlemail.com>
16600
16601 * recog.h (Recog_data): Rename to...
16602 (recog_data_d): ...this.
16603 (recog_data): Update accordingly.
16604 * recog.c (recog_data): Likewise.
16605 * reload.c (save_recog_data): Likewise.
16606 * config/picochip/picochip.c (picochip_saved_recog_data): Likewise.
16607 (picochip_save_recog_data, picochip_restore_recog_data): Likewise.
16608
2df013f3
JB
166092013-05-17 Julian Brown <julian@codesourcery.com>
16610
16611 * gcse.c (compute_ld_motion_mems): If a non-simple MEM is
16612 found in a REG_EQUAL note, invalidate it.
16613
371e77e3 166142013-05-17 Easwaran Raman <eraman@google.com>
933f507d
ER
16615
16616 * tree-ssa-reassoc.c (find_insert_point): New function.
16617 (insert_stmt_after): Likewise.
16618 (get_def_stmt): Likewise.
16619 (ensure_ops_are_available): Likewise.
16620 (not_dominated_by): Likewise.
16621 (rewrite_expr_tree): Do not move statements beyond what is
16622 necessary. Remove call to swap_ops_for_binary_stmt...
16623 (reassociate_bb): ... and move it here.
16624 (build_and_add_sum): Assign UIDs for new statements.
16625 (linearize_expr): Likewise.
16626 (do_reassoc): Renumber gimple statement UIDs.
16627
e01c7cca
JH
166282013-05-17 Jan Hubicka <jh@suse.cz>
16629
16630 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Resolve cross module
16631 weakrefs.
16632 * cgraph.c (dump_cgraph_node): Do not ice on unresolved alias.
e2420687
UB
16633 * cgraphunit.c (handle_alias_pairs): Store target of unresolved
16634 weakrefs.
e01c7cca
JH
16635 (output_weakrefs): Update.
16636
c3272a92
PCC
166372013-05-17 Po-Chun Chang <pchang9@cs.wisc.edu>
16638 Martin Jambor <mjambor@suse.cz>
16639
16640 PR middle-end/57276
16641 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Break when a
16642 value that corresponds to the given aggval is found in values vector.
16643
11c2aa39
UB
166442013-05-17 Uros Bizjak <ubizjak@gmail.com>
16645
16646 * config/i386/driver-i386.c (host_detect_local_cpu): Pass mmx, 3dnow,
16647 sse, sse2, sse3, ssse3 and sse4a flags to options.
16648
abecc8c6
DM
166492013-05-17 David Malcolm <dmalcolm@redhat.com>
16650
16651 * gengtype-state.c: (s_expr_writer): New class, to handle
16652 prettifying of output layout of s-expressions.
16653 (state_writer): New class, to write out gtype.state.
16654 (state_written_type_count): Move this variable into member data of
16655 state_writer.
16656 (s_expr_writer::s_expr_writer): New code: constructor for new class
16657 (state_writer::state_writer(): ditto
16658 (s_expr_writer::write_new_line): New function
16659 (s_expr_writer::write_any_indent): ditto
16660 (s_expr_writer::begin_s_expr): ditto
16661 (s_expr_writer::end_s_expr): ditto
16662 (write_state_fileloc): convert to method of state_writer...
16663 (state_writer:: write_state_fileloc): ...and use methods of
16664 s_expr_writer to write indentation into the gtype.state output file
16665 to visually represent the hierarchical structure of the list
16666 structures
16667 (write_state_fields): ditto, renaming to...
16668 (state_writer::write_state_fields)
16669 (write_state_a_string): ditto, renaming to...
16670 (state_writer::write_state_a_string)
16671 (write_state_string_option): ditto, renaming to...
16672 (state_writer::write_state_string_option)
16673 (write_state_type_option): ditto, renaming to...
16674 (state_writer::write_state_type_option)
16675 (write_state_nested_option): ditto, renaming to...
16676 (state_writer::write_state_nested_option)
16677 (write_state_option): ditto, renaming to...
16678 (state_writer::write_state_option)
16679 (write_state_options): ditto, renaming to...
16680 (state_writer::write_state_options)
16681 (write_state_lang_bitmap): ditto, renaming to...
16682 (state_writer::write_state_lang_bitmap)
16683 (write_state_version): ditto, renaming to...
16684 (state_writer::write_state_version)
16685 (write_state_scalar_type): ditto, renaming to...
16686 (state_writer::write_state_scalar_type)
16687 (write_state_string_type): ditto, renaming to...
16688 (state_writer::write_state_string_type)
16689 (write_state_undefined_type): ditto, renaming to...
16690 (state_writer::write_state_undefined_type)
16691 (write_state_struct_union_type): ditto, renaming to...
16692 (state_writer::write_state_struct_union_type)
16693 (write_state_struct_type): ditto, renaming to...
16694 (state_writer::write_state_struct_type)
16695 (write_state_user_struct_type): ditto, renaming to...
16696 (state_writer::write_state_user_struct_type)
16697 (write_state_lang_struct_type): ditto, renaming to...
16698 (state_writer::write_state_lang_struct_type)
16699 (write_state_param_struct_type): ditto, renaming to...
16700 (state_writer::write_state_param_struct_type)
16701 (write_state_pointer_type): ditto, renaming to...
16702 (state_writer::write_state_pointer_type)
16703 (write_state_array_type): ditto, renaming to...
16704 (state_writer::write_state_array_type)
16705 (write_state_gc_used): ditto, renaming to...
16706 (state_writer::write_state_gc_used)
16707 (write_state_common_type_content): ditto, renaming to...
16708 (state_writer::write_state_common_type_content)
16709 (write_state_type): ditto, renaming to...
16710 (state_writer::write_state_type)
16711 (write_state_pair_list): ditto, renaming to...
16712 (state_writer::write_state_pair_list)
16713 (write_state_pair): ditto, renaming to...
16714 (state_writer::write_state_pair)
16715 (write_state_typedefs): ditto, renaming to...
16716 (state_writer::write_state_typedefs)
16717 (write_state_structures): ditto, renaming to...
16718 (state_writer::write_state_structures)
16719 (write_state_param_structs): ditto, renaming to...
16720 (state_writer::write_state_param_structs)
16721 (write_state_variables): ditto, renaming to...
16722 (state_writer::write_state_variables)
16723 (write_state_srcdir): ditto, renaming to...
16724 (state_writer::write_state_srcdir)
16725 (write_state_files_list): ditto, renaming to...
16726 (state_writer::write_state_files_list)
16727 (write_state_languages): ditto, renaming to...
16728 (state_writer::write_state_languages)
16729 (write_state): create a state_writer instance and use it when
16730 writing out the state file
16731
d6545f29
MS
167322013-05-17 Mike Stump <mikestump@comcast.net>
16733
816a3f73 16734 PR rtl-optimization/57304
d6545f29
MS
16735 * web.c (union_match_dups): Ensure that DF_REF_LOC exists before
16736 accessing DF_REF_REAL_LOC.
16737
38c821cf
JJ
167382013-05-17 Jakub Jelinek <jakub@redhat.com>
16739
16740 PR rtl-optimization/57281
16741 PR rtl-optimization/57300
16742 * config/i386/i386.md (extendsidi2_1 dead reg splitter): Remove.
16743 (extendsidi2_1 peephole2s): Add instead 2 new peephole2s, that undo
16744 what the other splitter did if the registers are dead.
16745
2a293391
RB
167462013-05-17 Richard Biener <rguenther@suse.de>
16747
16748 * tree-ssa-alias.c (stmt_kills_ref_p_1): Properly compare
16749 MEM_REF offsets.
16750
17042d2b
JJ
167512013-05-17 Jakub Jelinek <jakub@redhat.com>
16752
16753 * gcc.c (SANITIZER_SPEC): Reject -fsanitize=address -fsanitize=thread
16754 linking.
16755
5b115c1f
MP
167562013-05-17 Marek Polacek <polacek@redhat.com>
16757
11c2aa39
UB
16758 * tree-ssa-strlen.c (handle_char_store): Don't invalidate cached
16759 length when doing non-zero store of storing '\0' to '\0'.
5b115c1f 16760
52d84413
JJ
167612013-05-17 Jakub Jelinek <jakub@redhat.com>
16762
68119618
JJ
16763 * tree-vect-patterns.c (vect_recog_rotate_pattern): For
16764 vect_external_def oprnd1 with loop_vinfo, try to emit
16765 optional cast, negation and and stmts on the loop preheader
16766 edge instead of into the pattern def seq.
16767
52d84413
JJ
16768 PR tree-optimization/57051
16769 * fold-const.c (const_binop) <case VEC_LSHIFT_EXPR,
16770 case VEC_RSHIFT_EXPR>: Fix BYTES_BIG_ENDIAN handling.
16771
17b962bd
NC
167722013-05-16 Nick Clifton <nickc@redhat.com>
16773
16774 * config/rl78/rl78.c (rl78_attribute_table): Add naked.
16775 (rl78_is_naked_func): New function.
56aefbf7
UB
16776 (rl78_expand_prologue): Skip prologue generation for naked functions.
16777 (rl78_expand_epilogue): Skip epilogue generation for naked functions.
17b962bd
NC
16778 * doc/extend.texi (naked): Add RL78 to the list of processors
16779 that supports this attribute.
16780
b1a0f84e
JL
167812013-05-16 Jeff Law <law@redhat.com>
16782
16783 * Makefile.in (tree-switch-conversion.o): Depend on $(OPTABS_H).
16784
af0e415b
UB
167852013-05-16 Uros Bizjak <ubizjak@gmail.com>
16786
16787 * config/i386/driver-i386.c (host_detect_local_cpu): Determine
16788 cache parameters using detect_caches_amd also for CYRIX,
16789 NSC and TM2 signatures.
16790
19db293a
UB
167912013-05-16 Uros Bizjak <ubizjak@gmail.com>
16792 Dzianis Kahanovich <mahatma@eu.by>
16793
16794 PR target/45359
16795 PR target/46396
16796 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
16797 VIA/Centaur processors and determine their cache parameters
16798 using detect_caches_amd.
16799
251a41b9
TJ
168002013-05-16 Teresa Johnson <tejohnson@google.com>
16801
16802 * cfgrtl.c (verify_hot_cold_block_grouping): Return err.
16803 (rtl_verify_edges): New function.
16804 (rtl_verify_bb_insns): Ditto.
16805 (rtl_verify_bb_pointers): Ditto.
16806 (rtl_verify_bb_insn_chain): Ditto.
16807 (rtl_verify_fallthru): Ditto.
16808 (rtl_verify_bb_layout): Ditto.
16809 (rtl_verify_flow_info_1): Outline checks into new functions.
16810 (rtl_verify_flow_info): Ditto.
16811
f14540b6
SE
168122013-05-16 Steve Ellcey <sellcey@imgtec.com>
16813
16814 * cfghooks.c (copy_bbs): Add update_dominance argument.
16815 * cfghooks.h (copy_bbs): Update prototype.
16816 * tree-cfg.c (gimple_duplicate_sese_region):
16817 Add update_dominance argument.
16818 * tree-flow.h (gimple_duplicate_sese_region): Update prototype.
16819 * tree-ssa-loop-ch.c (copy_loop_headers): Update
16820 gimple_duplicate_sese_region call.
16821 * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg):
16822 Update copy_bbs call.
16823 * cfgloopmanip.c (duplicate_loop_to_header_edge): Ditto.
16824 * trans-mem.c (ipa_uninstrument_transaction): Ditto.
16825
7e9a3abb
JJ
168262013-05-16 Jakub Jelinek <jakub@redhat.com>
16827
16828 * tree-vectorizer.h (NUM_PATTERNS): Increment.
16829 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
16830 vect_recog_rotate_pattern.
16831 (vect_recog_rotate_pattern): New function.
16832
427b248d
JM
168332013-05-16 Jason Merrill <jason@redhat.com>
16834
16835 * Makefile.in (LLINKER): New variable.
16836 (mostlyclean): Remove link mutex.
16837 * configure.ac: Handle --enable-link-mutex.
16838 * lock-and-run.sh: New script.
16839
b871e3d2
RR
168402013-05-16 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16841
16842 PR target/19599
16843 * config/arm/arm.c (arm_function_ok_for_sibcall): Add check
16844 for NULL decl.
16845
ce858126
RO
168462013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16847
16848 * reorg.c (link_cc0_insns): Wrap in #ifdef HAVE_cc0.
16849
798d3d04
GY
168502013-05-16 Greta Yorsh <Greta.Yorsh@arm.com>
16851
16852 * config/arm/arm-protos.h (gen_movmem_ldrd_strd): New declaration.
16853 * config/arm/arm.c (next_consecutive_mem): New function.
16854 (gen_movmem_ldrd_strd): Likewise.
16855 * config/arm/arm.md (movmemqi): Update condition and code.
16856 (unaligned_loaddi, unaligned_storedi): New patterns.
16857
0baddc45
RO
168582013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16859
16860 * config.gcc: Obsolete *-*-solaris2.9*.
16861 * doc/install.texi (Specific, *-*-solaris2*): Document it.
16862
aa9d5bcf
RB
168632013-05-16 Richard Biener <rguenther@suse.de>
16864
16865 * passes.c (init_optimization_passes): Move pass_parallelize_loops
16866 earlier, after GRAPHITE transforms and IV canonicalization.
16867
5a0f4dd3
JJ
168682013-05-16 Jakub Jelinek <jakub@redhat.com>
16869
16870 * omp-low.c (extract_omp_for_data): For collapsed loops,
16871 if at least one of the loops is known at compile time to
16872 iterate zero times, set count to 0.
16873 (expand_omp_regimplify_p): New function.
16874 (expand_omp_for_generic): For collapsed loops, if at least
16875 one of the loops isn't known to iterate at least once,
16876 add runtime check with setting count to 0.
16877 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
16878 For unsigned types if it isn't known at compile time that
16879 the loop will iterate at least once, add runtime check to bypass
16880 the whole loop if initial condition isn't true.
16881
e3753785
NS
168822013-05-16 Nathan Sidwell <nathan@codesourcery.com>
16883
16884 * varasm.c (default_use_anchors_for_symbol_p): Use decl_replaceable_p.
16885
43bb4dd1
MG
168862013-05-16 Marc Glisse <marc.glisse@inria.fr>
16887
16888 PR middle-end/57286
16889 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Disable some
16890 transformations to avoid an infinite loop.
16891
3571dde6
MP
168922013-05-16 Marek Polacek <polacek@redhat.com>
16893
16894 * tree-scalar-evolution.c (scev_const_prop): Add more dumps.
16895
b8b3f0ca
LE
168962013-05-15 Leif Ekblad <leif@rdos.net>
16897
16898 * config/i386/i386.c (ix86_decompose_address): Use
16899 DEFAULT_TLS_SEG_REG to access TLS segment register.
16900 * config/i386/i386.h (DEFAULT_TLS_SEG_REG): New define.
16901 * config/i386/rdos.h (DEFAULT_TLS_SEG_REG): Ditto.
16902 (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Ditto.
16903
e299a383
RS
169042013-05-15 Richard Sandiford <rdsandiford@googlemail.com>
16905
16906 PR target/57260
16907 * config/mips/mips.c (mips_function_ok_for_sibcall): Don't allow
16908 sibling calls to functions that would normally be lazily bound,
16909 unless $gp is call-clobbered.
16910
e7208ea3
UB
169112013-05-15 Uros Bizjak <ubizjak@gmail.com>
16912
19db293a 16913 * config/i386/i386.c (ix86_option_override_internal): Update
e7208ea3 16914 processor_alias_table for missing PTA_PRFCHW and PTA_FXSR flags. Add
5d280e2b
UB
16915 PTA_POPCNT to corei7 entry. Do not enable SSE prefetch on
16916 non-SSE 3dNow! targets. Enable TARGET_PRFCHW for TARGET_3DNOW targets.
e7208ea3
UB
16917 * config/i386/i386.md (prefetch): Enable for TARGET_PRFCHW instead
16918 of TARGET_3DNOW.
16919 (*prefetch_3dnow): Enable for TARGET_PRFCHW only.
16920
e7413f3d
AS
169212013-05-15 Andreas Schwab <schwab@suse.de>
16922
16923 * config/m68k/m68k.md (*rotlhi3_lowpart, *rotlqi3_lowpart): Name
16924 for rotlhi3+1 and rotlqi3+1, resp. Fix reference to non-existing
16925 third operand.
16926
ad4db775
TJ
169272013-05-15 Teresa Johnson <tejohnson@google.com>
16928
16929 * loop-unroll.c (report_unroll_peel): Check decision before
16930 emitting unroll/peel message.
16931
af205f67
TJ
169322013-05-15 Teresa Johnson <tejohnson@google.com>
16933
16934 * function.h (has_bb_partition): New rtl_data flag.
16935 (bb_reorder_complete): Ditto.
16936 * cfgcleanup.c (try_crossjump_to_edge): Check for has_bb_partition
16937 instead of flag_reorder_blocks_and_partition.
16938 * cfgrtl.c (verify_hot_cold_block_grouping): Moved from bb-reorder.c,
16939 with some enhancements.
16940 (rtl_verify_flow_info_1): Call verify_hot_cold_block_grouping.
16941 * bb-reorder.c (connect_traces): Check for has_bb_partition
16942 instead of flag_reorder_blocks_and_partition.
16943 (verify_hot_cold_block_grouping): Moved to cfgrtl.c.
16944 (reorder_basic_blocks): Set bb_reorder_complete flag, remove call to
16945 verify_hot_cold_block_grouping.
16946 (partition_hot_cold_basic_blocks): Set has_bb_partition.
16947
9adcfa3c
RR
169482013-05-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16949
16950 PR target/19599
16951 * config/arm/predicates.md (call_insn_operand): New predicate.
16952 * config/arm/constraints.md ("Cs", "Ss"): New constraints.
16953 * config/arm/arm.md (*call_insn, *call_value_insn): Match only
16954 if insn is not a tail call.
16955 (*sibcall_insn, *sibcall_value_insn): Adjust for tailcalling through
16956 registers.
16957 * config/arm/arm.h (enum reg_class): New caller save register class.
16958 (REG_CLASS_NAMES): Likewise.
16959 (REG_CLASS_CONTENTS): Likewise.
16960 * config/arm/arm.c (arm_function_ok_for_sibcall): Allow tailcalling
16961 without decls.
16962
ccb3ad87
RB
169632013-05-15 Richard Biener <rguenther@suse.de>
16964
16965 * tree-vect-loop.c (vect_transform_loop): Use MSG_NOTE instead
16966 of MSG_OPTIMIZED_LOCATIONS.
16967 * tree-vect-slp.c (vect_make_slp_decision): Likewise.
16968 (vect_slp_transform_bb): Indicate location in MSG_OPTIMIZED_LOCATIONS
16969 message.
16970 * tree-vectorizer.c (vectorize_loops): Use MSG_NOTE instead
16971 of MSG_OPTIMIZED_LOCATIONS.
16972 (execute_vect_slp): Likewise.
16973 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
16974 (vect_create_cond_for_alias_checks): Likewise.
16975 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Likewise.
16976 (vect_recog_widen_mult_pattern): Likewise.
16977 (vect_recog_widen_sum_pattern): Likewise.
16978 (vect_recog_over_widening_pattern): Likewise.
16979 (vect_recog_widen_shift_pattern): Likewise.
16980 (vect_recog_vector_vector_shift_pattern): Likewise.
16981 (vect_recog_divmod_pattern): Likewise.
16982 (vect_recog_mixed_size_cond_pattern): Likewise.
16983 (vect_recog_bool_pattern): Likewise.
16984 (vect_pattern_recog_1): Likewise.
16985
48b1474e
MJ
169862013-05-15 Martin Jambor <mjambor@suse.cz>
16987
16988 * ipa-prop.c (ipa_make_edge_direct_to_target): Redirect calls to
16989 non-functions to builtin_unreachable.
16990 * ipa-inline-transform.c (inline_call): Do not assert estimates were
16991 correct when new direct edges were discovered.
16992
9de04252
MJ
169932013-05-15 Martin Jambor <mjambor@suse.cz>
16994
16995 * ipa-prop.c (ipa_print_node_jump_functions): Print symbol order in
16996 header, print symbol order instead of node uid, print more information
16997 about indirect edge targets.
16998 (ipa_make_edge_direct_to_target): Print symbol order instead of node
16999 uids.
17000 (ipa_make_edge_direct_to_target): Likewise.
17001 (remove_described_reference): Likewise.
17002 (propagate_controlled_uses): Likewise.
17003 (ipa_print_node_params): Also print symbol order.
17004 (ipcp_transform_function): Print symbol order instead of node uids.
17005 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Likewise.
17006 (cgraph_get_create_real_symbol_node): Likewise.
17007 * ipa-cp.c (print_lattice): Likewise.
17008 (print_all_lattices): Likewise.
17009 (determine_versionability): Likewise.
17010 (initialize_node_lattices): Likewise.
17011 (estimate_local_effects): Likewise.
17012 (update_profiling_info): Likewise.
17013 (create_specialized_node): Likewise.
17014 (perhaps_add_new_callers): Likewise.
17015 (decide_about_value): Likewise.
17016 (decide_whether_version_node): Likewise.
17017 (identify_dead_nodes): Likewise.
17018 * ipa-inline-analysis.c (dump_inline_edge_summary): Likewise.
17019 (dump_inline_summary): Likewise.
17020 (estimate_node_size_and_time): Likewise.
17021 (inline_analyze_function): Likewise.
17022 * ipa-inline.c (report_inline_failed_reason): Likewise.
17023 (want_early_inline_function_p): Likewise.
17024 (edge_badness): Likewise.
17025 (update_edge_key): Likewise.
17026 (inline_small_functions): Likewise. Add dumping of order to two other
17027 dumps.
17028 * ipa-pure-const.c (pure_const_read_summary): Print symbol order
17029 instead of node uids.
17030 (propagate_pure_const): Likewise.
17031 (propagate_pure_const): Likewise.
17032 * ipa-utils.c (dump_cgraph_node_set): Likewise.
17033 * lto-cgraph.c (input_node): Explicitly specify we dump uid.
17034 * lto-symtab.c (lto_cgraph_replace_node): Print symbol order instead
17035 of node uids.
17036 * tree-pretty-print.c (dump_function_header): Likewise.
17037 * tree-sra.c (convert_callers_for_node): Dump in traditional format.
17038 Print symbol order instead of node uids.
17039
1dd03b91
AK
170402013-05-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17041
17042 * config/s390/s390.c (s390_register_move_cost): Don't impose the
17043 FPR<->GPR move cost penalty if ldgr/lgdr can be used.
17044
fdf6a7b9
RB
170452013-05-15 Richard Biener <rguenther@suse.de>
17046
17047 PR tree-optimization/57275
17048 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Fix
17049 return value for fail to do runtime alias checks for gather loads.
17050
2d6e4603
JH
170512013-05-15 Jan Hubicka <jh@suse.cz>
17052
17053 PR lto/57038
17054 PR lto/47375
e7208ea3
UB
17055 * lto-symtab.c (lto_symtab_symbol_p): Add external symbol;
17056 weakrefs are not external.
17057 (lto_symtab_merge_decls): Fix thinko when dealing with
17058 non-lto_symtab decls.
2d6e4603
JH
17059 (lto_symtab_merge_cgraph_nodes): Use lto_symtab_symbol_p.
17060 (lto_symtab_prevailing_decl): Get int sync with lto_symtab_symbol_p.
17061 * varpool.c (dump_varpool_node): Dump more flags.
17062
83f44b39
GG
170632013-05-15 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
17064
17065 * config/i386/i386.c (processor_alias_table): Add instruction
17066 FSGSBASE for AMD bdver3 architecture.
17067
2e55d062
JJ
170682013-05-14 Jakub Jelinek <jakub@redhat.com>
17069
17070 * tree.c (warn_deprecated_use): Print file:line using locus color.
17071 * diagnostic.c (diagnostic_report_current_module): Print file:line
17072 and file:line:column using locus color.
17073
0bfdb81e
MS
170742013-05-14 Mike Stump <mikestump@comcast.net>
17075
17076 * gdbinit.in: Add __null.
17077
a508ef22
MS
170782013-05-14 Mike Stump <mikestump@comcast.net>
17079
17080 * recog.h: Rename struct recog_data to Recog_data.
17081 * recog.c: Likewise.
17082 * reload.c (can_reload_into): Likewise.
17083 * config/picochip/picochip.c: Likewise.
17084
e7180acb
MS
170852013-05-14 Mike Stump <mikestump@comcast.net>
17086
17087 * web.c (union_match_dups): Also check DF_REF_REAL_LOC.
17088
61216c26
SB
170892013-05-14 Steven Bosscher <steven@gcc.gnu.org>
17090
fd6beed4
SB
17091 * resource.h (struct resources): Remove unch_memory member.
17092 (CLEAR_RESOURCE): Don't clear unch_memory.
17093 * resource.c (mark_referenced_resources): Don't set it.
17094 (mark_set_resources): Likewise.
17095 (mark_target_live_regs): Don't clear it.
17096 (init_resource_info): Likewise.
17097 * reorg.c (resource_conflicts_p): Don't compare it.
17098 (redundant_insn): Don't set it.
17099
61216c26
SB
17100 * rtl.h (next_label, skip_consecutive_labels, link_cc0_insns):
17101 Remove prototypes.
17102 * emit-rtl.c (next_label): Remove unused function.
17103 (skip_consecutive_labels, link_cc0_insns): Move to ...
17104 * reorg.c (skip_consecutive_labels, link_cc0_insns): ... here, the
17105 only place where these functions are used, and make them static.
17106
418d1b87
MG
171072013-05-14 Marc Glisse <marc.glisse@inria.fr>
17108
17109 * fold-const.c (fold_negate_expr): Handle vectors.
17110 (fold_truth_not_expr): Make it static.
17111 (fold_invert_truthvalue): New static function.
17112 (invert_truthvalue_loc): Handle vectors. Do not call
17113 fold_truth_not_expr directly.
17114 (fold_unary_loc) <BIT_NOT_EXPR>: Handle comparisons.
17115 <TRUTH_NOT_EXPR>: Do not cast to boolean.
17116 (fold_comparison): Handle vector constants.
17117 (fold_binary_loc) <TRUTH_XOR_EXPR>: Remove redundant code.
17118 (fold_ternary_loc) <VEC_COND_EXPR>: Adapt more COND_EXPR optimizations.
17119 * tree.h (fold_truth_not_expr): Remove declaration.
17120
fc21784d
JG
171212013-05-14 James Greenhalgh <james.greenhalgh@arm.com>
17122
17123 * config/aarch64/aarch64-simd.md
17124 (aarch64_vcond_internal<mode>): Rename to...
17125 (aarch64_vcond_internal<mode><mode>): ...This, for integer modes.
17126 (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): ...This for
17127 float modes. Clarify all iterator modes.
17128 (vcond<mode><mode>): Use new name for vcond expanders.
17129 (vcond<v_cmp_result><mode>): Likewise.
17130 (vcondu<mode><mode>: Likewise.
17131 * config/aarch64/iterators.md (VDQF_COND): New.
17132
d4c52634
MG
171332013-05-14 Marc Glisse <marc.glisse@inria.fr>
17134
17135 PR bootstrap/57266
17136 * fold-const.c (fold_binary_loc) <shift>: Use an unsigned
17137 variable for the shift amount. Check that we shift by non-negative
17138 amounts.
17139
2b261262
CLT
171402013-05-14 Chung-Lin Tang <cltang@codesourcery.com>
17141
17142 PR target/42017
17143 * config/arm/arm.h (EPILOGUE_USES): Only return true
17144 for LR_REGNUM after epilogue_completed.
17145
12211b99 171462013-05-14 Joern Rennecke <joern.rennecke@embecosm.com>
6e022d7b
JR
17147
17148 * config/avr/avr.c (avr_encode_section_info): Bail out if the type
e7208ea3 17149 is error_mark_node.
6e022d7b 17150
56cf7859
RO
171512013-05-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17152
17153 PR target/57261
17154 * configure.ac (gcc_cv_ld_as_needed): Disable before Solaris 11
17155 and Solaris 11+/x86 with gld.
17156 * configure: Regenerate.
17157
75776c6d
JJ
171582013-05-14 Jakub Jelinek <jakub@redhat.com>
17159
17160 * expmed.c (expand_shift_1): Canonicalize rotates by
17161 constant bitsize / 2 to bitsize - 1.
7f998021 17162 * simplify-rtx.c (simplify_binary_operation_1) <case ROTATE,
75776c6d
JJ
17163 case ROTATERT>: Likewise.
17164
17165 Revert:
17166 2013-05-10 Jakub Jelinek <jakub@redhat.com>
17167
17168 * config/i386/i386.md (rotateinv): New code attr.
17169 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
17170 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
17171 roll $31, %eax, etc.
17172
df35498a
RB
171732013-05-14 Richard Biener <rguenther@suse.de>
17174
17175 PR middle-end/57235
17176 * tree-eh.c (sink_clobbers): Give up for successors with
17177 multiple predecessors and no virtual uses.
17178
cc6e7ece
EB
171792013-05-14 Eric Botcazou <ebotcazou@adacore.com>
17180
17181 * config/sparc/sp64-elf.h (CPP_SUBTARGET_SPEC): Delete.
17182 * config/sparc/openbsd64.h (CPP_SUBTARGET_SPEC): Likewise.
17183
f778dd4d
JJ
171842013-05-14 Jakub Jelinek <jakub@redhat.com>
17185
17186 PR middle-end/57251
17187 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Handle
17188 the case when both op0 and op1 have VOIDmode.
17189
bad4df9b
KP
171902013-05-14 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
17191
17192 * config/rl78/rl78.md(mulsi3_g13): Add additional 'nop' required
17193 in multiply-accumulate mode.
17194
56f3e9ac
GW
171952013-05-13 Guozhi Wei <carrot@google.com>
17196
17197 * dwarf2asm.c (dw2_output_indirect_constant_1): Mark new decl STATIC.
17198
a3d7ab92
KT
171992013-05-13 Kai Tietz <ktietz@redhat.com>
17200
17201 PR target/56975
17202 * config/i386/cygming.h (TARGET_PECOFF): Define as true.
e7208ea3 17203 * config/i386/i386.h (TARGET_PECOFF): Define by default as false.
a3d7ab92 17204 (PIC_OFFSET_TABLE_REGNUM): Use TARGET_PECOFF.
e7208ea3 17205 * config/i386/i386.c (ix86_option_override_internal): Likewise.
a3d7ab92
KT
17206 (ix86_expand_prologue): Likewise.
17207 (ix86_expand_split_stack_prologue): Likewise.
17208 (legitimate_pic_address_disp_p): Likewise.
17209 (legitimize_pic_address): Likewise.
17210 (legitimize_tls_address): Likewise.
17211 (legitimize_pe_coff_symbol): Likewise.
17212 (output_pic_addr_const): Likewise.
17213 (construct_plt_address): Likewise.
17214 (ix86_expand_call): Likewise.
17215 (x86_output_mi_thunk): Likewise.
17216 (x86_function_profiler): Likewise.
17217
c59b7e28
SN
172182013-05-13 Sofiane Naci <sofiane.naci@arm.com>
17219
17220 * config/aarch64/aarch64-simd.md (aarch64_simd_mov<mode>): Group
17221 similar switch cases.
17222 (aarch64_simd_mov): Rename to aarch64_split_simd_mov. Update.
17223 (aarch64_simd_mov_to_<mode>low): Delete.
17224 (aarch64_simd_mov_to_<mode>high): Delete.
17225 (move_lo_quad_<mode>): Add w<-r alternative.
17226 (aarch64_simd_move_hi_quad_<mode>): Likewise.
17227 (aarch64_simd_mov_from_*): Update type attribute.
17228 * config/aarch64/aarch64.c (aarch64_split_simd_move): Refacror switch
17229 statement.
17230
5f28524a
JH
172312013-05-13 Jan Hubicka <jh@suse.cz>
17232
17233 * mode-switching.c (optimize_mode_switching): Set correct RTL profile.
17234 * config/i386/i386.c (ix86_compute_frame_layout,
e7208ea3
UB
17235 ix86_expand_epilogue, emit_i387_cw_initialization,
17236 ix86_expand_vector_move_misalign, ix86_fp_comparison_strategy,
17237 ix86_local_alignment): Fix use of size/speed predicates.
5f28524a 17238
ae6fa899
JJ
172392013-05-13 Jakub Jelinek <jakub@redhat.com>
17240
17241 PR tree-optimization/45216
17242 PR tree-optimization/57157
17243 * tree-ssa-forwprop.c (simplify_rotate): Only recognize
17244 the (-Y) & (B - 1) variant if OP is |.
17245 * expmed.c (expand_shift_1): For rotations by const0_rtx just
17246 return shifted. Use (-op1) & (prec - 1) as other_amount
17247 instead of prec - op1.
17248
4502fe8d
MJ
172492013-05-13 Martin Jambor <mjambor@suse.cz>
17250
17251 PR middle-end/42371
17252 * ipa-prop.h (IPA_UNDESCRIBED_USE): New macro.
17253 (ipa_constant_data): New type.
17254 (ipa_jump_func): Use ipa_constant_data to hold information about
17255 constant jump functions.
17256 (ipa_get_jf_constant): Adjust to jump function type changes.
17257 (ipa_get_jf_constant_rdesc): New function.
17258 (ipa_param_descriptor): New field controlled_uses.
17259 (ipa_get_controlled_uses): New function.
17260 (ipa_set_controlled_uses): Likewise.
17261 * ipa-ref.h (ipa_find_reference): Declare.
17262 * ipa-prop.c (ipa_cst_ref_desc): New type.
17263 (ipa_print_node_jump_functions_for_edge): Adjust for jump function type
17264 changes.
17265 (ipa_set_jf_constant): Likewise. Also create reference descriptions.
17266 New parameter cs. Adjust all callers.
17267 (ipa_analyze_params_uses): Detect uncontrolled and controlled uses.
17268 (remove_described_reference): New function.
17269 (jfunc_rdesc_usable): Likewise.
17270 (try_make_edge_direct_simple_call): Decrement controlled use count,
17271 attempt to remove reference if it hits zero.
17272 (combine_controlled_uses_counters): New function.
17273 (propagate_controlled_uses): Likewise.
17274 (ipa_propagate_indirect_call_infos): Call propagate_controlled_uses.
17275 (ipa_edge_duplication_hook): Duplicate reference descriptions.
17276 (ipa_print_node_params): Print described use counter.
17277 (ipa_write_jump_function): Adjust to jump function type changes.
17278 (ipa_read_jump_function): New parameter CS, pass it to
17279 ipa_set_jf_constant. Adjust caller.
17280 (ipa_write_node_info): Stream controlled use count
17281 (ipa_read_node_info): Likewise.
17282 * cgraph.c (cgraph_mark_address_taken_node): Bail out instead of
17283 asserting.
17284 * ipa-cp.c (ipcp_discover_new_direct_edges): Decrement controlled use
17285 count. Remove cloning-added reference if it reaches zero.
17286 * ipa-ref.c (ipa_find_reference): New function.
17287
0864bfc2
GG
172882013-05-13 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
17289
e7208ea3 17290 * config/i386/i386.c (processor_target_table): Modified default
0864bfc2
GG
17291 alignment values for AMD BD and BT architectures.
17292
640bfeb2
MG
172932013-05-13 Marc Glisse <marc.glisse@inria.fr>
17294
17295 * tree-vect-generic.c (uniform_vector_p): Move ...
17296 * tree.c (uniform_vector_p): ... here.
17297 * tree.h (uniform_vector_p): Declare it.
17298 * fold-const.c (fold_binary_loc) <shift>: Turn the second argument
17299 into a scalar.
17300
3a60f32b
JJ
173012013-05-13 Jakub Jelinek <jakub@redhat.com>
17302
198fe1bf
JJ
17303 PR tree-optimization/57230
17304 * tree-ssa-strlen.c (handle_char_store): Record length for
17305 array store from STRING_CST.
17306
3a60f32b
JJ
17307 PR tree-optimization/57230
17308 * tree-ssa-strlen.c (handle_char_store): Add missing integer_zerop
17309 check.
17310
566be57c
JR
173112013-05-12 Joern Rennecke <joern.rennecke@embecosm.com>
17312
17313 * config/epiphany/epiphany.c (epiphany_init): Check size of
17314 NUM_MODES_FOR_MODE_SWITCHING.
17315 (epiphany_expand_prologue):
17316 Remove CONFIG_REGNUM initial value handling code.
17317 (epiphany_optimize_mode_switching): Handle EPIPHANY_MSW_ENTITY_CONFIG.
17318 (epiphany_mode_needed, epiphany_mode_entry_exit): Likewise.
2710a27a 17319 (emit_set_fp_mode, epiphany_mode_after): Likewise.
566be57c
JR
17320 (epiphany_mode_needed) <Handle EPIPHANY_MSW_ENTITY_AND>:
17321 Don't return 1 for FP_MODE_NONE.
17322 * config/epiphany/epiphany.h (NUM_MODES_FOR_MODE_SWITCHING):
17323 Add value for EPIPHANY_MSW_ENTITY_CONFIG.
17324 (EPIPHANY_MSW_ENTITY_CONFIG, EPIPHANY_MSW_ENTITY_NUM): Define.
17325 * config/epiphany/epiphany.md (save_config): New pattern.
17326
0f2c2331
UB
173272013-05-12 Uros Bizjak <ubizjak@gmail.com>
17328
17329 * config/i386/i386.md (*zero_extendsidi2): Add *x->?r alternative.
17330
5b3f93c7
UB
173312013-05-10 Uros Bizjak <ubizjak@gmail.com>
17332
17333 * config/i386/i386.md (memory): Handle sseishft1.
17334 * config/i386/sse.md (*vec_extractv4si): Remove memory attribute.
17335 (*vec_extractv2di_1): Ditto.
17336
1f873f0e
VM
173372013-05-10 Vladimir Makarov <vmakarov@redhat.com>
17338
17339 * lra-assigns.c (find_hard_regno_for): Add 1 to the cost of call
17340 saved registers.
17341
341427fa 173422013-05-10 Sebastian Huber <sebastian.huber@embedded-brains.de>
d7de6455
SH
17343
17344 * config/arm/t-rtems-eabi: Remove mthumb/march=armv7 multilib.
17345 Add mthumb/march=armv7-a multilib.
17346 Add mthumb/march=armv7-r multilib.
17347 Add mthumb/march=armv7-a/mfpu=neon/mfloat-abi=hard multilib.
17348
9e69bdde
RC
173492013-05-10 Ralf Corsépius <ralf.corsepius@rtems.org>
17350
17351 * config/v850/t-rtems: Add more multilibs.
17352
9ff09a22
RB
173532013-05-10 Richard Biener <rguenther@suse.de>
17354
17355 PR tree-optimization/57214
17356 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling): Do
17357 not propagate from SSA names that occur in abnormal PHI nodes.
17358
a5e0cd1d
MG
173592013-05-10 Marc Glisse <marc.glisse@inria.fr>
17360
17361 * stor-layout.c (element_precision): New function.
17362 * machmode.h (element_precision): Declare it.
17363 * tree.c (build_minus_one_cst): New function.
17364 (element_precision): Likewise.
17365 * tree.h (build_minus_one_cst): Declare new function.
17366 (element_precision): Likewise.
17367 * fold-const.c (operand_equal_p): Use element_precision.
17368 (fold_binary_loc): Handle vector types.
17369 * convert.c (convert_to_integer): Use element_precision.
17370 * gimple.c (iterative_hash_canonical_type): Handle complex and vectors
17371 separately.
17372
cb2558bc
RS
173732013-05-10 Richard Sandiford <rdsandiford@googlemail.com>
17374
17375 * config/mips/mips-protos.h (m16_uimm3_b, m16_simm4_1, m16_nsimm4_1)
17376 (m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4, m16_simm8_1)
17377 (m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1, m16_uimm8_4)
17378 (m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
17379 * config/mips/mips.c (m16_check_op, m16_uimm3_b, m16_simm4_1)
17380 (m16_nsimm4_1, m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4)
17381 (m16_simm8_1, m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1)
17382 (m16_uimm8_4, m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
17383 * config/mips/constraints.md (Udb8, Usb5, Usb8, Usd8, Uub8, Uuw5)
17384 (Uuw8): New constraints.
17385 (Usb4): Move into alphabetical order.
17386 * config/mips/predicates.md (db8_operand, sb5_operand, sb8_operand)
17387 (sd8_operand, ub8_operand, uw8_operand): New predicates.
17388 * config/mips/mips.md (*xor<mode>3, *xor<mode>3_mips16): Name
17389 previously unnamed patterns.
17390 (*add<mode>3_mips16, *xor<mode>3_mips16, *<optab>si3_mips16)
17391 (*ashldi3_mips16, *ashrdi3_mips16, *lshrdi3_mips16)
17392 (*slt<u>_<GPR:mode><GPR2:mode>_mips16)
17393 (*sle<u>_<GPR:mode><GPR2:mode>_mips16): Use constraints instead
17394 of set_attr_alternative/if_then_else. Use extended_mips16 instead
17395 of specific lengths.
17396
cb3b8d33
JJ
173972013-05-10 Jakub Jelinek <jakub@redhat.com>
17398
6f93c008
JJ
17399 * config/i386/i386.md (rotateinv): New code attr.
17400 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
17401 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
17402 roll $31, %eax, etc.
17403
cb3b8d33
JJ
17404 PR tree-optimization/45216
17405 PR tree-optimization/57157
17406 * tree-ssa-forwprop.c (simplify_rotate): New function.
17407 (ssa_forward_propagate_and_combine): Call it.
17408
afb119be
RB
174092013-05-10 Richard Biener <rguenther@suse.de>
17410
17411 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
17412 disable peeling when we version for aliasing.
17413 (vector_alignment_reachable_p): Honor explicit user alignment.
17414 (vect_supportable_dr_alignment): Likewise.
17415 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Use
17416 STMT_VINFO_LOOP_PHI_EVOLUTION_PART instead of recomputing it.
17417 * tree-vect-loop.c (vect_transform_loop): First apply versioning,
17418 then peeling to arrange for the cost-model check to come first.
17419
01ae4861
AM
174202013-05-10 Alan Modra <amodra@gmail.com>
17421
17422 * configure.ac (HAVE_AS_TLS): Swap powerpc64 and powerpc cases.
17423 (HAVE_LD_LARGE_TOC): Don't mention AIX in help text.
17424 * configure: Regenerate.
17425
ebc9a431
AM
174262013-05-10 Alan Modra <amodra@gmail.com>
17427
17428 PR target/55033
17429 * varasm.c (default_elf_select_section): Move !DECL_P check..
17430 (get_named_section): ..to here before calling get_section_name.
17431 Adjust assertion.
17432 (default_section_type_flags): Add DECL_P check.
17433 * config/i386/winnt.c (i386_pe_section_type_flags): Likewise.
17434 * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags): Likewise.
17435
d4bca93c
JR
174362013-05-09 Joern Rennecke <joern.rennecke@embecosm.com>
17437
17438 * config/epiphany/epiphany.c (epiphany_expand_prologue):
17439 When using gen_stack_adjust_str with a register offset, add a
17440 REG_FRAME_RELATED_EXPR note.
17441
60ca9a65
UB
174422013-05-09 Uros Bizjak <ubizjak@gmail.com>
17443
17444 * config/i386/sse.md (*vec_extractv4si_0_zext): New pattern.
17445 (*vec_extractv4si_zext_mem): Ditto.
17446 (*vec_extractv2di): Add 0->x and x->x alternatives.
17447 * config/i386/mmx.md (*vec_extractv2si_zext_mem): New pattern.
17448 * config/i386/i386.md (*zero_extendsidi2): Add *Yj->?r alternative.
17449
a3409c02
JM
174502013-05-09 Jason Merrill <jason@redhat.com>
17451
0138d6b2
JM
17452 N3639 C++1y VLA support
17453 * gimplify.c (gimplify_vla_decl): Don't touch an existing
17454 DECL_VALUE_EXPR.
17455
a3409c02
JM
17456 * tree.c (build_constructor_va): New.
17457 * tree.h: Declare it.
17458
66e6b990
MJ
174592013-05-09 Martin Jambor <mjambor@suse.cz>
17460
17461 PR lto/57084
17462 * gimple-fold.c (canonicalize_constructor_val): Call
17463 cgraph_get_create_real_symbol_node instead of cgraph_get_create_node.
17464
64cfa6c0
JH
174652013-05-09 Jan Hubicka <jh@suse.cz>
17466 Richard Biener <rguenther@suse.de>
17467
17468 PR lto/54095
17469 * symtab.c (symtab_make_decl_local): Do not add private names.
17470
c3167b00
JH
174712013-05-09 Jan Hubicka <jh@suse.cz>
17472
17473 PR lto/54095
17474 * symtab.c (insert_to_assembler_name_hash): Handle clones.
17475 (unlink_from_assembler_name_hash): Likewise.
17476 (symtab_prevail_in_asm_name_hash, symtab_register_node,
17477 symtab_unregister_node, symtab_initialize_asm_name_hash,
17478 change_decl_assembler_name): Update.
17479
12dc6974
SN
174802013-05-09 Sofiane Naci <sofiane.naci@arm.com>
17481
17482 * config/aarch64/aarch64.md: New movtf split.
17483 (*movtf_aarch64): Update.
17484 (aarch64_movdi_tilow): Handle TF modes and rename to
17485 aarch64_movdi_<mode>low.
17486 (aarch64_movdi_tihigh): Handle TF modes and rename to
17487 aarch64_movdi_<mode>high
17488 (aarch64_movtihigh_di): Handle TF modes and rename to
17489 aarch64_mov<mode>high_di
17490 (aarch64_movtilow_di): Handle TF modes and rename to
17491 aarch64_mov<mode>low_di
17492 (aarch64_movtilow_tilow): Remove spurious whitespace.
17493 * config/aarch64/aarch64.c (aarch64_split_128bit_move): Handle TFmode
17494 splits.
17495 (aarch64_print_operand): Update.
17496
227eb343
AM
174972013-05-09 Alan Modra <amodra@gmail.com>
17498
17499 * configure.ac (HAVE_AS_TLS): Enable tests for powerpcle and
17500 powerpc64le.
17501 * configure: Regenerate.
17502
0b013847
UB
175032013-05-08 Uros Bizjak <ubizjak@gmail.com>
17504
17505 * config/i386/mmx.md (*vec_extract* splitters): Simplify post-reload
17506 splitter preparation statements.
17507 * config/i386/sse.md (*vec_extract* splitters): Ditto.
17508 (*avx_vperm_broadcast_<mode>): Use adjust_address instead of
17509 adjust_address_nv.
17510
1dc3d6e9
BS
175112013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17512
17513 * gimple-ssa-strength-reduction.c (count_candidates): Change
17514 return value to int.
17515 (analyze_candidates_and_replace): Change type of length to int.
17516
e61e7d28
UB
175172013-05-08 Uros Bizjak <ubizjak@gmail.com>
17518
17519 * config/i386/sse.md (PEXTR_MODE, PEXTR_MODEx): Remove.
17520 (*vec_extract<mode>): Use VI12_128 mode iterator.
17521 (*vec_extract<mode>_mem): Ditto.
17522 (*vec_extract*_mem splitters): Merge splitters using VI_128 mode
17523 attribute.
17524
4fbfcf44
DN
175252013-05-08 Diego Novillo <dnovillo@google.com>
17526
17527 PR bootstrap/54659
17528
17529 Revert:
4fbfcf44
DN
17530 2012-08-17 Diego Novillo <dnovillo@google.com>
17531
e61e7d28
UB
17532 PR bootstrap/54281
17533 * configure.ac: Add libintl.h to AC_CHECK_HEADERS list.
17534 * config.in: Regenerate.
17535 * configure: Regenerate.
17536 * intl.h: Always include libintl.h if HAVE_LIBINTL_H is set.
4fbfcf44 17537
702d8703
JH
175382013-05-08 Jan Hubicka <jh@suse.cz>
17539
17540 PR lto/54095
17541 * cgraph.c (cgraph_make_node_local_1): Se unique_name.
17542 * cgraph.h (symtab_node_base): Add unique_name.
17543 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
17544 input_overwrite_node, input_varpool_node): Stream unique_name.
17545 * cgraphclones.c (cgraph_create_virtual_clone,
17546 cgraph_function_versioning): Set unique_name.
17547 * ipa.c (function_and_variable_visibility): Set unique_name.
17548
8b28cf47
BS
175492013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17550
17551 * gimple-ssa-strength-reduction.c (find_phi_def): Revert former "fix."
17552 (alloc_cand_and_find_basis): Restrict conditional candidate
17553 processing to CAND_MULTs.
17554
e86074fd
JH
175552013-05-08 Jan Hubicka <jh@suse.cz>
17556
17557 PR lto/54095
17558 lto-symtab.c (lto_symtab_symbol_p): New function.
17559 (lto_symtab_resolve_can_prevail_p, lto_symtab_resolve_symbols,
17560 lto_symtab_resolve_symbols, lto_symtab_merge_decls_2,
17561 lto_symtab_merge_decls_1, lto_symtab_merge_cgraph_nodes_1):
17562 Skip static symbols.
17563
44398cbe
PC
175642013-05-08 Paolo Carlini <paolo.carlini@oracle.com>
17565
17566 PR tree-optimization/57200
17567 * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
17568 Only call inform if the preceding warning_at returns true.
17569
f6bc1c4a
HS
175702013-05-07 Han Shen <shenhan@google.com>
17571
17572 * cfgexpand.c (record_or_union_type_has_array_p): New function.
17573 (expand_used_vars): Add logic handling '-fstack-protector-strong'.
17574 * common.opt (fstack-protector-strong): New option.
17575 * doc/cpp.texi (__SSP_STRONG__): New builtin "__SSP_STRONG__".
17576 * doc/invoke.texi (Optimization Options): Document
17577 "-fstack-protector-strong".
17578 * gcc.c (LINK_SSP_SPEC): Add 'fstack-protector-strong'.
17579
4ffecb1f
SB
175802013-05-06 Steven Bosscher <steven@gcc.gnu.org>
17581
17582 * config/mips/mips.c (mips_machine_reorg2): Return 0.
17583
5a107a0f
VM
175842013-05-07 Vladimir Makarov <vmakarov@redhat.com>
17585
17586 * ira.c (update_equiv_regs): Add insn having equiv memory even if
17587 it is not lhs of the insn.
17588 (setup_reg_equiv): Remove insn having equiv memory which it is not
17589 lhs of the insn.
17590 * lra-constraints.c (process_address): Try to improve generation
17591 code for address base + disp.
17592 (lra_constraints): Make correct the code for checking insn setting
17593 up backward equivalence. Remove insn only if it is in the init
17594 insn list.
17595 * lra-eliminations.c (update_reg_eliminate): Change return value.
17596 (lra_eliminate): Use the result.
17597
3f5783ea
UB
175982013-05-07 Uros Bizjak <ubizjak@gmail.com>
17599
17600 * config/i386/sse.md (ssescalarnummask): New mode attribute.
17601 (PEXTR_MODE, PEXTR_MODEx): New mode iterators.
17602 (*vec_extract<mode>): Merge from *sse4_1_pextrb_memory and
17603 *sse4_1_pextrw_memory using PEXTR_MODE mode iterator. Handle
17604 register target operands.
17605 (*vec_extractv8hi_sse2): New pattern.
17606 (*vec_extractv16qi_zext): Rename from *sse4_1_pextrb_<mode>.
17607 (*vec_extractv8hi_zext): Rename from *sse2_pextrw_<mode>.
17608 (*vec_extract<mode>_mem): New insn and split pattern.
17609
8a5800b8
CL
176102013-05-07 Christophe Lyon <christophe.lyon@linaro.org>
17611
17612 * config/arm/arm.c (arm_asan_shadow_offset): New function.
17613 (TARGET_ASAN_SHADOW_OFFSET): Define.
17614 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Define.
17615 (LINUX_OR_ANDROID_CC): Add ASAN_CC1_SPEC.
17616
7bf55a70
BS
176172013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17618
17619 * gimple-ssa-strength-reduction.c (MAX_INCR_VEC_LEN): New constant.
17620 (incr_vec_index): Return -1 if increment not found.
17621 (create_add_on_incoming_edge): Assert if increment not found.
17622 (record_increment): Limit number of increments recorded.
17623 (all_phi_incrs_profitable): Return false if an increment not found.
17624 (replace_profitable_candidates): Don't process increments that were
17625 not recorded.
17626 (analyze_candidates_and_replace): Limit size of incr_vec.
17627
3f8825c0
RB
176282013-05-07 Richard Biener <rguenther@suse.de>
17629
17630 * calls.c (special_function_p): setjmp-like functions are leaf.
17631 * builtins.def (BUILT_IN_SETJMP): setjmp is leaf.
17632 * tree-inline.c (update_ssa_across_abnormal_edges): Remove assert.
17633
fd4842cd
SN
176342013-05-07 Sofiane Naci <sofiane.naci@arm.com>
17635
17636 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): call splitter.
17637 (aarch64_simd_mov<mode>): New expander.
17638 (aarch64_simd_mov_to_<mode>low): New instruction pattern.
17639 (aarch64_simd_mov_to_<mode>high): Likewise.
17640 (aarch64_simd_mov_from_<mode>low): Likewise.
17641 (aarch64_simd_mov_from_<mode>high): Likewise.
17642 (aarch64_dup_lane<mode>): Update.
17643 (aarch64_dup_lanedi): New instruction pattern.
17644 * config/aarch64/aarch64-protos.h (aarch64_split_simd_move): New prototype.
17645 * config/aarch64/aarch64.c (aarch64_split_simd_move): New function.
17646
a7a7d10e
BS
176472013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17648
17649 * gimple-ssa-strength-reduction.c (lazy_create_slsr_reg): Remove.
17650 (replace_mult_candidate): Remove unnecessary argument; remove
17651 unnecessary parameter from call to introduce_cast_before_cand.
17652 (replace_unconditional_candidate): Remove unnecessary parameter
17653 from call to replace_mult_candidate.
17654 (replace_conditional_candidate): Likewise.
17655 (insert_initializers): Use make_temp_ssa_name.
17656 (introduce_cast_before_cand): Remove unnecessary argument; use
17657 make_temp_ssa_name.
17658 (replace_one_candidate): Remove unnecessary argument; remove
17659 unnecessary parameter from calls to introduce_cast_before_cand.
17660 (replace_profitable_candidates): Remove unnecessary parameters
17661 from calls to replace_one_candidate.
17662
29105868
BS
176632013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17664
17665 * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
17666 phi def as possibly hiding a basis for a CAND_ADD whose operands
17667 have been commuted in the analysis.
17668 (alloc_cand_and_find_basis): Add parms to call to find_phi_def.
17669
4095f9fa
N
176702013-05-07 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
17671
17672 * config/aarch64/aarch64.md
17673 (cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): Restrict the
17674 shift value between 0-4.
17675
39e843e8
RB
176762013-05-07 Richard Biener <rguenther@suse.de>
17677
17678 * double-int.h (rshift): New overload.
17679 * double-int.c (rshift): New function.
17680 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Optimize.
17681 (create_reference_ops_from_ref): Remove.
17682 (vn_reference_insert): Use shared ops for constructing the
17683 reference and copy it.
17684
0a1a83cb
RB
176852013-05-07 Richard Biener <rguenther@suse.de>
17686
17687 PR middle-end/57190
17688 * tree-eh.c (sink_clobbers): Properly propagate
17689 SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
17690
43303d6f
JJ
176912013-05-07 Jakub Jelinek <jakub@redhat.com>
17692
ba7e83f8
JJ
17693 PR tree-optimization/57149
17694 * tree-ssa-uninit.c (uninit_undefined_value_p): New inline.
17695 (can_skip_redundant_opnd, compute_uninit_opnds_pos,
17696 collect_phi_def_edges, execute_late_warn_uninitialized): Use
17697 uninit_undefined_value_p instead of ssa_undefined_value_p.
17698
43303d6f
JJ
17699 PR debug/57184
17700 * expr.c (expand_expr_addr_expr_1): Handle COMPOUND_LITERAL_EXPR
17701 for modifier == EXPAND_INITIALIZER.
17702
14523c25
AB
177032013-05-07 Anton Blanchard <anton@samba.org>
17704
17705 * configure.ac (HAVE_LD_LARGE_TOC): Use correct linker emulation
17706 for powerpc64 little endian.
17707 * configure: Regenerate.
17708
cb7c8be9
GS
177092013-05-06 Graham Stott <grahams@btinternet.com>
17710
17711 * expmed.c (init_expmed_rtl): Remove unused fields reg_fld, plus_fld,
17712 mult_fld, sdiv_fld1, udiv_fld1, sdiv_32_fld1, smod_32_fld1,
17713 wide_mult_fld1, wide_lshr_fld1, shift_fld1, shift_mult_fld1,
17714 shift_add_fld1, shift_sub0_fld1, shift_sub1_fld1.
17715
177162013-05-06 Graham Stott <grahams@btinternet.com>
a8fd4225
GS
17717
17718 * gensupport.c (add_predicate_code): Also exclude SCRATCH from rtx
17719 codes which allow non-lvalues.
17720
9a0ee7b0
MG
177212013-05-06 Marc Glisse <marc.glisse@inria.fr>
17722
17723 * tree.c (integer_all_onesp) <COMPLEX_CST>: Test that both
17724 components are all 1s.
17725 (integer_minus_onep): New function.
17726 * tree.h (integer_minus_onep): Declare it.
17727 * fold-const.c (fold_binary_loc) <MULT_EXPR>: Test
17728 integer_minus_onep instead of integer_all_onesp.
17729
f2c17ea9
OE
177302013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
17731
17732 PR target/52933
17733 * config/sh/sh.md (*cmp_div0s_0, *cmp_div0s_1, *movsicc_div0s): Add
17734 variations of these patterns.
17735
f75e6a51
UB
177362013-05-06 Uros Bizjak <ubizjak@gmail.com>
17737
17738 * config/i386/i386.md (isa): Add x64_sse4 member.
17739 (enabled): Handle x64_sse4.
17740 (*movdi_internal): Add *x->?r alternative to emit pextrq $0,%xmm,%reg
17741 instruction for 64bit SSE4_1 targets. Update insn attributes.
17742 (*movsi_internal): Add *x->?r alternative to emit pextrd $0,%xmm,%reg
17743 instruction for SSE4_1 targets. Update insn attributes.
17744 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
17745 with *sse4_1_pextrd and *sse4_1_pextrq having const_0 selector.
17746 (*vec_extractv2di_1): Merge with *sse4_1_pextrq having
17747 const_1 selector.
17748 (*vec_extractv4si): Rename from *sse4_1_pextrd.
17749 (*vec_extractv4si_zext): Rename from *sse4_1_pextrd_zext.
17750 (*vec_extract<ssevecmodelower>_0 splitters): Merge splitters together.
17751
a986d468
OE
177522013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
17753
17754 PR target/57108
17755 * config/sh/sh.md (tstsi_t_zero_extract_eq): Use QIHISIDI mode iterator.
17756
382522cb
MK
177572013-05-06 Maxim Kuznetsov <maks.kuznetsov@gmail.com>
17758
17759 * final.c (do_assembler_dialects): Don't handle curly braces and
17760 vertical bar escaped by % as dialect delimiters.
17761 (output_asm_insn): Print curly braces and vertical bar if escaped
17762 by % and ASSEMBLER_DIALECT defined.
17763 * doc/tm.texi.in (ASSEMBLER_DIALECT): Document new standard escapes.
17764 * doc/tm.texi: Regenerated.
17765
fb0d5c60
SB
177662013-05-06 Steven Bosscher <steven@gcc.gnu.org>
17767
fb0d5c60
SB
17768 * config/mips/mips.c: Include tree-pass.h.
17769 (mips_reorg): Split in pre- and post-dbr_schedule parts.
17770 (mips_machine_reorg2): Move mips_reorg post-dbr_schedule parts here.
17771 (pass_mips_machine_reorg2): New machine specific pass.
17772 (insert_pass_mips_machine_reorg2): New pass plugin definition.
17773 (mips_option_override): Register the new pass.
17774 * rtl.h (cleanup_barriers): Remove prototype.
17775 (dbr_schedule): Likewise.
17776 * jump.c (cleanup_barriers): Make static.
17777 * reorg.c (dbr_schedule): Likewise.
17778
aa06a978
RB
177792013-05-06 Richard Biener <rguenther@suse.de>
17780
17781 PR tree-optimization/57185
17782 * tree-parloops.c (add_field_for_reduction): Handle anonymous
17783 SSA names properly.
17784
0b953bec
UB
177852013-05-06 Uros Bizjak <ubizjak@gmail.com>
17786
17787 PR target/57106
17788 * config/i386/i386.c (add_parameter_dependencies): Add dependence
17789 between "first_arg" and "insn", not "last" and "insn".
17790
28708525
WS
177912013-05-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17792
17793 * gimple-ssa-strength-reduction.c (slsr_process_phi): Re-enable.
17794 (find_candidates_in_block): Re-enable slsr_process_phi.
17795 (create_phi_basis): Fix double counting of candidate adjustment.
17796
0107dca2
RB
177972013-05-06 Richard Biener <rguenther@suse.de>
17798
17799 PR middle-end/57147
17800 * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): If
17801 the edge is also fallthru, preserve it and just clear the
17802 abnormal flag.
17803 * tree-cfgcleanup.c (remove_fallthru_edge): If the edge is
17804 also complex, preserve that and just clear the fallthru flag.
17805 * tree-inline.c (update_ssa_across_abnormal_edges): Also
17806 update virtual operands.
17807
470d4d13
AM
178082013-05-06 Alan Modra <amodra@gmail.com>
17809
17810 * config/rs6000/linux.h (DEFAULT_ASM_ENDIAN): Define.
17811 (LINK_OS_LINUX_EMUL): Use ENDIAN_SELECT.
17812 * config/rs6000/linux64.h (DEFAULT_ASM_ENDIAN): Define.
17813 * config/rs6000/sysv4le.h (DEFAULT_ASM_ENDIAN): Define.
17814 (LINK_TARGET_SPEC): Use ENDIAN_SELECT.
17815 * config/rs6000/sysv4.h (DEFAULT_ASM_ENDIAN): Define as -mbig.
17816
8f1dbf8d
AM
178172013-05-06 Alan Modra <amodra@gmail.com>
17818
17819 * config/rs6000/sysv4.h (ENDIAN_SELECT): Define, extracted from
17820 (ASM_SPEC): ..here. Emit DEFAULT_ASM_ENDIAN too.
17821 (DEFAULT_ASM_ENDIAN): Define.
17822 (CC1_SPEC, LINK_TARGET_SPEC): Use ENDIAN_SELECT.
17823 * config/rs6000/linux64.h (ASM_SPEC32): Remove endian options.
17824 Update -K PIC clause from sysv4.h.
17825 (ASM_SPEC_COMMON): Use ENDIAN_SELECT.
17826 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Likewise.
17827
54890767
AM
178282013-05-06 Alan Modra <amodra@gmail.com>
17829
17830 * config/rs6000/rs6000.md (bswapdi 2nd splitter): Don't swap words
17831 twice for little-endian.
17832 (ashrdi3_no_power, ashrdi3): Support little-endian.
17833
2353515d
OE
178342013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
17835
17836 PR target/55303
17837 * config/sh/sh.c (sh_rtx_costs): Handle SMIN and SMAX cases.
17838 * config/sh/sh.md (*clips, uminsi3, *clipu, clipu_one): New insns and
17839 related expanders.
17840 * config/sh/iterators.md (SMIN_SMAX): New code iterator.
17841 * config/sh/predicates.md (arith_reg_or_0_or_1_operand,
17842 clips_min_const_int, clips_max_const_int, clipu_max_const_int):
17843 New predicates.
17844
33e67557
SB
178452013-05-05 Steven Bosscher <steven@gcc.gnu.org>
17846 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17847
17848 * config.gcc (hppa*-*-*): Remove MASK_BIG_SWITCH from CPU default.
17849 * config/pa/pa.opt: Make mbig-switch a no-op.
17850 * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_BIG_SWITCH.
17851 (CASE_VECTOR_MODE): Always return SImode.
17852 (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove code
17853 for the !TARGET_BIG_SWITCH case.
17854 * config/pa/pa-linux.h: Likewise.
17855 * config/pa/pa-openbsd.h: Likewise.
17856 * config/pa/pa-hpux.h: Define TARGET_DEFAULT to 0.
17857 * config/pa/pa.md (short_jump): Remove define_insn.
17858 (casesi): Remove code for the !TARGET_BIG_SWITCH case.
17859 (casesi0): Remove define_insn.
17860 (type): Remove btable_branch.
17861 (pa_combine_type): Likewise.
17862 (in_nullified_branch_delay): Likewise.
17863 (in_call_delay): Likewise.
17864 (define_delay): Likewise.
17865 (define_insn_reservation "Z3"): Likewise.
17866 (define_insn_reservation "Z4"): Likewise.
17867 * config/pa/pa.c (pa_reorg): Remove code for !TARGET_BIG_SWITCH.
17868 (pa_adjust_insn_length): Remove adjustment for btable branches.
17869 * doc/invoke.texi (HPPA Options): Delete documentation for mbig-switch
17870 and mno-big-switch
17871
3095685e
UB
178722013-05-05 Uros Bizjak <ubizjak@gmail.com>
17873
17874 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
17875 from sse2_stored and *sse2_storeq_rex64 using SWI48 mode iterator.
17876 Add m->r,x alternatives.
17877 (*vec_extract<ssevecmodelower>_0 splitters): Merge V2DI and V4SI
17878 splitters using SWI48x mode iterator.
17879 (*vec_extract_v2di_0_sse): Rename from *sse2_storeq. Disable for
17880 TARGET_64BIT. Add m->x alternative.
17881 (*vec_extractv4si_mem): Rename from *vec_ext_v4si_mem.
17882 Add o->x alternative. Enable for TARGET_SSE.
17883 (sse_storeq): Remove expander.
17884 (*vec_extractv2di_1): Enable for TARGET_SSE. Split alternatives
17885 with memory input operand.
17886 (*vec_extractv2di_1 splitter): New.
17887 (*vec_extractv4sf_mem): Rename from *vec_extract_v4sf_mem.
17888 * config/i386/i386.md (ssevecmodelower): New mode attribute.
17889
4b36ae28
SB
178902013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
17891
17892 * config/rs6000/rs6000.c (INT_P): Reformat. Delete obsolete comment.
17893 (INT_LOWPART): Delete.
17894 (extract_MB): Adjust.
17895 (extract_ME): Adjust.
17896 (print_operand): Adjust.
17897
da226db2
SB
178982013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
17899
17900 * config/rs6000/predicates.md (reg_or_add_cint_operand,
17901 reg_or_sub_cint_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
17902 (reg_or_logical_cint_operand, easy_fp_constant,
17903 logical_const_operand): Delete "CONST_DOUBLE" case.
17904 * config/rs6000/rs6000.c (num_insns_constant_wide): Delete
17905 "HOST_BITS_PER_WIDE_INT == 64" test.
3095685e 17906 (num_insns_constant): Ditto. Delete CONST_DOUBLE DImode/VOIDmode case.
da226db2
SB
17907 (build_mask64_2_operands): Delete "HOST_BITS_PER_WIDE_INT >= 64" test.
17908 (rs6000_emit_set_const): Delete CONST_DOUBLE case.
17909 (rs6000_emit_set_long_const): Delete "HOST_BITS_PER_WIDE_INT >= 64"
17910 test.
17911 (includes_rldic_lshift_p, includes_rldicr_lshift_p): Delete
17912 CONST_DOUBLE DImode/VOIDmode case.
17913 (INT_P, INT_LOWPART): Delete CONST_DOUBLE case.
17914 (print_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case. Delete
17915 CONST_DOUBLE VOIDmode case.
17916 (output_toc): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
17917 (rs6000_rtx_costs): Delete CONST_DOUBLE DImode/VOIDmode case.
17918 * config/rs6000/rs6000.md (iordi3, xordi3, splitter for these):
17919 Delete CONST_DOUBLE case.
17920 (splitters for mov FMOVE64 const_double): Delete
17921 "HOST_BITS_PER_WIDE_INT == 32" case. Delete
17922 "HOST_BITS_PER_WIDE_INT >= 64" test.
17923 (splitter for mov DI const_int): Delete "HOST_BITS_PER_WIDE_INT == 32"
17924 case.
17925 (mov DI const_double): Delete.
17926
40de22d6
JJ
179272013-05-04 Jakub Jelinek <jakub@redhat.com>
17928
17929 * combine.c (combine_simplify_rtx) <case SUBREG>: If nonzero_bits
17930 on op shows all bits zero in mode of a lowpart subreg, return zero.
17931
5ec6aff2
MM
179322013-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
17933
17934 PR target/57150
17935 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Use DFmode
17936 to save TFmode registers and DImode to save TImode registers for
17937 caller save operations.
17938 (HARD_REGNO_CALL_PART_CLOBBERED): TFmode and TDmode do not need to
17939 mark being partially clobbered since they only use the first
17940 double word.
17941
17942 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): TFmode
17943 and TDmode only use the upper 64-bits of each VSX register.
17944
2cefad90
BS
179452013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17946
17947 * gimple-ssa-strength-reduction.c (slsr_process_phi): Disable.
17948 (find_candidates_in_block): Disable slsr_process_phi.
17949
d6d7eee1
GW
179502013-05-03 Guozhi Wei <carrot@google.com>
17951
17952 * coverage.c (coverage_obj_init): Move the construction of gcov
3095685e
UB
17953 constructor to ...
17954 (build_init_ctor): ... here.
d6d7eee1 17955
9b92d12b
BS
179562013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17957
17958 * gimple-ssa-strength-reduction.c (cand_kind): Add CAND_PHI.
17959 (slsr_cand_d): Redefine def_phi.
17960 (stride_status, phi_adjust_status, count_phis_status): New enums.
17961 (find_phi_def): New.
17962 (find_basis_for_base_expr): New.
17963 (find_basis_for_candidate): Handle hidden bases.
17964 (alloc_cand_and_find_basis): Handle phi candidates.
17965 (slsr_process_phi): New.
17966 (create_mul_ssa_cand): Exclude phi base candidates; use integer_onep.
17967 (create_mul_imm_cand): Likewise.
17968 (create_add_ssa_cand): Exclude phi base candidates.
17969 (create_add_imm_cand): Likewise.
17970 (slsr_process_cast): Likewise.
17971 (slsr_process_copy): Likewise.
17972 (find_candidates_in_block): Handle phi candidates.
17973 (dump_candidate): Likewise.
17974 (unconditional_cands): Delete.
17975 (unconditional_cands_with_known_stride_p): Delete.
17976 (phi_dependent_cand_p): New.
17977 (cand_increment): Handle phi-dependent candidates.
17978 (replace_dependent): Delete.
17979 (replace_mult_candidate): New.
17980 (replace_unconditional_candidate): New.
17981 (incr_vec_index): Move to avoid forward reference.
17982 (create_add_on_incoming_edge): New.
17983 (create_phi_basis): New.
17984 (replace_dependents): Delete.
17985 (replace_conditional_candidate): New.
17986 (phi_add_costs): New.
17987 (replace_uncond_cands_and_profitable_phis): New.
17988 (record_increment): Handle phi adjustments.
17989 (record_phi_increments): New.
17990 (record_increments): Handle phi adjustments.
17991 (phi_incr_cost): New.
17992 (lowest_cost_path): Handle phis.
17993 (total_savings): Likewise.
17994 (analyze_increments): Likewise.
17995 (ncd_with_phi): New.
17996 (ncd_of_cand_and_phis): New.
17997 (nearest_common_dominator_for_cands): Handle phi increments.
17998 (all_phi_incrs_profitable): New.
17999 (replace_profitable_candidates): Handle phi-dependent candidates.
18000 (analyze_candidates_and_replace): Likewise.
18001
68f073d4
TJ
180022013-05-03 Teresa Johnson <tejohnson@google.com>
18003
18004 PR bootstrap/57154
18005 * sched-rgn.c (compute_dom_prob_ps): Ensure accumulated probabilities
18006 do not exceed REG_BR_PROB_BASE.
18007
a4ee7cb9
JL
180082013-05-03 Jeff Law <law@redhat.com>
18009
ade67f70 18010 PR tree-optimization/57144
a4ee7cb9
JL
18011 * tree-vrp.c (simplify_cond_using_ranges): Verify the constant
18012 operand of the condition will bit into the new type when eliminating
18013 a cast feeding a condition.
18014
47954c4e
JJ
180152013-05-03 Jakub Jelinek <jakub@redhat.com>
18016
18017 PR rtl-optimization/57130
3095685e
UB
18018 * combine.c (make_compound_operation) <case SUBREG>: Pass SET instead
18019 of COMPARE as in_code to the recursive call if needed.
47954c4e 18020
3c21604f
UB
180212013-05-03 Uros Bizjak <ubizjak@gmail.com>
18022
18023 * config/i386/i386.md (isa): Add x64_sse4_noavx and x64_avx members.
18024 (enabled): Handle new members.
18025 * config/i386/sse.md (*vec_concatv2si): Merge from
18026 *vec_concatv2si_sse2 and vec_concatv2si_sse.
18027 (vec_concatv2di): Merge with *vec_concatv2di_rex64.
18028
12211b99 180292013-05-03 Joern Rennecke <joern.rennecke@embecosm.com>
95c03b36
JR
18030
18031 PR tree-optimization/57027
18032 * tree-ssa-math-opts.c (convert_mult_to_fma): When checking
18033 for fnms opportunity, check we got the prerequisite kind
18034 of tree / gimple before using accessor functions.
18035
07bfc9ec
RB
180362013-05-03 Richard Biener <rguenther@suse.de>
18037
18038 * double-int.h (lshift): New overload without precision
18039 and arith argument.
18040 (operator *=, operator +=, operator -=): Move ...
18041 * double-int.c (operator *=, operator +=, operator -=): ... here
18042 and implement more efficiently.
18043 (mul_double_with_sign): Remove.
18044 (lshift_double): Adjust to take unsinged shift argument, push
18045 dispatching code to callers.
18046 (mul_double_wide_with_sign): Add early out for callers that
18047 are not interested in high parts or overflow.
18048 (lshift): New function.
18049 (lshift, rshift, alshift, arshift, llshift, lrshift): Add
18050 dispatch code here.
18051 (lrotate, rrotate): Use logical shifts.
18052 * expr.c (get_inner_reference): Use lshift.
18053 * fixed-value.c (do_fixed_divide): Likewise.
18054 * tree-dfa.c (get_ref_base_and_extent): Likewise.
18055 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
18056 (indirect_refs_may_alias_p): Likewise.
18057 (stmt_kills_ref_p_1): Likewise.
18058
7769bb64
VP
180592013-05-03 Vidya Praveen <vidyapraveen@arm.com>
18060
18061 * config/aarch64/aarch64-simd.md (simd_fabd): Correct the description.
18062
1d0c8e5c
VP
180632013-05-03 Vidya Praveen <vidyapraveen@arm.com>
18064
18065 * config/aarch64/aarch64-simd.md (*fabd_scalar<mode>3): Support
18066 scalar form of FABD instruction.
18067
f15feaf9
VM
180682013-05-02 Vladimir Makarov <vmakarov@redhat.com>
18069
18070 * lra-constraints.c (process_alt_operands): Add checking alt
18071 number to choose the best alternative.
18072
d90e76d4
RB
180732013-05-02 Richard Biener <rguenther@suse.de>
18074
18075 * tree-eh.c (cleanup_empty_eh_merge_phis): Remove rename_virts
18076 bitmap and its handling.
18077 (pass_cleanup_eh): Set todo_flags_finish to TODO_verify_ssa.
18078
9f8e7a96
RB
180792013-05-02 Richard Biener <rguenther@suse.de>
18080
18081 PR middle-end/57140
18082 * tree-inline.c (copy_loops): Properly handle removed loops.
18083 (copy_cfg_body): Mark destination loops for fixup if source
18084 loops needed fixup.
18085
f3a81b39
GY
180862013-05-02 Greta Yorsh <Greta.Yorsh@arm.com>
18087
18088 PR target/56732
18089 * config/arm/arm.c (arm_expand_epilogue): Check really_return before
18090 generating simple_return for naked functions.
18091
7b920a9a
MJ
180922013-05-02 Martin Jambor <mjambor@suse.cz>
18093
18094 PR middle-end/56988
18095 * ipa-prop.h (ipa_agg_replacement_value): New flag by_ref.
18096 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also check that by_ref
18097 flags match.
18098 (find_aggregate_values_for_callers_subset): Fill in the by_ref flag of
18099 ipa_agg_replacement_value structures.
18100 (known_aggs_to_agg_replacement_list): Likewise.
18101 * ipa-prop.c (write_agg_replacement_chain): Stream by_ref flag.
18102 (read_agg_replacement_chain): Likewise.
18103 (ipcp_transform_function): Also check that by_ref flags match.
18104
2c41c19d
RB
181052013-05-02 Richard Biener <rguenther@suse.de>
18106
18107 * graphds.h (struct graph): Add obstack member.
18108 * graphds.c (new_graph): Initialize obstack and allocate
18109 vertices from it.
18110 (add_edge): Allocate edge from the obstack.
3c21604f 18111 (free_graph): Free the obstack instead of all edges and vertices.
2c41c19d 18112
8b47039c
TJ
181132013-05-02 Teresa Johnson <tejohnson@google.com>
18114
18115 * loop-unswitch.c (unswitch_loop): Use helper routines with rounding
18116 divides.
18117 * cfg.c (update_bb_profile_for_threading): Ditto.
18118 * tree-inline.c (copy_bb): Ditto.
18119 (copy_edges_for_bb): Ditto.
18120 (initialize_cfun): Ditto.
18121 (copy_cfg_body): Ditto.
18122 (expand_call_inline): Ditto.
18123 * ipa-inline-analysis.c (estimate_edge_size_and_time): Ditto.
18124 (estimate_node_size_and_time): Ditto.
18125 (inline_merge_summary): Ditto.
18126 * cgraphclones.c (cgraph_clone_edge): Ditto.
18127 (cgraph_clone_node): Ditto.
18128 * sched-rgn.c (compute_dom_prob_ps): Ditto.
18129 (compute_trg_info): Ditto.
18130
da65928c
IB
181312013-05-02 Ian Bolton <ian.bolton@arm.com>
18132
18133 * config/aarch64/aarch64.md (movsi_aarch64): Only allow to/from
18134 S reg when fp attribute set.
18135 (movdi_aarch64): Only allow to/from D reg when fp attribute set.
18136
add3c965
IB
181372013-05-02 Ian Bolton <ian.bolton@arm.com>
18138
18139 * config/aarch64/aarch64.md (*and_one_cmpl<mode>3_compare0):
18140 New pattern.
18141 (*and_one_cmplsi3_compare0_uxtw): Likewise.
18142 (*and_one_cmpl_<SHIFT:optab><mode>3_compare0): Likewise.
18143 (*and_one_cmpl_<SHIFT:optab>si3_compare0_uxtw): Likewise.
18144
fdd43ac4
RB
181452013-05-02 Richard Biener <rguenther@suse.de>
18146
18147 * tree-scalar-evolution.c (scev_info_hasher): Remove.
18148 (struct instantiate_cache_entry): New type.
18149 (struct instantiate_cache_entry_hasher): New hashtable descriptor.
18150 (struct instantiate_cache_type): New type.
18151 (set_instantiated_value, get_instantiated_value): Remove.
18152 (get_instantiated_value_entry): New function.
18153 (instantiate_scev_name): Use the new cache and adjust.
18154 (instantiate_scev_poly): Adjust.
18155 (instantiate_scev_binary): Likewise.
18156 (instantiate_array_ref): Likewise.
18157 (instantiate_scev_convert): Likewise.
18158 (instantiate_scev_not): Likewise.
18159 (instantiate_scev_3): Likewise.
18160 (instantiate_scev_2): Likewise.
18161 (instantiate_scev_r): Likewise.
18162 (instantiate_scev): Likewise.
18163 (resolve_mixers): Likewise.
18164
36ff9dfb
VM
181652013-05-01 Vladimir Makarov <vmakarov@redhat.com>
18166
18167 PR target/57091
18168 * lra-constraints.c (best_small_class_operands_num): Remove.
18169 (process_alt_operands): Remove small_class_operands_num. Take
18170 small classes operands into losers and only if the operand is not
18171 matched. Modify debugging output.
18172 (curr_insn_transform): Remove best_small_class_operands_num.
18173 Print insn name.
18174
36054fab
JG
181752013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18176
18177 * config/aarch64/aarch64-builtins.c
18178 (aarch64_gimple_fold_builtin.c): Fold more modes for reduc_splus_.
18179 * config/aarch64/aarch64-simd-builtins.def
18180 (reduc_splus_): Add new modes.
18181 (reduc_uplus_): New.
18182 * config/aarch64/aarch64-simd.md (aarch64_addvv4sf): Remove.
18183 (reduc_uplus_v4sf): Likewise.
18184 (reduc_splus_v4sf): Likewise.
18185 (aarch64_addv<mode>): Likewise.
18186 (reduc_uplus_<mode>): Likewise.
18187 (reduc_splus_<mode>): Likewise.
18188 (aarch64_addvv2di): Likewise.
18189 (reduc_uplus_v2di): Likewise.
18190 (reduc_splus_v2di): Likewise.
18191 (aarch64_addvv2si): Likewise.
18192 (reduc_uplus_v2si): Likewise.
18193 (reduc_splus_v2si): Likewise.
18194 (reduc_<sur>plus_<mode>): New.
18195 (reduc_<sur>plus_v2di): Likewise.
18196 (reduc_<sur>plus_v2si): Likewise.
18197 (reduc_<sur>plus_v4sf): Likewise.
18198 (aarch64_addpv4sf): Likewise.
18199 * config/aarch64/arm_neon.h
18200 (vaddv<q>_<s,u,f><8, 16, 32, 64): Rewrite using builtins.
18201 * config/aarch64/iterators.md (unspec): Remove UNSPEC_ADDV,
18202 add UNSPEC_SADDV, UNSPEC_UADDV.
18203 (SUADDV): New.
18204 (sur): Add UNSPEC_SADDV, UNSPEC_UADDV.
18205
6dce23a8
JG
182062013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18207
18208 * config/aarch64/arm_neon.h
18209 (v<max,min><nm><q><v>_<sfu><8, 16, 32, 64>): Rewrite using builtins.
18210
1598945b
JG
182112013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18212
18213 * config/aarch64/aarch64-builtins
18214 (aarch64_gimple_fold_builtin): Fold reduc_<su><maxmin>_ builtins.
18215
998eaf97
JG
182162013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18217
18218 * config/aarch64/aarch64-simd-builtins.def
18219 (reduc_smax_): New.
18220 (reduc_smin_): Likewise.
18221 (reduc_umax_): Likewise.
18222 (reduc_umin_): Likewise.
18223 (reduc_smax_nan_): Likewise.
18224 (reduc_smin_nan_): Likewise.
18225 (fmax): Remove.
18226 (fmin): Likewise.
18227 (smax): Update for V2SF, V4SF and V2DF modes.
18228 (smin): Likewise.
18229 (smax_nan): New.
18230 (smin_nan): Likewise.
18231 * config/aarch64/aarch64-simd.md (<maxmin><mode>3): Rename to...
18232 (<su><maxmin><mode>3): ...This, refactor.
18233 (s<maxmin><mode>3): New.
18234 (<maxmin_uns><mode>3): Likewise.
18235 (reduc_<maxmin_uns>_<mode>): Refactor.
18236 (reduc_<maxmin_uns>_v4sf): Likewise.
18237 (reduc_<maxmin_uns>_v2si): Likewise.
18238 (aarch64_<fmaxmin><mode>: Remove.
18239 * config/aarch64/arm_neon.h (vmax<q>_f<32,64>): Rewrite to use
18240 new builtin names.
18241 (vmin<q>_f<32,64>): Likewise.
18242 * config/iterators.md (unspec): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
18243 (FMAXMIN): New.
18244 (su): Add mappings for smax, smin, umax, umin.
18245 (maxmin): New.
18246 (FMAXMINV): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
18247 (FMAXMIN): Rename as...
18248 (FMAXMIN_UNS): ...This.
18249 (maxminv): Remove.
18250 (fmaxminv): Likewise.
18251 (fmaxmin): Likewise.
18252 (maxmin_uns): New.
18253 (maxmin_uns_op): Likewise.
18254
bd11644e
JG
182552013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18256
18257 * config/aarch64/arm_neon.h
18258 (vac<ge, gt><sd>_f<32, 64>): Rename to...
18259 (vca<ge, gt><sd>_f<32, 64>): ...this, reimpliment in C.
18260 (vca<ge, gt, lt, le><q>_f<32, 64>): Reimpliment in C.
18261
75dd5ace
JG
182622013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18263
18264 * config/aarch64/aarch64-simd.md (*aarch64_fac<optab><mode>): New.
18265 * config/aarch64/iterators.md (FAC_COMPARISONS): New.
18266
7c19979f
JG
182672013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18268
18269 * config/aarch64/aarch64-simd.md
18270 (vcond<mode>_internal): Handle special cases for constant masks.
18271 (vcond<mode><mode>): Allow nonmemory_operands for outcome vectors.
18272 (vcondu<mode><mode>): Likewise.
18273 (vcond<v_cmp_result><mode>): New.
18274
bb60efd9
JG
182752013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18276
18277 * config/aarch64/aarch64-builtins.c (BUILTIN_VALLDI): Define.
18278 (aarch64_fold_builtin): Add folding for cm<eq,ge,gt,tst>.
18279 * config/aarch64/aarch64-simd-builtins.def
18280 (cmeq): Update to BUILTIN_VALLDI.
18281 (cmgt): Likewise.
18282 (cmge): Likewise.
18283 (cmle): Likewise.
18284 (cmlt): Likewise.
18285 * config/aarch64/arm_neon.h
18286 (vc<eq, lt, le, gt, ge, tst><z><qsd>_<fpsu><8,16,32,64>): Remap
18287 to builtins or C as appropriate.
18288
889b9412
JG
182892013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18290
18291 * config/aarch64/aarch64-simd-builtins.def (cmhs): Rename to...
18292 (cmgeu): ...This.
18293 (cmhi): Rename to...
18294 (cmgtu): ...This.
18295 * config/aarch64/aarch64-simd.md
18296 (simd_mode): Add SF.
18297 (aarch64_vcond_internal): Use new names for unsigned comparison insns.
18298 (aarch64_cm<optab><mode>): Rewrite to not use UNSPECs.
18299 * config/aarch64/aarch64.md (*cstore<mode>_neg): Rename to...
18300 (cstore<mode>_neg): ...This.
18301 * config/aarch64/iterators.md
18302 (VALLF): new.
18303 (unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>.
18304 (COMPARISONS): New.
18305 (UCOMPARISONS): Likewise.
18306 (optab): Add missing comparisons.
18307 (n_optab): New.
18308 (cmp_1): Likewise.
18309 (cmp_2): Likewise.
18310 (CMP): Likewise.
18311 (cmp): Remove.
18312 (VCMP_S): Likewise.
18313 (VCMP_U): Likewise.
18314 (V_cmp_result): Add DF, SF modes.
18315 (v_cmp_result): Likewise.
18316 (v): Likewise.
18317 (vmtype): Likewise.
18318 * config/aarch64/predicates.md (aarch64_reg_or_fp_zero): New.
18319
0a7dbb76
GY
183202013-05-01 Greta Yorsh <Greta.Yorsh@arm.com>
18321
18322 * config/arm/thumb2.md (thumb2_smaxsi3,thumb2_sminsi3): Convert
18323 define_insn to define_insn_and_split.
18324 (thumb32_umaxsi3,thumb2_uminsi3): Likewise.
18325 (thumb2_negdi2,thumb2_abssi2,thumb2_neg_abssi2): Likewise.
18326 (thumb2_mov_scc,thumb2_mov_negscc,thumb2_mov_notscc): Likewise.
18327 (thumb2_movsicc_insn,thumb2_and_scc,thumb2_ior_scc): Likewise.
18328 (thumb2_negscc): Likewise.
18329
fb614ca6
GY
183302013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
18331
18332 * config/arm/thumb2.md (thumb2_incscc, thumb2_decscc): Delete.
18333
9e64a0bf
GY
183342013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
18335
18336 * config/arm/thumb2.md: Remove trailing whitespaces.
18337
d6b28156
RS
183382013-04-30 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
18339
18340 * explow.c (plus_constant): Pass "mode" to immed_double_int_const.
18341 Use gen_int_mode rather than GEN_INT.
18342
f91674c3
L
183432013-04-30 H.J. Lu <hongjiu.lu@intel.com>
18344
b0dec607 18345 * value-prof.c (stream_in_histogram_value): Remove the strayed
f91674c3
L
18346 debug_gimple_stmt.
18347
3551257c
RB
183482013-04-30 Richard Biener <rguenther@suse.de>
18349
18350 PR middle-end/57122
3c21604f 18351 * cfghooks.c (split_edge): Properly check for the loop latch edge.
3551257c 18352
4c1aff1c
RB
183532013-04-30 Richard Biener <rguenther@suse.de>
18354
18355 PR middle-end/57107
18356 * tree-eh.c (sink_clobbers): Preserve virtual SSA form.
18357
54b8379a
AB
183582013-04-30 Andrey Belevantsev <abel@ispras.ru>
18359
18360 PR rtl-optimization/56957
18361 PR rtl-optimization/57105
54b8379a
AB
18362 * sel-sched.c (move_op_orig_expr_found): Remove insn_emitted
18363 variable. Use just INSN_UID for determining whether an insn
18364 should be only disconnected from the insn stream.
18365 * sel-sched-ir.h (EXPR_WAS_CHANGED): Remove.
18366
abc27962
JJ
183672013-04-30 Jakub Jelinek <jakub@redhat.com>
18368
18369 PR tree-optimization/57104
18370 * tsan.c (instrument_expr): Don't instrument accesses to
18371 DECL_HARD_REGISTER VAR_DECLs.
18372
0fc822d0
RB
183732013-04-30 Richard Biener <rguenther@suse.de>
18374
18375 * function.h (loops_for_fn): New inline function.
18376 (set_loops_for_fn): Likewise.
18377 * cfgloop.h (place_new_loop): Add struct function parameter.
18378 (get_loop): Likewise.
18379 (get_loops): Likewise.
18380 (number_of_loops): Likewise.
18381 (fel_next): Adjust.
18382 (fel_init): Likewise.
18383 * cfg.c (get_loop_copy): Adjust.
18384 * cfgloop.c (flow_loops_dump): Likewise.
18385 (record_loop_exits): Likewise.
18386 (verify_loop_structure): Likewise.
18387 * cfgloopanal.c (mark_irreducible_loops): Likewise.
18388 (estimate_reg_pressure_cost): Likewise.
18389 (mark_loop_exit_edges): Likewise.
18390 * cfgloopmanip.c (place_new_loop): Likewise.
18391 (add_loop): Likewise.
18392 (duplicate_loop): Likewise.
18393 * graph.c (draw_cfg_nodes): Likewise.
18394 * graphite-clast-to-gimple.c (translate_clast_user): Likewise.
18395 * graphite-sese-to-poly.c (build_scop_scattering): Likewise.
18396 (extract_affine_chrec): Likewise.
18397 (build_scop_iteration_domain): Likewise.
18398 * graphite.c (graphite_initialize): Likewise.
18399 * ira-build.c (create_loop_tree_nodes): Likewise.
18400 (more_one_region_p): Likewise.
18401 (rebuild_regno_allocno_maps): Likewise.
18402 (mark_loops_for_removal): Likewise.
18403 (mark_all_loops_for_removal): Likewise.
18404 (remove_unnecessary_regions): Likewise.
18405 (ira_build): Likewise.
18406 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
18407 * loop-init.c (fix_loop_structure): Likewise.
18408 (gate_rtl_move_loop_invariants): Likewise.
18409 (gate_rtl_unswitch): Likewise.
18410 (gate_rtl_unroll_and_peel_loops): Likewise.
18411 (rtl_doloop): Likewise.
18412 * lto-streamer-in.c (input_cfg): Likewise.
18413 * lto-streamer-out.c (output_cfg): Likewise.
18414 * modulo-sched.c (sms_schedule): Likewise.
18415 * predict.c (tree_estimate_probability): Likewise.
18416 (tree_estimate_probability_driver): Likewise.
18417 (estimate_loops): Likewise.
18418 * tree-cfg.c (fixup_loop_arrays_after_move): Likewise.
18419 (move_sese_region_to_fn): Likewise.
18420 (debug_loop_num): Likewise.
18421 * tree-chrec.c (chrec_evaluate): Likewise.
18422 (hide_evolution_in_other_loops_than_loop): Likewise.
18423 (chrec_component_in_loop_num): Likewise.
18424 (reset_evolution_in_loop): Likewise.
18425 (evolution_function_is_invariant_rec_p): Likewise.
18426 * tree-if-conv.c (main_tree_if_conversion): Likewise.
18427 * tree-inline.c (copy_loops): Likewise.
18428 (copy_cfg_body): Likewise.
18429 (tree_function_versioning): Likewise.
18430 * tree-loop-distribution.c (rdg_flag_loop_exits): Likewise.
18431 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
18432 Likewise.
18433 (add_to_evolution_1): Likewise.
18434 (scev_const_prop): Likewise.
18435 * tree-scalar-evolution.h (get_chrec_loop): Likewise.
18436 * tree-ssa-loop-ch.c (copy_loop_headers): Likewise.
18437 * tree-ssa-loop-im.c (analyze_memory_references): Likewise.
18438 (tree_ssa_lim_initialize): Likewise.
18439 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Likewise.
18440 (verify_loop_closed_ssa): Likewise.
18441 * tree-ssa-loop.c (tree_ssa_loop_init): Likewise.
18442 (tree_ssa_loop_im): Likewise.
18443 (tree_ssa_loop_unswitch): Likewise.
18444 (tree_vectorize): Likewise.
18445 (check_data_deps): Likewise.
18446 (tree_ssa_loop_ivcanon): Likewise.
18447 (tree_ssa_loop_bounds): Likewise.
18448 (tree_complete_unroll): Likewise.
18449 (tree_complete_unroll_inner): Likewise.
18450 (tree_parallelize_loops): Likewise.
18451 (tree_ssa_loop_prefetch): Likewise.
18452 (tree_ssa_loop_ivopts): Likewise.
18453 * tree-ssa.c (execute_update_addresses_taken): Liekwise.
18454 * tree-vectorizer.c (vectorize_loops): Likewise.
18455
37953bd3
MF
184562013-04-29 Mike Frysinger <vapier@gentoo.org>
18457
18458 * config/arm/bpabi.h (EABI_LINK_SPEC): Define.
18459 (BPABI_LINK_SPEC): Use new EABI_LINK_SPEC.
18460 * config/arm/linux-eabi.h (LINK_SPEC): Replace BE8_LINK_SPEC
18461 with EABI_LINK_SPEC.
18462
f9ed28db
UB
184632013-04-29 Uros Bizjak <ubizjak@gmail.com>
18464
18465 PR target/44578
18466 * config/i386/i386.md (*zero_extendsidi2): Add "!" to m->?*y
18467 alternative.
18468
deca73f5
VM
184692013-04-29 Vladimir Makarov <vmakarov@redhat.com>
18470
18471 PR target/57097
37953bd3 18472 * lra-constraints.c (process_alt_operands): Discourage a bit more
deca73f5
VM
18473 using memory for pseudos. Print cost dump for alternatives.
18474 Modify cost values for conflicts with early clobbers.
18475 (curr_insn_transform): Spill pseudos reassigned to NO_REGS.
18476
fdca7d03
UB
184772013-04-29 Uros Bizjak <ubizjak@gmail.com>
18478
18479 PR target/57098
18480 * config/i386/i386.c (ix86_expand_vec_perm): Validize constant memory.
18481
0b064172
IB
184822013-04-29 Ian Bolton <ian.bolton@arm.com>
18483
18484 * config/aarch64/aarch64.md (movsi_aarch64): Support LDR/STR
18485 from/to S register.
18486 (movdi_aarch64): Support LDR/STR from/to D register.
18487
473cec55
IB
184882013-04-29 Ian Bolton <ian.bolton@arm.com>
18489
18490 * common/config/aarch64/aarch64-common.c: Enable REE pass at O2
18491 or higher by default.
18492
a6f30e66
RB
184932013-04-29 Richard Biener <rguenther@suse.de>
18494
18495 PR middle-end/57075
18496 * tree-inline.c (copy_edges_for_bb): Still split the bbs,
18497 even if not adding abnormal edges for calls that can make
18498 abnormal gotos.
18499
0c2b2040
RB
185002013-04-29 Richard Biener <rguenther@suse.de>
18501
18502 PR middle-end/57103
18503 * tree-cfg.c (move_stmt_op): Fix condition under which to update
18504 TREE_BLOCK.
18505 (move_stmt_r): Remove redundant checking.
18506
f41f80f9
TJ
185072013-04-29 Teresa Johnson <tejohnson@google.com>
18508
18509 PR bootstrap/57077
18510 * basic-block.h (apply_scale): New function.
18511 (apply_probability): Use apply_scale.
18512 * gimple-streamer-in.c (input_bb): Ditto.
18513 * lto-streamer-in.c (input_cfg): Ditto.
18514 * lto-cgraph.c (merge_profile_summaries): Ditto.
18515 * tree-optimize.c (execute_fixup_cfg): Ditto.
fdca7d03 18516 * tree-inline.c (copy_bb): Update comment to use apply_scale.
f41f80f9
TJ
18517 (copy_edges_for_bb): Ditto.
18518 (copy_cfg_body): Ditto.
18519
315bbd2e
TV
185202013-04-29 Tom de Vries <tom@codesourcery.com>
18521
18522 * tree-ssa-tail-merge.c (find_same_succ_bb): Skip loop latch bbs.
18523 (replace_block_by): Don't set LOOPS_NEED_FIXUP.
18524 (tail_merge_optimize): Handle current_loops == NULL.
18525
ebbd90d8
JL
185262013-04-26 Jeff Law <law@redhat.com>
18527
18528 * tree-vrp.c (range_fits_type_p): Move to earlier point in file.
18529 (simplify_cond_using_ranges): Generalize code to simplify
18530 COND_EXPRs where one argument is a constant and the other
18531 is an SSA_NAME created by an integral type conversion.
18532
8b9b57eb
KT
185332013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18534
18535 * config/arm/arm.md (store_minmaxsi): Use only when
18536 optimize_insn_for_size_p.
18537
9498e5dc
CB
185382013-04-29 Christian Bruel <christian.bruel@st.com>
18539
18540 PR target/57108
18541 * sh.md (tstsi_t_zero_extract_eq): Set mode for operand 0.
18542
6093bc06
RB
185432013-04-29 Richard Biener <rguenther@suse.de>
18544
18545 PR middle-end/57089
fdca7d03
UB
18546 * omp-low.c (expand_omp_taskreg): If the parent function had a broken
18547 loop tree make sure to schedule a fixup for the child as well.
6093bc06
RB
18548 (expand_omp_for_generic): Properly add loops.
18549 (expand_omp_for_static_nochunk): Likewise.
18550 (expand_omp_for_static_chunk): Likewise.
18551 (expand_omp_for): For the degenerate case fixup loops.
18552 (expand_omp_sections): Fix default bb placement in loops.
18553 (expand_omp_atomic_pipeline): Properly add loops.
18554
84aacbfd
KT
185552013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18556
18557 * predict.c: Fix typo in comment above #define PROB_VERY_UNLIKELY.
18558
8dee4479
TV
185592013-04-29 Tom de Vries <tom@codesourcery.com>
18560
18561 * tree-ssa-tail-merge.c: Update header comment.
18562
47934dc4
JG
185632013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18564
18565 * config/aarch64/arm_neon.h
18566 (vcvt<sd>_f<32,64>_s<32,64>): Rewrite in C.
18567 (vcvt<q>_f<32,64>_s<32,64>): Rewrite using builtins.
18568 (vcvt_<high_>_f<32,64>_f<32,64>): Likewise.
18569 (vcvt<qsd>_<su><32,64>_f<32,64>): Likewise.
18570 (vcvta<qsd>_<su><32,64>_f<32,64>): Likewise.
18571 (vcvtm<qsd>_<su><32,64>_f<32,64>): Likewise.
18572 (vcvtn<qsd>_<su><32,64>_f<32,64>): Likewise.
18573 (vcvtp<qsd>_<su><32,64>_f<32,64>): Likewise.
18574
384be29f
JG
185752013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18576
18577 * config/aarch64/aarch64-simd.md
18578 (<optab><VDQF:mode><fcvt_target>2): New, maps to fix, fixuns.
18579 (<fix_trunc_optab><VDQF:mode><fcvt_target>2): New, maps to
18580 fix_trunc, fixuns_trunc.
18581 (ftrunc<VDQF:mode>2): New.
18582 * config/aarch64/iterators.md (optab): Add fix, fixuns.
18583 (fix_trunc_optab): New.
18584
0386b123
JG
185852013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18586
18587 * config/aarch64/aarch64-builtins.c
18588 (aarch64_builtin_vectorized_function): Vectorize over ifloorf,
18589 iceilf, lround, iroundf.
18590
00fcb892
UB
185912013-04-29 Uros Bizjak <ubizjak@gmail.com>
18592
18593 PR target/54349
18594 * config/i386/i386.h (enum ix86_tune_indices)
18595 <X86_TUNE_INTER_UNIT_MOVES_TO_VEC, X86_TUNE_INTER_UNIT_MOVES_FROM_VEC>:
18596 New, split from X86_TUNE_INTER_UNIT_MOVES.
18597 <X86_TUNE_INTER_UNIT_MOVES>: Remove.
18598 (TARGET_INTER_UNIT_MOVES_TO_VEC): New define.
18599 (TARGET_INTER_UNIT_MOVES_FROM_VEC): Ditto.
18600 (TARGET_INTER_UNIT_MOVES): Remove.
18601 * config/i386/i386.c (initial_ix86_tune_features): Update.
18602 Disable X86_TUNE_INTER_UNIT_MOVES_FROM_VEC for m_ATHLON_K8 only.
18603 (ix86_expand_convert_uns_didf_sse): Use
18604 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
18605 (ix86_expand_vector_init_one_nonzero): Ditto.
18606 (ix86_expand_vector_init_interleave): Ditto.
18607 (inline_secondary_memory_needed): Return true for moves from SSE class
18608 registers for !TARGET_INTER_UNIT_MOVES_FROM_VEC targets and for moves
18609 to SSE class registers for !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
18610 * config/i386/constraints.md (Yi, Ym): Depend on
18611 TARGET_INTER_UNIT_MOVES_TO_VEC.
18612 (Yj, Yn): New constraints.
18613 * config/i386/i386.md (*movdi_internal): Change constraints of
18614 operand 1 from Yi to Yj and from Ym to Yn.
18615 (*movsi_internal): Ditto.
18616 (*movdf_internal): Ditto.
18617 (*movsf_internal): Ditto.
18618 (*float<SWI48x:mode><X87MODEF:mode>2_1): Use
18619 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
18620 (*float<SWI48x:mode><X87MODEF:mode>2_1 splitters): Ditto.
18621 (floatdi<X87MODEF:mode>2_i387_with_xmm): Ditto.
18622 (floatdi<X87MODEF:mode>2_i387_with_xmm splitters): Ditto.
18623 * config/i386/sse.md (movdi_to_sse): Ditto.
18624 (sse2_stored): Change constraint of operand 1 from Yi to Yj.
18625 Use TARGET_INTER_UNIT_MOVES_FROM_VEC instead of
18626 TARGET_INTER_UNIT_MOVES.
18627 (sse_storeq_rex64): Change constraint of operand 1 from Yi to Yj.
18628 (sse_storeq_rex64 splitter): Use TARGET_INTER_UNIT_MOVES_FROM_VEC
18629 instead of TARGET_INTER_UNIT_MOVES.
18630 * config/i386/mmx.md (*mov<mode>_internal): Change constraint of
18631 operand 1 from Yi to Yj and from Ym to Yn.
18632
4c871069
JG
186332013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18634
18635 * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi_): New.
18636 (float_truncate_hi_): Likewise.
18637 (float_extend_lo_): Likewise.
18638 (float_truncate_lo_): Likewise.
18639 * config/aarch64/aarch64-simd.md (vec_unpacks_lo_v4sf): New.
18640 (aarch64_float_extend_lo_v2df): Likewise.
18641 (vec_unpacks_hi_v4sf): Likewise.
18642 (aarch64_float_truncate_lo_v2sf): Likewise.
18643 (aarch64_float_truncate_hi_v4sf): Likewise.
18644 (vec_pack_trunc_v2df): Likewise.
18645 (vec_pack_trunc_df): Likewise.
18646
1709ff9b
JG
186472013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18648
18649 * config/aarch64/aarch64-builtins.c
18650 (aarch64_fold_builtin): Fold float conversions.
18651 * config/aarch64/aarch64-simd-builtins.def
18652 (floatv2si, floatv4si, floatv2di): New.
18653 (floatunsv2si, floatunsv4si, floatunsv2di): Likewise.
18654 * config/aarch64/aarch64-simd.md
18655 (<optab><fcvt_target><VDQF:mode>2): New, expands to float and floatuns.
18656 * config/aarch64/iterators.md (FLOATUORS): New.
18657 (optab): Add float, floatuns.
18658 (su_optab): Likewise.
18659
ce966824
JG
186602013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18661
18662 * config/aarch64/aarch64-builtins.c
18663 (aarch64_builtin_vectorized_function): Use new names for
18664 fcvt builtins.
18665 * config/aarch64/aarch64-simd-builtins.def (fcvtzs): Split as...
18666 (lbtruncv2sf, lbtruncv4sf, lbtruncv2df): ...This.
18667 (fcvtzu): Split as...
18668 (lbtruncuv2sf, lbtruncuv4sf, lbtruncuv2df): ...This.
18669 (fcvtas): Split as...
18670 (lroundv2sf, lroundv4sf, lroundv2df, lroundsf, lrounddf): ...This.
18671 (fcvtau): Split as...
18672 (lrounduv2sf, lrounduv4sf, lrounduv2df, lroundusf, lroundudf): ...This.
18673 (fcvtps): Split as...
18674 (lceilv2sf, lceilv4sf, lceilv2df): ...This.
18675 (fcvtpu): Split as...
18676 (lceiluv2sf, lceiluv4sf, lceiluv2df, lceilusf, lceiludf): ...This.
18677 (fcvtms): Split as...
18678 (lfloorv2sf, lfloorv4sf, lfloorv2df): ...This.
18679 (fcvtmu): Split as...
18680 (lflooruv2sf, lflooruv4sf, lflooruv2df, lfloorusf, lfloorudf): ...This.
18681 (lfrintnv2sf, lfrintnv4sf, lfrintnv2df, lfrintnsf, lfrintndf): New.
18682 (lfrintnuv2sf, lfrintnuv4sf, lfrintnuv2df): Likewise.
18683 (lfrintnusf, lfrintnudf): Likewise.
18684 * config/aarch64/aarch64-simd.md
18685 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Convert to
18686 define_insn.
18687 (aarch64_fcvt<frint_suffix><su><mode>): Remove.
18688 * config/aarch64/iterators.md (FCVT): Include UNSPEC_FRINTN.
18689 (fcvt_pattern): Likewise.
18690
b9de24fe
JG
186912013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18692
18693 * config/aarch64/aarch64-simd.md
18694 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Rename to...
18695 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): ... This.
18696
77a205be
JG
186972013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18698
18699 * config/aarch64/arm_neon.h (vrndq<a,m,n,p>_f<32, 64>): Rename to...
18700 (vrnd<a,m,n,p>q_f<32, 64>): ...This, implement using builtin.
18701 (vrnd<a,m,n,p>_f32): Implement using builtins.
18702 (vrnd<i,x><q>_f<32, 64>): New.
18703
0659ce6f
JG
187042013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18705
18706 * config/aarch64/aarch64-builtins.c
18707 (aarch64_builtin_vectorized_function): Fold to standard pattern names.
18708 * config/aarch64/aarch64-simd-builtins.def (frintn): New.
18709 (frintz): Rename to...
18710 (btrunc): ...this.
18711 (frintp): Rename to...
18712 (ceil): ...this.
18713 (frintm): Rename to...
18714 (floor): ...this.
18715 (frinti): Rename to...
18716 (nearbyint): ...this.
18717 (frintx): Rename to...
18718 (rint): ...this.
18719 (frinta): Rename to...
18720 (round): ...this.
18721 * config/aarch64/aarch64-simd.md
18722 (aarch64_frint<frint_suffix><mode>): Delete.
18723 (<frint_pattern><mode>2): Convert to insn.
18724 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRINTN.
18725 * config/aarch64/iterators.md (FRINT): Add UNSPEC_FRINTN.
18726 (frint_pattern): Likewise.
18727 (frint_suffix): Likewise.
18728
ea78906a
RB
187292013-04-29 Richard Biener <rguenther@suse.de>
18730
18731 PR tree-optimization/57081
18732 * loop-init.c: Include tree-flow.h.
18733 (loop_optimizer_finalize): Free number of iteration estimates.
18734 * Makefile.in (loop-init.o): Add $(TREE_FLOW_H) dependency.
18735
baee1763
JJ
187362013-04-29 Jakub Jelinek <jakub@redhat.com>
18737
94dc5332
JJ
18738 PR tree-optimization/57083
18739 * tree-vrp.c (extract_range_from_binary_expr_1): For LSHIFT_EXPR with
18740 non-singleton shift count range, zero extend low_bound for uns case.
18741
baee1763
JJ
18742 * config/i386/predicates.md (general_vector_operand): New predicate.
18743 * config/i386/i386.c (const_vector_equal_evenodd_p): New function.
18744 (ix86_expand_mul_widen_evenodd): Force op1 resp. op2 into register
18745 if they aren't nonimmediate operands. If their original values
18746 satisfy const_vector_equal_evenodd_p, don't shift them.
18747 * config/i386/sse.md (mul<mode>3): Use general_vector_operand
18748 predicates. For the SSE4.1 case force operands[{1,2}] into registers
18749 if not nonimmediate_operand.
18750 (vec_widen_smult_even_v4si): Use nonimmediate_operand predicates
18751 instead of register_operand.
18752 (vec_widen_<s>mult_odd_<mode>): Use general_vector_operand predicates.
18753
a9073727 187542013-04-28 Eric Botcazou <ebotcazou@adacore.com>
22ad5e0a
EB
18755
18756 * stor-layout.c (finalize_size_functions): Allocate a structure and
18757 reset cfun before dumping the functions.
18758
ba8011e6
JJ
187592013-04-27 Jakub Jelinek <jakub@redhat.com>
18760
d6fde69e
JJ
18761 * config/i386/i386.c (ix86_expand_call): Make cregs_size unsigned.
18762
ba8011e6
JJ
18763 PR target/56866
18764 * config/i386/i386.c (ix86_expand_mul_widen_evenodd): Don't
18765 use xop_pmacsdqh if uns_p.
18766 * config/i386/sse.md (xop_rotr<mode>3): Fix up computation of
18767 the immediate rotate count.
18768
2c62cbaa
VM
187692013-04-26 Vladimir Makarov <vmakarov@redhat.com>
18770
18771 * rtl.h (struct rtx_def): Add comment for field jump.
18772 (LRA_SUBREG_P): New macro.
18773 * recog.c (register_operand): Check LRA_SUBREG_P.
18774 * lra.c (lra): Add note at the end of RTL code. Align non-empty
18775 stack frame.
18776 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
18777 (lra_final_code_change): Skip subreg change for operators.
18778 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
18779 if there are no operand changes.
18780 * lra-constraints.c (curr_insn_set): New.
18781 (match_reload): Set LRA_SUBREG_P.
18782 (emit_spill_move): Ditto.
18783 (check_and_process_move): Use curr_insn_set. Process only single
18784 set insns. Don't initialize sec_mem_p and change_p.
18785 (simplify_operand_subreg): Use LRA_SUBREG_P.
18786 (reg_in_class_p): New function.
18787 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
18788 of #ifdef. Add code to remove cycling.
18789 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
18790 non-null disp. Reload inner instead of disp when base and index
18791 are null. Try to put lo_sum into register.
18792 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
18793 (check_and_process_move): Move code for move cost check to
18794 simple_move_p. Remove equiv_substitution.
18795 (simple_move_p): New function.
18796 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
18797 curr_insn_set. Call check_and_process_move only for single set
18798 insns. Use the new function. Move call of check_and_process_move
18799 after operand equiv substitution and address process.
18800
e7d764f3
JJ
188012013-04-26 Jakub Jelinek <jakub@redhat.com>
18802
18803 PR go/57045
18804 * tree-ssa-uninit.c (compute_uninit_opnds_pos): In functions
18805 with nonlocal goto receivers or returns twice calls, ignore
18806 unininitialized values from abnormal edges to nl goto receiver
18807 or returns twice call.
18808
41e10689
JJ
188092013-04-26 Jakub Jelinek <jakub@redhat.com>
18810
18811 PR tree-optimization/57051
18812 * fold-const.c (const_binop): Handle VEC_LSHIFT_EXPR
18813 and VEC_RSHIFT_EXPR if shift count is a multiple of element
18814 bitsize.
18815
d7ed20db
RB
188162013-04-26 Richard Biener <rguenther@suse.de>
18817
18818 * omp-low.c (finalize_task_copyfn): Do not drop PROP_loops.
18819 (expand_omp_taskreg): Likewise. Mark loops for fixup.
18820 * tree-cfg.c (move_block_to_fn): Remap loop fathers.
18821 (fixup_loop_arrays_after_move): New function.
18822 (move_sese_region_to_fn): Properly outline the loop tree parts
18823 of the SESE region.
18824
df93505e
UB
188252013-04-26 Uros Bizjak <ubizjak@gmail.com>
18826
18827 * config/i386/i386.md (type, unit): Fix long lines.
18828
dd366ec3
RB
188292013-04-26 Richard Biener <rguenther@suse.de>
18830
18831 * Makefile.in (lto-streamer-in.o): Add $(CFGLOOP_H) dependency.
18832 (lto-streamer-out.o): Likewise.
18833 * cfgloop.c (init_loops_structure): Export, add struct function
18834 argument and adjust.
18835 (flow_loops_find): Adjust.
18836 * cfgloop.h (enum loop_estimation): Add EST_LAST.
18837 (init_loops_structure): Declare.
18838 * lto-streamer-in.c: Include cfgloop.h.
18839 (input_cfg): Input the loop tree.
18840 * lto-streamer-out.c: Include cfgloop.h.
18841 (output_cfg): Output the loop tree.
18842 (output_struct_function_base): Do not drop PROP_loops.
18843
a9e0d843
RB
188442013-03-26 Richard Biener <rguenther@suse.de>
18845
18846 * tree-cfg.c (execute_build_cfg): Build the loop tree.
18847 (pass_build_cfg): Provide PROP_loops.
18848 (move_sese_region_to_fn): Remove loops that are outlined into fn
18849 for now.
18850 * tree-inline.c: Include cfgloop.h.
18851 (initialize_cfun): Do not drop PROP_loops.
18852 (copy_loops): New function.
18853 (copy_cfg_body): Copy loop structure.
18854 (tree_function_versioning): Initialize destination loop tree.
18855 * tree-ssa-loop.c (pass_tree_loop_init): Do not provide PROP_loops.
18856 (pass_parallelize_loops): Do IL verification.
18857 * loop-init.c (loop_optimizer_init): Fixup loops if required.
18858 * tree-optimize.c (execute_fixup_cfg): If we need to cleanup
18859 the CFG make sure we fixup loops as well.
18860 * tree-ssa-tail-merge.c: Include cfgloop.h.
18861 (replace_block_by): When merging loop latches mark loops for fixup.
18862 * lto-streamer-out.c (output_struct_function_base): Drop
18863 PROP_loops for now.
18864 * tree-ssa-phiopt.c: Include tree-scalar-evolution.h.
18865 (tree_ssa_cs_elim): Initialize the loop optimizer and SCEV.
18866 * ipa-split.c: Include cfgloop.h.
18867 (split_function): Add the new return block to the loop tree root.
18868 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Return
18869 whether we have removed the forwarder block.
18870 (merge_phi_nodes): If we removed a forwarder mark loops for fixup.
18871 * cfgloop.h (place_new_loop): Declare.
18872 * cfgloopmanip.c (place_new_loop): Export.
18873 * Makefile.in (asan.o): Add $(CFGLOOP_H) dependency.
18874 (tree-switch-conversion.o): Likewise.
18875 (tree-complex.o): Likewise.
18876 (tree-inline.o): Likewise.
18877 (tree-ssa-tailmerge.o): Likewise.
18878 (ipa-split.o): Likewise.
18879 (tree-ssa-phiopt.o): Add $(SCEV_H) dependency.
18880 (tree-ssa-copy.o): Likewise.
18881 * tree-switch-conversion.c: Include cfgloop.h
18882 (process_switch): If we emit a bit-test cascade, schedule loops
18883 for fixup.
18884 * tree-complex.c: Include cfgloop.h.
18885 (expand_complex_div_wide): Properly add new basic-blocks to loops.
18886 * asan.c: Include cfgloop.h.
18887 (create_cond_insert_point): Properly add new basic-blocks to
18888 loops, schedule loop fixup.
18889 * cfgloop.c (verify_loop_structure): Check that looks are not
18890 marked for fixup.
18891 * omp-low.c (expand_parallel_call): Properly add new basic-blocks
18892 to loops.
18893 (expand_omp_for_generic): Likewise.
18894 (expand_omp_sections): Likewise.
18895 (expand_omp_atomic_pipeline): Schedule loops for fixup.
18896 * tree-ssa-copy.c: Include tree-scalar-evolution.h.
18897 (fini_copy_prop): Disable DCE in substitute_and_fold if SCEV
18898 is initialized, not when loops are present.
18899 * tree-parloops.c (parallelize_loops): Remove checking here.
18900 * passes.c (init_optimization_passes): Schedule a copy-propagation
18901 pass before complete unrolling of inner loops.
18902
e78e8a0b
JJ
189032013-04-26 Jakub Jelinek <jakub@redhat.com>
18904
a2e836b2
JJ
18905 * Makefile.in (toplev.o): Depend on diagnostic-color.h.
18906 * diagnostic-color.c (should_colorize): Remove _WIN32 version.
18907 (colorize_init): Add argument to _WIN32 version.
18908 * toplev.c: Include diagnostic-color.h.
18909 (process_options): Default to -fdiagnostics-color=auto if
18910 GCC_COLORS env var is in the environment.
18911 * common.opt (fdiagnostics-color=): Add Var and Init.
df93505e
UB
18912 * doc/invoke.texi (-fdiagnostics-color=): Document that if GCC_COLORS
18913 env var is in the environment, the default is auto rather than never.
a2e836b2 18914
e78e8a0b
JJ
18915 * diagnostic.h (file_name_as_prefix): Add context argument.
18916 * diagnostic.c (file_name_as_prefix): Likewise. Colorize
18917 the string as locus.
18918 * langhooks.c (lhd_print_error_function): Adjust caller.
18919
013e5ef9
LC
189202013-04-25 Lawrence Crowl <crowl@google.com>
18921
18922 * var-tracking.c (shared_hash_def::htab):
18923 Change type to hash_table. Update dependent calls and types.
18924
4a8fb1a1
LC
189252013-04-25 Lawrence Crowl <crowl@google.com>
18926
18927 * Makefile.in: Update as needed below.
18928
18929 * alloc-pool.c (static hash_table <alloc_pool_hasher> alloc_pool_hash):
18930 Move declaration to after the type's method definitons.
18931
18932 * attribs.c (htab_t scoped_attributes::attribute_hash):
18933 Change type to hash_table. Update dependent calls and types.
18934
18935 * bitmap.c (htab_t bitmap_desc_hash):
18936 Change type to hash_table. Update dependent calls and types.
18937
18938 * cselib.c (htab_t cselib_hash_table):
18939 Change type to hash_table. Update dependent calls and types.
18940
18941 * data-streamer.h (struct string_slot): Move to lto-streamer.h.
18942 (hash_string_slot_node): Move implementation into lto-streamer.h
18943 struct string_slot_hasher.
18944 (eq_string_slot_node): Likewise.
18945
18946 * data-streamer-out.c: Update output_block::string_hash_table
18947 dependent calls and types.
18948
18949 * dwarf2cfi.c (htab_t trace_index):
18950 Change type to hash_table. Update dependent calls and types.
18951
18952 * dwarf2out.c (htab_t break_out_includes::cu_hash_table):
18953 Change type to hash_table. Update dependent calls and types.
18954 (htab_t copy_decls_for_unworthy_types::decl_table): Likewise.
18955 (htab_t optimize_external_refs::map): Likewise.
18956 (htab_t output_comp_unit::extern_map): Likewise.
18957 (htab_t output_comdat_type_unit::extern_map): Likewise.
18958 (htab_t output_macinfo::macinfo_htab): Likewise.
18959 (htab_t optimize_location_lists::htab): Likewise.
18960 (htab_t dwarf2out_finish::comdat_type_table): Likewise.
18961
18962 * except.c (htab_t ehspec_hash_type):
18963 Change type to hash_table. Update dependent calls and types.
18964 (assign_filter_values::ttypes): Likewise.
18965 (assign_filter_values::ehspec): Likewise.
18966 (sjlj_assign_call_site_values::ar_hash): Likewise.
18967 (convert_to_eh_region_ranges::ar_hash): Likewise.
18968
18969 * gcse.c (htab_t pre_ldst_table):
18970 Change type to hash_table. Update dependent calls and types.
18971
18972 * ggc-common.c (htab_t saving_htab):
18973 Change type to hash_table. Update dependent calls and types.
18974 (htab_t loc_hash): Likewise.
18975 (htab_t ptr_hash): Likewise.
18976 (call_count): Rename ggc_call_count.
18977 (call_alloc): Rename ggc_call_alloc.
18978 (loc_descriptor): Rename make_loc_descriptor.
18979 (add_statistics): Rename ggc_add_statistics.
18980
18981 * ggc-common.c (saving_htab):
18982 Change type to hash_table. Update dependent calls and types.
18983
18984 * gimple.h (struct gimplify_ctx): Move to gimplify-ctx.h.
18985 (push_gimplify_context): Likewise.
18986 (pop_gimplify_context): Likewise.
18987 (struct gimple_temp_hash_elt): Added.
18988 (struct gimplify_hasher): Likewise.
18989 (struct gimplify_ctx.temp_htab):
18990 Change type to hash_table. Update dependent calls and types.
18991
18992 * gimple-fold.c: Include gimplify-ctx.h.
18993
18994 * gimple-ssa-strength-reduction.c (htab_t base_cand_map):
18995 Change type to hash_table. Update dependent calls and types.
18996 (base_cand_dump_callback): Rename to ssa_base_cand_dump_callback to
18997 avoid potential global name collision.
18998
18999 * gimplify.c: Include gimplify-ctx.h.
19000 (struct gimple_temp_hash_elt): Move to gimplify-ctx.h.
19001 (htab_t gimplify_ctx::temp_htab):
19002 Update dependent calls and types for new type hash_table.
19003 (gimple_tree_hash): Move into gimplify_hasher in gimplify-ctx.h.
19004 (gimple_tree_eq): Move into gimplify_hasher in gimplify-ctx.h.
19005
19006 * gimplify-ctx.h: New.
19007 (struct gimple_temp_hash_elt): Move from gimplify.c.
19008 (class gimplify_hasher): New.
19009 (struct gimplify_ctx): Move from gimple.h.
19010 (htab_t gimplify_ctx::temp_htab):
19011 Change type to hash_table. Update dependent calls and types.
19012
19013 * graphite-clast-to-gimple.c: Include graphite-htab.h.
19014 (htab_t ivs_params::newivs_index):
19015 Change type to hash_table. Update dependent calls and types.
19016 (htab_t ivs_params::params_index): Likewise.
19017 (htab_t print_generated_program::params_index): Likewise.
19018 (htab_t gloog::newivs_index): Likewise.
19019 (htab_t gloog::params_index): Likewise.
19020
19021 * graphite.c: Include graphite-htab.h.
19022 4htab_t graphite_transform_loops::bb_pbb_mapping):
19023 Change type to hash_table. Update dependent calls and types.
19024
19025 * graphite-clast-to-gimple.h: (extern gloog) Move to graphite-htab.h.
19026 (bb_pbb_map_hash): Fold into bb_pbb_htab_type in graphite-htab.h.
19027 (eq_bb_pbb_map): Fold into bb_pbb_htab_type in graphite-htab.h.
19028
19029 * graphite-dependences.c: Include graphite-htab.h.
19030 (loop_is_parallel_p): Change hash table type of parameter.
19031
19032 * graphite-htab.h: New.
19033 (typedef hash_table <bb_pbb_hasher> bb_pbb_htab_type): New.
19034 (extern find_pbb_via_hash): Move from graphite-poly.h.
19035 (extern loop_is_parallel_p): Move from graphite-poly.h.
19036 (extern get_loop_body_pbbs): Move from graphite-poly.h.
19037
19038 * graphite-poly.h (extern find_pbb_via_hash): Move to graphite-htab.h.
19039 (extern loop_is_parallel_p): Move to graphite-htab.h.
19040 (extern get_loop_body_pbbs): Move to graphite-htab.h.
19041
19042 * haifa-sched.c (htab_t delay_htab):
19043 Change type to hash_table. Update dependent calls and types.
19044 (htab_t delay_htab_i2): Likewise.
19045
19046 * ira-color.c (htab_t allocno_hard_regs_htab):
19047 Change type to hash_table. Update dependent calls and types.
19048
19049 * ira-costs.c (htab_t cost_classes_htab):
19050 Change type to hash_table. Update dependent calls and types.
19051
19052 * loop-invariant.c (htab_t merge_identical_invariants::eq):
19053 Change type to hash_table. Update dependent calls and types.
19054
19055 * loop-iv.c (htab_t bivs):
19056 Change type to hash_table. Update dependent calls and types.
19057
19058 * loop-unroll.c (htab_t opt_info::insns_to_split):
19059 Change type to hash_table. Update dependent calls and types.
19060 (htab_t opt_info::insns_with_var_to_expand): Likewise.
19061
19062 * lto-streamer.h (struct string_slot): Move from data-streamer.h
19063 (struct string_slot_hasher): New.
19064 (htab_t output_block::string_hash_table):
19065 Change type to hash_table. Update dependent calls and types.
19066
19067 * lto-streamer-in.c (freeing_string_slot_hasher): New.
19068 (htab_t file_name_hash_table):
19069 Change type to hash_table. Update dependent calls and types.
19070
19071 * lto-streamer-out.c: Update output_block::string_hash_table dependent
19072 calls and types.
19073
19074 * lto-streamer.c (htab_t tree_htab):
19075 Change type to hash_table. Update dependent calls and types.
19076
19077 * omp-low.c: Include gimplify-ctx.h.
19078
19079 * passes.c (htab_t name_to_pass_map):
19080 Change type to hash_table. Update dependent calls and types.
19081 (pass_traverse): Rename to passes_pass_traverse.
19082
19083 * plugin.c (htab_t event_tab):
19084 Change type to hash_table. Update dependent calls and types.
19085
19086 * postreload-gcse.c (htab_t expr_table):
19087 Change type to hash_table. Update dependent calls and types.
19088 (dump_hash_table_entry): Rename dump_expr_hash_table_entry.
19089
19090 * sese.c (debug_rename_map_1): Make extern.
19091 (htab_t copy_bb_and_scalar_dependences::rename_map):
19092 Change type to hash_table. Update dependent calls and types.
19093
19094 * sese.h (extern debug_rename_map): Move to .c file.
19095
19096 * store-motion.c (htab_t store_motion_mems_table):
19097 Change type to hash_table. Update dependent calls and types.
19098
19099 * trans-mem.c (htab_t tm_new_mem_hash):
19100 Change type to hash_table. Update dependent calls and types.
19101
19102 * tree-browser.c (htab_t TB_up_ht):
19103 Change type to hash_table. Update dependent calls and types.
19104
19105 * tree-cfg.c (htab_t discriminator_per_locus):
19106 Change type to hash_table. Update dependent calls and types.
19107
19108 * tree-complex.c: Include tree-hasher.h
19109 (htab_t complex_variable_components):
19110 Change type to hash_table. Update dependent calls and types.
19111
19112 * tree-eh.c (htab_t finally_tree):
19113 Change type to hash_table. Update dependent calls and types.
19114
19115 * tree-flow.h (extern int_tree_map_hash): Moved into tree-hasher
19116 struct int_tree_hasher.
19117 (extern int_tree_map_eq): Likewise.
19118 (uid_decl_map_hash): Removed.
19119 (extern decl_tree_map_eq): Likewise.
19120
19121 * tree-hasher.h: New.
19122 (struct int_tree_hasher): New.
19123 (typedef int_tree_htab_type): New.
19124
19125 * tree-inline.c: Include gimplify-ctx.h.
19126
19127 * tree-mudflap.c: Include gimplify-ctx.h.
19128
19129 * tree-parloops.c: Include tree-hasher.h.
19130 (htab_t eliminate_local_variables_stmt::decl_address):
19131 Change type to hash_table. Update dependent calls and types.
19132 (htab_t separate_decls_in_region::decl_copies): Likewise.
19133
19134 * tree-scalar-evolution.c (htab_t resolve_mixers::cache):
19135 Change type to hash_table. Update dependent calls and types.
19136
19137 * tree-sra.c (candidates):
19138 Change type to hash_table. Update dependent calls and types.
19139
19140 * tree-ssa.c (int_tree_map_eq): Moved into struct int_tree_hasher
19141 in tree-flow.h.
19142 (int_tree_map_hash): Likewise.
19143
19144 * tree-ssa-dom.c (htab_t avail_exprs):
19145 Change type to hash_table. Update dependent calls and types.
19146
19147 * tree-ssa-live.c (var_map_base_init::tree_to_index):
19148 Change type to hash_table. Update dependent calls and types.
19149
19150 * tree-ssa-loop-ivopts.c (struct ivopts_data.inv_expr_tab):
19151 Change type to hash_table. Update dependent calls and types.
19152
19153 * tree-ssa-phiopt.c (seen_ssa_names):
19154 Change type to hash_table. Update dependent calls and types.
19155
19156 * tree-ssa-strlen.c (decl_to_stridxlist_htab):
19157 Change type to hash_table. Update dependent calls and types.
19158
19159 * tree-ssa-uncprop.c (equiv):
19160 Change type to hash_table. Update dependent calls and types.
19161
c5a44004
JJ
191622013-04-25 Jakub Jelinek <jakub@redhat.com>
19163
19164 PR rtl-optimization/57003
19165 * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
19166 call note_stores with kill_clobbered_value callback again after
19167 killing regs_invalidated_by_call.
19168
09962a4a
JG
191692013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
19170
19171 * config/aarch64/aarch64-simd.md
19172 (aarch64_simd_bsl<mode>_internal): Rewrite RTL to not use UNSPEC_BSL.
19173 (aarch64_simd_bsl<mode>): Likewise.
19174 * config/aarch64/iterators.md (unspec): Remove UNSPEC_BSL.
19175
ea28bb0b
MP
191762013-04-25 Marek Polacek <polacek@redhat.com>
19177
19178 PR tree-optimization/57066
3c21604f 19179 * builtins.c (fold_builtin_logb): Return +Inf for -Inf.
ea28bb0b 19180
96659611
JG
191812013-04-25 James Greenhalgh <jame.greenhalgh@arm.com>
19182
19183 * config/aarch64/aarch64-simd.md (neg<mode>2): Use VDQ iterator.
19184
9697e620
JG
191852013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
19186
19187 * config/aarch64/aarch64-builtins.c
19188 (aarch64_fold_builtin): New.
19189 * config/aarch64/aarch64-protos.h (aarch64_fold_builtin): New.
19190 * config/aarch64/aarch64.c (TARGET_FOLD_BUILTIN): Define.
19191 * config/aarch64/aarch64-simd-builtins.def (abs): New.
19192 * config/aarch64/arm_neon.h
19193 (vabs<q>_<f32, 64>): Implement using __builtin_aarch64_fabs.
19194
0ac198d3
JG
191952013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
19196 Tejas Belagod <tejas.belagod@arm.com>
19197
19198 * config/aarch64/aarch64-builtins.c
19199 (aarch64_gimple_fold_builtin): New.
19200 * config/aarch64/aarch64-protos.h (aarch64_gimple_fold_builtin): New.
19201 * config/aarch64/aarch64-simd-builtins.def (addv): New.
19202 * config/aarch64/aarch64-simd.md (addpv4sf): New.
19203 (addvv4sf): Update.
19204 * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define.
19205
58cff58c
N
192062013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
19207
df93505e 19208 * config/aarch64/aarch64.md
58cff58c
N
19209 (*cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): New pattern.
19210
7e0228bf
N
192112013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
19212
19213 * config/aarch64/aarch64.md (*ngc<mode>): New pattern.
19214 (*ngcsi_uxtw): New pattern.
19215
5819f96f 192162013-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3c21604f 19217 Julian Brown <julian@codesourcery.com>
5819f96f
KT
19218
19219 * config/arm/arm.c (neon_builtin_type_mode): Add T_V4HF.
19220 (TB_DREG): Add T_V4HF.
19221 (v4hf_UP): New macro.
19222 (neon_itype): Add NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
df93505e 19223 (arm_init_neon_builtins): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
5819f96f
KT
19224 Handle initialisation of V4HF. Adjust initialisation of reinterpret
19225 built-ins.
df93505e 19226 (arm_expand_neon_builtin): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
5819f96f
KT
19227 (arm_vector_mode_supported_p): Handle V4HF.
19228 (arm_mangle_map): Handle V4HFmode.
19229 * config/arm/arm.h (VALID_NEON_DREG_MODE): Add V4HF.
19230 * config/arm/arm_neon_builtins.def: Add entries for
19231 vcvtv4hfv4sf, vcvtv4sfv4hf.
19232 * config/arm/neon.md (neon_vcvtv4sfv4hf): New pattern.
19233 (neon_vcvtv4hfv4sf): Likewise.
19234 * config/arm/neon-gen.ml: Handle half-precision floating point
19235 features.
19236 * config/arm/neon-testgen.ml: Handle Requires_FP_bit feature.
19237 * config/arm/arm_neon.h: Regenerate.
19238 * config/arm/neon.ml (type elts): Add F16.
19239 (type vectype): Add T_float16x4, T_floatHF.
19240 (type vecmode): Add V4HF.
19241 (type features): Add Requires_FP_bit feature.
19242 (elt_width): Handle F16.
19243 (elt_class): Likewise.
19244 (elt_of_class_width): Likewise.
19245 (mode_of_elt): Refactor.
19246 (type_for_elt): Handle F16, fix error messages.
19247 (vectype_size): Handle T_float16x4.
19248 (vcvt_sh): New function.
19249 (ops): Add entries for vcvt_f16_f32, vcvt_f32_f16.
19250 (string_of_vectype): Handle T_floatHF, T_float16, T_float16x4.
19251 (string_of_mode): Handle V4HF.
19252 * doc/arm-neon-intrinsics.texi: Regenerate.
19253
1ef395e4
JG
192542013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
19255
19256 * config/aarch64/aarch64.c (aarch64_print_operand): Fix asm_fprintf
19257 format specifier in 'X' case.
19258
41c34e94
AM
192592013-04-25 Alan Modra <amodra@gmail.com>
19260
19261 PR target/57052
19262 * config/rs6000/rs6000.md (rotlsi3_internal7): Rename to
19263 rotlsi3_internal7le and condition on !BYTES_BIG_ENDIAN.
19264 (rotlsi3_internal8be): New BYTES_BIG_ENDIAN insn.
19265 Repeat for many other rotate/shift and mask patterns using subregs.
19266 Name lshiftrt insns.
19267 (ashrdisi3_noppc64): Rename to ashrdisi3_noppc64be and condition
19268 on WORDS_BIG_ENDIAN.
19269
b9a7eb5d
AM
192702013-04-25 Alan Modra <amodra@gmail.com>
19271
19272 * config.gcc: Support little-endian powerpc-linux targets.
19273 * config/rs6000/linux.h (LINK_OS_LINUX_EMUL): Define.
19274 (LINK_OS_LINUX_SPEC): Define.
19275 * config/rs6000/linuxspe.h (TARGET_DEFAULT):
19276 Preserve MASK_LITTLE_ENDIAN.
19277 * config/rs6000/default64.h (TARGET_DEFAULT): Likewise.
19278 * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Likewise.
19279 * config/rs6000/linux64.h (OPTION_LITTLE_ENDIAN): Don't zero.
19280 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Define.
19281 (LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Use above.
19282 * config/rs6000/rs6000.c (output_toc): Don't use .tc for TARGET_ELF.
19283 Correct fp word order for little-endian. Don't shift toc entries
19284 smaller than a word for little-endian.
19285 * config/rs6000/rs6000.md (bswaphi2, bswapsi2 split): Comment.
19286 (bswapdi2 splits): Correct low-part subreg for little-endian.
19287 Remove wrong BYTES_BIG_ENDIAN tests, and rename vars to remove
19288 low/high where such is correct only for be.
19289 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Allow
19290 little-endian for -mcall-aixdesc.
19291
87f73374
AM
192922013-04-25 Alan Modra <amodra@gmail.com>
19293
19294 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
19295 replace_equiv_address_nv.
19296
cabf91cd
AM
192972013-04-25 Alan Modra <amodra@gmail.com>
19298
19299 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Tidy.
19300
0ae24cc8
VM
193012013-04-24 Vladimir Makarov <vmakarov@redhat.com>
19302
19303 Revert:
19304 2013-04-24 Vladimir Makarov <vmakarov@redhat.com>
19305 * rtl.h (struct rtx_def): ...
cabf91cd 19306
77bce07c
VM
193072013-04-24 Vladimir Makarov <vmakarov@redhat.com>
19308
19309 PR rtl-optimizations/57046
19310 * lra-constraints (split_reg): Set up lra_risky_transformations_p
19311 for multi-reg splits.
19312
0db63e7f
L
193132013-04-24 H.J. Lu <hongjiu.lu@intel.com>
19314
19315 * config/i386/x86-64.h (ASM_SPEC): Support -mx32.
19316
3362b6b6
SA
193172013-04-24 Sterling Augustine <saugustine@google.com>
19318
19319 * dwarf2out.c (skeleton_debug_str_hash, add_skeleton_AT_string)
19320 (comp_dir_string, debug_str_dwo_section): New.
19321 (DEBUG_STR_DWO_SECTION): Rename to ...
19322 (DEBUG_DWO_STR_SECTION): ... this.
19323 (DEBUG_NORM_STR_SECTION): Delete.
19324 (DEBUG_STR_SECTION, DEBUG_STR_SECTION_FLAGS): Edit definitions.
19325 (DEBUG_STR_DWO_SECTION_FLAGS): New.
19326 (find_AT_string): Move most logic to ...
19327 (find_AT_string_in_table): ... here. New.
19328 (add_top_level_skeleton_die_attrs): Call comp_dir_string and
19329 add_skeleton_AT_string. Delete logic.
19330 (output_skeleton_debug_sections): Remove call to
19331 add_top_level_skeleton_die_attrs.
19332 (add_comp_dir_attribute): Move logic to comp_dir_string.
19333 (dwarf2out_init): Initialize debug_str_dwo_section.
19334 (output_indirect_string): Call find_string_form.
19335 (output_indirect_strings): Rewrite.
19336 (prune_unused_types): Empty skeleton_debug_str_hash.
19337 Call get_skeleton_type_unit and add_top_level_skeleton_die_attrs.
19338 (dwarf2out_finish): Call output_indirect_strings.
19339
e93e18e9
PC
193402013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
19341
19342 * doc/cpp.texi: Remove __GXX_EXPERIMENTAL_CXX1Y__.
19343
f6ce35ac
VM
193442013-04-24 Vladimir Makarov <vmakarov@redhat.com>
19345
cabf91cd 19346 * rtl.h (struct rtx_def): Add comment for field jump.
f6ce35ac
VM
19347 (LRA_SUBREG_P): New macro.
19348 * recog.c (register_operand): Check LRA_SUBREG_P.
19349 * lra.c (lra): Add note at the end of RTL code. Align non-empty
19350 stack frame.
19351 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
19352 (lra_final_code_change): Skip subreg change for operators.
19353 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
19354 if there are no operand changes.
19355 * lra-constraints.c (curr_insn_set): New.
19356 (match_reload): Set LRA_SUBREG_P.
19357 (emit_spill_move): Ditto.
19358 (check_and_process_move): Use curr_insn_set. Process only single
19359 set insns. Don't initialize sec_mem_p and change_p.
19360 (simplify_operand_subreg): Use LRA_SUBREG_P.
19361 (reg_in_class_p): New function.
19362 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
19363 of #ifdef. Add code to remove cycling.
19364 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
19365 non-null disp. Reload inner instead of disp when base and index
19366 are null. Try to put lo_sum into register.
19367 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
cabf91cd 19368 (check_and_process_move): Move code for move cost check to
f6ce35ac 19369 simple_move_p. Remove equiv_substitution.
cabf91cd 19370 (simple_move_p): New function.
f6ce35ac
VM
19371 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
19372 curr_insn_set. Call check_and_process_move only for single set
19373 insns. Use the new function. Move call of check_and_process_move
19374 after operand equiv substitution and address process.
19375
38047d90
JG
193762013-04-24 James Greenhalgh <james.greenhalgh@arm.com>
19377
19378 * config/aarch64/arm_neon.h (vld1<q>_lane*): Fix constraints.
19379 (vld1<q>_dup_<sufp><8, 16, 32, 64>): Likewise.
19380 (vld1<q>_<sufp><8, 16, 32, 64>): Likewise.
19381
13f39b2e
PC
193822013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
19383
19384 * doc/cpp.texi: Document __GXX_EXPERIMENTAL_CXX1Y__.
19385
97c116dc
MP
193862013-04-24 Marek Polacek <polacek@redhat.com>
19387
19388 * tree-scalar-evolution.h (analyze_scalar_evolution): Remove.
19389 * tree-scalar-evolution.c (get_exit_conditions_rec): Likewise.
19390 (select_loops_exit_conditions): Likewise.
19391 (number_of_iterations_for_all_loops): Likewise.
19392 (analyze_scalar_evolution_for_all_loop_phi_nodes): Likewise.
19393 (scev_analysis): Likewise.
19394
83082391 193952013-04-02 Catherine Moore <clm@codesourcery.com>
12211b99 19396 Chao-ying Fu <fu@mips.com>
83082391 19397
cabf91cd
AM
19398 * config/mips/micromips.md (jraddiusp): New pattern.
19399 * config/mips/mips.c (mips_expand_epilogue): Use the JRADDIUSP
19400 instruction if possible.
83082391 19401
19e34aa2
AM
194022013-04-24 Alan Modra <amodra@gmail.com>
19403
19404 * config/rs6000/driver-rs6000.c (elf_dcachebsize): Fix comment pasto.
19405
fdb6603c
JB
194062013-04-24 Julian Brown <julian@codesourcery.com>
19407 Chung-Lin Tang <cltang@codesourcery.com>
19408
19409 * dwarf2out.c (gen_enumeration_type_die): Fix HOST_BITS_PER_WIDE_INT
df93505e
UB
19410 dependency behavior in enumeration type DIE generation. Add TODO note
19411 to comments about future DW_FORM_sdata/udata re-work of related code.
fdb6603c 19412
bf190e8d
LC
194132013-04-23 Lawrence Crowl <crowl@google.com>
19414
19415 * Makefile.in: Update as needed below.
19416
19417 * hash-table.h (class hash_table):
19418 Correct many methods with parameter types compare_type to the correct
19419 value_type. (Correct code was unlikely to notice the change.)
19420 (hash_table::elements_with_deleted) New.
19421 (class hashtable::iterator): New.
19422 (hashtable::begin()): New.
19423 (hashtable::end()): New.
19424 (FOR_EACH_HASH_TABLE_ELEMENT): New.
19425
19426 * statistics.c (statistics_hashes):
19427 Change type to hash_table. Update dependent calls and types.
19428
19429 * tree-into-ssa.c (var_infos):
19430 Change type to hash_table. Update dependent calls and types.
19431
19432 * tree-ssa-coalesce.c (struct coalesce_list_d.list):
19433 Change type to hash_table. Update dependent calls and types.
19434
19435 * tree-ssa-loop-im.c (struct mem_ref.refs):
19436 Change type to hash_table. Update dependent calls and types.
19437
19438 * tree-ssa-reassoc.c (undistribute_ops_list::ctable):
19439 Change type to hash_table. Update dependent calls and types.
19440
19441 * tree-ssa-sccvn.c (vn_tables_s::nary):
19442 Change type to hash_table. Update dependent calls and types.
19443 (vn_tables_s::phis): Likewise.
19444 (vn_tables_s::references): Likewise.
19445
19446 * tree-ssa-sccvn.h (vn_nary_op_eq): Update parameter and return types.
19447 (vn_reference_eq): Update parameter and return types.
19448
19449 * tree-ssa-structalias.c (pointer_equiv_class_table):
19450 Change type to hash_table. Update dependent calls and types.
19451 (location_equiv_class_table): Likewise.
19452
19453 * tree-vect-data-refs.c: Consequential changes for making
19454 peeling a hash_table.
19455
19456 * tree-vect-loop.c (new_loop_vec_info): Dependent hash_table update.
19457 (destroy_loop_vec_info): Dependent hash_table update.
19458
19459 * tree-vectorizer.h (peeling_htab):
19460 Change type to hash_table. Update dependent calls and types.
19461
d70a81dd
SC
194622013-04-23 Shiva Chen <shiva0217@gmail.com>
19463
cabf91cd
AM
19464 * lra-assigns.c (find_hard_regno_for): Use lra_reg_val_equal_p
19465 to check the register content is equal or not.
19466 * lra-constraints.c (match_reload): Use lra_assign_reg_val
19467 to assign register content record.
19468 * lra-eliminations.c (update_reg_eliminate): Use
d70a81dd 19469 lra_update_reg_val_offset to update register content offset.
cabf91cd
AM
19470 * lra-int.h (struct lra_reg): Add offset member.
19471 (lra_reg_val_equal_p): New static inline function.
19472 (lra_update_reg_val_offset): New static inline function.
19473 (lra_assign_reg_val): New static inline function.
19474 * lra.c (lra_create_new_reg): Use lra_assign_reg_val
19475 to assign register content record.
19476 (initialize_lra_reg_info_element): Initial offset to zero.
d70a81dd 19477
b894a1f3
CM
194782013-04-23 Catherine Moore <clm@codesourcery.com>
19479
19480 * config/mips/mips.md (*movhi_internal, *movqi_internal): New
19481 operands. Record compression.
19482
ecd14de9
XDL
194832013-04-23 Xinliang David Li <davidxl@google.com>
19484
19485 * cfghhooks.c (dump_bb_for_graph): Support 'slim' graph dump.
19486
92e776e9
RB
194872013-04-23 Richard Biener <rguenther@suse.de>
19488
19489 PR middle-end/57036
19490 * tree-inline.c (copy_edges_for_bb): Add can_make_abnormal_goto
19491 parameter, only add abnormal goto edges from the copied body
19492 if the call could perform abnormal gotos.
19493 (copy_cfg_body): Adjust.
19494
a15ee567
SN
194952013-04-23 Sofiane Naci <sofiane.naci@arm.com>
19496
19497 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add simd attribute.
19498
08c52234
AS
194992013-04-23 Andreas Schwab <schwab@linux-m68k.org>
19500
19501 * coretypes.h (gimple_stmt_iterator): Add struct to make
19502 compatible with C.
19503
999c1171
RB
195042013-04-23 Richard Biener <rguenther@suse.de>
19505
19506 PR tree-optimization/57026
19507 * tree-vrp.c (simplify_conversion_using_ranges): Do not propagate
19508 from SSA names occuring in abnormal PHI nodes.
19509
53669259
AK
195102013-04-22 Andi Kleen <ak@linux.intel.com>
19511
19512 * lto/lto.c (print_lto_report_1): Fix LTO report names.
19513
1a0ad150
AK
195142013-04-22 Andi Kleen <ak@linux.intel.com>
19515
19516 * lto/lto.c (print_lto_report_1): Declare early.
19517 (read_cgraph_and_symbols): Call print_lto_report_1 early.
19518
057f8f20
AK
195192013-04-22 Andi Kleen <ak@linux.intel.com>
19520
19521 * common.opt (-flto-report-wpa): Add.
19522 * doc/invoke.texi (-flto-report-wpa): Add.
19523 * lto/lto.c (do_whole_program_analysis): Check for lto-report-wpa.
19524 (lto_main): dito.
19525
473b1e05
XDL
195262013-04-22 Xinliang David Li <davidxl@google.com>
19527
19528 * graph.c (draw_cfg_node_succ_edges): Add branch probility as label.
19529 * cfghhooks.c (dump_bb_for_graph): Dump profile count and frquency.
19530 * Makefile.in: New dependency
19531
cabf91cd 19532 David Daney <ddaney.cavm@gmail.com>
b1485a33 19533
cabf91cd
AM
19534 * configure.ac (gcc_cv_as_micromips_support): Use the
19535 --fatal-warnings option.
19536 * configure: Regenerate.
b1485a33 19537
829d0168
MP
195382013-04-22 Marek Polacek <polacek@redhat.com>
19539
19540 PR sanitizer/56990
19541 * tsan.c (instrument_expr): Don't instrument expression
19542 in case its size is zero.
19543
6d9b7208
UB
195442013-04-22 Uros Bizjak <ubizjak@gmail.com>
19545
19546 PR target/57032
19547 Revert:
19548 2013-03-17 Uros Bizjak <ubizjak@gmail.com>
19549
19550 * config/alpha/alpha.c (TARGET_LRA_P): New define.
19551
ea679d55
JG
195522013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
19553
19554 * coretypes.h (gimple_stmt_iterator_d): Forward declare.
19555 (gimple_stmt_iterator): New typedef.
19556 * gimple.h (gimple_stmt_iterator): Rename to...
19557 (gimple_stmt_iterator_d): ... This.
19558 * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Detail restriction that
19559 trees be valid for GIMPLE and GENERIC.
19560 (TARGET_GIMPLE_FOLD_BUILTIN): New.
19561 * gimple-fold.c (gimple_fold_call): Call target hook
19562 gimple_fold_builtin.
19563 * hooks.c (hook_bool_gsiptr_false): New.
19564 * hooks.h (hook_bool_gsiptr_false): New.
19565 * target.def (fold_stmt): New.
19566 * doc/tm.texi: Regenerate.
19567
88a581da
VM
195682013-04-22 Vladimir Makarov <vmakarov@redhat.com>
19569
19570 PR target/57018
19571 * lra-eliminations.c (mark_not_eliminable): Prevent elimination of
19572 a set sp if no stack realignment.
19573
92be22dc
NC
195742013-04-22 Nick Clifton <nickc@redhat.com>
19575
19576 * config.gcc (tilegx-linux): Extend extra_objs rather than
19577 overwriting it.
19578 (tilepro-linux): Likewise.
19579
0ddec79f
JG
195802013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
19581
19582 * config/aarch64/aarch64-builtins.c
19583 (CF): Remove.
19584 (CF0, CF1, CF2, CF3, CF4, CF10): New.
19585 (VAR<1-12>): Add MAP parameter.
19586 (BUILTIN_*): Likewise.
19587 * config/aarch64/aarch64-simd-builtins.def: Set MAP parameter.
19588 * config/aarch64/aarch64-simd.md (aarch64_sshl_n<mode>): Remove.
19589 (aarch64_ushl_n<mode>): Likewise.
19590 (aarch64_sshr_n<mode>): Likewise.
19591 (aarch64_ushr_n<mode>): Likewise.
19592 (aarch64_<maxmin><mode>): Likewise.
19593 (aarch64_sqrt<mode>): Likewise.
19594 * config/aarch64/arm_neon.h (vshl<q>_n_*): Use new builtin names.
19595 (vshr<q>_n_*): Likewise.
19596
0050faf8
JG
195972013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
19598
19599 * config/aarch64/aarch64-builtins.c
19600 (aarch64_simd_builtin_type_mode): Handle SF types.
19601 (sf_UP): Define.
19602 (BUILTIN_GPF): Define.
19603 (aarch64_init_simd_builtins): Handle SF types.
19604 * config/aarch64/aarch64-simd-builtins.def (frecpe): Add support.
19605 (frecps): Likewise.
19606 (frecpx): Likewise.
19607 * config/aarch64/aarch64-simd.md
19608 (simd_types): Update simd_frcp<esx> to simd_frecp<esx>.
19609 (aarch64_frecpe<mode>): New.
19610 (aarch64_frecps<mode>): Likewise.
19611 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRECP<ESX>.
19612 (v8type): Add frecp<esx>.
19613 (aarch64_frecp<FRECP:frecp_suffix><mode>): New.
19614 (aarch64_frecps<mode>): Likewise.
19615 * config/aarch64/iterators.md (FRECP): New.
19616 (frecp_suffix): Likewise.
19617 * config/aarch64/arm_neon.h
19618 (vrecp<esx><qsd>_<fd><32, 64>): Convert to using builtins.
19619
0fad3dbc 196202013-04-22 Christian Bruel <christian.bruel@st.com>
1818d01c
CB
19621
19622 PR target/56995
19623 * config/sh/sh.h (enum reg_class): Remove DF_HI_REGS.
19624 (REG_CLASS_NAMES): Idem.
19625 (REG_CLASS_CONTENTS): Idem.
19626 (REGCLASS_HAS_FP_REG): Idem.
19627 * config/sh/sh.c (sh_cannot_change_mode_class): Idem.
19628 (sh_conditional_register_usage): Idem.
19629
3e8a33f9
JL
196302013-04-21 Jeff Law <law@redhat.com>
19631
19632 * tree-ssa-forwprop.c (simplify_conversion_from_bitmask): New function.
19633 (ssa_forward_propagate_and_combine): Use it.
19634
f38e1b0a
VM
196352013-04-19 Vladimir Makarov <vmakarov@redhat.com>
19636
19637 * lra.c: Update the flow chart diagram.
19638
682303da
VM
196392013-04-19 Vladimir Makarov <vmakarov@redhat.com>
19640
19641 PR rtl-optimization/56847
19642 * lra-constraints.c (process_alt_operands): Discourage alternative
19643 with non-matche doffsettable memory constraint fro memory with
19644 known offset.
19645
f6b64c35
RB
196462013-04-19 Richard Biener <rguenther@suse.de>
19647
19648 PR tree-optimization/56982
19649 * builtins.def (BUILT_IN_LONGJMP): longjmp is not a leaf
19650 function.
19651 * gimplify.c (gimplify_call_expr): Notice special calls.
19652 (gimplify_modify_expr): Likewise.
19653 * tree-cfg.c (make_abnormal_goto_edges): Handle setjmp-like
19654 abnormal control flow receivers.
19655 (call_can_make_abnormal_goto): Handle cfun->calls_setjmp
19656 in the same way as cfun->has_nonlocal_labels.
19657 (gimple_purge_dead_abnormal_call_edges): Likewise.
19658 (stmt_starts_bb_p): Make setjmp-like abnormal control flow
19659 receivers start a basic-block.
19660
01d8bf07
RB
196612013-04-19 Richard Biener <rguenther@suse.de>
19662
19663 * tree-vectorizer.h (struct _slp_instance): Move load_permutation
19664 member ...
19665 (struct _slp_tree): ... here. Make it a vector of unsigned ints.
19666 (SLP_INSTANCE_LOAD_PERMUTATION): Remove.
19667 (SLP_TREE_LOAD_PERMUTATION): Add.
19668 (vect_transform_slp_perm_load): Adjust prototype.
19669 * tree-vect-slp.c (vect_free_slp_tree): Adjust.
19670 (vect_free_slp_instance): Likewise.
19671 (vect_create_new_slp_node): Likewise.
19672 (vect_supported_slp_permutation_p): Remove.
19673 (vect_slp_rearrange_stmts): Adjust.
19674 (vect_supported_load_permutation_p): Likewise. Inline
19675 vect_supported_slp_permutation_p here.
19676 (vect_analyze_slp_instance): Compute load permutations per
19677 slp node instead of per instance.
19678 (vect_get_slp_defs): Adjust.
19679 (vect_transform_slp_perm_load): Likewise.
19680 (vect_schedule_slp_instance): Remove redundant code.
19681 (vect_schedule_slp): Remove hack for PR56270, add it ...
19682 * tree-vect-stmts.c (vectorizable_load): ... here, do not
19683 CSE loads for SLP. Adjust.
19684
ede22fc3
GY
196852013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
19686
19687 * config/arm/arm.c (load_multiple_sequence, ldm_stm_operation_p): Fix
19688 spelling in two comments.
19689
67bc84fb
GY
196902013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
19691
19692 PR target/56797
19693 * config/arm/arm.c (load_multiple_sequence): Require SP
19694 as base register for loads if SP is in the register list.
19695
e248d83f
MJ
196962013-04-19 Martin Jambor <mjambor@suse.cz>
19697
19698 PR tree-optimization/56718
19699 * ipa-cp.c (ipa_value_from_known_type_jfunc): Moved...
19700 * ipa-prop.c (ipa_binfo_from_known_type_jfunc): ...here, renamed
19701 and made public. Adjusted all callers.
19702 (ipa_intraprocedural_devirtualization): New function.
19703 * ipa-prop.h (ipa_binfo_from_known_type_jfunc): Declare.
19704 (ipa_intraprocedural_devirtualization): Likewise.
19705 * Makefile.in (tree-ssa-pre.o): Add ipa-prop.h to dependencies.
19706
4891e8f8
RB
197072013-04-19 Richard Biener <rguenther@suse.de>
19708
19709 PR tree-optimization/57000
19710 * tree-ssa-reassoc.c (pass_reassoc): Add TODO_update_ssa_only_virtuals.
19711
dad89f7c
TG
197122013-04-19 Terry Guo <terry.guo@arm.com>
19713
19714 * config/arm/cortex-m4-fpu.md (cortex_m4_v): Delete cpu unit.
19715 Replace with ...
19716 (cortex_m4_v_a, cortex_m4_v_b): ... new cpu units.
19717 (cortex_m4_v, cortex_m4_exa_va, cortex_m4_exb_vb): New reservations.
19718 (cortex_m4_fmacs): Use new reservations.
19719 (cortex_m4_f_load, cortex_m4_f_store): Likewise.
19720
72ea0d47
VM
197212013-04-18 Vladimir Makarov <vmakarov@redhat.com>
19722
f1e6512c 19723 PR rtl-optimization/56999
72ea0d47
VM
19724 * lra-coalesce.c (coalescable_pseudo_p): Remove 2nd parameter and
19725 related code.
19726 (lra_coalesce): Remove split_origin_bitmap and related code.
19727 * lra.c (lra): Coalesce after undoing inheritance. Recreate live
19728 ranges if necessary.
19729
780a5b71
UB
197302013-04-18 Uros Bizjak <ubizjak@gmail.com>
19731
19732 * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers):
19733 New array.
19734 (ix86_expand_call): Remove clobbered_registers array and use
19735 x86_64_ms_sysv_extra_clobbered_registers instead.
19736 * config/i386/i386.h (x86_64_ms_sysv_extra_clobbered_registers):
19737 Declare here.
19738 * config/i386/predicates.md (call_rex64_ms_sysv_operation): New
19739 predicate.
19740 * config/i386/i386.md (*call_rex64_ms_sysv): Use
19741 call_rex64_ms_sysv_operation predicate. Remove explicit clobbers.
19742 (*call_value_rex64_ms_sysv): Ditto.
19743
6f5a366a
CC
197442013-04-18 Cary Coutant <ccoutant@google.com>
19745
19746 * dwarf2out.c (output_pubnames): Check die_perennial_p of
19747 parent instead of die_mark.
19748
475b8f37
DN
197492013-04-18 Diego Novillo <dnovillo@google.com>
19750
19751 * gimple.c (create_gimple_tmp): New.
19752 (get_expr_type): New.
19753 (build_assign): New.
19754 (build_type_cast): New.
19755 * gimple.h (enum ssa_mode): Define.
19756 (gimple_seq_set_location): New.
19757 * asan.c (build_check_stmt): Change some gimple_build_* calls
780a5b71 19758 to use build_assign and build_type_cast.
475b8f37 19759
08940f33
RB
197602013-04-18 Richard Biener <rguenther@suse.de>
19761
19762 * tree-vect-data-refs.c (vect_analyze_group_access): Properly
19763 handle negative step. Remove redundant checks.
19764 (vect_create_data_ref_ptr): Avoid ICEs with non-constant steps.
19765 * tree-vect-stmts.c (vectorizable_load): Instead of asserting
19766 for negative step and grouped loads fail to vectorize.
19767
0e0f87d4
SB
197682013-04-18 Steven Bosscher <steven@gcc.gnu.org>
19769
19770 * emit-rtl.c (reset_insn_used_flags): New function.
19771 (reset_all_used_flags): Use it.
19772 (verify_insn_sharing): New function.
19773 (verify_rtl_sharing): Fix verification for SEQUENCEs.
19774
4c445590
JJ
197752013-04-18 Jakub Jelinek <jakub@redhat.com>
19776
19777 PR tree-optimization/56984
19778 * tree-vrp.c (register_edge_assert_for_2): For (x >> M) < N
19779 and (x >> M) >= N don't register any assertion if N << M is the
19780 minimum value.
19781
6873ecab
SB
197822013-04-18 Steven Bosscher <steven@gcc.gnu.org>
19783
19784 * lower-subreg.c (resolve_simple_move): If called self-recursive,
19785 do not delete_insn insns that have not yet been emitted, only
19786 unlink them with remove_insn.
19787 * df-scan.c (df_insn_delete): Revert r197492.
19788
3ccb989e
SB
197892013-04-17 Steven Bosscher <steven@gcc.gnu.org>
19790
19791 * emit-rtl.c (link_insn_into_chain): Handle chaining of SEQUENCEs.
19792 * reorg.c (emit_delay_sequence): Simplify with emit-rtl API.
19793
197942013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
0480fff0
GY
19795
19796 * config/arm/arm.md (movsicc_insn): Convert define_insn into
19797 define_insn_and_split.
19798 (and_scc,ior_scc,negscc): Likewise.
19799 (cmpsi2_addneg, subsi3_compare): Convert to named patterns.
19800
3ccb989e 198012013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
367075fe
GY
19802
19803 * config/arm/arm.c (use_return_insn): Return 0 for targets that
19804 can benefit from using a sequence of LDRD instructions in epilogue
19805 instead of a single LDM instruction.
19806
6d10a203
MLI
198072013-04-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
19808
19809 PR 45688
19810 * doc/extend.texi: Fix typo.
19811
6983e6b5
RB
198122013-04-17 Richard Biener <rguenther@suse.de>
19813
19814 * tree-vect-slp.c (vect_build_slp_tree_1): Split out from ...
19815 (vect_build_slp_tree): ... here.
19816 (vect_build_slp_tree_1): Compute which stmts of the SLP group
19817 match. Remove special-casing of mismatched complex loads.
19818 (vect_build_slp_tree): Based on the result from vect_build_slp_tree_1
19819 re-try the match with swapped commutative operands.
19820 (vect_supported_load_permutation_p): Remove special-casing of
19821 mismatched complex loads.
19822 (vect_analyze_slp_instance): Adjust.
19823
ef23e6a2
RB
198242013-04-17 Richard Biener <rguenther@suse.de>
19825
19826 PR rtl-optimization/56921
19827 * cfgloop.h (struct loop): Add simple_loop_desc member.
19828 (struct niter_desc): Mark with GTY(()).
19829 (simple_loop_desc): Do not use aux field but simple_loop_desc.
19830 * loop-iv.c (get_simple_loop_desc): Likewise.
19831 (free_simple_loop_desc): Likewise.
19832
19833 Revert
19834 2013-04-16 Richard Biener <rguenther@suse.de>
19835
19836 PR rtl-optimization/56921
19837 * loop-init.c (pass_rtl_move_loop_invariants): Add
19838 TODO_do_not_ggc_collect to todo_flags_finish.
19839 (pass_rtl_unswitch): Same.
19840 (pass_rtl_unroll_and_peel_loops): Same.
19841 (pass_rtl_doloop): Same.
19842
fc6f94f5
EB
198432013-04-17 Eric Botcazou <ebotcazou@adacore.com>
19844
19845 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): New.
19846 (decl_refs_may_alias_p): Add REF1 and REF2 parameters.
19847 Use nonoverlapping_component_refs_of_decl_p to disambiguate component
19848 references.
19849 (refs_may_alias_p_1): Adjust call to decl_refs_may_alias_p.
19850 * tree-streamer.c (record_common_node): Adjust reference in comment.
19851
10a88311
TG
198522013-04-17 Terry Guo <terry.guo@arm.com>
19853
19854 * config/arm/cortex-m4.md: Add a new bypass.
19855
6d9b7208 198562013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
f3d096b0
N
19857
19858 * config/aarch64/aarch64.md (*adds_<optab><mode>_multp2):
19859 New pattern.
19860 (*subs_<optab><mode>_multp2): New pattern.
19861 (*adds_<optab><ALLX:mode>_<GPI:mode>): New pattern.
19862 (*subs_<optab><ALLX:mode>_<GPI:mode>): New pattern.
19863
6d9b7208 198642013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
860ad33f
N
19865
19866 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>): New pattern.
19867 (*subs_mul_imm_<mode>): New pattern.
19868
18a6701e
DE
198692013-04-16 David Edelsohn <dje.gcc@gmail.com>
19870
19871 PR target/56948
19872 * config/rs6000/vsx.md (vsx_mov<mode>): Add j->r alternative.
19873 (vsx_movti_64bit): Change j->wa to O->wa. Add n->r alternative.
19874 (vsx_movti_32bit): Change j->wa to O->wa.
19875
07c37b2f
RB
198762013-04-16 Richard Biener <rguenther@suse.de>
19877
19878 PR rtl-optimization/56921
19879 * loop-init.c (pass_rtl_move_loop_invariants): Add
19880 TODO_do_not_ggc_collect to todo_flags_finish.
19881 (pass_rtl_unswitch): Same.
19882 (pass_rtl_unroll_and_peel_loops): Same.
19883 (pass_rtl_doloop): Same.
19884
0e0f87d4 198852013-04-16 Greta Yorsh <Greta.Yorsh@arm.com>
974ba22d
GY
19886
19887 * config/arm/arm.c (emit_multi_reg_push): New declaration
19888 for an existing function.
19889 (arm_emit_strd_push): New function.
19890 (arm_expand_prologue): Used here.
19891 (arm_emit_ldrd_pop): New function.
19892 (arm_expand_epilogue): Used here.
19893 (arm_get_frame_offsets): Update condition.
19894 (arm_emit_multi_reg_pop): Add a special case for load of a single
19895 register with writeback.
19896
5e8e2af4
UB
198972013-04-16 Uros Bizjak <ubizjak@gmail.com>
19898
19899 * doc/invoke.texi (i386 Option): Reword -mstack-protector-guard
19900 description.
19901
9fd9ccf7
RB
199022013-04-16 Richard Biener <rguenther@suse.de>
19903
19904 PR tree-optimization/56756
19905 * tree-ssa-loop-im.c (struct first_mem_ref_loc_1): New functor.
19906 (first_mem_ref_loc): New.
19907 (execute_sm): Place the load temporarily before a previous
19908 access instead of in the latch edge to ensure its SSA dependencies
19909 are defined at points dominating the load.
19910
96fba521
SB
199112013-04-16 Steven Bosscher <steven@gcc.gnu.org>
19912
4c8af858
SB
19913 * cfgrtl.c (cfg_layout_merge_blocks): Revert r184005, implement
19914 correct fix by moving header and footer insn to the footer of
19915 the merged basic block. Clear BB_END of the merged-away block.
19916
96fba521
SB
19917 PR middle-end/43631
19918 * emit-rtl.c (make_note_raw): New function.
19919 (link_insn_into_chain): New static inline function.
19920 (add_insn): Use it.
19921 (add_insn_before, add_insn_after): Factor insn chain linking code...
19922 (add_insn_before_nobb, add_insn_after_nobb): ...here, new functions
19923 using link_insn_into_chain.
19924 (note_outside_basic_block_p): New helper function for emit_note_after
19925 and emit_note_before.
19926 (emit_note_after): Use nobb variant of add_insn_after if the note
19927 should not be contained in a basic block.
19928 (emit_note_before): Use nobb variant of add_insn_before if the note
19929 should not be contained in a basic block.
19930 (emit_note_copy): Use make_note_raw.
19931 (emit_note): Likewise.
19932 * bb-reorder.c (insert_section_boundary_note): Remove hack to set
19933 BLOCK_FOR_INSN to NULL manually for NOTE_INSN_SWITCH_TEXT_SECTIONS.
19934 * jump.c (cleanup_barriers): Use reorder_insns_nobb to avoid making
19935 the moved barrier the tail of the basic block it follows.
19936 * var-tracking.c (pass_variable_tracking): Add TODO_verify_flow.
19937
7b8265ba
JJ
199382013-04-15 Jakub Jelinek <jakub@redhat.com>
19939
19940 PR tree-optimization/56962
19941 * gimple-ssa-strength-reduction.c (record_increment): Only set
19942 initializer if gimple_assign_rhs_code is {,POINTER_}PLUS_EXPR and
19943 either rhs1 or rhs2 is equal to c->base_expr.
19944
5185d248
RB
199452013-04-15 Richard Biener <rguenther@suse.de>
19946
19947 PR tree-optimization/56933
19948 * tree-vectorizer.h (struct _stmt_vec_info): Remove read_write_dep
19949 member.
19950 (GROUP_READ_WRITE_DEPENDENCE): Remove.
19951 (STMT_VINFO_GROUP_READ_WRITE_DEPENDENCE): Likewise.
19952 * tree-vect-data-refs.c (vect_analyze_group_access): Move
19953 dependence check ...
19954 vect_analyze_data_ref_dependence (vect_analyze_data_ref_dependence):
19955 ... here.
19956 * tree-vect-stmts.c (new_stmt_vec_info): Do not initialize
19957 GROUP_READ_WRITE_DEPENDENCE.
19958
a24243a0
AK
199592013-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19960
19961 * emit-rtl.c (reset_all_used_flags): New function.
19962 (verify_rtl_sharing): Call reset_all_used_flags before and after
19963 performing the checks.
19964
1c50eada
KT
199652013-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19966
19967 * config/arm/arm.c (const_ok_for_dimode_op): Handle AND case.
19968 * config/arm/arm.md (*anddi3_insn): Change to insn_and_split.
19969 * config/arm/constraints.md (De): New constraint.
19970 * config/arm/neon.md (anddi3_neon): Delete.
19971 (neon_vand<mode>): Expand to standard anddi3 pattern.
19972 * config/arm/predicates.md (imm_for_neon_inv_logic_operand):
19973 Move earlier in the file.
19974 (neon_inv_logic_op2): Likewise.
19975 (arm_anddi_operand_neon): New predicate.
19976
e927b6ad
RO
199772013-04-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19978
19979 * configure.ac (gcc_cv_ld_as_needed): Set
19980 gcc_cv_ld_as_needed_option, gcc_cv_no_as_needed_option.
19981 Use -z ignore, -z record on *-*-solaris2*.
19982 (HAVE_LD_AS_NEEDED): Update comment.
19983 (LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION): Define.
19984 * configure: Regenerate.
19985 * config.in: Regenerate.
19986 * gcc.c (init_gcc_specs) [USE_LD_AS_NEEDED]: Use
19987 LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION.
19988 * config/sol2.h [HAVE_LD_AS_NEEDED] (USE_LD_AS_NEEDED): Define.
19989 * doc/tm.texi.in (USE_LD_AS_NEEDED): Allow for --as-needed
19990 equivalents. Fix markup.
19991 * doc/tm.texi: Regenerate.
19992
e0ea8797
AH
199932013-04-15 Andrew Hsieh <andrewhsieh.google.com>
19994
19995 * config/i386/i386.opt: New option mstack-protector-guard=.
19996 * config/i386/i386-opts.h: Add enum stack_protector_guard.
19997 * config/i386/i386.h: Define TARGET_SSP_GLOBAL_GUARD and
19998 TARGET_SSP_TLS_GUARD.
19999 * config/i386/i386.c (ix86_option_override_internal): Set
20000 ix86_stack_protector_guard.
20001 * config/i386/i386.md (stack_protect_set): Enable for
20002 TARGET_SSP_TLS_GUARD only.
20003 (stack_protect_set_<mode>): Ditto.
20004 (stack_protect_test): Ditto.
20005 (stack_protect_test_<mode>): Ditto.
20006 * doc/invoke.texi (i386 Option): Document.
20007
811b72f9
EB
200082013-04-15 Eric Botcazou <ebotcazou@adacore.com>
20009
20010 PR target/56890
20011 * config/sparc/sparc.c (enum sparc_mode_class): Add H_MODE value.
20012 (S_MODES): Set H_MODE bit.
20013 (SF_MODES): Set only S_MODE and SF_MODE bits.
20014 (DF_MODES): Set SF_MODES and only D_MODE and DF_MODE bits.
20015 (sparc_init_modes) <MODE_INT>: Set H_MODE bit for sub-word modes.
20016 <MODE_VECTOR_INT>: Do not set SF_MODE for sub-word modes.
20017 <MODE_FLOAT>: Likewise.
20018
5529fdd6
JY
200192013-04-15 Joey Ye <joey.ye@arm.com>
20020
20021 * config/arm/arm.c (thumb_far_jump_used_p): Fix typo in comments.
20022
517b1da2
JY
200232013-04-15 Joey Ye <joey.ye@arm.com>
20024
20025 * config/arm/arm.c (thumb1_final_prescan_insn): Assert lr save
20026 for real far jump.
20027 (thumb_far_jump_used_p): Count instruction size and set
20028 far_jump_used.
20029
01007ae0
EB
200302013-04-14 Eric Botcazou <ebotcazou@adacore.com>
20031
20032 * reorg.c (fill_simple_delay_slots): Reindent block of code.
20033 * resource.c (mark_target_live_regs): Reformat conditional block.
20034
c46f6580
SB
200352013-04-13 Steven Bosscher <steven@gcc.gnu.org>
20036
20037 * sched-deps.c (deps_analyze_insn): Do not check for EH_REGION insn
20038 notes, they are emitted only just before final.
20039 * sched-int.h: Include insn-attr.h before checking INSN_SCHEDULING.
20040
1f397f45
SB
200412013-04-13 Steven Bosscher <steven@gcc.gnu.org>
20042
20043 * emit-rtl.c (remove_insn): Do not call df_insn_delete here.
20044 * cfgrtl.c (delete_insn): Call it here instead.
20045 * lra-spills.c (lra_final_code_change): Use delete_insn.
20046 * haifa-sched.c (sched_remove_insn): Likewise.
20047 * sel-sched-ir.c (return_nop_to_pool): Clear INSN_DELETED_P for nops
20048 returning to the nop pool.
20049 (sel_remove_insn): Simplify the only_disconnect case via remove_insn,
20050 use delete_insn for definitive removal. Clear BLOCK_FOR_INSN.
20051
58a51369
SB
200522013-04-12 Steven Bosscher <steven@gcc.gnu.org>
20053
20054 * doc/tm.texi.in (LOOP_ALIGN): Remove loop note references.
20055 * doc/tm.texi: Regenerated.
20056
33159866
UB
200572013-04-12 Uros Bizjak <ubizjak@gmail.com>
20058
20059 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use ANY_QI_REGNO_P in
20060 QImode checks.
20061
226e378f
SB
200622013-04-12 Steven Bosscher <steven@gcc.gnu.org>
20063
20064 * df-core.c (df_find_def): Compare register numbers.
20065 (df_find_use): Likewise.
20066
fafb9b18
VM
200672013-04-12 Vladimir Makarov <vmakarov@redhat.com>
20068
20069 PR target/56903
20070 * config/i386/i386.c (ix86_hard_regno_mode_ok): Add
20071 lra_in_progress for return.
20072
9a946fd6
GY
200732013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
20074
20075 * config/arm/arm.md (mov_scc,mov_negscc,mov_notscc): Convert
20076 define_insn into define_insn_and_split and emit movsicc patterns.
20077
41b83758
GY
200782013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
20079
20080 * config/arm/arm.c (gen_operands_ldrd_strd): Initialize "base".
20081
d3afd9aa
RB
200822013-04-12 Richard Biener <rguenther@suse.de>
20083
20084 * tree-pass.h (TODO_do_not_ggc_collect): New.
20085 * passes.c (execute_one_ipa_transform_pass): Honor
20086 TODO_do_not_ggc_collect.
20087 (execute_one_pass): Likewise.
20088
20089 Revert
20090 2013-04-10 Richard Biener <rguenther@suse.de>
20091
20092 * passes.c (init_optimization_passes): Remove reload pass.
20093 * ira.c (do_reload): Merge into ...
20094 (ira): ... this.
20095 (rest_of_handle_reload): Remove.
20096 (pass_reload): Likewise.
20097 * config/i386/i386.c (ix86_option_override): Refer to ira instead
20098 of reload for vzeroupper pass placement.
20099
06f9b387
JJ
201002013-04-12 Jakub Jelinek <jakub@redhat.com>
20101
20102 PR tree-optimization/56918
20103 PR tree-optimization/56920
20104 * fold-const.c (int_const_binop_1): Use op1.mul_with_sign (op2, ...)
20105 instead of op1 - op2. Pass 2 * TYPE_PRECISION (type) as second
20106 argument to rshift method. For 2 * HOST_BITS_PER_WIDE_INT precision
20107 use wide_mul_with_sign method.
20108
953094d2
RB
201092013-04-12 Richard Biener <rguenther@suse.de>
20110
20111 * gimple.c (is_gimple_constant): Vector CONSTRUCTORs should
20112 not be considered a gimple constant.
20113
bb506982
MG
201142013-04-12 Marc Glisse <marc.glisse@inria.fr>
20115
20116 * fold-const.c (const_binop): Handle vector shifts by a scalar.
20117 (fold_binary_loc): Call const_binop also for mixed vector-scalar
20118 operations.
20119
4b84d650
JJ
201202013-04-12 Manuel López-Ibáñez <manu@gcc.gnu.org>
20121 Jakub Jelinek <jakub@redhat.com>
20122
20123 * opts.c: Include diagnostic-color.h.
20124 (common_handle_option): Handle OPT_fdiagnostics_color_.
20125 * Makefile.in (OBJS-libcommon): Add diagnostic-color.o.
20126 (diagnostic.o, opts.o, pretty-print.o): Depend on diagnostic-color.h.
20127 (diagnostic-color.o): New.
20128 * common.opt (fdiagnostics-color, fdiagnostics-color=): New options.
20129 (diagnostic_color_rule): New enum.
20130 * dwarf2out.c (gen_producer_string): Don't print -fdiagnostics-color*.
20131 * langhooks.c (lhd_print_error_function): Add %r "locus" and %R around
20132 the location string.
20133 * diagnostic.def: Add 3rd argument to DEFINE_DIAGNOSTIC_KIND macros,
20134 either NULL, or color kind.
20135 * diagnostic-color.c: New file.
20136 * diagnostic-color.h: New file.
20137 * diagnostic-core.h (DEFINE_DIAGNOSTIC_KIND): Adjust macro for 3
20138 arguments.
20139 * doc/invoke.texi (-fdiagnostics-color): Document.
20140 * pretty-print.h (pp_show_color): Define.
20141 (struct pretty_print_info): Add show_color field.
20142 * diagnostic.c: Include diagnostic-color.h.
20143 (diagnostic_build_prefix): Adjust for 3 argument DEFINE_DIAGNOSTIC_KIND
20144 macros. Colorize error:, warning: etc. strings and also the location
20145 string.
20146 (diagnostic_show_locus): Colorize the caret line.
20147 * pretty-print.c: Include diagnostic-color.h.
20148 (pp_base_format): Handle %r and %R format specifiers. Colorize strings
20149 inside of %< %> quotes or quoted through q format modifier.
20150
067a1e71
AK
201512013-04-12 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20152
33159866 20153 * ifcvt.c (end_ifcvt_sequence): Mark a and b for unsharing as well.
067a1e71 20154
33159866 201552013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
b056c910
N
20156
20157 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Allow NEG
20158 code in CC_NZ mode.
20159 * config/aarch64/aarch64.md (*neg_<shift><mode>3_compare0): New
20160 pattern.
20161
7b55f98f
MP
201622013-04-11 Marek Polacek <polacek@redhat.com>
20163
20164 PR tree-optimization/48184
33159866 20165 * params.def (PARAM_ALIGN_THRESHOLD): Increase the minimum value to 1.
7b55f98f 20166
966b587e
EB
201672013-04-11 Eric Botcazou <ebotcazou@adacore.com>
20168
20169 * stor-layout.c (skip_simple_constant_arithmetic): Move to...
20170 * tree.c (skip_simple_constant_arithmetic): ...here and make public.
20171 (skip_simple_arithmetic): Tidy up.
20172 * tree.h (skip_simple_constant_arithmetic): Declare.
20173
33159866 201742013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
f8bf91ab
N
20175
20176 * config/aarch64/aarch64.h (REVERSIBLE_CC_MODE): Define.
20177
1d42c1ec
RB
201782013-04-11 Richard Biener <rguenther@suse.de>
20179
20180 * tree-vect-loop.c (get_initial_def_for_induction): Properly
20181 generate vector constants.
20182
4ba5ea11
RB
201832013-04-11 Richard Biener <rguenther@suse.de>
20184
20185 PR tree-optimization/56878
20186 * tree-flow.h (outermost_invariant_loop_for_expr): Declare.
20187 * tree-ssa-loop-ivopts.c (outermost_invariant_loop_for_expr):
20188 New function.
20189 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
20190 Prefer to align the DR with the most invariant base address.
20191
f0defe58
SKS
201922013-04-11 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
20193
20194 * opts.c (common_handle_option): Fix formatting and add FALLTHRU
20195 comment.
20196
d07458be
JG
201972013-04-11 James Greenhalgh <james.greenhalgh@arm.com>
20198
20199 * config/aarch64/aarch64-simd.md (aarch64_vcond_internal): Fix
20200 floating-point vector comparisons against 0.
20201
146b8692
JJ
202022013-04-11 Jakub Jelinek <jakub@redhat.com>
20203
20204 PR tree-optimization/56899
20205 * fold-const.c (extract_muldiv_1): Apply distributive law
20206 only if TYPE_OVERFLOW_WRAPS (ctype).
20207
b8578ff7
BC
202082013-04-11 Bin Cheng <bin.cheng@arm.com>
20209
20210 PR target/56124
20211 * ira-costs.c (scan_one_insn): Check whether the source rtx of
20212 loading has side effect.
20213
0ea8a6f9
SB
202142013-04-10 Steven Bosscher <steven@gcc.gnu.org>
20215
20216 * config/sparc/sparc.c: Include tree-pass.h.
20217 (TARGET_MACHINE_DEPENDENT_REORG): Do not redefine.
20218 (sparc_reorg): Rename to sparc_do_work_around_errata. Move to
20219 head of file. Change return type. Split off gate function.
20220 (sparc_gate_work_around_errata): New function.
20221 (pass_work_around_errata): New pass definition.
20222 (insert_pass_work_around_errata) New pass insert definition to
20223 insert pass_work_around_errata just after delayed-branch scheduling.
20224 (sparc_option_override): Insert the pass.
20225 * config/sparc/t-sparc (sparc.o): Add TREE_PASS_H dependence.
20226
42e37616
DM
202272013-04-10 David S. Miller <davem@davemloft.net>
20228
89deeb3b
DM
20229 * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=supersparc
20230 or -mcpu=hypersparc.
20231
42e37616
DM
20232 * target.def (cstore_mode): New hook.
20233 * target.h: Include insn-codes.h
20234 * targhooks.c: Likewise.
20235 (default_cstore_mode): New function.
20236 * targhooks.h: Declare it.
20237 * doc/tm.texi.in: New hook slot for TARGET_CSTORE_MODE.
20238 * doc/tm.texi: Rebuild.
20239 * expmed.c (emit_cstore): Obtain cstore boolean result mode using
20240 target hook, rather than inspecting the insn_data.
20241 * config/sparc/sparc.c (sparc_cstore_mode): New function.
20242 (TARGET_CSTORE_MODE): Redefine.
20243 (emit_scc_insn): When TARGET_ARCH64, emit new 64-bit boolean
20244 result patterns.
20245 * config/sparc/predicates.md (cstore_result_operand): New special
20246 predicate.
20247 * config/sparc/sparc.md (cstoresi4, cstoredi4, cstore<F:mode>4):
20248 Use it for operand 0.
20249 (*seqsi_special): Rewrite using 'P' mode iterator on operand 0.
20250 (*snesi_special): Likewise.
20251 (*snesi_zero): Likewise.
20252 (*seqsi_zero): Likewise.
20253 (*sltu_insn): Likewise.
20254 (*sgeu_insn): Likewise.
20255 (*seqdi_special): Make operand 0 and comparison operation be of
20256 DImode.
20257 (*snedi_special): Likewise.
20258 (*snedi_special_vis3): Likewise.
20259 (*neg_snesi_zero): Rename to *neg_snesisi_zero.
20260 (*neg_snesi_sign_extend): Rename to *neg_snesidi_zero.
20261 (*snesi_zero_extend): Delete, covered by 'P' mode iterator.
20262 (*neg_seqsi_zero): Rename to *neg_seqsisi_zero.
20263 (*neg_seqsi_sign_extend): Rename to *neg_seqsidi_zero.
20264 (*seqsi_zero_extend): Delete, covered by 'P' mode iterator.
20265 (*sltu_extend_sp64): Likewise.
20266 (*neg_sltu_insn): Rename to *neg_sltusi_insn.
20267 (*neg_sltu_extend_sp64): Rename to *neg_sltudi_insn.
20268 (*sgeu_extend_sp64): Delete, covered by 'P' mode iterator.
20269 (*neg_sgeu_insn): Rename to *neg_sgeusi_insn.
20270 (*neg_sgeu_extend_sp64): Rename to *neg_sgeudi_insn.
20271
95ca411e
YZ
202722013-04-10 Yufeng Zhang <yufeng.zhang@arm.com>
20273
20274 * config/aarch64/aarch64.c (aarch64_print_extension): New function.
20275 (aarch64_start_file): Use the new function.
20276
6782438d 202772013-04-10 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
33159866 20278 Jason Merrill <jason@redhat.com>
6782438d
SKS
20279
20280 * common.opt: Add -gdwarf.
20281 * opts.c (common_handle_option): Handle it.
20282 * gcc.c (ASM_DEBUG_SPEC): Don't expect "-2" for DWARF.
20283
bb313b93
RB
202842013-04-10 Richard Biener <rguenther@suse.de>
20285
20286 * passes.c (execute_todo): Do not call ggc_collect conditional here.
20287 (execute_one_ipa_transform_pass): But unconditionally here.
20288 (execute_one_pass): And here.
20289 (init_optimization_passes): Remove reload pass.
20290 * tree-pass.h (TODO_ggc_collect): Remove.
20291 (pass_reload): Likewise.
20292 * ira.c (do_reload): Merge into ...
20293 (ira): ... this.
20294 (rest_of_handle_reload): Remove.
20295 (pass_reload): Likewise.
20296 * config/i386/i386.c (ix86_option_override): Refer to ira instead
20297 of reload for vzeroupper pass placement.
20298 * <everywhere>: Remove TODO_ggc_collect from todo_flags_start
20299 and todo_flags_finish of all passes.
20300
793d9a16
RB
203012013-04-10 Richard Biener <rguenther@suse.de>
20302
20303 * tree-vectorizer.h (struct _slp_oprnd_info): Remove
20304 first_const_oprnd field, rename first_def_type to first_op_type.
20305 * tree-vect-slp.c (vect_create_oprnd_info): Adjust.
20306 (vect_get_and_check_slp_defs): Always use the type of the
20307 operand. Allow mixed vect_external_def, vect_constant_def types.
20308 (vect_get_constant_vectors): Handle mixed vect_external_def,
20309 vect_constant_def types.
20310
12211b99 203112013-04-10 Joern Rennecke <joern.rennecke@embecosm.com>
ee8a9b7b
JR
20312
20313 PR tree-optimization/55524
20314 * tree-ssa-math-opts.c
20315 (convert_mult_to_fma): Don't use an fms construct
20316 when we don't have an fms operation, but fnma, and it looks
20317 likely that we'll be able to use the latter.
20318
12211b99 203192013-04-10 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
6957a6f6
ZZ
20320
20321 * cif-code.def (OVERWRITABLE): Correct the comment for overwritable
20322 function.
20323 * ipa-inline.c (can_inline_edge_p): Let dump mechanism report the
20324 inline fail caused by overwritable functions.
20325
34ab4a5b
CJW
203262013-04-10 Chung-Ju Wu <jasonwucj@gmail.com>
20327
20328 * combine.c (simplify_compare_const): Use GET_MODE_MASK to filter out
20329 unnecessary bits in the constant power of two case.
20330
abf9bfbc
RB
203312013-04-10 Richard Biener <rguenther@suse.de>
20332
20333 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove
20334 broken code swapping operands.
20335 (vect_build_slp_tree): Do not compute load permutations here.
20336 (vect_analyze_slp_instance): Compute load permutations here,
20337 after building the SLP tree.
20338
f408477e
CB
203392013-04-09 Christian Bruel <christian.bruel@st.com>
20340
20341 * config/sh/sh.md (barrier_align): Use next/prev_active_insn instead
20342 of next/prev_real_insn.
20343
5ac42672
JH
203442013-04-09 Jan Hubicka <jh@suse.cz>
20345
abf9bfbc
RB
20346 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
20347 Drop aliased parameter.
5ac42672
JH
20348 (function_and_variable_visibility): Do not handle alias pairs.
20349 * cgraph.c (varpool_externally_visible_p): Update prototype.
20350 * varpool.c (varpool_add_new_variable): Update.
20351
5017f1d2
KT
203522013-04-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20353
20354 * config/arm/arm.md (minmax_arithsi_non_canon): New pattern.
20355
48eecbee
SB
203562013-04-09 Steven Bosscher <steven@gcc.gnu.org>
20357
a949cf1c
SB
20358 * sched-vis.c (print_pattern): Print SEQUENCE of insns as insns.
20359
48eecbee
SB
20360 * config/sparc/sparc.md: Use define_c_enum for "unspec" and "unspecv".
20361
75ef8e3d
MP
203622013-04-09 Marek Polacek <polacek@redhat.com>
20363
20364 PR tree-optimization/48762
33159866 20365 * params.def (PARAM_MAX_CSE_INSNS): Increase the minimum value to 1.
75ef8e3d 20366
23847df4
RB
203672013-04-09 Richard Biener <rguenther@suse.de>
20368
20369 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove code
20370 dealing with cost.
20371 (vect_build_slp_tree): Likewise.
20372 (vect_analyze_slp_cost_1, vect_analyze_slp_cost): New functions
20373 calculating the cost of a SLP instance.
20374 (vect_analyze_slp_instance): Use it from here, after building
20375 the SLP tree.
20376
ea3a0fde
JJ
203772013-04-09 Jakub Jelinek <jakub@redhat.com>
20378
20379 PR middle-end/56883
20380 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
20381 expand_omp_for_static_chunk): Use simple_p = true in
20382 force_gimple_operand_gsi calls when assigning to addressable decls.
20383
a32dfe9d
JL
203842013-04-09 Jeff Law <law@redhat.com>
20385
20386 * tree-vrp.c (simplify_cond_using_ranges): Simplify test of boolean
20387 when the boolean was created by converting a wider object which
20388 had a boolean range.
20389
d755c7ef
RB
203902013-04-09 Richard Biener <rguenther@suse.de>
20391
20392 * tree-vectorizer.h (slp_void_p): Remove.
20393 (slp_tree): Typedef before _slp_tree declaration.
20394 (struct _slp_tree): Use a vector of slp_tree as children.
20395 (vect_get_place_in_interleaving_chain): Remove.
20396 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain):
20397 Move ...
20398 * tree-vect-slp.c (vect_get_place_in_interleaving_chain): ... here
20399 and make static.
20400 (vect_free_slp_tree, vect_print_slp_tree, vect_mark_slp_stmts,
20401 vect_mark_slp_stmts_relevant, vect_slp_rearrange_stmts,
20402 vect_detect_hybrid_slp_stmts, vect_slp_analyze_node_operations,
20403 vect_schedule_slp_instance, vect_remove_slp_scalar_calls):
20404 Use slp_node instead of slp_void_p and adjust.
20405
3d741091
RB
204062013-04-09 Richard Biener <rguenther@suse.de>
20407
20408 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Avoid
20409 work that is not necessary.
20410
39307ba7
JJ
204112013-04-09 Jakub Jelinek <jakub@redhat.com>
20412
20413 PR tree-optimization/56854
20414 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't
20415 forward into clobber stmts if it would change MEM_REF lhs into
20416 non-MEM_REF.
20417
343881fd
MK
204182013-04-09 Maxim Kuvyrkov <maxim@kugelworks.com>
20419
20420 * tree.c (type_hash_lookup, type_hash_add): Make static.
20421 * tree.h (type_hash_lookup, type_hash_add): Remove global declarations.
20422
3922658a
RB
204232013-04-09 Richard Biener <rguenther@suse.de>
20424
20425 * tree.h (unsave_expr_now): Remove.
20426 * tree-inline.c (mark_local_for_remap_r): Remove.
20427 (unsave_expr_1): Likewise.
20428 (unsave_r): Likewise.
20429 (unsave_expr_now): Likewise.
20430 * tree-ssa-copy.c (replace_exp_1): Use unshare_expr.
20431 (propagate_tree_value): Likewise.
20432
9fb6b620
SB
204332013-04-08 Steven Bosscher <steven@gcc.gnu.org>
20434
20435 * doc/rtl.texi (sequence): Rewrite documentation to match the
20436 current use of SEQUENCE rtl objects.
20437 * rtl.def (SEQUENCE): Likewise.
20438
20439 * doc/rtl.texi (NOTE_INSN_EH_REGION_BEG, NOTE_INSN_EH_REGION_END):
20440 Update documentation.
20441 (NOTE_INSN_LOOP_BEG, NOTE_INSN_LOOP_END, NOTE_INSN_LOOP_CONT,
20442 NOTE_INSN_LOOP_VTOP): Remove documentation for non-existing notes.
20443
20444 * reg-notes.def (REG_EH_CONTEXT): Remove unused note.
20445
8ddb5a29
TJ
204462013-04-08 Teresa Johnson <tejohnson@google.com>
20447
20448 * basic-block.h (GCOV_COMPUTE_SCALE): Define.
20449 * ipa-inline-analysis.c (param_change_prob): Use helper rounding divide
33159866 20450 methods.
8ddb5a29
TJ
20451 (estimate_edge_size_and_time): Add comment to suggest using rounding
20452 methods.
20453 (estimate_node_size_and_time): Ditto.
20454 (remap_edge_change_prob): Use helper rounding divide methods.
20455 * value-prof.c (gimple_divmod_fixed_value_transform): Ditto.
20456 (gimple_mod_pow2_value_transform): Ditto.
20457 (gimple_mod_subtract_transform): Ditto.
20458 (gimple_ic_transform): Ditto.
20459 (gimple_stringops_transform): Ditto.
20460 * stmt.c (conditional_probability): Ditto.
20461 (emit_case_dispatch_table): Ditto.
20462 * lto-cgraph.c (merge_profile_summaries): Ditto.
20463 * tree-optimize.c (execute_fixup_cfg): Ditto.
20464 * cfgcleanup.c (try_forward_edges): Ditto.
20465 * cfgloopmanip.c (scale_loop_profile): Ditto.
20466 (loopify): Ditto.
20467 (duplicate_loop_to_header_edge): Ditto.
20468 (lv_adjust_loop_entry_edge): Ditto.
20469 * tree-vect-loop.c (vect_transform_loop): Ditto.
20470 * profile.c (compute_branch_probabilities): Ditto.
20471 * cfgbuild.c (compute_outgoing_frequencies): Ditto.
20472 * lto-streamer-in.c (input_cfg): Ditto.
20473 * gimple-streamer-in.c (input_bb): Ditto.
20474 * ipa-cp.c (update_profiling_info): Ditto.
20475 (update_specialized_profile): Ditto.
20476 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Ditto.
20477 * cfg.c (update_bb_profile_for_threading): Add comment to suggest using
33159866 20478 rounding methods.
8ddb5a29
TJ
20479 * sched-rgn.c (compute_dom_prob_ps): Ditto.
20480 (compute_trg_info): Ditto.
20481 * cfgrtl.c (force_nonfallthru_and_redirect): Ditto.
20482 (purge_dead_edges): Ditto.
20483 * loop-unswitch.c (unswitch_loop): Ditto.
20484 * cgraphclones.c (cgraph_clone_edge): Ditto.
20485 (cgraph_clone_node): Ditto.
20486 * tree-inline.c (copy_bb): Ditto.
20487 (copy_edges_for_bb): Ditto.
20488 (initialize_cfun): Ditto.
20489 (copy_cfg_body): Ditto.
20490 (expand_call_inline): Ditto.
20491
661e6bd7
KT
204922013-04-08 Kai Tietz <ktietz@redhat.com>
20493
20494 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Replaced
20495 TARGET_CYGWIN64 by TARGET_64BIT.
20496
105766f3
JR
204972013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
20498
20499 * config/epiphany/epiphany.md (GPR_1): New constant.
20500 (define_expand "mov<mode>cc): FAIL if gen_compare_reg returned 0.
20501 * config/epiphany/epiphany.c (gen_compare_reg):
20502 For flag_finite_math_only, avoid swapping operands when r0 and/or r1
20503 is already in place.
20504 Use GPR_0 / GPR_1 instead of 0/1 for r0/r1 register numbers.
20505 Don't require being called during rtl expansion; If y operlaps r0,
20506 return 0.
20507 (epiphany_compute_frame_size, epiphany_expand_prologue): Use GPR_1.
20508 (epiphany_expand_epilogue): Likewise.
20509
8afab237
JR
20510 * config/epiphany/epiphany.c (epiphany_select_cc_mode):
20511 Don't use CC_FPmode for ORDERED / UNORDERED.
33159866 20512 * config/epiphany/epiphany.md (cmpsf_ord): Make pattern unconditional.
8afab237 20513
fa7707d6
JR
20514 * config/epiphany/constraints.md (CnL): New constraint.
20515 * config/epiphany/epiphany.md (addsi3_i): Add r/r/CnL alternative.
20516 * config/epiphany/predicates.md (add_operand): Allow 1024.
20517
5138e18d
JR
20518 * config/epiphany/epiphany.md (logical_op): New code iterator.
20519 (op_mnc): New code attribute.
20520 (<op_mnc>_f, mov_f, cstoresi4): New patterns.
20521 (mov_f+1, mov_f+2): New peephole2 patterns.
20522
2ccc703d
JR
20523 * config/epiphany/epiphany.md (mov_f+2): New peephole2 pattern.
20524 (cstoresi4): Also allow re-use of zero result when doing a NE
20525 comparison to a non-zero operand.
aefb0819 20526 Use (clobber (scratch)) for first insn if the gpr output is not needed.
2ccc703d 20527
093ac0a5
JR
20528 * config/epiphany/epiphany.md (<insn_opname>v2si3):
20529 Use gen_addsi3_i / gen_subsi3_i.
20530
f223bb13
JJ
205312013-04-08 Jakub Jelinek <jakub@redhat.com>
20532
20533 PR c++/34949
20534 PR c++/50243
20535 * tree-eh.c (optimize_clobbers): Only remove clobbers if bb doesn't
20536 contain anything but clobbers, at most one __builtin_stack_restore,
20537 optionally debug stmts and final resx, and if it has at least one
20538 incoming EH edge. Don't check for SSA_NAME on LHS of a clobber.
20539 (sink_clobbers): Don't check for SSA_NAME on LHS of a clobber.
20540 Instead of moving clobbers with MEM_REF LHS with SSA_NAME address
20541 which isn't defaut definition, remove them.
20542 (unsplit_eh, cleanup_empty_eh): Use single_{pred,succ}_{p,edge}
20543 instead of EDGE_COUNT comparisons or EDGE_{PRED,SUCC}.
20544 * tree-ssa-ccp.c (execute_fold_all_builtins): Remove clobbers
20545 with MEM_REF LHS with SSA_NAME address.
20546
4481581f
JL
205472013-04-08 Jeff Law <law@redhat.com>
20548
20549 * gimple.c (canonicalize_cond_expr_cond): Rewrite x ^ y into x != y.
a32dfe9d 20550
451dabda
RB
205512013-04-08 Richard Biener <rguenther@suse.de>
20552
20553 * gimple-pretty-print.c (debug_gimple_stmt): Do not print
20554 extra newline.
20555 * tree-vect-loop.c (vect_determine_vectorization_factor): Dump
20556 determined vector type.
20557 (vect_analyze_data_refs): Likewise.
20558 (vect_get_new_vect_var): Adjust.
20559 (vect_create_destination_var): Preserve SSA name versions.
20560 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Do
20561 not dump anything here.
20562
3b088b47
JR
205632013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
20564
20565 * config/epiphany/epiphany.h (struct GTY (()) machine_function):
20566 Add member lr_slot_known.
20567 * config/epiphany/epiphany.md (reload_insi_ra): Compute lr_slot_offs
20568 if necessary.
20569 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
20570 Remove code that sets lr_slot_offset according to what a previous
20571 version of epiphany_emit_save_restore used to do.
20572 (epiphany_emit_save_restore): When doing an lr save or restore,
20573 set/verify lr_slot_known and lr_slot_offset.
20574
d8484d41
XQ
205752013-04-08 Xinyu Qi <xyqi@marvell.com>
20576
33159866
UB
20577 PR target/54338
20578 * config/arm/arm.h (REG_CLASS_CONTENTS): Include IWMMXT_GR_REGS
d8484d41
XQ
20579 in ALL_REGS.
20580
481be1c4
RB
205812013-04-08 Richard Biener <rguenther@suse.de>
20582
20583 * alias.c (find_base_term): Fix thinko in previous change.
20584
401f3a81
JJ
205852013-04-08 Jakub Jelinek <jakub@redhat.com>
20586
20587 * tree-loop-distribution.c (const_with_all_bytes_same): New function.
20588 (generate_memset_builtin): Only handle integer_all_onesp as -1 val if
20589 TYPE_PRECISION is equal to mode bitsize. Use const_with_all_bytes_same
20590 if possible to compute val.
20591 (classify_partition): Verify CONSTRUCTOR doesn't have any elts.
20592 For QImode integers don't require anything about precision. Use
20593 const_with_all_bytes_same to find out if the constant doesn't have
20594 repeated bytes in it.
20595
03ed99a8
AK
205962013-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20597
20598 * config/s390/s390.c (s390_expand_insv): Only accept insertions
20599 within mode size.
20600
781b2e62
MP
206012013-04-08 Marek Polacek <polacek@redhat.com>
20602
20603 PR rtl-optimization/48182
20604 * params.def (PARAM_MIN_CROSSJUMP_INSNS): Increase the minimum
20605 value to 1.
20606
27e430a2
JDA
206072013-04-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20608
20609 PR target/55487
20610 * config/pa/pa.c (legitimize_pic_address): Before incrementing label
20611 nuses, make sure we have a label.
20612
4902aa64
BS
206132013-04-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
20614
20615 PR target/56843
20616 * config/rs6000/rs6000.c (rs6000_emit_swdiv_high_precision): Remove.
20617 (rs6000_emit_swdiv_low_precision): Remove.
20618 (rs6000_emit_swdiv): Rewrite to handle between one and four
20619 iterations of Newton-Raphson generally; modify required number of
20620 iterations for some cases.
20621 * config/rs6000/rs6000.h (RS6000_RECIP_HIGH_PRECISION_P): Remove.
20622
7bca81dc
SB
206232013-04-05 Steven Bosscher <steven@gcc.gnu.org>
20624
20625 * bb-reorder.c (fix_crossing_unconditional_branches): Remove a
20626 set-but-unused variable.
20627
20628 * cgraph.c (cgraph_release_function_body): Clear cfun->cfg to make
20629 basic blocks of released function bodies garbage-collectable.
20630
20631 * ree.c (find_and_remove_re): Do not call df_finish_pass here.
20632 (struct rtl_opt_pass): Add TODO_df_finish.
20633
20634 * rtl.def (DEFINE_SUBST, DEFINE_SUBST_ATTR): Add documentation.
20635
4542a38a
GY
206362013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20637
20638 * config/arm/constraints.md (q): New constraint.
20639 * config/arm/ldrdstrd.md: New file.
20640 * config/arm/arm.md (ldrdstrd.md) New include.
20641 (arm_movdi): Use "q" instead of "r" constraint
20642 for double-word memory access.
20643 (movdf_soft_insn): Likewise.
20644 * config/arm/vfp.md (movdi_vfp): Likewise.
20645 * config/arm/t-arm (MD_INCLUDES): Add ldrdstrd.md.
33159866 20646 * config/arm/arm-protos.h (gen_operands_ldrd_strd): New declaration.
4542a38a
GY
20647 * config/arm/arm.c (gen_operands_ldrd_strd): New function.
20648 (mem_ok_for_ldrd_strd): Likewise.
20649 (output_move_double): Update assertion.
20650
2385b218
GY
206512013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20652
20653 * config/arm/arm.md: Comment on splitting Thumb1 patterns.
20654
75fe1cb5
GY
206552013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20656
20657 * config/arm/arm.md (arm_smax_insn): Convert define_insn into
20658 define_insn_and_split.
20659 (arm_smin_insn,arm_umaxsi3,arm_uminsi3): Likewise.
20660
dd660e8e
GY
206612013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20662
20663 * config/arm/arm.md (arm_ashldi3_1bit): Convert define_insn into
20664 define_insn_and_split.
33159866 20665 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
dd660e8e
GY
20666 (shiftsi3_compare): New pattern.
20667 (rrx): New pattern.
20668 * config/arm/unspecs.md (UNSPEC_RRX): New.
20669
045e472c
GY
206702013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20671
20672 * config/arm/arm.md (negdi_extendsidi): New pattern.
20673 (negdi_zero_extendsidi): Likewise.
20674
3f3bf1a8
GY
206752013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20676
20677 * config/arm/arm.md (andsi_iorsi3_notsi): Convert define_insn into
20678 define_insn_and_split.
20679 (arm_negdi2,arm_abssi2,arm_neg_abssi2): Likewise.
20680 (arm_cmpdi_insn,arm_cmpdi_unsigned): Likewise.
20681
b0b49556
GY
206822013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20683
20684 * config/arm/arm.md (arm_subdi3): Convert define_insn into
20685 define_insn_and_split.
20686 (subdi_di_zesidi,subdi_di_sesidi): Likewise.
20687 (subdi_zesidi_di,subdi_sesidi_di,subdi_zesidi_zesidi): Likewise.
20688
d633dd84
GY
206892013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20690
20691 * config/arm/arm.md (subsi3_carryin): New pattern.
20692 (subsi3_carryin_const): Likewise.
20693 (subsi3_carryin_compare,subsi3_carryin_compare_const): Likewise.
20694 (subsi3_carryin_shift,rsbsi3_carryin_shift): Likewise.
20695
f4499066
GY
206962013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20697
20698 * config/arm/arm.md (incscc,arm_incscc,decscc,arm_decscc): Delete.
20699
ceef6fd9
GY
207002013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20701
20702 * config/arm/arm.md (addsi3_carryin_<optab>): Set attribute predicable.
d633dd84 20703 (addsi3_carryin_alt2_<optab>,addsi3_carryin_shift_<optab>): Likewise.
ceef6fd9 20704
ddbdd8a7
KT
207052013-04-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20706
20707 * config/arm/arm.c (arm_expand_builtin): Change fcode
20708 type to unsigned int.
20709
8456d78a
RR
207102013-04-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
20711
20712 * doc/invoke.texi (ARM Options): Document cortex-a53 support.
20713
526c230f
ILT
207142013-04-04 Ian Lance Taylor <iant@google.com>
20715
33159866
UB
20716 * doc/standards.texi (Standards): The Go frontend supports the Go 1
20717 language standard.
526c230f 20718
3cfbe04d
SB
207192013-04-04 Steven Bosscher <steven@gcc.gnu.org>
20720
20721 PR middle-end/56729
20722 * df-scan.c (df_insn_delete): Disable failing assert.
20723
dfa3f8d0
KT
207242013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20725
20726 * config/arm/arm-protos.h (arm_builtin_vectorized_function):
20727 New function prototype.
20728 * config/arm/arm.c (TARGET_VECTORIZE_BUILTINS): Define.
20729 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Likewise.
20730 (arm_builtin_vectorized_function): New function.
20731
f7837758
KT
207322013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20733
20734 * config/arm/arm_neon_builtins.def: New file.
20735 * config/arm/arm.c (neon_builtin_data): Move contents to
20736 arm_neon_builtins.def.
20737 (enum arm_builtins): Include neon builtin definitions.
20738 (ARM_BUILTIN_NEON_BASE): Move from enum to macro.
33159866 20739 * config/arm/t-arm (arm.o): Add dependency on arm_neon_builtins.def.
f7837758 20740
39c1b6db
MP
207412013-04-04 Marek Polacek <polacek@redhat.com>
20742
20743 PR tree-optimization/48186
20744 * predict.c (maybe_hot_frequency_p): Return false if
20745 HOT_BB_FREQUENCY_FRACTION is 0.
20746 (cgraph_maybe_hot_edge_p): Likewise.
20747
314f64eb
RB
207482013-04-04 Richard Biener <rguenther@suse.de>
20749
20750 PR tree-optimization/56826
20751 * tree-vect-slp.c (vect_build_slp_tree): Compute ncopies
20752 more accurately.
20753
51a905b2
RB
207542013-04-04 Richard Biener <rguenther@suse.de>
20755
20756 PR tree-optimization/56213
20757 * tree-vect-data-refs.c (vect_check_strided_load): Remove.
33159866 20758 (vect_analyze_data_refs): Allow all non-nested loads as strided loads.
51a905b2 20759
f1bf4f3a
RB
207602013-04-04 Richard Biener <rguenther@suse.de>
20761
20762 PR tree-optimization/56837
20763 * tree-loop-distribution.c (classify_partition): For non-zero
20764 values require that the value has the same precision as its
20765 mode to be useful as memset value.
20766
0bca7ded
NC
207672013-04-03 Nick Clifton <nickc@redhat.com>
20768
33159866 20769 * config/v850/v850e3v5.md (fmasf4): Use fmaf.s on E3V5 architectures.
0bca7ded
NC
20770 (fmssf4): Use fmsf.s on E3V5 architectures.
20771 (fnmasf4): Use fnmaf.s on E3V5 architectures.
20772 (fnmssf4): Use fnmsf.s on E3V5 architectures.
20773
b4019227
JL
207742013-04-03 Jeff Law <law@redhat.com>
20775
20776 * Makefile.in (lra-constraints.o): Depend on $(OPTABS_H).
20777 (lra-eliminations.o): Likewise.
20778
f57ddb5b
TJ
207792013-04-03 Teresa Johnson <tejohnson@google.com>
20780
20781 * gcov-io.c (compute_working_sets): Moved most of body of old
33159866 20782 compute_working_sets here from profile.c.
f57ddb5b 20783 * gcov-io.h (NUM_GCOV_WORKING_SETS): Moved here from profile.c.
33159866
UB
20784 (gcov_working_set_t): Moved typedef here from basic-block.h
20785 (compute_working_set): Declare.
f57ddb5b
TJ
20786 * profile.c (NUM_GCOV_WORKING_SETS): Moved to gcov-io.h.
20787 (get_working_sets): Renamed from compute_working_set,
33159866 20788 replace most of body with call to new compute_working_sets.
f57ddb5b 20789 (get_exec_counts): Replace call to compute_working_sets
33159866
UB
20790 to get_working_sets.
20791 * profile.h (get_working_sets): Renamed from compute_working_set.
f57ddb5b 20792 * lto-cgraph.c (input_symtab): Replace call to compute_working_sets
33159866 20793 to get_working_sets.
f57ddb5b
TJ
20794 * basic-block.h (gcov_working_set_t): Moved to gcov-io.h.
20795 * gcov-dump.c (dump_working_sets): New function.
20796
12211b99 207972013-04-03 Kenneth Zadeck <zadeck@naturalbridge.com>
5e0919f1
KZ
20798
20799 * hwint.c (sext_hwi, zext_hwi): New functions.
20800 * hwint.h (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT,
20801 HOST_HALF_WIDE_INT_PRINT, HOST_HALF_WIDE_INT_PRINT_C,
20802 HOST_HALF_WIDE_INT_PRINT_DEC, HOST_HALF_WIDE_INT_PRINT_DEC_C,
20803 HOST_HALF_WIDE_INT_PRINT_UNSIGNED, HOST_HALF_WIDE_INT_PRINT_HEX,
20804 HOST_HALF_WIDE_INT_PRINT_HEX_PURE): New symbols.
20805 (sext_hwi, zext_hwi): New functions.
0bca7ded 20806
be672e08
JL
208072013-04-03 Jeff Law <law@redhat.com>
20808
20809 PR tree-optimization/56799
33159866
UB
20810 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Bring
20811 back test for widening conversion erroneously dropped in prior change.
be672e08 20812
9d821fa5
KT
208132013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20814
20815 PR target/56809
20816 * config/aarch64/aarch64.c (is_jump_table): Use next_active_insn
20817 instead of next_real_insn.
20818
71c581e7
MP
208192013-04-03 Marek Polacek <polacek@redhat.com>
20820
20821 PR sanitizer/55702
33159866 20822 * tsan.c (instrument_func_exit): Allow BUILT_IN_RETURN functions.
71c581e7 20823
4a32ef80
KT
208242013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20825
20826 PR target/56809
20827 * config/arm/arm.c (is_jump_table): Use next_active_insn instead of
20828 next_real_insn.
20829 (thumb1_output_casesi): Likewise.
20830 (thumb2_output_casesi): Likewise.
20831
1b2253d4
RB
208322013-04-03 Richard Biener <rguenther@suse.de>
20833
20834 PR tree-optimization/56817
20835 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
20836 Split out ...
20837 (tree_unroll_loops_completely_1): ... new function to manually
20838 walk the loop tree, properly defering outer loops of unrolled
20839 loops to later iterations.
20840
38000232
MG
208412013-04-03 Marc Glisse <marc.glisse@inria.fr>
20842
20843 * tree-vect-stmts.c (vectorizable_store): Accept BIT_FIELD_REF.
20844 (vectorizable_load): Likewise.
20845 * tree-vect-slp.c (vect_build_slp_tree): Likewise.
20846 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Handle VECTOR_TYPE.
20847
3fa35298
MG
208482013-04-03 Marc Glisse <marc.glisse@inria.fr>
20849
20850 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Handle
20851 BIT_FIELD_REF.
20852
b3d45ff0
UW
208532013-04-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
20854
20855 * config/spu/spu.c (emit_nop_for_insn): Handle JUMP_TABLE_DATA.
20856
ec9202a8
BC
208572013-04-03 Bin Cheng <bin.cheng@arm.com>
20858
20859 * rtl.h (AUTO_INC_DEC): Fix typo of HAVE_POST_MODIFY_DISP.
20860
6805bd36
MG
208612013-04-03 Marc Glisse <marc.glisse@inria.fr>
20862
20863 PR tree-optimization/56790
33159866
UB
20864 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Add constant
20865 folding.
6805bd36 20866
da694a77
MG
208672013-04-03 Marc Glisse <marc.glisse@inria.fr>
20868
20869 * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
20870 Handle VEC_MERGE.
20871 (simplify_ternary_operation) <VEC_MERGE>: Use unsigned HOST_WIDE_INT
20872 for masks. Test for side effects. Handle nested VEC_MERGE. Handle
20873 equal arguments.
20874
4e7d7b3d
JJ
208752013-04-03 Jakub Jelinek <jakub@redhat.com>
20876
20877 PR c/19449
20878 * tree.h (force_folding_builtin_constant_p): New decl.
20879 * builtins.c (force_folding_builtin_constant_p): New variable.
20880 (fold_builtin_constant_p): Fold immediately also if
20881 force_folding_builtin_constant_p.
20882
e6c9d234
RB
208832013-04-03 Richard Biener <rguenther@suse.de>
20884
20885 PR tree-optimization/56812
20886 * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependence):
20887 DRs of the same interleaving chain are independent.
20888
984d07dd
JM
208892013-04-02 Jason Merrill <jason@redhat.com>
20890
20891 * gdbinit.in (pbb): Use debug fn.
20892
622849c9
LC
208932013-04-02 Lawrence Crowl <crowl@google.com>
20894
20895 * sese.h (struct ivtype_map_elt_s): Remove unused.
20896 (extern debug_ivtype_map): Remove unused.
20897 (extern eq_ivtype_map_elts): Remove unused.
20898 * sese.c (debug_ivtype_map): Removed unused.
20899 (debug_ivtype_map_1): Removed unused.
20900 (debug_ivtype_elt): Remove unused.
20901 (eq_ivtype_map_elts): Remove unused.
20902
20903
82c0e1a0
KT
209042013-04-02 Kai Tietz <ktietz@redhat.com>
20905
20906 PR target/52790
20907 * config/i386/cygming.h (SUB_TARGET_RECORD_STUB): New sub-target macro.
20908 * config/i386/i386-protos.h (i386_pe_record_stub): Add new prototype.
33159866
UB
20909 * config/i386/i386.c (legitimize_pe_coff_extern_decl): New static
20910 function.
82c0e1a0
KT
20911 (legitimize_pe_coff_symbol): Likewise.
20912 (is_imported_p): New helper-function.
20913 (ix86_option_override_internal): Make MEDIUM_PIC the default code-model
20914 for Windows x64 targets.
20915 (ix86_expand_prologue): Optimize for pe-coff targets.
20916 (ix86_expand_split_stack_prologue): Adjust for pe-coff targets.
20917 (legitimate_pic_address_disp_p): Adjust for x64 pe-coff to support
20918 medium/large code-model.
20919 (legitimize_pic_address): Likewise.
20920 (legitimize_tls_address): Likewise.
20921 (ix86_expand_call): Likewise.
20922 (x86_output_mi_thunk): Likewise.
20923 (get_dllimport_decl): Add new beimport argument.
20924 (construct_plt_address): Don't assert for x64 pe-coff targets.
20925 * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Adjust for x64 pe-coff
20926 targets.
20927 (SYMBOL_FLAG_STUBVAR): New macro.
20928 (SYMBOL_REF_STUBVAR_P): Likewise.
20929 * config/i386/winnt.c (stub_list): New structure.
20930 (stub_head): New local variable.
20931 (i386_pe_record_stub): New function.
20932 (i386_pe_file_end): Emit refptr-stubs.
20933
5d751b0c
JJ
209342013-04-02 Jakub Jelinek <jakub@redhat.com>
20935
09bb4c99
JJ
20936 PR rtl-optimization/56745
20937 * ifcvt.c (cond_exec_find_if_block): Don't try to optimize
20938 if then_bb has no successors and else_bb is EXIT_BLOCK_PTR.
20939
a1d8947a
JJ
20940 PR c++/34949
20941 * tree-ssa-alias.c (stmt_kills_ref_p_1): If base != ref->base
20942 and both of them are MEM_REFs, just compare first argument for
20943 equality and attempt to deal even with differing offsets.
20944
5d751b0c
JJ
20945 PR c++/34949
20946 * tree-cfg.c (verify_gimple_assign_single): Allow lhs
20947 of gimple_clobber_p to be MEM_REF.
20948 * gimplify.c (gimplify_modify_expr): Gimplify *to_p of
20949 an assignment from TREE_CLOBBER_P. Allow it to be MEM_REF
20950 after gimplification.
20951 * asan.c (get_mem_ref_of_assignment): Don't instrument
20952 gimple_clobber_p stmts.
20953 * tree-ssa-dse.c (dse_optimize_stmt): Allow DSE of
20954 gimple_clobber_p stmt if they have MEM_REF lhs and
20955 are dead because of another gimple_clobber_p stmt.
20956 * tree-ssa-live.c (clear_unused_block_pointer): Treat
20957 gimple_clobber_p stmts like debug stmts.
20958 (remove_unused_locals): Remove clobbers with MEM_REF lhs
20959 that refer to unused VAR_DECLs or uninitialized values.
20960 * tree-sra.c (sra_ipa_reset_debug_stmts): Also remove
20961 gimple_clobber_p stmts if they refer to removed parameters.
20962 (get_repl_default_def_ssa_name, sra_ipa_modify_expr): Fix up
20963 formatting.
20964
e594716a
UB
209652013-04-02 Uros Bizjak <ubizjak@gmail.com>
20966
20967 * config/i386/i386.md (*testqi_ext_3): Merge with *testqi_ext_3_rex64
20968 using SWI48 mode attribute.
20969
7a80735b
WM
209702013-04-02 Wei Mi <wmi@google.com>
20971
20972 * config/i386/i386.c (ix86_rtx_costs): Set proper rtx cost for
20973 ashl<mode>3_mask, *<shift_insn><mode>3_mask and
20974 *<rotate_insn><mode>3_mask in i386.md.
20975
f423a9e4
AI
209762013-04-02 Alexander Ivchenko <alexander.ivchenko@intel.com>
20977
20978 * config.gcc (arm*-*-linux-*): Remove duplicate t-linux-android.
20979
90eb75f2
RB
209802013-04-02 Richard Biener <rguenther@suse.de>
20981
20982 PR tree-optimization/56778
20983 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
20984 Runtime alias tests are not supported for gather loads.
20985 * tree-vect-loop-manip.c (vect_loop_versioning): Insert
20986 stmts referenced from SSA operands before updating SSA form.
20987
d8c69a92
IC
209882013-04-02 Ian Caulfield <ian.caulfield@arm.com>
20989 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
20990
20991 * config/arm/arm-arches.def (armv8-a): Default to cortex-a53.
e594716a
UB
20992 * config/arm/t-arm (MD_INCLUDES): Depend on cortex-a53.md.
20993 * config/arm/cortex-a53.md: New file.
20994 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle cortex-a53.
20995 * config/arm/arm.md (generic_sched, generic_vfp): Handle cortex-a53.
20996 * config/arm/arm.c (arm_issue_rate): Likewise.
20997 * config/arm/arm-tune.md: Regenerate
20998 * config/arm/arm-tables.opt: Regenerate.
20999 * config/arm/arm-cores.def: Add cortex-a53.
d8c69a92 21000
239eb04c
ZC
210012013-04-02 Zhenqiang Chen <zhenqiang.chen@arm.com>
21002
21003 * config/arm/uclinux-elf.h: Add %L to LINK_GCC_C_SEQUENCE_SPEC for
21004 non-static link.
21005
c902d3c8
SN
210062013-04-02 Sofiane Naci <sofiane.naci@arm.com>
21007
d8c69a92
IC
21008 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add variants for
21009 scalar load/store operations using B/H registers.
c902d3c8
SN
21010 (*zero_extend<SHORT:mode><GPI:mode>2_aarch64): Likewise.
21011
051d0e2f
SN
210122013-04-02 Sofiane Naci <sofiane.naci@arm.com>
21013
21014 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add alternatives for
21015 scalar move.
21016 * config/aarch64/aarch64.c
21017 (aarch64_simd_scalar_immediate_valid_for_move): New.
21018 * config/aarch64/aarch64-protos.h
21019 (aarch64_simd_scalar_immediate_valid_for_move): New.
21020 * config/aarch64/constraints.md (Dh, Dq): New.
21021 * config/aarch64/iterators.md (hq): New.
21022
0ee1e3d9
EB
210232013-04-02 Eric Botcazou <ebotcazou@adacore.com>
21024
21025 * reorg.c (get_branch_condition): Deal with conditional returns.
21026 (fill_simple_delay_slots): Remove dead code dealing with jumps.
21027
136fb3f7
WM
210282013-04-01 Wei Mi <wmi@google.com>
21029
21030 * config/i386/i386.md (*ashl<mode>3_mask): Rewrite as define_insn.
21031 Truncate operand 2 using %b asm operand modifier.
21032 (*<shift_insn><mode>3_mask): Ditto.
21033 (*<rotate_insn><mode>3_mask): Ditto.
21034
6388c738
SB
210352013-04-01 Steven Bosscher <steven@gcc.gnu.org>
21036
21037 PR middle-end/56798
21038 * cfgbuild.c (inside_basic_block_p): Restore check broken at r197234.
21039
f7a4d826
KK
210402013-03-31 Kaz Kojima <kkojima@gcc.gnu.org>
21041
21042 * config/sh/sh.md (casesi_worker_1): Use next_active_insn instead
21043 of next_real_insn.
21044 (casesi_worker_2, casesi_shift_media, casesi_load_media): Likewise.
21045
4b943a49
LC
210462013-03-30 Lawrence Crowl <crowl@google.com>
21047
21048 * dse.c (clear_alias_sets): Remove never set.
21049 (disqualified_clear_alias_sets): Remove never set.
21050 (clear_alias_mode_pool): Remove never set.
21051 (dse_step0): Remove condition that is never true.
21052 (canon_address): Remove condition that is never true.
21053 (dse_step7): Remove condition that is never true.
21054 (rest_of_handle_dse): Remove condition that is never true.
21055 (rest_of_handle_dse::did_global): Remove never read from above.
21056 (dse_step2_spill): Remove never called from above.
21057 (dse_step5_spill): Remove never called from above.
21058
39718607
SB
210592013-03-30 Steven Bosscher <steven@gcc.gnu.org>
21060
da5c6bde
SB
21061 * doc/md.texi (Standard Names) <casesi>: Update documentation for
21062 JUMP_TABLE_DATA changes.
21063 * doc/tm.texi.in (Dispatch Tables) <ASM_OUTPUT_CASE_LABEL>: Likewise.
21064 * doc/rtl.texi (Flags) <INSN_DELETED_P, SCHED_GROUP_P>: Likewise.
21065 (Insns) <jump_table_data>: New entry.
21066 * doc/tm.texi: Regenerate.
21067
39718607
SB
21068 * cfgrtl.c (fixup_reorder_chain): Do not emit barriers to BB_FOOTER.
21069
21070 * postreload-gcse.c (bb_has_well_behaved_predecessors): Correct test
21071 for table jump at the end of a basic block using tablejump_p.
21072 * targhooks.c (default_invalid_within_doloop): Likewise.
21073 * config/rs6000/rs6000.c (TARGET_INVALID_WITHIN_DOLOOP): Remove
21074 target hook implementation that is identical to the default hook.
21075 (rs6000_invalid_within_doloop): Remove.
21076
21077 * bb-reorder.c (fix_crossing_unconditional_branches): Remove set but
21078 unused variable from tablejump_p call.
21079
21080 * rtl.def (JUMP_TABLE_DATA): New RTX_INSN object.
21081 * rtl.h (RTX_PREV, RTX_NEXT): Adjust for new JUMP_TABLE_DATA.
21082 (INSN_DELETED_P): Likewise.
21083 (emit_jump_table_data): New prototype.
21084 * gengtype.c (adjust_field_rtx_def): Handle JUMP_TABLE_DATA fields
21085 after 4th as unused.
21086 * print-rtl.c (print_rtl): Handle JUMP_TABLE_DATA.
21087 * sched-vis.c (print_insn): Likewise.
21088 * emit-rtl.c (active_insn_p): Consider JUMP_TABLE_DATA an active
21089 insn for compatibility with back ends that use next_active_insn to
21090 identify jump table data.
21091 (set_insn_deleted): Remove no longer useful JUMP_TABLE_DATA_P check.
21092 (remove_insn): Likewise.
21093 (emit_insn): Do not accept JUMP_TABLE_DATA objects in insn chains
21094 to be emitted.
21095 (emit_debug_insn, emit_jump_insn, emit_call_insn, emit_label): Idem.
21096 (emit_jump_table_data): New function.
21097
21098 * cfgbuild.c (inside_basic_block_p): A JUMP_INSN is always inside a
21099 basic block, a JUMP_TABLE_DATA never is.
21100 (control_flow_insn_p): JUMP_TABLE_DATA is not a control flow insn.
21101 * cfgrtl.c (duplicate_insn_chain): Split handling of JUMP_TABLE_DATA
21102 off from code handling real insns.
21103 * final.c (get_attr_length_1): Simplify for JUMP_INSNs.
21104 * function.c (instantiate_virtual_regs): Remove JUMP_TABLE_DATA_P
21105 test, now redundant because JUMP_TABLE_DATA is not an INSN_P insn.
21106 * gcse.c (insert_insn_end_basic_block): Likewise, JUMP_TABLE_DATA_P
21107 is not a NONDEBUG_INSN_P.
21108 * ira-costs.c (scan_one_insn): Likewise.
21109 * jump.c (mark_all_labels): Likewise.
21110 (mark_jump_label_1): Likewise.
21111 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
21112 * lra.c (get_insn_freq): Expect all insns reaching here to be in
21113 a basic block.
21114 (check_rtl): Remove JUMP_TABLE_DATA_P test, not a NONDEBUG_INSN_P insn.
21115 * predict.c (expensive_function_p): Use FOR_BB_INSNS.
21116 * reload1.c (calculate_needs_all_insns): Call set_label_offsets for
21117 JUMP_TABLE_DATA_P insns.
21118 (calculate_elim_costs_all_insns): Likewise.
21119 (set_label_offsets): Recurse on the PATTERN of JUMP_TABLE_DATA insns.
21120 (elimination_costs_in_insn): Remove redundant JUMP_TABLE_DATA_P test.
21121 (delete_output_reload): Code style fixups.
21122 * reorg.c (dbr_schedule): Move JUMP_TABLE_DATA_P up to avoid setting
21123 insn flags on this non-insn.
21124 * sched-rgn.c (add_branch_dependences): Treat JUMP_TABLE_DATA insns
21125 as scheduling barriers, for pre-change compatibility.
21126 * stmt.c (emit_case_dispatch_table): Emit jump table data not as
21127 JUMP_INSN objects but instead as JUMP_TABLE_DATA objects.
21128
21129 * config/alpha/alpha.c (alpha_does_function_need_gp): Remove
21130 redundant JUMP_TABLE_DATA_P test.
21131 * config/arm/arm.c (thumb_far_jump_used_p): Likewise.
21132 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
21133 (frv_for_each_packet): Likewise.
21134 * config/i386/i386.c (min_insn_size): Likewise.
21135 (ix86_avoid_jump_mispredicts): Likewise.
21136 * config/m32r/m32r.c (m32r_is_insn): Likewise.
21137 * config/mep/mep.c (mep_reorg_erepeat): Likewise.
21138 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
21139 (mips16_insn_length): Robustify.
21140 (mips_has_long_branch_p): Remove redundant JUMP_TABLE_DATA_P test.
21141 (mips16_split_long_branches): Likewise.
21142 * config/pa/pa.c (pa_combine_instructions): Likewise.
21143 * config/rs6000/rs6000.c (get_next_active_insn): Treat
21144 JUMP_TABLE_DATA objects as active insns, like in active_insn_p.
21145 * config/s390/s390.c (s390_chunkify_start): Treat JUMP_TABLE_DATA
21146 as contributing to pool range lengths.
21147 * config/sh/sh.c (find_barrier): Restore check for ADDR_DIFF_VEC.
21148 Remove redundant JUMP_TABLE_DATA_P test.
21149 (sh_loop_align): Likewise.
21150 (split_branches): Likewise.
21151 (sh_insn_length_adjustment): Likewise.
21152 * config/spu/spu.c (get_branch_target): Likewise.
21153
0208f7da
JH
211542013-03-29 Jan Hubicka <jh@suse.cz>
21155
21156 * lto-cgraph.c (output_profile_summary, input_profile_summary): Use
21157 gcov streaming; stream hot bb threshold to ltrans.
21158 * predict.c (get_hot_bb_threshold): Break out from ....
21159 (maybe_hot_count_p): ... here.
21160 (set_hot_bb_threshold): New function.
21161 * lto-section-in.c (lto_section_name): Add profile.
21162 * profile.h (get_hot_bb_threshold, set_hot_bb_threshold): Declare.
21163 * ipa.c: Include hash-table.h, tree-inline.h, profile.h, lto-streamer.h
21164 and data-streamer.h
21165 (histogram_entry): New structure.
21166 (histogram, histogram_pool): New global vars.
21167 (histogram_hash): New structure.
21168 (histogram_hash::hash): New method.
21169 (histogram_hash::equal): Likewise.
21170 (account_time_size): New function.
21171 (cmp_counts): New function.
21172 (dump_histogram): New function.
21173 (ipa_profile_generate_summary): New function.
21174 (ipa_profile_write_summary): New function.
21175 (ipa_profile_read_summary): New function.
21176 (ipa_profile): Decide on threshold.
e594716a
UB
21177 (pass_ipa_profile): Add ipa_profile_write_summary and
21178 ipa_profile_read_summary.
0208f7da
JH
21179 * Makefile.in (ipa.o): Update dependencies.
21180 * lto-streamer.h (LTO_section_ipa_profile): New section.
21181
5a6ccc94
GDR
211822013-03-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
21183
21184 * tree.h (VAR_P): New.
21185
39385fa6
PC
211862013-03-29 Paolo Carlini <paolo.carlini@oracle.com>
21187
21188 PR lto/56777
21189 * doc/invoke.texi ([-fwhole-program]): Fix typo.
21190
34f0d87a
SB
211912013-03-29 Steven Bosscher <steven@gcc.gnu.org>
21192
21193 * cfgbuild.c (inside_basic_block_p): Use JUMP_TABLE_DATA_P in lieu
21194 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
21195 (control_flow_insn_p): Likewise.
21196 * cfgrtl.c (duplicate_insn_chain): Likewise.
21197 * final.c (get_attr_length_1): Likewise.
21198 (shorten_branches): Likewise.
21199 (final_scan_insn): Likewise.
21200 * function.c (instantiate_virtual_regs): Likewise.
21201 * gcse.c (insert_insn_end_basic_block): Likewise.
21202 * ira-costs.c (scan_one_insn): Likewise.
21203 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
21204 * lra.c (check_rtl): Likewise.
21205 * reload1.c (elimination_costs_in_insn): Likewise.
21206 * reorg.c (follow_jumps): Likewise.
21207
21208 * config/arm/arm.c (is_jump_table): Use JUMP_TABLE_DATA_P in lieu
21209 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
21210 (thumb_far_jump_used_p): Likewise.
21211 * config/bfin/bfin.c (workaround_rts_anomaly): Likewise.
21212 (workaround_speculation): Likewise.
21213 (add_sched_insns_for_speculation): Likewise.
21214 * config/c6x/c6x.c (reorg_emit_nops): Likewise.
21215 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
21216 (frv_for_each_packet): Likewise.
21217 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Likewise.
21218 * config/ia64/ia64.c (emit_all_insn_group_barriers): Likewise.
21219 (final_emit_insn_group_barriers): Likewise.
21220 * config/m32r/m32r.c (m32r_is_insn): Likewise.
21221 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
21222 (mips16_insn_length): Likewise.
21223 * config/pa/pa.c (pa_reorg): Likewise.
21224 (pa_combine_instructions): Likewise.
21225 * config/rs6000/rs6000.c (rs6000_invalid_within_doloop): Likewise.
21226 * config/sh/sh.c (fixup_addr_diff_vecs): Likewise.
21227 (sh_reorg): Likewise.
21228 (split_branches): Likewise.
21229 * config/spu/spu.c (get_branch_target): Likewise.
21230
21231 * config/s390/s390.c (s390_chunkify_start): Simplify logic using
21232 JUMP_TABLE_DATA_P.
21233
4ac761b0
KY
212342013-03-29 Kirill Yukhin <kirill.yukhin@intel.com>
21235
39385fa6 21236 * config/i386/avx2intrin.h (_mm256_broadcastsi128_si256):
4ac761b0
KY
21237 Fix declaration name.
21238
58a49189
LC
212392013-03-28 Lawrence Crowl <crowl@google.com>
21240
21241 * graphds.h (struct graph.indicies): Remove unused.
21242 * graphite-poly.h (struct graph.original_pddrs): Remove unused.
21243 (SCOP_ORIGINAL_PDDRS): Remove unused.
21244 * sese.h (extern insert_loop_close_phis): Removed unused.
21245 (extern insert_guard_phis): Removed unused.
21246 (extern ivtype_map_elt_info): Removed unused.
21247 (new_ivtype_map_elt): Removed unused.
21248 * sese.c (ivtype_map_elt_info): Removed unused.
21249
7b3b6ae4
LC
212502013-03-28 Lawrence Crowl <crowl@google.com>
21251
21252 * Makefile.in: Add several missing include dependences.
21253 (DUMPFILE_H): New.
21254 (test-dump.o): New. This object is not added to any executable,
21255 but is present for ad-hoc testing.
21256 * bitmap.c
21257 (debug (const bitmap_head_def &)): New.
21258 (debug (const bitmap_head_def *)): New.
21259 * bitmap.h
21260 (extern debug (const bitmap_head_def &)): New.
21261 (extern debug (const bitmap_head_def *)): New.
21262 * cfg.c
21263 (debug (edge_def &)): New.
21264 (debug (edge_def *)): New.
21265 * cfghooks.c
21266 (debug (basic_block_def &)): New.
21267 (debug (basic_block_def *)): New.
21268 * dumpfile.h
21269 (dump_node (const_tree, int, FILE *)): Correct source file.
21270 * dwarf2out.c
21271 (debug (die_struct &)): New.
21272 (debug (die_struct *)): New.
21273 * dwarf2out.h
21274 (extern debug (die_struct &)): New.
21275 (extern debug (die_struct *)): New.
21276 * gimple-pretty-print.c
21277 (debug (gimple_statement_d &)): New.
21278 (debug (gimple_statement_d *)): New.
21279 * gimple-pretty-print.h
21280 (extern debug (gimple_statement_d &)): New.
21281 (extern debug (gimple_statement_d *)): New.
21282 * ira-build.c
21283 (debug (ira_allocno_copy &)): New.
21284 (debug (ira_allocno_copy *)): New.
21285 (debug (ira_allocno &)): New.
21286 (debug (ira_allocno *)): New.
21287 * ira-int.h
21288 (extern debug (ira_allocno_copy &)): New.
21289 (extern debug (ira_allocno_copy *)): New.
21290 (extern debug (ira_allocno &)): New.
21291 (extern debug (ira_allocno *)): New.
21292 * ira-lives.c
21293 (debug (live_range &)): New.
21294 (debug (live_range *)): New.
21295 * lra-int.h
21296 (debug (lra_live_range &)): New.
21297 (debug (lra_live_range *)): New.
21298 * lra-lives.c
21299 (debug (lra_live_range &)): New.
21300 (debug (lra_live_range *)): New.
21301 * omega.c
21302 (debug (omega_pb_d &)): New.
21303 (debug (omega_pb_d *)): New.
21304 * omega.h
21305 (extern debug (omega_pb_d &)): New.
21306 (extern debug (omega_pb_d *)): New.
21307 * print-rtl.c
21308 (debug (const rtx_def &)): New.
21309 (debug (const rtx_def *)): New.
21310 * print-tree.c
21311 (debug_tree (tree): Move within file.
21312 (debug_raw (const tree_node &)): New.
21313 (debug_raw (const tree_node *)): New.
21314 (dump_tree_via_hooks (const tree_node *, int)): New.
21315 (debug (const tree_node &)): New.
21316 (debug (const tree_node *)): New.
21317 (debug_verbose (const tree_node &)): New.
21318 (debug_verbose (const tree_node *)): New.
21319 (debug_head (const tree_node &)): New.
21320 (debug_head (const tree_node *)): New.
21321 (debug_body (const tree_node &)): New.
21322 (debug_body (const tree_node *)): New.
21323 (debug_vec_tree (tree): Move and reimplement in terms of dump.
21324 (debug (vec<tree, va_gc> &)): New.
21325 (debug (vec<tree, va_gc> *)): New.
21326 * rtl.h
21327 (extern debug (const rtx_def &)): New.
21328 (extern debug (const rtx_def *)): New.
21329 * sbitmap.c
21330 (debug_raw (simple_bitmap_def &)): New.
21331 (debug_raw (simple_bitmap_def *)): New.
21332 (debug (simple_bitmap_def &)): New.
21333 (debug (simple_bitmap_def *)): New.
21334 * sbitmap.h
21335 (extern debug (simple_bitmap_def &)): New.
21336 (extern debug (simple_bitmap_def *)): New.
21337 (extern debug_raw (simple_bitmap_def &)): New.
21338 (extern debug_raw (simple_bitmap_def *)): New.
21339 * sel-sched-dump.c
21340 (debug (vinsn_def &)): New.
21341 (debug (vinsn_def *)): New.
21342 (debug_verbose (vinsn_def &)): New.
21343 (debug_verbose (vinsn_def *)): New.
21344 (debug (expr_def &)): New.
21345 (debug (expr_def *)): New.
21346 (debug_verbose (expr_def &)): New.
21347 (debug_verbose (expr_def *)): New.
21348 (debug (vec<rtx> &)): New.
21349 (debug (vec<rtx> *)): New.
21350 * sel-sched-dump.h
21351 (extern debug (vinsn_def &)): New.
21352 (extern debug (vinsn_def *)): New.
21353 (extern debug_verbose (vinsn_def &)): New.
21354 (extern debug_verbose (vinsn_def *)): New.
21355 (extern debug (expr_def &)): New.
21356 (extern debug (expr_def *)): New.
21357 (extern debug_verbose (expr_def &)): New.
21358 (extern debug_verbose (expr_def *)): New.
21359 (extern debug (vec<rtx> &)): New.
21360 (extern debug (vec<rtx> *)): New.
21361 * sel-sched-ir.h
21362 (_list_iter_cond_expr): Make inline instead of static.
21363 * sreal.c
21364 (debug (sreal &)): New.
21365 (debug (sreal *)): New.
21366 * sreal.h
21367 (extern debug (sreal &)): New.
21368 (extern debug (sreal *)): New.
21369 * tree.h
21370 (extern debug_raw (const tree_node &)): New.
21371 (extern debug_raw (const tree_node *)): New.
21372 (extern debug (const tree_node &)): New.
21373 (extern debug (const tree_node *)): New.
21374 (extern debug_verbose (const tree_node &)): New.
21375 (extern debug_verbose (const tree_node *)): New.
21376 (extern debug_head (const tree_node &)): New.
21377 (extern debug_head (const tree_node *)): New.
21378 (extern debug_body (const tree_node &)): New.
21379 (extern debug_body (const tree_node *)): New.
21380 (extern debug (vec<tree, va_gc> &)): New.
21381 (extern debug (vec<tree, va_gc> *)): New.
21382 * tree-cfg.c
21383 (debug (struct loop &)): New.
21384 (debug (struct loop *)): New.
21385 (debug_verbose (struct loop &)): New.
21386 (debug_verbose (struct loop *)): New.
21387 * tree-dump.c: Add header dependence.
21388 * tree-flow.h
21389 (extern debug (struct loop &)): New.
21390 (extern debug (struct loop *)): New.
21391 (extern debug_verbose (struct loop &)): New.
21392 (extern debug_verbose (struct loop *)): New.
21393 * tree-data-ref.c
21394 (debug (data_reference &)): New.
21395 (debug (data_reference *)): New.
21396 (debug (vec<data_reference_p> &)): New.
21397 (debug (vec<data_reference_p> *)): New.
21398 (debug (vec<ddr_p> &)): New.
21399 (debug (vec<ddr_p> *)): New.
21400 * tree-data-ref.h
21401 (extern debug (data_reference &)): New.
21402 (extern debug (data_reference *)): New.
21403 (extern debug (vec<data_reference_p> &)): New.
21404 (extern debug (vec<data_reference_p> *)): New.
21405 (extern debug (vec<ddr_p> &)): New.
21406 (extern debug (vec<ddr_p> *)): New.
21407 * tree-ssa-alias.c
21408 (debug (pt_solution &)): New.
21409 (debug (pt_solution *)): New.
21410 * tree-ssa-alias.h
21411 (extern debug (pt_solution &)): New.
21412 (extern debug (pt_solution *)): New.
21413 * tree-ssa-alias.c
21414 (debug (_var_map &)): New.
21415 (debug (_var_map *)): New.
21416 (debug (tree_live_info_d &)): New.
21417 (debug (tree_live_info_d *)): New.
21418 * tree-ssa-alias.h
21419 (extern debug (_var_map &)): New.
21420 (extern debug (_var_map *)): New.
21421 (extern debug (tree_live_info_d &)): New.
21422 (extern debug (tree_live_info_d *)): New.
21423
be77e1e5
JH
214242013-03-28 Jan Hubicka <jh@suse.cz>
21425
21426 * lto-cgraph.c (merge_profile_summaries): Fix overflows.
21427
777e6976
IB
214282013-03-28 Ian Bolton <ian.bolton@arm.com>
21429
21430 * config/aarch64/aarch64.md (aarch64_can_eliminate): Keep frame
21431 record only when desired or required.
21432
9cd347ae
UB
214332013-03-28 Uros Bizjak <ubizjak@gmail.com>
21434
21435 * config/i386/i386.md (*vec_extract2vdi_1): Merge with
21436 *vec_extractv2di_1_rex64. Use x64 isa attribute.
21437
33159866 214382013-03-28 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
2a1d1991
N
21439
21440 * config/aarch64/aarch64.md (*and<mode>3_compare0): New pattern.
21441 (*andsi3_compare0_uxtw): New pattern.
21442 (*and_<SHIFT:optab><mode>3_compare0): New pattern.
21443 (*and_<SHIFT:optab>si3_compare0_uxtw): New pattern.
21444
89ab31c1
JH
214452013-03-28 Jan Hubicka <jh@suse.cz>
21446
21447 * data-streamer-in.c (streamer_read_gcov_count): New function.
21448 * gimple-streamer-out.c: Include value-prof.h.
21449 (output_gimple_stmt): Output histogram.
21450 (output_bb): Use streamer_write_gcov_count.
21451 * value-prof.c: Include data-streamer.h
21452 (dump_histogram_value): Add HIST_TYPE_MAX.
21453 (stream_out_histogram_value): New function.
21454 (stream_in_histogram_value): New function.
21455 * value-prof.h (enum hist_type): Add HIST_TYPE_MAX.
21456 (stream_out_histogram_value, stream_in_histogram_value): Declare.
21457 * data-streamer-out.c (streamer_write_gcov_count): New function.
21458 (streamer_write_gcov_count_stream): New function.
21459 * lto-cgraph.c (lto_output_edge): Update counter streaming.
21460 (lto_output_node): Likewise.
21461 (input_node, input_edge): Likewise.
21462 * lto-streamer-out.c (output_cfg): Update streaming.
21463 * lto-streamer-in.c (input_cfg): Likewise.
21464 * data-streamer.h (streamer_write_gcov_count,
21465 streamer_write_gcov_count_stream, streamer_read_gcov_count): Declare.
21466 * gimple-streamer-in.c: Include value-prof.h
21467 (input_gimple_stmt): Input histograms.
21468 (input_bb): Update profile streaming.
21469
e594716a 214702013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
b4c73eed 21471
33159866 21472 * genmodes.c (emit_max_int): New function.
8697be17 21473 (emit_insn_modes_h): Added call to emit_max_function.
39385fa6
PC
21474 * doc/rtl.texi (MAX_BITSIZE_MODE_ANY_INT, MAX_BITSIZE_MODE_ANY_MODE):
21475 Added doc.
8697be17 21476 * machmode.def: Fixed comment.
89ab31c1 21477
e594716a 214782013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
8697be17
KZ
21479
21480 * combine.c (try_combine): Removed useless assert.
b4c73eed
KZ
21481 * cselib.c (rtx_equal_for_cselib_1): Removed unnecessary parens.
21482
74946978
MP
214832013-03-28 Marek Polacek <polacek@redhat.com>
21484 Richard Biener <rguenther@suse.de>
21485
21486 PR tree-optimization/56695
21487 * tree-vect-stmts.c (vectorizable_condition): Unconditionally
21488 build signed result of a vector comparison.
21489 * tree-cfg.c (verify_gimple_comparison): Check that a result
21490 of a vector comparison has signed type.
21491
a64b9c26
RB
214922013-03-28 Richard Biener <rguenther@suse.de>
21493
21494 PR tree-optimization/37021
21495 * tree-vect-slp.c (vect_build_slp_tree): When not unrolling
21496 do not restrict gaps between groups.
21497 * tree-vect-stmts.c (vectorizable_load): Properly account for
21498 a gap between groups.
21499
a9dc2a2f
EB
215002013-03-28 Eric Botcazou <ebotcazou@adacore.com>
21501
21502 * toplev.c (process_options): Do not disable -fomit-frame-pointer on a
21503 general basis if unwind info is requested and ACCUMULATE_OUTGOING_ARGS
21504 is not enabled.
21505
53cb97f9
GP
215062013-03-27 Gerald Pfeifer <gerald@pfeifer.com>
21507
21508 * doc/invoke.texi (AVR Options): Tweak link for AVR-LibC user manual.
21509 * doc/extend.texi (Named Address Spaces): Ditto.
21510 (Variable Attributes): Ditto.
21511
b802ae5c
KT
215122013-03-27 Kai Tietz <ktietz@redhat.com>
21513
eddae10a
KT
21514 * config.build: Add support for cygwin x64 target.
21515 * config.gcc: Likewise.
21516 * config.host: Likewise.
21517 * configure.ac: Likewise
21518 * configure: Regenerated.
b802ae5c 21519
371e77e3 215202013-03-27 Kai Tietz <ktietz@redhat.com>
8269de54
KT
21521
21522 * config/i386/cygwin-stdint.h: Add support for cygwin x64 target.
21523 * config/i386/t-cygwin-w64: New file.
21524 * config/i386/cygwin-w64.h: New file.
21525 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Extend
21526 and add support for x64-cygwin target.
21527 (CPP_SPEC): Likewise.
21528 (CXX_WRAP_SPEC_LIST): Undefine before define.
21529 (LIBGCJ_SONAME): Use 15 as version.
21530
f49b33cb
RB
215312013-03-27 Richard Biener <rguenther@suse.de>
21532
21533 PR tree-optimization/56716
21534 * tree-ssa-structalias.c (perform_var_substitution): Adjust
21535 dumping for ref nodes.
21536
b37a6ce5
MJ
215372013-03-27 Martin Jambor <mjambor@suse.cz>
21538
21539 PR tree-optimization/55334
21540 * ipa-cp.c (initialize_node_lattices): Allow IPA-CP through and to
21541 restricted pointers to arrays.
21542
9469b9b2
GDR
215432013-03-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
21544
21545 * Makefile.in (.SUFFIXES): Add .cc.
21546 (.c.o): Apply same recipe for implicit rule .cc.o.
21547
7d24f650
RB
215482013-03-27 Richard Biener <rguenther@suse.de>
21549
21550 PR tree-optimization/37021
21551 * tree-vect-data-refs.c (vect_check_strided_load): Allow
21552 REALPART/IMAGPART_EXPRs around the supported refs.
21553 * tree-ssa-structalias.c (find_func_aliases): Assume that
21554 floating-point values are not used to transfer pointers.
21555
2f251a05
AI
215562013-03-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
21557
f43245d1
UB
21558 * target.def (TARGET_HAS_IFUNC_P): New target hook.
21559 * doc/tm.texi.in (TARGET_HAS_IFUNC_P): New.
21560 * doc/tm.texi: Regenerate.
21561 * targhooks.h (default_has_ifunc_p): New.
21562 * targhooks.c (default_has_ifunc_p): Ditto.
21563 * config/linux-protos.h: New file.
21564 * config/linux-android.h (TARGET_HAS_IFUNC_P): Using version of this
21565 hook for linux which disables support of indirect functions in android.
21566 * config/linux-android.c: New file.
21567 * config/t-linux-android.c: Ditto.
21568 * config.gcc: Added new object file linux-android.o.
21569 * config/i386/i386.c (ix86_get_function_versions_dispatcher):
2f251a05 21570 Using TARGET_HAS_IFUNC hook instead of HAVE_GNU_INDIRECT_FUNCTION.
f43245d1 21571 * varasm.c (do_assemble_alias): Likewise.
2f251a05
AI
21572 * configure.ac: Define HAVE_GNU_INDIRECT_FUNCTION as zero if the target
21573 doesn't support indirect functions.
21574 * configure: Regenerate.
21575
78b4e425
BC
215762013-03-27 Bin Cheng <bin.cheng@arm.com>
21577
21578 PR target/56102
21579 * config/arm/arm.c (thumb1_rtx_costs, thumb1_size_rtx_costs): Fix
21580 rtx costs for SET/ASHIFT/ASHIFTRT/LSHIFTRT/ROTATERT patterns with
21581 mult-word mode.
21582
a5ba7b92
AK
215832013-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21584
21585 * config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Define.
21586
be624986
TG
215872013-03-27 Terry Guo <terry.guo@arm.com>
21588
21589 * config/arm/arm-cores.def: Added core cortex-r7.
21590 * config/arm/arm-tune.md: Regenerated.
21591 * config/arm/arm-tables.opt: Regenerated.
21592 * doc/invoke.texi: Added entry for core cortex-r7.
21593
0a514f47
WL
215942013-03-27 Walter Lee <walt@tilera.com>
21595
21596 * config/tilegx/tilegx.c (tilegx_expand_prologue): Avoid
21597 double-decrement of next_scratch_regno.
21598
9332b0d2
WL
215992013-03-27 Walter Lee <walt@tilera.com>
21600
801d9b2a 21601 * config/tilegx/tilegx.md (insn_v1mulu): Fix predicates on
9332b0d2
WL
21602 input operands.
21603 (insn_v1mulus): Ditto.
21604 (insn_v2muls): Ditto.
21605
f54ea5dd
WL
216062013-03-27 Walter Lee <walt@tilera.com>
21607
e594716a 21608 * config/tilegx/tilegx.h (ASM_OUTPUT_ADDR_VEC_ELT): Delete extra tab.
f54ea5dd
WL
21609 (ASM_OUTPUT_ADDR_DIFF_ELT): Ditto.
21610
bf60f4ca
WL
216112013-03-27 Walter Lee <walt@tilera.com>
21612
e594716a 21613 * config/tilegx/tilegx.md (*sibcall_insn): Fix type atribute for jr.
bf60f4ca
WL
21614 (*sibcall_value): Ditto.
21615
e3b51eeb
WL
216162013-03-27 Walter Lee <walt@tilera.com>
21617
21618 * config/tilegx/tilegx.md (insn_mnz_<mode>): Replaced by ...
21619 (insn_mnz_v8qi): ... this ...
21620 (insn_mnz_v4hi): ... and this. Replace (const_int 0) with the
21621 vector equivalent.
21622 (insn_v<n>mnz): Replaced by ...
21623 (insn_v1mnz): ... this ...
21624 (insn_v2mnz): ... and this. Replace (const_int 0) with the vector
21625 equivalent.
21626 (insn_mz_<mode>): Replaced by ...
21627 (insn_mz_v8qi): ... this ...
21628 (insn_mz_v4hi): ... and this. Replace (const_int 0) with the
21629 vector equivalent.
21630 (insn_v<n>mz): Replaced by ...
21631 (insn_v1mz): ... this ...
21632 (insn_v2mz): ... and this. Replace (const_int 0) with the vector
21633 equivalent.
21634
4fc7b145
EB
216352013-03-26 Eric Botcazou <ebotcazou@adacore.com>
21636
21637 * doc/invoke.texi (SPARC options): Remove -mlittle-endian.
21638
6f33817e
RM
216392013-03-26 Roland McGrath <mcgrathr@google.com>
21640
21641 * config/arm/arm.c (arm_print_operand: case 'w'): Use fputs rather
21642 than fprintf with a non-constant, non-format string.
21643
93a4145b
UB
216442013-03-26 Uros Bizjak <ubizjak@gmail.com>
21645
21646 * config/i386/i386.md (*cmpqi_ext_1): Merge with *cmpqi_ext_1_rex64
21647 using nox64 isa attribute. Use nonimmediate_x86nomem_operand as
21648 operand 0 predicate.
21649 (*cmpqi_ext_3): Merge with *cmpqi_ext_3_rex64 using nox64 isa
21650 attribute. Use general_x64nomem_operand as operand 1 predicate.
21651 (*movqi_extv_1): Merge with *movqi_extv_1_rex64 using nox64 isa
21652 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
21653 (*movqi_extzv_2): Merge with *movqi_extzv_2_rex64 using nox64 isa
21654 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
21655 (mov<mode>_insv_1): Remove expander. Merge insn with
21656 movsi_insv_1 using SWI48 mode iterator and nox64 isa attribute.
21657 Use general_x64nomem_operand as operand 1 predicate.
21658 (addqi_ext_1): Merge with *addqi_ext_1_rex64 using nox64 isa attribute.
21659 (*testqi_ext_1): Merge with *testqi_ext_1_rex64 using nox64 isa
21660 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
21661 (*andqi_ext_1): Merge with *andqi_ext_1_rex64 using nox64 isa
21662 attribute. Use nonimmediate_x64nomem_operand as operand 2 predicate.
21663 (*<code>qi_ext_1): Merge with *<code>qi_ext_1_rex64 using nox64 isa
21664 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
21665 (*xorqi_cc_ext_1): Merge with *xorqi_cc_ext_1_rex64 using nox64
21666 isa attribute. Use general_x64nomem_operand as operand 2 predicate.
21667 * config/i386/predicates.md (nonimmediate_x64nomem_operand): New.
21668 (general_x64nomem_operand): Ditto.
21669
c6a9ed5a 216702013-03-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
df599020
SH
21671
21672 * config/rtems.opt: Add -pthread option.
21673
31b0a960
RB
216742013-03-26 Richard Biener <rguenther@suse.de>
21675
93a4145b
UB
21676 * alias.c (find_base_term): Avoid redundant and not used recursion.
21677 (base_alias_check): Get the initial base term from the caller.
31b0a960
RB
21678 (true_dependence_1): Compute and pass base terms to base_alias_check.
21679 (write_dependence_p): Likewise.
21680 (may_alias_p): Likewise.
21681
79517551
SN
216822013-03-26 Sofiane Naci <sofiane.naci@arm.com>
21683
21684 * config/aarch64/aarch64.c (aarch64_classify_address): Support
21685 PC-relative load in SI modes and above only.
21686
a76213b9
XQ
216872013-03-26 Xinyu Qi <xyqi@marvell.com>
21688
21689 * config/arm/arm.h (FIRST_IWMMXT_GR_REGNUM): Add comment.
33159866
UB
21690 * config/arm/iwmmxt.md (WCGR0): Update.
21691 (WCGR1, WCGR2, WCGR3): Likewise.
a76213b9 21692
37ff9355
UB
216932013-03-26 Uros Bizjak <ubizjak@gmail.com>
21694
21695 * config/i386/i386.md (*movdfcc_1): Merge with *movdfcc_1_rex64.
21696 Use x64 and nox64 isa attributes.
21697
30b0317c
RB
216982013-03-26 Richard Biener <rguenther@suse.de>
21699
21700 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
21701 alignment computations and rely on get_object_alignment_1
21702 for the !TYPE_P case.
21703 Commonize DECL/COMPONENT_REF handling in the ARRAY_REF path.
21704
cbcdb140
WL
217052013-03-26 Walter Lee <walt@tilera.com>
21706
21707 * config/tilegx/tilegx.h (PROFILE_BEFORE_PROLOGUE): Define.
21708 * config/tilegx/tilepro.h (PROFILE_BEFORE_PROLOGUE): Define.
21709
dd884525 217102013-03-25 Jeff Law <law@redhat.com>
be672e08 21711
33159866
UB
21712 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Add missing
21713 check for INTEGRAL_TYPE_P that was missing due to checking in
dd884525
JL
21714 wrong version of prior patch.
21715
0051d3ec
WL
217162013-03-25 Walter Lee <walt@tilera.com>
21717
21718 * config/tilegx/tilegx-builtins.h (enum tilegx_builtin): Add
21719 TILEGX_INSN_SHUFFLEBYTES1.
21720 * config/tilegx/tilegx.c (tilegx_builtin_info): Add entry for
21721 shufflebytes1.
21722 (tilegx_builtins): Ditto.
21723 * config/tilegx/tilegx.md (insn_shufflebytes1): New pattern.
21724
065a3605
WL
217252013-03-25 Walter Lee <walt@tilera.com>
21726
21727 * config/tilegx/tilegx.md (floatsisf2): New pattern.
0051d3ec
WL
21728 (floatunssisf2): New pattern.
21729 (floatsidf2): New pattern.
21730 (floatunssidf2): New pattern.
065a3605 21731
5b2a3c82
WL
217322013-03-25 Walter Lee <walt@tilera.com>
21733
21734 * config/tilegx/tilegx.c (expand_set_cint64_one_inst): Inline
21735 tests for constraint J, K, N, P.
21736
192ea533
WL
217372013-03-25 Walter Lee <walt@tilera.com>
21738
21739 * config/tilegx/tilegx.c (tilegx_asm_preferred_eh_data_format):
21740 Use indirect/pcrel encoding.
21741 * config/tilepro/tilepro.c (tilepro_asm_preferred_eh_data_format):
21742 Ditto.
21743
855e0d0b
SE
217442013-03-25 Steve Ellcey <sellcey@mips.com>
21745
21746 * config/mips/mmips-cpus.def (74kc, 74kf2_1, 74kf, 74kf, 74kf1_1,
21747 74kfx, 74kx, 74kf3_2): Add PTF_AVOID_IMADD.
21748 * config/mips/mips.c (mips_option_override): Set IMADD default.
21749 * config/mips/mips.h (PTF_AVOID_IMADD): New.
21750 (ISA_HAS_MADD_MSUB): Remove MIPS16 check.
21751 (GENERATE_MADD_MSUB): Remove TUNE_74K check, add MIPS16 check.
21752 * config/mips/mips.md (mimadd): New flag for integer madd/msub.
21753 * doc/invoke.texi (-mimadd/-mno-imadd): New.
21754
39e45653
JL
217552013-03-25 Jeff Law <law@redhat.com>
21756
21757 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Rework
21758 slightly to avoid creating and folding useless trees. Simplify
21759 slightly by restricting to INTEGER_CSTs and using int_fits_type_p.
21760
7482c470
UB
217612013-03-25 Uros Bizjak <ubizjak@gmail.com>
21762
21763 * config/i386/i386.md (*zero_extendsidi2): Merge with
21764 *zero_extendsidi2_rex64. Use x64 and nox64 isa attributes.
21765 * config/i386/predicates.md (x86_64_zext_operand): Rename from
21766 x86_64_zext_general_operand. Use nonimmediate_operand on 32bit
21767 targets. Clarify comment.
21768
4a53743e
MJ
217692013-03-25 Martin Jambor <mjambor@suse.cz>
21770
21771 * ipa-prop.c (ipa_write_jump_function): Stream simple and aritmetic
21772 pass-through jump functions differently.
21773 (ipa_read_jump_function): Likewise. Also use setter functions to set
21774 up jump functions.
21775
162712de
MJ
217762013-03-25 Martin Jambor <mjambor@suse.cz>
21777
21778 * ipa-cp.c (ipa_get_indirect_edge_target): Renamed to
21779 ipa_get_indirect_edge_target_1, added parameter agg_reps and ability to
21780 process it.
21781 (ipa_get_indirect_edge_target): New function.
21782 (devirtualization_time_bonus): New parameter known_aggs, pass it to
21783 ipa_get_indirect_edge_target. Update all callers.
21784 (ipcp_discover_new_direct_edges): New parameter aggvals. Pass it to
21785 ipa_get_indirect_edge_target_1 instead of calling
21786 ipa_get_indirect_edge_target.
21787 (create_specialized_node): Pass aggvlas to
21788 ipcp_discover_new_direct_edges.
21789
a5a4c20a
KT
217902013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21791
21792 * config/arm/arm.md (f_sels, f_seld): New types.
21793 (*cmov<mode>): New pattern.
21794 * config/arm/predicates.md (arm_vsel_comparison_operator): New
21795 predicate.
21796
f992b9fc
KT
217972013-03-25 Kai Tietz <ktietz@redhat.com>
21798
21799 * config/i386/xm-mingw32.h (__USE_MINGW_ANSI_STDIO): Enable
21800 POSIX-printf for mingw-hosted builds.
21801
c16fd676
RB
218022013-03-25 Richard Biener <rguenther@suse.de>
21803
21804 PR middle-end/56694
21805 * tree-eh.c (lower_eh_must_not_throw): Strip BLOCKs from the
21806 must-not-throw stmt location.
21807
5ad29f12
KT
218082013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21809
21810 * config/arm/arm.c (arm_emit_load_exclusive): Add acq parameter.
21811 Emit load-acquire versions when acq is true.
21812 (arm_emit_store_exclusive): Add rel parameter.
21813 Emit store-release versions when rel is true.
21814 (arm_split_compare_and_swap): Use acquire-release instructions
21815 instead.
21816 of barriers when appropriate.
21817 (arm_split_atomic_op): Likewise.
21818 * config/arm/arm.h (TARGET_HAVE_LDACQ): New macro.
21819 * config/arm/unspecs.md (VUNSPEC_LAX): New unspec.
21820 (VUNSPEC_SLX): Likewise.
21821 (VUNSPEC_LDA): Likewise.
21822 (VUNSPEC_STL): Likewise.
21823 * config/arm/sync.md (atomic_load<mode>): New pattern.
21824 (atomic_store<mode>): Likewise.
21825 (arm_load_acquire_exclusive<mode>): Likewise.
21826 (arm_load_acquire_exclusivesi): Likewise.
21827 (arm_load_acquire_exclusivedi): Likewise.
21828 (arm_store_release_exclusive<mode>): Likewise.
21829
03a7dddb
CM
218302013-03-25 Catherine Moore <clm@codesourcery.com>
21831
21832 * config/mips/constraints.md (u, Udb7 Uead, Uean, Uesp, Uib3,
21833 Uuw6, Usb4, ZS, ZT, ZU, ZV, ZW): New constraints.
21834 * config/mip/predicates.md (lwsp_swsp_operand,
21835 lw16_sw16_operand, lhu16_sh16_operand, lbu16_operand,
21836 sb16_operand, db4_operand, db7_operand, ib3_operand,
21837 sb4_operand, ub4_operand, uh4_operand, uw4_operand,
21838 uw5_operand, uw6_operand, addiur2_operand, addiusp_operand,
21839 andi16_operand): New predicates.
21840 * config/mips/mips.md (compression): New attribute.
21841 (enabled): New attribute.
21842 (length): Consider compression in computing length.
21843 (shift_compression): New code attribute.
21844 (*add<mode>3): New operands. Record compression.
21845 (sub<mode>3): Likewise.
21846 (one_cmpl<mode>2): Likewise.
21847 (*and<mode>3): Likewise.
21848 (*ior<mode>3): Likewise.
21849 (unnamed pattern for xor): Likewise.
21850 (*zero_extend<SHORT:mode><GPR:mode>2): Likewise.
21851 (*<optab><mode>3): Likewise.
21852 (*mov<mode>_internal: Likewise.
21853 * config/mips/mips-protos.h (mips_signed_immediate_p): New.
21854 (mips_unsigned_immediate_p): New.
21855 (umips_lwsp_swsp_address_p): New.
21856 (m16_based_address_p): New.
21857 * config/mips/mips-protos.h (mips_signed_immediate_p): New prototype.
21858 (mips_unsigned_immediate_p): New prototype.
21859 (lwsp_swsp_address_p): New prototype.
21860 (m16_based_address_p): New prototype.
21861 * config/mips/mips.c (mips_unsigned_immediate_p): New function.
21862 (mips_signed_immediate_p): New function.
21863 (m16_based_address_p): New function.
21864 (lwsp_swsp_address_p): New function.
21865 (mips_print_operand_punctuation): Recognize short delay slot insns
21866 for microMIPS.add<mode>3"
21867
f35c297f 218682013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
a5784ce6 21869
f35c297f
KT
21870 PR target/56720
21871 * config/arm/iterators.md (v_cmp_result): New mode attribute.
21872 * config/arm/neon.md (vcond<mode><mode>): Handle unordered cases.
21873
051b9446
RB
218742013-03-25 Richard Biener <rguenther@suse.de>
21875
21876 PR tree-optimization/56689
21877 * tree-vrp.c (execute_vrp): Mark loops for fixup if we removed
21878 any edge.
21879
374001cb
RB
218802013-03-25 Richard Biener <rguenther@suse.de>
21881
21882 * tree-ssa-loop-im.c (struct mem_ref): Use bitmap_head instead
21883 of bitmap.
21884 (memory_references): Likewise.
21885 (outermost_indep_loop, mem_ref_alloc, mark_ref_stored,
21886 gather_mem_refs_stmt, record_dep_loop, ref_indep_loop_p_1,
21887 ref_indep_loop_p_2, find_refs_for_sm): Adjust.
21888 (gather_mem_refs_in_loops): Fold into ...
21889 (analyze_memory_references): ... this. Move initialization
21890 to tree_ssa_lim_initialize.
21891 (fill_always_executed_in): Rename to ...
21892 (fill_always_executed_in_1): ... this.
21893 (fill_always_executed_in): Move contains_call computation to
21894 this new function from ...
21895 (tree_ssa_lim_initialize): ... here.
21896 (tree_ssa_lim): Call fill_always_executed_in.
21897
57895947
EB
218982013-03-25 Eric Botcazou <ebotcazou@adacore.com>
21899
21900 * postreload.c (reload_combine): Fix code detecting returns.
21901
1e1b18c1
EB
219022013-03-25 Eric Botcazou <ebotcazou@adacore.com>
21903
21904 * function.c (emit_use_return_register_into_block): On cc0 targets,
21905 do not emit the sequence between cc0 setter and user.
21906
9216baf1
KT
219072013-03-25 Kai Tietz <ktietz@redhat.com>
21908
1e1b18c1
EB
21909 * config/i386/predicates.md (local_symbolic_operand): Interpret
21910 dll-imported symbols as none-local.
9216baf1 21911
76421b44
RB
219122013-03-25 Richard Biener <rguenther@suse.de>
21913
21914 * tree-ssa-loop-im.c (struct depend): Remove.
21915 (struct lim_aux_data): Make depends a vec of gimples.
21916 (free_lim_aux_data): Adjust.
21917 (add_dependency): Likewise.
21918 (set_level): Likewise.
21919
d154bfa2
RB
219202013-03-25 Richard Biener <rguenther@suse.de>
21921
21922 PR middle-end/56434
21923 * calls.c (expand_call): Use MALLOC_ABI_ALIGNMENT to annotate
21924 the pointer returned by calls with ECF_MALLOC set.
21925
2cd9804e
UB
219262013-03-24 Uros Bizjak <ubizjak@gmail.com>
21927
acef5fe0
UB
21928 * config/i386/mmx.md (mov<mode>): Add ?!Ym,r and r,?!Ym alternatives.
21929
219302013-03-24 Uros Bizjak <ubizjak@gmail.com>
21931
21932 * config/i386/mmx.md (mov<mode>): Merge with movv2sf expander
2cd9804e
UB
21933 using MMXMODE mode iterator.
21934 (*move<mode>_internal): Merge with *movv2sf_internal and
21935 *movv2sf_internal_rex64 using MMXMODE mode iterator.
21936
225ccc68
SB
219372013-03-23 Steven Bosscher <steven@gcc.gnu.org>
21938
85c0f02d
SB
21939 * gcse.c (oprs_unchanged_p): Respect flag_gcse_lm.
21940 (record_last_mem_set_info): Likewise.
21941
225ccc68
SB
21942 * df-core.c (rest_of_handle_df_initialize): Use XCNEWVEC instead
21943 of XNEWVEC followed by memset.
21944 (df_worklist_dataflow): Use XNEWVEC instead of xmalloc with a cast.
21945
b64925dc
SB
219462013-03-23 Steven Bosscher <steven@gcc.gnu.org>
21947
21948 * config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
21949 config/epiphany/epiphany.c, config/frv/frv.c, config/ia64/ia64.c,
21950 config/iq2000/iq2000.c, config/mcore/mcore.c, config/mep/mep.c,
21951 config/mmix/mmix.c, config/pa/pa.c, config/rs6000/rs6000.c,
21952 config/s390/s390.c, config/sparc/sparc.c, config/spu/spu.c,
21953 config/stormy16/stormy16.c, config/v850/v850.c, config/xtensa/xtensa.c,
21954 dwarf2out.c, hw-doloop.c, resource.c, rtl.h : Where applicable, use
21955 the predicates NOTE_P, NONJUMP_INSN_P, JUMP_P, CALL_P, LABEL_P, and
21956 BARRIER_P instead of GET_CODE.
21957
b9aaf52e
EB
219582013-03-23 Eric Botcazou <ebotcazou@adacore.com>
21959
21960 * config/sparc/sparc.c (sparc_emit_probe_stack_range): Fix small
21961 inaccuracy in the probing code.
21962
21963 * config/sparc/sparc.md (ctrapsi4): Add predicate for operand #3.
21964 (ctrapdi4): Likewise.
21965
66de4d7c
EB
219662013-03-23 Eric Botcazou <ebotcazou@adacore.com>
21967
21968 * calls.c (expand_call): Add missing guard to code handling return
21969 of non-BLKmode structures in MSB.
21970 * function.c (expand_function_end): Likewise.
21971
4f25c8fb
EB
219722013-03-23 Eric Botcazou <ebotcazou@adacore.com>
21973
21974 * combine.c (try_combine): Adjust comment. Do not add the set of
21975 insn #0 if the destination indirectly is set or dies in insn #2.
21976 Tidy up code to distribute a new note.
21977
23b7850d
UB
219782013-03-22 Uros Bizjak <ubizjak@gmail.com>
21979
21980 * config/i386/i386.md (*movdi_internal): Set prefix_rex attribute
21981 also for alternatives 16 and 17.
21982
bed852cf
UB
219832013-03-22 Uros Bizjak <ubizjak@gmail.com>
21984
21985 * config/i386/sse.md (*mov<mode>_internal): Merge with
21986 *mov<mode>_internal_rex64. Use x64 and nox64 isa attributes.
21987 Emit insn template depending on type attribute. Use
21988 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
21989 movd instead of movq mnemonic for interunit moves. Rewrite mode
21990 attribute calculation. Remove unit attribute calculation.
21991 Set prefix attribute to maybe_vex for sselog1 and ssemov types.
21992 Set prefix_data16 attribute for DImode ssemov types.
21993 Use Ym instead of y for SSE-MMX conversion alternatives.
21994 Reorder operand constraints.
21995
1e8a7937
SB
219962013-03-22 Steven Bosscher <steven@gcc.gnu.org>
21997
21998 * df.h (df_insn_delete): Adjust prototype.
21999 * emit-rtl.c (remove_insn): Pass a basic block to df_insn_delete
22000 and let it decide whether mark the basic block dirty.
22001 (set_insn_deleted): Only pass INSN_P insns to df_insn_delete.
22002 * df-scan.c (df_insn_info_delete): New helper function, split
22003 off from df_insn_delete.
22004 (df_scan_free_bb_info): Use it.
22005 (df_insn_rescan, df_insn_rescan_all, df_process_deferred_rescans):
22006 Likewise.
22007 (df_insn_delete): Likewise. Take insn rtx as argument. Verify
22008 that the insn is actually an insn and it has a non-NULL basic block.
22009 Do not mark basic block dirty if only deleting a DEBUG_INSN.
22010
e14d094c
RB
220112013-03-22 Richard Biener <rguenther@suse.de>
22012
22013 * tree-ssa-loop-im.c (struct mem_ref): Remove indep_ref and
22014 dep_ref members.
22015 (mem_ref_alloc): Do not allocate them.
22016 (refs_independent_p): Do not query or maintain a cache.
22017
e9cf7316
RB
220182013-03-22 Richard Biener <rguenther@suse.de>
22019
22020 * tree-ssa-loop-im.c (memory_references): Drop all_refs_in_loop.
22021 (gather_mem_refs_in_loops): Do not compute it.
22022 (analyze_memory_references): Do not allocate it.
22023 (tree_ssa_lim_finalize): Do not free it.
22024 (for_all_locs_in_loop): Do not query all_refs_in_loop.
22025
f046e81b
RB
220262013-03-22 Richard Biener <rguenther@suse.de>
22027
22028 * is-a.h (as_a): Use gcc_checking_assert.
bed852cf 22029
a05c0ddf
IB
220302013-03-22 Ian Bolton <ian.bolton@arm.com>
22031
22032 * config/aarch64/aarch64.c (aarch64_print_operand): New
22033 format specifier for printing a constant in hex.
22034 * config/aarch64/aarch64.md (insv_imm<mode>): Use the X
22035 format specifier for printing second operand.
22036
c00217fc
RB
220372013-03-22 Richard Biener <rguenther@suse.de>
22038
22039 * tree-ssa-loop-im.c (memory_references): Add refs_stored_in_loop
22040 bitmaps.
22041 (gather_mem_refs_in_loops): Perform store accumulation here.
22042 (create_vop_ref_mapping_loop): Remove.
22043 (create_vop_ref_mapping): Likewise.
22044 (analyze_memory_references): Initialize refs_stored_in_loop.
bed852cf 22045 (LOOP_DEP_BIT): New define to map to bits in (in)dep_loop bitmaps.
c00217fc
RB
22046 (record_indep_loop): Remove.
22047 (record_dep_loop): New function.
22048 (ref_indep_loop_p_1): Adjust to only walk over references
22049 in the loop, not its subloops.
22050 (ref_indep_loop_p): Rename to ...
22051 (ref_indep_loop_p_2): ... this and recurse over the loop tree,
22052 maintaining a more fine-grained cache.
22053 (ref_indep_loop_p): Wrap ref_indep_loop_p_2.
22054 (tree_ssa_lim_finalize): Free refs_stored_in_loop.
22055
15d19bf8
RB
220562013-03-22 Richard Biener <rguenther@suse.de>
22057
22058 * tree-ssa-loop-im.c (struct mem_ref_locs): Remove.
22059 (struct mem_ref): Make accesses_in_loop a vec of a vec of
22060 aggregate mem_ref_loc.
22061 (free_mem_ref_locs): Inline into ...
22062 (memref_free): ... this and adjust.
22063 (mem_ref_alloc): Adjust.
22064 (mem_ref_locs_alloc): Remove.
22065 (record_mem_ref_loc): Adjust.
22066 (get_all_locs_in_loop): Rewrite into ...
22067 (for_all_locs_in_loop): ... this iterator.
22068 (rewrite_mem_ref_loc): New functor.
22069 (rewrite_mem_refs): Use for_all_locs_in_loop.
22070 (sm_set_flag_if_changed): New functor.
22071 (execute_sm_if_changed_flag_set): Use for_all_locs_in_loop.
22072 (ref_always_accessed): New functor.
22073 (ref_always_accessed_p): Use for_all_locs_in_loop.
22074
6f37411d
MG
220752013-03-21 Marc Glisse <marc.glisse@inria.fr>
22076
22077 * tree-pass.h (PROP_gimple_lvec): New.
22078 * passes.c (dump_properties): Handle PROP_gimple_lvec.
22079 (init_optimization_passes): Move pass_lower_vector.
22080 * tree-vect-generic.c (gate_expand_vector_operations_ssa): Test
22081 PROP_gimple_lvec.
22082 (pass_lower_vector): Provide PROP_gimple_lvec.
22083 (pass_lower_vector_ssa): Likewise.
22084 * cfgexpand.c (pass_expand): Require PROP_gimple_lvec.
22085
511ef689
MW
220862013-03-21 Mark Wielaard <mjw@redhat.com>
22087
22088 * dwarf2out.c (size_of_aranges): Skip DECL_IGNORED_P functions.
22089
cc1df30b
UB
220902013-03-21 Uros Bizjak <ubizjak@gmail.com>
22091
22092 * config/i386/i386.md (*movdi_internal): Disparage slightly
22093 all MMX moves to/from memory. Use Yi instead of x for SSE-MMX
22094 conversion alternatives.
22095
c845cfe1
JJ
220962013-03-21 Jakub Jelinek <jakub@redhat.com>
22097
37e99116
JJ
22098 PR middle-end/48087
22099 * diagnostic.def (DK_WERROR): New kind.
22100 * diagnostic.h (werrorcount): Define.
22101 * diagnostic.c (diagnostic_report_diagnostic): For DK_WARNING
22102 promoted to DK_ERROR, increment DK_WERROR counter instead of
22103 DK_ERROR counter.
22104 * toplev.c (toplev_main): Call print_ignored_options even if
22105 just werrorcount is non-zero. Exit with FATAL_EXIT_CODE
22106 even if just werrorcount is non-zero.
22107
c845cfe1
JJ
22108 PR debug/55608
22109 * dwarf2out.c (tree_add_const_value_attribute): Call ggc_free (array)
22110 on failure.
22111 (resolve_one_addr): Fail if referenced STRING_CST hasn't been written.
22112 (string_cst_pool_decl): New function.
22113 (optimize_one_addr_into_implicit_ptr): New function.
22114 (resolve_addr_in_expr): Optimize DWARF location expression
22115 DW_OP_addr DW_OP_stack_value where DW_OP_addr refers to some variable
22116 which doesn't live in memory, but has DW_AT_location or
22117 DW_AT_const_value, or refers to a string literal, into
22118 DW_OP_GNU_implicit_pointer.
22119 (optimize_location_into_implicit_ptr): New function.
22120 (resolve_addr): If removing DW_AT_location of a variable because
22121 it was DW_OP_addr of address of the variable, but the variable doesn't
22122 live in memory, try to emit const value attribute for the initializer.
22123
08e0cda6
MG
221242013-03-21 Marc Glisse <marc.glisse@inria.fr>
22125
22126 * tree.h (VECTOR_TYPE_P): New macro.
22127 (VECTOR_INTEGER_TYPE_P, VECTOR_FLOAT_TYPE_P, FLOAT_TYPE_P,
22128 TYPE_MODE): Use it.
22129 * fold-const.c (fold_cond_expr_with_comparison): Use build_zero_cst.
22130 VEC_COND_EXPR cannot be lvalues.
22131 (fold_ternary_loc) <VEC_COND_EXPR>: Merge with the COND_EXPR case.
22132
d08633b4
MG
221332013-03-21 Marc Glisse <marc.glisse@inria.fr>
22134
22135 * simplify-rtx.c (simplify_binary_operation_1) <VEC_CONCAT>:
22136 Restrict the transformation to equal modes.
22137
e6647190
RB
221382013-03-21 Richard Biener <rguenther@suse.de>
22139
22140 PR tree-optimization/39326
22141 * tree-ssa-loop-im.c (UNANALYZABLE_MEM_ID): New define.
22142 (MEM_ANALYZABLE): Adjust.
22143 (record_mem_ref_loc): Move bitmap ops ...
22144 (gather_mem_refs_stmt): ... here. Use the shared mem-ref for
22145 unanalyzable refs, do not record locations for it.
22146 (analyze_memory_references): Allocate ref zero as shared
22147 unanalyzable ref.
22148 (refs_independent_p): Do not test for unanalyzed mems here.
22149 (ref_indep_loop_p_1): Special-case disambiguation against
22150 the unanalyzed ref.
cc1df30b 22151 (ref_indep_loop_p): Assert we are not queried for the unanalyzed mem.
e6647190 22152
65074f54
CL
221532013-03-21 Christophe Lyon <christophe.lyon@linaro.org>
22154
22155 * config/arm/arm-protos.h (tune_params): Add
22156 prefer_neon_for_64bits field.
22157 * config/arm/arm.c (prefer_neon_for_64bits): New variable.
22158 (arm_slowmul_tune): Default prefer_neon_for_64bits to false.
22159 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
22160 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
22161 (arm_cortex_a15_tune, arm_cortex_a5_tune): Ditto.
22162 (arm_cortex_a9_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
22163 (arm_option_override): Handle -mneon-for-64bits new option.
22164 * config/arm/arm.h (TARGET_PREFER_NEON_64BITS): New macro.
22165 (prefer_neon_for_64bits): Declare new variable.
22166 * config/arm/arm.md (arch): Rename neon_onlya8 and neon_nota8 to
cc1df30b 22167 avoid_neon_for_64bits and neon_for_64bits. Remove onlya8 and nota8.
65074f54
CL
22168 (arch_enabled): Handle new arch types. Remove support for onlya8
22169 and nota8.
22170 (one_cmpldi2): Use new arch names.
bc5faa5b 22171 (zero_extend<mode>di2, extend<mode>di2): Ditto.
65074f54
CL
22172 * config/arm/arm.opt (mneon-for-64bits): Add option.
22173 * config/arm/neon.md (adddi3_neon, subdi3_neon, iordi3_neon)
22174 (anddi3_neon, xordi3_neon, ashldi3_neon, <shift>di3_neon): Use
22175 neon_for_64bits instead of nota8 and avoid_neon_for_64bits instead
22176 of onlya8.
22177 * doc/invoke.texi (-mneon-for-64bits): Document.
22178
5a2d2a79
RB
221792013-03-21 Richard Biener <rguenther@suse.de>
22180
22181 PR tree-optimization/39326
22182 * tree-ssa-loop-im.c (bb_loop_postorder): New global static.
22183 (sort_bbs_in_loop_postorder_cmp): New function.
cc1df30b 22184 (gather_mem_refs_in_loops): Assign mem-ref IDs in loop postorder.
5a2d2a79 22185
5abe1e05
RB
221862013-03-21 Richard Biener <rguenther@suse.de>
22187
22188 * tree-vect-data-refs.c (vect_update_interleaving_chain): Remove.
22189 (vect_insert_into_interleaving_chain): Likewise.
22190 (vect_drs_dependent_in_basic_block): Inline ...
22191 (vect_slp_analyze_data_ref_dependence): ... here. New function,
22192 split out from ...
22193 (vect_analyze_data_ref_dependence): ... here. Simplify.
22194 (vect_check_interleaving): Simplify.
22195 (vect_analyze_data_ref_dependences): Likewise. Split out ...
22196 (vect_slp_analyze_data_ref_dependences): ... this new function.
22197 (dr_group_sort_cmp): New function.
22198 (vect_analyze_data_ref_accesses): Compute data-reference groups
22199 here instead of in vect_analyze_data_ref_dependence. Use
22200 a more efficient algorithm.
22201 * tree-vect-slp.c (vect_slp_analyze_bb_1): Use
22202 vect_slp_analyze_data_ref_dependences. Call
22203 vect_analyze_data_ref_accesses earlier.
22204 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
22205 * tree-vectorizer.h (vect_analyze_data_ref_dependences): Adjust.
22206 (vect_slp_analyze_data_ref_dependences): New prototype.
22207
cad1735b
RB
222082013-03-21 Richard Biener <rguenther@suse.de>
22209
22210 * tree-ssa-loop-im.c (can_sm_ref_p): Do not test whether
22211 ref is stored in the loop.
22212 (find_refs_for_sm): Walk only over all stores.
22213 (store_motion_loop): Allocate from lim_bitmap_obstack.
22214 (store_motion): Likewise.
22215
141310ef
RB
222162013-03-21 Richard Biener <rguenther@suse.de>
22217
22218 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge):
22219 Update virtual SSA form.
22220
5022315a
RO
222212013-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22222
22223 * configure.ac (gcc_cv_ld_eh_frame_ciev3): New test.
22224 * configure: Regenerate.
22225 * config.in: Regenerate.
22226 * config/sol2.c (solaris_override_options): Only enforce DWARF 2
22227 if !HAVE_LD_EH_FRAME_CIEV3.
22228
50d4421c
RB
222292013-03-21 Richard Biener <rguenther@suse.de>
22230
22231 * tree-cfg.c (verify_expr_no_block): New function.
22232 (verify_expr_location_1): Verify that neither DECL_DEBUG_EXPR
22233 nor DECL_VALUE_EXPR have locations with associated blocks.
22234 * tree-ssa-live.c (clear_unused_block_pointer_1): Remove.
22235 (clear_unused_block_pointer): Remove code dealing with
22236 blocks in DECL_DEBUG_EXPR locations.
22237
839b422f
RB
222382013-03-21 Richard Biener <rguenther@suse.de>
22239
22240 * tree.h (DECL_DEBUG_EXPR_IS_FROM): Rename to ...
22241 (DECL_HAS_DEBUG_EXPR_P): ... this. Guard properly.
22242 * tree.c (copy_node_stat): Do not copy DECL_HAS_DEBUG_EXPR_P.
22243 * dwarf2out.c (add_var_loc_to_decl): Use DECL_HAS_DEBUG_EXPR_P
22244 instead of DECL_DEBUG_EXPR_IS_FROM.
22245 * gimplify.c (gimplify_modify_expr): Likewise.
22246 * tree-cfg.c (verify_expr_location_1): Likewise.
22247 * tree-complex.c (create_one_component_var): Likewise.
22248 * tree-sra.c (create_access_replacement): Likewise.
22249 * tree-ssa-live.c (clear_unused_block_pointer_1): Likewise.
22250 (clear_unused_block_pointer): Likewise.
22251 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
22252 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
22253 * var-tracking.c (var_debug_decl): Likewise.
22254 (track_expr_p): Likewise.
22255 * tree-inline.c (add_local_variables): Likewise. Set
22256 DECL_HAS_DEBUG_EXPR_P after copying it.
22257 * tree-diagnostic.c (default_tree_printer): Use DECL_HAS_DEBUG_EXPR_P
22258 instead of DECL_DEBUG_EXPR_IS_FROM. Guard properly.
22259
fe04878d
UB
222602013-03-21 Uros Bizjak <ubizjak@gmail.com>
22261
22262 PR bootstrap/56656
22263 * configure.ac (HAVE_AS_IX86_INTERUNIT_MOVQ): New test.
22264 * configure: Regenerate.
22265 * config.in: Regenerate.
22266 * config/i386/i386.md (*movdf_internal): Use
22267 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
22268 movd instead of movq mnemonic for interunit moves.
22269 (*movdi_internal): Ditto.
22270
bd059b26 222712013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
fa2e9a58
N
22272
22273 * config/aarch64/aarch64-simd.md (simd_fabd): New Attribute.
22274 (abd<mode>_3): New pattern.
22275 (aba<mode>_3): New pattern.
22276 (fabd<mode>_3): New pattern.
22277
bd059b26 222782013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
50ce6f88
N
22279
22280 * config/aarch64/aarch64-elf.h (REGISTER_PREFIX): Remove.
22281 * config/aarch64/aarch64.c (aarch64_print_operand): Remove all
22282 occurrence of REGISTER_PREFIX as its empty string.
22283
4f1f78b9
JL
222842013-03-20 Jeff Law <law@redhat.com>
22285
22286 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Record
22287 addititional equivalences for equality comparisons between an SSA_NAME
22288 and a constant where the SSA_NAME was set from a widening conversion.
22289
327a1118
WL
222902013-03-20 Walter Lee <walt@tilera.com>
22291
22292 * config/tilegx/sync.md (atomic_test_and_set): New pattern.
22293
813e0036
UB
222942013-03-20 Uros Bizjak <ubizjak@gmail.com>
22295
22296 * config/i386/i386.md (*movoi_internal_avx): Emit insn template
22297 depending on type attribute.
22298 (*movti_internal): Ditto.
22299 (*movtf_internal): Ditto.
22300 (*movxf_internal): Ditto.
22301 (*movdf_internal): Ditto.
22302 (*movsf_internal): Ditto.
22303
7cf34aae
UB
223042013-03-20 Uros Bizjak <ubizjak@gmail.com>
22305
22306 * config/i386/i386.md (*movti_internal): Set prefix attribute to
22307 maybe_vex for sselog1 and ssemov types.
22308 (*movdi_internal): Reorder operand constraints.
22309 (*movsi_internal): Ditto. Set prefix attribute to
22310 maybe_vex for sselog1 and ssemov types.
22311 (*movtf_internal): Set prefix attribute to maybe_vex
22312 for sselog1 and ssemov types.
22313 (*movdf_internal): Ditto. Set prefix_data16 attribute for
22314 DImode ssemov types. Reorder operand constraints.
22315 (*movsf_internal): Set type of alternatives 3,4 to imov. Set prefix
22316 attribute to maybe_vex for sselog1 and ssemov types. Set prefix_data16
22317 attribute for SImode ssemov types. Reorder operand constraints.
22318
19321415
MJ
223192013-03-20 Martin Jambor <mjambor@suse.cz>
22320
22321 * params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): New parameter.
22322 * ipa-cp.c (hint_time_bonus): Add abonus for known array indices.
22323
12211b99 223242013-03-20 Pat Haugen <pthaugen@us.ibm.com>
c6d5ff83
MM
22325
22326 * config/rs6000/predicates.md (indexed_address, update_address_mem
22327 update_indexed_address_mem): New predicates.
22328 * config/rs6000/vsx.md (vsx_extract_<mode>_zero): Set correct "type"
22329 attribute for load/store instructions.
22330 * config/rs6000/dfp.md (movsd_store): Likewise.
22331 (movsd_load): Likewise.
22332 * config/rs6000/rs6000.md (zero_extend<mode>di2_internal1): Likewise.
22333 (unnamed HI->DI extend define_insn): Likewise.
22334 (unnamed SI->DI extend define_insn): Likewise.
22335 (unnamed QI->SI extend define_insn): Likewise.
22336 (unnamed QI->HI extend define_insn): Likewise.
22337 (unnamed HI->SI extend define_insn): Likewise.
22338 (unnamed HI->SI extend define_insn): Likewise.
22339 (extendsfdf2_fpr): Likewise.
22340 (movsi_internal1): Likewise.
22341 (movsi_internal1_single): Likewise.
22342 (movhi_internal): Likewise.
22343 (movqi_internal): Likewise.
22344 (movcc_internal1): Correct mnemonic for stw insn. Set correct "type"
22345 attribute for load/store instructions.
22346 (mov<mode>_hardfloat): Set correct "type" attribute for load/store
22347 instructions.
22348 (mov<mode>_softfloat): Likewise.
22349 (mov<mode>_hardfloat32): Likewise.
22350 (mov<mode>_hardfloat64): Likewise.
22351 (mov<mode>_softfloat64): Likewise.
22352 (movdi_internal32): Likewise.
22353 (movdi_internal64): Likewise.
22354 (probe_stack_<mode>): Likewise.
22355
223562013-03-20 Michael Meissner <meissner@linux.vnet.ibm.com>
22357
22358 * config/rs6000/vector.md (VEC_R): Add 32-bit integer, binary
22359 floating point, and decimal floating point to reload iterator.
22360
22361 * config/rs6000/constraints.md (wl constraint): New constraints to
22362 return FLOAT_REGS if certain options are used to reduce the number
22363 of separate patterns that exist in the file.
22364 (wx constraint): Likewise.
22365 (wz constraint): Likewise.
22366
22367 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
22368 -mdebug=reg, print wg, wl, wx, and wz constraints.
22369 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
22370 Initialize the reload functions for 64-bit binary/decimal floating
22371 point types.
22372 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
22373 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
22374 create the buffer on the stack to overcome not having a 32-bit
22375 load and store.
22376 (rs6000_emit_move): Likewise.
22377 (rs6000_secondary_memory_needed_rtx): Likewise.
22378 (rs6000_alloc_sdmode_stack_slot): Likewise.
22379 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
22380 via xxlxor, just like DFmode 0.0.
22381
22382 * config/rs6000/rs6000.h (TARGET_NO_SDMODE_STACK): New macro,
22383 define as 1 if we are running on a power7 or newer.
22384 (enum r6000_reg_class_enum): Add new constraints.
22385
22386 * config/rs6000/dfp.md (movsd): Delete, combine with binary
22387 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
22388 with other moves by using conditional constraits (wg). Use LFIWZX
bd059b26 22389 and STFIWX for loading SDmode on power7. Use xxlxor to create 0.0f.
c6d5ff83
MM
22390 (movsd splitter): Likewise.
22391 (movsd_hardfloat): Likewise.
22392 (movsd_softfloat): Likewise.
22393
22394 * config/rs6000/rs6000.md (FMOVE32): New iterators to combine
22395 binary and decimal floating point moves.
22396 (fmove_ok): New attributes to combine binary and decimal floating
22397 point moves, and to combine power6x (mfpgpr) moves along normal
22398 floating moves.
22399 (real_value_to_target): Likewise.
22400 (f32_lr): Likewise.
22401 (f32_lm): Likewise.
22402 (f32_li): Likewise.
22403 (f32_sr): Likewise.
22404 (f32_sm): Likewise.
22405 (f32_si): Likewise.
22406 (movsf): Combine binary and decimal floating point moves. Combine
22407 power6x (mfpgpr) moves with other moves by using conditional
bd059b26 22408 constraits (wg). Use LFIWZX and STFIWX for loading SDmode on power7.
c6d5ff83
MM
22409 (mov<mode> for SFmode/SDmode); Likewise.
22410 (SFmode/SDmode splitters): Likewise.
22411 (movsf_hardfloat): Likewise.
22412 (mov<mode>_hardfloat for SFmode/SDmode): Likewise.
22413 (movsf_softfloat): Likewise.
22414 (mov<mode>_softfloat for SFmode/SDmode): Likewise.
22415
22416 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wl,
22417 wx and wz constraints.
22418
22419 * config/rs6000/constraints.md (wg constraint): New constraint to
22420 return FLOAT_REGS if -mmfpgpr (power6x) was used.
22421
22422 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wg
22423 constraint.
22424
22425 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
22426 -mdebug=reg, print wg, wl, wx, and wz constraints.
22427 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
22428 Initialize the reload functions for 64-bit binary/decimal floating
22429 point types.
22430 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
22431 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
22432 create the buffer on the stack to overcome not having a 32-bit
22433 load and store.
22434 (rs6000_emit_move): Likewise.
22435 (rs6000_secondary_memory_needed_rtx): Likewise.
22436 (rs6000_alloc_sdmode_stack_slot): Likewise.
22437 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
22438 via xxlxor, just like DFmode 0.0.
22439
c6d5ff83
MM
22440 * config/rs6000/dfp.md (movdd): Delete, combine with binary
22441 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
22442 with other moves by using conditional constraits (wg). Use LFIWZX
22443 and STFIWX for loading SDmode on power7.
22444 (movdd splitters): Likewise.
22445 (movdd_hardfloat32): Likewise.
22446 (movdd_softfloat32): Likewise.
22447 (movdd_hardfloat64_mfpgpr): Likewise.
22448 (movdd_hardfloat64): Likewise.
22449 (movdd_softfloat64): Likewise.
22450
22451 * config/rs6000/rs6000.md (FMOVE64): New iterators to combine
22452 64-bit binary and decimal floating point moves.
22453 (FMOVE64X): Likewise.
22454 (movdf): Combine 64-bit binary and decimal floating point moves.
22455 Combine power6x (mfpgpr) moves with other moves by using
22456 conditional constraits (wg).
22457 (mov<mode> for DFmode/DDmode): Likewise.
22458 (DFmode/DDmode splitters): Likewise.
22459 (movdf_hardfloat32): Likewise.
22460 (mov<mode>_hardfloat32 for DFmode/DDmode): Likewise.
22461 (movdf_softfloat32): Likewise.
22462 (movdf_hardfloat64_mfpgpr): Likewise.
22463 (movdf_hardfloat64): Likewise.
22464 (mov<mode>_hardfloat64 for DFmode/DDmode): Likewise.
22465 (movdf_softfloat64): Likewise.
22466 (mov<mode>_softfloat64 for DFmode/DDmode): Likewise.
22467 (reload_<mode>_load): Move to later in the file so they aren't in
22468 the middle of the floating point move insns.
22469 (reload_<mode>_store): Likewise.
22470
22471 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wg
22472 constraint.
22473
22474 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print out wg
22475 constraint if -mdebug=reg.
bd059b26
UB
22476 (rs6000_initi_hard_regno_mode_ok): Enable wg constraint if -mfpgpr.
22477 Enable using dd reload support if needed.
c6d5ff83
MM
22478
22479 * config/rs6000/dfp.md (movtd): Delete, combine with 128-bit
22480 binary and decimal floating point moves in rs6000.md.
22481 (movtd_internal): Likewise.
22482
22483 * config/rs6000/rs6000.md (FMOVE128): Combine 128-bit binary and
22484 decimal floating point moves.
22485 (movtf): Likewise.
22486 (movtf_internal): Likewise.
22487 (mov<mode>_internal, TDmode/TFmode): Likewise.
22488 (movtf_softfloat): Likewise.
22489 (mov<mode>_softfloat, TDmode/TFmode): Likewise.
22490
22491 * config/rs6000/rs6000.md (movdi_mfpgpr): Delete, combine with
22492 movdi_internal64, using wg constraint for move direct operations.
22493 (movdi_internal64): Likewise.
22494
22495 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print
22496 MODES_TIEABLE_P for selected modes. Print the numerical value of
22497 the various virtual registers. Use GPR/FPR first/last values,
22498 instead of hard coding the register numbers. Print which modes
22499 have reload functions registered.
bd059b26
UB
22500 (rs6000_option_override_internal): If -mdebug=reg, trace the options
22501 settings before/after setting cpu, target and subtarget settings.
22502 (rs6000_secondary_reload_trace): Improve the RTL dump for -mdebug=addr
22503 and for secondary reload failures in rs6000_secondary_reload_inner.
c6d5ff83
MM
22504 (rs6000_secondary_reload_fail): Likewise.
22505 (rs6000_secondary_reload_inner): Likewise.
22506
22507 * config/rs6000/rs6000.md (FIRST_GPR_REGNO): Add convenience
22508 macros for first/last GPR and FPR registers.
22509 (LAST_GPR_REGNO): Likewise.
22510 (FIRST_FPR_REGNO): Likewise.
22511 (LAST_FPR_REGNO): Likewise.
22512
22513 * config/rs6000/vector.md (mul<mode>3): Use the combined macro
22514 VECTOR_UNIT_ALTIVEC_OR_VSX_P instead of separate calls to
22515 VECTOR_UNIT_ALTIVEC_P and VECTOR_UNIT_VSX_P.
22516 (vcond<mode><mode>): Likewise.
22517 (vcondu<mode><mode>): Likewise.
22518 (vector_gtu<mode>): Likewise.
22519 (vector_gte<mode>): Likewise.
22520 (xor<mode>3): Don't allow logical operations on TImode in 32-bit
bd059b26 22521 to prevent the compiler from converting DImode operations to TImode.
c6d5ff83
MM
22522 (ior<mode>3): Likewise.
22523 (and<mode>3): Likewise.
22524 (one_cmpl<mode>2): Likewise.
22525 (nor<mode>3): Likewise.
22526 (andc<mode>3): Likewise.
22527
22528 * config/rs6000/constraints.md (wt constraint): New constraint
22529 that returns VSX_REGS if TImode is allowed in VSX registers.
22530
22531 * config/rs6000/predicates.md (easy_fp_constant): 0.0f is an easy
22532 constant under VSX.
22533
22534 * config/rs6000/rs6000-modes.def (PTImode): Define, PTImode is
22535 similar to TImode, but it is restricted to being in the GPRs.
22536
22537 * config/rs6000/rs6000.opt (-mvsx-timode): New switch to allow
22538 TImode to occupy a single VSX register.
22539
22540 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Default to
22541 -mvsx-timode for power7/power8.
22542 (power7 cpu): Likewise.
22543 (power8 cpu): Likewise.
22544
22545 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Make
22546 sure that TFmode/TDmode take up two registers if they are ever
22547 allowed in the upper VSX registers.
22548 (rs6000_hard_regno_mode_ok): If -mvsx-timode, allow TImode in VSX
22549 registers.
22550 (rs6000_init_hard_regno_mode_ok): Likewise.
22551 (rs6000_debug_reg_global): Add debugging for PTImode and wt
22552 constraint. Print if LRA is turned on.
22553 (rs6000_option_override_internal): Give an error if -mvsx-timode
22554 and VSX is not enabled.
22555 (invalid_e500_subreg): Handle PTImode, restricting it to GPRs. If
22556 -mvsx-timode, restrict TImode to reg+reg addressing, and PTImode
22557 to reg+offset addressing. Use PTImode when checking offset
22558 addresses for validity.
22559 (reg_offset_addressing_ok_p): Likewise.
22560 (rs6000_legitimate_offset_address_p): Likewise.
22561 (rs6000_legitimize_address): Likewise.
22562 (rs6000_legitimize_reload_address): Likewise.
22563 (rs6000_legitimate_address_p): Likewise.
22564 (rs6000_eliminate_indexed_memrefs): Likewise.
22565 (rs6000_emit_move): Likewise.
22566 (rs6000_secondary_reload): Likewise.
22567 (rs6000_secondary_reload_inner): Handle PTImode. Allow 64-bit
22568 reloads to fpr registers to continue to use reg+offset addressing,
22569 but 64-bit reloads to altivec registers need reg+reg addressing.
22570 Drop test for PRE_MODIFY, since VSX loads/stores no longer support
22571 it. Treat LO_SUM like a PLUS operation.
22572 (rs6000_secondary_reload_class): If type is 64-bit, prefer to use
bd059b26 22573 FLOAT_REGS instead of VSX_RGS to allow use of reg+offset addressing.
c6d5ff83
MM
22574 (rs6000_cannot_change_mode_class): Do not allow TImode in VSX
22575 registers to share a register with a smaller sized type, since VSX
22576 puts scalars in the upper 64-bits.
22577 (print_operand): Add support for PTImode.
22578 (rs6000_register_move_cost): Use VECTOR_MEM_VSX_P instead of
22579 VECTOR_UNIT_VSX_P to catch types that can be loaded in VSX
22580 registers, but don't have arithmetic support.
22581 (rs6000_memory_move_cost): Add test for VSX.
22582 (rs6000_opt_masks): Add -mvsx-timode.
22583
22584 * config/rs6000/vsx.md (VSm): Change to use 64-bit aligned moves
22585 for TImode.
22586 (VSs): Likewise.
22587 (VSr): Use wt constraint for TImode.
22588 (VSv): Drop TImode support.
22589 (vsx_movti): Delete, replace with versions for 32-bit and 64-bit.
22590 (vsx_movti_64bit): Likewise.
22591 (vsx_movti_32bit): Likewise.
22592 (vec_store_<mode>): Use VSX iterator instead of vector iterator.
22593 (vsx_and<mode>3): Delete use of '?' constraint on inputs, just put
22594 one '?' on the appropriate output constraint. Do not allow TImode
22595 logical operations on 32-bit systems.
22596 (vsx_ior<mode>3): Likewise.
22597 (vsx_xor<mode>3): Likewise.
22598 (vsx_one_cmpl<mode>2): Likewise.
22599 (vsx_nor<mode>3): Likewise.
22600 (vsx_andc<mode>3): Likewise.
22601 (vsx_concat_<mode>): Likewise.
22602 (vsx_xxpermdi_<mode>): Fix thinko for non V2DF/V2DI modes.
22603
22604 * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Map from
22605 OPTION_MASK_VSX_TIMODE.
22606 (enum rs6000_reg_class_enum): Add RS6000_CONSTRAINT_wt.
22607 (STACK_SAVEAREA_MODE): Use PTImode instead of TImode.
22608
22609 * config/rs6000/rs6000.md (INT mode attribute): Add PTImode.
22610 (TI2 iterator): New iterator for TImode, PTImode.
22611 (wd mode attribute): Add values for vector types.
bd059b26
UB
22612 (movti_string): Replace TI move operations with operations for TImode
22613 and PTImode. Add support for TImode being allowed in VSX registers.
c6d5ff83
MM
22614 (mov<mode>_string, TImode/PTImode): Likewise.
22615 (movti_ppc64): Likewise.
22616 (mov<mode>_ppc64, TImode/PTImode): Likewise.
22617 (TI mode splitters): Likewise.
22618
22619 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wt
22620 constraint.
22621
1fc5eced
MG
226222013-03-20 Marc Glisse <marc.glisse@inria.fr>
22623
22624 PR tree-optimization/56355
22625 * fold-const.c (tree_binary_nonnegative_warnv_p) <MULT_EXPR>:
22626 Also handle integers with undefined overflow.
22627
22c4c869
CM
226282013-03-20 Catherine Moore <clm@codesourcery.com>
22629 Maciej W. Rozycki <macro@codesourcery.com>
22630 Tom de Vries <tom@codesourcery.com>
12211b99 22631 Nathan Sidwell <nathan@codesourcery.com>
22c4c869
CM
22632 Iain Sandoe <iain@codesourcery.com>
22633 Nathan Froyd <froydnj@codesourcery.com>
12211b99 22634 Chao-ying Fu <fu@mips.com>
22c4c869
CM
22635
22636 * doc/extend.texi: (micromips, nomicromips, nocompression):
7cf34aae 22637 Document new function attributes.
22c4c869
CM
22638 * doc/invoke.texi (minterlink-compressed, mmicromips,
22639 m14k, m14ke, m14kec): Document new options.
22640 (minterlink-mips16): Update documentation.
22641 * doc/md.texi (ZC, ZD): Document new constraints.
22642 * configure.ac (gcc_cv_as_micromips): Check if linker
22643 supports the .set micromips directive.
22644 * configure: Regenerate.
22645 * config.in: Regenerate.
22646 * config/mips/mips-tables.opt: Regenerate.
22647 * config/mips/micromips.md: New file.
22648 * constraints.md (ZC, ZD): New constraints.
22649 * config/mips/predicates.md (movep_src_register): New predicate.
22650 (movep_src_operand): New predicate.
22651 (non_volatile_mem_operand): New predicate.
22652 * config/mips/mips.md (multimem): New type.
22653 (length): Differentiate between 17-bit and 18-bit branch offsets.
22654 (MOVEP1, MOVEP2): New mode iterator.
33159866 22655 (mov_<load>l): Use ZC constraint.
22c4c869
CM
22656 (mov_<load>r): Likewise.
22657 (mov_<store>l): Likewise.
22658 (mov_<store>r): Likewise.
22659 (*branch_equality<mode>_inverted): Add microMIPS support.
22660 (*branch_equality<mode>): Likewise.
22661 (*jump_absolute): Likewise.
22662 (indirect_jump_<mode>): Likewise.
22663 (tablejump_<mode>): Likewise.
22664 (<optab>_internal): Likewise.
22665 (sibcall_internal): Likewise.
22666 (sibcall_value_internal): Likewise.
22667 (prefetch): Use constraint ZD.
22668 * config/mips/mips.opt (minterlink-compressed): New option.
22669 (minterlink-mips16): Now an alias for minterlink-compressed.
22670 (mmicromips): New option.
22671 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
22672 (compare_and_swap_12): Likewise.
22673 (sync_add<mode>): Likewise.
22674 (sync_<optab>_12): Likewise.
22675 (sync_old_<optab>_12): Likewise.
22676 (sync_new_<optab>_12): Likewise.
22677 (sync_nand_12): Likewise.
22678 (sync_old_nand_12): Likewise.
22679 (sync_new_nand_12): Likewise.
22680 (sync_sub<mode>): Likewise.
22681 (sync_old_add<mode>): Likewise.
22682 (sync_old_sub<mode>): Likewise.
22683 (sync_new_add<mode>): Likewise.
22684 (sync_new_sub<mode>): Likewise.
22685 (sync_<optab><mode>): Likewise.
22686 (sync_old_<optab><mode>): Likewise.
22687 (sync_new_<optab><mode>): Likewise.
22688 (sync_nand<mode>): Likewise.
22689 (sync_old_nand<mode>): Likewise.
22690 (sync_new_nand<mode>): Likewise.
22691 (sync_lock_test_and_set<mode>): Likewise.
22692 (test_and_set_12): Likewise.
22693 (atomic_compare_and_swap<mode>): Likewise.
22694 (atomic_exchange<mode>_llsc): Likewise.
22695 (atomic_fetch_add<mode>_llsc): Likewise.
22696 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
22697 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
22698 (umips_save_restore_pattern_p): Likewise.
22699 (umips_load_store_pair_p): Likewise.
22700 (umips_output_load_store_pair): Likewise.
22701 (umips_movep_target_p): Likewise.
22702 (umips_12bit_offset_address_p): Likewise.
22703 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
22704 (mips_base_mips16): Rename this...
22705 (mips_base_compression_flags): ...to this. Update all uses.
22706 (mips_attribute_table): Add micromips, nomicromips and nocompression.
22707 (mips_mips16_decl_p): Delete.
22708 (mips_nomips16_decl_p): Delete.
33159866 22709 (mips_get_compress_on_flags): New function.
22c4c869
CM
22710 (mips_get_compress_off_flags): New function.
22711 (mips_get_compress_mode): New function.
22712 (mips_get_compress_on_name): New function.
22713 (mips_get_compress_off_name): New function.
22714 (mips_insert_attributes): Support multiple compression types.
22715 (mips_merge_decl_attributes): Likewise.
22716 (umips_12bit_offset_address_p): New function.
22717 (mips_start_function_definition): Emit .set micromips directive.
22718 (mips_call_may_need_jalx_p): New function.
22719 (mips_function_ok_for_sibcall): Add microMIPS support.
22720 (mips_print_operand_punctuation): Support short delay slots and
22721 compact jumps.
22722 (umips_swm_mask, umips_swm_encoding): New.
22723 (umips_build_save_restore): New function.
22724 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
22725 (was_mips16_p): Remove.
22726 (old_compression_mode): New.
22727 (mips_set_compression_mode): New function.
22728 (mips_set_current_function): Add microMIPS support.
22729 (mips_option_override): Likewise.
22730 (umips_save_restore_pattern_p): New function.
22731 (umips_output_save_restore): New function.
22732 (umips_load_store_pair_p_1): New function.
22733 (umips_load_store_pair_p): New function.
22734 (umips_output_load_store_pair_1): New function.
22735 (umips_output_load_store_pair): New function.
22736 (umips_movep_target_p) New function.
22737 (mips_prepare_pch_save): Add microMIPS support.
22738 * config/mips/mips.h (TARGET_COMPRESSION): New.
22739 (TARGET_CPU_CPP_BUILTINS): Update macro
22740 to use new compression flags and to support microMIPS.
22741 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
22742 (MIPS_ARCH_FLOAT_SPEC): Likewise.
22743 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
22744 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
22745 (ASM_SPEC): Support mmicromips and mno-micromips.
22746 (M16STORE_REG_P): New macro.
22747 (MIPS_CALL): Support TARGET_MICROMIPS.
22748 (MICROMIPS_J): New macro.
22749 (mips_base_mips16): Rename this...
22750 (mips_base_compression_flags): ...to this.
22751 (UMIPS_12BIT_OFFSET_P): New macro.
22752 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
22753 (MULTILIB_DIRNAMES): Likewise.
92a8d7a7
RB
227542013-03-20 Richard Biener <rguenther@suse.de>
22755
22756 PR tree-optimization/56661
22757 * tree-ssa-sccvn.c (visit_use): Only value-number calls if
22758 the result does not have to be distinct.
22759
54714c68
RB
227602013-03-20 Richard Biener <rguenther@suse.de>
22761
22762 * tree-inline.c (copy_tree_body_r): Sync MEM_REF code with
22763 remap_gimple_op_r.
22764
cca1130d 227652013-03-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 22766 Steven Bosscher <steven@gcc.gnu.org>
cca1130d
BS
22767
22768 PR rtl-optimization/56605
22769 * loop-iv.c (implies_p): Handle equal RTXs and subregs.
22770
2a930377
UB
227712013-03-20 Uros Bizjak <ubizjak@gmail.com>
22772
22773 PR bootstrap/56656
22774 * config/i386/i386.md (*movdi_internal): Handle broken assemblers
22775 that require movd instead of movq.
22776
d6d305fe
RB
227772013-03-20 Richard Biener <rguenther@suse.de>
22778
22779 * tree-ssa-structalias.c (struct variable_info): Add pointer
22780 to the first field of an aggregate with sub-vars. Make
22781 this and the pointer to the next subfield its ID.
22782 (vi_next): New function.
22783 (nothing_id, anything_id, readonly_id, escaped_id, nonlocal_id,
22784 storedanything_id, integer_id): Increment by one.
22785 (new_var_info, get_call_vi, lookup_call_clobber_vi,
22786 get_call_clobber_vi): Adjust.
22787 (solution_set_expand): Simplify and speedup.
22788 (solution_set_add): Inline into ...
22789 (set_union_with_increment): ... this. Adjust accordingly.
22790 (do_sd_constraint): Likewise.
22791 (do_ds_constraint): Likewise.
22792 (do_complex_constraint): Simplify.
22793 (build_pred_graph): Adjust.
22794 (solve_graph): Likewise. Simplify and speedup.
22795 (get_constraint_for_ssa_var, get_constraint_for_ptr_offset,
22796 get_constraint_for_component_ref, get_constraint_for_1,
22797 first_vi_for_offset, first_or_preceding_vi_for_offset,
22798 create_function_info_for, create_variable_info_for_1,
22799 create_variable_info_for, intra_create_variable_infos): Adjust.
22800 (init_base_vars): Push NULL for ID zero.
22801 (compute_points_to_sets): Adjust.
22802
a271b42d
RB
228032013-03-20 Richard Biener <rguenther@suse.de>
22804
22805 * cfgloop.c (verify_loop_structure): Streamline and avoid
22806 ICEing on corrupt loop tree.
22807 * graph.c (draw_cfg_nodes_for_loop): Avoid ICEing on corrupt
22808 loop tree.
22809
ebd65954
RB
228102013-03-20 Richard Biener <rguenther@suse.de>
22811
22812 * tree-vect-loop-manip.c (slpeel_can_duplicate_loop_p): Do not
22813 check whether an SSA update is needed.
22814
4547b7ee
RS
228152013-03-20 Richard Sandiford <rdsandiford@googlemail.com>
22816
22817 * config/mips/constraints.md (T): Rename to...
22818 (Yf): ...this.
22819 (U): Rename to...
22820 (Yd): ...this.
22821 * config/mips/mips.md (*movdi_64bit, *movdi_64bit_mips16)
22822 (*mov<mode>_internal, *mov<mode>_mips16): Update accordingly.
22823
0b8cdc58
IB
228242013-03-19 Ian Bolton <ian.bolton@arm.com>
22825
22826 * config/aarch64/aarch64.md (*sub<mode>3_carryin): New pattern.
22827 (*subsi3_carryin_uxtw): Likewise.
22828
5977a10d
IB
228292013-03-19 Ian Bolton <ian.bolton@arm.com>
22830
22831 * config/aarch64/aarch64.md (*ror<mode>3_insn): New pattern.
22832 (*rorsi3_insn_uxtw): Likewise.
22833
bd83ff2c
IB
228342013-03-19 Ian Bolton <ian.bolton@arm.com>
22835
22836 * config/aarch64/aarch64.md (*extr<mode>5_insn): New pattern.
22837 (*extrsi5_insn_uxtw): Likewise.
22838
ba65123c
RB
228392013-03-19 Richard Biener <rguenther@suse.de>
22840
22841 PR tree-optimization/56273
22842 * passes.c (init_optimization_passes): Move second VRP after DOM.
22843
2eac0476
UB
228442013-03-19 Uros Bizjak <ubizjak@gmail.com>
22845
22846 * config/i386/i386.md (*movti_internal): Merge from
22847 *movti_internal_rex64 and *movti_internal_sse. Use x64 isa attribute.
22848 (*movdi_internal): Merge with *movdi_internal_rex64. Use x64 and
22849 nox64 isa attributes.
22850
6e55eda7
RB
228512013-03-18 Richard Biener <rguenther@suse.de>
22852
22853 * tree-ssa-structalias.c (find): Use gcc_checking_assert.
22854 (unite): Likewise.
22855 (merge_node_constraints): Likewise.
22856 (build_succ_graph): Likewise.
22857 (valid_graph_edge): Inline into single caller.
22858 (unify_nodes): Likewise. Use bitmap_set_bit return value
22859 and cache varinfo.
22860 (scc_visit): Fix formatting and variable use.
22861 (do_sd_constraint): Use gcc_checking_assert.
22862 (do_ds_constraint): Likewise.
22863 (do_complex_constraint): Likewise.
22864 (condense_visit): Likewise. Cleanup.
22865 (dump_pred_graph): New function.
22866 (perform_var_substitution): Dump the pred-graph before
22867 variable substitution.
22868 (find_equivalent_node): Use gcc_checking_assert.
22869 (rewrite_constraints): Guard checking loop with ENABLE_CHECKING.
22870
4bdd44c4
RB
228712013-03-18 Richard Biener <rguenther@suse.de>
22872
22873 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
22874 Remove cond_expr_stmt_list argument and do not gimplify the
22875 built expression.
22876 (vect_loop_versioning): Adjust.
22877 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
22878 Cleanup to use less temporaries.
22879 (vect_create_data_ref_ptr): Cleanup.
22880
38c56a5b
JJ
228812013-03-18 Jakub Jelinek <jakub@redhat.com>
22882
22883 PR tree-optimization/56635
22884 * fold-const.c (operand_equal_p): For MEM_REF and TARGET_MEM_REF,
22885 require types_compatible_p types.
22886
20b2e6a0
NC
228872013-03-18 Nick Clifton <nickc@redhat.com>
22888
a6178a25
NC
22889 * config/stormy16/stormy16.c (xstormy16_expand_prologue): Remove
22890 spurious backslash.
22891
20b2e6a0
NC
22892 * config/mn10300/mn10300.c (mn10300_get_live_callee_saved_regs):
22893 Add missing line to comment describing function.
22894
92608d0e
RB
228952013-03-18 Richard Biener <rguenther@suse.de>
22896
22897 PR tree-optimization/56210
22898 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
22899 Handle string / character search functions.
22900 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
22901
31348d52
RB
229022013-03-18 Richard Biener <rguenther@suse.de>
22903
22904 PR middle-end/56483
22905 * cfgexpand.c (expand_gimple_cond): Inline gimple_cond_single_var_p
22906 and implement properly.
22907 * gimple.h (gimple_cond_single_var_p): Remove.
22908
fcac74a1
RB
229092013-03-18 Richard Biener <rguenther@suse.de>
22910
22911 * tree-data-ref.h (find_data_references_in_loop): Declare.
22912 * tree-data-ref.c (get_references_in_stmt): Use a stack
22913 vector pre-allocated in the callers.
22914 (find_data_references_in_stmt): Adjust.
22915 (graphite_find_data_references_in_stmt): Likewise.
22916 (create_rdg_vertices): Likewise.
22917 (find_data_references_in_loop): Export.
22918 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
22919 Compute dependences here...
22920 (vect_analyze_data_refs): ...not here. When we encounter
22921 a non-vectorizable data reference in basic-block vectorization
22922 truncate the data reference vector. Do not bother to
22923 fixup data-dependence information for gather loads.
22924 * tree-vect-slp.c (vect_slp_analyze_bb_1): Check the number
22925 of data references, as reported.
22926
0d5a1b56
RB
229272013-03-18 Richard Biener <rguenther@suse.de>
22928
22929 PR tree-optimization/3713
22930 * tree-ssa-sccvn.c (visit_copy): Simplify. Always propagate
22931 has_constants and expr.
22932 (stmt_has_constants): Properly valueize SSA names when deciding
22933 whether the stmt has constants.
22934
789c34e3
RB
229352013-03-18 Richard Biener <rguenther@suse.de>
22936
22937 * tree-ssa-loop-manip.c (find_uses_to_rename): Do not scan the
22938 whole function when there is nothing to do.
22939 * tree-ssa-loop.c (pass_vectorize): Remove TODO_update_ssa.
22940 * tree-vectorizer.c (vectorize_loops): Update virtual and
22941 loop-closed SSA once.
22942 * tree-vect-loop.c (vect_transform_loop): Do not update SSA here.
22943
076b4605
RB
229442013-03-18 Richard Biener <rguenther@suse.de>
22945
22946 PR middle-end/56113
22947 * domwalk.c (bb_postorder): New global static.
22948 (cmp_bb_postorder): New function.
22949 (walk_dominator_tree): Replace scheme imposing an order for
22950 visiting dominator sons by one sorting them at the time they
22951 are pushed on the stack.
22952
bdb01696
RB
229532013-03-18 Richard Biener <rguenther@suse.de>
22954
22955 PR tree-optimization/39326
22956 * tree-ssa-loop-im.c (refs_independent_p): Exploit symmetry.
22957 (struct mem_ref): Replace mem member with ao_ref typed member.
22958 (MEM_ANALYZABLE): Adjust.
22959 (memref_eq): Likewise.
22960 (mem_ref_alloc): Likewise.
22961 (gather_mem_refs_stmt): Likewise.
22962 (mem_refs_may_alias_p): Use the ao_ref to query the alias oracle.
22963 (execute_sm_if_changed_flag_set): Adjust.
22964 (execute_sm): Likewise.
22965 (ref_always_accessed_p): Likewise.
22966 (refs_independent_p): Likewise.
22967 (can_sm_ref_p): Likewise.
22968
12d2dc5e
JJ
229692013-03-18 Jakub Jelinek <jakub@redhat.com>
22970
22971 PR c/56566
22972 * tree.c (tree_int_cst_min_precision): For integer_zerop (value)
22973 return 1 even for !unsignedp.
22974
286fb677
UB
229752013-03-17 Uros Bizjak <ubizjak@gmail.com>
22976
22977 * config/i386/i386.md (isa): Add x64 and nox64.
22978 (enabled): Define x64 for TARGET_64BIT and nox64 for !TARGET_64BIT.
22979 (*pushtf): Enable *roF alternative for x64 isa only.
22980 (*pushxf): Merge with *pushxf_nointeger. Use Yx*r constraint. Set
22981 mode attribute of integer alternatives to DImode for TARGET_64BIT.
22982 (*pushdf): Merge with *pushdf_rex64. Use x64 and nox64 isa attributes.
22983 (*movtf_internal): Merge from *movtf_internal_rex64 and
22984 *movtf_internal_sse. Use x64 and nox64 isa attributes.
22985 (*movxf_internal): Merge with *movxf_internal_rex64. Use x64 and
22986 nox64 isa attributes.
22987 (*movdf_internal): Merge with *movdf_internal_rex64. Use x64 and
22988 nox64 isa attributes.
22989 * config/i386/constraints.md (Yd): Do not set for TARGET_64BIT.
22990
88b97037
UB
229912013-03-17 Uros Bizjak <ubizjak@gmail.com>
22992
22993 * config/alpha/alpha.c (TARGET_LRA_P): New define.
22994
9f4f1735
JJ
229952013-03-17 Jakub Jelinek <jakub@redhat.com>
22996
22997 PR target/56640
22998 * config/arm/arm.h (REG_CLASS_NAMES): Add "SFP_REG" and "AFP_REG"
22999 class names. Remove trailing comma after "ALL_REGS".
23000
48f4a6fa
JH
230012013-03-16 Jan Hubicka <jh@suse.cz>
23002
23003 * cgraph.h (cgraph_get_create_real_symbol_node): Declare.
23004 * cgraph.c (cgraph_get_create_real_symbol_node): New function.
23005 * cgrpahbuild.c: Use cgraph_get_create_real_symbol_node instead
23006 of cgraph_get_create_node.
23007 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
23008
98e81123
JM
230092013-03-16 Jason Merrill <jason@redhat.com>
23010
23011 PR debug/49090
23012 * dwarf2out.c (gen_generic_params_dies): Indicate default arguments
23013 with DW_AT_default_value.
23014
8a298c04
JJ
230152013-03-16 Jakub Jelinek <jakub@redhat.com>
23016
23017 * BASE-VER: Set to 4.9.0.
23018
4323afa0
AK
230192013-03-14 Andi Kleen <ak@linux.intel.com>
23020
23021 PR target/56619
23022 * doc/extend.texi: Document __ATOMIC_HLE_ACQUIRE,
23023 __ATOMIC_HLE_RELEASE. Document __builtin_ia32 TSX intrincs.
23024 Document _x* TSX intrinsics.
23025
b3c0d469
JJ
230262013-03-14 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
23027 David Holsgrove <david.holsgrove@xilinx.com>
8cc9a5a5
EI
23028
23029 * configure.ac: Add MicroBlaze TLS support detection.
23030 * configure: Regenerate.
88b97037
UB
23031 * config/microblaze/microblaze-protos.h
23032 (microblaze_cannot_force_const_mem, microblaze_tls_referenced_p,
23033 symbol_mentioned_p, label_mentioned_p): Add prototypes.
23034 * config/microblaze/microblaze.c (microblaze_address_type): Add
23035 ADDRESS_TLS and tls_reloc address types.
8cc9a5a5
EI
23036 (microblaze_address_info): Add tls_reloc.
23037 (TARGET_HAVE_TLS): Define.
23038 (get_tls_get_addr, microblaze_tls_symbol_p, microblaze_tls_operand_p_1,
23039 microblaze_tls_referenced_p, microblaze_cannot_force_const_mem,
88b97037
UB
23040 symbol_mentioned_p, label_mentioned_p, tls_mentioned_p,
23041 load_tls_operand, microblaze_call_tls_get_addr,
23042 microblaze_legitimize_tls_address): New functions.
8cc9a5a5
EI
23043 (microblaze_classify_unspec): Handle UNSPEC_TLS.
23044 (get_base_reg): Use microblaze_tls_symbol_p.
23045 (microblaze_classify_address): Handle TLS.
88b97037
UB
23046 (microblaze_legitimate_pic_operand): Use symbol_mentioned_p,
23047 label_mentioned_p and microblaze_tls_referenced_p.
8cc9a5a5
EI
23048 (microblaze_legitimize_address): Handle TLS.
23049 (microblaze_address_insns): Handle ADDRESS_TLS.
23050 (pic_address_needs_scratch): Handle TLS.
23051 (print_operand_address): Handle TLS.
23052 (microblaze_expand_prologue): Check TLS_NEEDS_GOT.
23053 (microblaze_expand_move): Handle TLS.
88b97037
UB
23054 (microblaze_legitimate_constant_p): Check
23055 microblaze_cannot_force_const_mem and microblaze_tls_symbol_p.
8cc9a5a5
EI
23056 (TARGET_CANNOT_FORCE_CONST_MEM): Define.
23057 * config/microblaze/microblaze.h (TLS_NEEDS_GOT): Define
23058 (PIC_OFFSET_TABLE_REGNUM): Set.
23059 * config/microblaze/linux.h (TLS_NEEDS_GOT): Define.
23060 * config/microblaze/microblaze.md (UNSPEC_TLS): Define.
23061 (addsi3, movsi_internal2, movdf_internal): Update constraints
23062 * config/microblaze/predicates.md (arith_plus_operand): Define
88b97037
UB
23063 (move_operand): Redefine as move_src_operand,
23064 check microblaze_tls_referenced_p.
8cc9a5a5 23065
d803a491
IB
230662013-03-14 Ian Bolton <ian.bolton@arm.com>
23067
23068 * config/aarch64/aarch64.md: (*and<mode>3nr_compare0): Use CC_NZ.
23069 (*and_<SHIFT:optab><mode>3nr_compare0): Likewise.
23070
a8504f22
IB
230712013-03-14 Ian Bolton <ian.bolton@arm.com>
23072
23073 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return correct
23074 CC mode for AND.
23075
df2dfaea
JJ
230762013-03-14 Jakub Jelinek <jakub@redhat.com>
23077
fbd28bc3
JJ
23078 PR tree-optimization/53265
23079 * common.opt (Waggressive-loop-optimizations): New option.
23080 * tree-ssa-loop-niter.c: Include tree-pass.h.
23081 (do_warn_aggressive_loop_optimizations): New function.
23082 (record_estimate): Call it. Don't add !is_exit bounds to loop->bounds
23083 if number_of_latch_executions returned constant.
23084 (estimate_numbers_of_iterations_loop): Call number_of_latch_executions
23085 early. If number_of_latch_executions returned constant, set
23086 nb_iterations_upper_bound back to it.
23087 * cfgloop.h (struct loop): Add warned_aggressive_loop_optimizations
23088 field.
23089 * Makefile.in (tree-ssa-loop-niter.o): Depend on $(TREE_PASS_H).
23090 * doc/invoke.texi (-Wno-aggressive-loop-optimizations): Document.
23091
df2dfaea
JJ
23092 * config/aarch64/t-aarch64-linux (MULTARCH_DIRNAME): Remove.
23093 (MULTILIB_OSDIRNAMES): Set.
23094 * genmultilib: If defaultosdirname doesn't start with :: , set
23095 defaultosdirname2 instead, clear it and emit two . multilib_raw
23096 entries instead of just one.
23097
ee0d2b68
KK
230982013-03-14 Kaz Kojima <kkojima@gcc.gnu.org>
23099
23100 * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_USERMODE.
23101 (SUBTARGET_OVERRIDE_OPTIONS): Set TARGET_USERMODE as default.
23102 * config/sh/netbsd-elf.h (TARGET_DEFAULT): Remove MASK_USERMODE.
23103 (SUBTARGET_OVERRIDE_OPTIONS): New.
23104
decc676e
OE
231052013-03-13 Oleg Endo <olegendo@gcc.gnu.org>
23106
23107 PR target/49880
23108 * config/sh/sh.opt (FPU_SINGLE_ONLY): New mask.
23109 (musermode): Convert to Var(TARGET_USERMODE).
23110 * config/sh/sh.h (SELECT_SH2A_SINGLE_ONLY, SELECT_SH4_SINGLE_ONLY,
23111 MASK_ARCH): Add MASK_FPU_SINGLE_ONLY.
23112 * config/sh/sh.c (sh_option_override): Use
23113 TARGET_FPU_DOUBLE || TARGET_FPU_SINGLE_ONLY for call-fp case.
23114 * config/sh/sh.md (udivsi3_i1, divsi3_i1): Remove ! TARGET_SH4
23115 condition.
23116 (udivsi3_i4, divsi3_i4): Use TARGET_FPU_DOUBLE condition instead of
23117 TARGET_SH4.
23118 (udivsi3_i4_single, divsi3_i4_single): Use
23119 TARGET_FPU_SINGLE_ONLY || TARGET_FPU_DOUBLE instead of TARGET_HARD_SH4.
23120
f4b719c7
DK
231212013-03-13 Dave Korn <dave.korn.cygwin@....>
23122
23123 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): Make shared libgcc the
23124 default setting.
23125
c40eced0
RB
231262013-03-13 Richard Biener <rguenther@suse.de>
23127
23128 PR tree-optimization/56608
23129 * tree-vect-slp.c (vect_schedule_slp): Do not remove scalar
23130 calls when vectorizing basic-blocks.
23131
1bfa5973
JJ
231322013-03-13 Jakub Jelinek <jakub@redhat.com>
23133
23134 PR plugins/45078
23135 * config.gcc: On arm, mips, sh and sparc add vxworks-dummy.h to
23136 tm_file.
23137
6fcf5434
JJ
231382013-03-12 Jakub Jelinek <jakub@redhat.com>
23139
23140 * doc/invoke.texi (-Waddr-space-convert): Move into the table earlier.
23141
4f38fa8c
JH
231422013-03-11 Jan Hubicka <jh@suse.cz>
23143
23144 PR lto/56557
23145 * lto-streamer-out.c (output_symbol_p): Skip references from
23146 constructors of external variables.
23147
c5c5ba89
JH
231482013-03-11 Jan Hubicka <jh@suse.cz>
23149
23150 PR middle-end/56571
23151 * valtrack.c (cleanup_auto_inc_dec): Unshare clobbers originating
23152 from pseudos.
23153 * emit-rtl.c (verify_rtx_sharing): Likewise.
23154 (copy_insn_1): Likewise.
23155 * rtl.c (copy_rtx): Likewise.
23156
c2a939b1
GJL
231572013-03-11 Georg-Johann Lay <avr@gjlay.de>
23158
23159 PR target/56591
23160 * config/avr/avr.c (avr_print_operand): Add space after '%c' in
23161 output_operand_lossage message.
88b97037 23162
3c3279fb
RE
231632013-03-11 Richard Earnshaw <rearnsha@arm.com>
23164
23165 PR target/56470
23166 * arm.c (shift_op): Validate RTL pattern on the fly.
23167 (arm_print_operand, case 'S'): Don't use shift_operator to validate
23168 the RTL.
23169
aef5ef9d
JDA
231702013-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
23171
23172 PR target/56347
23173 * config/pa/pa.md (call_value): Check for calls to powf and direct to
23174 new call patterns that clobber %fr12.
23175 (call_val_powf, call_val_powf_pic, call_val_powf_64bit): New insn,
23176 split and postreload patterns.
23177 * config/pa/pa.c (pa_conditional_register_usage): Revert marking
23178 registers %fr12 and %fr12R as call used.
23179
456610d3
SB
231802013-03-09 Steven Bosscher <steven@gcc.gnu.org>
23181
23182 * dse.c (delete_dead_store_insn): Respect TDF_DETAILS.
23183 (canon_address, record_store, replace_read, check_mem_read_rtx,
23184 scan_insn, dse_step1, dse_step2_init, dse_step2_spill,
23185 dse_step4, dse_step5_nospill, dse_step5_spill, dse_step6,
23186 rest_of_handle_dse): Likewise.
23187
4b1baac8
RS
231882013-03-09 Richard Sandiford <rdsandiford@googlemail.com>
23189
23190 PR middle-end/56524
23191 * tree.h (tree_optimization_option): Rename target_optabs to optabs.
23192 Add base_optabs.
23193 (TREE_OPTIMIZATION_OPTABS): Update after previous field change.
23194 (TREE_OPTIMIZATION_BASE_OPTABS): New macro.
23195 (save_optabs_if_changed): Replace with...
23196 (init_tree_optimization_optabs): ...this.
23197 * optabs.c (save_optabs_if_changed): Rename to...
23198 (init_tree_optimization_optabs): ...this. Take the optimization node
23199 as argument. Do nothing if the base optabs are already correct.
23200 Reuse the existing TREE_OPTIMIZATION_OPTABS memory if we need
23201 to recompute optabs.
23202 * function.h (function): Remove optabs field.
23203 * function.c (invoke_set_current_function_hook): Call
23204 init_tree_optimization_optabs. Use the result to initialize
23205 this_fn_optabs.
23206
b7a78683
AH
232072013-02-27 Aldy Hernandez <aldyh@redhat.com>
23208
23209 * trans-mem.c (expand_transaction): Do not set PR_INSTRUMENTEDCODE
23210 if GTMA_HAS_NO_INSTRUMENTATION.
23211 (generate_tm_state): Keep GTMA_HAS_NO_INSTRUMENTATION bit.
23212 (ipa_tm_transform_transaction): Set GTMA_HAS_NO_INSTRUMENTATION.
23213 * gimple.h (GTMA_HAS_NO_INSTRUMENTATION): Define.
23214 * gimple-pretty-print.c (dump_gimple_transaction): Handle
23215 GTMA_HAS_NO_INSTRUMENTATION.
23216
6384c29b
JJ
232172013-03-08 Jakub Jelinek <jakub@redhat.com>
23218
23219 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Don't link against
23220 libasan_preinit.o.
23221
ecd4f20a
MP
232222013-03-08 Marek Polacek <polacek@redhat.com>
23223 Jakub Jelinek <jakub@redhat.com>
23224
23225 PR tree-optimization/56478
23226 * predict.c (is_comparison_with_loop_invariant_p): Change the
23227 type of loop_step to tree.
23228 (predict_loops): Adjust.
23229 (predict_iv_comparison): Perform the computations on double_ints.
23230
64366d35
RB
232312013-03-08 Richard Biener <rguenther@suse.de>
23232
23233 PR tree-optimization/56570
23234 * tree-cfg.c (verify_expr_location_1): Verify locations for
23235 DECL_DEBUG_EXPR.
23236 * tree-sra.c (create_access_replacement): Strip locations
23237 from DECL_DEBUG_EXPRs.
23238
a9d5a059
RB
232392013-03-08 Richard Biener <rguenther@suse.de>
23240
23241 * tree-inline.c (expand_call_inline): Do not associate
23242 a BLOCK with the location in BLOCK_SOURCE_LOCATION.
23243 * tree-cfg.c (verify_location): Verify BLOCK_SOURCE_LOCATION.
23244
b7aa4e9a
RB
232452013-03-08 Richard Biener <rguenther@suse.de>
23246
23247 * tree-ssa-ter.c (is_replaceable_p): Do not TER across location
23248 or block changes with -Og. Fix for location / block encoding
23249 changes and PHI arguments with locations.
23250
c4c2f9fa
SB
232512013-03-07 Steven Bosscher <steven@gcc.gnu.org>
23252
23253 * bitmap.c (struct bitmap_descriptor_d): Use unsigned HOST_WIDEST_INT
23254 for all counters.
23255 (struct output_info): Likewise.
23256 (register_overhead): Remove bad gcc_assert.
23257 (bitmap_find_bit): If there is only a single bitmap element, do not
23258 count a miss as a search.
23259 (print_statistics): Update for counter type changes.
23260 (dump_bitmap_statistics): Likewise. Print headers such that they
23261 are properly lined up with the printed counters.
23262
5bf6606a
JJ
232632013-03-07 Jakub Jelinek <jakub@redhat.com>
23264
23265 PR tree-optimization/56559
23266 * tree-ssa-reassoc.c (zero_one_operation): When looking at rhs2,
23267 check that it has only a single use.
23268
2c653d46
RB
232692013-03-07 Richard Biener <rguenther@suse.de>
23270
23271 * doc/invoke.texi (fwhole-program): Discourage use in combination
23272 with -flto.
23273
a72d8780
JJ
232742013-03-06 Jakub Jelinek <jakub@redhat.com>
23275
01a454df
JJ
23276 * config/arm/t-arm (TM_H, OPTIONS_H_EXTRA): Add arm-cores.def.
23277
c1781047
JJ
23278 PR tree-optimization/56539
23279 * tree-tailcall.c (adjust_return_value_with_ops): Use GSI_SAME_STMT
23280 instead of GSI_CONTINUE_LINKING as last argument to
23281 force_gimple_operand_gsi. Adjust function comment.
23282
9772c47a
JJ
23283 * config/aarch64/t-aarch64 (TM_H, OPTIONS_H_EXTRA): Add
23284 aarch64-cores.def.
23285
a72d8780
JJ
23286 PR middle-end/56548
23287 * expr.c (expand_cond_expr_using_cmove): When expanding cmove in
23288 promoted mode, convert the result back to the original mode.
23289
fa5556de
RB
232902013-03-06 Richard Biener <rguenther@suse.de>
23291
23292 PR middle-end/56294
23293 * tree-into-ssa.c (insert_phi_nodes_for): Add dumping.
23294 (insert_updated_phi_nodes_compare_uids): New function.
23295 (update_ssa): Sort symbols_to_rename after UID before
23296 traversing it to insert PHI nodes.
23297
010403d1
RB
232982013-03-06 Richard Biener <rguenther@suse.de>
23299
23300 PR middle-end/50494
23301 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p):
23302 Do not adjust alignment of DECL_IN_CONSTANT_POOL decls.
23303
23304 Revert
23305 2013-02-13 Richard Biener <rguenther@suse.de>
23306
23307 PR lto/50494
23308 * varasm.c (output_constant_def_1): Get the decl representing
23309 the constant as argument.
23310 (output_constant_def): Wrap output_constant_def_1.
23311 (make_decl_rtl): Use output_constant_def_1 with the decl
23312 representing the constant.
23313 (build_constant_desc): Optionally re-use a decl already
23314 representing the constant.
23315 (tree_output_constant_def): Adjust.
23316
3c27ce4c
JY
233172013-03-06 Joey Ye <joey.ye@arm.com>
23318
23319 PR lto/50293
23320 * gcc.c (convert_white_space): New function.
23321 (main): Handles white space in function name.
23322
8f6d1c86
OE
233232013-03-06 Oleg Endo <olegendo@gcc.gnu.org>
23324
23325 PR target/56529
23326 * config/sh/sh.c (sh_option_override): Check for TARGET_DYNSHIFT
23327 instead of TARGET_SH2 for call-table case. Do not set sh_div_strategy
23328 to SH_DIV_CALL_TABLE for TARGET_SH2.
23329 * config.gcc (sh_multilibs): Add m2 and m2a to sh*-*-linux* multilib
23330 list.
23331 * doc/invoke.texi (SH options): Document mdiv= call-div1, call-fp,
23332 call-table options.
23333
798a209f
SA
233342013-03-05 Sterling Augustine <saugustine@google.com>
23335 Cary Coutant <ccoutant@google.com>
23336
23337 PR debug/55364
23338 * dwarf2out.c (resolve_addr): Don't call
23339 remove_loc_list_addr_table_entries a second time for the same
23340 expression.
23341
6cfa417f 233422013-03-05 Jakub Jelinek <jakub@redhat.com>
ee61ea38 23343
6cfa417f
JJ
23344 PR debug/56510
23345 * cfgexpand.c (expand_debug_parm_decl): Call copy_rtx on incoming.
23346 (avoid_complex_debug_insns): New function.
23347 (expand_debug_locations): Call it.
23348
23349 PR rtl-optimization/56484
23350 * ifcvt.c (noce_process_if_block): If else_bb is NULL, avoid extending
23351 lifetimes of hard registers on small register class machines.
23352
233532013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
23354
23355 * config/microblaze/microblaze-protos.h: Rename
ee61ea38 23356 microblaze_is_interrupt_handler to microblaze_is_interrupt_variant.
6cfa417f 23357 * config/microblaze/microblaze.c (microblaze_attribute_table): Add
ee61ea38
DH
23358 fast_interrupt.
23359 (microblaze_fast_interrupt_function_p): New function.
23360 (microblaze_is_interrupt_handler): Rename to
23361 microblaze_is_interrupt_variant and add fast_interrupt check.
23362 (microblaze_must_save_register): Use microblaze_is_interrupt_variant.
23363 (save_restore_insns): Likewise.
23364 (compute_frame_size): Likewise.
23365 (microblaze_function_prologue): Add FAST_INTERRUPT_NAME.
23366 (microblaze_globalize_label): Likewise.
6cfa417f
JJ
23367 * config/microblaze/microblaze.h: Define FAST_INTERRUPT_NAME.
23368 * config/microblaze/microblaze.md: Use wrapper
ee61ea38
DH
23369 microblaze_is_interrupt_variant.
23370
731aefac
KT
233712013-03-05 Kai Tietz <ktietz@redhat.com>
23372
23373 * sdbout.c (sdbout_one_type): Switch to current function's section
23374 supporting cold/hot.
23375
a72d8780 233762013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
e34fd5a7
DH
23377
23378 * doc/invoke.texi (MicroBlaze): Add -mbig-endian, -mlittle-endian,
23379 -mxl-reorder.
23380
334e71e8
JJ
233812013-03-05 Jakub Jelinek <jakub@redhat.com>
23382
0b50e654
JJ
23383 PR middle-end/56461
23384 * ggc-common.c (gt_pch_save): For ENABLE_VALGRIND_CHECKING,
23385 if VALGRIND_GET_VBITS is defined, temporarily make object
23386 memory all defined, and restore previous valgrind addressability
23387 and definability afterwards. Free this_object at the end.
23388
4ccf8f43
JJ
23389 PR middle-end/56461
23390 * lra.c (lra): Call lra_clear_live_ranges if live_p,
23391 right before calling lra_create_live_ranges, also call it
23392 when clearing live_p. Only call lra_clear_live_ranges
23393 at the end if live_p.
23394
334e71e8
JJ
23395 PR middle-end/56461
23396 * sched-deps.c (delete_dep_node): Free DEP_REPLACE.
23397
9ca966ca
RB
233982013-03-05 Richard Biener <rguenther@suse.de>
23399
23400 PR tree-optimization/56521
23401 * tree-ssa-sccvn.c (set_value_id_for_result): Always initialize
23402 value-id.
23403
d273b176
SB
234042013-03-05 Steven Bosscher <steven@gcc.gnu.org>
23405
23406 PR c++/55135
23407 * except.h (remove_unreachable_eh_regions): New prototype.
23408 * except.c (remove_eh_handler_splicer): New function, split out
23409 of remove_eh_handler.
23410 (remove_eh_handler): Use remove_eh_handler_splicer. Add comment
23411 warning about running it on many EH regions one at a time.
23412 (remove_unreachable_eh_regions_worker): New function, walk the
23413 EH tree in depth-first order and remove non-marked regions.
23414 (remove_unreachable_eh_regions): New function.
23415 * tree-eh.c (mark_reachable_handlers): New function, split out
23416 from remove_unreachable_handlers.
23417 (remove_unreachable_handlers): Use mark_reachable_handlers and
23418 remove_unreachable_eh_regions.
23419 (remove_unreachable_handlers_no_lp): Use mark_reachable_handlers
23420 and remove_unreachable_eh_regions.
23421
5e7f1aef
RB
234222013-03-05 Richard Biener <rguenther@suse.de>
23423
23424 PR middle-end/56525
23425 * loop-init.c (fix_loop_structure): Remove loops in two stages,
23426 not freeing them until the end.
23427
f276b762
AK
234282013-03-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
23429
23430 * config/s390/s390.h: Define DWARF2_ASM_LINE_DEBUG_INFO.
23431
12a43ab8
RB
234322013-03-05 Richard Biener <rguenther@suse.de>
23433
23434 PR tree-optimization/56270
23435 * tree-vect-slp.c (vect_schedule_slp): Clear vectorized stmts
23436 of loads after scheduling an SLP instance.
23437
93675444
JJ
234382013-03-05 Jakub Jelinek <jakub@redhat.com>
23439
db4138e3
JJ
23440 * Makefile.in (dg_target_exps): Add aarch64.exp, epiphany.exp and
23441 tic6x.exp.
23442 (check_gcc_parallelize): Run guality.exp as a separate job from
23443 vect.exp with unsorted.exp and $(dg_target_exps) separately from
23444 struct-layout-1.exp with stackalign.exp.
23445
dd3d1ec0
JJ
23446 * alias.c (init_alias_analysis): Clear reg_known_equiv_p bitmap.
23447
b8d381a3
JJ
23448 PR middle-end/56461
23449 * tree-vect-slp.c (vect_supported_load_permutation_p): Free
23450 load_index sbitmap even if some bit in it isn't set.
23451
b4f9786b
JJ
23452 PR middle-end/56461
23453 * tree-ssa-loop-niter.c (bb_queue): Remove typedef.
23454 (discover_iteration_bound_by_body_walk): Change queues to
23455 vec<vec<basic_block> > and queue to vec<basic_block>. Fix up
23456 spelling in comment. Call safe_push on queues[bound_index] directly.
23457 Release queues[queue_index] in every iteration unconditionally.
23458 Release bounds vector.
23459
93675444
JJ
23460 PR middle-end/56461
23461 * tree-vect-stmts.c (free_stmt_vec_info_vec): Call
23462 free_stmt_vec_info on any left-over stmt_vec_info in the vector.
23463 * tree-vect-loop.c (vect_create_epilog_for_reduction): Release
23464 inner_phis vector.
23465
3e492e9c
RB
234662013-03-05 Richard Biener <rguenther@suse.de>
23467
23468 PR lto/56515
23469 * tree-inline.c (remap_blocks_to_null): New function.
23470 (expand_call_inline): When expanding a call stmt without
23471 an associated block inline remap all callee blocks to NULL.
23472
a5d1569a
JJ
234732013-03-05 Jakub Jelinek <jakub@redhat.com>
23474
86efb5cd
JJ
23475 PR rtl-optimization/56494
23476 * simplify-rtx.c (simplify_truncation): If C is narrower than A,
23477 optimize (truncate:A (subreg:B (truncate:C X) 0)) into
23478 (subreg:A (truncate:C X) 0) instead of (truncate:A X).
23479
85f5dbea
JJ
23480 PR middle-end/56461
23481 * sel-sched-ir.c (free_sched_pools): Release
23482 succs_info_pool.stack[succs_info_pool.max_top] vectors too
23483 if succs_info_pool.max_top isn't -1.
23484
a5d1569a
JJ
23485 PR bootstrap/56509
23486 * opts.c (opts_obstack, opts_concat): Moved to...
23487 * opts-common.c (opts_obstack, opts_concat): ... here.
23488
4432aa6c
JJ
234892013-03-04 Jakub Jelinek <jakub@redhat.com>
23490
23491 PR middle-end/56461
23492 * diagnostic.c (diagnostic_append_note): Save and restore old prefix.
23493
f3a1fb91
MJ
234942013-03-04 Martin Jambor <mjambor@suse.cz>
23495
23496 * tree-dfa.c (get_or_create_ssa_default_def): Use parameter fn in
23497 all appropriate places.
23498
22110e6c
EB
234992013-01-04 Eric Botcazou <ebotcazou@adacore.com>
23500
23501 PR tree-optimization/56424
23502 * ipa-split.c (split_function): Do not set the RSO flag if result is
23503 not by reference and its type is a register type.
23504
a72d8780 235052013-03-04 David Holsgrove <david.holsgrove@xilinx.com>
91c4e421 23506
88b97037 23507 * config/microblaze/microblaze.c (microblaze_valid_pic_const): New
91c4e421 23508 (microblaze_legitimate_pic_operand): Likewise
88b97037 23509 * config/microblaze/microblaze.h (LEGITIMATE_PIC_OPERAND_P): calls
91c4e421
DH
23510 new function microblaze_legitimate_pic_operand
23511 * config/microblaze/microblaze-protos.h
23512 (microblaze_legitimate_pic_operand): Declare.
23513
a72d8780 235142013-03-04 Edgar E. Iglesias <edgar.iglesias@gmail.com>
82f8f53a 23515
a72d8780 23516 * config/microblaze/predicates.md (call_insn_simple_operand):
82f8f53a 23517 New predicate for supported rtx code types.
a72d8780 23518 * config/microblaze/microblaze.md (call_internal1): Use
82f8f53a
EI
23519 call_insn_simple_operand predicate.
23520
541d9ac8
JJ
235212013-03-04 Jakub Jelinek <jakub@redhat.com>
23522
5eb010bc
JJ
23523 PR middle-end/56461
23524 * tree-loop-distribution.c (ldist_gen): Call partition_free after each
23525 partitions.ordered_remove.
23526
30862efc
JJ
23527 PR middle-end/56461
23528 * tree-vect-stmts.c (vectorizable_conversion): Don't call
23529 vec_oprnds0.create (1) for modifier == NONE.
23530
8930f723
JJ
23531 PR middle-end/56461
23532 * tree-vect-stmts.c (vectorizable_shift): Don't call create methods
23533 on vec_oprnds0 or vec_oprnds1 before loop, only call it on
23534 vec_oprnds1 right before pushing anything to it for
23535 scalar_shift_arg.
23536
541d9ac8
JJ
23537 PR middle-end/56461
23538 * tree-vect-loop.c (destroy_loop_vec_info): For !clean_stmts, just
23539 set nbbs to 0 instead of having separate code path.
23540 (vect_analyze_loop_form): Call destroy_loop_vec_info with true
23541 instead of false as last argument if returning NULL.
23542
7aa7f2e3
SL
235432013-03-03 Sandra Loosemore <sandra@codesourcery.com>
23544
23545 * target.def (TARGET_OPTION_VALID_ATTRIBUTE_P): Update comments;
23546 the attribute is now called "target" instead of "option".
23547 (TARGET_OPTION_PRAGMA_PARSE): Likewise, for the pragma.
23548 * doc/tm.texi.in (Target Attributes): Likewise document the correct
23549 attribute/pragma name for TARGET_OPTION_VALID_P and
23550 TARGET_OPTION_PRAGMA_PARSE. Also copy-edit and correct markup.
23551 * doc/tm.texi: Regenerated.
23552
8930f723 235532013-03-02 David Holsgrove <david.holsgrove@xilinx.com>
cb8a1637 23554
8930f723 23555 * config/microblaze/microblaze.c:
cb8a1637 23556 Check mcpu, pcmp requirement and set TARGET_REORDER to 0 if not met.
8930f723
JJ
23557 * config/microblaze/microblaze.h: Add -mxl-reorder to
23558 DRIVER_SELF_SPECS.
23559 * config/microblaze/microblaze.md: New bswapsi2 and bswaphi2.
23560 instructions emitted if TARGET_REORDER.
88b97037
UB
23561 * config/microblaze/microblaze.opt: New option -mxl-reorder set to 1
23562 or 0 for -m/-mno case, but initialises as 2 to detect default use case
8930f723 23563 separately.
cb8a1637 23564
4dc1d68c
XDL
235652013-03-01 Xinliang David Li <davidxl@google.com>
23566
23567 * tree-ssa-uninit.c (compute_control_dep_chain): Limit post-dom
23568 walk length.
23569
689eaba3
JJ
235702013-03-01 Jakub Jelinek <jakub@redhat.com>
23571
9d676bf6
JJ
23572 PR middle-end/56461
23573 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Release path
23574 vector even when returning true. Fix up function comment formatting.
23575
caff7edf
JJ
23576 PR middle-end/56461
23577 * ira-build.c (ira_loop_nodes_count): New variable.
23578 (create_loop_tree_nodes): Initialize it.
23579 (finish_loop_tree_nodes): Use it instead of looking at current_loops.
23580
b6b9227d
JJ
23581 PR middle-end/56461
23582 * tree-vect-data-refs.c (vect_permute_store_chain): Avoid using copy
23583 method on dr_chain and result_chain.
23584 * tree-vect-stmts.c (vectorizable_store): Only call
23585 result_chain.create if j == 0.
23586
689eaba3
JJ
23587 PR middle-end/56461
23588 * tree-vect-stmts.c (vect_create_vectorized_promotion_stmts): Call
23589 vec_oprnds0->release (); rather than vec_oprnds0->truncate (0)
23590 before overwriting it.
23591
40bf31ed
TB
235922013-03-01 Tobias Burnus <burnus@net-b.de>
23593
23594 * doc/extended.texi (C Extensions): Change order in @menu
23595 to match @node.
23596 (Other MIPS Built-in Functions): Move last MIPS entry before
23597 "picoChip Built-in Functions".
23598 (SH Built-in Functions): Move after RX Built-in Functions.
23599 * doc/gcc.texi (Introduction): Change order in @menu
23600 to match @node.
23601 * doc/md.texi (Constraints): Ditto.
23602 * gty.texi (Type Information): Ditto.
23603 (User-provided marking routines for template types): Make
23604 subsection.
23605 * doc/invoke.texi (AArch64 Options): Move before
23606 "Adapteva Epiphany Options".
23607
e664c61c
KS
236082013-02-28 Konstantin Serebryany <konstantin.s.serebryany@gmail.com>
23609 Jakub Jelinek <jakub@redhat.com>
23610
23611 PR sanitizer/56454
23612 * asan.c (gate_asan): Lookup no_sanitize_address instead of
23613 no_address_safety_analysis attribute.
23614 * doc/extend.texi (no_address_safety_attribute): Rename to
23615 no_sanitize_address attribute, mention no_address_safety_analysis
23616 attribute as deprecated alias.
23617
37b5ec8f
JJ
236182013-02-28 Jakub Jelinek <jakub@redhat.com>
23619
23620 PR middle-end/56461
23621 * tree-vectorizer.h (vect_get_slp_defs): Change 3rd argument
23622 type to vec<vec<tree> > *.
23623 * tree-vect-slp.c (vect_get_slp_defs): Likewise. Change vec_defs
23624 to be vec<tree> instead of vec<tree> *, set vec_defs
23625 to vNULL and call vec_defs.create (number_of_vects), adjust other
23626 uses of vec_defs.
23627 * tree-vect-stmts.c (vect_get_vec_defs, vectorizable_call,
23628 vectorizable_condition): Adjust vect_get_slp_defs callers.
23629
ba96cdfb
JG
236302013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
23631
23632 * config/aarch64/aarch64.c
23633 (aarch64_float_const_representable): Remove unused variable.
23634
6f549691
JG
236352013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
23636
23637 * config/aarch64/aarch64.c (aarch64_mangle_type): Make static.
23638
af55e82d
JG
236392013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
23640
23641 * config/aarch64/aarch64-builtins.c
23642 (aarch64_init_simd_builtins): Make static.
23643
1df3f464
JG
236442013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
23645
23646 * config/aarch64/aarch64.c
23647 (aarch64_simd_make_constant): Make static.
23648
f8f42513
MJ
236492013-02-28 Martin Jambor <mjambor@suse.cz>
23650
23651 * tree-sra.c (load_assign_lhs_subreplacements): Do not put replacements
23652 with no initialization to the RHS of debug statements.
23653
b48b3fc4
MJ
236542013-02-28 Martin Jambor <mjambor@suse.cz>
23655
23656 PR tree-optimization/56294
23657 * tree-sra.c (analyze_access_subtree): Create replacement declarations.
23658 Adjust dumping.
23659 (get_access_replacement): Do not call create_access_replacement.
23660 Assert a replacement exists.
23661 (get_repl_default_def_ssa_name): Create the replacement declaration
23662 itself.
23663
c3ae224c
RR
236642013-02-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
23665
23666 * config/arm/arm.c (arm_output_mi_thunk): Call final_start_function and
23667 final_end_function.
23668
45fa0eef
MP
236692013-02-28 Marek Polacek <polacek@redhat.com>
23670
23671 PR rtl-optimization/56466
23672 * loop-unroll.c (unroll_and_peel_loops): Call fix_loop_structure
23673 if we're changing a loop.
23674 (peel_loops_completely): Likewise.
23675
502c067d
PC
236762013-02-28 Paolo Carlini <paolo.carlini@oracle.com>
23677
23678 PR c++/55813
23679 * doc/invoke.texi ([-Wctor-dtor-privacy]): Complete.
23680
ff24afc8
GJL
236812013-02-28 Georg-Johann Lay <avr@gjlay.de>
23682
23683 PR target/56445
23684 * config/avr/avr.c (avr_init_builtins): Use 'n' instead of empty
23685 macro parameters with: FX_FTYPE_FX, FX_FTYPE_FX_INT, INT_FTYPE_FX,
23686 INTX_FTYPE_FX, FX_FTYPE_INTX.
23687 * config/avr/builtins.def: Adjust respective DEF_BUILTIN.
23688
c7b1fc1b
GJL
236892013-02-28 Georg-Johann Lay <avr@gjlay.de>
23690
23691 * avr/avr-mcus.def (ata5272, ata5505, attiny1634, ata6285)
23692 (ata6286, atmega8a, atmega48pa, ata5790, ata5790n, ata5795)
23693 (atmega164pa, atmega165pa, atmega168pa, atmega16hva, atmega16hvb)
23694 (atmega16hvbrevb, atmega16m1, atmega16u4, atmega26hvg, atmega32a)
23695 (atmega32a, atmega3250pa, atmega3290pa, atmega32c1, atmega32m1)
23696 (atmega32u4, atmega32u6, atmega64a, atmega6490a, atmega6490p)
23697 (atmega64c1, atmega64m1, atmega64rfa2, atmega64rfr2, atmega32hvb)
23698 (atmega32hvbrevb, atmega16hva2, atmega48hvf, at90pwm161)
23699 (atmega128a, atmega1284, atmxt112sl, atmxt224, atmxt224e)
23700 (atmxt336s, atxmega16a4u, atxmega16c4, atxmega32a4u, atxmega32c4)
23701 (atxmega32e5, atxmega64a3u, atxmega64a4u, atxmega64b1, atxmega64b3)
23702 (atxmega64c3, atxmega64d4, atxmega128a3u, atxmega128b1)
23703 (atxmega128b3, atxmega128c3, atxmega128d4, atmxt540s, atmxt540sreva)
23704 (atxmega192a3u, atxmega192c3, atxmega256a3u, atxmega256c3)
23705 (atxmega384c3, atxmega384d3, atxmega128a4u): New AVR_MCU.
23706 (avrxmega6): Increase max flash segments from 5 to 6.
23707 * config/avr/t-multilib: Regenerate.
23708 * config/avr/avr-tables.opt: Regenerate.
23709 * doc/avr-mmcu.texi: Regenerate.
23710
4a0e3cfe
GJL
237112013-02-28 Georg-Johann Lay <avr@gjlay.de>
23712
23713 * config/avr/avr.h (device_to_arch): Rename to device_to_ld.
23714 (avr_device_to_arch): Rename to avr_device_to_ld.
23715 (avr_device_to_as): New prototype.
23716 (EXTRA_SPEC_FUNCTIONS): Add device_to_as.
23717 (ASM_SPEC): Use device_to_as to get -mmcu= and -mno-skip-bug=.
23718 * config/avr/driver-avr.c (avr_device_to_as): New.
23719 (avr_device_to_arch): Rename to avr_device_to_ld.
23720
97785e52
JJ
237212013-02-27 Jakub Jelinek <jakub@redhat.com>
23722
3f292312
JJ
23723 PR middle-end/56461
23724 * tree-vect-data-refs.c (vect_permute_load_chain): Avoid using copy
23725 method on dr_chain and result_chain.
23726
a344216b
JJ
23727 PR middle-end/56461
23728 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Call
23729 pointer_set_destroy on not_executed_last_iteration.
23730
f121ad02 23731 PR middle-end/56461
88b97037 23732 * tree-vect-loop.c (vectorizable_reduction): Release vect_defs vector.
f121ad02 23733
307f83a3
JJ
23734 PR middle-end/56461
23735 * ipa-pure-const.c (propagate): Use FOR_EACH_FUNCTION instead of
23736 FOR_EACH_DEFINED_FUNCTION when freeing state.
23737
e19624ee
JJ
23738 PR middle-end/56461
23739 * df-scan.c (df_insn_delete): Use df_scan_free_mws_vec before
23740 pool_free.
23741 (df_insn_rescan_debug_internal): Use df_scan_free_mws_vec before
23742 overwriting it.
23743
90e709fd
JJ
23744 PR middle-end/56461
23745 * ipa-cp.c (decide_whether_version_node): Call vec_free on
23746 known_aggs[i].items and release known_aggs vector.
23747
97785e52
JJ
23748 PR middle-end/56461
23749 * ipa-reference.c (propagate): Free node_info even for alias nodes.
23750
237512013-02-27 Edgar E. Iglesias <edgar.iglesias@gmail.com>
bbb3a9e2 23752
97785e52
JJ
23753 * config/microblaze/microblaze.c (microblaze_emit_compare):
23754 Use xor for EQ/NE comparisions.
23755 * config/microblaze/microblaze.md (cstoresf4): Add constraints
23756 (cbranchsf4): Adjust operator to comparison_operator.
bbb3a9e2 23757
6fa5e0ed
JJ
237582013-02-27 Jakub Jelinek <jakub@redhat.com>
23759
23760 PR middle-end/56461
23761 * tree-flow.h (edge_var_map_vector): Change into va_heap, vl_embed
23762 vector.
23763 * tree-ssa.c (redirect_edge_var_map_add): Use vec_safe_reserve and
23764 vec_safe_push, always update *slot.
23765 (redirect_edge_var_map_clear): Use vec_free.
23766 (redirect_edge_var_map_dup): Use vec_safe_copy and vec_safe_reserve.
23767 (free_var_map_entry): Use vec_free.
23768 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Use
23769 FOR_EACH_VEC_SAFE_ELT instead of FOR_EACH_VEC_ELT.
23770
436a956a
AB
237712013-02-27 Andrey Belevantsev <abel@ispras.ru>
23772
23773 PR middle-end/45472
436a956a
AB
23774 * sel-sched-ir.c (merge_expr): Also change vinsn of merged expr
23775 when the may_trap_p bit of the exprs being merged differs.
436a956a
AB
23776 Reorder tests for speculativeness in the logical and operator.
23777
f5c2caca
JJ
237782013-02-27 Jakub Jelinek <jakub@redhat.com>
23779
0fcb564b
JJ
23780 * incpath.c (add_standard_paths): Use reconcat instead of concat
23781 where appropriate and avoid leaking memory.
23782
dc357798
JJ
23783 * opts.h: Include obstack.h.
23784 (opts_concat): New prototype.
23785 (opts_obstack): New declaration.
23786 * opts.c (opts_concat): New function.
23787 (opts_obstack): New variable.
23788 (init_options_struct): Call gcc_init_obstack on opts_obstack.
23789 (finish_options): Use opts_concat instead of concat
23790 and XOBNEWVEC instead of XNEWVEC.
23791 * opts-common.c (generate_canonical_option, decode_cmdline_option,
23792 generate_option): Likewise.
23793 * Makefile.in (OPTS_H): Depend on $(OBSTACK_H).
23794 * lto-wrapper.c (main): Call gcc_init_obstack on opts_obstack.
23795
f5c2caca
JJ
23796 PR target/56455
23797 * stmt.c (expand_switch_as_decision_tree_p): If flag_pic
23798 and ASM_OUTPUT_ADDR_DIFF_ELT isn't defined, return true.
23799
d0163673
JJ
238002013-02-26 Jakub Jelinek <jakub@redhat.com>
23801
23802 PR middle-end/56461
23803 * lra-spills.c (lra_spill): Free spill_hard_reg at the end.
23804
b5ad2b8e
JR
238052013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
23806
23807 * config/arm/arm.c (const_ok_for_dimode_op): Back out last change.
23808 (arm_block_move_unaligned_straight): Likewise.
23809 (arm_adjust_block_mem): Likewise.
23810
9b639e2c
JR
238112013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
23812
23813 PR target/48901
23814 * config/lm32/lm32.c (gen_int_relational): Remove unused variables
23815 temp, cond and label.
23816 * config/lm32/lm32.md (ashlsi3): Remove unused variable one.
23817
e13a0ccb
JR
23818 PR target/52500
23819 * config/c6x/c6x.c (dbx_register_map): Change to unsigned.
23820 * config/c6x/c6x.h (dbx_register_map): Update declaration.
23821
fbe4f171
JR
23822 PR target/52501
23823 * config/cr16/cr16-protos.h: Move end of RTX_CODE guard below end
23824 of prologue/epilogue functions.
23825
ae006543
JR
23826 PR target/52550
23827 * config/tilegx/tilegx.c (tilegx_expand_prologue):
23828 Remove unused variable cfa_offset.
23829 * config/tilepro/tilepro.c (tilepro_expand_prologue): Likewise.
23830
c81369fa
JR
23831 PR target/54639
23832 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Avoid offset
23833 type promotion to unsigned.
23834
f8a8fea7
JR
23835 PR target/54640
23836 * config/arm/arm.c (const_ok_for_dimode_op): Make code consistent
23837 for HOST_WIDE_INT of 32 bit / same size as int.
23838 (arm_block_move_unaligned_straight): Likewise.
23839 (arm_adjust_block_mem): Likewise.
23840
f8be5169
JR
23841 PR target/54662
23842 * config/mep/t-mep (mep-pragma.o): Use ALL_COMPILERFLAGS instead of
23843 ALL_CFLAGS.
23844
f1ad3354
MP
238452013-02-26 Marek Polacek <polacek@redhat.com>
23846
23847 PR tree-optimization/56426
88b97037 23848 * tree-ssa-loop.c (tree_ssa_loop_init): Always call scev_initialize.
f1ad3354 23849
a6af0f42
RB
238502013-02-26 Richard Biener <rguenther@suse.de>
23851
23852 PR target/56444
23853 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): Remove
23854 unused variable loops.
23855
aca43c6c
JJ
238562013-02-26 Jakub Jelinek <jakub@redhat.com>
23857
cecbe5d9
JJ
23858 PR tree-optimization/56448
23859 * fold-const.c (operand_equal_p) <case tcc_reference>: Don't look at
23860 TREE_SIDE_EFFECTS if flags contain OEP_CONSTANT_ADDRESS_OF.
23861 Clear OEP_CONSTANT_ADDRESS_OF from flags before recursing on second or
23862 later operands of the references, or even first operand for
23863 INDIRECT_REF, TARGET_MEM_REF or MEM_REF.
23864
aca43c6c
JJ
23865 PR tree-optimization/56443
23866 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): For
23867 overaligned types, pass TYPE_UNSIGNED (scalar_type) as second argument
23868 to type_for_mode langhook.
23869
53e2e141
MT
238702013-02-25 Matt Turner <mattst88@gmail.com>
23871
23872 * doc/invoke.texi: Document r4700.
23873
259ee451
RB
238742013-02-25 Richard Biener <rguenther@suse.de>
23875
23876 PR tree-optimization/56175
23877 * tree-ssa-forwprop.c (hoist_conversion_for_bitop_p): New predicate,
23878 split out from ...
23879 (simplify_bitwise_binary): ... here. Also guard the conversion
23880 of (type) X op CST to (type) (X op ((type-x) CST)) with it.
23881
6d65e8f1
CM
238822013-02-25 Catherine Moore <clm@codesourcery.com>
23883
23884 Revert:
23885 2013-02-24 Catherine Moore <clm@codesourcery.com>
23886 Maciej W. Rozycki <macro@codesourcery.com>
23887 Tom de Vries <tom@codesourcery.com>
a72d8780 23888 Nathan Sidwell <nathan@codesourcery.com>
6d65e8f1
CM
23889 Iain Sandoe <iain@codesourcery.com>
23890 Nathan Froyd <froydnj@codesourcery.com>
a72d8780 23891 Chao-ying Fu <fu@mips.com>
88b97037 23892
6d65e8f1 23893 * doc/extend.texi: (micromips, nomicromips, nocompression):
88b97037 23894 Document new function attributes.
6d65e8f1
CM
23895 * doc/invoke.texi (minterlink-compressed, mmicromips,
23896 m14k, m14ke, m14kec): Document new options.
23897 (minterlink-mips16): Update documentation.
23898 * doc/md.texi (ZC, ZD): Document new constraints.
23899 * configure.ac (gcc_cv_as_micromips): Check if linker
23900 supports the .set micromips directive.
23901 * configure: Regenerate.
23902 * config.in: Regenerate.
23903 * config/mips/mips-tables.opt: Regenerate.
23904 * config/mips/micromips.md: New file.
23905 * constraints.md (ZC, AD): New constraints.
23906 * config/mips/predicates.md (movep_src_register): New predicate.
23907 (movep_src_operand): New predicate.
23908 (non_volatile_mem_operand): New predicate.
23909 * config/mips/mips.md (multimem): New type.
23910 (length): Differentiate between 17-bit and 18-bit branch offsets.
23911 (MOVEP1, MOVEP2): New mode iterator.
23912 (mov_<load>l): Use ZC constraint.
23913 (mov_<load>r): Likewise.
23914 (mov_<store>l): Likewise.
23915 (mov_<store>r): Likewise.
23916 (*branch_equality<mode>_inverted): Add microMIPS support.
23917 (*branch_equality<mode>): Likewise.
23918 (*jump_absolute): Likewise.
23919 (indirect_jump_<mode>): Likewise.
23920 (tablejump_<mode>): Likewise.
23921 (<optab>_internal): Likewise.
23922 (sibcall_internal): Likewise.
23923 (sibcall_value_internal): Likewise.
23924 (prefetch): Use constraint ZD.
23925 * config/mips/mips.opt (minterlink-compressed): New option.
23926 (minterlink-mips16): Now an alias for minterlink-compressed.
23927 (mmicromips): New option.
23928 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
23929 (compare_and_swap_12): Likewise.
23930 (sync_add<mode>): Likewise.
23931 (sync_<optab>_12): Likewise.
23932 (sync_old_<optab>_12): Likewise.
23933 (sync_new_<optab>_12): Likewise.
23934 (sync_nand_12): Likewise.
23935 (sync_old_nand_12): Likewise.
23936 (sync_new_nand_12): Likewise.
23937 (sync_sub<mode>): Likewise.
23938 (sync_old_add<mode>): Likewise.
23939 (sync_old_sub<mode>): Likewise.
23940 (sync_new_add<mode>): Likewise.
23941 (sync_new_sub<mode>): Likewise.
23942 (sync_<optab><mode>): Likewise.
23943 (sync_old_<optab><mode>): Likewise.
23944 (sync_new_<optab><mode>): Likewise.
23945 (sync_nand<mode>): Likewise.
23946 (sync_old_nand<mode>): Likewise.
23947 (sync_new_nand<mode>): Likewise.
23948 (sync_lock_test_and_set<mode>): Likewise.
23949 (test_and_set_12): Likewise.
23950 (atomic_compare_and_swap<mode>): Likewise.
23951 (atomic_exchange<mode>_llsc): Likewise.
23952 (atomic_fetch_add<mode>_llsc): Likewise.
23953 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
23954 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
23955 (umips_save_restore_pattern_p): Likewise.
23956 (umips_load_store_pair_p): Likewise.
23957 (umips_output_load_store_pair): Likewise.
23958 (umips_movep_target_p): Likewise.
23959 (umips_12bit_offset_address_p): Likewise.
23960 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
23961 (mips_base_mips16): Rename this...
23962 (mips_base_compression_flags): ...to this. Update all uses.
23963 (mips_attribute_table): Add micromips, nomicromips and nocompression.
23964 (mips_mips16_decl_p): Delete.
23965 (mips_nomips16_decl_p): Delete.
23966 (mips_get_compress_on_flags): New function.
23967 (mips_get_compress_off_flags): New function.
23968 (mips_get_compress_mode): New function.
23969 (mips_get_compress_on_name): New function.
23970 (mips_get_compress_off_name): New function.
23971 (mips_insert_attributes): Support multiple compression types.
23972 (mips_merge_decl_attributes): Likewise.
23973 (umips_12bit_offset_address_p): New function.
23974 (mips_start_function_definition): Emit .set micromips directive.
23975 (mips_call_may_need_jalx_p): New function.
23976 (mips_function_ok_for_sibcall): Add microMIPS support.
23977 (mips_print_operand_punctuation): Support short delay slots and
23978 compact jumps.
23979 (umips_swm_mask, umips_swm_encoding): New.
23980 (umips_build_save_restore): New function.
23981 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
23982 (was_mips16_p): Remove.
23983 (old_compression_mode): New.
23984 (mips_set_compression_mode): New function.
23985 (mips_set_current_function): Add microMIPS support.
23986 (mips_option_override): Likewise.
23987 (umips_save_restore_pattern_p): New function.
23988 (umips_output_save_restore): New function.
23989 (umips_load_store_pair_p_1): New function.
23990 (umips_load_store_pair_p): New function.
23991 (umips_output_load_store_pair_1): New function.
23992 (umips_output_load_store_pair): New function.
23993 (umips_movep_target_p) New function.
23994 (mips_prepare_pch_save): Add microMIPS support.
23995 * config/mips/mips.h (TARGET_COMPRESSION): New.
23996 (TARGET_CPU_CPP_BUILTINS): Update macro
23997 to use new compression flags and to support microMIPS.
23998 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
23999 (MIPS_ARCH_FLOAT_SPEC): Likewise.
24000 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
24001 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
24002 (ASM_SPEC): Support mmicromips and mno-micromips.
24003 (M16STORE_REG_P): New macro.
24004 (MIPS_CALL): Support TARGET_MICROMIPS.
24005 (MICROMIPS_J): New macro.
24006 (mips_base_mips16): Rename this...
24007 (mips_base_compression_flags): ...to this.
24008 (UMIPS_12BIT_OFFSET_P): New macro.
24009 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
24010 (MULTILIB_DIRNAMES): Likewise.
24011
5e5df392
TV
240122013-02-25 Tom de Vries <tom@codesourcery.com>
24013
24014 PR rtl-optimization/56131
24015 * insn-notes.def (INSN_NOTE_BASIC_BLOCK): Update comment.
24016 * cfgrtl.c (delete_insn): Don't reorder NOTE_INSN_DELETED_LABEL and
24017 NOTE_INSN_BASIC_BLOCK if BLOCK_FOR_INSN == NULL.
24018
3fdb53c1
TB
240192013-02-25 Tobias Burnus <burnus@net-b.de>
24020
24021 * doc/invoke.texi (-fsanitize=): Move from optimization
24022 to debugging options.
24023
ed358aea
AB
240242013-02-25 Andrey Belevantsev <abel@ispras.ru>
24025
24026 * sched-deps.c (sched_analyze_insn): Fix typo in comment.
24027
f45e9053
AB
240282013-02-25 Andrey Belevantsev <abel@ispras.ru>
24029 Alexander Monakov <amonakov@ispras.ru>
24030
24031 PR middle-end/56077
24032 * sched-deps.c (sched_analyze_insn): When reg_pending_barrier,
24033 flush pending lists also on non-jumps. Adjust comment.
24034
6941b508
CM
240352013-02-24 Catherine Moore <clm@codesourcery.com>
24036 Maciej W. Rozycki <macro@codesourcery.com>
24037 Tom de Vries <tom@codesourcery.com>
a72d8780 24038 Nathan Sidwell <nathan@codesourcery.com>
6941b508
CM
24039 Iain Sandoe <iain@codesourcery.com>
24040 Nathan Froyd <froydnj@codesourcery.com>
a72d8780 24041 Chao-ying Fu <fu@mips.com>
6941b508
CM
24042
24043 * doc/extend.texi: (micromips, nomicromips, nocompression):
88b97037 24044 Document new function attributes.
6941b508
CM
24045 * doc/invoke.texi (minterlink-compressed, mmicromips,
24046 m14k, m14ke, m14kec): Document new options.
24047 (minterlink-mips16): Update documentation.
24048 * doc/md.texi (ZC, ZD): Document new constraints.
24049 * configure.ac (gcc_cv_as_micromips): Check if linker
24050 supports the .set micromips directive.
24051 * configure: Regenerate.
24052 * config.in: Regenerate.
24053 * config/mips/mips-tables.opt: Regenerate.
24054 * config/mips/micromips.md: New file.
24055 * constraints.md (ZC, AD): New constraints.
24056 * config/mips/predicates.md (movep_src_register): New predicate.
24057 (movep_src_operand): New predicate.
24058 (non_volatile_mem_operand): New predicate.
24059 * config/mips/mips.md (multimem): New type.
24060 (length): Differentiate between 17-bit and 18-bit branch offsets.
24061 (MOVEP1, MOVEP2): New mode iterator.
3fdb53c1 24062 (mov_<load>l): Use ZC constraint.
6941b508
CM
24063 (mov_<load>r): Likewise.
24064 (mov_<store>l): Likewise.
24065 (mov_<store>r): Likewise.
24066 (*branch_equality<mode>_inverted): Add microMIPS support.
24067 (*branch_equality<mode>): Likewise.
24068 (*jump_absolute): Likewise.
24069 (indirect_jump_<mode>): Likewise.
24070 (tablejump_<mode>): Likewise.
24071 (<optab>_internal): Likewise.
24072 (sibcall_internal): Likewise.
24073 (sibcall_value_internal): Likewise.
24074 (prefetch): Use constraint ZD.
24075 * config/mips/mips.opt (minterlink-compressed): New option.
24076 (minterlink-mips16): Now an alias for minterlink-compressed.
24077 (mmicromips): New option.
24078 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
24079 (compare_and_swap_12): Likewise.
24080 (sync_add<mode>): Likewise.
24081 (sync_<optab>_12): Likewise.
24082 (sync_old_<optab>_12): Likewise.
24083 (sync_new_<optab>_12): Likewise.
24084 (sync_nand_12): Likewise.
24085 (sync_old_nand_12): Likewise.
24086 (sync_new_nand_12): Likewise.
24087 (sync_sub<mode>): Likewise.
24088 (sync_old_add<mode>): Likewise.
24089 (sync_old_sub<mode>): Likewise.
24090 (sync_new_add<mode>): Likewise.
24091 (sync_new_sub<mode>): Likewise.
24092 (sync_<optab><mode>): Likewise.
24093 (sync_old_<optab><mode>): Likewise.
24094 (sync_new_<optab><mode>): Likewise.
24095 (sync_nand<mode>): Likewise.
24096 (sync_old_nand<mode>): Likewise.
24097 (sync_new_nand<mode>): Likewise.
24098 (sync_lock_test_and_set<mode>): Likewise.
24099 (test_and_set_12): Likewise.
24100 (atomic_compare_and_swap<mode>): Likewise.
24101 (atomic_exchange<mode>_llsc): Likewise.
24102 (atomic_fetch_add<mode>_llsc): Likewise.
24103 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
24104 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
24105 (umips_save_restore_pattern_p): Likewise.
24106 (umips_load_store_pair_p): Likewise.
24107 (umips_output_load_store_pair): Likewise.
24108 (umips_movep_target_p): Likewise.
24109 (umips_12bit_offset_address_p): Likewise.
24110 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
24111 (mips_base_mips16): Rename this...
24112 (mips_base_compression_flags): ...to this. Update all uses.
24113 (mips_attribute_table): Add micromips, nomicromips and nocompression.
24114 (mips_mips16_decl_p): Delete.
24115 (mips_nomips16_decl_p): Delete.
3fdb53c1 24116 (mips_get_compress_on_flags): New function.
6941b508
CM
24117 (mips_get_compress_off_flags): New function.
24118 (mips_get_compress_mode): New function.
24119 (mips_get_compress_on_name): New function.
24120 (mips_get_compress_off_name): New function.
24121 (mips_insert_attributes): Support multiple compression types.
24122 (mips_merge_decl_attributes): Likewise.
24123 (umips_12bit_offset_address_p): New function.
24124 (mips_start_function_definition): Emit .set micromips directive.
24125 (mips_call_may_need_jalx_p): New function.
24126 (mips_function_ok_for_sibcall): Add microMIPS support.
24127 (mips_print_operand_punctuation): Support short delay slots and
24128 compact jumps.
24129 (umips_swm_mask, umips_swm_encoding): New.
24130 (umips_build_save_restore): New function.
24131 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
24132 (was_mips16_p): Remove.
24133 (old_compression_mode): New.
24134 (mips_set_compression_mode): New function.
24135 (mips_set_current_function): Add microMIPS support.
24136 (mips_option_override): Likewise.
24137 (umips_save_restore_pattern_p): New function.
24138 (umips_output_save_restore): New function.
24139 (umips_load_store_pair_p_1): New function.
24140 (umips_load_store_pair_p): New function.
24141 (umips_output_load_store_pair_1): New function.
24142 (umips_output_load_store_pair): New function.
24143 (umips_movep_target_p) New function.
24144 (mips_prepare_pch_save): Add microMIPS support.
24145 * config/mips/mips.h (TARGET_COMPRESSION): New.
24146 (TARGET_CPU_CPP_BUILTINS): Update macro
24147 to use new compression flags and to support microMIPS.
24148 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
24149 (MIPS_ARCH_FLOAT_SPEC): Likewise.
24150 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
24151 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
24152 (ASM_SPEC): Support mmicromips and mno-micromips.
24153 (M16STORE_REG_P): New macro.
24154 (MIPS_CALL): Support TARGET_MICROMIPS.
24155 (MICROMIPS_J): New macro.
24156 (mips_base_mips16): Rename this...
24157 (mips_base_compression_flags): ...to this.
24158 (UMIPS_12BIT_OFFSET_P): New macro.
24159 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
24160 (MULTILIB_DIRNAMES): Likewise.
24161
cdebbc6d
JJ
241622013-02-24 Jakub Jelinek <jakub@redhat.com>
24163
24164 PR target/52555
24165 * target-globals.c (save_target_globals): For init_reg_sets and
24166 target_reinit remporarily set this_fn_optabs to this_target_optabs.
24167
18c63565
JG
241682013-02-22 James Grennahlgh <james.greenhalgh@arm.com>
24169
24170 * config/aarch64/aarch64-simd-builtins.def: Add copyright header.
24171 * config/aarch64/t-aarch64
24172 (aarch64-builtins.o): Depend on aarch64-simd-builtins.def.
24173
2194f7a2
VM
241742013-02-22 Vladimir Makarov <vmakarov@redhat.com>
24175
24176 PR inline-asm/56148
24177 * lra-constraints.c (process_alt_operands): Reload operand
24178 conflicting with earlier clobber only if no more other conflicting
24179 operands.
24180
7d613735
JJ
241812013-02-22 Jakub Jelinek <jakub@redhat.com>
24182
24183 PR sanitizer/56393
24184 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Link in libasan_preinit.o
24185 if not linking a shared library.
24186
ac8d93a7
SL
241872013-02-22 Seth LaForge <sethml@google.com>
24188
24189 * config.gcc (arm*-*-eabi*): Treat arm*eb as big-endian.
24190
e0237780
GY
241912013-02-22 Greta Yorsh <Greta.Yorsh@arm.com>
24192
3fdb53c1
TB
24193 * config/arm/arm.md (split for extendsidi): Update condition.
24194 (zero_extend<mode>di2,extend<mode>di2): Add an alternative.
24195 * config/arm/iterators.md (qhs_extenddi_cstr): Likewise.
24196 (qhs_zextenddi_cstr): Likewise.
e0237780 24197
d7fde18c
JJ
241982013-02-21 Jakub Jelinek <jakub@redhat.com>
24199
be63b77d
JJ
24200 PR middle-end/56420
24201 * expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Do subtraction in uhwi, to
24202 avoid signed wrapping.
24203 (expand_mult): Handle properly multiplication by
24204 ((dword_type) -1) << (BITS_PER_WORD - 1). Improve multiplication by
24205 ((dword_type) 1) << (BITS_PER_WORD - 1). Avoid undefined behavior
24206 in the compiler if coeff is HOST_WIDE_INT_MIN.
24207 (expand_divmod): Don't make ext_op1 static, change it's type to
24208 uhwi. Avoid undefined behavior in -INTVAL (op1).
24209
d7fde18c
JJ
24210 PR rtl-optimization/50339
24211 * lower-subreg.h (struct lower_subreg_choices): Add splitting_ashiftrt
24212 field.
24213 * lower-subreg.c (compute_splitting_shift): Handle ASHIFTRT.
24214 (compute_costs): Call compute_splitting_shift also for ASHIFTRT
24215 into splitting_ashiftrt field.
24216 (find_decomposable_shift_zext, resolve_shift_zext): Handle also
24217 ASHIFTRT.
24218 (dump_choices): Fix up printing LSHIFTRT choices, print ASHIFTRT
24219 choices.
24220
6aad4455
AH
242212013-02-20 Aldy Hernandez <aldyh@redhat.com>
24222
24223 PR middle-end/56108
24224 * trans-mem.c (execute_tm_mark): Do not expand transactions that
24225 are sure to go irrevocable.
24226
38fe784d
HPN
242272013-02-21 Hans-Peter Nilsson <hp@axis.com>
24228
24229 * doc/rtl.texi (vec_concat, vec_duplicate): Mention that
24230 scalars are valid operands.
24231
0fd44da3
MJ
242322013-02-21 Martin Jambor <mjambor@suse.cz>
24233
24234 PR tree-optimization/56310
24235 * ipa-cp.c (agg_replacements_to_vector): New parameter index, copy
24236 only matching indices and non-negative final offsets.
24237 (intersect_aggregates_with_edge): Pass src_idx to
24238 agg_replacements_to_vector. Pass src_idx insstead of index to
24239 intersect_with_agg_replacements.
24240
7a92038b
MJ
242412013-02-21 Martin Jambor <mjambor@suse.cz>
24242
24243 * ipa-cp.c (good_cloning_opportunity_p): Dump the real threshold
24244 instead of hard-wired defaults.
24245
c0da9c37
MR
242462013-02-21 Maciej W. Rozycki <macro@codesourcery.com>
24247
24248 * doc/invoke.texi (MIPS Options): Update documentation of the
24249 floating-point multiply-accumulate instruction restrictions.
24250
d247ea0c 242512013-02-21 Kostya Serebryany <kcc@google.com>
7df59255
KS
24252
24253 * config/i386/i386.c (ix86_asan_shadow_offset): Use 0x7fff8000 as
24254 asan_shadow_offset on x86_64 linux.
24255
22deefcb
RB
242562013-02-21 Richard Biener <rguenther@suse.de>
24257
24258 PR tree-optimization/56415
24259 Revert
24260 2013-02-11 Richard Biener <rguenther@suse.de>
24261
24262 PR tree-optimization/56273
24263 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
24264 first VRP run.
24265
7bcc6e75
JJ
242662013-02-21 Jakub Jelinek <jakub@redhat.com>
24267
a0ad148f
JJ
24268 PR bootstrap/56258
24269 * doc/invoke.texi (-fdump-rtl-pro_and_epilogue): Use @item
24270 instead of @itemx.
24271
7bcc6e75
JJ
24272 PR inline-asm/56405
24273 * expr.c (expand_expr_real_1) <case TARGET_MEM_REF, MEM_REF>: Don't
24274 use movmisalign or extract_bit_field for EXPAND_MEMORY modifier.
24275
a0a7b611
JH
242762013-02-20 Jan Hubicka <jh@suse.cz>
24277
24278 PR tree-optimization/56265
88b97037
UB
24279 * ipa-prop.c (ipa_make_edge_direct_to_target): Fixup callgraph
24280 when target is referenced for first time.
a0a7b611 24281
c0e50f72
RB
242822013-02-20 Richard Biener <rguenther@suse.de>
24283
24284 * tree-call-cdce.c (tree_call_cdce): Do not remove unused locals.
24285 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise.
24286 * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
24287 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do
24288 not return anything.
24289 (rename_ssa_copies): Do not remove unused locals.
24290 * tree-ssa-ccp.c (do_ssa_ccp): Likewise.
88b97037 24291 * tree-ssanames.c (pass_release_ssa_names): Remove unused locals first.
c0e50f72
RB
24292 * passes.c (execute_function_todo): Do not schedule unused locals
24293 removal if cleanup_tree_cfg did something.
24294 * tree-ssa-live.c (remove_unused_locals): Dump statistics
24295 about the number of removed locals.
24296
a52ca739
RB
242972013-02-20 Richard Biener <rguenther@suse.de>
24298
24299 PR tree-optimization/56398
88b97037 24300 * tree-vect-loop-manip.c (adjust_debug_stmts): Skip SSA default defs.
a52ca739 24301
ec9c9d1b
MJ
243022013-02-20 Martin Jambor <mjambor@suse.cz>
24303
24304 PR tree-optimization/55334
24305 * ipa-cp.c (initialize_node_lattices): Disable IPA-CP through and to
24306 restricted pointers to arrays.
24307
e91c8ed6 243082013-02-20 Richard Biener <rguenther@suse.de>
88b97037 24309 Jakub Jelinek <jakub@redhat.com>
e91c8ed6
RB
24310
24311 PR tree-optimization/56396
24312 * tree-ssa-ccp.c (n_const_val): New static variable.
24313 (get_value): Return NULL for SSA names we don't have a lattice
24314 entry for.
24315 (ccp_initialize): Initialize n_const_val.
24316 * tree-ssa-copy.c (n_copy_of): New static variable.
24317 (init_copy_prop): Initialize n_copy_of.
24318 (get_value): Return NULL_TREE for SSA names we don't have a
24319 lattice entry for.
24320
3d916479
MJ
243212013-02-20 Martin Jambor <mjambor@suse.cz>
24322
24323 * ipa-cp.c (initialize_node_lattices): Fix dumping condition.
24324
71a86758
RB
243252013-02-20 Richard Biener <rguenther@suse.de>
24326
24327 * genpreds.c (write_lookup_constraint): Do not compare first
24328 letter of the constraint again.
24329
79836a12
RB
243302013-02-20 Richard Biener <rguenther@suse.de>
24331
24332 * tree-ssa-loop-ivopts.c (alloc_use_cost_map): Use bitmap_count_bits
24333 and ceil_log2.
24334 (get_use_iv_cost): Terminate hashtable walk when coming across
24335 an empty entry.
24336
bbe4fb2c
IZ
243372013-02-20 Igor Zamyatin <igor.zamyatin@intel.com>
24338
24339 * config/i386/i386.c (initial_ix86_tune_features): Turn on fp
24340 reassociation for avx2 targets.
24341
a72d8780 243422012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
79836a12 24343
c77f83d5
EI
24344 * config/microblaze/microblaze.c: microblaze_has_clz = 0
24345 Add version check for v8.10.a to enable microblaze_has_clz
88b97037 24346 * config/microblaze/microblaze.h: Add TARGET_HAS_CLZ as combined
c77f83d5
EI
24347 version and TARGET_PATTERN_COMPARE check
24348 * config/microblaze/microblaze.md: New clzsi2 instruction
3fdb53c1 24349
a72d8780 243502012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
959434e6 24351
a72d8780 24352 * config/microblaze/microblaze.md (call_value_intern): Check symbol is
959434e6
EI
24353 function before branching.
24354
242387fa
AB
243552012-02-19 Andrey Belevantsev <abel@ispras.ru>
24356
24357 * sel-sched-dump.c (dump_insn_rtx_flags): Explicitly set
24358 DUMP_INSN_RTX_UID.
24359 (dump_insn_rtx_1): Pass PATTERN (insn) to str_pattern_slim.
24360
b4979ab9
AB
243612012-02-19 Andrey Belevantsev <abel@ispras.ru>
24362
24363 PR middle-end/55889
b4979ab9
AB
24364 * sel-sched.c: Include ira.h.
24365 (implicit_clobber_conflict_p): New function.
24366 (moveup_expr): Use it.
88b97037 24367 * Makefile.in (sel-sched.o): Depend on ira.h.
b4979ab9 24368
24d63016
RB
243692013-02-19 Richard Biener <rguenther@suse.de>
24370
24371 PR tree-optimization/56384
24372 * tree-ssa-sccvn.h (struct vn_phi_s): Add type member.
24373 (vn_hash_type): Split out from ...
24374 (vn_hash_constant_with_type): ... here.
24375 * tree-ssa-sccvn.c (vn_phi_compute_hash): Use vn_hash_type.
24376 (vn_phi_eq): Compare types from vn_phi_s structure.
24377 (vn_phi_lookup): Populate vn_phi_s type.
24378 (vn_phi_insert): Likewise.
24379
a475fd3d
JJ
243802013-02-19 Jakub Jelinek <jakub@redhat.com>
24381
47cc28f5
JJ
24382 PR tree-optimization/56350
24383 * tree-vect-loop.c (vectorizable_reduction): If orig_stmt, return false
24384 if haven't found reduction or nested cycle operand, rather than
24385 asserting we must find it.
24386
a475fd3d
JJ
24387 PR tree-optimization/56381
24388 * tree-ssa-pre.c (create_expression_by_pieces): Fix up last argument
24389 to fold_build3.
24390
243912013-02-18 Aldy Hernandez <aldyh@redhat.com>
135204dd
AH
24392 Jakub Jelinek <jakub@redhat.com>
24393
24394 PR target/52555
24395 * genopinit.c (raw_optab_handler): Use this_fn_optabs.
24396 (swap_optab_enable): Same.
24397 (init_all_optabs): Use argument instead of global.
88b97037 24398 * tree.h (struct tree_optimization_option): New field target_optabs.
135204dd
AH
24399 * expr.h (init_all_optabs): Add argument to prototype.
24400 (TREE_OPTIMIZATION_OPTABS): New.
24401 (save_optabs_if_changed): Protoize.
24402 * optabs.h: Declare this_fn_optabs.
24403 * optabs.c (save_optabs_if_changed): New.
24404 Declare this_fn_optabs.
24405 (init_optabs): Add argument to init_all_optabs() call.
24406 * function.c (invoke_set_current_function_hook): Handle per
24407 function optabs.
24408 * function.h (struct function): New field optabs.
24409 * config/mips/mips.c (mips_set_mips16_mode): Handle when
24410 optimization_current_node has changed.
24411 * target-globals.h (save_target_globals_default_opts): Protoize.
24412 * target-globals.c (save_target_globals_default_opts): New.
24413
3f587ca3
JDA
244142013-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
24415
24416 PR target/56347
24417 * config/pa/pa.c (pa_conditional_register_usage): On HP-UX, mark
24418 registers %fr12 and %fr12R as call used.
ceaca33e
JDA
24419
24420 PR target/56214
24421 * config/pa/predicates.md (base14_operand): Except for BLKmode, QImode
88b97037
UB
24422 and HImode, require all displacements to be an integer multiple of
24423 their mode size.
ceaca33e
JDA
24424 * config/pa/pa.c (pa_legitimate_address_p): For REG+BASE addresses,
24425 only allow QImode and HImode when reload is in progress and strict is
24426 true. Likewise for symbolic addresses. Use base14_operand to check
24427 displacements in REG+BASE addresses.
24428
fe0b4796
RB
244292013-02-18 Richard Biener <rguenther@suse.de>
24430
24431 PR tree-optimization/56366
24432 * tree-vect-loop.c (get_initial_def_for_induction): Properly
24433 handle sign-conversion of outer-loop initial induction value.
24434
6aaf596b
RB
244352013-02-18 Richard Biener <rguenther@suse.de>
24436
73db8ff1 24437 PR middle-end/56349
6aaf596b
RB
24438 * cfghooks.c (merge_blocks): If we merge a latch into another
24439 block adjust references to it.
24440 * cfgloop.c (flow_loops_find): Reset latch before recomputing it.
24441 (verify_loop_structure): Verify that a recorded latch is in fact
24442 a latch.
24443
5e97dfb6
RB
244442013-02-18 Richard Biener <rguenther@suse.de>
24445
24446 PR tree-optimization/56321
24447 * tree-ssa-reassoc.c (propagate_op_to_single_use): Properly
24448 order SSA name release and virtual operand unlinking.
24449
825527e8
EI
244502013-02-17 Edgar E. Iglesias <edgar.iglesias@gmail.com>
24451
24452 * config/microblaze/microblaze.md (save_stack_block): Define.
24453 (restore_stack_block): Likewise.
24454
debd11d9
EI
244552013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
24456
24457 * config/microblaze/linux.h (TARGET_SUPPORTS_PIC): Define as 1.
24458 * config/microblaze/microblaze.h (TARGET_SUPPORTS_PIC): Define as 1.
24459 * config/microblaze/microblaze.c (microblaze_option_override):
24460 Bail out early for PIC modes when target does not support PIC.
24461
8ec77be0
EI
244622013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
24463
88b97037 24464 * config/microblaze/microblaze.c (microblaze_asm_trampoline_template):
8ec77be0
EI
24465 Replace with a microblaze version.
24466 (microblaze_trampoline_init): Adapt for microblaze.
a752b80f 24467 * config/microblaze/microblaze.h (TRAMPOLINE_SIZE): Adapt for
8ec77be0
EI
24468 microblaze.
24469
b41288b3
JJ
244702013-02-16 Jakub Jelinek <jakub@redhat.com>
24471 Dodji Seketeli <dodji@redhat.com>
24472
24473 PR asan/56330
88b97037 24474 * asan.c (get_mem_refs_of_builtin_call): White space and style cleanup.
b41288b3
JJ
24475 (instrument_mem_region_access): Do not forget to always put
24476 instrumentation of the of 'base' and 'base + len' in a "if (len !=
24477 0) statement, even for cases where either 'base' or 'base + len'
24478 are not instrumented -- because they have been previously
24479 instrumented. Simplify the logic by putting all the statements
24480 instrument 'base + len' inside a sequence, and then insert that
24481 sequence right before the current insertion point. Then, to
24482 instrument 'base + len', just get an iterator on that statement.
24483 And do not forget to update the pointer to iterator the function
24484 received as argument.
24485
47918951
VM
244862013-02-15 Vladimir Makarov <vmakarov@redhat.com>
24487
24488 PR rtl-optimization/56348
24489 * lra-assigns.c (reload_pseudo_compare_func): Prefer bigger pseudos.
24490
3fb7c699
SB
244912013-02-15 Steven Bosscher <steven@gcc.gnu.org>
24492
24493 * graph.c (start_graph_dump): Print dumpfile base as digraph label.
24494 (clean_graph_dump_file): Pass base to start_graph_dump.
24495
576fe41a
RH
244962013-02-14 Richard Henderson <rth@redhat.com>
24497
24498 PR target/55941
24499 * lower-subreg.c (simple_move): Check dest mode instead of src mode.
24500
bb3accfa
SB
245012013-02-14 Steven Bosscher <steven@gcc.gnu.org>
24502
24503 * collect2-aix.h: Define F_LOADONLY.
24504
03143140
RB
245052013-02-14 Richard Biener <rguenther@suse.de>
24506
24507 PR lto/50494
24508 * varasm.c (output_constant_def_1): Get the decl representing
24509 the constant as argument.
24510 (output_constant_def): Wrap output_constant_def_1.
24511 (make_decl_rtl): Use output_constant_def_1 with the decl
24512 representing the constant.
24513 (build_constant_desc): Optionally re-use a decl already
24514 representing the constant.
24515 (tree_output_constant_def): Adjust.
24516
8fb06726
DS
245172013-02-14 Dodji Seketeli <dodji@redhat.com>
24518
24519 Fix an asan crash
24520 * asan.c (instrument_builtin_call): Really put the length of the
24521 second source argument into src1_len.
24522
c4bfe8bf
JJ
245232013-02-13 Jakub Jelinek <jakub@redhat.com>
24524
24525 * asan.c (create_cond_insert_point): Add create_then_fallthru_edge
24526 argument. If it is false, don't create edge from then_bb to
24527 fallthru_bb.
24528 (insert_if_then_before_iter): Pass true to it.
24529 (build_check_stmt): Pass false to it.
24530 (transform_statements): Flush hash table only on extended basic
24531 block boundaries, rather than at the beginning of every bb.
24532 Don't flush hash table on nonfreeing_call_p calls.
24533 * tree-flow.h (nonfreeing_call_p): New prototype.
24534 * tree-ssa-phiopt.c (nonfreeing_call_p): No longer static.
24535
7afe2801
DM
245362013-02-13 David S. Miller <davem@davemloft.net>
24537
24538 * expmed.c (expand_shift_1): Only strip scalar integer subregs.
24539
70cc3288
VM
245402013-02-13 Vladimir Makarov <vmakarov@redhat.com>
24541
24542 PR target/56184
24543 * ira.c (max_regno_before_ira): Move from ...
24544 (ira): ... here.
24545 (fix_reg_equiv_init): Use max_regno_before_ira instead of
24546 vec_safe_length.
24547
6422242b
JJ
245482013-02-13 Jakub Jelinek <jakub@redhat.com>
24549
24550 * config/i386/i386.c (ix86_asan_shadow_offset): Revert last change.
24551
976a81ee
RB
245522013-02-13 Richard Biener <rguenther@suse.de>
24553
24554 PR lto/56295
24555 * gimple-streamer-out.c (output_gimple_stmt): Undo wrapping
24556 globals in MEM_REFs.
24557
c1874a87
RB
245582013-02-13 Richard Biener <rguenther@suse.de>
24559
24560 * loop-init.c (loop_optimizer_init): Clear loop state when
24561 re-initializing preserved loops.
24562 * loop-unswitch.c (unswitch_single_loop): Return whether
24563 we unswitched the loop. Do not verify loop state here.
88b97037 24564 (unswitch_loops): When we unswitched a loop discover new loops.
c1874a87 24565
b4ab7d34
KS
245662013-02-13 Kostya Serebryany <kcc@google.com>
24567
88b97037
UB
24568 * config/i386/i386.c: Use 0x7fff8000 as asan_shadow_offset
24569 on x86_64 linux.
b4ab7d34
KS
24570 * sanitizer.def: Rename __asan_init to __asan_init_v1.
24571
bdcbe80c
DS
245722013-02-12 Dodji Seketeli <dodji@redhat.com>
24573
24574 Avoid instrumenting duplicated memory access in the same basic block
24575 * Makefile.in (asan.o): Add new dependency on hash-table.h
24576 * asan.c (struct asan_mem_ref, struct mem_ref_hasher): New types.
24577 (asan_mem_ref_init, asan_mem_ref_get_end, get_mem_ref_hash_table)
24578 (has_stmt_been_instrumented_p, empty_mem_ref_hash_table)
24579 (free_mem_ref_resources, has_mem_ref_been_instrumented)
24580 (has_stmt_been_instrumented_p, update_mem_ref_hash_table)
24581 (get_mem_ref_of_assignment): New functions.
24582 (get_mem_refs_of_builtin_call): Extract from
24583 instrument_builtin_call and tweak a little bit to make it fit with
24584 the new signature.
24585 (instrument_builtin_call): Use the new
24586 get_mem_refs_of_builtin_call. Use gimple_call_builtin_p instead
24587 of is_gimple_builtin_call.
24588 (instrument_derefs, instrument_mem_region_access): Insert the
24589 instrumented memory reference into the hash table.
24590 (maybe_instrument_assignment): Renamed instrument_assignment into
24591 this, and change it to advance the iterator when instrumentation
24592 actually happened and return true in that case. This makes it
24593 homogeneous with maybe_instrument_assignment, and thus give a
24594 chance to callers to be more 'regular'.
24595 (transform_statements): Clear the memory reference hash table
24596 whenever we enter a new BB, when we cross a function call, or when
24597 we are done transforming statements. Use
24598 maybe_instrument_assignment instead of instrumentation. No more
24599 need to special case maybe_instrument_assignment and advance the
24600 iterator after calling it; it's now handled just like
24601 maybe_instrument_call. Update comment.
24602
4861a1f7
RB
246032013-02-13 Richard Biener <rguenther@suse.de>
24604
24605 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
24606 Fix loop discovery code.
24607
1c86bd80
VM
246082013-02-12 Vladimir Makarov <vmakarov@redhat.com>
24609
24610 PR inline-asm/56148
24611 * lra-constraints.c (process_alt_operands): Match early clobber
70cc3288 24612 operand with itself. Check conflicts with earlyclobber only if
1c86bd80
VM
24613 the operand is not reloaded. Prefer to reload conflicting operand
24614 if earlyclobber and matching operands are the same.
24615
7cbda518
RB
246162013-02-12 Richard Biener <rguenther@suse.de>
24617
24618 PR lto/56297
24619 * lto-streamer-out.c (write_symbol): Do not output symbols
24620 for hard register variables.
24621
e68a4ef6
GJL
246222013-02-12 Georg-Johann Lay <avr@gjlay.de>
24623
24624 PR target/54222
24625 * config/avr/avr-dimode.md (umulsidi3, mulsidi3): New expanders.
24626 (umulsidi3_insn, mulsidi3_insn): New insns.
24627
a72d8780 246282013-02-12 Christophe Lyon <christophe.lyon@linaro.org>
2597da22
CL
24629
24630 * config/arm/arm-protos.h (struct cpu_vec_costs): New struct type.
24631 (struct tune_params): Add vec_costs field.
24632 * config/arm/arm.c (arm_builtin_vectorization_cost)
24633 (arm_add_stmt_cost): New functions.
24634 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST)
24635 (TARGET_VECTORIZE_ADD_STMT_COST): Define.
24636 (arm_default_vec_cost): New struct of type cpu_vec_costs.
24637 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
24638 (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune)
24639 (arm_cortex_a15_tune, arm_cortex_a5_tune, arm_cortex_a9_tune)
24640 (arm_v6m_tune, arm_fa726te_tune): Define new vec_costs field.
24641
43320568
RB
246422013-02-12 Richard Biener <rguenther@suse.de>
24643
24644 PR lto/56295
24645 * gimple-streamer-in.c (input_gimple_stmt): Strip MEM_REFs off
24646 decls again if possible.
24647
a011aa39
RB
246482013-02-12 Richard Biener <rguenther@suse.de>
24649
24650 PR middle-end/56288
24651 * tree-ssa.c (verify_ssa_name): Fix check, move
24652 SSA_NAME_IN_FREE_LIST check up.
24653
6da26889
JJ
246542013-02-12 Jakub Jelinek <jakub@redhat.com>
24655 Steven Bosscher <steven@gcc.gnu.org>
24656
24657 PR rtl-optimization/56151
24658 * optabs.c (add_equal_note): Don't return 0 if target is a MEM,
24659 equal to op0 or op1, and last_insn pattern is CODE operation
24660 with MEM dest and one of the operands matches that MEM.
24661
f80e0faf
ST
246622013-02-11 Sriraman Tallam <tmsriramgoogle.com>
24663
24664 * doc/extend.texi: Document Function Multiversioning and "default"
24665 parameter string to target attribute.
24666 * config/i386/i386.c (get_builtin_code_for_version): Return 0 if
24667 target attribute parameter is "default".
24668 (ix86_compare_version_priority): Remove checks for target attribute.
24669 (ix86_mangle_function_version_assembler_name): Change error to sorry.
24670 Remove check for target attribute equal to NULL. Add assert.
24671 (ix86_generate_version_dispatcher_body): Change error to sorry.
24672
6c59ffd1
IS
246732013-02-11 Iain Sandoe <iain@codesourcery.com>
24674 Jack Howarth <howarth@bromo.med.uc.edu>
24675 Patrick Marlier <patrick.marlier@gmail.com>
24676
24677 PR libitm/55693
24678 * config/darwin.h: Replace ENDFILE_SPEC with TM_DESTRUCTOR and
24679 define ENDFILE_SPEC as TM_DESTRUCTOR.
24680 * config/i386/darwin.h (ENDFILE_SPEC): Use TM_DESTRUCTOR.
24681
a72d8780 246822013-02-11 Alexander Potapenko <glider@google.com>
6a52ccb3
AP
24683 Jack Howarth <howarth@bromo.med.uc.edu>
24684 Jakub Jelinek <jakub@redhat.com>
24685
24686 PR sanitizer/55617
24687 * config/darwin.c (cdtor_record): Rename ctor_record.
24688 (sort_cdtor_records): Rename sort_ctor_records.
24689 (finalize_dtors): New routine to sort destructors by
24690 priority before use in assemble_integer.
24691 (machopic_asm_out_destructor): Use finalize_dtors if needed.
24692
b63fe007
UB
246932013-02-11 Uros Bizjak <ubizjak@gmail.com>
24694
24695 PR rtl-optimization/56275
24696 * simplify-rtx.c (avoid_constant_pool_reference): Check that
24697 offset is non-negative and less than cmode size before
24698 calling simplify_subreg.
24699
8e89b5b5
RB
247002013-02-11 Richard Biener <rguenther@suse.de>
24701
24702 PR tree-optimization/56264
24703 * cfgloop.h (fix_loop_structure): Adjust prototype.
24704 * loop-init.c (fix_loop_structure): Return the number of
24705 newly discovered loops.
24706 * tree-cfgcleanup.c (repair_loop_structures): When new loops
24707 are discovered, do a full loop-closed SSA rewrite.
24708
b4a4b56d
RB
247092013-02-11 Richard Biener <rguenther@suse.de>
24710
24711 PR tree-optimization/56273
24712 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
24713 first VRP run.
24714 (check_array_ref): Fix missing newline in dumps.
24715 (search_for_addr_array): Likewise.
24716
0c885229
DE
247172013-02-09 David Edelsohn <dje.gcc@gmail.com>
24718
24719 * config/rs6000/aix61.h (OS_MISSING_ALTIVEC): Undefine.
24720
59ac9a55
JJ
247212013-02-09 Jakub Jelinek <jakub@redhat.com>
24722
24723 PR target/56256
24724 * config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Define.
24725
25bb0bb5
VM
247262013-02-08 Vladimir Makarov <vmakarov@redhat.com>
24727
24728 PR rtl-optimization/56246
0c885229 24729 * lra-constraints.c (simplify_operand_subreg): Try to reuse
25bb0bb5
VM
24730 reload pseudo.
24731 * lra.c (lra): Clear lra_optional_reload_pseudos only when all
24732 constraints are satisfied.
24733
a698cc03
JL
247342013-02-08 Jeff Law <law@redhat.com>
24735
24736 PR debug/53948
24737 * emit-rtl.c (reg_is_parm_p): New function.
24738 * regs.h (reg_is_parm_p): New prototype.
24739 * ira-conflicts.c (ira_build_conflicts): Allow parameters in
24740 callee-clobbered registers.
24741
e1122ddd
MM
247422013-02-08 Michael Meissner <meissner@linux.vnet.ibm.com>
24743
24744 PR target/56043
24745 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass):
24746 If there is no implicit builtin declaration, just return NULL.
24747
19c5f6e6
UB
247482013-02-08 Uros Bizjak <ubizjak@gmail.com>
24749
24750 * config/i386/sse.md (FMAMODEM): New mode iterator.
24751 (fma<mode>4, fms<mode>4, fnma<mode>4, fnms<mode>4): Use FMAMODEM
24752 mode iterator. Do not use TARGET_SSE_MATH in insn constraint.
24753
2480f2ca 247542013-02-08 Uros Bizjak <ubizjak@gmail.com>
76ef61fb 24755
2480f2ca
UB
24756 * config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Define only
24757 when HAVE_GAS_CFI_PERSONALITY_DIRECTIVE is set.
24758 * config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): Ditto.
24759
247602013-02-08 Edgar E. Iglesias <edgar.iglesias@gmail.com>
24761
24762 * config.gcc (microblaze*-linux*): Add TARGET_BIG_ENDIAN_DEFAULT.
24763 (microblaze*-*-elf): Likewise.
24764 * config/microblaze/linux.h: Add -mbig-endian / -mlittle-endian to
24765 LINK_SPEC.
24766 * config/microblaze/microblaze-c.c: Add builtin defines for
24767 _LITTLE_ENDIAN and _BIG_ENDIAN.
24768 * config/microblaze/microblaze.h: Add TARGET_ENDIAN_DEFAULT and
24769 add to TARGET_DEFAULT flags.
76ef61fb 24770 Expand ASM_SPEC and LINK_SPEC.
2480f2ca
UB
24771 Update BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN.
24772 * config/microblaze/microblaze.md: Update extendsidi2 and
24773 movdi_internal instructions to use low-order / high-order reg
24774 print_operands.
24775 * config/microblaze/microblaze.opt: Add mbig-endian and mlittle-endian
24776 options and inversemask / mask of LITTLE_ENDIAN.
24777 * config/microblaze/t-microblaze: Expand multilib options to
24778 include mlittle-endian (le) and update exceptions patterns.
24779
600a5961
JJ
247802013-02-08 Jakub Jelinek <jakub@redhat.com>
24781
5df81313
JJ
24782 PR rtl-optimization/56195
24783 * lra-constraints.c (get_reload_reg): Don't reuse regs
24784 if they have smaller mode than requested, if they have
24785 wider mode than requested, try to return a SUBREG.
24786
600a5961
JJ
24787 PR tree-optimization/56250
24788 * fold-const.c (extract_muldiv_1) <case NEGATE_EXPR>: Don't optimize
24789 if type is unsigned and code isn't MULT_EXPR.
24790
ff544649
GJL
247912013-02-08 Georg-Johann Lay <avr@gjlay.de>
24792
24793 PR tree-optimization/56064
24794 * fixed-value.c (fixed_from_double_int): Sign/zero extend payload
24795 bits according to mode.
24796 * fixed-value.h (fixed_from_double_int)
24797 (const_fixed_from_double_int): Adjust comments.
24798
e45cde98
RB
247992013-02-08 Richard Biener <rguenther@suse.de>
24800
24801 PR lto/56231
24802 * lto-streamer.h (struct data_in): Remove current_file, current_line
24803 and current_col members.
24804 * lto-streamer-out.c (lto_output_location): Stream changed bits
24805 en-block for efficiency.
24806 * lto-streamer-in.c (clear_line_info): Remove.
24807 (lto_input_location): Cache current file, line and column
24808 globally via local statics. Read changed bits en-block.
24809 (input_function): Do not call clear_line_info.
24810 (lto_read_body): Likewise.
24811 (lto_input_toplevel_asms): Likewise.
24812
c1ca73d8
MM
248132013-02-08 Michael Matz <matz@suse.de>
24814
24815 PR tree-optimization/52448
24816 * tree-ssa-phiopt.c (struct name_to_bb): Add phase member.
24817 (nt_call_phase): New static.
24818 (add_or_mark_expr): Only mark accesses with newer phase than any
24819 call seen.
24820 (nonfreeing_call_p): New.
24821 (nt_init_block): Update nt_call_phase, mark blocks as visited.
24822 (nt_fini_block): Keep blocks marked as visited.
24823 (get_non_trapping): Initialize nt_call_phase, and reset aux pointer.
24824
57548aa2
RB
248252013-02-08 Richard Biener <rguenther@suse.de>
24826
24827 * ira.c (ira): Free broken dominator information.
24828
8e10366f
UB
248292013-02-08 Uros Bizjak <ubizjak@gmail.com>
24830
24831 * config/i386/i386.c (ix86_spill_class): Use INTEGER_CLASS_P macro.
24832
f64fb0fa
MP
248332013-02-08 Marek Polacek <polacek@redhat.com>
24834
8e10366f 24835 * cfgloop.c (verify_loop_structure): Add more checking of headers.
f64fb0fa 24836
0375167b
RB
248372013-02-08 Richard Biener <rguenther@suse.de>
24838
24839 PR middle-end/56181
24840 * cfgloop.h (flow_loops_find): Adjust.
24841 (bb_loop_header_p): Declare.
24842 * cfgloop.c (bb_loop_header_p): New function split out from ...
24843 (flow_loops_find): ... here. Adjust function signature,
24844 support incremental loop structure update.
24845 (verify_loop_structure): Cleanup. Verify a loop is a loop.
24846 * cfgloopmanip.c (fix_loop_structure): Move ...
24847 * loop-init.c (fix_loop_structure): ... here.
24848 (apply_loop_flags): Split out from ...
24849 (loop_optimizer_init): ... here.
24850 (fix_loop_structure): Use apply_loop_flags. Use flow_loops_find
24851 in incremental mode, only remove dead loops here.
24852
85d768f3
GJL
248532013-02-08 Georg-Johann Lay <avr@gjlay.de>
24854
24855 PR target/54222
24856 * config/avr/avr.md (unspec) <UNSPEC_ROUND>: Add.
24857 * config/avr/avr-fixed.md (ALL4QA, ALL124QA): New mode iterators.
24858 (round<mode>3, round<mode>3_const): New expanders for fixed-mode.
24859 (*round<mode>3.libgcc): New insns for fixed-modes.
24860 * config/avr/builtins.def (ABSxx): Use a non-NULL LIBNAME.
24861 (ROUNDxx, COUNTLSxx, BITSxx, xxBITS): New DEF_BUILTINs.
24862 (ROUNDFX, COUNTLSFX, ABSFX): New DEF_BUILTINs.
24863 * config/avr/stdfix.h (absFX, bitsFX, FXbits): Remove inline
24864 implementations. Define to __builtin_avr_absFX,
24865 __builtin_avr_bitsFX, __builtin_avr_FXbits, respectively.
24866 (roundFX, countlsFX): Define to __builtin_avr_roundFX,
24867 __builtin_avr_countlsFX, respectively.
24868 * config/avr/avr-c.c (target.h): Include it.
24869 (enum avr_builtin_id): New enum.
24870 (avr_resolve_overloaded_builtin): New static function.
24871 (avr_register_target_pragmas): Use it to set
24872 targetm.resolve_overloaded_builtin.
24873 * config/avr/avr.c (avr_init_builtins): Supply myriads of local
24874 tree nodes used by DEF_BUILTIN.
24875 (avr_expand_builtin) <AVR_BUILTIN_ROUNDxx>: Sanity-check them.
24876 (avr_fold_builtin) <AVR_BUILTIN_BITSxx>: Fold to VIEW_COVERT_EXPR.
24877 <AVR_BUILTIN_xxBITS>: Same.
24878
661bc682
RB
248792013-02-08 Richard Biener <rguenther@suse.de>
24880
24881 * cfgloop.c (verify_loop_structure): Properly handle
24882 a loop exiting to another loop header.
24883 * ira-int.h (ira_loops): Remove.
24884 * ira.c (ira_loops): Remove.
24885 (ira): Use loop_optimizer_init and loop_optimizer_finalize.
24886 (do_reload): Use loop_optimizer_finalize.
24887 * ira-build.c (create_loop_tree_nodes): Use get_loops and
24888 number_of_loops to access the loop tree.
24889 (more_one_region_p): Likewise.
24890 (finish_loop_tree_nodes): Likewise.
24891 (rebuild_regno_allocno_maps): Likewise.
24892 (mark_loops_for_removal): Likewise.
24893 (mark_all_loops_for_removal): Likewise.
24894 (remove_unnecessary_regions): Likewise.
24895 (ira_build): Likewise.
24896 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
24897
0d5049b2
RB
248982013-02-08 Richard Biener <rguenther@suse.de>
24899
24900 * Makefile.in (tree-tailcall.o): Add $(CFGLOOP_H) dependency.
24901 * ipa-pure-const.c (analyze_function): Avoid calling
24902 mark_irreducible_loops twice.
8e10366f 24903 * tree-tailcall.c (tree_optimize_tail_calls_1): Mark loops for fixup.
0d5049b2 24904
499f32e8
DM
249052013-02-07 David S. Miller <davem@davemloft.net>
24906
24907 * dwarf2out.c (based_loc_descr): Perform leaf register remapping
24908 on 'reg'.
24909 * var-tracking.c (vt_add_function_parameter): Test the presence of
24910 HAVE_window_save properly and do not remap argument registers when
24911 we have a leaf function.
24912
6edc3e32
UB
249132013-02-07 Uros Bizjak <ubizjak@gmail.com>
24914
24915 PR bootstrap/56227
24916 * ggc-page.c (ggc_print_statistics): Use HOST_LONG_LONG_FORMAT
24917 instead of "ll".
24918 * config/i386/i386.c (ix86_print_operand): Ditto.
24919
5306401f
VM
249202013-02-07 Vladimir Makarov <vmakarov@redhat.com>
24921
6edc3e32 24922 * lra-constraints.c (process_alt_operands): Fix recently added comment.
5306401f 24923
027ece11
VM
249242013-02-07 Vladimir Makarov <vmakarov@redhat.com>
24925
24926 PR rtl-optimization/56225
24927 * lra-constraints.c (process_alt_operands): Check that reload hard
24928 reg can hold value for strict_low_part.
24929
f980dfdb
JJ
249302013-02-07 Jakub Jelinek <jakub@redhat.com>
24931
24932 PR debug/56154
24933 * dwarf2out.c (dwarf2_debug_hooks): Set end_function hook to
24934 dwarf2out_end_function.
24935 (in_first_function_p, maybe_at_text_label_p,
24936 first_loclabel_num_not_at_text_label): New variables.
24937 (dwarf2out_var_location): In the first function find out
6edc3e32 24938 lowest loclabel_num N where .LVLN is known not to be equal to .Ltext0.
f980dfdb
JJ
24939 (find_empty_loc_ranges_at_text_label, dwarf2out_end_function): New
24940 functions.
24941
73dd3123
EB
249422013-02-07 Eric Botcazou <ebotcazou@adacore.com>
24943
24944 PR rtl-optimization/56178
24945 * cse.c (cse_insn): Do not create a REG_EQUAL note if the source is a
24946 SUBREG of a register. Tidy up related block of code.
24947 * fwprop.c (forward_propagate_and_simplify): Do not create a REG_EQUAL
24948 note if the source is a register or a SUBREG of a register.
24949
e3936f47
JJ
249502013-02-07 Jakub Jelinek <jakub@redhat.com>
24951
24952 PR target/56228
24953 * config/rs6000/rs6000.md (ptrm): New mode attr.
24954 (call_indirect_aix<ptrsize>, call_indirect_aix<ptrsize>_nor11,
24955 call_value_indirect_aix<pttrsize>,
24956 call_value_indirect_aix<pttrsize>_nor11): Use <ptrm> instead of
24957 m in constraints.
24958
d96d674b
MH
249592013-02-07 Michael Haubenwallner <michael.haubenwallner@salomon.at>
24960
24961 * collect2.c (main): Set aix64_flag for -G and -bsvr4 too, disable
24962 if -bnortl. Convert to strcmp and strncmp.
24963
921f2dee
AM
249642013-02-07 Alan Modra <amodra@gmail.com>
24965
24966 PR target/54009
24967 * config/rs6000/rs6000.c (mem_operand_gpr): Check that LO_SUM
24968 addresses won't wrap when offsetting.
24969 (rs6000_secondary_reload): Provide secondary reloads needed for
24970 wrapping LO_SUM addresses.
24971
d09c7dba
TS
249722013-02-06 Thomas Schwinge <thomas@codesourcery.com>
24973
24974 * config/gnu.h (GNU_USER_TARGET_OS_CPP_BUILTINS): Never define
24975 MACH, just __MACH__.
24976
a44bbd48
RB
249772013-02-06 Richard Biener <rguenther@suse.de>
24978
24979 * tracer.c (tracer): Mark loops with LOOPS_NEED_FIXUP
24980 instead of calling fix_loop_structure.
24981
6d840d99
JJ
249822013-02-06 Jakub Jelinek <jakub@redhat.com>
24983
24984 PR middle-end/56217
24985 * omp-low.c (use_pointer_for_field): Return false if
24986 lower_send_shared_vars doesn't generate any copy-out code.
24987
0f33baa9
TV
249882013-02-06 Tom de Vries <tom@codesourcery.com>
24989
24990 PR rtl-optimization/56131
24991 * cfgrtl.c (delete_insn): Use NOTE_BASIC_BLOCK instead of BLOCK_FOR_INSN
24992 to get the bb of a NOTE_INSN_BASIC_BLOCK. Handle the case that the bb
24993 of the label is NULL. Add comment.
24994
11f1e3ab
JJ
249952013-02-05 Jakub Jelinek <jakub@redhat.com>
24996
31502f9f
JJ
24997 * tree.h (struct tree_decl_with_vis): Remove thread_local field.
24998
a74db9bd
JJ
24999 PR sanitizer/55374
25000 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Define.
25001 (STATIC_LIBTSAN_LIBS): Likewise.
25002 * gcc.c (ADD_STATIC_LIBTSAN_LIBS, LIBTSAN_EARLY_SPEC): Define.
25003 (LIBTSAN_SPEC): Add ADD_STATIC_LIBTSAN_LIBS, if LIBTSAN_EARLY_SPEC
25004 is defined, don't add anything else beyond that.
25005 (SANITIZER_EARLY_SPEC, SANITIZER_SPEC): Define.
25006 (LINK_COMMAND_SPEC): Use them.
25007
11f1e3ab
JJ
25008 PR tree-optimization/56205
25009 * tree-stdarg.c (check_all_va_list_escapes): Return true if
25010 there are any PHI nodes that set non-va_list_escape_vars SSA_NAME
25011 and some va_list_escape_vars SSA_NAME appears in some PHI argument.
25012
14ac6aa2
RB
250132013-02-05 Richard Biener <rguenther@suse.de>
25014
25015 PR tree-optimization/53342
25016 PR tree-optimization/53185
25017 * tree-vectorizer.h (vect_check_strided_load): Remove.
25018 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do
25019 not disallow peeling for vectorized strided loads.
25020 (vect_check_strided_load): Make static and simplify.
25021 (vect_analyze_data_refs): Adjust.
25022 * tree-vect-stmts.c (vectorizable_load): Handle peeled loops
25023 correctly when vectorizing strided loads.
25024
6f22445a
RB
250252013-02-05 Richard Biener <rguenther@suse.de>
25026
25027 * doc/install.texi: Refer to ISL, not PPL.
25028
39f9719e
JH
250292013-02-05 Jan Hubicka <jh@suse.cz>
25030
ec4224ac
JH
25031 PR tree-optimization/55789
25032 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): Drop to 1.
25033
250342013-02-05 Jan Hubicka <jh@suse.cz>
25035
25036 PR tree-optimization/55789
39f9719e
JH
25037 * cgraphclones.c (cgraph_remove_node_and_inline_clones): Remove
25038 the dead call anyway.
25039
956d3b33
EB
250402013-02-05 Eric Botcazou <ebotcazou@adacore.com>
25041
25042 PR sanitizer/55374
25043 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Add missing guard.
25044
250452013-02-04 Alexander Potapenko <glider@google.com>
25046 Jack Howarth <howarth@bromo.med.uc.edu>
ae526fe5
AP
25047 Jakub Jelinek <jakub@redhat.com>
25048
25049 PR sanitizer/55617
25050 * config/darwin.c (sort_ctor_records): Stabilized qsort
25051 on constructor priority by using original position.
25052 (finalize_ctors): New routine to sort constructors by
25053 priority before use in assemble_integer.
25054 (machopic_asm_out_constructor): Use finalize_ctors if needed.
25055
7ac3af38
JJ
250562013-02-04 Jakub Jelinek <jakub@redhat.com>
25057
25058 PR libstdc++/54314
25059 * config/i386/winnt.c (i386_pe_assemble_visibility): Don't warn
25060 about visibility on artificial decls.
25061 * config/sol2.c (solaris_assemble_visibility): Likewise.
25062
152689dc
KT
250632013-02-04 Kai Tietz <ktietz@redhat.com>
25064
25065 PR target/56186
25066 * config/i386/i386.c (function_value_ms_64): Add additional valtype
25067 argument and improve checking of return-argument types for 16-byte
25068 modes.
25069 (ix86_function_value_1): Add additional valtype argument on call
25070 of function_value_64.
25071 (return_in_memory_ms_64): Sync 16-byte sized mode handling with
25072 handling infunction_value_64 function.
25073
2b5987b5
MGD
250742013-02-04 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
25075
7ac3af38 25076 * reload.c (subst_reloads): Fix DEBUG_RELOAD build issue.
2b5987b5 25077
14597080
RB
250782013-02-04 Richard Biener <rguenther@suse.de>
25079
25080 PR tree-optimization/56188
25081 * tree-ssa-structalias.c (label_visit): Consider case with
25082 initially non-empty points-to set.
25083 (perform_var_substitution): Dump node mapping and clean up.
25084
ed73881e
RG
250852013-02-04 Richard Guenther <rguenther@suse.de>
25086
25087 PR lto/56168
25088 * lto-symtab.c (lto_symtab_merge_decls_1): Make non-builtin
25089 node prevail as last resort.
25090 (lto_symtab_merge_decls): Remove guard on LTRANS here.
6edc3e32 25091 (lto_symtab_prevailing_decl): Builtins are their own prevailing decl.
ed73881e 25092
139a0707
RB
250932013-02-04 Richard Biener <rguenther@suse.de>
25094
25095 PR tree-optimization/56113
25096 * tree-ssa-structalias.c (equiv_class_lookup, equiv_class_add):
25097 Merge into ...
25098 (equiv_class_lookup_or_add): ... this.
25099 (label_visit): Adjust and fix error in previous patch.
25100 (perform_var_substitution): Adjust.
25101
50fe8924
OE
251022013-02-03 Oleg Endo <olegendo@gcc.gnu.org>
25103
25104 * config/sh/divtab.c: Fix formatting and comments throughout the file.
25105 * config/sh/sh4-300.md: Likewise.
25106 * config/sh/sh4a.md: Likewise.
25107 * config/sh/constraints.md: Likewise.
25108 * config/sh/sh.md: Likewise.
25109 * config/sh/netbsd-elf.h: Likewise.
25110 * config/sh/predicates.md: Likewise.
25111 * config/sh/sh-protos.h: Likewise.
25112 * config/sh/ushmedia.h: Likewise.
25113 * config/sh/linux.h: Likewise.
25114 * config/sh/sh.c: Likewise.
25115 * config/sh/superh.h: Likewise.
25116 * config/sh/elf.h: Likewise.
25117 * config/sh/sh4.md: Likewise.
25118 * config/sh/sh.h: Likewise.
25119
1a04ac2b
JDA
251202013-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
25121
25122 * config/pa/constraints.md: Adjust unused letters. Change "T"
25123 constraint to match_test floating_point_store_memory_operand().
25124 * config/pa/predicates.md (reg_plus_base_memory_operand): New.
25125 (base14_operand): New.
25126 (floating_point_store_memory_operand): New.
25127 (integer_store_memory_operand): Revise to use base14_operand and
25128 reg_plus_base_memory_operand.
25129 (move_dest_operand): Allow symbolic_memory_operands.
25130 (symbolic_memory_operand): Check for LO_SOM.
25131 (symbolic_operand): Change default case to break.
25132 * config/pa/pa.md: Remove unamed DFmode and SFmode patterns to force
25133 CONST_DOUBLE values to be reloaded by putting them into memory when
25134 the destination is a floating point register.
25135 (movdf): Remove code to handle CONST_DOUBLE.
25136 (movsf): Likewise.
25137 (reload_indf_r1): New.
25138 (reload_insf_r1): New.
25139 Consistently use "Q" and "T" constraints with integer and floating
25140 point move instructions, respectively.
25141 (movdi): Remove FAIL.
25142 Change predicate for source operand unamed DImode move from
25143 general_operand to move_src_operand.
25144 (umulsidi3): Change predicate for destination operand to
25145 register_operand.
25146 Likewise for similar unamed patterns.
25147 * config/pa/pa-protos.h (pa_legitimize_reload_address): Declare.
25148 * config/pa/pa.c (pa_symbolic_expression_p): Remove extra parenthesis.
25149 (hppa_legitimize_address): Simplify mask calculation.
25150 (pa_emit_move_sequence): Revised handling of secondary reloads from
25151 REG+D addresses for floating point loads and stores. Directly handle
25152 loading CONST0_RTX (mode) to a floating point register.
25153 (pa_secondary_reload): Handle reloading DF and SFmode constant values
25154 to floating point registers. Don't restrict secondary reloads to
25155 floating point registers to integer modes. Revise some comments and
25156 cleanup some code.
25157 (TARGET_LEGITIMATE_ADDRESS_P): Define.
25158 (pa_legitimate_address_p): New.
25159 (pa_legitimize_reload_address): New.
25160 * config/pa/pa.h (STRICT_REG_OK_FOR_INDEX_P): New.
25161 (STRICT_REG_OK_FOR_BASE_P): New.
25162 (GO_IF_LEGITIMATE_ADDRESS): Delete. Update some related comments.
25163 (LEGITIMIZE_RELOAD_ADDRESS): Revise to use pa_legitimize_reload_address.
25164
3bf65591
DE
251652013-02-03 David Edelsohn <dje.gcc@gmail.com>
25166 Andrew Dixie <andrewd@gentrack.com>
25167
25168 * collect2.c (GCC_CHECK_HDR): Do not scan objects with F_LOADONLY
25169 flag set.
25170
c0a8a3e6
RS
251712013-02-03 Richard Sandiford <rdsandiford@googlemail.com>
25172
25173 * expmed.c (extract_bit_field_1): Pass the full width of the
25174 structure to get_best_reg_extraction_insn.
25175
99113dff
DE
251762013-02-01 David Edelsohn <dje.gcc@gmail.com>
25177
25178 PR target/54601
25179 * configure.ac (use_cxa_atexit): Add AIX.
25180 * configure: Regenerate.
25181
25182 * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtcxa.o.
25183
ddd84654
JJ
251842013-02-01 Jakub Jelinek <jakub@redhat.com>
25185
25186 PR debug/54793
25187 * final.c (need_profile_function): New variable.
25188 (final_start_function): Drop ATTRIBUTE_UNUSED from first argument.
25189 If first of NOTE_INSN_BASIC_BLOCK or NOTE_INSN_FUNCTION_BEG
25190 is only preceeded by NOTE_INSN_VAR_LOCATION or NOTE_INSN_DELETED
25191 notes, targetm.asm_out.function_prologue doesn't emit anything,
25192 HAVE_prologue and profiler should be emitted before prologue,
25193 set need_profile_function instead of emitting it.
25194 (final_scan_insn): If need_profile_function, emit
25195 profile_function on the first NOTE_INSN_BASIC_BLOCK or
25196 NOTE_INSN_FUNCTION_BEG note.
25197
251982013-02-01 Richard Henderson <rth@redhat.com>
749af8ee
RH
25199
25200 * config/rs6000/rs6000.md (smulditi3): New.
25201 (umulditi3): New.
25202
ff2a9d88
RH
25203 * config/alpha/alpha.md (umulditi3): New.
25204
14d52b90
DE
252052013-02-01 David Edelsohn <dje.gcc@gmail.com>
25206
25207 * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_COMMON): Use floor_log2.
25208 (ASM_OUTPUT_ALIGNED_LOCAL): New.
25209
8c7ca45c
RB
252102013-02-01 Richard Biener <rguenther@suse.de>
25211
25212 PR tree-optimization/56113
25213 * tree-ssa-structalias.c (label_visit): Reduce work for
25214 single-predecessor nodes.
25215
9f419393
EB
252162013-02-01 Eric Botcazou <ebotcazou@adacore.com>
25217
25218 * fold-const.c (make_range_step) <TRUTH_NOT_EXPR>: Bail out if the
25219 range isn't testing for zero.
25220
c5f4be84
SB
252212013-01-31 Steven Bosscher <steven@gcc.gnu.org>
25222
25223 PR middle-end/56113
25224 * fwprop.c (fwprop_init): Set up loops without CFG modifications.
25225
dbdbd982
NC
252262013-01-31 Hiroyuki Ono <hiroyuki.ono.jc@renesas.com>
25227 Nick Clifton <nickc@redhat.com>
25228
25229 * config/v850/constraints.md (Q): Define as a memory constraint.
25230 * config/v850/predicates.md (label_ref_operand): New predicate.
25231 (e3v5_shift_operand): New predicate.
25232 (ior_operator): New predicate.
25233 * config/v850/t-v850: Add e3v5 multilib.
25234 * config/v850/v850-protos.h (v850_adjust_insn_length): Prototype.
25235 (v850_gen_movdi): Prototype.
25236 * config/v850/v850.c: Add support for e3v5 architecture.
25237 Rename all uses of TARGET_V850E || TARGET_V850E2_ALL to
25238 TARGET_V850E_UP.
25239 (construct_save_jarl): Add e3v5 long JARL support.
25240 (v850_adjust_insn_length): New function. Adjust length of call
25241 insns when using e3v5 instructions.
25242 (v850_gen_movdi): New function: Generate instructions to move a
25243 DImode value.
25244 * config/v850/v850.h (TARGET_CPU_v850e3v5): Define.
25245 (CPP_SPEC): Define __v850e3v5__ as appropriate.
25246 (TARGET_USE_FPU): Enable for e3v5.
25247 (CONST_OK_FOR_W): New macro.
25248 (ADJUST_INSN_LENGTH): Define.
25249 * config/v850/v850.md (UNSPEC_LOOP): Define.
25250 (attr cpu): Add v850e3v5.
25251 Rename all uses of TARGET_V850E2 to TARGET_V850E2V3_UP.
25252 (movdi): New pattern.
25253 (movdi_internal): New pattern.
25254 (cbranchsf4): Conditionalize on TARGET_USE_FPU.
25255 (cbranchdf4): Conditionalize on TARGET_USE_FPU.
25256 (cstoresf4): Likewise.
25257 (cstoredf4): Likewise.
25258 (insv): New pattern.
25259 (rotlso3_a): New pattern.
25260 (rotlsi3_b): New pattern
25261 (rotlsi3_v850e3v5): New pattern.
25262 (doloop_begin): New pattern.
25263 (fix_loop_counter): New pattern.
25264 (doloop_end): New pattern.
25265 (branch_normal): Add e3v5 long branch support.
25266 (branch_invert): Likewise.
25267 (branch_z_normal): Likewise.
25268 (branch_z_invert): Likewise.
25269 (branch_nz_normal): Likewise.
25270 (branch_nz_invert): Likewise.
25271 (call_internal_short): Add e3v5 register-indirect JARL support.
25272 (call_internal_long): Likewise.
25273 (call_value_internal_short): Likewise.
25274 (call_value_internal_long): Likewise.
25275 * config/v850/v850.opt (mv850e3v5, mv850e2v4): New options.
25276 (mloop): New option.
25277 * config.gcc: Add support for configuring v840e3v5 target.
6edc3e32 25278 * doc/invoke.texi: Document new v850 specific command line options.
dbdbd982 25279
73861a41
PK
252802013-01-31 Paul Koning <ni1d@arrl.net>
25281
25282 PR debug/55059
25283 PR debug/54508
25284 * dwarf2out.c (prune_unused_types_mark): Mark all of parent's
25285 children if parent is a class.
25286 (prune_unused_types_prune): Don't add DW_AT_declaration.
25287
e44978dc
RB
252882013-01-31 Richard Biener <rguenther@suse.de>
25289
25290 PR tree-optimization/56157
25291 * tree-vect-slp.c (vect_get_slp_defs): More thoroughly try to
25292 match up operand with SLP child.
25293
90b10dec
JM
252942013-01-31 Jason Merrill <jason@redhat.com>
25295
04d2dadd 25296 PR debug/54410
90b10dec
JM
25297 * dwarf2out.c (gen_struct_or_union_type_die): Always schedule template
25298 parameters the first time.
25299 (gen_scheduled_generic_parms_dies): Check completeness here.
25300
6e616110
RB
253012013-01-31 Richard Biener <rguenther@suse.de>
25302
25303 PR middle-end/53073
25304 * common.opt (faggressive-loop-optimizations): New flag,
25305 enabled by default.
25306 * doc/invoke.texi (faggressive-loop-optimizations): Document.
25307 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Guard
25308 infer_loop_bounds_from_undefined by it.
25309
636f59cf
RB
253102013-01-31 Richard Biener <rguenther@suse.de>
25311
25312 PR tree-optimization/56150
25313 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Do not
25314 visit virtual operands.
25315 (find_uses_to_rename_bb): Likewise.
25316
253172013-01-31 Richard Biener <rguenther@suse.de>
fcfa87ac
RB
25318
25319 PR tree-optimization/56150
25320 * tree-ssa-tail-merge.c (gimple_equal_p): Properly handle
25321 mixed store non-store stmts.
25322
32887460
JJ
253232013-01-30 Jakub Jelinek <jakub@redhat.com>
25324
e60e09a0
JJ
25325 PR sanitizer/55374
25326 * gcc.c (LIBASAN_SPEC): Define just to ADD_STATIC_LIBASAN_LIBS if
25327 LIBASAN_EARLY_SPEC is defined.
25328 (LIBASAN_EARLY_SPEC): Define to empty string if not already defined.
25329 (LINK_COMMAND_SPEC): Add LIBASAN_EARLY_SPEC for -fsanitize=address,
25330 before %o.
25331 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Define.
25332
32887460
JJ
25333 PR c++/55742
25334 * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Diagnose
25335 invalid args instead of ICEing on it.
25336 (ix86_valid_target_attribute_tree): Return error_mark_node if
25337 ix86_valid_target_attribute_inner_p failed.
25338 (ix86_valid_target_attribute_p): Return false only if
25339 ix86_valid_target_attribute_tree returned error_mark_node. Allow
25340 target("default") attribute.
25341 (sorted_attr_string): Change argument from const char * to tree,
25342 merge in all target attribute arguments rather than just one.
25343 Formatting fix. Use XNEWVEC instead of xmalloc and XDELETEVEC
25344 instead of free. Avoid using strcat.
25345 (ix86_mangle_function_version_assembler_name): Mangle
25346 target("default") as if no target attribute is present. Adjust
25347 sorted_attr_string caller. Avoid leaking memory. Use XNEWVEC
25348 instead of xmalloc and XDELETEVEC instead of free.
25349 (ix86_function_versions): Don't return true if one of the decls
25350 doesn't have target attribute. If they don't and one of the decls
25351 is DECL_FUNCTION_VERSIONED, report an error. Adjust
25352 sorted_attr_string caller. Use XDELETEVEC instead of free.
25353 (ix86_supports_function_versions): Remove.
25354 (make_name): Fix up formatting.
25355 (make_dispatcher_decl): Remove resolver_name and its initialization.
25356 Avoid leaking memory.
25357 (is_function_default_version): Return true if there is
25358 target("default") attribute rather than no target attribute at all.
25359 (make_resolver_func): Avoid leaking memory.
25360 (ix86_generate_version_dispatcher_body): Likewise.
25361 (TARGET_OPTION_SUPPORTS_FUNCTION_VERSIONS): Remove.
25362 * target.def (supports_function_versions): Remove.
25363 * doc/tm.texi.in (SUPPORTS_FUNCTION_VERSIONS): Remove.
25364 * doc/tm.texi: Regenerated.
25365
73cca0cc
VM
253662013-01-30 Vladimir Makarov <vmakarov@redhat.com>
25367
25368 PR rtl-optimization/56144
25369 * lra-constraints.c (get_reload_reg): Don't reuse reload pseudo
25370 for values with side effects.
25371
11452e7b
RB
253722013-01-30 Richard Biener <rguenther@suse.de>
25373
25374 * sparseset.h (sparseset_bit_p): Use gcc_checking_assert.
25375 (sparseset_pop): Likewise.
25376 * cfganal.c (compute_idf): Likewise. Increase work-stack size
25377 to be able to use quick_push in the worker loop.
25378
01cb1ef5
MP
253792013-01-30 Marek Polacek <polacek@redhat.com>
25380
25381 * cfgcleanup.c (cleanup_cfg): Don't mark affected BBs.
25382
e892936e
RB
253832013-01-30 Richard Biener <rguenther@suse.de>
25384
25385 PR lto/56147
6edc3e32 25386 * lto-symtab.c (lto_symtab_merge_decls_1): Guard DECL_BUILT_IN check.
e892936e 25387
cc06c01d
GJL
253882013-01-30 Georg-Johann Lay <avr@gjlay.de>
25389
25390 PR tree-optimization/56064
25391 * fixed-value.c (fixed_from_double_int): New function.
25392 * fixed-value.h (fixed_from_double_int): New prototype.
25393 (const_fixed_from_double_int): New static inline function.
25394 * fold-const.c (native_interpret_fixed): New static function.
25395 (native_interpret_expr) <FIXED_POINT_TYPE>: Use it.
25396 (can_native_interpret_type_p) <FIXED_POINT_TYPE>: Return true.
25397 (native_encode_fixed): New static function.
25398 (native_encode_expr) <FIXED_CST>: Use it.
25399 (native_interpret_int): Move double_int worker code to...
25400 * double-int.c (double_int::from_buffer): ...this new static method.
25401 * double-int.h (double_int::from_buffer): Prototype it.
25402
d394a308
RB
254032013-01-30 Richard Biener <rguenther@suse.de>
25404
25405 * tree-ssa-structalias.c (final_solutions, final_solutions_obstack):
25406 New pointer-map and obstack.
25407 (init_alias_vars): Allocate pointer-map and obstack.
25408 (delete_points_to_sets): Free them.
25409 (find_what_var_points_to): Cache result.
25410 (find_what_p_points_to): Adjust for changed interface of
25411 find_what_var_points_to.
25412 (compute_points_to_sets): Likewise.
25413 (ipa_pta_execute): Likewise.
25414
20804d96
RO
254152013-01-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25416
25417 * configure.ac (HAVE_AS_SPARC_NOBITS): New test.
25418 * configure: Regenerate.
25419 * config.in: Regenerate.
25420 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Emit
25421 #nobits/#progbits if supported.
25422
a7ad88a2
OE
254232013-01-29 Oleg Endo <olegendo@gcc.gnu.org>
25424
25425 PR target/56121
25426 * config/sh/sh.md (bclr_m2a, bset_m2a, bst_m2a, bld_m2a, bldsign_m2a,
25427 bld_reg, *bld_regqi, band_m2a, bandreg_m2a, bor_m2a, borreg_m2a,
25428 bxor_m2a, bxorreg_m2a): Add satisfies_constraint_K03 condition.
25429
7af79f92
GY
254302013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
25431
91bfca59
OE
25432 * config/arm/cortex-a7.md (cortex_a7_neon, cortex_a7_all): Remove.
25433 (cortex_a7_idiv): Use cortex_a7_both instead of cortex_a7_all.
7af79f92 25434
753bcf7b
GY
254352013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
25436
91bfca59
OE
25437 * config/arm/arm.c (cortexa7_younger): Return true for TYPE_CALL.
25438 * config/arm/cortex-a7.md (cortex_a7_call): Update required units.
753bcf7b 25439
8cbc2ea8
GY
254402013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
25441
91bfca59
OE
25442 * config/arm/arm-protos.h (arm_mac_accumulator_is_result): New
25443 declaration.
25444 * config/arm/arm.c (arm_mac_accumulator_is_result): New function.
25445 * config/arm/cortex-a7.md: New bypasses using
25446 arm_mac_accumulator_is_result.
8cbc2ea8 25447
697a3325
GY
254482013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
25449
91bfca59 25450 * config/arm/cortex-a7.md (cortex_a7_neon_mul): New reservation.
697a3325 25451 (cortex_a7_neon_mla): Likewise.
91bfca59
OE
25452 (cortex_a7_fpfmad): New reservation.
25453 (cortex_a7_fpmacs): Use ffmas and update required units.
25454 (cortex_a7_fpmuld): Update required units and latency.
25455 (cortex_a7_fpmacd): Likewise.
25456 (cortex_a7_fdivs, cortex_a7_fdivd): Likewise.
25457 (cortex_a7_neon). Likewise.
25458 (bypass) Update participating units.
697a3325 25459
29637783
GY
254602013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
25461
91bfca59
OE
25462 * config/arm/arm.md (type): Add ffmas and ffmad to "type" attribute.
25463 * config/arm/vfp.md (fma,fmsub,fnmsub,fnmadd): Change type
25464 from fmac to ffma.
25465 * config/arm/vfp11.md (vfp_farith): Use ffmas.
25466 (vfp_fmul): Use ffmad.
25467 * config/arm/cortex-r4f.md (cortex_r4_fmacs): Use ffmas.
25468 (cortex_r4_fmacd): Use ffmad.
25469 * config/arm/cortex-m4-fpu.md (cortex_m4_fmacs): Use ffmas.
25470 * config/arm/cortex-a9.md (cortex_a9_fmacs): Use ffmas.
25471 (cortex_a9_fmacd): Use ffmad.
25472 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_macs): Use ffmas.
25473 (cortex_a8_vfp_macd): Use ffmad.
25474 * config/arm/cortex-a5.md (cortex_a5_fpmacs): Use ffmas.
25475 (cortex_a5_fpmacd): Use ffmad.
25476 * config/arm/cortex-a15-neon.md (cortex_a15_vfp_macs) Use ffmas.
25477 (cortex_a15_vfp_macd): Use ffmad.
25478 * config/arm/arm1020e.md (v10_fmul): Use ffmas and ffmad.
29637783 25479
2ee8a2d5
JM
254802013-01-29 Jason Merrill <jason@redhat.com>
25481
25482 PR libstdc++/54314
25483 * varasm.c (default_assemble_visibility): Don't warn about
25484 visibility on artificial decls.
25485
78d087bc
RB
254862013-01-29 Richard Biener <rguenther@suse.de>
25487
25488 PR tree-optimization/56113
25489 * tree-ssa-structalias.c (equiv_class_lookup): Also return
25490 the bitmap leader.
25491 (label_visit): Free duplicate bitmaps and record the leader instead.
25492 (perform_var_substitution): Adjust.
25493
83ba4d6f
RB
254942013-01-29 Richard Biener <rguenther@suse.de>
25495
25496 PR tree-optimization/55270
25497 * tree-ssa-dom.c (eliminate_degenerate_phis): If we changed
25498 the CFG, schedule loops for fixup.
25499
66dfe13f
NC
255002013-01-29 Nick Clifton <nickc@redhat.com>
25501
25502 * config/rl78/rl78.c (rl78_regno_mode_code_ok_for_base_p): Allow
25503 SP_REG.
25504
5a579c3b
LE
255052013-01-28 Leif Ekblad <leif@rdos.net>
25506
25507 * config.gcc (i[34567]86-*-rdos*, x86_64-*-rdos*): New targets.
25508 * config/i386/i386.h (TARGET_RDOS): New macro.
25509 (DEFAULT_LARGE_SECTION_THRESHOLD): New macro.
25510 * config/i386/i386.c (ix86_option_override_internal): For 64bit
25511 TARGET_RDOS, set ix86_cmodel to CM_MEDIUM_PIC and flag_pic to 1.
25512 * config/i386/i386.opt (mlarge-data-threshold): Initialize to
25513 DEFAULT_LARGE_SECTION_THRESHOLD.
25514 * config/i386/i386.md (R14_REG, R15_REG): New constants.
25515 * config/i386/rdos.h: New file.
25516 * config/i386/rdos64.h: New file.
25517
51e44392
BS
255182013-01-28 Bernd Schmidt <bernds@codesourcery.com>
25519
25520 PR other/54814
25521 * reload.c (find_valid_class_1): Use in_hard_reg_set_p instead of
25522 TEST_HARD_REG_BIT.
25523
db1fb332
JJ
255242013-01-28 Jakub Jelinek <jakub@redhat.com>
25525
25526 PR rtl-optimization/56117
25527 * sched-deps.c (sched_analyze_2) <case PREFETCH>: For use_cselib
25528 call cselib_lookup_from_insn on the MEM before calling
25529 add_insn_mem_dependence.
25530
16917761
RB
255312013-01-28 Richard Biener <rguenther@suse.de>
25532
25533 * tree-inline.c (remap_gimple_stmt): Do not assing a BLOCK
25534 to a stmt that didn't have one.
25535 (copy_phis_for_bb): Likewise for PHI arguments.
25536 (copy_debug_stmt): Likewise for debug stmts.
25537
b9fc0497
RB
255382013-01-28 Richard Biener <rguenther@suse.de>
25539
25540 PR tree-optimization/56034
6edc3e32 25541 * tree-loop-distribution.c (enum partition_kind): Add PKIND_REDUCTION.
b9fc0497
RB
25542 (partition_builtin_p): Adjust.
25543 (generate_code_for_partition): Handle PKIND_REDUCTION. Assert
25544 it is the last partition.
25545 (rdg_flag_uses): Check SSA_NAME_IS_DEFAULT_DEF before looking
25546 up the vertex for the definition.
25547 (classify_partition): Classify whether a partition is a
25548 PKIND_REDUCTION, thus has uses outside of the loop.
25549 (ldist_gen): Inherit PKIND_REDUCTION when merging partitions.
25550 Merge all PKIND_REDUCTION partitions into the last partition.
25551 (tree_loop_distribution): Seed partitions from reductions as well.
25552
aa710d25
JJ
255532013-01-28 Jakub Jelinek <jakub@redhat.com>
25554
0bfbca58
JJ
25555 PR tree-optimization/56125
25556 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Don't optimize
25557 pow(x,c) into sqrt(x) * powi(x, n/2) or
25558 1.0 / (sqrt(x) * powi(x, abs(n/2))) if c is an integer or when
25559 optimizing for size.
25560 Don't optimize pow(x,c) into powi(x, n/3) * powi(cbrt(x), n%3) or
25561 1.0 / (powi(x, abs(n)/3) * powi(cbrt(x), abs(n)%3)) if 2c is an
25562 integer.
25563
aa710d25
JJ
25564 PR tree-optimization/56094
25565 * gimplify.c (force_gimple_operand_1): Temporarily set input_location
25566 to UNKNOWN_LOCATION while gimplifying expr.
25567
77dc5297
UB
255682013-01-27 Uros Bizjak <ubizjak@gmail.com>
25569
25570 PR target/56114
25571 * config/i386/i386.md (*movabs<mode>_1): Add square brackets around
25572 operand 0 in movabs insn template for -masm=intel asm alternative.
25573 (*movabs<mode>_2): Ditto for operand 1.
25574
0bfbca58 255752013-01-26 David Holsgrove <david.holsgrove@xilinx.com>
fbf0cf90
DH
25576
25577 PR target/54663
25578 * config.gcc (microblaze*-linux*): Add tmake_file to allow building
25579 of microblaze-c.o
25580
0bfbca58 255812013-01-26 Edgar E. Iglesias <edgar.iglesias@gmail.com>
6f14eef2
EI
25582
25583 * config.gcc (microblaze*-*-*): Rename microblaze*-*-elf, update
25584 tm_file.
25585
0bfbca58 255862013-01-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
706b2314
N
25587
25588 * config/aarch64/aarch64.c (TARGET_FIXED_CONDITION_CODE_REGS):
25589 Undef to avoid warning.
25590
478f60f9
MH
255912013-01-25 Michael Haubenwallner <michael.haubenwallner@salomon.at>
25592
25593 * configure.ac (gcc_cv_ld_static_dynamic): Define for AIX native ld.
25594 * configure: Regenerate.
25595
d7fa6ee2
JJ
255962013-01-25 Jakub Jelinek <jakub@redhat.com>
25597
25598 PR tree-optimization/56098
25599 * tree-ssa-phiopt.c (nt_init_block): Don't call add_or_mark_expr
25600 for stmts with volatile ops.
25601 (cond_store_replacement): Don't optimize if assign has volatile ops.
25602 (cond_if_else_store_replacement_1): Don't optimize if either
25603 then_assign or else_assign have volatile ops.
25604 (hoist_adjacent_loads): Don't optimize if either def1 or def2 have
25605 volatile ops.
25606
f8fe87bd
GJL
256072013-01-25 Georg-Johann Lay <avr@gjlay.de>
25608
25609 * doc/invoke.texi (AVR Built-in Macros): Document __XMEGA__.
25610
28398d0d
GJL
256112013-01-25 Georg-Johann Lay <avr@gjlay.de>
25612
25613 * doc/extend.texi (Example of asm with clobbered asm reg): Fix
25614 missing ':' in asm example.
25615
b7d7d917
TB
256162013-01-25 Tejas Belagod <tejas.belagod@arm.com>
25617
25618 * config/aarch64/aarch64-simd-builtins.def: Separate sq<r>dmulh_lane
25619 entries into lane and laneq entries.
77dc5297
UB
25620 * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_lane<mode>):
25621 Remove AdvSIMD scalar modes.
b7d7d917
TB
25622 (aarch64_sq<r>dmulh_laneq<mode>): New.
25623 (aarch64_sq<r>dmulh_lane<mode>): New RTL pattern for Scalar AdvSIMD
25624 modes.
25625 * config/aarch64/arm_neon.h: Fix all the vq<r>dmulh_lane* intrinsics'
25626 builtin implementations to relfect changes in RTL in aarch64-simd.md.
25627 * config/aarch64/iterators.md (VCOND): New.
25628 (VCONQ): New.
25629
556f9906
GJL
256302013-01-25 Georg-Johann Lay <avr@gjlay.de>
25631
25632 PR target/54222
25633 * config/avr/builtins.def (DEF_BUILTIN): Add LIBNAME argument.
25634 Add NULL LIBNAME argument to existing definitions.
25635 (ABSHR, ABSR, ABSLR, ABSLLR, ABSHK, ABSK, ABSLK, ABSLLK): New.
25636 * config/avr/avr-c.c (DEF_BUILTIN): Add LIBNAME argument.
25637 * config/avr/avr.c (DEF_BUILTIN): Same.
25638 (avr_init_builtins): Pass down LIBNAME to add_builtin_function.
25639 (avr_expand_builtin): Expand to a vanilla call if a libgcc
25640 implementation is available (DECL_ASSEMBLER_NAME is set).
25641 (avr_fold_absfx): New static function.
25642 (avr_fold_builtin): Use it to handle: AVR_BUILTIN_ABSHR,
25643 AVR_BUILTIN_ABSR, AVR_BUILTIN_ABSLR, AVR_BUILTIN_ABSLLR,
25644 AVR_BUILTIN_ABSHK, AVR_BUILTIN_ABSK, AVR_BUILTIN_ABSLK,
25645 AVR_BUILTIN_ABSLLK.
25646 * config/avr/stdfix.h (abshr, absr, abslr, absllr)
25647 (abshk, absk, abslk, absllk): Provide as static inline functions.
25648
1f546bbb
MP
256492013-01-25 Marek Polacek <polacek@redhat.com>
25650
25651 PR tree-optimization/56035
25652 * cfgloopmanip.c (fix_loop_structure): Remove redundant condition.
25653
7e184bd7
UB
256542012-01-24 Uros Bizjak <ubizjak@gmail.com>
25655
25656 * config/i386/i386.md (*movti_internal_rex64): Add (o,e) alternative.
25657 (*movtf_internal_rex64): Add (!o,C) alternative
25658 (*movxf_internal_rex64): Ditto.
25659 (*movdf_internal_rex64): Add (?r,C) and (?m,C) alternatives.
25660
f5ba49ac
SM
256612013-01-24 Shenghou Ma <minux.ma@gmail.com>
25662
25663 * doc/invoke.texi: fix typo.
25664 * doc/objc.texi: fix typo.
25665
a6343728
RS
256662013-01-24 Richard Sandiford <rdsandiford@googlemail.com>
25667
25668 * config/mips/mips.md (*and<mode>3_mips16): Use the "W" constraint
25669 for the first two alternatives.
25670
cd030c07
DN
256712013-01-24 Diego Novillo <dnovillo@google.com>
25672
77dc5297 25673 * Makefile.in (GGC): Remove. Replace all instances with ggc-page.o.
cd030c07
DN
25674 (ggc-zone.o): Remove.
25675 * configure.ac: Remove option --with-gc.
25676 * configure: Re-generate.
25677 * doc/install.texi: Remove documentation for --with-gc.
25678 * gengtype.c (write_enum_defn): Remove. Update all users.
25679 (write_Types_process_field): Remove generation of gt_e_* argument.
25680 (output_type_enum): Remove. Update all users.
25681 (write_enum_defn): Remove. Update all users.
25682 (enum alloc_zone): Remove. Update all users.
77dc5297 25683 (write_splay_tree_allocator_def): Remove generation of gt_e_* argument.
cd030c07
DN
25684 * ggc-common.c (ggc_splay_alloc): Remove first argument.
25685 Update all callers.
25686 (struct ptr_data): Remove field TYPE. Update all users.
77dc5297 25687 (gt_pch_note_object): Remove argument TYPE. Update all users.
cd030c07
DN
25688 * ggc-internal.h (ggc_pch_alloc_object): Remove last argument.
25689 Update all users.
aaf1e810 25690 * ggc-none.c (ggc_alloc_typed_stat): Remove.
cd030c07
DN
25691 (struct alloc_zone): Remove.
25692 (ggc_internal_alloc_zone_stat): Remove.
25693 (ggc_internal_cleared_alloc_zone_stat): Remove.
25694 * ggc-page.c (ggc_alloc_typed_stat): Remove.
77dc5297
UB
25695 (ggc_pch_count_object): Remove last argument. Update all users.
25696 (ggc_pch_alloc_object): Remove last argument. Update all users.
cd030c07
DN
25697 (struct alloc_zone): Remove.
25698 * ggc-zone.c: Remove.
77dc5297 25699 * ggc.h (gt_pch_note_object): Remove last argument. Update all users.
cd030c07
DN
25700 (struct alloc_zone): Remove.
25701 (ggc_alloc_typed_stat): Remove.
25702 (ggc_alloc_typed): Remove.
25703 (ggc_splay_alloc): Remove first argument.
25704 (rtl_zone): Remove. Update all users.
25705 (tree_zone): Remove. Update all users.
25706 (tree_id_zone): Remove. Update all users.
25707 (ggc_internal_zone_alloc_stat): Remove. Update all users.
77dc5297 25708 (ggc_internal_zone_cleared_alloc_stat): Remove. Update all users.
cd030c07 25709 (ggc_internal_zone_vec_alloc_stat): Remove. Update all users.
77dc5297 25710 * tree-ssanames.c: Remove references to zone allocator in comments.
cd030c07 25711
a861ffa4
GJL
257122013-01-24 Georg-Johann Lay <avr@gjlay.de>
25713
25714 * config/avr/avr.c (avr_out_fract): Make register numbers that
25715 might be outside of source operand signed.
25716
593c0ddd
UB
257172013-01-24 Uros Bizjak <ubizjak@gmail.com>
25718
25719 * config/i386/constraints.md (Yf): New constraint.
25720 * config/i386/i386.md (*movdf_internal_rex64): Use Yf*f instead
25721 of f constraint to conditionaly disable x87 register preferences.
25722 (*movdf_internal): Ditto.
25723 (*movsf_internal): Ditto.
25724
e86c0101
SB
257252013-01-24 Steven Bosscher <steven@gcc.gnu.org>
25726
25727 PR inline-asm/55934
25728 * lra-assigns.c (assign_by_spills): Throw away the pattern of asms
25729 that have operands with impossible constraints.
25730 Add a FIXME for a speed-up opportunity.
25731 * lra-constraints.c (process_alt_operands): Verify that a class
25732 selected from constraints on asms is valid for the operand mode.
25733 (curr_insn_transform): Remove incorrect comment.
25734
f6fee35f
DE
257352013-01-23 David Edelsohn <dje.gcc@gmail.com>
25736
25737 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Check that
25738 TOC operand is a valid symbol ref in the constant pool.
25739
257402013-01-23 Edgar E. Iglesias <edgar.iglesias@gmail.com>
c7729184 25741
aaf1e810 25742 * config/microblaze/linux.h: Add TARGET_OS_CPP_BUILTINS
c7729184 25743
dc62d7d1
GJL
257442013-01-23 Georg-Johann Lay <avr@gjlay.de>
25745
25746 PR target/54222
25747 * config/avr/stdfix.h: New file.
25748 * t-avr (stdfix-gcc.h): New rule to build it.
25749 (EXTRA_HEADERS): Set it to install stdfix.h, stdfix-gcc.h.
25750
2660d12d
KS
257512013-01-23 Kostya Serebryany <kcc@google.com>
25752
77dc5297
UB
25753 * config/darwin.h: remove dependency on
25754 CoreFoundation (asan on Mac OS).
2660d12d 25755
a70418fc
JJ
257562013-01-23 Jakub Jelinek <jakub@redhat.com>
25757
25758 PR target/49069
25759 * config/arm/arm.md (cbranchdi4, cstoredi4): Use s_register_operand
25760 instead of cmpdi_operand for first comparison operand.
25761 Don't assert that comparison operands aren't both constants.
25762
47876a2a
JW
257632013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
25764
25765 * doc/install.texi (Downloading the Source): Update references to
25766 downloading separate components.
25767
257682013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
4ebd56a5
JW
25769
25770 * doc/extend.texi (__int128): Improve grammar.
25771
47876a2a 257722013-01-22 Uros Bizjak <ubizjak@gmail.com>
32fc5b8a
UB
25773
25774 PR target/56028
25775 * config/i386/i386.md (*movti_internal_rex64): Change (o,riF)
25776 alternative to (o,r).
25777 (*movdi_internal_rex64): Remove (!o,n) alternative.
25778 (DImode immediate->memory splitter): Remove.
25779 (DImode immediate->memory peephole2): Remove.
25780 (movtf): Enable for TARGET_64BIT || TARGET_SSE.
25781 (*movtf_internal_rex64): Rename from *movtf_internal. Change (!o,F*r)
25782 alternative to (!o,*r).
25783 (*movtf_internal_sse): New pattern.
25784 (*movxf_internal_rex64): New pattern.
25785 (*movxf_internal): Disable for TARGET_64BIT.
25786 (*movdf_internal_rex64): Remove (!o,F) alternative.
25787
3a984f10
JJ
257882013-01-22 Jakub Jelinek <jakub@redhat.com>
25789
502498d5
JJ
25790 PR middle-end/56074
25791 * dumpfile.c (dump_loc): Only print loc if LOCATION_LOCUS (loc)
25792 isn't UNKNOWN_LOCATION nor BUILTINS_LOCATION.
25793 * tree-vect-loop-manip.c (find_loop_location): Also ignore
25794 stmt locations where LOCATION_LOCUS of the stmt location is
25795 UNKNOWN_LOCATION or BUILTINS_LOCATION.
25796
3a984f10
JJ
25797 PR target/55686
25798 * config/i386/i386.md (UNSPEC_STOS): New.
25799 (strset_singleop, *strsetdi_rex_1, *strsetsi_1, *strsethi_1,
25800 *strsetqi_1): Add UNSPEC_STOS.
25801
fa817f7f
PC
258022013-01-22 Paolo Carlini <paolo.carlini@oracle.com>
25803
25804 PR c++/56067
25805 * doc/invoke.texi: Remove left over -Wsynth example.
25806
8f498c1b
JJ
258072013-01-21 Jakub Jelinek <jakub@redhat.com>
25808
25809 PR tree-optimization/56051
25810 * fold-const.c (fold_binary_loc): Don't fold
25811 X < (cast) (1 << Y) into (X >> Y) != 0 if cast is either
25812 a narrowing conversion, or widening conversion from signed
25813 to unsigned.
25814
47876a2a 258152013-01-21 Uros Bizjak <ubizjak@gmail.com>
35d59da7
UB
25816
25817 PR rtl-optimization/56023
25818 * haifa-sched.c (fix_inter_tick): Do not update ticks of instructions,
25819 dependent on debug instruction.
25820
5b9db1bc
MJ
258212013-01-21 Martin Jambor <mjambor@suse.cz>
25822
25823 PR middle-end/56022
25824 * function.c (allocate_struct_function): Call
25825 invoke_set_current_function_hook earlier.
25826
e8bb7d68
JJ
258272013-01-21 Jakub Jelinek <jakub@redhat.com>
25828
25829 * reload1.c (init_reload): Only initialize reload_obstack
25830 during the first call.
25831
616a4e32
MP
258322013-01-21 Marek Polacek <polacek@redhat.com>
25833
25834 * cfgloop.c (verify_loop_structure): Fix up grammar.
25835
4401981b
YHH
258362013-01-21 Yi-Hsiu Hsu <ahsu@marvell.com>
25837
25838 * config/arm/marvell-pj4.md (pj4_shift_conds, pj4_alu_shift,
25839 pj4_alu_shift_conds, pj4_shift): Handle simple_alu_shift.
25840
8e87740b
RR
258412013-01-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
25842
25843 PR target/56058
25844 * config/arm/marvell-pj4.md: Update copyright year.
25845 Fix up use of alu to alu_reg and simple_alu_imm.
25846
47876a2a 258472013-01-21 Uros Bizjak <ubizjak@gmail.com>
1f6bc337
UB
25848
25849 * config/i386/i386.md (enabled): Do not disable fma4 for TARGET_FMA.
25850
89d56d79
VM
258512013-01-20 Vladimir Makarov <vmakarov@redhat.com>
25852
25853 PR target/55433
25854 * lra-constraints.c (curr_insn_transform): Don't reuse original
1f6bc337 25855 insn for secondary memory move when memory mode should be different.
89d56d79 25856
fe603553
JDA
258572013-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
25858
25859 * config/pa/pa.md (atomic_loaddi, atomic_loaddi_1, atomic_storedi,
25860 atomic_storedi_1): New patterns.
25861
01284895
VK
258622013-01-20 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
25863
25864 btver2 pipeline descriptions.
25865 * config/i386/i386.c: Enable CPU_BTVER2 to use btver2 pipeline
25866 descriptions.
25867 * config/i386/i386.md (btver2_decode): New type attributes.
1f6bc337 25868 * config/i386/sse.md (btver2_decode, btver2_sse_attr): New
01284895
VK
25869 type attributes.
25870 * config/i386/btver2.md: New file describing btver2 pipelines.
25871
5630e3e1
JL
258722013-01-19 Andrew Pinski <apinski@cavium.com>
25873
25874 PR tree-optimization/52631
25875 * tree-ssa-sccvn (visit_use): Before looking up the original
25876 statement, try looking up the simplified expression.
25877
650ae806
AG
258782013-01-19 Anthony Green <green@moxielogic.com>
25879
25880 * config/moxie/moxie.c (moxie_expand_prologue): Set
25881 current_function_static_stack_size.
25882
e300ec2d
JJ
258832013-01-18 Jakub Jelinek <jakub@redhat.com>
25884
25885 PR tree-optimization/56029
25886 * tree-phinodes.c (reserve_phi_args_for_new_edge): Set
25887 gimple_phi_arg_location for the new arg to UNKNOWN_LOCATION.
25888
a3d7af04
SS
258892013-01-18 Sharad Singhai <singhai@google.com>
25890
25891 PR tree-optimization/55995
25892 * dumpfile.c (dump_loc): Print location only if available.
25893 * tree-vectorizer.c (increase_alignment): Intialize vect_location.
25894
66aa7879
VM
258952013-01-18 Vladimir Makarov <vmakarov@redhat.com>
25896
25897 PR target/55433
25898 * lra-constraints.c (curr_insn_transform): Reuse original insn for
25899 secondary memory move.
25900 (inherit_reload_reg): Use rclass instead of cl for
25901 check_secondary_memory_needed_p.
25902
3f0fee7b
JJ
259032013-01-18 Jakub Jelinek <jakub@redhat.com>
25904
25905 PR middle-end/56015
25906 * expr.c (expand_expr_real_2) <case COMPLEX_EXPR>: Handle
1f6bc337 25907 the case where writing real complex part of target modifies op1.
3f0fee7b 25908
70c67693
JG
259092013-01-18 James Greenhalgh <james.greenhalgh@arm.com>
25910
25911 * config/aarch64/aarch64-simd.md
25912 (aarch64_vcond_internal<mode>): Handle unordered cases.
25913 * config/aarch64/iterators.md (v_cmp_result): New.
25914
df8de9b3
YHH
259152013-01-18 Yi-Hsiu Hsu <ahsu@marvell.com>
25916 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
25917
25918 * config/arm/marvell-pj4.md: New file.
25919 * config/arm/arm.c (arm_issue_rate): Add marvell_pj4.
25920 * config/arm/arm.md (generic_sched): Add marvell_pj4.
25921 (generic_vfp): Likewise.
25922 * config/arm/arm-cores.def: Add marvell-pj4.
25923 * config/arm/arm-tune.md: Regenerate.
25924 * config/arm/arm-tables.opt: Regenerate.
25925 * config/arm/bpabi.h (BE8_LINK_SPEC): Add marvell_pj4.
25926 * doc/invoke.texi: Document marvell-pj4.
25927
be30c356
TB
259282013-01-18 Tejas Belagod <tejas.belagod@arm.com>
25929
25930 * config/aarch64/arm_neon.h: Map scalar types to standard types.
25931
0bfbca58 259322013-01-18 Alexandre Oliva <aoliva@redhat.com>
af6236c1
AO
25933
25934 PR debug/54114
25935 PR debug/54402
25936 PR debug/49888
25937 * var-tracking.c (negative_power_of_two_p): New.
25938 (global_get_addr_cache, local_get_addr_cache): New.
25939 (get_addr_from_global_cache, get_addr_from_local_cache): New.
25940 (vt_canonicalize_addr): Rewrite using the above. Adjust the
25941 heading comment.
25942 (vt_stack_offset_p): Remove.
25943 (vt_canon_true_dep): Always canonicalize loc's address.
25944 (clobber_overlapping_mems): Make sure we have a MEM.
25945 (local_get_addr_clear_given_value): New.
25946 (val_reset): Clear local cached entries.
25947 (compute_bb_dataflow): Create and release the local cache.
25948 Disable duplicate MEMs clobbering.
25949 (emit_notes_in_bb): Clobber MEMs likewise.
25950 (vt_emit_notes): Create and release the local cache.
25951 (vt_initialize, vt_finalize): Create and release the global
25952 cache, respectively.
1f6bc337 25953 * alias.c (rtx_equal_for_memref_p): Compare operands of ENTRY_VALUEs.
af6236c1 25954
0bfbca58 259552013-01-18 Alexandre Oliva <aoliva@redhat.com>
7ff37ffa
AO
25956
25957 PR libmudflap/53359
25958 * tree-mudflap.c (mudflap_finish_file): Skip deferred decls
25959 not found in the symtab.
25960
0bfbca58 259612013-01-18 Alexandre Oliva <aoliva@redhat.com>
3aa03517 25962
c350ba53 25963 PR debug/56006
3aa03517
AO
25964 PR rtl-optimization/55547
25965 PR rtl-optimization/53827
25966 PR debug/53671
25967 PR debug/49888
25968 * alias.c (offset_overlap_p): New, factored out of...
25969 (memrefs_conflict_p): ... this. Use absolute sizes. Retain
25970 the conservative special case for symbolic constants. Don't
25971 adjust zero sizes on alignment.
25972
c664546f
JL
259732013-01-18 Bernd Schmidt <bernds@codesourcery.com>
25974
25975 PR rtl-optimization/52573
25976 * regrename.c (build_def_use): Ignore REG_DEAD notes if there is a
25977 REG_UNUSED for the same register.
25978
1bd3f750
MP
259792013-01-17 Richard Biener <rguenther@suse.de>
25980 Marek Polacek <polacek@redhat.com>
25981
25982 PR rtl-optimization/55833
25983 * loop-unswitch.c (unswitch_loops): Move loop verification...
25984 (unswitch_single_loop): ...here. Call mark_irreducible_loops.
25985 * cfgloopmanip.c (fix_loop_placement): Add IRRED_INVALIDATED parameter.
25986 Set it to true when we're removing a loop from hierarchy tree in
25987 an irreducible region.
25988 (fix_bb_placements): Adjust caller.
25989 (fix_loop_placements): Likewise.
25990
e52a8b71
GJL
259912013-01-17 Georg-Johann Lay <avr@gjlay.de>
25992
25993 * config/avr/builtins.def (DEF_BUILTIN): Factor out
25994 "__builtin_avr_" from NAME, turn NAME to an uppercase identifier.
25995 Factor out 'CODE_FOR_' from ICODE, use 'nothing' instead of '-1'.
25996 Remove ID. Adjust comments.
25997 * config/avr/avr-c.c (avr_builtin_name): Remove.
25998 (avr_cpu_cpp_builtins): Use DEF_BUILTIN instead of for-loop.
25999 * config/avr/avr.c (avr_tolower): New static function.
26000 (DEF_BUILTIN): Remove parameter ID. Prefix ICODE by 'CODE_FOR_'.
26001 Stringify NAME, prefix it with "__builtin_avr_" and lowercase it.
26002 (avr_expand_builtin): Assert insn_code != CODE_FOR_nothing for
26003 default expansion.
26004
8386a7ea
JH
260052013-01-17 Jan Hubicka <jh@suse.cz>
26006
610fb637 26007 PR tree-optimization/55273
8386a7ea
JH
26008 * loop-iv.c (iv_number_of_iterations): Consider zero iteration case.
26009
47876a2a 260102013-01-17 Uros Bizjak <ubizjak@gmail.com>
8abaebcd
UB
26011
26012 PR target/55981
26013 * config/i386/sync.md (atomic_store<mode>): Always generate SWImode
26014 store through atomic_store<mode>_1.
26015 (atomic_store<mode>_1): Macroize insn using SWI mode iterator.
26016
8222c37e
MJ
260172013-01-17 Martin Jambor <mjambor@suse.cz>
26018
26019 PR tree-optimizations/55264
26020 * ipa-inline-transform.c (can_remove_node_now_p_1): Never return true
26021 for virtual methods.
26022 * ipa.c (symtab_remove_unreachable_nodes): Never return true for
26023 virtual methods before inlining is over.
26024 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Return false for
26025 virtual functions.
26026 * cgraphclones.c (cgraph_create_virtual_clone): Mark clones as
26027 non-virtual.
26028
79f01c76
VM
260292013-01-16 Vladimir Makarov <vmakarov@redhat.com>
26030
26031 PR rtl-optimization/56005
26032 * sched-deps.c (sched_analyze_2): Check deps->readonly for adding
26033 pending reads for prefetch.
26034
d0b6bb1b
IB
260352013-01-16 Ian Bolton <ian.bolton@arm.com>
26036
aaf1e810 26037 * config/aarch64/aarch64.md
d0b6bb1b
IB
26038 (*cstoresi_neg_uxtw): New pattern.
26039 (*cmovsi_insn_uxtw): New pattern.
26040 (*<optab>si3_uxtw): New pattern.
26041 (*<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): New pattern.
26042 (*<optab>si3_insn_uxtw): New pattern.
26043 (*bswapsi2_uxtw): New pattern.
26044
cb9cf03b
RB
260452013-01-16 Richard Biener <rguenther@suse.de>
26046
26047 * tree-inline.c (tree_function_versioning): Remove set but
26048 never used variable.
26049
2cfc56b9
RB
260502013-01-16 Richard Biener <rguenther@suse.de>
26051
26052 PR tree-optimization/55964
26053 * tree-flow.h (rename_variables_in_loop): Remove.
26054 (rename_variables_in_bb): Likewise.
26055 * tree-loop-distribution.c (update_phis_for_loop_copy): Remove.
26056 (copy_loop_before): Adjust and delete update-ssa status.
26057 * tree-vect-loop-manip.c (rename_variables_in_bb): Make static.
8abaebcd 26058 (rename_variables_in_bb): Likewise. Properly walk over predecessors.
2cfc56b9
RB
26059 (rename_variables_in_loop): Remove.
26060 (slpeel_update_phis_for_duplicate_loop): Likewise.
26061 (slpeel_tree_duplicate_loop_to_edge_cfg): Handle nested loops,
26062 use available cfg machinery instead of duplicating it.
26063 Update PHI nodes and perform poor-mans SSA update here.
26064 (slpeel_tree_peel_loop_to_edge): Adjust.
26065
c25a0c60
RB
260662013-01-16 Richard Biener <rguenther@suse.de>
26067
26068 PR tree-optimization/54767
26069 PR tree-optimization/53465
26070 * tree-vrp.c (vrp_meet_1): Revert original fix for PR53465.
26071 (vrp_visit_phi_node): For PHI arguments coming via backedges
26072 drop all symbolical range information.
26073 (execute_vrp): Compute backedges.
26074
04b535af
RB
260752013-01-16 Richard Biener <rguenther@suse.de>
26076
26077 * doc/install.texi: Update CLooG and ISL requirements to
26078 0.18.0 and 0.11.1.
26079
8b0a1e0b
CB
260802013-01-16 Christian Bruel <christian.bruel@st.com>
26081
26082 PR target/55301
26083 * config/sh/sh.c (sh_expand_prologue): Postpone new_stack mem symbol.
26084 (broken_move): Handle UNSPECV_SP_SWITCH_B.
26085 * config/sh/sh.md (sp_switch_1): Use set (reg:SI SP_REG).
26086
260872013-01-16 DJ Delorie <dj@redhat.com>
26088
26089 * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
26090 (UNSPECV_SP_SWITCH_E): New.
26091 (sp_switch_1): Change to an unspec.
26092 (sp_switch_2): Change to an unspec. Don't use post-inc when we
26093 replace $r15.
26094
260952013-01-16 Uros Bizjak <ubizjak@gmail.com>
88e784e6
UB
26096
26097 * emit-rtl.c (need_atomic_barrier_p): Mask memory model argument
26098 with MEMMODEL_MASK before comparing with MEMMODEL_* memory types.
26099 * optabs.c (maybe_emit_sync_lock_test_and_set): Ditto.
26100 (expand_mem_thread_fence): Ditto.
26101 (expand_mem_signal_fence): Ditto.
26102 (expand_atomic_load): Ditto.
26103 (expand_atomic_store): Ditto.
26104
0bfbca58 261052013-01-16 Alexandre Oliva <aoliva@redhat.com>
5147bf6a
AO
26106
26107 PR rtl-optimization/55547
26108 PR rtl-optimization/53827
26109 PR debug/53671
26110 PR debug/49888
26111 * alias.c (memrefs_conflict_p): Set sizes to negative after
26112 AND adjustments.
26113
305e3ac1
JJ
261142013-01-15 Jakub Jelinek <jakub@redhat.com>
26115
26116 PR target/55940
26117 * function.c (thread_prologue_and_epilogue_insns): Always
26118 add crtl->drap_reg to set_up_by_prologue.set, even if
26119 stack_realign_drap is false.
26120
f78ac4f2
JBG
261212013-01-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
26122
26123 * config/vax/vax.md (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3,
26124 and<mode>3, *and<mode>_const_int, ior<mode>3, xor<mode>3, ashrsi3,
26125 *call): Fix indention.
26126
a78a8cc4
TV
261272013-01-15 Tom de Vries <tom@codesourcery.com>
26128
26129 PR target/55876
26130 * optabs.c (widen_operand): Use gen_lowpart instead of gen_rtx_SUBREG.
26131 Update comment.
26132
0e80383f
VM
261332013-01-15 Vladimir Makarov <vmakarov@redhat.com>
26134
305e3ac1 26135 PR rtl-optimization/55153
0e80383f
VM
26136 * sched-deps.c (sched_analyze_2): Add pending reads for prefetch.
26137
207b5956
MJ
261382013-01-15 Martin Jambor <mjambor@suse.cz>
26139
26140 PR tree-optimization/55920
26141 * tree-sra.c (analyze_access_subtree): Do not mark non-removable
26142 accesses as grp_to_be_debug_replaced.
26143
a7818b54
JJ
261442013-01-15 Jakub Jelinek <jakub@redhat.com>
26145
26146 PR tree-optimization/55920
26147 * tree-sra.c (sra_modify_assign): If for lacc->grp_to_be_debug_replaced
26148 there is non-useless type conversion needed from debug rhs to lhs,
26149 use build_debug_ref_for_model and/or VIEW_CONVERT_EXPR.
26150
b0fe107e
JM
261512013-01-15 Joseph Myers <joseph@codesourcery.com>
26152 Mikael Pettersson <mikpe@it.uu.se>
26153
26154 PR target/43961
26155 * config/arm/arm.h (ADDR_VEC_ALIGN): Align SImode jump tables for
26156 Thumb.
26157 (ASM_OUTPUT_CASE_LABEL): Remove.
26158 (ASM_OUTPUT_BEFORE_CASE_LABEL): Define to empty.
26159 * final.c (shorten_branches): Update alignment of labels before
26160 jump tables if CASE_VECTOR_SHORTEN_MODE.
26161
34ab62ee
RB
261622013-01-15 Richard Biener <rguenther@suse.de>
26163
26164 PR bootstrap/55961
26165 * system.h: Do not include gmp.h for building host tools.
26166
783a3a05
RB
261672013-01-15 Richard Biener <rguenther@suse.de>
26168
26169 PR middle-end/55882
26170 * emit-rtl.c (set_mem_attributes_minus_bitpos): Correctly
26171 account for bitpos when computing alignment.
26172
3a579e09
VY
261732013-01-15 Vladimir Yakovlev <vladimir.b.yakovlev@intel.com>
26174
26175 * config/i386/i386-c.c (ix86_target_macros_internal): New case.
26176 (ix86_target_macros_internal): Likewise.
26177
26178 * config/i386/i386.c (m_CORE2I7): Removed.
26179 (m_CORE_HASWELL): New macro.
26180 (m_CORE_ALL): Likewise.
26181 (initial_ix86_tune_features): m_CORE2I7 is replaced by m_CORE_ALL.
26182 (initial_ix86_arch_features): Likewise.
26183 (processor_target_table): Initializations for Core avx2.
26184 (cpu_names): New names "core-avx2".
26185 (ix86_option_override_internal): Changed PROCESSOR_COREI7 by
26186 PROCESSOR_CORE_HASWELL.
26187 (ix86_issue_rate): New case.
26188 (ia32_multipass_dfa_lookahead): Likewise.
26189 (ix86_sched_init_global): Likewise.
26190
26191 * config/i386/i386.h (TARGET_HASWELL): New macro.
26192 (target_cpu_default): New TARGET_CPU_DEFAULT_haswell.
26193 (processor_type): New PROCESSOR_HASWELL.
26194
955f5a07
JJ
261952013-01-15 Jakub Jelinek <jakub@redhat.com>
26196
ff784829
JJ
26197 PR tree-optimization/55955
26198 * tree-vect-loop.c (vectorizable_reduction): Give up early on
26199 *SHIFT_EXPR and *ROTATE_EXPR codes.
26200
955f5a07
JJ
26201 PR tree-optimization/48766
26202 * opts.c (common_handle_option): For -fwrapv disable -ftrapv, for
26203 -ftrapv disable -fwrapv.
26204
aeb8b4e9
GJL
262052013-01-14 Georg-Johann Lay <avr@gjlay.de>
26206
26207 PR target/55974
26208 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Define __FLASH
26209 etc. to 1 and not to __flash.
26210 Use LL suffix for __INT24_MAX__ with -mint8.
26211 Use ULL suffix for __UINT24_MAX__ with -mint8.
26212
1c494c6a
GJL
262132013-01-14 Georg-Johann Lay <avr@gjlay.de>
26214
26215 * config/avr/avr-arch.h
26216 (struct base_arch_s): Use typedef avr_arch_t instead.
26217 (struct arch_info_s): Use typedef avr_arch_info_t instead.
26218 (struct mcu_type_s): Use typedef avr_mcu_t instead.
26219 * config/avr/avr.c: Same.
26220 * config/avr/avr-devices.c: Same.
26221 * config/avr/driver-avr.c: Same.
26222 * config/avr/gen-avr-mmcu-texi.c: Same.
26223 * config/avr/avr-mcus.def: Adjust comment.
26224
a50344cb
TB
262252013-01-14 Tejas Belagod <tejas.belagod@arm.com>
26226
88e784e6
UB
26227 * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): New.
26228 * config/aarch64/iterators.md (VALLDI): New.
a50344cb 26229
47876a2a 262302013-01-14 Uros Bizjak <ubizjak@gmail.com>
e6f0e052
UB
26231 Andi Kleen <ak@linux.intel.com>
26232
26233 PR target/55948
26234 * config/i386/sync.md (atomic_store<mode>_1): New pattern.
26235 (atomic_store<mode>): Call atomic_store<mode>_1 for IX86_HLE_RELEASE
26236 memmodel flag.
26237
00892272
GJL
262382013-01-14 Georg-Johann Lay <avr@gjlay.de>
26239
26240 * config/avr/avr-stdint.h: Remove trailing blanks.
26241 * config/avr/avr-log.h: Same.
26242 * config/avr/avr-arch.h: Same.
26243 * config/avr/avr-devices.c: Same.
26244 * config/avr/avr-dimode.md: Same.
26245 * config/avr/predicates.md: Same.
26246 * config/avr/avr-c.c: Same. And fix typo.
e6f0e052 26247
00892272
GJL
26248 * config/avr/avr-protos.h: Same. And:
26249 (function_arg_regno_p): Rename to avr_function_arg_regno_p.
26250 (init_cumulative_args): Rename to avr_init_cumulative_args.
26251 (expand_prologue): Rename to avr_expand_prologue.
26252 (expand_epilogue): Rename to avr_expand_epilogue.
26253 (adjust_insn_length): Rename to avr_adjust_insn_length.
26254 (notice_update_cc): Rename to avr_notice_update_cc.
26255 (final_prescan_insn): Rename to avr_final_prescan_insn.
26256 * config/avr/avr.c: Same.
26257 * config/avr/avr.h: Same.
26258 * config/avr/avr.md: Remove trailing blanks.
26259 (prologue): Use avr_expand_prologue.
26260 (epilogue, sibcall_epilogue): Use avr_expand_epilogue.
26261
7bb01996
RB
262622013-01-14 Richard Biener <rguenther@suse.de>
26263
26264 * tree-cfg.c (verify_expr_location, verify_expr_location_1,
26265 verify_location, collect_subblocks): New functions.
26266 (verify_gimple_in_cfg): Verify that locations only reference
26267 BLOCKs in the functions BLOCK tree.
26268
2724573f
RB
262692013-01-14 Richard Biener <rguenther@suse.de>
26270
26271 * tree-cfgcleanup.c (remove_forwarder_block): Unshare propagated
26272 PHI argument.
26273 * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Properly
26274 unshare reference.
26275 (insert_out_of_ssa_copy_on_edge): Likewise.
26276 (rewrite_close_phi_out_of_ssa): Likewise.
26277 * tree-ssa.c (insert_debug_temp_for_var_def): Properly unshare
26278 debug expressions.
26279 * tree-ssa-pre.c (insert_into_preds_of_block): Properly unshare
26280 propagated constants.
26281 * tree-cfg.c (tree_node_can_be_shared): Handled component-refs
26282 can not be shared.
26283
9a0bbab6
GJL
262842013-01-14 Georg-Johann Lay <avr@gjlay.de>
26285
26286 * config/avr/avr-modes.def: Add GPL copyright notice.
26287
45805f17
UB
262882013-01-13 Uros Bizjak <ubizjak@gmail.com>
26289
26290 * config/i386/sync.md (mem_thread_fence): Mask operands[0] with
26291 MEMMODEL_MASK to determine memory model.
26292 (atomic_store<mode>): Ditto from operands[2].
26293 * config/i386/i386.c (ix86_memmodel_check): Declare "strong" as bool.
26294
9d60be38
JJ
262952013-01-13 Jakub Jelinek <jakub@redhat.com>
26296
26297 PR fortran/55935
45805f17 26298 * gimple-fold.c (get_symbol_constant_value): Call unshare_expr.
9d60be38
JJ
26299 (fold_gimple_assign): Don't call unshare_expr here.
26300 (fold_ctor_reference): Call unshare_expr.
26301
e7f49d92
TG
263022013-01-13 Terry Guo <terry.guo@arm.com>
26303
aaf1e810
EB
26304 * Makefile.in (s-mlib): New argument MULTILIB_REUSE.
26305 * doc/fragments.texi: Document MULTILIB_REUSE.
26306 * gcc.c (multilib_reuse): New internal spec.
e7f49d92 26307 (set_multilib_dir): Also search multilib from multilib_reuse.
aaf1e810 26308 * genmultilib (tmpmultilib3): Refactor code.
e7f49d92
TG
26309 (tmpmultilib4): Ditto.
26310 (multilib_reuse): New multilib argument.
26311
fbd03a27
RS
263122013-01-13 Richard Sandiford <rdsandiford@googlemail.com>
26313
26314 * Makefile.in: Update copyright.
26315
b3681f13
TV
263162013-01-12 Tom de Vries <tom@codesourcery.com>
26317
26318 PR middle-end/55890
26319 * calls.c (expand_call): Check if arg_nr is valid.
26320
3f287e4b
MM
263212013-01-11 Michael Meissner <meissner@linux.vnet.ibm.com>
26322
26323 * doc/extend.texi (X86 Built-in Functions): Add whitespace in
26324 __builtin_ia32_paddb256 and __builtin_ia32_pavgb256
5bc35113
MM
26325 documentation. Add missing '__' in front of
26326 __builtin_ia32_packssdw256.
3f287e4b 26327
1abcd5eb
AK
263282013-01-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
26329
26330 PR target/55719
26331 * config/s390/s390.c (s390_preferred_reload_class): Do not return
26332 NO_REGS for larl operands.
26333 (s390_reload_larl_operand): Use s390_load_address instead of
26334 emit_move_insn.
26335
980d0812
RB
263362013-01-11 Richard Biener <rguenther@suse.de>
26337
26338 * tree-cfg.c (verify_node_sharing_1): Split out from ...
26339 (verify_node_sharing): ... here.
26340 (verify_gimple_in_cfg): Use verify_node_sharing_1 for walk_tree.
26341
7cb9fd07
EB
263422013-01-11 Eric Botcazou <ebotcazou@adacore.com>
26343
26344 * configure.ac (Tree checking): Set TREECHECKING to yes if enabled.
26345 Substitute TREECHECKING.
26346 * configure: Regenerate.
26347 * Makefile.in (TREECHECKING): New.
26348
47876a2a 263492013-01-11 Richard Guenther <rguenther@suse.de>
c7ab2530
RG
26350
26351 PR tree-optimization/44061
26352 * tree-vrp.c (extract_range_basic): Compute zero as
26353 value-range for __builtin_constant_p of function parameters.
26354
d1e082c2
RS
263552013-01-10 Richard Sandiford <rdsandiford@googlemail.com>
26356
45805f17 26357 Update copyright years.
d1e082c2 26358
f85021b0
VM
263592013-01-10 Vladimir Makarov <vmakarov@redhat.com>
26360
9d60be38 26361 PR rtl-optimization/55672
0160442c
VM
26362 * lra-eliminations.c (mark_not_eliminable): Permit addition with
26363 const to be eliminable.
f85021b0 26364
7a8b1ec4
DE
263652013-01-10 David Edelsohn <dje.gcc@gmail.com>
26366
26367 * configure.ac (HAVE_AS_TLS): Add check for powerpc-ibm-aix.
26368 * configure: Regenerate.
26369
ad2e5b71
RB
263702013-01-10 Richard Biener <rguenther@suse.de>
26371
ddf9322d 26372 * builtins.c (expand_builtin_init_trampoline): Use set_mem_attributes.
ad2e5b71 26373
ffc5b2bb
RB
263742013-01-10 Richard Biener <rguenther@suse.de>
26375
26376 PR bootstrap/55792
26377 * tree-into-ssa.c (rewrite_add_phi_arguments): Do not set
26378 locations for virtual PHI arguments.
26379 (rewrite_update_phi_arguments): Likewise.
26380
e1f674e4
JS
263812013-01-10 Joel Sherrill <joel.sherrill@OARcorp.com>
26382
26383 * config/v850/rtems.h (ASM_SPEC): Pass -m8byte-align and -mgcc-abi
26384 on to assembler.
26385
a57fc743
JJ
263862013-01-10 Jakub Jelinek <jakub@redhat.com>
26387
26388 PR tree-optimization/55921
26389 * tree-complex.c (expand_complex_asm): New function.
26390 (expand_complex_operations_1): Call it for GIMPLE_ASM.
26391
0ff4390d
AK
263922013-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
26393
26394 PR target/55718
26395 * config/s390/s390.c (s390_symref_operand_p)
26396 (s390_loadrelative_operand_p): Merge the two functions.
26397 (s390_check_qrst_address, print_operand_address): Add parameters
26398 to s390_loadrelative_operand_p invokation.
26399 (s390_check_symref_alignment): Use s390_loadrelative_operand_p.
26400 (s390_reload_larl_operand, s390_secondary_reload): Use
26401 s390_loadrelative_operand_p instead of s390_symref_operand_p.
26402 (legitimize_pic_address): Handle @GOTENT and @PLT + addend.
26403
6f557e0e
MS
264042013-01-09 Mike Stump <mikestump@comcast.net>
26405
26406 * dse.c (record_store): Remove unnecessary assert.
26407
7770c9e9
JH
264082013-01-09 Jan Hubicka <jh@suse.cz>
26409
26410 PR tree-optimization/55569
26411 * cfgloopmanip.c (scale_loop_profile): Make ITERATION_BOUND gcov_type.
26412 * cfgloop.h (scale_loop_profile): Likewise.
26413
a19b1432
JH
264142013-01-09 Jan Hubicka <jh@suse.cz>
26415
26416 PR lto/45375
ddf9322d
UB
26417 * ipa-inline.c (ipa_inline): Remove extern inlines and virtual
26418 functions.
a19b1432
JH
26419 * cgraphclones.c (cgraph_clone_node): Cpoy also LTO file data.
26420
9a002da8
RS
264212013-01-09 Richard Sandiford <rdsandiford@googlemail.com>
26422
26423 PR middle-end/55114
26424 * expr.h (maybe_emit_group_store): Declare.
26425 * expr.c (maybe_emit_group_store): New function.
26426 * builtins.c (expand_builtin_int_roundingfn): Call it.
26427 (expand_builtin_int_roundingfn_2): Likewise.
26428
511dcace
VM
264292013-01-09 Vladimir Makarov <vmakarov@redhat.com>
26430
e1f2b729 26431 PR rtl-optimization/55829
511dcace
VM
26432 * lra-constraints.c (match_reload): Add code for absent output.
26433 (curr_insn_transform): Add code for reloads of matched inputs
26434 without output.
26435
7b0fe4f4
UB
264362013-01-09 Uros Bizjak <ubizjak@gmail.com>
26437
26438 * config/i386/sse.md (*vec_interleave_highv2df): Change mode
26439 attribute of movddup insn to DF.
26440 (*vec_interleave_lowv2df): Ditto.
26441 (vec_dupv2df): Ditto.
26442
870ca331
JH
264432013-01-09 Jan Hubicka <jh@suse.cz>
26444
26445 PR tree-optimiation/55875
26446 * tree-ssa-loop-niter.c (number_of_iterations_cond): Add
26447 EVERY_ITERATION parameter.
7b0fe4f4 26448 (number_of_iterations_exit): Check if exit is executed every iteration.
870ca331
JH
26449 (idx_infer_loop_bounds): Similarly here.
26450 (n_of_executions_at_most): Simplify
26451 to only test for cases where statement is dominated by the
7b0fe4f4 26452 particular bound; handle correctly the "postdominance" test.
870ca331
JH
26453 (scev_probably_wraps_p): Use max loop iterations info
26454 as a global bound first.
26455
6f575fe4 264562013-01-09 Nguyen Duy Dat <dat.nguyen.yn@rvc.renesas.com>
3cd232b5
NDD
26457 Nick Clifton <nickc@redhat.com>
26458
26459 * config/v850/v850.md (cbranchsf4): New pattern.
26460 (cstoresf4): New pattern.
26461 (cbranchdf4): New pattern.
26462 (cstoredf4): New pattern.
26463 (movsicc): Disallow floating point comparisons.
26464 (cmpsf_le_insn): Fix order of operators.
26465 (cmpsf_lt_insn): Likewise.
26466 (cmpsf_eq_insn): Likewise.
26467 (cmpdf_le_insn): Likewise.
26468 (cmpdf_lt_insn): Likewise.
26469 (cmpdf_eq_insn): Likewise.
26470 (cmpsf_ge_insn): Use LE comparison.
26471 (cmpdf_ge_insn): Likewise.
26472 (cmpsf_gt_insn): Use LT comparison.
26473 (cmpdf_gt_insn): Likewise.
26474 (cmpsf_ne_insn): Delete pattern.
26475 (cmpdf_ne_insn): Delete pattern.
26476 * config/v850/v850.c (v850_gen_float_compare): Use
26477 gen_cmpdf_eq_insn for NE comparison.
26478 (v850_float_z_comparison_operator)
26479 (v850_float_nz_comparison_operator): Move from here ...
26480 * config/v850/predicates.md: ... to here. Move GT and GE
26481 comparisons into v850_float_z_comparison_operator.
26482 * config/v850/v850-protos.h (v850_float_z_comparison_operator):
26483 Delete prototype.
26484 (v850_float_nz_comparison_operator): Likewise.
26485
f0d54148
JDA
264862013-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
26487
26488 * config/pa/pa.c (pa_emit_move_sequence): Replace calls to gen_insv
26489 with calls to gen_insvsi/gen_insvdi.
26490
8f01beca
VK
264912013-01-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
26492
26493 * config/i386/i386.c (initial_ix86_tune_features): Set up
26494 X86_TUNE_AVX128_OPTIMAL for m_BTVER2.
26495
2aa579ad
JJ
264962013-01-09 Steven Bosscher <steven@gcc.gnu.org>
26497 Jakub Jelinek <jakub@redhat.com>
26498
26499 PR tree-optimization/48189
26500 * predict.c (predict_loops): If max is 0, don't call compare_tree_int.
26501 If nitercst is 0, don't predict the exit edge.
26502
6edc3e32 265032013-01-08 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
01a3a324
N
26504
26505 * config/aarch64/aarch64.c (aarch64_print_operand): Replace %r
26506 in asm_fprintf with reg_names.
26507 (aarch64_print_operand_address): Likewise.
26508 (aarch64_return_addr): Likewise.
26509 * config/aarch64/aarch64.h (ASM_FPRINTF_EXTENSIONS): Remove.
26510
f6f94d94
JDA
265112013-01-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
26512
26513 * config/pa/pa.h (VAL_U6_BITS_P): Define.
26514 (INT_U6_BITS): Likewise.
26515 * config/pa/predicates.md (uint6_operand): New predicate.
26516 (shift5_operand, shift6_operand): Likewise.
26517 * config/pa/pa.md (lshrsi3, rotrsi3): Use shift5_operand instead of
26518 arith32_operand.
26519 (lshrdi3): Use shift6_operand.
26520 (shrpsi4, shrpdi4): New insn patterns.
26521 (extzv): Delete expander.
26522 (extzvsi, extzvdi): New expanders. Use uint5_operand and uint6_operand
26523 predicates in unamed zero extract patterns. Tighten common constraint.
26524 (extv): Delete expander.
26525 (extvsi, extvdi): New expanders. Use uint5_operand and uint6_operand
26526 predicates in unamed sign extract patterns. Tighten common constraint.
26527 (insv): Delete expander.
26528 (insvsi, insvdi): New expanders. Use uint5_operand and uint6_operand
26529 predicates in unamed insert patterns. Tighten common constraint.
26530 Change uint32_operand predicate to uint6_operand predicate in unamed
26531 DImode pattern to insert constant values of type 1...1xxxx.
26532
36b72910
JH
265332013-01-04 Jan Hubicka <jh@suse.cz>
26534
26535 PR tree-optimization/55823
7b0fe4f4
UB
26536 * ipa-prop.c (update_indirect_edges_after_inlining): Fix ordering
26537 issue.
36b72910 26538
47876a2a 265392013-01-08 Jakub Jelinek <jakub@redhat.com>
c6d851b9
JJ
26540 Uros Bizjak <ubizjak@gmail.com>
26541
26542 PR rtl-optimization/55845
26543 * df-problems.c (can_move_insns_across): Stop scanning at
26544 volatile_insn_p source instruction or give up if
26545 across_from .. across_to range contains any volatile_insn_p
26546 instructions.
26547
4369c11e
TB
265482013-01-08 Tejas Belagod <tejas.belagod@arm.com>
26549
7b0fe4f4
UB
26550 * config/aarch64/aarch64-simd.md (vec_init<mode>): New.
26551 * config/aarch64/aarch64-protos.h (aarch64_expand_vector_init):
26552 Declare.
4369c11e 26553 * config/aarch64/aarch64.c (aarch64_simd_dup_constant,
7b0fe4f4 26554 aarch64_simd_make_constant, aarch64_expand_vector_init): New.
4369c11e 26555
aeb7e7c1
JJ
265562013-01-08 Jakub Jelinek <jakub@redhat.com>
26557
26558 PR fortran/55341
26559 * asan.c (asan_clear_shadow): New function.
26560 (asan_emit_stack_protection): Use it.
26561
a02ad1aa
TB
265622013-01-08 Tejas Belagod <tejas.belagod@arm.com>
26563
26564 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_<su>mult_lo_<mode>,
26565 aarch64_simd_vec_<su>mult_hi_<mode>): Separate instruction and operand
26566 with tab instead of space.
26567
f90d87f5
NC
265682013-01-08 Nick Clifton <nickc@redhat.com>
26569
26570 * config/rl78/rl78.c (rl78_expand_prologue): Always select
26571 register bank 0 at the start of an interrupt handler.
83ffd964
NC
26572 * config/rl78/rl78.md (mulsi3_g13): Correct values for MDBL and
26573 MDBH registers.
f90d87f5 26574
385eb93d
JG
265752013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
26576
26577 * config/aarch64/aarch64-simd.md
26578 (aarch64_simd_bsl<mode>_internal): Add floating-point modes.
26579 (aarch64_simd_bsl): Likewise.
26580 (aarch64_vcond_internal<mode>): Likewise.
26581 (vcond<mode><mode>): Likewise.
26582 (aarch64_cm<cmp><mode>): Fix constraints, add new modes.
26583 * config/aarch64/iterators.md (V_cmp_result): Add V2DF.
26584
4dcd1054
JG
265852013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
26586
26587 * config/aarch64/aarch64-builtins.c
26588 (aarch64_builtin_vectorized_function): Handle sqrt, sqrtf.
26589
4267a4a6
MJ
265902013-01-08 Martin Jambor <mjambor@suse.cz>
26591
26592 PR debug/55579
26593 * tree-sra.c (analyze_access_subtree): Return true also after
26594 potentially creating a debug-only replacement.
26595
5f4e6de3
JJ
265962013-01-08 Jakub Jelinek <jakub@redhat.com>
26597
3138f224
JJ
26598 PR middle-end/55890
26599 * tree-ssa-ccp.c (evaluate_stmt): Use gimple_call_builtin_p.
26600
5f4e6de3
JJ
26601 PR tree-optimization/54120
26602 * tree-vrp.c (range_fits_type_p): Don't allow
26603 src_precision < precision from signed vr to unsigned_p
26604 if vr->min or vr->max is negative.
26605 (simplify_float_conversion_using_ranges): Test can_float_p
26606 against CODE_FOR_nothing.
26607
f3ef18ff
JJ
266082013-01-08 Jakub Jelinek <jakub@redhat.com>
26609 Richard Biener <rguenther@suse.de>
26610
26611 PR middle-end/55851
26612 * fold-const.c (int_binop_types_match_p): Allow all INTEGRAL_TYPE_P
26613 types instead of just INTEGER_TYPE types.
26614
25c210f9
MK
266152013-01-07 Mark Kettenis <kettenis@openbsd.org>
26616
26617 * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT,
26618 TF_SIZE): Define.
f90d87f5 26619
81826a7b
SE
266202013-01-07 Steve Ellcey <sellcey@mips.com>
26621
26622 PR target/42661
26623 * config/mips/mips.opt: Change mad to mmad to match documentation.
26624
35678514
GJL
266252013-01-07 Georg-Johann Lay <avr@gjlay.de>
26626
26627 PR target/55897
26628 * doc/extend.texi (AVR Named Address Spaces): __memx goes into
26629 .progmemx.data now.
26630
e5669488
GJL
266312013-01-07 Georg-Johann Lay <avr@gjlay.de>
26632
26633 PR target/55897
26634 * config/avr/avr.h (ADDR_SPACE_COUNT): New enum.
26635 (avr_addrspace_t): Add .section_name field.
26636 * config/avr/avr.c (progmem_section): Use ADDR_SPACE_COUNT as
26637 array size.
26638 (avr_addrspace): Same. Initialize .section_name. Remove last
26639 NULL entry. Put __memx into .progmemx.data.
26640 (progmem_section_prefix): Remove.
26641 (avr_asm_init_sections): No need to initialize progmem_section.
26642 (avr_asm_named_section): Use avr_addrspace[].section_name to get
26643 section name prefix.
26644 (avr_asm_select_section): Ditto. And use get_unnamed_section to
26645 retrieve the progmem section.
26646 * avr-c.c (avr_cpu_cpp_builtins): Use ADDR_SPACE_COUNT as loop
26647 boundary to run over avr_addrspace[].
26648 (avr_register_target_pragmas): Ditto.
26649
656e6f37
JJ
266502013-01-06 Jakub Jelinek <jakub@redhat.com>
26651
26652 * varasm.c (output_constant_def_contents): For asan_protect_global
26653 protected strings, adjust DECL_ALIGN if needed, before testing for
26654 anchored symbols.
26655 (place_block_symbol): Adjust size for asan protected STRING_CSTs if
26656 TREE_CONSTANT_POOL_ADDRESS_P. Increase alignment for asan protected
26657 normal decls.
26658 (output_object_block): For asan protected decls, emit asan padding
26659 after their contents.
26660 * asan.c (asan_protect_global): Don't check TREE_ASM_WRITTEN here.
26661 (asan_finish_file): Test it here instead.
26662
6edc3e32
UB
266632013-01-07 Nick Clifton <nickc@redhat.com>
26664 Matthias Klose <doko@debian.org>
26665 Doug Kwan <dougkwan@google.com>
26666 H.J. Lu <hongjiu.lu@intel.com>
b352afba
NC
26667
26668 PR driver/55470
26669 * collect2.c (main): Support -fuse-ld=bfd and -fuse-ld=gold.
26670
26671 * common.opt: Add fuse-ld=bfd and fuse-ld=gold.
26672
26673 * gcc.c (LINK_COMMAND_SPEC): Pass -fuse-ld=* to collect2.
26674
7b0fe4f4 26675 * opts.c (comman_handle_option): Ignore -fuse-ld=bfd and -fuse-ld=gold.
b352afba
NC
26676
26677 * doc/invoke.texi: Document -fuse-ld=bfd and -fuse-ld=gold.
26678
2a095093
GJL
266792013-01-07 Georg-Johann Lay <avr@gjlay.de>
26680
f3b503f4 26681 PR target/54461
2a095093
GJL
26682 * doc/install.texi (Cross-Compiler-Specific Options): Document
26683 --with-avrlibc.
26684
383f9b34
TB
266852013-01-07 Tejas Belagod <tejas.belagod@arm.com>
26686
26687 * config/aarch64/arm_neon.h (vmovn_high_is16, vmovn_high_s32,
26688 vmovn_high_s64, vmovn_high_u16, vmovn_high_u32, vmovn_high_u64,
26689 vqmovn_high_s16, vqmovn_high_s32, vqmovn_high_s64, vqmovn_high_u16,
26690 vqmovn_high_u32, vqmovn_high_u64, vqmovun_high_s16, vqmovun_high_s32,
26691 vqmovun_high_s64): Fix source operand number and update copyright.
26692
3626621a
RB
266932013-01-07 Richard Biener <rguenther@suse.de>
26694
26695 PR middle-end/55890
26696 * gimple.h (gimple_call_builtin_p): New overload.
26697 * gimple.c (validate_call): New function.
26698 (gimple_call_builtin_p): Likewise.
26699 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
26700 Use gimple_call_builtin_p.
26701 (find_func_clobbers): Likewise.
26702 * tree-ssa-strlen.c (adjust_last_stmt): Likewise.
26703 (strlen_optimize_stmt): Likewise.
26704
8b2ea410
JG
267052013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
26706
26707 * config/aarch64/arm_neon.h (vld1_dup_*): Make argument const.
26708 (vld1q_dup_*): Likewise.
26709 (vld1_*): Likewise.
26710 (vld1q_*): Likewise.
26711 (vld1_lane_*): Likewise.
26712 (vld1q_lane_*): Likewise.
26713
9713d329
RB
267142013-01-07 Richard Biener <rguenther@suse.de>
26715
26716 * lto-streamer.h (LTO_minor_version): Bump to 2.
26717
3520f7cc
JG
267182013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
26719
26720 * config/aarch64/aarch64-protos.h
26721 (aarch64_const_double_zero_rtx_p): Rename to...
26722 (aarch64_float_const_zero_rtx_p): ...this.
26723 (aarch64_float_const_representable_p): New.
26724 (aarch64_output_simd_mov_immediate): Likewise.
26725 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): Refactor
26726 move immediate case.
26727 * config/aarch64/aarch64.c
26728 (aarch64_const_double_zero_rtx_p): Rename to...
26729 (aarch64_float_const_zero_rtx_p): ...this.
26730 (aarch64_print_operand): Allow printing of new constants.
26731 (aarch64_valid_floating_const): New.
26732 (aarch64_legitimate_constant_p): Check for valid floating-point
26733 constants.
26734 (aarch64_simd_valid_immediate): Likewise.
26735 (aarch64_vect_float_const_representable_p): New.
26736 (aarch64_float_const_representable_p): Likewise.
26737 (aarch64_simd_imm_zero_p): Also allow for floating-point 0.0.
26738 (aarch64_output_simd_mov_immediate): New.
26739 * config/aarch64/aarch64.md (*movsf_aarch64): Add new alternative.
26740 (*movdf_aarch64): Likewise.
26741 * config/aarch64/constraints.md (Ufc): New.
26742 (Y): call aarch64_float_const_zero_rtx.
26743 * config/aarch64/predicates.md (aarch64_fp_compare_operand): New.
26744
e167c04d
RB
267452013-01-07 Richard Biener <rguenther@suse.de>
26746
26747 PR tree-optimization/55888
26748 PR tree-optimization/55862
26749 * tree-ssa-pre.c (phi_translate_1): Revert previous change.
26750 (valid_in_sets): Check if a NAME has a leader in AVAIL_OUT,
26751 not if it is contained therein.
26752
0139aaab
GJL
267532013-01-07 Georg-Johann Lay <avr@gjlay.de>
26754
26755 * config/avr/t-avr: Typo.
26756
4a176b23
GJL
267572013-01-07 Georg-Johann Lay <avr@gjlay.de>
26758
26759 PR55243
26760 * config/avr/t-avr: Don't automatically rebuild
26761 $(srcdir)/config/avr/t-multilib
26762 $(srcdir)/config/avr/avr-tables.opt
26763 $(srcdir)/doc/avr-mmcu.texi
26764 (avr-mcus): New phony target to build them on request.
26765 (s-avr-mlib, s-avr-mmcu-texi): Remove.
26766 * avr/avr-mcus.def: Adjust comments.
26767
c7afdc98
UB
267682013-01-07 Uros Bizjak <ubizjak@gmail.com>
26769
26770 * config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Remove.
26771
1ab05c31
RS
267722013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
26773
26774 * file-find.c, file-find.h, realmpfr.c: Add FSF as copyright holder.
26775
488e3acc
RS
267762013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
26777
26778 * config/tilepro/gen-mul-tables.cc: Put copyright on one line.
26779
a89599d2
DE
267802013-01-05 David Edelsohn <dje.gcc@gmail.com>
26781
26782 * config/rs6000/aix53.h (LIB_SPEC): Add -lpthreads when compiling
26783 to generate profiling.
26784 * config/rs6000/aix64.h (LIB_SPEC): Same.
26785
70f09188
AP
267862013-01-04 Andrew Pinski <apinski@cavium.com>
26787
26788 * config/aarch64/aarch64.c (aarch64_fixed_condition_code_regs):
26789 New function.
26790 (TARGET_FIXED_CONDITION_CODE_REGS): Define.
26791
918d445f
UB
267922013-01-04 Uros Bizjak <ubizjak@gmail.com>
26793
26794 * config/i386/i386.c (ix86_legitimize_address): Call convert_to_mode
26795 unconditionally.
26796 (ix86_expand_move): Ditto.
26797 (ix86_zero_extend_to_Pmode): Ditto.
26798 (ix86_expand_call): Ditto.
26799 (ix86_expand_special_args_builtin): Ditto.
26800 (ix86_expand_builtin): Ditto.
26801
361618ec
RB
268022013-01-04 Richard Biener <rguenther@suse.de>
26803
26804 PR tree-optimization/55862
26805 * tree-ssa-pre.c (phi_translate_1): Valueize SSA names after
26806 translating them through PHI nodes.
26807
87eab554
MJ
268082013-01-04 Martin Jambor <mjambor@suse.cz>
26809
26810 PR tree-optimization/55755
26811 * tree-sra.c (sra_modify_assign): Do not check that an access has no
26812 children when trying to avoid producing a VIEW_CONVERT_EXPR.
26813
33879b9f
MP
268142013-01-04 Marek Polacek <polacek@redhat.com>
26815
26816 PR middle-end/55859
26817 * opts.c (default_options_optimization): Clarify error message.
26818
3068819a
RB
268192013-01-04 Richard Biener <rguenther@suse.de>
26820
26821 PR middle-end/55863
26822 * fold-const.c (split_tree): Undo -X - 1 to ~X folding for
26823 reassociation.
26824
0e4ae794
JDA
268252013-01-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
26826
26827 PR target/53789
26828 * config/pa/pa.md (movsi): Revert previous change.
e58d2e48
JDA
26829 * config/pa/pa.c (pa_legitimate_constant_p): Reject all TLS symbol
26830 references.
0e4ae794 26831
65c88cef
RH
268322013-01-03 Richard Henderson <rth@redhat.com>
26833
26834 * config/i386/i386.c (ix86_expand_move): Always assign to op1
26835 after eliminating TLS symbols.
26836
8ac16127
MG
268372013-01-03 Marc Glisse <marc.glisse@inria.fr>
26838
26839 PR bootstrap/50167
26840 * graphite-interchange.c (pdr_stride_in_loop): Use gmp_fprintf.
26841 * graphite-poly.c (debug_gmp_value): Likewise.
26842
bb664f09
UB
268432013-01-03 Uros Bizjak <ubizjak@gmail.com>
26844
26845 PR target/55712
26846 * config/i386/i386-c.c (ix86_target_macros_internal): Depending on
26847 selected code model, define __code_mode_small__, __code_model_medium__,
26848 __code_model_large__, __code_model_32__ or __code_model_kernel__.
26849 * config/i386/cpuid.h (__cpuid, __cpuid_count) [__i386__]: Prefix
26850 xchg temporary register with %k. Declare temporary register as
26851 early clobbered.
26852 [__x86_64__]: For medium and large code models, preserve %rbx register.
26853
bcf1ef00
RB
268542013-01-03 Richard Biener <rguenther@suse.de>
26855
0506634a 26856 * tree-data-ref.c (dump_conflict_function): Use less vertical spacing.
bcf1ef00
RB
26857 (dump_subscript): Adjust.
26858 (finalize_ddr_dependent): Do not dump redundant info.
26859 (analyze_siv_subscript): Adjust.
26860 (subscript_dependence_tester): Likewise.
26861 (compute_affine_dependence): Likewise.
26862
59fd17e3
RB
268632013-01-03 Richard Biener <rguenther@suse.de>
26864
26865 Revert
26866 2013-01-03 Richard Biener <rguenther@suse.de>
26867
26868 PR tree-optimization/55857
26869 * tree-vect-stmts.c (vectorizable_load): Do not setup
26870 re-alignment for invariant loads.
26871
26872 2013-01-02 Richard Biener <rguenther@suse.de>
26873
26874 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
0506634a 26875 invariant load do not generate a vector load from the scalar location.
59fd17e3 26876
595c2679
RB
268772013-01-03 Richard Biener <rguenther@suse.de>
26878
26879 * tree-vect-loop.c (vect_analyze_loop_form): Clarify reason
26880 for not vectorizing.
26881 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
26882 not build INDIRECT_REFs, call get_name once only.
26883 (vect_create_data_ref_ptr): Likewise. Dump base object kind
26884 based on DR_BASE_OBJECT, not DR_BASE_ADDRESS.
26885
90bb7d7a
RB
268862013-01-03 Richard Biener <rguenther@suse.de>
26887
26888 PR tree-optimization/55857
26889 * tree-vect-stmts.c (vectorizable_load): Do not setup
26890 re-alignment for invariant loads.
26891
f09b77ca
RB
268922013-01-03 Richard Biener <rguenther@suse.de>
26893
26894 PR lto/55848
26895 * lto-symtab.c (lto_symtab_merge_decls_1): As last resort, always
26896 prefer a built-in decl.
26897
3461a16e
JJ
268982013-01-03 Jakub Jelinek <jakub@redhat.com>
26899
df8e2b4f
JJ
26900 * gcc.c (process_command): Update copyright notice dates.
26901 * gcov.c (print_version): Likewise.
26902 * gcov-dump.c (print_version): Likewise.
26903
3461a16e
JJ
26904 PR rtl-optimization/55838
26905 * loop-iv.c (iv_number_of_iterations): Call lowpart_subreg on
26906 iv0.step, iv1.step and step.
26907
8b5546d6
JJ
269082013-01-03 Jakub Jelinek <jakub@redhat.com>
26909 Marc Glisse <marc.glisse@inria.fr>
26910
26911 PR tree-optimization/55832
26912 * fold-const.c (fold_binary_loc): For ABS_EXPR<x> >= 0 and
26913 ABS_EXPR<x> < 0 folding use constant_boolean_node instead of
26914 integer_{one,zero}_node.
26915
8ab1d2e9
JJ
269162013-01-03 Jakub Jelinek <jakub@redhat.com>
26917
26918 PR debug/54402
26919 * params.def (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE): New param.
26920 * var-tracking.c (reverse_op): Don't add reverse ops to
26921 VALUEs that have already
0506634a 26922 PARAM_VALUE (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE) or longer locs list.
8ab1d2e9 26923
5b9ad1d4
GP
269242013-01-02 Gerald Pfeifer <gerald@pfeifer.com>
26925
26926 * doc/contrib.texi: Note years as release manager for Mark Mitchell.
26927
e25a6711
TJ
269282013-01-02 Teresa Johnson <tejohnson@google.com>
26929
26930 * dumpfile.c (dump_loc): Print filename with location.
26931 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Use
26932 new location_t parameter to emit complete unroll message with
26933 new dump framework.
26934 (canonicalize_loop_induction_variables): Compute loops location
26935 and pass to try_unroll_loop_completely.
26936 * loop-unroll.c (report_unroll_peel): New function.
26937 (peel_loops_completely): Use new dump format with location
26938 for main dumpfile message, and invoke report_unroll_peel on success.
26939 (decide_unrolling_and_peeling): Ditto.
26940 (decide_peel_once_rolling): Remove old dumpfile message subsumed
26941 by report_unroll_peel.
26942 (decide_peel_completely): Ditto.
26943 (decide_unroll_constant_iterations): Ditto.
26944 (decide_unroll_runtime_iterations): Ditto.
26945 (decide_peel_simple): Ditto.
26946 (decide_unroll_stupid): Ditto.
26947 * cfgloop.c (get_loop_location): New function.
26948 * cfgloop.h (get_loop_location): Declare.
26949
77878621
ST
269502013-01-02 Sriraman Tallam <tmsriram@google.com>
26951
26952 * config/i386/i386.c (fold_builtin_cpu): Remove unnecessary checks for
26953 NULL.
26954
9e65d03e
JDA
269552013-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
26956
26957 PR middle-end/55198
26958 * expr.c (expand_expr_real_1): Don't use bitfield extraction for non
26959 BLKmode objects when EXPAND_MEMORY is specified.
26960
6a7da30f
ST
269612013-01-02 Sriraman Tallam <tmsriram@google.com>
26962
26963 * config/i386/i386.c (ix86_get_function_versions_dispatcher): Fix bug
26964 in loop predicate.
26965 (fold_builtin_cpu): Do not share cpu model decls across statements.
26966
e78167f2
JM
269672013-01-02 Jason Merrill <jason@redhat.com>
26968
26969 PR c++/55804
26970 * tree.c (build_array_type_1): Revert earlier change.
26971
8c075fb4
YZ
269722013-01-02 Yufeng Zhang <yufeng.zhang@arm.com>
26973
26974 * config/aarch64/aarch64-cores.def: Add entries for "cortex-a53" and
26975 "cortex-a57".
26976 * config/aarch64/aarch64-tune.md: Re-generate.
26977
0682ed3e
RB
269782013-01-02 Richard Biener <rguenther@suse.de>
26979
26980 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
0506634a 26981 invariant load do not generate a vector load from the scalar location.
0682ed3e 26982
b8f6a302
RB
269832013-01-02 Richard Biener <rguenther@suse.de>
26984
26985 PR bootstrap/55784
26986 * configure.ac: Add $GMPINC to CFLAGS/CXXFLAGS.
26987 * configure: Regenerate.
26988
04b80dbb
RS
269892013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
26990
26991 * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2)
26992 (expand_builtin_mathfn_ternary, expand_builtin_mathfn_3)
26993 (expand_builtin_int_roundingfn_2): Keep the original target around
26994 for the fallback case.
26995
635b0b0c
RS
269962013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
26997
26998 * tree-vrp.c (range_fits_type_p): Require the MSB of the double_int
26999 to be clear for sign changes.
27000
42d57399
JH
270012013-01-01 Jan Hubicka <jh@suse.cz>
27002
27003 * ipa-inline-analysis.c: Fix formatting.
27004
5bb6669d
JJ
270052013-01-01 Jakub Jelinek <jakub@redhat.com>
27006
27007 PR tree-optimization/55831
27008 * tree-vect-loop.c (get_initial_def_for_induction): Use
27009 gsi_after_labels instead of gsi_start_bb.
ad41bd84 27010\f
86a2db33 27011Copyright (C) 2013 Free Software Foundation, Inc.
ad41bd84
JM
27012
27013Copying and distribution of this file, with or without modification,
27014are permitted in any medium without royalty provided the copyright
27015notice and this notice are preserved.