]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/ChangeLog
vsx.md (vsx_concat_<mode>): Adjust output for LE.
[thirdparty/gcc.git] / gcc / ChangeLog
1 2013-10-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2
3 * config/rs6000/vsx.md (vsx_concat_<mode>): Adjust output for LE.
4 (vsx_concat_v2sf): Likewise.
5
6 2013-10-16 James Greenhalgh <james.greenhalgh@arm.com>
7
8 * config/aarch64/aarch64.md
9 (*mov<mode>_aarch64): Fix output template for DUP (element) Scalar.
10
11 2013-10-16 Andrew MacLeod <amacleod@redhat.com>
12
13 PR tree-optimization/58697
14 * cfgloop.c (get_estimated_loop_iterations_int): Rename from
15 estimated_loop_iterations_int.
16 (max_stmt_executions_int): Call get_max_loop_iterations_int.
17 (get_max_loop_iterations_int): New. HWINT version of
18 get_max_loop_iterations.
19 * cfgloop.h: Add prototypes.
20 * loop-iv.c (find_simple_exit): call get_estimated_loop_iterations_int.
21 * loop-unroll.c (decide_peel_once_rolling): Call
22 get_estimated_loop_iterations_int.
23 * tree-ssa-loop-niter.c (estimated_loop_iterations_int): Add back.
24 * tree-ssa-loop-niter.h: Tweak prototypes.
25
26 2013-10-16 David Malcolm <dmalcolm@redhat.com>
27
28 * gengtype-parse.c (struct_field_seq): Ignore access-control
29 keywords ("public:" etc).
30
31 2013-10-16 Marcus Shawcroft <marcus.shawcroft@arm.com>
32
33 * config/aarch64/aarch64.c (aarch64_regno_regclass): Classify
34 FRAME_POINTER_REGNUM and ARG_POINTER_REGNUM as POINTER_REGS.
35
36 2013-10-16 Yvan Roux <yvan.roux@linaro.org>
37
38 * config/arm/arm.opt (mlra): New option.
39 * config/arm/arm.c (arm_lra_p): New function.
40 (TARGET_LRA_P): Define.
41
42 2013-10-16 Paulo Matos <pmatos@broadcom.com>
43
44 * tree-core.h (tree_code_name): Remove.
45 * tree.h (get_tree_code_name): New prototype.
46 * tree.c (tree_code_name): Make static.
47 (get_tree_code_name): New function.
48 (dump_tree_statistics, tree_check_failed, tree_not_check_failed,
49 tree_class_check_failed, tree_range_check_failed,
50 tree_not_class_check_failed, omp_clause_check_failed,
51 tree_contains_struct_check_failed, tree_operand_check_failed): Use new
52 wrapper get_tree_code_name instead of calling tree_code_name directly.
53 * tree-vrp.c (dump_asserts_for): Likewise.
54 * tree-dump.c (dequeue_and_dump): Likewise.
55 * tree-pretty-print.c (do_niy, dump_generic_node): Likewise.
56 * tree-pretty-print.h (pp_unsupported_tree): Likewise.
57 * lto-streamer-out.c (lto_write_tree, DFS_write_tree): Likewise.
58 * tree-ssa-dom.c (print_expr_hash_elt): Likewise.
59 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
60 dump_ternary_rhs, dump_gimple_assign, dump_gimple_cond,
61 dump_gimple_omp_for): Likewise.
62 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Likewise.
63 * tree-ssa-pre.c (print_pre_expr): Likewise.
64 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Likewise.
65 * print-tree.c (print_node_brief, print_node): Likewise.
66 * gimple.c (gimple_check_failed): Likewise.
67 * lto-streamer.c (lto_tag_name, print_lto_report): Likewise.
68 * config/frv/frv.c (frv_init_cumulative_args): Likewise.
69 * config/mep/mep.c (mep_validate_vliw): Likewise.
70 * config/iq2000/iq2000.c (init_cumulative_args): Likewise.
71 * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
72
73 2013-10-16 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
74
75 * config/i386/i386.c (ix86_option_override_internal): Enable FMA4
76 for AMD bdver3.
77
78 2013-10-16 Hans-Peter Nilsson <hp@axis.com>
79
80 * config/cris/t-elfmulti (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
81 (MULTILIB_MATCHES): Add multilib for -march=v8.
82
83 2013-10-15 Sriraman Tallam <tmsriram@google.com>
84
85 PR target/57756
86 * optc-save-gen.awk: Add extra parameter to the save and restore
87 target calls.
88 * opth-gen.awk: Generate new TARGET_* macros to accept a parameter.
89 * tree.c (build_optimization_node): New parameter. Add extra parameter
90 to call to cl_optimization_save.
91 (build_target_option_node): New parameter. Add extra parameter
92 to call to cl_target_option_save.
93 * tree.h (build_optimization_node): New parameter.
94 (build_target_option_node): New parameter.
95 * c-family/c-common.c (handle_optimize_attribute): Fix calls to
96 build_optimization_node and build_target_option_node.
97 * c-family/c-pragma.c (handle_pragma_optimize): Ditto.
98 (handle_pragma_push_options): Ditto.
99 * toplev.c (process_options): Ditto.
100 * opts.c (init_options_struct): Check for opts_set non-null.
101 * target.def (target_option.save): New parameter.
102 (target_option.restore): New parameter.
103 * tm.texi: Generate.
104 * config/i386/i386-c.c (ix86_target_macros_internal): Ditto.
105 (ix86_pragma_target_parse): Ditto.
106 * config/i386/i386-protos.h (ix86_valid_target_attribute_tree): New
107 parameters.
108 * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix calls
109 to build_optimization_node and build_target_option_node.
110 (rs6000_valid_attribute_p): Ditto.
111 (rs6000_pragma_target_parse): Ditto.
112 * config/i386/i386.opt (x_ix86_target_flags_explicit): New TargetSave
113 data.
114 * config/i386/i386.h:
115 TARGET_64BIT_P: New Macro
116 TARGET_MMX_P: New Macro.
117 TARGET_3DNOW_P: New Macro.
118 TARGET_3DNOW_A_P: New Macro.
119 TARGET_SSE_P: New Macro.
120 TARGET_SSE2_P: New Macro.
121 TARGET_SSE3_P: New Macro.
122 TARGET_SSSE3_P: New Macro.
123 TARGET_SSE4_1_P: New Macro.
124 TARGET_SSE4_2_P: New Macro.
125 TARGET_AVX_P: New Macro.
126 TARGET_AVX2_P: New Macro.
127 TARGET_AVX512F_P: New Macro.
128 TARGET_AVX512PF_P: New Macro.
129 TARGET_AVX512ER_P: New Macro.
130 TARGET_AVX512CD_P: New Macro.
131 TARGET_FMA_P: New Macro.
132 TARGET_SSE4A_P: New Macro.
133 TARGET_FMA4_P: New Macro.
134 TARGET_XOP_P: New Macro.
135 TARGET_LWP_P: New Macro.
136 TARGET_ABM_P: New Macro.
137 TARGET_BMI_P: New Macro.
138 TARGET_BMI2_P: New Macro.
139 TARGET_LZCNT_P: New Macro.
140 TARGET_TBM_P: New Macro.
141 TARGET_POPCNT_P: New Macro.
142 TARGET_SAHF_P: New Macro.
143 TARGET_MOVBE_P: New Macro.
144 TARGET_CRC32_P: New Macro.
145 TARGET_AES_P: New Macro.
146 TARGET_PCLMUL_P: New Macro.
147 TARGET_CMPXCHG16B_P: New Macro.
148 TARGET_FSGSBASE_P: New Macro.
149 TARGET_RDRND_P: New Macro.
150 TARGET_F16C_P: New Macro.
151 TARGET_RTM_P: New Macro.
152 TARGET_HLE_P: New Macro.
153 TARGET_RDSEED_P: New Macro.
154 TARGET_PRFCHW_P: New Macro.
155 TARGET_ADX_P: New Macro.
156 TARGET_FXSR_P: New Macro.
157 TARGET_XSAVE_P: New Macro.
158 TARGET_XSAVEOPT_P: New Macro.
159 TARGET_LP64_P: New Macro.
160 TARGET_X32_P: New Macro.
161 TARGET_FPMATH_DEFAULT_P: New Macro.
162 TARGET_FLOAT_RETURNS_IN_80387_P: New Macro.
163 * config/i386/i386.c (ix86_option_override_internal): New parameters.
164 opts and opts_set.
165 Change ix86_tune_string to access opts->x_ix86_tune_string.
166 Change ix86_isa_flags to access opts->x_ix86_isa_flags.
167 Change ix86_arch_string to access opts->x_ix86_arch_string.
168 Change ix86_stringop_alg to access opts->x_ix86_stringop_alg.
169 Change ix86_pmode to access opts->x_ix86_pmode.
170 Change ix86_abi to access opts->x_ix86_abi.
171 Change ix86_cmodel to access opts->x_ix86_cmodel.
172 Change ix86_asm_dialect to access opts->x_ix86_asm_dialect.
173 Change ix86_isa_flags_explicit to access
174 opts->x_ix86_isa_flags_explicit.
175 Change ix86_dump_tunes to access opts->x_ix86_dump_tunes.
176 Change ix86_regparm to access opts->x_ix86_regparm.
177 Change ix86_branch_cost to access opts->x_ix86_branch_cost.
178 Change ix86_preferred_stack_boundary_arg to access
179 opts->x_ix86_preferred_stack_boundary_arg.
180 Change ix86_force_align_arg_pointer to access
181 opts->x_ix86_force_align_arg_pointer.
182 Change ix86_incoming_stack_boundar_arg to access
183 opts->x_ix86_incoming_stack_boundar_arg.
184 Change ix86_fpmath to access opts->x_ix86_fpmath.
185 Change ix86_veclibabi_type to access opts->x_ix86_veclibabi_type.
186 Change ix86_recip_name to access opts->x_ix86_recip_name.
187 Change ix86_stack_protector_guard to access
188 opts->x_ix86_stack_protector_guard.
189 Change ix86_tune_memcpy_strategy to access
190 opts->x_ix86_tune_memcpy_strategy.
191 Change ix86_tune_memset_strategy to access
192 opts->x_ix86_tune_memset_strategy.
193 Change global_options to access opts.
194 Change global_options_set to access opts_set.
195 Change TARGET_64BIT to TARGET_64BIT_P (opts->...)
196 Change TARGET_MMX to TARGET_MMX_P (opts->...)
197 Change TARGET_3DNOW to TARGET_3DNOW_P (opts->...)
198 Change TARGET_3DNOW_A to TARGET_3DNOW_A_P (opts->...)
199 Change TARGET_SSE to TARGET_SSE_P (opts->...)
200 Change TARGET_SSE2 to TARGET_SSE2_P (opts->...)
201 Change TARGET_SSE3 to TARGET_SSE3_P (opts->...)
202 Change TARGET_SSSE3 to TARGET_SSSE3_P (opts->...)
203 Change TARGET_SSE4_1 to TARGET_SSE4_1_P (opts->...)
204 Change TARGET_SSE4_2 to TARGET_SSE4_2_P (opts->...)
205 Change TARGET_AVX to TARGET_AVX_P (opts->...)
206 Change TARGET_AVX2 to TARGET_AVX2_P (opts->...)
207 Change TARGET_AVX512F to TARGET_AVX512F_P (opts->...)
208 Change TARGET_AVX512PF to TARGET_AVX512PF_P (opts->...)
209 Change TARGET_AVX512ER to TARGET_AVX512ER_P (opts->...)
210 Change TARGET_AVX512CD to TARGET_AVX512CD_P (opts->...)
211 Change TARGET_FMA to TARGET_FMA_P (opts->...)
212 Change TARGET_SSE4A to TARGET_SSE4A_P (opts->...)
213 Change TARGET_FMA4 to TARGET_FMA4_P (opts->...)
214 Change TARGET_XOP to TARGET_XOP_P (opts->...)
215 Change TARGET_LWP to TARGET_LWP_P (opts->...)
216 Change TARGET_ABM to TARGET_ABM_P (opts->...)
217 Change TARGET_BMI to TARGET_BMI_P (opts->...)
218 Change TARGET_BMI2 to TARGET_BMI2_P (opts->...)
219 Change TARGET_LZCNT to TARGET_LZCNT_P (opts->...)
220 Change TARGET_TBM to TARGET_TBM_P (opts->...)
221 Change TARGET_POPCNT to TARGET_POPCNT_P (opts->...)
222 Change TARGET_SAHF to TARGET_SAHF_P (opts->...)
223 Change TARGET_MOVBE to TARGET_MOVBE_P (opts->...)
224 Change TARGET_CRC32 to TARGET_CRC32_P (opts->...)
225 Change TARGET_AES to TARGET_AES_P (opts->...)
226 Change TARGET_PCLMUL to TARGET_PCLMUL_P (opts->...)
227 Change TARGET_CMPXCHG16B to TARGET_CMPXCHG16B_P (opts->...)
228 Change TARGET_FSGSBASE to TARGET_FSGSBASE_P (opts->...)
229 Change TARGET_RDRND to TARGET_RDRND_P (opts->...)
230 Change TARGET_F16C to TARGET_F16C_P (opts->...)
231 Change TARGET_RTM to TARGET_RTM_P (opts->...)
232 Change TARGET_HLE to TARGET_HLE_P (opts->...)
233 Change TARGET_RDSEED to TARGET_RDSEED_P (opts->...)
234 Change TARGET_PRFCHW to TARGET_PRFCHW_P (opts->...)
235 Change TARGET_ADX to TARGET_ADX_P (opts->...)
236 Change TARGET_FXSR to TARGET_FXSR_P (opts->...)
237 Change TARGET_XSAVE to TARGET_XSAVE_P (opts->...)
238 Change TARGET_XSAVEOPT to TARGET_XSAVEOPT_P (opts->...)
239 Change TARGET_LP64 to TARGET_LP64_P (opts->...)
240 Change TARGET_X32 to TARGET_X32_P (opts->...)
241 Change TARGET_FPMATH_DEFAULT to TARGET_FPMATH_DEFAULT_P (opts->...)
242 Change TARGET_FLOAT_RETURNS_IN_80387 to
243 TARGET_FLOAT_RETURNS_IN_80387_P (opts->...)
244 (ix86_function_specific_save): New parameter. Use opts-> fields
245 to replace global fields.
246 (ix86_function_specific_restore): Ditto.
247 (ix86_valid_target_attribute_inner_p): New parameters.
248 Fix recursive call.
249 Fix call to ix86_handle_option and set_option.
250 (ix86_valid_target_attribute_tree): New parameters.
251 Change global_options to access opts.
252 Change global_options_set to access opts_set.
253 Fix call to ix86_valid_target_attribute_inner_p.
254 Change ix86_tune_string to access opts->x_ix86_tune_string.
255 Change ix86_arch_string to access opts->x_ix86_arch_string.
256 Change ix86_fpmath to access opts->x_ix86_fpmath
257 Fix call to ix86_option_override_internal.
258 Fix call to ix86_add_new_builtins.
259 Fix calls to build_optimization_node and build_target_option_node.
260 (ix86_valid_target_attribute_p): Remove access to global_options.
261 Use new gcc_options structure func_options.
262 Fix call to ix86_valid_target_attribute_tree.
263 Fix call to build_optimization_node.
264 (get_builtin_code_for_version): Fix call to
265 ix86_valid_target_attribute_tree.
266
267 2013-10-15 David Malcolm <dmalcolm@redhat.com>
268
269 * Makefile.in (PICFLAG): New.
270 (enable_host_shared): New.
271 (INTERNAL_CFLAGS): Use PICFLAG.
272 (LIBIBERTY): Use pic build of libiberty.a if configured with
273 --enable-host-shared.
274 * configure.ac: Add --enable-host-shared, setting up new
275 PICFLAG variable.
276 * configure: Regenerate.
277 * doc/install.texi (--enable-shared): Add note contrasting it
278 with...
279 (--enable-host-shared): New option.
280
281 2013-10-15 Richard Biener <rguenther@suse.de>
282
283 * tree-tailcall.c (find_tail_calls): Don't use tail-call recursion
284 for built-in functions.
285
286 2013-10-15 Zhenqiang Chen <zhenqiang.chen@arm.com>
287
288 * tree-ssa-reassoc.c: Include rtl.h and tm_p.h.
289 (optimize_range_tests_1): New function,
290 extracted from optimize_range_tests.
291 (optimize_range_tests_xor): Similarly.
292 (optimize_range_tests_diff): New function.
293 (optimize_range_tests): Use optimize_range_tests_1.
294
295 2013-10-15 Cong Hou <congh@google.com>
296
297 * tree-vect-loop.c (vect_is_simple_reduction_1): Relax the
298 requirement of the reduction pattern so that one operand of the
299 reduction operation can come from outside of the loop.
300
301 2013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
302
303 * config/arm/neon-schedgen.ml: Remove.
304 * config/arm/cortex-a9-neon.md: Remove comment regarding
305 neon-schedgen.ml.
306
307 2013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
308
309 * config/arm/types: Remove old neon types.
310
311 2013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
312
313 * config/arm/cortex-a7.md
314 (cortex_a7_neon_type): New.
315 (cortex_a7_neon_mul): Update for new types.
316 (cortex_a7_neon_mla): Likewise.
317 (cortex_a7_neon): Likewise.
318
319 2013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
320
321 * config/arm/cortex-a15-neon.md
322 (cortex_a15_neon_type): New,
323
324 (cortex_a15_neon_int_1): Remove.
325 (cortex_a15_neon_int_2): Likewise.
326 (cortex_a15_neon_int_3): Likewise.
327 (cortex_a15_neon_int_4): Likewise.
328 (cortex_a15_neon_int_5): Likewise.
329 (cortex_a15_neon_vqneg_vqabs): Likewise.
330 (cortex_a15_neon_vmov): Likewise.
331 (cortex_a15_neon_vaba): Likewise.
332 (cortex_a15_neon_vaba_qqq): Likewise.
333 (cortex_a15_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
334 (cortex_a15_neon_mul_qqq_8_16_32_ddd_32): Likewise.
335 (cortex_a15_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_long_scalar):
336 Likewise.
337 (cortex_a15_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
338 (cortex_a15_neon_mla_qqq_8_16): Likewise.
339 (cortex_a15_neon_mla_ddd_32_qqd_16_ddd_32_scalar): Likewise.
340 (cortex_a15_neon_mla_qqq_32_qqd_32_scalar): Likewise.
341 (cortex_a15_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
342 (cortex_a15_neon_mul_qqd_32_scalar): Likewise.
343 (cortex_a15_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
344 (cortex_a15_neon_shift_1): Likewise.
345 (cortex_a15_neon_shift_2): Likewise.
346 (cortex_a15_neon_shift_3): Likewise.
347 (cortex_a15_neon_vshl_ddd): Likewise.
348 (cortex_a15_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
349 (cortex_a15_neon_vsra_vrsra): Likewise.
350 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
351 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
352 (cortex_a15_neon_bp_3cycle): Likewise.
353 (cortex_a15_neon_ldm_2): Likewise.
354 (cortex_a15_neon_stm_2): Likewise.
355 (cortex_a15_neon_mcr): Likewise.
356 (cortex_a15_neon_mrc): Likewise.
357 (cortex_a15_neon_fp_vadd_ddd_vabs_dd): Likewise.
358 (cortex_a15_neon_fp_vadd_qqq_vabs_qq): Likewise.
359 (cortex_a15_neon_fp_vmul_ddd): Likewise.
360 (cortex_a15_neon_fp_vmul_qqd): Likewise.
361 (cortex_a15_neon_fp_vmla_ddd): Likewise.
362 (cortex_a15_neon_fp_vmla_qqq): Likewise.
363 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
364 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
365 (cortex_a15_neon_fp_vrecps_vrsqrts_ddd): Likewise.
366 (cortex_a15_neon_fp_vrecps_vrsqrts_qqq): Likewise.
367 (cortex_a15_neon_bp_simple): Likewise.
368 (cortex_a15_neon_bp_2cycle): Likewise.
369 (cortex_a15_neon_bp_3cycle): Likewise.
370 (cortex_a15_neon_vld1_1_2_regs): Likewise.
371 (cortex_a15_neon_vld1_3_4_regs): Likewise.
372 (cortex_a15_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
373 (cortex_a15_neon_vld2_4_regs): Likewise.
374 (cortex_a15_neon_vld3_vld4): Likewise.
375 (cortex_a15_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
376 (cortex_a15_neon_vst1_3_4_regs): Likewise.
377 (cortex_a15_neon_vst2_4_regs_vst3_vst4): Rename to...
378 (cortex_a15_neon_vst2_4_regs_vst3): ...This, update for new attributes.
379 (cortex_a15_neon_vst3_vst4): Rename to...
380 (cortex_a15_neon_vst4): This, update for new attributes.
381 (cortex_a15_neon_vld1_vld2_lane): Update for new attributes.
382 (cortex_a15_neon_vld3_vld4_lane): Likewise.
383 (cortex_a15_neon_vst1_vst2_lane): Likewise.
384 (cortex_a15_neon_vst3_vst4_lane): Likewise.
385 (cortex_a15_neon_vld3_vld4_all_lanes): Likewise.
386 (cortex_a15_neon_ldm_2): Likewise.
387 (cortex_a15_neon_stm_2): Likewise.
388 (cortex_a15_neon_mcr): Likewise.
389 (cortex_a15_neon_mcr_2_mcrr): Likewise.
390 (cortex_a15_neon_mrc): Likewise.
391 (cortex_a15_neon_mrrc): Likewise.
392
393 (cortex_a15_neon_abd): New.
394 (cortex_a15_neon_abd_q): Likewise.
395 (cortex_a15_neon_aba): Likewise.
396 (cortex_a15_neon_aba_q): Likewise.
397 (cortex_a15_neon_acc): Likewise.
398 (cortex_a15_neon_acc_q): Likewise.
399 (cortex_a15_neon_arith_basic): Likewise.
400 (cortex_a15_neon_arith_complex): Likewise.
401 (cortex_a15_neon_multiply): Likewise.
402 (cortex_a15_neon_multiply_q): Likewise.
403 (cortex_a15_neon_mla): Likewise.
404 (cortex_a15_neon_mla_q): Likewise.
405 (cortex_a15_neon_sat_mla_long): Likewise.
406 (cortex_a15_neon_shift_acc): Likewise.
407 (cortex_a15_neon_shift_imm_basic): Likewise.
408 (cortex_a15_neon_shift_imm_complex): Likewise.
409 (cortex_a15_neon_shift_reg_basic): Likewise.
410 (cortex_a15_neon_shift_reg_basic_q): Likewise.
411 (cortex_a15_neon_shift_reg_complex): Likewise.
412 (cortex_a15_neon_shift_reg_complex_q): Likewise.
413 (cortex_a15_neon_fp_negabs): Likewise
414 (cortex_a15_neon_fp_arith): Likewise
415 (cortex_a15_neon_fp_arith_q): Likewise
416 (cortex_a15_neon_fp_cvt_int): Likewise
417 (cortex_a15_neon_fp_cvt_int_q): Likewise
418 (cortex_a15_neon_fp_cvt_16): Likewise
419 (cortex_a15_neon_fp_mul): Likewise
420 (cortex_a15_neon_fp_mul_q): Likewise
421 (cortex_a15_neon_fp_mla): Likewise
422 (cortex_a15_neon_fp_mla_q): Likewise
423 (cortex_a15_neon_fp_recps_rsqrte): Likewise.
424 (cortex_a15_neon_fp_recps_rsqrte_q): Likewise.
425 (cortex_a15_neon_bitops): Likewise.
426 (cortex_a15_neon_bitops_q): Likewise.
427 (cortex_a15_neon_from_gp): Likewise.
428 (cortex_a15_neon_from_gp_q): Likewise.
429 (cortex_a15_neon_tbl3_tbl4): Likewise.
430 (cortex_a15_neon_zip_q): Likewise.
431 (cortex_a15_neon_to_gp): Likewise.
432 (cortex_a15_neon_load_a): Likewise.
433 (cortex_a15_neon_load_b): Likewise.
434 (cortex_a15_neon_load_c): Likewise.
435 (cortex_a15_neon_load_d): Likewise.
436 (cortex_a15_neon_load_e): Likewise.
437 (cortex_a15_neon_load_f): Likewise.
438 (cortex_a15_neon_store_a): Likewise.
439 (cortex_a15_neon_store_b): Likewise.
440 (cortex_a15_neon_store_c): Likewise.
441 (cortex_a15_neon_store_d): Likewise.
442 (cortex_a15_neon_store_e): Likewise.
443 (cortex_a15_neon_store_f): Likewise.
444 (cortex_a15_neon_store_g): Likewise.
445 (cortex_a15_neon_store_h): Likewise.
446 (cortex_a15_vfp_to_from_gp): Likewise.
447
448 2013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
449
450 * config/arm/cortex-a9-neon.md (cortex_a9_neon_type): New.
451
452 (cortex_a9_neon_vshl_ddd): Remove.
453 (cortex_a9_neon_vst3_vst4): Likewise.
454 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
455
456 (cortex_a9_neon_bit_ops_q): New.
457
458 (cortex_a9_neon_int_1): Use cortex_a8_neon_type.
459 (cortex_a9_neon_int_2): Likewise.
460 (cortex_a9_neon_int_3): Likewise.
461 (cortex_a9_neon_int_4): Likewise.
462 (cortex_a9_neon_int_5): Likewise.
463 (cortex_a9_neon_vqneg_vqabs): Likewise.
464 (cortex_a9_neon_vmov): Likewise.
465 (cortex_a9_neon_vaba): Likewise.
466 (cortex_a9_neon_vaba_qqq): Likewise.
467 (cortex_a9_neon_shift_1): Likewise.
468 (cortex_a9_neon_shift_2): Likewise.
469 (cortex_a9_neon_shift_3): Likewise.
470 (cortex_a9_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
471 (cortex_a9_neon_vsra_vrsra): Likewise.
472 (cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
473 (cortex_a9_neon_mul_qqq_8_16_32_ddd_32): Likewise.
474 (cortex_a9_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_long_scalar):
475 Likewise.
476 (cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
477 (cortex_a9_neon_mla_qqq_8_16): Likewise.
478 (cortex_a9_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_long_scalar_qdd_64_32_long):
479 Likewise.
480 (cortex_a9_neon_mla_qqq_32_qqd_32_scalar): Likewise.
481 (cortex_a9_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
482 (cortex_a9_neon_mul_qqd_32_scalar): Likewise.
483 (cortex_a9_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
484 (cortex_a9_neon_fp_vadd_ddd_vabs_dd): Likewise.
485 (cortex_a9_neon_fp_vadd_qqq_vabs_qq): Likewise.
486 (cortex_a9_neon_fp_vsum): Likewise.
487 (cortex_a9_neon_fp_vmul_ddd): Likewise.
488 (cortex_a9_neon_fp_vmul_qqd): Likewise.
489 (cortex_a9_neon_fp_vmla_ddd): Likewise.
490 (cortex_a9_neon_fp_vmla_qqq): Likewise.
491 (cortex_a9_neon_fp_vmla_ddd_scalar): Likewise.
492 (cortex_a9_neon_fp_vmla_qqq_scalar): Likewise.
493 (cortex_a9_neon_fp_vrecps_vrsqrts_ddd): Likewise.
494 (cortex_a9_neon_fp_vrecps_vrsqrts_qqq): Likewise.
495 (cortex_a9_neon_bp_simple): Likewise.
496 (cortex_a9_neon_bp_2cycle): Likewise.
497 (cortex_a9_neon_bp_3cycle): Likewise.
498 (cortex_a9_neon_ldr): Likewise.
499 (cortex_a9_neon_str): Likewise.
500 (cortex_a9_neon_vld1_1_2_regs): Likewise.
501 (cortex_a9_neon_vld1_3_4_regs): Likewise.
502 (cortex_a9_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
503 (cortex_a9_neon_vld2_4_regs): Likewise.
504 (cortex_a9_neon_vld3_vld4): Likewise.
505 (cortex_a9_neon_vld1_vld2_lane): Likewise.
506 (cortex_a9_neon_vld3_vld4_lane): Likewise.
507 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
508 (cortex_a9_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
509 (cortex_a9_neon_vst1_3_4_regs): Likewise.
510 (cortex_a9_neon_vst2_4_regs_vst3_vst4): Likewise.
511 (cortex_a9_neon_vst1_vst2_lane): Likewise.
512 (cortex_a9_neon_vst3_vst4_lane): Likewise.
513 (cortex_a9_neon_mcr): Likewise.
514 (cortex_a9_neon_mcr_2_mcrr): Likewise.
515 (cortex_a9_neon_mrc): Likewise.
516 (cortex_a9_neon_mrrc): Likewise.
517
518 2013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
519
520 * config/arm/cortex-a8-neon.md (cortex_a8_neon_type): New.
521
522 (cortex_a8_neon_vshl_ddd): Remove.
523 (cortex_a8_neon_vst3_vst4): Likewise.
524 (cortex_a8_neon_vld3_vld4_all_lanes): Likewise.
525
526 (cortex_a8_neon_bit_ops_q): New.
527
528 (cortex_a8_neon_int_1): Use cortex_a8_neon_type.
529 (cortex_a8_neon_int_2): Likewise..
530 (cortex_a8_neon_int_3): Likewise.
531 (cortex_a8_neon_int_5): Likewise.
532 (cortex_a8_neon_vqneg_vqabs): Likewise.
533 (cortex_a8_neon_int_4): Likewise.
534 (cortex_a8_neon_vaba): Likewise.
535 (cortex_a8_neon_vaba_qqq): Likewise.
536 (cortex_a8_neon_shift_1): Likewise.
537 (cortex_a8_neon_shift_2): Likewise.
538 (cortex_a8_neon_shift_3): Likewise.
539 (cortex_a8_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
540 (cortex_a8_neon_vsra_vrsra): Likewise.
541 (cortex_a8_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
542 (cortex_a8_neon_mul_qqq_8_16_32_ddd_32): Likewise.
543 (cortex_a8_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_long_scalar):
544 Likewise.
545 (cortex_a8_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
546 (cortex_a8_neon_mla_qqq_8_16): Likewise.
547 (cortex_a8_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_long_scalar_qdd_64_32_long):
548 Likewise.
549 (cortex_a8_neon_mla_qqq_32_qqd_32_scalar): Likewise.
550 (cortex_a8_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
551 (cortex_a8_neon_mul_qqd_32_scalar): Likewise.
552 (cortex_a8_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
553 (cortex_a8_neon_fp_vadd_ddd_vabs_dd): Likewise.
554 (cortex_a8_neon_fp_vadd_qqq_vabs_qq): Likewise.
555 (cortex_a8_neon_fp_vsum): Likewise.
556 (cortex_a8_neon_fp_vmul_ddd): Likewise.
557 (cortex_a8_neon_fp_vmul_qqd): Likewise.
558 (cortex_a8_neon_fp_vmla_ddd): Likewise.
559 (cortex_a8_neon_fp_vmla_qqq): Likewise.
560 (cortex_a8_neon_fp_vmla_ddd_scalar): Likewise.
561 (cortex_a8_neon_fp_vmla_qqq_scalar): Likewise.
562 (cortex_a8_neon_fp_vrecps_vrsqrts_ddd): Likewise.
563 (cortex_a8_neon_fp_vrecps_vrsqrts_qqq): Likewise.
564 (cortex_a8_neon_bp_simple): Likewise.
565 (cortex_a8_neon_bp_2cycle): Likewise.
566 (cortex_a8_neon_bp_3cycle): Likewise.
567 (cortex_a8_neon_ldr): Likewise.
568 (cortex_a8_neon_str): Likewise.
569 (cortex_a8_neon_vld1_1_2_regs): Likewise.
570 (cortex_a8_neon_vld1_3_4_regs): Likewise.
571 (cortex_a8_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
572 (cortex_a8_neon_vld2_4_regs): Likewise.
573 (cortex_a8_neon_vld3_vld4): Likewise.
574 (cortex_a8_neon_vld1_vld2_lane): Likewise.
575 (cortex_a8_neon_vld3_vld4_lane): Likewise.
576 (cortex_a8_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
577 (cortex_a8_neon_vst1_3_4_regs): Likewise.
578 (cortex_a8_neon_vst2_4_regs_vst3_vst4): Likewise.
579 (cortex_a8_neon_vst1_vst2_lane): Likewise.
580 (cortex_a8_neon_vst3_vst4_lane): Likewise.
581 (cortex_a8_neon_mcr): Likewise.
582 (cortex_a8_neon_mcr_2_mcrr): Likewise.
583 (cortex_a8_neon_mrc): Likewise.
584 (cortex_a8_neon_mrrc): Likewise.
585
586 2013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
587
588 * config/aarch64/iterators.md (Vetype): Add SF and DF modes.
589 (fp): New.
590 * config/aarch64/aarch64-simd.md (neon_type): Remove.
591 (aarch64_simd_dup<mode>): Add "type" attribute.
592 (aarch64_dup_lane<mode>): Likewise.
593 (aarch64_dup_lane_<vswap_width_name><mode>): Likewise.
594 (*aarch64_simd_mov<mode>): Likewise.
595 (aarch64_simd_mov_from_<mode>low): Likewise.
596 (aarch64_simd_mov_from_<mode>high): Likewise.
597 (orn<mode>3): Likewise.
598 (bic<mode>3): Likewise.
599 (add<mode>3): Likewise.
600 (sub<mode>3): Likewise.
601 (mul<mode>3): Likewise.
602 (*aarch64_mul3_elt<mode>): Likewise.
603 (*aarch64_mul3_elt_<vswap_width_name><mode>): Likewise.
604 (*aarch64_mul3_elt_to_128df): Likewise.
605 (*aarch64_mul3_elt_to_64v2df): Likewise.
606 (neg<mode>2): Likewise.
607 (abs<mode>2): Likewise.
608 (abd<mode>_3): Likewise.
609 (aba<mode>_3): Likewise.
610 (fabd<mode>_3): Likewise.
611 (*fabd_scalar<mode>3): Likewise.
612 (and<mode>3): Likewise.
613 (ior<mode>3): Likewise.
614 (xor<mode>3): Likewise.
615 (one_cmpl<mode>2): Likewise.
616 (aarch64_simd_vec_set<mode>): Likewise.
617 (aarch64_simd_lshr<mode>): Likewise.
618 (aarch64_simd_ashr<mode>): Likewise.
619 (aarch64_simd_imm_shl<mode>): Likewise.
620 (aarch64_simd_reg_sshl<mode): Likewise.
621 (aarch64_simd_reg_shl<mode>_unsigned): Likewise.
622 (aarch64_simd_reg_shl<mode>_signed): Likewise.
623 (aarch64_simd_vec_setv2di): Likewise.
624 (aarch64_simd_vec_set<mode>): Likewise.
625 (aarch64_mla<mode>): Likewise.
626 (*aarch64_mla_elt<mode>): Likewise.
627 (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
628 (aarch64_mls<mode>): Likewise.
629 (*aarch64_mls_elt<mode>): Likewise.
630 (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
631 (<su><maxmin><mode>3): Likewise.
632 (move_lo_quad_<mode>): Likewise.
633 (aarch64_simd_move_hi_quad_<mode>): Likewise.
634 (aarch64_simd_vec_pack_trunc_<mode>): Likewise.
635 (vec_pack_trunc_<mode>): Likewise.
636 (aarch64_simd_vec_unpack<su>_lo_<mode>): Likewise.
637 (aarch64_simd_vec_unpack<su>_hi_<mode>): Likewise.
638 (*aarch64_<su>mlal_lo<mode>): Likewise.
639 (*aarch64_<su>mlal_hi<mode>): Likewise.
640 (*aarch64_<su>mlsl_lo<mode>): Likewise.
641 (*aarch64_<su>mlsl_hi<mode>): Likewise.
642 (*aarch64_<su>mlal<mode>): Likewise.
643 (*aarch64_<su>mlsl<mode>): Likewise.
644 (aarch64_simd_vec_<su>mult_lo_<mode>): Likewise.
645 (aarch64_simd_vec_<su>mult_hi_<mode>): Likewise.
646 (add<mode>3): Likewise.
647 (sub<mode>3): Likewise.
648 (mul<mode>3): Likewise.
649 (div<mode>3): Likewise.
650 (neg<mode>2): Likewise.
651 (abs<mode>2): Likewise.
652 (fma<mode>4): Likewise.
653 (*aarch64_fma4_elt<mode>): Likewise.
654 (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
655 (*aarch64_fma4_elt_to_128df): Likewise.
656 (*aarch64_fma4_elt_to_64v2df): Likewise.
657 (fnma<mode>4): Likewise.
658 (*aarch64_fnma4_elt<mode>): Likewise.
659 (*aarch64_fnma4_elt_<vswap_width_name><mode>
660 (*aarch64_fnma4_elt_to_128df): Likewise.
661 (*aarch64_fnma4_elt_to_64v2df): Likewise.
662 (<frint_pattern><mode>2): Likewise.
663 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): Likewise.
664 (<optab><fcvt_target><VDQF:VDQF:mode>2): Likewise.
665 (vec_unpacks_lo_v4sf): Likewise.
666 (aarch64_float_extend_lo_v2df): Likewise.
667 (vec_unpacks_hi_v4sf): Likewise.
668 (aarch64_float_truncate_lo_v2sf): Likewise.
669 (aarch64_float_truncate_hi_v4sf): Likewise.
670 (aarch64_vmls<mode>): Likewise.
671 (<su><maxmin><mode>3): Likewise.
672 (<maxmin_uns><mode>3): Likewise.
673 (reduc_<sur>plus_<mode>): Likewise.
674 (reduc_<sur>plus_v2di): Likewise.
675 (reduc_<sur>plus_v2si): Likewise.
676 (reduc_<sur>plus_<mode>): Likewise.
677 (aarch64_addpv4sf): Likewise.
678 (clz<mode>2): Likewise.
679 (reduc_<maxmin_uns>_<mode>): Likewise.
680 (reduc_<maxmin_uns>_v2di): Likewise.
681 (reduc_<maxmin_uns>_v2si): Likewise.
682 (reduc_<maxmin_uns>_<mode>): Likewise.
683 (reduc_<maxmin_uns>_v4sf): Likewise.
684 (aarch64_simd_bsl<mode>_internal): Likewise.
685 (*aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): Likewise.
686 (*aarch64_get_lane_zero_extendsi<mode>): Likewise.
687 (aarch64_get_lane<mode>): Likewise.
688 (*aarch64_combinez<mode>): Likewise.
689 (aarch64_combine<mode>): Likewise.
690 (aarch64_simd_combine<mode>): Likewise.
691 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_hi_internal): Likewise.
692 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_lo_internal): Likewise.
693 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>): Likewise.
694 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>w<mode>): Likewise.
695 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>w2<mode>_internal): Likewise.
696 (aarch64_<sur>h<addsub><mode>): Likewise.
697 (aarch64_<sur><addsub>hn<mode>): Likewise.
698 (aarch64_<sur><addsub>hn2<mode>): Likewise.
699 (aarch64_pmul<mode>): Likewise.
700 (aarch64_<su_optab><optab><mode>): Likewise.
701 (aarch64_<sur>qadd<mode>): Likewise.
702 (aarch64_sqmovun<mode>): Likewise.
703 (aarch64_<sur>qmovn<mode>): Likewise.
704 (aarch64_s<optab><mode>): Likewise.
705 (aarch64_sq<r>dmulh<mode>): Likewise.
706 (aarch64_sq<r>dmulh_lane<mode>): Likewise.
707 (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
708 (aarch64_sq<r>dmulh_lane<mode>): Likewise.
709 (aarch64_sqdml<SBINQOPS:as>l<mode>): Likewise.
710 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
711 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
712 (aarch64_sqdml<SBINQOPS:as>l_n<mode>): Likewise.
713 (aarch64_sqdml<SBINQOPS:as>l2<mode>_internal): Likewise.
714 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
715 (aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Likewise.
716 (aarch64_sqdmull<mode>): Likewise.
717 (aarch64_sqdmull_lane<mode>_internal): Likewise.
718 (aarch64_sqdmull_n<mode>): Likewise.
719 (aarch64_sqdmull2<mode>_internal): Likewise.
720 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
721 (aarch64_sqdmull2_n<mode>_internal): Likewise.
722 (aarch64_<sur>shl<mode>): Likewise.
723 (aarch64_<sur>q<r>shl<mode>
724 (aarch64_<sur>shll_n<mode>): Likewise.
725 (aarch64_<sur>shll2_n<mode>): Likewise.
726 (aarch64_<sur>shr_n<mode>): Likewise.
727 (aarch64_<sur>sra_n<mode>): Likewise.
728 (aarch64_<sur>s<lr>i_n<mode>): Likewise.
729 (aarch64_<sur>qshl<u>_n<mode>): Likewise.
730 (aarch64_<sur>q<r>shr<u>n_n<mode>): Likewise.
731 (aarch64_cm<optab><mode>): Likewise.
732 (aarch64_cm<optab>di): Likewise.
733 (aarch64_cm<optab><mode>): Likewise.
734 (aarch64_cm<optab>di): Likewise.
735 (aarch64_cmtst<mode>): Likewise.
736 (aarch64_cmtstdi): Likewise.
737 (aarch64_cm<optab><mode>): Likewise.
738 (*aarch64_fac<optab><mode>): Likewise.
739 (aarch64_addp<mode>): Likewise.
740 (aarch64_addpdi): Likewise.
741 (sqrt<mode>2): Likewise.
742 (vec_load_lanesoi<mode>): Likewise.
743 (vec_store_lanesoi<mode>): Likewise.
744 (vec_load_lanesci<mode>): Likewise.
745 (vec_store_lanesci<mode>): Likewise.
746 (vec_load_lanesxi<mode>): Likewise.
747 (vec_store_lanesxi<mode>): Likewise.
748 (*aarch64_mov<mode>): Likewise.
749 (aarch64_ld2<mode>_dreg): Likewise.
750 (aarch64_ld2<mode>_dreg): Likewise.
751 (aarch64_ld3<mode>_dreg): Likewise.
752 (aarch64_ld3<mode>_dreg): Likewise.
753 (aarch64_ld4<mode>_dreg): Likewise.
754 (aarch64_ld4<mode>_dreg): Likewise.
755 (aarch64_tbl1<mode>): Likewise.
756 (aarch64_tbl2v16qi): Likewise.
757 (aarch64_combinev16qi): Likewise.
758 (aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>): Likewise.
759 (aarch64_st2<mode>_dreg): Likewise.
760 (aarch64_st2<mode>_dreg): Likewise.
761 (aarch64_st3<mode>_dreg): Likewise.
762 (aarch64_st3<mode>_dreg): Likewise.
763 (aarch64_st4<mode>_dreg): Likewise.
764 (aarch64_st4<mode>_dreg): Likewise.
765 (*aarch64_simd_ld1r<mode>): Likewise.
766 (aarch64_frecpe<mode>): Likewise.
767 (aarch64_frecp<FRECP:frecp_suffix><mode>): Likewise.
768 (aarch64_frecps<mode>): Likewise.
769
770 2013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
771
772 * config/arm/iterators.md (V_elem_ch): New.
773 (q): Likewise.
774 (VQH_type): Likewise.
775 * config/arm/arm.md (is_neon_type): New.
776 (conds): Use is_neon_type.
777 (anddi3_insn): Update type attribute.
778 (xordi3_insn): Likewise.
779 (one_cmpldi2): Likewise.
780 * gcc/config/arm/vfp.md (movhf_vfp_neon): Update type attribute.
781 * gcc/config/arm/neon.md (neon_mov): Update type attribute.
782 (*movmisalign<mode>_neon_store): Likewise.
783 (*movmisalign<mode>_neon_load): Likewise.
784 (vec_set<mode>_internal): Likewise.
785 (vec_set<mode>_internal): Likewise.
786 (vec_setv2di_internal): Likewise.
787 (vec_extract<mode>): Likewise.
788 (vec_extract<mode>): Likewise.
789 (vec_extractv2di): Likewise.
790 (*add<mode>3_neon): Likewise.
791 (adddi3_neon): Likewise.
792 (*sub<mode>3_neon): Likewise.
793 (subdi3_neon): Likewise.
794 (fma<VCVTF:mode>4): Likewise.
795 (fma<VCVTF:mode>4_intrinsic): Likewise.
796 (*fmsub<VCVTF:mode>4): Likewise.
797 (fmsub<VCVTF:mode>4_intrinsic): Likewise.
798 (neon_vrint<NEON_VRINT:nvrint_variant><VCVTF:mode>): Likewise.
799 (ior<mode>3): Likewise.
800 (and<mode>3): Likewise.
801 (orn<mode>3_neon): Likewise.
802 (orndi3_neon): Likewise.
803 (bic<mode>3_neon): Likewise.
804 (bicdi3_neon): Likewise.
805 (xor<mode>3): Likewise.
806 (one_cmpl<mode>2): Likewise.
807 (abs<mode>2): Likewise.
808 (neg<mode>2): Likewise.
809 (negdi2_neon): Likewise.
810 (*umin<mode>3_neon): Likewise.
811 (*umax<mode>3_neon): Likewise.
812 (*smin<mode>3_neon): Likewise.
813 (*smax<mode>3_neon): Likewise.
814 (vashl<mode>3): Likewise.
815 (vashr<mode>3_imm): Likewise.
816 (vlshr<mode>3_imm): Likewise.
817 (ashl<mode>3_signed): Likewise.
818 (ashl<mode>3_unsigned): Likewise.
819 (neon_load_count): Likewise.
820 (ashldi3_neon_noclobber): Likewise.
821 (ashldi3_neon): Likewise.
822 (signed_shift_di3_neon): Likewise.
823 (unsigned_shift_di3_neon): Likewise.
824 (ashrdi3_neon_imm_noclobber): Likewise.
825 (lshrdi3_neon_imm_noclobber): Likewise.
826 (<shift>di3_neon): Likewise.
827 (widen_ssum<mode>3): Likewise.
828 (widen_usum<mode>3): Likewise.
829 (quad_halves_<code>v4si): Likewise.
830 (quad_halves_<code>v4sf): Likewise.
831 (quad_halves_<code>v8hi): Likewise.
832 (quad_halves_<code>v16qi): Likewise.
833 (reduc_splus_v2di): Likewise.
834 (neon_vpadd_internal<mode>): Likewise.
835 (neon_vpsmin<mode>): Likewise.
836 (neon_vpsmax<mode>): Likewise.
837 (neon_vpumin<mode>): Likewise.
838 (neon_vpumax<mode>): Likewise.
839 (*ss_add<mode>_neon): Likewise.
840 (*us_add<mode>_neon): Likewise.
841 (*ss_sub<mode>_neon): Likewise.
842 (*us_sub<mode>_neon): Likewise.
843 (neon_vadd<mode>_unspec): Likewise.
844 (neon_vaddl<mode>): Likewise.
845 (neon_vaddw<mode>): Likewise.
846 (neon_vhadd<mode>): Likewise.
847 (neon_vqadd<mode>): Likewise.
848 (neon_vaddhn<mode>): Likewise.
849 (neon_vmul<mode>): Likewise.
850 (neon_vfms<VCVTF:mode>): Likewise.
851 (neon_vmlal<mode>): Likewise.
852 (neon_vmls<mode>): Likewise.
853 (neon_vmlsl<mode>): Likewise.
854 (neon_vqdmulh<mode>): Likewise.
855 (neon_vqdmlal<mode>): Likewise.
856 (neon_vqdmlsl<mode>): Likewise.
857 (neon_vmull<mode>): Likewise.
858 (neon_vqdmull<mode>): Likewise.
859 (neon_vsub<mode>_unspec): Likewise.
860 (neon_vsubl<mode>): Likewise.
861 (neon_vsubw<mode>): Likewise.
862 (neon_vqsub<mode>): Likewise.
863 (neon_vhsub<mode>): Likewise.
864 (neon_vsubhn<mode>): Likewise.
865 (neon_vceq<mode>): Likewise.
866 (neon_vcge<mode>): Likewise.
867 (neon_vcgeu<mode>): Likewise.
868 (neon_vcgt<mode>): Likewise.
869 (neon_vcgtu<mode>): Likewise.
870 (neon_vcle<mode>): Likewise.
871 (neon_vclt<mode>): Likewise.
872 (neon_vcage<mode>): Likewise.
873 (neon_vcagt<mode>): Likewise.
874 (neon_vtst<mode>): Likewise.
875 (neon_vabd<mode>): Likewise.
876 (neon_vabdl<mode>): Likewise.
877 (neon_vaba<mode>): Likewise.
878 (neon_vabal<mode>): Likewise.
879 (neon_vmax<mode>): Likewise.
880 (neon_vmin<mode>): Likewise.
881 (neon_vpaddl<mode>): Likewise.
882 (neon_vpadal<mode>): Likewise.
883 (neon_vpmax<mode>): Likewise.
884 (neon_vpmin<mode>): Likewise.
885 (neon_vrecps<mode>): Likewise.
886 (neon_vrsqrts<mode>): Likewise.
887 (neon_vqabs<mode>): Likewise.
888 (neon_vqneg<mode>): Likewise.
889 (neon_vcls<mode>): Likewise.
890 (clz<mode>2): Likewise.
891 (popcount<mode>2): Likewise.
892 (neon_vrecpe<mode>): Likewise.
893 (neon_vrsqrte<mode>): Likewise.
894 (neon_vget_lane<mode>_sext_internal): Likewise.
895 (neon_vget_lane<mode>_zext_internal): Likewise.
896 (neon_vdup_n<mode>): Likewise.
897 (neon_vdup_n<mode>): Likewise.
898 (neon_vdup_nv2di): Likewise.
899 (neon_vdup_lane<mode>_interal): Likewise.
900 (*neon_vswp<mode>): Likewise.
901 (neon_vcombine<mode>): Likewise.
902 (float<mode><V_cvtto>2): Likewise.
903 (floatuns<mode><V_cvtto>2): Likewise.
904 (fix_trunc<mode><V_cvtto>2): Likewise.
905 (fixuns_trunc<mode><V_cvtto>2
906 (neon_vcvt<mode>): Likewise.
907 (neon_vcvt<mode>): Likewise.
908 (neon_vcvtv4sfv4hf): Likewise.
909 (neon_vcvtv4hfv4sf): Likewise.
910 (neon_vcvt_n<mode>): Likewise.
911 (neon_vcvt_n<mode>): Likewise.
912 (neon_vmovn<mode>): Likewise.
913 (neon_vqmovn<mode>): Likewise.
914 (neon_vqmovun<mode>): Likewise.
915 (neon_vmovl<mode>): Likewise.
916 (neon_vmul_lane<mode>): Likewise.
917 (neon_vmul_lane<mode>): Likewise.
918 (neon_vmull_lane<mode>): Likewise.
919 (neon_vqdmull_lane<mode>): Likewise.
920 (neon_vqdmulh_lane<mode>): Likewise.
921 (neon_vqdmulh_lane<mode>): Likewise.
922 (neon_vmla_lane<mode>): Likewise.
923 (neon_vmla_lane<mode>): Likewise.
924 (neon_vmlal_lane<mode>): Likewise.
925 (neon_vqdmlal_lane<mode>): Likewise.
926 (neon_vmls_lane<mode>): Likewise.
927 (neon_vmls_lane<mode>): Likewise.
928 (neon_vmlsl_lane<mode>): Likewise.
929 (neon_vqdmlsl_lane<mode>): Likewise.
930 (neon_vext<mode>): Likewise.
931 (neon_vrev64<mode>): Likewise.
932 (neon_vrev32<mode>): Likewise.
933 (neon_vrev16<mode>): Likewise.
934 (neon_vbsl<mode>_internal): Likewise.
935 (neon_vshl<mode>): Likewise.
936 (neon_vqshl<mode>): Likewise.
937 (neon_vshr_n<mode>): Likewise.
938 (neon_vshrn_n<mode>): Likewise.
939 (neon_vqshrn_n<mode>): Likewise.
940 (neon_vqshrun_n<mode>): Likewise.
941 (neon_vshl_n<mode>): Likewise.
942 (neon_vqshl_n<mode>): Likewise.
943 (neon_vqshlu_n<mode>): Likewise.
944 (neon_vshll_n<mode>): Likewise.
945 (neon_vsra_n<mode>): Likewise.
946 (neon_vsri_n<mode>): Likewise.
947 (neon_vsli_n<mode>): Likewise.
948 (neon_vtbl1v8qi): Likewise.
949 (neon_vtbl2v8qi): Likewise.
950 (neon_vtbl3v8qi): Likewise.
951 (neon_vtbl4v8qi): Likewise.
952 (neon_vtbl1v16qi): Likewise.
953 (neon_vtbl2v16qi): Likewise.
954 (neon_vcombinev16qi): Likewise.
955 (neon_vtbx1v8qi): Likewise.
956 (neon_vtbx2v8qi): Likewise.
957 (neon_vtbx3v8qi): Likewise.
958 (neon_vtbx4v8qi): Likewise.
959 (*neon_vtrn<mode>_insn): Likewise.
960 (*neon_vzip<mode>_insn): Likewise.
961 (*neon_vuzp<mode>_insn): Likewise.
962 (neon_vld1<mode>): Likewise.
963 (neon_vld1_lane<mode>): Likewise.
964 (neon_vld1_lane<mode>): Likewise.
965 (neon_vld1_dup<mode>): Likewise.
966 (neon_vld1_dup<mode>): Likewise.
967 (neon_vld1_dupv2di): Likewise.
968 (neon_vst1<mode>): Likewise.
969 (neon_vst1_lane<mode>): Likewise.
970 (neon_vst1_lane<mode>): Likewise.
971 (neon_vld2<mode>): Likewise.
972 (neon_vld2<mode>): Likewise.
973 (neon_vld2_lane<mode>): Likewise.
974 (neon_vld2_lane<mode>): Likewise.
975 (neon_vld2_dup<mode>): Likewise.
976 (neon_vst2<mode>): Likewise.
977 (neon_vst2<mode>): Likewise.
978 (neon_vst2_lane<mode>): Likewise.
979 (neon_vst2_lane<mode>): Likewise.
980 (neon_vld3<mode>): Likewise.
981 (neon_vld3qa<mode>): Likewise.
982 (neon_vld3qb<mode>): Likewise.
983 (neon_vld3_lane<mode>): Likewise.
984 (neon_vld3_lane<mode>): Likewise.
985 (neon_vld3_dup<mode>): Likewise.
986 (neon_vst3<mode>): Likewise.
987 (neon_vst3qa<mode>): Likewise.
988 (neon_vst3qb<mode>): Likewise.
989 (neon_vst3_lane<mode>): Likewise.
990 (neon_vst3_lane<mode>): Likewise.
991 (neon_vld4<mode>): Likewise.
992 (neon_vld4qa<mode>): Likewise.
993 (neon_vld4qb<mode>): Likewise.
994 (neon_vld4_lane<mode>): Likewise.
995 (neon_vld4_lane<mode>): Likewise.
996 (neon_vld4_dup<mode>): Likewise.
997 (neon_vst4<mode>): Likewise.
998 (neon_vst4qa<mode>): Likewise.
999 (neon_vst4qb<mode>): Likewise.
1000 (neon_vst4_lane<mode>): Likewise.
1001 (neon_vst4_lane<mode>): Likewise.
1002 (neon_vec_unpack<US>_lo_<mode>): Likewise.
1003 (neon_vec_unpack<US>_hi_<mode>): Likewise.
1004 (neon_vec_<US>mult_lo_<mode>): Likewise.
1005 (neon_vec_<US>mult_hi_<mode>): Likewise.
1006 (neon_vec_<US>shiftl_<mode>): Likewise.
1007 (neon_unpack<US>_<mode>): Likewise.
1008 (neon_vec_<US>mult_<mode>): Likewise.
1009 (vec_pack_trunc_<mode>): Likewise.
1010 (neon_vec_pack_trunc_<mode>): Likewise.
1011 (neon_vabd<mode>_2): Likewise.
1012 (neon_vabd<mode>_3): Likewise.
1013
1014 2013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
1015
1016 * config/aarch64/aarch64.md (movtf_aarch64): Update type attribute.
1017 (load_pair): Update type attribute.
1018 (store_pair): Update type attribute.
1019 * config/aarch64/iterators.md (q): New.
1020
1021 2013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
1022
1023 * config/arm/types.md: Add new types for Neon insns.
1024
1025 2013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
1026 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1027 Sergey Lega <sergey.s.lega@intel.com>
1028 Anna Tikhonova <anna.tikhonova@intel.com>
1029 Ilya Tocar <ilya.tocar@intel.com>
1030 Andrey Turetskiy <andrey.turetskiy@intel.com>
1031 Ilya Verbin <ilya.verbin@intel.com>
1032 Kirill Yukhin <kirill.yukhin@intel.com>
1033 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1034
1035 * config/i386/sse.md (unspec): Add UNSPEC_RCP14, UNSPEC_RSQRT14,
1036 UNSPEC_FIXUPIMM, UNSPEC_SCALEF, UNSPEC_GETEXP, UNSPEC_GETMANT,
1037 UNSPEC_EXP2, UNSPEC_RCP28, UNSPEC_RSQRT28.
1038 (rcp14<mode>): New.
1039 (srcp14<mode>): Ditto.
1040 (rsqrt14<mode>): Ditto.
1041 (rsqrt14<mode>): Ditto.
1042 (avx512f_vmscalef<mode>): Ditto.
1043 (avx512f_scalef<mode>): Ditto.
1044 (avx512f_getexp<mode>): Ditto.
1045 (avx512f_sgetexp<mode>): Ditto.
1046 (avx512f_fixupimm<mode>): Ditto.
1047 (avx512f_sfixupimm<mode>): Ditto.
1048 (avx512f_rndscale<mode>): Ditto.
1049 (*avx512er_exp2<mode>): Ditto.
1050 (*avx512er_rcp28<mode>): Ditto.
1051 (avx512er_rsqrt28<mode>): Ditto.
1052 (avx512f_getmant<mode>): Ditto.
1053 (avx512f_getmant<mode>): Ditto.
1054 (avx512f_rndscale<mode>): Fix formatting.
1055
1056 2013-10-15 Martin Jambor <mjambor@suse.cz>
1057
1058 * ipa-utils.h (ipa_edge_within_scc): Declare.
1059 * ipa-cp.c (edge_within_scc): Moved...
1060 * ipa-utils.c (ipa_edge_within_scc): ...here. Updated all callers.
1061
1062 2013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
1063 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1064 Sergey Lega <sergey.s.lega@intel.com>
1065 Anna Tikhonova <anna.tikhonova@intel.com>
1066 Ilya Tocar <ilya.tocar@intel.com>
1067 Andrey Turetskiy <andrey.turetskiy@intel.com>
1068 Ilya Verbin <ilya.verbin@intel.com>
1069 Kirill Yukhin <kirill.yukhin@intel.com>
1070 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1071
1072 * config/i386/predicates.md (const_8_to_15_operand): New.
1073 (const_16_to_31_operand): Ditto.
1074 * config/i386/sse.md (V8FI): New.
1075 (V16FI): Ditto.
1076 (reduc_splus_v8df): Ditto.
1077 (reduc_splus_v16sf): Ditto.
1078 (avx512f_vextract<shuffletype>32x4_1): Ditto.
1079 (vec_extract_hi_<mode>): Ditto.
1080 (avx512f_vinsert<shuffletype>32x4_1): Ditto.
1081 (vec_set_lo_<mode>): Ditto.
1082 (vec_set_hi_<mode>): Ditto.
1083 (avx512f_shuf_<shuffletype>64x2_1): Ditto.
1084 (avx512f_shuf_<shuffletype>32x4_1): Ditto.
1085 (avx512f_pshufd_1): Ditto.
1086 (avx512f_broadcast<mode>): Ditto.
1087 (avx512f_broadcast<mode>): Ditto.
1088 (define_split): Split vec_extract_lo into move.
1089 (ssequartermode): Ditto.
1090 (ssedoublemode): Extened with wider modes.
1091 (vec_extract_lo_<mode>): Ditto.
1092
1093 2013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
1094 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1095 Sergey Lega <sergey.s.lega@intel.com>
1096 Anna Tikhonova <anna.tikhonova@intel.com>
1097 Ilya Tocar <ilya.tocar@intel.com>
1098 Andrey Turetskiy <andrey.turetskiy@intel.com>
1099 Ilya Verbin <ilya.verbin@intel.com>
1100 Kirill Yukhin <kirill.yukhin@intel.com>
1101 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1102
1103 * config/i386/predicates.md (register_or_constm1_operand): New.
1104 * config/i386/sse.md (unspec): Add UNSPEC_UNSIGNED_PCMP, UNSPEC_TESTM,
1105 UNSPEC_TESTNM, UNSPEC_VTERNLOG, UNSPEC_ALIGN, UNSPEC_CONFLICT,
1106 UNSPEC_MASKED_EQ, UNSPEC_MASKED_GT, UNSPEC_GATHER_PREFETCH,
1107 UNSPEC_SCATTER_PREFETCH
1108 (VI48_512): New.
1109 (avx512f_ucmp<mode>3): Ditto.
1110 (avx512f_vternlog<mode>): Ditto.
1111 (avx512f_align<mode>): Ditto.
1112 (<shift_insn><mode>3): Ditto.
1113 (avx512f_<rotate>v<mode>): Ditto.
1114 (avx512f_<rotate><mode>): Ditto.
1115 (avx512f_eq<mode>3): Ditto.
1116 (avx512f_eq<mode>3_1): Ditto.
1117 (avx512f_gt<mode>3): Ditto.
1118 (avx512f_testm<mode>3): Ditto.
1119 (avx512f_testnm<mode>3): Ditto.
1120 (avx512pf_gatherpf<mode>): Ditto.
1121 (*avx512pf_gatherpf<mode>_mask): Ditto.
1122 (*avx512pf_gatherpf<mode>): Ditto.
1123 (avx512pf_scatterpf<mode>): Ditto.
1124 (*avx512pf_scatterpf<mode>_mask): Ditto.
1125 (*avx512pf_scatterpf<mode>): Ditto.
1126 (avx512f_vec_dup_gpr<mode>): Ditto.
1127 (clz<mode>2): Ditto.
1128 (conflict<mode>): Ditto.
1129 (REDUC_SMINMAX_MODE): Extened with wider modes.
1130 (reduc_<code>_<mode>): Ditto.
1131 (vlshr<mode>3): Ditto.
1132 (vashl<mode>3): Ditto.
1133
1134 2013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
1135 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1136 Sergey Lega <sergey.s.lega@intel.com>
1137 Anna Tikhonova <anna.tikhonova@intel.com>
1138 Ilya Tocar <ilya.tocar@intel.com>
1139 Andrey Turetskiy <andrey.turetskiy@intel.com>
1140 Ilya Verbin <ilya.verbin@intel.com>
1141 Kirill Yukhin <kirill.yukhin@intel.com>
1142 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1143
1144 * config/i386/sse.md (unspec): Added UNSPEC_VPERMI2, UNSPEC_VPERMT2,
1145 UNSPEC_SCATTER.
1146 (VI48F_512): New.
1147 (avx512fmaskmode): Ditto.
1148 (bcstscalarsuff): Ditto.
1149 (avx512f_blendm<mode>): Ditto.
1150 (cmp_imm_predicate): Ditto.
1151 (avx512f_cmp<mode>3): Ditto.
1152 (avx512f_vec_dup<mode>): Ditto.
1153 (avx512f_vec_dup_mem<mode>): Ditto.
1154 (avx512f_vpermi2var<mode>3): Ditto.
1155 (avx512f_vpermt2var<mode>3): Ditto.
1156 (vec_init<mode>): Ditto.
1157 (avx512f_gathersi<mode>): Ditto.
1158 (*avx512f_gathersi<mode>): Ditto.
1159 (*avx512f_gathersi<mode>_2): Ditto.
1160 (avx512f_gatherdi<mode>): Ditto.
1161 (*avx512f_gatherdi<mode>): Ditto.
1162 (*avx512f_gatherdi<mode>_2): Ditto.
1163 (avx512f_scattersi<mode>): Ditto.
1164 (*avx512f_scattersi<mode>): Ditto.
1165 (avx512f_scatterdi<mode>): Ditto.
1166 (*avx512f_scatterdi<mode>): Ditto.
1167 (sseintprefix): Extened with wider modes.
1168 (VEC_GATHER_IDXSI): Ditto.
1169 (VEC_GATHER_IDXDI): Ditto.
1170 (VEC_GATHER_SRCDI): Ditto.
1171
1172 2013-10-15 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
1173 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1174
1175 * config/arm/t-aprofile: New file.
1176 * config.gcc: Handle --with-multilib-list option.
1177
1178 2013-10-15 Bernd Schmidt <bernds@codesourcery.com>
1179
1180 * reload1.c (reloads_unique_chain_p): Ensure that r1 is the input for
1181 r2.
1182
1183 2013-10-15 Richard Biener <rguenther@suse.de>
1184
1185 * tree-loop-distribution.c (build_empty_rdg): Inline into
1186 single user.
1187 (rdg_flag_vertex): Inline into single user.
1188 (rdg_flag_vertex_and_dependent): Likewise.
1189 (build_rdg_partition_for_vertex): Remove processed bitmap.
1190 (rdg_build_partitions): Simplify.
1191
1192 2013-10-15 Richard Biener <rguenther@suse.de>
1193
1194 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
1195 Restructure forwarding through conversions and copies to
1196 avoid performing copy-propagation the wrong way. Adjust
1197 recursion invocations.
1198 (forward_propagate_addr_expr): Add argument stating if we
1199 are recursing from a single-use.
1200 (ssa_forward_propagate_and_combine): Adjust.
1201
1202 2013-10-14 David Malcolm <dmalcolm@redhat.com>
1203
1204 * dumpfile.h (gcc::dump_manager): New class, to hold state
1205 relating to dumpfile management.
1206 (get_dump_file_name): Remove in favor of method of dump_manager.
1207 (dump_initialized_p): Likewise.
1208 (dump_start): Likewise.
1209 (dump_finish): Likewise.
1210 (dump_switch_p): Likewise.
1211 (dump_register): Likewise.
1212 (get_dump_file_info): Likewise.
1213 * context.c (gcc::context::context): Construct the dump_manager
1214 instance.
1215 * context.h (gcc::context::get_dumps): New.
1216 (gcc::context::m_dumps): New.
1217 * coverage.c (coverage_init): Port to dump_manager API.
1218 * dumpfile.c (extra_dump_files): Convert to field of
1219 gcc::dump_manager.
1220 (extra_dump_files_in_use): Likewise.
1221 (extra_dump_files_alloced): Likewise.
1222 (gcc::dump_manager::dump_manager): New.
1223 (dump_register): Convert to...
1224 (gcc::dump_manager::dump_register): ...method, replacing
1225 function-static next_dump with m_next_dump field.
1226 (get_dump_file_info): Convert to...
1227 (gcc::dump_manager::get_dump_file_info): ...method.
1228 (get_dump_file_name): Convert to...
1229 (gcc::dump_manager::get_dump_file_name): ...method.
1230 (dump_start): Convert to...
1231 (gcc::dump_manager::dump_start): ...method.
1232 (dump_finish): Convert to...
1233 (gcc::dump_manager::dump_finish): ...method.
1234 (dump_begin): Replace body with...
1235 (gcc::dump_manager::dump_begin): ...new method.
1236 (dump_phase_enabled_p): Convert to...
1237 (gcc::dump_manager::dump_phase_enabled_p): ...method.
1238 (dump_phase_enabled_p): Convert to...
1239 (gcc::dump_manager::dump_phase_enabled_p): ...method.
1240 (dump_initialized_p): Convert to...
1241 (gcc::dump_manager::dump_initialized_p): ...method.
1242 (dump_flag_name): Replace body with...
1243 (gcc::dump_manager::dump_flag_name): ...new method.
1244 (dump_enable_all): Convert to...
1245 (gcc::dump_manager::dump_enable_all): ...new method.
1246 (opt_info_enable_passes): Convert to...
1247 (gcc::dump_manager::opt_info_enable_passes): ...new method.
1248 (dump_switch_p_1): Convert to...
1249 (gcc::dump_manager::dump_switch_p_1): ...new method.
1250 (dump_switch_p): Convert to...
1251 (gcc::dump_manager::dump_switch_p): ...new method.
1252 (opt_info_switch_p): Port to dump_manager API.
1253 (enable_rtl_dump_file): Likewise.
1254 * opts-global.c (handle_common_deferred_options): Port to new
1255 dump_manager API.
1256 * passes.c (pass_manager::finish_optimization_passes): Likewise.
1257 (pass_manager::register_one_dump_file): Likewise.
1258 (pass_manager::register_pass): Likewise.
1259 (pass_init_dump_file): Likewise.
1260 (pass_fini_dump_file): Likewise.
1261 * statistics.c (statistics_early_init): Likewise.
1262
1263 2013-10-14 Richard Biener <rguenther@suse.de>
1264
1265 * gimple.c (gimple_canonical_types, canonical_type_hash_cache,
1266 iterative_hash_canonical_type, gimple_canonical_type_hash,
1267 gimple_canonical_types_compatible_p, gimple_canonical_type_eq,
1268 gimple_register_canonical_type, print_gimple_types_stats,
1269 free_gimple_type_tables): Move to lto/lto.c
1270 (gt-gimple.h): Do not include.
1271 * gimple.h (gimple_register_canonical_type,
1272 print_gimple_types_stats, free_gimple_type_tables): Remove.
1273 * Makefile.in (GTFILES): Remove gimple.c.
1274
1275 2013-10-14 Travis Snoozy <quandary@remstate.com>
1276
1277 PR target/58716
1278 * config/msp430/msp430.c (msp430_option_override): Correct thinko
1279 scanning for msp430x targets.
1280
1281 2013-10-14 Eric Botcazou <ebotcazou@adacore.com>
1282
1283 PR bootstrap/58509
1284 * config/sparc/sparc-protos.h (widen_mem_for_ldd_peep): Declare.
1285 (registers_ok_for_ldd_peep): Move around.
1286 * config/sparc/sparc.c (widen_mem_for_ldd_peep): New.
1287 * config/sparc/sparc.md (widening peepholes): Use it.
1288
1289 2013-10-14 Richard Biener <rguenther@suse.de>
1290
1291 PR middle-end/58712
1292 PR middle-end/55358
1293 * gimple.c (iterative_hash_canonical_type): Make sure to
1294 record the hash into the correct hashtable slot.
1295
1296 2013-10-13 Eric Botcazou <ebotcazou@adacore.com>
1297
1298 PR rtl-optimization/58662
1299 * combine.c (try_combine): Take into account death nodes on I2 when
1300 splitting a PARALLEL of two independent SETs. Fix dump message.
1301
1302 2013-10-12 Oleg Endo <olegendo@gcc.gnu.org>
1303
1304 PR target/51244
1305 * config/sh/sh_treg_combine.cc: New SH specific RTL pass.
1306 * config.gcc (SH extra_objs): Add sh_ifcvt.o.
1307 * config/sh/t-sh (sh_treg_combine.o): New entry.
1308 * config/sh/sh.c (sh_fixed_condition_code_regs): New function that
1309 implements the target hook TARGET_FIXED_CONDITION_CODE_REGS.
1310 (register_sh_passes): New function. Register sh_treg_combine pass.
1311 (sh_option_override): Invoke it.
1312 (sh_canonicalize_comparison): Handle op0_preserve_value.
1313 * sh.md (*cbranch_t"): Do not try to optimize missed test and branch
1314 opportunities. Canonicalize branch condition.
1315 (nott): Allow only if pseudos can be created for non-SH2A.
1316
1317 2013-10-12 H.J. Lu <hongjiu.lu@intel.com>
1318
1319 PR target/58690
1320 * config/i386/i386.c (ix86_copy_addr_to_reg): New function.
1321 (ix86_expand_movmem): Replace copy_addr_to_reg with
1322 ix86_copy_addr_to_reg.
1323 (ix86_expand_setmem): Likewise.
1324
1325 2013-10-12 Alexander Monakov <amonakov@ispras.ru>
1326
1327 * config/i386/i386.c (ix86_expand_sse_compare_and_jump): Use mode
1328 provided by ix86_fp_compare_mode instead of CCFPUmode.
1329
1330 2013-10-12 James Greenhalgh <james.greenhalgh@arm.com>
1331
1332 * config/aarch64/arm_neon.h
1333 (vtbx<1,3>_<psu>8): Fix register constriants.
1334
1335 2013-10-11 Jeff Law <law@redhat.com>
1336
1337 PR tree-optimization/58640
1338 * tree-ssa-threadupdate.c (mark_threaded_blocks): Truncate jump
1339 threading paths that cross over two loop entry points.
1340
1341 2013-10-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1342
1343 * config/rs6000/vsx.md (*vsx_le_perm_load_v2di): Generalize to
1344 handle vector float as well.
1345 (*vsx_le_perm_load_v4si): Likewise.
1346 (*vsx_le_perm_store_v2di): Likewise.
1347 (*vsx_le_perm_store_v4si): Likewise.
1348
1349 2013-10-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1350
1351 * config/rs6000/vector.md (vec_realign_load<mode>): Generate vperm
1352 directly to circumvent subtract from splat{31} workaround.
1353 * config/rs6000/rs6000-protos.h (altivec_expand_vec_perm_le): New
1354 prototype.
1355 * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): New.
1356 * config/rs6000/altivec.md (define_c_enum "unspec"): Add
1357 UNSPEC_VPERM_X and UNSPEC_VPERM_UNS_X.
1358 (altivec_vperm_<mode>): Convert to define_insn_and_split to
1359 separate big and little endian logic.
1360 (*altivec_vperm_<mode>_internal): New define_insn.
1361 (altivec_vperm_<mode>_uns): Convert to define_insn_and_split to
1362 separate big and little endian logic.
1363 (*altivec_vperm_<mode>_uns_internal): New define_insn.
1364 (vec_permv16qi): Add little endian logic.
1365
1366 2013-10-11 Marc Glisse <marc.glisse@inria.fr>
1367
1368 * doc/extend.texi (returns_nonnull): Remove arguments.
1369
1370 2013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1371 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1372 Sergey Lega <sergey.s.lega@intel.com>
1373 Anna Tikhonova <anna.tikhonova@intel.com>
1374 Ilya Tocar <ilya.tocar@intel.com>
1375 Andrey Turetskiy <andrey.turetskiy@intel.com>
1376 Ilya Verbin <ilya.verbin@intel.com>
1377 Kirill Yukhin <kirill.yukhin@intel.com>
1378 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1379
1380 * config/i386/sse.md (VI48F_256_512): New.
1381 (avx2_permvar<mode>): Change to ...
1382 (<avx2_avx512f>_permvar<mode>): This.
1383
1384 2013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1385 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1386 Sergey Lega <sergey.s.lega@intel.com>
1387 Anna Tikhonova <anna.tikhonova@intel.com>
1388 Ilya Tocar <ilya.tocar@intel.com>
1389 Andrey Turetskiy <andrey.turetskiy@intel.com>
1390 Ilya Verbin <ilya.verbin@intel.com>
1391 Kirill Yukhin <kirill.yukhin@intel.com>
1392 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1393
1394 * config/i386/i386.c (bdesc_args): Change corresponding pattern for
1395 __builtin_ia32_cvtps2dq, __builtin_ia32_cvtps2dq256.
1396 * config/i386/sse.md (VI4_AVX): New.
1397 (sf2simodelower): Ditto.
1398 (sse2_cvtps2dq): Change to ...
1399 (<sse2_avx_avx512f>_fix_notrunc<sf2simodelower><mode>): This.
1400
1401 2013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1402 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1403 Sergey Lega <sergey.s.lega@intel.com>
1404 Anna Tikhonova <anna.tikhonova@intel.com>
1405 Ilya Tocar <ilya.tocar@intel.com>
1406 Andrey Turetskiy <andrey.turetskiy@intel.com>
1407 Ilya Verbin <ilya.verbin@intel.com>
1408 Kirill Yukhin <kirill.yukhin@intel.com>
1409 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1410
1411 * config/i386/sse.md (V_512): New.
1412 (VI_512): Ditto.
1413 (vcond<V_512:mode><VF_512:mode>): Ditto.
1414 (vcond<V_512:mode><VI_512:mode>): Ditto.
1415 (vcondu<V_512:mode><VI_512:mode>): Ditto.
1416
1417 2013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1418 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1419 Sergey Lega <sergey.s.lega@intel.com>
1420 Anna Tikhonova <anna.tikhonova@intel.com>
1421 Ilya Tocar <ilya.tocar@intel.com>
1422 Andrey Turetskiy <andrey.turetskiy@intel.com>
1423 Ilya Verbin <ilya.verbin@intel.com>
1424 Kirill Yukhin <kirill.yukhin@intel.com>
1425 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1426
1427 * config/i386/i386.c (ix86_rtx_costs): Enable fma for TARGET_AVX512F.
1428 * config/i386/sse.md (FMAMODEM): Changed modes and conditions.
1429 (FMAMODE): Ditto.
1430 (fma<mode>4): Removed condition.
1431 (fms<mode>4): Ditto.
1432 (fnma<mode>4): Ditto.
1433 (fnms<mode>4): Ditto.
1434 (fma4i_fmadd_<mode>): Ditto.
1435 (*fma_fmadd_<mode>): Ditto.
1436 (*fma_fmsub_<mode>): Ditto.
1437 (*fma_fnmadd_<mode>): Ditto.
1438 (*fma_fnmsub_<mode>): Ditto.
1439 (fmaddsub_<mode>): Allow for TARGET_AVX512F.
1440 (*fma_fmaddsub_<mode>): Ditto.
1441 (*fma_fmsubadd_<mode>): Ditto.
1442 (*fmai_fmadd_<mode>): Ditto.
1443 (*fmai_fmsub_<mode>): Ditto.
1444 (*fmai_fnmadd_<mode>): Ditto.
1445 (*fmai_fnmsub_<mode>): Ditto.
1446
1447 2013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1448 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1449 Sergey Lega <sergey.s.lega@intel.com>
1450 Anna Tikhonova <anna.tikhonova@intel.com>
1451 Ilya Tocar <ilya.tocar@intel.com>
1452 Andrey Turetskiy <andrey.turetskiy@intel.com>
1453 Ilya Verbin <ilya.verbin@intel.com>
1454 Kirill Yukhin <kirill.yukhin@intel.com>
1455 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1456
1457 * config/i386/sse.md (VI248_AVX2_8_AVX512F): New.
1458 (VI124_256): Changed to ...
1459 (VI124_256_48_512): This.
1460 (ssepackmode): Extended with wider modes.
1461 (<code><mode>3): Changed iterator.
1462 (*avx2_<code><mode>3): Ditto.
1463 (vec_pack_trunc_<mode>): Ditto.
1464
1465 2013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1466 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1467 Sergey Lega <sergey.s.lega@intel.com>
1468 Anna Tikhonova <anna.tikhonova@intel.com>
1469 Ilya Tocar <ilya.tocar@intel.com>
1470 Andrey Turetskiy <andrey.turetskiy@intel.com>
1471 Ilya Verbin <ilya.verbin@intel.com>
1472 Kirill Yukhin <kirill.yukhin@intel.com>
1473 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1474
1475 * config/i386/sse.md (VI124_AVX2_48_AVX512F): New.
1476 (VI8F_256_512): Ditto.
1477 (abs<mode>2): Changed iterator.
1478 (avx2_perm<mode>): Changed to ...
1479 (<avx2_avx512f>_perm<mode>): This.
1480 (avx2_perm<mode>_1): Changed to ...
1481 (<avx2_avx512f>_perm<mode>_1): This.
1482
1483 2013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1484 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1485 Sergey Lega <sergey.s.lega@intel.com>
1486 Anna Tikhonova <anna.tikhonova@intel.com>
1487 Ilya Tocar <ilya.tocar@intel.com>
1488 Andrey Turetskiy <andrey.turetskiy@intel.com>
1489 Ilya Verbin <ilya.verbin@intel.com>
1490 Kirill Yukhin <kirill.yukhin@intel.com>
1491 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1492
1493 * config/i386/sse.md (VI48_AVX512F): New.
1494 (VI48_AVX2): Changed to ...
1495 (VI48_AVX2_48_AVX512F): This.
1496 (avx2_ashrv<mode>): Changed to ...
1497 (<avx2_avx512f>_ashrv<mode>): This.
1498 (avx2_<shift_insn>v<mode>): Changed to ...
1499 (<avx2_avx512f>_<shift_insn>v<mode>): This.
1500
1501 2013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1502 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1503 Sergey Lega <sergey.s.lega@intel.com>
1504 Anna Tikhonova <anna.tikhonova@intel.com>
1505 Ilya Tocar <ilya.tocar@intel.com>
1506 Andrey Turetskiy <andrey.turetskiy@intel.com>
1507 Ilya Verbin <ilya.verbin@intel.com>
1508 Kirill Yukhin <kirill.yukhin@intel.com>
1509 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1510
1511 * config/i386/sse.md (VI4_AVX512F): New.
1512 (VI8_AVX2_AVX512F): Ditto.
1513 (mul<mode>3): Extended with wider modes.
1514 (*<sse4_1_avx2>_mul<mode>3): Ditto.
1515 (mul<mode>3): Ditto.
1516 (vec_widen_<s>mult_odd_<mode>): Ditto.
1517
1518 2013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1519 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1520 Sergey Lega <sergey.s.lega@intel.com>
1521 Anna Tikhonova <anna.tikhonova@intel.com>
1522 Ilya Tocar <ilya.tocar@intel.com>
1523 Andrey Turetskiy <andrey.turetskiy@intel.com>
1524 Ilya Verbin <ilya.verbin@intel.com>
1525 Kirill Yukhin <kirill.yukhin@intel.com>
1526 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1527
1528 * config/i386/sse.md (VI2_AVX512F): New.
1529 (VI124_AVX512F): Ditto.
1530 (sseunpackmode): Extended with wider modes.
1531 (sseunpackfltmode): Ditto.
1532 (vec_unpacks_float_hi_<mode>): Ditto.
1533 (vec_unpacks_float_lo_<mode>): Ditto.
1534 (vec_unpacku_float_hi_<mode>): Ditto.
1535 (vec_unpacku_float_lo_<mode>): Ditto.
1536 (vec_unpacks_lo_<mode>): Ditto.
1537 (vec_unpacks_hi_<mode>): Ditto.
1538 (vec_unpacku_lo_<mode>): Ditto.
1539 (vec_unpacku_hi_<mode>): Ditto.
1540
1541 2013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1542 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1543 Sergey Lega <sergey.s.lega@intel.com>
1544 Anna Tikhonova <anna.tikhonova@intel.com>
1545 Ilya Tocar <ilya.tocar@intel.com>
1546 Andrey Turetskiy <andrey.turetskiy@intel.com>
1547 Ilya Verbin <ilya.verbin@intel.com>
1548 Kirill Yukhin <kirill.yukhin@intel.com>
1549 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1550
1551 * config/i386/i386.md (multdiv): New.
1552 (multdiv_mnemonic): Ditto.
1553 * config/i386/sse.md (<sse>_vmmul<mode>3): Changed to...
1554 (<sse>_vm<multdiv_mnemonic><mode>3): This.
1555 (<sse>_vmdiv<mode>3): Removed.
1556
1557 2013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1558 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1559 Sergey Lega <sergey.s.lega@intel.com>
1560 Anna Tikhonova <anna.tikhonova@intel.com>
1561 Ilya Tocar <ilya.tocar@intel.com>
1562 Andrey Turetskiy <andrey.turetskiy@intel.com>
1563 Ilya Verbin <ilya.verbin@intel.com>
1564 Kirill Yukhin <kirill.yukhin@intel.com>
1565 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1566
1567 * config/i386/sse.md (V): Extended with wider modes.
1568 (VF2): Ditto.
1569 (ssehalfvecmode): Ditto.
1570 (i128): Ditto.
1571 (ssepackfltmode): Ditto.
1572 (avx_vec_concat<mode>): Ditto.
1573 (V_256_512): New iterator.
1574 (VF2_512_256): Ditto.
1575 (si2dfmode): New attribute.
1576 (si2dfmodelower): Ditto.
1577 (sf2dfmode): Ditto.
1578 (concat_tg_mode): Ditto.
1579 (floatv4siv4df2): Changed to ...
1580 (float<si2dfmodelower><mode>2): This.
1581 (avx_cvtps2pd256): Changed to ...
1582 (<sse2_avx_avx512f>_cvtps2pd<avxsizesuffix>): This.
1583 (vec_pack_trunc_v4df): Changed to ...
1584 (vec_pack_trunc_<mode>): This.
1585 (avx_vpermil<mode>): Changed to ...
1586 (<sse2_avx_avx512f>_vpermil<mode>): This.
1587 (<fixsuffix>fix_truncv8dfv8si2): New.
1588 (vec_pack_sfix_trunc_v8df): Ditto.
1589 (avx512f_rndscale<mode>): Ditto.
1590 (avx512f_roundpd512): Ditto.
1591 (vec_pack_ufix_trunc_<mode>): Updated iterator.
1592
1593 2013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1594 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1595 Sergey Lega <sergey.s.lega@intel.com>
1596 Anna Tikhonova <anna.tikhonova@intel.com>
1597 Ilya Tocar <ilya.tocar@intel.com>
1598 Andrey Turetskiy <andrey.turetskiy@intel.com>
1599 Ilya Verbin <ilya.verbin@intel.com>
1600 Kirill Yukhin <kirill.yukhin@intel.com>
1601 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1602
1603 * config/i386/i386.md (any_fix): New iterator.
1604 (fixsuffix): New attribute.
1605 * config/i386/sse.md (VF1): Extened with wider modes.
1606 (VI): Ditto.
1607 (VI_AVX2): Ditto.
1608 (VI8): Ditto.
1609 (sseintvecmodelower): Ditto.
1610 (ssescalarmode): Ditto.
1611 (ssescalarnum): Ditto.
1612 (VF1_128_256): New.
1613 (ssexmmmode): Ditto.
1614 (<fixsuffix>fix_truncv16sfv16si2): Ditto.
1615 (<sse>_rcp<mode>2): Change iterator.
1616 (rsqrt<mode>2): Ditto.
1617 (<sse>_rsqrt<mode>2): Ditto.
1618 (avx2_vec_dup<mode>): Ditto.
1619 (<sse4_1>_round<ssemodesuffix>_sfix<avxsizesuffix>): Ditto.
1620 (round<mode>2_sfix): Ditto.
1621 (avx2_pbroadcast<mode>): Ditto.
1622 (*andnot<mode>3): Handle XI mode.
1623 (*<code><mode>3): Ditto.
1624 (AVXTOSSEMODE): Removed.
1625 (avx_vpermil<mode>): Changed to ...
1626 (<sse2_avx_avx512f>_vpermil<mode>): This.
1627
1628 2013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1629 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1630 Sergey Lega <sergey.s.lega@intel.com>
1631 Anna Tikhonova <anna.tikhonova@intel.com>
1632 Ilya Tocar <ilya.tocar@intel.com>
1633 Andrey Turetskiy <andrey.turetskiy@intel.com>
1634 Ilya Verbin <ilya.verbin@intel.com>
1635 Kirill Yukhin <kirill.yukhin@intel.com>
1636 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1637
1638 * config/i386/sse.md (<sse2>_movnt<mode>): Update constraint to "v".
1639 (<sse>_comi): Ditto.
1640 (<sse>_ucomi): Ditto.
1641 (sse_cvtss2siq_2): Ditto.
1642 (sse2_cvtsd2si): Ditto.
1643 (sse2_cvtsd2siq): Ditto.
1644 (sse2_cvttsd2si): Ditto.
1645 (sse2_cvttsd2siq): Ditto.
1646 (<shift_insn><mode>3): Ditto.
1647 (sse2_cvtsi2sdq): Update constraint and prefix.
1648 (sse_cvtsi2ss): Update prefix.
1649 (sse_cvtsi2ssq): Ditto.
1650
1651 2013-10-11 Jakub Jelinek <jakub@redhat.com>
1652
1653 * tree-vrp.c (infer_nonnull_range): Use is_gimple_call,
1654 ignore internal calls.
1655
1656 2013-10-11 Richard Biener <rguenther@suse.de>
1657
1658 * tree-pretty-print.c (dump_generic_node): Allow to dump
1659 both (D) and (ab) for SSA_NAMEs. Mark INTEGER_CSTs with
1660 (OVF) if TREE_OVERFLOW is set.
1661
1662 2013-10-11 Thomas Schwinge <thomas@codesourcery.com>
1663
1664 * tree.h (OMP_CLAUSE_CODE): Remove duplicate definition.
1665
1666 * gimple.c: GIMPLE statements have subcodes, not sub-codes.
1667 * gimple.h: Likewise.
1668
1669 * doc/generic.texi (OpenMP): OMP_CLAUSE_* are subcodes, not sub-codes.
1670
1671 * doc/generic.texi (Adding new DECL node types): Explain *_CHECK
1672 macros.
1673
1674 * doc/gimple.texi (is_gimple_omp): Move into the correct section.
1675
1676 * acinclude.m4 (gcc_GAS_FLAGS): Add more gcc_cv_as_flags overrides.
1677 * configure: Regenerate.
1678
1679 2013-10-11 Jakub Jelinek <jakub@redhat.com>
1680
1681 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__LOOPTEMP_
1682 and new OpenMP 4.0 clauses, handle UDR OMP_CLAUSE_REDUCTION,
1683 formatting fixes, use pp_colon instead of pp_character (..., ':'),
1684 similarly pp_right_paren.
1685 (dump_generic_node): Handle OMP_DISTRIBUTE, OMP_TEAMS,
1686 OMP_TARGET_DATA, OMP_TARGET, OMP_TARGET_UPDATE, OMP_TASKGROUP,
1687 allow OMP_FOR_INIT to be NULL, handle OMP_ATOMIC_SEQ_CST.
1688 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add OpenMP 4.0
1689 clauses.
1690 (omp_declare_simd_clauses_equal,
1691 omp_remove_redundant_declare_simd_attrs): New functions.
1692 (attribute_value_equal): Use omp_declare_simd_clauses_equal.
1693 (walk_tree_1): Handle new OpenMP 4.0 clauses.
1694 * tree.h (OMP_LOOP_CHECK): Define.
1695 (OMP_FOR_BODY, OMP_FOR_CLAUSES, OMP_FOR_INIT, OMP_FOR_COND,
1696 OMP_FOR_INCR, OMP_FOR_PRE_BODY): Use it.
1697 (OMP_TASKGROUP_BODY, OMP_TEAMS_BODY, OMP_TEAMS_CLAUSES,
1698 OMP_TARGET_DATA_BODY, OMP_TARGET_DATA_CLAUSES, OMP_TARGET_BODY,
1699 OMP_TARGET_CLAUSES, OMP_TARGET_UPDATE_CLAUSES, OMP_CLAUSE_SIZE,
1700 OMP_ATOMIC_SEQ_CST, OMP_CLAUSE_DEPEND_KIND, OMP_CLAUSE_MAP_KIND,
1701 OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION, OMP_CLAUSE_PROC_BIND_KIND,
1702 OMP_CLAUSE_REDUCTION_OMP_ORIG_REF, OMP_CLAUSE_ALIGNED_ALIGNMENT,
1703 OMP_CLAUSE_NUM_TEAMS_EXPR, OMP_CLAUSE_THREAD_LIMIT_EXPR,
1704 OMP_CLAUSE_DEVICE_ID, OMP_CLAUSE_DIST_SCHEDULE_CHUNK_EXPR,
1705 OMP_CLAUSE_SIMDLEN_EXPR): Define.
1706 (OMP_CLAUSE_DECL): Change range up to OMP_CLAUSE__LOOPTEMP_.
1707 (omp_remove_redundant_declare_simd_attrs): New prototype.
1708 * gimple.def (GIMPLE_OMP_TASKGROUP, GIMPLE_OMP_TARGET,
1709 GIMPLE_OMP_TEAMS): New codes.
1710 (GIMPLE_OMP_RETURN): Use GSS_OMP_ATOMIC_STORE instead of GSS_BASE.
1711 * omp-low.c (struct omp_context): Add cancel_label and cancellable
1712 fields.
1713 (target_nesting_level): New variable.
1714 (extract_omp_for_data): Handle GF_OMP_FOR_KIND_DISTRIBUTE and
1715 OMP_CLAUSE_DIST_SCHEDULE. Don't fallback to library implementation
1716 for collapse > 1 static schedule unless ordered.
1717 (get_ws_args_for): Add par_stmt argument. Handle combined loops.
1718 (determine_parallel_type): Adjust get_ws_args_for caller.
1719 (install_var_field): Handle mask & 4 for double indirection.
1720 (scan_sharing_clauses): Ignore shared clause on teams construct.
1721 Handle OMP_CLAUSE__LOOPTEMP_ and new OpenMP 4.0 clauses.
1722 (create_omp_child_function): If inside target or declare target
1723 constructs, set "omp declare target" attribute on the child function.
1724 (find_combined_for): New function.
1725 (scan_omp_parallel): Handle combined loops.
1726 (scan_omp_target, scan_omp_teams): New functions.
1727 (check_omp_nesting_restrictions): Check new OpenMP 4.0 nesting
1728 restrictions and set ctx->cancellable for cancellable constructs.
1729 (scan_omp_1_stmt): Call check_omp_nesting_restrictions also on
1730 selected builtin calls. Handle GIMPLE_OMP_TASKGROUP,
1731 GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS.
1732 (build_omp_barrier): Add lhs argument, return gimple rather than tree.
1733 (omp_clause_aligned_alignment): New function.
1734 (lower_rec_simd_input_clauses): Only call SET_DECL_VALUE_EXPR
1735 on decls.
1736 (lower_rec_input_clauses): Add FD argument. Ignore shared clauses
1737 on teams constructs. Handle user defined reductions and new
1738 OpenMP 4.0 clauses.
1739 (lower_reduction_clauses): Don't set placeholder to address of ref
1740 if it has already the right type.
1741 (lower_send_clauses): Handle OMP_CLAUSE__LOOPTEMP_.
1742 (expand_parallel_call): Use the new non-_start suffixed builtins,
1743 handle OMP_CLAUSE_PROC_BIND, don't call the outlined function
1744 and GOMP_parallel_end after the call.
1745 (expand_task_call): Handle OMP_CLAUSE_DEPEND.
1746 (expand_omp_for_init_counts): Handle combined loops.
1747 (expand_omp_for_init_vars): Add inner_stmt argument, handle combined
1748 loops.
1749 (expand_omp_for_generic): Likewise. Use GOMP_loop_end_cancel at the
1750 end of cancellable loops.
1751 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
1752 Likewise. Handle collapse > 1 loops.
1753 (expand_omp_simd): Handle combined loops.
1754 (expand_omp_for): Add inner_stmt argument, adjust callers of
1755 expand_omp_for* functions, use expand_omp_for_static*chunk even
1756 for collapse > 1 unless ordered.
1757 (expand_omp_sections): Use GOMP_sections_end_cancel at the end
1758 of cancellable sections.
1759 (expand_omp_single): Remove need_barrier variable, just rely on
1760 gimple_omp_return_nowait_p. Adjust build_omp_barrier caller.
1761 (expand_omp_synch): Allow GIMPLE_OMP_TASKGROUP and GIMPLE_OMP_TEAMS.
1762 (expand_omp_atomic_load, expand_omp_atomic_store,
1763 expand_omp_atomic_fetch_op): Handle gimple_omp_atomic_seq_cst_p.
1764 (expand_omp_target): New function.
1765 (expand_omp): Handle combined loops. Handle GIMPLE_OMP_TASKGROUP,
1766 GIMPLE_OMP_TEAMS, GIMPLE_OMP_TARGET.
1767 (build_omp_regions_1): Immediately close region for
1768 GF_OMP_TARGET_KIND_UPDATE.
1769 (maybe_add_implicit_barrier_cancel): New function.
1770 (lower_omp_sections): Adjust lower_rec_input_clauses caller. Handle
1771 cancellation.
1772 (lower_omp_single): Likewise. Add clobber after the barrier.
1773 (lower_omp_taskgroup): New function.
1774 (lower_omp_for): Handle combined loops. Adjust
1775 lower_rec_input_clauses caller. Handle cancellation.
1776 (lower_depend_clauses): New function.
1777 (lower_omp_taskreg): Lower depend clauses. Adjust
1778 lower_rec_input_clauses caller. Add clobber after the call. Handle
1779 cancellation.
1780 (lower_omp_target, lower_omp_teams): New functions.
1781 (lower_omp_1): Handle cancellation. Handle GIMPLE_OMP_TASKGROUP,
1782 GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GOMP_barrier, GOMP_cancel
1783 and GOMP_cancellation_point calls.
1784 (lower_omp): Fold stmts inside of target region.
1785 (diagnose_sb_1, diagnose_sb_2): Handle GIMPLE_OMP_TASKGROUP,
1786 GIMPLE_OMP_TARGET and GIMPLE_OMP_TEAMS.
1787 * builtin-types.def (DEF_FUNCTION_TYPE_8): Document.
1788 (BT_FN_VOID_OMPFN_PTR_UINT,
1789 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
1790 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG,
1791 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): Remove.
1792 (BT_FN_VOID_OMPFN_PTR_UINT_UINT_UINT,
1793 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_UINT,
1794 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG_UINT,
1795 BT_FN_BOOL_INT, BT_FN_BOOL_INT_BOOL, BT_FN_VOID_UINT_UINT,
1796 BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
1797 BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
1798 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): New.
1799 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
1800 call_may_clobber_ref_p_1): Handle BUILT_IN_GOMP_BARRIER_CANCEL,
1801 BUILT_IN_GOMP_TASKGROUP_END, BUILT_IN_GOMP_LOOP_END_CANCEL,
1802 BUILT_IN_GOMP_SECTIONS_END_CANCEL. Don't handle
1803 BUILT_IN_GOMP_PARALLEL_END.
1804 * gimple-low.c (lower_stmt): Handle GIMPLE_OMP_TASKGROUP,
1805 GIMPLE_OMP_TARGET and GIMPLE_OMP_TEAMS.
1806 * gimple-pretty-print.c (dump_gimple_omp_for): Handle
1807 GF_OMP_FOR_KIND_DISTRIBUTE.
1808 (dump_gimple_omp_target, dump_gimple_omp_teams): New functions.
1809 (dump_gimple_omp_block): Handle GIMPLE_OMP_TASKGROUP.
1810 (dump_gimple_omp_return): Print lhs if it has any.
1811 (dump_gimple_omp_atomic_load, dump_gimple_omp_atomic_store): Handle
1812 gimple_omp_atomic_seq_cst_p.
1813 (pp_gimple_stmt_1): Handle GIMPLE_OMP_TASKGROUP, GIMPLE_OMP_TARGET
1814 and GIMPLE_OMP_TEAMS.
1815 * langhooks.c (lhd_omp_mappable_type): New function.
1816 * tree-vectorizer.c (struct simd_array_to_simduid): Fix up comment.
1817 * langhooks.h (struct lang_hooks_for_types): Add omp_mappable_type
1818 hook.
1819 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP,
1820 GOVD_ALIGNED and GOVD_MAP_TO_ONLY.
1821 (enum omp_region_type): Add ORT_TEAMS, ORT_TARGET_DATA and
1822 ORT_TARGET.
1823 (struct gimplify_omp_ctx): Add combined_loop field.
1824 (gimplify_call_expr, gimplify_modify_expr): Don't call fold_stmt
1825 on stmts inside of target region.
1826 (is_gimple_stmt): Return true for OMP_DISTRIBUTE and OMP_TASKGROUP.
1827 (omp_firstprivatize_variable): Handle GOVD_MAP, GOVD_ALIGNED,
1828 ORT_TARGET and ORT_TARGET_DATA.
1829 (omp_add_variable): Avoid checks on readding var for GOVD_ALIGNED.
1830 Handle GOVD_MAP.
1831 (omp_notice_threadprivate_variable): Complain about threadprivate
1832 variables in target region.
1833 (omp_notice_variable): Complain about vars with non-mappable type
1834 in target region. Handle ORT_TEAMS, ORT_TARGET and ORT_TARGET_DATA.
1835 (omp_check_private): Ignore ORT_TARGET* regions.
1836 (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1,
1837 gimplify_adjust_omp_clauses): Handle new OpenMP 4.0 clauses.
1838 (find_combined_omp_for): New function.
1839 (gimplify_omp_for): Handle gimplification of combined loops.
1840 (gimplify_omp_workshare): Gimplify also OMP_TARGET, OMP_TARGET_DATA,
1841 OMP_TEAMS.
1842 (gimplify_omp_target_update): New function.
1843 (gimplify_omp_atomic): Handle OMP_ATOMIC_SEQ_CST.
1844 (gimplify_expr): Handle OMP_DISTRIBUTE, OMP_TARGET, OMP_TARGET_DATA,
1845 OMP_TARGET_UPDATE, OMP_TEAMS, OMP_TASKGROUP.
1846 (gimplify_body): If fndecl has "omp declare target" attribute, add
1847 implicit ORT_TARGET context around it.
1848 * tree.def (OMP_DISTRIBUTE, OMP_TEAMS, OMP_TARGET_DATA, OMP_TARGET,
1849 OMP_TASKGROUP, OMP_TARGET_UPDATE): New tree codes.
1850 * tree-nested.c (convert_nonlocal_reference_stmt,
1851 convert_local_reference_stmt, convert_gimple_call): Handle
1852 GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
1853 * omp-builtins.def (BUILT_IN_GOMP_TASK): Use
1854 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR
1855 instead of BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT.
1856 (BUILT_IN_GOMP_TARGET, BUILT_IN_GOMP_TARGET_DATA,
1857 BUILT_IN_GOMP_TARGET_END_DATA, BUILT_IN_GOMP_TARGET_UPDATE,
1858 BUILT_IN_GOMP_TEAMS, BUILT_IN_BARRIER_CANCEL,
1859 BUILT_IN_GOMP_LOOP_END_CANCEL,
1860 BUILT_IN_GOMP_SECTIONS_END_CANCEL, BUILT_IN_OMP_GET_TEAM_NUM,
1861 BUILT_IN_OMP_GET_NUM_TEAMS, BUILT_IN_GOMP_TASKGROUP_START,
1862 BUILT_IN_GOMP_TASKGROUP_END, BUILT_IN_GOMP_PARALLEL_LOOP_STATIC,
1863 BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC,
1864 BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED,
1865 BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME, BUILT_IN_GOMP_PARALLEL,
1866 BUILT_IN_GOMP_PARALLEL_SECTIONS, BUILT_IN_GOMP_CANCEL,
1867 BUILT_IN_GOMP_CANCELLATION_POINT): New built-ins.
1868 (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
1869 BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
1870 BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
1871 BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
1872 BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END,
1873 BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Remove.
1874 * tree-inline.c (remap_gimple_stmt, estimate_num_insns):
1875 Handle GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
1876 * gimple.c (gimple_build_omp_taskgroup, gimple_build_omp_target,
1877 gimple_build_omp_teams): New functions.
1878 (walk_gimple_op): Handle GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and
1879 GIMPLE_OMP_TASKGROUP. Walk optional lhs on GIMPLE_OMP_RETURN.
1880 (walk_gimple_stmt, gimple_copy): Handle GIMPLE_OMP_TARGET,
1881 GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
1882 * gimple.h (enum gf_mask): GF_OMP_FOR_KIND_DISTRIBUTE,
1883 GF_OMP_FOR_COMBINED, GF_OMP_FOR_COMBINED_INTO,
1884 GF_OMP_TARGET_KIND_MASK, GF_OMP_TARGET_KIND_REGION,
1885 GF_OMP_TARGET_KIND_DATA, GF_OMP_TARGET_KIND_UPDATE,
1886 GF_OMP_ATOMIC_SEQ_CST): New.
1887 (gimple_build_omp_taskgroup, gimple_build_omp_target,
1888 gimple_build_omp_teams): New prototypes.
1889 (gimple_has_substatements): Handle GIMPLE_OMP_TARGET,
1890 GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
1891 (gimple_omp_subcode): Use GIMPLE_OMP_TEAMS instead of
1892 GIMPLE_OMP_SINGLE as end of range.
1893 (gimple_omp_return_set_lhs, gimple_omp_return_lhs,
1894 gimple_omp_return_lhs_ptr, gimple_omp_atomic_seq_cst_p,
1895 gimple_omp_atomic_set_seq_cst, gimple_omp_for_combined_p,
1896 gimple_omp_for_set_combined_p, gimple_omp_for_combined_into_p,
1897 gimple_omp_for_set_combined_into_p, gimple_omp_target_clauses,
1898 gimple_omp_target_clauses_ptr, gimple_omp_target_set_clauses,
1899 gimple_omp_target_kind, gimple_omp_target_set_kind,
1900 gimple_omp_target_child_fn, gimple_omp_target_child_fn_ptr,
1901 gimple_omp_target_set_child_fn, gimple_omp_target_data_arg,
1902 gimple_omp_target_data_arg_ptr, gimple_omp_target_set_data_arg,
1903 gimple_omp_teams_clauses, gimple_omp_teams_clauses_ptr,
1904 gimple_omp_teams_set_clauses): New inlines.
1905 (CASE_GIMPLE_OMP): Add GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS
1906 and GIMPLE_OMP_TASKGROUP.
1907 * tree-core.h (enum omp_clause_code): Add new OpenMP 4.0 clause codes.
1908 (enum omp_clause_depend_kind, enum omp_clause_map_kind,
1909 enum omp_clause_proc_bind_kind): New.
1910 (union omp_clause_subcode): Add depend_kind, map_kind and
1911 proc_bind_kind fields.
1912 * tree-cfg.c (make_edges): Handle GIMPLE_OMP_TARGET,
1913 GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
1914 * langhooks-def.h (lhd_omp_mappable_type): New prototype.
1915 (LANG_HOOKS_OMP_MAPPABLE_TYPE): Define.
1916 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
1917
1918 2013-10-10 Teresa Johnson <tejohnson@google.com>
1919
1920 * predict.c (tree_estimate_probability): Add new parameter
1921 for estimate_bb_frequencies.
1922 (estimate_bb_frequencies): Add new parameter to force estimation.
1923 (rebuild_frequencies): When max frequency in function is small,
1924 recompute counts from frequencies.
1925 * predict.h (estimate_bb_frequencies): New parameter.
1926
1927 2013-10-10 David Malcolm <dmalcolm@redhat.com>
1928
1929 * ipa-inline.c (ipa_inline): Fix leak of "order" when
1930 optimizations are disabled.
1931
1932 2013-10-10 David Malcolm <dmalcolm@redhat.com>
1933
1934 * coverage.c (coverage_finish): Fix leak of da_file_name.
1935
1936 2013-10-10 Jan Hubicka <jh@suse.cz>
1937
1938 * config/i386/x86-tune.def: Enable X86_TUNE_SSE_TYPELESS_STORES
1939 for generic, enable X86_TUNE_SSE_LOAD0_BY_PXOR for Bulldozer,
1940 Bobcat and generic.
1941
1942 2013-10-10 Jakub Jelinek <jakub@redhat.com>
1943
1944 PR middle-end/58670
1945 * stmt.c (expand_asm_operands): Add FALLTHRU_BB argument,
1946 if any labels are in FALLTHRU_BB, use a special label emitted
1947 immediately after the asm goto insn rather than label_rtx
1948 of the LABEL_DECL.
1949 (expand_asm_stmt): Adjust caller.
1950 * cfgrtl.c (commit_one_edge_insertion): Force splitting of
1951 edge if the last insn in predecessor is a jump with single successor,
1952 but it isn't simplejump_p.
1953
1954 2013-10-10 Richard Biener <rguenther@suse.de>
1955
1956 PR tree-optimization/58656
1957 * tree-ssa-pre.c (phi_translate): Do not cache failed
1958 translations.
1959
1960 2013-10-10 Andrew MacLeod <amacleod@redhat.com>
1961
1962 * gimplify.c: Include expr.h and tm_p.h for targets with special
1963 va-arg padding requirements.
1964
1965 2013-10-10 Andrew MacLeod <amacleod@redhat.com>
1966
1967 * tree-flow.h: Move some prototypes to gimple.h.
1968 (gimple_fold_indirect_ref): Move prototype to gimple-fold.h.
1969 * gimple.h: Relocate some prototypes from tree-flow.h
1970 * builtins.c (std_gimplify_va_arg_expr, build_va_arg_indirect_ref):
1971 Move to gimplify.c.
1972 * gimplify.c (gimple_fold_indirect_ref): Move to gimple-fold.c.
1973 (build_va_arg_indirect_ref): Relocate and make static.
1974 (std_gimplify_va_arg_expr): Relocate here.
1975 * gimple-fold.c (gimple_fold_indirect_ref): Relocate here.
1976 * gimple-fold.h (gimple_fold_indirect_ref): Add prototype.
1977
1978 2013-10-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1979
1980 * doc/md.texi: Document the mnemonic attribute.
1981
1982 2013-10-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1983
1984 PR target/57377
1985 * gensupport.c (gen_mnemonic_attr): Handle (set (attr x) y) and
1986 (set_attr_alternative x ...) when searching for user defined
1987 mnemonic attribute.
1988
1989 2013-10-10 Andrew MacLeod <amacleod@redhat.com>
1990
1991 * config/aplha/alpha.c: Add gimple-ssa.h to include list.
1992
1993 2013-10-09 Easwaran Raman <eraman@google.com>
1994
1995 * params.def (PARAM_MIN_SIZE_FOR_STACK_SHARING): New param...
1996 * cfgexpand.c (defer_stack_allocation): ...use here
1997 * doc/invoke.texi: Add documentation for min-size-for-stack-sharing.
1998
1999 2013-10-09 Zhenqiang Chen <zhenqiang.chen@arm.com>
2000
2001 * tree-ssa-phiopts.c (rhs_is_fed_for_value_replacement): New function.
2002 (operand_equal_for_value_replacement): New function, extracted from
2003 value_replacement and enhanced to catch more cases.
2004 (value_replacement): Use operand_equal_for_value_replacement.
2005
2006 2013-10-09 Andrew MacLeod <amacleod@redhat.com>
2007
2008 * loop-doloop.c (doloop_modify, doloop_optimize): Use
2009 get_max_loop_iterations.
2010
2011 2013-10-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2012
2013 * config/arm/aarch-common.c (arm_early_load_addr_dep):
2014 Place comment above function.
2015
2016 2013-10-09 Andrew MacLeod <amacleod@redhat.com>
2017
2018 * tree-flow.h: Remove all remaining prototypes, enums and structs that
2019 are not related to tree-cfg.c.
2020 * tree-ssa-address.h: New file. Relocate prototypes.
2021 * tree-ssa-address.c: (struct mem_address): Relocate from tree-flow.h.
2022 (addr_for_mem_ref): New. Combine call to get_address_description and
2023 return addr_for_mem_ref.
2024 * expr.c (expand_expr_real_1): Use new addr_for_mem_ref routine.
2025 * tree-ssa-live.h: Adjust prototypes.
2026 * passes.c: Include tree-ssa-live.h.
2027 * gimple-pretty-print.h (gimple_dump_bb): Add prototype.
2028 * graphite.c (graphite_transform_loops): Make static.
2029 (graphite_transforms, gate_graphite_transforms, pass_data_graphite,
2030 make_pass_graphite, pass_data_graphite_transforms,
2031 make_pass_graphite_transforms): Relocate here from tree-ssa-loop.c.
2032 * ipa-pure-const.c (warn_function_noreturn): Make static.
2033 (execute_warn_function_noreturn, gate_warn_function_noreturn,
2034 class pass_warn_function_noreturn, make_pass_warn_function_noreturn):
2035 Relocate from tree-cfg.c
2036 * tree-cfg.c (tree_node_can_be_shared, gimple_empty_block_p): Make
2037 static.
2038 (execute_warn_function_noreturn, gate_warn_function_noreturn,
2039 class pass_warn_function_noreturn, make_pass_warn_function_noreturn):
2040 Move to ipa-pure-const.c.
2041 (execute_fixup_cfg, class pass_fixup_cfg, make_pass_fixup_cfg):
2042 Relocate from tree-optimize.c.
2043 * tree-optimize.c (execute_fixup_cfg, class pass_fixup_cfg,
2044 make_pass_fixup_cfg): Move to tree-cfg.c.
2045 * tree-chrec.h: (enum ev_direction): Relocate here from tree-flow.h.
2046 Relocate some prototypes.
2047 * tree-data-ref.h (tree_check_data_deps) Add prototype.
2048 * tree-dump.c (dump_function_to_file): Remove prototype.
2049 Add tree-flow.h to the include file.
2050 * tree-dump.h: Remove prototype.
2051 * tree-parloops.h: New File. Add prototypes.
2052 * tree-parloops.c (gate_tree_parallelize_loops, tree_parallelize_loops,
2053 pass_data_parallelize_loops, make_pass_parallelize_loops): Relocate
2054 from tree-ssa-loop.c.
2055 * tree-predcom.c (run_tree_predictive_commoning,
2056 gate_tree_predictive_commoning, pass_data_predcom, make_pass_predcom):
2057 Relocate here from tree-ssa-loop.c.
2058 * tree-ssa-dom.c (tree_ssa_dominator_optimize) Don't call
2059 ssa_name_values.release ().
2060 * tree-ssa-threadedge.h: New File. Relocate prototypes here.
2061 (ssa_name_values): Relocate from tree-flow.h.
2062 * tree-ssa.h: Include tree-ssa-threadedge.h and tree-ssa-address.h.
2063 * tree-ssa-loop.c (run_tree_predictive_commoning,
2064 gate_tree_predictive_commoning, pass_data_predcom, make_pass_predcom,
2065 graphite_transforms, gate_graphite_transforms, pass_data_graphite,
2066 make_pass_graphite, pass_data_graphite_transforms,
2067 make_pass_graphite_transforms, gate_tree_parallelize_loops,
2068 tree_parallelize_loops, pass_data_parallelize_loops,
2069 make_pass_parallelize_loops): Move to other files.
2070 * tree-vectorizer.h (lpeel_tree_duplicate_loop_to_edge_cfg): Prototype
2071 moved here.
2072 * tree.h: Remove prototypes from tree-address.c.
2073
2074 2013-10-09 Andrew MacLeod <amacleod@redhat.com>
2075
2076 * tree-flow.h (tm_restart_node, gimple_df): Move to gimple-ssa.h.
2077 (struct int_tree_map): Move to tree-hasher.h
2078 (SCALE, LABEL, PERCENT): Move to gimple.h
2079 * tree-flow-inline.h: Delete. Move functions to other files.
2080 (unmodifiable_var_p, ref_contains_array_ref): Unused, so delete.
2081 * gimple-ssa.h (tm_restart_node, gimple_df): Relocate from tree-flow.h.
2082 (gimple_in_ssa_p, gimple_vop): Relocate from tree-flow-inline.h
2083 * gimple.h (imple_stmt_max_uid, set_gimple_stmt_max_uid,
2084 inc_gimple_stmt_max_uid, get_lineno): Relocate from tree-flow-inline.h.
2085 (SCALE, LABEL, PERCENT): Relocate from tree-flow.h
2086 * tree-hasher.h: Don't include tree-flow.h.
2087 (struct int_tree_map): Relocate from tree-flow.h.
2088 * tree-sra.c (contains_view_convert_expr_p): Relocate from
2089 tree-flow-inline.h and make static.
2090 * tree-ssa-alias.h (ranges_overlap_p): Relocate from
2091 tree-flow-inline.h.
2092 * tree-ssa-operands.c (gimple_ssa_operands): Relocate from
2093 tree-flow-inline.h and make static.
2094 * tree.h (is_global_var, may_be_aliased): Relocate from
2095 tree-flow-inline.h.
2096 * Makefile.in (GTFILES): Remove tree-flow.h and add gimple-ssa.h.
2097 * value-prof.c: No longer include tree-flow-inline.h.
2098 * tree-switch-conversion.c: No longer include tree-flow-inline.h.
2099
2100 2013-10-09 Andrew MacLeod <amacleod@redhat.com>
2101
2102 * tree-flow.h: Move some protoypes. Include new tree-ssa-loop.h.
2103 (struct affine_iv, struct tree_niter_desc): Move to tree-ssa-loop.h.
2104 (enum move_pos): Move to tree-ssa-loop-im.h
2105 * cfgloop.h: Move some prototypes.
2106 (gcov_type_to_double_int): relocate from tree-ssa-loop.niter.c.
2107 * tree-flow-inline.h (loop_containing_stmt): Move to tree-ssa-loop.h.
2108 * tree-ssa-loop.h: New File. Include other tree-ssa-loop-*.h files.
2109 (struct affine_iv, struct tree_niter_desc): Relocate from tree-flow.h.
2110 (loop_containing_stmt): Relocate from tree-flow-inline.h.
2111 * tree-ssa-loop-ch.c: (do_while_loop_p): Make static.
2112 * tree-ssa-loop-im.c (for_each_index): Move to tree-ssa-loop.c.
2113 (enum move_pos): Relocate here.
2114 (lsm_tmp_name_add, gen_lsm_tmp_name, get_lsm_tmp_name): Move to
2115 tree-ssa-loop.c.
2116 (execute_sm_if_changed_flag_set): Change get_lsm_tmp_name call.
2117 (tree_ssa_loop_im, gate_tree_ssa_loop_im, pass_data_lim,
2118 make_pass_lim): Relocate here from tree-ssa-loop.c.
2119 * tree-ssa-loop-ivcanon.c (tree_num_loop_insns): Move to
2120 tree-ssa-loop.c.
2121 (loop_edge_to_cancel, unloop_loops): Make static.
2122 (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_data_iv_canon,
2123 make_pass_iv_canon): Relocate from tree-ssa-loop.c.
2124 (tree_complete_unroll, gate_tree_complete_unroll,
2125 pass_data_complete_unroll, make_pass_complete_unroll): Relocate here.
2126 (tree_complete_unroll_inner, gate_tree_complete_unroll_inner,
2127 pass_data_complete_unrolli, make_pass_complete_unrolli): Relocate here.
2128 * tree-ssa-loop-ivopts.c: Remove local prototypes.
2129 (stmt_invariant_in_loop_p): Remove unused function.
2130 * tree-ssa-loop-ivopts.h: New file. Add prototypes.
2131 * tree-ssa-loop-manip.h: New file. Add prototypes.
2132 * tree-ssa-loop-niter.c (record_niter_bound): Move to cfgloop.c.
2133 (gcov_type_to_double_int): Move to cfgloop.h.
2134 (double_int_cmp, bound_index,
2135 estimate_numbers_of_iterations_loop): Make static.
2136 (estimated_loop_iterations): Factor out get_estimated_loop_iterations.
2137 (max_loop_iterations): Factor out get_max_loop_iterations.
2138 (estimated_loop_iterations_int, max_stmt_executions_int): Move to
2139 cfgloop.c.
2140 * tree-ssa-loop-niter.h: New file. Add prototypes.
2141 * tree-ssa-loop-prefetch.c (tree_ssa_loop_prefetch,
2142 gate_tree_ssa_loop_prefetch, pass_data_loop_prefetch,
2143 make_pass_loop_prefetch): Relocate from tree-ssa-loop.c.
2144 * tree-ssa-loop-unswitch.c (tree_ssa_loop_unswitch,
2145 gate_tree_ssa_loop_unswitch, pass_data_tree_unswitch,
2146 make_pass_tree_unswitch): Relocate from tree-ssa-loop.c.
2147 * tree-ssa-loop.c (tree_ssa_loop_im, gate_tree_ssa_loop_im,
2148 pass_data_lim, make_pass_lim): Move to tree-ssa-loop-im.c.
2149 (tree_ssa_loop_unswitch, gate_tree_ssa_loop_unswitch,
2150 pass_data_tree_unswitch, make_pass_tree_unswitch): Move.
2151 (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_data_iv_canon,
2152 make_pass_iv_canon, tree_complete_unroll, gate_tree_complete_unroll,
2153 pass_data_complete_unroll, make_pass_complete_unroll,
2154 tree_complete_unroll_inner, gate_tree_complete_unroll_inner,
2155 pass_data_complete_unrolli, make_pass_complete_unrolli): Move to
2156 tree-ssa-loop-ivcanon.c.
2157 (tree_ssa_loop_prefetch, gate_tree_ssa_loop_prefetch,
2158 pass_data_loop_prefetch, make_pass_loop_prefetch): Move to
2159 tree-ssa-loop-prefetch.c.
2160 (for_each_index, lsm_tmp_name_add, gen_lsm_tmp_name): Relocate from
2161 tree-ssa-loop-im.c.
2162 (get_lsm_tmp_name): Relocate and add suffix parameter.
2163 (tree_num_loop_insns): Relocate from tree-ssa-ivcanon.c.
2164 * tree-scalar-evolution.h (simple_iv): Don't use affive_iv typedef.
2165 * cfgloop.c (record_niter_bound, estimated_loop_iterations_int,
2166 max_stmt_executions_int): Move from tree-ssa-loop-niter.c.
2167 (get_estimated_loop_iterations): Factor out accessor from
2168 estimated_loop_iterations in tree-ssa-loop-niter.c.
2169 (get_max_loop_iterations): Factor out accessor from
2170 _max_loop_iterations in tree-ssa-niter.c.
2171 * loop-unroll.c (decide_unroll_constant_iterations,
2172 decide_unroll_runtime_iterations, decide_peel_simple,
2173 decide_unroll_stupid): Use new get_* accessors.
2174
2175 2013-10-09 Marc Glisse <marc.glisse@inria.fr>
2176
2177 PR tree-optimization/20318
2178 * doc/extend.texi (returns_nonnull): New function attribute.
2179 * fold-const.c (tree_expr_nonzero_warnv_p): Look for returns_nonnull
2180 attribute.
2181 * tree-vrp.c (gimple_stmt_nonzero_warnv_p): Likewise.
2182 (stmt_interesting_for_vrp): Accept all GIMPLE_CALL.
2183
2184 2013-10-09 Eric Botcazou <ebotcazou@adacore.com>
2185
2186 PR middle-end/58570
2187 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): Return
2188 false if both components are bitfields.
2189
2190 2013-10-09 Alex Velenko <Alex.Velenko@arm.com>
2191
2192 * config/aarch64/arm_neon.h (vclz_s8, vclz_s16, vclz_s32)
2193 (vclzq_s8, vclzq_s16, vclzq_s32, vclz_u8, vclz_u16, vclz_u32)
2194 (vclzq_u8, vclzq_u16, vclzq_u32): Replace ASM with C.
2195 * config/aarch64/aarch64.h
2196 (CLZ_DEFINED_VALUE_AT_ZERO): Macro fixed for clz.
2197 * config/aarch64/aarch64-simd-builtins.def
2198 (VAR1 (UNOP, clz, 0, v4si)): Replaced with iterator.
2199
2200 2013-10-09 Alex Velenko <Alex.Velenko@arm.com>
2201
2202 * config/aarch64/arm_neon.h (vadd_f64, vsub_f64): Implementation added.
2203
2204 2013-10-09 Alex Velenko <Alex.Velenko@arm.com>
2205
2206 * config/aarch64/arm_neon.h (vdiv_f64): Added.
2207
2208 2013-10-09 Alex Velenko <Alex.Velenko@arm.com>
2209
2210 * config/aarch64/arm_neon.h (vneg_f32): Asm replaced with C.
2211 (vneg_f64): New intrinsic.
2212 (vneg_s8): Asm replaced with C.
2213 (vneg_s16): Likewise.
2214 (vneg_s32): Likewise.
2215 (vneg_s64): New intrinsic.
2216 (vnegq_f32): Asm replaced with C.
2217 (vnegq_f64): Likewise.
2218 (vnegq_s8): Likewise.
2219 (vnegq_s16): Likewise.
2220 (vnegq_s32): Likewise.
2221 (vnegq_s64): Likewise.
2222
2223 2013-10-09 Renlin Li <Renlin.Li@arm.com>
2224
2225 * config/arm/arm.c (arm_output_mi_thunk): Use plus_constant.
2226
2227 2013-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2228
2229 * config/s390/s390.c (s390_register_info_stdarg_fpr): Remove
2230 packed stack special handling.
2231 (s390_frame_info, s390_emit_prologue, s390_emit_epilogue): Switch
2232 back to fixed stack slots for FPRs saved due to stdarg.
2233
2234 2013-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2235
2236 * config/s390/s390.c (s390_frame_info): Restructure function.
2237
2238 2013-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2239
2240 * config/s390/s390.c (struct s390_frame_layout): New field
2241 gpr_save_slots.
2242 (cfun_save_arg_fprs_p, cfun_gpr_save_slot): New macros.
2243 (s390_reg_clobbered_rtx, s390_regs_ever_clobbered): Change type of
2244 regs_ever_clobbered to char*.
2245 (s390_regs_ever_clobbered): Check crtl->saves_all_registers instead
2246 of cfun->has_nonlocal_label. Ignore frame related restore INSNs.
2247 (s390_register_info): Enable FPR save slots. Move/Copy some
2248 functionality into ...
2249 (s390_register_info_gprtofpr, s390_register_info_stdarg_fpr)
2250 (s390_register_info_stdarg_gpr, s390_optimize_register_info): New
2251 function.
2252 (s390_frame_info): Do gpr slot allocation here now. stdarg does
2253 not imply a stack frame.
2254 (s390_init_frame_layout): Remove variable clobbered_regs.
2255 (s390_update_register_info): Remove function.
2256 (s390_hard_regno_rename_ok): Call-saved regs without a save slot
2257 cannot be used for register renaming.
2258 (s390_hard_regno_scratch_ok): New function.
2259 (TARGET_HARD_REGNO_SCRATCH_OK): Define target hook.
2260 (s390_initial_elimination_offset): Change offset calculation of
2261 the return address pointer.
2262 (save_gprs): Deal with only r6 being saved from the call-saved regs.
2263 (restore_gprs): Set frame related flag.
2264 (s390_save_gprs_to_fprs, s390_restore_gprs_from_fprs): New functions.
2265 (s390_emit_prologue): Call s390_register_info instead of
2266 s390_update_frame_layout. Call s390_save_gprs_to_fprs.
2267 (s390_emit_epilogue): Call s390_restore_gprs_from_fprs.
2268 (s390_optimize_prologue): Call s390_optimize_register_info.
2269 Try to remove also FPR slot save/restore INSNs. Remove frame
2270 related flags from restore INSNs.
2271
2272 2013-10-08 DJ Delorie <dj@redhat.com>
2273
2274 * config/rl78/rl78-expand.md (movqi): use operands[] not operandN.
2275 (movhi): Likewise.
2276
2277 * config/rl78/rl78.c (rl78_print_operand_1): Change %c to %C to
2278 avoid conflict with the MI use of %c.
2279 * config/rl78/rl78-real.md: change %c to %C throughout.
2280 * config/rl78/rl78-virt.md: Likewise.
2281
2282 2013-10-08 Jan Hubicka <jh@suse.cz>
2283
2284 * config/i386/i386.c (ix86_option_override_internal): Switch
2285 to SSE math for -ffast-math when target ISA supports SSE2.
2286
2287 2013-10-08 Andrew MacLeod <amacleod@redhat.com>
2288
2289 * tree-flow.h: Remove some prototypes.
2290 * tree.h: Remove some protypes, add a couple.
2291 * tree.c (using_eh_for_cleanups_flag, using_eh_for_cleanups,
2292 using_eh_for_cleanups_p): Add interface routines for front ends.
2293 * tree-eh.h: New file. Add protoptyes.
2294 * tree-eh.c (using_eh_for_cleanups_p, using_eh_for_cleanups): Delete.
2295 (add_stmt_to_eh_lp_fn): Make static.
2296 (lower_try_finally): Use new using_eh_for_cleanups_p.
2297 * emit-rtl.c: Include tree-eh.h.
2298 * gimple.h: Include tree-eh.h.
2299
2300 2013-10-08 Marc Glisse <marc.glisse@inria.fr>
2301
2302 PR tree-optimization/58480
2303 * tree-vrp.c (infer_nonnull_range): New function.
2304 (infer_value_range): Call infer_nonnull_range.
2305
2306 2013-10-08 Dehao Chen <dehao@google.com>
2307
2308 PR tree-optimization/58619
2309 * tree-inline.c (copy_phis_for_bb): Combine location data
2310 only if non-null.
2311
2312 2013-10-08 Zhenqiang Chen <zhenqiang.chen@linaro.org>
2313
2314 PR target/58423
2315 * config/arm/arm.c (arm_emit_ldrd_pop): Attach
2316 RTX_FRAME_RELATED_P on INSN.
2317
2318 2013-10-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2319
2320 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const_le): New.
2321 (altivec_expand_vec_perm_const): Call it.
2322
2323 2013-10-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2324
2325 * config/rs6000/vector.md (mov<mode>): Emit permuted move
2326 sequences for LE VSX loads and stores at expand time.
2327 * config/rs6000/rs6000-protos.h (rs6000_emit_le_vsx_move): New
2328 prototype.
2329 * config/rs6000/rs6000.c (rs6000_const_vec): New.
2330 (rs6000_gen_le_vsx_permute): New.
2331 (rs6000_gen_le_vsx_load): New.
2332 (rs6000_gen_le_vsx_store): New.
2333 (rs6000_gen_le_vsx_move): New.
2334 * config/rs6000/vsx.md (*vsx_le_perm_load_v2di): New.
2335 (*vsx_le_perm_load_v4si): New.
2336 (*vsx_le_perm_load_v8hi): New.
2337 (*vsx_le_perm_load_v16qi): New.
2338 (*vsx_le_perm_store_v2di): New.
2339 (*vsx_le_perm_store_v4si): New.
2340 (*vsx_le_perm_store_v8hi): New.
2341 (*vsx_le_perm_store_v16qi): New.
2342 (*vsx_xxpermdi2_le_<mode>): New.
2343 (*vsx_xxpermdi4_le_<mode>): New.
2344 (*vsx_xxpermdi8_le_V8HI): New.
2345 (*vsx_xxpermdi16_le_V16QI): New.
2346 (*vsx_lxvd2x2_le_<mode>): New.
2347 (*vsx_lxvd2x4_le_<mode>): New.
2348 (*vsx_lxvd2x8_le_V8HI): New.
2349 (*vsx_lxvd2x16_le_V16QI): New.
2350 (*vsx_stxvd2x2_le_<mode>): New.
2351 (*vsx_stxvd2x4_le_<mode>): New.
2352 (*vsx_stxvd2x8_le_V8HI): New.
2353 (*vsx_stxvd2x16_le_V16QI): New.
2354
2355 2013-10-07 Renlin Li <Renlin.Li@arm.com>
2356
2357 * config/arm/arm-cores.def (cortex-a53): Use cortex tuning.
2358
2359 2013-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2360
2361 * config/s390/s390.c (s390_register_info): Make the call-saved FPR
2362 loop to work also for 31bit ABI.
2363 Save the stack pointer for frame_size > 0.
2364
2365 2013-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2366
2367 * config/s390/s390.md ("tbegin", "tbegin_nofloat", "tbegin_retry")
2368 ("tbegin_retry_nofloat", "tend", "tabort", "tx_assist"): Remove
2369 constraint letters from expanders.
2370 ("tbegin_retry", "tbegin_retry_nofloat"): Change predicate of the
2371 retry count to general_operand.
2372 ("tabort"): Give operand 0 a mode.
2373 ("tabort_1"): Add mode and constraint letter for operand 0.
2374 * doc/extend.texi: Fix protoype of __builtin_non_tx_store.
2375
2376 2013-10-04 Jeff Law <law@redhat.com>
2377
2378 * tree-ssa-threadedge.c: Fix some trailing whitespace problems.
2379
2380 * tree-ssa-threadedge.c (thread_through_normal_block): Broken
2381 out of ...
2382 (thread_across_edge): Here. Call it.
2383
2384 2013-10-04 Cary Coutant <ccoutant@google.com>
2385
2386 * dwarf2out.c (dw_sra_loc_expr): Release addr_table entries when
2387 discarding a location list expression (or a piece of one).
2388
2389 2013-10-03 Jan Hubicka <jh@suse.cz>
2390
2391 * config/i386/i386.c (ix86_issue_rate): Pentium4, Nocona has issue
2392 rate of 2. Core2, Corei7 and Haswell has issue rate of 4.
2393 (ix86_adjust_cost): Remove Atom case; fix core2/corei7/Haswell case.
2394
2395 2013-10-03 Jan Hubicka <jh@suse.cz>
2396
2397 * config/i386/i386.c (ix86_option_override_internal): Do not enable
2398 accumulate-outgoing-args when producing unwind info.
2399
2400 2013-10-03 Wei Mi <wmi@google.com>
2401
2402 * lra-constraints.c (insert_move_for_subreg): New function
2403 extracted from simplify_operand_subreg.
2404 (simplify_operand_subreg): Add reload for paradoxical subreg.
2405
2406 2013-10-03 Rong Xu <xur@google.com>
2407
2408 * ipa-inline-analysis.c (find_foldable_builtin_expect): Find
2409 the candidate of builtin_expect such that we should fix the
2410 size/time estimation.
2411 (estimate_function_body_sizes): Do the acutally size/time fix-up
2412 for builtin_expect.
2413
2414 2013-10-03 Rong Xu <xur@google.com>
2415
2416 * predict.c (tree_predict_by_opcode): Get the probability
2417 for builtin_expect from param builtin_expect_probability.
2418 * params.def (BUILTIN_EXPECT_PROBABILITY): New parameter.
2419 * predict.def (PRED_BUILTIN_EXPECT_RELAXED): Fix comments.
2420 * doc/invoke.texi: Add documentation for builtin-expect-probability.
2421
2422 2013-10-03 Marc Glisse <marc.glisse@inria.fr>
2423
2424 PR c++/19476
2425 * common.opt (fcheck-new): Moved from c.opt. Make it 'Common'.
2426 * calls.c (alloca_call_p): Use get_callee_fndecl.
2427 * fold-const.c (tree_expr_nonzero_warnv_p): Handle operator new.
2428 * tree-vrp.c (gimple_stmt_nonzero_warnv_p, stmt_interesting_for_vrp):
2429 Likewise.
2430 (vrp_visit_stmt): Remove duplicated code.
2431
2432 2013-10-03 Michael Meissner <meissner@linux.vnet.ibm.com>
2433
2434 * config/rs6000/rs6000-builtin.def (XSRDPIM): Use floatdf2,
2435 ceildf2, btruncdf2, instead of vsx_* name.
2436
2437 * config/rs6000/vsx.md (vsx_add<mode>3): Change arithmetic
2438 iterators to only do V2DF and V4SF here. Move the DF code to
2439 rs6000.md where it is combined with SF mode. Replace <VSv> with
2440 just 'v' since only vector operations are handled with these insns
2441 after moving the DF support to rs6000.md.
2442 (vsx_sub<mode>3): Likewise.
2443 (vsx_mul<mode>3): Likewise.
2444 (vsx_div<mode>3): Likewise.
2445 (vsx_fre<mode>2): Likewise.
2446 (vsx_neg<mode>2): Likewise.
2447 (vsx_abs<mode>2): Likewise.
2448 (vsx_nabs<mode>2): Likewise.
2449 (vsx_smax<mode>3): Likewise.
2450 (vsx_smin<mode>3): Likewise.
2451 (vsx_sqrt<mode>2): Likewise.
2452 (vsx_rsqrte<mode>2): Likewise.
2453 (vsx_fms<mode>4): Likewise.
2454 (vsx_nfma<mode>4): Likewise.
2455 (vsx_copysign<mode>3): Likewise.
2456 (vsx_btrunc<mode>2): Likewise.
2457 (vsx_floor<mode>2): Likewise.
2458 (vsx_ceil<mode>2): Likewise.
2459 (vsx_smaxsf3): Delete scalar ops that were moved to rs6000.md.
2460 (vsx_sminsf3): Likewise.
2461 (vsx_fmadf4): Likewise.
2462 (vsx_fmsdf4): Likewise.
2463 (vsx_nfmadf4): Likewise.
2464 (vsx_nfmsdf4): Likewise.
2465 (vsx_cmpdf_internal1): Likewise.
2466
2467 * config/rs6000/rs6000.h (TARGET_SF_SPE): Define macros to make it
2468 simpler to select whether a target has SPE or traditional floating
2469 point support in iterators.
2470 (TARGET_DF_SPE): Likewise.
2471 (TARGET_SF_FPR): Likewise.
2472 (TARGET_DF_FPR): Likewise.
2473 (TARGET_SF_INSN): Macros to say whether floating point support
2474 exists for a given operation for expanders.
2475 (TARGET_DF_INSN): Likewise.
2476
2477 * config/rs6000/rs6000.c (Ftrad): New mode attributes to allow
2478 combining of SF/DF mode operations, using both traditional and VSX
2479 registers.
2480 (Fvsx): Likewise.
2481 (Ff): Likewise.
2482 (Fv): Likewise.
2483 (Fs): Likewise.
2484 (Ffre): Likewise.
2485 (FFRE): Likewise.
2486 (abs<mode>2): Combine SF/DF modes using traditional floating point
2487 instructions. Add support for using the upper DF registers with
2488 VSX support, and SF registers with power8-vector support. Update
2489 expanders for operations supported by both the SPE and traditional
2490 floating point units.
2491 (abs<mode>2_fpr): Likewise.
2492 (nabs<mode>2): Likewise.
2493 (nabs<mode>2_fpr): Likewise.
2494 (neg<mode>2): Likewise.
2495 (neg<mode>2_fpr): Likewise.
2496 (add<mode>3): Likewise.
2497 (add<mode>3_fpr): Likewise.
2498 (sub<mode>3): Likewise.
2499 (sub<mode>3_fpr): Likewise.
2500 (mul<mode>3): Likewise.
2501 (mul<mode>3_fpr): Likewise.
2502 (div<mode>3): Likewise.
2503 (div<mode>3_fpr): Likewise.
2504 (sqrt<mode>3): Likewise.
2505 (sqrt<mode>3_fpr): Likewise.
2506 (fre<Fs>): Likewise.
2507 (rsqrt<mode>2): Likewise.
2508 (cmp<mode>_fpr): Likewise.
2509 (smax<mode>3): Likewise.
2510 (smin<mode>3): Likewise.
2511 (smax<mode>3_vsx): Likewise.
2512 (smin<mode>3_vsx): Likewise.
2513 (negsf2): Delete SF operations that are merged with DF.
2514 (abssf2): Likewise.
2515 (addsf3): Likewise.
2516 (subsf3): Likewise.
2517 (mulsf3): Likewise.
2518 (divsf3): Likewise.
2519 (fres): Likewise.
2520 (fmasf4_fpr): Likewise.
2521 (fmssf4_fpr): Likewise.
2522 (nfmasf4_fpr): Likewise.
2523 (nfmssf4_fpr): Likewise.
2524 (sqrtsf2): Likewise.
2525 (rsqrtsf_internal1): Likewise.
2526 (smaxsf3): Likewise.
2527 (sminsf3): Likewise.
2528 (cmpsf_internal1): Likewise.
2529 (copysign<mode>3_fcpsgn): Add VSX/power8-vector support.
2530 (negdf2): Delete DF operations that are merged with SF.
2531 (absdf2): Likewise.
2532 (nabsdf2): Likewise.
2533 (adddf3): Likewise.
2534 (subdf3): Likewise.
2535 (muldf3): Likewise.
2536 (divdf3): Likewise.
2537 (fred): Likewise.
2538 (rsqrtdf_internal1): Likewise.
2539 (fmadf4_fpr): Likewise.
2540 (fmsdf4_fpr): Likewise.
2541 (nfmadf4_fpr): Likewise.
2542 (nfmsdf4_fpr): Likewise.
2543 (sqrtdf2): Likewise.
2544 (smaxdf3): Likewise.
2545 (smindf3): Likewise.
2546 (cmpdf_internal1): Likewise.
2547 (lrint<mode>di2): Use TARGET_<MODE>_FPR macro.
2548 (btrunc<mode>2): Delete separate expander, and combine with the
2549 insn and add VSX instruction support. Use TARGET_<MODE>_FPR.
2550 (btrunc<mode>2_fpr): Likewise.
2551 (ceil<mode>2): Likewise.
2552 (ceil<mode>2_fpr): Likewise.
2553 (floor<mode>2): Likewise.
2554 (floor<mode>2_fpr): Likewise.
2555 (fma<mode>4_fpr): Combine SF and DF fused multiply/add support.
2556 Add support for using the upper registers with VSX and
2557 power8-vector. Move insns to be closer to the define_expands. On
2558 VSX systems, prefer the traditional form of FMA over the VSX
2559 version, since the traditional form allows the target not to
2560 overlap with the inputs.
2561 (fms<mode>4_fpr): Likewise.
2562 (nfma<mode>4_fpr): Likewise.
2563 (nfms<mode>4_fpr): Likewise.
2564
2565 2013-10-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2566 Richard Earnshaw <richard.earnshaw@arm.com>
2567
2568 * config/arm/aarch-common-protos.h (struct alu_cost_table): New.
2569 (struct mult_cost_table): Likewise.
2570 (struct mem_cost_table): Likewise.
2571 (struct fp_cost_table): Likewise.
2572 (struct vector_cost_table): Likewise.
2573 (cpu_cost_table): Likewise.
2574 * config/arm/arm.opt (mold-rts-costs): New option.
2575 (mnew-generic-costs): Likewise.
2576 * config/arm/arm.c (generic_extra_costs): New table.
2577 (cortexa15_extra_costs): Likewise.
2578 (arm_slowmul_tune): Use NULL as new costs.
2579 (arm_fastmul_tune): Likewise.
2580 (arm_strongarm_tune): Likewise.
2581 (arm_xscale_tune): Likewise.
2582 (arm_9e_tune): Likewise.
2583 (arm_v6t2_tune): Likewise.
2584 (arm_cortex_a5_tune): Likewise.
2585 (arm_cortex_a9_tune): Likewise.
2586 (arm_v6m_tune): Likewise.
2587 (arm_fa726te_tune): Likewise.
2588 (arm_cortex_a15_tune): Use cortex15_extra_costs.
2589 (arm_cortex_tune): Use generict_extra_costs.
2590 (shifter_op_p): New function.
2591 (arm_unspec_cost): Likewise.
2592 (LIBCALL_COST): Define.
2593 (arm_new_rtx_costs): New function.
2594 (arm_rtx_costs): Use arm_new_rtx_costs when core-specific
2595 table is available. Use old costs otherwise unless mnew-generic-costs
2596 is specified.
2597 * config/arm/arm-protos.h (tune_params): Add insn_extra_cost field.
2598 (cpu_cost_table): Declare.
2599
2600 2013-10-03 Marcus Shawcroft <marcus.shawcroft@arm.com>
2601
2602 PR target/58460
2603 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>)
2604 (*subs_mul_imm_<mode>)
2605 (*add_<shift>_<mode>, *add_<shift>_si_uxtw,*add_mul_imm_<mode>)
2606 (*sub_<shift>_<mode>)
2607 (*sub_<shift>_si_uxtw,*sub_mul_imm_<mode>, *sub_mul_imm_si_uxtw):
2608 Remove k constraint.
2609
2610 2013-10-03 Ian Bolton <ian.bolton@arm.com>
2611
2612 * config/aarch64/aarch64.c (aarch64_secondary_reload): Remove legacy
2613 code.
2614 * config/aarch64/aarch64.md (reload_sp_immediate): Likewise.
2615
2616 2013-10-02 Teresa Johnson <tejohnson@google.com>
2617
2618 * predict.c (probably_never_executed): New function.
2619 (probably_never_executed_bb_p): Invoke probably_never_executed.
2620 (probably_never_executed_edge_p): Ditto.
2621 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
2622 Treat profile insanities conservatively.
2623
2624 2013-10-02 John David Anglin <danglin@gcc.gnu.org>
2625
2626 * config.gcc (hppa*64*-*-linux*): Don't add pa/t-linux to tmake_file.
2627
2628 2013-10-02 Vladimir Makarov <vmakarov@redhat.com>
2629
2630 * lra-constraints.c (process_alt_operand): Calculate scratch_p and
2631 use it. Use smaller increase for scratch. Don't increase reject
2632 for early clobber scratch.
2633 * lra-eliminations.c (eliminate_regs_in_insn): Remove all insns
2634 setting eliminated regs except setting fp from hfp.
2635 (lra_eliminate): Check lra_insn_recog_data on NULL.
2636
2637 2013-10-02 Michael Meissner <meissner@linux.vnet.ibm.com>
2638
2639 PR target/58587
2640 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Turn off
2641 setting -mvsx-timode by default until the underlying problem is fixed.
2642 (RS6000_CPU, power7 defaults): Likewise.
2643
2644 2013-10-02 Uros Bizjak <ubizjak@gmail.com>
2645
2646 * config/x-linux (host-linux.o): Remove header dependencies.
2647 Use $(COMPILE) and $(POSTCOMPILE).
2648 * config/t-linux-android (linux-android.o): Ditto.
2649
2650 2013-10-02 Uros Bizjak <ubizjak@gmail.com>
2651
2652 * Makefile.in (expmed.o-warn): Remove.
2653
2654 2013-10-02 Andrew MacLeod <amacleod@redhat.com>
2655
2656 * graphite-scop-detection.c: Include tree-ssa-propagate,h.
2657 * graphite-sese-to-poly.c: Include tree-ssa-propagate.h.
2658
2659 2013-10-02 Teresa Johnson <tejohnson@google.com>
2660
2661 * dojump.c (do_jump_1): Divide probability between
2662 both conditions of a TRUTH_ANDIF_EXPR/TRUTH_ORIF_EXPR.
2663
2664 2013-10-02 Tom Tromey <tromey@redhat.com>
2665
2666 * Makefile.in (DRIVER_DEFINES): Use $(if), not $(and).
2667
2668 2013-10-02 Andrew MacLeod <amacleod@redhat.com>
2669
2670 * tree-flow.h: Remove some prototypes.
2671 * tree-ssa-dce.c (mark_virtual_operand_for_renaming,
2672 mark_virtual_phi_result_for_renaming): Move to tree-into-ssa.c.
2673 * tree-into-ssa.c (mark_virtual_operand_for_renaming,
2674 mark_virtual_phi_result_for_renaming): Relocate here.
2675 * tree-into-ssa.h: Add prototypes.
2676 * tree-ssa-phiopt.c: (tree_ssa_phiopt_worker) Use
2677 single_pred_before_succ_order.
2678 (blocks_in_phiopt_order): Rename and move to cfganal.c.
2679 (nonfreeing_call_p) Move to gimple.c.
2680 * cfganal.c (single_pred_before_succ_order): Move and renamed from
2681 tree-ssa-phiopt.c.
2682 * basic-block.h (single_pred_before_succ_order): Add prototype.
2683 * gimple.c (nonfreeing_call_p): Relocate here.
2684 * gimple.h: Add prototype.
2685 * tree-ssa-ifcombine.c: Include tree-ssa-phiopt.h.
2686 * tree-ssa-dom.h: New file. Relocate prototypes here.
2687 * tree-ssa.h: Include tree-ssa-dom.h.
2688
2689 2013-10-02 Uros Bizjak <ubizjak@gmail.com>
2690
2691 * config/i386/x-i386 (driver-i386.o): Remove header dependencies.
2692 Use $(COMPILE) and $(POSTCOMPILE).
2693
2694 * config/alpha/x-alpha (driver-alpha.o): Ditto.
2695
2696 2013-10-02 Andrew MacLeod <amacleod@redhat.com>
2697
2698 * tree-flow.h: Remove some prototypes.
2699 * gimple-fold.h: Add prototypes from gimple.h and tree-flow.h.
2700 * tree-ssa-propagate.h: Relocate prototypes from tree-flow.h.
2701 * tree-ssa-copy.c (may_propagate*, propagate_value, replace_exp,
2702 propagate_tree_value*): Move from here to...
2703 * tree-ssa-propagate.c (may_propagate*, propagate_value, replace_exp,
2704 propagate_tree_value*): Relocate here.
2705 * tree-ssa-propagate.h: Relocate prototypes from tree-flow.h.
2706 * gimple.h: Include gimple-fold.h, move prototypes into gimple-fold.h.
2707 * gimple-fold.c: Remove gimple-fold.h from include list.
2708 * tree-vrp.c: Remove gimple-fold.h from include list.
2709 * tree-ssa-sccvn.c: Remove gimple-fold.h from include list.
2710 * tree-ssa-ccp.c: Remove gimple-fold.h from include list.
2711 * tree-scalar-evolution.c: Add tree-ssa-propagate.h to include list.
2712 * tree-ssa-pre.c: Add tree-ssa-propagate.h to include list.
2713 * sese.c: Add tree-ssa-propagate.h to include list.
2714
2715 2013-10-02 Richard Biener <rguenther@suse.de>
2716
2717 * tree-loop-distribution.c: Include tree-vectorizer.h for
2718 find_loop_location.
2719 (enum partition_kind): Remove PKIND_REDUCTION.
2720 (struct partition_s): Remove has_writes member, add reduction_p member.
2721 (partition_alloc): Adjust.
2722 (partition_builtin_p): Likewise.
2723 (partition_has_writes): Remove.
2724 (partition_reduction_p): New function.
2725 (partition_merge_into): Likewise.
2726 (generate_code_for_partition): Commonize builtin partition
2727 handling tail.
2728 (rdg_cannot_recompute_vertex_p): Remove.
2729 (already_processed_vertex_p): Likewise.
2730 (rdg_flag_vertex): Do not set has_writes.
2731 (classify_partition): Adjust.
2732 (rdg_build_partitions): Do not set has_writes, treat all
2733 partitions as useful.
2734 (distribute_loop): Record number of library calls generated. Adjust.
2735 (tree_loop_distribution): Report number of loops and library
2736 calls generated as opt-info.
2737
2738 2013-10-02 Andrew MacLeod <amacleod@redhat.com>
2739
2740 * tree-flow.h: Include new .h files. Move prototypes.
2741 * tree-cfgcleanup.h: New file. Add prototypes from tree-flow.h.
2742 * tree-dfa.h: New File. Add prototypes from tree-flow.h.
2743 (get_addr_base_and_unit_offset_1) Move from tree-flow-inline.h.
2744 * tree-pretty-print.h: Add prototypes from tree-flow.h.
2745 * tree-into-ssa.h: New File. Add prototypes from tree-flow.h.
2746 ({debug|dump}*): Move debugging prototypes out of tree-into-ssa.c.
2747 * tree-into-ssa.c ({debug|dump}*): Move prototypes to header file.
2748 * tree.h (get_ref_base_and_extent): Move prototype out.
2749 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Move to
2750 tree-dfa.h.
2751 * gimple-low.h: New File. Add prototypes from tree-flow.h.
2752 * gimple-low.c (try_catch_may_fallthru, block_may_fallthru): Move to...
2753 * tree.c (try_catch_may_fallthru, block_may_fallthru): Here.
2754 * tree-scalar-evolution.c: Include tree.h.
2755 * sese.c: Include tree.h.
2756 * dumpfile.c: Move gimple-pretty-print.h include after tree.h.
2757 * dwarf2out.c: Include tree-dfa.h.
2758 * tree-chrec.c: Include tree.h.
2759 * tree-data-ref.c: Include tree.h.
2760
2761 2013-10-02 Yufeng Zhang <yufeng.zhang@arm.com>
2762
2763 * gimple-ssa-strength-reduction.c (backtrace_base_for_ref):
2764 Fix whitespace.
2765
2766 2013-10-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2767
2768 * config/t-sol2 (sol2-c.o): Remove header dependencies.
2769 Use $(COMPILE) and $(POSTCOMPILE).
2770 (sol2-cxx.o): Likewise.
2771 (sol2-stubs.o): Likewise.
2772 (sol2.o): Likewise.
2773 * config/x-solaris (host-solaris.o): Likewise.
2774
2775 * config/sparc/t-sparc (sparc.o): Remove.
2776 (sparc-c.o): Remove header dependencies.
2777 Use $(COMPILE) and $(POSTCOMPILE).
2778 * config/sparc/x-sparc: Likewise.
2779
2780 2013-10-02 Joern Rennecke <joern.rennecke@embecosm.com>
2781
2782 * config/arc/arc-opts.h: Add 2013 to Copyright years.
2783 * config/arc/arc700.md: Likewise.
2784 * config/arc/arc-modes.def: Likewise.
2785 * config/arc/arc-simd.h: Likewise.
2786 * config/arc/t-arc-uClibc: Likewise.
2787 * config/arc/t-arc-newlib: Likewise.
2788
2789 2013-10-02 Renlin Li <renlin.li@arm.com>
2790
2791 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use
2792 plus_constant.
2793 (aarch64_expand_epilogue): Likewise.
2794
2795 2013-10-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2796 Yufeng Zhang <yufeng.zhang@arm.com>
2797
2798 * gimple-ssa-strength-reduction.c (legal_cast_p_1): Forward
2799 declaration.
2800 (backtrace_base_for_ref): Call get_unwidened with 'base_in' if
2801 'base_in' represent a conversion and legal_cast_p_1 holds; set
2802 'base_in' with the returned value from get_unwidened.
2803
2804 2013-10-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2805
2806 * config/arm/arm.c (arm_legitimize_reload_address): Explain why
2807 plus_constant is not used.
2808
2809 2013-10-01 Wei Mi <wmi@google.com>
2810
2811 * config/i386/x86-tune.def (DEF_TUNE): Remove m_CORE_ALL.
2812 * config/i386/i386.md: Add define_peephole2 to
2813 break partial reg stall for cvtss2sd/cvtsd2ss.
2814
2815 2013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
2816
2817 * config/arc/arc.c (pass_arc_ifcvt::clone):
2818 Update for ctxt_ -> m_ctxt change.
2819
2820 2013-10-01 Jeff Law <law@redhat.com>
2821
2822 * tree-ssa-threadupdate.c (struct redirection_data): Delete
2823 outgoing_edge and intermediate_edge fields. Instead store the path.
2824 (redirection_data::hash): Hash on the last edge's destination index.
2825 (redirection_data::equal): Check the entire thread path.
2826 (lookup_redirectio_data): Corresponding changes.
2827 (create_edge_and_update_destination_phis): Likewise.
2828 (thread_single_edge): Likewise.
2829
2830 2013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
2831 Diego Novillo <dnovillo@google.com>
2832
2833 * config/arc/simdext.md (UNSPEC_ARC_SIMD_VLD32WH): Delete.
2834 (UNSPEC_ARC_SIMD_VLD32WL): Likewise.
2835 (vld32wh_insn, vld32wl_insn): Delete commented-out old
2836 versions of these patterns.
2837
2838 * doc/extend.texi (long_call/medium_call/short_call): Typo fix.
2839 (__builtin_arc_aligned): Likewise.
2840
2841 * config/arc/arc.md: Expand adc_0 comment stating the intended
2842 purpose and why it isn't ready.
2843 Replace commented out call_value_via_label_mixed with a
2844 plain comment about bl_s.
2845
2846 * config/arc/arc.c (stdio.h): Don't include directly.
2847 (arc_expand_epilogue): Remove [0]: Remove fp_restored_p.
2848 Remove if (1) condition.
2849 (arc_encode_section_info): Fix comment.
2850
2851 2013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
2852
2853 * config/arc/arc.c (arc_conditional_register_usage):
2854 Use ARC_FIRST_SIMD_VR_REG / ARC_LAST_SIMD_VR_REG.
2855 Also set reg_alloc_order for DMA config regs.
2856
2857 2013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
2858 Jeremy Bennett <jeremy.bennett@embecosm.com>
2859
2860 * doc/install.texi (--with-cpu): Mention ARC.
2861 (arc-*-elf32): New paragraph.
2862 (arc-linux-uclibc): Likewise.
2863 * doc/md.texi (Machine Constraints): Add ARC part.
2864 * doc/invoke.texi: (menu): Add ARC Options.
2865 (Machine Dependent Options) <ARC Options>: Add synopsis.
2866 (node ARC Options): Add.
2867 * doc/extend.texi (long_call / short_call attribute): Add ARC.
2868 (ARC Built-in Functions): New section defining
2869 generic ARC built-in functions.
2870 (ARC SIMD Built-in Functions): New section defining SIMD specific
2871 built-in functions.
2872 (Declaring Attributes of Functions): Extended
2873 description of short_call and long_call attributes for ARC and
2874 added index entries.
2875
2876 2013-10-01 Saurabh Verma <saurabh.verma@codito.com>
2877 Ramana Radhakrishnan <ramana.radhakrishnan@codito.com>
2878 Joern Rennecke <joern.rennecke@embecosm.com>
2879 Muhammad Khurram Riaz <khurram.riaz@arc.com>
2880 Brendan Kehoe <brendan@zen.org>
2881 Michael Eager <eager@eagercon.com>
2882 Simon Cook <simon.cook@embecosm.com>
2883 Jeremy Bennett <jeremy.bennett@embecosm.com>
2884
2885 * config/arc, common/config/arc: New directories.
2886
2887 2013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
2888 Brendan Kehoe <brendan@zen.org>
2889 Simon Cook <simon.cook@embecosm.com>
2890
2891 * config.gcc (arc*-*-elf*, arc*-*-linux-uclibc*): New configurations.
2892
2893 2013-10-01 Andrew MacLeod <amacleod@redhat.com>
2894
2895 * tree-ssa-live.h (coalesce_ssa_name): Move Prototype to...
2896 * tree-ssa-coalesce.h: New. Move prototype to here.
2897 * tree-outof-ssa.h: Include tree-ssa-coalesce.h.
2898 * tree-ssa-coalesce.c: Include tree-outof-ssa.h.
2899 (gimple_can_coalesce_p): Move to...
2900 * gimple.c (gimple_can_coalesce_p): Here.
2901
2902 2013-10-01 Andrew MacLeod <amacleod@redhat.com>
2903
2904 * tree-into-ssa.c (enum need_phi_state): Relocate from tree-flow.h.
2905 (dump_decl_set): Move to gimple.c.
2906 * gimple.h: Don't include tree-ssa-operands.h.
2907 (dump_decl_set): Add prototype.
2908 (gimple_vuse_op, gimple_vdef_op, update_stmt, update_stmt_if_modified):
2909 Move to gimple-ssa.h.
2910 (phi_ssa_name_p, phi_nodes, phi_nodes_ptr, gimple_phi_arg_def,
2911 gimple_phi_arg_def_ptr, gimple_phi_arg_edge, gimple_phi_arg_location,
2912 gimple_phi_arg_location_from_edge, gimple_phi_arg_set_location,
2913 gimple_phi_arg_has_location): Relocate from tree-flow-inline.h
2914 * gimple.c (walk_stmt_load_store_ops): Use gimple_phi_arg_def rather
2915 than PHI_ARG_DEF.
2916 (dump_decl_set): Relocate here.
2917 * gimple-ssa.h: New file.
2918 (gimple_vuse_op, gimple_vdef_op, update_stmt, update_stmt_if_modified):
2919 Relocate from gimple.h.
2920 * tree-cfg.c (has_zero_uses_1, single_imm_use_1): Move to...
2921 * tree-ssa-operands.c (swap_ssa_operands): Rename from
2922 swap_tree_operands and remove non-ssa path.
2923 (has_zero_uses_1, single_imm_use_1): Relocate from tree-cfg.c.
2924 * tree-ssa-reassoc.c (linearize_expr_tree, repropagate_negates): Use
2925 swap_ssa_operands.
2926 * tree-vect-loop.c (destroy_loop_vec_info, vect_is_slp_reduction,
2927 vect_is_simple_reduction_1): Use swap_ssa_operands.
2928 * tree-flow.h: Move various prototypes to tree-phinodes.h.
2929 (enum need_phi_state): Move to tree-into-ssa.c.
2930 (struct immediate_use_iterator_d, FOR_EACH_IMM_*,
2931 BREAK_FROM_IMM_USE_STMT): Move to ssa-iterators.h.
2932 (swap_tree_operands): Rename and move prototype to tree-ssa-operands.h.
2933 * tree-flow-inline.h (delink_imm_use, link_imm_use_to_list,
2934 link_imm_use, set_ssa_use_from_ptr, link_imm_use_stmt, relink_imm_use,
2935 relink_imm_use_stmt, end_readonly_imm_use_p, first_readonly_imm_use,
2936 next_readonly_imm_use, has_zero_uses, has_single_use, single_imm_use,
2937 num_imm_uses): Move to ssa-iterators.h.
2938 (get_use_from_ptr, get_def_from_ptr): Move to tree-ssa-operands.h
2939 (gimple_phi_arg_imm_use_ptr, phi_arg_index_from_use): Move to
2940 tree-phinodes.h.
2941 (op_iter_done, op_iter_next_def, op_iter_next_tree,
2942 clear_and_done_ssa_iter, op_iter_init, op_iter_init_use,
2943 op_iter_init_def, op_iter_init_tree, single_ssa_tree_operand,
2944 single_ssa_use_operand, single_ssa_def_operand, zero_ssa_operands,
2945 num_ssa_operands, delink_stmt_imm_use, single_phi_def,
2946 op_iter_init_phiuse, op_iter_init_phidef, end_imm_use_stmt_p,
2947 end_imm_use_stmt_traverse, move_use_after_head, link_use_stmts_after,
2948 first_imm_use_stmt, next_imm_use_stmt, first_imm_use_on_stmt,
2949 end_imm_use_on_stmt_p, next_imm_use_on_stmt): Move to ssa-iterators.h.
2950 (gimple_phi_arg_def, gimple_phi_arg_def_ptr, gimple_phi_arg_edge,
2951 gimple_phi_arg_location, gimple_phi_arg_location_from_edge,
2952 gimple_phi_arg_set_location, gimple_phi_arg_has_location, phi_nodes,
2953 phi_nodes_ptr, phi_ssa_name_p): Move to gimple.h.
2954 (set_phi_nodes): Move to tree-phinodes.h.
2955 * tree-ssa-operands.h (enum ssa_op_iter_type,
2956 struct ssa_operand_iterator_d, SSA_OP*, FOR_EACH_SSA*, SINGLE_SSA*,
2957 ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS): Move to ssa-iterators.h.
2958 (dump_decl_set): Remove prototype.
2959 (get_use_from_ptr, get_def_from_ptr): Relocate from tree-flow.h.
2960 * tree-phinodes.h: New file. Move some prototypes from tree-flow.h.
2961 (set_phi_nodes): Relocate from tree-flow-inline.h.
2962 (gimple_phi_arg_imm_use_ptr, phi_arg_index_from_use): Relocate from
2963 tree-flow-inline.h
2964 * tree-ssa.h: Add tree-phinodes.h, gimple-ssa.h, ssa-iterators.h to
2965 include list. Temporarily add gimple.h to include list.
2966 * ssa-iterators.h: New file.
2967 (struct immediate_use_iterator_d, FOR_EACH_IMM_*,
2968 BREAK_FROM_IMM_USE_STMT): Relocate from tree-flow.h.
2969 (enum ssa_op_iter_type, struct ssa_operand_iterator_d, SSA_OP*,
2970 FOR_EACH_SSA*, SINGLE_SSA*, ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS):
2971 Relocate from tree-ssa-operands.h.
2972 (delink_imm_use, link_imm_use_to_list, link_imm_use,
2973 set_ssa_use_from_ptr, link_imm_use_stmt, relink_imm_use,
2974 relink_imm_use_stmt, end_readonly_imm_use_p, first_readonly_imm_use,
2975 next_readonly_imm_use, has_zero_uses, has_single_use, single_imm_use,
2976 num_imm_uses, get_use_from_ptr, get_def_from_ptr,
2977 phi_arg_index_from_use, op_iter_done, op_iter_next_def,
2978 op_iter_next_tree, clear_and_done_ssa_iter, op_iter_init,
2979 op_iter_init_use, op_iter_init_def, op_iter_init_tree,
2980 single_ssa_tree_operand, single_ssa_use_operand, single_ssa_def_operand,
2981 zero_ssa_operands, num_ssa_operands, delink_stmt_imm_use,
2982 single_phi_def, op_iter_init_phiuse, op_iter_init_phidef,
2983 end_imm_use_stmt_p, end_imm_use_stmt_traverse, move_use_after_head,
2984 link_use_stmts_after, first_imm_use_stmt, next_imm_use_stmt,
2985 first_imm_use_on_stmt, end_imm_use_on_stmt_p, next_imm_use_on_stmt):
2986 Relocate from tree-flow-inline.h.
2987 * tree-outof-ssa.h: Change _SSAEXPAND_H macro to GCC_TREE_OUTOF_SSA_H.
2988
2989 2013-10-01 Vidya Praveen <vidyapraveen@arm.com>
2990
2991 * aarch64-simd.md
2992 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l2<mode>_internal): Rename to ...
2993 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_hi_internal): ... this;
2994 Insert '\t' to output template.
2995 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_lo_internal): New.
2996 (aarch64_saddl2<mode>, aarch64_uaddl2<mode>): Modify to call
2997 gen_aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_hi_internal() instead.
2998 (aarch64_ssubl2<mode>, aarch64_usubl2<mode>): Ditto.
2999
3000 2013-10-01 Uros Bizjak <ubizjak@gmail.com>
3001
3002 * doc/install.texi (Host/target specific installation notes for GCC):
3003 Put @anchor before @heading.
3004 * doc/gcc.texi (titlepage): Use @uref and http:// prefix for website.
3005 Use @email for email addresses.
3006
3007 2013-10-01 Jeff Law <law@redhat.com>
3008
3009 * tree-ssa-threadedge.c (thread_across_edge): Make path a pointer to
3010 a vec. Only delete the path if we create one without successfully
3011 registering a jump thread.
3012 * tree-ssa-threadupdate.h (register_jump_thread): Pass in path vector
3013 as a pointer.
3014 * tree-ssa-threadupdate.c (threaded_edges): Remove. No longer used
3015 (paths): New vector of jump threading paths.
3016 (THREAD_TARGET, THREAD_TARGET2): Remove accessor macros.
3017 (THREAD_PATH): New accessor macro for the entire thread path.
3018 (lookup_redirection_data): Get intermediate and final outgoing edge
3019 from the thread path.
3020 (create_edge_and_update_destination_phis): Copy the threading path.
3021 (ssa_fix_duplicate_block_edges): Get edges and block types from the
3022 jump threading path.
3023 (ssa_redirect_edges): Get edges and block types from the jump threading
3024 path. Free the path vector.
3025 (thread_block): Get edges from the jump threading path. Look at the
3026 entire path to see if we thread to a loop exit. If we cancel a jump
3027 thread request, then free the path vector.
3028 (thread_single_edge): Get edges and block types from the jump threading
3029 path. Free the path vector.
3030 (thread_through_loop_header): Get edges and block types from the jump
3031 threading path. Free the path vector.
3032 (mark_threaded_blocks): Iterate over the vector of paths and store
3033 the path on the appropriate edge. Get edges and block types from the
3034 jump threading path.
3035 (mark_threaded_blocks): Get edges and block types from the jump
3036 threading path. Free the path vector.
3037 (thread_through_all_blocks): Use the vector of paths rather than
3038 a vector of 3-edge sets.
3039 (register_jump_thread): Accept pointer to a path vector rather
3040 than the path vector itself. Store the path vector for later use.
3041 Simplify.
3042
3043 2013-10-01 Jakub Jelinek <jakub@redhat.com>
3044 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3045
3046 PR target/58574
3047 * config/s390/s390.c (s390_split_branches): Modify check for table
3048 jump insns.
3049 (s390_chunkify_start): Rearrange table jump insn check in order to
3050 deal with compare and branch insns correctly.
3051
3052 2013-10-01 Kugan Vivekanandarajah <kuganv@linaro.org>
3053
3054 PR target/58578
3055 Revert
3056 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
3057 * config/arm/arm.md (arm_ashldi3_1bit): define_insn into
3058 define_insn_and_split.
3059 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
3060 (shiftsi3_compare): New pattern.
3061 (rrx): New pattern.
3062 * config/arm/unspecs.md (UNSPEC_RRX): New.
3063
3064 2013-10-01 Alan Modra <amodra@gmail.com>
3065
3066 * stmt.c (expand_asm_operands): Revert part of 2013-09-24 special
3067 casing inout operands.
3068
3069 2013-10-01 Richard Biener <rguenther@suse.de>
3070
3071 PR tree-optimization/58553
3072 * tree-loop-distribution.c (struct partition_s): Add niter member.
3073 (classify_partition): Populate niter member for the partition
3074 and properly identify whether the relevant store happens before
3075 or after the loop exit.
3076 (generate_memset_builtin): Use niter member from the partition.
3077 (generate_memcpy_builtin): Likewise.
3078
3079 2013-09-30 Richard Sandiford <rdsandiford@googlemail.com>
3080
3081 * vec.h (vec_prefix, vec): Prefix member names with "m_".
3082 * vec.c (vec_prefix::calculate_allocation): Update accordingly.
3083
3084 2013-09-30 Richard Sandiford <rdsandiford@googlemail.com>
3085
3086 * basic-block.h (edge_list): Prefix member names with "m_".
3087 * context.h (context): Likewise.
3088 * domwalk.h (dom_walker): Likewise.
3089 * gengtype-state.c (s_expr_writer, state_writer): Likewise.
3090 * graphite-sese-to-poly.c (sese_dom_walker): Likewise.
3091 * hash-table.h (hash_table): Likewise.
3092 * machmode.h (bit_field_mode_iterator): Likewise.
3093 * pass_manager.h (pass_list): Likewise.
3094 * tree-into-ssa.c (mark_def_dom_walker): Likewise.
3095 * tree-pass.h (pass_data): Likewise.
3096 * tree-ssa-dom.c (dom_opt_dom_walker): Likewise.
3097 * tree-ssa-phiopt.c (nontrapping_dom_walker): Likewise,
3098 * tree-ssa-uncprop.c (uncprop_dom_walker): Likewise.
3099 * asan.c (pass_data_asan): Update accordingly.
3100 * cfganal.c (control_dependences::find_control_dependence): Likewise.
3101 (control_dependences::control_dependences): Likewise.
3102 (control_dependences::~control_dependences): Likewise.
3103 (control_dependences::~control_dependences): Likewise.
3104 (control_dependences::get_edges_dependent_on): Likewise.
3105 * cgraphbuild.c (pass_data_rebuild_cgraph_edges::clone): Likewise.
3106 (pass_data_remove_cgraph_callee_edges::clone): Likewise.
3107 * context.c (gcc::context::context): Likewise.
3108 * cprop.c (pass_rtl_cprop::clone): Likewise.
3109 * domwalk.c (dom_walker::walk): Likewise.
3110 * ipa-inline-analysis.c (pass_inline_parameters::clone): Likewise.
3111 * ipa-pure-const.c (pass_local_pure_const::clone): Likewise.
3112 * mode-switching.c (pass_mode_switching::clone): Likewise.
3113 * passes.c (opt_pass::opt_pass): Likewise.
3114 (pass_manager::pass_manager): Likewise.
3115 * predict.c (pass_strip_predict_hints::clone): Likewise.
3116 * recog.c (pass_data pass_data_peephole2::clone): Likewise.
3117 (pass_split_all_insns::clone): Likewise.
3118 * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator):
3119 Likewise.
3120 (bit_field_mode_iterator::next_mode): Likewise.
3121 (bit_field_mode_iterator::prefer_smaller_modes): Likewise.
3122 * tree-cfg.c (pass_split_crit_edges::clone): Likewise.
3123 * tree-cfgcleanup.c (pass_merge_phi::clone): Likewise.
3124 * tree-complex.c (pass_lower_complex::clone): Likewise.
3125 * tree-eh.c (pass_cleanup_eh::clone): Likewise.
3126 * tree-object-size.c (pass_object_sizes::clone): Likewise.
3127 * tree-optimize.c (pass_fixup_cfg::clone): Likewise.
3128 * tree-ssa-ccp.c (pass_data_ccp::clone): Likewise.
3129 (pass_fold_builtins::clone): Likewise.
3130 * tree-ssa-copy.c (pass_data_copy_prop::clone): Likewise.
3131 * tree-ssa-copyrename.c (pass_rename_ssa_copies::clone): Likewise.
3132 * tree-ssa-dce.c (pass_dce::clone, pass_dce_loop::clone): Likewise.
3133 (pass_cd_dce::clone): Likewise.
3134 * tree-ssa-dom.c (pass_dominator::clone): Likewise.
3135 (pass_phi_only_cprop::clone): Likewise.
3136 * tree-ssa-dse.c (pass_dse::clone): Likewise.
3137 * tree-ssa-forwprop.c (pass_forwprop::clone): Likewise.
3138 * tree-ssa-loop.c (pass_lim::clone): Likewise.
3139 * tree-ssa-phiopt.c (pass_phiopt::clone): Likewise.
3140 * tree-ssa-pre.c (pass_fre::clone): Likewise.
3141 * tree-ssa-reassoc.c (pass_reassoc::clone): Likewise.
3142 * tree-ssa-uninit.c (pass_late_warn_uninitialized::clone): Likewise.
3143 * tree-tailcall.c (pass_tail_recursion::clone): Likewise.
3144 * tree-vect-generic.c (pass_lower_vector_ssa::clone): Likewise.
3145 * tree-vrp.c (pass_vrp::clone): Likewise.
3146 * tsan.c (pass_tsan::clone): Likewise.
3147
3148 2013-09-30 Jakub Jelinek <jakub@redhat.com>
3149
3150 PR middle-end/58564
3151 * fold-const.c (tree_unary_nonnegative_warnv_p): Use
3152 INTEGRAL_TYPE_P (t) instead of TREE_CODE (t) == INTEGER_TYPE.
3153
3154 PR middle-end/58564
3155 * fold-const.c (fold_ternary_loc): For A < 0 : <sign bit of A> : 0
3156 optimization, punt if sign_bit_p looked through any zero extension.
3157
3158 2013-09-30 Teresa Johnson <tejohnson@google.com>
3159
3160 * tree-ssa-threadupdate.c (ssa_fix_duplicate_block_edges):
3161 Update redirected out edge count in joiner case.
3162 (ssa_redirect_edges): Common the joiner and non-joiner cases
3163 so that joiner case gets profile updates.
3164
3165 2013-09-30 Richard Biener <rguenther@suse.de>
3166
3167 PR tree-optimization/58554
3168 * tree-loop-distribution.c (classify_partition): Require
3169 unconditionally executed stores for memcpy and memset recognition.
3170 (tree_loop_distribution): Calculate dominance info.
3171
3172 2013-09-30 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
3173
3174 * config/aarch64/aarch64.h (MCOUNT_NAME): Define.
3175 (NO_PROFILE_COUNTERS): Likewise.
3176 (PROFILE_HOOK): Likewise.
3177 (FUNCTION_PROFILER): Likewise.
3178 * config/aarch64/aarch64.c (aarch64_function_profiler): Remove.
3179
3180 2013-09-30 Iain Sandoe <iain@codesourcery.com>
3181
3182 * config/rs6000/darwin.md (load_macho_picbase_si): Wrap machopic
3183 calls and defines in TARGET_MACHO conditional.
3184 (load_macho_picbase_di): Likewise.
3185 (reload_macho_picbase): Likewise.
3186 (reload_macho_picbase_si): Likewise.
3187 (reload_macho_picbase_di): Likewise.
3188 (nonlocal_goto_receiver): Likewise.
3189
3190 2013-09-30 Nick Clifton <nickc@redhat.com>
3191
3192 * config/msp430/msp430.c (msp430x_names): New array. Lists MCUs
3193 that use the MSP430X ISA.
3194 (msp430_option_override): Scan -mmcu command line option for any
3195 MCU name that supports the MSP430X ISA.
3196 * config/msp430/t-msp430 (MULTILIB_MATCHES): Add matches for known
3197 -mmcu options which enable the MSP430X ISA.
3198
3199 2013-09-30 Richard Biener <rguenther@suse.de>
3200
3201 PR middle-end/58532
3202 * tree-cfg.c (make_abnormal_goto_edges): Skip debug statements
3203 before looking for setjmp-like calls.
3204
3205 2013-09-29 Iain Sandoe <iain@codesourcery.com>
3206
3207 PR target/10901
3208 * config/darwin-protos.h (machopic_get_function_picbase): New.
3209 * config/darwin.c (machopic_get_function_picbase): New.
3210 * config/rs6000/darwin.md (load_macho_picbase_si): Update picbase
3211 label for a new func. (load_macho_picbase_di): Likewise.
3212 (reload_macho_picbase): New expand.
3213 (reload_macho_picbase_si): New insn.
3214 (reload_macho_picbase_di): New insn.
3215 (nonlocal_goto_receiver): New define and split.
3216 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_RELD_MPIC.
3217 (unspecv enum): Add UNSPECV_NLGR.
3218
3219 2013-09-29 Iain Sandoe <iain@codesourcery.com>
3220
3221 * config/rs6000/rs6000.c (rs6000_init_dwarf_reg_sizes_extra): Ensure
3222 that altivec registers are correctly sized on Darwin.
3223
3224 2013-09-29 Iain Sandoe <iain@codesourcery.com>
3225
3226 * config/t-darwin (darwin.o, darwin-c.o, darwin-f.o,
3227 darwin-driver.o): Use COMPILE and POSTCOMPILE.
3228 * config/x-darwin (host-darwin.o): Likewise.
3229 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
3230 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
3231 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
3232
3233 2013-09-29 Uros Bizjak <ubizjak@gmail.com>
3234
3235 * doc/invoke.texi: Fix usage of @tie{} command.
3236
3237 2013-09-29 Eric Botcazou <ebotcazou@adacore.com>
3238
3239 * config/sparc/sync.md: Add peephole for consecutive memory barriers.
3240
3241 2013-09-28 Jan Hubicka <jh@suse.cz>
3242
3243 * config/i386/x86-tune.def: Add documentation for each of the options;
3244 add whitespace.
3245
3246 2013-09-28 Jan Hubicka <jh@suse.cz>
3247
3248 * x86-tune.def (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL): Enable for
3249 generic.
3250 (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Likewise.
3251 (X86_TUNE_FOUR_JUMP_LIMIT): Drop for generic and buldozer.
3252 (X86_TUNE_PAD_RETURNS): Drop for buldozer chips.
3253 (X86_TUNE_AVOID_VECTOR_DECODE): Drop for generic.
3254 (X86_TUNE_REASSOC_FP_TO_PARALLEL): Enable for generic.
3255
3256 2013-09-28 Richard Sandiford <rdsandiford@googlemail.com>
3257
3258 * alloc-pool.c, asan.c, auto-inc-dec.c, basic-block.h, bb-reorder.c,
3259 bitmap.c, bitmap.h, bt-load.c, builtins.c, calls.c, cfgcleanup.c,
3260 cfgexpand.c, cfghooks.c, cfgloop.c, cfgloopmanip.c, cfgrtl.c, cgraph.c,
3261 cgraph.h, cgraphbuild.c, cgraphclones.c, cgraphunit.c, collect2.c,
3262 combine-stack-adj.c, combine.c, compare-elim.c, context.c, context.h,
3263 cprop.c, cse.c, cselib.c, dbxout.c, dce.c, defaults.h, df-core.c,
3264 df-problems.c, df-scan.c, df.h, diagnostic.c, double-int.c, dse.c,
3265 dumpfile.c, dwarf2asm.c, dwarf2cfi.c, dwarf2out.c, emit-rtl.c,
3266 errors.c, except.c, expmed.c, expr.c, file-find.c, final.c,
3267 fixed-value.c, fold-const.c, function.c, fwprop.c, gcc-ar.c, gcc.c,
3268 gcov-io.c, gcov-io.h, gcov.c, gcse.c, genattr-common.c, genattr.c,
3269 genattrtab.c, genautomata.c, genconfig.c, genemit.c, genextract.c,
3270 genflags.c, gengenrtl.c, gengtype-state.c, gengtype.c, genmodes.c,
3271 genopinit.c, genoutput.c, genpeep.c, genpreds.c, genrecog.c,
3272 gensupport.c, ggc-common.c, ggc-page.c, gimple-fold.c, gimple-low.c,
3273 gimple-pretty-print.c, gimple-ssa-strength-reduction.c, gimple.c,
3274 gimple.h, godump.c, graphite-clast-to-gimple.c,
3275 graphite-optimize-isl.c, graphite-poly.h, graphite-sese-to-poly.c,
3276 graphite.c, haifa-sched.c, hash-table.c, hash-table.h, hwint.c,
3277 hwint.h, ifcvt.c, incpath.c, init-regs.c, input.h, intl.c, intl.h,
3278 ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
3279 ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c,
3280 ipa-utils.c, ipa.c, ira-build.c, ira.c, jump.c, loop-doloop.c,
3281 loop-init.c, loop-invariant.c, loop-iv.c, lower-subreg.c, lto-cgraph.c,
3282 lto-streamer-in.c, lto-streamer-out.c, lto-wrapper.c, mcf.c,
3283 mode-switching.c, modulo-sched.c, omp-low.c, optabs.c, opts.c,
3284 pass_manager.h, passes.c, plugin.c, postreload-gcse.c, postreload.c,
3285 predict.c, prefix.c, pretty-print.c, print-rtl.c, print-tree.c,
3286 profile.c, read-md.c, real.c, real.h, recog.c, ree.c, reg-stack.c,
3287 regcprop.c, reginfo.c, regmove.c, regrename.c, regs.h, regstat.c,
3288 reload1.c, reorg.c, rtl.c, rtl.h, rtlanal.c, sbitmap.c, sched-rgn.c,
3289 sdbout.c, sel-sched-ir.c, sel-sched.c, sparseset.c, stack-ptr-mod.c,
3290 statistics.c, stmt.c, stor-layout.c, store-motion.c, streamer-hooks.h,
3291 system.h, target-hooks-macros.h, targhooks.c, targhooks.h, toplev.c,
3292 tracer.c, trans-mem.c, tree-browser.c, tree-call-cdce.c, tree-cfg.c,
3293 tree-cfgcleanup.c, tree-complex.c, tree-data-ref.c, tree-data-ref.h,
3294 tree-eh.c, tree-emutls.c, tree-flow.h, tree-if-conv.c, tree-into-ssa.c,
3295 tree-iterator.c, tree-loop-distribution.c, tree-mudflap.c,
3296 tree-nested.c, tree-nomudflap.c, tree-nrv.c, tree-object-size.c,
3297 tree-optimize.c, tree-pass.h, tree-pretty-print.c, tree-profile.c,
3298 tree-scalar-evolution.c, tree-sra.c, tree-ssa-ccp.c,
3299 tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
3300 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
3301 tree-ssa-ifcombine.c, tree-ssa-live.c, tree-ssa-loop-ch.c,
3302 tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-loop-prefetch.c,
3303 tree-ssa-loop.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
3304 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
3305 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
3306 tree-ssa-structalias.c, tree-ssa-threadedge.c, tree-ssa-threadupdate.c,
3307 tree-ssa-uncprop.c, tree-ssa-uninit.c, tree-ssa.c, tree-ssanames.c,
3308 tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
3309 tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
3310 tree-vect-stmts.c, tree-vectorizer.c, tree-vectorizer.h, tree-vrp.c,
3311 tree.c, tree.h, tsan.c, tsystem.h, value-prof.c, var-tracking.c,
3312 varasm.c, vec.h, vmsdbgout.c, vtable-verify.c, web.c: Add missing
3313 whitespace before "(".
3314
3315 2013-09-28 Sandra Loosemore <sandra@codesourcery.com>
3316
3317 * expr.h (extract_bit_field): Remove packedp parameter.
3318 * expmed.c (extract_fixed_bit_field): Remove packedp parameter
3319 from forward declaration.
3320 (store_split_bit_field): Remove packedp arg from calls to
3321 extract_fixed_bit_field.
3322 (extract_bit_field_1): Remove packedp parameter and packedp
3323 argument from recursive calls and calls to extract_fixed_bit_field.
3324 (extract_bit_field): Remove packedp parameter and corresponding
3325 arg to extract_bit_field_1.
3326 (extract_fixed_bit_field): Remove packedp parameter. Remove code
3327 to issue warnings.
3328 (extract_split_bit_field): Remove packedp arg from call to
3329 extract_fixed_bit_field.
3330 * expr.c (emit_group_load_1): Adjust calls to extract_bit_field.
3331 (copy_blkmode_from_reg): Likewise.
3332 (copy_blkmode_to_reg): Likewise.
3333 (read_complex_part): Likewise.
3334 (store_field): Likewise.
3335 (expand_expr_real_1): Likewise.
3336 * calls.c (store_unaligned_arguments_into_pseudos): Adjust call
3337 to extract_bit_field.
3338 * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Adjust
3339 call to extract_bit_field.
3340 * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Adjust
3341 call to extract_bit_field.
3342 * doc/invoke.texi (Code Gen Options): Remove mention of warnings
3343 and special packedp behavior from -fstrict-volatile-bitfields
3344 documentation.
3345
3346 2013-09-27 Jan-Benedict Glaw <jbglaw@lug-owl.de>
3347
3348 * lra-eliminations.c (init_elim_table): Guard value_p.
3349
3350 2013-09-27 Michael Meissner <meissner@linux.vnet.ibm.com>
3351
3352 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Allow
3353 DFmode, DImode, and SFmode in the upper VSX registers based on the
3354 -mupper-regs-{df,sf} flags. Fix wu constraint to be ALTIVEC_REGS
3355 if -mpower8-vector. Combine -mvsx-timode handling with the rest
3356 of the VSX register handling.
3357
3358 * config/rs6000/rs6000.md (f32_lv): Use %x0 for VSX regsters.
3359 (f32_sv): Likewise.
3360 (zero_extendsidi2_lfiwzx): Add support for loading into the
3361 Altivec registers with -mpower8-vector. Use wu/wv constraints to
3362 only do VSX memory options on Altivec registers.
3363 (extendsidi2_lfiwax): Likewise.
3364 (extendsfdf2_fpr): Likewise.
3365 (mov<mode>_hardfloat, SF/SD modes): Likewise.
3366 (mov<mode>_hardfloat32, DF/DD modes): Likewise.
3367 (mov<mode>_hardfloat64, DF/DD modes): Likewise.
3368 (movdi_internal64): Likewise.
3369
3370 2013-09-27 Xinliang David Li <davidxl@google.com>
3371
3372 * opts.c (finish_options): Adjust parameters
3373 according to vect cost model.
3374 (common_handle_option): Set dynamic vect cost
3375 model for FDO.
3376 targhooks.c (default_add_stmt_cost): Compute stmt cost
3377 unconditionally.
3378 * tree-vect-loop.c (vect_estimate_min_profitable_iters):
3379 Use helper function.
3380 * tree-vectorizer.h (unlimited_cost_model): New function.
3381 * tree-vect-slp.c (vect_slp_analyze_bb_1): Use helper function.
3382 * tree-vect-data-refs.c (vect_peeling_hash_insert): Use helper
3383 function.
3384 (vect_enhance_data_refs_alignment): Ditto.
3385 * flag-types.h: New enum.
3386 * common/config/i386/i386-common.c (ix86_option_init_struct):
3387 No need to initialize vect_cost_model flag.
3388 * config/i386/i386.c (ix86_add_stmt_cost): Compute stmt cost
3389 unconditionally.
3390
3391 2013-09-27 Diego Novillo <dnovillo@google.com>
3392
3393 * gimple.h (enum ssa_mode): Remove.
3394
3395 2013-09-27 Paulo Matos <pmatos@broadcom.com>
3396
3397 * cfgloop.h (number_of_loops): Fix typo in check for null.
3398
3399 2013-09-27 Jakub Jelinek <jakub@redhat.com>
3400
3401 PR middle-end/58551
3402 * tree-cfg.c (move_sese_region_to_fn): Also move loops that
3403 are children of outermost saved_cfun's loop, and set it up to
3404 be moved to dest_cfun's outermost loop. Fix up num_nodes adjustments
3405 if loop != loop0 and SESE region contains bbs that belong to loop0.
3406
3407 2013-09-27 Richard Sandiford <rdsandiford@googlemail.com>
3408
3409 * rtlanal.c (must_be_base_p, must_be_index_p): Delete.
3410 (binary_scale_code_p, get_base_term, get_index_term): New functions.
3411 (set_address_segment, set_address_base, set_address_index)
3412 (set_address_disp): Accept the argument unconditionally.
3413 (baseness): Remove must_be_base_p and must_be_index_p checks.
3414 (decompose_normal_address): Classify as much as possible in the
3415 main loop.
3416
3417 2013-09-27 Richard Sandiford <rdsandiford@googlemail.com>
3418
3419 * cse.c (count_reg_usage): Handle INT_LIST.
3420 * lra-eliminations.c (lra_eliminate_regs_1): Likewise.
3421 * reginfo.c (reg_scan_mark_refs): Likewise.
3422 * reload1.c (eliminate_regs_1): Likewise.
3423
3424 2013-09-27 Iain Sandoe <iain@codesourcery.com>
3425
3426 PR middle-end/58547
3427 * rtlanal.c (lsb_bitfield_op_p): Make both parts of the comparison
3428 signed.
3429
3430 2013-09-27 Richard Biener <rguenther@suse.de>
3431
3432 PR tree-optimization/58459
3433 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Remove
3434 restriction not propagating into loops.
3435
3436 2013-09-26 Florian Weimer <fw@deneb.enyo.de>
3437
3438 * tree-ssa.h (walk_use_def_chains_fn, walk_use_def_chains): Delete.
3439 * tree-ssa.c (walk_use_def_chains_1, walk_use_def_chains): Delete.
3440 * doc/tree-ssa.texi (Walking use-def chains): Delete.
3441
3442 2013-09-26 Richard Biener <rguenther@suse.de>
3443
3444 * tree-into-ssa.c (rewrite_into_ssa): Make more SSA names to anonymous.
3445
3446 2013-09-26 Richard Biener <rguenther@suse.de>
3447
3448 * alias.h (component_uses_parent_alias_set): Rename to ...
3449 (component_uses_parent_alias_set_from): ... this.
3450 * alias.c (component_uses_parent_alias_set): Rename to ...
3451 (component_uses_parent_alias_set_from): ... this and return
3452 the desired parent.
3453 (reference_alias_ptr_type_1): Use the result from
3454 component_uses_parent_alias_set_from instead of stripping
3455 components one at a time.
3456 * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust.
3457
3458 2013-09-26 Andrew MacLeod <amacleod@redhat.com>
3459
3460 * tree-ssa-live.h (find_replaceable_exprs, dump_replaceable_exprs):
3461 Move prototypes to...
3462 * tree-ssa-ter.h: New File. Move prototypes here.
3463 * tree-flow.h (stmt_is_replaceable_p): Remove prototype.
3464 * tree-outof-ssa.h: New. Rename ssaexpand.h, include tree-ssa-ter.h.
3465 * tree-outof-ssa.c (ssa_is_replaceable_p): New. Refactor common bits
3466 from is_replaceable_p.
3467 * tree-ssa-ter.c (is_replaceable_p, stmt_is_replaceable_p): Delete.
3468 (ter_is_replaceable_p): New. Use new refactored ssa_is_replaceable_p.
3469 (process_replaceable): Use ter_is_replaceable_p.
3470 (find_replaceable_in_bb): Use ter_is_replaceable_p.
3471 * expr.c (stmt_is_replaceable_p): Relocate from tree-ssa-ter.c. Use
3472 newly refactored ssa_is_replaceable_p.
3473 * cfgexpand.c: Include tree-outof-ssa.h.
3474 * ssaexpand.h: Delete.
3475
3476 2013-09-26 Andrew MacLeod <amacleod@redhat.com>
3477
3478 * gimple.c (gimple_replace_lhs): Move to tree-ssa.c and rename.
3479 (struct count_ptr_d, count_ptr_derefs, count_uses_and_derefs): Move to
3480 tree-ssa.c
3481 (create_gimple_tmp): Delete.
3482 (get_expr_type, build_assign, build_type_cast): Move to...
3483 * gimple-builder.c: New File.
3484 (get_expr_type): Relocate from gimple.c.
3485 (build_assign, build_type_cast): Change to only create ssanames.
3486 * gimple.h: Move prototypes to...
3487 * gimple-builder.h: New File. Here.
3488 * tree-ssa.h: And here.
3489 * tree-ssa.c (struct count_ptr_d, count_ptr_derefs,
3490 count_uses_and_derefs): Relocate from gimple.c.
3491 (gimple_replace_ssa_lhs): Renamed gimple_replace_ssa from gimple.c
3492 * tree-ssa-reassoc.c (repropagate_negates): Use gimple_replace_ssa_lhs.
3493 * tree-ssa-math-opts (execute_cse_reciprocals): Use
3494 gimple_replace_ssa_lhs.
3495 * asan.c: Include gimple-builder.h.
3496 * Makefile.in: Add gimple-builder.o.
3497
3498 2013-09-26 Richard Biener <rguenther@suse.de>
3499
3500 * tree-ssa-live.c (var_map_base_init): Handle SSA names with
3501 DECL_IGNORED_P base VAR_DECLs like anonymous SSA names.
3502 (loe_visit_block): Use gcc_checking_assert.
3503 * tree-ssa-coalesce.c (create_outofssa_var_map): Use
3504 gimple_assign_ssa_name_copy_p.
3505 (gimple_can_coalesce_p): Adjust according to the var_map_base_init
3506 change.
3507
3508 2013-09-26 David Edelsohn <dje.gcc@gmail.com>
3509
3510 * config/rs6000/t-rs6000 (rs6000.o): Remove.
3511 (rs6000-c.o): Use COMPILE and POSTCOMPILE.
3512
3513 2013-09-26 Richard Biener <rguenther@suse.de>
3514
3515 PR tree-optimization/58539
3516 * tree-vect-loop.c (vect_create_epilog_for_reduction): Honor
3517 the fact that debug statements are not taking part in loop-closed
3518 SSA construction.
3519
3520 2013-09-26 Nick Clifton <nickc@redhat.com>
3521
3522 * config/msp430/msp430.c (msp430_expand_epilogue): Fix compile
3523 time warning message.
3524 (msp430_print_operand_raw): Delete unused letter parameter.
3525 (TARGET_PRINT_OPERAND_ADDRESS): Define.
3526 (msp430_print_operand_address): New function.
3527 (msp430_print_operand): Move address printing code from here to
3528 new function.
3529 * config/msp430/msp430.md (movsipsi2): Add comment in generated
3530 assembler.
3531 (zero_extendpsisi2): Likewise.
3532 (extendpsisi2): New pattern.
3533 (andneghi3): New pattern.
3534
3535 2013-09-26 Yvan Roux <yvan.roux@linaro.org>
3536
3537 * config/aarch64/aarch64.opt (mlra): New option.
3538 * config/aarch64/aarch64.c (aarch64_lra_p): New function.
3539 (TARGET_LRA_P): Define.
3540
3541 2013-09-26 Eric Botcazou <ebotcazou@adacore.com>
3542
3543 * expr.c (expand_assignment): Remove obsolete comment.
3544
3545 2013-09-25 Jeff Law <law@redhat.com>
3546
3547 * tree-flow.h (thread_through_all_blocks): Prototype moved into
3548 tree-ssa-threadupdate.h.
3549 (register_jump_thread): Similarly.
3550 * tree-ssa-threadupdate.h: New header file.
3551 * tree-ssa-dom.c: Include tree-ssa-threadupdate.h.
3552 * tree-vrp.c: Likewise.
3553 * tree-ssa-threadedge.c: Include tree-ssa-threadupdate.h.
3554 (thread_around_empty_blocks): Change type of path vector argument to
3555 an edge,type pair from just an edge. Initialize both elements when
3556 appending to a jump threading path. Tweak references to elements
3557 appropriately.
3558 (thread_across_edge): Similarly. Release memory for the elements
3559 as needed.
3560 * tree-ssa-threadupdate.c: Include tree-ssa-threadupdate.h.
3561 (dump_jump_thread_path): New function broken out from
3562 register_jump_thread.
3563 (register_jump_thread): Use dump_jump_thread_path. Change type of
3564 path vector entries. Search the path for NULL edges and dump
3565 the path if one is found. Tweak the conversion of path to 3-edge
3566 form to use the block copy type information embedded in the path.
3567
3568 2013-09-25 Yvan Roux <yvan.roux@linaro.org>
3569
3570 * lra.c (update_inc_notes): Remove all REG_DEAD and REG_UNUSED notes.
3571
3572 2013-09-25 Yvan Roux <yvan.roux@linaro.org>
3573 Vladimir Makarov <vmakarov@redhat.com>
3574
3575 * rtlanal.c (lsb_bitfield_op_p): New predicate for bitfield operations
3576 from the least significant bit.
3577 (strip_address_mutations): Add bitfield operations handling.
3578 (must_be_index_p): Add shifting and rotate operations handling.
3579 (set_address_base): Use must_be_base_p predicate.
3580 (set_address_index): Use must_be_index_p predicate.
3581
3582 2013-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
3583 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
3584 Sergey Lega <sergey.s.lega@intel.com>
3585 Anna Tikhonova <anna.tikhonova@intel.com>
3586 Ilya Tocar <ilya.tocar@intel.com>
3587 Andrey Turetskiy <andrey.turetskiy@intel.com>
3588 Ilya Verbin <ilya.verbin@intel.com>
3589 Kirill Yukhin <kirill.yukhin@intel.com>
3590 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
3591
3592 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
3593 Use new names.
3594 (ix86_expand_vector_move_misalign): Support new unaligned load and
3595 stores and use new names.
3596 (CODE_FOR_sse2_storedqu): Rename to ...
3597 (CODE_FOR_sse2_storedquv16qi): ... this.
3598 (CODE_FOR_sse2_loaddqu): Rename to ...
3599 (CODE_FOR_sse2_loaddquv16qi): ... this.
3600 (CODE_FOR_avx_loaddqu256): Rename to ...
3601 (CODE_FOR_avx_loaddquv32qi): ... this.
3602 (CODE_FOR_avx_storedqu256): Rename to ...
3603 (CODE_FOR_avx_storedquv32qi): ... this.
3604 * config/i386/i386.md (fpint_logic): New.
3605 * config/i386/sse.md (VMOVE): Extend for AVX512.
3606 (VF): Ditto.
3607 (VF_128_256): New.
3608 (VF_512): Ditto.
3609 (VI_UNALIGNED_LOADSTORE): Ditto.
3610 (sse2_avx_avx512f): Ditto.
3611 (sse2_avx2): Extend for AVX512.
3612 (sse4_1_avx2): Ditto.
3613 (avx2_avx512f): New.
3614 (sse): Extend for AVX512.
3615 (sse2): Ditto.
3616 (sse4_1): Ditto.
3617 (avxsizesuffix): Ditto.
3618 (sseintvecmode): Ditto.
3619 (ssePSmode): Ditto.
3620 (<sse>_loadu<ssemodesuffix><avxsizesuffix>): Ditto.
3621 (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Ditto.
3622 (<sse2>_loaddqu<avxsizesuffix>): Extend for AVX512 and rename to ...
3623 (<sse2_avx_avx512f>_loaddqu<mode>): ... this.
3624 (<sse2>_storedqu<avxsizesuffix>): Extend for AVX512 and rename to ...
3625 (<sse2_avx_avx512f>_storedqu<mode): ... this.
3626 (<sse>_movnt<mode>): Replace constraint "x" with "v".
3627 (STORENT_MODE): Extend for AVX512.
3628 (*absneg<mode>2): Replace constraint "x" with "v".
3629 (*mul<mode>3): Ditto.
3630 (*ieee_smin<mode>3): Ditto.
3631 (*ieee_smax<mode>3): Ditto.
3632 (avx_cmp<mode>3): Replace VF with VF_128_256.
3633 (*<sse>_maskcmp<mode>3_comm): Ditto.
3634 (<sse>_maskcmp<mode>3): Ditto.
3635 (<sse>_andnot<mode>3): Extend for AVX512.
3636 (<code><mode>3, anylogic): Replace VF with VF_128_256.
3637 (<code><mode>3, fpint_logic): New.
3638 (*<code><mode>3): Extend for AVX512.
3639 (avx512flogicsuff): New.
3640 (avx512f_<logic><mode>): Ditto.
3641 (<sse>_movmsk<ssemodesuffix><avxsizesuffix>): Replace VF with
3642 VF_128_256.
3643 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Ditto.
3644 (<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>): Ditto.
3645 (<sse4_1>_dp<ssemodesuffix><avxsizesuffix>): Ditto.
3646 (avx_vtest<ssemodesuffix><avxsizesuffix>): Ditto.
3647 (<sse4_1>_round<ssemodesuffix><avxsizesuffix>): Ditto.
3648 (xop_vpermil2<mode>3): Ditto.
3649 (*avx_vpermilp<mode>): Extend for AVX512 and rename to ...
3650 (*<sse2_avx_avx512f>_vpermilp<mode>): ... this.
3651 (avx_vpermilvar<mode>3): Extend for AVX512 and rename to ...
3652 (<sse2_avx_avx512f>_vpermilvar<mode>3): ... this.
3653
3654 2013-09-25 Tom Tromey <tromey@redhat.com>
3655
3656 * Makefile.in (PARTITION_H, LTO_SYMTAB_H, COMMON_TARGET_DEF_H)
3657 (RTL_ERROR_H, TRANS_MEM_H, COVERAGE_H, DEMANGLE_H, ALIAS_H)
3658 (SCHED_INT_H, SEL_SCHED_IR_H, SEL_SCHED_DUMP_H, VALTRACK_H, DDG_H)
3659 (GGC_INTERNAL_H, DECNUM_H, BACKTRACE_H, MKDEPS_H, TREE_HASHER_H)
3660 (TREE_SSA_LIVE_H, SSAEXPAND_H, DWARF2OUT_H, SCEV_H, OMEGA_H)
3661 (TREE_DATA_REF_H, IRA_INT_H, LRA_INT_H, DBGCNT_H, DATA_STREAMER_H)
3662 (GIMPLE_STREAMER_H, TREE_STREAMER_H, STREAMER_HOOKS_H)
3663 (TREE_VECTORIZER_H, IPA_INLINE_H, GSTAB_H, LIBFUNCS_H)
3664 (GRAPHITE_HTAB_H): Remove.
3665
3666 2013-09-25 Tom Tromey <tromey@redhat.com>
3667
3668 * config/mcore/t-mcore (CROSS_FLOAT_H): Remove.
3669
3670 2013-09-25 Tom Tromey <tromey@redhat.com>
3671
3672 * config/t-glibc (glibc-c.o): Use COMPILE and POSTCOMPILE.
3673
3674 2013-09-25 Tom Tromey <tromey@redhat.com>
3675
3676 * config/i386/t-i386 (i386.o): Remove.
3677 (i386-c.o): Use COMPILE and POSTCOMPILE.
3678
3679 2013-09-25 Tom Tromey <tromey@redhat.com>
3680
3681 * Makefile.in ($(out_object_file)): Use COMPILE and POSTCOMPILE.
3682
3683 2013-09-25 Tom Tromey <tromey@redhat.com>
3684
3685 * Makefile.in (graph.o, sbitmap.o, sparseset.o, gcc-ar.o)
3686 (gcc-ranlib.o, gcc-nm.o, collect2.o, collect2-aix.o, tlink.o)
3687 (lto-wrapper.o, default-c.o, attribs.o, incpath.o, prefix.o)
3688 (gcc.o, options.o, options-save.o, version.o, gtype-desc.o)
3689 (trans-mem.o, ggc-common.o, ggc-page.o, ggc-none.o, stringpool.o)
3690 (convert.o, double-int.o, lto-compress.o, data-streamer-in.o)
3691 (data-streamer-out.o, data-streamer.o, gimple-streamer-in.o)
3692 (gimple-streamer-out.o, tree-streamer.o, tree-streamer-in.o)
3693 (tree-streamer-out.o, streamer-hooks.o, lto-cgraph.o)
3694 (lto-streamer-in.o, lto-streamer-out.o, lto-section-in.o)
3695 (lto-section-out.o, lto-opts.o, lto-streamer.o, langhooks.o)
3696 (test-dump.o, tree.o, tree-dump.o, tree-inline.o, print-tree.o)
3697 (stor-layout.o, asan.o, tsan.o, ubsan.o, tree-ssa-tail-merge.o)
3698 (tree-ssa-structalias.o, tree-ssa-uninit.o, tree-ssa.o)
3699 (tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o)
3700 (tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o)
3701 (tree-ssa-phiprop.o, tree-ssa-ifcombine.o, tree-ssa-phiopt.o)
3702 (tree-nrv.o, tree-ssa-copy.o, tree-ssa-propagate.o)
3703 (tree-ssa-dom.o, tree-ssa-uncprop.o, tree-ssa-threadedge.o)
3704 (tree-ssa-threadupdate.o, tree-ssanames.o, tree-phinodes.o)
3705 (domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o)
3706 (tree-ssa-pre.o, tree-ssa-sccvn.o)
3707 (gimple-ssa-strength-reduction.o, tree-vrp.o, tree-cfg.o)
3708 (tree-cfgcleanup.o, tree-tailcall.o, tree-ssa-sink.o)
3709 (tree-nested.o, tree-if-conv.o, tree-iterator.o, tree-dfa.o)
3710 (tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o)
3711 (tree-ssa-loop-unswitch.o, tree-ssa-address.o)
3712 (tree-ssa-loop-niter.o, tree-ssa-loop-ivcanon.o)
3713 (tree-ssa-loop-ch.o, tree-ssa-loop-prefetch.o, tree-predcom.o)
3714 (tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-manip.o)
3715 (tree-ssa-loop-im.o, tree-ssa-math-opts.o, tree-ssa-alias.o)
3716 (tree-ssa-reassoc.o, tree-optimize.o, gimplify.o)
3717 (gimple-iterator.o, gimple-fold.o, gimple-low.o, omp-low.o)
3718 (tree-browser.o, omega.o, tree-chrec.o, tree-scalar-evolution.o)
3719 (tree-data-ref.o, sese.o, graphite.o, graphite-blocking.o)
3720 (graphite-clast-to-gimple.o, graphite-dependences.o)
3721 (graphite-interchange.o, graphite-poly.o)
3722 (graphite-scop-detection.o, graphite-sese-to-poly.o)
3723 (graphite-optimize-isl.o, tree-vect-loop.o)
3724 (tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o)
3725 (tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o)
3726 (vtable-verify.o, tree-loop-distribution.o, tree-parloops.o)
3727 (tree-stdarg.o, tree-object-size.o, internal-fn.o, gimple.o)
3728 (gimple-pretty-print.o, tree-mudflap.o, tree-nomudflap.o)
3729 (tree-pretty-print.o, tree-diagnostic.o, fold-const.o)
3730 (diagnostic.o, diagnostic-color.o, opts.o, opts-global.o)
3731 (opts-common.o, targhooks.o, common/common-targhooks.o, input.o)
3732 (toplev.o, hwint.o, passes.o, plugin.o, main.o, host-default.o)
3733 (rtl-error.o, rtl.o, print-rtl.o, rtlanal.o, varasm.o, function.o)
3734 (statistics.o, stmt.o, except.o, expr.o, dojump.o, builtins.o)
3735 (calls.o, expmed.o, explow.o, optabs.o, dbxout.o, debug.o)
3736 (sdbout.o, dwarf2out.o, dwarf2cfi.o, dwarf2asm.o, vmsdbgout.o)
3737 (xcoffout.o, godump.o, emit-rtl.o, real.o, realmpfr.o, dfp.o)
3738 (fixed-value.o, jump.o, simplify-rtx.o, symtab.o, cgraph.o)
3739 (cgraphunit.o, cgraphclones.o, cgraphbuild.o, varpool.o, ipa.o)
3740 (ipa-profile.o, ipa-devirt.o, ipa-prop.o, ipa-ref.o, ipa-cp.o)
3741 (ipa-split.o, ipa-inline.o, ipa-inline-analysis.o)
3742 (ipa-inline-transform.o, ipa-utils.o, ipa-reference.o)
3743 (ipa-pure-const.o, coverage.o, cselib.o, cse.o, dce.o, dumpfile.o)
3744 (dse.o, fwprop.o, web.o, ree.o, cprop.o, gcse.o, store-motion.o)
3745 (resource.o, lcm.o, mode-switching.o, tree-ssa-dce.o)
3746 (tree-call-cdce.o, tree-ssa-ccp.o, tree-ssa-strlen.o, tree-sra.o)
3747 (tree-switch-conversion.o, tree-complex.o, tree-emutls.o)
3748 (tree-vect-generic.o, df-core.o, df-problems.o, df-scan.o)
3749 (regstat.o, valtrack.o, var-tracking.o, profile.o, mcf.o)
3750 (tree-profile.o, value-prof.o, loop-doloop.o, alloc-pool.o)
3751 (auto-inc-dec.o, cfg.o, cfghooks.o, cfgexpand.o, cfgrtl.o)
3752 (cfganal.o, cfgbuild.o, cfgcleanup.o, cfgloop.o, cfgloopanal.o)
3753 (graphds.o, loop-iv.o, loop-invariant.o, cfgloopmanip.o)
3754 (loop-init.o, loop-unswitch.o, loop-unroll.o, dominance.o)
3755 (et-forest.o, combine.o, reginfo.o, bitmap.o, vec.o, hash-table.o)
3756 (reload.o, reload1.o, rtlhooks.o, postreload.o, postreload-gcse.o)
3757 (caller-save.o, bt-load.o, reorg.o, alias.o, stack-ptr-mod.o)
3758 (init-regs.o, ira-build.o, ira-costs.o, ira-conflicts.o)
3759 (ira-color.o, ira-emit.o, ira-lives.o, ira.o, lra.o)
3760 (lra-assigns.o, lra-coalesce.o, lra-constraints.o)
3761 (lra-eliminations.o, lra-lives.o, lra-spills.o, regmove.o)
3762 (combine-stack-adj.o, compare-elim.o, ddg.o, modulo-sched.o)
3763 (haifa-sched.o, sched-deps.o, sched-rgn.o, sched-ebb.o)
3764 (sched-vis.o, sel-sched.o, sel-sched-dump.o, sel-sched-ir.o)
3765 (final.o, recog.o, reg-stack.o, sreal.o, predict.o, lists.o)
3766 (bb-reorder.o, tracer.o, timevar.o, regcprop.o, regrename.o)
3767 (ifcvt.o, params.o, pointer-set.o, hooks.o, pretty-print.o)
3768 (errors.o, dbgcnt.o, lower-subreg.o, target-globals.o)
3769 (hw-doloop.o, file-find.o, context.o, $(common_out_object_file))
3770 (insn-attrtab.o, insn-automata.o, insn-dfatab.o, insn-emit.o)
3771 (insn-enums.o, insn-extract.o, insn-latencytab.o, insn-modes.o)
3772 (insn-opinit.o, insn-output.o, insn-peep.o, insn-preds.o)
3773 (insn-recog.o, intl.o, cppbuiltin.o, cppdefault.o, gcov.o)
3774 (gcov-dump.o): Remove.
3775 (default-c.o): Use COMPILE and POSTCOMPILE.
3776 (CFLAGS-gcc.o): New variable.
3777 ($(common_out_object_file)): Use COMPILE and POSTCOMPILE.
3778
3779 2013-09-25 Tom Tromey <tromey@redhat.com>
3780
3781 * Makefile.in (c-family/cppspec.o, c-family/c-common.o)
3782 (c-family/c-cppbuiltin.o, c-family/c-dump.o, c-family/c-format.o)
3783 (c-family/c-gimplify.o, c-family/c-lex.o, c-family/c-omp.o)
3784 (c-family/c-opts.o, c-family/c-pch.o, c-family/c-ppoutput.o)
3785 (c-family/c-pragma.o, c-family/c-pretty-print.o)
3786 (c-family/c-semantics.o, c-family/c-ada-spec.o)
3787 (c-family/array-notation-common.o, c-family/stub-objc.o)
3788 (c-family/c-ubsan.o): Remove.
3789
3790 2013-09-25 Tom Tromey <tromey@redhat.com>
3791
3792 * Makefile.in (C_TREE_H): Reference c/c-tree.h.
3793
3794 2013-09-25 Tom Tromey <tromey@redhat.com>
3795
3796 * Makefile.in (DRIVER_DEFINES): Use $(and), not shell code,
3797 to add -DENABLE_SHARED_LIBGCC.
3798 (gcc.o): Don't use subshell.
3799
3800 2013-09-25 Tom Tromey <tromey@redhat.com>
3801
3802 * Makefile.in (OUTPUT_OPTION): Define as "-o $@".
3803 * configure.ac: Don't invoke AM_PROG_CC_C_O.
3804 (NO_MINUS_C_MINUS_O, OUTPUT_OPTION): Don't subst.
3805 * configure, config.in: Rebuild.
3806
3807 2013-09-25 Tom Tromey <tromey@redhat.com>
3808
3809 * Makefile.in (CCDEPMODE, DEPDIR, depcomp, COMPILE.base)
3810 (COMPILE, POSTCOMPILE): New variables.
3811 (.cc.o .c.o): Use COMPILE, POSTCOMPILE.
3812 (DEPFILES): New variable.
3813 Include ".Po" files.
3814 * configure.ac: Add checks for dependency checking.
3815 * configure, aclocal.m4: Regenerate.
3816
3817 2013-09-25 Tom Tromey <tromey@redhat.com>
3818
3819 * Makefile.in (ALL_HOST_BACKEND_OBJS): Add lto-wrapper.o.
3820 ($(ALL_HOST_OBJS)): Move order-only dependency to end of file.
3821
3822 2013-09-25 Tom Tromey <tromey@redhat.com>
3823
3824 * Makefile.in (generated_files): Add options.h,
3825 target-hooks-def.h, insn-opinit.h,
3826 common/common-target-hooks-def.h, pass-instances.def,
3827 c-family/c-target-hooks-def.h.
3828
3829 2013-09-25 Jeff Law <law@redhat.com>
3830
3831 * tree-ssa-threadedge.c (thread_across_edge): Use foo.last () rather
3832 than foo[foo.length () - 1] to access last member in a vec.
3833 * tree-ssa-threadupdate.c (register_jump_thread): Similarly.
3834
3835 2013-09-25 Richard Biener <rguenther@suse.de>
3836
3837 PR middle-end/58521
3838 * tree.c (iterative_hash_expr): Remove MEM_REF special handling.
3839
3840 2013-09-25 Jan Hubicka <jh@suse.cz>
3841
3842 * cgraph.c (cgraph_resolve_speculation): Use semantical equivalency
3843 test.
3844
3845 2013-09-25 Marek Polacek <polacek@redhat.com>
3846
3847 PR sanitizer/58420
3848 * ubsan.c (ubsan_type_descriptor): Handle IDENTIFIER_NODEs
3849 when determining the type name.
3850
3851 2013-09-24 Oleg Endo <olegendo@gcc.gnu.org>
3852
3853 * config/sh/sh.md: Fix formatting.
3854
3855 2013-09-24 Xinliang David Li <davidxl@google.com>
3856
3857 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Check
3858 max peel iterations parameter.
3859 * param.def: New parameter.
3860 * doc/invoke.texi: Document New parameter.
3861
3862 2013-09-24 Christophe Lyon <christophe.lyon@linaro.org>
3863
3864 * gimple-pretty-print.c: Various whitespace tweaks.
3865 * tree-core.h: Likewise.
3866 * tree-pretty-print.c: Likewise.
3867 * tree-ssa-alias.c: Likewise.
3868 * tree-ssa-copy.c: Likewise.
3869 * tree-ssanames.c: Likewise.
3870 * tree-ssanames.h: Likewise.
3871 * tree-vrp.c: Likewise.
3872
3873 2013-09-24 Alan Modra <amodra@gmail.com>
3874
3875 PR middle-end/57134
3876 PR middle-end/57586
3877 * stmt.c (expand_asm_operands): Call expand_expr with EXPAND_MEMORY
3878 for output operands that disallow regs. Don't use EXPAND_WRITE on
3879 inout operands.
3880
3881 2013-09-24 Richard Biener <rguenther@suse.de>
3882
3883 PR middle-end/58513
3884 * tree.c (reference_alias_ptr_type): Move ...
3885 * alias.c (reference_alias_ptr_type): ... here and implement
3886 in terms of the new reference_alias_ptr_type_1.
3887 (ref_all_alias_ptr_type_p): New helper.
3888 (get_deref_alias_set_1): Drop flag_strict_aliasing here,
3889 use ref_all_alias_ptr_type_p.
3890 (get_deref_alias_set): Add flag_strict_aliasing check here.
3891 (reference_alias_ptr_type_1): New function, split out from ...
3892 (get_alias_set): ... here.
3893 (alias_ptr_types_compatible_p): New function.
3894 * alias.h (reference_alias_ptr_type): Declare.
3895 (alias_ptr_types_compatible_p): Likewise.
3896 * tree.h (reference_alias_ptr_type): Remove.
3897 * fold-const.c (operand_equal_p): Use alias_ptr_types_compatible_p
3898 to compare MEM_REF alias types.
3899
3900 2013-09-24 Richard Biener <rguenther@suse.de>
3901
3902 * tree-vrp.c (vrp_finalize): Check for SSA name presence.
3903
3904 2013-09-23 Michael Meissner <meissner@linux.vnet.ibm.com>
3905
3906 * config/rs6000/rs6000.c (rs6000_vector_reload): Delete, combine
3907 reload helper function arrays into a single array reg_addr.
3908 (reload_fpr_gpr): Likewise.
3909 (reload_gpr_vsx): Likewise.
3910 (reload_vsx_gpr): Likewise.
3911 (struct rs6000_reg_addr): Likewise.
3912 (reg_addr): Likewise.
3913 (rs6000_debug_reg_global): Change rs6000_vector_reload,
3914 reload_fpr_gpr, reload_gpr_vsx, reload_vsx_gpr uses to reg_addr.
3915 (rs6000_init_hard_regno_mode_ok): Likewise.
3916 (rs6000_secondary_reload_direct_move): Likewise.
3917 (rs6000_secondary_reload): Likewise.
3918
3919 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add new
3920 constraints: wu, ww, and wy. Repurpose wv constraint added during
3921 power8 changes. Put wg constraint in alphabetical order.
3922
3923 * config/rs6000/rs6000.opt (-mvsx-scalar-float): New debug switch
3924 for future work to add ISA 2.07 VSX single precision support.
3925 (-mvsx-scalar-double): Change default from -1 to 1, update
3926 documentation comment.
3927 (-mvsx-scalar-memory): Rename debug switch to -mupper-regs-df.
3928 (-mupper-regs-df): New debug switch to control whether DF values
3929 can go in the traditional Altivec registers.
3930 (-mupper-regs-sf): New debug switch to control whether SF values
3931 can go in the traditional Altivec registers.
3932
3933 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print wu, ww,
3934 and wy constraints.
3935 (rs6000_init_hard_regno_mode_ok): Use ssize_t instead of int for
3936 loop variables. Rename -mvsx-scalar-memory to -mupper-regs-df.
3937 Add new constraints, wu/ww/wy. Repurpose wv constraint.
3938 (rs6000_debug_legitimate_address_p): Print if we are running
3939 before, during, or after reload.
3940 (rs6000_secondary_reload): Add a comment.
3941 (rs6000_opt_masks): Add -mupper-regs-df, -mupper-regs-sf.
3942
3943 * config/rs6000/constraints.md (wa constraint): Sort w<x>
3944 constraints. Update documentation string.
3945 (wd constraint): Likewise.
3946 (wf constraint): Likewise.
3947 (wg constraint): Likewise.
3948 (wn constraint): Likewise.
3949 (ws constraint): Likewise.
3950 (wt constraint): Likewise.
3951 (wx constraint): Likewise.
3952 (wz constraint): Likewise.
3953 (wu constraint): New constraint for ISA 2.07 SFmode scalar
3954 instructions.
3955 (ww constraint): Likewise.
3956 (wy constraint): Likewise.
3957 (wv constraint): Repurpose ISA 2.07 constraint that we not used in
3958 the previous submissions.
3959 * doc/md.texi (PowerPC and IBM RS6000): Likewise.
3960
3961 2013-09-23 Richard Sandiford <rdsandiford@googlemail.com>
3962
3963 * doc/rtl.texi (REG_NOTES): Say that int_list can also be used.
3964 (REG_BR_PROB): Say that the probability is stored in an int_list.
3965 * reg-notes.def: Update commentary to mention INT_LIST.
3966 * rtl.def (EXPR_LIST, INSN_LIST): Capitalize comments.
3967 (INT_LIST): New rtx.
3968 * rtl.h (add_int_reg_note, add_shallow_copy_of_reg_note): Declare.
3969 * rtlanal.c (int_reg_note_p): New function.
3970 (alloc_reg_note): Assert that the note does not have an int argument.
3971 (add_int_reg_note, add_shallow_copy_of_reg_note): New functions.
3972 * combine.c (distribute_notes): Use add_shallow_copy_of_rtx.
3973 * cse.c (cse_process_notes_1): Expect REG_EQUAL to be an EXPR_LIST
3974 rather than an INSN_LIST. Handle INT_LIST.
3975 * ifcvt.c (cond_exec_process_insns): Take the probability as an int
3976 rather than an rtx. Use gen_rtx_INT_LIST to create a REG_BR_PROB note.
3977 (cond_exec_process_if_block): Use XINT to extract REG_BR_PROB values.
3978 Manipulate them as ints rather than rtxes.
3979 * reg-stack.c (subst_asm_stack_regs): Only handle EXPR_LIST notes.
3980 * regmove.c (copy_src_to_dest): Likewise.
3981 * sched-vis.c (print_insn_with_notes): Handle INT_LIST.
3982
3983 * config/i386/winnt.c (i386_pe_seh_unwind_emit): Sink pat assignment
3984 into the cases that need it.
3985 * config/arm/arm.c (arm_unwind_emit): Likewise.
3986
3987 * asan.c (asan_clear_shadow): Use add_int_reg_note for REG_BR_PROB.
3988 * emit-rtl.c (try_split, emit_copy_of_insn_after): Likewise.
3989 * loop-doloop.c (add_test, doloop_modify): Likewise.
3990 * loop-unswitch.c (compare_and_jump_seq): Likewise.
3991 * optabs.c (emit_cmp_and_jump_insn_1): Likewise.
3992 * predict.c (combine_predictions_for_insn): Likewise.
3993 * print-rtl.c (print_rtx): Handle INT_LIST.
3994 * config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): Likewise.
3995 * config/alpha/alpha.c (emit_unlikely_jump): Likewise.
3996 * config/arm/arm.c (emit_unlikely_jump): Likewise.
3997 * config/i386/i386.c (ix86_expand_split_stack_prologue): Likewise.
3998 (ix86_split_fp_branch, predict_jump): Likewise.
3999 * config/rs6000/rs6000.c (emit_unlikely_jump): Likewise.
4000 * config/sh/sh.c (expand_cbranchsi4): Likewise.
4001 * config/spu/spu.c (ea_load_store_inline): Likewise.
4002
4003 * cfgbuild.c (compute_outgoing_frequencies): Use XINT to access the
4004 value of a REG_BR_PROB note.
4005 * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
4006 (update_br_prob_note, rtl_verify_edges, purge_dead_edges): Likewise.
4007 * emit-rtl.c (try_split): Likewise.
4008 * predict.c (br_prob_note_reliable_p): Likewise.
4009 (invert_br_probabilities, combine_predictions_for_insn): Likewise.
4010 * reorg.c (mostly_true_jump): Likewise.
4011 * config/bfin/bfin.c (cbranch_predicted_taken_p): Likewise.
4012 * config/frv/frv.c (frv_print_operand_jump_hint): Likewise.
4013 * config/i386/i386.c (ix86_print_operand): Likewise.
4014 * config/ia64/ia64.c (ia64_print_operand): Likewise.
4015 * config/mmix/mmix.c (mmix_print_operand): Likewise.
4016 * config/rs6000/rs6000.c (output_cbranch): Likewise.
4017 * config/s390/s390.c (s390_expand_tbegin): Likewise.
4018 * config/sh/sh.c (sh_print_operand, sh_adjust_cost): Likewise.
4019 * config/sparc/sparc.c (output_cbranch): Likewise.
4020 * config/spu/spu.c (get_branch_target): Likewise.
4021 * config/tilegx/tilegx.c (cbranch_predicted_p): Likewise.
4022 * config/tilepro/tilepro.c (cbranch_predicted_p): Likewise.
4023
4024 2013-09-23 Jan Hubicka <jh@suse.cz>
4025
4026 * ipa-cp.c (ipa_get_indirect_edge_target_1): Add sanity check
4027 for ipa-devirt.
4028 * ipa-utils.h (possible_polymorphic_call_target_p): New function.
4029 * ipa-devirt.c (possible_polymorphic_call_target_p): Be tolerant
4030 of external calls
4031 * gimple-fold.c: Include ipa-utils.h and gimple-pretty-print.h
4032 (gimple_fold_call): Dump inconsistent devirtualizations; add
4033 sanity check for type based devirtualizations.
4034 * ipa-prop.c: Include ipa-utils.h
4035 (ipa_intraprocedural_devirtualization): Add sanity check.
4036 (try_make_edge_direct_virtual_call): Likewise.
4037
4038 2013-09-23 Eric Botcazou <ebotcazou@adacore.com>
4039
4040 * tree-ssa-ccp.c (insert_clobber_before_stack_restore): Recurse on copy
4041 assignment statements.
4042
4043 2013-09-23 Kugan Vivekanandarajah <kuganv@linaro.org>
4044
4045 * gimple-pretty-print.c (dump_ssaname_info): New function.
4046 (dump_gimple_phi): Call it.
4047 (pp_gimple_stmt_1): Likewise.
4048 * tree-core.h (tree_ssa_name): New union ssa_name_info_type field.
4049 (range_info_def): Declare.
4050 * tree-pretty-print.c (pp_double_int): New function.
4051 (dump_generic_node): Call it.
4052 * tree-pretty-print.h (pp_double_int): Declare.
4053 * tree-ssa-alias.c (dump_alias_info): Check pointer type.
4054 * tree-ssanames.h (range_info_def): New structure.
4055 (value_range_type): Move definition here.
4056 (set_range_info, value_range_type, duplicate_ssa_name_range_info):
4057 Declare.
4058 * tree-ssanames.c (make_ssa_name_fn): Check pointer type at
4059 initialization.
4060 (set_range_info): New function.
4061 (get_range_info): Likewise.
4062 (duplicate_ssa_name_range_info): Likewise.
4063 (duplicate_ssa_name_fn): Check pointer type and call
4064 duplicate_ssa_name_range_info.
4065 * tree-ssa-copy.c (fini_copy_prop): Likewise.
4066 * tree-vrp.c (value_range_type): Remove definition, now in
4067 tree-ssanames.h.
4068 (vrp_finalize): Call set_range_info to update value range of SSA_NAMEs.
4069 * tree.h (SSA_NAME_PTR_INFO): Macro changed to access via union.
4070 (SSA_NAME_RANGE_INFO): New macro.
4071
4072 2013-09-23 Richard Biener <rguenther@suse.de>
4073
4074 PR tree-optimization/58464
4075 * tree-ssa-pre.c (phi_trans_lookup): Remove.
4076 (phi_trans_add): Change to add conditionally on being not present.
4077 (phi_translate_1): Remove recursion detection here.
4078 (phi_translate): Pre-seed the cache with NULL to catch
4079 recursion here in a more generic way.
4080 (bitmap_find_leader): Adjust comment.
4081 (get_representative_for): Dump value-numbers.
4082 (create_expression_by_pieces): Likewise.
4083 (insert_into_preds_of_block): Likewise.
4084
4085 2013-09-23 Christian Bruel <christian.bruel@st.com>
4086
4087 PR target/58475
4088 * config/sh/sh.md (movsf_ie): Allow fpul_operand.
4089 * config/sh/predicate.md (arith_reg_operand): Disallow FPUL_REG.
4090
4091 2013-09-23 James Greenhalgh <james.greenhalgh@arm.com>
4092
4093 Revert r202780:
4094 2013-09-20 Renlin Li <renlin.li@arm.com>
4095
4096 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use
4097 plus_constant.
4098 (aarch64_expand_epilogue): Likewise.
4099 (aarch64_legitimize_reload_address): Likewise.
4100
4101 2013-09-22 Eric Botcazou <ebotcazou@adacore.com>
4102
4103 * gimplify.c (gimplify_asm_expr): Reset the TREE_CHAIN of clobbers to
4104 NULL_TREE before pushing them onto the vector. Likewise for labels.
4105
4106 2013-09-21 Eric Botcazou <ebotcazou@adacore.com>
4107
4108 * config/ia64/predicates.md (ia64_cbranch_operator): Accept unordered
4109 comparison operators when -fno-trapping-math is in effect.
4110 * config/ia64/ia64.c (ia64_expand_compare): Add support for unordered
4111 comparison operators in TFmode and assert that unsupported operators
4112 cannot reach here.
4113 (ia64_print_operand): Likewise.
4114
4115 2013-09-21 Jan Hubicka <jh@suse.cz>
4116
4117 * x86-tune.def (partial_reg_stall): Disable for CoreI7 and newer.
4118 (sse_typeless_stores): Enable for core
4119 (sse_load0_by_pxor): Likewise.
4120 (four_jump_limit): Disable for core.
4121 (pad_returns): Likewise.
4122 (avoid_vector_decode): Likewise.
4123 (fuse_cmp_and_branch): Enable for cores.
4124 * i386.c (x86_accumulate_outgoing_args): Disable for cores.
4125
4126 2013-09-20 John David Anglin <danglin@gcc.gnu.org>
4127
4128 PR middle-end/56791
4129 * config/pa/pa.c (pa_option_override): Disable auto increment and
4130 decrement instructions until reload is completed.
4131
4132 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Define
4133 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2,
4134 and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
4135
4136 2013-09-20 DJ Delorie <dj@redhat.com>
4137 Nick Clifton <nickc@redhat.com>
4138
4139 * config/rl78/rl78.c: Various whitespace and comment tweaks.
4140 (need_to_save): Save bank 0 on interrupts.
4141 (characterize_address): Strip far address wrappers.
4142 (rl78_as_legitimate_address): Likewise.
4143 (transcode_memory_rtx): Likewise.
4144 (rl78_peep_movhi_p): Disable this peephole after devirt.
4145 (rl78_propogate_register_origins): Forget all origins when a
4146 CLOBBER is seen.
4147 * config/rl78/rl78-virt.md: Various whitespace tweaks.
4148 * config/rl78/rl78-real.md: Various whitespace tweaks. Additional
4149 peephole2's.
4150 * config/rl78/rl78.md (sel_rb): Disable for G10 just in case.
4151 * config/rl78/rl78-expand.md (movqi): Check for subregs of consts.
4152 * config/rl78/rl78.h (LINK_SPEC): Pass -gc-sections unless
4153 relocating.
4154 * config/rl78/constraints.md: Various whitespace and paren tweaks.
4155
4156 2013-09-20 John David Anglin <danglin@gcc.gnu.org>
4157
4158 * config/pa/pa.md: In "scc" insn patterns, change output template to
4159 handle const0_rtx in reg_or_0_operand operands.
4160
4161 2013-09-20 Martin Husemann <martin@NetBSD.org>
4162
4163 PR target/56875
4164 * config/vax/vax.c (vax_output_int_move): Use D format specifier.
4165 * config/vax/vax.md (ashldi3, <unnamed>): Ditto.
4166
4167 2013-09-20 Richard Biener <rguenther@suse.de>
4168
4169 PR middle-end/58484
4170 * tree-scalar-evolution.c (struct scev_info_str): Shrink by
4171 remembering SSA name version and block index.
4172 (new_scev_info_str): Adjust.
4173 (hash_scev_info): Likewise. Also hash the block index.
4174 (eq_scev_info): Adjust.
4175 (find_var_scev_info): Likewise.
4176 (struct instantiate_cache_entry): Remove.
4177 (struct instantiate_cache_type): Use a htab to map name, block
4178 to chrec.
4179 (instantiate_cache_type::~instantiate_cache_type): Adjust.
4180 (get_instantiated_value_entry): Likewise.
4181 (hash_idx_scev_info, eq_idx_scev_info): New functions.
4182 (instantiate_scev_name): Adjust.
4183
4184 2013-09-20 Jeff Law <law@redhat.com>
4185
4186 * tree-ssa-dom.c (record_temporary_equivalences): Add comment.
4187
4188 2013-09-20 Yufeng Zhang <yufeng.zhang@arm.com>
4189
4190 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args):
4191 Call aarch64_simd_expand_args to update op[argc].
4192
4193 2013-09-20 Basile Starynkevitch <basile@starynkevitch.net>
4194
4195 * plugin.c (parse_plugin_arg_opt): Accept equal sign inside
4196 plugin argument.
4197
4198 2013-09-20 Basile Starynkevitch <basile@starynkevitch.net>
4199
4200 * gengtype.c (file_rules): Added rule for *.cc files.
4201 (get_output_file_with_visibility): Give fatal message when no
4202 rules found.
4203
4204 2013-09-20 Renlin Li <renlin.li@arm.com>
4205
4206 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use plus_constant.
4207 (aarch64_expand_epilogue): Likewise.
4208 (aarch64_legitimize_reload_address): Likewise.
4209
4210 2013-09-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
4211
4212 PR middle-end/57748
4213 * expr.c (expand_assignment): Remove misalignp code path.
4214
4215 2013-09-20 Marek Polacek <polacek@redhat.com>
4216
4217 PR sanitizer/58413
4218 * ubsan.c (get_ubsan_type_info_for_type): Use TYPE_SIZE instead of
4219 TYPE_PRECISION. Add asserts.
4220
4221 2013-09-20 Richard Biener <rguenther@suse.de>
4222
4223 PR tree-optimization/58453
4224 * tree-loop-distribution.c (distribute_loop): Apply the cost
4225 model for -ftree-loop-distribute-patterns, too.
4226
4227 2013-09-20 Richard Biener <rguenther@suse.de>
4228
4229 PR middle-end/58473
4230 * tree-chrec.h (build_polynomial_chrec): Use gcc_checking_assert,
4231 make type comparison less strict.
4232
4233 2013-09-20 Alan Modra <amodra@gmail.com>
4234
4235 * configure: Regenerate.
4236 * aclocal.m4: Regenerate.
4237
4238 2013-09-20 Marek Polacek <polacek@redhat.com>
4239
4240 PR other/58467
4241 * doc/extend.texi: Document that attribute used is meant to be used
4242 on variables with static storage duration.
4243
4244 2013-09-19 Jakub Jelinek <jakub@redhat.com>
4245
4246 PR tree-optimization/58472
4247 * tree-vect-stmts.c (vectorizable_store, vectorizable_load): For
4248 simd_lane_access set inv_p = false.
4249 * omp-low.c (lower_rec_input_clauses): Set TREE_NO_WARNING on
4250 the simduid magic VAR_DECL.
4251
4252 2013-09-19 Jan Hubicka <jh@suse.cz>
4253
4254 * i386.c (generic_memcpy, generic_memset): Fix 32bit template.
4255
4256 2013-09-17 Jeff Law <law@redhat.com>
4257
4258 * tree-ssa-dom.c (record_temporary_equivalences): New function
4259 split out of dom_opt_dom_walker::after_dom_children.
4260 (dom_opt_dom_walker::thread_across_edge): Move common code
4261 in here from dom_opt_dom_walker::after_dom_children.
4262 (dom_opt_dom_walker::after_dom_children): Corresponding simplifictions.
4263
4264 2013-09-19 Jan Hubicka <jh@suse.cz>
4265
4266 * i386.h (TARGET_GENERIC32, TARGET_GENERIC64): Remove.
4267 (TARGET_GENERIC): Use PROCESOR_GENERIC
4268 (enum processor_type): Unify generic32 and 64.
4269 * i386.md (cpu): Likewise.
4270 * x86-tune.def (use_leave): Enable for generic32.
4271 (avoid_vector_decode, slow_imul_imm32_mem, slow_imul_imm8): Likewise.
4272 * athlon.md: Change generic64 to generic in all occurences.
4273 * i386-c.c (ix86_target_macros_internal): Unify generic64 and 32.
4274 (ix86_target_macros_internal): Likewise.
4275 * driver-i386.c (host_detect_local_cpu): Likewise.
4276 * i386.c (generic64_memcpy, generic64_memset, generic64_cost): Rename
4277 to ..
4278 (generic_memcpy, generic_memset, generic_cost): This one.
4279 (generic32_memcpy, generic32_memset, generic32_cost): Remove.
4280 (m_GENERIC32, m_GENERIC64): Remove.
4281 (m_GENERIC): Turn into one flag.
4282 (processor_target): Unify generic tunnings.
4283 (ix86_option_override_internal): Replace generic32/64 by generic.
4284 (ix86_issue_rate): Likewise.
4285 (ix86_adjust_cost): Likewise.
4286
4287 2013-09-19 Jan Hubicka <jh@suse.cz>
4288
4289 * cgraph.c (cgraph_create_edge_1): Avoid uninitialized read
4290 of speculative flag.
4291
4292 2013-09-19 Jakub Jelinek <jakub@redhat.com>
4293
4294 * omp-low.c (expand_omp_sections): Always pass len - 1 to
4295 GOMP_sections_start, even if !exit_reachable.
4296
4297 2013-09-18 Vladimir Makarov <vmakarov@redhat.com>
4298
4299 * lra-constraints.c (need_for_all_save_p): Use macro
4300 HARD_REGNO_CALL_PART_CLOBBERED.
4301 * lra-lives.c (check_pseudos_live_through_calls): Use the macro to
4302 set up pseudo conflict hard regs.
4303
4304 2013-09-18 Michael Meissner <meissner@linux.vnet.ibm.com>
4305
4306 PR target/58452
4307 * config/rs6000/paired.md (movmisalignv2sf): Fix to allow memory
4308 operands.
4309
4310 2013-09-18 Vladimir Makarov <vmakarov@redhat.com>
4311
4312 PR rtl-optimization/58438
4313 * lra.c (lra): Clear lra_optional_reload_pseudos in upper loop.
4314 * lra-constraints.c (undo_optional_reloads): Keep optional reloads
4315 from previous subpasses.
4316
4317 2013-09-18 Richard Earnshaw <rearnsha@arm.com>
4318
4319 * arm.c (arm_get_frame_offsets): Validate architecture supports
4320 LDRD/STRD before accepting the tuning preference.
4321 (arm_expand_prologue): Likewise.
4322 (arm_expand_epilogue): Likewise.
4323
4324 2013-09-18 Richard Biener <rguenther@suse.de>
4325
4326 PR tree-optimization/58417
4327 * tree-chrec.c (chrec_fold_plus_1): Assert that we do not
4328 have chrecs with symbols defined in the loop as operands.
4329 (chrec_fold_multiply): Likewise.
4330 * tree-scalar-evolution.c (interpret_rhs_expr): Instantiate
4331 parameters before folding binary operations.
4332 (struct instantiate_cache_entry_hasher): Remove.
4333 (struct instantiate_cache_type): Use a pointer-map.
4334 (instantiate_cache_type::instantiate_cache_type): New function.
4335 (instantiate_cache_type::get): Likewise.
4336 (instantiate_cache_type::set): Likewise.
4337 (instantiate_cache_type::~instantiate_cache_type): Adjust.
4338 (get_instantiated_value_entry): Likewise.
4339 (global_cache): New global.
4340 (instantiate_scev_r, instantiate_scev_poly, instantiate_scev_binary,
4341 instantiate_array_ref, instantiate_scev_convert, instantiate_scev_3,
4342 instantiate_scev_2, instantiate_scev_1): Do not pass along cache.
4343 (instantiate_scev_name): Adjust.
4344 (instantiate_scev): Construct global instead of local cache.
4345 (resolve_mixers): Likewise.
4346
4347 2013-09-18 Daniel Morris <danielm@ecoscentric.com>
4348 Paolo Carlini <paolo.carlini@oracle.com>
4349
4350 PR c++/58458
4351 * doc/implement-cxx.texi: Fix references to the C++ standards.
4352
4353 2013-09-18 Jakub Jelinek <jakub@redhat.com>
4354
4355 * omp-low.c (copy_var_decl): Copy DECL_ATTRIBUTES.
4356 * tree-vect-data-refs.c (vect_analyze_data_refs): For
4357 simd_lane_access drs, update also DR_ALIGNED_TO.
4358
4359 2013-09-18 Marek Polacek <polacek@redhat.com>
4360
4361 PR sanitizer/58411
4362 * doc/extend.texi: Document no_sanitize_undefined attribute.
4363 * builtins.c (fold_builtin_0): Don't sanitize function if it has the
4364 no_sanitize_undefined attribute.
4365
4366 2013-09-18 Nick Clifton <nickc@redhat.com>
4367
4368 * config/msp430/msp430.h (ASM_SPEC): Pass -md on to the assembler.
4369 (ASM_DECLARE_FUNCTION_NAME): Define.
4370
4371 2013-09-17 Trevor Saunders <tsaunders@mozilla.com>
4372
4373 * compare-elim.c (find_comparison_dom_walker): New class
4374 (find_comparisons_in_bb): Rename to
4375 find_comparison_dom_walker::before_dom_children
4376 (find_comparisons): Adjust
4377 * domwalk.c (walk_dominator_tree): Rename to dom_walker::walk, and
4378 adjust.
4379 (init_walk_dominator_tree, fini_walk_dominator_tree): Remove
4380 * domwalk.h (dom_walk_data): Convert it To a class dom_walker.
4381 (init_walk_dominator_tree): Remove declaration.
4382 (fini_walk_dominator_tree): Remove declaration.
4383 * fwprop.c (single_def_use_dom_walker): New class
4384 (single_def_use_enter_block): Convert to
4385 single_def_use_dom_walker::before_dom_children.
4386 (single_def_use_leave_block): Convert to
4387 single_def_use_dom_walker::after_dom_children.
4388 (build_single_def_use_links): Adjust.
4389 * gimple-ssa-strength-reduction.c (find_candidates_dom_walker): New
4390 class.
4391 (find_candidates_in_block): Convert to
4392 find_candidates_dom_walker::before_dom_children.
4393 (execute_strength_reduction): Adjust.
4394 * graphite-sese-to-poly.c (struct bsc, build_sese_conditions): Remove.
4395 (sese_dom_walker): New class.
4396 (sese_dom_walker::sese_dom_walker): New constructor.
4397 (sese_dom_walker::~sese_dom_walker): New destructor.
4398 (build_sese_conditions_before): Convert to
4399 sese_dom_walker::before_dom_children.
4400 (build_sese_conditions_after): Convert to
4401 sese_dom_walker::after_dom_children.
4402 (build_poly_scop): Adjust
4403 * tree-into-ssa.c (rewrite_dom_walker): New class
4404 (rewrite_enter_block): Convert to
4405 rewrite_dom_walker::before_dom_children.
4406 (rewrite_leave_block): Convert to
4407 rewrite_dom_walker::after_dom_children.
4408 (rewrite_update_dom_walker): New class.
4409 (rewrite_update_enter_block): Convert to
4410 rewrite_update_dom_walker::before_dom_children.
4411 (rewrite_update_leave_block): Convert to
4412 rewrite_update_dom_walker::after_dom_children.
4413 (rewrite_blocks, rewrite_into_ssa): Adjust.
4414 (mark_def_dom_walker): New class.
4415 (mark_def_dom_walker::mark_def_dom_walker): New constructor.
4416 (mark_def_dom_walker::~mark_def_dom_walker): New destructor.
4417 (mark_def_sites_blocks): Convert to
4418 mark_def_dom_walker::before_dom_children.
4419 (mark_def_site_blocks): Remove.
4420 * tree-ssa-dom.c (dom_opt_dom_walker): New class.
4421 (tree_ssa_dominator_optimize): Adjust.
4422 (dom_thread_across_edge): Convert to method
4423 dom_opt_dom_walker::thread_across_edge.
4424 (dom_opt_enter_block): Convert to member function
4425 dom_opt_dom_walker::before_dom_children.
4426 (dom_opt_leave_block): Convert to member function
4427 dom_opt_dom_walker::after_dom_children.
4428 * tree-ssa-dse.c (dse_dom_walker): New class.
4429 (dse_enter_block): Convert to member function
4430 dse_dom_walker::before_dom_children.
4431 (tree_ssa_dse): Adjust.
4432 * tree-ssa-loop-im.c (invariantness_dom_walker): New class.
4433 (determine_invariantness_stmt): Convert to method
4434 invariantness_dom_walker::before_dom_children.
4435 (determine_invariantness): Remove
4436 (move_computations_dom_walker): New class.
4437 (move_computations_stmt): Convert to method
4438 move_computations_dom_walker::before_dom_children.
4439 (move_computations, tree_ssa_lim): Adjust.
4440 * tree-ssa-phiopt.c (nontrapping_dom_walker): new class
4441 (nt_init_block): Make method
4442 notrappping_dom_walker::before_dom_children.
4443 (nt_fini_block): Make
4444 method nontrapping_dom_walker::after_dom_children.
4445 (get_non_trapping): Adjust.
4446 * tree-ssa-pre.c (eliminate_dom_walker): New class.
4447 (eliminate_bb): Make method eliminate_dom_walker::before_dom_children.
4448 (eliminate_leave_block): Make method.
4449 eliminate_dom_walker::after_dom_children.
4450 (eliminate): Adjust
4451 * tree-ssa-strlen.c (strlen_dom_walker): New class.
4452 (strlen_enter_block): Make method
4453 strlen_dom_walker::before_dom_children.
4454 (strlen_leave_block): Make
4455 method strlen_dom_walker::after_dom_children.
4456 (tree_ssa_strlen): Adjust.
4457 * tree-ssa-uncprop.c (uncprop_dom_walker): New class.
4458 (tree_ssa_uncprop): Adjust.
4459 (uncprop_leave_block): Make method
4460 uncprop_dom_walker::after_dom_children.
4461 (uncprop_leave_block): Make method
4462 uncprop_dom_walker::before_dom_children.
4463
4464 2013-09-18 Bin Cheng <bin.cheng@arm.com>
4465
4466 * config/arm/arm.c (thumb1_reorg): Search for flag setting insn before
4467 branch in same basic block. Check both src and dest of the move insn.
4468
4469 2013-09-17 Nick Clifton <nickc@redhat.com>
4470
4471 * config/rl78/rl78-real.md (bf): New pattern.
4472 (bt): New pattern.
4473 * config/rl78/rl78.c (rl78_print_operand_1): Handle %B.
4474 (rl78_print_operand): Do not put a # before a %B.
4475 * config/rl78/rl78.opt: Tweak doc strings.
4476
4477 2013-09-17 DJ Delorie <dj@redhat.com>
4478
4479 * config/rl78/constraints.md (Wcv): Allow up to $r31.
4480 * config/rl78/rl78.c (rl78_asm_file_start: Likewise.
4481 (rl78_option_override): Likewise, if -mallregs.
4482 (is_virtual_register): Likewise.
4483 * config/rl78/rl78.h (reg_class): Extend VREGS to $r31.
4484 (REGNO_OK_FOR_BASE_P): Likewise.
4485 * config/rl78/rl78.opt (-mallregs): New.
4486
4487 2013-09-17 Nick Clifton <nickc@redhat.com>
4488
4489 * config/rl78/rl78.c (need_to_save): Change return type to bool.
4490 For interrupt functions: save all call clobbered registers if the
4491 interrupt handler is not a leaf function.
4492 (rl78_expand_prologue): Always recompute the frame information.
4493 For interrupt functions: only select bank 0 if one of the bank 0
4494 registers is going to be psuhed.
4495
4496 2013-09-17 DJ Delorie <dj@redhat.com>
4497
4498 * config/rl78/constraints.md: For each W* constraint, rename to C*
4499 and create a W* constraint that checks for an optional ES: prefix
4500 pattern also.
4501 * config/rl78/rl78.md (UNS_ES_ADDR): New.
4502 (es_addr): New. Used to wrap far addresses.
4503 * config/rl78/rl78-protos.h (rl78_es_addr): New.
4504 (rl78_es_base): New.
4505 * config/rl78/rl78.c (rl78_as_legitimate_address): Accept "unspec"
4506 wrapped far addresses.
4507 (rl78_print_operand_1): Unwrap far addresses before processing.
4508 (rl78_lo16): Wrap far addresses in unspecs.
4509 (rl78_es_addr): New.
4510 (rl78_es_base): New.
4511 (insn_ok_now): Check for not-yet-wrapped far addresses.
4512 (transcode_memory_rtx): Properly re-wrap far addresses.
4513
4514 2013-09-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
4515
4516 * config/sparc/t-rtems: Add leon3 multilibs.
4517
4518 2013-09-17 Cong Hou <congh@google.com>
4519
4520 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Fix a bug
4521 when checking the dot production pattern. The type of rhs operand
4522 of multiply is now checked correctly.
4523
4524 2013-09-17 Jeff Law <law@redhat.com>
4525
4526 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
4527 edge implied equivalences into successor phis.
4528 * tree-ssa-threadupdate.c (phi_args_equal_on_edges): Moved into
4529 here from tree-ssa-threadedge.c.
4530 (mark_threaded_blocks): When threading through a joiner, if both
4531 successors of the joiner's clone reach the same block, verify the
4532 PHI arguments are equal. If not, cancel the jump threading request.
4533 * tree-ssa-threadedge.c (phi_args_equal_on_edges): Moved into
4534 tree-ssa-threadupdate.c
4535 (thread_across_edge): Don't check PHI argument equality when
4536 threading through joiner block here.
4537
4538 2013-09-17 Andrew MacLeod <amacleod@redhat.com>
4539
4540 * tree-flow.h (ssa_undefined_value_p): Remove prototype.
4541 * tree-ssa.c (ssa_undefined_value_p): Move pass independent parts here.
4542 (warn_uninit, warn_uninitialized_vars,
4543 execute_early_warn_uninitialized, make_pass_early_warn_uninitialized):
4544 Move to tree-ssa-uninit.c.
4545 * tree-ssa-uninit.c (ssa_undefined_value_p): Move to tree-ssa.c.
4546 (has_undefined_value_p): New. Pass dependant parts of
4547 ssa_undefined_value_p.
4548 (uninit_undefined_value_p): Use has_undefined_value_p.
4549 (warn_uninit, warn_uninitialized_vars,
4550 execute_early_warn_uninitialized, make_pass_early_warn_uninitialized):
4551 Move from tree-ssa.c.
4552 * tree-ssa.h: Adjust prototypes.
4553
4554 2013-09-17 Jan Hubicka <jh@suse.cz>
4555
4556 PR middle-end/58332
4557 * cif-code.def (FUNCTION_NOT_OPTIMIZED): New CIF code.
4558 * ipa-inline.c (can_inline_edge_p): Do not downgrade
4559 FUNCTION_NOT_OPTIMIZED.
4560 * ipa-inline-analysis.c (compute_inline_parameters): Function
4561 not optimized is not inlinable unless it is alwaysinline.
4562 (inline_analyze_function): Force calls in not optimized
4563 function not inlinable.
4564
4565 2013-09-17 Jan Hubicka <jh@suse.cz>
4566
4567 PR middle-end/58329
4568 * ipa-devirt.c (ipa_devirt): Be ready for symtab_nonoverwritable_alias
4569 to return NULL.
4570 * ipa.c (function_and_variable_visibility): Likewise.
4571 * ipa-profile.c (ipa_profile): Likewise.
4572
4573 2013-09-17 Bernd Edlinger <bernd.edlinger@hotmail.de>
4574
4575 PR ipa/58398
4576 * cgraph.c (cgraph_function_body_availability): Check for ifunc
4577 attribute, and don't inline the resolver in this case.
4578
4579 2013-09-17 Teresa Johnson <tejohnson@google.com>
4580
4581 * coverage.c (get_coverage_counts): Add missing newline.
4582
4583 2013-09-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4584
4585 PR tree-optimization/58088
4586 * fold-const.c (mask_with_trailing_zeros): New function.
4587 (fold_binary_loc): Make sure we don't recurse infinitely
4588 when the X in (X & C1) | C2 is a tree of the form (Y * K1) & K2.
4589 Use mask_with_trailing_zeros where appropriate.
4590
4591 2013-09-17 Yuri Rumyantsev <ysrumyan@gmail.com>
4592
4593 * config/i386/i386.c (distance_agu_use_in_bb) : Proper initialization
4594 of 'prev' var to get better distance estimation.
4595
4596 2013-09-17 Eric Botcazou <ebotcazou@adacore.com>
4597
4598 * tree-inline.h (struct copy_body_data): Add transform_parameter.
4599 * tree-inline.c (is_parameter_of): New predicate.
4600 (remap_gimple_op_r): Do not propagate TREE_THIS_NOTRAP on MEM_REF if
4601 a parameter has been remapped.
4602 (copy_tree_body_r): Likewise on INDIRECT_REF and MEM_REF.
4603 (optimize_inline_calls): Initialize transform_parameter.
4604 (copy_gimple_seq_and_replace_locals): Likewise.
4605 (tree_function_versioning): Likewise.
4606 (maybe_inline_call_in_expr): Likewise.
4607
4608 2013-09-17 Nick Clifton <nickc@redhat.com>
4609
4610 * config/msp430/msp430-protos.h: Add prototypes for new functions.
4611 * config/msp430/msp430.c (msp430_preserve_reg_p): Add support for
4612 interrupt handlers.
4613 (is_attr_func): New function.
4614 (msp430_is_interrupt_func): New function.
4615 (is_naked_func): New function.
4616 (is_reentrant_func): New function.
4617 (is_critical_func): New function.
4618 (msp430_start_function): Add annotations for function attributes.
4619 (msp430_attr): New function.
4620 (msp430_attribute_table): New.
4621 (msp430_function_section): New function.
4622 (TARGET_ASM_FUNCTION_SECTION): Define.
4623 (msp430_builtin): New enum.
4624 (msp430_init_builtins): New function.
4625 (msp430_builtin_devl): New function.
4626 (msp430_expand_builtin): New function.
4627 (TARGET_INIT_BUILTINS): Define.
4628 (TARGET_EXPAND_BUILTINS): Define.
4629 (TARGET_BUILTIN_DECL): Define.
4630 (msp430_expand_prologue): Add support for naked, interrupt,
4631 critical and reentrant functions.
4632 (msp430_expand_epilogue): Likewise.
4633 (msp430_print_operand): Handle 'O' character.
4634 * config/msp430/msp430.h (TARGET_CPU_CPP_BUILTINS): Define
4635 NO_TRAMPOLINES.
4636 * config/msp430/msp430.md (unspec): Add UNS_DINT, UNS_EINT,
4637 UNS_PUSH_INTR, UNS_POP_INTR, UNS_BIC_SR, UNS_BIS_SR.
4638 (pushm): Use a 'n' rather than an 'i' constraint.
4639 (msp_return): Add generation of the interrupt return instruction.
4640 (disable_interrupts): New pattern.
4641 (enable_interrupts): New pattern.
4642 (push_intr_state): New pattern.
4643 (pop_intr_state): New pattern.
4644 (bic_SR): New pattern.
4645 (bis_SR): New pattern.
4646 * doc/extend.texi: Document MSP430 function attributes and builtin
4647 functions.
4648
4649 2013-09-17 Richard Biener <rguenther@suse.de>
4650
4651 PR tree-optimization/58432
4652 * tree-loop-distribution.c (tree_loop_distribution): Also
4653 scan PHIs for outside loop uses and seed a partition from them.
4654
4655 2013-09-17 Bin Cheng <bin.cheng@arm.com>
4656
4657 * gimple-ssa-strength-reduction.c (backtrace_base_for_ref): New.
4658 (restructure_reference): Call backtrace_base_for_ref.
4659
4660 2013-09-17 Alan Modra <amodra@gmail.com>
4661
4662 PR target/57589
4663 * config/rs6000/driver-rs6000.c (elf_platform): Revert 2013-06-11
4664 patch.
4665
4666 2013-09-16 DJ Delorie <dj@redhat.com>
4667
4668 * config/rl78/rl78.c (rl78_asm_file_start): Specify alternate
4669 vregs location for RL78/G10.
4670 (rl78_expand_prologue): Avoid SEL on G10.
4671 (rl78_expand_epilogue): Likewise.
4672 (rl78_peep_movhi_p): Can't move a constant to memory in HImode.
4673 * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
4674 __RL78_G10__ when appropriate.
4675 (ASM_SPEC): Pass -mg10 along to the assembler.
4676 * config/rl78/rl78.md (sel_rb): Disable for G10.
4677 * config/rl78/rl78.opt: Add -mg10 option.
4678 * config/rl78/t-rl78: Add -mg10 multilib.
4679
4680 2013-09-16 Xinliang David Li <davidxl@google.com>
4681
4682 * tree-if-conv.c (main_tree_if_conversion): Check new flag.
4683 * omp-low.c (omp_max_vf): Ditto.
4684 (expand_omp_simd): Ditto.
4685 * tree-vectorizer.c (vectorize_loops): Ditto.
4686 (gate_vect_slp): Ditto.
4687 (gate_increase_alignment): Ditto.
4688 * tree-ssa-pre.c (inhibit_phi_insertion): Ditto.
4689 * tree-ssa-loop.c (gate_tree_vectorize): Ditto.
4690 (gate_tree_vectorize): Name change.
4691 (tree_vectorize): Ditto.
4692 (pass_vectorize::gate): Call new function.
4693 (pass_vectorize::execute): Ditto.
4694 * opts.c: O3 default setting change.
4695 (finish_options): Check new flag.
4696 * doc/invoke.texi: Document new flags.
4697 * common.opt: New flags.
4698
4699 2013-09-16 Andreas Schwab <schwab@linux-m68k.org>
4700
4701 * doc/tm.texi.in (Cond Exec Macros): Remove node.
4702 (Condition Code): Don't reference it.
4703 * doc/tm.texi: Regenerate.
4704
4705 2013-09-16 Vladimir Makarov <vmakarov@redhat.com>
4706
4707 PR middle-end/58418
4708 * lra-constraints.c (undo_optional_reloads): Consider all optional
4709 reload even if it did not get a hard reg.
4710
4711 2013-09-16 Teresa Johnson <tejohnson@google.com>
4712
4713 * dumpfile.c (dump_loc): Remove newline emission.
4714 * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Add newline
4715 emission to dump_printf_loc calls where missing.
4716 (vect_mark_for_runtime_alias_test): Ditto.
4717 (vect_analyze_data_ref_dependence): Ditto.
4718 (vect_analyze_data_ref_dependences): Ditto.
4719 (vect_slp_analyze_data_ref_dependence): Ditto.
4720 (vect_slp_analyze_data_ref_dependences): Ditto.
4721 (vect_compute_data_ref_alignment): Ditto.
4722 (vect_update_misalignment_for_peel): Ditto.
4723 (vect_verify_datarefs_alignment): Ditto.
4724 (vector_alignment_reachable_p): Ditto.
4725 (vect_get_data_access_cost): Ditto.
4726 (vect_enhance_data_refs_alignment): Ditto.
4727 (vect_find_same_alignment_drs): Ditto.
4728 (vect_analyze_data_refs_alignment): Ditto.
4729 (vect_analyze_group_access): Ditto.
4730 (vect_analyze_data_ref_access): Ditto.
4731 (vect_analyze_data_ref_accesses): Ditto.
4732 (vect_prune_runtime_alias_test_list): Ditto.
4733 (vect_analyze_data_refs): Ditto.
4734 (vect_create_addr_base_for_vector_ref): Ditto.
4735 (vect_create_data_ref_ptr): Ditto.
4736 (vect_grouped_store_supported): Ditto.
4737 (vect_grouped_load_supported): Ditto.
4738 * value-prof.c (check_counter): Ditto.
4739 (check_ic_target): Ditto.
4740 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Ditto.
4741 (vect_recog_widen_mult_pattern): Ditto.
4742 (vect_recog_widen_sum_pattern): Ditto.
4743 (vect_recog_over_widening_pattern): Ditto.
4744 (vect_recog_widen_shift_pattern): Ditto.
4745 (vect_recog_rotate_pattern): Ditto.
4746 (vect_recog_vector_vector_shift_pattern): Ditto.
4747 (vect_recog_divmod_pattern): Ditto.
4748 (vect_recog_mixed_size_cond_pattern): Ditto.
4749 (vect_recog_bool_pattern): Ditto.
4750 (vect_pattern_recog_1): Ditto.
4751 (vect_pattern_recog): Ditto.
4752 * tree-vect-loop.c (vect_determine_vectorization_factor): Ditto.
4753 (vect_is_simple_iv_evolution): Ditto.
4754 (vect_analyze_scalar_cycles_1): Ditto.
4755 (vect_get_loop_niters): Ditto.
4756 (vect_analyze_loop_1): Ditto.
4757 (vect_analyze_loop_form): Ditto.
4758 (vect_analyze_loop_operations): Ditto.
4759 (vect_analyze_loop_2): Ditto.
4760 (vect_analyze_loop): Ditto.
4761 (report_vect_op): Ditto.
4762 (vect_is_slp_reduction): Ditto.
4763 (vect_is_simple_reduction_1): Ditto.
4764 (vect_get_known_peeling_cost): Ditto.
4765 (vect_estimate_min_profitable_iters): Ditto.
4766 (vect_model_reduction_cost): Ditto.
4767 (vect_model_induction_cost): Ditto.
4768 (get_initial_def_for_induction): Ditto.
4769 (vect_create_epilog_for_reduction): Ditto.
4770 (vectorizable_reduction): Ditto.
4771 (vectorizable_induction): Ditto.
4772 (vectorizable_live_operation): Ditto.
4773 (vect_loop_kill_debug_uses): Ditto.
4774 (vect_transform_loop): Ditto.
4775 * tree-vect-stmts.c (vect_mark_relevant): Ditto.
4776 (vect_stmt_relevant_p): Ditto.
4777 (process_use): Ditto.
4778 (vect_mark_stmts_to_be_vectorized): Ditto.
4779 (vect_model_simple_cost): Ditto.
4780 (vect_model_promotion_demotion_cost): Ditto.
4781 (vect_model_store_cost): Ditto.
4782 (vect_get_store_cost): Ditto.
4783 (vect_model_load_cost): Ditto.
4784 (vect_get_load_cost): Ditto.
4785 (vect_init_vector_1): Ditto.
4786 (vect_get_vec_def_for_operand): Ditto.
4787 (vect_finish_stmt_generation): Ditto.
4788 (vectorizable_call): Ditto.
4789 (vectorizable_conversion): Ditto.
4790 (vectorizable_assignment): Ditto.
4791 (vectorizable_shift): Ditto.
4792 (vectorizable_operation): Ditto.
4793 (vectorizable_store): Ditto.
4794 (vectorizable_load): Ditto.
4795 (vectorizable_condition): Ditto.
4796 (vect_analyze_stmt): Ditto.
4797 (vect_transform_stmt): Ditto.
4798 (vect_is_simple_use): Ditto.
4799 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): Ditto.
4800 (vect_can_advance_ivs_p): Ditto.
4801 (vect_update_ivs_after_vectorizer): Ditto.
4802 (vect_do_peeling_for_loop_bound): Ditto.
4803 (vect_gen_niters_for_prolog_loop): Ditto.
4804 (vect_update_inits_of_drs): Ditto.
4805 (vect_create_cond_for_alias_checks): Ditto.
4806 * tree-vect-slp.c (vect_get_and_check_slp_defs): Ditto.
4807 (vect_build_slp_tree_1): Ditto.
4808 (vect_supported_load_permutation_p): Ditto.
4809 (vect_analyze_slp_instance): Ditto.
4810 (vect_analyze_slp): Ditto.
4811 (vect_make_slp_decision): Ditto.
4812 (vect_detect_hybrid_slp): Ditto.
4813 (vect_bb_vectorization_profitable_p): Ditto.
4814 (vect_slp_analyze_bb_1): Ditto.
4815 (vect_update_slp_costs_according_to_vf): Ditto.
4816 (vect_get_mask_element): Ditto.
4817 (vect_transform_slp_perm_load): Ditto.
4818 (vect_schedule_slp_instance): Ditto.
4819 (vect_schedule_slp): Ditto.
4820 (vect_slp_transform_bb): Ditto.
4821 * profile.c (read_profile_edge_counts): Ditto.
4822 (compute_branch_probabilities): Ditto.
4823 * coverage.c (get_coverage_counts): Ditto.
4824
4825 2013-09-16 Diego Novillo <dnovillo@google.com>
4826
4827 * tree-core.h: Add missing comment lines from refactoring of tree.h.
4828
4829 2013-09-16 Jan Hubicka <jh@suse.cz>
4830
4831 * gimple-fold.c (can_refer_decl_in_current_unit_p): Do not accept
4832 abstract functions; for static functions check the presence of body.
4833
4834 2013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
4835
4836 * config/aarch64/aarch64-simd-builtins.def (fma): New.
4837 * config/aarch64/aarch64-simd.md
4838 (aarch64_mla_elt<mode>): New.
4839 (aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
4840 (aarch64_mls_elt<mode>): Likewise.
4841 (aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
4842 (aarch64_fma4_elt<mode>): Likewise.
4843 (aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
4844 (aarch64_fma4_elt_to_128v2df): Likewise.
4845 (aarch64_fma4_elt_to_64df): Likewise.
4846 (fnma<mode>4): Likewise.
4847 (aarch64_fnma4_elt<mode>): Likewise.
4848 (aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
4849 (aarch64_fnma4_elt_to_128v2df): Likewise.
4850 (aarch64_fnma4_elt_to_64df): Likewise.
4851 * config/aarch64/iterators.md (VDQSF): New.
4852 * config/aarch64/arm_neon.h
4853 (vfm<as><sdq>_lane<q>_f<32, 64>): Convert to C implementation.
4854 (vml<sa><q>_lane<q>_<fsu><16, 32, 64>): Likewise.
4855
4856 2013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
4857
4858 * config/aarch64/aarch64-simd.md (aarch64_mul3_elt<mode>): New.
4859 (aarch64_mul3_elt_<vswap_width_name><mode>): Likewise.
4860 (aarch64_mul3_elt_to_128df): Likewise.
4861 (aarch64_mul3_elt_to_64v2df): Likewise.
4862 * config/aarch64/iterators.md (VEL): Also handle DFmode.
4863 (VMUL): New.
4864 (VMUL_CHANGE_NLANES) Likewise.
4865 (h_con): Likewise.
4866 (f): Likewise.
4867 * config/aarch64/arm_neon.h
4868 (vmul<q>_lane<q>_<suf><16,32,64>): Convert to C implementation.
4869
4870 2013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
4871
4872 * config/aarch64/arm_neon.h
4873 (vcvtx_high_f32_f64): Fix parameters.
4874
4875 2013-09-16 Jan-Benedict Glaw <jbglaw@lug-owl.de>
4876 Uros Bizjak <ubizjak@gmail.com>
4877
4878 * config/alpha.c: Include tree-ssanames.h.
4879
4880 2013-09-16 Richard Biener <rguenther@suse.de>
4881
4882 * tree-loop-distribution.c (enum rdg_dep_type): Add control_dd.
4883 (dot_rdg_1): Handle control_dd.
4884 (create_edge_for_control_dependence): New function.
4885 (create_rdg_edges): Add control dependences if asked for.
4886 (build_rdg): Likewise.
4887 (generate_loops_for_partition): If there are not necessary
4888 control stmts remove all their dependencies.
4889 (collect_condition_stmts, rdg_flag_loop_exits): Remove.
4890 (distribute_loop): Pass on control dependences.
4891 (tree_loop_distribution): Compute control dependences and remove
4892 restriction on number of loop nodes.
4893
4894 2013-09-16 Jakub Jelinek <jakub@redhat.com>
4895
4896 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Return early
4897 for internal calls.
4898
4899 2013-09-16 Richard Sandiford <rdsandiford@googlemail.com>
4900
4901 * cse.c (try_const_anchors): Punt on CC modes.
4902
4903 2013-09-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
4904
4905 * config/vax/constraints.md (T): Add missing CONSTANT_P check.
4906
4907 2013-09-14 John David Anglin <danglin@gcc.gnu.org>
4908
4909 PR target/58382
4910 * config/pa/pa.c (pa_expand_prologue): Change mode in gen_rtx_POST_INC
4911 calls to word_mode.
4912
4913 2013-09-14 Iain Sandoe <iain@codesourcery.com>
4914
4915 PR target/48094
4916 * config/darwin.c (darwin_objc2_section): Note if ObjC Metadata is
4917 seen.
4918 (darwin_objc1_section): Likewise.
4919 (darwin_file_end): Emit Image Info section when required.
4920
4921 2013-09-14 Jan Hubicka <jh@suse.cz>
4922
4923 * tree-into-ssa.c (gate_into_ssa): New.
4924 (pass_data_build_ssa): Use it.
4925 * cgraph.h (expand_thunk): Update prototype.
4926 * cgraphunit.c (analyze_function): Expand thunks early.
4927 (expand_thunk): Fix DECL_CONTEXT of reust_decl;
4928 build proper cgraph; set in_ssa_p; clear bogus TREE_ASM_WRITTEN;
4929 set lowered flag; do not add new function.
4930 (assemble_thunks_and_aliases): Update.
4931 * tree-ssa.c (gate_init_datastructures): New gate.
4932 (pass_data_init_datastructures): Use it.
4933
4934 2013-09-14 Iain Sandoe <iain@codesourcery.com>
4935
4936 PR target/58269
4937 * config/i386/i386.c (ix86_function_arg_regno_p): Make Darwin use the
4938 xmm register set described in the psABI.
4939
4940 2013-09-13 Evgeny Gavrin <e.gavrin@samsung.com>
4941
4942 * dwarf2out.c (should_emit_struct_debug): Add check
4943 for type_decl variable is not NULL.
4944
4945 2013-09-13 Jacek Caban <jacek@codeweavers.com>
4946
4947 * config.gcc: Use new winnt-c.c target hooks
4948 * config/t-winnt: New file
4949 * config/winnt-c.c: New file
4950 * doc/tm.texi.in: Document new hook
4951 * doc/tm.texi: Regenerated
4952
4953 2013-09-13 Jan Hubicka <jh@suse.cz>
4954
4955 PR middle-end/58094
4956 * ipa-inline.c (check_callers): New function.
4957 (check_caller_edge): Remove.
4958 (want_inline_function_to_all_callers_p): Also permit alises that are
4959 called dirrectly.
4960 (inline_to_all_callers): Terminate the walk when devirtualization
4961 introduce new calls.
4962
4963 2013-09-13 Jan Hubicka <jh@suse.cz>
4964
4965 * ipa-inline-analysis.c (struct growth_data): Add node.
4966 (do_estimate_growth_1): Fix detection of recursion.
4967
4968 2013-09-13 Jakub Jelinek <jakub@redhat.com>
4969
4970 PR tree-optimization/58392
4971 * tree-cfg.c (move_sese_region_to_fn): Rename loop variable
4972 to avoid shadowing of outer loop variable. If
4973 saved_cfun->has_simduid_loops or saved_cfun->has_force_vect_loops,
4974 replace_by_duplicate_decl simduid of loops that have it set and
4975 set dest_cfun->has_simduid_loops and/or
4976 dest_cfun->has_force_vect_loops.
4977 * omp-low.c (build_outer_var_ref): Call maybe_lookup_decl_in_outer_ctx
4978 instead of maybe_lookup_decl.
4979 * tree-inline.c (copy_loops): Change blocks_to_copy argument to id.
4980 Use id->blocks_to_copy instead of blocks_to_copy. Adjust recursive
4981 call. Copy over force_vect and copy and remap simduid. Set
4982 cfun->has_simduid_loops and/or cfun->has_force_vect_loops.
4983 (copy_cfg_body): Remove blocks_to_copy argument. Use
4984 id->blocks_to_copy instead of blocks_to_copy. Adjust copy_loops
4985 caller. Don't set cfun->has_simduid_loops and/or
4986 cfun->has_force_vect_loops here.
4987 (copy_body): Remove blocks_to_copy argument. Adjust copy_cfg_body
4988 caller.
4989 (expand_call_inline, tree_function_versioning): Adjust copy_body
4990 callers.
4991
4992 2013-09-13 Martin Jambor <mjambor@suse.cz>
4993
4994 PR bootstrap/58388
4995 * ipa-prop.c (try_make_edge_direct_simple_call): Be less strict in
4996 the assert if the edge was a speculative one.
4997
4998 2013-09-13 Richard Biener <rguenther@suse.de>
4999
5000 * tree-data-ref.h (known_dependences_p): Move here ...
5001 * tree-loop-distribution.c (known_dependences_p): ... from here.
5002 (dump_rdg_component, debug_rdg_component): Remove.
5003 (dump_rdg): Adjust.
5004 (generate_loops_for_partition): Use gimple_uid instead of
5005 relying on matching stmt visit order.
5006 (rdg_build_partitions): Take starting stmt vector.
5007 (ldist_gen): Merge into ...
5008 (distribute_loop): ... this function. Do not compute starting
5009 vertices vector.
5010 * tree-cfg.c (gimple_duplicate_bb): Copy UID for PHIs.
5011
5012 2013-09-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5013
5014 * config/arm/arm.md (arm_cmpsi_insn): Split rI alternative.
5015 Set type attribute correctly. Set predicable_short_it attribute.
5016 (cmpsi_shiftsi): Remove %? from output template.
5017
5018 2013-09-13 Richard Biener <rguenther@suse.de>
5019
5020 * tree-loop-distribution.c (struct rdg_component,
5021 rdg_defs_used_in_other_loops_p, free_rdg_components,
5022 rdg_build_components): Remove.
5023 (stmts_from_loop): Do not record virtual PHIs.
5024 (generate_loops_for_partition): Skip virtual PHIs.
5025 (build_rdg_partition_for_component): Rename to ...
5026 (build_rdg_partition_for_vertex): ... this and adjust.
5027 (rdg_build_partitions): Take a vector of starting vertices
5028 instead of components. Remove unnecessary leftover handling.
5029 (ldist_gen): Do not build components or record other stores.
5030 (distribute_loop): Do not distribute loops containing stmts
5031 with side-effects.
5032
5033 2013-09-13 Christian Bruel <christian.bruel@st.com>
5034
5035 PR target/58314
5036 * config/sh/sh.md (mov<mode>_reg_reg): Allow memory reloads.
5037
5038 2013-09-13 Kai Tietz <ktietz@redhat.com>
5039
5040 * config.gcc: Separate cases for mingw and cygwin targets,
5041 and add 64-bit cygwin target case.
5042
5043 * config/i386/winnt-cxx.c (i386_pe_type_dllexport_p): Don't
5044 dll-export inline-functions.
5045 * config/i386/winnt.c (i386_pe_determine_dllexport_p): Likewise.
5046
5047
5048 2013-09-13 Jeff Law <law@redhat.com>
5049
5050 PR middle-end/58387
5051 Revert:
5052 2013-09-06 Jeff Law <law@redhat.com>
5053
5054 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
5055 edge implied equivalences into successor phis.
5056
5057 2013-09-12 DJ Delorie <dj@redhat.com>
5058
5059 * config/rl78/rl78-virt.md: Change from | to \; for asm line
5060 separators.
5061
5062 2013-09-12 Brooks Moses <bmoses@google.com>
5063
5064 PR driver/42955
5065 * Makefile.in: Do not install driver binaries in $(target)/bin.
5066
5067 2013-09-12 DJ Delorie <dj@redhat.com>
5068
5069 * config/rl78/rl78.opt (mrelax): New.
5070 * config/rl78/rl78.h (ASM_SPEC): New, pass on -mrelax to gas.
5071 * config/rl78/rl78.h (LINK_SPEC): New, pass on -mrelax to ld.
5072
5073 * config/rl78/rl78.c (rl78_expand_prologue): Use AX to copy
5074 between SP and FP.
5075 (rl78_expand_epilogue): Likewise.
5076
5077 2013-09-12 Vladimir Makarov <vmakarov@redhat.com>
5078
5079 PR middle-end/58335
5080 * lra-eliminations.c (remove_reg_equal_offset_note): New.
5081 (eliminate_regs_in_insn): Rewrite frame pointer to hard frame
5082 pointer elimination with using remove_reg_equal_offset_note.
5083
5084 2013-09-12 DJ Delorie <dj@redhat.com>
5085
5086 * config/msp430/: New port.
5087 * config.gcc (msp430): Added.
5088 * doc/invoke.texi: Document MSP430 options.
5089 * doc/install.texi: Document msp430-elf
5090 * doc/md.texi: Document msp430-elf
5091 * doc/contrib.texi: Document msp430-elf
5092
5093 * cfgexpand.c (expand_debug_expr): Avoid sign-extending SImode to
5094 PSImode.
5095
5096 2013-09-12 Martin Jambor <mjambor@suse.cz>
5097
5098 PR ipa/58389
5099 * ipa-prop.c (remove_described_reference): Give up if the edge in the
5100 reference descriptor is NULL.
5101 (ipa_edge_removal_hook): If owning a reference descriptor, set its
5102 edge to NULL.
5103
5104 2013-09-12 Andrew MacLeod <amacleod@redhat.com>
5105
5106 * tree-flow.h (FREE_SSANAMES): Move to tree-ssanames.c
5107 (SSANAMES, MODIFIED_NORETURN_CALLS, DEFAULT_DEFS, ptr_info_def,
5108 num_ssa_names, ssa_name): Move to tree-ssanames.h + prototypes.
5109 * tree-flow-inline.h (make_ssa_name, copy_ssa_name, duplicate_ssa_name,
5110 make_temp_ssa_name): move to tree-ssanames.h
5111 * tree-ssa-alias.h: Move prototype.
5112 * tree-ssa.h: Include tree-ssanames.h.
5113 * tree-ssanames.c (FREE_SSANAMES): Move to here.
5114 * tree-ssanames.h: New. Move items from tree-flow*.h
5115 * Makefile.in (tree-ssanames.h): Add to tree-ssanames.o and GTFILES.
5116
5117 2013-09-12 Richard Biener <rguenther@suse.de>
5118
5119 PR tree-optimization/58404
5120 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
5121 propagate non-invariant addresses into dereferences wrapped
5122 in component references.
5123
5124 2013-09-12 Richard Biener <rguenther@suse.de>
5125
5126 PR tree-optimization/58402
5127 * passes.def: Move pass_late_warn_uninitialized later.
5128
5129 2013-09-12 Andrew MacLeod <amacleod@redhat.com>
5130
5131 * tree-ssa.h: New. Move content from tree-flow.h and
5132 tree-flow-inline.h.
5133 * tree-flow.h (_edge_var_map, edge_var_map_vector): Move to tree-ssa.h.
5134 Move prototypes belonging to tree-ssa.c.
5135 * tree-flow-inline.h (redirect_edge_var_map_def,
5136 redirect_edge_var_map_result, redirect_edge_var_map_location): Move to
5137 tree-ssa.h.
5138 * gimple.h: Adjust prototypes.
5139 * tree-ssa.c (useless_type_conversion_p, types_compatible_p): Move
5140 to...
5141 * gimple.c (useless_type_conversion_p, types_compatible_p): Here.
5142 * tree.h: Move prototype to tree-ssa.h.
5143 * gengtype.c (open_base_files): Replace tree-flow.h with tree-ssa.h.
5144 * Makefile.in: (TREE_SSA_H, TREE_FLOW_H): Adjust dependencies.
5145 * alias.c, asan.c, builtins.c, calls.c, cfgexpand.c, cfghooks.c,
5146 cfgloop.c, cfgloopmanip.c, cgraph.c, cgraphbuild.c, cgraphclones.c,
5147 cgraphunit.c, dse.c, except.c, expr.c, final.c, fold-const.c,
5148 ggc-page.c, gimple-fold.c, gimple-iterator.c, gimple-low.c,
5149 gimple-pretty-print.c, gimple-ssa-strength-reduction.c,
5150 gimple-streamer-in.c, gimple-streamer-out.c, gimple.c, gimplify.c,
5151 graphite-blocking.c, graphite-clast-to-gimple.c,
5152 graphite-dependences.c, graphite-interchange.c,
5153 graphite-optimize-isl.c, graphite-poly.c, graphite-scop-detection.c,
5154 graphite-sese-to-poly.c, graphite.c, ipa-cp.c, ipa-inline-analysis.c,
5155 ipa-inline-transform.c, ipa-inline.c, ipa-prop.c, ipa-pure-const.c,
5156 ipa-reference.c, ipa-split.c, ipa-utils.c,
5157 loop-init.c, lto-cgraph.c, lto-section-in.c, lto-section-out.c,
5158 lto-streamer-in.c, lto-streamer-out.c, lto-streamer.c, omp-low.c,
5159 passes.c, predict.c, print-tree.c, profile.c, sese.c, targhooks.c,
5160 tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
5161 tree-chrec.c, tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-eh.c,
5162 tree-emutls.c, tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
5163 tree-loop-distribution.c, tree-mudflap.c, tree-nested.c, tree-nrv.c,
5164 tree-object-size.c, tree-optimize.c, tree-outof-ssa.c, tree-parloops.c,
5165 tree-phinodes.c, tree-predcom.c, tree-pretty-print.c, tree-profile.c,
5166 tree-scalar-evolution.c, tree-sra.c, tree-ssa*.c, tree-stdarg.c,
5167 tree-streamer-in.c, tree-switch-conversion.c, tree-tailcall.c,
5168 tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
5169 tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
5170 tree-vect-stmts.c, tree-vectorizer.c, tree-vrp.c, tsan.c,
5171 value-prof.c, var-tracking.c,
5172 varpool.c, vtable-verify.c: Replace tree-flow.h with tree-ssa.h
5173
5174 2013-09-12 Richard Biener <rguenther@suse.de>
5175
5176 PR tree-optimization/58396
5177 * tree-loop-distribution.c (create_rdg_edges): Free unused DDRs.
5178 (build_rdg): Take a loop-nest parameter, fix memleaks.
5179 (distribute_loop): Compute loop-nest here and pass it to build_rdg.
5180
5181 2013-09-12 Yuri Rumyantsev <ysrumyan@gmail.com>
5182
5183 * config/i386/x86-tune.def: Turn on X86_TUNE_AVOID_MEM_OPND_FOR_CMOVE
5184 for SLM.
5185
5186 2013-09-12 Cameron McInally <cameron.mcinally@nyu.edu>
5187
5188 * doc/extend.texi: Fix errors in x86 FMA builtin naming.
5189 The FMA instruction names should have a 'v' prefix.
5190
5191 2013-09-12 Richard Biener <rguenther@suse.de>
5192
5193 * tree-loop-distribution.c (dot_rdg_1): Make graph prettier.
5194 (dot_rdg): Use popen instead of system in optional code.
5195 (remaining_stmts, upstream_mem_writes): Remove global bitmaps.
5196 (already_processed_vertex_p): Adjust.
5197 (has_anti_or_output_dependence, predecessor_has_mem_write,
5198 mark_nodes_having_upstream_mem_writes, has_upstream_mem_writes,
5199 rdg_flag_uses): Remove.
5200 (rdg_flag_vertex): Simplify.
5201 (rdg_flag_vertex_and_dependent): Rely on a correct RDG and
5202 remove recursion.
5203 (build_rdg_partition_for_component): Process the first vertex
5204 of a component only.
5205 (ldist_gen): Do not compute remaining_stmts or upstream_mem_writes.
5206
5207 2013-09-12 Alan Modra <amodra@gmail.com>
5208
5209 * config/rs6000/rs6000.c (toc_relative_expr_p): Use add_cint_operand.
5210
5211 2013-09-11 DJ Delorie <dj@redhat.com>
5212 Nick Clifton <nickc@redhat.com>
5213
5214 * config/rl78/predicates.md (rl78_cmp_operator_signed): New.
5215 (rl78_stack_based_mem): New.
5216 * config/rl78/constraints.md (Iv08): New.
5217 (Iv16): New.
5218 (Iv24): New.
5219 (Is09): New.
5220 (Is17): New.
5221 (Is25): New.
5222 (ISsi): New.
5223 (IShi): New.
5224 (ISqi): New.
5225 * config/rl78/rl78-expand.md (movqi): Reject more SUBREG operands.
5226 (movhi): Likewise.
5227 (movsi): Change from expand to insn-and-split.
5228 (ashrsi3): Clobber AX.
5229 (lshrsi3): New.
5230 (ashlsi3): New.
5231 (cbranchsi4): New.
5232 * config/rl78/rl78.md (CC_REG): Fix.
5233 (addsi3): Allow memory and immediate operands.
5234 (addsi3_internal): Split into...
5235 (addsi3_internal_virt): ...new, and ...
5236 (addsi3_internal_real): ...new.
5237 (subsi): New.
5238 (subsi3_internal_virt): New.
5239 (subsi3_internal_real): New.
5240 (mulsi3): Add memory operand.
5241 (mulsi3_rl78): Likewise.
5242 (mulsi3_g13): Likewise.
5243 * config/rl78/rl78-real.md (cbranchqi4_real_signed): New.
5244 (cbranchqi4_real): Add more constraint options.
5245 (cbranchhi4_real): Expand pattern.
5246 (cbranchhi4_real_signed): New.
5247 (cbranchhi4_real_inverted): New.
5248 (cbranchsi4_real_lt): New.
5249 (cbranchsi4_real_ge): New.
5250 (cbranchsi4_real_signed): New.
5251 (cbranchsi4_real): New.
5252 (peephole2): New.
5253 * config/rl78/rl78-virt.md (ashrsi3_virt): Add custom cases for
5254 constant shifts.
5255 (lshrsi3_virt): Likewise.
5256 (ashlsi3_virt): Likewise.
5257 (cbranchqi4_virt_signed): New.
5258 (cbranchhi4_virt_signed): New.
5259 (cbranchsi4_virt): New.
5260 * config/rl78/rl78.c: Whitespace fixes throughout.
5261 (move_elim_pass): New.
5262 (pass_data_rl78_move_elim): New.
5263 (pass_rl78_move_elim): New.
5264 (make_pass_rl78_move_elim): New.
5265 (rl78_devirt_info): Run devirt earlier.
5266 (rl78_move_elim_info): New.
5267 (rl78_asm_file_start): Register it.
5268 (rl78_split_movsi): New.
5269 (rl78_as_legitimate_address): Allow virtual base registers when
5270 appropriate.
5271 (rl78_addr_space_convert): Remove spurious debug stuff.
5272 (rl78_print_operand_1): Add z,s,S,r,E modifiers.
5273 (rl78_print_operand): More cases for not printing '#'.
5274 (rl78_expand_compare): Remove most of the logic.
5275 (content_memory): New.
5276 (clear_content_memory): New.
5277 (get_content_index): New.
5278 (get_content_name): New.
5279 (display_content_memory): New.
5280 (update_content): New.
5281 (record_content): New.
5282 (already_contains): New.
5283 (insn_ok_now): Re-recog insns with virtual registers.
5284 (add_postponed_content_update): New.
5285 (process_postponed_content_update): New.
5286 (gen_and_emit_move): New.
5287 (transcode_memory_rtx): Record new location content.
5288 Use gen_and_emit_move.
5289 (force_into_acc): New.
5290 (move_to_acc): Use gen_and_emit_move.
5291 (move_from_acc): Likewise.
5292 (move_acc_to_reg): Likewise.
5293 (move_to_x): Likewise.
5294 (move_to_hl): Likewise.
5295 (move_to_de): Likewise.
5296 (rl78_alloc_physical_registers_op1): Record location content.
5297 (has_constraint): New.
5298 (rl78_alloc_physical_registers_op2): Record location content.
5299 Optimize use of HL.
5300 (rl78_alloc_physical_registers_ro1): Likewise.
5301 (rl78_alloc_physical_registers_cmp): Likewise.
5302 (rl78_alloc_physical_registers_umul): Likewise.
5303 (rl78_alloc_address_registers_macax): New.
5304 (rl78_alloc_physical_registers): Initialize and set location
5305 content memory as needed.
5306 (rl78_reorg): Make sure split2 is called.
5307 (rl78_rtx_costs): New.
5308
5309 2013-09-11 Richard Sandiford <rdsandiford@googlemail.com>
5310
5311 * simplify-rtx.c (simplify_unary_operation_1): Use simplify_gen_binary
5312 for (not (neg ...)) and (neg (not ...)) cases.
5313
5314 2013-09-11 Richard Biener <rguenther@suse.de>
5315
5316 PR middle-end/58377
5317 * passes.def: Split critical edges before late uninit warning passes.
5318 * tree-cfg.c (pass_split_crit_edges): Implement clone method.
5319
5320 2013-09-11 Jakub Jelinek <jakub@redhat.com>
5321
5322 PR tree-optimization/58385
5323 * fold-const.c (build_range_check): If both low and high are NULL,
5324 use omit_one_operand_loc to preserve exp side-effects.
5325
5326 2013-09-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5327
5328 * config/arm/arm.md (arm_shiftsi3): New alternative l/l/M.
5329
5330 2013-09-11 Richard Biener <rguenther@suse.de>
5331
5332 * tree-data-ref.c (dump_rdg_vertex, debug_rdg_vertex,
5333 dump_rdg_component, debug_rdg_component, dump_rdg, debug_rdg,
5334 dot_rdg_1, dot_rdg, rdg_vertex_for_stmt, create_rdg_edge_for_ddr,
5335 create_rdg_edges_for_scalar, create_rdg_edges, create_rdg_vertices,
5336 stmts_from_loop, known_dependences_p, build_empty_rdg,
5337 build_rdg, free_rdg, rdg_defs_used_in_other_loops_p): Move ...
5338 * tree-loop-distribution.c: ... here.
5339 * tree-data-ref.h (struct rdg_vertex, RDGV_STMT, RDGV_DATAREFS,
5340 RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT, RDG_DATAREFS,
5341 RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT, enum rdg_dep_type,
5342 struct rdg_edge, RDGE_TYPE, RDGE_LEVEL, RDGE_RELATION): Move ...
5343 * tree-loop-distribution.c: ... here.
5344 * tree-loop-distribution.c: Include gimple-pretty-print.h.
5345 (struct partition_s): Add loops member.
5346 (partition_alloc, partition_free, rdg_flag_uses, rdg_flag_vertex,
5347 rdg_flag_vertex_and_dependent, rdg_flag_loop_exits,
5348 build_rdg_partition_for_component, rdg_build_partitions): Adjust.
5349
5350 2013-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
5351 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
5352 Sergey Lega <sergey.s.lega@intel.com>
5353 Anna Tikhonova <anna.tikhonova@intel.com>
5354 Ilya Tocar <ilya.tocar@intel.com>
5355 Andrey Turetskiy <andrey.turetskiy@intel.com>
5356 Ilya Verbin <ilya.verbin@intel.com>
5357 Kirill Yukhin <kirill.yukhin@intel.com>
5358 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
5359
5360 * config/i386/constraints.md (k): New.
5361 (Yk): Ditto.
5362 * config/i386/i386.c (const regclass_map): Add new mask registers.
5363 (dbx_register_map): Ditto.
5364 (dbx64_register_map): Ditto.
5365 (svr4_dbx_register_map): Ditto.
5366 (ix86_conditional_register_usage): Squash mask registers if AVX512F is
5367 disabled.
5368 (ix86_preferred_reload_class): Disable constants for mask registers.
5369 (ix86_secondary_reload): Do spill of mask register using 32-bit insn.
5370 (ix86_hard_regno_mode_ok): Support new mask registers.
5371 (x86_order_regs_for_local_alloc): Ditto.
5372 * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Update.
5373 (FIXED_REGISTERS): Add new mask registers.
5374 (CALL_USED_REGISTERS): Ditto.
5375 (REG_ALLOC_ORDER): Ditto.
5376 (VALID_MASK_REG_MODE): New.
5377 (FIRST_MASK_REG): Ditto.
5378 (LAST_MASK_REG): Ditto.
5379 (reg_class): Add MASK_EVEX_REGS, MASK_REGS.
5380 (MAYBE_MASK_CLASS_P): New.
5381 (REG_CLASS_NAMES): Add MASK_EVEX_REGS, MASK_REGS.
5382 (REG_CLASS_CONTENTS): Ditto.
5383 (MASK_REGNO_P): New.
5384 (ANY_MASK_REG_P): Ditto.
5385 (HI_REGISTER_NAMES): Add new mask registers.
5386 * config/i386/i386.md (MASK0_REG, MASK1_REG, MASK2_REG, MASK3_REG,
5387 MASK4_REG, MASK5_REG, MASK6_REG, MASK7_REG): Constants for new
5388 mask registers.
5389 (attribute "type"): Add mskmov, msklog.
5390 (attribute "length_immediate"): Support them.
5391 (attribute "memory"): Ditto.
5392 (attribute "prefix_0f"): Ditto.
5393 (*movhi_internal): Support new mask registers.
5394 (*movqi_internal): Ditto.
5395 (define_split): Split out clobber pattern is a logic
5396 insn on mask registers.
5397 (*k<logic><mode>): New.
5398 (*andhi_1): Extend to support mask regs.
5399 (*andqi_1): Extend to support mask regs.
5400 (kandn<mode>): New.
5401 (define_split): Split and-not to and and not if operands
5402 are not mask regs.
5403 (*<code><mode>_1): Separate HI mode to new pattern...
5404 (*<code>hi_1): This.
5405 (*<code>qi_1): Extend to support mask regs.
5406 (kxnor<mode>): New.
5407 (kortestzhi): Ditto.
5408 (kortestchi): Ditto.
5409 (kunpckhi): Ditto.
5410 (*one_cmpl<mode>2_1): Remove HImode and handle it...
5411 (*one_cmplhi2_1): ...Here, now with mask registers support.
5412 (*one_cmplqi2_1): Support new mask registers.
5413 (HI/QImode arithmetics splitter): Don't split if mask registers
5414 are used.
5415 (HI/QImode not splitter): Ditto.
5416 * config/i386/predicated.md (mask_reg_operand): New.
5417 (general_reg_operand): Ditto.
5418
5419 2013-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
5420
5421 * doc/invoke.texi: Document fxsr, xsave and xsaveopt options.
5422 * doc/extend.texi: Document fxsr, xsave and xsaveopt builtins.
5423
5424 2013-09-10 Jeff Law <law@redhat.com>
5425
5426 PR tree-optimization/58380
5427 * tree-ssa-threadupdate.c (thread_block): Recognize another case
5428 of threading through a buried loop header.
5429
5430 * tree-ssa-threadedge.c (thread_around_empty_blocks): Correct
5431 return value for single successor case.
5432
5433 2013-09-10 Jan Hubicka <jh@suse.cz>
5434
5435 * ipa-devirt.c (ipa_devirt): Enable with LTO.
5436
5437 2013-09-10 Richard Earnshaw <rearnsha@arm.com>
5438
5439 PR target/58361
5440 * arm/vfp.md (combine_vcvt_f32_<FCVTI32typename>): Fix pattern to
5441 support conditional execution.
5442 (combine_vcvt_f64_<FCVTI32typename>): Likewise.
5443
5444 2013-09-10 Vladimir Makarov <vmakarov@redhat.com>
5445
5446 * lra.c (lra): Clear lra_optional_reload_pseudos before every
5447 constraint pass.
5448 * lra-constraints.c (curr_insn_transform): Switch on optional reloads.
5449 Check destination too to check move insn.
5450 (undo_optional_reloads): Add check that the original peudo did not
5451 changed its allocation and the optional reload was inherited on last
5452 inheritance pass. Break loop after deciding to keep optional reload.
5453 (lra_undo_inheritance): Add check that inherited pseudo still in
5454 memory.
5455
5456 2013-09-10 James Greenhalgh <james.greenhalgh@arm.com>
5457
5458 * config/aarch64/aarch64.md (generic_sched): New.
5459 * config/aarch64/aarch64-generic.md (load): Make conditional
5460 on generic_sched attribute.
5461 (nonload): Likewise.
5462
5463 2013-09-10 Jan Hubicka <jh@suse.cz>
5464
5465 * lto-cgraph.c: Include ipa-utils.h.
5466 (compute_ltrans_boundary): Also add possible targets into the boundary.
5467
5468 2013-09-10 Jan Hubicka <jh@suse.cz>
5469
5470 * gimple-fold.c (gimple_get_virt_method_for_binfo): Pass real
5471 VAR_DECL of vtable rather than full expression.
5472
5473 2013-09-10 Jan Hubicka <jh@suse.cz>
5474 Paolo Carlini <paolo.carlini@oracle.com>
5475
5476 * cgraphunit.c (analyze_functions): Save input_location, set it
5477 to UNKNOWN_LOCATION and restore it at the end.
5478
5479 2013-09-10 Martin Jambor <mjambor@suse.cz>
5480
5481 * ipa-cp.c (propagate_constants_topo): Do not ignore SCC
5482 represented by a thunk.
5483
5484 2013-09-10 Jeff Law <law@redhat.com>
5485
5486 PR tree-optimization/58343
5487 * tree-ssa-threadupdate.c (thread_block): Identify and disable
5488 jump threading requests through loop headers buried in the middle
5489 of a jump threading path.
5490
5491 * tree-ssa-threadedge.c (thread_around_empty_blocks): Fix thinko
5492 in return value/type.
5493
5494 2013-09-10 Jakub Jelinek <jakub@redhat.com>
5495
5496 PR rtl-optimization/58365
5497 * cfgcleanup.c (merge_memattrs): Also clear MEM_READONLY_P
5498 resp. MEM_NOTRAP_P if they differ, or set MEM_VOLATILE_P if
5499 it differs.
5500
5501 2013-09-10 Richard Biener <rguenther@suse.de>
5502
5503 * tree-data-ref.h (build_rdg): Drop all parameters but loop.
5504 * tree-data-ref.c (create_rdg_vertices): Collect all data
5505 references, signal failure to the caller, use data-ref API.
5506 (build_rdg): Compute data references only once. Maintain lifetime
5507 of data references and data dependences from within RDG.
5508 (free_rdg): Free dependence relations.
5509 * tree-loop-distribution.c (rdg_flag_uses): Drop weird code
5510 inventing extra dependences.
5511 (distribute_loop): Update for RDG API changes.
5512
5513 2013-09-10 Kai Tietz <ktietz@redhat.com>
5514
5515 * doc/invoke.texi (fms-extensions): Document changed
5516 behavior for ms-abi targets.
5517 * config/i386/i386.c (ix86_option_override_internal):
5518 Set default value of option -fms-extension for ms-abi targets.
5519
5520 2013-09-10 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
5521
5522 * config/i386/i386.c (ix86_expand_movmem): Fix epilogue generation.
5523
5524 2013-09-10 Alan Modra <amodra@gmail.com>
5525
5526 PR target/58330
5527 * config/rs6000/rs6000.md (bswapdi2_64bit): Disable for volatile mems.
5528
5529 2013-09-10 Alan Modra <amodra@gmail.com>
5530
5531 * config/rs6000/predicates.md (add_cint_operand): New.
5532 (reg_or_add_cint_operand, small_toc_ref): Use add_cint_operand.
5533 * config/rs6000/rs6000.md (largetoc_high_plus): Restrict offset
5534 using add_cint_operand.
5535 (largetoc_high_plus_aix): Likewise.
5536
5537 2013-09-09 Jakub Jelinek <jakub@redhat.com>
5538
5539 PR tree-optimization/58364
5540 * tree-ssa-reassoc.c (init_range_entry): For BIT_NOT_EXPR on
5541 BOOLEAN_TYPE, only invert in_p and continue with arg0 if
5542 the current range can't be an unconditional true or false.
5543
5544 2013-09-09 James Greenhalgh <james.greenhalgh@arm.com>
5545
5546 * config/aarch64/arm_neon.h (vrsqrte_f64): Fix parameter type.
5547
5548 2013-09-09 Uros Bizjak <ubizjak@gmail.com>
5549
5550 * ipa-prop.c (ipa_modify_call_arguments): Initialize deref_align.
5551
5552 2013-09-09 Paolo Carlini <paolo.carlini@oracle.com>
5553
5554 PR c++/43452
5555 * doc/invoke.texi (-Wdelete-incomplete): Document it.
5556
5557 2013-09-09 Ian Bolton <ian.bolton@arm.com>
5558
5559 * config/aarch64/aarch64.c (aarch64_preferred_reload_class): Return
5560 NO_REGS for immediate that can't be moved directly into FP_REGS.
5561
5562 2013-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5563
5564 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
5565 comparison with negated operand.
5566 * config/aarch64/aarch64.md (compare_neg<mode>): Match canonical
5567 RTL form.
5568
5569 2013-09-09 Richard Biener <rguenther@suse.de>
5570
5571 PR middle-end/58326
5572 * cfgloopmanip.c (fix_bb_placements): When fixing the placement
5573 of a subloop record all its block as affecting loop-closed SSA form.
5574
5575 2013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
5576
5577 * expmed.c (lshift_value): Take an unsigned HOST_WIDE_INT instead
5578 of an rtx/bitpos pair.
5579 (store_fixed_bit_field): Update accordingly.
5580
5581 2013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
5582
5583 * asan.c (asan_emit_stack_protection): Use gen_int_mode instead of
5584 GEN_INT.
5585 * builtins.c (expand_errno_check): Likewise.
5586 * dwarf2cfi.c (init_return_column_size): Likewise.
5587 * except.c (sjlj_mark_call_sites): Likewise.
5588 * expr.c (move_by_pieces_1, store_by_pieces_2): Likewise.
5589 * lra-constraints.c (emit_inc): Likewise.
5590 * ree.c (combine_set_extension): Likewise.
5591 * regmove.c (fixup_match_2): Likewise.
5592 * reload1.c (inc_for_reload): Likewise.
5593
5594 2013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
5595
5596 * combine.c (simplify_set, expand_field_assignment, extract_left_shift)
5597 (force_to_mode, simplify_shift_const_1, simplify_comparison):
5598 Use gen_int_mode with the mode of the associated simplify_* call.
5599 * explow.c (probe_stack_range, anti_adjust_stack_and_probe): Likewise.
5600 * expmed.c (expand_shift_1): Likewise.
5601 * function.c (instantiate_virtual_regs_in_insn): Likewise.
5602 * loop-iv.c (iv_number_of_iterations): Likewise.
5603 * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
5604 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
5605
5606 2013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
5607
5608 * asan.c (asan_clear_shadow): Use gen_int_mode with the mode
5609 of the associated expand_* call.
5610 (asan_emit_stack_protection): Likewise.
5611 * builtins.c (round_trampoline_addr): Likewise.
5612 * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise.
5613 * expmed.c (expand_smod_pow2, expand_sdiv_pow2, expand_divmod)
5614 (emit_store_flag): Likewise.
5615 * expr.c (emit_move_resolve_push, push_block, emit_single_push_insn_1)
5616 (emit_push_insn, optimize_bitfield_assignment_op, expand_expr_real_1):
5617 Likewise.
5618 * function.c (instantiate_virtual_regs_in_insn): Likewise.
5619 * ifcvt.c (noce_try_store_flag_constants): Likewise.
5620 * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
5621 * modulo-sched.c (generate_prolog_epilog): Likewise.
5622 * optabs.c (expand_binop, widen_leading, expand_doubleword_clz)
5623 (expand_ctz, expand_ffs, expand_unop): Likewise.
5624
5625 2013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
5626
5627 * alias.c (addr_side_effect_eval): Use gen_int_mode with the mode
5628 of the associated gen_rtx_* call.
5629 * caller-save.c (init_caller_save): Likewise.
5630 * combine.c (find_split_point, make_extraction): Likewise.
5631 (make_compound_operation): Likewise.
5632 * dwarf2out.c (mem_loc_descriptor): Likewise.
5633 * explow.c (plus_constant, probe_stack_range): Likewise.
5634 * expmed.c (expand_mult_const): Likewise.
5635 * expr.c (emit_single_push_insn_1, do_tablejump): Likewise.
5636 * reload1.c (init_reload): Likewise.
5637 * valtrack.c (cleanup_auto_inc_dec): Likewise.
5638 * var-tracking.c (adjust_mems): Likewise.
5639 * modulo-sched.c (sms_schedule): Likewise, but use gen_rtx_GT
5640 rather than gen_rtx_fmt_ee.
5641
5642 2013-09-09 Jan Hubicka <jh@suse.cz>
5643
5644 PR middle-end/58294
5645 * value-prof.c (gimple_ic): Copy also abnormal edges.
5646
5647 2013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
5648
5649 * asan.c (asan_shadow_cst): Use gen_int_mode.
5650
5651 2013-09-08 Jan Hubicka <jh@suse.cz>
5652
5653 * ipa-profile.c: Add toplevel comment.
5654 (ipa_propagate_frequency_1): Be more conservative when profile is read.
5655 (contains_hot_call_p): New function.
5656 (ipa_propagate_frequency): Set frequencies based on counts when
5657 profile is read.
5658 * predict.c (compute_function_frequency): Use PROFILE_READ gueard for
5659 profile; do not tamper with profile after inlining if it is read.
5660
5661 2013-09-08 Jan Hubicka <jh@suse.cz>
5662
5663 * ipa-prop.c (try_make_edge_direct_simple_call): Do not special case
5664 speculative edges.
5665
5666 2013-09-08 Jan Hubicka <jh@suse.cz>
5667
5668 * ipa.c (walk_polymorphic_call_targets): Fix redirection before IPA
5669 summary generation.
5670
5671 2013-09-08 Jeff Law <law@redhat.com>
5672
5673 PR bootstrap/58340
5674 * tree-ssa-threadedge.c (thread_across_edge): Fix initialization
5675 of 'found'.
5676
5677 2013-09-08 Andi Kleen <ak@linux.intel.com>
5678
5679 * tree-inline.c (estimate_num_insns): Limit asm cost to 1000.
5680
5681 2013-09-08 Jan Hubicka <jh@suse.cz>
5682
5683 * ipa.c (walk_polymorphic_call_targets): Fix inliner summary update.
5684
5685 2013-09-08 Richard Sandiford <rdsandiford@googlemail.com>
5686
5687 * ira.c (update_equiv_regs): Only call set_paradoxical_subreg
5688 for non-debug insns.
5689 * lra.c (new_insn_reg): Take the containing insn as a parameter.
5690 Only modify lra_reg_info[].biggest_mode if it's non-debug insn.
5691 (collect_non_operand_hard_regs, add_regs_to_insn_regno_info): Update
5692 accordingly.
5693
5694 2013-09-08 Jan Hubicka <jh@suse.cz>
5695
5696 * cgraphunit.c (walk_polymorphic_call_targets): Permit 0 possible
5697 targets and devirtualize to BUILT_IN_UNREACHABLE.
5698 * timevar.def (TV_IPA_UNREACHABLE): New timevar.
5699 * ipa.c (walk_polymorphic_call_targets): New function.
5700 (symtab_remove_unreachable_nodes): Use it; do not keep all virtual
5701 functions; use the new timevar.
5702 * ipa-devirt.c (maybe_record_node): Do not insert static nodes that
5703 was removed from the program.
5704 (record_binfo): If BINFO corresponds to an anonymous namespace, we may
5705 not consider it in the walk when its vtable is dead.
5706 (possible_polymorphic_call_targets_1): Pass anonymous flag to
5707 record_binfo.
5708 (devirt_variable_node_removal_hook): New function.
5709 (possible_polymorphic_call_targets): Also register
5710 devirt_variable_node_removal_hook.
5711 (ipa_devirt): Do not do non-speculative devirtualization.
5712 (gate_ipa_devirt): One execute if devirtualizing speculatively.
5713
5714 2013-09-08 Jan Hubicka <jh@suse.cz>
5715
5716 * cgraph.h (varpool_node_hook, varpool_node_hook_list,
5717 varpool_add_node_removal_hook, varpool_add_variable_insertion_hook,
5718 varpool_remove_variable_insertion_hook): Declare.
5719 * varpool.c (varpool_node_hook_list): New structure.
5720 (first_varpool_node_removal_hook,
5721 first_varpool_variable_insertion_hook): New variables.
5722 (varpool_add_node_removal_hook, varpool_remove_node_removal_hook,
5723 varpool_call_node_removal_hooks, varpool_add_variable_insertion_hook,
5724 varpool_remove_variable_insertion_hook,
5725 varpool_call_variable_insertion_hooks): New functions.
5726 (varpool_remove_node): Use it.
5727
5728 2013-09-08 Paolo Carlini <paolo.carlini@oracle.com>
5729
5730 PR c++/54941
5731 * diagnostic.c (diagnostic_build_prefix): When s.file is
5732 "<built-in>" don't output line and column numbers.
5733
5734 2013-09-06 Jan Hubicka <jh@suse.cz>
5735
5736 * cgraphunit.c (expand_thunk): Get body before touching arguments.
5737 * lto-streamer-out.c: Stream thunks, too.
5738 * lto-streamer-in.c (input_function): Pop cfun here
5739 (lto_read_body): Instead of here.
5740
5741 2013-09-06 Caroline Tice <cmtice@google.com>
5742
5743 * doc/install.texi: Add documentation for the --enable-vtable-verify
5744 and the --disable-libvtv configure options.
5745
5746 2013-09-06 Jeff Law <law@redhat.com>
5747
5748 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
5749 edge implied equivalences into successor phis.
5750
5751 2013-09-06 Joern Rennecke <joern.rennecke@embecosm.com>
5752
5753 * resource.c (mark_referenced_resources): Handle COND_EXEC.
5754
5755 2013-09-06 Claudiu Zissulescu <claziss@synopsys.com>
5756
5757 * resource.c (mark_target_live_regs): Compute resources taking
5758 into account if a call is predicated or not.
5759
5760 2013-09-06 Eric Botcazou <ebotcazou@adacore.com>
5761
5762 * toplev.c (output_stack_usage): Be prepared for suffixes created by
5763 the compiler in the function names.
5764
5765 2013-09-06 Jan Hubicka <jh@suse.cz>
5766
5767 PR middle-end/58094
5768 * ipa-inline.c (has_caller_p): New function.
5769 (want_inline_function_to_all_callers_p): Use it.
5770 (sum_callers, inline_to_all_callers): Break out from ...
5771 (ipa_inline): ... here.
5772
5773 2013-09-06 Jan Hubicka <jh@suse.cz>
5774
5775 * config/i386/i386.c (ix86_hard_regno_mode_ok): AVX modes are valid
5776 only when AVX is enabled.
5777
5778 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
5779
5780 * config/aarch64/aarch64.md
5781 (*movtf_aarch64): Use neon_<ls>dm_2 as type where v8type
5782 is fpsimd_<load/store>2.
5783 (load_pair<mode>): Likewise.
5784 (store_pair<mode>): Likewise.
5785
5786 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
5787
5788 * config/arm/types.md (type): Add "mrs" type.
5789 * config/aarch64/aarch64.md
5790 (aarch64_load_tp_hard): Make type "mrs".
5791 * config/arm/arm.md
5792 (load_tp_hard): Make type "mrs".
5793 * config/arm/cortex-a15.md: Update with new attributes.
5794 * config/arm/cortex-a5.md: Update with new attributes.
5795 * config/arm/cortex-a53.md: Update with new attributes.
5796 * config/arm/cortex-a7.md: Update with new attributes.
5797 * config/arm/cortex-a8.md: Update with new attributes.
5798 * config/arm/cortex-a9.md: Update with new attributes.
5799 * config/arm/cortex-m4.md: Update with new attributes.
5800 * config/arm/cortex-r4.md: Update with new attributes.
5801 * config/arm/fa526.md: Update with new attributes.
5802 * config/arm/fa606te.md: Update with new attributes.
5803 * config/arm/fa626te.md: Update with new attributes.
5804 * config/arm/fa726te.md: Update with new attributes.
5805
5806 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
5807
5808 * config/aarch64/aarch64.md
5809 (*movti_aarch64): Use "multiple" for type where v8type is "move2".
5810 (*movtf_aarch64): Likewise.
5811 * config/arm/arm.md
5812 (thumb1_movdi_insn): Use "multiple" for type where more than one
5813 instruction is used for a move.
5814 (*arm32_movhf): Likewise.
5815 (*thumb_movdf_insn): Likewise.
5816
5817 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
5818
5819 * config/arm/types.md (type): Rename fcpys to fmov.
5820 * config/arm/vfp.md
5821 (*arm_movsi_vfp): Rename type fcpys as fmov.
5822 (*thumb2_movsi_vfp): Likewise
5823 (*movhf_vfp_neon): Likewise
5824 (*movhf_vfp): Likewise
5825 (*movsf_vfp): Likewise
5826 (*thumb2_movsf_vfp): Likewise
5827 (*movsfcc_vfp): Likewise
5828 (*thumb2_movsfcc_vfp): Likewise
5829 * config/aarch64/aarch64-simd.md
5830 (move_lo_quad_<mode>): Replace type mov_reg with fmovs.
5831 * config/aarch64/aarch64.md
5832 (*movsi_aarch64): Replace type mov_reg with fmovs.
5833 (*movdi_aarch64): Likewise
5834 (*movsf_aarch64): Likewise
5835 (*movdf_aarch64): Likewise
5836 * config/arm/arm.c
5837 (cortexa7_older_only): Rename TYPE_FCPYS to TYPE_FMOV.
5838 * config/arm/iwmmxt.md
5839 (*iwmmxt_movsi_insn): Rename type fcpys as fmov.
5840 * config/arm/arm1020e.md: Update with new attributes.
5841 * config/arm/cortex-a15-neon.md: Update with new attributes.
5842 * config/arm/cortex-a5.md: Update with new attributes.
5843 * config/arm/cortex-a53.md: Update with new attributes.
5844 * config/arm/cortex-a7.md: Update with new attributes.
5845 * config/arm/cortex-a8-neon.md: Update with new attributes.
5846 * config/arm/cortex-a9.md: Update with new attributes.
5847 * config/arm/cortex-m4-fpu.md: Update with new attributes.
5848 * config/arm/cortex-r4f.md: Update with new attributes.
5849 * config/arm/marvell-pj4.md: Update with new attributes.
5850 * config/arm/vfp11.md: Update with new attributes.
5851
5852 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
5853
5854 * config/aarch64/aarch64.md
5855 (*madd<mode>): Fix type attribute.
5856 (*maddsi_uxtw): Likewise.
5857 (*msub<mode>): Likewise.
5858 (*msubsi_uxtw): Likewise.
5859 (<su_optab>maddsidi4): Likewise.
5860 (<su_optab>msubsidi4): Likewise.
5861
5862 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
5863
5864 * config/arm/types.md: Split fdiv<sd> as fsqrt<sd>, fdiv<sd>.
5865 * config/arm/arm.md (core_cycles): Remove fdiv.
5866 * config/arm/vfp.md:
5867 (*sqrtsf2_vfp): Update for attribute changes.
5868 (*sqrtdf2_vfp): Likewise.
5869 * config/aarch64/aarch64.md:
5870 (sqrt<mode>2): Update for attribute changes.
5871 * config/arm/arm1020e.md: Update with new attributes.
5872 * config/arm/cortex-a15-neon.md: Update with new attributes.
5873 * config/arm/cortex-a5.md: Update with new attributes.
5874 * config/arm/cortex-a53.md: Update with new attributes.
5875 * config/arm/cortex-a7.md: Update with new attributes.
5876 * config/arm/cortex-a8-neon.md: Update with new attributes.
5877 * config/arm/cortex-a9.md: Update with new attributes.
5878 * config/arm/cortex-m4-fpu.md: Update with new attributes.
5879 * config/arm/cortex-r4f.md: Update with new attributes.
5880 * config/arm/marvell-pj4.md: Update with new attributes.
5881 * config/arm/vfp11.md: Update with new attributes.
5882
5883 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
5884
5885 * config/arm/types.md
5886 (type): Split f_cvt as f_cvt, f_cvtf2i, f_cvti2f.
5887 * config/aarch64/aarch64.md
5888 (l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): Update with
5889 new attributes.
5890 (fix_trunc<GPF:mode><GPI:mode>2): Likewise.
5891 (fixuns_trunc<GPF:mode><GPI:mode>2): Likewise.
5892 (float<GPI:mode><GPF:mode>2): Likewise.
5893 * config/arm/vfp.md
5894 (*truncsisf2_vfp): Update with new attributes.
5895 (*truncsidf2_vfp): Likewise.
5896 (fixuns_truncsfsi2): Likewise.
5897 (fixuns_truncdfsi2): Likewise.
5898 (*floatsisf2_vfp): Likewise.
5899 (*floatsidf2_vfp): Likewise.
5900 (floatunssisf2): Likewise.
5901 (floatunssidf2): Likewise.
5902 (*combine_vcvt_f32_<FCVTI32typename>): Likewise.
5903 (*combine_vcvt_f64_<FCVTI32typename>): Likewise.
5904 * config/arm/arm1020e.md: Update with new attributes.
5905 * config/arm/cortex-a15-neon.md: Update with new attributes.
5906 * config/arm/cortex-a5.md: Update with new attributes.
5907 * config/arm/cortex-a53.md: Update with new attributes.
5908 * config/arm/cortex-a7.md: Update with new attributes.
5909 * config/arm/cortex-a8-neon.md: Update with new attributes.
5910 * config/arm/cortex-a9.md: Update with new attributes.
5911 * config/arm/cortex-m4-fpu.md: Update with new attributes.
5912 * config/arm/cortex-r4f.md: Update with new attributes.
5913 * config/arm/marvell-pj4.md: Update with new attributes.
5914 * config/arm/vfp11.md: Update with new attributes.
5915
5916 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
5917
5918 * config/aarch64/arm_neon.h
5919 (vqtbl<1,2,3,4><q>_s8): Fix control vector parameter type.
5920 (vqtbx<1,2,3,4><q>_s8): Likewise.
5921
5922 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
5923
5924 * config/arm/types.md: Add "no_insn", "multiple" and "untyped" types.
5925 * config/arm/arm-fixed.md: Add type attribute to all insn patterns.
5926 (add<mode>3): Add type attribute.
5927 (add<mode>3): Likewise.
5928 (usadd<mode>3): Likewise.
5929 (ssadd<mode>3): Likewise.
5930 (sub<mode>3): Likewise.
5931 (sub<mode>3): Likewise.
5932 (ussub<mode>3): Likewise.
5933 (sssub<mode>3): Likewise.
5934 (ssmulsa3): Likewise.
5935 (usmulusa3): Likewise.
5936 (arm_usatsihi): Likewise.
5937 * config/arm/vfp.md
5938 (*movdi_vfp): Add types for all instructions.
5939 (*movdi_vfp_cortexa8): Likewise.
5940 (*movhf_vfp_neon): Likewise.
5941 (*movhf_vfp): Likewise.
5942 (*movdf_vfp): Likewise.
5943 (*thumb2_movdf_vfp): Likewise.
5944 (*thumb2_movdfcc_vfp): Likewise.
5945 * config/arm/arm.md: Add type attribute to all insn patterns.
5946 (*thumb1_adddi3): Add type attribute.
5947 (*arm_adddi3): Likewise.
5948 (*adddi_sesidi_di): Likewise.
5949 (*adddi_zesidi_di): Likewise.
5950 (*thumb1_addsi3): Likewise.
5951 (addsi3_compare0): Likewise.
5952 (*addsi3_compare0_scratch): Likewise.
5953 (*compare_negsi_si): Likewise.
5954 (cmpsi2_addneg): Likewise.
5955 (*addsi3_carryin_<optab>): Likewise.
5956 (*addsi3_carryin_alt2_<optab>): Likewise.
5957 (*addsi3_carryin_clobercc_<optab>): Likewise.
5958 (*subsi3_carryin): Likewise.
5959 (*subsi3_carryin_const): Likewise.
5960 (*subsi3_carryin_compare): Likewise.
5961 (*subsi3_carryin_compare_const): Likewise.
5962 (*arm_subdi3): Likewise.
5963 (*thumb_subdi3): Likewise.
5964 (*subdi_di_zesidi): Likewise.
5965 (*subdi_di_sesidi): Likewise.
5966 (*subdi_zesidi_di): Likewise.
5967 (*subdi_sesidi_di): Likewise.
5968 (*subdi_zesidi_ze): Likewise.
5969 (thumb1_subsi3_insn): Likewise.
5970 (*arm_subsi3_insn): Likewise.
5971 (*anddi3_insn): Likewise.
5972 (*anddi_zesidi_di): Likewise.
5973 (*anddi_sesdi_di): Likewise.
5974 (*ne_zeroextracts): Likewise.
5975 (*ne_zeroextracts): Likewise.
5976 (*ite_ne_zeroextr): Likewise.
5977 (*ite_ne_zeroextr): Likewise.
5978 (*anddi_notdi_di): Likewise.
5979 (*anddi_notzesidi): Likewise.
5980 (*anddi_notsesidi): Likewise.
5981 (andsi_notsi_si): Likewise.
5982 (thumb1_bicsi3): Likewise.
5983 (*iordi3_insn): Likewise.
5984 (*iordi_zesidi_di): Likewise.
5985 (*iordi_sesidi_di): Likewise.
5986 (*thumb1_iorsi3_insn): Likewise.
5987 (*xordi3_insn): Likewise.
5988 (*xordi_zesidi_di): Likewise.
5989 (*xordi_sesidi_di): Likewise.
5990 (*arm_xorsi3): Likewise.
5991 (*andsi_iorsi3_no): Likewise.
5992 (*smax_0): Likewise.
5993 (*smax_m1): Likewise.
5994 (*arm_smax_insn): Likewise.
5995 (*smin_0): Likewise.
5996 (*arm_smin_insn): Likewise.
5997 (*arm_umaxsi3): Likewise.
5998 (*arm_uminsi3): Likewise.
5999 (*minmax_arithsi): Likewise.
6000 (*minmax_arithsi_): Likewise.
6001 (*satsi_<SAT:code>): Likewise.
6002 (arm_ashldi3_1bit): Likewise.
6003 (arm_ashrdi3_1bit): Likewise.
6004 (arm_lshrdi3_1bit): Likewise.
6005 (*arm_negdi2): Likewise.
6006 (*thumb1_negdi2): Likewise.
6007 (*arm_negsi2): Likewise.
6008 (*thumb1_negsi2): Likewise.
6009 (*negdi_extendsid): Likewise.
6010 (*negdi_zero_extend): Likewise.
6011 (*arm_abssi2): Likewise.
6012 (*thumb1_abssi2): Likewise.
6013 (*arm_neg_abssi2): Likewise.
6014 (*thumb1_neg_abss): Likewise.
6015 (one_cmpldi2): Likewise.
6016 (extend<mode>di2): Likewise.
6017 (*compareqi_eq0): Likewise.
6018 (*arm_extendhisi2addsi): Likewise.
6019 (*arm_movdi): Likewise.
6020 (*thumb1_movdi_insn): Likewise.
6021 (*arm_movt): Likewise.
6022 (*thumb1_movsi_insn): Likewise.
6023 (pic_add_dot_plus_four): Likewise.
6024 (pic_add_dot_plus_eight): Likewise.
6025 (tls_load_dot_plus_eight): Likewise.
6026 (*thumb1_movhi_insn): Likewise.
6027 (*thumb1_movsf_insn): Likewise.
6028 (*movdf_soft_insn): Likewise.
6029 (*thumb_movdf_insn): Likewise.
6030 (cbranchsi4_insn): Likewise.
6031 (cbranchsi4_scratch): Likewise.
6032 (*negated_cbranchsi4): Likewise.
6033 (*tbit_cbranch): Likewise.
6034 (*tlobits_cbranch): Likewise.
6035 (*tstsi3_cbranch): Likewise.
6036 (*cbranchne_decr1): Likewise.
6037 (*addsi3_cbranch): Likewise.
6038 (*addsi3_cbranch_scratch): Likewise.
6039 (*arm_cmpdi_insn): Likewise.
6040 (*arm_cmpdi_unsig): Likewise.
6041 (*arm_cmpdi_zero): Likewise.
6042 (*thumb_cmpdi_zero): Likewise.
6043 (*deleted_compare): Likewise.
6044 (*mov_scc): Likewise.
6045 (*mov_negscc): Likewise.
6046 (*mov_notscc): Likewise.
6047 (*cstoresi_eq0_thumb1_insn): Likewise.
6048 (cstoresi_nltu_thumb1): Likewise.
6049 (cstoresi_ltu_thu): Likewise.
6050 (thumb1_addsi3_addgeu): Likewise.
6051 (*arm_jump): Likewise.
6052 (*thumb_jump): Likewise.
6053 (*check_arch2): Likewise.
6054 (arm_casesi_internal): Likewise.
6055 (thumb1_casesi_dispatch): Likewise.
6056 (*arm_indirect_jump): Likewise.
6057 (*thumb1_indirect_jump): Likewise.
6058 (nop): Likewise.
6059 (*and_scc): Likewise.
6060 (*ior_scc): Likewise.
6061 (*compare_scc): Likewise.
6062 (*cond_move): Likewise.
6063 (*cond_arith): Likewise.
6064 (*cond_sub): Likewise.
6065 (*cmp_ite0): Likewise.
6066 (*cmp_ite1): Likewise.
6067 (*cmp_and): Likewise.
6068 (*cmp_ior): Likewise.
6069 (*ior_scc_scc): Likewise.
6070 (*ior_scc_scc_cmp): Likewise.
6071 (*and_scc_scc): Likewise.
6072 (*and_scc_scc_cmp): Likewise.
6073 (*and_scc_scc_nod): Likewise.
6074 (*negscc): Likewise.
6075 (movcond_addsi): Likewise.
6076 (movcond): Likewise.
6077 (*ifcompare_plus_move): Likewise.
6078 (*if_plus_move): Likewise.
6079 (*ifcompare_move_plus): Likewise.
6080 (*if_move_plus): Likewise.
6081 (*ifcompare_arith_arith): Likewise.
6082 (*if_arith_arith): Likewise.
6083 (*ifcompare_arith_move): Likewise.
6084 (*if_arith_move): Likewise.
6085 (*ifcompare_move_arith): Likewise.
6086 (*if_move_arith): Likewise.
6087 (*ifcompare_move_not): Likewise.
6088 (*if_move_not): Likewise.
6089 (*ifcompare_not_move): Likewise.
6090 (*if_not_move): Likewise.
6091 (*ifcompare_shift_move): Likewise.
6092 (*if_shift_move): Likewise.
6093 (*ifcompare_move_shift): Likewise.
6094 (*if_move_shift): Likewise.
6095 (*ifcompare_shift_shift): Likewise.
6096 (*ifcompare_not_arith): Likewise.
6097 (*ifcompare_arith_not): Likewise.
6098 (*if_arith_not): Likewise.
6099 (*ifcompare_neg_move): Likewise.
6100 (*if_neg_move): Likewise.
6101 (*ifcompare_move_neg): Likewise.
6102 (*if_move_neg): Likewise.
6103 (prologue_thumb1_interwork): Likewise.
6104 (*cond_move_not): Likewise.
6105 (*sign_extract_onebit): Likewise.
6106 (*not_signextract_onebit): Likewise.
6107 (stack_tie): Likewise.
6108 (align_4): Likewise.
6109 (align_8): Likewise.
6110 (consttable_end): Likewise.
6111 (consttable_1): Likewise.
6112 (consttable_2): Likewise.
6113 (consttable_4): Likewise.
6114 (consttable_8): Likewise.
6115 (consttable_16): Likewise.
6116 (*thumb1_tablejump): Likewise.
6117 (prefetch): Likewise.
6118 (force_register_use): Likewise.
6119 (thumb_eh_return): Likewise.
6120 (load_tp_hard): Likewise.
6121 (load_tp_soft): Likewise.
6122 (tlscall): Likewise.
6123 (*arm_movtas_ze): Likewise.
6124 (*arm_rev): Likewise.
6125 (*arm_revsh): Likewise.
6126 (*arm_rev16): Likewise.
6127 * config/arm/thumb2.md
6128 (*thumb2_smaxsi3): Likewise.
6129 (*thumb2_sminsi3): Likewise.
6130 (*thumb32_umaxsi3): Likewise.
6131 (*thumb2_uminsi3): Likewise.
6132 (*thumb2_negdi2): Likewise.
6133 (*thumb2_abssi2): Likewise.
6134 (*thumb2_neg_abss): Likewise.
6135 (*thumb2_movsi_insn): Likewise.
6136 (tls_load_dot_plus_four): Likewise.
6137 (*thumb2_movhi_insn): Likewise.
6138 (*thumb2_mov_scc): Likewise.
6139 (*thumb2_mov_negs): Likewise.
6140 (*thumb2_mov_negs): Likewise.
6141 (*thumb2_mov_nots): Likewise.
6142 (*thumb2_mov_nots): Likewise.
6143 (*thumb2_movsicc_): Likewise.
6144 (*thumb2_movsfcc_soft_insn): Likewise.
6145 (*thumb2_indirect_jump): Likewise.
6146 (*thumb2_and_scc): Likewise.
6147 (*thumb2_ior_scc): Likewise.
6148 (*thumb2_ior_scc_strict_it): Likewise.
6149 (*thumb2_cond_move): Likewise.
6150 (*thumb2_cond_arith): Likewise.
6151 (*thumb2_cond_ari): Likewise.
6152 (*thumb2_cond_sub): Likewise.
6153 (*thumb2_negscc): Likewise.
6154 (*thumb2_movcond): Likewise.
6155 (thumb2_casesi_internal): Likewise.
6156 (thumb2_casesi_internal_pic): Likewise.
6157 (*thumb2_alusi3_short): Likewise.
6158 (*thumb2_mov<mode>_shortim): Likewise.
6159 (*thumb2_addsi_short): Likewise.
6160 (*thumb2_subsi_short): Likewise.
6161 (thumb2_addsi3_compare0): Likewise.
6162 (*thumb2_cbz): Likewise.
6163 (*thumb2_cbnz): Likewise.
6164 (*thumb2_one_cmplsi2_short): Likewise.
6165 (*thumb2_negsi2_short): Likewise.
6166 (*orsi_notsi_si): Likewise.
6167 * config/arm/arm1020e.md: Update with new attributes.
6168 * config/arm/arm1026ejs.md: Update with new attributes.
6169 * config/arm/arm1136jfs.md: Update with new attributes.
6170 * config/arm/arm926ejs.md: Update with new attributes.
6171 * config/arm/cortex-a15.md: Update with new attributes.
6172 * config/arm/cortex-a5.md: Update with new attributes.
6173 * config/arm/cortex-a53.md: Update with new attributes.
6174 * config/arm/cortex-a7.md: Update with new attributes.
6175 * config/arm/cortex-a8.md: Update with new attributes.
6176 * config/arm/cortex-a9.md: Update with new attributes.
6177 * config/arm/cortex-m4.md: Update with new attributes.
6178 * config/arm/cortex-r4.md: Update with new attributes.
6179 * config/arm/fa526.md: Update with new attributes.
6180 * config/arm/fa606te.md: Update with new attributes.
6181 * config/arm/fa626te.md: Update with new attributes.
6182 * config/arm/fa726te.md: Update with new attributes.
6183
6184 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
6185
6186 * config/aarch64/aarch64-simd.md
6187 (aarch64_sqdml<SBINQOPS:as>l_n<mode>_internal): Use
6188 <vwx> iterator to ensure correct register choice.
6189 (aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Likewise.
6190 (aarch64_sqdmull_n<mode>): Likewise.
6191 (aarch64_sqdmull2_n<mode>_internal): Likewise.
6192 * config/aarch64/arm_neon.h
6193 (vml<as><q>_lane<q>_<su>16): Use 'x' constraint for element vector.
6194 (vml<as><q>_n_<su>16): Likewise.
6195 (vml<as>l_high_lane<q>_<su>16): Likewise.
6196 (vml<as>l_high_n_<su>16): Likewise.
6197 (vml<as>l_lane<q>_<su>16): Likewise.
6198 (vml<as>l_n_<su>16): Likewise.
6199 (vmul<q>_lane<q>_<su>16): Likewise.
6200 (vmul<q>_n_<su>16): Likewise.
6201 (vmull_lane<q>_<su>16): Likewise.
6202 (vmull_n_<su>16): Likewise.
6203 (vmull_high_lane<q>_<su>16): Likewise.
6204 (vmull_high_n_<su>16): Likewise.
6205 (vqrdmulh<q>_n_s16): Likewise.
6206
6207 2013-09-06 Tejas Belagod <tejas.belagod@arm.com>
6208
6209 * config/aarch64/arm_neon.h: Fix all vdup<bhsd_lane<q> intrinsics to
6210 have the correct lane parameter.
6211
6212 2013-09-06 Richard Biener <rguenther@suse.de>
6213
6214 * cfganal.c (control_dependences::~control_dependences):
6215 Properly free all of the vector.
6216
6217 2013-09-06 Kirill Yukhin <kirill.yukhin@intel.com>
6218
6219 PR target/58269
6220 * config/i386/i386.c (ix86_conditional_register_usage):
6221 Proper initialize extended SSE registers.
6222
6223 2013-09-06 Jan Hubicka <jh@suse.cz>
6224
6225 PR tree-optimization/58311
6226 * ipa-devirt.c (gate_ipa_devirt): Only execute when optimizing.
6227
6228 2013-09-06 Jan Hubicka <jh@suse.cz>
6229
6230 * Makefile.in (tree-sra.o): Update dependencies.
6231 * tree-sra.c: Include ipa-utils.h
6232 (scan_function): Use recursive_call_p.
6233 (has_caller_p): New function.
6234 (cgraph_for_node_and_aliases): Count also callers of aliases.
6235
6236 2013-09-06 Jan Hubicka <jh@suse.cz>
6237
6238 PR middle-end/58094
6239 * cgraph.h (symtab_semantically_equivalent_p): Declare.
6240 * tree-tailcall.c: Include ipa-utils.h.
6241 (find_tail_calls): Use it.
6242 * ipa-pure-const.c (check_call): Likewise.
6243 * ipa-utils.c (recursive_call_p): New function.
6244 * ipa-utils.h (recursive_call_p): Dclare.
6245 * symtab.c (symtab_nonoverwritable_alias): Fix formatting.
6246 (symtab_semantically_equivalent_p): New function.
6247 * Makefile.in (tree-tailcall.o): Update dependencies.
6248
6249 2013-09-06 Eric Botcazou <ebotcazou@adacore.com>
6250
6251 * ipa-split.c (split_function): Set DECL_NO_INLINE_WARNING_P on the
6252 non-inlinable part.
6253
6254 2013-09-06 Richard Biener <rguenther@suse.de>
6255
6256 * lto-streamer.h (lto_global_var_decls): Remove.
6257 * Makefile.in (OBJS): Remove lto-symtab.o.
6258 (lto-symtab.o): Remove.
6259 (GTFILES): Remove lto-symtab.c
6260 * lto-symtab.c: Move to lto/
6261
6262 2013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6263
6264 * config/s390/s390.md (UNSPEC_FPINT_FLOOR, UNSPEC_FPINT_BTRUNC)
6265 (UNSPEC_FPINT_ROUND, UNSPEC_FPINT_CEIL, UNSPEC_FPINT_NEARBYINT)
6266 (UNSPEC_FPINT_RINT): New constant definitions.
6267 (FPINT, fpint_name, fpint_roundingmode): New integer iterator
6268 definition with 2 attributes.
6269 ("<FPINT:fpint_name><BFP:mode>2", "rint<BFP:mode>2")
6270 ("<FPINT:fpint_name><DFP:mode>2", "rint<DFP:mode>2"): New pattern
6271 definitions.
6272
6273 2013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6274
6275 * config/s390/s390.md: Add "bcr_flush" value to mnemonic attribute.
6276 ("mem_thread_fence_1"): Use bcr 14,0 for z196 and later.
6277 Set the mnemonic attribute to "bcr_flush". Set the "z196prop"
6278 attribute to "z196_alone".
6279 * config/s390/2827.md: Add "bcr_flush" to "ooo_groupalone" and
6280 "zEC12_simple".
6281
6282 2013-09-06 Richard Biener <rguenther@suse.de>
6283
6284 * basic-block.h (class control_dependences): New.
6285 * tree-ssa-dce.c (control_dependence_map): Remove.
6286 (cd): New global.
6287 (EXECUTE_IF_CONTROL_DEPENDENT): Remove.
6288 (set_control_dependence_map_bit, clear_control_dependence_bitmap,
6289 find_pdom, find_control_dependence, find_all_control_dependences):
6290 Move to cfganal.c.
6291 (mark_control_dependent_edges_necessary,
6292 find_obviously_necessary_stmts, propagate_necessity, tree_dce_init,
6293 tree_dce_done, perform_tree_ssa_dce): Adjust.
6294 * cfganal.c (set_control_dependence_map_bit,
6295 clear_control_dependence_bitmap, find_pdom, find_control_dependence,
6296 find_all_control_dependences): Move from tree-ssa-dce.c and
6297 implement as methods of control_dependences class.
6298 (control_dependences::control_dependences): New.
6299 (control_dependences::~control_dependences): Likewise.
6300 (control_dependences::get_edges_dependent_on): Likewise.
6301 (control_dependences::get_edge): Likewise.
6302
6303 2013-09-04 Jan Hubicka <jh@suse.cz>
6304
6305 * tree.c (types_same_for_odr): Drop overactive check.
6306 * ipa-devirt.c (hash_type_name): Likewise.
6307
6308 2013-09-04 Jan Hubicka <jh@suse.cz>
6309
6310 * cgraphunit.c (walk_polymorphic_call_targets): Break out from ...
6311 (analyze_functions): ... here.
6312
6313 2013-09-04 Jan Hubicka <jh@suse.cz>
6314
6315 PR middle-end/58201
6316 * cgraphunit.c (analyze_functions): Clear AUX fields
6317 after processing; initialize assembler name has.
6318
6319 2013-09-05 Jeff Law <law@redhat.com>
6320
6321 * tree-ssa-threadedge.c (thread_around_empty_blocks): Renamed
6322 from thread_around_empty_block. Record threading path into PATH.
6323 Recurse if threading through the initial block is successful.
6324 (thread_across_edge): Corresponding changes to slightly simplify.
6325
6326 2013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
6327
6328 * config/aarch64/aarch64.md
6329 (type): Remove frecpe, frecps, frecpx.
6330 (aarch64_frecp<FRECP:frecp_suffix><mode>): Move to aarch64-simd.md,
6331 fix to be a TARGET_SIMD instruction.
6332 (aarch64_frecps): Remove.
6333 * config/aarch64/aarch64-simd.md
6334 (aarch64_frecp<FRECP:frecp_suffix><mode>): New, moved from aarch64.md
6335 (aarch64_frecps<mode>): Handle all float/vector of float modes.
6336
6337 2013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
6338 Sofiane Naci <sofiane.naci@arm.com>
6339
6340 * config/arm/types.md (define_attr "type"): Expand "arlo_imm"
6341 into "adr", "alu_imm", "alus_imm", "logic_imm", "logics_imm".
6342 Expand "arlo_reg" into "adc_reg", "adc_imm", "adcs_reg", "adcs_imm",
6343 "alu_ext", "alu_reg", "alus_ext", "alus_reg", "bfm", "csel",
6344 "logic_reg", "logics_reg", "rev". Expand "arlo_shift" into
6345 "alu_shift_imm", "alus_shift_imm", "logic_shift_imm",
6346 "logics_shift_imm". Expand "arlo_shift_reg" into "alu_shift_reg",
6347 "alus_shift_reg", "logic_shift_reg", "logics_shift_reg". Expand "clz"
6348 into "clz, "rbit". Rename "shift" to "shift_imm".
6349 * config/arm/arm.md (define_attr "core_cycles"): Update for attribute
6350 changes. Update for attribute changes all occurrences of arlo_* and
6351 shift* types.
6352 * config/arm/arm-fixed.md: Update for attribute changes
6353 all occurrences of arlo_* types.
6354 * config/arm/thumb2.md: Update for attribute changes all occurrences
6355 of arlo_* types.
6356 * config/arm/arm.c (xscale_sched_adjust_cost): (rtx insn, rtx
6357 (cortexa7_older_only): Likewise.
6358 (cortexa7_younger): Likewise.
6359 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
6360 (1020alu_shift_op): Likewise.
6361 (1020alu_shift_reg_op): Likewise.
6362 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
6363 (alu_shift_op): Likewise.
6364 (alu_shift_reg_op): Likewise.
6365 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
6366 (11_alu_shift_op): Likewise.
6367 (11_alu_shift_reg_op): Likewise.
6368 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
6369 (9_alu_shift_reg_op): Likewise.
6370 * config/arm/cortex-a15.md (cortex_a15_alu): Update for
6371 attribute changes.
6372 (cortex_a15_alu_shift): Likewise.
6373 (cortex_a15_alu_shift_reg): Likewise.
6374 * config/arm/cortex-a5.md (cortex_a5_alu): Update for
6375 attribute changes.
6376 (cortex_a5_alu_shift): Likewise.
6377 * config/arm/cortex-a53.md (cortex_a53_alu): Update for
6378 attribute changes.
6379 (cortex_a53_alu_shift): Likewise.
6380 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for
6381 attribute changes.
6382 (cortex_a7_alu_reg): Likewise.
6383 (cortex_a7_alu_shift): Likewise.
6384 * config/arm/cortex-a8.md (cortex_a8_alu): Update for
6385 attribute changes.
6386 (cortex_a8_alu_shift): Likewise.
6387 (cortex_a8_alu_shift_reg): Likewise.
6388 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
6389 (cortex_a9_dp_shift): Likewise.
6390 * config/arm/cortex-m4.md (cortex_m4_alu): Update for
6391 attribute changes.
6392 * config/arm/cortex-r4.md
6393 (cortex_r4_alu): Update for attribute changes.
6394 (cortex_r4_mov): Likewise.
6395 (cortex_r4_alu_shift_reg): Likewise.
6396 * config/arm/fa526.md (526_alu_op): Update for attribute changes.
6397 (526_alu_shift_op): Likewise.
6398 * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
6399 * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
6400 (626te_alu_shift_op): Likewise.
6401 * config/arm/fa726te.md (726te_alu_op): Update for attribute changes.
6402 (726te_alu_shift_op): Likewise.
6403 (726te_alu_shift_reg_op): Likewise.
6404 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
6405 (mp626_alu_shift_op): Likewise.
6406 * config/arm/marvell-pj4.md (pj4_alu): Update for attribute changes.
6407 (pj4_alu_conds): Likewise.
6408 (pj4_shift): Likewise.
6409 (pj4_shift_conds): Likewise.
6410 (pj4_alu_shift): Likewise.
6411 (pj4_alu_shift_conds): Likewise.
6412 * config/aarch64/aarch64.md: Update for attribute change
6413 all occurrences of arlo_* and shift* types.
6414
6415 2013-09-05 Mike Stump <mikestump@comcast.net>
6416
6417 * tree.h: Move documentation for tree_function_decl to tree-core.h
6418 with the declaration.
6419
6420 2013-09-05 Peter Bergner <bergner@vnet.ibm.com>
6421
6422 PR target/58139
6423 * reginfo.c (choose_hard_reg_mode): Scan through all mode classes
6424 looking for widest mode.
6425
6426 2013-09-05 Eric Botcazou <ebotcazou@adacore.com>
6427
6428 * config.gcc (*-*-vxworks*): Do not override an existing extra_objs.
6429
6430 2013-09-05 Richard Biener <rguenther@suse.de>
6431
6432 PR tree-optimization/58137
6433 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
6434 Do not create vectors of pointers.
6435 * tree-vect-loop.c (get_initial_def_for_induction): Use proper
6436 types for the components of the vector initializer.
6437 * tree-cfg.c (verify_gimple_assign_binary): Remove special-casing
6438 allowing pointer vectors with PLUS_EXPR/MINUS_EXPR.
6439
6440 2013-09-05 Martin Jambor <mjambor@suse.cz>
6441
6442 * ipa-prop.c (remove_described_reference): Accept missing references,
6443 return false if that hppens, otherwise return true.
6444 (cgraph_node_for_jfunc): New function.
6445 (try_decrement_rdesc_refcount): Likewise.
6446 (try_make_edge_direct_simple_call): Use them.
6447 (ipa_edge_removal_hook): Remove references from rdescs.
6448 (ipa_edge_duplication_hook): Clone rdescs and their references
6449 when the new edge has the same caller as the old one.
6450 * cgraph.c (cgraph_resolve_speculation): Remove speculative
6451 reference before removing any edges.
6452
6453 2013-09-05 Richard Earnshaw <rearnsha@arm.com>
6454
6455 * arm.c (thumb2_emit_strd_push): Rewrite to use pre-decrement on
6456 initial store.
6457 * thumb2.md (thumb2_storewb_parisi): New pattern.
6458
6459 2013-09-05 Yufeng Zhang <yufeng.zhang@arm.com>
6460
6461 * config/aarch64/aarch64-option-extensions.def: Add
6462 AARCH64_OPT_EXTENSION of 'crc'.
6463 * config/aarch64/aarch64.h (AARCH64_FL_CRC): New define.
6464 (AARCH64_ISA_CRC): Ditto.
6465 * doc/invoke.texi (-march and -mcpu feature modifiers): Add
6466 description of the CRC extension.
6467
6468 2013-09-05 Alexander Ivchenko <alexander.ivchenko@intel.com>
6469
6470 * config/rs6000/linux64.h: Define OPTION_BIONIC and OPTION_UCLIBC.
6471 * config/rs6000/linux.h: Ditto.
6472 * alpha/linux.h: Ditto.
6473 * config/bfin/uclinux.h: Define TARGET_LIBC_HAS_FUNCTION as
6474 no_c99_libc_has_function.
6475 * config/c6x/uclinux-elf.h: Ditto.
6476 * config/lm32/uclinux-elf.h: Ditto.
6477 * config/m68k/uclinux.h: Ditto.
6478 * config/moxie/uclinux.h: Ditto.
6479 * config.gcc (bfin*-linux-uclibc*): Add t-linux-android to tmake_file.
6480 (crisv32-*-linux*, cris-*-linux*): Ditto.
6481 * config/bfin/bfin.c: Include "tm_p.h".
6482
6483 2013-09-05 Richard Biener <rguenther@suse.de>
6484
6485 * tree-vect-loop.c (vect_analyze_loop_operations): Properly
6486 check for a definition without a basic-block.
6487
6488 2013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
6489 Sofiane Naci <sofiane.naci@arm.com>
6490
6491 * config/aarch64/aarch64.md
6492 (*movti_aarch64): Rename r_2_f and f_2_r.
6493 (*movsf_aarch64): Likewise.
6494 (*movdf_aarch64): Likewise.
6495 (*movtf_aarch64): Likewise.
6496 (aarch64_movdi_<mode>low): Likewise.
6497 (aarch64_movdi_<mode>high): Likewise.
6498 (aarch64_mov<mode>high_di): Likewise.
6499 (aarch64_mov<mode>low_di): Likewise.
6500 (aarch64_movtilow_tilow): Likewise.
6501 * config/arm/arm.md (attribute "neon_type"): Delete. Move attribute
6502 values to config/arm/types.md
6503 (attribute "conds"): Update for attribute change.
6504 (anddi3_insn): Likewise.
6505 (iordi3_insn): Likewise.
6506 (xordi3_insn): Likewise.
6507 (one_cmpldi2): Likewise.
6508 * config/arm/types.md (type): Add Neon types.
6509 * config/arm/neon.md (neon_mov<mode>): Remove "neon_type" attribute,
6510 use "type" attribute.
6511 (movmisalign<mode>_neon_store): Likewise.
6512 (movmisalign<mode>_neon_load): Likewise.
6513 (vec_set<mode>_internal): Likewise.
6514 (vec_setv2di_internal): Likewise.
6515 (vec_extract<mode>): Likewise.
6516 (vec_extractv2di): Likewise.
6517 (add<mode>3_neon): Likewise.
6518 (adddi3_neon): Likewise.
6519 (sub<mode>3_neon): Likewise.
6520 (subdi3_neon): Likewise.
6521 (mul<mode>3_neon): Likewise.
6522 (mul<mode>3add<mode>_neon): Likewise.
6523 (mul<mode>3neg<mode>add<mode>_neon): Likewise.
6524 (fma<VCVTF:mode>4)): Likewise.
6525 (fma<VCVTF:mode>4_intrinsic): Likewise.
6526 (fmsub<VCVTF:mode>4)): Likewise.
6527 (fmsub<VCVTF:mode>4_intrinsic): Likewise.
6528 (neon_vrint<NEON_VRINT:nvrint_variant><VCVTF:mode>): Likewise.
6529 (ior<mode>3): Likewise.
6530 (and<mode>3): Likewise.
6531 (anddi3_neon): Likewise.
6532 (orn<mode>3_neon): Likewise.
6533 (orndi3_neon): Likewise.
6534 (bic<mode>3_neon): Likewise.
6535 (bicdi3_neon): Likewise.
6536 (xor<mode>3): Likewise.
6537 (one_cmpl<mode>2): Likewise.
6538 (abs<mode>2): Likewise.
6539 (neg<mode>2): Likewise.
6540 (umin<mode>3_neon): Likewise.
6541 (umax<mode>3_neon): Likewise.
6542 (smin<mode>3_neon): Likewise.
6543 (smax<mode>3_neon): Likewise.
6544 (vashl<mode>3): Likewise.
6545 (vashr<mode>3_imm): Likewise.
6546 (vlshr<mode>3_imm): Likewise.
6547 (ashl<mode>3_signed): Likewise.
6548 (ashl<mode>3_unsigned): Likewise.
6549 (neon_load_count): Likewise.
6550 (ashldi3_neon_noclobber): Likewise.
6551 (signed_shift_di3_neon): Likewise.
6552 (unsigned_shift_di3_neon): Likewise.
6553 (ashrdi3_neon_imm_noclobber): Likewise.
6554 (lshrdi3_neon_imm_noclobber): Likewise.
6555 (widen_ssum<mode>3): Likewise.
6556 (widen_usum<mode>3): Likewise.
6557 (quad_halves_<code>v4si): Likewise.
6558 (quad_halves_<code>v4sf): Likewise.
6559 (quad_halves_<code>v8hi): Likewise.
6560 (quad_halves_<code>v16qi): Likewise.
6561 (reduc_splus_v2di): Likewise.
6562 (neon_vpadd_internal<mode>): Likewise.
6563 (neon_vpsmin<mode>): Likewise.
6564 (neon_vpsmax<mode>): Likewise.
6565 (neon_vpumin<mode>): Likewise.
6566 (neon_vpumax<mode>): Likewise.
6567 (ss_add<mode>_neon): Likewise.
6568 (us_add<mode>_neon): Likewise.
6569 (ss_sub<mode>_neon): Likewise.
6570 (us_sub<mode>_neon): Likewise.
6571 (neon_vadd<mode>_unspec): Likewise.
6572 (neon_vaddl<mode>): Likewise.
6573 (neon_vaddw<mode>): Likewise.
6574 (neon_vhadd<mode>): Likewise.
6575 (neon_vqadd<mode>): Likewise.
6576 (neon_vaddhn<mode>): Likewise.
6577 (neon_vmul<mode>): Likewise.
6578 (neon_vmla<mode>): Likewise.
6579 (neon_vmlal<mode>): Likewise.
6580 (neon_vmls<mode>): Likewise.
6581 (neon_vmlsl<mode>): Likewise.
6582 (neon_vqdmulh<mode>): Likewise.
6583 (neon_vqdmlal<mode>): Likewise.
6584 (neon_vqdmlsl<mode>): Likewise.
6585 (neon_vmull<mode>): Likewise.
6586 (neon_vqdmull<mode>): Likewise.
6587 (neon_vsub<mode>_unspec): Likewise.
6588 (neon_vsubl<mode>): Likewise.
6589 (neon_vsubw<mode>): Likewise.
6590 (neon_vqsub<mode>): Likewise.
6591 (neon_vhsub<mode>): Likewise.
6592 (neon_vsubhn<mode>): Likewise.
6593 (neon_vceq<mode>): Likewise.
6594 (neon_vcge<mode>): Likewise.
6595 (neon_vcgeu<mode>): Likewise.
6596 (neon_vcgt<mode>): Likewise.
6597 (neon_vcgtu<mode>): Likewise.
6598 (neon_vcle<mode>): Likewise.
6599 (neon_vclt<mode>): Likewise.
6600 (neon_vcage<mode>): Likewise.
6601 (neon_vcagt<mode>): Likewise.
6602 (neon_vtst<mode>): Likewise.
6603 (neon_vabd<mode>): Likewise.
6604 (neon_vabdl<mode>): Likewise.
6605 (neon_vaba<mode>): Likewise.
6606 (neon_vabal<mode>): Likewise.
6607 (neon_vmax<mode>): Likewise.
6608 (neon_vmin<mode>): Likewise.
6609 (neon_vpaddl<mode>): Likewise.
6610 (neon_vpadal<mode>): Likewise.
6611 (neon_vpmax<mode>): Likewise.
6612 (neon_vpmin<mode>): Likewise.
6613 (neon_vrecps<mode>): Likewise.
6614 (neon_vrsqrts<mode>): Likewise.
6615 (neon_vqabs<mode>): Likewise.
6616 (neon_vqneg<mode>): Likewise.
6617 (neon_vcls<mode>): Likewise.
6618 (clz<mode>2): Likewise.
6619 (popcount<mode>2): Likewise.
6620 (neon_vrecpe): Likewise.
6621 (neon_vrsqrte): Likewise.
6622 (neon_vget_lane<mode>_sext_internal): Likewise.
6623 (neon_vget_lane<mode>_zext_internal): Likewise.
6624 (neon_vdup_n<mode>): Likewise.
6625 (neon_vdup_nv2di): Likewise.
6626 (neon_vdpu_lane<mode>_internal): Likewise.
6627 (neon_vswp<mode>): Likewise.
6628 (float<mode><V_cvtto>2): Likewise.
6629 (floatuns<mode><V_cvtto>2): Likewise.
6630 (fix_trunc<mode><V_cvtto>)2): Likewise
6631 (fixuns_trunc<mode><V_cvtto)2): Likewise.
6632 (neon_vcvt<mode>): Likewise.
6633 (neon_vcvtv4sfv4hf): Likewise.
6634 (neon_vcvtv4hfv4sf): Likewise.
6635 (neon_vcvt_n<mode>): Likewise.
6636 (neon_vmovn<mode>): Likewise.
6637 (neon_vqmovn<mode>): Likewise.
6638 (neon_vqmovun<mode>): Likewise.
6639 (neon_vmovl<mode>): Likewise.
6640 (neon_vmul_lane<mode>): Likewise.
6641 (neon_vmull_lane<mode>): Likewise.
6642 (neon_vqdmull_lane<mode>): Likewise.
6643 (neon_vqdmulh_lane<mode>): Likewise.
6644 (neon_vmla_lane<mode>): Likewise.
6645 (neon_vmlal_lane<mode>): Likewise.
6646 (neon_vqdmlal_lane<mode>): Likewise.
6647 (neon_vmls_lane<mode>): Likewise.
6648 (neon_vmlsl_lane<mode>): Likewise.
6649 (neon_vqdmlsl_lane<mode>): Likewise.
6650 (neon_vext<mode>): Likewise.
6651 (neon_vrev64<mode>): Likewise.
6652 (neon_vrev32<mode>): Likewise.
6653 (neon_vrev16<mode>): Likewise.
6654 (neon_vbsl<mode>_internal): Likewise.
6655 (neon_vshl<mode>): Likewise.
6656 (neon_vqshl<mode>): Likewise.
6657 (neon_vshr_n<mode>): Likewise.
6658 (neon_vshrn_n<mode>): Likewise.
6659 (neon_vqshrn_n<mode>): Likewise.
6660 (neon_vqshrun_n<mode>): Likewise.
6661 (neon_vshl_n<mode>): Likewise.
6662 (neon_vqshl_n<mode>): Likewise.
6663 (neon_vqshlu_n<mode>): Likewise.
6664 (neon_vshll_n<mode>): Likewise.
6665 (neon_vsra_n<mode>): Likewise.
6666 (neon_vsri_n<mode>): Likewise.
6667 (neon_vsli_n<mode>): Likewise.
6668 (neon_vtbl1v8qi): Likewise.
6669 (neon_vtbl2v8qi): Likewise.
6670 (neon_vtbl3v8qi): Likewise.
6671 (neon_vtbl4v8qi): Likewise.
6672 (neon_vtbx1v8qi): Likewise.
6673 (neon_vtbx2v8qi): Likewise.
6674 (neon_vtbx3v8qi): Likewise.
6675 (neon_vtbx4v8qi): Likewise.
6676 (neon_vtrn<mode>_internal): Likewise.
6677 (neon_vzip<mode>_internal): Likewise.
6678 (neon_vuzp<mode>_internal): Likewise.
6679 (neon_vld1<mode>): Likewise.
6680 (neon_vld1_lane<mode>): Likewise.
6681 (neon_vld1_dup<mode>): Likewise.
6682 (neon_vld1_dupv2di): Likewise.
6683 (neon_vst1<mode>): Likewise.
6684 (neon_vst1_lane<mode>): Likewise.
6685 (neon_vld2<mode>): Likewise.
6686 (neon_vld2_lane<mode>): Likewise.
6687 (neon_vld2_dup<mode>): Likewise.
6688 (neon_vst2<mode>): Likewise.
6689 (neon_vst2_lane<mode>): Likewise.
6690 (neon_vld3<mode>): Likewise.
6691 (neon_vld3qa<mode>): Likewise.
6692 (neon_vld3qb<mode>): Likewise.
6693 (neon_vld3_lane<mode>): Likewise.
6694 (neon_vld3_dup<mode>): Likewise.
6695 (neon_vst3<mode>): Likewise.
6696 (neon_vst3qa<mode>): Likewise.
6697 (neon_vst3qb<mode>): Likewise.
6698 (neon_vst3_lane<mode>): Likewise.
6699 (neon_vld4<mode>): Likewise.
6700 (neon_vld4qa<mode>): Likewise.
6701 (neon_vld4qb<mode>): Likewise.
6702 (neon_vld4_lane<mode>): Likewise.
6703 (neon_vld4_dup<mode>): Likewise.
6704 (neon_vst4<mode>): Likewise.
6705 (neon_vst4qa<mode>): Likewise.
6706 (neon_vst4qb<mode>): Likewise.
6707 (neon_vst4_lane<mode>): Likewise.
6708 (neon_vec_unpack<US>_lo_<mode>): Likewise.
6709 (neon_vec_unpack<US>_hi_<mode>): Likewise.
6710 (neon_vec_<US>mult_lo_<mode>): Likewise.
6711 (neon_vec_<US>mult_hi_<mode>): Likewise.
6712 (neon_vec_<US>shiftl_<mode>): Likewise.
6713 (neon_unpack<US>_<mode>): Likewise.
6714 (neon_vec_<US>mult_<mode>): Likewise.
6715 (vec_pack_trunc_<mode>): Likewise.
6716 (neon_vec_pack_trunk_<mode>): Likewise.
6717 (neon_vabd<mode>_2): Likewise.
6718 (neon_vabd<mode>_3): Likewise.
6719 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
6720 (thumb2_movsi_vfp): Likewise.
6721 (movdi_vfp): Likewise.
6722 (movdi_vfp_cortexa8): Likewise.
6723 (movhf_vfp_neon): Likewise.
6724 (movhf_vfp): Likewiwse.
6725 (movsf_vfp): Likewiwse.
6726 (thumb2_movsf_vfp): Likewiwse.
6727 (movdf_vfp): Likewise.
6728 (thumb2_movdf_vfp): Likewise.
6729 (movsfcc_vfp): Likewise.
6730 (thumb2_movsfcc_vfp): Likewise.
6731 (movdfcc_vfp): Likewise.
6732 (thumb2_movdfcc_vfp): Likewise.
6733 * config/arm/arm.c (cortexa7_older_only): Update for attribute change.
6734 * config/arm/arm1020e.md (v10_c2v): Update for attribute change.
6735 (v10_v2c): Likewise.
6736 * config/arm/cortex-a15-neon.md (cortex_a15_neon_int_1): Update for
6737 attribute change.
6738 (cortex_a15_neon_int_2): Likewise.
6739 (cortex_a15_neon_int_3): Likewise.
6740 (cortex_a15_neon_int_4): Likewise.
6741 (cortex_a15_neon_int_5): Likewise.
6742 (cortex_a15_neon_vqneg_vqabs): Likewise.
6743 (cortex_a15_neon_vmov): Likewise.
6744 (cortex_a15_neon_vaba): Likewise.
6745 (cortex_a15_neon_vaba_qqq): Likewise.
6746 (cortex_a15_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
6747 (cortex_a15_neon_mul_qqq_8_16_32_ddd_32): Likewise.
6748 (cortex_a15_neon_mul_qdd_64_32_long_qqd_16_ddd_32_\
6749 scalar_64_32_long_scalar): Likewise.
6750 (cortex_a15_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
6751 (cortex_a15_neon_mla_qqq_8_16): Likewise.
6752 (cortex_a15_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
6753 lotype_qdd_64_32_long): Likewise.
6754 (cortex_a15_neon_mla_qqq_32_qqd_32_scalar): Likewise.
6755 (cortex_a15_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
6756 (cortex_a15_neon_mul_qqd_32_scalar): Likewise.
6757 (cortex_a15_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
6758 (cortex_a15_neon_shift_1): Likewise.
6759 (cortex_a15_neon_shift_2): Likewise.
6760 (cortex_a15_neon_shift_3): Likewise.
6761 (cortex_a15_neon_vshl_ddd): Likewise.
6762 (cortex_a15_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
6763 (cortex_a15_neon_vsra_vrsra): Likewise.
6764 (cortex_a15_neon_fp_vadd_ddd_vabs_dd): Likewise.
6765 (cortex_a15_neon_fp_vadd_qqq_vabs_qq): Likewise.
6766 (cortex_a15_neon_fp_vmul_ddd): Likewise.
6767 (cortex_a15_neon_fp_vmul_qqd): Likewise.
6768 (cortex_a15_neon_fp_vmla_ddd): Likewise.
6769 (cortex_a15_neon_fp_vmla_qqq): Likewise.
6770 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
6771 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
6772 (cortex_a15_neon_fp_vrecps_vrsqrts_ddd): Likewise.
6773 (cortex_a15_neon_fp_vrecps_vrsqrts_qqq): Likewise.
6774 (cortex_a15_neon_bp_simple): Likewise.
6775 (cortex_a15_neon_bp_2cycle): Likewise.
6776 (cortex_a15_neon_bp_3cycle): Likewise.
6777 (cortex_a15_neon_vld1_1_2_regs): Likewise.
6778 (cortex_a15_neon_vld1_3_4_regs): Likewise.
6779 (cortex_a15_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
6780 (cortex_a15_neon_vld2_4_regs): Likewise.
6781 (cortex_a15_neon_vld3_vld4): Likewise.
6782 (cortex_a15_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
6783 (cortex_a15_neon_vst1_3_4_regs): Likewise.
6784 (cortex_a15_neon_vst2_4_regs_vst3_vst4): Likewise.
6785 (cortex_a15_neon_vst3_vst4): Likewise.
6786 (cortex_a15_neon_vld1_vld2_lane): Likewise.
6787 (cortex_a15_neon_vld3_vld4_lane" 10
6788 (cortex_a15_neon_vst1_vst2_lane): Likewise.
6789 (cortex_a15_neon_vst3_vst4_lane): Likewise.
6790 (cortex_a15_neon_vld3_vld4_all_lanes): Likewise.
6791 (cortex_a15_neon_ldm_2): Likewise.0
6792 (cortex_a15_neon_stm_2): Likewise.
6793 (cortex_a15_neon_mcr): Likewise.
6794 (cortex_a15_neon_mcr_2_mcrr): Likewise.
6795 (cortex_a15_neon_mrc): Likewise.
6796 (cortex_a15_neon_mrrc): Likewise.
6797 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
6798 change.
6799 (cortex_a15_alu_shift): Likewise.
6800 (cortex_a15_alu_shift_reg): Likewise.
6801 (cortex_a15_mult32): Likewise.
6802 (cortex_a15_mult64): Likewise.
6803 (cortex_a15_block): Likewise.
6804 (cortex_a15_branch): Likewise.
6805 (cortex_a15_load1): Likewise.
6806 (cortex_a15_load3): Likewise.
6807 (cortex_a15_store1): Likewise.
6808 (cortex_a15_store3): Likewise.
6809 (cortex_a15_call): Likewise.
6810 * config/arm/cortex-a5.md (cortex_a5_r2f): Update for attribute change.
6811 (cortex_a5_f2r): Likewise.
6812 * config/arm/cortex-a53.md (cortex_a53_r2f): Update for attribute
6813 change.
6814 (cortex_a53_f2r): Likewise.
6815 * config/arm/cortex-a7.md
6816 (cortex_a7_branch): Update for attribute change.
6817 (cortex_a7_call): Likewise.
6818 (cortex_a7_alu_imm): Likewise.
6819 (cortex_a7_alu_reg): Likewise.
6820 (cortex_a7_alu_shift): Likewise.
6821 (cortex_a7_mul): Likewise.
6822 (cortex_a7_load1): Likewise.
6823 (cortex_a7_store1): Likewise.
6824 (cortex_a7_load2): Likewise.
6825 (cortex_a7_store2): Likewise.
6826 (cortex_a7_load3): Likewise.
6827 (cortex_a7_store3): Likewise.
6828 (cortex_a7_load4): Likewise.
6829 (cortex_a7_store4): Likewise.
6830 (cortex_a7_fpalu): Likewise.
6831 (cortex_a7_fconst): Likewise.
6832 (cortex_a7_fpmuls): Likewise.
6833 (cortex_a7_neon_mul): Likewise.
6834 (cortex_a7_fpmacs): Likewise.
6835 (cortex_a7_neon_mla: Likewise.
6836 (cortex_a7_fpmuld: Likewise.
6837 (cortex_a7_fpmacd: Likewise.
6838 (cortex_a7_fpfmad: Likewise.
6839 (cortex_a7_fdivs: Likewise.
6840 (cortex_a7_fdivd: Likewise.
6841 (cortex_a7_r2f: Likewise.
6842 (cortex_a7_f2r: Likewise.
6843 (cortex_a7_f_flags: Likewise.
6844 (cortex_a7_f_loads: Likewise.
6845 (cortex_a7_f_loadd: Likewise.
6846 (cortex_a7_f_stores: Likewise.
6847 (cortex_a7_f_stored: Likewise.
6848 (cortex_a7_neon): Likewise.
6849 * config/arm/cortex-a8-neon.md
6850 (cortex_a8_neon_mrc): Update for attribute change.
6851 (cortex_a8_neon_mrrc): Likewise.
6852 (cortex_a8_neon_int_1): Likewise.
6853 (cortex_a8_neon_int_2): Likewise.
6854 (cortex_a8_neon_int_3): Likewise.
6855 (cortex_a8_neon_int_4): Likewise.
6856 (cortex_a8_neon_int_5): Likewise.
6857 (cortex_a8_neon_vqneg_vqabs): Likewise.
6858 (cortex_a8_neon_vmov): Likewise.
6859 (cortex_a8_neon_vaba): Likewise.
6860 (cortex_a8_neon_vaba_qqq): Likewise.
6861 (cortex_a8_neon_vsma): Likewise.
6862 (cortex_a8_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
6863 (cortex_a8_neon_mul_qqq_8_16_32_ddd_32): Likewise.
6864 (cortex_a8_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_\
6865 long_scalar): Likewise.
6866 (cortex_a8_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
6867 (cortex_a8_neon_mla_qqq_8_16): Likewise.
6868 (cortex_a8_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
6869 long_scalar_qdd_64_32_long): Likewise.
6870 (cortex_a8_neon_mla_qqq_32_qqd_32_scalar): Likewise.
6871 (cortex_a8_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
6872 (cortex_a8_neon_mul_qqd_32_scalar): Likewise.
6873 (cortex_a8_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
6874 (cortex_a8_neon_shift_1): Likewise.
6875 (cortex_a8_neon_shift_2): Likewise.
6876 (cortex_a8_neon_shift_3): Likewise.
6877 (cortex_a8_neon_vshl_ddd): Likewise.
6878 (cortex_a8_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
6879 (cortex_a8_neon_vsra_vrsra): Likewise.
6880 (cortex_a8_neon_fp_vadd_ddd_vabs_dd): Likewise.
6881 (cortex_a8_neon_fp_vadd_qqq_vabs_qq): Likewise.
6882 (cortex_a8_neon_fp_vsum): Likewise.
6883 (cortex_a8_neon_fp_vmul_ddd): Likewise.
6884 (cortex_a8_neon_fp_vmul_qqd): Likewise.
6885 (cortex_a8_neon_fp_vmla_ddd): Likewise.
6886 (cortex_a8_neon_fp_vmla_qqq): Likewise.
6887 (cortex_a8_neon_fp_vmla_ddd_scalar): Likewise.
6888 (cortex_a8_neon_fp_vmla_qqq_scalar): Likewise.
6889 (cortex_a8_neon_fp_vrecps_vrsqrts_ddd): Likewise.
6890 (cortex_a8_neon_fp_vrecps_vrsqrts_qqq): Likewise.
6891 (cortex_a8_neon_bp_simple): Likewise.
6892 (cortex_a8_neon_bp_2cycle): Likewise.
6893 (cortex_a8_neon_bp_3cycle): Likewise.
6894 (cortex_a8_neon_ldr): Likewise.
6895 (cortex_a8_neon_str): Likewise.
6896 (cortex_a8_neon_vld1_1_2_regs): Likewise.
6897 (cortex_a8_neon_vld1_3_4_regs): Likewise.
6898 (cortex_a8_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
6899 (cortex_a8_neon_vld2_4_regs): Likewise.
6900 (cortex_a8_neon_vld3_vld4): Likewise.
6901 (cortex_a8_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
6902 (cortex_a8_neon_vst1_3_4_regs): Likewise.
6903 (cortex_a8_neon_vst2_4_regs_vst3_vst4): Likewise.
6904 (cortex_a8_neon_vst3_vst4): Likewise.
6905 (cortex_a8_neon_vld1_vld2_lane): Likewise.
6906 (cortex_a8_neon_vld3_vld4_lane): Likewise.
6907 (cortex_a8_neon_vst1_vst2_lane): Likewise.
6908 (cortex_a8_neon_vst3_vst4_lane): Likewise.
6909 (cortex_a8_neon_vld3_vld4_all_lanes): Likewise.
6910 (cortex_a8_neon_mcr): Likewise.
6911 (cortex_a8_neon_mcr_2_mcrr): Likewise.
6912 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
6913 * config/arm/cortex-a9-neon.md (ca9_neon_mrc): Update for attribute
6914 change.
6915 (ca9_neon_mrrc): Likewise.
6916 (cortex_a9_neon_int_1): Likewise.
6917 (cortex_a9_neon_int_2): Likewise.
6918 (cortex_a9_neon_int_3): Likewise.
6919 (cortex_a9_neon_int_4): Likewise.
6920 (cortex_a9_neon_int_5): Likewise.
6921 (cortex_a9_neon_vqneg_vqabs): Likewise.
6922 (cortex_a9_neon_vmov): Likewise.
6923 (cortex_a9_neon_vaba): Likewise.
6924 (cortex_a9_neon_vaba_qqq): Likewise.
6925 (cortex_a9_neon_vsma): Likewise.
6926 (cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
6927 (cortex_a9_neon_mul_qqq_8_16_32_ddd_32): Likewise.
6928 (cortex_a9_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_\
6929 long_scalar): Likewise.
6930 (cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
6931 (cortex_a9_neon_mla_qqq_8_16): Likewise.
6932 (cortex_a9_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
6933 long_scalar_qdd_64_32_long): Likewise.
6934 (cortex_a9_neon_mla_qqq_32_qqd_32_scalar): Likewise.
6935 (cortex_a9_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
6936 (cortex_a9_neon_mul_qqd_32_scalar): Likewise.
6937 (cortex_a9_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
6938 (cortex_a9_neon_shift_1): Likewise.
6939 (cortex_a9_neon_shift_2): Likewise.
6940 (cortex_a9_neon_shift_3): Likewise.
6941 (cortex_a9_neon_vshl_ddd): Likewise.
6942 (cortex_a9_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
6943 (cortex_a9_neon_vsra_vrsra): Likewise.
6944 (cortex_a9_neon_fp_vadd_ddd_vabs_dd): Likewise.
6945 (cortex_a9_neon_fp_vadd_qqq_vabs_qq): Likewise.
6946 (cortex_a9_neon_fp_vsum): Likewise.
6947 (cortex_a9_neon_fp_vmul_ddd): Likewise.
6948 (cortex_a9_neon_fp_vmul_qqd): Likewise.
6949 (cortex_a9_neon_fp_vmla_ddd): Likewise.
6950 (cortex_a9_neon_fp_vmla_qqq): Likewise.
6951 (cortex_a9_neon_fp_vmla_ddd_scalar): Likewise.
6952 (cortex_a9_neon_fp_vmla_qqq_scalar): Likewise.
6953 (cortex_a9_neon_fp_vrecps_vrsqrts_ddd): Likewise.
6954 (cortex_a9_neon_fp_vrecps_vrsqrts_qqq): Likewise.
6955 (cortex_a9_neon_bp_simple): Likewise.
6956 (cortex_a9_neon_bp_2cycle): Likewise.
6957 (cortex_a9_neon_bp_3cycle): Likewise.
6958 (cortex_a9_neon_ldr): Likewise.
6959 (cortex_a9_neon_str): Likewise.
6960 (cortex_a9_neon_vld1_1_2_regs): Likewise.
6961 (cortex_a9_neon_vld1_3_4_regs): Likewise.
6962 (cortex_a9_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
6963 (cortex_a9_neon_vld2_4_regs): Likewise.
6964 (cortex_a9_neon_vld3_vld4): Likewise.
6965 (cortex_a9_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
6966 (cortex_a9_neon_vst1_3_4_regs): Likewise.
6967 (cortex_a9_neon_vst2_4_regs_vst3_vst4): Likewise.
6968 (cortex_a9_neon_vst3_vst4): Likewise.
6969 (cortex_a9_neon_vld1_vld2_lane): Likewise.
6970 (cortex_a9_neon_vld3_vld4_lane): Likewise.
6971 (cortex_a9_neon_vst1_vst2_lane): Likewise.
6972 (cortex_a9_neon_vst3_vst4_lane): Likewise.
6973 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
6974 (cortex_a9_neon_mcr): Likewise.
6975 (cortex_a9_neon_mcr_2_mcrr): Likewise.
6976 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
6977 (cortex_a9_fps): Likewise.
6978 * config/arm/cortex-m4-fpu.md (cortex_m4_vmov_2): Update for attribute
6979 change.
6980 (cortex_m4_fmuls): Likewise.
6981 * config/arm/cortex-r4f.md (cortex_r4_mcr): Update for attribute
6982 change.
6983 (cortex_r4_mrc): Likewise.
6984 * config/arm/iterators.md: Update comment referring to neon_type.
6985 * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Update for attribute change.
6986 (iwmmxt_movsi_insn): Likewise.
6987 * config/arm/marvell-pj4.md (pj4_vfp_to_core): Update for
6988 attribute change.
6989 (pj4_core_to_vfp): Likewise.
6990 * config/arm/neon-schedgen.ml (emit_insn_reservations): Update for
6991 attribute change.
6992 * config/arm/vfp11.md (vfp_fload): Update for attribute change.
6993 (vfp_fstore): Likewise.
6994 * doc/md.texi: Change references to neon_type to refer to type.
6995
6996 2013-09-04 Dodji Seketeli <dodji@redhat.com>
6997
6998 * tree.h (DECL_BUILT_IN): Fix typo in comment.
6999
7000 2013-09-04 David Edelsohn <dje.gcc@gmail.com>
7001
7002 * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Only emit
7003 lglobl if not weak.
7004
7005 2013-09-04 Easwaran Raman <eraman@google.com>
7006
7007 PR middle-end/57370
7008 * tree-ssa-reassoc.c (get_stmt_uid_with_default): New function,
7009 (build_and_add_sum): Use it.
7010 (appears_later_in_bb): Simplify code.
7011
7012 2013-09-04 Teresa Johnson <tejohnson@google.com>
7013
7014 * dumpfile.c (dump_finish): Don't close stderr/stdout.
7015
7016 2013-09-04 James Greenhalgh <james.greenhalgh@arm.com>
7017
7018 * config/aarch64/arm_neon.h (vaddvq_<su>64): Fix return types.
7019
7020 2013-09-04 Jan Hubicka <jh@suse.cz>
7021
7022 * Makefile.in (ipa-devirt.o): Add dependency on diagnostic.h
7023 * ipa-devirt.c: Include diganostic.h
7024 (odr_type_d): Add types and types_set.
7025 (hash_type_name): Work for types with vtables during LTO.
7026 (odr_hasher::remove): Fix comment; destroy types_set.
7027 (add_type_duplicate): New function,
7028 (get_odr_type): Use it.
7029 (dump_type_inheritance_graph): Dump type duplicates.
7030 * ipa.c (symtab_remove_unreachable_nodes): Build type inheritance
7031 graph.
7032 * tree.c (types_same_for_odr): Give exact answers on types with
7033 virtual tables.
7034
7035 2013-09-04 Dodji Seketeli <dodji@redhat.com>
7036
7037 * tree.h (DECL_BUILT_IN, DECL_IS_BUILTIN): Add more comments
7038 explaining their differences.
7039
7040 2013-09-04 Sandeep Kumar Singh<Sandeep.Singh2@kpitcummins.com>
7041
7042 * config/rx/rx.h: Add option -mcpu for target variants RX100 and RX200.
7043
7044 2013-09-03 Jeff Law <law@redhat.com>
7045
7046 * tree-ssa-threadedge.c (thread_across_edge): Record entire path
7047 when not threading through a joiner block. Pass joiner/no joiner
7048 state to register_jump_thread.
7049 * tree-ssa-threadupdate.c (register_jump_thread): Get joiner/no joiner
7050 state from argument rather than implying on path length.
7051 Dump the entire jump thread path into debugging dump.
7052 * tree-flow.h (register_jump_thread): Update prototype.
7053
7054 2013-08-29 Xinliang David Li <davidxl@google.com>
7055
7056 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
7057 Remove a trivial gcc_assert.
7058
7059 2013-08-29 Xinliang David Li <davidxl@google.com>
7060
7061 * tree-vect-slp.c (destroy_bb_vec_info): Data ref cleanup.
7062 * tree-vect-loop.c (destroy_bb_vec_info): Ditto.
7063 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
7064 Delay base decl alignment adjustment.
7065 * tree-vectorizer.c (vect_destroy_datarefs): New function.
7066 * tree-vectorizer.h: New data structure.
7067 (set_dr_misalignment): New function.
7068 (dr_misalignment): Ditto.
7069 * tree-vect-stmts.c (vectorizable_store): Ensure alignment.
7070 (vectorizable_load): Ditto.
7071 (ensure_base_align): New function.
7072 (vectorize_loops): Add dbg_cnt support.
7073 (execute_vect_slp): Ditto.
7074 * dbgcnt.def: New debug counter.
7075 * Makefile: New dependency.
7076
7077 2013-09-03 Meador Inge <meadori@codesourcery.com>
7078
7079 Revert:
7080
7081 2013-08-30 Meador Inge <meadori@codesourcery.com>
7082
7083 * tree-vrp.c (check_array_ref): Bail out on zero-length arrays.
7084
7085 2013-09-03 David Edelsohn <dje.gcc@gmail.com>
7086
7087 * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Emit lglobl for
7088 function descriptor.
7089
7090 2013-09-03 Richard Biener <rguenther@suse.de>
7091
7092 * tree-affine.c (add_elt_to_tree): Fix association issue,
7093 avoid useless converts and make sure to always return a
7094 properly typed result.
7095
7096 2013-09-03 Richard Biener <rguenther@suse.de>
7097
7098 PR middle-end/57656
7099 * fold-const.c (negate_expr_p): Fix division case.
7100 (negate_expr): Likewise.
7101
7102 2013-09-03 Richard Biener <rguenther@suse.de>
7103
7104 PR lto/58285
7105 * tree-streamer-out.c: Include tm.h.
7106 * Makefile.in (tree-streamer-out.o): Depend on $(TM_H).
7107
7108 2013-09-03 Jan Hubicka <jh@suse.cz>
7109
7110 * tree-profile.c (tree_profiling): Cleanup CFG when done.
7111
7112 2013-09-03 Alan Modra <amodra@gmail.com>
7113
7114 * config.gcc (powerpc*-*-linux*): Add support for little-endian
7115 multilibs to big-endian target and vice versa.
7116 * config/rs6000/t-linux64: Use := assignment on all vars.
7117 (MULTILIB_EXTRA_OPTS): Remove fPIC.
7118 (MULTILIB_OSDIRNAMES): Specify using mapping from multilib_options.
7119 * config/rs6000/t-linux64le: New file.
7120 * config/rs6000/t-linux64bele: New file.
7121 * config/rs6000/t-linux64lebe: New file.
7122
7123 2013-09-02 Jan Hubicka <jh@suse.cz>
7124
7125 * ipa-inline-transform.c (inline_transform): Do not
7126 optimize_inline_calls when not optimizing.
7127
7128 2013-09-02 Jan Hubicka <jh@suse.cz>
7129
7130 * lto-symtab.c (lto_symtab_merge_symbols): Add comments; merge
7131 duplicated nodes for assembler names.
7132 * symtab.c (symtab_unregister_node): Do not attempt to unlink
7133 hard registers from assembler name hash.
7134
7135 2013-09-02 Jan Hubicka <jh@suse.cz>
7136
7137 * ipa-split.c (execute_split_functions): Split externally visible
7138 functions called once.
7139
7140 2013-09-02 Martin Jambor <mjambor@suse.cz>
7141
7142 PR ipa/58106
7143 * ipa-prop.c (ipa_edge_duplication_hook): Always put new rdesc to the
7144 linked list. When finding the correct duplicate, also consider also
7145 the caller in additon to its inlined_to node.
7146
7147 2013-09-02 James Greenhalgh <james.greenhalgh@arm.com>
7148
7149 * config/aarch64/aarch64-simd-builtins.def
7150 (dup_lane_scalar): Remove.
7151 * config/aarch64/aarch64-simd.md
7152 (aarch64_simd_dup): Add 'w->w' alternative.
7153 (aarch64_dup_lane<mode>): Allow for VALL.
7154 (aarch64_dup_lane_scalar<mode>): Remove.
7155 (aarch64_dup_lane_<vswap_width_name><mode>): New.
7156 (aarch64_get_lane_signed<mode>): Add w->w altenative.
7157 (aarch64_get_lane_unsigned<mode>): Likewise.
7158 (aarch64_get_lane<mode>): Likewise.
7159 * config/aarch64/aarch64.c (aarch64_evpc_dup): New.
7160 (aarch64_expand_vec_perm_const_1): Use aarch64_evpc_dup.
7161 * config/aarch64/iterators.md (VSWAP_WIDTH): New.
7162 (VCON): Change container of V2SF.
7163 (vswap_width_name): Likewise.
7164 * config/aarch64/arm_neon.h
7165 (__aarch64_vdup_lane_any): New.
7166 (__aarch64_vdup<q>_lane<q>_<fpsu><8,16,32,64>): Likewise.
7167 (vdup<q>_n_<psuf><8,16,32,64>): Convert to C implementation.
7168 (vdup<q>_lane<q>_<fpsu><8,16,32,64>): Likewise.
7169
7170 2013-09-02 Eric Botcazou <ebotcazou@adacore.com>
7171
7172 PR middle-end/56382
7173 * expr.c (emit_move_complex): Do not move complex FP values as parts if
7174 the source or the destination is a single hard register.
7175
7176 2013-09-02 Richard Biener <rguenther@suse.de>
7177
7178 PR middle-end/57511
7179 * tree-scalar-evolution.c (instantiate_scev_name): Allow
7180 non-linear SCEVs.
7181
7182 2013-09-02 Richard Biener <rguenther@suse.de>
7183
7184 * tree-affine.c (add_elt_to_tree): Avoid converting all pointer
7185 arithmetic to sizetype.
7186
7187 2013-09-02 Bin Cheng <bin.cheng@arm.com>
7188
7189 * tree-ssa-loop-ivopts.c (set_autoinc_for_original_candidates):
7190 Find auto-increment use both before and after candidate.
7191
7192 2013-09-02 Marek Polacek <polacek@redhat.com>
7193
7194 * Makefile.in (ubsan.o): Add $(TM_P_H) dependency.
7195
7196 2013-09-01 Jan Hubicka <jh@suse.cz>
7197
7198 * Makefile.in: Add ipa-profile.o
7199 (ipa.o, ipa-devrit.o, ipa-inline-analysis.o): Adjust dependencies.
7200 * cgraph.c (struct cgraph_propagate_frequency_data,
7201 cgraph_propagate_frequency_1, cgraph_propagate_frequency): Move to
7202 ipa-profile.c; replace cgraph_ by ipa_ prefix.
7203 * cgraph.h (cgraph_propagate_frequency): Remove.
7204 * ipa-inline-analysis.c: Include ipa-utils.h;
7205 drop duplicated cfgloop.h.
7206 (inline_update_callee_summaries): Update.
7207 * ipa-profile.c: New file.
7208 * ipa-utils.h (ipa_propagate_frequency): Declare.
7209 * ipa.c: Do not include pointer-set.h, hash-table.h, lto-streamer.h,
7210 data-streamer.h, value-prof.h.
7211 (symtab_remove_unreachable_nodes): Update profile.
7212 (struct histogram_entry, histogram, histogram_pool, histogram_hash,
7213 account_time_size, cmp_counts, dump_histogram,
7214 ipa_profile_generate_summary, ipa_profile_write_summary,
7215 ipa_profile_read_summary, ipa_profile, gate_ipa_profile,
7216 pass_data_ipa_profile, pass_ipa_profile, make_pass_ipa_profile):
7217 Move to ipa-profile.c.
7218
7219 2013-09-01 John David Anglin <danglin@gcc.gnu.org>
7220
7221 * config/pa/pa.md: Allow "const 0" operand 1 in "scc" insns.
7222
7223 2013-09-01 Jan Hubicka <jh@suse.cz>
7224
7225 * common.opt (fdevirtualize-speculatively): New function.
7226 * invoke.texi (fdevirtualize-speculatively): Document.
7227 * ipa-devirt.c: Include ipa-inline.h
7228 (likely_target_p): New function.
7229 (ipa_devirt): New function.
7230 (gate_ipa_devirt): New function.
7231 (pass_data_ipa_devirt): New static var.
7232 (pass_ipa_devirt): Likewise.
7233 (make_pass_ipa_devirt): New function.
7234 * opts.c (default_options): Add OPT_fdevirtualize_speculatively.
7235 (common_handle_option): Disable devirtualization when
7236 value range profiling is available.
7237 * passes.def (pass_ipa_devirt): Add.
7238 * timever.def (TV_IPA_DEVIRT): New timevar.
7239 * tree-pass.h (make_pass_ipa_devirt):
7240
7241 2013-09-01 Iain Sandoe <iain@codesourcery.com>
7242
7243 * config/darwin.h (LINK_COMMAND_SPEC_A): Revise sanitizer specs to
7244 include sanitize(undefined).
7245
7246 2013-08-31 Diego Novillo <dnovillo@google.com>
7247
7248 * Makefile.in (TREE_CORE_H): Define.
7249 (TREE_H): Use.
7250 (GTFILES): Add tree-core.h.
7251 * builtins.c (built_in_class_names): Use BUILT_IN_LAST to
7252 size the array.
7253 * tree-core.h: New file.
7254 Move all data structures, enum, typedefs, global
7255 declarations and constants from ...
7256 * tree.h: ... here.
7257
7258 2013-08-31 Jan Hubicka <jh@suse.cz>
7259
7260 * bulitins.c (expand_builtin): Do not early exit for gcov
7261 instrumented functions.
7262
7263 2013-08-31 Marek Polacek <polacek@redhat.com>
7264
7265 * ubsan.c: Include tm_p.h.
7266
7267 2013-08-31 Jan Hubicka <jh@suse.cz>
7268
7269 * gimple-streamer-in.c (input_gimple_stmt): Silence parameter unused
7270 warning.
7271
7272 * cgraph.c (cgraph_get_body): Update call of lto_input_function_body.
7273 * gimple-streamer-in.c (input_gimple_stmt): Move sanity check to ...
7274 * tree-cfg.c (verify_gimple_label): ... here.
7275 * ipa-utils.c: Include lto-streamer.h, ipa-inline.h
7276 (ipa_merge_profiles): New function.
7277 * lto-streamer-in.c (lto_read_body): Take node instead of fn_decl.
7278 (lto_input_function_body): Likewise.
7279 * ipa-utils.h (ipa_merge_profiles): Declare.
7280 * lto-streamer.h (lto_input_function_body): Update prototype.
7281 (emit_label_in_global_context_p): Remove.
7282 * lto-symtab.c: Include ipa-utils.h
7283 (lto_cgraph_replace_node): Use ipa_merge_profiles.
7284
7285 2013-08-31 Jan Hubicka <jh@suse.cz>
7286
7287 * cgraph.c (cgraph_speculative_call_info): Fix ref lookup
7288
7289 2013-08-31 Jan Hubicka <jh@suse.cz>
7290
7291 * basic-block.h (apply_scale): Make scale parmeter gcov_type.
7292
7293 2013-08-31 Uros Bizjak <ubizjak@gmail.com>
7294
7295 * config/alpha/alpha.c (alpha_emit_conditional_move): Update
7296 "cmp" RTX before signed_comparison_operator check to account
7297 for "code" changes.
7298
7299 2013-08-30 Jan Hubicka <jh@suse.cz>
7300
7301 * ipa-prop.c (ipa_set_jf_known_type): Check that we add only records.
7302 (detect_type_change_1): Rename to ...
7303 (detect_type_change): ... this one; early return on non-polymorphic
7304 types.
7305 (detect_type_change_ssa): Add comp_type parameter; update
7306 use of detect_type_change.
7307 (compute_complex_assign_jump_func): Add param_type parameter;
7308 update use of detect_type_change_ssa.
7309 (compute_complex_ancestor_jump_func): Likewise.
7310 (ipa_get_callee_param_type): New function.
7311 (ipa_compute_jump_functions_for_edge): Compute parameter type;
7312 update calls to the jump function computation functions.
7313
7314 2013-08-30 Teresa Johnson <tejohnson@google.com>
7315 Steven Bosscher <steven@gcc.gnu.org>
7316
7317 * cfgrtl.c (fixup_new_cold_bb): New routine.
7318 (commit_edge_insertions): Invoke fixup_partitions.
7319 (find_partition_fixes): New routine.
7320 (fixup_partitions): Ditto.
7321 (verify_hot_cold_block_grouping): Update comments.
7322 (rtl_verify_edges): Invoke find_partition_fixes.
7323 (rtl_verify_bb_pointers): Update comments.
7324 (rtl_verify_bb_layout): Ditto.
7325 * basic-block.h (probably_never_executed_edge_p): Declare.
7326 (fixup_partitions): Ditto.
7327 * cfgcleanup.c (try_optimize_cfg): Invoke fixup_partitions.
7328 * bb-reorder.c (sanitize_hot_paths): New function.
7329 (find_rarely_executed_basic_blocks_and_crossing_edges): Invoke
7330 sanitize_hot_paths.
7331 * predict.c (probably_never_executed_edge_p): New routine.
7332 * cfg.c (check_bb_profile): Add partition insanity warnings.
7333
7334 2013-08-30 Meador Inge <meadori@codesourcery.com>
7335
7336 * tree-vrp.c (check_array_ref): Bail out on zero-length arrays.
7337
7338 2013-08-30 Marek Polacek <polacek@redhat.com>
7339
7340 * Makefile.in (ubsan.o): Add.
7341 (c-family/c-ubsan.o): Add.
7342 (builtins.o): Add ubsan.h dependency.
7343 * ubsan.h: New file.
7344 * ubsan.c: New file.
7345 * common.opt: Add -fsanitize=undefined option.
7346 (flag_sanitize): Add variable.
7347 (fsanitize=): Add option. Add Driver.
7348 (fsanitize=thread): Remove option.
7349 (fsanitize=address): Likewise.
7350 (static-libubsan): New option.
7351 * doc/invoke.texi: Document the new flag and -static-libubsan.
7352 * sanitizer.def (DEF_SANITIZER_BUILTIN): Define.
7353 (BUILT_IN_UBSAN_HANDLE_BUILTIN_UNREACHABLE): Define.
7354 * builtin-attrs.def (ATTR_COLD): Define.
7355 (ATTR_COLD_NOTHROW_LEAF_LIST): Define.
7356 * builtins.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW,
7357 BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS): Define.
7358 * flag-types.h (sanitize_code): New enum.
7359 * opts.c (common_handle_option): Parse command line arguments
7360 of -fsanitize=. Add -fsanitize=unreachable option.
7361 * varasm.c (get_variable_section): Adjust.
7362 (assemble_noswitch_variable): Likewise.
7363 (assemble_variable): Likewise.
7364 (output_constant_def_contents): Likewise.
7365 (categorize_decl_for_section): Likewise.
7366 (place_block_symbol): Likewise.
7367 (output_object_block): Likewise.
7368 * builtins.def: Likewise.
7369 * toplev.c (compile_file): Likewise.
7370 (process_options): Likewise.
7371 * cppbuiltin.c: Likewise.
7372 * tsan.c (tsan_pass): Likewise.
7373 (tsan_gate): Likewise.
7374 (tsan_gate_O0): Likewise.
7375 * cfgexpand.c (partition_stack_vars): Likewise.
7376 (expand_stack_vars): Likewise.
7377 (defer_stack_allocation): Likewise.
7378 (expand_used_vars): Likewise.
7379 * cfgcleanup.c (old_insns_match_p): Likewise.
7380 * asan.c (asan_finish_file): Likewise.
7381 (asan_instrument): Likewise.
7382 (gate_asan): Likewise.
7383 (initialize_sanitizer_builtins): Build BT_FN_VOID_PTR_PTR_PTR.
7384 (ATTR_COLD_NOTHROW_LEAF_LIST): Define.
7385 (asan_global_struct): Use pointer_sized_int_node instead
7386 calling build_nonstandard_integer_type.
7387 (initialize_sanitizer_builtins): Likewise.
7388 (asan_finish_file): Likewise.
7389 * gcc.c: Document %{%:function(args):X}.
7390 (static_spec_functions): Add sanitize.
7391 (handle_spec_function): Add retval_nonnull argument and if non-NULL,
7392 store funcval != NULL there.
7393 (do_spec_1): Adjust handle_spec_function caller.
7394 (handle_braces): Allow %:function(args) as condition.
7395 (sanitize_spec_function): New function.
7396 (ADD_STATIC_LIBUBSAN_LIBS): Define.
7397 (LIBUBSAN_SPEC): Likewise.
7398 (LIBUBSAN_EARLY_SPEC): Likewise.
7399 (SANITIZER_SPEC): Handle libubsan.
7400 (SANITIZER_EARLY_SPEC): Likewise.
7401 * config/darwin.h (LINK_COMMAND_SPEC_A): Use %:sanitize(address)
7402 instead of fsanitize=address.
7403 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Use %:sanitize(address)
7404 instead of fsanitize=address*.
7405 * builtins.c: Include ubsan.h.
7406 (fold_builtin_0): Instrument __builtin_unreachable.
7407 * config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Use flag_sanitize
7408 instead of flag_asan.
7409 * tree.h (enum tree_index): Add TI_POINTER_SIZED_TYPE.
7410 (pointer_sized_int_node): Define.
7411 * tree.c (build_common_tree_nodes): Initialize pointer_sized_int_node.
7412
7413 2013-08-30 Mike Stump <mikestump@comcast.net>
7414
7415 * doc/install.texi (Prerequisites): Note regression in Tcl 8.6
7416 with RE patterns.
7417
7418 2013-08-29 Jan Hubicka <jh@suse.cz>
7419
7420 * cgraph.c (cgraph_function_body_availability): Handle weakref
7421 correctly.
7422 * passes.def: Remove pass_fixup_cfg.
7423 * ipa-inline.c (ipa_inline): When not optimizing, do not inline;
7424 track when we need to remove functions.
7425 (gate_ipa_inline): Execute inlining always; add comment why.
7426 (pass_data_ipa_inline): Remove TODO_remove_functions.
7427 * ipa-inline-analysis.c (inline_generate_summary): When not optimizing
7428 do not produce summaries.
7429 * symtab.c (change_decl_assembler_name): Handle renaming of weakrefs.
7430 (symtab_nonoverwritable_alias): Assert we are not called on weakref.
7431 * varpool.c (cgraph_variable_initializer_availability): Fix weakrefs,
7432 constant pool and vtable.
7433
7434 2013-08-30 Tejas Belagod <tejas.belagod@arm.com>
7435
7436 * config/aarch64/arm_neon.h (__AARCH64_UINT64_C, __AARCH64_INT64_C):
7437 New arm_neon.h's internal macros to specify 64-bit constants.
7438 Avoid using stdint.h's macros.
7439
7440 2013-08-30 Joern Rennecke <joern.rennecke@embecosm.com>
7441
7442 * recog.c (verify_changes): Verify that changes[i].old is non-zero
7443 before applying REG_P.
7444
7445 2013-08-30 Jakub Jelinek <jakub@redhat.com>
7446
7447 PR tree-optimization/58277
7448 * tree-ssa-strlen.c (strlen_enter_block): If do_invalidate gave up
7449 after seeing too many stmts with vdef in between dombb and current
7450 bb, invalidate everything.
7451
7452 2013-08-30 Richard Biener <rguenther@suse.de>
7453
7454 * fold-const.c (fold_single_bit_test): Fix overflow test.
7455
7456 2013-08-30 Eric Botcazou <ebotcazou@adacore.com>
7457
7458 * function.c (assign_parm_setup_reg): For a parameter passed by pointer
7459 and which can live in a register, always retrieve the value on entry.
7460 * var-tracking.c (add_stores): Treat the copy on entry for a parameter
7461 passed by invisible reference specially.
7462 (emit_notes_in_bb) <MO_VAL_USE>: Emit notes before the instruction.
7463 (vt_add_function_parameter): Correctly deal with a parameter passed by
7464 invisible reference.
7465
7466 2013-08-30 Jan Hubicka <jh@suse.cz>
7467
7468 * tree.c (set_call_expr_flags): Fix handling of TM_PURE.
7469
7470 2013-08-30 Richard Biener <rguenther@suse.de>
7471
7472 PR tree-optimization/58228
7473 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Do not
7474 allow invariant loads in nested loop vectorization.
7475
7476 2013-08-30 Richard Biener <rguenther@suse.de>
7477
7478 PR tree-optimization/58223
7479 * tree-loop-distribution.c (has_anti_dependence): Rename to ...
7480 (has_anti_or_output_dependence): ... this and adjust to also
7481 look for output dependences.
7482 (mark_nodes_having_upstream_mem_writes): Adjust.
7483 (rdg_flag_uses): Likewise.
7484
7485 2013-08-30 Richard Biener <rguenther@suse.de>
7486
7487 PR tree-optimization/58010
7488 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
7489 assert that we have a loop-closed PHI.
7490
7491 2013-08-29 Jan Hubicka <jh@suse.cz>
7492
7493 * lto-symtab.c (lto_cgraph_replace_node): Free decl_in_state.
7494 * cgraph.c (cgraph_release_function_body): Free decl_in_state.
7495 * lto-section-in.c (lto_free_function_in_decl_state): New function.
7496 (lto_free_function_in_decl_state_for_node): New function.
7497
7498 2013-08-29 Xinliang David Li <davidxl@google.com>
7499
7500 * loop-unroll.c (report_unroll_peel): Minor message change.
7501 * tree-vect-loop-manip.c (vect_do_peeling_for_alignment):
7502 Emit alignment peeling message with default -fopt-info.
7503 (vect_loop_versioning): Emit loop version info message.
7504 * tree-vectorizer.c (vectorize_loops): Minor message change.
7505 (execute_vect_slp): Ditto.
7506
7507 2013-08-29 Eric Botcazou <ebotcazou@adacore.com>
7508
7509 * cgraphclones.c (cgraph_create_virtual_clone): Compute the DECL_NAME
7510 of the clone from the DECL_NAME of the original function.
7511
7512 2013-08-29 Oleg Endo <olegendo@gcc.gnu.org>
7513
7514 * passes.c (register_pass): Add overload.
7515 * tree-pass.h (register_pass): Forward declare it. Add comment.
7516
7517 2013-08-29 Jan Hubicka <jh@suse.cz>
7518
7519 * lto-streamer-out.c (hash_tree): Stream DECL_FINAL_P,
7520 DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P and TYPE_FINAL_P.
7521 * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Stream
7522 DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
7523 (unpack_ts_type_common_value_fields): Stream TYPE_FINAL_P.
7524 * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields):
7525 Add DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
7526 (pack_ts_type_common_value_fields): Add TYPE_FINAL_P.
7527
7528 2013-08-29 Teresa Johnson <tejohnson@google.com>
7529
7530 * dumpfile.c (dump_loc): Output column number.
7531 * dumpfile.h (OPTGROUP_OTHER): Add and enable under OPTGROUP_ALL.
7532 * doc/invoke.texi: Document optall -fopt-info flag.
7533 * profile.c (read_profile_edge_counts): Use new dump framework.
7534 (compute_branch_probabilities): Ditto.
7535 * passes.c (pass_manager::register_one_dump_file): Use OPTGROUP_OTHER
7536 when pass not in any opt group.
7537 * pass_manager.h (pass_manager::get_pass_profile): New method.
7538 * value-prof.c (check_counter): Use new dump framework.
7539 (check_ic_target): Ditto.
7540 * coverage.c (get_coverage_counts): Ditto.
7541 (coverage_init): Setup new dump framework.
7542
7543 2013-08-29 Richard Biener <rguenther@suse.de>
7544
7545 PR tree-optimization/58246
7546 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Properly
7547 handle the dominance check inside a basic-block.
7548
7549 2013-08-29 Richard Biener <rguenther@suse.de>
7550
7551 PR middle-end/57287
7552 * tree-ssa-copy.c (may_propagate_copy): Allow propagating
7553 of default defs that appear in abnormal PHI nodes.
7554
7555 2013-08-29 Richard Biener <rguenther@suse.de>
7556
7557 PR tree-optimization/57685
7558 * tree-vrp.c (register_edge_assert_for_1): Recurse only for
7559 single-use operands to avoid exponential complexity.
7560
7561 2013-08-28 Dehao Chen <dehao@google.com>
7562
7563 * ipa-inline.c (edge_badness): Fix integer underflow.
7564
7565 2013-08-28 Uros Bizjak <ubizjak@gmail.com>
7566
7567 * gtm-builtins.def (_ITM_free): Declare leaf.
7568
7569 2013-08-28 Jakub Jelinek <jakub@redhat.com>
7570
7571 PR target/58067
7572 * config/i386/i386.md (*tls_global_dynamic_64_largepic): New insn.
7573 (*tls_local_dynamic_base_64_largepic): Likewise.
7574 (tls_global_dynamic_64_<mode>, tls_local_dynamic_base_64_<mode>):
7575 Remove predicate from call operand.
7576 * config/i386/i386.c (ix86_tls_get_addr): For -mcmodel=large -fpic
7577 return sum of pic_offset_table_rtx and UNSPEC_PLTOFF of the symbol.
7578
7579 2013-08-28 Jeff Law <law@redhat.com>
7580
7581 * tree-ssa-threadedge.c (thread_around_empty_block): Remove
7582 checks for the number of predecessors and successors allowed.
7583 * tree-ssa-threadupdate.c (mark_threaded_blocks): Ignore requests
7584 which require copying a joiner block if there is a request which
7585 is a subpath that requires no joiner block copying.
7586
7587 2013-08-28 Jan Hubicka <jh@suse.cz>
7588
7589 * lto-streamer-out.c (DFS_write_tree_body): Drop
7590 BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX and BINFO_VPTR_INDEX.
7591 (hash_tree): Do not hash DECL_DEFER_OUTPUT, BINFO_INHERITANCE_CHAIN,
7592 BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, DECL_IN_TEXT_SECTION.
7593 * tree-streamer-in.c (unpack_ts_decl_common_value_fields):
7594 Do not read DECL_ERROR_ISSUED.
7595 (unpack_ts_decl_with_vis_value_fields): Do not read
7596 DECL_DEFER_OUTPUT.
7597 (lto_input_ts_binfo_tree_pointers): Do not read
7598 BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX
7599 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Do not
7600 write DECL_ERROR_ISSUED..
7601 (pack_ts_decl_with_vis_value_fields): Do not write
7602 DECL_DEFER_OUTPUT.
7603 (write_ts_binfo_tree_pointers): Do not read BINFO_INHERITANCE_CHAIN,
7604 BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX.
7605 * print-tree.c (print_node): Do not print DECL_ERROR_ISSUED.
7606 * tree.h (tree_decl_common): Update comment.
7607 (DECL_ERROR_ISSUED): Remove.
7608
7609 2013-08-28 Jakub Jelinek <jakub@redhat.com>
7610
7611 PR middle-end/58257
7612 * omp-low.c (copy_var_decl): Copy over TREE_NO_WARNING flag.
7613
7614 2013-08-28 Jan Hubicka <jh@suse.cz>
7615
7616 * builtins.def (free): Declare leaf.
7617
7618 2013-08-27 David Malcolm <dmalcolm@redhat.com>
7619
7620 * gdbhooks.py: New.
7621 * configure.ac (gdbinit.in): Add import of gcc/gdbhooks.py.
7622 * configure: Regenerate.
7623
7624 2013-08-27 Martin Jambor <mjambor@suse.cz>
7625
7626 * ipa-prop.h (ipa_pass_through_data): New field type_preserved.
7627 (ipa_ancestor_jf_data): Likewise.
7628 (ipa_get_jf_pass_through_agg_preserved): Fix comment typo.
7629 (ipa_get_jf_pass_through_type_preserved): New function.
7630 (ipa_get_jf_ancestor_agg_preserved): Fix comment typo.
7631 (ipa_get_jf_ancestor_type_preserved): New function.
7632 * ipa-cp.c (ipa_get_jf_pass_through_result): Honor type_preserved flag.
7633 (ipa_get_jf_ancestor_result): Likewise.
7634 (propagate_vals_accross_pass_through): Use
7635 ipa_get_jf_pass_through_result to do all the value mappings.
7636 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Dump the
7637 type_preserved flag.
7638 (ipa_set_jf_cst_copy): New function.
7639 (ipa_set_jf_simple_pass_through): Set the type_preserved flag.
7640 (ipa_set_jf_arith_pass_through): Likewise.
7641 (ipa_set_ancestor_jf): Likewise.
7642 (compute_complex_assign_jump_func): Set type_preserved instead of
7643 punting.
7644 (ipa_compute_jump_functions_for_edge): Likewise.
7645 (combine_known_type_and_ancestor_jfs): Honor type_preserved.
7646 (update_jump_functions_after_inlining): Update type_preserved.
7647 Explicitely create jump functions when combining one with pass_through.
7648 (ipa_write_jump_function): Stream the type_preserved flags.
7649 (ipa_read_jump_function): Likewise.
7650
7651 2013-08-27 Jakub Jelinek <jakub@redhat.com>
7652 Aldy Hernandez <aldyh@redhat.com>
7653
7654 * Makefile.in (omp-low.o): Depend on $(TARGET_H).
7655 * cfgloop.h (struct loop): Add safelen, force_vect, simduid.
7656 * function.h (struct function): Add has_force_vect_loops and
7657 has_simduid_loops.
7658 * gimple-pretty-print.c (dump_gimple_omp_for): Handle GF_OMP_FOR_KIND*.
7659 * gimple.c (gimple_build_omp_critical): Add KIND argument and
7660 handle it.
7661 * gimple.def: Update CLAUSES comments.
7662 * gimple.h (enum gf_mask): Add GF_OMP_FOR_KIND_{FOR,SIMD}.
7663 (gimple_build_omp_for): Add argument to prototype.
7664 (gimple_omp_for_kind): New.
7665 (gimple_omp_for_set_kind): New.
7666 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_LINEAR to
7667 GOVD_DATA_SHARE_CLASS.
7668 (enum omp_region_type): Add ORT_SIMD.
7669 (gimple_add_tmp_var): Handle ORT_SIMD.
7670 (gimplify_var_or_parm_decl): Same.
7671 (is_gimple_stmt): Same.
7672 (omp_firstprivatize_variable): Same.
7673 (omp_add_variable): Only use splay_tree_insert if lookup failed.
7674 (omp_notice_variable): Handle ORT_SIMD.
7675 (omp_is_private): Add SIMD argument and handle it as well as ORT_SIMD.
7676 (omp_check_private): Handle ORT_SIMD.
7677 (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_LINEAR and
7678 OMP_CLAUSE_SAFELEN.
7679 (gimplify_adjust_omp_clauses_1): Handle GOVD_LINEAR.
7680 Handle OMP_CLAUSE_LASTPRIVATE.
7681 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_LINEAR and
7682 OMP_CLAUSE_SAFELEN.
7683 (gimplify_omp_for): Handle OMP_SIMD and OMP_CLAUSE_LINEAR.
7684 (gimplify_expr): Handle OMP_SIMD.
7685 * internal-fn.c (expand_GOMP_SIMD_LANE): New.
7686 (expand_GOMP_SIMD_VF): New.
7687 (expand_GOMP_SIMD_LAST_LANE): New.
7688 * internal-fn.def (GOMP_SIMD_LANE): New.
7689 (GOMP_SIMD_VF): New.
7690 (GOMP_SIMD_LAST_LANE): New.
7691 * omp-low.c: Include target.h.
7692 (extract_omp_for_data): Handle OMP_SIMD, OMP_CLAUSE_LINEAR,
7693 OMP_CLAUSE_SAFELEN.
7694 (check_omp_nesting_restrictions): Same.
7695 (omp_max_vf): New.
7696 (lower_rec_simd_input_clauses): New.
7697 (lower_rec_input_clauses): Handle OMP_SIMD, GF_OMP_FOR_KIND_SIMD,
7698 OMP_CLAUSE_LINEAR.
7699 (lower_lastprivate_clauses): Handle OMP_CLAUSE_LINEAR,
7700 GF_OMP_FOR_KIND_SIMD, OMP_SIMD.
7701 (expand_omp_build_assign): New.
7702 (expand_omp_for_init_counts): New.
7703 (expand_omp_for_init_vars): New.
7704 (extract_omp_for_update_vars): New.
7705 (expand_omp_for_generic): Use expand_omp_for_{init,update}_vars
7706 and rewrite accordingly.
7707 (expand_omp_simd): New.
7708 (expand_omp_for): Use expand_omp_simd.
7709 (lower_omp_for_lastprivate): Unshare vinit when appropriate.
7710 (lower_omp_for): Do not lower the body.
7711 * tree-data-ref (get_references_in_stmt): Allow IFN_GOMP_SIMD_LANE
7712 in their own loops.
7713 * tree-flow.h (find_omp_clause): Remove prototype.
7714 * tree-if-conv.c (main_tree_if_conversion): Run if doing if conversion,
7715 forcing vectorization of the loop, or if flag_tree_vectorize.
7716 (gate_tree_if_conversion): Similarly.
7717 * tree-inline.c (remap_gimple_stmt): Pass for kind argument to
7718 gimple_build_omp_for.
7719 (copy_cfg_body): set has_force_vect_loops and has_simduid_loops.
7720 * tree-parloops (create_parallel_loop): Pass kind argument to
7721 gimple_build_omp_for.
7722 * tree-pretty-print.c (dump_omp_clause): Add cases for
7723 OMP_CLAUSE_UNIFORM, OMP_CLAUSE_LINEAR, OMP_CLAUSE_SAFELEN,
7724 OMP_CLAUSE__SIMDUID_.
7725 (dump_generic_node): Handle OMP_SIMD.
7726 * tree-ssa-ccp.c (likely_value): Handle IFN_GOMP_SIMD*.
7727 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Do not
7728 unroll OMP_SIMD loops here.
7729 * tree-ssa-loop.c (gate_tree_vectorize): Run if has_force_vect_loops.
7730 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Handle
7731 loop->safelen.
7732 (vect_analyze_data_refs): Handle simd loops.
7733 * tree-vect-loop.c (vectorizable_live_operation): Handle
7734 IFN_GOMP_SIMD*.
7735 * tree-vect-stmts.c (vectorizable_call): Handle IFN_GOMP_SIMD_LANE.
7736 (vectorizable_store): Handle STMT_VINFO_SIMD_LANE_ACCESS_P.
7737 (vectorizable_load): Same.
7738 * tree-vectorizer.c: Include hash-table.h and tree-ssa-propagate.h.
7739 (struct simduid_to_vf): New.
7740 (simduid_to_vf::hash): New.
7741 (simduid_to-vf::equal): New.
7742 (struct simd_array_to_simduid): New.
7743 (simd_array_to_simduid::hash): New.
7744 (simd_array_to_simduid::equal): New.
7745 (adjust_simduid_builtins): New.
7746 (struct note_simd_array_uses_struct): New.
7747 (note_simd_array_uses_cb): New.
7748 (note_simd_array_uses): New.
7749 (vectorize_loops): Handle simd hints and adjust simd builtins
7750 accordingly.
7751 * tree-vectorizer.h (struct _stmt_vec_info): Add
7752 simd_lane_access_p field.
7753 (STMT_VINFO_SIMD_LANE_ACCESS_P): New macro.
7754 * tree.c (omp_clause_num_ops): Add entries for OMP_CLAUSE_LINEAR,
7755 OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_UNIFORM.
7756 (omp_clause_code_name): Same.
7757 (walk_tree_1): Handle OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN,
7758 OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_LINEAR.
7759 * tree.def (OMP_SIMD): New entry.
7760 * tree.h (enum omp_clause_code): Add entries for OMP_CLAUSE_LINEAR,
7761 OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_.
7762 (OMP_CLAUSE_DECL): Adjust range for new clauses.
7763 (OMP_CLAUSE_LINEAR_NO_COPYIN): New.
7764 (OMP_CLAUSE_LINEAR_NO_COPYOUT): New.
7765 (OMP_CLAUSE_LINEAR_STEP): New.
7766 (OMP_CLAUSE_SAFELEN_EXPR): New.
7767 (OMP_CLAUSE__SIMDUID__DECL): New.
7768 (find_omp_clause): New prototype.
7769
7770 2013-08-27 H.J. Lu <hongjiu.lu@intel.com>
7771
7772 * config/i386/driver-i386.c (host_detect_local_cpu): Update
7773 Haswell processor detection.
7774
7775 2013-08-27 Christian Widmer <shadow@umbrox.de>
7776
7777 PR target/57927
7778 * config/i386/driver-i386.c (host_detect_local_cpu): Add detection
7779 of Ivy Bridge and Haswell processors. Assume core-avx2 for unknown
7780 AVX2 capable processors.
7781
7782 2013-08-27 Tejas Belagod <tejas.belagod@arm.com>
7783
7784 * config/aarch64/arm_neon.h: Replace all inline asm implementations
7785 of vget_low_* with implementations in terms of other intrinsics.
7786
7787 2013-08-27 Marc Glisse <marc.glisse@inria.fr>
7788
7789 PR middle-end/57219
7790 * doc/extend.texi (__builtin_isinf_sign): Restrict the return
7791 values to -1, 0 and 1.
7792
7793 2013-08-27 Vidya Praveen <vidyapraveen@arm.com>
7794
7795 * config/aarch64/aarch64.md (unspec): Add UNSPEC_SISD_SSHL,
7796 UNSPEC_SISD_USHL, UNSPEC_USHL_2S, UNSPEC_SSHL_2S, UNSPEC_SISD_NEG.
7797 (<optab><mode>3_insn): Remove.
7798 (aarch64_ashl_sisd_or_int_<mode>3): New Pattern.
7799 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
7800 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
7801 (define_split for aarch64_lshr_sisd_or_int_di3): Likewise.
7802 (define_split for aarch64_lshr_sisd_or_int_si3): Likewise.
7803 (define_split for aarch64_ashr_sisd_or_int_di3): Likewise.
7804 (define_split for aarch64_ashr_sisd_or_int_si3): Likewise.
7805 (aarch64_sisd_ushl, aarch64_sisd_sshl): Likewise.
7806 (aarch64_ushl_2s, aarch64_sshl_2s, aarch64_sisd_neg_qi): Likewise.
7807 (ror<mode>3_insn): Likewise.
7808 * config/aarch64/predicates.md (aarch64_simd_register): New.
7809
7810 2013-08-27 Richard Biener <rguenther@suse.de>
7811
7812 PR tree-optimization/57521
7813 * tree-if-conv.c (if_convertible_bb_p): Verify that at least
7814 one edge is non-critical.
7815 (find_phi_replacement_condition): Make sure to use a non-critical
7816 edge. Cleanup and remove old bug workarounds.
7817 (bb_postdominates_preds): Remove.
7818 (if_convertible_loop_p_1): Do not compute post-dominators.
7819 (combine_blocks): Do not free post-dominators.
7820 (main_tree_if_conversion): Likewise.
7821 (pass_data_if_conversion): Add TODO_verify_ssa.
7822
7823 2013-08-27 DJ Delorie <dj@redhat.com>
7824
7825 * config/i386/djgpp.h (ASM_DECLARE_FUNCTION_NAME): New.
7826
7827 2013-08-27 Yufeng Zhang <yufeng.zhang@arm.com>
7828
7829 * function.c (assign_parm_find_data_types): Set passed_mode and
7830 nominal_mode to the TYPE_MODE of nominal_type for the built
7831 pointer type in case of the struct-pass-by-reference.
7832
7833 2013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
7834
7835 * config/avr/avr-stdint.h (INT16_TYPE): Change default to "int".
7836 (UINT16_TYPE): Change default to "unsigned int".
7837
7838 * config/avr/avr.opt (mfract-convert-truncate): New option.
7839 * config/avr/avr.c (avr_out_fract): Unless TARGET_FRACT_CONV_TRUNC
7840 is set, round negative fractional integers according to n1169
7841 when converting to integer types.
7842
7843 2013-08-26 Jan Hubicka <jh@suse.cz>
7844
7845 * cgraph.c (cgraph_propagate_frequency): Do not assume that virtual
7846 methods can not be called indirectly when their address is not taken.
7847
7848 2013-08-26 Jan Hubicka <jh@suse.cz>
7849
7850 * gimple-fold.c (gimple_get_virt_method_for_binfo): Use
7851 ctor_for_folding.
7852
7853 2013-08-26 Jan Hubicka <jh@suse.cz>
7854
7855 * ipa.c (comdat_can_be_unshared_p_1): C++ constructors and destructors
7856 can be unshared.
7857
7858 2013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
7859
7860 * reload.c (find_valid_class): Allow classes that do not include
7861 FIRST_PSEUDO_REGISTER - 1.
7862
7863 2013-08-26 Jan Hubicka <jh@suse.cz>
7864
7865 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix formatting;
7866 fix edge count/frequency when speculation failed; fix type check
7867 for the direct call.
7868
7869 2013-08-26 Jan Hubicka <jh@suse.cz>
7870
7871 * ipa-prop.c (ipa_print_node_params): Do not ICE during WPA.
7872
7873 2013-08-26 Jan Hubicka <jh@suse.cz>
7874
7875 * ipa-inline-transform.c (inline_transform): Be ready for basic block
7876 to be changed by edge redirection.
7877
7878 2013-08-26 Jan Hubicka <jh@suse.cz>
7879
7880 * cgraph.c (cgraph_speculative_call_info): Fix parameter order and
7881 formating; add sanity check.
7882 (cgraph_resolve_speculation): Add FIXME about scaling profiles.
7883 (cgraph_redirect_edge_call_stmt_to_callee): Fix ICE in debug dump.
7884 * ipa-inline.c (heap_edge_removal_hook): Reset node growth cache.
7885 (resolve_noninline_speculation): Update callee keys, too.
7886
7887 2013-08-26 Jan Hubicka <jh@suse.cz>
7888
7889 * tree.h (tree_decl_with_vis): Add cxx_constructor, cxx_destructor.
7890 (DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P): New macros.
7891
7892 2013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
7893
7894 * config/i386/i386.c (x86_64_elf_select_section): Put ATTRIBUTE_UNUSED
7895 into proper place.
7896
7897 2013-08-26 Uros Bizjak <ubizjak@gmail.com>
7898
7899 * config/i386/i386.c (ix86_debug_options): Remove prototype.
7900 (x86_64_elf_select_section): Ditto.
7901 (ix86_handle_tm_regparm_attribute): Remove ATTRIBUTE_UNUSED on used
7902 arguments.
7903 (ix86_pass_by_reference): Ditto.
7904 (output_set_got): Ditto.
7905 (ix86_unary_operator_ok): Ditto.
7906 (ix86_expand_builtin): Ditto.
7907
7908 2013-08-23 Jan Hubicka <jh@suse.cz>
7909
7910 * cgraph.c (cgraph_turn_edge_to_speculative): Fix debug output.
7911
7912 2013-08-23 Jan Hubicka <jh@suse.cz>
7913
7914 * tree.h (TYPE_FINAL_P, DECL_FINAL_P): New macros.
7915 (tree_decl_with_vis): Add FINAL field.
7916
7917 2013-08-23 Jeff Law <law@redhat.com>
7918
7919 * tree-ssa-pre.c (do_regular_insertion): Include the expression in
7920 the debugging dump when the expression is fully redundant.
7921
7922 2013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
7923
7924 * diagnostic.c (diagnostic_set_caret_max_width): Use pp_buffer.
7925 * gimple-pretty-print.c (gimple_dump_bb_buff): Likewise.
7926 * pretty-print.c (pp_formatted_text_data): Likewise.
7927 (pp_write_text_to_stream): Likewise.
7928 (pp_write_text_as_dot_label_to_stream): Likewise.
7929 (pp_append_r): Likewise.
7930 (pp_format): Likewise.
7931 (pp_flush): Likewise.
7932 (pp_clear_output_area): Likewise.
7933 (pp_append_text): Likewise.
7934 (pp_formatted_text): Likewise.
7935 (pp_remaining_character_count_for_line): Likewise.
7936 (pp_newline): Likewise.
7937 (pp_character): Likewise.
7938 (output_buffer::~output_buffer): Define.
7939 (pretty_printer::~pretty_printer): Destruct output buffer.
7940 * pretty-print.h (output_buffer::~output_buffer): Declare.
7941 (pretty_printer::~pretty_printer): Declare virtual.
7942
7943 2013-08-24 Marc Glisse <marc.glisse@inria.fr>
7944
7945 PR other/57324
7946 * hwint.h (HOST_WIDE_INT_UC, HOST_WIDE_INT_1U, HOST_WIDE_INT_M1,
7947 HOST_WIDE_INT_M1U): New macros.
7948 * fold-const.c (sign_bit_p, build_range_check, fold_unary_loc,
7949 fold_binary_loc, fold_ternary_loc): Use the new macros. Use an
7950 unsigned -1 for lshift.
7951 * cse.c (cse_insn): Likewise.
7952 * double-int.c (rshift_double, lshift_double): Likewise.
7953 * builtins.c (fold_builtin_bitop): Likewise.
7954 * combine.c (force_to_mode): Likewise.
7955 * tree.c (integer_pow2p, tree_log2, tree_floor_log2): Likewise.
7956 * simplify-rtx.c (simplify_const_unary_operation,
7957 simplify_const_binary_operation): Likewise.
7958 * tree-stdarg.c (va_list_counter_bump, va_list_ptr_read,
7959 check_va_list_escapes): Likewise.
7960 * rtlanal.c (nonzero_bits1): Likewise.
7961 * expmed.c (expand_smod_pow2): Likewise.
7962 * tree-ssa-structalias.c (UNKNOWN_OFFSET): Use HOST_WIDE_INT_MIN.
7963
7964 2013-08-23 Jan Hubicka <jh@suse.cz>
7965
7966 * cgraph.c (cgraph_turn_edge_to_speculative): Mark target node
7967 as having address taken.
7968
7969 2013-08-23 Jan Hubicka <jh@suse.cz>
7970
7971 * ipa-utils.h (method_class_type): Declare.
7972 * ipa-devirt.c (method_class_type): Export.
7973
7974 * cgraphunit.c (analyze_functions): Do basic devirtualization;
7975 do not walk base classes of anonymous types.
7976
7977 2013-08-23 Kaz Kojima <kkojima@gcc.gnu.org>
7978
7979 PR rtl-optimization/58220
7980 PR regression/58221
7981 * final.c (reemit_insn_block_notes): Use NEXT_INSN to
7982 handle SEQUENCE insns properly.
7983
7984 2013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
7985
7986 * pretty-print.h (pp_newline_and_flush): Declare. Remove macro
7987 definition.
7988 (pp_newline_and_indent): Likewise.
7989 (pp_separate_with): Likewise.
7990 * pretty-print.c (pp_newline_and_flush): Define.
7991 (pp_newline_and_indent): Likewise.
7992 (pp_separate_with): Likewise.
7993
7994 2013-08-23 Jakub Jelinek <jakub@redhat.com>
7995
7996 PR target/58218
7997 * config/i386/x86-64.h (TARGET_SECTION_TYPE_FLAGS): Define.
7998 * config/i386/i386.c (x86_64_elf_section_type_flags): New function.
7999
8000 2013-08-23 Kirill Yukhin <kirill.yukhin@intel.com>
8001
8002 * config/i386/predicates.md (ext_sse_reg_operand): New.
8003 * config/i386/i386.md (*movti_internal): Use
8004 predicate to determine if EVEX is needed.
8005 (*movsi_internal): Ditto.
8006 (*movdf_internal): Ditto.
8007 (*movsf_internal): Ditto.
8008 * config/i386/mmx.md (*mov<mode>_internal): Ditto.
8009
8010 2013-08-23 Jakub Jelinek <jakub@redhat.com>
8011
8012 PR tree-optimization/58209
8013 * tree-tailcall.c (process_assignment): Handle POINTER_PLUS_EXPR.
8014 (find_tail_calls): Give up for pointer result types if m is non-NULL.
8015 (adjust_return_value_with_ops): For PLUS_EXPR and pointer result type
8016 emit POINTER_PLUS_EXPR.
8017 (create_tailcall_accumulator): For pointer result type accumulate in
8018 sizetype type.
8019
8020 2013-08-22 Paolo Carlini <paolo.carlini@oracle.com>
8021
8022 * configure.ac: Add backslashes missing from the last change.
8023 * configure: Regenerate.
8024
8025 2013-08-22 Jan Hubicka <jh@susue.cz>
8026
8027 * ipa.c (function_and_variable_visibility): First remember function
8028 was global and then make it local.
8029
8030 2013-08-22 Julian Brown <julian@codesourcery.com>
8031
8032 * configure.ac: Add aarch64 to list of arches which use "nop" in
8033 debug_line test.
8034 * configure: Regenerate.
8035
8036 2013-08-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8037
8038 * config/s390/linux.h (TARGET_LIBC_HAS_FUNCTION): Define as
8039 gnu_libc_has_function.
8040 * config/s390/tpf.h: Likewise.
8041
8042 2013-08-22 Jan Hubicka <jh@susue.cz>
8043
8044 * timevar.c (validate_phases): Add cast.
8045
8046 2013-08-22 Jan Hubicka <jh@susue.cz>
8047
8048 * timevar.c (validate_phases): Use size_t for memory.
8049 * timevar.h (struct timevar_time_def): Use size_t for ggc_mem.
8050
8051 2013-08-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
8052
8053 * pretty-print.h (output_buffer::output_buffer): Declare.
8054 (pretty_printer::pretty_printer): Likewise.
8055 (pp_construct): Remove.
8056 * pretty-print.c (output_buffer::output_buffer): Define.
8057 (pretty_printer::pretty_printer): Rename from pp_construct. Simplify.
8058 * gimple-pretty-print.c (print_gimple_stmt): Do not call pp_construct.
8059 (print_gimple_expr): Likewise.
8060 (print_gimple_seq): Likewise.
8061 (gimple_dump_bb): Likewise.
8062 * sched-vis.c (dump_value_slim): Likewise.
8063 (dump_insn_slim): Likewise.
8064 (dump_rtl_slim): Likewise.
8065 (str_pattern_slim): Likewise.
8066 * tree-mudflap.c (mf_varname_tree): Likewise.
8067 * graph.c (print_graph_cfg): Likewise.
8068 (start_graph_dump): Likewise.
8069 * tree-pretty-print.c (maybe_init_pretty_print): Likewise. Use
8070 placement-new.
8071 * diagnostic.c (diagnostic_initialize): Simplify early diagnostic
8072 pretty printer initialization.
8073 * coretypes.h (diagnostic_context): Remove superflous type alias
8074 declaration.
8075 (pretty_printer): Likewise. Declare directly as a class.
8076 (pretty_print_info): Remove declaration as class.
8077 * asan.c (asan_emit_stack_protection): Remove call to pp_construct
8078 and pp_clear_output_area.
8079 (asan_add_global): Likewise.
8080
8081 2013-08-22 Jan Hubicka <jh@suse.cz>
8082
8083 * cgraphunit.c (analyze_functions) Use update_type_inheritance_graph.
8084 * ipa-utils.h (update_type_inheritance_graph): Declare.
8085 (possible_polymorphic_call_target_p): Declare.
8086 (possible_polymorphic_call_target_p): New.
8087 * ipa-devirt.c: Update toplevel comments.
8088 (cached_polymorphic_call_targets): Move up.
8089 (odr_type_d): Move ID down.
8090 (polymorphic_type_binfo_p): Update comment.
8091 (odr_hasher::remove): Likewise;
8092 (get_odr_type): Set anonymous_namespace.
8093 (dump_odr_type): Dump it.
8094 (dump_type_inheritance_graph): Do not ICE when there are no ODR types.
8095 (maybe_record_node): Record node in cached_polymorphic_call_targets.
8096 (record_binfo): Add comment.
8097 (free_polymorphic_call_targets_hash): Do not ICE when cache is not
8098 built.
8099 (devirt_node_removal_hook): Do not iCE when cache is freed.
8100 (possible_polymorphic_call_target_p): New predicate.
8101 (update_type_inheritance_graph): New function.
8102
8103 2013-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
8104 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
8105 Sergey Lega <sergey.s.lega@intel.com>
8106 Anna Tikhonova <anna.tikhonova@intel.com>
8107 Ilya Tocar <ilya.tocar@intel.com>
8108 Andrey Turetskiy <andrey.turetskiy@intel.com>
8109 Ilya Verbin <ilya.verbin@intel.com>
8110 Kirill Yukhin <kirill.yukhin@intel.com>
8111 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
8112
8113 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512F_SET): New.
8114 (OPTION_MASK_ISA_AVX512CD_SET): Ditto.
8115 (OPTION_MASK_ISA_AVX512PF_SET): Ditto.
8116 (OPTION_MASK_ISA_AVX512ER_SET): Ditto.
8117 (OPTION_MASK_ISA_AVX2_UNSET): Update.
8118 (OPTION_MASK_ISA_AVX512F_UNSET): New.
8119 (OPTION_MASK_ISA_AVX512CD_UNSET): Ditto.
8120 (OPTION_MASK_ISA_AVX512PF_UNSET): Ditto.
8121 (OPTION_MASK_ISA_AVX512ER_UNSET): Ditto.
8122 (ix86_handle_option): Handle OPT_mavx512f, OPT_mavx512cd,
8123 OPT_mavx512pf, OPT_mavx512er cases.
8124 * config/i386/constraints.md (v): New constraint.
8125 (Yi, Yj): Replace SSE_REGS with ALL_SSE_REGS.
8126 * config/i386/cpuid.h (bit_AVX512F, bit_AVX512PF, bit_AVX512ER)
8127 (bit_AVX512CD): New.
8128 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
8129 AVX512F, AVX512ER, AVX512PF, AVX512CD features.
8130 * config/i386/i386-c.c (ix86_target_macros_internal):
8131 Conditionally define __AVX512F__, __AVX512ER__, __AVX512CD__,
8132 __AVX512PF__.
8133 * config/i386/i386-modes.def (VECTOR_MODES (INT, 128))
8134 (VECTOR_MODES (FLOAT, 128), INT_MODE (XI, 64)): New modes.
8135 * config/i386/i386.c (regclass_map, dbx_register_map)
8136 (dbx64_register_map, svr4_dbx_register_map): Add new SSE registers.
8137 (gate_insert_vzeroupper): Disable vzeroupper for TARGET_AVX512F.
8138 (ix86_target_string): Define -mavx512f, -mavx512er, -mavx512cd,
8139 -mavx512pf options.
8140 (ix86_option_override_internal): Define PTA_AVX512F, PTA_AVX512ER,
8141 PTA_AVX512PF, PTA_AVX512CD. Handle -mavx512f, -mavx512er, -mavx512cd,
8142 -mavx512pf options. Fix formatting.
8143 (ix86_conditional_register_usage): Squash EXT_REX_SSE_REGs for 32-bit
8144 targets. Squash EVEX_SSE_REGS if AVX512F is disabled.
8145 (ix86_valid_target_attribute_inner_p): Handle -mavx512f, -mavx512er,
8146 -mavx512cd, -mavx512pf options.
8147 (standard_sse_constant_opcode): Add vpternlogd for 512-bit modes.
8148 (print_reg, ix86_print_operand): Handle 'g' to output 512-bit operands.
8149 (ix86_preferred_output_reload_class): Replace SSE_REGS with
8150 ALL_SSE_REGS.
8151 (ix86_hard_regno_mode_ok): Support 512-bit registers.
8152 (ix86_set_reg_reg_cost): Ditto.
8153 (x86_order_regs_for_local_alloc): Ditto.
8154 (MAX_VECT_LEN): Extend to 64-byte.
8155 (ix86_spill_class): Replace SSE_REGS with ALL_SSE_REGS.
8156 * config/i386/i386.h (TARGET_AVX512F, TARGET_AVX512PF)
8157 (TARGET_AVX512ER, TARGET_AVX512CD): New.
8158 (BIGGEST_ALIGNMENT): Extend to 512-bits.
8159 (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS): Add new registers.
8160 (CALL_USED_REGISTERS, REG_ALLOC_ORDER): Likewise.
8161 (VALID_AVX512F_SCALAR_MODE, VALID_AVX512F_REG_MODE): New.
8162 (SSE_REG_MODE_P): Support new modes.
8163 (FIRST_MMX_REG, FIRST_REX_INT_REG, FIRST_REX_SSE_REG): Add comments.
8164 (FIRST_EXT_REX_SSE_REG, LAST_EXT_REX_SSE_REG): New.
8165 (reg_class, REG_CLASS_NAMES): Add EVEX_SSE_REGS, ALL_SSE_REGS.
8166 (SSE_CLASS_P, MAYBE_SSE_CLASS_P): Replace SSE_REGS with ALL_SSE_REGS.
8167 (REG_CLASS_CONTENTS): Add new registers.
8168 (SSE_REGNO_P, SSE_REGNO, HARD_REGNO_RENAME_OK): Support new registers.
8169 (EXT_REX_SSE_REGNO_P): New.
8170 (HI_REGISTER_NAMES): Add new registers.
8171 * config/i386/i386.md: Define constants for new registers.
8172 (mode): Add new 512-bit modes.
8173 (prefix): Support evex prefix.
8174 (isa): Support avx512f, noavx512f, fma_avx512f.
8175 (ssemodesuffix): Add new 512-bit modes.
8176 (movxi): New.
8177 (*movxi_internal_avx512f): Ditto.
8178 (*movdi_internal): Replace constraint "x" with the new constraint "v".
8179 Support MODE_XI.
8180 (*movsi_internal): Likewise.
8181 (*movdf_internal): Likewise.
8182 (*movsf_internal): Likewise.
8183 (*fop_<mode>_comm_sse): Replace constraint "x" with new constraint "v".
8184 (<code><mode>3): Likewise.
8185 * config/i386/i386.opt (mavx512f, mavx512pf, mavx512er, mavx512cd):
8186 New.
8187 * config/i386/mmx.md (*mov<mode>_internal): Replace constraint "x"
8188 with the new constraint "v".
8189 * config/i386/sse.md (*mov<mode>_internal): Support new registers and
8190 modes.
8191 (<sse>_loadu<ssemodesuffix><avxsizesuffix>): Replace constraint "x"
8192 with the new constraint "v".
8193 (<sse2>_loaddqu<avxsizesuffix>): Likewise.
8194 (<sse2>_storedqu<avxsizesuffix>): Likewise.
8195 (*<plusminus_insn><mode>3): Likewise.
8196 (<sse>_vm<plusminus_insn><mode>3): Likewise.
8197 (*mul<mode>3): Likewise.
8198 (<sse>_vmmul<mode>3): Likewise.
8199 (<sse>_div<mode>3): Likewise.
8200 (<sse>_vmdiv<mode>3): Likewise.
8201 (<sse>_sqrt<mode>2): Likewise.
8202 (<sse>_vmsqrt<mode>2): Likewise.
8203 (*<code><mode>3_finite): Likewise.
8204 (*<code><mode>3) <smaxmin>: Likewise.
8205 (<sse>_vm<code><mode>3): Likewise.
8206 (*<code><mode>3) <any_logic>: Likewise.
8207 (*fma_fmadd_<mode>): Likewise.
8208 (*fma_fmsub_<mode>): Likewise.
8209 (*fma_fnmadd_<mode>): Likewise.
8210 (*fma_fnmsub_<mode>): Likewise.
8211 (*fma_fmaddsub_<mode>): Likewise.
8212 (*fma_fmsubadd_<mode>): Likewise.
8213 (*fmai_fmadd_<mode>): Likewise.
8214 (*fmai_fmsub_<mode>): Likewise.
8215 (*fmai_fnmadd_<mode>): Likewise.
8216 (*fmai_fnmsub_<mode>): Likewise.
8217 (sse_cvtsi2ss): Likewise.
8218 (sse_cvtsi2ssq): Likewise.
8219 (sse_cvtss2si): Likewise.
8220 (sse_cvtss2si_2): Likewise.
8221 (sse_cvtss2siq): Likewise.
8222 (sse_cvtss2siq_2): Likewise.
8223 (sse_cvttss2si): Likewise.
8224 (sse_cvtss2siq_2): Likewise.
8225 (float<sseintvecmodelower><mode>2): Likewise.
8226 (sse2_cvtsd2si_2): Likewise.
8227 (sse2_cvtsd2siq_2): Likewise.
8228 (*<plusminus_insn><mode>3): Likewise.
8229 (*<sse2_avx2>_<plusminus_insn><mode>3): Likewise.
8230 (*<sse4_1_avx2>_mul<mode>3): Likewise.
8231 (ashr<mode>3): Likewise.
8232 (<shift_insn><mode>3): Likewise.
8233 (avx2_<code><mode>3): Likewise.
8234 (*avx2_<code><mode>3): Likewise.
8235 (*andnot<mode>3): Likewise.
8236 (*<code><mode>3) <any_logic>: Likewise.
8237 (abs<mode>2): Likewise.
8238 (avx2_permvar<mode>): Likewise.
8239 (avx2_perm<mode>_1): Likewise.
8240 (*avx_vpermilp<mode>): Likewise.
8241 (avx_vpermilvar<mode>3): Likewise.
8242 (avx2_ashrv<mode>): Likewise.
8243 (avx2_<shift_insn>v<mode>): Likewise.
8244 * doc/invoke.texi: Document -mavx512f, -mavx512pf, -mavx512er,
8245 -mavx512cd.
8246 * doc/rtl.texi: Document XImode.
8247
8248 2013-08-21 Jeff Law <law@redhat.com>
8249
8250 * tree-flow.h (register_jump_thread): Pass vector of edges
8251 instead of each important edge.
8252 * tree-ssa-threadedge.c (thread_across_edge): Build the jump
8253 thread path into a vector and pass that to register_jump_thread.
8254 * tree-ssa-threadupdate.c (register_jump_thread): Conver the
8255 passed in edge vector to the current 3-edge form.
8256
8257 Revert:
8258 2013-08-20 Alexey Makhalov <makhaloff@gmail.com>
8259
8260 * dce.c (fini_dce): Call df_analyze again just in case
8261 delete_unmarked_insns removed anything.
8262
8263 2013-08-21 Joern Rennecke <joern.rennecke@embecosm.com>
8264
8265 * reload.h (struct reg_equivs): Rename to ..
8266 (struct reg_equivs_s): .. this.
8267
8268 2013-08-20 Martin Liska <marxin.liska@gmail.com>
8269
8270 * ipa.c (ipa_profile_read_summary): Fix buffer overflow.
8271
8272 2013-08-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8273
8274 * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Don't nest comment.
8275
8276 2013-08-21 Jeff Law <law@redhat.com>
8277
8278 * tree-vrp.c (simplify_stmt_for_jump_threading): Try to
8279 simplify assignments too. If the RHS collapses to a singleton
8280 range, then return the value for the range.
8281
8282 2013-08-21 Kirill Yukhin <kirill.yukhin@intel.com>
8283
8284 * config/i386/sse.md (V16): Rename to...
8285 (VMOVE): this.
8286 (mov<mode>): Update iterator name.
8287 (*mov<mode>_internal): Ditto.
8288 (push<mode>1): Ditto.
8289 (movmisalign<mode>): Ditto.
8290
8291 2013-08-20 Jan Hubicka <jh@suse.cz>
8292
8293 PR bootstrap/58186
8294 * cgraph.c (cgraph_add_edge_to_call_site_hash): Overwrite hash
8295 entry for direct edges.
8296 (cgraph_turn_edge_to_speculative): Fix setting of can_throw_external.
8297
8298 2013-08-20 David Malcolm <dmalcolm@redhat.com>
8299
8300 Revert my last two changes, r201865 and r201864:
8301
8302 Revert r201865:
8303 2013-08-20 David Malcolm <dmalcolm@redhat.com>
8304
8305 Make opt_pass and gcc::pass_manager be GC-managed, so that pass
8306 instances can own GC refs.
8307
8308 * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h.
8309 * context.c (gcc::context::gt_ggc_mx): Traverse passes_.
8310 (gcc::context::gt_pch_nx): Likewise.
8311 (gcc::context::gt_pch_nx): Likewise.
8312 * ggc.h (gt_ggc_mx <T>): New.
8313 (gt_pch_nx_with_op <T>): New.
8314 (gt_pch_nx <T>): New.
8315 * passes.c (opt_pass::gt_ggc_mx): New.
8316 (opt_pass::gt_pch_nx): New.
8317 (opt_pass::gt_pch_nx_with_op): New.
8318 (pass_manager::gt_ggc_mx): New.
8319 (pass_manager::gt_pch_nx): New.
8320 (pass_manager::gt_pch_nx_with_op): New.
8321 (pass_manager::operator new): Use
8322 ggc_internal_cleared_alloc_stat rather than xcalloc.
8323 * pass_manager.h (class pass_manager): Add GTY((user)) marking.
8324 (pass_manager::gt_ggc_mx): New.
8325 (pass_manager::gt_pch_nx): New.
8326 (pass_manager::gt_pch_nx_with_op): New.
8327 * tree-pass.h (class opt_pass): Add GTY((user)) marking.
8328 (opt_pass::operator new): New.
8329 (opt_pass::gt_ggc_mx): New.
8330 (opt_pass::gt_pch_nx): New.
8331 (opt_pass::gt_pch_nx_with_op): New.
8332
8333 Revert r201864:
8334 2013-08-20 David Malcolm <dmalcolm@redhat.com>
8335
8336 * Makefile.in (GTFILES): Add context.h.
8337 * context.c (gcc::context::operator new): New.
8338 (gcc::context::gt_ggc_mx): New.
8339 (gcc::context::gt_pch_nx): New.
8340 (gcc::context::gt_pch_nx): New.
8341 * context.h (gcc::context): Add GTY((user)) marking.
8342 (gcc::context::operator new): New.
8343 (gcc::context::gt_ggc_mx): New.
8344 (gcc::context::gt_pch_nx): New.
8345 (gcc::context::gt_pch_nx): New.
8346 (g): Add GTY marking.
8347 (gt_ggc_mx (gcc::context *)): New.
8348 (gt_pch_nx (gcc::context *)): New.
8349 (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op,
8350 void *cookie)): New.
8351 * gengtype.c (open_base_files) <ifiles>: Add context.h.
8352
8353 2013-08-20 Alexey Makhalov <makhaloff@gmail.com>
8354
8355 * dce.c (fini_dce): Call df_analyze again just in case
8356 delete_unmarked_insns removed anything.
8357
8358 2013-08-20 Teresa Johnson <tejohnson@google.com>
8359
8360 PR rtl-optimizations/57451
8361 * final.c (reemit_insn_block_notes): Prevent lexical blocks
8362 from crossing split section boundaries.
8363
8364 2013-08-20 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
8365
8366 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Remove definition.
8367 * config/arm/t-linux-eabi (MULTILIB_OPTIONS): Document association
8368 with MULTLIB_DEFAULTS.
8369
8370 2013-08-20 Nick Clifton <nickc@redhat.com>
8371
8372 * target.def (narrow_volatile_bitfield): Note that the default
8373 value is false, not !TARGET_STRICT_ALIGN.
8374 * doc/tm.texi: Regenerate.
8375
8376 2013-08-20 Pavel Chupin <pavel.v.chupin@intel.com>
8377
8378 Fix LIB_SPEC for systems without libpthread.
8379
8380 * config/gnu-user.h: Introduce GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC.
8381 * config/arm/linux-eabi.h: Use GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC
8382 for Android.
8383 * config/i386/linux-common.h: Likewise.
8384 * config/mips/linux-common.h: Likewise.
8385
8386 2013-08-20 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
8387
8388 * tree-ssa-ccp.c (get_default_value): Remove redundant condition
8389 checks.
8390
8391 2013-08-20 David Malcolm <dmalcolm@redhat.com>
8392
8393 Make opt_pass and gcc::pass_manager be GC-managed, so that pass
8394 instances can own GC refs.
8395
8396 * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h.
8397 * context.c (gcc::context::gt_ggc_mx): Traverse passes_.
8398 (gcc::context::gt_pch_nx): Likewise.
8399 (gcc::context::gt_pch_nx): Likewise.
8400 * ggc.h (gt_ggc_mx <T>): New.
8401 (gt_pch_nx_with_op <T>): New.
8402 (gt_pch_nx <T>): New.
8403 * passes.c (opt_pass::gt_ggc_mx): New.
8404 (opt_pass::gt_pch_nx): New.
8405 (opt_pass::gt_pch_nx_with_op): New.
8406 (pass_manager::gt_ggc_mx): New.
8407 (pass_manager::gt_pch_nx): New.
8408 (pass_manager::gt_pch_nx_with_op): New.
8409 (pass_manager::operator new): Use
8410 ggc_internal_cleared_alloc_stat rather than xcalloc.
8411 * pass_manager.h (class pass_manager): Add GTY((user)) marking.
8412 (pass_manager::gt_ggc_mx): New.
8413 (pass_manager::gt_pch_nx): New.
8414 (pass_manager::gt_pch_nx_with_op): New.
8415 * tree-pass.h (class opt_pass): Add GTY((user)) marking.
8416 (opt_pass::operator new): New.
8417 (opt_pass::gt_ggc_mx): New.
8418 (opt_pass::gt_pch_nx): New.
8419 (opt_pass::gt_pch_nx_with_op): New.
8420
8421 2013-08-20 David Malcolm <dmalcolm@redhat.com>
8422
8423 * Makefile.in (GTFILES): Add context.h.
8424 * context.c (gcc::context::operator new): New.
8425 (gcc::context::gt_ggc_mx): New.
8426 (gcc::context::gt_pch_nx): New.
8427 (gcc::context::gt_pch_nx): New.
8428 * context.h (gcc::context): Add GTY((user)) marking.
8429 (gcc::context::operator new): New.
8430 (gcc::context::gt_ggc_mx): New.
8431 (gcc::context::gt_pch_nx): New.
8432 (gcc::context::gt_pch_nx): New.
8433 (g): Add GTY marking.
8434 (gt_ggc_mx (gcc::context *)): New.
8435 (gt_pch_nx (gcc::context *)): New.
8436 (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op,
8437 void *cookie)): New.
8438 * gengtype.c (open_base_files) <ifiles>: Add context.h.
8439
8440 2013-08-20 Alan Modra <amodra@gmail.com>
8441
8442 PR target/57865
8443 * config/rs6000/rs6000.c (rs6000_emit_prologue): Correct ool_adjust.
8444 (rs6000_emit_epilogue): Likewise.
8445
8446 2013-08-19 Dehao Chen <dehao@google.com>
8447
8448 * value-prof.c (gimple_ic): Fix the bug of adding EH edge.
8449
8450 2013-08-19 Peter Bergner <bergner@vnet.ibm.com>
8451 Jakub Jelinek <jakub@redhat.com>
8452
8453 * builtins.def (BUILT_IN_FABSD32): New DFP ABS builtin.
8454 (BUILT_IN_FABSD64): Likewise.
8455 (BUILT_IN_FABSD128): Likewise.
8456 * builtins.c (expand_builtin): Add support for new DFP ABS builtins.
8457 (fold_builtin_1): Likewise.
8458 * config/rs6000/dfp.md (*negtd2_fpr): Handle non-overlapping
8459 destination and source operands.
8460 (*abstd2_fpr): Likewise.
8461 (*nabstd2_fpr): Likewise.
8462
8463 2013-08-19 Richard Sandiford <rdsandiford@googlemail.com>
8464
8465 * config/mips/mips.c (mips_adjust_insn_length): Add checks for
8466 JUMP_P and INSN_P.
8467
8468 2013-08-19 Aldy Hernandez <aldyh@redhat.com>
8469
8470 * doc/invoke.texi (-fcilkplus): Clarify that implementation is
8471 incomplete.
8472
8473 2013-08-19 Alexander Ivchenko <alexander.ivchenko@intel.com>
8474
8475 * target.def (TARGET_LIBC_HAS_FUNCTION): New target hook.
8476 * builtins.c (default_libc_has_function): New.
8477 (gnu_libc_has_function): Ditto.
8478 (no_c99_libc_has_function): Ditto.
8479 (expand_builtin_cexpi): Using new target hook TARGET_LIBC_HAS_FUNCTION
8480 instead of TARGET_HAS_SINCOS and TARGET_C99_FUNCTIONS.
8481 (fold_builtin_sincos): Likewise.
8482 (fold_builtin_cexp): Likewise.
8483 * builtins.def (DEF_C94_BUILTIN): Likewise.
8484 (DEF_C99_BUILTIN): Likewise.
8485 (DEF_C99_C90RES_BUILTIN): Likewise.
8486 (DEF_C99_COMPL_BUILTIN): New define. Change all complex c99 builtin
8487 definitions to using this define.
8488 * config/darwin-protos.h (darwin_libc_has_function): New.
8489 * config/darwin.c (darwin_libc_has_function): Ditto.
8490 * config/alpha/linux.h: Remove TARGET_C99_FUNCTIONS and
8491 TARGET_HAS_SINCOS. Redefine TARGET_LIBC_HAS_FUNCTION.
8492 * config/darwin.h: Ditto.
8493 * config/elfos.h: Ditto.
8494 * config/freebsd.h: Ditto.
8495 * config/i386/cygming.h: Ditto.
8496 * config/i386/djgpp.h: Ditto.
8497 * config/i386/i386-interix.h: Ditto.
8498 * config/microblaze/microblaze.h: Ditto.
8499 * config/mmix/mmix.h: Ditto.
8500 * config/gnu-user.h: Ditto.
8501 * config/ia64/hpux.h: Ditto.
8502 * config/pa/pa-hpux.h: Ditto.
8503 * config/pdp11/pdp11.h: Ditto.
8504 * config/picochip/picochip.h: Ditto.
8505 * config/linux.h: Ditto.
8506 * config/netbsd.h: Ditto.
8507 * config/openbsd.h: Ditto.
8508 * config/rs6000/aix43.h: Ditto.
8509 * config/rs6000/aix51.h: Ditto.
8510 * config/rs6000/aix52.h: Ditto.
8511 * config/rs6000/aix53.h: Ditto.
8512 * config/rs6000/aix61.h: Ditto.
8513 * config/rs6000/darwin.h: Ditto.
8514 * config/rs6000/linux.h: Ditto.
8515 * config/rs6000/linux64.h: Ditto.
8516 * config/s390/tpf.h: Ditto.
8517 * config/sol2-10.h: Ditto.
8518 * config/sol2.h: Ditto.
8519 * config/vms/vms.h: Ditto.
8520 * config/vxworks.h: Ditto.
8521 * config/linux-android.c (linux_android_libc_has_function):
8522 New linux-specific implementation of TARGET_LIBC_HAS_FUNCTION.
8523 * config/linux-protos.h (linux_android_libc_has_function):
8524 New declaration.
8525 * config/i386/i386.c (ix86_libc_has_function): New.
8526 * config/i386/i386-protos.h
8527 (ix86_libc_has_function): New declaration.
8528 * config/i386/i386.md
8529 ("isinfxf2"): Change condition for TARGET_LIBC_HAS_FUNCTION.
8530 ("isinf<mode>2): Likewise.
8531 * convert.c (convert_to_integer): Using new target hook
8532 TARGET_LIBC_HAS_FUNCTION istead of TARGET_HAS_SINCOS and
8533 TARGET_C99_FUNCTIONS.
8534 * fortran/f95-lang.c (gfc_init_builtin_functions): Ditto.
8535 * tree-ssa-math-opts.c (execute_cse_sincos): Ditto.
8536 * coretypes.h (function_class): New enum for different
8537 classes of functions.
8538 * defaults.h: Remove TARGET_C99_FUNCTIONS and TARGET_HAS_SINCOS.
8539 * doc/tm.texi.in (TARGET_C99_FUNCTIONS): Remove documentation.
8540 (TARGET_HAS_SINCOS): Likewise.
8541 (TARGET_LIBC_HAS_FUNCTION): New.
8542 * doc/tm.texi: Regenerated.
8543 * targhooks.h (default_libc_has_function): New declaration.
8544 (no_c99_libc_has_function): Ditto.
8545 (gnu_libc_has_function): Ditto.
8546 * system.h: Add the poisoning of TARGET_C99_FUNCTIONS
8547 and TARGET_HAS_SINCOS.
8548
8549 2013-08-18 Jan Hubicka <jh@suse.cz>
8550
8551 * Makeifle-in (ipa-devirt.o): New.
8552 (GTFILES): Add ipa-utils.h and ipa-devirt.c
8553 * cgraphunit.c (decide_is_symbol_needed): Do not care about virtuals.
8554 (analyze_functions): Look into possible targets of polymorphic call.
8555 * dumpfile.c (dump_files): Add type-inheritance dump.
8556 * dumpfile.h (TDI_inheritance): New.
8557 * ipa-devirt.c: New file.
8558 * ipa-utils.h (odr_type_d): Forward declare.
8559 (odr_type): New type.
8560 (build_type_inheritance_graph): Declare.
8561 (possible_polymorphic_call_targets): Declare and introduce inline
8562 variant when only edge is pased.
8563 (dump_possible_polymorphic_call_targets): Likewise.
8564 * timevar.def (TV_IPA_INHERITANCE, TV_IPA_VIRTUAL_CALL): New.
8565 * tree.c (type_in_anonymous_namespace_p): Break out from ...
8566 (types_same_for_odr): ... here.
8567 * tree.h (type_in_anonymous_namespace_p): Declare.
8568
8569 2013-08-18 Jakub Jelinek <jakub@redhat.com>
8570
8571 PR tree-optimization/58006
8572 * tree-parloops.c (take_address_of): Don't ICE if get_name
8573 returns NULL.
8574 (eliminate_local_variables_stmt): Remove clobber stmts.
8575
8576 2013-08-18 Eric Botcazou <ebotcazou@adacore.com>
8577
8578 * cgraphunit.c (handle_alias_pairs): Reset the alias flag after the
8579 error message is issued for an alias to undefined symbol.
8580
8581 2013-08-18 Jan Hubicka <jh@suse.cz>
8582
8583 * cgraph.c (cgraph_create_indirect_edge): Discover
8584 polymorphic calls and record basic info into indirect_info.
8585 * gimple-fold.c (gimple_fold_call): When doing BINFO based
8586 devirtualization, ignore objc function calls.
8587 * ipa-cp.c (initialize_node_lattices): Be ready for polymorphic
8588 call with no parm index info.
8589 * ipa-prop.c (ipa_analyze_call_uses): Likewise.
8590 * tree.c (virtual_method_call_p): New function.
8591 * tree.h (virtual_method_call_p): Declare.
8592
8593 2013-08-16 Jan Hubicka <jh@suse.cz>
8594
8595 PR middle-end/58179
8596 * tree.c (obj_type_ref_class): Do not ICE on non-method calls.
8597
8598 2013-08-16 David Edelsohn <dje.gcc@gmail.com>
8599
8600 * config/rs6000/rs6000.md (rs6000_get_timebase_ppc32): Add length
8601 attribute.
8602
8603 2013-08-16 David Malcolm <dmalcolm@redhat.com>
8604
8605 * gengtype.c (type_for_name): Add special-case support for
8606 locating types within the "gcc::" namespace.
8607 (open_base_files): Emit a "using namespace gcc" directive.
8608
8609 2013-08-16 Michael Meissner <meissner@linux.vnet.ibm.com>
8610
8611 PR target/58160
8612 * config/rs6000/predicates.md (fusion_gpr_mem_load): Allow the
8613 memory rtx to contain ZERO_EXTEND and SIGN_EXTEND.
8614
8615 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Pass operands
8616 array instead of each individual operand as a separate argument.
8617 (emit_fusion_gpr_load): Likewise.
8618 (expand_fusion_gpr_load): Add new function declaration.
8619
8620 * config/rs6000/rs6000.c (fusion_gpr_load_p): Change the calling
8621 signature to have the operands passed as an array, instead of as
8622 separate arguments. Allow ZERO_EXTEND to be in the memory
8623 address, and also SIGN_EXTEND if -mpower8-fusion-sign. Do not
8624 depend on the register live/dead flags when peepholes are run.
8625 (expand_fusion_gpr_load): New function to be called from the
8626 peephole2 pass, to change the register that addis sets to be the
8627 target register.
8628 (emit_fusion_gpr_load): Change the calling signature to have the
8629 operands passed as an array, instead of as separate arguments.
8630 Allow ZERO_EXTEND to be in the memory address, and also
8631 SIGN_EXTEND if -mpower8-fusion-sign.
8632
8633 * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): Delete unused
8634 unspec enumeration.
8635 (power8 fusion peephole/peephole2): Rework the fusion peepholes to
8636 adjust the register addis loads up in the peephole2 pass. Do not
8637 depend on the register live/dead state when the peephole pass is done.
8638
8639 2013-08-16 David Malcolm <dmalcolm@redhat.com>
8640
8641 * gengtype.c (create_user_defined_type): Ensure that the kind
8642 is set to TYPE_USER_STRUCT, fixing a bug seen when an incomplete
8643 declaration is seen before the GTY((user)) marking.
8644
8645 2013-08-16 Bernd Edlinger <bernd.edlinger@hotmail.de>
8646
8647 PR target/58105
8648 * config/i386/i386.c (make_resolver_func): Set DECL_UNINLINABLE.
8649
8650 2013-08-16 Jan Hubicka <jh@suse.cz>
8651
8652 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Add new
8653 arugment expected_type.
8654 (gimple_fold_call): Use it.
8655 * gimple.h (gimple_extract_devirt_binfo_from_cst): Update prototype.
8656 * ipa-cp.c (ipa_get_indirect_edge_target_1): Update.
8657 * ipa-prop.c (ipa_analyze_virtual_call_uses): Use obj_type_ref_class.
8658 (try_make_edge_direct_virtual_call): Likewise.
8659 * tree.c (obj_type_ref_class): New.
8660 * tree.h (obj_type_ref_class): Use it.
8661
8662 2013-08-16 Gabriel Dos Reis <gdr@integrable-solutions.net>
8663
8664 * sched-vis.c (rtl_slim_pp_initialized): Remove.
8665 (rtl_slim_pp): Likewise.
8666 (init_rtl_slim_pretty_print): Likewise.
8667 (dump_value_slim): Don't call it. Use local pretty printer.
8668 (dump_insn_slim): Likewise.
8669 (dump_rtl_slim): Likewise.
8670 (str_pattern_slim): Likewise.
8671 * tree-mudflap.c (mf_varname_tree): Use local pretty printer.
8672 Simplify.
8673
8674 2013-08-16 Jakub Jelinek <jakub@redhat.com>
8675
8676 PR tree-optimization/58164
8677 * gimple.c (walk_stmt_load_store_addr_ops): For visit_addr
8678 walk gimple_goto_dest of GIMPLE_GOTO.
8679
8680 PR tree-optimization/58165
8681 * tree-call-cdce.c (shrink_wrap_one_built_in_call): If
8682 bi_call must be the last stmt in a bb, don't split_block, instead
8683 use fallthru edge from it and give up if there is none.
8684 Release conds vector when returning early.
8685
8686 2013-08-14 Xinliang David Li <davidxl@google.com>
8687
8688 * config/i386/i386.c (ix86_option_override_internal):
8689 Remove unused variable and field.
8690
8691 2013-08-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8692
8693 PR target/57949
8694 * doc/invoke.texi: Add documentation of mcompat-align-parm option.
8695 * config/rs6000/rs6000.opt: Add mcompat-align-parm option.
8696 * config/rs6000/rs6000.c (rs6000_function_arg_boundary): For AIX
8697 and Linux, correct BLKmode alignment when 128-bit alignment is
8698 required and compatibility flag is not set.
8699 (rs6000_gimplify_va_arg): For AIX and Linux, honor specified alignment
8700 for zero-size arguments when compatibility flag is not set.
8701
8702 2013-08-14 Jakub Jelinek <jakub@redhat.com>
8703
8704 PR tree-optimization/58145
8705 * tree-sra.c (build_ref_for_offset): If prev_base has
8706 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS, propagate it to MEM_REF.
8707
8708 2013-08-14 Xinliang David Li <davidxl@google.com>
8709
8710 * config/i386/i386.c (ix86_option_override_internal):
8711 Fix uninitialized variable error.
8712
8713 2013-08-14 Xinliang David Li <davidxl@google.com>
8714
8715 * config/i386/i386.opt: Define two new options.
8716 * config/i386/x86-tune.def: Add arch selector field in macros.
8717 * config/i386/i386.h: Adjust macro definition.
8718 * config/i386/i386.c (ix86_option_override_internal):
8719 Refactor the code.
8720 (parse_mtune_ctrl_str): New function.
8721 (set_ix86_tune_features): New function.
8722 (ix86_function_specific_restore): Call the new helper function.
8723
8724 2013-08-14 Andrey Belevantsev <abel@ispras.ru>
8725
8726 PR rtl-optimization/57662
8727 * sel-sched.c (code_motion_process_successors): When the current insn
8728 is removed after the recursive traversal, break from the loop.
8729 Add comments and debug printouts.
8730
8731 2013-08-14 Jakub Jelinek <jakub@redhat.com>
8732 Alexandre Oliva <aoliva@redhat.com>
8733
8734 PR target/58067
8735 * config/i386/i386.c (ix86_delegitimize_address): For CM_MEDIUM_PIC
8736 and CM_LARGE_PIC ix86_cmodel fall thru into the -m32 code, handle
8737 there also UNSPEC_PLTOFF.
8738
8739 2013-08-14 Marek Polacek <polacek@redhat.com>
8740
8741 * ipa-inline-analysis.c (add_clause): Avoid shifting integer
8742 NUM_CONDITIONS bit positions.
8743
8744 2013-08-13 Cary Coutant <ccoutant@google.com>
8745
8746 * dwarf2out.c (CHECKSUM_BLOCK): New macro.
8747 (attr_checksum): Hash vector contents instead of pointer.
8748 (attr_checksum_ordered): Likewise.
8749
8750 2013-08-13 Uros Bizjak <ubizjak@gmail.com>
8751
8752 * config/i386/sse.md (*sse2_maskmovdqu): Emit addr32 prefix
8753 when Pmode != word_mode. Add length_address attribute.
8754 (sse3_monitor_<mode>): Merge from sse3_monitor and
8755 sse3_monitor64_<mode> insn patterns. Emit addr32 prefix when
8756 Pmode != word_mode. Update insn length attribute.
8757 * config/i386/i386.c (ix86_option_override_internal): Update
8758 ix86_gen_monitor selection for merged sse3_monitor insn.
8759
8760 2013-08-13 Julian Brown <julian@codesourcery.com>
8761
8762 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
8763 perform invalid legitimization on greater-than-word-size modes for
8764 TARGET_E500_DOUBLE.
8765
8766 2013-08-13 Vladimir Makarov <vmakarov@redhat.com>
8767
8768 * ira.c (setup_class_translate_array): Use aclass instead of cl
8769 for classes not fully covered by allocno classes.
8770
8771 2013-08-13 Jakub Jelinek <jakub@redhat.com>
8772
8773 PR tree-optimization/57661
8774 * tree-inline.h (struct copy_body_data): Add blocks_to_copy field.
8775 * tree-inline.c (tree_function_versioning): Initialize it.
8776 (remap_gimple_stmt): Return GIMPLE_NOP for MEM_REF lhs clobber stmts
8777 if id->blocks_to_copy and MEM_REF's SSA_NAME is defined in a block
8778 that is not being copied.
8779
8780 PR sanitizer/56417
8781 * asan.c (instrument_strlen_call): Fix typo in comment.
8782 Use char * type even for the lhs of POINTER_PLUS_EXPR.
8783
8784 2013-08-13 Steve Ellcey <sellcey@mips.com>
8785
8786 * config/mips/mips.md (prefetch): Use lw instead of ld on
8787 loongson in 32bit mode.
8788
8789 2013-08-13 Nick Clifton <nickc@redhat.com>
8790
8791 * config.gcc: (avr-linux): Allow for tmake_file not being empty.
8792
8793 2013-08-13 Jan Hubicka <jh@suse.cz>
8794
8795 * cgraph.c (cgraph_turn_edge_to_speculative): Return newly
8796 introduced edge; fix typo in sanity check.
8797 (cgraph_resolve_speculation): Export; improve diagnostic.
8798 (cgraph_redirect_edge_call_stmt_to_callee): Better diagnostic; cancel
8799 speculation at type mismatch.
8800 * cgraph.h (cgraph_turn_edge_to_speculative): Update.
8801 (cgraph_resolve_speculation): Declare.
8802 (symtab_can_be_discarded): New function.
8803 * value-prof.c (gimple_ic_transform): Remove actual transform code.
8804 * ipa-inline-transform.c (speculation_removed): New global var.
8805 (clone_inlined_nodes): See if speculation can be removed.
8806 (inline_call): If speculations was removed, we growths may not match.
8807 * ipa-inline.c (can_inline_edge_p): Add DISREGARD_LIMITS parameter.
8808 (speculation_useful_p): New function.
8809 (resolve_noninline_speculation): New function.
8810 (inline_small_functions): Resolve useless speculations.
8811 * ipa-inline.h (speculation_useful_p): Declare
8812 * ipa.c (can_replace_by_local_alias): Simplify.
8813 (ipa_profile): Produce speculative calls in non-lto, too;
8814 add simple cost model; produce local aliases.
8815
8816 2013-08-13 David Malcolm <dmalcolm@redhat.com>
8817
8818 * config/i386/t-i386 (i386.o): Rename stray PIPELINE_H to
8819 PASS_MANAGER_H.
8820
8821 2013-08-12 Paolo Carlini <paolo.carlini@oracle.com>
8822
8823 * config/i386/i386.c (ix86_function_versions): Use error + inform.
8824
8825 2013-08-12 Uros Bizjak <ubizjak@gmail.com>
8826
8827 * config/i386/i386.md (floatunssi<mode>2 expand): Use MODEF mode
8828 iterator instead of X87MODEF.
8829
8830 2013-08-12 Perez Read <netfirewall@gmail.com>
8831
8832 PR target/58132
8833 * config/i386/i386.md (*movabs<mode>_1): Add <ptrsize> PTR before
8834 operand 0 for intel asm alternative.
8835 (*movabs<mode>_2): Ditto for operand 1.
8836
8837 2013-08-12 James Greenhalgh <james.greenhalgh@arm.com>
8838
8839 * config/aarch64/arm_none.h
8840 (vdup<bhsd>_lane_<su><8,16,32,64>): Fix macro call.
8841
8842 2013-08-12 Nick Clifton <nickc@redhat.com>
8843
8844 * config.gcc (m32r-linux): Allow for tmake_file not being empty.
8845
8846 2013-08-12 Yuri Rumyantsev <ysrumyan@gmail.com>
8847
8848 * config/i386/i386.md (floatunssi<mode>2 expand): Add new
8849 expand for QI/HImode operand to produce more effictive code for
8850 unsigned char(short) --> float(double) conversion.
8851
8852 2013-08-12 Alexander Monakov <amonakov@ispras.ru>
8853
8854 * doc/invoke.texi: Mention that -ftls-model does not force the final
8855 model.
8856
8857 2013-08-12 Marek Polacek <polacek@redhat.com>
8858 Marc Glisse <marc.glisse@inria.fr>
8859
8860 PR tree-optimization/57980
8861 * tree-tailcall.c (process_assignment): Call build_minus_one_cst
8862 when creating -1 constant.
8863
8864 2013-08-10 Jan Hubicka <jh@suse.cz>
8865
8866 Workaround binutils PR14342.
8867 * tree-profile.c (init_ic_make_global_vars): Add LTO path.
8868 (gimple_init_edge_profiler): Likewise.
8869 (gimple_gen_ic_func_profiler): Likewise.
8870
8871 2013-08-09 Jan Hubicka <jh@suse.cz>
8872
8873 * cgraph.c (cgraph_create_edge_1): Clear speculative flag.
8874
8875 2013-08-09 Xinliang David Li <davidxl@google.com>
8876
8877 * config/i386/stringop.def: New file.
8878 * config/i386/stringop.opt: New file.
8879 * config/i386/i386-opts.h: Include stringopt.def.
8880 * config/i386/i386.opt: Include stringopt.opt.
8881 * config/i386/i386.c (ix86_option_override_internal):
8882 Override default size based stringop inline strategies with options.
8883 * config/i386/i386.c (ix86_parse_stringop_strategy_string):
8884 New function.
8885
8886 2013-08-09 Jan Hubicka <jh@suse.cz>
8887
8888 * ipa-ref.c (ipa_clear_stmts_in_references): Clear lto_stmt_uid, too.
8889
8890 2013-08-09 Jan Hubicka <jh@suse.cz>
8891
8892 * cgraph.c (cgraph_resolve_speculation): Cut frequency to
8893 CGRAPH_FREQ_MAX.
8894 (dump_cgraph_node): Dump profile-id.
8895 * cgraph.h (cgraph_indirect_call_info): Add common_target_id
8896 and common_target_probability.
8897 * lto-cgraph.c (lto_output_edge): Stream common targets.
8898 (lto_output_node): Stream profile ids.
8899 (input_node): Stream profile ids.
8900 (input_edge): Stream common targets.
8901 * lto-streamer-in.c (fixup_call_stmt_edges_1): Fix formatting.
8902 * ipa.c: Include value-prof.h
8903 (ipa_profile_generate_summary): Turn indirect call statement histograms
8904 into common targets.
8905 (ipa_profile): Turn common targets into speculative edges.
8906
8907 2013-08-09 Jan Hubicka <jh@suse.cz>
8908
8909 * cgraph.h (cgraph_node): Add profile_id.
8910 * value-prof.c (cgraph_node_map): Turn into pointer_map.
8911 (init_node_map): Rewrite to handle hashes increas of incremental IDs.
8912 (del_node_map): Update.
8913 (find_func_by_funcdef_no): Replace by ...
8914 (find_func_by_profile_id): ... this one.
8915 (gimple_ic_transform): Do not remove useful histograms when
8916 speculation is not done; dump info when indirect call removal
8917 can happen at LTO.
8918 * value-prof.h (find_func_by_profile_id, gimple_ic): Declare.
8919 * gcov-io.h (__gcov_indirect_call_profiler): Replace by ...
8920 (__gcov_indirect_call_profiler_v2): .. this one.
8921 * profile.h (init_node_map): Update.
8922 * coverage.c (coverage_compute_profile_id): New function.
8923 * coverage.h (coverage_compute_profile_id): Declare.
8924 * tree-profile.c (init_ic_make_global_vars): Make
8925 __gcov_indirect_call_callee and __gcov_indirect_call_counters global.
8926 (gimple_init_edge_profiler): Update prototype of
8927 __gcov_indirect_call_profiler.
8928 (gimple_gen_ic_func_profiler): Simplify.
8929 (tree_profiling): Use init_node_map
8930
8931 2013-08-09 Jan Hubicka <jh@suse.cz>
8932
8933 * cgraphbuild.c (cgraph_rebuild_references): Rebuild only
8934 non-speculative refs.
8935 * cgraph.c (cgraph_update_edge_in_call_site_hash): New function.
8936 (cgraph_add_edge_to_call_site_hash): Deal with speculative calls.
8937 (cgraph_set_call_stmt): Likewise.
8938 (cgraph_create_edge_1): Fix release checking compilatoin;
8939 clear lto_stmt_uid.
8940 (cgraph_free_edge): Free indirect info.
8941 (cgraph_turn_edge_to_speculative): New function.
8942 (cgraph_speculative_call_info): New function.
8943 (cgraph_make_edge_direct): Return direct edge; handle speculation.
8944 (cgraph_redirect_edge_call_stmt_to_callee): Expand speculative edges.
8945 (dump_cgraph_node): Dump speculation.
8946 (verify_edge_count_and_frequency): Accept speculative edges.
8947 (verify_edge_corresponds_to_fndecl): Handle partitioned cgraph.
8948 (verify_cgraph_node): Handle speculation.
8949 * cgraph.h (cgraph_edge): Add SPECULATIVE flag.
8950 (cgraph_set_call_stmt): Update prototype.
8951 (cgraph_make_edge_direct): Update prototype.
8952 (cgraph_speculative_call_info): Declare.
8953 * ipa-cp.c (ipcp_discover_new_direct_edges): Be ready for edge
8954 to change; update call of ipa_find_references.
8955 * ipa-ref.c (ipa_record_reference): Fix return value; clear
8956 lto_stmt_uid and speculative flags.
8957 (ipa_dump_references): Dump speculation.
8958 (ipa_clone_references): Clone speculative flag.
8959 (ipa_clone_referring): Likewise.
8960 (ipa_clone_ref): New function.
8961 (ipa_find_reference): Look into lto_stmt_uids
8962 (ipa_clear_stmts_in_references): Do not clear speculative calls.
8963 * ipa-ref.h (ipa_ref): Add lto_stmt_uid and speculative flags.
8964 (ipa_find_reference): Update declaration.
8965 (ipa_clone_ref): Declare.
8966 * lto-cgraph.c (lto_output_edge): Make lto_stmt_uids start from 0;
8967 stream speculative flag.
8968 (lto_output_ref): Stream statements uids and speculation.
8969 (input_ref): Likewise.
8970 (input_edge): Stream speuclation.
8971 * cgraphclones.c (cgraph_clone_edge): Clone speculation.
8972 (cgraph_set_call_stmt_including_clones): Handle speculation.
8973 * ipa-inline.c (heap_edge_removal_hook): New function.
8974 (inline_small_functions): Register it.
8975 * lto-streamer-in.c (fixup_call_stmt_edges_1): Bounds checking;
8976 also initialize refs.
8977 * ipa-prop.c (ipa_make_edge_direct_to_target): Be ready for
8978 edge to change.
8979 (try_make_edge_direct_simple_call): Likewise.
8980 (try_make_edge_direct_simple_call): Likewise.
8981 (update_indirect_edges_after_inlining): Likewise.
8982 (remove_described_reference): Look proper lto_stmt_uid.
8983 (propagate_controlled_uses): Likewise.
8984 (propagate_controlled_uses): Liekwise.
8985 * tree-inline.c (copy_bb): Copy speculative edges.
8986 (redirect_all_calls): New function.
8987 (copy_cfg_body): Do redirection after loop info is updated.
8988 (delete_unreachable_blocks_update_callgraph): Updadte speculation.
8989
8990 2013-08-09 Jan Hubicka <jh@suse.cz>
8991
8992 * lto-streamer-out.c (output_function): Renumber PHIs.
8993 * lto-streamer-in.c (input_function): Likewise.
8994
8995 2013-08-09 James Greenhalgh <james.greenhalgh@arm.com>
8996
8997 * config/aarch64/aarch64-simd-builtins.def (get_lane_signed): Remove.
8998 (get_lane_unsigned): Likewise.
8999 (dup_lane_scalar): Likewise.
9000 (get_lane): enable for VALL.
9001 * config/aarch64/aarch64-simd.md
9002 (aarch64_dup_lane_scalar<mode>): Remove.
9003 (aarch64_get_lane_signed<mode>): Likewise.
9004 (aarch64_get_lane_unsigned<mode>): Likewise.
9005 (aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): New.
9006 (aarch64_get_lane_zero_extendsi<mode>): Likewise.
9007 (aarch64_get_lane<mode>): Enable for all vector modes.
9008 (aarch64_get_lanedi): Remove misleading constraints.
9009 * config/aarch64/arm_neon.h
9010 (__aarch64_vget_lane_any): Define.
9011 (__aarch64_vget<q>_lane_<fpsu><8,16,32,64>): Likewise.
9012 (vget<q>_lane_<fpsu><8,16,32,64>): Use __aarch64_vget_lane macros.
9013 (vdup<bhsd>_lane_<su><8,16,32,64>): Likewise.
9014 * config/aarch64/iterators.md (VDQQH): New.
9015 (VDQQHS): Likewise.
9016 (vwcore): Likewise.
9017
9018 2013-08-09 Eric Botcazou <ebotcazou@adacore.com>
9019
9020 * configure.ac: Add GAS check for LEON instructions on SPARC.
9021 * configure: Regenerate.
9022 * config.in: Likewise.
9023 * config.gcc (with_cpu): Remove sparc-leon*-* and deal with LEON in the
9024 sparc*-*-* block.
9025 * config/sparc/sparc.opt (LEON, LEON3): New masks.
9026 * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Set to AS_LEON_FLAG
9027 for LEON or LEON3.
9028 (ASM_CPU_SPEC): Pass AS_LEON_FLAG if -mcpu=leon or -mcpu=leon3.
9029 (AS_LEON_FLAG): New macro.
9030 * config/sparc/sparc.c (sparc_option_override): Set MASK_LEON for leon
9031 and MASK_LEON3 for leon3 and unset them if HAVE_AS_LEON is not defined.
9032 Deal with LEON and LEON3 for the memory model.
9033 * config/sparc/sync.md (atomic_compare_and_swap<mode>): Enable if LEON3
9034 (atomic_compare_and_swap<mode>_1): Likewise.
9035 (*atomic_compare_and_swap<mode>_1): Likewise.
9036
9037 2013-08-09 Zhenqiang Chen <zhenqiang.chen@linaro.org>
9038
9039 * config/arm/neon.md (vcond): Fix floating-point vector
9040 comparisons against 0.
9041
9042 2013-08-08 Vladimir Makarov <vmakarov@redhat.com>
9043
9044 * lra-constraints.c (emit_spill_move): Remove assert.
9045 (process_alt_operands): Add more debugging
9046 output. Increase reject for spilling into memory. Decrease
9047 reject for reloading scratch.
9048 (split_reg): Use HARD_REGNO_CALLER_SAVE_MODE.
9049
9050 2013-08-08 Steve Ellcey <sellcey@mips.com>
9051
9052 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add nan2008.
9053 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Make mips16 and
9054 micromips incompatible. Add nan2008.
9055 (MULTILIB_DIRNAMES): Add nan2008.
9056 (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
9057 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Make mips16
9058 and micromips incompatible. Add nan2008.
9059 (MULTILIB_DIRNAMES): Add nan2008.
9060 (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
9061
9062 2013-08-08 Richard Sandiford <rdsandiford@googlemail.com>
9063
9064 PR rtl-optimization/58079
9065 * combine.c (combine_simplify_rtx): Avoid using SUBST if
9066 simplify_comparison has widened a comparison with an integer.
9067
9068 2013-08-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9069
9070 * config/arm/neon.md (movmisalign<mode>): Disable when we
9071 don't allow unaligned accesses.
9072 (*movmisalign<mode>_neon_store): Likewise.
9073 (*movmisalign<mode>_neon_load): Likewise.
9074 (*movmisalign<mode>_neon_store): Likewise.
9075 (*movmisalign<mode>_neon_load): Likewise.
9076
9077 2013-08-08 Jan Hubicka <jh@suse.cz>
9078
9079 * cgraphbuild.c (build_cgraph_edges): Do not walk into debugs.
9080 (make_pass_rebuild_cgraph_edges): Also clear references.
9081 * cgraph.c (verify_cgraph_node): Add basic ipa-ref verifier.
9082 * ipa-inline-transform.c (inline_transform): Remove all references
9083 after inlining.
9084 * cgraphunit.c (expand_function): Remove all references after
9085 expansion.
9086 * ipa-ref.c (ipa_ref_has_aliases_p): Fix formatting.
9087 (ipa_find_reference): Rewrite to iterator.
9088 (remove_stmt_references): Likewise.
9089 (ipa_clear_stmts_in_references): New function.
9090 * ipa-ref.h (ipa_clear_stmts_in_references): Declare.
9091 * cgraphclones.c (cgraph_materialize_all_clones): Remove or
9092 clear references.
9093 * ipa-split.c (split_function): Remove references in split function.
9094
9095 2013-08-08 Richard Earnshaw <rearnsha@arm.com>
9096
9097 PR target/57431
9098 * config/arm/arm/neon.md (neon_vld1_dupdi): New expand pattern.
9099 (neon_vld1_dup<mode> VD iterator): Iterate over VD not VDX.
9100
9101 2013-08-08 Richard Earnshaw <rearnsha@arm.com>
9102
9103 PR target/56979
9104 * config/arm/arm.c (aapcs_vfp_allocate): Decompose the argument if the
9105 suggested mode for the assignment isn't compatible with the
9106 registers required.
9107
9108 2013-08-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
9109
9110 PR target/58065
9111 * config/arm/arm.h (MALLOC_ABI_ALIGNMENT): Define.
9112
9113 2013-08-07 Xinliang David Li <davidxl@google.com>
9114
9115 * config/i386/i386.opt: New option -mtune-ctrl=.
9116 * config/i386/x86-tune.def: New file.
9117 * config/i386/i386.h: include x86-tune.def.
9118 * config/i386/i386.c (ix86_option_override_internal):
9119 Parsing -mtune-ctrl= option and set tune features.
9120
9121 2013-08-07 Oleg Endo <olegendo@gcc.gnu.org>
9122
9123 PR other/12081
9124 * config/rs6000/rs6000.c (gen_2arg_fn_t): Remove typedef.
9125 (rs6000_emit_swdiv, rs6000_emit_swrsqrt): Don't cast result of GEN_FCN
9126 to gen_2arg_fn_t.
9127
9128 2013-08-07 Eric Botcazou <ebotcazou@adacore.com>
9129
9130 * rtl.h (update_alignments): Declare.
9131 * final.c (grow_label_align): New function extracted from...
9132 (shorten_branches): ...here. Call it.
9133 (update_alignments): New function.
9134 * reorg.c (sibling_labels): New variable.
9135 (get_label_before): Add SIBLING parameter. If it is non-zero, push
9136 the new label along with it onto the sibling_labels vector.
9137 (fill_simple_delay_slots): Adjust call to get_label_before.
9138 (fill_slots_from_thread): Likewise.
9139 (relax_delay_slots): Likewise.
9140 (make_return_insns): Likewise.
9141 (dbr_schedule): Invoke update_alignment on the sibling_labels vector.
9142
9143 2013-08-07 Eric Botcazou <ebotcazou@adacore.com>
9144
9145 * diagnostic.c (diagnostic_classify_diagnostic): Accept zero index and
9146 document its semantics.
9147 (diagnostic_report_diagnostic): Adjust accordingly.
9148
9149 2013-08-07 David Malcolm <dmalcolm@redhat.com>
9150
9151 * config/sparc/sparc.c (insert_pass_work_around_errata): Move into...
9152 (sparc_option_override): ...and port to new C++ pass API.
9153 * config/sparc/t-sparc (sparc.o): Add dep on CONTEXT_H
9154
9155 2013-08-07 Peter Bergner <bergner@vnet.ibm.com>
9156
9157 * config/rs6000/rs6000.c (htm_expand_builtin) <case 0>: Remove.
9158
9159 2013-08-06 Caroline Tice <cmtice@google.com>
9160
9161 * gcc.c (VTABLE_VERIFICATION_SPEC): New definition.
9162 (LINK_COMMAND_SPEC): Add VTABLE_VERIFICATION_SPEC.
9163 * tree-pass.h: Add pass_vtable_verify.
9164 * varasm.c (assemble_variable): Add code to properly set the comdat
9165 section and name for the .vtable_map_vars section.
9166 (assemble_vtyv_preinit_initializer): New function.
9167 (default_sectin_type_flags): Make sure .vtable_map_vars section has
9168 LINK_ONCE flag.
9169 * output.h: Add function decl for assemble_vtv_preinit_initializer.
9170 * vtable-verify.c: New file.
9171 * vtable-verify.h: New file.
9172 * flag-types.h (enum vtv_priority): Defintions for flag_vtable_verify
9173 initialiation levels.
9174 * timevar.def (TV_VTABLE_VERIFICATION): New definition.
9175 * passes.def: Insert pass_vtable_verify.
9176 * aclocal.m4: Reorder includes.
9177 * doc/invoke.texi: Document the -fvtable-verify=, -fvtv-debug, and
9178 -fvtv-counts options.
9179 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add vtv_start*.o,
9180 as appropriate, if -fvtable-verify=... is used.
9181 (GNU_USER_TARGET_ENDFILE_SPEC): Add vtv_end*.o as appropriate, if
9182 -fvtable-verify=... is used.
9183 * Makefile.in (OBJS): Add vtable-verify.o to list.
9184 (vtable-verify.o): Add new build rule.
9185 (GTFILES): Add vtable-verify.c to list.
9186 * common.opt (fvtable-verify=): New flag.
9187 (vtv_priority): Values for fvtable-verify= flag.
9188 (fvtv-counts): New flag.
9189 (fvtv-debug): New flag.
9190 * tree.h (save_vtable_map_decl): New extern function decl.
9191
9192 2013-08-07 David Malcolm <dmalcolm@redhat.com>
9193
9194 * config/rl78/rl78.c (rl78_devirt_pass): Convert from a struct to...
9195 (pass_rl78_devirt): ...new subclass of rtl_opt_pass along with...
9196 (pass_data_rl78_devirt): ...new pass_data instance and...
9197 (make_pass_rl78_devirt): ...new function.
9198 (rl78_asm_file_start): Port pass registration to new C++ API.
9199
9200 2013-08-07 David Malcolm <dmalcolm@redhat.com>
9201
9202 * coretypes.h (rtl_opt_pass): Add.
9203 (gcc::context): Add.
9204 * config/epiphany/epiphany.c (pass_mode_switch_use): New.
9205 (epiphany_init): Port to new C++ pass API.
9206 (epiphany_optimize_mode_switching): Likewise.
9207 * pass_manager.h (pass_manager::get_pass_split_all_insns): New.
9208 (pass_manager::get_pass_mode_switching): New.
9209 (pass_manager::get_pass_peephole2): New.
9210 * mode-switching.c (pass_mode_switching): Add clone method.
9211 * recog.c (pass_peephole2): Add clone method.
9212 (pass_split_all_insns): Add clone method.
9213
9214 2013-08-06 David Malcolm <dmalcolm@redhat.com>
9215
9216 * config/mips/mips.c (insert_pass_mips_machine_reorg2): Move into...
9217 (mips_option_override): ...here, porting to new C++ API for passes.
9218
9219 2013-08-06 Jan Hubicka <jh@suse.cz>
9220
9221 * cgraph.c (cgraph_get_body): New function based on lto.c
9222 implementation.
9223 * cgraph.h (cgraph_get_body): Declare.
9224 * cgraphclones.c (cgraph_create_virtual_clone): Commonize WPA and
9225 LTO paths.
9226 * cgraphunit.c (expand_function): Get body prior expanding.
9227 * ipa.c (function_and_variable_visibility): Use gimple_has_body_p test.
9228 * lto-cgraph.c (lto_output_node): Do not stream bodies we don't
9229 really need.
9230 * passes.c (do_per_function_toporder): Get body.
9231 * tree-inline.c (expand_call_inline): Get body prior inlining it.
9232 * tree-ssa-structalias.c (ipa_pta_execute): Get body; skip clones.
9233
9234 2013-08-06 Martin Jambor <mjambor@suse.cz>
9235
9236 PR fortran/57987
9237 * cgraphunit.c (cgraph_finalize_function): Assert that nested function
9238 is not re-finalized. Rename second parameter to no_collect.
9239
9240 2013-08-06 Martin Jambor <mjambor@suse.cz>
9241
9242 PR middle-end/58041
9243 * gimple-ssa-strength-reduction.c (replace_ref): Make sure built
9244 MEM_REF has proper alignment information.
9245
9246 2013-08-05 Oleg Endo <olegendo@gcc.gnu.org>
9247
9248 PR other/12081
9249 * recog.h (rtx (*insn_gen_fn) (rtx, ...)): Replace typedef with new
9250 class insn_gen_fn.
9251 * expr.c (move_by_pieces_1, store_by_pieces_2): Replace argument
9252 rtx (*) (rtx, ...) with insn_gen_fn.
9253 * genoutput.c (output_insn_data): Cast gen_? function pointers to
9254 insn_gen_fn::stored_funcptr. Add initializer braces.
9255
9256 2013-08-05 David Malcolm <dmalcolm@redhat.com>
9257
9258 Rewrite how instances of passes are cloned to remove assumptions
9259 about their sizes (thus allowing pass subclasses to have
9260 additional data fields, albeit non-GC-managed ones at this point).
9261
9262 * passes.c (make_pass_instance): Now that passes have clone
9263 methods, rewrite this function to eliminate XNEW and memcpy
9264 calls that used hardcoded sizes. Since this function no longer
9265 creates pass instances, rename it to...
9266 (add_pass_instance): ...this. Document the old way that passes were
9267 numbered and flagged, and rework this function to continue using it.
9268 (next_pass_1): Add an initial_pass argument for use by
9269 add_pass_instance.
9270 (position_pass): When adding multiple instances of a pass, use
9271 the pass's clone method, rather than relying on the XNEW/memcpy
9272 within the former make_pass_instance (now add_pass_instance).
9273 (pass_manager::pass_manager): When invoking next_pass_1, also supply
9274 the initial instance of the current pass within the pass manager.
9275
9276 2013-08-05 David Malcolm <dmalcolm@redhat.com>
9277
9278 This is the automated part of the conversion of passes from C
9279 structs to C++ classes.
9280
9281 Patch autogenerated by refactor_passes.py from
9282 https://github.com/davidmalcolm/gcc-refactoring-scripts
9283 revision 03fe39476a4c4ea450b49e087cfa817b5f92021e
9284
9285 * asan.c (pass_asan): Convert from a global struct to a subclass of
9286 gimple_opt_pass along with...
9287 (pass_data_asan): ...new pass_data instance and...
9288 (make_pass_asan): ...new function.
9289 (pass_asan_O0): Convert from a global struct to a subclass of
9290 gimple_opt_pass along with...
9291 (pass_data_asan_O0): ...new pass_data instance and...
9292 (make_pass_asan_O0): ...new function.
9293 * auto-inc-dec.c (pass_inc_dec): Convert from a global struct to a
9294 subclass of rtl_opt_pass along with...
9295 (pass_data_inc_dec): ...new pass_data instance and...
9296 (make_pass_inc_dec): ...new function.
9297 * bb-reorder.c (pass_reorder_blocks): Convert from a global struct to
9298 a subclass of rtl_opt_pass along with...
9299 (pass_data_reorder_blocks): ...new pass_data instance and...
9300 (make_pass_reorder_blocks): ...new function.
9301 (pass_duplicate_computed_gotos): Convert from a global struct to a
9302 subclass of rtl_opt_pass along with...
9303 (pass_data_duplicate_computed_gotos): ...new pass_data instance and...
9304 (make_pass_duplicate_computed_gotos): ...new function.
9305 (pass_partition_blocks): Convert from a global struct to a subclass of
9306 rtl_opt_pass along with...
9307 (pass_data_partition_blocks): ...new pass_data instance and...
9308 (make_pass_partition_blocks): ...new function.
9309 * bt-load.c (pass_branch_target_load_optimize1): Convert from a global
9310 struct to a subclass of rtl_opt_pass along with...
9311 (pass_data_branch_target_load_optimize1): ...new pass_data instance
9312 and...
9313 (make_pass_branch_target_load_optimize1): ...new function.
9314 (pass_branch_target_load_optimize2): Convert from a global struct to a
9315 subclass of rtl_opt_pass along with...
9316 (pass_data_branch_target_load_optimize2): ...new pass_data instance
9317 and...
9318 (make_pass_branch_target_load_optimize2): ...new function.
9319 * cfgcleanup.c (pass_jump): Convert from a global struct to a subclass
9320 of rtl_opt_pass along with...
9321 (pass_data_jump): ...new pass_data instance and...
9322 (make_pass_jump): ...new function.
9323 (pass_jump2): Convert from a global struct to a subclass of
9324 rtl_opt_pass along with...
9325 (pass_data_jump2): ...new pass_data instance and...
9326 (make_pass_jump2): ...new function.
9327 * cfgexpand.c (pass_expand): Convert from a global struct to a
9328 subclass of rtl_opt_pass along with...
9329 (pass_data_expand): ...new pass_data instance and...
9330 (make_pass_expand): ...new function.
9331 * cfgrtl.c (pass_free_cfg): Convert from a global struct to a subclass
9332 of rtl_opt_pass along with...
9333 (pass_data_free_cfg): ...new pass_data instance and...
9334 (make_pass_free_cfg): ...new function.
9335 (pass_into_cfg_layout_mode): Convert from a global struct to a
9336 subclass of rtl_opt_pass along with...
9337 (pass_data_into_cfg_layout_mode): ...new pass_data instance and...
9338 (make_pass_into_cfg_layout_mode): ...new function.
9339 (pass_outof_cfg_layout_mode): Convert from a global struct to a
9340 subclass of rtl_opt_pass along with...
9341 (pass_data_outof_cfg_layout_mode): ...new pass_data instance and...
9342 (make_pass_outof_cfg_layout_mode): ...new function.
9343 * cgraphbuild.c (pass_build_cgraph_edges): Convert from a global
9344 struct to a subclass of gimple_opt_pass along with...
9345 (pass_data_build_cgraph_edges): ...new pass_data instance and...
9346 (make_pass_build_cgraph_edges): ...new function.
9347 (pass_rebuild_cgraph_edges): Convert from a global struct to a
9348 subclass of gimple_opt_pass along with...
9349 (pass_data_rebuild_cgraph_edges): ...new pass_data instance and...
9350 (make_pass_rebuild_cgraph_edges): ...new function.
9351 (pass_remove_cgraph_callee_edges): Convert from a global struct to a
9352 subclass of gimple_opt_pass along with...
9353 (pass_data_remove_cgraph_callee_edges): ...new pass_data instance
9354 and...
9355 (make_pass_remove_cgraph_callee_edges): ...new function.
9356 * combine-stack-adj.c (pass_stack_adjustments): Convert from a global
9357 struct to a subclass of rtl_opt_pass along with...
9358 (pass_data_stack_adjustments): ...new pass_data instance and...
9359 (make_pass_stack_adjustments): ...new function.
9360 * combine.c (pass_combine): Convert from a global struct to a subclass
9361 of rtl_opt_pass along with...
9362 (pass_data_combine): ...new pass_data instance and...
9363 (make_pass_combine): ...new function.
9364 * compare-elim.c (pass_compare_elim_after_reload): Convert from a
9365 global struct to a subclass of rtl_opt_pass along with...
9366 (pass_data_compare_elim_after_reload): ...new pass_data instance
9367 and...
9368 (make_pass_compare_elim_after_reload): ...new function.
9369 * cprop.c (pass_rtl_cprop): Convert from a global struct to a subclass
9370 of rtl_opt_pass along with...
9371 (pass_data_rtl_cprop): ...new pass_data instance and...
9372 (make_pass_rtl_cprop): ...new function.
9373 * cse.c (pass_cse): Convert from a global struct to a subclass of
9374 rtl_opt_pass along with...
9375 (pass_data_cse): ...new pass_data instance and...
9376 (make_pass_cse): ...new function.
9377 (pass_cse2): Convert from a global struct to a subclass of
9378 rtl_opt_pass along with...
9379 (pass_data_cse2): ...new pass_data instance and...
9380 (make_pass_cse2): ...new function.
9381 (pass_cse_after_global_opts): Convert from a global struct to a
9382 subclass of rtl_opt_pass along with...
9383 (pass_data_cse_after_global_opts): ...new pass_data instance and...
9384 (make_pass_cse_after_global_opts): ...new function.
9385 * dce.c (pass_ud_rtl_dce): Convert from a global struct to a subclass
9386 of rtl_opt_pass along with...
9387 (pass_data_ud_rtl_dce): ...new pass_data instance and...
9388 (make_pass_ud_rtl_dce): ...new function.
9389 (pass_fast_rtl_dce): Convert from a global struct to a subclass of
9390 rtl_opt_pass along with...
9391 (pass_data_fast_rtl_dce): ...new pass_data instance and...
9392 (make_pass_fast_rtl_dce): ...new function.
9393 * df-core.c (pass_df_initialize_opt): Convert from a global struct to
9394 a subclass of rtl_opt_pass along with...
9395 (pass_data_df_initialize_opt): ...new pass_data instance and...
9396 (make_pass_df_initialize_opt): ...new function.
9397 (pass_df_initialize_no_opt): Convert from a global struct to a
9398 subclass of rtl_opt_pass along with...
9399 (pass_data_df_initialize_no_opt): ...new pass_data instance and...
9400 (make_pass_df_initialize_no_opt): ...new function.
9401 (pass_df_finish): Convert from a global struct to a subclass of
9402 rtl_opt_pass along with...
9403 (pass_data_df_finish): ...new pass_data instance and...
9404 (make_pass_df_finish): ...new function.
9405 * dse.c (pass_rtl_dse1): Convert from a global struct to a subclass of
9406 rtl_opt_pass along with...
9407 (pass_data_rtl_dse1): ...new pass_data instance and...
9408 (make_pass_rtl_dse1): ...new function.
9409 (pass_rtl_dse2): Convert from a global struct to a subclass of
9410 rtl_opt_pass along with...
9411 (pass_data_rtl_dse2): ...new pass_data instance and...
9412 (make_pass_rtl_dse2): ...new function.
9413 * dwarf2cfi.c (pass_dwarf2_frame): Convert from a global struct to a
9414 subclass of rtl_opt_pass along with...
9415 (pass_data_dwarf2_frame): ...new pass_data instance and...
9416 (make_pass_dwarf2_frame): ...new function.
9417 * except.c (pass_set_nothrow_function_flags): Convert from a global
9418 struct to a subclass of rtl_opt_pass along with...
9419 (pass_data_set_nothrow_function_flags): ...new pass_data instance
9420 and...
9421 (make_pass_set_nothrow_function_flags): ...new function.
9422 (pass_convert_to_eh_region_ranges): Convert from a global struct to a
9423 subclass of rtl_opt_pass along with...
9424 (pass_data_convert_to_eh_region_ranges): ...new pass_data instance
9425 and...
9426 (make_pass_convert_to_eh_region_ranges): ...new function.
9427 * final.c (pass_compute_alignments): Convert from a global struct to a
9428 subclass of rtl_opt_pass along with...
9429 (pass_data_compute_alignments): ...new pass_data instance and...
9430 (make_pass_compute_alignments): ...new function.
9431 (pass_final): Convert from a global struct to a subclass of
9432 rtl_opt_pass along with...
9433 (pass_data_final): ...new pass_data instance and...
9434 (make_pass_final): ...new function.
9435 (pass_shorten_branches): Convert from a global struct to a subclass of
9436 rtl_opt_pass along with...
9437 (pass_data_shorten_branches): ...new pass_data instance and...
9438 (make_pass_shorten_branches): ...new function.
9439 (pass_clean_state): Convert from a global struct to a subclass of
9440 rtl_opt_pass along with...
9441 (pass_data_clean_state): ...new pass_data instance and...
9442 (make_pass_clean_state): ...new function.
9443 * function.c (pass_instantiate_virtual_regs): Convert from a global
9444 struct to a subclass of rtl_opt_pass along with...
9445 (pass_data_instantiate_virtual_regs): ...new pass_data instance and...
9446 (make_pass_instantiate_virtual_regs): ...new function.
9447 (pass_leaf_regs): Convert from a global struct to a subclass of
9448 rtl_opt_pass along with...
9449 (pass_data_leaf_regs): ...new pass_data instance and...
9450 (make_pass_leaf_regs): ...new function.
9451 (pass_thread_prologue_and_epilogue): Convert from a global struct to a
9452 subclass of rtl_opt_pass along with...
9453 (pass_data_thread_prologue_and_epilogue): ...new pass_data instance
9454 and...
9455 (make_pass_thread_prologue_and_epilogue): ...new function.
9456 (pass_match_asm_constraints): Convert from a global struct to a
9457 subclass of rtl_opt_pass along with...
9458 (pass_data_match_asm_constraints): ...new pass_data instance and...
9459 (make_pass_match_asm_constraints): ...new function.
9460 * fwprop.c (pass_rtl_fwprop): Convert from a global struct to a
9461 subclass of rtl_opt_pass along with...
9462 (pass_data_rtl_fwprop): ...new pass_data instance and...
9463 (make_pass_rtl_fwprop): ...new function.
9464 (pass_rtl_fwprop_addr): Convert from a global struct to a subclass of
9465 rtl_opt_pass along with...
9466 (pass_data_rtl_fwprop_addr): ...new pass_data instance and...
9467 (make_pass_rtl_fwprop_addr): ...new function.
9468 * gcse.c (pass_rtl_pre): Convert from a global struct to a subclass of
9469 rtl_opt_pass along with...
9470 (pass_data_rtl_pre): ...new pass_data instance and...
9471 (make_pass_rtl_pre): ...new function.
9472 (pass_rtl_hoist): Convert from a global struct to a subclass of
9473 rtl_opt_pass along with...
9474 (pass_data_rtl_hoist): ...new pass_data instance and...
9475 (make_pass_rtl_hoist): ...new function.
9476 * gimple-low.c (pass_lower_cf): Convert from a global struct to a
9477 subclass of gimple_opt_pass along with...
9478 (pass_data_lower_cf): ...new pass_data instance and...
9479 (make_pass_lower_cf): ...new function.
9480 * gimple-ssa-strength-reduction.c (pass_strength_reduction): Convert
9481 from a global struct to a subclass of gimple_opt_pass along with...
9482 (pass_data_strength_reduction): ...new pass_data instance and...
9483 (make_pass_strength_reduction): ...new function.
9484 * ifcvt.c (pass_rtl_ifcvt): Convert from a global struct to a subclass
9485 of rtl_opt_pass along with...
9486 (pass_data_rtl_ifcvt): ...new pass_data instance and...
9487 (make_pass_rtl_ifcvt): ...new function.
9488 (pass_if_after_combine): Convert from a global struct to a subclass of
9489 rtl_opt_pass along with...
9490 (pass_data_if_after_combine): ...new pass_data instance and...
9491 (make_pass_if_after_combine): ...new function.
9492 (pass_if_after_reload): Convert from a global struct to a subclass of
9493 rtl_opt_pass along with...
9494 (pass_data_if_after_reload): ...new pass_data instance and...
9495 (make_pass_if_after_reload): ...new function.
9496 * init-regs.c (pass_initialize_regs): Convert from a global struct to
9497 a subclass of rtl_opt_pass along with...
9498 (pass_data_initialize_regs): ...new pass_data instance and...
9499 (make_pass_initialize_regs): ...new function.
9500 * ipa-cp.c (pass_ipa_cp): Convert from a global struct to a subclass
9501 of ipa_opt_pass_d along with...
9502 (pass_data_ipa_cp): ...new pass_data instance and...
9503 (make_pass_ipa_cp): ...new function.
9504 * ipa-inline-analysis.c (pass_inline_parameters): Convert from a
9505 global struct to a subclass of gimple_opt_pass along with...
9506 (pass_data_inline_parameters): ...new pass_data instance and...
9507 (make_pass_inline_parameters): ...new function.
9508 * ipa-inline.c (pass_early_inline): Convert from a global struct to a
9509 subclass of gimple_opt_pass along with...
9510 (pass_data_early_inline): ...new pass_data instance and...
9511 (make_pass_early_inline): ...new function.
9512 (pass_ipa_inline): Convert from a global struct to a subclass of
9513 ipa_opt_pass_d along with...
9514 (pass_data_ipa_inline): ...new pass_data instance and...
9515 (make_pass_ipa_inline): ...new function.
9516 * ipa-pure-const.c (pass_local_pure_const): Convert from a global
9517 struct to a subclass of gimple_opt_pass along with...
9518 (pass_data_local_pure_const): ...new pass_data instance and...
9519 (make_pass_local_pure_const): ...new function.
9520 (pass_ipa_pure_const): Convert from a global struct to a subclass of
9521 ipa_opt_pass_d along with...
9522 (pass_data_ipa_pure_const): ...new pass_data instance and...
9523 (make_pass_ipa_pure_const): ...new function.
9524 * ipa-reference.c (pass_ipa_reference): Convert from a global struct
9525 to a subclass of ipa_opt_pass_d along with...
9526 (pass_data_ipa_reference): ...new pass_data instance and...
9527 (make_pass_ipa_reference): ...new function.
9528 * ipa-split.c (pass_split_functions): Convert from a global struct to
9529 a subclass of gimple_opt_pass along with...
9530 (pass_data_split_functions): ...new pass_data instance and...
9531 (make_pass_split_functions): ...new function.
9532 (pass_feedback_split_functions): Convert from a global struct to a
9533 subclass of gimple_opt_pass along with...
9534 (pass_data_feedback_split_functions): ...new pass_data instance and...
9535 (make_pass_feedback_split_functions): ...new function.
9536 * ipa.c (pass_ipa_function_and_variable_visibility): Convert from a
9537 global struct to a subclass of simple_ipa_opt_pass along with...
9538 (pass_data_ipa_function_and_variable_visibility): ...new pass_data
9539 instance and...
9540 (make_pass_ipa_function_and_variable_visibility): ...new function.
9541 (pass_ipa_free_inline_summary): Convert from a global struct to a
9542 subclass of simple_ipa_opt_pass along with...
9543 (pass_data_ipa_free_inline_summary): ...new pass_data instance and...
9544 (make_pass_ipa_free_inline_summary): ...new function.
9545 (pass_ipa_whole_program_visibility): Convert from a global struct to a
9546 subclass of ipa_opt_pass_d along with...
9547 (pass_data_ipa_whole_program_visibility): ...new pass_data instance
9548 and...
9549 (make_pass_ipa_whole_program_visibility): ...new function.
9550 (pass_ipa_profile): Convert from a global struct to a subclass of
9551 ipa_opt_pass_d along with...
9552 (pass_data_ipa_profile): ...new pass_data instance and...
9553 (make_pass_ipa_profile): ...new function.
9554 (pass_ipa_cdtor_merge): Convert from a global struct to a subclass of
9555 ipa_opt_pass_d along with...
9556 (pass_data_ipa_cdtor_merge): ...new pass_data instance and...
9557 (make_pass_ipa_cdtor_merge): ...new function.
9558 * ira.c (pass_ira): Convert from a global struct to a subclass of
9559 rtl_opt_pass along with...
9560 (pass_data_ira): ...new pass_data instance and...
9561 (make_pass_ira): ...new function.
9562 (pass_reload): Convert from a global struct to a subclass of
9563 rtl_opt_pass along with...
9564 (pass_data_reload): ...new pass_data instance and...
9565 (make_pass_reload): ...new function.
9566 * jump.c (pass_cleanup_barriers): Convert from a global struct to a
9567 subclass of rtl_opt_pass along with...
9568 (pass_data_cleanup_barriers): ...new pass_data instance and...
9569 (make_pass_cleanup_barriers): ...new function.
9570 * loop-init.c (pass_loop2): Convert from a global struct to a subclass
9571 of rtl_opt_pass along with...
9572 (pass_data_loop2): ...new pass_data instance and...
9573 (make_pass_loop2): ...new function.
9574 (pass_rtl_loop_init): Convert from a global struct to a subclass of
9575 rtl_opt_pass along with...
9576 (pass_data_rtl_loop_init): ...new pass_data instance and...
9577 (make_pass_rtl_loop_init): ...new function.
9578 (pass_rtl_loop_done): Convert from a global struct to a subclass of
9579 rtl_opt_pass along with...
9580 (pass_data_rtl_loop_done): ...new pass_data instance and...
9581 (make_pass_rtl_loop_done): ...new function.
9582 (pass_rtl_move_loop_invariants): Convert from a global struct to a
9583 subclass of rtl_opt_pass along with...
9584 (pass_data_rtl_move_loop_invariants): ...new pass_data instance and...
9585 (make_pass_rtl_move_loop_invariants): ...new function.
9586 (pass_rtl_unswitch): Convert from a global struct to a subclass of
9587 rtl_opt_pass along with...
9588 (pass_data_rtl_unswitch): ...new pass_data instance and...
9589 (make_pass_rtl_unswitch): ...new function.
9590 (pass_rtl_unroll_and_peel_loops): Convert from a global struct to a
9591 subclass of rtl_opt_pass along with...
9592 (pass_data_rtl_unroll_and_peel_loops): ...new pass_data instance
9593 and...
9594 (make_pass_rtl_unroll_and_peel_loops): ...new function.
9595 (pass_rtl_doloop): Convert from a global struct to a subclass of
9596 rtl_opt_pass along with...
9597 (pass_data_rtl_doloop): ...new pass_data instance and...
9598 (make_pass_rtl_doloop): ...new function.
9599 * lower-subreg.c (pass_lower_subreg): Convert from a global struct to
9600 a subclass of rtl_opt_pass along with...
9601 (pass_data_lower_subreg): ...new pass_data instance and...
9602 (make_pass_lower_subreg): ...new function.
9603 (pass_lower_subreg2): Convert from a global struct to a subclass of
9604 rtl_opt_pass along with...
9605 (pass_data_lower_subreg2): ...new pass_data instance and...
9606 (make_pass_lower_subreg2): ...new function.
9607 * lto-streamer-out.c (pass_ipa_lto_gimple_out): Convert from a global
9608 struct to a subclass of ipa_opt_pass_d along with...
9609 (pass_data_ipa_lto_gimple_out): ...new pass_data instance and...
9610 (make_pass_ipa_lto_gimple_out): ...new function.
9611 (pass_ipa_lto_finish_out): Convert from a global struct to a subclass
9612 of ipa_opt_pass_d along with...
9613 (pass_data_ipa_lto_finish_out): ...new pass_data instance and...
9614 (make_pass_ipa_lto_finish_out): ...new function.
9615 * mode-switching.c (pass_mode_switching): Convert from a global struct
9616 to a subclass of rtl_opt_pass along with...
9617 (pass_data_mode_switching): ...new pass_data instance and...
9618 (make_pass_mode_switching): ...new function.
9619 * modulo-sched.c (pass_sms): Convert from a global struct to a
9620 subclass of rtl_opt_pass along with...
9621 (pass_data_sms): ...new pass_data instance and...
9622 (make_pass_sms): ...new function.
9623 * omp-low.c (pass_expand_omp): Convert from a global struct to a
9624 subclass of gimple_opt_pass along with...
9625 (pass_data_expand_omp): ...new pass_data instance and...
9626 (make_pass_expand_omp): ...new function.
9627 (pass_lower_omp): Convert from a global struct to a subclass of
9628 gimple_opt_pass along with...
9629 (pass_data_lower_omp): ...new pass_data instance and...
9630 (make_pass_lower_omp): ...new function.
9631 (pass_diagnose_omp_blocks): Convert from a global struct to a subclass
9632 of gimple_opt_pass along with...
9633 (pass_data_diagnose_omp_blocks): ...new pass_data instance and...
9634 (make_pass_diagnose_omp_blocks): ...new function.
9635 * passes.c (pass_early_local_passes): Convert from a global struct to
9636 a subclass of simple_ipa_opt_pass along with...
9637 (pass_data_early_local_passes): ...new pass_data instance and...
9638 (make_pass_early_local_passes): ...new function.
9639 (pass_all_early_optimizations): Convert from a global struct to a
9640 subclass of gimple_opt_pass along with...
9641 (pass_data_all_early_optimizations): ...new pass_data instance and...
9642 (make_pass_all_early_optimizations): ...new function.
9643 (pass_all_optimizations): Convert from a global struct to a subclass
9644 of gimple_opt_pass along with...
9645 (pass_data_all_optimizations): ...new pass_data instance and...
9646 (make_pass_all_optimizations): ...new function.
9647 (pass_all_optimizations_g): Convert from a global struct to a subclass
9648 of gimple_opt_pass along with...
9649 (pass_data_all_optimizations_g): ...new pass_data instance and...
9650 (make_pass_all_optimizations_g): ...new function.
9651 (pass_rest_of_compilation): Convert from a global struct to a subclass
9652 of rtl_opt_pass along with...
9653 (pass_data_rest_of_compilation): ...new pass_data instance and...
9654 (make_pass_rest_of_compilation): ...new function.
9655 (pass_postreload): Convert from a global struct to a subclass of
9656 rtl_opt_pass along with...
9657 (pass_data_postreload): ...new pass_data instance and...
9658 (make_pass_postreload): ...new function.
9659 * postreload-gcse.c (pass_gcse2): Convert from a global struct to a
9660 subclass of rtl_opt_pass along with...
9661 (pass_data_gcse2): ...new pass_data instance and...
9662 (make_pass_gcse2): ...new function.
9663 * postreload.c (pass_postreload_cse): Convert from a global struct to
9664 a subclass of rtl_opt_pass along with...
9665 (pass_data_postreload_cse): ...new pass_data instance and...
9666 (make_pass_postreload_cse): ...new function.
9667 * predict.c (pass_profile): Convert from a global struct to a subclass
9668 of gimple_opt_pass along with...
9669 (pass_data_profile): ...new pass_data instance and...
9670 (make_pass_profile): ...new function.
9671 (pass_strip_predict_hints): Convert from a global struct to a subclass
9672 of gimple_opt_pass along with...
9673 (pass_data_strip_predict_hints): ...new pass_data instance and...
9674 (make_pass_strip_predict_hints): ...new function.
9675 * recog.c (pass_peephole2): Convert from a global struct to a subclass
9676 of rtl_opt_pass along with...
9677 (pass_data_peephole2): ...new pass_data instance and...
9678 (make_pass_peephole2): ...new function.
9679 (pass_split_all_insns): Convert from a global struct to a subclass of
9680 rtl_opt_pass along with...
9681 (pass_data_split_all_insns): ...new pass_data instance and...
9682 (make_pass_split_all_insns): ...new function.
9683 (pass_split_after_reload): Convert from a global struct to a subclass
9684 of rtl_opt_pass along with...
9685 (pass_data_split_after_reload): ...new pass_data instance and...
9686 (make_pass_split_after_reload): ...new function.
9687 (pass_split_before_regstack): Convert from a global struct to a
9688 subclass of rtl_opt_pass along with...
9689 (pass_data_split_before_regstack): ...new pass_data instance and...
9690 (make_pass_split_before_regstack): ...new function.
9691 (pass_split_before_sched2): Convert from a global struct to a subclass
9692 of rtl_opt_pass along with...
9693 (pass_data_split_before_sched2): ...new pass_data instance and...
9694 (make_pass_split_before_sched2): ...new function.
9695 (pass_split_for_shorten_branches): Convert from a global struct to a
9696 subclass of rtl_opt_pass along with...
9697 (pass_data_split_for_shorten_branches): ...new pass_data instance
9698 and...
9699 (make_pass_split_for_shorten_branches): ...new function.
9700 * ree.c (pass_ree): Convert from a global struct to a subclass of
9701 rtl_opt_pass along with...
9702 (pass_data_ree): ...new pass_data instance and...
9703 (make_pass_ree): ...new function.
9704 * reg-stack.c (pass_stack_regs): Convert from a global struct to a
9705 subclass of rtl_opt_pass along with...
9706 (pass_data_stack_regs): ...new pass_data instance and...
9707 (make_pass_stack_regs): ...new function.
9708 (pass_stack_regs_run): Convert from a global struct to a subclass of
9709 rtl_opt_pass along with...
9710 (pass_data_stack_regs_run): ...new pass_data instance and...
9711 (make_pass_stack_regs_run): ...new function.
9712 * regcprop.c (pass_cprop_hardreg): Convert from a global struct to a
9713 subclass of rtl_opt_pass along with...
9714 (pass_data_cprop_hardreg): ...new pass_data instance and...
9715 (make_pass_cprop_hardreg): ...new function.
9716 * reginfo.c (pass_reginfo_init): Convert from a global struct to a
9717 subclass of rtl_opt_pass along with...
9718 (pass_data_reginfo_init): ...new pass_data instance and...
9719 (make_pass_reginfo_init): ...new function.
9720 * regmove.c (pass_regmove): Convert from a global struct to a subclass
9721 of rtl_opt_pass along with...
9722 (pass_data_regmove): ...new pass_data instance and...
9723 (make_pass_regmove): ...new function.
9724 * regrename.c (pass_regrename): Convert from a global struct to a
9725 subclass of rtl_opt_pass along with...
9726 (pass_data_regrename): ...new pass_data instance and...
9727 (make_pass_regrename): ...new function.
9728 * reorg.c (pass_delay_slots): Convert from a global struct to a
9729 subclass of rtl_opt_pass along with...
9730 (pass_data_delay_slots): ...new pass_data instance and...
9731 (make_pass_delay_slots): ...new function.
9732 (pass_machine_reorg): Convert from a global struct to a subclass of
9733 rtl_opt_pass along with...
9734 (pass_data_machine_reorg): ...new pass_data instance and...
9735 (make_pass_machine_reorg): ...new function.
9736 * sched-rgn.c (pass_sched): Convert from a global struct to a subclass
9737 of rtl_opt_pass along with...
9738 (pass_data_sched): ...new pass_data instance and...
9739 (make_pass_sched): ...new function.
9740 (pass_sched2): Convert from a global struct to a subclass of
9741 rtl_opt_pass along with...
9742 (pass_data_sched2): ...new pass_data instance and...
9743 (make_pass_sched2): ...new function.
9744 * stack-ptr-mod.c (pass_stack_ptr_mod): Convert from a global struct
9745 to a subclass of rtl_opt_pass along with...
9746 (pass_data_stack_ptr_mod): ...new pass_data instance and...
9747 (make_pass_stack_ptr_mod): ...new function.
9748 * store-motion.c (pass_rtl_store_motion): Convert from a global struct
9749 to a subclass of rtl_opt_pass along with...
9750 (pass_data_rtl_store_motion): ...new pass_data instance and...
9751 (make_pass_rtl_store_motion): ...new function.
9752 * tracer.c (pass_tracer): Convert from a global struct to a subclass
9753 of gimple_opt_pass along with...
9754 (pass_data_tracer): ...new pass_data instance and...
9755 (make_pass_tracer): ...new function.
9756 * trans-mem.c (pass_diagnose_tm_blocks): Convert from a global struct
9757 to a subclass of gimple_opt_pass along with...
9758 (pass_data_diagnose_tm_blocks): ...new pass_data instance and...
9759 (make_pass_diagnose_tm_blocks): ...new function.
9760 (pass_lower_tm): Convert from a global struct to a subclass of
9761 gimple_opt_pass along with...
9762 (pass_data_lower_tm): ...new pass_data instance and...
9763 (make_pass_lower_tm): ...new function.
9764 (pass_tm_init): Convert from a global struct to a subclass of
9765 gimple_opt_pass along with...
9766 (pass_data_tm_init): ...new pass_data instance and...
9767 (make_pass_tm_init): ...new function.
9768 (pass_tm_mark): Convert from a global struct to a subclass of
9769 gimple_opt_pass along with...
9770 (pass_data_tm_mark): ...new pass_data instance and...
9771 (make_pass_tm_mark): ...new function.
9772 (pass_tm_edges): Convert from a global struct to a subclass of
9773 gimple_opt_pass along with...
9774 (pass_data_tm_edges): ...new pass_data instance and...
9775 (make_pass_tm_edges): ...new function.
9776 (pass_tm_memopt): Convert from a global struct to a subclass of
9777 gimple_opt_pass along with...
9778 (pass_data_tm_memopt): ...new pass_data instance and...
9779 (make_pass_tm_memopt): ...new function.
9780 (pass_ipa_tm): Convert from a global struct to a subclass of
9781 simple_ipa_opt_pass along with...
9782 (pass_data_ipa_tm): ...new pass_data instance and...
9783 (make_pass_ipa_tm): ...new function.
9784 * tree-call-cdce.c (pass_call_cdce): Convert from a global struct to a
9785 subclass of gimple_opt_pass along with...
9786 (pass_data_call_cdce): ...new pass_data instance and...
9787 (make_pass_call_cdce): ...new function.
9788 * tree-cfg.c (pass_build_cfg): Convert from a global struct to a
9789 subclass of gimple_opt_pass along with...
9790 (pass_data_build_cfg): ...new pass_data instance and...
9791 (make_pass_build_cfg): ...new function.
9792 (pass_split_crit_edges): Convert from a global struct to a subclass of
9793 gimple_opt_pass along with...
9794 (pass_data_split_crit_edges): ...new pass_data instance and...
9795 (make_pass_split_crit_edges): ...new function.
9796 (pass_warn_function_return): Convert from a global struct to a
9797 subclass of gimple_opt_pass along with...
9798 (pass_data_warn_function_return): ...new pass_data instance and...
9799 (make_pass_warn_function_return): ...new function.
9800 (pass_warn_function_noreturn): Convert from a global struct to a
9801 subclass of gimple_opt_pass along with...
9802 (pass_data_warn_function_noreturn): ...new pass_data instance and...
9803 (make_pass_warn_function_noreturn): ...new function.
9804 (pass_warn_unused_result): Convert from a global struct to a subclass
9805 of gimple_opt_pass along with...
9806 (pass_data_warn_unused_result): ...new pass_data instance and...
9807 (make_pass_warn_unused_result): ...new function.
9808 * tree-cfgcleanup.c (pass_merge_phi): Convert from a global struct to
9809 a subclass of gimple_opt_pass along with...
9810 (pass_data_merge_phi): ...new pass_data instance and...
9811 (make_pass_merge_phi): ...new function.
9812 * tree-complex.c (pass_lower_complex): Convert from a global struct to
9813 a subclass of gimple_opt_pass along with...
9814 (pass_data_lower_complex): ...new pass_data instance and...
9815 (make_pass_lower_complex): ...new function.
9816 (pass_lower_complex_O0): Convert from a global struct to a subclass of
9817 gimple_opt_pass along with...
9818 (pass_data_lower_complex_O0): ...new pass_data instance and...
9819 (make_pass_lower_complex_O0): ...new function.
9820 * tree-eh.c (pass_lower_eh): Convert from a global struct to a
9821 subclass of gimple_opt_pass along with...
9822 (pass_data_lower_eh): ...new pass_data instance and...
9823 (make_pass_lower_eh): ...new function.
9824 (pass_refactor_eh): Convert from a global struct to a subclass of
9825 gimple_opt_pass along with...
9826 (pass_data_refactor_eh): ...new pass_data instance and...
9827 (make_pass_refactor_eh): ...new function.
9828 (pass_lower_resx): Convert from a global struct to a subclass of
9829 gimple_opt_pass along with...
9830 (pass_data_lower_resx): ...new pass_data instance and...
9831 (make_pass_lower_resx): ...new function.
9832 (pass_lower_eh_dispatch): Convert from a global struct to a subclass
9833 of gimple_opt_pass along with...
9834 (pass_data_lower_eh_dispatch): ...new pass_data instance and...
9835 (make_pass_lower_eh_dispatch): ...new function.
9836 (pass_cleanup_eh): Convert from a global struct to a subclass of
9837 gimple_opt_pass along with...
9838 (pass_data_cleanup_eh): ...new pass_data instance and...
9839 (make_pass_cleanup_eh): ...new function.
9840 * tree-emutls.c (pass_ipa_lower_emutls): Convert from a global struct
9841 to a subclass of simple_ipa_opt_pass along with...
9842 (pass_data_ipa_lower_emutls): ...new pass_data instance and...
9843 (make_pass_ipa_lower_emutls): ...new function.
9844 * tree-if-conv.c (pass_if_conversion): Convert from a global struct to
9845 a subclass of gimple_opt_pass along with...
9846 (pass_data_if_conversion): ...new pass_data instance and...
9847 (make_pass_if_conversion): ...new function.
9848 * tree-into-ssa.c (pass_build_ssa): Convert from a global struct to a
9849 subclass of gimple_opt_pass along with...
9850 (pass_data_build_ssa): ...new pass_data instance and...
9851 (make_pass_build_ssa): ...new function.
9852 * tree-loop-distribution.c (pass_loop_distribution): Convert from a
9853 global struct to a subclass of gimple_opt_pass along with...
9854 (pass_data_loop_distribution): ...new pass_data instance and...
9855 (make_pass_loop_distribution): ...new function.
9856 * tree-mudflap.c (pass_mudflap_1): Convert from a global struct to a
9857 subclass of gimple_opt_pass along with...
9858 (pass_data_mudflap_1): ...new pass_data instance and...
9859 (make_pass_mudflap_1): ...new function.
9860 (pass_mudflap_2): Convert from a global struct to a subclass of
9861 gimple_opt_pass along with...
9862 (pass_data_mudflap_2): ...new pass_data instance and...
9863 (make_pass_mudflap_2): ...new function.
9864 * tree-nomudflap.c (pass_mudflap_1): Convert from a global struct to a
9865 subclass of gimple_opt_pass along with...
9866 (pass_data_mudflap_1): ...new pass_data instance and...
9867 (make_pass_mudflap_1): ...new function.
9868 (pass_mudflap_2): Convert from a global struct to a subclass of
9869 gimple_opt_pass along with...
9870 (pass_data_mudflap_2): ...new pass_data instance and...
9871 (make_pass_mudflap_2): ...new function.
9872 * tree-nrv.c (pass_nrv): Convert from a global struct to a subclass of
9873 gimple_opt_pass along with...
9874 (pass_data_nrv): ...new pass_data instance and...
9875 (make_pass_nrv): ...new function.
9876 (pass_return_slot): Convert from a global struct to a subclass of
9877 gimple_opt_pass along with...
9878 (pass_data_return_slot): ...new pass_data instance and...
9879 (make_pass_return_slot): ...new function.
9880 * tree-object-size.c (pass_object_sizes): Convert from a global struct
9881 to a subclass of gimple_opt_pass along with...
9882 (pass_data_object_sizes): ...new pass_data instance and...
9883 (make_pass_object_sizes): ...new function.
9884 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Convert from a
9885 global struct to a subclass of gimple_opt_pass along with...
9886 (pass_data_cleanup_cfg_post_optimizing): ...new pass_data instance
9887 and...
9888 (make_pass_cleanup_cfg_post_optimizing): ...new function.
9889 (pass_fixup_cfg): Convert from a global struct to a subclass of
9890 gimple_opt_pass along with...
9891 (pass_data_fixup_cfg): ...new pass_data instance and...
9892 (make_pass_fixup_cfg): ...new function.
9893 * tree-pass.h (pass_mudflap_1): Replace declaration with that of...
9894 (make_pass_mudflap_1): ...new function.
9895 (pass_mudflap_2): Replace declaration with that of...
9896 (make_pass_mudflap_2): ...new function.
9897 (pass_asan): Replace declaration with that of...
9898 (make_pass_asan): ...new function.
9899 (pass_asan_O0): Replace declaration with that of...
9900 (make_pass_asan_O0): ...new function.
9901 (pass_tsan): Replace declaration with that of...
9902 (make_pass_tsan): ...new function.
9903 (pass_tsan_O0): Replace declaration with that of...
9904 (make_pass_tsan_O0): ...new function.
9905 (pass_lower_cf): Replace declaration with that of...
9906 (make_pass_lower_cf): ...new function.
9907 (pass_refactor_eh): Replace declaration with that of...
9908 (make_pass_refactor_eh): ...new function.
9909 (pass_lower_eh): Replace declaration with that of...
9910 (make_pass_lower_eh): ...new function.
9911 (pass_lower_eh_dispatch): Replace declaration with that of...
9912 (make_pass_lower_eh_dispatch): ...new function.
9913 (pass_lower_resx): Replace declaration with that of...
9914 (make_pass_lower_resx): ...new function.
9915 (pass_build_cfg): Replace declaration with that of...
9916 (make_pass_build_cfg): ...new function.
9917 (pass_early_tree_profile): Replace declaration with that of...
9918 (make_pass_early_tree_profile): ...new function.
9919 (pass_cleanup_eh): Replace declaration with that of...
9920 (make_pass_cleanup_eh): ...new function.
9921 (pass_sra): Replace declaration with that of...
9922 (make_pass_sra): ...new function.
9923 (pass_sra_early): Replace declaration with that of...
9924 (make_pass_sra_early): ...new function.
9925 (pass_early_ipa_sra): Replace declaration with that of...
9926 (make_pass_early_ipa_sra): ...new function.
9927 (pass_tail_recursion): Replace declaration with that of...
9928 (make_pass_tail_recursion): ...new function.
9929 (pass_tail_calls): Replace declaration with that of...
9930 (make_pass_tail_calls): ...new function.
9931 (pass_tree_loop): Replace declaration with that of...
9932 (make_pass_tree_loop): ...new function.
9933 (pass_tree_loop_init): Replace declaration with that of...
9934 (make_pass_tree_loop_init): ...new function.
9935 (pass_lim): Replace declaration with that of...
9936 (make_pass_lim): ...new function.
9937 (pass_tree_unswitch): Replace declaration with that of...
9938 (make_pass_tree_unswitch): ...new function.
9939 (pass_predcom): Replace declaration with that of...
9940 (make_pass_predcom): ...new function.
9941 (pass_iv_canon): Replace declaration with that of...
9942 (make_pass_iv_canon): ...new function.
9943 (pass_scev_cprop): Replace declaration with that of...
9944 (make_pass_scev_cprop): ...new function.
9945 (pass_empty_loop): Replace declaration with that of...
9946 (make_pass_empty_loop): ...new function.
9947 (pass_record_bounds): Replace declaration with that of...
9948 (make_pass_record_bounds): ...new function.
9949 (pass_graphite): Replace declaration with that of...
9950 (make_pass_graphite): ...new function.
9951 (pass_graphite_transforms): Replace declaration with that of...
9952 (make_pass_graphite_transforms): ...new function.
9953 (pass_if_conversion): Replace declaration with that of...
9954 (make_pass_if_conversion): ...new function.
9955 (pass_loop_distribution): Replace declaration with that of...
9956 (make_pass_loop_distribution): ...new function.
9957 (pass_vectorize): Replace declaration with that of...
9958 (make_pass_vectorize): ...new function.
9959 (pass_slp_vectorize): Replace declaration with that of...
9960 (make_pass_slp_vectorize): ...new function.
9961 (pass_complete_unroll): Replace declaration with that of...
9962 (make_pass_complete_unroll): ...new function.
9963 (pass_complete_unrolli): Replace declaration with that of...
9964 (make_pass_complete_unrolli): ...new function.
9965 (pass_parallelize_loops): Replace declaration with that of...
9966 (make_pass_parallelize_loops): ...new function.
9967 (pass_loop_prefetch): Replace declaration with that of...
9968 (make_pass_loop_prefetch): ...new function.
9969 (pass_iv_optimize): Replace declaration with that of...
9970 (make_pass_iv_optimize): ...new function.
9971 (pass_tree_loop_done): Replace declaration with that of...
9972 (make_pass_tree_loop_done): ...new function.
9973 (pass_ch): Replace declaration with that of...
9974 (make_pass_ch): ...new function.
9975 (pass_ccp): Replace declaration with that of...
9976 (make_pass_ccp): ...new function.
9977 (pass_phi_only_cprop): Replace declaration with that of...
9978 (make_pass_phi_only_cprop): ...new function.
9979 (pass_build_ssa): Replace declaration with that of...
9980 (make_pass_build_ssa): ...new function.
9981 (pass_build_alias): Replace declaration with that of...
9982 (make_pass_build_alias): ...new function.
9983 (pass_build_ealias): Replace declaration with that of...
9984 (make_pass_build_ealias): ...new function.
9985 (pass_dominator): Replace declaration with that of...
9986 (make_pass_dominator): ...new function.
9987 (pass_dce): Replace declaration with that of...
9988 (make_pass_dce): ...new function.
9989 (pass_dce_loop): Replace declaration with that of...
9990 (make_pass_dce_loop): ...new function.
9991 (pass_cd_dce): Replace declaration with that of...
9992 (make_pass_cd_dce): ...new function.
9993 (pass_call_cdce): Replace declaration with that of...
9994 (make_pass_call_cdce): ...new function.
9995 (pass_merge_phi): Replace declaration with that of...
9996 (make_pass_merge_phi): ...new function.
9997 (pass_split_crit_edges): Replace declaration with that of...
9998 (make_pass_split_crit_edges): ...new function.
9999 (pass_pre): Replace declaration with that of...
10000 (make_pass_pre): ...new function.
10001 (pass_profile): Replace declaration with that of...
10002 (make_pass_profile): ...new function.
10003 (pass_strip_predict_hints): Replace declaration with that of...
10004 (make_pass_strip_predict_hints): ...new function.
10005 (pass_lower_complex_O0): Replace declaration with that of...
10006 (make_pass_lower_complex_O0): ...new function.
10007 (pass_lower_complex): Replace declaration with that of...
10008 (make_pass_lower_complex): ...new function.
10009 (pass_lower_vector): Replace declaration with that of...
10010 (make_pass_lower_vector): ...new function.
10011 (pass_lower_vector_ssa): Replace declaration with that of...
10012 (make_pass_lower_vector_ssa): ...new function.
10013 (pass_lower_omp): Replace declaration with that of...
10014 (make_pass_lower_omp): ...new function.
10015 (pass_diagnose_omp_blocks): Replace declaration with that of...
10016 (make_pass_diagnose_omp_blocks): ...new function.
10017 (pass_expand_omp): Replace declaration with that of...
10018 (make_pass_expand_omp): ...new function.
10019 (pass_expand_omp_ssa): Replace declaration with that of...
10020 (make_pass_expand_omp_ssa): ...new function.
10021 (pass_object_sizes): Replace declaration with that of...
10022 (make_pass_object_sizes): ...new function.
10023 (pass_strlen): Replace declaration with that of...
10024 (make_pass_strlen): ...new function.
10025 (pass_fold_builtins): Replace declaration with that of...
10026 (make_pass_fold_builtins): ...new function.
10027 (pass_stdarg): Replace declaration with that of...
10028 (make_pass_stdarg): ...new function.
10029 (pass_early_warn_uninitialized): Replace declaration with that of...
10030 (make_pass_early_warn_uninitialized): ...new function.
10031 (pass_late_warn_uninitialized): Replace declaration with that of...
10032 (make_pass_late_warn_uninitialized): ...new function.
10033 (pass_cse_reciprocals): Replace declaration with that of...
10034 (make_pass_cse_reciprocals): ...new function.
10035 (pass_cse_sincos): Replace declaration with that of...
10036 (make_pass_cse_sincos): ...new function.
10037 (pass_optimize_bswap): Replace declaration with that of...
10038 (make_pass_optimize_bswap): ...new function.
10039 (pass_optimize_widening_mul): Replace declaration with that of...
10040 (make_pass_optimize_widening_mul): ...new function.
10041 (pass_warn_function_return): Replace declaration with that of...
10042 (make_pass_warn_function_return): ...new function.
10043 (pass_warn_function_noreturn): Replace declaration with that of...
10044 (make_pass_warn_function_noreturn): ...new function.
10045 (pass_cselim): Replace declaration with that of...
10046 (make_pass_cselim): ...new function.
10047 (pass_phiopt): Replace declaration with that of...
10048 (make_pass_phiopt): ...new function.
10049 (pass_forwprop): Replace declaration with that of...
10050 (make_pass_forwprop): ...new function.
10051 (pass_phiprop): Replace declaration with that of...
10052 (make_pass_phiprop): ...new function.
10053 (pass_tree_ifcombine): Replace declaration with that of...
10054 (make_pass_tree_ifcombine): ...new function.
10055 (pass_dse): Replace declaration with that of...
10056 (make_pass_dse): ...new function.
10057 (pass_nrv): Replace declaration with that of...
10058 (make_pass_nrv): ...new function.
10059 (pass_rename_ssa_copies): Replace declaration with that of...
10060 (make_pass_rename_ssa_copies): ...new function.
10061 (pass_sink_code): Replace declaration with that of...
10062 (make_pass_sink_code): ...new function.
10063 (pass_fre): Replace declaration with that of...
10064 (make_pass_fre): ...new function.
10065 (pass_check_data_deps): Replace declaration with that of...
10066 (make_pass_check_data_deps): ...new function.
10067 (pass_copy_prop): Replace declaration with that of...
10068 (make_pass_copy_prop): ...new function.
10069 (pass_vrp): Replace declaration with that of...
10070 (make_pass_vrp): ...new function.
10071 (pass_uncprop): Replace declaration with that of...
10072 (make_pass_uncprop): ...new function.
10073 (pass_return_slot): Replace declaration with that of...
10074 (make_pass_return_slot): ...new function.
10075 (pass_reassoc): Replace declaration with that of...
10076 (make_pass_reassoc): ...new function.
10077 (pass_rebuild_cgraph_edges): Replace declaration with that of...
10078 (make_pass_rebuild_cgraph_edges): ...new function.
10079 (pass_remove_cgraph_callee_edges): Replace declaration with that of...
10080 (make_pass_remove_cgraph_callee_edges): ...new function.
10081 (pass_build_cgraph_edges): Replace declaration with that of...
10082 (make_pass_build_cgraph_edges): ...new function.
10083 (pass_local_pure_const): Replace declaration with that of...
10084 (make_pass_local_pure_const): ...new function.
10085 (pass_tracer): Replace declaration with that of...
10086 (make_pass_tracer): ...new function.
10087 (pass_warn_unused_result): Replace declaration with that of...
10088 (make_pass_warn_unused_result): ...new function.
10089 (pass_diagnose_tm_blocks): Replace declaration with that of...
10090 (make_pass_diagnose_tm_blocks): ...new function.
10091 (pass_lower_tm): Replace declaration with that of...
10092 (make_pass_lower_tm): ...new function.
10093 (pass_tm_init): Replace declaration with that of...
10094 (make_pass_tm_init): ...new function.
10095 (pass_tm_mark): Replace declaration with that of...
10096 (make_pass_tm_mark): ...new function.
10097 (pass_tm_memopt): Replace declaration with that of...
10098 (make_pass_tm_memopt): ...new function.
10099 (pass_tm_edges): Replace declaration with that of...
10100 (make_pass_tm_edges): ...new function.
10101 (pass_split_functions): Replace declaration with that of...
10102 (make_pass_split_functions): ...new function.
10103 (pass_feedback_split_functions): Replace declaration with that of...
10104 (make_pass_feedback_split_functions): ...new function.
10105 (pass_strength_reduction): Replace declaration with that of...
10106 (make_pass_strength_reduction): ...new function.
10107 (pass_ipa_lower_emutls): Replace declaration with that of...
10108 (make_pass_ipa_lower_emutls): ...new function.
10109 (pass_ipa_function_and_variable_visibility): Replace declaration with
10110 that of...
10111 (make_pass_ipa_function_and_variable_visibility): ...new function.
10112 (pass_ipa_tree_profile): Replace declaration with that of...
10113 (make_pass_ipa_tree_profile): ...new function.
10114 (pass_early_local_passes): Replace declaration with that of...
10115 (make_pass_early_local_passes): ...new function.
10116 (pass_ipa_whole_program_visibility): Replace declaration with that
10117 of...
10118 (make_pass_ipa_whole_program_visibility): ...new function.
10119 (pass_ipa_lto_gimple_out): Replace declaration with that of...
10120 (make_pass_ipa_lto_gimple_out): ...new function.
10121 (pass_ipa_increase_alignment): Replace declaration with that of...
10122 (make_pass_ipa_increase_alignment): ...new function.
10123 (pass_ipa_inline): Replace declaration with that of...
10124 (make_pass_ipa_inline): ...new function.
10125 (pass_ipa_free_lang_data): Replace declaration with that of...
10126 (make_pass_ipa_free_lang_data): ...new function.
10127 (pass_ipa_free_inline_summary): Replace declaration with that of...
10128 (make_pass_ipa_free_inline_summary): ...new function.
10129 (pass_ipa_cp): Replace declaration with that of...
10130 (make_pass_ipa_cp): ...new function.
10131 (pass_ipa_reference): Replace declaration with that of...
10132 (make_pass_ipa_reference): ...new function.
10133 (pass_ipa_pure_const): Replace declaration with that of...
10134 (make_pass_ipa_pure_const): ...new function.
10135 (pass_ipa_pta): Replace declaration with that of...
10136 (make_pass_ipa_pta): ...new function.
10137 (pass_ipa_lto_finish_out): Replace declaration with that of...
10138 (make_pass_ipa_lto_finish_out): ...new function.
10139 (pass_ipa_tm): Replace declaration with that of...
10140 (make_pass_ipa_tm): ...new function.
10141 (pass_ipa_profile): Replace declaration with that of...
10142 (make_pass_ipa_profile): ...new function.
10143 (pass_ipa_cdtor_merge): Replace declaration with that of...
10144 (make_pass_ipa_cdtor_merge): ...new function.
10145 (pass_cleanup_cfg_post_optimizing): Replace declaration with that
10146 of...
10147 (make_pass_cleanup_cfg_post_optimizing): ...new function.
10148 (pass_init_datastructures): Replace declaration with that of...
10149 (make_pass_init_datastructures): ...new function.
10150 (pass_fixup_cfg): Replace declaration with that of...
10151 (make_pass_fixup_cfg): ...new function.
10152 (pass_expand): Replace declaration with that of...
10153 (make_pass_expand): ...new function.
10154 (pass_instantiate_virtual_regs): Replace declaration with that of...
10155 (make_pass_instantiate_virtual_regs): ...new function.
10156 (pass_rtl_fwprop): Replace declaration with that of...
10157 (make_pass_rtl_fwprop): ...new function.
10158 (pass_rtl_fwprop_addr): Replace declaration with that of...
10159 (make_pass_rtl_fwprop_addr): ...new function.
10160 (pass_jump): Replace declaration with that of...
10161 (make_pass_jump): ...new function.
10162 (pass_jump2): Replace declaration with that of...
10163 (make_pass_jump2): ...new function.
10164 (pass_lower_subreg): Replace declaration with that of...
10165 (make_pass_lower_subreg): ...new function.
10166 (pass_cse): Replace declaration with that of...
10167 (make_pass_cse): ...new function.
10168 (pass_fast_rtl_dce): Replace declaration with that of...
10169 (make_pass_fast_rtl_dce): ...new function.
10170 (pass_ud_rtl_dce): Replace declaration with that of...
10171 (make_pass_ud_rtl_dce): ...new function.
10172 (pass_rtl_dce): Replace declaration with that of...
10173 (make_pass_rtl_dce): ...new function.
10174 (pass_rtl_dse1): Replace declaration with that of...
10175 (make_pass_rtl_dse1): ...new function.
10176 (pass_rtl_dse2): Replace declaration with that of...
10177 (make_pass_rtl_dse2): ...new function.
10178 (pass_rtl_dse3): Replace declaration with that of...
10179 (make_pass_rtl_dse3): ...new function.
10180 (pass_rtl_cprop): Replace declaration with that of...
10181 (make_pass_rtl_cprop): ...new function.
10182 (pass_rtl_pre): Replace declaration with that of...
10183 (make_pass_rtl_pre): ...new function.
10184 (pass_rtl_hoist): Replace declaration with that of...
10185 (make_pass_rtl_hoist): ...new function.
10186 (pass_rtl_store_motion): Replace declaration with that of...
10187 (make_pass_rtl_store_motion): ...new function.
10188 (pass_cse_after_global_opts): Replace declaration with that of...
10189 (make_pass_cse_after_global_opts): ...new function.
10190 (pass_rtl_ifcvt): Replace declaration with that of...
10191 (make_pass_rtl_ifcvt): ...new function.
10192 (pass_into_cfg_layout_mode): Replace declaration with that of...
10193 (make_pass_into_cfg_layout_mode): ...new function.
10194 (pass_outof_cfg_layout_mode): Replace declaration with that of...
10195 (make_pass_outof_cfg_layout_mode): ...new function.
10196 (pass_loop2): Replace declaration with that of...
10197 (make_pass_loop2): ...new function.
10198 (pass_rtl_loop_init): Replace declaration with that of...
10199 (make_pass_rtl_loop_init): ...new function.
10200 (pass_rtl_move_loop_invariants): Replace declaration with that of...
10201 (make_pass_rtl_move_loop_invariants): ...new function.
10202 (pass_rtl_unswitch): Replace declaration with that of...
10203 (make_pass_rtl_unswitch): ...new function.
10204 (pass_rtl_unroll_and_peel_loops): Replace declaration with that of...
10205 (make_pass_rtl_unroll_and_peel_loops): ...new function.
10206 (pass_rtl_doloop): Replace declaration with that of...
10207 (make_pass_rtl_doloop): ...new function.
10208 (pass_rtl_loop_done): Replace declaration with that of...
10209 (make_pass_rtl_loop_done): ...new function.
10210 (pass_web): Replace declaration with that of...
10211 (make_pass_web): ...new function.
10212 (pass_cse2): Replace declaration with that of...
10213 (make_pass_cse2): ...new function.
10214 (pass_df_initialize_opt): Replace declaration with that of...
10215 (make_pass_df_initialize_opt): ...new function.
10216 (pass_df_initialize_no_opt): Replace declaration with that of...
10217 (make_pass_df_initialize_no_opt): ...new function.
10218 (pass_reginfo_init): Replace declaration with that of...
10219 (make_pass_reginfo_init): ...new function.
10220 (pass_inc_dec): Replace declaration with that of...
10221 (make_pass_inc_dec): ...new function.
10222 (pass_stack_ptr_mod): Replace declaration with that of...
10223 (make_pass_stack_ptr_mod): ...new function.
10224 (pass_initialize_regs): Replace declaration with that of...
10225 (make_pass_initialize_regs): ...new function.
10226 (pass_combine): Replace declaration with that of...
10227 (make_pass_combine): ...new function.
10228 (pass_if_after_combine): Replace declaration with that of...
10229 (make_pass_if_after_combine): ...new function.
10230 (pass_ree): Replace declaration with that of...
10231 (make_pass_ree): ...new function.
10232 (pass_partition_blocks): Replace declaration with that of...
10233 (make_pass_partition_blocks): ...new function.
10234 (pass_match_asm_constraints): Replace declaration with that of...
10235 (make_pass_match_asm_constraints): ...new function.
10236 (pass_regmove): Replace declaration with that of...
10237 (make_pass_regmove): ...new function.
10238 (pass_split_all_insns): Replace declaration with that of...
10239 (make_pass_split_all_insns): ...new function.
10240 (pass_fast_rtl_byte_dce): Replace declaration with that of...
10241 (make_pass_fast_rtl_byte_dce): ...new function.
10242 (pass_lower_subreg2): Replace declaration with that of...
10243 (make_pass_lower_subreg2): ...new function.
10244 (pass_mode_switching): Replace declaration with that of...
10245 (make_pass_mode_switching): ...new function.
10246 (pass_sms): Replace declaration with that of...
10247 (make_pass_sms): ...new function.
10248 (pass_sched): Replace declaration with that of...
10249 (make_pass_sched): ...new function.
10250 (pass_ira): Replace declaration with that of...
10251 (make_pass_ira): ...new function.
10252 (pass_reload): Replace declaration with that of...
10253 (make_pass_reload): ...new function.
10254 (pass_clean_state): Replace declaration with that of...
10255 (make_pass_clean_state): ...new function.
10256 (pass_branch_prob): Replace declaration with that of...
10257 (make_pass_branch_prob): ...new function.
10258 (pass_value_profile_transformations): Replace declaration with that
10259 of...
10260 (make_pass_value_profile_transformations): ...new function.
10261 (pass_postreload_cse): Replace declaration with that of...
10262 (make_pass_postreload_cse): ...new function.
10263 (pass_gcse2): Replace declaration with that of...
10264 (make_pass_gcse2): ...new function.
10265 (pass_split_after_reload): Replace declaration with that of...
10266 (make_pass_split_after_reload): ...new function.
10267 (pass_branch_target_load_optimize1): Replace declaration with that
10268 of...
10269 (make_pass_branch_target_load_optimize1): ...new function.
10270 (pass_thread_prologue_and_epilogue): Replace declaration with that
10271 of...
10272 (make_pass_thread_prologue_and_epilogue): ...new function.
10273 (pass_stack_adjustments): Replace declaration with that of...
10274 (make_pass_stack_adjustments): ...new function.
10275 (pass_peephole2): Replace declaration with that of...
10276 (make_pass_peephole2): ...new function.
10277 (pass_if_after_reload): Replace declaration with that of...
10278 (make_pass_if_after_reload): ...new function.
10279 (pass_regrename): Replace declaration with that of...
10280 (make_pass_regrename): ...new function.
10281 (pass_cprop_hardreg): Replace declaration with that of...
10282 (make_pass_cprop_hardreg): ...new function.
10283 (pass_reorder_blocks): Replace declaration with that of...
10284 (make_pass_reorder_blocks): ...new function.
10285 (pass_branch_target_load_optimize2): Replace declaration with that
10286 of...
10287 (make_pass_branch_target_load_optimize2): ...new function.
10288 (pass_leaf_regs): Replace declaration with that of...
10289 (make_pass_leaf_regs): ...new function.
10290 (pass_split_before_sched2): Replace declaration with that of...
10291 (make_pass_split_before_sched2): ...new function.
10292 (pass_compare_elim_after_reload): Replace declaration with that of...
10293 (make_pass_compare_elim_after_reload): ...new function.
10294 (pass_sched2): Replace declaration with that of...
10295 (make_pass_sched2): ...new function.
10296 (pass_stack_regs): Replace declaration with that of...
10297 (make_pass_stack_regs): ...new function.
10298 (pass_stack_regs_run): Replace declaration with that of...
10299 (make_pass_stack_regs_run): ...new function.
10300 (pass_df_finish): Replace declaration with that of...
10301 (make_pass_df_finish): ...new function.
10302 (pass_compute_alignments): Replace declaration with that of...
10303 (make_pass_compute_alignments): ...new function.
10304 (pass_duplicate_computed_gotos): Replace declaration with that of...
10305 (make_pass_duplicate_computed_gotos): ...new function.
10306 (pass_variable_tracking): Replace declaration with that of...
10307 (make_pass_variable_tracking): ...new function.
10308 (pass_free_cfg): Replace declaration with that of...
10309 (make_pass_free_cfg): ...new function.
10310 (pass_machine_reorg): Replace declaration with that of...
10311 (make_pass_machine_reorg): ...new function.
10312 (pass_cleanup_barriers): Replace declaration with that of...
10313 (make_pass_cleanup_barriers): ...new function.
10314 (pass_delay_slots): Replace declaration with that of...
10315 (make_pass_delay_slots): ...new function.
10316 (pass_split_for_shorten_branches): Replace declaration with that of...
10317 (make_pass_split_for_shorten_branches): ...new function.
10318 (pass_split_before_regstack): Replace declaration with that of...
10319 (make_pass_split_before_regstack): ...new function.
10320 (pass_convert_to_eh_region_ranges): Replace declaration with that
10321 of...
10322 (make_pass_convert_to_eh_region_ranges): ...new function.
10323 (pass_shorten_branches): Replace declaration with that of...
10324 (make_pass_shorten_branches): ...new function.
10325 (pass_set_nothrow_function_flags): Replace declaration with that of...
10326 (make_pass_set_nothrow_function_flags): ...new function.
10327 (pass_dwarf2_frame): Replace declaration with that of...
10328 (make_pass_dwarf2_frame): ...new function.
10329 (pass_final): Replace declaration with that of...
10330 (make_pass_final): ...new function.
10331 (pass_rtl_seqabstr): Replace declaration with that of...
10332 (make_pass_rtl_seqabstr): ...new function.
10333 (pass_release_ssa_names): Replace declaration with that of...
10334 (make_pass_release_ssa_names): ...new function.
10335 (pass_early_inline): Replace declaration with that of...
10336 (make_pass_early_inline): ...new function.
10337 (pass_inline_parameters): Replace declaration with that of...
10338 (make_pass_inline_parameters): ...new function.
10339 (pass_update_address_taken): Replace declaration with that of...
10340 (make_pass_update_address_taken): ...new function.
10341 (pass_convert_switch): Replace declaration with that of...
10342 (make_pass_convert_switch): ...new function.
10343 * tree-profile.c (pass_ipa_tree_profile): Convert from a global struct
10344 to a subclass of simple_ipa_opt_pass along with...
10345 (pass_data_ipa_tree_profile): ...new pass_data instance and...
10346 (make_pass_ipa_tree_profile): ...new function.
10347 * tree-sra.c (pass_sra_early): Convert from a global struct to a
10348 subclass of gimple_opt_pass along with...
10349 (pass_data_sra_early): ...new pass_data instance and...
10350 (make_pass_sra_early): ...new function.
10351 (pass_sra): Convert from a global struct to a subclass of
10352 gimple_opt_pass along with...
10353 (pass_data_sra): ...new pass_data instance and...
10354 (make_pass_sra): ...new function.
10355 (pass_early_ipa_sra): Convert from a global struct to a subclass of
10356 gimple_opt_pass along with...
10357 (pass_data_early_ipa_sra): ...new pass_data instance and...
10358 (make_pass_early_ipa_sra): ...new function.
10359 * tree-ssa-ccp.c (pass_ccp): Convert from a global struct to a
10360 subclass of gimple_opt_pass along with...
10361 (pass_data_ccp): ...new pass_data instance and...
10362 (make_pass_ccp): ...new function.
10363 (pass_fold_builtins): Convert from a global struct to a subclass of
10364 gimple_opt_pass along with...
10365 (pass_data_fold_builtins): ...new pass_data instance and...
10366 (make_pass_fold_builtins): ...new function.
10367 * tree-ssa-copy.c (pass_copy_prop): Convert from a global struct to a
10368 subclass of gimple_opt_pass along with...
10369 (pass_data_copy_prop): ...new pass_data instance and...
10370 (make_pass_copy_prop): ...new function.
10371 * tree-ssa-copyrename.c (pass_rename_ssa_copies): Convert from a
10372 global struct to a subclass of gimple_opt_pass along with...
10373 (pass_data_rename_ssa_copies): ...new pass_data instance and...
10374 (make_pass_rename_ssa_copies): ...new function.
10375 * tree-ssa-dce.c (pass_dce): Convert from a global struct to a
10376 subclass of gimple_opt_pass along with...
10377 (pass_data_dce): ...new pass_data instance and...
10378 (make_pass_dce): ...new function.
10379 (pass_dce_loop): Convert from a global struct to a subclass of
10380 gimple_opt_pass along with...
10381 (pass_data_dce_loop): ...new pass_data instance and...
10382 (make_pass_dce_loop): ...new function.
10383 (pass_cd_dce): Convert from a global struct to a subclass of
10384 gimple_opt_pass along with...
10385 (pass_data_cd_dce): ...new pass_data instance and...
10386 (make_pass_cd_dce): ...new function.
10387 * tree-ssa-dom.c (pass_dominator): Convert from a global struct to a
10388 subclass of gimple_opt_pass along with...
10389 (pass_data_dominator): ...new pass_data instance and...
10390 (make_pass_dominator): ...new function.
10391 (pass_phi_only_cprop): Convert from a global struct to a subclass of
10392 gimple_opt_pass along with...
10393 (pass_data_phi_only_cprop): ...new pass_data instance and...
10394 (make_pass_phi_only_cprop): ...new function.
10395 * tree-ssa-dse.c (pass_dse): Convert from a global struct to a
10396 subclass of gimple_opt_pass along with...
10397 (pass_data_dse): ...new pass_data instance and...
10398 (make_pass_dse): ...new function.
10399 * tree-ssa-forwprop.c (pass_forwprop): Convert from a global struct to
10400 a subclass of gimple_opt_pass along with...
10401 (pass_data_forwprop): ...new pass_data instance and...
10402 (make_pass_forwprop): ...new function.
10403 * tree-ssa-ifcombine.c (pass_tree_ifcombine): Convert from a global
10404 struct to a subclass of gimple_opt_pass along with...
10405 (pass_data_tree_ifcombine): ...new pass_data instance and...
10406 (make_pass_tree_ifcombine): ...new function.
10407 * tree-ssa-loop-ch.c (pass_ch): Convert from a global struct to a
10408 subclass of gimple_opt_pass along with...
10409 (pass_data_ch): ...new pass_data instance and...
10410 (make_pass_ch): ...new function.
10411 * tree-ssa-loop.c (pass_tree_loop): Convert from a global struct to a
10412 subclass of gimple_opt_pass along with...
10413 (pass_data_tree_loop): ...new pass_data instance and...
10414 (make_pass_tree_loop): ...new function.
10415 (pass_tree_loop_init): Convert from a global struct to a subclass of
10416 gimple_opt_pass along with...
10417 (pass_data_tree_loop_init): ...new pass_data instance and...
10418 (make_pass_tree_loop_init): ...new function.
10419 (pass_lim): Convert from a global struct to a subclass of
10420 gimple_opt_pass along with...
10421 (pass_data_lim): ...new pass_data instance and...
10422 (make_pass_lim): ...new function.
10423 (pass_tree_unswitch): Convert from a global struct to a subclass of
10424 gimple_opt_pass along with...
10425 (pass_data_tree_unswitch): ...new pass_data instance and...
10426 (make_pass_tree_unswitch): ...new function.
10427 (pass_predcom): Convert from a global struct to a subclass of
10428 gimple_opt_pass along with...
10429 (pass_data_predcom): ...new pass_data instance and...
10430 (make_pass_predcom): ...new function.
10431 (pass_vectorize): Convert from a global struct to a subclass of
10432 gimple_opt_pass along with...
10433 (pass_data_vectorize): ...new pass_data instance and...
10434 (make_pass_vectorize): ...new function.
10435 (pass_graphite): Convert from a global struct to a subclass of
10436 gimple_opt_pass along with...
10437 (pass_data_graphite): ...new pass_data instance and...
10438 (make_pass_graphite): ...new function.
10439 (pass_graphite_transforms): Convert from a global struct to a subclass
10440 of gimple_opt_pass along with...
10441 (pass_data_graphite_transforms): ...new pass_data instance and...
10442 (make_pass_graphite_transforms): ...new function.
10443 (pass_check_data_deps): Convert from a global struct to a subclass of
10444 gimple_opt_pass along with...
10445 (pass_data_check_data_deps): ...new pass_data instance and...
10446 (make_pass_check_data_deps): ...new function.
10447 (pass_iv_canon): Convert from a global struct to a subclass of
10448 gimple_opt_pass along with...
10449 (pass_data_iv_canon): ...new pass_data instance and...
10450 (make_pass_iv_canon): ...new function.
10451 (pass_scev_cprop): Convert from a global struct to a subclass of
10452 gimple_opt_pass along with...
10453 (pass_data_scev_cprop): ...new pass_data instance and...
10454 (make_pass_scev_cprop): ...new function.
10455 (pass_record_bounds): Convert from a global struct to a subclass of
10456 gimple_opt_pass along with...
10457 (pass_data_record_bounds): ...new pass_data instance and...
10458 (make_pass_record_bounds): ...new function.
10459 (pass_complete_unroll): Convert from a global struct to a subclass of
10460 gimple_opt_pass along with...
10461 (pass_data_complete_unroll): ...new pass_data instance and...
10462 (make_pass_complete_unroll): ...new function.
10463 (pass_complete_unrolli): Convert from a global struct to a subclass of
10464 gimple_opt_pass along with...
10465 (pass_data_complete_unrolli): ...new pass_data instance and...
10466 (make_pass_complete_unrolli): ...new function.
10467 (pass_parallelize_loops): Convert from a global struct to a subclass
10468 of gimple_opt_pass along with...
10469 (pass_data_parallelize_loops): ...new pass_data instance and...
10470 (make_pass_parallelize_loops): ...new function.
10471 (pass_loop_prefetch): Convert from a global struct to a subclass of
10472 gimple_opt_pass along with...
10473 (pass_data_loop_prefetch): ...new pass_data instance and...
10474 (make_pass_loop_prefetch): ...new function.
10475 (pass_iv_optimize): Convert from a global struct to a subclass of
10476 gimple_opt_pass along with...
10477 (pass_data_iv_optimize): ...new pass_data instance and...
10478 (make_pass_iv_optimize): ...new function.
10479 (pass_tree_loop_done): Convert from a global struct to a subclass of
10480 gimple_opt_pass along with...
10481 (pass_data_tree_loop_done): ...new pass_data instance and...
10482 (make_pass_tree_loop_done): ...new function.
10483 * tree-ssa-math-opts.c (pass_cse_reciprocals): Convert from a global
10484 struct to a subclass of gimple_opt_pass along with...
10485 (pass_data_cse_reciprocals): ...new pass_data instance and...
10486 (make_pass_cse_reciprocals): ...new function.
10487 (pass_cse_sincos): Convert from a global struct to a subclass of
10488 gimple_opt_pass along with...
10489 (pass_data_cse_sincos): ...new pass_data instance and...
10490 (make_pass_cse_sincos): ...new function.
10491 (pass_optimize_bswap): Convert from a global struct to a subclass of
10492 gimple_opt_pass along with...
10493 (pass_data_optimize_bswap): ...new pass_data instance and...
10494 (make_pass_optimize_bswap): ...new function.
10495 (pass_optimize_widening_mul): Convert from a global struct to a
10496 subclass of gimple_opt_pass along with...
10497 (pass_data_optimize_widening_mul): ...new pass_data instance and...
10498 (make_pass_optimize_widening_mul): ...new function.
10499 * tree-ssa-phiopt.c (pass_phiopt): Convert from a global struct to a
10500 subclass of gimple_opt_pass along with...
10501 (pass_data_phiopt): ...new pass_data instance and...
10502 (make_pass_phiopt): ...new function.
10503 (pass_cselim): Convert from a global struct to a subclass of
10504 gimple_opt_pass along with...
10505 (pass_data_cselim): ...new pass_data instance and...
10506 (make_pass_cselim): ...new function.
10507 * tree-ssa-phiprop.c (pass_phiprop): Convert from a global struct to a
10508 subclass of gimple_opt_pass along with...
10509 (pass_data_phiprop): ...new pass_data instance and...
10510 (make_pass_phiprop): ...new function.
10511 * tree-ssa-pre.c (pass_pre): Convert from a global struct to a
10512 subclass of gimple_opt_pass along with...
10513 (pass_data_pre): ...new pass_data instance and...
10514 (make_pass_pre): ...new function.
10515 (pass_fre): Convert from a global struct to a subclass of
10516 gimple_opt_pass along with...
10517 (pass_data_fre): ...new pass_data instance and...
10518 (make_pass_fre): ...new function.
10519 * tree-ssa-reassoc.c (pass_reassoc): Convert from a global struct to a
10520 subclass of gimple_opt_pass along with...
10521 (pass_data_reassoc): ...new pass_data instance and...
10522 (make_pass_reassoc): ...new function.
10523 * tree-ssa-sink.c (pass_sink_code): Convert from a global struct to a
10524 subclass of gimple_opt_pass along with...
10525 (pass_data_sink_code): ...new pass_data instance and...
10526 (make_pass_sink_code): ...new function.
10527 * tree-ssa-strlen.c (pass_strlen): Convert from a global struct to a
10528 subclass of gimple_opt_pass along with...
10529 (pass_data_strlen): ...new pass_data instance and...
10530 (make_pass_strlen): ...new function.
10531 * tree-ssa-structalias.c (pass_build_alias): Convert from a global
10532 struct to a subclass of gimple_opt_pass along with...
10533 (pass_data_build_alias): ...new pass_data instance and...
10534 (make_pass_build_alias): ...new function.
10535 (pass_build_ealias): Convert from a global struct to a subclass of
10536 gimple_opt_pass along with...
10537 (pass_data_build_ealias): ...new pass_data instance and...
10538 (make_pass_build_ealias): ...new function.
10539 (pass_ipa_pta): Convert from a global struct to a subclass of
10540 simple_ipa_opt_pass along with...
10541 (pass_data_ipa_pta): ...new pass_data instance and...
10542 (make_pass_ipa_pta): ...new function.
10543 * tree-ssa-uncprop.c (pass_uncprop): Convert from a global struct to a
10544 subclass of gimple_opt_pass along with...
10545 (pass_data_uncprop): ...new pass_data instance and...
10546 (make_pass_uncprop): ...new function.
10547 * tree-ssa-uninit.c (pass_late_warn_uninitialized): Convert from a
10548 global struct to a subclass of gimple_opt_pass along with...
10549 (pass_data_late_warn_uninitialized): ...new pass_data instance and...
10550 (make_pass_late_warn_uninitialized): ...new function.
10551 * tree-ssa.c (pass_init_datastructures): Convert from a global struct
10552 to a subclass of gimple_opt_pass along with...
10553 (pass_data_init_datastructures): ...new pass_data instance and...
10554 (make_pass_init_datastructures): ...new function.
10555 (pass_early_warn_uninitialized): Convert from a global struct to a
10556 subclass of gimple_opt_pass along with...
10557 (pass_data_early_warn_uninitialized): ...new pass_data instance and...
10558 (make_pass_early_warn_uninitialized): ...new function.
10559 (pass_update_address_taken): Convert from a global struct to a
10560 subclass of gimple_opt_pass along with...
10561 (pass_data_update_address_taken): ...new pass_data instance and...
10562 (make_pass_update_address_taken): ...new function.
10563 * tree-ssanames.c (pass_release_ssa_names): Convert from a global
10564 struct to a subclass of gimple_opt_pass along with...
10565 (pass_data_release_ssa_names): ...new pass_data instance and...
10566 (make_pass_release_ssa_names): ...new function.
10567 * tree-stdarg.c (pass_stdarg): Convert from a global struct to a
10568 subclass of gimple_opt_pass along with...
10569 (pass_data_stdarg): ...new pass_data instance and...
10570 (make_pass_stdarg): ...new function.
10571 * tree-switch-conversion.c (pass_convert_switch): Convert from a
10572 global struct to a subclass of gimple_opt_pass along with...
10573 (pass_data_convert_switch): ...new pass_data instance and...
10574 (make_pass_convert_switch): ...new function.
10575 * tree-tailcall.c (pass_tail_recursion): Convert from a global struct
10576 to a subclass of gimple_opt_pass along with...
10577 (pass_data_tail_recursion): ...new pass_data instance and...
10578 (make_pass_tail_recursion): ...new function.
10579 (pass_tail_calls): Convert from a global struct to a subclass of
10580 gimple_opt_pass along with...
10581 (pass_data_tail_calls): ...new pass_data instance and...
10582 (make_pass_tail_calls): ...new function.
10583 * tree-vect-generic.c (pass_lower_vector): Convert from a global
10584 struct to a subclass of gimple_opt_pass along with...
10585 (pass_data_lower_vector): ...new pass_data instance and...
10586 (make_pass_lower_vector): ...new function.
10587 (pass_lower_vector_ssa): Convert from a global struct to a subclass of
10588 gimple_opt_pass along with...
10589 (pass_data_lower_vector_ssa): ...new pass_data instance and...
10590 (make_pass_lower_vector_ssa): ...new function.
10591 * tree-vectorizer.c (pass_slp_vectorize): Convert from a global struct
10592 to a subclass of gimple_opt_pass along with...
10593 (pass_data_slp_vectorize): ...new pass_data instance and...
10594 (make_pass_slp_vectorize): ...new function.
10595 (pass_ipa_increase_alignment): Convert from a global struct to a
10596 subclass of simple_ipa_opt_pass along with...
10597 (pass_data_ipa_increase_alignment): ...new pass_data instance and...
10598 (make_pass_ipa_increase_alignment): ...new function.
10599 * tree-vrp.c (pass_vrp): Convert from a global struct to a subclass of
10600 gimple_opt_pass along with...
10601 (pass_data_vrp): ...new pass_data instance and...
10602 (make_pass_vrp): ...new function.
10603 * tree.c (pass_ipa_free_lang_data): Convert from a global struct to a
10604 subclass of simple_ipa_opt_pass along with...
10605 (pass_data_ipa_free_lang_data): ...new pass_data instance and...
10606 (make_pass_ipa_free_lang_data): ...new function.
10607 * tsan.c (pass_tsan): Convert from a global struct to a subclass of
10608 gimple_opt_pass along with...
10609 (pass_data_tsan): ...new pass_data instance and...
10610 (make_pass_tsan): ...new function.
10611 (pass_tsan_O0): Convert from a global struct to a subclass of
10612 gimple_opt_pass along with...
10613 (pass_data_tsan_O0): ...new pass_data instance and...
10614 (make_pass_tsan_O0): ...new function.
10615 * var-tracking.c (pass_variable_tracking): Convert from a global
10616 struct to a subclass of rtl_opt_pass along with...
10617 (pass_data_variable_tracking): ...new pass_data instance and...
10618 (make_pass_variable_tracking): ...new function.
10619 * web.c (pass_web): Convert from a global struct to a subclass of
10620 rtl_opt_pass along with...
10621 (pass_data_web): ...new pass_data instance and...
10622 (make_pass_web): ...new function.
10623 * config/epiphany/epiphany.h (pass_mode_switch_use): Replace
10624 declaration with that of...
10625 (make_pass_mode_switch_use): ...new function.
10626 (pass_resolve_sw_modes): Replace declaration with that of...
10627 (make_pass_resolve_sw_modes): ...new function.
10628 * config/epiphany/mode-switch-use.c (pass_mode_switch_use): Convert
10629 from a global struct to a subclass of rtl_opt_pass along with...
10630 (pass_data_mode_switch_use): ...new pass_data instance and...
10631 (make_pass_mode_switch_use): ...new function.
10632 * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes): Convert
10633 from a global struct to a subclass of rtl_opt_pass along with...
10634 (pass_data_resolve_sw_modes): ...new pass_data instance and...
10635 (make_pass_resolve_sw_modes): ...new function.
10636 * config/i386/i386.c (pass_insert_vzeroupper): Convert from a global
10637 struct to a subclass of rtl_opt_pass along with...
10638 (pass_data_insert_vzeroupper): ...new pass_data instance and...
10639 (make_pass_insert_vzeroupper): ...new function.
10640 * config/sparc/sparc.c (pass_work_around_errata): Convert from a
10641 global struct to a subclass of rtl_opt_pass along with...
10642 (pass_data_work_around_errata): ...new pass_data instance and...
10643 (make_pass_work_around_errata): ...new function.
10644 * config/mips/mips.c (pass_mips_machine_reorg2): Convert from a global
10645 struct to a subclass of rtl_opt_pass along with...
10646 (pass_data_mips_machine_reorg2): ...new pass_data instance and...
10647 (make_pass_mips_machine_reorg2): ...new function.
10648
10649 2013-08-05 David Malcolm <dmalcolm@redhat.com>
10650
10651 * passes.c (pass_manager::operator new): New.
10652
10653 2013-08-05 David Malcolm <dmalcolm@redhat.com>
10654
10655 Handwritten part of conversion of passes to C++ classes.
10656
10657 * Makefile.in (PASS_MANAGER_H): Add dep on pass-instances.def.
10658 (toplev.o): Add dep on PASS_MANAGER_H.
10659 * cgraphunit.c (cgraph_process_new_functions): Rework invocation
10660 of early local pases to reflect this moving from a global to a
10661 member of gcc::pass_manager.
10662 (cgraph_add_new_function): Likewise.
10663 * lto-cgraph.c (lto_output_node): Update for conversion of
10664 struct ipa_opt_pass_d to a C++ subclass of opt_pass.
10665 * passes.c (opt_pass::clone): New.
10666 (opt_pass::gate): New.
10667 (opt_pass::execute): New.
10668 (opt_pass::opt_pass): New.
10669 (pass_manager::execute_early_local_passes): New.
10670 (pass_manager::execute_pass_mode_switching): new.
10671 (finish_optimization_passes): Convert to...
10672 (pass_manager::finish_optimization_passes): ...this.
10673 (finish_optimization_passes): Update for conversion of passes to
10674 C++ classes.
10675 (register_dump_files_1): Use has_gate since we cannot portably
10676 check a vtable entry against NULL.
10677 (dump_one_pass): Likewise.
10678 (ipa_write_summaries_2): Likewise.
10679 (ipa_write_optimization_summaries_1): Likewise.
10680 (ipa_read_summaries_1): Likewise.
10681 (ipa_read_optimization_summaries_1): Likewise.
10682 (execute_ipa_stmt_fixups): Likewise.
10683 (pass_manager::pass_manager): Rewrite pass-creation, invoking
10684 pass-creation functions rather than wiring up globals, and
10685 storing the results in fields of pass_manager generated using
10686 pass-instances.def.
10687 (pass_manager::dump_profile_report): Update for conversion of
10688 passes to C++ classes.
10689 (pass_manager::execute_ipa_summary_passes): Likewise.
10690 (execute_one_ipa_transform_pass): Likewise.
10691 (execute_one_pass): Use has_gate and has_execute since we cannot
10692 portably check a vtable entry against NULL.
10693 * pass_manager.h (pass_manager::finish_optimization_passes): New.
10694 (pass_manager): Use pass-instances.def to add fields for the
10695 various pass instances.
10696 * toplev.c (finalize): Update for move of
10697 finish_optimization_passes to a method of gcc::pass_manager.
10698 * toplev.h (finish_optimization_passes): Move to method of class
10699 pass_manager.
10700 * tree-pass.h (struct pass_data): New.
10701 (opt_pass): Convert to C++ class, make it a subclass of pass_data.
10702 (opt_pass::gate): Convert to virtual function.
10703 (opt_pass::~opt_pass): New.
10704 (opt_pass::clone): New.
10705 (opt_pass::execute): Convert to virtual function.
10706 (opt_pass::opt_pass): New.
10707 (opt_pass::ctxt_): new.
10708 (gimple_opt_pass): Convert to subclass of opt_pass.
10709 (gimple_opt_pass::gimple_opt_pass): New.
10710 (rtl_opt_pass): Convert to subclass of opt_pass.
10711 (rtl_opt_pass::rtl_opt_pass): New.
10712 (ipa_opt_pass_d): Convert to subclass of opt_pass.
10713 (ipa_opt_pass_d::ipa_opt_pass_d): New.
10714 (simple_ipa_opt_pass): Convert to subclass of opt_pass.
10715 (simple_ipa_opt_pass::simple_ipa_opt_pass): New.
10716 * config/i386/i386.c (rest_of_handle_insert_vzeroupper): Rework
10717 invocation of pass_mode_switching to reflect this moving from a
10718 global to a member of gcc::pass_manager.
10719 (ix86_option_override): Rework how pass_insert_vzeroupper is
10720 added to the pass_manager to reflect autogenerated changes.
10721 * config/i386/t-i386 (i386.o) Add deps on CONTEXT_H and PASS_MANAGER_H.
10722
10723 2013-08-05 Richard Earnshaw <rearnsha@arm.com>
10724
10725 PR rtl-optimization/57708
10726 * recog.c (peep2_find_free_register): Validate all regs in a
10727 multi-reg mode.
10728
10729 2013-08-05 Jan Hubicka <jh@suse.cz>
10730
10731 PR lto/57602
10732 * cgraph.c (verify_cgraph_node): Accept local flags from other
10733 partitions.
10734 * ipa.c (symtab_remove_unreachable_nodes): Do not clear local flag.
10735 (function_and_variable_visibility): Likewise.
10736 * trans-mem.c (ipa_tm_create_version): TM versions are not local.
10737
10738 2013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
10739
10740 * graph.c (init_graph_slim_pretty_print): Remove.
10741 (print_graph_cfg): Do not call it. Use local pretty printer.
10742 (start_graph_dump): Likewise.
10743
10744 2013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
10745
10746 * gimple-pretty-print.c (buffer): Remove.
10747 (initialized): Likewise.
10748 (maybe_init_pretty_print): Likewise.
10749 (print_gimple_stmt): Do not call it. Use non-static local
10750 pretty_printer variable.
10751 (print_gimple_expr): Likewise.
10752 (print_gimple_seq): Likewise.
10753 (gimple_dump_bb): Likewise.
10754
10755 2013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
10756
10757 * asan.c (asan_pp): Remove.
10758 (asan_pp_initialized): Likewise.
10759 (asan_pp_initialize): Likewise.
10760 (asan_pp_string): Take a pretty_printer parameter. Adjust callers.
10761 (asan_emit_stack_protection): Tidy. Use local pretty printer.
10762 (asan_add_global): Likewise.
10763
10764 2013-08-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
10765
10766 * pretty-print.h (pp_base): Remove. Adjust dependent macros.
10767 * diagnostic.h (diagnostic_flush_buffer): Adjust.
10768 * pretty-print.c (pp_formatted_text_data): Likewise.
10769 (pp_indent): Rename from pp_base_indent.
10770 (pp_format): Rename from pp_base_format.
10771 (pp_output_formatted_text): Rename from pp_base_output_formatted_text.
10772 (pp_format_verbatim): Rename from pp_base_format_verbatim.
10773 (pp_flush): Rename from pp_base_flush.
10774 (pp_set_line_maximum_length): Rename from
10775 pp_base_set_line_maximum_length.
10776 (pp_clear_output_area): Rename from pp_base_clear_output_area.
10777 (pp_set_prefix): Rename from pp_base_set_prefix.
10778 (pp_destroy_prefix): Rename from pp_base_destroy_prefix.
10779 (pp_emit_prefix): Rename from pp_base_emit_prefix.
10780 (pp_append_text): Rename from pp_base_append_text.
10781 (pp_formatted_text): Rename from pp_base_formatted_text.
10782 (pp_last_position_in_text): Rename from pp_base_last_position_in_text.
10783 (pp_remaining_character_count_for_line): Rename from
10784 pp_base_remaining_character_count_for_line.
10785 (pp_newline): Rename from pp_base_newline.
10786 (pp_character): Rename from pp_base_character.
10787 (pp_string): Rename from pp_base_string.
10788 (pp_maybe_space): Rename from pp_base_maybe_space.
10789 * asan.c (asan_pp_string): Adjust.
10790 (asan_emit_stack_protection): Likewise.
10791 (asan_add_global): Likewise.
10792 * sched-vis.c (str_pattern_slim): Adjust pretty printer function call.
10793 * tree-mudflap.c (mf_varname_tree): Likewise.
10794 * tree-pretty-print.c (pp_tree_identifier): Rename from
10795 pp_base_tree_identifier.
10796 * tree-pretty-print.h (pp_tree_identifier): Remove macro definition.
10797 Declare as function.
10798
10799 2013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
10800
10801 * pretty-print.h (pp_bar_bar): New.
10802 (pp_ampersand_ampersand): Likewise.
10803 (pp_less_equal): Likewise.
10804 (pp_greater_equal): Likewise.
10805 * gimple-pretty-print.c (dump_ternary_rhs): Use specialized pretty
10806 printer functions instead of pp_string or operators and punctuators.
10807 (dump_gimple_call): Likewise.
10808 (dump_gimple_omp_for): Likewise.
10809 (dump_gimple_transaction): Likewise.
10810 (dump_gimple_phi): Likewise.
10811 (pp_gimple_stmt_1): Likewise.
10812 * sched-vis.c (print_insn): Likewise.
10813 * tree-mudflap.c (mf_varname_tree): Likewise.
10814 * tree-pretty-print.c (dump_block_node): Likewise.
10815 (dump_generic_node): Likewise.
10816
10817 2013-08-02 Jan Hubicka <jh@suse.cz>
10818
10819 * lto-cgraph.c (compute_ltrans_boundary): Add abstract origins into
10820 boundaries.
10821 * lto-streamer-out.c (tree_is_indexable): Results decls and
10822 parm decls are not indexable.
10823 (DFS_write_tree_body): Do not follow args and results.
10824 (hash_tree): Likewise.
10825 (output_functions): Rearrange so struct function is needed
10826 only when real body is output; be able to also ouptut abstract
10827 functions; output DECL_ARGUMENTS and DECL_RESULT.
10828 (lto_output): When not in WPA, ale store abstract functions.
10829 (write_symbol): Do not care about RESULT_DECL.
10830 (output_symbol_p): Handle correctly sbtract decls.
10831 * lto-streamer-in.c (input_function): Rearrange so struct
10832 function can be NULL at entry; allow streaming of
10833 functions w/o body; store DECL_ARGUMENTS and DECL_RESULT.
10834 * ipa.c (symtab_remove_unreachable_nodes): Silence confused
10835 sanity check during LTO.
10836 * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Skip
10837 RESULT_DECl and DECL_ARGUMENTS.
10838 * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
10839 Likewise.
10840
10841 2013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
10842
10843 * pretty-print.h (pp_underscore): New.
10844 (pp_comma): Tidy.
10845 * gimple-pretty-print.c (dump_unary_rhs): Use specialized pretty
10846 printer functions instead of pp_character.
10847 (dump_binary_rhs): Likewise.
10848 (dump_ternary_rhs): Likewise.
10849 (dump_gimple_call_args): Likewise.
10850 (pp_points_to_solution): Likewise.
10851 (dump_gimple_call): Likewise.
10852 (dump_gimple_switch): Likewise.
10853 (dump_gimple_cond): Likewise.
10854 (dump_gimple_bind): Likewise.
10855 (dump_gimple_try): Likewise.
10856 (dump_gimple_omp_for): Likewise.
10857 (dump_gimple_omp_continue): Likewise.
10858 (dump_gimple_omp_single): Likewise.
10859 (dump_gimple_omp_sections): Likewise.
10860 (dump_gimple_omp_block): Likewise.
10861 (dump_gimple_omp_critical): Likewise.
10862 (dump_gimple_transaction): Likewise.
10863 (dump_gimple_asm): Likewise.
10864 (dump_gimple_phi): Likewise.
10865 (dump_gimple_omp_parallel): Likewise.
10866 (dump_gimple_omp_task): Likewise.
10867 (dump_gimple_omp_atomic_load): Likewise.
10868 (dump_gimple_omp_atomic_store): Likewise.
10869 (dump_gimple_mem_ops): Likewise.
10870 (pp_gimple_stmt_1): Likewise.
10871 (pp_cfg_jump): Likewise.
10872 (dump_implicit_edges): Likewise.
10873 (gimple_dump_bb_for_graph): Likewise.
10874 * graph.c (draw_cfg_node): Likewise.
10875 * langhooks.c (lhd_print_error_function): Likewise.
10876 * sched-vis.c (print_exp): Likewise.
10877 (print_value): Likewise.
10878 (print_pattern): Likewise.
10879 (print_insn): Likewise.
10880 (rtl_dump_bb_for_graph): Likewise.
10881 * tree-pretty-print.c (dump_function_declaration): Likewise.
10882 (dump_array_domain): Likewise.
10883 (dump_omp_clause): Likewise.
10884 (dump_location): Likewise.
10885 (dump_generic_node): Likewise.
10886 (print_struct_decl): Likewise.
10887 * diagnostic.c (diagnostic_show_locus): Use pp_space.
10888
10889 2013-08-03 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
10890
10891 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Update
10892 candidate table when replacing a candidate statement.
10893 (replace_rhs_if_not_dup): Likewise.
10894 (replace_one_candidate): Likewise.
10895
10896 2013-08-02 Jan Hubicka <jh@suse.cz>
10897 Martin Liska <marxin.liska@gmail.com>
10898
10899 * cgraphunit.c (add_new_function): Fix logic when adding from
10900 late IPA pass.
10901 (assemble_thunk): Rename to ...
10902 (expand_thunk); .. this one; export; get it working with
10903 general functions; make produced gimple valid.
10904 * cgraph.h (expand_thunk): Declare.
10905
10906 2013-08-02 Jan Hubicka <jh@suse.cz>
10907
10908 * ipa-cp.c (gather_context_independent_values): Use
10909 ipa_get_param_move_cost.
10910 (get_replacement_map): Remove PARAM; move parameter folding
10911 into tree-inline.c
10912 (create_specialized_node): Update.
10913 * ipa-prop.c (ipa_populate_param_decls): Do not look for origins;
10914 assert that we have gimple body; update move_cost.
10915 (count_formal_params): Assert that we have gimple body.
10916 (ipa_dump_param): New function.
10917 (ipa_alloc_node_params): Break out from ...
10918 (ipa_initialize_node_params): ... here.
10919 (ipa_get_vector_of_formal_parms): ICE when used in WPA.
10920 (ipa_write_node_info): Stream move costs.
10921 (ipa_read_node_info): Read move costs.
10922 (ipa_update_after_lto_read): Do not recompute node params.
10923 * ipa-prop.h (ipa_param_descriptor): Add move_cost.
10924 (ipa_get_param): Check we are not in WPA.
10925 (ipa_get_param_move_cost): New.
10926 * tree-inline.c (tree_function_versioning): Fold replacement as needed.
10927 * ipa-inline-analysis.c (inline_node_duplication_hook): Expect only
10928 parm numbers to be present.
10929
10930 2013-08-02 Vladimir Makarov <vmakarov@redhat.com>
10931
10932 PR rtl-optimization/58048
10933 * lra-constraints.c (process_alt_operands): Don't check asm
10934 operand on register.
10935
10936 2013-08-02 Eric Botcazou <ebotcazou@adacore.com>
10937
10938 * config/sparc/sparc.c (sparc_emit_membar_for_model) <SMM_TSO>: Add
10939 the implied StoreLoad barrier for atomic operations if before.
10940
10941 2013-08-02 Jan Hubicka <jh@suse.cz>
10942 Martin Liska <marxin.liska@gmail.com>
10943
10944 * cgraph.c (cgraph_function_body_availability): Do not check
10945 cgraph flags.
10946 * cgraph.h (symtab_for_node_and_aliases, symtab_nonoverwritable_alias,
10947 symtab_node_availability): Declare.
10948 * ipa.c (can_replace_by_local_alias): New.
10949 (function_and_variable_visibility): Use it.
10950 * symtab.c (symtab_for_node_and_aliases,
10951 symtab_nonoverwritable_alias_1, symtab_nonoverwritable_alias): New.
10952
10953 2013-08-02 Vladimir Makarov <vmakarov@redhat.com>
10954
10955 PR rtl-optimization/57963
10956 * lra-constraints.c (reverse_equiv_p, contains_reloaded_insn_p): New.
10957 (lra_constraints): Use them.
10958
10959 2013-08-02 Sofiane Naci <sofiane.naci@arm.com>
10960
10961 * config/arm/types.md (define_attr "type"): Add "load_acq"
10962 and "store_rel".
10963 * config/arm/cortex-a53.md (cortex_a53_load1): Update for attribute
10964 changes.
10965 (cortex_a53_store1): Likewise.
10966
10967 2013-08-01 Jan Hubicka <jh@suse.cz>
10968
10969 * ipa.c (symtab_remove_unreachable_nodes): Nodes in other
10970 partitions are not needed.
10971
10972 2013-08-01 Uros Bizjak <ubizjak@gmail.com>
10973
10974 * config/i386/i386.h (MAYBE_NON_Q_CLASS_P): New.
10975 * config/i386/i386.c (ix86_secondary_reload): Use INTEGER_CLASS_P and
10976 MAYBE_NON_Q_CLASS_P where appropriate.
10977
10978 2013-08-01 Jan Hubicka <jh@suse.cz>
10979
10980 * cgraph.h (release_function_body): Declare.
10981 * tree.c (free_lang_data_in_decl): Free, parameters and return values
10982 of unused delcarations.
10983
10984 2013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10985
10986 * config/arm/arm.md (minmax_arithsi_non_canon): Emit canonical
10987 RTL form when subtracting a constant.
10988
10989 2013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10990
10991 * config/arm/arm.md (peepholes for eq (reg1) (reg2/imm)):
10992 Generate canonical plus rtx with negated immediate instead of minus
10993 where appropriate.
10994 * config/arm/arm.c (thumb2_reorg): Handle ADCS <Rd>, <Rn> case.
10995
10996 2013-08-01 Jan Hubicka <jh@suse.cz>
10997
10998 * cgraph.c (cgraph_release_function_body): Use used_as_abstract_origin.
10999 (cgraph_release_function_body): Likewise.
11000 (cgraph_can_remove_if_no_direct_calls_p): Likewise.
11001 * cgraph.h (cgrpah_node): Rename abstract_and_needed
11002 to used_as_abstract_origin.
11003 * tree-inline-transfrom.c (can_remove_node_now_p_1): Do not remove
11004 symbols used as abstract origins.
11005 * cgraphunit.c (analyze_functions): Update.
11006 * ipa.c (symtab_remove_unreachable_nodes): Recompute
11007 used_as_abstract_origin.
11008 * tree-inline.c (tree_function_versioning): Update
11009 used_as_abstract_origin; be ready for DECL_RESULT and
11010 DECL_ARGUMENTS to be NULL.
11011
11012 * lto-symtab.c (lto_symtab_merge_symbols): Merge duplicated nodes
11013 for abstract functions.
11014 * cgraph.h (symtab_real_symbol_p): Abstract declarations are not
11015 real symbols.
11016
11017 2013-08-01 Jan Hubicka <jh@suse.cz>
11018
11019 * profile.c (compute_value_histograms): Fix thinko.
11020
11021 2013-08-01 Sofiane Naci <sofiane.naci@arm.com>
11022
11023 * config.gcc (aarch64*-*-*): Add aarch-common.o to extra_objs. Add
11024 aarch-common-protos.h to extra_headers.
11025 (aarch64*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
11026 * config/aarch64/aarch64.md: Include "../arm/cortex-a53.md".
11027 * config/aarch64/t-aarch64 (aarch-common.o): Define.
11028
11029 2013-08-01 Sofiane Naci <sofiane.naci@arm.com>
11030
11031 * config/aarch64/aarch64.md (define_attr "type"): Delete.
11032 Include "../arm/types.md". Define "type" attribute for all patterns.
11033 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update for
11034 attribute changes.
11035
11036 2013-07-31 Michael Meissner <meissner@linux.vnet.ibm.com>
11037
11038 * config/rs6000/predicates.md (fusion_gpr_addis): New predicates
11039 to support power8 load fusion.
11040 (fusion_gpr_mem_load): Likewise.
11041
11042 * config/rs6000/rs6000-modes.def (PTImode): Update a comment.
11043
11044 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): New
11045 declarations for power8 load fusion.
11046 (emit_fusion_gpr_load): Likewise.
11047
11048 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
11049 tuning for power8, turn on fusion mode by default. Turn on sign
11050 extending fusion mode if normal fusion mode is on, and we are at
11051 -O2 or -O3.
11052 (fusion_gpr_load_p): New function, return true if we can fuse an
11053 addis instruction with a dependent load to a GPR.
11054 (emit_fusion_gpr_load): Emit the instructions for power8 load
11055 fusion to GPRs.
11056
11057 * config/rs6000/vsx.md (VSX_M2): New iterator for fusion peepholes.
11058 (VSX load fusion peepholes): New peepholes to fuse together an
11059 addi instruction with a VSX load instruction.
11060
11061 * config/rs6000/rs6000.md (GPR load fusion peepholes): New
11062 peepholes to fuse an addis instruction with a load to a GPR base
11063 register. If we are supporting sign extending fusions, convert
11064 sign extending loads to zero extending loads and add an explicit
11065 sign extension.
11066
11067 2013-07-31 Sofiane Naci <sofiane.naci@arm.com>
11068
11069 * config.gcc (arm*-*-*): Add aarch-common.o to extra_objs. Add
11070 aarch-common-protos.h to extra_headers.
11071 (arm*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
11072 * config/arm/arm.c (arm_early_load_addr_dep): Move from here to ...
11073 (arm_early_store_addr_dep): Likewise.
11074 (arm_no_early_alu_shift_dep): Likewise.
11075 (arm_no_early_alu_shift_value_dep): Likewise.
11076 (arm_no_early_mul_dep): Likewise.
11077 (arm_no_early_store_addr_dep): Likewise.
11078 (arm_mac_accumulator_is_mul_result): Likewise.
11079 (arm_mac_accumulator_is_result): Likewise.
11080 * config/arm/aarch-common.c: ... here. New file.
11081 * config/arm/arm-protos.h (arm_early_load_addr_dep): Move from
11082 here to ...
11083 (arm_early_store_addr_dep): Likewise.
11084 (arm_no_early_alu_shift_dep): Likewise.
11085 (arm_no_early_alu_shift_value_dep): Likewise.
11086 (arm_no_early_mul_dep): Likewise.
11087 (arm_no_early_store_addr_dep): Likewise.
11088 (arm_mac_accumulator_is_mul_result): Likewise.
11089 (arm_mac_accumulator_is_result): Likewise.
11090 * config/arm/aarch-common-protos.h: ... here. New file.
11091 * config/arm/t-arm (aarch-common.o): Define.
11092
11093 2013-07-31 Sofiane Naci <sofiane.naci@arm.com>
11094
11095 * config/arm/arm.md: Include new file "types.md".
11096 (define_attr "type"): Move from here to ...
11097 (define_attr "mul32"): Likewise.
11098 (define_attr "mul64"): Likewise.
11099 * config/arm/types.md: ... here. New file.
11100
11101 2013-07-31 Sebastian Huber <sebastian.huber@embedded-brains.de>
11102
11103 * config.gcc (*-*-rtems*): Use __cxa_atexit by default.
11104 * config/rs6000/rtems.h (TARGET_LIBGCC_SDATA_SECTION): Define.
11105
11106 2013-07-31 Jan-Benedict Glaw <jbglaw@lug-owl.de>
11107
11108 * gen-pass-instances.awk: Fix offset of substr().
11109
11110 2013-07-31 David Malcolm <dmalcolm@redhat.com>
11111
11112 * Makefile.in (pass-instances.def): New.
11113 (passes.o): Replace dependency on passes.def with one on
11114 pass-instances.def
11115
11116 * gen-pass-instances.awk: New.
11117
11118 * passes.c (pass_manager::pass_manager): Use pass-instances.def
11119 rather than passes.def, updating local definition of NEXT_PASS
11120 macro to add an extra NUM parameter (currently unused).
11121
11122 2013-07-30 David Malcolm <dmalcolm@redhat.com>
11123
11124 * Makefile.in (PASS_MANAGER_H): New.
11125 (lto-cgraph.o): Depend on CONTEXT_H and PASS_MANAGER_H.
11126 (passes.o): Likewise.
11127 (statistics.o): Likewise.
11128 (cgraphunit.o): Likewise.
11129 (context.o): Depend on PASS_MANAGER_H.
11130
11131 * pass_manager.h: New.
11132
11133 * cgraphunit.c (cgraph_add_new_function): Update for moves
11134 of globals to fields of pass_manager.
11135 (analyze_function): Likewise.
11136 (expand_function): Likewise.
11137 (ipa_passes): Likewise.
11138 (compile): Likewise.
11139
11140 * context.c (context::context): New.
11141 * context.h (context::context): New.
11142 (context::get_passes): New.
11143 (context::passes_): New.
11144
11145 * lto-cgraph.c (input_node): Update for moves of globals to
11146 fields of pass_manager.
11147
11148 * passes.c (all_passes): Remove, in favor of a field of the
11149 same name within the new class pass_manager.
11150 (all_small_ipa_passes): Likewise.
11151 (all_lowering_passes): Likewise.
11152 (all_regular_ipa_passes): Likewise.
11153 (all_late_ipa_passes): Likewise.
11154 (all_lto_gen_passes): Likewise.
11155 (passes_by_id): Likewise.
11156 (passes_by_id_size): Likewise.
11157 (gcc_pass_lists): Remove, in favor of "pass_lists" field within
11158 the new class pass_manager.
11159 (set_pass_for_id): Convert to...
11160 (pass_manager::set_pass_for_id): ...method.
11161 (get_pass_for_id): Convert to...
11162 (pass_manager::get_pass_for_id): ...method.
11163 (register_one_dump_file): Move body of implementation into...
11164 (pass_manager::register_one_dump_file): ...here.
11165 (register_dump_files_1): Convert to...
11166 (pass_manager::register_dump_files_1): ...method.
11167 (register_dump_files): Convert to...
11168 (pass_manager::register_dump_files): ...method.
11169 (create_pass_tab): Update for moves of globals to fields of
11170 pass_manager.
11171 (dump_passes): Move body of implementation into...
11172 (pass_manager::dump_passes): ...here.
11173 (register_pass): Move body of implementation into...
11174 (pass_manager::register_pass): ...here.
11175 (init_optimization_passes): Convert into...
11176 (pass_manager::pass_manager): ...constructor for new
11177 pass_manager class, and initialize the pass_lists array.
11178 (check_profile_consistency): Update for moves of globals to
11179 fields of pass_manager.
11180 (dump_profile_report): Move body of implementation into...
11181 (pass_manager::dump_profile_report): ...here.
11182 (ipa_write_summaries_1): Update for moves of pass lists from
11183 being globals to fields of pass_manager.
11184 (ipa_write_optimization_summaries): Likewise.
11185 (ipa_read_summaries): Likewise.
11186 (ipa_read_optimization_summaries): Likewise.
11187 (execute_all_ipa_stmt_fixups): Likewise.
11188
11189 * statistics.c (statistics_fini): Update for moves of globals to
11190 fields of pass_manager.
11191
11192 * toplev.c (general_init): Replace call to
11193 init_optimization_passes with construction of the pass_manager
11194 instance.
11195
11196 * tree-pass.h (all_passes): Remove, in favor of a field of the
11197 same name within the new class pass_manager.
11198 (all_small_ipa_passes): Likewise.
11199 (all_lowering_passes): Likewise.
11200 (all_regular_ipa_passes): Likewise.
11201 (all_lto_gen_passes): Likewise.
11202 (all_late_ipa_passes): Likewise.
11203 (passes_by_id): Likewise.
11204 (passes_by_id_size): Likewise.
11205 (gcc_pass_lists): Remove, in favor of "pass_lists" field within
11206 the new class pass_manager.
11207 (get_pass_for_id): Remove.
11208
11209 2013-07-30 Richard Earnshaw <rearnsha@arm.com>
11210
11211 * config.gcc (arm): Require 64-bit host-wide-int for all ARM target
11212 configs.
11213
11214 2013-07-30 Richard Earnshaw <rearnsha@arm.com>
11215
11216 * arm.md (mulhi3): New expand pattern.
11217
11218 2013-07-30 Jan Hubicka <jh@suse.cz>
11219 Martin Liska <marxin.liska@gmail.com>
11220
11221 * profile.c (compute_value_histograms): Do not ICE when
11222 there is mismatch only on some counters.
11223
11224 2013-07-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
11225
11226 PR rtl-optimization/57637
11227 * function.c (move_insn_for_shrink_wrap): Also check the
11228 GEN set of the LIVE problem for the liveness analysis
11229 if it exists, otherwise give up.
11230
11231 2013-07-29 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
11232
11233 PR tree-optimization/57993
11234 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Record
11235 replaced statement in the candidate table.
11236 (phi_add_costs): Return infinite cost when the hidden basis does
11237 not dominate all phis on which the candidate is dependent.
11238 (replace_one_candidate): Record replaced statement in the
11239 candidate table.
11240
11241 2013-07-29 Joern Rennecke <joern.rennecke@embecosm.com>
11242
11243 * config/epiphany/epiphany.md (*isub_i+2): New peephole.
11244 (ashlv2si3): New expander.
11245 (*ashlv2si3_i): New define_insn_and_split.
11246 * predicates.md (float_operation): Allow patterns with three
11247 basic sub-patterns.
11248
11249 PR rtl-optimization/58021
11250 * mode-switching.c (create_pre_exit): Always split off preceding
11251 insns if we are not at the basic block head.
11252
11253 2013-07-29 Maciej W. Rozycki <macro@codesourcery.com>
11254
11255 * config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Handle `-mnan=2008'.
11256 (UCLIBC_DYNAMIC_LINKER): New macro.
11257 * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32): Handle
11258 `-mnan=2008'.
11259 (GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32): Likewise.
11260 (UCLIBC_DYNAMIC_LINKER32): Undefine macro first. Handle
11261 `-mnan=2008'.
11262 (UCLIBC_DYNAMIC_LINKER64): Redefine macro.
11263 (UCLIBC_DYNAMIC_LINKERN32): Likewise.
11264 * config/mips/mips-modes.def: Remove RESET_FLOAT_FORMAT calls
11265 for SF and DF modes. Use ieee_quad_format for TF mode.
11266 * config/mips/mips-opts.h (mips_ieee_754_setting): New enum.
11267 * config/mips/mips.c (mips_file_start): Output a `.nan' directive.
11268 (mips_option_override): Handle `-mnan=legacy'.
11269 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Handle
11270 `-mabs=2008' and `-mnan=2008'.
11271 (OPTION_DEFAULT_SPECS): Add "nan" default.
11272 (ASM_SPEC): Handle `-mnan='.
11273 [!HAVE_AS_NAN] (HAVE_AS_NAN): New macro.
11274 * config/mips/mips.md (abs<mode>2): Handle `-mabs=2008', update
11275 comment accordingly.
11276 (neg<mode>2): Likewise.
11277 * config/mips/mips.opt (mabs, mnan): New options.
11278 * doc/install.texi (Configuration): Document `--with-nan=' option.
11279 * doc/invoke.texi (Option Summary): List MIPS `-mabs=' and
11280 `-mnan=' options.
11281 (MIPS Options): Document them.
11282 * config.gcc <mips*-*-*>: Handle `--with-nan='.
11283 * configure.ac <mips*-*-*>: Check for GAS `-mnan=2008' support.
11284 * configure: Regenerate.
11285 * config.in: Regenerate.
11286
11287 2013-07-29 Uros Bizjak <ubizjak@gmail.com>
11288
11289 * config/i386/i386.md (float post-reload splitters): Do not check
11290 for subregs of SSE registers.
11291
11292 2013-07-29 Uros Bizjak <ubizjak@gmail.com>
11293 H.J. Lu <hongjiu.lu@intel.com>
11294
11295 PR target/57954
11296 PR target/57988
11297 * config/i386/i386.md (post-reload splitter
11298 to avoid partial SSE reg dependency stalls): New pattern.
11299
11300 2013-07-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
11301
11302 * config/s390/s390.md ("movcc"): Swap load and store instructions.
11303
11304 2013-07-27 Joern Rennecke <joern.rennecke@embecosm.com>
11305
11306 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
11307 Also reserve space for saving UNKNOWN_REGNUM for leaf functions.
11308
11309 2013-07-26 Cary Coutant <ccoutant@google.com>
11310
11311 * dwarf2out.c (die_checksum_ordered): Don't include template
11312 instantiations in signature.
11313 (is_template_parameter): New function.
11314 (is_template_instantiation): New function.
11315 (generate_skeleton_bottom_up): Don't include template instantiations
11316 in type unit DIE.
11317 (generate_skeleton): Likewise.
11318 (break_out_comdat_types): Move recursive call to break out nested
11319 types earlier.
11320 (prune_unused_types_mark_generic_parms_dies): Call
11321 is_template_parameter.
11322
11323 2013-07-26 Ian Bolton <ian.bolton@arm.com>
11324
11325 * config/aarch64/aarch64.md (neg<mode>2): Offer alternative that
11326 uses vector registers.
11327 * config/aarch64/iterators.md: Add attributes rtn and vas.
11328
11329 2013-07-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11330 Richard Earnshaw <richard.earnshaw@arm.com>
11331
11332 * combine.c (simplify_comparison): Re-canonicalize operands
11333 where appropriate.
11334 * config/arm/arm.md (movcond_addsi): New splitter.
11335
11336 2013-07-25 Sterling Augustine <saugustine@google.com>
11337
11338 * dwarf2out.c (size_of_pubnames): Move code to...
11339 (include_pubname_in_output): ...here. New.
11340 (want_pubnames): Rearrange.
11341 (output_pubnames): Call include_pubname_in_output. Move assertion.
11342
11343 2013-07-25 Cameron McInally <cameron.mcinally@nyu.edu>
11344
11345 * doc/extend.texi: Fix return types for __builtin_ia32_cmp*s builtins.
11346
11347 2013-07-25 Cameron McInally <cameron.mcinally@nyu.edu>
11348
11349 PR target/38836
11350 * doc/extend.texi: Remove obsolete builtins. Fix
11351 typo for __builtin_ia32_loadss and __builtin_ia32_cmpnltss.
11352
11353 2013-07-25 Jan Hubicka <jh@suse.cz>
11354
11355 * cgraph.c (release_function_body): Break out from ...
11356 (cgraph_release_function_body): ... this one; also release DECL_RESULT
11357 and DECL_ARGUMENTS.
11358 * ipa-cp.c (get_replacement_map): Add parm_num argument; do not set
11359 old_tree in the map.
11360 (create_specialized_node): Update.
11361 * lto-cgraph.c (output_node_opt_summary): Do not translate old_tree
11362 into index.
11363 * cgraphclones.c (cgraph_create_virtual_clone): Do not copy
11364 DECL_ARGUMENTS, DECL_INITIAL and DECL_RESULT.
11365 * ipa-prop.c (ipa_populate_param_decls): Look for origin of clones.
11366 * tree-inline.c (initialize_cfun): Initialize DECL_ARGUMENTS and
11367 DECL_RESULT.
11368
11369 2013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11370
11371 * config/arm/arm.md (arm_addsi3, addsi3_carryin_<optab>,
11372 addsi3_carryin_alt2_<optab>): Correct output template.
11373
11374 2013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11375
11376 * config/arm/arm-fixed.md (ssmulsa3, usmulusa3):
11377 Adjust for arm_restrict_it.
11378 Remove trailing whitespace.
11379
11380 2013-07-25  Mark Kettenis  <kettenis@openbsd.org>
11381
11382 * config/pa/pa.c (pa_trampoline_init): Emit __enable_execute_stack
11383 libcall if HAVE_ENABLE_EXECUTE_STACK is defined.
11384
11385 * config.gcc (hppa-*-openbsd*): Don't set tmake_file.
11386
11387 2013-07-25 Vladimir Makarov <vmakarov@redhat.com>
11388
11389 PR rtl-optimization/57960
11390 * lra-constraints.c (process_alt_operands): Use the right mode
11391 when checking strict_low.
11392
11393 2013-07-25 Jan Hubicka <jh@suse.cz>
11394
11395 * lto-symtab.c (lto_cgraph_replace_node): Release function body.
11396 * cgraph.c (cgraph_remove_node): Do not release function body
11397 when in cgraph streaming.
11398 * ipa.c (process_references, symtab_remove_unreachable_nodes): Objects
11399 in other partitions are not considered reachable; fix handling of
11400 clones.
11401
11402 2013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11403
11404 * config/arm/arm.md (*sibcall_insn): Remove unnecessary space.
11405
11406 2013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11407
11408 PR target/19599
11409 PR target/57731
11410 PR target/57837
11411 * config/arm/arm.md ("*sibcall_insn): Replace use of
11412 Ss with US. Adjust output for v5 and v4t.
11413 (*sibcall_value_insn): Likewise and loosen predicate on operand0.
11414
11415 * config/arm/constraints.md ("Ss"): Rename to US.
11416
11417 2013-07-25 Terry Guo <terry.guo@arm.com>
11418
11419 * config/arm/arm.c (thumb1_size_rtx_costs): Assign proper cost for
11420 shift_add/shift_sub0/shift_sub1 RTXs.
11421
11422 2013-07-24 Bill Schmidt <wschmidt@linux.ibm.com>
11423 Anton Blanchard <anton@au1.ibm.com>
11424
11425 * config/rs6000/altivec.md (altivec_vpkpx): Handle little endian.
11426 (altivec_vpks<VI_char>ss): Likewise.
11427 (altivec_vpks<VI_char>us): Likewise.
11428 (altivec_vpku<VI_char>us): Likewise.
11429 (altivec_vpku<VI_char>um): Likewise.
11430
11431 2013-07-24 David Malcolm <dmalcolm@redhat.com>
11432
11433 Introduce context class.
11434
11435 * Makefile.in (CONTEXT_H): New.
11436 (OBJS): Add context.o.
11437 (toplev.o): Add CONTEXT_H to dependencies.
11438 (context.o): New.
11439
11440 * toplev.c (general_init): Create the singleton gcc::context instance.
11441
11442 * context.c: New.
11443
11444 * context.h: New.
11445
11446 2013-07-24 Joern Rennecke <joern.rennecke@embecosm.com>
11447
11448 PR rtl-optimization/57968
11449 * mode-switching.c (create_pre_exit): Allow instructions that
11450 don't set a return register to need a non-exit mode.
11451
11452 2013-07-24 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
11453 Anton Blanchard <anton@au1.ibm.com>
11454
11455 * config/rs6000/vector.md (vec_realign_load_<mode>): Reorder input
11456 operands to vperm for little endian.
11457 * config/rs6000/rs6000.c (rs6000_expand_builtin): Use lvsr instead
11458 of lvsl to create the control mask for a vperm for little endian.
11459
11460 2013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11461 Anton Blanchard <anton@au1.ibm.com>
11462
11463 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Reverse
11464 two operands for little-endian.
11465
11466 2013-07-23 Steve Ellcey <sellcey@mips.com>
11467
11468 * config/mips/mips.c (mips_case_values_threshold): New.
11469 (TARGET_CASE_VALUES_THRESHOLD): Define.
11470
11471 2013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11472 Anton Blanchard <anton@au1.ibm.com>
11473
11474 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Correct
11475 selection of field for vector splat in little endian mode.
11476
11477 2013-07-23 Michael Meissner <meissner@linux.vnet.ibm.com>
11478
11479 * config/rs6000/vector.md (xor<mode>3): Move 128-bit boolean
11480 expanders to rs6000.md.
11481 (ior<mode>3): Likewise.
11482 (and<mode>3): Likewise.
11483 (one_cmpl<mode>2): Likewise.
11484 (nor<mode>3): Likewise.
11485 (andc<mode>3): Likewise.
11486 (eqv<mode>3): Likewise.
11487 (nand<mode>3): Likewise.
11488 (orc<mode>3): Likewise.
11489
11490 * config/rs6000/rs6000-protos.h (rs6000_split_logical): New
11491 declaration.
11492
11493 * config/rs6000/rs6000.c (rs6000_split_logical_inner): Add support
11494 to split multi-word logical operations.
11495 (rs6000_split_logical_di): Likewise.
11496 (rs6000_split_logical): Likewise.
11497
11498 * config/rs6000/vsx.md (VSX_L2): Delete, no longer used.
11499 (vsx_and<mode>3_32bit): Move 128-bit logical insns to rs6000.md,
11500 and allow TImode operations in 32-bit.
11501 (vsx_and<mode>3_64bit): Likewise.
11502 (vsx_ior<mode>3_32bit): Likewise.
11503 (vsx_ior<mode>3_64bit): Likewise.
11504 (vsx_xor<mode>3_32bit): Likewise.
11505 (vsx_xor<mode>3_64bit): Likewise.
11506 (vsx_one_cmpl<mode>2_32bit): Likewise.
11507 (vsx_one_cmpl<mode>2_64bit): Likewise.
11508 (vsx_nor<mode>3_32bit): Likewise.
11509 (vsx_nor<mode>3_64bit): Likewise.
11510 (vsx_andc<mode>3_32bit): Likewise.
11511 (vsx_andc<mode>3_64bit): Likewise.
11512 (vsx_eqv<mode>3_32bit): Likewise.
11513 (vsx_eqv<mode>3_64bit): Likewise.
11514 (vsx_nand<mode>3_32bit): Likewise.
11515 (vsx_nand<mode>3_64bit): Likewise.
11516 (vsx_orc<mode>3_32bit): Likewise.
11517 (vsx_orc<mode>3_64bit): Likewise.
11518
11519 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Always allow vector
11520 logical types in GPRs.
11521
11522 * config/rs6000/altivec.md (altivec_and<mode>3): Move 128-bit
11523 logical insns to rs6000.md, and allow TImode operations in
11524 32-bit.
11525 (altivec_ior<mode>3): Likewise.
11526 (altivec_xor<mode>3): Likewise.
11527 (altivec_one_cmpl<mode>2): Likewise.
11528 (altivec_nor<mode>3): Likewise.
11529 (altivec_andc<mode>3): Likewise.
11530
11531 * config/rs6000/rs6000.md (BOOL_128): New mode iterators and mode
11532 attributes for moving the 128-bit logical operations into
11533 rs6000.md.
11534 (BOOL_REGS_OUTPUT): Likewise.
11535 (BOOL_REGS_OP1): Likewise.
11536 (BOOL_REGS_OP2): Likewise.
11537 (BOOL_REGS_UNARY): Likewise.
11538 (BOOL_REGS_AND_CR0): Likewise.
11539 (one_cmpl<mode>2): Add support for DI logical operations on
11540 32-bit, splitting the operations to 32-bit.
11541 (anddi3): Likewise.
11542 (iordi3): Likewise.
11543 (xordi3): Likewise.
11544 (and<mode>3, 128-bit types): Rewrite 2013-06-06 logical operator
11545 changes to combine the 32/64-bit code, allow logical operations on
11546 TI mode in 32-bit, and to use similar match_operator patterns like
11547 scalar mode uses. Combine the Altivec and VSX code for logical
11548 operations, and move it here.
11549 (ior<mode>3, 128-bit types): Likewise.
11550 (xor<mode>3, 128-bit types): Likewise.
11551 (one_cmpl<mode>3, 128-bit types): Likewise.
11552 (nor<mode>3, 128-bit types): Likewise.
11553 (andc<mode>3, 128-bit types): Likewise.
11554 (eqv<mode>3, 128-bit types): Likewise.
11555 (nand<mode>3, 128-bit types): Likewise.
11556 (orc<mode>3, 128-bit types): Likewise.
11557 (and<mode>3_internal): Likewise.
11558 (bool<mode>3_internal): Likewise.
11559 (boolc<mode>3_internal1): Likewise.
11560 (boolc<mode>3_internal2): Likewise.
11561 (boolcc<mode>3_internal1): Likewise.
11562 (boolcc<mode>3_internal2): Likewise.
11563 (eqv<mode>3_internal1): Likewise.
11564 (eqv<mode>3_internal2): Likewise.
11565 (one_cmpl1<mode>3_internal): Likewise.
11566
11567 2013-07-23 David Holsgrove <david.holsgrove@xilinx.com>
11568
11569 * config/microblaze/microblaze.c (microblaze_expand_prologue):
11570 Rename flag_stack_usage to flag_stack_usage_info.
11571
11572 2013-07-23 David Holsgrove <david.holsgrove@xilinx.com>
11573
11574 * config/microblaze/sync.md: New file.
11575 * config/microblaze/microblaze.md: Include sync.md
11576 * config/microblaze/microblaze.c: Add print_operand 'y'.
11577 * config/microblaze/constraints.md: Add memory_contraint
11578 'Q' which is a single register.
11579
11580 2013-07-23 Eric Botcazou <ebotcazou@adacore.com>
11581
11582 * doc/invoke.texi (SPARC Options): Document new leon3 processor value.
11583
11584 2013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu>
11585
11586 * reload.c (find_reloads): Exit loop once we find this operand
11587 cannot be reloaded somehow for this alternative.
11588
11589 * reload.c (find_reloads): Exit loop once we find a hard register.
11590
11591 * rtlanal.c (computed_jump_p): Exit loop once we find label
11592 reference is used.
11593
11594 * i386.c (ix86_pad_returns): Exit loop after setting replace.
11595
11596 * cfgloopmanip.c (remove_path): Exit loop after setting
11597 irred_invalidated.
11598
11599 * gensupport.c (subst_dup): Avoid loop if code is not
11600 MATCH_DUP nor MATCH_OP_DUP.
11601
11602 2013-07-23 Nicklas Bo Jensen <nbjensen@gmail.com>
11603
11604 * doc/md.texi (Machine-Specific Peephole Optimizers): Fix a typo.
11605
11606 2013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
11607
11608 * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Also return
11609 true for SP_REGNUM if mode == ptr_mode.
11610 * config/aarch64/aarch64.h (ADDITIONAL_REGISTER_NAMES): Add "wsp"
11611 with value R0_REGNUM + 31.
11612
11613 2013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
11614
11615 * config/aarch64/aarch64.c (aarch64_pad_arg_upward): In big-endian,
11616 pad pointer-typed argument downward.
11617
11618 2013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
11619
11620 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define _ILP32
11621 and __ILP32__ when the ILP32 model is in use.
11622
11623 2013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
11624
11625 * config/aarch64/aarch64.c (POINTER_BYTES): New define.
11626 (aarch64_load_symref_appropriately): In the case of
11627 SYMBOL_SMALL_ABSOLUTE, use the mode of 'dest' instead of Pmode
11628 to generate new rtx; likewise to the case of SYMBOL_SMALL_GOT.
11629 (aarch64_expand_mov_immediate): In the case of SYMBOL_FORCE_TO_MEM,
11630 change to pass 'ptr_mode' to force_const_mem and zero-extend 'mem'
11631 if 'mode' doesn't equal to 'ptr_mode'.
11632 (aarch64_output_mi_thunk): Add an assertion on the alignment of
11633 'vcall_offset'; change to call aarch64_emit_move differently depending
11634 on whether 'Pmode' equals to 'ptr_mode' or not; use 'POINTER_BYTES'
11635 to calculate the upper bound of 'vcall_offset'.
11636 (aarch64_cannot_force_const_mem): Change to also return true if
11637 mode != ptr_mode.
11638 (aarch64_legitimize_reload_address): In the case of large
11639 displacements, add new local variable 'xmode' and an assertion
11640 based on it; change to use 'xmode' to generate the new rtx and
11641 reload.
11642 (aarch64_asm_trampoline_template): Change to generate the template
11643 differently depending on TARGET_ILP32 or not; change to use
11644 'POINTER_BYTES' in the argument passed to assemble_aligned_integer.
11645 (aarch64_trampoline_size): Removed.
11646 (aarch64_trampoline_init): Add new local constant 'tramp_code_sz'
11647 and replace immediate literals with it. Change to use 'ptr_mode'
11648 instead of 'DImode' and call convert_memory_address if the mode
11649 of 'fnaddr' doesn't equal to 'ptr_mode'.
11650 (aarch64_elf_asm_constructor): Change to use assemble_aligned_integer
11651 to output symbol.
11652 (aarch64_elf_asm_destructor): Likewise.
11653 * config/aarch64/aarch64.h (TRAMPOLINE_SIZE): Change to be dependent
11654 on TARGET_ILP32 instead of aarch64_trampoline_size.
11655 * config/aarch64/aarch64.md (movsi_aarch64): Add new alternatives
11656 of 'mov' between WSP and W registers as well as 'adr' and 'adrp'.
11657 (loadwb_pair<GPI:mode>_<PTR:mode>): Rename to ...
11658 (loadwb_pair<GPI:mode>_<P:mode>): ... this. Replace PTR with P.
11659 (storewb_pair<GPI:mode>_<PTR:mode>): Likewise; rename to ...
11660 (storewb_pair<GPI:mode>_<P:mode>): ... this.
11661 (add_losym): Change to 'define_expand' and call gen_add_losym_<mode>
11662 depending on the value of 'mode'.
11663 (add_losym_<mode>): New.
11664 (ldr_got_small_<mode>): New, based on ldr_got_small.
11665 (ldr_got_small): Remove.
11666 (ldr_got_small_sidi): New.
11667 * config/aarch64/iterators.md (P): New.
11668 (PTR): Change to 'ptr_mode' in the condition.
11669
11670 2013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
11671
11672 * config.gcc (aarch64*-*-*): Support --with-abi.
11673 (aarch64*-*-elf): Support --with-multilib-list.
11674 (aarch64*-*-linux*): Likewise.
11675 (supported_defaults): Add abi to aarch64*-*-*.
11676 * configure.ac: Mention AArch64 for --with-multilib-list.
11677 * configure: Re-generated.
11678 * config/aarch64/biarchilp32.h: New file.
11679 * config/aarch64/biarchlp64.h: New file.
11680 * config/aarch64/aarch64-elf.h (ENDIAN_SPEC): New define.
11681 (ABI_SPEC): Ditto.
11682 (MULTILIB_DEFAULTS): Ditto.
11683 (DRIVER_SELF_SPECS): Ditto.
11684 (ASM_SPEC): Update to also substitute -mabi.
11685 * config/aarch64/aarch64-elf-raw.h (LINK_SPEC): Add linker script
11686 file whose name depends on -mabi= and -mbig-endian.
11687 * config/aarch64/aarch64.h (LONG_TYPE_SIZE): Change to depend on
11688 TARGET_ILP32.
11689 (POINTER_SIZE): New define.
11690 (POINTERS_EXTEND_UNSIGNED): Ditto.
11691 (enum aarch64_abi_type): New enumeration tag.
11692 (AARCH64_ABI_LP64, AARCH64_ABI_ILP32): New enumerators.
11693 (AARCH64_ABI_DEFAULT): Define to AARCH64_ABI_LP64 if undefined.
11694 (TARGET_ILP32): New define.
11695 * config/aarch64/aarch64.opt (mabi): New.
11696 (aarch64_abi): New.
11697 (ilp32, lp64): New values for -mabi.
11698 * config/aarch64/t-aarch64 (comma): New define.
11699 (MULTILIB_OPTIONS): Ditto.
11700 (MULTILIB_DIRNAMES): Ditto.
11701 * config/aarch64/t-aarch64-linux (MULTIARCH_DIRNAME): New define.
11702 * doc/invoke.texi: Document -mabi for AArch64.
11703
11704 2013-07-23 Georg-Johann Lay <avr@gjlay.de>
11705
11706 * config/avr/avr.md: Explain asm print modifier 'r' for REG.
11707
11708 2013-07-22 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
11709 Anton Blanchard <anton@au1.ibm.com>
11710
11711 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Fix
11712 endianness when selecting field to splat.
11713
11714 2013-07-22 Eric Christopher <echristo@gmail.com>
11715
11716 * dwarf2out.c (die_odr_checksum): New function to use
11717 CHECKSUM_ macros and ULEB128 for DIE tag.
11718 (generate_type_signature): Use.
11719
11720 2013-07-22 Eric Botcazou <ebotcazou@adacore.com>
11721
11722 * config.gcc (sparc*-*-*): Accept leon3 processor.
11723 (sparc-leon*-*): Merge with sparc*-*-* and add leon3 support.
11724 * doc/invoke.texi (SPARC Options): Adjust -mfix-ut699 entry.
11725 * config/sparc/sparc-opts.h (enum processor_type): Add PROCESSOR_LEON3.
11726 * config/sparc/sparc.opt (enum processor_type): Add leon3.
11727 (mfix-ut699): Adjust comment.
11728 * config/sparc/sparc.h (TARGET_CPU_leon3): New define.
11729 (CPP_CPU32_DEFAULT_SPEC): Add leon3 support.
11730 (CPP_CPU_SPEC): Likewise.
11731 (ASM_CPU_SPEC): Likewise.
11732 * config/sparc/sparc.c (leon3_cost): New constant.
11733 (sparc_option_override): Add leon3 support.
11734 (mem_ref): New function.
11735 (sparc_gate_work_around_errata): Return true if -mfix-ut699 is enabled.
11736 (sparc_do_work_around_errata): Look into the instruction in the delay
11737 slot and adjust accordingly. Add fix for the data cache nullify issues
11738 of the UT699. Change insertion position for the NOP.
11739 * config/sparc/leon.md (leon_fpalu, leon_fpmds, write_buf): Delete.
11740 (leon3_load): New reservation.
11741 (leon_store): Bump latency to 2.
11742 (grfpu): New automaton.
11743 (grfpu_alu): New unit.
11744 (grfpu_ds): Likewise.
11745 (leon_fp_alu): Adjust.
11746 (leon_fp_mult): Delete.
11747 (leon_fp_div): Split into leon_fp_divs and leon_fp_divd.
11748 (leon_fp_sqrt): Split into leon_fp_sqrts and leon_fp_sqrtd.
11749 * config/sparc/sparc.md (cpu): Add leon3.
11750 * config/sparc/sync.md (atomic_exchangesi): Disable if -mfix-ut699.
11751 (swapsi): Likewise.
11752 (atomic_test_and_set): Likewise.
11753 (ldstub): Likewise.
11754
11755 2013-07-22 Jürgen Urban <JuergenUrban@gmx.de>
11756
11757 * config.gcc (mips*-*-*): Add --with-fpu support. Make single the
11758 default for R5900 targets.
11759 * config/mips/mips.h (OPTION_DEFAULT_SPECS): Handle --with-fpu.
11760 (ISA_HAS_LDC1_SDC1): Set to false for TARGET_MIPS5900.
11761 * config/mips/mips.c (mips_option_override): Report an error for
11762 -march=r5900 -mhard-float -mdouble-float. Use spu_single_format
11763 for -march=r5900 -mhard-float.
11764
11765 2013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu>
11766
11767 * df-problems.c (can_move_insns_across): Exit loop once we
11768 find a non-fixed, non-global register.
11769
11770 * ipa-pure-const.c (propagate_nothrow): Exit loop after
11771 setting can_throw.
11772
11773 * omega.c (omega_eliminate_red): Break after setting red_found.
11774 (omega_problem_has_red_equations): Similarly after setting found.
11775 (omega_query_variable): Similarly after setting coupled.
11776
11777 2013-07-22 Marek Polacek <polacek@redhat.com>
11778
11779 * gimplify.c: Don't include gimple.h twice.
11780
11781 2013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11782
11783 * config/arm/constraints.md (Pd): Allow TARGET_THUMB
11784 instead of TARGET_THUMB1.
11785 (Pz): New constraint.
11786 * config/arm/arm.md (arm_addsi3): Add alternatives for 16-bit
11787 encodings.
11788 (compare_negsi_si): Likewise.
11789 (compare_addsi2_op0): Likewise.
11790 (compare_addsi2_op1): Likewise.
11791 (addsi3_carryin_<optab>): Likewise.
11792 (addsi3_carryin_alt2_<optab>): Likewise.
11793 (addsi3_carryin_shift_<optab>): Disable cond_exec variant
11794 for arm_restrict_it.
11795 (subsi3_carryin): Likewise.
11796 (arm_subsi3_insn): Add alternatives for 16-bit encoding.
11797 (minmax_arithsi): Disable for arm_restrict_it.
11798 (minmax_arithsi_non_canon): Adjust for arm_restrict_it.
11799 (satsi_<SAT:code>): Disable cond_exec variant for arm_restrict_it.
11800 (satsi_<SAT:code>_shift): Likewise.
11801 (arm_shiftsi3): Add alternative for 16-bit encoding.
11802 (arm32_movhf): Disable for arm_restrict_it.
11803 (arm_cmpdi_unsigned): Add alternatives for 16-bit encoding.
11804 (arm_movtas_ze): Disable cond_exec variant for arm_restrict_it.
11805
11806 2013-07-22 Sofiane Naci <sofiane.naci@arm.com>
11807
11808 * config/arm/arm.md (attribute "insn"): Delete.
11809 (attribute "type"): Add "mov_imm", "mov_reg", "mov_shift",
11810 "mov_shift_reg", "mvn_imm", "mvn_reg", "mvn_shift" and "mvn_shift_reg".
11811 (not_shiftsi): Update for attribute change.
11812 (not_shiftsi_compare0): Likewise.
11813 (not_shiftsi_compare0_scratch): Likewise.
11814 (arm_one_cmplsi2): Likewise.
11815 (thumb1_one_cmplsi2): Likewise.
11816 (notsi_compare0): Likewise.
11817 (notsi_compare0_scratch): Likewise.
11818 (thumb1_movdi_insn): Likewise.
11819 (arm_movsi_insn): Likewise.
11820 (movhi_insn_arch4): Likewise.
11821 (movhi_bytes): Likewise.
11822 (arm_movqi_insn): Likewise.
11823 (thumb1_movqi_insn): Likewise.
11824 (arm32_movhf): Likewise.
11825 (thumb1_movhf): Likewise.
11826 (arm_movsf_soft_insn): Likewise.
11827 (thumb1_movsf_insn): Likewise.
11828 (thumb_movdf_insn): Likewise.
11829 (movsicc_insn): Likewise.
11830 (movsfcc_soft_insn): Likewise.
11831 (and_scc): Likewise.
11832 (cond_move): Likewise.
11833 (if_move_not): Likewise.
11834 (if_not_move): Likewise.
11835 (if_shift_move): Likewise.
11836 (if_move_shift): Likewise.
11837 (if_shift_shift): Likewise.
11838 (if_not_arith): Likewise.
11839 (if_arith_not): Likewise.
11840 (cond_move_not): Likewise.
11841 * config/arm/neon.md (neon_mov<mode>): Update for attribute change.
11842 (neon_mov<mode>): Likewise.
11843 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute change.
11844 (thumb2_movsi_vfp): Likewise.
11845 (movsf_vfp): Likewise.
11846 (thumb2_movsf_vfp): Likewise.
11847 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute
11848 change.
11849 (cortexa7_older_only): Likewise.
11850 (cortexa7_younger): Likewise.
11851 * config/arm/arm1020e.md (1020alu_op): Update for attribute change.
11852 (1020alu_shift_op): Likewise.
11853 (1020alu_shift_reg_op): Likewise.
11854 * config/arm/arm1026ejs.md (alu_op): Update for attribute change.
11855 (alu_shift_op): Likewise.
11856 (alu_shift_reg_op): Likewise.
11857 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute change.
11858 (11_alu_shift_op): Likewise.
11859 (11_alu_shift_reg_op): Likewise.
11860 * config/arm/arm926ejs.md (9_alu_op): Update for attribute change.
11861 (9_alu_shift_reg_op): Likewise.
11862 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
11863 change.
11864 (cortex_a15_alu_shift): Likewise.
11865 (cortex_a15_alu_shift_reg): Likewise.
11866 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute change.
11867 (cortex_a5_alu_shift): Likewise.
11868 * config/arm/cortex-a53.md (cortex_a53_alu): Update for attribute
11869 change.
11870 (cortex_a53_alu_shift): Likewise.
11871 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
11872 change.
11873 (cortex_a7_alu_reg): Likewise.
11874 (cortex_a7_alu_shift): Likewise.
11875 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
11876 (cortex_a8_alu_shift): Likewise.
11877 (cortex_a8_alu_shift_reg): Likewise.
11878 (cortex_a8_mov): Likewise.
11879 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
11880 (cortex_a9_dp_shift): Likewise.
11881 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute change.
11882 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute change.
11883 (cortex_r4_mov): Likewise.
11884 (cortex_r4_alu_shift): Likewise.
11885 (cortex_r4_alu_shift_reg): Likewise.
11886 * config/arm/fa526.md (526_alu_op): Update for attribute change.
11887 (526_alu_shift_op): Likewise.
11888 * config/arm/fa606te.md (606te_alu_op): Update for attribute change.
11889 * config/arm/fa626te.md (626te_alu_op): Update for attribute change.
11890 (626te_alu_shift_op): Likewise.
11891 * config/arm/fa726te.md (726te_shift_op): Update for attribute change.
11892 (726te_alu_op): Likewise.
11893 (726te_alu_shift_op): Likewise.
11894 (726te_alu_shift_reg_op): Likewise.
11895 * config/arm/fmp626.md (mp626_alu_op): Update for attribute change.
11896 (mp626_alu_shift_op): Likewise.
11897 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute change.
11898 (pj4_alu_e1_conds): Likewise.
11899 (pj4_alu): Likewise.
11900 (pj4_alu_conds): Likewise.
11901 (pj4_shift): Likewise.
11902 (pj4_shift_conds): Likewise.
11903 (pj4_alu_shift): Likewise.
11904 (pj4_alu_shift_conds): Likewise.
11905
11906 2013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11907
11908 * config/arm/predicates.md (shiftable_operator_strict_it):
11909 New predicate.
11910 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si):
11911 Disable cond_exec version for arm_restrict_it.
11912 (thumb2_smaxsi3): Convert to generate cond_exec.
11913 (thumb2_sminsi3): Likewise.
11914 (thumb32_umaxsi3): Likewise.
11915 (thumb2_uminsi3): Likewise.
11916 (thumb2_abssi2): Adjust constraints for arm_restrict_it.
11917 (thumb2_neg_abssi2): Likewise.
11918 (thumb2_mov_scc): Add alternative for 16-bit encoding.
11919 (thumb2_movsicc_insn): Adjust alternatives.
11920 (thumb2_mov_negscc): Disable for arm_restrict_it.
11921 (thumb2_mov_negscc_strict_it): New pattern.
11922 (thumb2_mov_notscc_strict_it): New pattern.
11923 (thumb2_mov_notscc): Disable for arm_restrict_it.
11924 (thumb2_ior_scc): Likewise.
11925 (thumb2_ior_scc_strict_it): New pattern.
11926 (thumb2_cond_move): Adjust for arm_restrict_it.
11927 (thumb2_cond_arith): Disable for arm_restrict_it.
11928 (thumb2_cond_arith_strict_it): New pattern.
11929 (thumb2_cond_sub): Adjust for arm_restrict_it.
11930 (thumb2_movcond): Likewise.
11931 (thumb2_extendqisi_v6): Disable cond_exec variant for arm_restrict_it.
11932 (thumb2_zero_extendhisi2_v6): Likewise.
11933 (thumb2_zero_extendqisi2_v6): Likewise.
11934 (orsi_notsi_si): Likewise.
11935 (orsi_not_shiftsi_si): Likewise.
11936
11937 2013-07-22 Georg-Johann Lay <avr@gjlay.de>
11938
11939 * config/avr/avr.c (avr_out_xload): No SBIS around LPM so that
11940 instruction sequence is 1 byte shorter.
11941
11942 2013-07-22 Uros Bizjak <ubizjak@gmail.com>
11943
11944 * config/i386/i386.md (nonlocal_goto_receiver): Delete insn if
11945 it is not needed after split.
11946
11947 2013-07-20 Iain Sandoe <iain@codesourcery.com>
11948
11949 PR target/51784
11950 * config/i386/i386.c (output_set_got) [TARGET_MACHO]: Adjust to emit a
11951 second label for nonlocal goto receivers. Don't output pic base labels
11952 unless we're producing PIC; mark that action unreachable().
11953 (ix86_save_reg): If the function contains a nonlocal label, save the
11954 PIC base reg.
11955 * config/darwin-protos.h (machopic_should_output_picbase_label): New.
11956 * config/darwin.c (emitted_pic_label_num): New GTY.
11957 (update_pic_label_number_if_needed): New.
11958 (machopic_output_function_base_name): Adjust for nonlocal receiver
11959 case.
11960 (machopic_should_output_picbase_label): New.
11961 * config/i386/i386.md (enum unspecv): UNSPECV_NLGR: New.
11962 (nonlocal_goto_receiver): New insn and split.
11963
11964 2013-07-20 James Greenhalgh <james.greenhalgh@arm.com>
11965
11966 * config/aarch64/aarch64-builtins.c
11967 (aarch64_fold_builtin): Fold abs in all modes.
11968 * config/aarch64/aarch64-simd-builtins.def
11969 (abs): Enable for all modes.
11970 * config/aarch64/arm_neon.h
11971 (vabs<q>_s<8,16,32,64): Rewrite using builtins.
11972 (vabs_f64): Add missing intrinsic.
11973
11974 2013-07-19 Ian Bolton <ian.bolton@arm.com>
11975
11976 * config/aarch64/arm_neon.h (vabs_s64): New function
11977
11978 2013-07-19 Georg-Johann Lay <avr@gjlay.de>
11979
11980 PR target/57516
11981 * config/avr/avr-fixed.md (round<mode>3_const): Turn expander to insn.
11982 * config/avr/avr.md (adjust_len): Add `round'.
11983 * config/avr/avr-protos.h (avr_out_round): New prototype.
11984 (avr_out_plus): Add `out_label' argument.
11985 * config/avr/avr.c (avr_out_plus_1): Add `out_label' argument.
11986 (avr_out_plus): Pass down `out_label' to avr_out_plus_1.
11987 Handle the case where `insn' is just a pattern.
11988 (avr_out_bitop): Handle the case where `insn' is just a pattern.
11989 (avr_out_round): New function.
11990 (avr_adjust_insn_length): Handle ADJUST_LEN_ROUND.
11991
11992 2013-07-18 David Holsgrove <david.holsgrove@xilinx.com>
11993
11994 * config/microblaze/microblaze.c (microblaze_expand_prologue):
11995 Add check for flag_stack_usage to handle -fstack-usage support
11996
11997 2013-07-18 Pat Haugen <pthaugen@us.ibm.com>
11998
11999 * config/rs6000/rs6000.c (rs6000_option_override_internal): Adjust flag
12000 interaction for new Power8 flags and VSX.
12001
12002 2013-07-18 Sriraman Tallam <tmsriram@google.com>
12003
12004 PR middle-end/57698
12005 * tree-inline.c (expand_call_inline): Emit errors during
12006 early_inlining only if optimization is not turned on.
12007
12008 2013-07-18 David Malcolm <dmalcolm@redhat.com>
12009
12010 * passes.def: New.
12011
12012 * passes.c (init_optimization_passes): Move the construction of
12013 the pass hierarchy into a new passes.def file.
12014
12015 * Makefile.in (passes.o): Add dependency on passes.def.
12016
12017 2013-07-18 David Malcolm <dmalcolm@redhat.com>
12018
12019 * passes.c (init_optimization_passes): Introduce macros for
12020 constructing the tree of passes (INSERT_PASSES_AFTER,
12021 PUSH_INSERT_PASSES_WITHIN, POP_INSERT_PASSES,
12022 TERMINATE_PASS_LIST).
12023
12024 2013-07-18 Vladimir Makarov <vmakarov@redhat.com>
12025 Wei Mi <wmi@google.com>
12026
12027 PR rtl-optimization/57878
12028 * lra-assigns.c (assign_by_spills): Move non_reload_pseudos to the
12029 top.
12030 (reload_pseudo_compare_func): Check nregs first for reload
12031 pseudos.
12032
12033 2013-07-18 David Malcolm <dmalcolm@redhat.com>
12034
12035 * tree-pass.h (pass_ipa_lto_wpa_fixup): Remove redundant decl.
12036
12037 2013-07-18 Po-Chun Chang <pchang9@cs.wisc.edu>
12038
12039 * read-rtl.c (validate_const_int): Once an invalid character is
12040 seen, quit the loop.
12041
12042 * gengtype.c (write_roots): Similarly once we find the "deletable"
12043 or "if_marked" option.
12044
12045 2013-07-18 Sofiane Naci <sofiane.naci@arm.com>
12046
12047 * config/arm/arm.md (attribute "insn"): Delete values "mrs", "msr",
12048 "xtab" and "sat". Move value "clz" from here to ...
12049 (attriubte "type"): ... here.
12050 (satsi_<SAT:code>): Delete "insn" attribute.
12051 (satsi_<SAT:code>_shift): Likewise.
12052 (arm_zero_extendqisi2addsi): Likewise.
12053 (arm_extendqisi2addsi): Likewise.
12054 (clzsi2): Update for attribute changes.
12055 (rbitsi2): Likewise.
12056 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Delete "insn"
12057 attribute.
12058 (arm_usatsihi): Likewise.
12059 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
12060
12061 2013-07-18 Sofiane Naci <sofiane.naci@arm.com>
12062
12063 * config/arm/arm.md (attribute "type"): Rename "simple_alu_imm" to
12064 "arlo_imm". Rename "alu_reg" to "arlo_reg". Rename "simple_alu_shift"
12065 to "extend". Split "alu_shift" into "shift" and "arlo_shift". Split
12066 "alu_shift_reg" into "shift_reg" and "arlo_shift_reg". List types
12067 in alphabetical order.
12068 (attribute "core_cycles"): Update for attribute changes.
12069 (arm_addsi3): Likewise.
12070 (addsi3_compare0): Likewise.
12071 (addsi3_compare0_scratch): Likewise.
12072 (addsi3_compare_op1): Likewise.
12073 (addsi3_compare_op2): Likewise.
12074 (compare_addsi2_op0): Likewise.
12075 (compare_addsi2_op1): Likewise.
12076 (addsi3_carryin_shift_<optab>): Likewise.
12077 (subsi3_carryin_shift): Likewise.
12078 (rsbsi3_carryin_shift): Likewise.
12079 (arm_subsi3_insn): Likewise.
12080 (subsi3_compare0): Likewise.
12081 (subsi3_compare): Likewise.
12082 (arm_andsi3_insn): Likewise.
12083 (thumb1_andsi3_insn): Likewise.
12084 (andsi3_compare0): Likewise.
12085 (andsi3_compare0_scratch): Likewise.
12086 (zeroextractsi_compare0_scratch
12087 (andsi_not_shiftsi_si): Likewise.
12088 (iorsi3_insn): Likewise.
12089 (iorsi3_compare0): Likewise.
12090 (iorsi3_compare0_scratch): Likewise.
12091 (arm_xorsi3): Likewise.
12092 (thumb1_xorsi3_insn): Likewise.
12093 (xorsi3_compare0): Likewise.
12094 (xorsi3_compare0_scratch): Likewise.
12095 (satsi_<SAT:code>_shift): Likewise.
12096 (rrx): Likewise.
12097 (arm_shiftsi3): Likewise.
12098 (shiftsi3_compare0): Likewise.
12099 (not_shiftsi): Likewise.
12100 (not_shiftsi_compare0): Likewise.
12101 (not_shiftsi_compare0_scratch): Likewise.
12102 (arm_one_cmplsi2): Likewise.
12103 (thumb_one_complsi2): Likewise.
12104 (notsi_compare0): Likewise.
12105 (notsi_compare0_scratch): Likewise.
12106 (thumb1_zero_extendhisi2): Likewise.
12107 (arm_zero_extendhisi2): Likewise.
12108 (arm_zero_extendhisi2_v6): Likewise.
12109 (arm_zero_extendhisi2addsi): Likewise.
12110 (thumb1_zero_extendqisi2): Likewise.
12111 (thumb1_zero_extendqisi2_v6): Likewise.
12112 (arm_zero_extendqisi2): Likewise.
12113 (arm_zero_extendqisi2_v6): Likewise.
12114 (arm_zero_extendqisi2addsi): Likewise.
12115 (thumb1_extendhisi2): Likewise.
12116 (arm_extendhisi2): Likewise.
12117 (arm_extendhisi2_v6): Likewise.
12118 (arm_extendqisi): Likewise.
12119 (arm_extendqisi_v6): Likewise.
12120 (arm_extendqisi2addsi): Likewise.
12121 (thumb1_extendqisi2): Likewise.
12122 (thumb1_movdi_insn): Likewise.
12123 (arm_movsi_insn): Likewise.
12124 (movsi_compare0): Likewise.
12125 (movhi_insn_arch4): Likewise.
12126 (movhi_bytes): Likewise.
12127 (arm_movqi_insn): Likewise.
12128 (thumb1_movqi_insn): Likewise.
12129 (arm32_movhf): Likewise.
12130 (thumb1_movhf): Likewise.
12131 (arm_movsf_soft_insn): Likewise.
12132 (thumb1_movsf_insn): Likewise.
12133 (movdf_soft_insn): Likewise.
12134 (thumb_movdf_insn): Likewise.
12135 (arm_cmpsi_insn): Likewise.
12136 (cmpsi_shiftsi): Likewise.
12137 (cmpsi_shiftsi_swp): Likewise.
12138 (arm_cmpsi_negshiftsi_si): Likewise.
12139 (movsicc_insn): Likewise.
12140 (movsfcc_soft_insn): Likewise.
12141 (arith_shiftsi): Likewise.
12142 (arith_shiftsi_compare0
12143 (arith_shiftsi_compare0_scratch
12144 (sub_shiftsi): Likewise.
12145 (sub_shiftsi_compare0
12146 (sub_shiftsi_compare0_scratch
12147 (and_scc): Likewise.
12148 (cond_move): Likewise.
12149 (if_plus_move): Likewise.
12150 (if_move_plus): Likewise.
12151 (if_move_not): Likewise.
12152 (if_not_move): Likewise.
12153 (if_shift_move): Likewise.
12154 (if_move_shift): Likewise.
12155 (if_shift_shift): Likewise.
12156 (if_not_arith): Likewise.
12157 (if_arith_not): Likewise.
12158 (cond_move_not): Likewise.
12159 (thumb1_ashlsi3): Set type attribute.
12160 (thumb1_ashrsi3): Likewise.
12161 (thumb1_lshrsi3): Likewise.
12162 (thumb1_rotrsi3): Likewise.
12163 (shiftsi3_compare0_scratch): Likewise.
12164 * config/arm/neon.md (neon_mov<mode>): Update for attribute changes.
12165 (neon_mov<mode>): Likewise.
12166 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si): Update for
12167 attribute changes.
12168 (thumb2_movsi_insn): Likewise.
12169 (thumb2_cmpsi_neg_shiftsi): Likewise.
12170 (thumb2_extendqisi_v6): Likewise.
12171 (thumb2_zero_extendhisi2_v6): Likewise.
12172 (thumb2_zero_extendqisi2_v6): Likewise.
12173 (thumb2_shiftsi3_short): Likewise.
12174 (thumb2_addsi3_compare0_scratch): Likewise.
12175 (orsi_not_shiftsi_si): Likewise.
12176 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
12177 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Update for attribute
12178 changes.
12179 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
12180 (1020alu_shift_op): Likewise.
12181 (1020alu_shift_reg_op): Likewise.
12182 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
12183 (alu_shift_op): Likewise.
12184 (alu_shift_reg_op): Likewise.
12185 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
12186 (11_alu_shift_op): Likewise.
12187 (11_alu_shift_reg_op): Likewise.
12188 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
12189 (9_alu_shift_reg_op): Likewise.
12190 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
12191 changes.
12192 (cortex_a15_alu_shift): Likewise.
12193 (cortex_a15_alu_shift_reg): Likewise.
12194 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute
12195 changes.
12196 (cortex_a5_alu_shift): Likewise.
12197 * config/arm/cortex-a53.md (cortex_a53_alu) : Update for attribute
12198 changes.
12199 (cortex_a53_alu_shift): Likewise.
12200 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
12201 changes.
12202 (cortex_a7_alu_reg): Likewise.
12203 (cortex_a7_alu_shift): Likewise.
12204 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute
12205 changes.
12206 (cortex_a8_alu_shift): Likewise.
12207 (cortex_a8_alu_shift_reg): Likewise.
12208 (cortex_a8_mov): Likewise.
12209 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
12210 (cortex_a9_dp_shift): Likewise.
12211 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute
12212 changes.
12213 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute
12214 changes.
12215 (cortex_r4_mov): Likewise.
12216 (cortex_r4_alu_shift): Likewise.
12217 (cortex_r4_alu_shift_reg): Likewise.
12218 * config/arm/fa526.md (526_alu_op): Update for attribute changes.
12219 (526_alu_shift_op): Likewise.
12220 * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
12221 * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
12222 (626te_alu_shift_op): Likewise.
12223 * config/arm/fa726te.md (726te_shift_op): Update for attribute changes.
12224 (726te_alu_op): Likewise.
12225 (726te_alu_shift_op): Likewise.
12226 (726te_alu_shift_reg_op): Likewise.
12227 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
12228 (mp626_alu_shift_op): Likewise.
12229 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute changes.
12230 (pj4_alu_e1_conds): Likewise.
12231 (pj4_alu): Likewise.
12232 (pj4_alu_conds): Likewise.
12233 (pj4_shift): Likewise.
12234 (pj4_shift_conds): Likewise.
12235 (pj4_alu_shift): Likewise.
12236 (pj4_alu_shift_conds): Likewise.
12237 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute
12238 changes.
12239 (cortexa7_older_only): Likewise.
12240 (cortexa7_younger): Likewise.
12241
12242 2013-07-18 David Malcolm <dmalcolm@redhat.com>
12243
12244 * ipa-pure-const.c (generate_summary): Rename to...
12245 (pure_const_generate_summary): ... this.
12246
12247 2013-07-17 Iain Sandoe <iain@codesourcery.com>
12248
12249 * config/rs6000/darwin.h (REGISTER_NAMES): Add HTM registers.
12250
12251 2013-07-17 Yvan Roux <yvan.roux@linaro.org>
12252
12253 PR target/57909
12254 * config/arm/arm.c (gen_movmem_ldrd_strd): Fix unaligned load/store
12255 usage in HI mode.
12256
12257 2013-07-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12258
12259 * config/s390/s390.c: (s390_expand_builtin): Allow -mhtm to be
12260 enabled without -march=zEC12.
12261 * config/s390/s390.h (TARGET_HTM): Do not require EC12 machine
12262 flags to be set.
12263
12264 2013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
12265
12266 * config/mips/mips.h (ISA_HAS_FP4): Correct formatting.
12267 (ISA_HAS_FP_MADD4_MSUB4): Also enable for ISA_MIPS32R2.
12268 (ISA_HAS_NMADD4_NMSUB4): Remove the MODE argument; rewrite in
12269 terms of ISA_HAS_FP4, and also enable for ISA_MIPS32R2.
12270 (ISA_HAS_NMADD3_NMSUB3): Remove the MODE argument.
12271 * config/mips/mips.c (mips_rtx_costs) <PLUS>: Check for
12272 ISA_HAS_FP_MADD4_MSUB4 || ISA_HAS_FP_MADD3_MSUB3 rather than
12273 ISA_HAS_FP4.
12274 <MINUS, NEG>: Update according to changes to ISA_HAS_NMADD4_NMSUB4
12275 and ISA_HAS_NMADD3_NMSUB3.
12276 * config/mips/mips.md (nmadd4<mode>, nmadd3<mode>): Likewise.
12277 (nmadd4<mode>_fastmath, nmadd3<mode>_fastmath): Likewise.
12278 (nmsub4<mode>, nmsub3<mode>): Likewise.
12279 (nmsub4<mode>_fastmath, nmsub3<mode>_fastmath): Likewise.
12280
12281 2013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
12282
12283 * config/mips/mips.h (ISA_HAS_NMADD4_NMSUB4): Remove
12284 TARGET_MIPS5400 checking.
12285
12286 2013-07-16 Jakub Jelinek <jakub@redhat.com>
12287 Peter Bergner <bergner@vnet.ibm.com>
12288
12289 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTERS): Mention HTM
12290 registers in the comment.
12291 (DWARF_FRAME_REGISTERS): Subtract also the 3 HTM registers.
12292 (DWARF_REG_TO_UNWIND_COLUMN): Use DWARF_FRAME_REGISTERS
12293 rather than FIRST_PSEUDO_REGISTERS.
12294
12295 2013-07-16 Peter Bergner <bergner@vnet.ibm.com>
12296
12297 * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
12298 enable extra ISA flags with TARGET_HTM.
12299
12300 2013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
12301
12302 * config/mips/mips.h (ISA_HAS_MULS, ISA_HAS_MSAC, ISA_HAS_MACC):
12303 Fix comment typos.
12304
12305 2013-07-15 Cong Hou <congh@google.com>
12306
12307 * tree-vect-data-refs.c (dr_group_sort_cmp): Do not use hash function
12308 in compare function for sorting.
12309
12310 2013-07-15 Peter Bergner <bergner@vnet.ibm.com>
12311
12312 * config.gcc (powerpc*-*-*): Install htmintrin.h and htmxlintrin.h.
12313 * config/rs6000/t-rs6000 (MD_INCLUDES): Add htm.md.
12314 * config/rs6000/rs6000.opt: Add -mhtm option.
12315 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add OPTION_MASK_HTM.
12316 (ISA_2_7_MASKS_SERVER): Add OPTION_MASK_HTM.
12317 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
12318 __HTM__ if the HTM instructions are available.
12319 * config/rs6000/predicates.md (u3bit_cint_operand, u10bit_cint_operand,
12320 htm_spr_reg_operand): New define_predicates.
12321 * config/rs6000/rs6000.md (define_attr "type"): Add htm.
12322 (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO): New define_constants.
12323 Include htm.md.
12324 * config/rs6000/rs6000-builtin.def (BU_HTM_0, BU_HTM_1, BU_HTM_2,
12325 BU_HTM_3, BU_HTM_SPR0, BU_HTM_SPR1): Add support macros for defining
12326 HTM builtin functions.
12327 * config/rs6000/rs6000.c (RS6000_BUILTIN_H): New macro.
12328 (rs6000_reg_names, alt_reg_names): Add HTM SPR register names.
12329 (rs6000_init_hard_regno_mode_ok): Add support for HTM instructions.
12330 (rs6000_builtin_mask_calculate): Likewise.
12331 (rs6000_option_override_internal): Likewise.
12332 (bdesc_htm): Add new HTM builtin support.
12333 (htm_spr_num): New function.
12334 (htm_spr_regno): Likewise.
12335 (rs6000_htm_spr_icode): Likewise.
12336 (htm_expand_builtin): Likewise.
12337 (htm_init_builtins): Likewise.
12338 (rs6000_expand_builtin): Add support for HTM builtin functions.
12339 (rs6000_init_builtins): Likewise.
12340 (rs6000_invalid_builtin, rs6000_opt_mask): Add support for -mhtm
12341 option.
12342 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for -mhtm.
12343 (TARGET_HTM, MASK_HTM): Define macros.
12344 (FIRST_PSEUDO_REGISTER): Adjust for new HTM SPR registers.
12345 (FIXED_REGISTERS): Likewise.
12346 (CALL_USED_REGISTERS): Likewise.
12347 (CALL_REALLY_USED_REGISTERS): Likewise.
12348 (REG_ALLOC_ORDER): Likewise.
12349 (enum reg_class): Likewise.
12350 (REG_CLASS_NAMES): Likewise.
12351 (REG_CLASS_CONTENTS): Likewise.
12352 (REGISTER_NAMES): Likewise.
12353 (ADDITIONAL_REGISTER_NAMES): Likewise.
12354 (RS6000_BTC_SPR, RS6000_BTC_VOID, RS6000_BTC_32BIT, RS6000_BTC_64BIT,
12355 RS6000_BTC_MISC_MASK, RS6000_BTM_HTM): New macros.
12356 (RS6000_BTM_COMMON): Add RS6000_BTM_HTM.
12357 * config/rs6000/htm.md: New file.
12358 * config/rs6000/htmintrin.h: New file.
12359 * config/rs6000/htmxlintrin.h: New file.
12360
12361 2013-07-15 Marcus Shawcroft <marcus.shawcroft@arm.com>
12362
12363 * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
12364 Define SYMBOL_TINY_GOT, update comment.
12365 * config/aarch64/aarch64.c
12366 (aarch64_load_symref_appropriately): Handle SYMBOL_TINY_GOT.
12367 (aarch64_expand_mov_immediate): Likewise.
12368 (aarch64_print_operand): Likewise.
12369 (aarch64_classify_symbol): Likewise.
12370 * config/aarch64/aarch64.md (UNSPEC_GOTTINYPIC): Define.
12371 (ldr_got_tiny): Define.
12372
12373 2013-07-13 Tobias Grosser <tobias@grosser.es>
12374
12375 PR tree-optimization/54094
12376 * graphite-clast-to-gimple.c (translate_clast_for_loop): Derive the
12377 scheduling dimension for the parallelism check from the polyhedral
12378 information in the AST.
12379 * graphite-dependences.c (carries_deps): Do not assume the schedule is
12380 in 2D + 1 form.
12381
12382 2013-07-13 Jason Merrill <jason@redhat.com>
12383
12384 * print-tree.c (debug_vec_tree): Use debug_raw.
12385 (debug_raw (vec<tree, va_gc> &)): New.
12386 (debug_raw (vec<tree, va_gc> *)): New.
12387 * tree.h: Declare them.
12388
12389 2013-07-13 Bin Cheng <bin.cheng@arm.com>
12390
12391 * ifcvt.c (ifcvt_after_combine): New static variable.
12392 (cheap_bb_rtx_cost_p): Set scale to REG_BR_PROB_BASE when optimizing
12393 for size.
12394 (if_convert): New parameter after_combine. Set ifcvt_after_combine.
12395 (rest_of_handle_if_conversion, rest_of_handle_if_after_combine,
12396 rest_of_handle_if_after_reload): Pass new argument for if_convert.
12397
12398 2013-07-12 Maciej W. Rozycki <macro@codesourcery.com>
12399
12400 * config/mips/mips.c (mips_expand_call): Remove empty statement.
12401
12402 2013-07-12 Michael Matz <matz@suse.de>
12403
12404 PR middle-end/55771
12405 * convert.c (convert_to_real): Reject non-float inner types.
12406
12407 2013-07-12 Tejas Belagod <tejas.belagod@arm.com>
12408
12409 * config/aarch64/aarch64-protos.h
12410 (aarch64_simd_immediate_valid_for_move): Remove.
12411 * config/aarch64/aarch64.c (simd_immediate_info): New member.
12412 (aarch64_simd_valid_immediate): Recognize idioms for shifting ones
12413 cases.
12414 (aarch64_output_simd_mov_immediate): Print the correct shift specifier.
12415
12416 2013-07-11 Steve Ellcey <sellcey@mips.com>
12417
12418 * config/mips/mips.c (mips_conditional_register_usage): Do not
12419 use t[0-7] registers in MIPS16 mode when optimizing for size.
12420
12421 2013-07-11 Sriraman Tallam <tmsriram@google.com>
12422
12423 * config/i386/i386.c (dispatch_function_versions): Fix array
12424 indexing of function_version_info to match actual_versions.
12425
12426 2013-07-11 Teresa Johnson <tejohnson@google.com>
12427
12428 * vec.h (struct va_gc): Move release out-of-line.
12429 (va_gc::release): Call ggc_free on released vec.
12430
12431 2013-07-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12432
12433 * config/rs6000/rs6000.md (""*tls_gd_low<TLSmode:tls_abi_suffix>"):
12434 Require GOT register as additional operand in UNSPEC.
12435 ("*tls_ld_low<TLSmode:tls_abi_suffix>"): Likewise.
12436 ("*tls_got_dtprel_low<TLSmode:tls_abi_suffix>"): Likewise.
12437 ("*tls_got_tprel_low<TLSmode:tls_abi_suffix>"): Likewise.
12438 ("*tls_gd<TLSmode:tls_abi_suffix>"): Update splitter.
12439 ("*tls_ld<TLSmode:tls_abi_suffix>"): Likewise.
12440 ("tls_got_dtprel_<TLSmode:tls_abi_suffix>"): Likewise.
12441 ("tls_got_tprel_<TLSmode:tls_abi_suffix>"): Likewise.
12442
12443 2013-07-11 Georg-Johann Lay <avr@gjlay.de>
12444
12445 PR target/57631
12446 * config/avr/avr.c (avr_set_current_function): Sanity-check signal
12447 name seen by assembler/linker rather if available.
12448
12449 2013-07-11 Andreas Schwab <schwab@suse.de>
12450
12451 * config/aarch64/aarch64-linux.h (CPP_SPEC): Define.
12452
12453 2013-07-10 Vladimir Makarov <vmakarov@redhat.com>
12454
12455 * lra-constraints.c (curr_insn_transform): Switch off optional reloads.
12456
12457 2013-07-10 Joseph Myers <joseph@codesourcery.com>
12458
12459 * doc/tm.texi.in: Move hook documentation to ....
12460 * target.def: ... here.
12461
12462 * doc/tm.texi.in (TARGET_CANONICALIZE_COMPARISON): Remove stray
12463 text on @hook line.
12464 * doc/tm.texi: Regenerate.
12465
12466 2013-07-10 Paolo Carlini <paolo.carlini@oracle.com>
12467
12468 PR c++/57869
12469 * doc/invoke.texi: Document -Wconditionally-supported.
12470
12471 2013-07-10 Georg-Johann Lay <avr@gjlay.de>
12472
12473 PR target/57844
12474 * config/avr/avr.c (avr_prologue_setup_frame): Trunk -size to mode
12475 of my_fp.
12476
12477 2013-07-10 Georg-Johann Lay <avr@gjlay.de>
12478
12479 PR target/57506
12480 * config/avr/avr-mcus.def (atmega16hva, atmega16hva2, atmega16hvb)
12481 (atmega16m1, atmega16u4, atmega32a, atmega32c1, atmega32hvb)
12482 (atmega32m1, atmega32u4, atmega32u6, atmega64c1, atmega64m1):
12483 Remove duplicate devices.
12484 * config/avr/gen-avr-mmcu-texi.c (print_mcus): Fail on duplicate MCUs.
12485 * config/avr/t-multilib: Regenerate.
12486 * config/avr/avr-tables.opt: Regenerate.
12487 * doc/avr-mmcu.texi: Regenerate.
12488
12489 2013-07-10 Georg-Johann Lay <avr@gjlay.de>
12490
12491 PR target/56987
12492 * config/avr/avr.opt (Waddr-space-convert): Fix typo.
12493
12494 2013-07-10 Graham Stott <graham.stott@btinternet.com>
12495
12496 * config/mips/mips.c (mips_rtx_costs): Very slightly increase
12497 the cost of MULT when optimizing for size.
12498
12499 2013-07-10 Jan-Benedict Glaw <jbglaw@lug-owl.de>
12500
12501 * config/cr16/cr16-protos.h: Don't include target.h.
12502
12503 2013-07-09 Joseph Myers <joseph@codesourcery.com>
12504
12505 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Only
12506 adjust register size for TDmode and TFmode for VSX registers.
12507
12508 2013-07-08 Kai Tietz <ktietz@redhat.com>
12509
12510 PR target/56892
12511 * config/i386/i386.c (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): Define as
12512 hook_bool_const_tree_true.
12513
12514 2013-07-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12515
12516 * config/s390/s390.c: Replace F*_REGNUM with FPR*_REGNUM.
12517 * config/s390/s390.h: Remove F*_REGNUM macro definitions.
12518 * config/s390/s390.md: Define FPR*_REGNUM constants.
12519 Fix FPR2_REGNUM constant (18 -> 17).
12520 ("*trunc<BFP:mode><DFP_ALL:mode>2")
12521 ("*trunc<DFP_ALL:mode><BFP:mode>2")
12522 ("trunc<BFP:mode><DFP_ALL:mode>2")
12523 ("trunc<DFP_ALL:mode><BFP:mode>2")
12524 ("*extend<BFP:mode><DFP_ALL:mode>2")
12525 ("*extend<DFP_ALL:mode><BFP:mode>2")
12526 ("extend<BFP:mode><DFP_ALL:mode>2")
12527 ("extend<DFP_ALL:mode><BFP:mode>2"): Replace FPR2_REGNUM with
12528 FPR4_REGNUM.
12529
12530 2013-07-08 Graham Stott <graham.stott@btinternet.com>
12531
12532 * Makefile.in: (c-family-warn): Define to $(STRICT_WARN)
12533
12534 2013-07-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12535
12536 * config/s390/s390.c: Rename cfun_set_fpr_bit to cfun_set_fpr_save
12537 and cfun_fpr_bit_p to cfun_fpr_save_p.
12538 (s390_frame_area, s390_register_info, s390_frame_info)
12539 (s390_emit_prologue, s390_emit_epilogue)
12540 (s390_conditional_register_usage): Use the *_REGNUM macros for FPR
12541 register numbers.
12542 * config/s390/s390.h: Define *_REGNUM macros for floating point
12543 register numbers.
12544
12545 2013-07-08 Eric Botcazou <ebotcazou@adacore.com>
12546
12547 * Makefile.in (tree-ssa-reassoc.o): Add dependency on $(PARAMS_H).
12548
12549 2013-07-08 Po-Chun Chang <pchang9@cs.wisc.edu>
12550
12551 PR rtl-optimization/57786
12552 * combine.c (distribute_notes) <case REG_DEAD>: Change all_used to bool
12553 and break out of the loop when it is set to false.
12554
12555 2013-07-08 Jakub Jelinek <jakub@redhat.com>
12556
12557 PR target/57819
12558 * simplify-rtx.c (simplify_unary_operation_1) <case ZERO_EXTEND>:
12559 Simplify (zero_extend:SI (subreg:QI (and:SI (reg:SI)
12560 (const_int 63)) 0)).
12561 * combine.c (make_extraction): Create ZERO_EXTEND or SIGN_EXTEND
12562 using simplify_gen_unary instead of gen_rtx_*_EXTEND.
12563 * config/i386/i386.md (*jcc_bt<mode>_1): New define_insn_and_split.
12564
12565 PR rtl-optimization/57829
12566 * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Ensure that
12567 mask bits outside of mode are just sign-extension from mode to HWI.
12568
12569 2013-07-08 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
12570
12571 * config/i386/i386-opts.h (enum stringop_alg): Add vector_loop.
12572 * config/i386/i386.c (expand_set_or_movmem_via_loop): Use
12573 adjust_address instead of change_address to keep info about alignment.
12574 (emit_strmov): Remove.
12575 (emit_memmov): New function.
12576 (expand_movmem_epilogue): Refactor to properly handle bigger sizes.
12577 (expand_movmem_epilogue): Likewise and return updated rtx for
12578 destination.
12579 (expand_constant_movmem_prologue): Likewise and return updated rtx for
12580 destination and source.
12581 (decide_alignment): Refactor, handle vector_loop.
12582 (ix86_expand_movmem): Likewise.
12583 (ix86_expand_setmem): Likewise.
12584 * config/i386/i386.opt (Enum): Add vector_loop to option stringop_alg.
12585
12586 2013-07-07 Uros Bizjak <ubizjak@gmail.com>
12587
12588 * config/i386/driver-i386.c (host_detect_local_cpu): Do not check
12589 signature_TM2_ebx, it interferes with signature_INTEL_ebx.
12590
12591 2013-07-06 Uros Bizjak <ubizjak@gmail.com>
12592
12593 * config/i386/sse.md (sse_movlhps): Change alternative 3
12594 of operand 2 to "m".
12595
12596 2013-07-06 Uros Bizjak <ubizjak@gmail.com>
12597
12598 PR target/57807
12599 * config/i386/sse.md (iptr): New mode attribute.
12600 (sse2_movq128): Add pointer size overrides for Intel asm dialect.
12601 (<sse>_vm<plusminus_insn><mode>3): Ditto.
12602 (<sse>_vmmul<mode>3): Ditto.
12603 (<sse>_vmdiv<mode>3): Ditto.
12604 (sse_vmrcpv4sf2): Ditto.
12605 (<sse>_vmsqrt<mode>2): Ditto.
12606 (sse_vmrsqrtv4sf2): Ditto.
12607 (<sse>_vm<code><mode>3): Ditto.
12608 (avx_vmcmp<mode>3): Ditto.
12609 (<sse>_vmmaskcmp<mode>3): Ditto.
12610 (<sse>_comi): Ditto.
12611 (<sse>_ucomi): Ditto.
12612 (*xop_vmfrcz_<mode>): Ditto.
12613 (*fmai_fmadd_<mode>): Ditto.
12614 (*fmai_fmsub_<mode>): Ditto.
12615 (*fmai_fnmadd_<mode>): Ditto.
12616 (*fmai_fnmsub_<mode>): Ditto.
12617 (*fma4i_vmfmadd_<mode>): Ditto.
12618 (*fma4i_vmfmsub_<mode>): Ditto.
12619 (*fma4i_vmfnmadd_<mode>): Ditto.
12620 (*fma4i_vmfnmsub_<mode>): Ditto.
12621 (*xop_vmfrcz_<mode>): Ditto.
12622 (sse_cvtps2pi): Ditto.
12623 (sse_cvttps2pi): Ditto.
12624 (sse_cvtss2si): Ditto.
12625 (sse_cvtss2si_2): Ditto.
12626 (sse_cvtss2siq_2): Ditto.
12627 (sse_cvttss2si): Ditto.
12628 (sse_cvttss2siq): Ditto.
12629 (sse_cvtsd2si): Ditto.
12630 (sse_cvtsd2si_2): Ditto.
12631 (sse_cvtsd2siq_2): Ditto.
12632 (sse_cvttsd2si): Ditto.
12633 (sse_cvttsd2siq): Ditto.
12634 (sse_cvtsd2ss): Ditto.
12635 (sse_cvtss2sd): Ditto.
12636 (avx2_pbroadcast<mode>): Ditto.
12637 (avx2_pbroadcast<mode>_1): Ditto.
12638 (*avx_vperm_broadcast_v4sf): Ditto.
12639
12640 (sse_movhlps): Ditto for movlp[sd]/movhp[sd] alternatives.
12641 (sse_movlhps): Ditto.
12642 (sse_storehps): Ditto.
12643 (sse_loadhps): Ditto.
12644 (sse_storelps): Ditto.
12645 (sse_loadlps): Ditto.
12646 (*vec_concatv4sf): Ditto.
12647 (*vec_interleave_highv2df): Ditto.
12648 (*vec_interleave_lowv2df): Ditto.
12649 (*vec_extractv2df_1_sse): Ditto.
12650 (*vec_extractv2df_0_sse): Ditto.
12651 (sse2_storelpd): Ditto.
12652 (sse2_loadlpd): Ditto.
12653 (sse2_movsd): Ditto.
12654 (*vec_concatv4si): Ditto.
12655 (vec_concatv2di): Ditto.
12656
12657 * config/i386/mmx.md (mmx_punpcklbw): Add pointer size overrides
12658 for Intel asm dialect.
12659 (mmx_punpcklwd): Ditto.
12660 (mmx_punpckldq): Ditto.
12661
12662 * config/i386/i386.c (ix86_print_operand) ['H']: Output 'qword ptr'
12663 for intel assembler dialect.
12664
12665 2013-07-06 Jakub Jelinek <jakub@redhat.com>
12666
12667 PR target/29776
12668 * fold-const.c (tree_call_nonnegative_warnv_p): Return true
12669 for BUILT_IN_C{LZ,LRSB}*.
12670 * tree.h (CASE_INT_FN): Add FN##IMAX case.
12671 * tree-vrp.c (extract_range_basic): Handle
12672 BUILT_IN_{FFS,PARITY,POPCOUNT,C{LZ,TZ,LRSB}}*. For
12673 BUILT_IN_CONSTANT_P if argument isn't (D) of PARM_DECL,
12674 fall thru to code calling set_value*.
12675 * builtins.c (expand_builtin): Remove *IMAX cases.
12676 (fold_builtin_bitop): For BUILT_IN_CLRSB* return NULL_TREE
12677 if width is bigger than 2*HWI.
12678
12679 2013-07-05 Vladimir Makarov <vmakarov@redhat.com>
12680
12681 PR rtl-optimization/55342
12682 * lra-int.h (lra_subreg_reload_pseudos): New.
12683 * lra.c: Add undoing optional reloads to the block diagram.
12684 (lra_subreg_reload_pseudos): New.
12685 (lra_optional_reload_pseudos): Change comments.
12686 (lra): Init and clear lra_subreg_reload_pseudos. Clear
12687 lra_optional_reload_pseudos after undo transformations.
12688 * lra-assigns.c (pseudo_prefix_title): New.
12689 (lra_setup_reg_renumber): Use it.
12690 (spill_for): Ditto. Check subreg reload pseudos too.
12691 (assign_by_spills): Consider subreg reload pseudos too.
12692 * lra-constraints.c (simplify_operand_subreg): Use
12693 lra_subreg_reload_pseudos instead of lra_optional_reload_pseudos.
12694 (curr_insn_transform): Recognize and do optional reloads.
12695 (undo_optional_reloads): New.
12696 (lra_undo_inheritance): Call undo_optional_reloads.
12697
12698 2013-07-05 Thomas Quinot <quinot@adacore.com>
12699
12700 * tree-complex.c (expand_complex_operations_1): Fix typo.
12701
12702 2013-07-04 Tejas Belagod <tejas.belagod@arm.com>
12703
12704 * config/aarch64/aarch64-protos.h (cpu_vector_cost): New.
12705 (tune_params): New member 'const vec_costs'.
12706 * config/aarch64/aarch64.c (generic_vector_cost): New.
12707 (generic_tunings): New member 'generic_vector_cost'.
12708 (aarch64_builtin_vectorization_cost): New.
12709 (aarch64_add_stmt_cost): New.
12710 (TARGET_VECTORIZE_ADD_STMT_COST): New.
12711 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): New.
12712
12713 2013-07-03 Jakub Jelinek <jakub@redhat.com>
12714
12715 PR target/57777
12716 * config/i386/predicates.md (vsib_address_operand): Disallow
12717 SYMBOL_REF or LABEL_REF in parts.disp if TARGET_64BIT && flag_pic.
12718
12719 2013-07-03 Hans-Peter Nilsson <hp@bitrange.com>
12720
12721 PR middle-end/55030
12722 * stmt.c (expand_nl_goto_receiver): Remove almost-copy of
12723 expand_builtin_setjmp_receiver.
12724 (expand_label): Adjust, call expand_builtin_setjmp_receiver
12725 with NULL for the label parameter.
12726 * builtins.c (expand_builtin_setjmp_receiver): Don't clobber
12727 the frame-pointer. Adjust comments.
12728 [HAVE_builtin_setjmp_receiver]: Emit builtin_setjmp_receiver
12729 only if LABEL is non-NULL.
12730
12731 2013-07-03 Yufeng Zhang <yufeng.zhang@arm.com>
12732
12733 * config/aarch64/aarch64.h (enum arm_abi_type): Remove.
12734 (ARM_ABI_AAPCS64): Ditto.
12735 (arm_abi): Ditto.
12736 (ARM_DEFAULT_ABI): Ditto.
12737
12738 2013-07-03 James Greenhalgh <james.greenhalgh@arm.com>
12739
12740 * config/aarch64/aarch64-builtins.c
12741 (aarch64_simd_expand_builtin): Handle AARCH64_SIMD_STORE1.
12742 * config/aarch64/aarch64-simd-builtins.def (ld1): New.
12743 (st1): Likewise.
12744 * config/aarch64/aarch64-simd.md
12745 (aarch64_ld1<VALL:mode>): New.
12746 (aarch64_st1<VALL:mode>): Likewise.
12747 * config/aarch64/arm_neon.h
12748 (vld1<q>_<fpsu><8, 16, 32, 64>): Convert to RTL builtins.
12749
12750 2013-07-02 Sriraman Tallam <tmsriram@google.com>
12751
12752 * config/i386/i386.c (gate_insert_vzeroupper): Check if
12753 target ISA is AVX.
12754 (ix86_option_override_internal):Turn on all -mavx target flags by
12755 default as they are dependent on AVX anyway.
12756
12757 2013-07-02 Cary Coutant <ccoutant@google.com>
12758
12759 * dwarf2out.c (loc_checksum): Call hash_loc_operands for a
12760 deterministic hash.
12761 (loc_checksum_ordered): Likewise.
12762 (hash_loc_operands): Remove inline keyword.
12763
12764 2013-07-02 Jakub Jelinek <jakub@redhat.com>
12765
12766 PR tree-optimization/57741
12767 * tree-vect-loop.c (vect_is_simple_iv_evolution): Disallow
12768 non-INTEGRAL_TYPE_P non-SCALAR_FLOAT_TYPE_P SSA_NAME step_exprs,
12769 or SCALAR_FLOAT_TYPE_P SSA_NAMEs if !flag_associative_math.
12770 Allow REAL_CST step_exprs if flag_associative_math.
12771 (get_initial_def_for_induction): Handle SCALAR_FLOAT_TYPE_P step_expr.
12772
12773 2013-07-02 Ian Bolton <ian.bolton@arm.com>
12774
12775 * config/aarch64/aarch64-simd.md (absdi2): Support abs for DI mode.
12776
12777 2013-07-02 Ian Bolton <ian.bolton@arm.com>
12778
12779 * config/aarch64/aarch64.md (*extr_insv_reg<mode>): New pattern.
12780
12781 2013-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12782
12783 * config/arm/arm.md (arm_andsi3_insn): Add alternatives for 16-bit
12784 encoding.
12785 (iorsi3_insn): Likewise.
12786 (arm_xorsi3): Likewise.
12787
12788 2013-07-01 Sofiane Naci <sofiane.naci@arm.com>
12789
12790 * arm.md (attribute "wtype"): Delete. Move attribute values from here
12791 to ...
12792 (attribute "type"): ... here, and prefix with "wmmx_".
12793 (attribute "core_cycles"): Update for attribute changes.
12794 * iwmmxt.md (tbcstv8qi): Update for attribute changes.
12795 (tbcstv4hi): Likewise.
12796 (tbcstv2si): Likewise.
12797 (iwmmxt_iordi3): Likewise.
12798 (iwmmxt_xordi3): Likewise.
12799 (iwmmxt_anddi3): Likewise.
12800 (iwmmxt_nanddi3): Likewise.
12801 (iwmmxt_arm_movdi): Likewise.
12802 (iwmmxt_movsi_insn): Likewise.
12803 (mov<mode>_internal): Likewise.
12804 (and<mode>3_iwmmxt): Likewise.
12805 (ior<mode>3_iwmmxt): Likewise.
12806 (xor<mode>3_iwmmxt): Likewise.
12807 (add<mode>3_iwmmxt): Likewise.
12808 (ssaddv8qi3): Likewise.
12809 (ssaddv4hi3): Likewise.
12810 (ssaddv2si3): Likewise.
12811 (usaddv8qi3): Likewise.
12812 (usaddv4hi3): Likewise.
12813 (usaddv2si3): Likewise.
12814 (sub<mode>3_iwmmxt): Likewise.
12815 (sssubv8qi3): Likewise.
12816 (sssubv4hi3): Likewise.
12817 (sssubv2si3): Likewise.
12818 (ussubv8qi3): Likewise.
12819 (ussubv4hi3): Likewise.
12820 (ussubv2si3): Likewise.
12821 (mulv4hi3_iwmmxt): Likewise.
12822 (smulv4hi3_highpart): Likewise.
12823 (umulv4hi3_highpart): Likewise.
12824 (iwmmxt_wmacs): Likewise.
12825 (iwmmxt_wmacsz): Likewise.
12826 (iwmmxt_wmacu): Likewise.
12827 (iwmmxt_wmacuz): Likewise.
12828 (iwmmxt_clrdi): Likewise.
12829 (iwmmxt_clrv8qi): Likewise.
12830 (iwmmxt_clr4hi): Likewise.
12831 (iwmmxt_clr2si): Likewise.
12832 (iwmmxt_uavgrndv8qi3): Likewise.
12833 (iwmmxt_uavgrndv4hi3): Likewise.
12834 (iwmmxt_uavgv8qi3): Likewise.
12835 (iwmmxt_uavgv4hi3): Likewise.
12836 (iwmmxt_tinsrb): Likewise.
12837 (iwmmxt_tinsrh): Likewise.
12838 (iwmmxt_tinsrw): Likewise.
12839 (iwmmxt_textrmub): Likewise.
12840 (iwmmxt_textrmsb): Likewise.
12841 (iwmmxt_textrmuh): Likewise.
12842 (iwmmxt_textrmsh): Likewise.
12843 (iwmmxt_textrmw): Likewise.
12844 (iwmxxt_wshufh): Likewise.
12845 (eqv8qi3): Likewise.
12846 (eqv4hi3): Likewise.
12847 (eqv2si3): Likewise.
12848 (gtuv8qi3): Likewise.
12849 (gtuv4hi3): Likewise.
12850 (gtuv2si3): Likewise.
12851 (gtv8qi3): Likewise.
12852 (gtv4hi3): Likewise.
12853 (gtv2si3): Likewise.
12854 (smax<mode>3_iwmmxt): Likewise.
12855 (umax<mode>3_iwmmxt): Likewise.
12856 (smin<mode>3_iwmmxt): Likewise.
12857 (umin<mode>3_iwmmxt): Likewise.
12858 (iwmmxt_wpackhss): Likewise.
12859 (iwmmxt_wpackwss): Likewise.
12860 (iwmmxt_wpackdss): Likewise.
12861 (iwmmxt_wpackhus): Likewise.
12862 (iwmmxt_wpackwus): Likewise.
12863 (iwmmxt_wpackdus): Likewise.
12864 (iwmmxt_wunpckihb): Likewise.
12865 (iwmmxt_wunpckihh): Likewise.
12866 (iwmmxt_wunpckihw): Likewise.
12867 (iwmmxt_wunpckilb): Likewise.
12868 (iwmmxt_wunpckilh): Likewise.
12869 (iwmmxt_wunpckilw): Likewise.
12870 (iwmmxt_wunpckehub): Likewise.
12871 (iwmmxt_wunpckehuh): Likewise.
12872 (iwmmxt_wunpckehuw): Likewise.
12873 (iwmmxt_wunpckehsb): Likewise.
12874 (iwmmxt_wunpckehsh): Likewise.
12875 (iwmmxt_wunpckehsw): Likewise.
12876 (iwmmxt_wunpckelub): Likewise.
12877 (iwmmxt_wunpckeluh): Likewise.
12878 (iwmmxt_wunpckeluw): Likewise.
12879 (iwmmxt_wunpckelsb): Likewise.
12880 (iwmmxt_wunpckelsh): Likewise.
12881 (iwmmxt_wunpckelsw): Likewise.
12882 (ror<mode>3): Likewise.
12883 (ashr<mode>3_iwmmxt): Likewise.
12884 (lshr<mode>3_iwmmxt): Likewise.
12885 (ashl<mode>3_iwmmxt): Likewise.
12886 (ror<mode>3_di): Likewise.
12887 (ashr<mode>3_di): Likewise.
12888 (lshr<mode>3_di): Likewise.
12889 (ashl<mode>3_di): Likewise.
12890 (iwmmxt_wmadds): Likewise.
12891 (iwmmxt_wmaddu): Likewise.
12892 (iwmmxt_tmia): Likewise.
12893 (iwmmxt_tmiaph): Likewise.
12894 (iwmmxt_tmiabb): Likewise.
12895 (iwmmxt_tmiatb): Likewise.
12896 (iwmmxt_tmiabt): Likewise.
12897 (iwmmxt_tmiatt): Likewise.
12898 (iwmmxt_tmovmskb): Likewise.
12899 (iwmmxt_tmovmskh): Likewise.
12900 (iwmmxt_tmovmskw): Likewise.
12901 (iwmmxt_waccb): Likewise.
12902 (iwmmxt_wacch): Likewise.
12903 (iwmmxt_waccw): Likewise.
12904 (iwmmxt_waligni): Likewise.
12905 (iwmmxt_walignr): Likewise.
12906 (iwmmxt_walignr0): Likewise.
12907 (iwmmxt_walignr1): Likewise.
12908 (iwmmxt_walignr2): Likewise.
12909 (iwmmxt_walignr3): Likewise.
12910 (iwmmxt_wsadb): Likewise.
12911 (iwmmxt_wsadh): Likewise.
12912 (iwmmxt_wsadbz): Likewise.
12913 (iwmmxt_wsadhz): Likewise.
12914 * iwmmxt2.md (iwmmxt_wabs<mode>3): Update for attribute changes.
12915 (iwmmxt_wabsdiffb): Likewise.
12916 (iwmmxt_wabsdiffh): Likewise.
12917 (iwmmxt_wabsdiffw): Likewise.
12918 (iwmmxt_waddsubhx): Likewise
12919 (iwmmxt_wsubaddhx): Likewise.
12920 (addc<mode>3): Likewise.
12921 (iwmmxt_avg4): Likewise.
12922 (iwmmxt_avg4r): Likewise.
12923 (iwmmxt_wmaddsx): Likewise.
12924 (iwmmxt_wmaddux): Likewise.
12925 (iwmmxt_wmaddsn): Likewise.
12926 (iwmmxt_wmaddun): Likewise.
12927 (iwmmxt_wmulwsm): Likewise.
12928 (iwmmxt_wmulwum): Likewise.
12929 (iwmmxt_wmulsmr): Likewise.
12930 (iwmmxt_wmulumr): Likewise.
12931 (iwmmxt_wmulwsmr): Likewise.
12932 (iwmmxt_wmulwumr): Likewise.
12933 (iwmmxt_wmulwl): Likewise.
12934 (iwmmxt_wqmulm): Likewise.
12935 (iwmmxt_wqmulwm): Likewise.
12936 (iwmmxt_wqmulmr): Likewise.
12937 (iwmmxt_wqmulwmr): Likewise.
12938 (iwmmxt_waddbhusm): Likewise.
12939 (iwmmxt_waddbhusl): Likewise.
12940 (iwmmxt_wqmiabb): Likewise.
12941 (iwmmxt_wqmiabt): Likewise.
12942 (iwmmxt_wqmiatb): Likewise.
12943 (iwmmxt_wqmiatt): Likewise.
12944 (iwmmxt_wqmiabbn): Likewise.
12945 (iwmmxt_wqmiabtn): Likewise.
12946 (iwmmxt_wqmiatbn): Likewise.
12947 (iwmmxt_wqmiattn): Likewise.
12948 (iwmmxt_wmiabb): Likewise.
12949 (iwmmxt_wmiabt): Likewise.
12950 (iwmmxt_wmiatb): Likewise.
12951 (iwmmxt_wmiatt): Likewise.
12952 (iwmmxt_wmiabbn): Likewise.
12953 (iwmmxt_wmiabtn): Likewise.
12954 (iwmmxt_wmiatbn): Likewise.
12955 (iwmmxt_wmiattn): Likewise.
12956 (iwmmxt_wmiawbb): Likewise.
12957 (iwmmxt_wmiawbt): Likewise.
12958 (iwmmxt_wmiawtb): Likewise.
12959 (iwmmxt_wmiawtt): Likewise.
12960 (iwmmxt_wmiawbbn): Likewise.
12961 (iwmmxt_wmiawbtn): Likewise.
12962 (iwmmxt_wmiawtbn): Likewise.
12963 (iwmmxt_wmiawttn): Likewise.
12964 (iwmmxt_wmerge): Likewise.
12965 (iwmmxt_tandc<mode>3): Likewise.
12966 (iwmmxt_torc<mode>3): Likewise.
12967 (iwmmxt_torvsc<mode>3): Likewise.
12968 (iwmmxt_textrc<mode>3): Likewise.
12969 * marvell-f-iwmmxt.md (wmmxt_shift): Update for attribute changes.
12970 (wmmxt_pack): Likewise.
12971 (wmmxt_mult_c1): Likewise.
12972 (wmmxt_mult_c2): Likewise.
12973 (wmmxt_alu_c1): Likewise.
12974 (wmmxt_alu_c2): Likewise.
12975 (wmmxt_alu_c3): Likewise.
12976 (wmmxt_transfer_c1): Likewise.
12977 (wmmxt_transfer_c2): Likewise.
12978 (wmmxt_transfer_c3): Likewise.
12979 (marvell_f_iwmmxt_wstr): Likewise.
12980 (marvell_f_iwmmxt_wldr): Likewise.
12981
12982 2013-06-29 Yufeng Zhang <yufeng.zhang@arm.com>
12983
12984 * config/aarch64/aarch64.c: Remove junk from the beginning of the file.
12985
12986 2013-06-28 Vladimir Makarov <vmakarov@redhat.com>
12987
12988 Revert:
12989 2013-06-28 Vladimir Makarov <vmakarov@redhat.com>
12990 * lra-constraints.c (need_for_split_p): Check call used hard regs
12991 living through calls.
12992
12993 * lra-constraints.c (inherit_in_ebb): Reset live_hard_regs for
12994 call used regs for call insn.
12995
12996 2013-06-28 Jakub Jelinek <jakub@redhat.com>
12997
12998 PR target/57736
12999 * config/i386/i386.c (ix86_expand_builtin): If target == NULL and
13000 mode is VOIDmode, don't create a VOIDmode pseudo to copy result into.
13001
13002 2013-06-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
13003
13004 * builtins.def: Fixed the function type of CILKPLUS_BUILTIN.
13005
13006 2013-06-28 Vladimir Makarov <vmakarov@redhat.com>
13007
13008 * lra-constraints.c (need_for_split_p): Check call used hard regs
13009 living through calls.
13010
13011 2013-06-28 Michael Meissner <meissner@linux.vnet.ibm.com>
13012
13013 PR target/57744
13014 * config/rs6000/rs6000.h (MODES_TIEABLE_P): Do not allow PTImode
13015 to tie with any other modes. Eliminate Altivec vector mode tests,
13016 since these are a subset of ALTIVEC or VSX vector modes. Simplify
13017 code, to return 0 if testing MODE2 for a condition, if we've
13018 already tested MODE1 for the same condition.
13019
13020 2013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
13021
13022 * config/aarch64/aarch64.c (aarch64_cannot_force_const_mem): Adjust
13023 layout.
13024
13025 2013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
13026
13027 * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
13028 Update comment w.r.t SYMBOL_TINY_ABSOLUTE.
13029
13030 2013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
13031
13032 * config/aarch64/aarch64-protos.h (aarch64_classify_symbol_expression):
13033 Define.
13034 (aarch64_symbolic_constant_p): Remove.
13035 * config/aarch64/aarch64.c (aarch64_classify_symbol_expression): Remove
13036 static. Fix line length and white space.
13037 (aarch64_symbolic_constant_p): Remove.
13038 * config/aarch64/predicates.md (aarch64_valid_symref):
13039 Use aarch64_classify_symbol_expression.
13040
13041 2013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13042
13043 * config/arm/constraints.md (Ts): New constraint.
13044 * config/arm/arm.md (arm_movqi_insn): Add alternatives for
13045 16-bit encodings.
13046 (compare_scc): Use "Ts" constraint for operand 0.
13047 (ior_scc_scc): Likewise.
13048 (and_scc_scc): Likewise.
13049 (and_scc_scc_nodom): Likewise.
13050 (ior_scc_scc_cmp): Likewise for operand 7.
13051 (and_scc_scc_cmp): Likewise.
13052 * config/arm/thumb2.md (thumb2_movsi_insn):
13053 Add alternatives for 16-bit encodings.
13054 (thumb2_movhi_insn): Likewise.
13055 (thumb2_movsicc_insn): Likewise.
13056 (thumb2_and_scc): Take 'and' outside cond_exec. Use "Ts" constraint.
13057 (thumb2_negscc): Use "Ts" constraint.
13058 Move mvn instruction outside cond_exec block.
13059 * config/arm/vfp.md (thumb2_movsi_vfp): Add alternatives
13060 for 16-bit encodings.
13061
13062 2013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13063
13064 * config/arm/arm.md (arm_mulsi3_v6): Add alternative for 16-bit
13065 encoding.
13066 (mulsi3addsi_v6): Disable predicable variant for arm_restrict_it.
13067 (mulsi3subsi): Likewise.
13068 (mulsidi3adddi): Likewise.
13069 (mulsidi3_v6): Likewise.
13070 (umulsidi3_v6): Likewise.
13071 (umulsidi3adddi_v6): Likewise.
13072 (smulsi3_highpart_v6): Likewise.
13073 (umulsi3_highpart_v6): Likewise.
13074 (mulhisi3tb): Likewise.
13075 (mulhisi3bt): Likewise.
13076 (mulhisi3tt): Likewise.
13077 (maddhisi4): Likewise.
13078 (maddhisi4tb): Likewise.
13079 (maddhisi4tt): Likewise.
13080 (maddhidi4): Likewise.
13081 (maddhidi4tb): Likewise.
13082 (maddhidi4tt): Likewise.
13083 (zeroextractsi_compare0_scratch): Likewise.
13084 (insv_zero): Likewise.
13085 (insv_t2): Likewise.
13086 (anddi_notzesidi_di): Likewise.
13087 (anddi_notsesidi_di): Likewise.
13088 (andsi_notsi_si): Likewise.
13089 (iordi_zesidi_di): Likewise.
13090 (xordi_zesidi_di): Likewise.
13091 (andsi_iorsi3_notsi): Likewise.
13092 (smax_0): Likewise.
13093 (smax_m1): Likewise.
13094 (smin_0): Likewise.
13095 (not_shiftsi): Likewise.
13096 (unaligned_loadsi): Likewise.
13097 (unaligned_loadhis): Likewise.
13098 (unaligned_loadhiu): Likewise.
13099 (unaligned_storesi): Likewise.
13100 (unaligned_storehi): Likewise.
13101 (extv_reg): Likewise.
13102 (extzv_t2): Likewise.
13103 (divsi3): Likewise.
13104 (udivsi3): Likewise.
13105 (arm_zero_extendhisi2addsi): Likewise.
13106 (arm_zero_extendqisi2addsi): Likewise.
13107 (compareqi_eq0): Likewise.
13108 (arm_extendhisi2_v6): Likewise.
13109 (arm_extendqisi2addsi): Likewise.
13110 (arm_movt): Likewise.
13111 (thumb2_ldrd): Likewise.
13112 (thumb2_ldrd_base): Likewise.
13113 (thumb2_ldrd_base_neg): Likewise.
13114 (thumb2_strd): Likewise.
13115 (thumb2_strd_base): Likewise.
13116 (thumb2_strd_base_neg): Likewise.
13117 (arm_negsi2): Add alternative for 16-bit encoding.
13118 (arm_one_cmplsi2): Likewise.
13119
13120 2013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13121
13122 * config/arm/predicates.md (arm_cond_move_operator): New predicate.
13123 * config/arm/arm.md (movsfcc): Use arm_cond_move_operator predicate.
13124 (movdfcc): Likewise.
13125 * config/arm/vfp.md (*thumb2_movsf_vfp):
13126 Disable predication for arm_restrict_it.
13127 (*thumb2_movsfcc_vfp): Disable for arm_restrict_it.
13128 (*thumb2_movdfcc_vfp): Likewise.
13129 (*abssf2_vfp, *absdf2_vfp, *negsf2_vfp, *negdf2_vfp,*addsf3_vfp,
13130 *adddf3_vfp, *subsf3_vfp, *subdf3_vfpc, *divsf3_vfp,*divdf3_vfp,
13131 *mulsf3_vfp, *muldf3_vfp, *mulsf3negsf_vfp, *muldf3negdf_vfp,
13132 *mulsf3addsf_vfp, *muldf3adddf_vfp, *mulsf3subsf_vfp,
13133 *muldf3subdf_vfp, *mulsf3negsfaddsf_vfp, *fmuldf3negdfadddf_vfp,
13134 *mulsf3negsfsubsf_vfp, *muldf3negdfsubdf_vfp, *fma<SDF:mode>4,
13135 *fmsub<SDF:mode>4, *fnmsub<SDF:mode>4, *fnmadd<SDF:mode>4,
13136 *extendsfdf2_vfp, *truncdfsf2_vfp, *extendhfsf2, *truncsfhf2,
13137 *truncsisf2_vfp, *truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2,
13138 *floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2, floatunssidf2,
13139 *sqrtsf2_vfp, *sqrtdf2_vfp, *cmpsf_vfp, *cmpsf_trap_vfp, *cmpdf_vfp,
13140 *cmpdf_trap_vfp, <vrint_pattern><SDF:mode>2):
13141 Disable predication for arm_restrict_it.
13142
13143 2013-06-28 Kirill Yukhin <kirill.yukhin@intel.com>
13144
13145 * config/i386/bmiintrin.h (_bextr_u32): New.
13146 (_bextr_u64): Ditto.
13147
13148 2013-06-27 Richard Sandiford <rdsandiford@googlemail.com>
13149
13150 * config.gcc (mips*-mti-elf*, mips*-sde-elf*, mips64r5900-*-elf*)
13151 (mips64r5900el-*-elf*): Include mips/n32-elf.h.
13152 * config/mips/sde.h (LOCAL_LABEL_PREFIX, NO_DOLLAR_IN_LABEL)
13153 (LONG_DOUBLE_TYPE_SIZE, LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Move to...
13154 * config/mips/n32-elf.h: ...this new file.
13155
13156 2013-06-27 Marc Glisse <marc.glisse@inria.fr>
13157
13158 PR target/57224
13159 * config/i386/i386.c (enum ix86_builtins, bdesc_args): Remove
13160 IX86_BUILTIN_CMPNGTSS and IX86_BUILTIN_CMPNGESS.
13161
13162 2013-06-27 Catherine Moore <clm@codesourcery.com>
13163
13164 * config/mips/mips-tables.opt: Regenerate.
13165 * config/mips/mips-cpus.def: Add m14ke and m14kec.
13166 * config/mips/mips.h (BASE_DRIVER_SELF_SPECS): m14ke* implies -mdspr2.
13167 * doc/invoke.texi: Add -m14kc.
13168
13169 2013-06-27 Jakub Jelinek <jakub@redhat.com>
13170
13171 PR target/57623
13172 * config/i386/i386.md (bmi_bextr_<mode>): Swap predicates and
13173 constraints of operand 1 and 2.
13174
13175 PR target/57623
13176 * config/i386/i386.md (bmi2_bzhi_<mode>3): Swap AND arguments
13177 to match RTL canonicalization. Swap predicates and
13178 constraints of operand 1 and 2.
13179
13180 2013-06-27 Vladimir Makarov <vmakarov@redhat.com>
13181
13182 * lra-constraints.c (inherit_in_ebb): Process static hard regs too.
13183 Process OP_INOUT regs for splitting too.
13184
13185 2013-06-27 Jakub Jelinek <jakub@redhat.com>
13186
13187 * tree-vect-stmts.c (vectorizable_store): Move ptr_incr var
13188 decl before the loop, initialize to NULL.
13189 (vectorizable_load): Initialize ptr_incr to NULL.
13190
13191 2013-06-27 Martin Jambor <mjambor@suse.cz>
13192
13193 PR lto/57208
13194 * ipa-ref.h (ipa_maybe_record_reference): Declare.
13195 * ipa-ref.c (ipa_maybe_record_reference): New function.
13196 * cgraphclones.c (cgraph_create_virtual_clone): Use it.
13197 * ipa-cp.c (create_specialized_node): Record potential references from
13198 aggvals.
13199 * Makefile.in (ipa-ref.o): Add IPA_REF_H to dependencies.
13200
13201 2013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
13202
13203 * config/aarch64/aarch64.c (aarch64_force_temporary): Add an extra
13204 parameter 'mode' of type 'enum machine_mode mode'; change to pass
13205 'mode' to force_reg.
13206 (aarch64_add_offset): Update calls to aarch64_force_temporary.
13207 (aarch64_expand_mov_immediate): Likewise.
13208
13209 2013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
13210
13211 * config/aarch64/aarch64.c (aarch64_add_offset): Change to pass
13212 'mode' to aarch64_plus_immediate and gen_rtx_PLUS.
13213
13214 2013-06-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13215
13216 * config/s390/s390.c: Rename UNSPEC_CCU_TO_INT to
13217 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
13218 (struct machine_function): Add tbegin_p.
13219 (s390_canonicalize_comparison): Fold CC mode compares to
13220 conditional jump if possible.
13221 (s390_emit_jump): Return the emitted jump.
13222 (s390_branch_condition_mask, s390_branch_condition_mnemonic):
13223 Handle CCRAWmode compares.
13224 (s390_option_override): Default to -mhtm if available.
13225 (s390_reg_clobbered_rtx): Handle floating point regs as well.
13226 (s390_regs_ever_clobbered): Use s390_regs_ever_clobbered also for
13227 FPRs instead of df_regs_ever_live_p.
13228 (s390_optimize_nonescaping_tx): New function.
13229 (s390_init_frame_layout): Extend clobbered_regs array to cover
13230 FPRs as well.
13231 (s390_emit_prologue): Call s390_optimize_nonescaping_tx.
13232 (s390_expand_tbegin): New function.
13233 (enum s390_builtin): New enum definition.
13234 (code_for_builtin): New array definition.
13235 (s390_init_builtins): New function.
13236 (s390_expand_builtin): New function.
13237 (TARGET_INIT_BUILTINS): Define.
13238 (TARGET_EXPAND_BUILTIN): Define.
13239 * common/config/s390/s390-common.c (processor_flags_table): Add PF_TX.
13240 * config/s390/predicates.md (s390_comparison): Handle CCRAWmode.
13241 (s390_alc_comparison): Likewise.
13242 * config/s390/s390-modes.def: Add CCRAWmode.
13243 * config/s390/s390.h (processor_flags): Add PF_TX.
13244 (TARGET_CPU_HTM): Define macro.
13245 (TARGET_HTM): Define macro.
13246 (TARGET_CPU_CPP_BUILTINS): Define __HTM__ for htm.
13247 * config/s390/s390.md: Rename UNSPEC_CCU_TO_INT to
13248 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
13249 (UNSPECV_TBEGIN, UNSPECV_TBEGINC, UNSPECV_TEND, UNSPECV_TABORT)
13250 (UNSPECV_ETND, UNSPECV_NTSTG, UNSPECV_PPA): New unspecv enum values.
13251 (TBEGIN_MASK, TBEGINC_MASK): New constants.
13252 ("*cc_to_int"): Move up.
13253 ("*mov<mode>cc", "*cjump_64", "*cjump_31"): Accept integer
13254 constants other than 0.
13255 ("*ccraw_to_int"): New insn and splitter definition.
13256 ("tbegin", "tbegin_nofloat", "tbegin_retry")
13257 ("tbegin_retry_nofloat", "tbeginc", "tend", "tabort")
13258 ("tx_assist"): New expander.
13259 ("tbegin_1", "tbegin_nofloat_1", "*tbeginc_1", "*tend_1")
13260 ("*tabort_1", "etnd", "ntstg", "*ppa"): New insn definition.
13261 * config/s390/s390.opt: Add -mhtm option.
13262 * config/s390/s390-protos.h (s390_emit_jump): Add return type.
13263 * config/s390/htmxlintrin.h: New file.
13264 * config/s390/htmintrin.h: New file.
13265 * config/s390/s390intrin.h: New file.
13266 * doc/extend.texi: Document htm builtins.
13267 * config.gcc: Add the new header files to extra_headers.
13268
13269 2013-06-26 Thomas Schwinge <thomas@codesourcery.com>
13270
13271 * config/i386/gnu.h [TARGET_LIBC_PROVIDES_SSP]
13272 (TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Undefine.
13273
13274 2013-06-26 Michael Meissner <meissner@linux.vnet.ibm.com>
13275 Pat Haugen <pthaugen@us.ibm.com>
13276 Peter Bergner <bergner@vnet.ibm.com>
13277
13278 * config/rs6000/power8.md: New.
13279 * config/rs6000/rs6000-cpus.def (RS6000_CPU table): Adjust processor
13280 setting for power8 entry.
13281 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power8.md.
13282 * config/rs6000/rs6000.c (is_microcoded_insn, is_cracked_insn): Adjust
13283 test for Power4/Power5 only.
13284 (insn_must_be_first_in_group, insn_must_be_last_in_group): Add Power8
13285 support.
13286 (force_new_group): Adjust comment.
13287 * config/rs6000/rs6000.md: Include power8.md.
13288
13289 2013-06-26 Greta Yorsh <Greta.Yorsh@arm.com>
13290
13291 * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Define macro.
13292 * config/arm/arm-protos.h (arm_max_conditional_execute): New
13293 declaration.
13294 (tune_params): Update comment.
13295 * config/arm/arm.c (arm_cortex_a15_tune): Set max_cond_insns to 2.
13296 (arm_max_conditional_execute): New function.
13297 (thumb2_final_prescan_insn): Use max_insn_skipped and
13298 MAX_INSN_PER_IT_BLOCK to compute maximum instructions in a block.
13299
13300 2013-06-25 Jakub Jelinek <jakub@redhat.com>
13301
13302 PR tree-optimization/57705
13303 * tree-vect-loop.c (vect_is_simple_iv_evolution): Allow
13304 SSA_NAME step, provided that it is not defined inside the loop.
13305 (vect_analyze_scalar_cycles_1): Disallow SSA_NAME step in nested loop.
13306 (get_initial_def_for_induction): Handle SSA_NAME IV step.
13307
13308 2013-06-25 Martin Jambor <mjambor@suse.cz>
13309
13310 PR middle-end/57670
13311 * cgraph.h (cgraph_indirect_call_info): New flag member_ptr.
13312 * ipa-prop.c (ipa_print_node_jump_functions): Mark member pointer
13313 calls in the dump.
13314 (ipa_note_param_call): Initialize member_ptr flag.
13315 (ipa_analyze_indirect_call_uses): Set member_ptr flag.
13316 (ipa_make_edge_direct_to_target): Bail out if member_ptr is set.
13317 (ipa_write_indirect_edge_info): Stream member_ptr flag.
13318 (ipa_read_indirect_edge_info): Likewise.
13319
13320 2013-06-25 Richard Biener <rguenther@suse.de>
13321
13322 PR middle-end/56977
13323 * passes.c (init_optimization_passes): Move pass_fold_builtins
13324 and pass_dce earlier with -Og.
13325
13326 2013-06-25 Eric Botcazou <ebotcazou@adacore.com>
13327
13328 * expr.c (expand_expr_real_1) <ARRAY_REF>: Fix formatting glitches.
13329 <BIT_FIELD_REF>: Remove trailing TAB.
13330 * varasm.c (output_constructor_bitfield): Fix formatting glitch and
13331 remove blank line.
13332
13333 2013-06-24 Martin Jambor <mjambor@suse.cz>
13334
13335 PR tree-optimization/57358
13336 * ipa-prop.c (ipa_func_spec_opts_forbid_analysis_p): New function.
13337 (ipa_compute_jump_functions_for_edge): Bail out if it returns true.
13338 (ipa_analyze_params_uses): Generate pessimistic info when true.
13339
13340 2013-06-24 Martin Jambor <mjambor@suse.cz>
13341
13342 PR tree-optimization/57539
13343 * cgraphclones.c (cgraph_clone_node): Add parameter new_inlined_to, set
13344 global.inlined_to of the new node to it. All callers changed.
13345 * ipa-inline-transform.c (clone_inlined_nodes): New variable
13346 inlining_into, pass it to cgraph_clone_node.
13347 * ipa-prop.c (ipa_propagate_indirect_call_infos): Do not call
13348 ipa_free_edge_args_substructures.
13349 (ipa_edge_duplication_hook): Only add edges from inlined nodes to
13350 rdesc linked list. Do not assert rdesc edges have inlined caller.
13351 Assert we have found an rdesc in the rdesc list.
13352
13353 2013-06-24 Richard Biener <rguenther@suse.de>
13354
13355 * pointer-set.h (struct pointer_set_t): Move here from pointer-set.c.
13356 (pointer_set_lookup): Declare.
13357 (class pointer_map): New template class implementing a
13358 generic pointer to T map.
13359 (pointer_map<T>::pointer_map, pointer_map<T>::~pointer_map,
13360 pointer_map<T>::contains, pointer_map<T>::insert,
13361 pointer_map<T>::traverse): New functions.
13362 * pointer-set.c (struct pointer_set_t): Moved to pointer-set.h.
13363 (pointer_set_lookup): New function.
13364 (pointer_set_contains): Use pointer_set_lookup.
13365 (pointer_set_insert): Likewise.
13366 (insert_aux): Remove.
13367 (struct pointer_map_t): Embed a pointer_set_t.
13368 (pointer_map_create): Adjust.
13369 (pointer_map_destroy): Likewise.
13370 (pointer_map_contains): Likewise.
13371 (pointer_map_insert): Likewise.
13372 (pointer_map_traverse): Likewise.
13373 * tree-streamer.h (struct streamer_tree_cache_d): Use a
13374 pointer_map<unsigned> instead of a pointer_map_t.
13375 * tree-streamer.c (streamer_tree_cache_insert_1): Adjust.
13376 (streamer_tree_cache_lookup): Likewise.
13377 (streamer_tree_cache_create): Likewise.
13378 (streamer_tree_cache_delete): Likewise.
13379 * lto-streamer.h (struct lto_tree_ref_encoder): Use a
13380 pointer_map<unsigned> instead of a pointer_map_t.
13381 (lto_init_tree_ref_encoder): Adjust.
13382 (lto_destroy_tree_ref_encoder): Likewise.
13383 * lto-section-out.c (lto_output_decl_index): Likewise.
13384 (lto_record_function_out_decl_state): Likewise.
13385 * dominance.c (iterate_fix_dominators): Use pointer_map<int>.
13386
13387 2013-06-24 Richard Biener <rguenther@suse.de>
13388
13389 PR tree-optimization/57488
13390 * tree-ssa-pre.c (insert): Clear NEW sets before each iteration.
13391
13392 2013-06-24 Alan Modra <amodra@gmail.com>
13393
13394 * config/rs6000/rs6000.c (vspltis_constant): Correct for little-endian.
13395 (gen_easy_altivec_constant): Likewise.
13396 * config/rs6000/predicates.md (easy_vector_constant_add_self,
13397 easy_vector_constant_msb): Likewise.
13398
13399 2013-06-23 Jakub Jelinek <jakub@redhat.com>
13400
13401 PR target/57688
13402 * common/config/i386/i386-common.c (ix86_handle_option): For OPT_mlzcnt
13403 add missing return true.
13404
13405 2013-06-23 Oleg Endo <olegendo@gcc.gnu.org>
13406
13407 PR target/52483
13408 * config/sh/predicates.md (general_extend_operand): Invoke
13409 general_movsrc_operand for memory operands.
13410 (general_movsrc_operand): Allow reg+reg addressing, do not use
13411 general_operand for memory operands.
13412
13413 2013-06-23 Sriraman Tallam <tmsriram@google.com>
13414
13415 * config/i386/i386.c (ix86_pragma_target_parse): Restore target
13416 when current target options does not apply.
13417 * config/i386/i386-protos.h (ix86_reset_previous_fndecl): New function.
13418 * config/i386/i386.c (ix86_reset_previous_fndecl): Ditto.
13419 * config/i386/bmiintrin.h: Pass appropriate target
13420 attributes to header.
13421 * config/i386/mmintrin.h: Ditto.
13422 * config/i386/nmmintrin.h: Ditto.
13423 * config/i386/avx2intrin.h: Ditto.
13424 * config/i386/fxsrintrin.h: Ditto.
13425 * config/i386/tbmintrin.h: Ditto.
13426 * config/i386/xsaveintrin.h: Ditto.
13427 * config/i386/f16cintrin.h: Ditto.
13428 * config/i386/xtestintrin.h: Ditto.
13429 * config/i386/xsaveoptintrin.h: Ditto.
13430 * config/i386/bmi2intrin.h: Ditto.
13431 * config/i386/lzcntintrin.h: Ditto.
13432 * config/i386/smmintrin.h: Ditto.
13433 * config/i386/wmmintrin.h: Ditto.
13434 * config/i386/x86intrin.h: Remove all header include guards.
13435 * config/i386/prfchwintrin.h: Ditto.
13436 * config/i386/pmmintrin.h: Ditto.
13437 * config/i386/tmmintrin.h: Ditto.
13438 * config/i386/xmmintrin.h: Ditto.
13439 * config/i386/popcntintrin.h: Ditto.
13440 * config/i386/rdseedintrin.h: Ditto.
13441 * config/i386/ammintrin.h: Ditto.
13442 * config/i386/emmintrin.h: Ditto.
13443 * config/i386/immintrin.h: Remove all header include guards.
13444 * config/i386/fma4intrin.h: Ditto.
13445 * config/i386/lwpintrin.h: Ditto.
13446 * config/i386/xopintrin.h: Ditto.
13447 * config/i386/ia32intrin.h: Ditto.
13448 * config/i386/avxintrin.h: Ditto.
13449 * config/i386/rtmintrin.h: Ditto.
13450 * config/i386/fmaintrin.h: Ditto.
13451 * config/i386/mm3dnow.h: Ditto.
13452
13453 2013-06-22 Sriraman Tallam <tmsriram@google.com>
13454
13455 * common/config/i386/i386-common.c: Handle LZCNT.
13456
13457 2013-06-22 Andi Kleen <ak@linux.intel.com>
13458
13459 * doc/extend.texi: Use __atomic_store_n instead of
13460 __atomic_store in HLE example.
13461
13462 2013-06-22 Oleg Endo <olegendo@gcc.gnu.org>
13463
13464 * config/sh/sh.c: Remove <cstdlib> workaround.
13465
13466 2013-06-21 Andi Kleen <ak@linux.intel.com>
13467
13468 * doc/extend.texi: Dont use __atomic_clear in HLE example. Fix typo.
13469
13470 2013-06-21 Andi Kleen <ak@linux.intel.com>
13471
13472 * doc/extend.texi: Document that __atomic_clear and
13473 __atomic_test_and_set should only be used with bool.
13474
13475 2013-06-20 Jan Hubicka <jh@suse.cz>
13476
13477 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Use
13478 types_same_for_odr.
13479 * tree.c (decls_same_for_odr): New function.
13480 (same_for_edr): New function.
13481 (types_same_for_odr): New function.
13482 (get_binfo_at_offset): Use it.
13483 * tree.h (types_same_for_odr): Declare.
13484
13485 2013-06-20 Oleg Endo <olegendo@gcc.gnu.org>
13486 Jason Merrill <jason@redhat.com>
13487
13488 * system.h: Include <cstdlib> as well as <stdlib.h>.
13489
13490 2013-06-20 Uros Bizjak <ubizjak@gmail.com>
13491
13492 PR target/57655
13493 * config/i386/i386.c (construct_container): Report error if
13494 long double is used with disabled x87 float returns.
13495
13496 2013-06-20 Jan Hubicka <jh@suse.cz>
13497
13498 * lto-cgraph.c (input_symtab): Do not set cgraph state.
13499
13500 2013-06-20 Joern Rennecke <joern.rennecke@embecosm.com>
13501
13502 PR rtl-optimization/57425
13503 PR rtl-optimization/57569
13504 * alias.c (write_dependence_p): Remove parameters mem_mode and
13505 canon_mem_addr. Add parameters x_mode, x_addr and x_canonicalized.
13506 Changed all callers.
13507 (canon_anti_dependence): Get comments and semantics in sync.
13508 Add parameter mem_canonicalized. Changed all callers.
13509 * rtl.h (canon_anti_dependence): Update prototype.
13510
13511 2013-06-20 Richard Biener <rguenther@suse.de>
13512
13513 * data-streamer-in.c (streamer_read_uhwi): Optimize single
13514 byte case, inline streamer_read_uchar and defer section
13515 overrun check.
13516
13517 2013-06-20 Richard Biener <rguenther@suse.de>
13518
13519 PR tree-optimization/57584
13520 * tree-ssa-loop-niter.c (expand_simple_operations): Avoid including
13521 SSA names into the expanded expression that take part in
13522 abnormal coalescing.
13523
13524 2013-06-19 Sharad Singhai <singhai@google.com>
13525
13526 * gcov.c (print_usage): Handle new option.
13527 (process_args): Ditto.
13528 (get_gcov_intermediate_filename): New function.
13529 (output_intermediate_file): New function.
13530 (output_gcov_file): New function
13531 (generate_results): Handle new option.
13532 (release_function): Relase demangled name.
13533 (read_graph_file): Handle demangled name.
13534 (output_lines): Ditto.
13535 * doc/gcov.texi: Document gcov intermediate format.
13536
13537 2013-06-19 Vladimir Makarov <vmakarov@redhat.com>
13538
13539 PR bootstrap/57604
13540 * lra.c (emit_add3_insn, emit_add2_insn): New functions.
13541 (lra_emit_add): Use the functions. Add comment about Y as an
13542 address segment.
13543
13544 2013-06-19 David Edelsohn <dje.gcc@gmail.com>
13545
13546 PR driver/57652
13547 * collect2.c (collect_atexit): New.
13548 (collect_exit): Delete.
13549 (main): Register collect_atexit with atexit.
13550 (collect_wait): Change collect_exit to exit.
13551 (do_wait): Same.
13552 * collect2.h (collect_exit): Delete.
13553 * tlink.c (do_tlink): Rename exit to ret. Change collect_exit to exit.
13554
13555 2013-06-19 Wei Mi <wmi@google.com>
13556
13557 PR rtl-optimization/57518
13558 * ira.c (set_paradoxical_subreg): Set pdx_subregs[regno]
13559 if regno is used in paradoxical subreg.
13560 (update_equiv_regs): Check pdx_subregs[regno] before
13561 set a reg to be equivalent with a mem.
13562
13563 2013-06-19 Matthias Klose <doko@ubuntu.com>
13564
13565 PR driver/57651
13566 * file-find.h (find_a_file): Add a mode parameter.
13567 * file-find.c (find_a_file): Likewise.
13568 * gcc-ar.c (main): Call find_a_file with R_OK for the plugin,
13569 with X_OK for the executables.
13570 * collect2.c (main): Call find_a_file with X_OK.
13571
13572 2013-06-19 Steve Ellcey <sellcey@mips.com>
13573
13574 PR target/56942
13575 * config/mips/mips.md (casesi_internal_mips16_<mode>):
13576 Use NEXT_INSN instead of next_real_insn.
13577
13578 2013-06-19 Jan Hubicka <jh@suse.cz>
13579
13580 * cgraph.h (const_value_known_p): Replace by ...
13581 (ctor_for_folding): .. this one.
13582 * cgraphunit.c (process_function_and_variable_attributes): Use it.
13583 * lto-cgraph.c (compute_ltrans_boundary): Use ctor_for_folding.
13584 * expr.c (expand_expr_real_1): Likewise.
13585 (string_constant): Likewise.
13586 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
13587 * ipa.c (process_references): Likewise.
13588 (symtab_remove_unreachable_nodes): Likewise.
13589 * ipa-inline-analysis.c (param_change_prob): Likewise.
13590 * gimple-fold.c (canonicalize_constructor_val): Likewise.
13591 (get_base_constructor): Likwise.
13592 * varpool.c (varpool_remove_node): Likewise.
13593 (varpool_remove_initializer): LIkewise.
13594 (dump_varpool_node): LIkwise.
13595 (const_value_known_p): Rewrite to ...
13596 (ctor_for_folding): ... this one.
13597
13598 2013-06-19 Jakub Jelinek <jakub@redhat.com>
13599
13600 PR driver/57651
13601 * gcc-ar.c (main): If not CROSS_DIRECTORY_STRUCTURE, look for
13602 PERSONALITY in $PATH derived prefixes.
13603
13604 2013-06-19 Jeff Law <law@redhat.com>
13605
13606 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): Fix typo
13607 in comment.
13608
13609 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): New function.
13610 (simplify_bitwise_binary): Use it to simpify certain binary ops on
13611 booleans.
13612
13613 2013-06-19 Sofiane Naci <sofiane.naci@arm.com>
13614
13615 * config/arm/vfp.md: Move VFP instruction classification documentation
13616 to ...
13617 * config/arm/arm.md: ... here. Update instruction classification
13618 documentation.
13619
13620 2013-06-19 Richard Earnshaw <rearnsha@arm.com>
13621
13622 arm.md (split for eq(reg, 0)): Add variants for ARMv5 and Thumb2.
13623 (peepholes for eq(reg, not-0)): Ensure condition register is dead after
13624 pattern. Use more efficient sequences on ARMv5 and Thumb2.
13625
13626 2013-06-19 Steven Bosscher <steven@gcc.gnu.org>
13627
13628 PR target/57609
13629 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
13630 with NEXT_INSN. Use tablejump_p to check for jump table data
13631 insns.
13632
13633 2013-06-19 Paolo Carlini <paolo.carlini@oracle.com>
13634
13635 PR c++/56544
13636 * doc/cpp.texi [Standard Predefined Macros, __cplusplus]: Document
13637 that now in C++ the value is correct per the C++ standards.
13638
13639 2013-06-19 Richard Biener <rguenther@suse.de>
13640
13641 * expr.c (expand_expr_real_1): Use SCOPE_FILE_SCOPE_P to check
13642 for global context.
13643
13644 2013-06-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13645
13646 Revert:
13647 2013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13648
13649 PR target/57609
13650 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
13651 with next_active_insn.
13652
13653 2013-06-18 Sriraman Tallam <tmsriram@google.com>
13654
13655 * ipa-inline.c (inline_always_inline_functions): Pretend always_inline
13656 functions are inlined during failures to flag an error.
13657 * tree-inline.c (expand_call_inline): Allow the error to be flagged
13658 in early inline pass.
13659
13660 2013-06-18 H.J. Lu <hongjiu.lu@intel.com>
13661
13662 * config/i386/i386.c (initial_ix86_tune_features): Fix a typo
13663 in comments.
13664
13665 2013-06-18 Julian Brown <julian@codesourcery.com>
13666
13667 * config/arm/arm.c (neon_vector_mem_operand): Add strict argument.
13668 Permit virtual register pre-reload if !strict.
13669 (coproc_secondary_reload_class): Adjust for neon_vector_mem_operand
13670 change.
13671 * config/arm/arm-protos.h (neon_vector_mem_operand): Adjust
13672 prototype.
13673 * config/arm/neon.md (movmisalign<mode>): Use
13674 neon_perm_struct_or_reg_operand instead of
13675 neon_struct_or_register_operand.
13676 (*movmisalign<mode>_neon_load, *movmisalign<mode>_neon_store): Use
13677 neon_permissive_struct_operand instead of neon_struct_operand.
13678 * config/arm/constraints.md (Un, Um, Us): Adjust calls to
13679 neon_vector_mem_operand.
13680 * config/arm/predicates.md (neon_struct_operand): Adjust call to
13681 neon_vector_mem_operand.
13682 (neon_permissive_struct_operand): New.
13683 (neon_struct_or_register_operand): Rename to...
13684 (neon_perm_struct_or_reg_operand): This. Adjust call to
13685 neon_vector_mem_operand.
13686
13687 2013-06-18 Richard Biener <rguenther@suse.de>
13688
13689 * Makefile.in (LTO_STREAMER_H): Add pointer-set.h dependency.
13690 * lto-streamer.h: Include pointer-set.h.
13691 (struct lto_decl_slot): Remove.
13692 (struct lto_tree_ref_encoder): Make tree_hash_table a pointer-map.
13693 Remove next_index entry.
13694 (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
13695 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
13696 (lto_init_tree_ref_encoder): Adjust.
13697 (lto_destroy_tree_ref_encoder): Likewise.
13698 * lto-section-out.c (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
13699 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
13700 (lto_output_decl_index): Adjust.
13701 (lto_new_out_decl_state): Likewise.
13702 (lto_record_function_out_decl_state): Likewise.
13703 * lto-streamer-out.c (copy_function): Likewise.
13704
13705 2013-06-18 Richard Biener <rguenther@suse.de>
13706
13707 * Makefile.in (cgraphunit.o): Add $(CFGLOOP_H) dependency.
13708 * cgraphunit.c: Include cfgloop.h.
13709 (init_lowered_empty_function): Initialize the loop tree.
13710 (assemble_thunk): Insert new BBs into loops.
13711
13712 2013-06-18 Richard Biener <rguenther@suse.de>
13713
13714 * tree-streamer.h (streamer_tree_cache_create): Adjust prototype.
13715 * tree-streamer.c (streamer_tree_cache_create): Make maintaining
13716 the map from cache entry to cache index optional.
13717 (streamer_tree_cache_replace_tree): Adjust accordingly.
13718 (streamer_tree_cache_append): Likewise.
13719 (streamer_tree_cache_delete): Likewise.
13720 * lto-streamer-in.c (lto_data_in_create): Do not maintain the
13721 streamer cache map from cache entry to cache index.
13722 * lto-streamer-out.c (create_output_block): Adjust.
13723
13724 2013-06-18 Sofiane Naci <sofiane.naci@arm.com>
13725
13726 * config/arm/arm.md (attribute "insn"): Move multiplication and
13727 division attributes to...
13728 (attribute "type"): ... here. Remove mult.
13729 (attribute "mul32"): New attribute.
13730 (attribute "mul64"): Add umaal.
13731 (*arm_mulsi3): Update attributes.
13732 (*arm_mulsi3_v6): Likewise.
13733 (*thumb_mulsi3): Likewise.
13734 (*thumb_mulsi3_v6): Likewise.
13735 (*mulsi3_compare0): Likewise.
13736 (*mulsi3_compare0_v6): Likewise.
13737 (*mulsi_compare0_scratch): Likewise.
13738 (*mulsi_compare0_scratch_v6): Likewise.
13739 (*mulsi3addsi): Likewise.
13740 (*mulsi3addsi_v6): Likewise.
13741 (*mulsi3addsi_compare0): Likewise.
13742 (*mulsi3addsi_compare0_v6): Likewise.
13743 (*mulsi3addsi_compare0_scratch): Likewise.
13744 (*mulsi3addsi_compare0_scratch_v6): Likewise.
13745 (*mulsi3subsi): Likewise.
13746 (*mulsidi3adddi): Likewise.
13747 (*mulsi3addsi_v6): Likewise.
13748 (*mulsidi3adddi_v6): Likewise.
13749 (*mulsidi3_nov6): Likewise.
13750 (*mulsidi3_v6): Likewise.
13751 (*umulsidi3_nov6): Likewise.
13752 (*umulsidi3_v6): Likewise.
13753 (*umulsidi3adddi): Likewise.
13754 (*umulsidi3adddi_v6): Likewise.
13755 (*smulsi3_highpart_nov6): Likewise.
13756 (*smulsi3_highpart_v6): Likewise.
13757 (*umulsi3_highpart_nov6): Likewise.
13758 (*umulsi3_highpart_v6): Likewise.
13759 (mulhisi3): Likewise.
13760 (*mulhisi3tb): Likewise.
13761 (*mulhisi3bt): Likewise.
13762 (*mulhisi3tt): Likewise.
13763 (maddhisi4): Likewise.
13764 (*maddhisi4tb): Likewise.
13765 (*maddhisi4tt): Likewise.
13766 (maddhidi4): Likewise.
13767 (*maddhidi4tb): Likewise.
13768 (*maddhidi4tt): Likewise.
13769 (divsi3): Likewise.
13770 (udivsi3): Likewise.
13771 * config/arm/thumb2.md (thumb2_mulsi_short): Update attributes.
13772 (thumb2_mulsi_short_compare0): Likewise.
13773 (thumb2_mulsi_short_compare0_scratch): Likewise.
13774 * config/arm/arm1020e.md (1020mult1): Update attribute change.
13775 (1020mult2): Likewise.
13776 (1020mult3): Likewise.
13777 (1020mult4): Likewise.
13778 (1020mult5): Likewise.
13779 (1020mult6): Likewise.
13780 * config/arm/cortex-a15.md (cortex_a15_mult32): Update attribute
13781 change.
13782 (cortex_a15_mult64): Likewise.
13783 (cortex_a15_sdiv): Likewise.
13784 (cortex_a15_udiv): Likewise.
13785 * config/arm/arm1026ejs.md (mult1): Update attribute change.
13786 (mult2): Likewise.
13787 (mult3): Likewise.
13788 (mult4): Likewise.
13789 (mult5): Likewise.
13790 (mult6): Likewise.
13791 * config/arm/marvell-pj4.md (pj4_ir_mul): Update attribute change.
13792 (pj4_ir_div): Likewise.
13793 * config/arm/arm1136jfs.md (11_mult1): Update attribute change.
13794 (11_mult2): Likewise.
13795 (11_mult3): Likewise.
13796 (11_mult4): Likewise.
13797 (11_mult5): Likewise.
13798 (11_mult6): Likewise.
13799 (11_mult7): Likewise.
13800 * config/arm/cortex-a8.md (cortex_a8_mul): Update attribute change.
13801 (cortex_a8_mla): Likewise.
13802 (cortex_a8_mull): Likewise.
13803 (cortex_a8_smulwy): Likewise.
13804 (cortex_a8_smlald): Likewise.
13805 * config/arm/cortex-m4.md (cortex_m4_alu): Update attribute change.
13806 * config/arm/cortex-r4.md (cortex_r4_mul_4): Update attribute change.
13807 (cortex_r4_mul_3): Likewise.
13808 (cortex_r4_mla_4): Likewise.
13809 (cortex_r4_mla_3): Likewise.
13810 (cortex_r4_smlald): Likewise.
13811 (cortex_r4_mull): Likewise.
13812 (cortex_r4_sdiv): Likewise.
13813 (cortex_r4_udiv): Likewise.
13814 * config/arm/cortex-a7.md (cortex_a7_mul): Update attribute change.
13815 (cortex_a7_idiv): Likewise.
13816 * config/arm/arm926ejs.md (9_mult1): Update attribute change.
13817 (9_mult2): Likewise.
13818 (9_mult3): Likewise.
13819 (9_mult4): Likewise.
13820 (9_mult5): Likewise.
13821 (9_mult6): Likewise.
13822 * config/arm/cortex-a53.md (cortex_a53_mul): Update attribute change.
13823 (cortex_a53_sdiv): Likewise.
13824 (cortex_a53_udiv): Likewise.
13825 * config/arm/fa726te.md (726te_mult_op): Update attribute change.
13826 * config/arm/fmp626.md (mp626_mult1): Update attribute change.
13827 (mp626_mult2): Likewise.
13828 (mp626_mult3): Likewise.
13829 (mp626_mult4): Likewise.
13830 * config/arm/fa526.md (526_mult1): Update attribute change.
13831 (526_mult2): Likewise.
13832 * config/arm/arm-generic.md (mult): Update attribute change.
13833 (mult_ldsched_strongarm): Likewise.
13834 (mult_ldsched): Likewise.
13835 (multi_cycle): Likewise.
13836 * config/arm/cortex-a5.md (cortex_a5_mul): Update attribute change.
13837 * config/arm/fa606te.md (606te_mult1): Update attribute change.
13838 (606te_mult2): Likewise.
13839 (606te_mult3): Likewise.
13840 (606te_mult4): Likewise.
13841 * config/arm/cortex-a9.md (cortex_a9_mult16): Update attribute change.
13842 (cortex_a9_mac16): Likewise.
13843 (cortex_a9_multiply): Likewise.
13844 (cortex_a9_mac): Likewise.
13845 (cortex_a9_multiply_long): Likewise.
13846 * config/arm/fa626te.md (626te_mult1): Update attribute change.
13847 (626te_mult2): Likewise.
13848 (626te_mult3): Likewise.
13849 (626te_mult4): Likewise.
13850
13851 2013-06-18 Richard Biener <rguenther@suse.de>
13852
13853 PR lto/57334
13854 * lto-symtab.c (lto_symtab_merge_decls): Process nodes properly.
13855
13856 2013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13857
13858 PR target/57609
13859 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
13860 with next_active_insn.
13861
13862 2013-06-18 Alan Modra <amodra@gmail.com>
13863
13864 * config/rs6000/rs6000.h (enum data_align): New.
13865 (LOCAL_ALIGNMENT, DATA_ALIGNMENT): Use rs6000_data_alignment.
13866 (DATA_ABI_ALIGNMENT): Define.
13867 (CONSTANT_ALIGNMENT): Correct comment.
13868 * config/rs6000/rs6000-protos.h (rs6000_data_alignment): Declare.
13869 * config/rs6000/rs6000.c (rs6000_data_alignment): New function.
13870
13871 2013-06-17 David Malcolm <dmalcolm@redhat.com>
13872
13873 * ggc-page.c (ggc_pch_write_object) <d>: Remove erroneous
13874 ATTRIBUTE_UNUSED marking.
13875
13876 2013-06-17 Sofiane Naci <sofiane.naci@arm.com>
13877
13878 * config/aarch64/aarch64-simd.md (aarch64_dup_lane<mode>): Add r<-w
13879 alternative and update.
13880 (aarch64_dup_lanedi): Delete.
13881 * config/aarch64/arm_neon.h (vdup<bhsd>_lane_*): Update.
13882 * config/aarch64/aarch64-simd-builtins.def: Update.
13883
13884 2013-06-17 Richard Biener <rguenther@suse.de>
13885
13886 * lto-streamer.h (enum LTO_tags): Add LTO_tree_scc.
13887 (lto_input_scc): Declare.
13888 (lto_input_tree_1): Likewise.
13889 (struct lto_stats_d): Add num_tree_bodies_output and
13890 num_pickle_refs_output.
13891 * lto-streamer-in.c (lto_read_body): Use streamer_tree_cache_get_tree.
13892 (lto_read_tree_1): Split out from ...
13893 (lto_read_tree): ... this.
13894 (lto_input_scc): New function.
13895 (lto_input_tree_1): Split out from ...
13896 (lto_input_tree): ... this. Handle LTO_tree_scc.
13897 (lto_data_in_create): Create the streamer cache without hashes.
13898 * lto-streamer-out.c (create_output_block): Create the streamer
13899 cache with hashes when not doing WPA.
13900 (lto_write_tree_1): Split out from ...
13901 (lto_write_tree): ... this.
13902 (get_symbol_initial_value): New function.
13903 (lto_output_tree_1): Split out from ...
13904 (lto_output_tree): ... this. Write trees as series of SCCs
13905 using a DFS walk via DFS_write_tree.
13906 (struct sccs, struct scc_entry): New types.
13907 (next_dfs_num, sccstack, sccstate, sccstate_obstack): New globals.
13908 (DFS_write_tree_body): New function.
13909 (DFS_write_tree): Likewise.
13910 (hash_tree): Likewise.
13911 (scc_entry_compare): Likewise.
13912 (hash_scc): Likewise.
13913 (tree_is_indexable): DEBUG_EXPR_DECLs are local entities.
13914 * tree-streamer-in.c (lto_input_ts_list_tree_pointers): Stream
13915 TREE_CHAIN as regular reference.
13916 (streamer_read_integer_cst): Remove.
13917 (streamer_get_pickled_tree): Adjust.
13918 * tree-streamer-out.c (streamer_write_chain): Disable streaming
13919 of DECL_EXTERNALs in BLOCK_VARS for now.
13920 (write_ts_list_tree_pointers): Stream TREE_CHAIN as regular
13921 reference.
13922 * tree-streamer.c (streamer_tree_cache_add_to_node_array):
13923 Add hash value argument and record that if hashes are recorded
13924 in the cache.
13925 (streamer_tree_cache_insert_1): Adjust.
13926 (streamer_tree_cache_insert): Likewise.
13927 (streamer_tree_cache_insert_at): Rename to ...
13928 (streamer_tree_cache_replace_tree): ... this and adjust.
13929 (streamer_tree_cache_append): Adjust.
13930 (record_common_node): Likewise.
13931 (streamer_tree_cache_create): Add argument whether to
13932 record hash values together with trees.
13933 (streamer_tree_cache_delete): Adjust.
13934 * tree-streamer.h (struct streamer_tree_cache_d): Add
13935 vector of hashes.
13936 (streamer_read_integer_cst): Remove.
13937 (streamer_tree_cache_insert): Adjust.
13938 (streamer_tree_cache_append): Likewise.
13939 (streamer_tree_cache_insert_at): Rename to ...
13940 (streamer_tree_cache_replace_tree): ... this and adjust.
13941 (streamer_tree_cache_create): Add argument whether to record hashes.
13942 (streamer_tree_cache_get): Rename to ...
13943 (streamer_tree_cache_get_tree): ... this.
13944 (streamer_tree_cache_get_hash): New function.
13945 * tree.c (cache_integer_cst): New function.
13946 * tree.h (cache_integer_cst): Declare.
13947 (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Move here from cp/cp-tree.h.
13948 * lto-symtab.c (lto_varpool_replace_node): Only release
13949 DECL_INITIAL of non-prevailing decls.
13950 * varpool.c (varpool_remove_initializer): Do not release
13951 DECL_INITIAL when we are still in CGRAPH_LTO_STREAMING.
13952
13953 2013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
13954
13955 * config/mips/mips.h (ISA_HAS_MUL3): Include TARGET_MIPS5900.
13956 (ISA_HAS_MULT, ISA_HAS_DMULT, ISA_HAS_DIV, ISA_HAS_DDIV): New macros.
13957 * config/mips/mips.md (mul<mode>3, mul<mode>3_internal)
13958 (mul<mode>3_r4000): Require ISA_HAS_<D>MULT.
13959 (mul<mode>3_mul3): Handle TARGET_MIPS5900.
13960 (mulsidi3_64bit_dmul): Remove redundant TARGET_64BIT test.
13961 (<su>muldi3_highpart, <su>muldi3_highpart_internal, <u>mulditi3)
13962 (<u>mulditi3_internal, <u>mulditi3_r4000): Require ISA_HAS_DMULT
13963 instead of TARGET_64BIT.
13964 (divmod<mode>4, udivmod<mode>4, <u>divmod<GPR:mode>4_hilo_<HILO:mode>):
13965 Require ISA_HAS_<D>DIV.
13966
13967 2013-06-16 Richard Sandiford <rdsandiford@googlemail.com>
13968
13969 * config.gcc (mips*-mti-linux*, mips64*-*-linux*, mipsisa64*-*-linux*)
13970 (mips*-*-linux*): Move default with_llsc setting to where other
13971 defaults are set.
13972 (mips*-*-vxworks*): Move with_arch default from with_cpu block to
13973 with_arch block.
13974 (mips64r5900-*-*, mips64r5900el-*-*, mipsr5900-*-*, mipsr5900el-*-*):
13975 Likewise. Remove default with_tune setting. Move default float
13976 setting to its own block. Handle with_llsc in the same block as above.
13977
13978 2013-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
13979
13980 PR rtl-optimization/57425
13981 PR rtl-optimization/57569
13982 * alias.c (write_dependence_p): Add new parameters mem_mode,
13983 canon_mem_addr and mem_canonicalized. Change type of writep to bool.
13984 Changed all callers.
13985 (canon_anti_dependence): New function.
13986 * cse.c (check_dependence): Use canon_anti_dependence.
13987 * cselib.c (cselib_invalidate_mem): Likewise.
13988 * rtl.h (canon_anti_dependence): Declare.
13989
13990 2013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
13991
13992 * config/mips/mips.h (ISA_HAS_LL_SC): Exclude TARGET_MIPS5900.
13993 * config/mips/mips.c (mips_start_ll_sc_sync_block): Output
13994 ".set mips3" for 64-bit targets.
13995
13996 2013-06-15 Dehao Chen <dehao@google.com>
13997
13998 * tree-flow.h (gimple_check_call_matching_types): Add new argument.
13999 * gimple-low.c (gimple_check_call_matching_types): Likewise.
14000 (gimple_check_call_args): Likewise.
14001 * value-prof.c (check_ic_target): Likewise.
14002 * ipa-inline.c (early_inliner): Likewise.
14003 * ipa-prop.c (update_indirect_edges_after_inlining): Likewise.
14004 * cgraph.c (cgraph_create_edge_1): Likewise.
14005 (cgraph_make_edge_direct): Likewise.
14006
14007 2013-06-14 Michael Meissner <meissner@linux.vnet.ibm.com>
14008
14009 PR target/57615
14010 * config/rs6000/rs6000.md (mov<mode>_ppc64): Call
14011 rs6000_output_move_128bit to handle emitting quad memory
14012 operations. Set attribute length to 8 bytes.
14013
14014 2013-06-14 Vidya Praveen <vidyapraveen@arm.com>
14015
14016 * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_lo<mode>):
14017 New pattern.
14018 (aarch64_<su>mlal_hi<mode>, aarch64_<su>mlsl_lo<mode>): Likewise.
14019 (aarch64_<su>mlsl_hi<mode>, aarch64_<su>mlal<mode>): Likewise.
14020 (aarch64_<su>mlsl<mode>): Likewise.
14021
14022 2013-06-14 Mike Stump <mikestump@comcast.net>
14023
14024 * Makefile.in (TARGET_H): Add insn-codes.h.
14025
14026 2013-06-14 Alan Modra <amodra@gmail.com>
14027
14028 PR middle-end/57134
14029 PR middle-end/57586
14030 * expr.c (expand_expr_real_1 <normal_inner_ref>): Pass
14031 EXPAND_MEMORY and EXPAND_WRITE to recursive call. Don't use
14032 bitfield expansion when EXPAND_MEMORY.
14033 (expand_expr_real_1 <VIEW_CONVERT_EXPR>): Pass modifier likewise.
14034
14035 2013-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
14036
14037 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
14038 test for clearing quad memory on 32-bit later.
14039
14040 2013-06-13 Marc Glisse <marc.glisse@inria.fr>
14041
14042 * fold-const.c (negate_expr_p): Handle VECTOR_CST.
14043 (fold_negate_expr): Likewise.
14044 (fold_real_zero_addition_p): Handle vectors.
14045 (fold_binary_loc) <PLUS_EXPR, MINUS_EXPR>: Likewise.
14046
14047 2013-06-14 Alan Modra <amodra@gmail.com>
14048
14049 * varasm.c (force_const_mem): Revert 2013-06-07 change.
14050
14051 2013-06-13 Jan Hubicka <jh@suse.cz>
14052
14053 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
14054 Local comdats are not externally visible.
14055 * symtab.c (dump_symtab_base): Dump externally visible.
14056 (verify_symtab_base): Verify back links in the symtab hash.
14057
14058 2013-06-13 Bin Cheng <bin.cheng@arm.com>
14059
14060 * fold-const.c (operand_equal_p): Consider NOP_EXPR and
14061 CONVERT_EXPR as equal nodes.
14062
14063 2013-06-13 Bin Cheng <bin.cheng@arm.com>
14064
14065 * rtlanal.c (noop_move_p): Check the code to be executed for COND_EXEC.
14066
14067 2013-06-13 Marc Glisse <marc.glisse@inria.fr>
14068
14069 * tree-ssa-forwprop.c (simplify_bitwise_binary, associate_plusminus):
14070 Generalize to complex and vector.
14071 * tree.c (build_all_ones_cst): New function.
14072 * tree.h (build_all_ones_cst): Declare it.
14073
14074 2013-06-13 Alan Modra <amodra@gmail.com>
14075
14076 * config/rs6000/rs6000.h (LONG_DOUBLE_LARGE_FIRST): Define.
14077 * config/rs6000/rs6000.md (signbittf2): New insn.
14078 (extenddftf2_internal): Use LONG_DOUBLE_LARGE_FIRST.
14079 (abstf2_internal, cmptf_internal2): Likewise.
14080 * config/rs6000/spe.md (spe_abstf2_cmp, spe_abstf2_tst): Likewise.
14081
14082 2013-06-12 Michael Meissner <meissner@linux.vnet.ibm.com>
14083 Pat Haugen <pthaugen@us.ibm.com>
14084 Peter Bergner <bergner@vnet.ibm.com>
14085
14086 * config/rs6000/rs6000.c (emit_load_locked): Add support for
14087 power8 byte, half-word, and quad-word atomic instructions.
14088 (emit_store_conditional): Likewise.
14089 (rs6000_expand_atomic_compare_and_swap): Likewise.
14090 (rs6000_expand_atomic_op): Likewise.
14091
14092 * config/rs6000/sync.md (larx): Add new modes for power8.
14093 (stcx): Likewise.
14094 (AINT): New mode iterator to include TImode as well as normal
14095 integer modes on power8.
14096 (fetchop_pred): Use int_reg_operand instead of gpc_reg_operand so
14097 that VSX registers are not considered. Use AINT mode iterator
14098 instead of INT1 to allow inclusion of quad word atomic operations
14099 on power8.
14100 (load_locked<mode>): Likewise.
14101 (store_conditional<mode>): Likewise.
14102 (atomic_compare_and_swap<mode>): Likewise.
14103 (atomic_exchange<mode>): Likewise.
14104 (atomic_nand<mode>): Likewise.
14105 (atomic_fetch_<fetchop_name><mode>): Likewise.
14106 (atomic_nand_fetch<mode>): Likewise.
14107 (mem_thread_fence): Use gen_loadsync_<mode> instead of enumerating
14108 each type.
14109 (ATOMIC): On power8, add QImode, HImode modes.
14110 (load_locked<QHI:mode>_si): Varients of load_locked for QI/HI
14111 modes that promote to SImode.
14112 (load_lockedti): Convert TImode arguments to PTImode, so that we
14113 get a guaranteed even/odd register pair.
14114 (load_lockedpti): Likewise.
14115 (store_conditionalti): Likewise.
14116 (store_conditionalpti): Likewise.
14117
14118 * config/rs6000/rs6000.md (QHI): New mode iterator for power8
14119 atomic load/store instructions.
14120 (HSI): Likewise.
14121
14122 2013-06-12 Richard Sandiford <rdsandiford@googlemail.com>
14123
14124 * config/mips/mips.md (extended_mips16): Include GOT and constant-pool
14125 loads.
14126 (insn_count): New attribute, with most cases extracted from...
14127 (length): ...here. Redefine most cases in terms of insn_count.
14128 (single_insn): Delete.
14129 (can_delay): Use insn_count to check for single instructions.
14130 (*mul<mode>3_r4300, mul<mode>3_r4000, *mul_acc_si, *mul_acc_si_r3900)
14131 (*msac_using_macc, *mul_sub_si, <u>mulsidi3_32bit_r4000)
14132 (<u>mulsidi3_64bit_r4000, <su>muldi3_highpart_internal)
14133 (<su>mulsi3_highpart_split, <su>muldi3_highpart_internal)
14134 (<u>mulditi3_r4000, *div<mode>3, *recip<mode>3, divmod<mode>4)
14135 (udivmod<mode>4, sqrt<mode>2, *rsqrt<mode>a, *rsqrt<mode>b)
14136 (fix_truncdfsi2_macro, fix_truncsfsi2_macro, *lea_high64)
14137 (*lea64, cprestore_<mode>, clear_hazard_<mode>, <unnamed insn>)
14138 (casesi_internal_mips16_<mode>, *tls_get_tp_<mode>_split)
14139 (tls_get_tp_mips16, *tls_get_tp_mips16_call_<mode>): Use "insn_count"
14140 rather than "length".
14141 (tls_get_tp_<mode>): Likewise. Remove redundant "no_delay" attribute.
14142 * config/mips/mips-ps-3d.md (mips_c_cond_4s, mips_cabs_cond_4s):
14143 Use "insn_count" rather than "length".
14144 * config/mips/mips-dsp.md
14145 (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>)
14146 (mips_l<GPR:size>x_<P:mode>, *mips_lw<u>x_<P:mode>_ext): Remove
14147 length attributes.
14148
14149 2013-06-12 Marc Glisse <marc.glisse@inria.fr>
14150
14151 PR tree-optimization/57361
14152 * tree-ssa-dse.c (dse_possible_dead_store_p): Handle self-assignment.
14153
14154 2013-06-12 Sofiane Naci <sofiane.naci@arm.com>
14155
14156 * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Convert
14157 to split.
14158 (aarch64_simd_combine<mode>): New instruction expansion.
14159 * config/aarch64/aarch64-protos.h (aarch64_split_simd_combine): New
14160 function prototype.
14161 * config/aarch64/aarch64.c (aarch64_split_combine): New function.
14162 * config/aarch64/iterators.md (Vdbl): Add entry for DF.
14163
14164 2013-06-12 Jan Hubicka <jh@suse.cz>
14165
14166 * cgraph.c (verify_edge_corresponds_to_fndecl): Be lax about
14167 decl has when in streaming stage.
14168 * lto-symtab.c (lto_symtab_merge_symbols): Likewise.
14169 * cgraph.h (cgraph_state): Add CGRAPH_LTO_STREAMING.
14170
14171 2013-06-12 Roland Stigge <stigge@antcom.de>
14172
14173 PR target/57578
14174 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Fix SPE version detection.
14175
14176 2013-06-12 Jakub Jelinek <jakub@redhat.com>
14177
14178 PR tree-optimization/57537
14179 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): If
14180 vect_handle_widen_op_by_const, convert oprnd1 to half_type1.
14181
14182 2013-06-12 Richard Biener <rguenther@suse.de>
14183
14184 * data-streamer.h (streamer_write_char_stream): CSE
14185 obs->current_pointer.
14186 * data-streamer-out.c (streamer_write_uhwi_stream): Inline
14187 streamer_write_char_stream manually and optimize the resulting loop.
14188 (streamer_write_hwi_stream): Likewise.
14189
14190 2013-06-12 Jan Hubicka <jh@suse.cz>
14191
14192 * lto-symtab.c (lto_symtab_merge_symbols): Populate symtab hashtable.
14193 * cgraph.h (varpool_create_empty_node): Declare.
14194 * lto-cgraph.c (input_node, input_varpool_node): Forcingly create
14195 duplicated nodes.
14196 * symtab.c (symtab_unregister_node): Be lax about missin entries
14197 in node hash.
14198 (symtab_get_node): Update comment.
14199 * varpool.c (varpool_create_empty_node): Break out from ...
14200 (varpool_node_for_decl): ... here.
14201 * lto-streamer.h (lto_file_decl_data): Add RESOLUTION_MAP.
14202
14203 2013-06-12 Eric Botcazou <ebotcazou@adacore.com>
14204
14205 * expr.c (expand_expr_real_1) <TARGET_MEM_REF>: Use straight-line flow.
14206 <MEM_REF>: Use 'type' instead of TREE_TYPE (exp) and tidy up the first
14207 part. Use straight-line flow at the end.
14208 <COMPONENT_REF>: Remove superfluous else.
14209 <VIEW_CONVERT_EXPR>: Use 'type' instead of TREE_TYPE (exp).
14210
14211 2013-06-12 Jakub Jelinek <jakub@redhat.com>
14212
14213 PR target/56564
14214 * varasm.c (decl_binds_to_current_def_p): Call binds_local_p
14215 target hook even for !TREE_PUBLIC decls. If no resolution info
14216 is available, return false for common and external decls.
14217
14218 2013-06-12 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
14219
14220 * config/rl78/constraints.md (U): New constraint.
14221 * config/rl78/rl78.md (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): Add
14222 valloc attribute.
14223
14224 2013-06-11 Michael Meissner <meissner@linux.vnet.ibm.com>
14225
14226 PR target/57589
14227 * config/rs6000/driver-rs6000.c (elf_platform): Make buffer static
14228 to allow returning address to AT_PLATFORM name.
14229
14230 2013-06-11 Jan Hubicka <jh@suse.cz>
14231
14232 * cgraph.c (cgraph_create_function_alias): Set weakref flag.
14233 * cgraph.h (symtab_node_base): Add weakref flag.
14234 * cgraphunit.c (cgraph_reset_node): Clear weakref flag.
14235 (handle_alias_pairs): Set weakref flag, do not set DECL_EXTERNAL.
14236 (output_weakrefs): Use weakref flag.
14237 * fold-const.c (simple_operand_p): Handle WEAK.
14238 * gimple-fold.c (can_refer_decl_in_current_unit_p): Drop weakref.
14239 * ipa.c (varpool_externally_visible_p): Drop weakref.
14240 (function_and_variable_visibility): Update comment; fix weakref
14241 sanity checks; do not clear DECL_WEAK on them.
14242 * lto-cgraph.c (lto_output_node): update.
14243 (lto_output_varpool_node): Update.
14244 (input_overwrite_node): Update.
14245 (input_node): Update.
14246 (input_varpool_node): Update.
14247 * lto-symtab.c (lto_symtab_symbol_p): Do not special case weakrefs.
14248 (lto_symtab_merge_symbols): Add sanity check.
14249 (lto_symtab_prevailing_decl): Do not special case weakrefs.
14250 * passes.c (rest_of_decl_compilation): Set static flag, too.
14251 * symtab.c (dump_symtab_base): Dump weakref.
14252 (verify_symtab_base): Sanity check weakrefs.
14253 (symtab_make_decl_local): Remove duplicated code.
14254 (symtab_alias_ultimate_target): Simplify.
14255 * varpool.c (varpool_create_variable_alias): Set weakref flag.
14256
14257 2013-06-11 Tom de Vries <tom@codesourcery.com>
14258
14259 * genautomata.c (gen_regexp_sequence): Handle els_num == -1. Handle
14260 sequence_vect == NULL.
14261
14262 2013-06-11 DJ Delorie <dj@redhat.com>
14263
14264 * config/rl78/rl78.c (TARGET_UNWIND_WORD_MODE): Define.
14265 (rl78_unwind_word_mode): New.
14266
14267 2013-06-11 David Malcolm <dmalcolm@redhat.com>
14268
14269 * final.c (debug_prefix_maps): Make static.
14270
14271 2013-06-11 David Malcolm <dmalcolm@redhat.com>
14272
14273 * function.c (initial_trampoline): Remove stray copy.
14274
14275 2013-06-11 Sofiane Naci <sofiane.naci@arm.com>
14276
14277 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update.
14278
14279 2013-06-11 Martin Jambor <mjambor@suse.cz>
14280
14281 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that param_index is
14282 within bounds at the beginning of the function.
14283
14284 2013-06-11 Alan Modra <amodra@gmail.com>
14285
14286 * varasm.c (get_section): Don't die on !DECL_P decl. Tidy error
14287 reporting.
14288 (get_named_section): Don't NULL !DECL_P decl.
14289
14290 2013-06-11 Igor Zamyatin <igor.zamyatin@intel.com>
14291
14292 * doc/invoke.texi (core-avx2): Document.
14293 (slm): Likewise.
14294 (atom): Updated with MOVBE.
14295
14296 2013-06-11 Richard Biener <rguenther@suse.de>
14297
14298 * collect2.c (main): Do not redirect ld stdout/stderr when debugging.
14299
14300 2013-06-11 Anton Blanchard <anton@samba.org>
14301
14302 * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Calculate
14303 correct shift value in little-endian mode.
14304
14305 2013-06-11 Jakub Jelinek <jakub@redhat.com>
14306
14307 PR target/56564
14308 * varasm.c (get_variable_align): Move #endif to the right place.
14309
14310 2013-06-10 Cary Coutant <ccoutant@google.com>
14311
14312 * dwarf2out.c (hash_external_ref): Use die_symbol or signature
14313 for hash so that hash table traversal order is deterministic.
14314
14315 2013-06-10 Michael Meissner <meissner@linux.vnet.ibm.com>
14316 Pat Haugen <pthaugen@us.ibm.com>
14317 Peter Bergner <bergner@vnet.ibm.com>
14318
14319 * config/rs6000/vector.md (GPR move splitter): Do not split moves
14320 of vectors in GPRS if they are direct moves or quad word load or
14321 store moves.
14322
14323 * config/rs6000/rs6000-protos.h (rs6000_output_move_128bit): Add
14324 declaration.
14325 (direct_move_p): Likewise.
14326 (quad_load_store_p): Likewise.
14327
14328 * config/rs6000/rs6000.c (enum rs6000_reg_type): Simplify register
14329 classes into bins based on the physical register type.
14330 (reg_class_to_reg_type): Likewise.
14331 (IS_STD_REG_TYPE): Likewise.
14332 (IS_FP_VECT_REG_TYPE): Likewise.
14333 (reload_fpr_gpr): Arrays to determine what insn to use if we can
14334 use direct move instructions.
14335 (reload_gpr_vsx): Likewise.
14336 (reload_vsx_gpr): Likewise.
14337 (rs6000_init_hard_regno_mode_ok): Precalculate the register type
14338 information that is a simplification of register classes. Also
14339 precalculate direct move reload helpers.
14340 (direct_move_p): New function to return true if the operation can
14341 be done as a direct move instruciton.
14342 (quad_load_store_p): New function to return true if the operation
14343 is a quad memory operation.
14344 (rs6000_legitimize_address): If quad memory, only allow register
14345 indirect for TImode addresses.
14346 (rs6000_legitimate_address_p): Likewise.
14347 (enum reload_reg_type): Delete, replace with rs6000_reg_type.
14348 (rs6000_reload_register_type): Likewise.
14349 (register_to_reg_type): Return register type.
14350 (rs6000_secondary_reload_simple_move): New helper function for
14351 secondary reload and secondary memory needed to identify anything
14352 that is a simple move, and does not need reloading.
14353 (rs6000_secondary_reload_direct_move): New helper function for
14354 secondary reload to identify cases that can be done with several
14355 instructions via the direct move instructions.
14356 (rs6000_secondary_reload_move): New helper function for secondary
14357 reload to identify moves between register types that can be done.
14358 (rs6000_secondary_reload): Add support for quad memory operations
14359 and for direct move.
14360 (rs6000_secondary_memory_needed): Likewise.
14361 (rs6000_debug_secondary_memory_needed): Change argument names.
14362 (rs6000_output_move_128bit): New function to return the move to
14363 use for 128-bit moves, including knowing about the various
14364 limitations of quad memory operations.
14365
14366 * config/rs6000/vsx.md (vsx_mov<mode>): Add support for quad
14367 memory operations. call rs6000_output_move_128bit for the actual
14368 instruciton(s) to generate.
14369 (vsx_movti_64bit): Likewise.
14370
14371 * config/rs6000/rs6000.md (UNSPEC_P8V_FMRGOW): New unspec values.
14372 (UNSPEC_P8V_MTVSRWZ): Likewise.
14373 (UNSPEC_P8V_RELOAD_FROM_GPR): Likewise.
14374 (UNSPEC_P8V_MTVSRD): Likewise.
14375 (UNSPEC_P8V_XXPERMDI): Likewise.
14376 (UNSPEC_P8V_RELOAD_FROM_VSX): Likewise.
14377 (UNSPEC_FUSION_GPR): Likewise.
14378 (FMOVE128_GPR): New iterator for direct move.
14379 (f32_lv): New mode attribute for load/store of SFmode/SDmode values.
14380 (f32_sv): Likewise.
14381 (f32_dm): Likewise.
14382 (zero_extend<mode>di2_internal1): Add support for power8 32-bit
14383 loads and direct move instructions.
14384 (zero_extendsidi2_lfiwzx): Likewise.
14385 (extendsidi2_lfiwax): Likewise.
14386 (extendsidi2_nocell): Likewise.
14387 (floatsi<mode>2_lfiwax): Likewise.
14388 (lfiwax): Likewise.
14389 (floatunssi<mode>2_lfiwzx): Likewise.
14390 (lfiwzx): Likewise.
14391 (fix_trunc<mode>_stfiwx): Likewise.
14392 (fixuns_trunc<mode>_stfiwx): Likewise.
14393 (mov<mode>_hardfloat, 32-bit floating point): Likewise.
14394 (mov<move>_hardfloat64, 64-bit floating point): Likewise.
14395 (parity<mode>2_cmpb): Set length/type attr.
14396 (unnamed shift right patterns, mov<mode>_internal2): Change type attr
14397 for 'mr.' to fast_compare.
14398 (bpermd_<mode>): Change type attr to popcnt.
14399 (p8_fmrgow_<mode>): New insns for power8 direct move support.
14400 (p8_mtvsrwz_1): Likewise.
14401 (p8_mtvsrwz_2): Likewise.
14402 (reload_fpr_from_gpr<mode>): Likewise.
14403 (p8_mtvsrd_1): Likewise.
14404 (p8_mtvsrd_2): Likewise.
14405 (p8_xxpermdi_<mode>): Likewise.
14406 (reload_vsx_from_gpr<mode>): Likewise.
14407 (reload_vsx_from_gprsf): Likewise.
14408 (p8_mfvsrd_3_<mode>): LIkewise.
14409 (reload_gpr_from_vsx<mode>): Likewise.
14410 (reload_gpr_from_vsxsf): Likewise.
14411 (p8_mfvsrd_4_disf): Likewise.
14412 (multi-word GPR splits): Do not split direct moves or quad memory
14413 operations.
14414
14415 2013-06-10 David Malcolm <dmalcolm@redhat.com>
14416
14417 * tree-into-ssa.c (interesting_blocks): Make static.
14418
14419 2013-06-10 Jakub Jelinek <jakub@redhat.com>
14420
14421 PR target/56564
14422 * varasm.c (align_variable): Don't use DATA_ALIGNMENT or
14423 CONSTANT_ALIGNMENT if !decl_binds_to_current_def_p (decl).
14424 Use DATA_ABI_ALIGNMENT for that case instead if defined.
14425 (get_variable_align): New function.
14426 (get_variable_section, emit_bss, emit_common,
14427 assemble_variable_contents, place_block_symbol): Use
14428 get_variable_align instead of DECL_ALIGN.
14429 (assemble_noswitch_variable): Add align argument, use it
14430 instead of DECL_ALIGN.
14431 (assemble_variable): Adjust caller. Use get_variable_align
14432 instead of DECL_ALIGN.
14433 * config/i386/i386.h (DATA_ALIGNMENT): Adjust x86_data_alignment
14434 caller.
14435 (DATA_ABI_ALIGNMENT): Define.
14436 * config/i386/i386-protos.h (x86_data_alignment): Adjust prototype.
14437 * config/i386/i386.c (x86_data_alignment): Add opt argument. If
14438 opt is false, only return the psABI mandated alignment increase.
14439 * config/c6x/c6x.h (DATA_ALIGNMENT): Renamed to...
14440 (DATA_ABI_ALIGNMENT): ... this.
14441 * config/mmix/mmix.h (DATA_ALIGNMENT): Renamed to...
14442 (DATA_ABI_ALIGNMENT): ... this.
14443 * config/mmix/mmix.c (mmix_data_alignment): Adjust function comment.
14444 * config/s390/s390.h (DATA_ALIGNMENT): Renamed to...
14445 (DATA_ABI_ALIGNMENT): ... this.
14446 * doc/tm.texi.in (DATA_ABI_ALIGNMENT): Document.
14447 * doc/tm.texi: Regenerated.
14448
14449 2013-06-10 Uros Bizjak <ubizjak@gmail.com>
14450
14451 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Also use
14452 cmp_code to construct REG_EQUAL note.
14453
14454 2013-06-09 Jakub Jelinek <jakub@redhat.com>
14455
14456 PR target/57568
14457 * config/i386/i386.md (TARGET_READ_MODIFY_WRITE peepholes): Ensure
14458 that operands[2] doesn't overlap with operands[0].
14459
14460 2013-06-09 David Edelsohn <dje.gcc@gmail.com>
14461 Jan Hubicka <jh@suse.cz>
14462
14463 * config/rs6000/rs6000.c (print_operand, 'z'): Remove historical
14464 hack to mark symbols as used.
14465
14466 2013-06-08 Vladimir Makarov <vmakarov@redhat.com>
14467
14468 PR rtl-optimization/57559
14469 * lra-constraints.c (process_alt_operands): Don't discourage
14470 memory with known offset for offsetable memory constraint.
14471 * lra.c (lra_emit_add): Exchange y and z for 2-op add insn.
14472
14473 2013-06-08 Eric Botcazou <ebotcazou@adacore.com>
14474
14475 * varasm.c (struct oc_local_state): Reorder fields.
14476 (output_constructor_bitfield): Replace OUTER parameter with BIT_OFFSET
14477 and adjust accordingly.
14478 (output_constructor): Reorder initialization code and adjust call to
14479 output_constructor_bitfield.
14480
14481 2013-06-07 Jan Hubicka <jh@suse.cz>
14482
14483 * symtab.c (symtab_resolve_alias): Do not remove alias attribute.
14484
14485 2013-06-07 David Malcolm <dmalcolm@redhat.com>
14486
14487 * tree-object-size.c (unknown): Make const.
14488
14489 2013-06-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14490
14491 * config/s390/s390.md (cpu_facility): Add cpu_zarch.
14492 ("*movmem_short", "*clrmem_short", "*cmpmem_short): Use cpu_zarch
14493 for last alternative in the cpu_facility attribute.
14494
14495 2013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14496
14497 PR target/56315
14498 * config/arm/arm.md (*xordi3_insn): Change to insn_and_split.
14499 (xordi3): Change operand 2 constraint to arm_xordi_operand.
14500 * config/arm/arm.c (const_ok_for_dimode_op): Handle XOR.
14501 * config/arm/constraints.md (Dg): New constraint.
14502 * config/arm/neon.md (xordi3_neon): Remove.
14503 (neon_veor<mode>): Generate xordi3 instead of xordi3_neon.
14504 * config/arm/predicates.md (arm_xordi_operand): New predicate.
14505
14506 2013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14507
14508 * config/arm/arm.md (anddi3_insn): Remove duplicate alternatives.
14509 Clean up alternatives.
14510
14511 2013-06-07 Alan Modra <amodra@gmail.com>
14512
14513 * config/rs6000/rs6000.c (setup_incoming_varargs): Round up
14514 va_list_gpr_size.
14515
14516 2013-06-07 Alan Modra <amodra@gmail.com>
14517
14518 * varasm.c (force_const_mem): Assert mode is not VOID or BLK.
14519
14520 2013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14521
14522 * config/arm/constraints.md (Df): New constraint.
14523 * config/arm/arm.md (iordi3_insn): Use Df constraint instead of De.
14524 Correct length attribute for last two alternatives.
14525
14526 2013-06-07 Alan Modra <amodra@gmail.com>
14527
14528 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
14529 override user -mfp-in-toc.
14530 (offsettable_ok_by_alignment): Consider just the current access
14531 rather than the whole object, unless BLKmode. Handle
14532 CONSTANT_POOL_ADDRESS_P constants that lack a decl too.
14533 (use_toc_relative_ref): Allow CONSTANT_POOL_ADDRESS_P constants
14534 for -mcmodel=medium.
14535 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't
14536 override user -mfp-in-toc or -msum-in-toc. Default to
14537 -mno-fp-in-toc for -mcmodel=medium.
14538
14539 2013-06-06 DJ Delorie <dj@redhat.com>
14540
14541 * config/rl78/rl78.c (rl78_valid_pointer_mode): New, implements
14542 TARGET_VALID_POINTER_MODE.
14543
14544 2013-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
14545 Pat Haugen <pthaugen@us.ibm.com>
14546 Peter Bergner <bergner@vnet.ibm.com>
14547
14548 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
14549 Document new power8 builtins.
14550
14551 * config/rs6000/vector.md (and<mode>3): Add a clobber/scratch of a
14552 condition code register, to allow 128-bit logical operations to be
14553 done in the VSX or GPR registers.
14554 (nor<mode>3): Use the canonical form for nor.
14555 (eqv<mode>3): Add expanders for power8 xxleqv, xxlnand, xxlorc,
14556 vclz*, and vpopcnt* vector instructions.
14557 (nand<mode>3): Likewise.
14558 (orc<mode>3): Likewise.
14559 (clz<mode>2): LIkewise.
14560 (popcount<mode>2): Likewise.
14561
14562 * config/rs6000/predicates.md (int_reg_operand): Rework tests so
14563 that only the GPRs are recognized.
14564
14565 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
14566 support for new power8 builtins.
14567
14568 * config/rs6000/rs6000-builtin.def (xscvspdpn): Add new power8
14569 builtin functions.
14570 (xscvdpspn): Likewise.
14571 (vclz): Likewise.
14572 (vclzb): Likewise.
14573 (vclzh): Likewise.
14574 (vclzw): Likewise.
14575 (vclzd): Likewise.
14576 (vpopcnt): Likewise.
14577 (vpopcntb): Likewise.
14578 (vpopcnth): Likewise.
14579 (vpopcntw): Likewise.
14580 (vpopcntd): Likewise.
14581 (vgbbd): Likewise.
14582 (vmrgew): Likewise.
14583 (vmrgow): Likewise.
14584 (eqv): Likewise.
14585 (eqv_v16qi3): Likewise.
14586 (eqv_v8hi3): Likewise.
14587 (eqv_v4si3): Likewise.
14588 (eqv_v2di3): Likewise.
14589 (eqv_v4sf3): Likewise.
14590 (eqv_v2df3): Likewise.
14591 (nand): Likewise.
14592 (nand_v16qi3): Likewise.
14593 (nand_v8hi3): Likewise.
14594 (nand_v4si3): Likewise.
14595 (nand_v2di3): Likewise.
14596 (nand_v4sf3): Likewise.
14597 (nand_v2df3): Likewise.
14598 (orc): Likewise.
14599 (orc_v16qi3): Likewise.
14600 (orc_v8hi3): Likewise.
14601 (orc_v4si3): Likewise.
14602 (orc_v2di3): Likewise.
14603 (orc_v4sf3): Likewise.
14604 (orc_v2df3): Likewise.
14605
14606 * config/rs6000/rs6000.c (rs6000_option_override_internal): Only
14607 allow power8 quad mode in 64-bit.
14608 (rs6000_builtin_vectorized_function): Add support to vectorize
14609 ISA 2.07 count leading zeros, population count builtins.
14610 (rs6000_expand_vector_init): On ISA 2.07 use xscvdpspn to form
14611 V4SF vectors instead of xscvdpsp to avoid IEEE related traps.
14612 (builtin_function_type): Add vgbbd builtin function which takes an
14613 unsigned argument.
14614 (altivec_expand_vec_perm_const): Add support for new power8 merge
14615 instructions.
14616
14617 * config/rs6000/vsx.md (VSX_L2): New iterator for 128-bit types,
14618 that does not include TImdoe for use with 32-bit.
14619 (UNSPEC_VSX_CVSPDPN): Support for power8 xscvdpspn and xscvspdpn
14620 instructions.
14621 (UNSPEC_VSX_CVDPSPN): Likewise.
14622 (vsx_xscvdpspn): Likewise.
14623 (vsx_xscvspdpn): Likewise.
14624 (vsx_xscvdpspn_scalar): Likewise.
14625 (vsx_xscvspdpn_directmove): Likewise.
14626 (vsx_and<mode>3): Split logical operations into 32-bit and
14627 64-bit. Add support to do logical operations on TImode as well as
14628 VSX vector types. Allow logical operations to be done in either
14629 VSX registers or in general purpose registers in 64-bit mode. Add
14630 splitters if GPRs were used. For AND, add clobber of CCmode to
14631 allow use of ANDI on GPRs. Rewrite nor to use the canonical RTL
14632 encoding.
14633 (vsx_and<mode>3_32bit): Likewise.
14634 (vsx_and<mode>3_64bit): Likewise.
14635 (vsx_ior<mode>3): Likewise.
14636 (vsx_ior<mode>3_32bit): Likewise.
14637 (vsx_ior<mode>3_64bit): Likewise.
14638 (vsx_xor<mode>3): Likewise.
14639 (vsx_xor<mode>3_32bit): Likewise.
14640 (vsx_xor<mode>3_64bit): Likewise.
14641 (vsx_one_cmpl<mode>2): Likewise.
14642 (vsx_one_cmpl<mode>2_32bit): Likewise.
14643 (vsx_one_cmpl<mode>2_64bit): Likewise.
14644 (vsx_nor<mode>3): Likewise.
14645 (vsx_nor<mode>3_32bit): Likewise.
14646 (vsx_nor<mode>3_64bit): Likewise.
14647 (vsx_andc<mode>3): Likewise.
14648 (vsx_andc<mode>3_32bit): Likewise.
14649 (vsx_andc<mode>3_64bit): Likewise.
14650 (vsx_eqv<mode>3_32bit): Add support for power8 xxleqv, xxlnand,
14651 and xxlorc instructions.
14652 (vsx_eqv<mode>3_64bit): Likewise.
14653 (vsx_nand<mode>3_32bit): Likewise.
14654 (vsx_nand<mode>3_64bit): Likewise.
14655 (vsx_orc<mode>3_32bit): Likewise.
14656 (vsx_orc<mode>3_64bit): Likewise.
14657
14658 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Update comment.
14659
14660 * config/rs6000/altivec.md (UNSPEC_VGBBD): Add power8 vgbbd
14661 instruction.
14662 (p8_vmrgew): Add power8 vmrgew and vmrgow instructions.
14663 (p8_vmrgow): Likewise.
14664 (altivec_and<mode>3): Add clobber of CCmode to allow AND using
14665 GPRs to be split under VSX.
14666 (p8v_clz<mode>2): Add power8 count leading zero support.
14667 (p8v_popcount<mode>2): Add power8 population count support.
14668 (p8v_vgbbd): Add power8 gather bits by bytes by doubleword
14669 support.
14670
14671 * config/rs6000/rs6000.md (eqv<mode>3): Add support for powerp eqv
14672 instruction.
14673
14674 * config/rs6000/altivec.h (vec_eqv): Add defines to export power8
14675 builtin functions.
14676 (vec_nand): Likewise.
14677 (vec_vclz): Likewise.
14678 (vec_vclzb): Likewise.
14679 (vec_vclzd): Likewise.
14680 (vec_vclzh): Likewise.
14681 (vec_vclzw): Likewise.
14682 (vec_vgbbd): Likewise.
14683 (vec_vmrgew): Likewise.
14684 (vec_vmrgow): Likewise.
14685 (vec_vpopcnt): Likewise.
14686 (vec_vpopcntb): Likewise.
14687 (vec_vpopcntd): Likewise.
14688 (vec_vpopcnth): Likewise.
14689 (vec_vpopcntw): Likewise.
14690
14691 2013-06-06 Vladimir Makarov <vmakarov@redhat.com>
14692
14693 PR rtl-optimization/57468
14694 * config/i386/i386.c (inline_secondary_memory_needed): Ignore
14695 spilled pseudos.
14696
14697 2013-06-06 Vladimir Makarov <vmakarov@redhat.com>
14698
14699 PR rtl-optimization/57459
14700 * lra-constraints.c (update_ebb_live_info): Fix typo for operand
14701 type when setting live regs.
14702
14703 2013-06-06 Vladimir Makarov <vmakarov@redhat.com>
14704
14705 * config/s390/s390.opt (mlra): New option.
14706 * config/s390/s390.c (s390_decompose_address): Check displacement
14707 for all registers for LRA.
14708 (s390_secondary_reload): Don't used secondary reloads for LRA.
14709 (s390_lra_p): New function.
14710 (TARGET_LRA_P): Define.
14711 * config/s390/s390.md (*movmem_short, *clrmem_short): Change value
14712 of attribute cpu_facility to zarch for the last alternative.
14713 (*cmpmem_short): Ditto.
14714
14715 2013-06-06 Eric Botcazou <ebotcazou@adacore.com>
14716
14717 * config/arm/arm.c (arm_r3_live_at_start_p): New predicate.
14718 (arm_compute_static_chain_stack_bytes): Use it. Tidy up.
14719 (arm_expand_prologue): Likewise.
14720
14721 2013-06-06 Teresa Johnson <tejohnson@google.com>
14722
14723 PR c++/53743
14724 * ifcvt.c (find_if_case_1): Replace BB_COPY_PARTITION with assert
14725 as this is now done by redirect_edge_and_branch_force.
14726 * function.c (thread_prologue_and_epilogue_insns): Insert new bb after
14727 barriers, and fix interaction with splitting.
14728 * emit-rtl.c (try_split): Copy REG_CROSSING_JUMP notes.
14729 * cfgcleanup.c (try_forward_edges): Fix early return value to properly
14730 reflect changes made in the routine.
14731 * bb-reorder.c (emit_barrier_after_bb): Move to cfgrtl.c.
14732 (fix_up_fall_thru_edges): Remove incorrect check for bb layout order
14733 since this is called in cfglayout mode, and replace partition fixup
14734 with assert as that is now done by force_nonfallthru_and_redirect.
14735 (add_reg_crossing_jump_notes): Handle the fact that some jumps may
14736 already be marked with region crossing note.
14737 (insert_section_boundary_note): Make non-static, gate on flag
14738 has_bb_partition, rewrite to also check for multiple partitions.
14739 (rest_of_handle_reorder_blocks): Remove call to
14740 insert_section_boundary_note, now done later during free_cfg.
14741 (duplicate_computed_gotos): Don't duplicate partition crossing edge.
14742 * bb-reorder.h (insert_section_boundary_note): Declare.
14743 * Makefile.in (cfgrtl.o): Depend on bb-reorder.h
14744 * cfgrtl.c (rest_of_pass_free_cfg): If partitions exist
14745 invoke insert_section_boundary_note.
14746 (try_redirect_by_replacing_jump): Remove unnecessary
14747 check for region crossing note.
14748 (fixup_partition_crossing): New function.
14749 (rtl_redirect_edge_and_branch): Fixup partition boundaries.
14750 (emit_barrier_after_bb): Move here from bb-reorder.c, handle insertion
14751 in non-cfglayout mode.
14752 (force_nonfallthru_and_redirect): Fixup partition boundaries,
14753 remove old code that tried to do this. Emit barrier correctly
14754 when we are in cfglayout mode.
14755 (last_bb_in_partition): New function.
14756 (rtl_split_edge): Correctly fixup partition boundaries.
14757 (commit_one_edge_insertion): Remove old code that tried to
14758 fixup region crossing edge since this is now handled in
14759 split_block, and set up insertion point correctly since
14760 block may now end in a jump.
14761 (verify_hot_cold_block_grouping): Guard against checking when not in
14762 linearized RTL mode.
14763 (rtl_verify_edges): Add checks for incorrect/missing REG_CROSSING_JUMP
14764 notes.
14765 (rtl_verify_flow_info_1): Move verify_hot_cold_block_grouping to
14766 rtl_verify_flow_info, so not called in cfglayout mode.
14767 (rtl_verify_flow_info): Move verify_hot_cold_block_grouping here.
14768 (fixup_reorder_chain): Remove old code that attempted to fixup region
14769 crossing note as this is now handled in force_nonfallthru_and_redirect.
14770 (duplicate_insn_chain): Don't duplicate switch section notes.
14771 (rtl_can_remove_branch_p): Remove unnecessary check for region crossing
14772 note.
14773 * basic-block.h (emit_barrier_after_bb): Declare.
14774
14775 2013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14776
14777 * config/arm/arm-fixed.md (add<mode>3,usadd<mode>3,ssadd<mode>3,
14778 sub<mode>3, ussub<mode>3, sssub<mode>3, arm_ssatsihi_shift,
14779 arm_usatsihi): Adjust alternatives for arm_restrict_it.
14780
14781 2013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14782
14783 * config/arm/arm-ldmstm.ml: Set "predicable_short_it" to "no"
14784 where appropriate.
14785 * config/arm/ldmstm.md: Regenerate.
14786
14787 2013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14788
14789 * config/arm/sync.md (atomic_loaddi_1):
14790 Disable predication for arm_restrict_it.
14791 (arm_load_exclusive<mode>): Likewise.
14792 (arm_load_exclusivesi): Likewise.
14793 (arm_load_exclusivedi): Likewise.
14794 (arm_load_acquire_exclusive<mode>): Likewise.
14795 (arm_load_acquire_exclusivesi): Likewise.
14796 (arm_load_acquire_exclusivedi): Likewise.
14797 (arm_store_exclusive<mode>): Likewise.
14798 (arm_store_exclusive<mode>): Likewise.
14799 (arm_store_release_exclusivedi): Likewise.
14800 (arm_store_release_exclusive<mode>): Likewise.
14801
14802 2013-06-06 Richard Biener <rguenther@suse.de>
14803
14804 * lto-streamer.h (enum LTO_tags): Move LTO_tree_pickle_reference
14805 after LTO_null.
14806 (lto_tag_is_tree_code_p): Adjust.
14807 (lto_tag_is_gimple_code_p): Likewise.
14808 (lto_gimple_code_to_tag): Likewise.
14809 (lto_tag_to_gimple_code): Likewise.
14810 (lto_tree_code_to_tag): Likewise.
14811 (lto_tag_to_tree_code): Likewise.
14812 * data-streamer.h (streamer_write_hwi_in_range): Use
14813 uhwi streaming to stream the normalized range.
14814 (streamer_read_hwi_in_range): Likewise.
14815
14816 2013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14817
14818 * config/arm/arm.md (enabled_for_depr_it): New attribute.
14819 (predicable_short_it): Likewise.
14820 (predicated): Likewise.
14821 (enabled): Handle above.
14822 (define_cond_exec): Set predicated attribute to yes.
14823
14824 2013-06-05 Mike Stump <mikestump@comcast.net>
14825
14826 * gdbinit.in (__FUNCTION__): Add.
14827
14828 2013-06-05 Uros Bizjak <ubizjak@gmail.com>
14829
14830 * config/alpha/alpha.c (alpha_emit_conditional_move): Swap all
14831 GE, GT, GEU and GTU compares, modulo DImode compares with zero.
14832
14833 2013-06-05 Jan Hubicka <jh@suse.cz>
14834
14835 * varasm.c (mark_decl_referenced): Revert the removal until targets
14836 are fixed.
14837
14838 2013-06-05 David Edelsohn <dje.gcc@gmail.com>
14839
14840 * config/rs6000/rs6000.c (print_operand, 'z'): Use DECL_PRESERVE_P
14841 instead of mark_decl_referenced.
14842
14843 2013-06-05 Jan Hubicka <jh@suse.cz>
14844
14845 * cgraph.c (cgraph_remove_node): Clear forced_by_abi.
14846 (cgraph_node_cannot_be_local_p_1): Honnor symbol.forced_by_abi
14847 and symtab_used_from_object_file_p.
14848 (cgraph_make_node_local_1): Clear forced_by_abi.
14849 (cgraph_can_remove_if_no_direct_calls_and): Use forced_by_abi
14850 * cgraph.h (symtab_node_base): Add forced_by_abi.
14851 (decide_is_variable_needed): Remove.
14852 (varpool_can_remove_if_no_refs): Honnor symbol.forced_by_abi.
14853 * cgraphunit.c (cgraph_decide_is_function_needed): Rename to ..
14854 (decide_is_symbol_needed): ... this one; handle symbols in general;
14855 always analyze virtuals; honnor forced_by_abi.
14856 (cgraph_finalize_function): Update.
14857 (varpool_finalize_decl): Update.
14858 (symbol_defined_and_needed): Remove.
14859 (analyze_functions): Update.
14860 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
14861 output_refs, input_overwrite_node): Handle forced_by_abi.
14862 * ipa.c (cgraph_address_taken_from_non_vtable_p): Rename to ...
14863 (address_taken_from_non_vtable_p): ... this one.
14864 (comdat_can_be_unshared_p_1): New function.
14865 (cgraph_comdat_can_be_unshared_p): Rename to ...
14866 (comdat_can_be_unshared_p): ... this one; handle symbols in general.
14867 (varpool_externally_visible_p): Use comdat_can_be_unshared_p.
14868 (function_and_variable_visibility): Clear forced_by_abi as needed.
14869 * trans-mem.c (ipa_tm_mark_forced_by_abi_node): New functoin.
14870 (ipa_tm_create_version_alias, ipa_tm_create_version): Update.
14871 * symtab.c (dump_symtab_base): Dump forced_by_abi.
14872 * varpool.c (decide_is_variable_needed): Remove.
14873
14874 2013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14875
14876 * config/arm/arm.c (MAX_INSN_PER_IT_BLOCK): New macro.
14877 (arm_option_override): Override arm_restrict_it where appropriate.
14878 (thumb2_final_prescan_insn): Use MAX_INSN_PER_IT_BLOCK.
14879 * config/arm/arm.opt (mrestrict-it): New command-line option.
14880 * doc/invoke.texi: Document -mrestrict-it.
14881
14882 2013-06-05 David Malcolm <dmalcolm@redhat.com>
14883
14884 * tsan.c (tsan_atomic_table): Make const.
14885
14886 2013-06-05 Richard Biener <rguenther@suse.de>
14887
14888 * tree-streamer.c (streamer_tree_cache_insert_1): Update the
14889 index associated with the tree we are supposed to replace.
14890 * tree-streamer-out.c (pack_ts_base_value_fields): Output
14891 TREE_ASM_WRITTEN as zero for everything but SSA names.
14892
14893 2013-06-05 David Malcolm <dmalcolm@redhat.com>
14894
14895 * tree-ssa-structalias.c (call_stmt_vars): Make static.
14896
14897 2013-06-04 Jan Hubicka <jh@suse.cz>
14898
14899 * lto-cgraph.c (get_alias_symbol): Remove weakref sanity check.
14900 (input_node, input_varpool_node): Handle correctly external same
14901 body aliases.
14902 * ipa.c (symtab_remove_unreachable_nodes): Do not remove external
14903 nodes at ltrans stage.
14904
14905 2013-06-04 Jan Hubicka <jh@suse.cz>
14906
14907 * ipa-inline.c (update_caller_keys): Fix availability test.
14908 (update_callee_keys): Likewise.
14909 * symtab.c (symtab_alias_ultimate_target): Make availaiblity logic
14910 to follow ELF standard.
14911
14912 2013-06-04 Jürgen Urban <JuergenUrban@gmx.de>
14913
14914 * config.gcc (mipsr5900-*-elf*, mipsr5900el-*-elf*, mips64r5900-*-elf*)
14915 (mips64r5900el-*-elf*): New configurations.
14916 * config/mips/mips-cpus.def (r5900): New processor.
14917 * config/mips/mips-tables.opt: Regenerate.
14918 * config/mips/mips.c (mips_rtx_cost_data): Add an R5900 entry.
14919 (mips_issue_rate): Handle PROCESSOR_R5900.
14920 (mips_reorg_process_insns): Force reorder mode for the R5900.
14921 * config/mips/mips.h (TARGET_MIPS5900): Define.
14922 (ISA_HAS_CONDMOVE, ISA_HAS_PREFETCH, ISA_HAS_HILO_INTERLOCKS): Include
14923 TARGET_MIPS5900.
14924 (ISA_HAS_LOAD_DELAY, ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY): Exclude
14925 TARGET_MIPS5900.
14926 * config/mips/mips.md (processor): Add r5900.
14927 (MOVECC): Disallow CCmode conditions for TARGET_MIPS5900.
14928
14929 2013-06-04 Ian Bolton <ian.bolton@arm.com>
14930
14931 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Call
14932 into function to generate MOVI instruction.
14933 * config/aarch64/aarch64.c (aarch64_simd_container_mode): New function.
14934 (aarch64_preferred_simd_mode): Turn into wrapper.
14935 (aarch64_output_scalar_simd_mov_immediate): New function.
14936 * config/aarch64/aarch64-protos.h: Add prototype for above.
14937
14938 2013-06-04 Ian Bolton <ian.bolton@arm.com>
14939
14940 * config/aarch64/aarch64.c (simd_immediate_info): Remove
14941 element_char member.
14942 (sizetochar): Return signed char.
14943 (aarch64_simd_valid_immediate): Remove elchar and other
14944 unnecessary variables.
14945 (aarch64_output_simd_mov_immediate): Take rtx instead of &rtx.
14946 Calculate element_char as required.
14947 * config/aarch64/aarch64-protos.h: Update and move prototype
14948 for aarch64_output_simd_mov_immediate.
14949 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
14950 Update arguments.
14951
14952 2013-06-04 Ian Bolton <ian.bolton@arm.com>
14953
14954 * config/aarch64/aarch64.c (simd_immediate_info): Struct to hold
14955 information completed by aarch64_simd_valid_immediate.
14956 (aarch64_legitimate_constant_p): Update arguments.
14957 (aarch64_simd_valid_immediate): Work with struct rather than many
14958 pointers.
14959 (aarch64_simd_scalar_immediate_valid_for_move): Update arguments.
14960 (aarch64_simd_make_constant): Update arguments.
14961 (aarch64_output_simd_mov_immediate): Work with struct rather than
14962 many pointers. Output immediate directly rather than as operand.
14963 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
14964 Update prototype.
14965 * config/aarch64/constraints.md (Dn): Update arguments.
14966
14967 2013-06-04 Ian Bolton <ian.bolton@arm.com>
14968
14969 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): No
14970 longer static.
14971 (aarch64_simd_immediate_valid_for_move): Remove.
14972 (aarch64_simd_scalar_immediate_valid_for_move): Update call.
14973 (aarch64_simd_make_constant): Update call.
14974 (aarch64_output_simd_mov_immediate): Update call.
14975 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
14976 Add prototype.
14977 * config/aarch64/constraints.md (Dn): Update call.
14978
14979 2013-06-04 Ian Bolton <ian.bolton@arm.com>
14980
14981 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Change
14982 return type to bool for prototype.
14983 (aarch64_legitimate_constant_p): Check for true instead of not -1.
14984 (aarch64_simd_valid_immediate): Fix up each return to return a bool.
14985 (aarch64_simd_immediate_valid_for_move): Update retval for bool.
14986
14987 2013-06-04 Catherine Moore <clm@codesourcery.com>
14988
14989 * config/mips/mips.opt (meva): New.
14990 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_eva.
14991 (ASM_SPEC): Handle -meva.
14992 * doc/invoke.texi (meva): Document.
14993
14994 2013-06-04 Alan Modra <amodra@gmail.com>
14995
14996 * config/rs6000/rs6000.c (output_toc): Correct little-endian float
14997 constant output.
14998
14999 2013-06-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15000
15001 * rtl.def: Add extra fourth optional field to define_cond_exec.
15002 * gensupport.c (process_one_cond_exec): Process attributes from
15003 define_cond_exec.
15004 * doc/md.texi: Document fourth field in define_cond_exec.
15005
15006 2013-06-04 Eric Botcazou <ebotcazou@adacore.com>
15007
15008 * expmed.c (extract_bit_field_1): In the larger-than-a-word case, factor
15009 out the processing order as in store_bit_field_1.
15010
15011 2013-06-04 Jan Hubicka <jh@suse.cz>
15012
15013 PR middle-end/57500
15014 * cgraphunit.c (cgraph_process_same_body_aliases): Create
15015 non-VAR_DECL node if it does not exist yet.
15016
15017 2013-06-03 Richard Sandiford <rdsandiford@googlemail.com>
15018
15019 * config.gcc (mipsisa64sr71k-*-elf*, mipsisa64sb1-*-elf*)
15020 (mipsisa64sb1el-*-elf*, mips64-*-elf*, mips64el-*-elf*)
15021 (mips64orion-*-elf*, mips64orionel-*-elf*): Remove
15022 target_cpu_default setting.
15023
15024 2013-06-03 Teresa Johnson <tejohnson@google.com>
15025
15026 * dumpfile.c (opt_info_switch_p): Change -fopt-info
15027 default to -fopt-info=optimized instead of all.
15028 * doc/invoke.texi: Ditto.
15029 * tree-vectorizer.c (vectorize_loops): Emit loop vectorization
15030 success under MSG_OPTIMIZED_LOCATIONS, and use dump_printf_loc.
15031 (execute_vect_slp): Emit BB vectorization success under
15032 MSG_OPTIMIZED_LOCATIONS.
15033 * tree-vect-slp.c (vect_slp_transform_bb): Change
15034 MSG_OPTIMIZED_LOCATIONS to MSG_NOTE.
15035 * tree-vect-loop.c (vect_transform_loop): Ditto.
15036
15037 2013-06-03 Jason Merrill <jason@redhat.com>
15038
15039 PR c++/57415
15040 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
15041 Use TARGET_EXPR for C++.
15042
15043 2013-06-03 Jakub Jelinek <jakub@redhat.com>
15044
15045 PR rtl-optimization/57268
15046 * sched-deps.c (sched_analyze_2): Don't flush_pending_lists
15047 if DEBUG_INSN_P (insn).
15048
15049 Reapply
15050 2013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
15051
15052 PR rtl-optimization/57268
15053 * sched-deps.c (sched_analyze_2): Flush dependence lists if
15054 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
15055
15056 2013-06-03 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
15057
15058 * config/i386/i386.c (ix86_lea_outperforms): Fix formatting.
15059 (ix86_avoid_lea_for_addr): Likewise.
15060 (exact_dependency_1): Likewise.
15061 (ix86_adjust_cost): Likewise.
15062 (swap_top_of_ready_list): Fix formatting and !reload_completed check
15063 removed.
15064 (do_reorder_for_imul): Fix typo, formatting and
15065 !reload_completed check removed.
15066 (ix86_sched_reorder): Fix typo and formatting.
15067 (fold_builtin_cpu): Move M_INTEL_SLM at the end of processor types
15068 list.
15069
15070 2013-06-03 Sofiane Naci <sofiane.naci@arm.com>
15071
15072 * config/aarch64/aarch64.md (*movdi_aarch64): Define "simd" attribute.
15073
15074 2013-06-03 Eric Botcazou <ebotcazou@adacore.com>
15075
15076 * varasm.c (output_constant) <CONSTRUCTOR>: Minor formatting tweak.
15077 <STRING_CST>: Likewise.
15078 <VECTOR_CST>: Likewise.
15079
15080 2013-06-01 Janus Weil <janus@gcc.gnu.org>
15081 Mikael Morin <mikael@gcc.gnu.org>
15082
15083 * configure.ac: Add AC_HEADER_TIOCGWINSZ macro.
15084 * config.in: Regenerated.
15085 * configure: Regenerated.
15086
15087 2013-06-01 Jan Hubicka <jh@suse.cz>
15088
15089 PR middle-end/57366
15090 * cgraphunit.c (compile): When weakref is not supported,
15091 set up transparent aliases before final output pass.
15092 * varasm.c (assemble_alias): Do not try to do it here.
15093
15094 2013-06-01 Jan Hubicka <jh@suse.cz>
15095
15096 PR middle-end/57467
15097 * passes.c (for_per_function): Skip unanalyzed functions.
15098
15099 2013-06-01 Jan Hubicka <jh@suse.cz>
15100
15101 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Rename to ...
15102 (lto_symtab_merge_symbols_1): ... this one.
15103 (lto_symtab_merge_cgraph_nodes): Rename to ...
15104 (lto_symtab_merge_symbols): ... this one; simplify.
15105 * cgraph.c (same_body_aliases_done): Rename to ...
15106 (cpp_implicit_aliases_done): ... this one.
15107 (cgraph_create_function_alias): Update.
15108 (cgraph_same_body_alias): Update.
15109 (dump_cgraph_node): Remove alias dumping; simplify thunk dumping.
15110 (verify_edge_corresponds_to_fndecl): Simplify.
15111 * cgraph.h (symtab_node_base): Add cpp_implicit_alias, alias_target.
15112 (cgraph_node): Remove same_body_alias.
15113 (varpool_node): Remove alias_of and extra_name_alias.
15114 (same_body_aliases_done): Rename to ..
15115 (cpp_implicit_aliases_done): ... this one.
15116 (symtab_alias_ultimate_target): Add default parameter.
15117 (symtab_resolve_alias): New function.
15118 (fixup_same_cpp_alias_visibility): Declare.
15119 (cgraph_function_node): Add default parameter.
15120 (cgraph_node_asm_name): Likewise.
15121 (cgraph_function_or_thunk_node): Add default parameter; do
15122 not ICE when it is NULL.
15123 (varpool_variable_node): Likewise.
15124 * tree-emutls.c (create_emultls_var): Update.
15125 (ipa_lower_emutls): Update.
15126 * cgraphunit.c (cgraph_decide_is_function_needed): Update.
15127 (cgraph_reset_node): Reset alias info.
15128 (cgraph_finalize_function): Update.
15129 (fixup_same_cpp_alias_visibility): Move to symtab.c.
15130 (analyze_function): Simplify.
15131 (cgraph_process_same_body_aliases): Simplify.
15132 (analyze_functions): Fixup same body aliases.
15133 (handle_alias_pairs): Simplify.
15134 (assemble_thunk): Update.
15135 (assemble_thunks_and_aliases): Update.
15136 (output_weakrefs): Rewrite.
15137 * lto-cgraph.c (lto_output_node): Rewrite alias handling.
15138 (lto_output_varpool_node): Likewise.
15139 (compute_ltrans_boundary): Remve assert.
15140 (get_alias_symbol): New functoin.
15141 (input_node): Rewrite alias handling.
15142 (input_varpool_node): Likewise.
15143 * ipa-pure-const.c (propagate_pure_const): Fix formating.
15144 * ipa.c (process_references): Handle weakrefs correctly.
15145 (symtab_remove_unreachable_nodes): Likewise.
15146 * trans-mem.c (get_cg_data): Update.
15147 (ipa_tm_create_version_alias): Update.
15148 (ipa_tm_execute): Update.
15149 * symtab.c (dump_symtab_base): Dump aliases.
15150 (verify_symtab_base): Verify aliases.
15151 (symtab_node_availability): New function.
15152 (symtab_alias_ultimate_target): Simplify.
15153 (fixup_same_cpp_alias_visibility): Move here from cgraphunit.c;
15154 handle all the fixup cases.
15155 (symtab_resolve_alias): New function.
15156 * passes.c (ipa_write_summaries): Handle weakrefs.
15157 * varpool.c (varpool_analyze_node): Simplify.
15158 (assemble_aliases): Update.
15159 (varpool_create_variable_alias): Simplify.
15160 (varpool_extra_name_alias): Simplify.
15161 * lto-streamer.h (lto_symtab_merge_cgraph_nodes): Rename to...
15162 (lto_symtab_merge_symbols): ... this one.
15163
15164 2013-06-01 Dinar Temirbulatov <dinar@kugelworks.com>
15165
15166 Revert
15167 PR rtl-optimization/57268
15168 * sched-deps.c (sched_analyze_2): Flush dependence lists if
15169 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
15170
15171 2013-06-01 Tobias Burnus <burnus@net-b.de>
15172
15173 Partially reverted:
15174 2013-05-31 Tobias Burnus <burnus@net-b.de>
15175
15176 PR middle-end/57073
15177 * tree-ssa-math-opts.c (execute_cse_sincos): Move check
15178 further up.
15179
15180 2013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
15181
15182 PR rtl-optimization/57268
15183 * sched-deps.c (sched_analyze_2): Flush dependence lists if
15184 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
15185
15186 2013-05-31 Eric Botcazou <ebotcazou@adacore.com>
15187
15188 * config/rs6000/predicates.md (rs6000_cbranch_operator): Accept some
15189 unordered comparison operators when -fno-trapping-math is in effect
15190 on the e500.
15191 * config/rs6000/rs6000.c (rs6000_generate_compare): Remove dead code
15192 and implement unordered comparison operators properly on the e500.
15193
15194 2013-05-31 Eric Botcazou <ebotcazou@adacore.com>
15195
15196 * simplify-rtx.c (simplify_byte_swapping_operation): Use proper macro
15197 for constant scalar integers.
15198 (simplify_relational_operation_1): Likewise.
15199
15200 2013-05-31 Segher Boessenkool <segher@kernel.crashing.org>
15201
15202 * config/rs6000/rs6000-opts.h (enum processor_type): Reorder.
15203 * config/rs6000/rs6000.md (cpu): Reorder. Split long line.
15204 Fix comment.
15205
15206 2013-05-31 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
15207 Igor Zamyatin <igor.zamyatin@intel.com>
15208
15209 Silvermont (SLM) architecture performance tuning.
15210 * config/i386/i386.h (enum ix86_tune_indices): Add
15211 X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS.
15212 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS): New define.
15213
15214 * config/i386/i386.c (initial_ix86_tune_features)
15215 <X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS>: Initialize.
15216 (ix86_lea_outperforms): Handle Silvermont tuning.
15217 (ix86_avoid_lea_for_add): Add new argument to ix86_lea_outperforms
15218 call.
15219 (ix86_use_lea_for_mov): Likewise.
15220 (ix86_avoid_lea_for_addr): Likewise.
15221 (ix86_lea_for_add_ok): Likewise.
15222 (exact_dependency_1): New function.
15223 (exact_store_load_dependency): Likewise.
15224 (ix86_adjust_cost): Handle Silvermont tuning.
15225 (do_reoder_for_imul): Likewise.
15226 (swap_top_of_ready_list): New function.
15227 (ix86_sched_reorder): Changed to handle Silvermont tuning.
15228
15229 * config/i386/i386.md (peepholes that split memory operand in fp
15230 converts): New.
15231
15232 2013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
15233
15234 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
15235 Remove un-necessary braces.
15236
15237 2013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
15238
15239 * config/aarch64/aarch64.c (aarch64_classify_symbol):
15240 Use SYMBOL_TINY_ABSOLUTE for AARCH64_CMODEL_TINY_PIC.
15241
15242 2013-05-31 Tobias Burnus <burnus@net-b.de>
15243
15244 PR middle-end/57073
15245 * tree-ssa-math-opts.c (execute_cse_sincos): Move check further up.
15246
15247 2013-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15248
15249 PR target/56315
15250 * config/arm/arm.c (const_ok_for_dimode_op): Handle IOR.
15251 * config/arm/arm.md (*iordi3_insn): Change to insn_and_split.
15252 * config/arm/neon.md (iordi3_neon): Remove.
15253 (neon_vorr<mode>): Generate iordi3 instead of iordi3_neon.
15254 * config/arm/predicates.md (imm_for_neon_logic_operand):
15255 Move to earlier in the file.
15256 (neon_logic_op2): Likewise.
15257 (arm_iordi_operand_neon): New predicate.
15258
15259 2013-05-31 Richard Biener <rguenther@suse.de>
15260
15261 PR tree-optimization/57478
15262 PR tree-optimization/57453
15263 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Uses in PHI nodes
15264 are life as well.
15265
15266 2013-05-31 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
15267
15268 * config/rl78/rl78.md (mulqi3,mulhi3): New define_expands.
15269 (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): New define_insns.
15270
15271 2013-05-30 Tobias Burnus <burnus@net-b.de>
15272 Thomas Koenig <tkoenig@gcc.gnu.org>
15273
15274 PR middle-end/57073
15275 * tree-ssa-math-opts.c (execute_cse_sincos): Optimize
15276 powi (-1.0, k) to (k & 1) ? -1.0 : 1.0.
15277
15278 2013-05-30 Steven Bosscher <steven@gcc.gnu.org>
15279
15280 * rtlanal.c (tablejump_p): Expect table and label to be adjacent.
15281
15282 2013-05-30 Vladimir Makarov <vmakarov@redhat.com>
15283
15284 * target.def (register_usage_leveling_p): New hook.
15285 * targhooks.c (default_register_usage_leveling_p): New.
15286 * targhooks.h (default_register_usage_leveling_p): New prototype.
15287 * lra-assigns.c (register_usage_leveling_p): Use the hook.
15288 * doc/tm.texi.in (TARGET_REGISTER_USAGE_LEVELING_P): New hook.
15289 * doc/tm.texi: Update.
15290 * config/i386/i386.c (TARGET_REGISTER_USAGE_LEVELING_P): Define.
15291
15292 2013-05-30 Ian Bolton <ian.bolton@arm.com>
15293
15294 * config/aarch64/aarch64.md (insv<mode>): New define_expand.
15295 (*insv_reg<mode>): New define_insn.
15296
15297 2013-05-30 Joern Rennecke <joern.rennecke@embecosm.com>
15298
15299 PR rtl-optimization/57439
15300 * postreload.c (move2add_valid_value_p): Check that we have
15301 a zero subreg_regno_offset when accessing the register in
15302 the requested mode.
15303
15304 2013-05-30 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
15305 Igor Zamyatin <igor.zamyatin@intel.com>
15306
15307 Silvermont (SLM) architecture pipeline model, tuning and
15308 insn selection.
15309 * config.gcc: Add slm config options and target.
15310
15311 * config/i386/slm.md: New.
15312
15313 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
15314
15315 * config/i386/i386-c.c (ix86_target_macros_internal): New case
15316 PROCESSOR_SLM.
15317 (ix86_target_macros_internal): Likewise.
15318
15319 * config/i386/i386.c (slm_cost): New cost.
15320 (m_SLM): New macro flag.
15321 (initial_ix86_tune_features): Set m_SLM.
15322 (x86_accumulate_outgoing_args): Likewise.
15323 (x86_arch_always_fancy_math_387): Likewise.
15324 (processor_target_table): Add slm cost.
15325 (cpu_names): Add slm cpu name.
15326 (x86_option_override_internal): Set SLM ISA.
15327 (ix86_issue_rate): New case PROCESSOR_SLM.
15328 (ia32_multipass_dfa_lookahead): Likewise.
15329 (fold_builtin_cpu): Add slm.
15330
15331 * config/i386/i386.h (TARGET_SLM): New target macro.
15332 (target_cpu_default): Add TARGET_CPU_DEFAULT_slm.
15333 (processor_type): Add PROCESSOR_SLM.
15334
15335 * config/i386/i386.md (cpu): Add new value "slm".
15336 (slm.md): Include slm.md.
15337
15338 2013-05-30 Bernd Schmidt <bernds@codesourcery.com>
15339 Zhenqiang Chen <zhenqiang.chen@linaro.org>
15340
15341 * config/arm/arm-protos.h: Add and update function protos.
15342 * config/arm/arm.c (use_simple_return_p): New added.
15343 (thumb2_expand_return): Check simple_return flag.
15344 * config/arm/arm.md: Add simple_return and conditional simple_return.
15345 * config/arm/iterators.md: Add iterator for return and simple_return.
15346
15347 2013-05-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
15348
15349 * config/arm/arm.c (arm_add_cfa_adjust_cfa_note): New added.
15350 (arm_emit_multi_reg_pop): Add REG_CFA_ADJUST_CFA notes.
15351 (arm_emit_vfp_multi_reg_pop): Likewise.
15352 (thumb2_emit_ldrd_pop): Likewise.
15353 (arm_expand_epilogue): Add misc REG_CFA notes.
15354 (arm_unwind_emit): Skip REG_CFA_ADJUST_CFA and REG_CFA_RESTORE.
15355
15356 2013-05-29 Lawrence Crowl <crowl@google.com>
15357
15358 * config/arm/t-arm: Update for below.
15359
15360 * config/arm/arm.c (arm_libcall_uses_aapcs_base::libcall_htab):
15361 Change type to hash_table. Update dependent calls and types.
15362
15363 * config/i386/t-cygming: Update for below.
15364
15365 * config/i386/t-interix: Update for below.
15366
15367 * config/i386/winnt.c (i386_pe_section_type_flags::htab):
15368 Change type to hash_table. Update dependent calls and types.
15369 (i386_find_on_wrapper_list::wrappers): Likewise.
15370
15371 * config/ia64/t-ia64: Update for below.
15372
15373 * config/ia64/ia64.c (bundle_state_table):
15374 Change type to hash_table. Update dependent calls and types.
15375
15376 * config/mips/mips.c (mips_reorg_process_insns::htab):
15377 Change type to hash_table. Update dependent calls and types.
15378
15379 * config/sol2.c (solaris_comdat_htab):
15380 Change type to hash_table. Update dependent calls and types.
15381
15382 * config/t-sol2: Update for above.
15383
15384 2013-05-29 Teresa Johnson <tejohnson@google.com>
15385
15386 * passes.c (dump_passes): Use FOR_EACH_FUNCTION since
15387 functions are not yet marked as defined.
15388
15389 2013-05-29 Michael Meissner <meissner@linux.vnet.ibm.com>
15390 Pat Haugen <pthaugen@us.ibm.com>
15391 Peter Bergner <bergner@vnet.ibm.com>
15392
15393 * config/rs6000/vector.md (VEC_I): Add support for new power8 V2DI
15394 instructions.
15395 (VEC_A): Likewise.
15396 (VEC_C): Likewise.
15397 (vrotl<mode>3): Likewise.
15398 (vashl<mode>3): Likewise.
15399 (vlshr<mode>3): Likewise.
15400 (vashr<mode>3): Likewise.
15401
15402 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
15403 support for power8 V2DI builtins.
15404
15405 * config/rs6000/rs6000-builtin.def (abs_v2di): Add support for
15406 power8 V2DI builtins.
15407 (vupkhsw): Likewise.
15408 (vupklsw): Likewise.
15409 (vaddudm): Likewise.
15410 (vminsd): Likewise.
15411 (vmaxsd): Likewise.
15412 (vminud): Likewise.
15413 (vmaxud): Likewise.
15414 (vpkudum): Likewise.
15415 (vpksdss): Likewise.
15416 (vpkudus): Likewise.
15417 (vpksdus): Likewise.
15418 (vrld): Likewise.
15419 (vsld): Likewise.
15420 (vsrd): Likewise.
15421 (vsrad): Likewise.
15422 (vsubudm): Likewise.
15423 (vcmpequd): Likewise.
15424 (vcmpgtsd): Likewise.
15425 (vcmpgtud): Likewise.
15426 (vcmpequd_p): Likewise.
15427 (vcmpgtsd_p): Likewise.
15428 (vcmpgtud_p): Likewise.
15429 (vupkhsw): Likewise.
15430 (vupklsw): Likewise.
15431 (vaddudm): Likewise.
15432 (vmaxsd): Likewise.
15433 (vmaxud): Likewise.
15434 (vminsd): Likewise.
15435 (vminud): Likewise.
15436 (vpksdss): Likewise.
15437 (vpksdus): Likewise.
15438 (vpkudum): Likewise.
15439 (vpkudus): Likewise.
15440 (vrld): Likewise.
15441 (vsld): Likewise.
15442 (vsrad): Likewise.
15443 (vsrd): Likewise.
15444 (vsubudm): Likewise.
15445
15446 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
15447 support for power8 V2DI instructions.
15448
15449 * config/rs6000/altivec.md (UNSPEC_VPKUHUM): Add support for
15450 power8 V2DI instructions. Combine pack and unpack insns to use an
15451 iterator for each mode. Check whether a particular mode supports
15452 Altivec instructions instead of just checking TARGET_ALTIVEC.
15453 (UNSPEC_VPKUWUM): Likewise.
15454 (UNSPEC_VPKSHSS): Likewise.
15455 (UNSPEC_VPKSWSS): Likewise.
15456 (UNSPEC_VPKUHUS): Likewise.
15457 (UNSPEC_VPKSHUS): Likewise.
15458 (UNSPEC_VPKUWUS): Likewise.
15459 (UNSPEC_VPKSWUS): Likewise.
15460 (UNSPEC_VPACK_SIGN_SIGN_SAT): Likewise.
15461 (UNSPEC_VPACK_SIGN_UNS_SAT): Likewise.
15462 (UNSPEC_VPACK_UNS_UNS_SAT): Likewise.
15463 (UNSPEC_VPACK_UNS_UNS_MOD): Likewise.
15464 (UNSPEC_VUPKHSB): Likewise.
15465 (UNSPEC_VUNPACK_HI_SIGN): Likewise.
15466 (UNSPEC_VUNPACK_LO_SIGN): Likewise.
15467 (UNSPEC_VUPKHSH): Likewise.
15468 (UNSPEC_VUPKLSB): Likewise.
15469 (UNSPEC_VUPKLSH): Likewise.
15470 (VI2): Likewise.
15471 (VI_char): Likewise.
15472 (VI_scalar): Likewise.
15473 (VI_unit): Likewise.
15474 (VP): Likewise.
15475 (VP_small): Likewise.
15476 (VP_small_lc): Likewise.
15477 (VU_char): Likewise.
15478 (add<mode>3): Likewise.
15479 (altivec_vaddcuw): Likewise.
15480 (altivec_vaddu<VI_char>s): Likewise.
15481 (altivec_vadds<VI_char>s): Likewise.
15482 (sub<mode>3): Likewise.
15483 (altivec_vsubcuw): Likewise.
15484 (altivec_vsubu<VI_char>s): Likewise.
15485 (altivec_vsubs<VI_char>s): Likewise.
15486 (altivec_vavgs<VI_char>): Likewise.
15487 (altivec_vcmpbfp): Likewise.
15488 (altivec_eq<mode>): Likewise.
15489 (altivec_gt<mode>): Likewise.
15490 (altivec_gtu<mode>): Likewise.
15491 (umax<mode>3): Likewise.
15492 (smax<mode>3): Likewise.
15493 (umin<mode>3): Likewise.
15494 (smin<mode>3): Likewise.
15495 (altivec_vpkuhum): Likewise.
15496 (altivec_vpkuwum): Likewise.
15497 (altivec_vpkshss): Likewise.
15498 (altivec_vpkswss): Likewise.
15499 (altivec_vpkuhus): Likewise.
15500 (altivec_vpkshus): Likewise.
15501 (altivec_vpkuwus): Likewise.
15502 (altivec_vpkswus): Likewise.
15503 (altivec_vpks<VI_char>ss): Likewise.
15504 (altivec_vpks<VI_char>us): Likewise.
15505 (altivec_vpku<VI_char>us): Likewise.
15506 (altivec_vpku<VI_char>um): Likewise.
15507 (altivec_vrl<VI_char>): Likewise.
15508 (altivec_vsl<VI_char>): Likewise.
15509 (altivec_vsr<VI_char>): Likewise.
15510 (altivec_vsra<VI_char>): Likewise.
15511 (altivec_vsldoi_<mode>): Likewise.
15512 (altivec_vupkhsb): Likewise.
15513 (altivec_vupkhs<VU_char>): Likewise.
15514 (altivec_vupkls<VU_char>): Likewise.
15515 (altivec_vupkhsh): Likewise.
15516 (altivec_vupklsb): Likewise.
15517 (altivec_vupklsh): Likewise.
15518 (altivec_vcmpequ<VI_char>_p): Likewise.
15519 (altivec_vcmpgts<VI_char>_p): Likewise.
15520 (altivec_vcmpgtu<VI_char>_p): Likewise.
15521 (abs<mode>2): Likewise.
15522 (vec_unpacks_hi_v16qi): Likewise.
15523 (vec_unpacks_hi_v8hi): Likewise.
15524 (vec_unpacks_lo_v16qi): Likewise.
15525 (vec_unpacks_hi_<VP_small_lc>): Likewise.
15526 (vec_unpacks_lo_v8hi): Likewise.
15527 (vec_unpacks_lo_<VP_small_lc>): Likewise.
15528 (vec_pack_trunc_v8h): Likewise.
15529 (vec_pack_trunc_v4si): Likewise.
15530 (vec_pack_trunc_<mode>): Likewise.
15531
15532 * config/rs6000/altivec.h (vec_vaddudm): Add defines for power8
15533 V2DI builtins.
15534 (vec_vmaxsd): Likewise.
15535 (vec_vmaxud): Likewise.
15536 (vec_vminsd): Likewise.
15537 (vec_vminud): Likewise.
15538 (vec_vpksdss): Likewise.
15539 (vec_vpksdus): Likewise.
15540 (vec_vpkudum): Likewise.
15541 (vec_vpkudus): Likewise.
15542 (vec_vrld): Likewise.
15543 (vec_vsld): Likewise.
15544 (vec_vsrad): Likewise.
15545 (vec_vsrd): Likewise.
15546 (vec_vsubudm): Likewise.
15547 (vec_vupkhsw): Likewise.
15548 (vec_vupklsw): Likewise.
15549
15550 2013-05-29 Jan Hubicka <jh@suse.cz>
15551
15552 * cgraph.h (symtab_node_base): Add definition, alias and analyzed
15553 flags; reorder rest of fields in more consistent way.
15554 (varpool_node): Remove analyzed, finalized and alias.
15555 (cgraph_ndoe): Likewise.
15556 (symtab_alias_ultimate_target): New function.
15557 (cgraph_function_node): Move offline.
15558 (cgraph_reset_node): Declare.
15559 (cgraph_comdat_can_be_unshared_p): Remove.
15560 (varpool_remove_initializer): Declare.
15561 (varpool_first_defined_variable, varpool_next_defined_variable
15562 cgraph_first_defined_function, cgraph_next_defined_function): Update.
15563 (cgraph_function_with_gimple_body_p): Update.
15564 (varpool_all_refs_explicit_p): Update.
15565 (symtab_alias_target): New function.
15566 (cgraph_alias_aliased_node, varpool_alias_aliased_node): Rename to ...
15567 (cgraph_alias_target, varpool_alias_target): .. this one; simplify.
15568 (cgraph_function_or_thunk_node): Simplify using
15569 symtab_alias_ultimate_target.
15570 (varpool_variable_node): Likewise.
15571 * cgraph.c (cgraph_create_function_alias): Update.
15572 (cgraph_add_thunk): Update.
15573 (cgraph_remove_node): Update.
15574 (dump_cgraph_node): Do not dump removed flags.
15575 (cgraph_function_body_availability): Update.
15576 (cgraph_propagate_frequency): Update.
15577 (verify_cgraph_node): Check sanity of local flag.
15578 (cgraph_function_node): Move here from cgraph.h; revamp for
15579 cgraph_function_or_thunk_node.
15580 * lto-symtab.c (lto_varpool_replace_node): Update.
15581 (lto_symtab_resolve_can_prevail_p): Update.
15582 (lto_symtab_merge_cgraph_nodes): Update.
15583 * ipa-cp.c (determine_versionability, initialize_node_lattices,
15584 propagate_constants_accross_call, devirtualization_time_bonus,
15585 ipcp_propagate_stage): Update.
15586 * tree-emutls.c (create_emultls_var, ipa_lower_emutls): Update.
15587 * ipa-inline-transform.c (clone_inlined_nodes,
15588 preserve_function_body_p): Update.
15589 * ipa-reference.c (propagate): Update.
15590 (write_node_summary_p): Update.
15591 * toplev.c (wrapup_global_declaration_2): Update.
15592 * cgraphunit.c (cgraph_analyze_function): Rename to ...
15593 (analyze_function) ... this one.
15594 (cgraph_process_new_functions): Update.
15595 (cgraph_reset_node): Export.
15596 (cgraph_finalize_function): Update.
15597 (cgraph_add_new_function): Update.
15598 (process_function_and_variable_attributes): Update.
15599 (varpool_finalize_decl): Update.
15600 (symbol_finalized): Remove.
15601 (symbol_finalized_and_needed): Rename to ...
15602 (symbol_defined_and_needed): ... update.
15603 (cgraph_analyze_functions): Update.
15604 (handle_alias_pairs): Update.
15605 (mark_functions_to_output): Update.
15606 (assemble_thunk): Update.
15607 (output_in_order): Update.
15608 (output_weakrefs): Update.
15609 (finalize_compilation_unit): Update.
15610 * lto-cgraph.c (reachable_from_other_partition_p, lto_output_node,
15611 lto_output_varpool_node, compute_ltrans_boundary, input_overwrite_node,
15612 input_node, input_varpool_node): Update.
15613 * dbxout.c (dbxout_expand_expr): Update.
15614 * cgraphclones.c (cgraph_clone_node): Update.
15615 (cgraph_copy_node_for_versioning): Update.
15616 (cgraph_materialize_clone): Update.
15617 (cgraph_materialize_all_clones): Update.
15618 * ipa-pure-const.c (analyze_function, pure_const_write_summary,
15619 propagate_pure_const, propagate_nothrow): Update.
15620 * lto-streamer-out.c (lto_output, write_symbol): Update.
15621 * ipa-utils.c (ipa_reverse_postorder): Update.
15622 * ipa-inline.c (can_inline_edge_p): Update.
15623 (update_caller_keys, ipa_inline): Update.
15624 * dwarf2out.c (reference_to_unused,
15625 premark_types_used_by_global_vars_helper): Update.
15626 * tree-eh.c (tree_could_trap_p): Update.
15627 * ipa-split.c (consider_split, execute_split_functions): Update.
15628 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
15629 has_addr_references_p): Update; move ahead in file for better
15630 readability.
15631 (process_references): Simplify.
15632 (symtab_remove_unreachable_nodes): Update; cleanup way function/var
15633 bodies are removed.
15634 (cgraph_comdat_can_be_unshared_p): Make static.
15635 (cgraph_externally_visible_p): Update.
15636 (varpool_externally_visible_p): Update.
15637 (function_and_variable_visibility): Update.
15638 * trans-mem.c (get_cg_data, ipa_tm_mayenterirr_function,
15639 ipa_tm_mark_force_output_node): Update.
15640 * ipa-inline-analysis.c (dump_inline_summary, initialize_inline_failed,
15641 estimate_edge_devirt_benefit, inline_generate_summary,
15642 inline_write_summary): Update.
15643 * gimple-fold.c (can_refer_decl_in_current_unit_p): Update.
15644 * ipa-prop.c (ipa_compute_jump_functions): Update.
15645 (ipa_print_node_params, ipa_prop_read_section,
15646 ipa_update_after_lto_read, read_replacements_section): Update.
15647 * varasm.c (mark_decl_referenced): Update.
15648 (assemble_alias, dump_tm_clone_pairs): Update.
15649 * tree-inline.c (copy_bb): Update.
15650 (estimate_num_insns, optimize_inline_calls, tree_function_versioning):
15651 Update.
15652 * symtab.c (dump_symtab_base): Print new flags.
15653 (verify_symtab_base): Verify new flags.
15654 (symtab_alias_ultimate_target): New function.
15655 * tree-ssa-structalias.c (get_constraint_for_ssa_var,
15656 create_variable_info_for, associate_varinfo_to_alias, ipa_pta_execute):
15657 Update.
15658 * passes.c (ipa_write_summaries, ipa_write_optimization_summaries):
15659 Update.
15660 * i386.c (ix86_get_function_versions_dispatcher,
15661 ix86_generate_version_dispatcher_body): Update.
15662 (fold_builtin_cpu): Use varpool_add_new_variable.
15663 * varpool.c (varpool_remove_initializer): Break out from ...
15664 (varpool_remove_node): ... this one.
15665 (dump_varpool_node, varpool_node_for_asm,
15666 cgraph_variable_initializer_availability, varpool_analyze_node,
15667 varpool_assemble_decl, varpool_remove_unreferenced_decls,
15668 varpool_finalize_named_section_flags, varpool_create_variable_alias):
15669 Update.
15670
15671 2013-05-29 Jan Hubicka <jh@suse.cz>
15672
15673 * passes.c (init_optimization_passes): Move OMP expansion into lowering.
15674
15675 2013-05-29 Easwaran Raman <eraman@google.com>
15676
15677 PR tree-optimization/57442
15678 * tree-ssa-reassoc.c (appears_later_in_bb): Return correct value
15679 when control exits the main loop.
15680
15681 2013-05-29 Sandeep Kumar Singh <Sandeep.Singh2@kpitcummins.com>
15682
15683 * rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add macros for RX100, RX200,
15684 and RX600.
15685 * rx/rx.opt: Add macro for rx100 with string rx100 and value RX100.
15686 * rx/rx-opts.h (rx_cpu_types): Add new cpu type rx100.
15687 * rx/t-rx: Add rx100 under multi library matches option for nofpu
15688 option.
15689
15690 2013-05-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15691
15692 PR tree-optimization/57441
15693 * gimple-ssa-strength-reduction.c (analyze_candidates_and_replace):
15694 Don't limit size of incr_vec to number of candidates.
15695
15696 2013-05-29 Steve Ellcey <sellcey@imgtec.com>
15697
15698 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add micromips
15699 and mips16 directories.
15700 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Add micromips and mips16.
15701 (MULTILIB_DIRNAMES): Ditto.
15702 (MULTILIB_EXCEPTIONS): Add new exceptions.
15703 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Add micromips.
15704 (MULTILIB_DIRNAMES): Ditto.
15705 (MULTILIB_EXCEPTIONS): Add new exceptions.
15706
15707 2012-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
15708 Marcus Shawcroft <marcus.shawcroft@arm.com>
15709
15710 * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
15711 SYMBOL_TINY_ABSOLUTE.
15712 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Handle
15713 SYMBOL_TINY_ABSOLUTE.
15714 (aarch64_expand_mov_immediate): Likewise.
15715 (aarch64_classify_symbol): Likewise.
15716 (aarch64_mov_operand_p): Remove ATTRIBUTE_UNUSED.
15717 Permit SYMBOL_TINY_ABSOLUTE.
15718 * config/aarch64/predicates.md (aarch64_mov_operand): Permit CONST.
15719
15720 2013-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
15721 Marcus Shawcroft <marcus.shawcroft@arm.com>
15722
15723 * config/aarch64/aarch64.c (aarch64_classify_symbol): Remove comment.
15724 Refactor if/switch. Replace gcc_assert with if.
15725
15726 2013-05-29 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
15727
15728 * config/i386/i386.c (initial_ix86_tune_features): Enable
15729 FP Reassociation for AMD bdver1 and bdver2.
15730
15731 2013-05-29 Martin Jambor <mjambor@suse.cz>
15732
15733 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REF, REALPART_EXPR
15734 and IMAGPART_EXPR do not occur within other handled_components.
15735
15736 2013-05-29 Richard Biener <rguenther@suse.de>
15737
15738 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Guard vinfo
15739 access on whether the use is in the BB we currently try to
15740 vectorize.
15741 (vect_bb_vectorization_profitable_p): Pass the BB we currently
15742 vectorize to vect_bb_slp_scalar_cost.
15743
15744 2013-05-29 Richard Biener <rguenther@suse.de>
15745
15746 * tree-vect-slp.c (vect_bb_slp_scalar_cost): New function
15747 computing scalar cost offsetted by stmts that are kept live
15748 by scalar uses.
15749 (vect_bb_vectorization_profitable_p): Use vect_bb_slp_scalar_cost
15750 for computation of scalar cost.
15751
15752 2013-05-28 Steve Ellcey <sellcey@mips.com>
15753
15754 * config/mips/mips-cpus.def (mips32r2): Change processor type.
15755
15756 2013-05-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
15757
15758 * doc/extend.texi (C Extensions): Added documentation about Cilk Plus
15759 array notation built-in reduction functions.
15760 * doc/passes.texi (Passes): Added documentation about changes done
15761 for Cilk Plus.
15762 * doc/invoke.texi (C Dialect Options): Added documentation about
15763 the -fcilkplus flag.
15764 * Makefile.in (C_COMMON_OBJS): Added c-family/array-notation-common.o.
15765 (BUILTINS_DEF): Depend on cilkplus.def.
15766 * builtins.def: Include cilkplus.def. Define DEF_CILKPLUS_BUILTIN.
15767 * builtin-types.def: Define BT_FN_INT_PTR_PTR_PTR.
15768 * cilkplus.def: New file.
15769
15770 2013-05-28 Joern Rennecke <joern.rennecke@embecosm.com>
15771
15772 PR rtl-optimization/57439
15773 * postreload.c (move2add_use_add2_insn): Use gen_lowpart_common.
15774
15775 2013-05-28 Easwaran Raman <eraman@google.com>
15776
15777 PR tree-optimization/57337
15778 * tree-ssa-reassoc.c (appears_later_in_bb): New function.
15779 (find_insert_point): Correctly identify the insertion point
15780 when two statements with the same UID is compared.
15781
15782 2013-05-28 Richard Biener <rguenther@suse.de>
15783
15784 PR tree-optimization/56787
15785 * tree-vect-data-refs.c (vect_analyze_data_refs): Drop clobbers
15786 from the list of data references.
15787 * tree-vect-loop.c (vect_determine_vectorization_factor): Skip
15788 clobbers.
15789 (vect_analyze_loop_operations): Likewise.
15790 (vect_transform_loop): Remove clobbers.
15791
15792 2013-05-28 Martin Jambor <mjambor@suse.cz>
15793
15794 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REFs, IMAGPART_EXPRs
15795 and REALPART_EXPRs have scalar type.
15796
15797 2013-05-28 Richard Biener <rguenther@suse.de>
15798
15799 PR tree-optimization/57411
15800 * tree-ssa-copy.c (may_propagate_copy): Cannot propagate
15801 virtual operands.
15802 * tree-ssa-dom.c (eliminate_const_or_copy): Special-case
15803 virtual operand propagation.
15804
15805 2013-05-28 Eric Botcazou <ebotcazou@adacore.com>
15806
15807 * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): Use %g0 as
15808 destination register for bmasksi_vis.
15809 (vector_init_bshuffle): Likewise.
15810 * config/sparc/sparc.md (vec_perm_constv8qi): Likewise.
15811
15812 2013-05-28 Eric Botcazou <ebotcazou@adacore.com>
15813
15814 * doc/invoke.texi (SPARC Options): Document -mfix-ut699.
15815 * builtins.c (expand_builtin_mathfn) <BUILT_IN_SQRT>: Try to widen the
15816 mode if the instruction isn't available in the original mode.
15817 * config/sparc/sparc.opt (mfix-ut699): New option.
15818 * config/sparc/sparc.md (muldf3_extend): Disable if -mfix-ut699.
15819 (divdf3): Turn into expander.
15820 (divdf3_nofix): New insn.
15821 (divdf3_fix): Likewise.
15822 (divsf3): Disable if -mfix-ut699.
15823 (sqrtdf2): Turn into expander.
15824 (sqrtdf2_nofix): New insn.
15825 (sqrtdf2_fix): Likewise.
15826 (sqrtsf2): Disable if -mfix-ut699.
15827
15828 2013-05-27 Richard Biener <rguenther@suse.de>
15829
15830 PR middle-end/57412
15831 * omp-low.c (expand_omp_atomic_pipeline): Use the correct latch
15832 block for the new loop.
15833
15834 2013-05-27 Richard Biener <rguenther@suse.de>
15835
15836 PR tree-optimization/57343
15837 * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Do not
15838 use multiple_of_p if not TYPE_OVERFLOW_UNDEFINED.
15839 (number_of_iterations_cond): Do not build the folded tree.
15840
15841 2013-05-27 Richard Biener <rguenther@suse.de>
15842
15843 Revert
15844 PR middle-end/57381
15845 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
15846 OEP_CONSTANT_ADDRESS_OF retained.
15847
15848 PR tree-optimization/57417
15849 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Fix test
15850 for unchanged base.
15851 (set_ssa_val_to): Compare addresses using
15852 get_addr_base_and_unit_offset.
15853
15854 2013-05-27 Joern Rennecke <joern.rennecke@embecosm.com>
15855
15856 PR rtl-optimization/56833
15857 * postreload.c (move2add_record_mode): New function.
15858 (move2add_record_sym_value, move2add_valid_value_p): Likewise.
15859 (move2add_use_add2_insn): Use move2add_record_sym_value.
15860 (move2add_use_add3_insn): Likewise.
15861 (reload_cse_move2add): Use move2add_valid_value_p and
15862 move2add_record_mode. Invalidate call-clobbered and REG_INC
15863 affected regs by setting reg_mode to VOIDmode.
15864 (move2add_note_store): Don't pretend the inside of a SUBREG is
15865 the actual destination. Invalidate single/leading registers by
15866 setting reg_mode to VOIDmode.
15867 Use move2add_record_sym_value, move2add_valid_value_p and
15868 move2add_record_mode.
15869
15870 2013-05-27 Richard Biener <rguenther@suse.de>
15871
15872 PR tree-optimization/57396
15873 * tree-affine.c (double_int_constant_multiple_p): Properly
15874 return false for val == 0 and div != 0.
15875
15876 2013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
15877
15878 * config/mips/mips.h: Use #elif in preprocessor conditions.
15879
15880 2013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
15881
15882 PR target/53916
15883 * config/mips/constraints.md (kl): New constraint.
15884 * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Delete.
15885 (divmod<mode>4_internal): Rename to divmod<mode>4. Use "kl" as the
15886 constraint for operand 0. Split after CSE for MIPS16. Emit a move
15887 from LO for MIPS16.
15888 (udivmod<mode>4_internal): Likewise udivmod<mode>4.
15889
15890 2013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
15891
15892 PR target/55777
15893 * config/mips/mips.c (mips_can_inline_p): New function.
15894 (TARGET_CAN_INLINE_P): Define.
15895
15896 2013-05-25 Steven Bosscher <steven@gcc.gnu.org>
15897
15898 * sched-int.h (ds_t, dw_t): Make unsigned int.
15899 Fix documentation that describes how all the ds_t bits are used.
15900 Reserve the last bit for delayed-branch scheduling.
15901 (BITS_PER_DEP_STATUS): Move to ds_t typedef.
15902 (BITS_PER_DEP_WEAK): Fix definition and documentation.
15903 (gen_dep_weak_1): Remove prototype.
15904 * sched-deps.c (get_dep_weak_1): Make static.
15905 * target.def (speculate_insn, needs_block_p, gen_spec_check,
15906 get_insn_spec_ds, get_insn_checked_ds): Adjust hook prototypes.
15907 * doc/tm.texi: Regenerate.
15908 * config/ia64/ia64.c (ia64_needs_block_p): Update prototype.
15909
15910 2013-05-24 Steven Bosscher <steven@gcc.gnu.org>
15911
15912 PR debug/56950
15913 * haifa-sched.c (sched_extend_bb): Ignore DEBUG_INSNs.
15914
15915 2013-05-24 Nathan Sidwell <nathan@codesourcery.com>
15916 Sandra Loosemore <sandra@codesourcery.com>
15917
15918 * config.gcc (powerpc-*): Allow native for with-cpu.
15919
15920 2013-05-24 Jeff Law <law@redhat.com>
15921
15922 PR tree-optimization/57124
15923 * tree-vrp.c (simplify_cond_using_ranges): Only simplify a
15924 conversion feeding a condition if the range has an overflow
15925 if -fstrict-overflow. Add warnings for when we do make the
15926 transformation.
15927
15928 2013-05-24 Dehao Chen <dehao@google.com>
15929
15930 * tree-cfg.c (locus_discrim_map): Fix the typo.
15931 (locus_discrim_hasher): Likewise.
15932 (locus_discrim_hasher::hash): Likewise.
15933 (locus_discrim_hasher::equal): Likewise.
15934
15935 2013-05-24 Martin Jambor <mjambor@suse.cz>
15936
15937 PR tree-optimization/57294
15938 * cgraph.h (ipa_record_stmt_references): Declare.
15939 * cgraphbuild.c (ipa_record_stmt_references): New function.
15940 (build_cgraph_edges): Use ipa_record_stmt_references.
15941 (rebuild_cgraph_edges): Likewise.
15942 (cgraph_rebuild_references): Likewise.
15943 * ipa-prop.c (ipa_modify_call_arguments): Discard references
15944 associated with the old statement and build references from the
15945 newly built statements.
15946 * ipa-ref.c (ipa_remove_stmt_references): New function.
15947 * ipa-ref.h (ipa_remove_stmt_references): Declare.
15948
15949 2013-05-24 Vladimir Makarov <vmakarov@redhat.com>
15950
15951 * lra-constraints.c (emit_spill_move): Use smaller mode for
15952 mem-mem moves.
15953 (check_and_process_move): Consider mem-reg moves for secondary
15954 too.
15955 (curr_insn_transform): Don't lose insns emitted before for
15956 secondary memory moves.
15957 (inherit_in_ebb): Mark defined reg. Add usage only if it is not a
15958 reg set up in the current insn.
15959
15960 2013-05-24 Dehao Chen <dehao@google.com>
15961
15962 * tree-cfg.c (locus_descrim_hasher::hash): Change discriminator
15963 hash function.
15964 (locus_descrim_hasher::equal): Likewise.
15965 (build_gimple_cfg): New discriminator assignment algorithm.
15966 (make_edges): Likewise.
15967 (next_discriminator_for_locus): Likewise.
15968 (same_line_p): Likewise.
15969 (assign_discriminators): Likewise.
15970 (make_cond_expr_edges): Likewise.
15971 (make_gimple_switch_edges): Likewise.
15972 (make_goto_expr_edges): Likewise.
15973 (make_gimple_asm_edges): Likewise.
15974
15975 2013-05-24 Ian Bolton <ian.bolton@arm.com>
15976
15977 * config/aarch64/aarch64.c (aarch64_print_operand): Change the
15978 X format specifier to only display bottom 16 bits.
15979 * config/aarch64/aarch64.md (insv_imm<mode>): Allow any size of
15980 immediate to match for operand 2, since it will be masked.
15981
15982 2013-05-24 Richard Biener <rguenther@suse.de>
15983
15984 PR tree-optimization/57287
15985 * tree-ssa-uninit.c (compute_uninit_opnds_pos): Disregard
15986 all SSA names that occur in abnormal PHIs.
15987
15988 2013-05-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
15989
15990 PR tree-ssa/57385
15991 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Check
15992 that index is not negative.
15993
15994 2013-05-24 Eric Botcazou <ebotcazou@adacore.com>
15995
15996 PR rtl-optimization/55177
15997 * simplify-rtx.c (simplify_unary_operation_1) <NOT>: Deal with BSWAP.
15998 (simplify_byte_swapping_operation): New.
15999 (simplify_binary_operation_1): Call it for AND, IOR and XOR.
16000 (simplify_relational_operation_1): Deal with BSWAP.
16001
16002 2013-05-23 Richard Henderson <rth@redhat.com>
16003
16004 PR target/56742
16005 * config/i386/i386.c (ix86_seh_fixup_eh_fallthru): New.
16006 (ix86_reorg): Call it.
16007
16008 2013-05-23 Uros Bizjak <ubizjak@gmail.com>
16009
16010 PR target/57379
16011 * config/alpha/alpha.md (unspec): Add UNSPEC_XFLT_COMPARE.
16012 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Construct
16013 REG_EQUAL note as UNSPEC_XFLT_COMPARE unspec.
16014
16015 2013-05-23 Christian Bruel <christian.bruel@st.com>
16016
16017 PR debug/57351
16018 * config/arm/arm.c (arm_dwarf_register_span): Do not use dbx number.
16019
16020 2013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
16021 Marcus Shawcroft <marcus.shawcroft@arm.com>
16022
16023 * config/aarch64/aarch64.md (*movdi_aarch64): Replace Usa with S.
16024 * config/aarch64/constraints.md (Usa): Remove.
16025 * doc/md.texi (AArch64 Usa): Remove.
16026
16027 2013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
16028 Marcus Shawcroft <marcus.shawcroft@arm.com>
16029
16030 * config/aarch64/aarch64-protos.h (aarch64_mov_operand_p): Define.
16031 * config/aarch64/aarch64.c (aarch64_mov_operand_p): Define.
16032 * config/aarch64/predicates.md (aarch64_const_address): Remove.
16033 (aarch64_mov_operand): Use aarch64_mov_operand_p.
16034
16035 2013-05-23 Vidya Praveen <vidyapraveen@arm.com>
16036
16037 * config/aarch64/aarch64-simd.md (clzv4si2): Support for CLZ
16038 instruction (AdvSIMD).
16039 * config/aarch64/aarch64-builtins.c
16040 (aarch64_builtin_vectorized_function): Handler for BUILT_IN_CLZ.
16041 * config/aarch64/aarch-simd-builtins.def: Entry for CLZ.
16042
16043 2013-05-23 Martin Jambor <mjambor@suse.cz>
16044
16045 PR middle-end/57347
16046 * tree.h (contains_bitfld_component_ref_p): Declare.
16047 * tree-sra.c (contains_bitfld_comp_ref_p): Move...
16048 * tree.c (contains_bitfld_component_ref_p): ...here. Adjust its
16049 caller.
16050 * ipa-prop.c (determine_known_aggregate_parts): Check that LHS does
16051 not access a bit-field. Assert all final offsets are byte-aligned.
16052
16053 2013-05-23 Richard Biener <rguenther@suse.de>
16054
16055 PR tree-optimization/57380
16056 * tree-ssa-phiprop.c (propagate_with_phi): Do not require at
16057 least one invariant or re-used load.
16058 * passes.c (init_optimization_passes): Move pass_phiprop before
16059 pass_forwprop.
16060
16061 2013-05-23 James Greenhalgh <james.greenhalgh@arm.com>
16062
16063 * config/aarch64/aarch64-simd.md
16064 (aarch64_cm<optab>di): Add clobber of CC_REGNUM to unsplit pattern.
16065
16066 2013-05-23 Richard Biener <rguenther@suse.de>
16067
16068 PR middle-end/57381
16069 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
16070 OEP_CONSTANT_ADDRESS_OF retained.
16071
16072 2013-05-23 Jakub Jelinek <jakub@redhat.com>
16073
16074 PR middle-end/57344
16075 * expmed.c (store_split_bit_field): If op0 is a REG or SUBREG of a REG,
16076 don't lower unit. Handle unit not being always BITS_PER_WORD.
16077
16078 2013-05-23 Richard Biener <rguenther@suse.de>
16079
16080 PR rtl-optimization/57341
16081 * ira.c (validate_equiv_mem_from_store): Use anti_dependence
16082 instead of true_dependence.
16083
16084 2013-05-22 David Malcolm <dmalcolm@redhat.com>
16085
16086 * bb-reorder.c (branch_threshold): Make const.
16087 (exec_threshold): Ditto.
16088
16089 2013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
16090 Pat Haugen <pthaugen@us.ibm.com>
16091 Peter Bergner <bergner@vnet.ibm.com>
16092
16093 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Add
16094 documentation for the power8 crypto builtins.
16095
16096 * config/rs6000/t-rs6000 (MD_INCLUDES): Add crypto.md.
16097
16098 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_1): Add support
16099 macros for defining power8 builtin functions.
16100 (BU_P8V_AV_2): Likewise.
16101 (BU_P8V_AV_P): Likewise.
16102 (BU_P8V_VSX_1): Likewise.
16103 (BU_P8V_OVERLOAD_1): Likewise.
16104 (BU_P8V_OVERLOAD_2): Likewise.
16105 (BU_CRYPTO_1): Likewise.
16106 (BU_CRYPTO_2): Likewise.
16107 (BU_CRYPTO_3): Likewise.
16108 (BU_CRYPTO_OVERLOAD_1): Likewise.
16109 (BU_CRYPTO_OVERLOAD_2): Likewise.
16110 (XSCVSPDP): Fix typo, point to the correct instruction.
16111 (VCIPHER): Add power8 crypto builtins.
16112 (VCIPHERLAST): Likewise.
16113 (VNCIPHER): Likewise.
16114 (VNCIPHERLAST): Likewise.
16115 (VPMSUMB): Likewise.
16116 (VPMSUMH): Likewise.
16117 (VPMSUMW): Likewise.
16118 (VPERMXOR_V2DI): Likewise.
16119 (VPERMXOR_V4SI: Likewise.
16120 (VPERMXOR_V8HI: Likewise.
16121 (VPERMXOR_V16QI: Likewise.
16122 (VSHASIGMAW): Likewise.
16123 (VSHASIGMAD): Likewise.
16124 (VPMSUM): Likewise.
16125 (VPERMXOR): Likewise.
16126 (VSHASIGMA): Likewise.
16127
16128 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
16129 __CRYPTO__ if the crypto instructions are available.
16130 (altivec_overloaded_builtins): Add support for overloaded power8
16131 builtins.
16132
16133 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
16134 support for power8 crypto builtins.
16135 (builtin_function_type): Likewise.
16136 (altivec_init_builtins): Add support for builtins that take vector
16137 long long (V2DI) arguments.
16138
16139 * config/rs6000/crypto.md: New file, define power8 crypto
16140 instructions.
16141
16142 2013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
16143 Pat Haugen <pthaugen@us.ibm.com>
16144 Peter Bergner <bergner@vnet.ibm.com>
16145
16146 * doc/invoke.texi (Option Summary): Add power8 options.
16147 (RS/6000 and PowerPC Options): Likewise.
16148
16149 * doc/md.texi (PowerPC and IBM RS6000 constraints): Update to use
16150 constraints.md instead of rs6000.h. Reorder w* constraints. Add
16151 wm, wn, wr documentation.
16152
16153 * config/rs6000/constraints.md (wm): New constraint for VSX
16154 registers if direct move instructions are enabled.
16155 (wn): New constraint for no registers.
16156 (wq): New constraint for quad word even GPR registers.
16157 (wr): New constraint if 64-bit instructions are enabled.
16158 (wv): New constraint if power8 vector instructions are enabled.
16159 (wQ): New constraint for quad word memory locations.
16160
16161 * config/rs6000/predicates.md (const_0_to_15_operand): New
16162 constraint for 0..15 for crypto instructions.
16163 (gpc_reg_operand): If VSX allow registers in VSX registers as well
16164 as GPR and floating point registers.
16165 (int_reg_operand): New predicate to match only GPR registers.
16166 (base_reg_operand): New predicate to match base registers.
16167 (quad_int_reg_operand): New predicate to match even GPR registers
16168 for quad memory operations.
16169 (vsx_reg_or_cint_operand): New predicate to allow vector logical
16170 operations in both GPR and VSX registers.
16171 (quad_memory_operand): New predicate for quad memory operations.
16172 (reg_or_indexed_operand): New predicate for direct move support.
16173
16174 * config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED):
16175 Inherit from ISA_2_4_MASKS, not ISA_2_2_MASKS.
16176 (ISA_2_7_MASKS_SERVER): New mask for ISA 2.07 (i.e. power8).
16177 (POWERPC_MASKS): Add power8 options.
16178 (power8 cpu): Use ISA_2_7_MASKS_SERVER instead of specifying the
16179 various options.
16180
16181 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
16182 Define _ARCH_PWR8 and __POWER8_VECTOR__ for power8.
16183
16184 * config/rs6000/rs6000.opt (-mvsx-timode): Add documentation.
16185 (-mpower8-fusion): New power8 options.
16186 (-mpower8-fusion-sign): Likewise.
16187 (-mpower8-vector): Likewise.
16188 (-mcrypto): Likewise.
16189 (-mdirect-move): Likewise.
16190 (-mquad-memory): Likewise.
16191
16192 * config/rs6000/rs6000.c (power8_cost): Initial definition for power8.
16193 (rs6000_hard_regno_mode_ok): Make PTImode only match even GPR
16194 registers.
16195 (rs6000_debug_reg_print): Print the base register class if -mdebug=reg.
16196 (rs6000_debug_vector_unit): Add p8_vector.
16197 (rs6000_debug_reg_global): If -mdebug=reg, print power8 constraint
16198 definitions. Also print fusion state.
16199 (rs6000_init_hard_regno_mode_ok): Set up power8 constraints.
16200 (rs6000_builtin_mask_calculate): Add power8 builtin support.
16201 (rs6000_option_override_internal): Add support for power8.
16202 (rs6000_common_init_builtins): Add debugging for skipped builtins
16203 if -mdebug=builtin.
16204 (rs6000_adjust_cost): Add power8 support.
16205 (rs6000_issue_rate): Likewise.
16206 (insn_must_be_first_in_group): Likewise.
16207 (insn_must_be_last_in_group): Likewise.
16208 (force_new_group): Likewise.
16209 (rs6000_register_move_cost): Likewise.
16210 (rs6000_opt_masks): Likewise.
16211
16212 * config/rs6000/rs6000.h (ASM_CPU_POWER8_SPEC): If we don't have a
16213 power8 capable assembler, default to power7 options.
16214 (TARGET_DIRECT_MOVE): Likewise.
16215 (TARGET_CRYPTO): Likewise.
16216 (TARGET_P8_VECTOR): Likewise.
16217 (VECTOR_UNIT_P8_VECTOR_P): Define power8 vector support.
16218 (VECTOR_UNIT_VSX_OR_P8_VECTOR_P): Likewise.
16219 (VECTOR_MEM_P8_VECTOR_P): Likewise.
16220 (VECTOR_MEM_VSX_OR_P8_VECTOR_P): Likewise.
16221 (VECTOR_MEM_ALTIVEC_OR_VSX_P): Likewise.
16222 (TARGET_XSCVDPSPN): Likewise.
16223 (TARGET_XSCVSPDPN): Likewsie.
16224 (TARGET_SYNC_HI_QI): Likewise.
16225 (TARGET_SYNC_TI): Likewise.
16226 (MASK_CRYPTO): Likewise.
16227 (MASK_DIRECT_MOVE): Likewise.
16228 (MASK_P8_FUSION): Likewise.
16229 (MASK_P8_VECTOR): Likewise.
16230 (REG_ALLOC_ORDER): Move fr13 to be lower in priority so that the TFmode
16231 temporary used by some of the direct move instructions to get two FP
16232 temporary registers does not force creation of a stack frame.
16233 (VLOGICAL_REGNO_P): Allow vector logical operations in GPRs.
16234 (MODES_TIEABLE_P): Move the VSX tests above the Altivec tests so
16235 that any VSX registers are tieable, even if they are also an
16236 Altivec vector mode.
16237 (r6000_reg_class_enum): Add wm, wr, wv constraints.
16238 (RS6000_BTM_P8_VECTOR): Power8 builtin support.
16239 (RS6000_BTM_CRYPTO): Likewise.
16240 (RS6000_BTM_COMMON): Likewise.
16241
16242 * config/rs6000/rs6000.md (cpu attribute): Add power8.
16243 * config/rs6000/rs6000-opts.h (PROCESSOR_POWER8): Likewise.
16244 (enum rs6000_vector): Add power8 vector support.
16245
16246 2013-05-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16247
16248 PR target/19599
16249 PR target/57340
16250 * config/arm/arm.c (any_sibcall_uses_r3): Rename to ..
16251 (any_sibcall_could_use_r3): this and handle indirect calls.
16252 (arm_get_frame_offsets): Rename use of any_sibcall_uses_r3.
16253
16254 2013-05-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16255
16256 * config/rs6000/rs6000.h (MALLOC_ABI_ALIGNMENT): New #define.
16257
16258 2013-05-22 Richard Biener <rguenther@suse.de>
16259
16260 PR middle-end/57349
16261 * profile.c (branch_prob): Do not split blocks that are
16262 abnormally receiving from ECF_RETURNS_TWICE functions.
16263
16264 2013-05-22 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
16265
16266 * recog.c (offsettable_address_addr_space_p): Fix calculation of
16267 address mode. Move pointer mode initialization to the same place.
16268
16269 2013-05-22 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
16270
16271 * read-rtl.c (copy_rtx_for_iterators): Continue applying iterators
16272 while it has any effect.
16273
16274 2013-05-21 Easwaran Raman <eraman@google.com>
16275
16276 PR tree-optimization/57322
16277 * tree-ssa-reassoc.c (build_and_add_sum): If a BB is empty, set the
16278 UID of the statement added to the BB to be 1.
16279
16280 2013-05-21 Jakub Jelinek <jakub@redhat.com>
16281
16282 PR tree-optimization/57331
16283 * tree-vrp.c (simplify_cond_using_ranges): Don't optimize comparison
16284 of conversion from pointer type to integral type with integer.
16285
16286 2013-05-21 Martin Jambor <mjambor@suse.cz>
16287
16288 PR lto/57289
16289 * ipa-prop.c (ipa_read_node_info): Process param_used and
16290 controlled_uses in the same order as when writing.
16291
16292 2013-05-21 Magnus Granberg <baldrick@free.fr>
16293
16294 PR plugins/56754
16295 * Makefile.in (PLUGIN_HEADERS): Add $(TARGET_H).
16296
16297 2013-05-21 Richard Biener <rguenther@suse.de>
16298
16299 PR tree-optimization/57318
16300 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Do not
16301 estimate stmts with side-effects as likely eliminated.
16302
16303 2013-05-21 Richard Biener <rguenther@suse.de>
16304
16305 PR tree-optimization/57330
16306 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Properly
16307 preserve the call stmts fntype.
16308
16309 2013-05-21 Richard Biener <rguenther@suse.de>
16310
16311 PR tree-optimization/57303
16312 * tree-ssa-sink.c (statement_sink_location): Improve killing
16313 stmt detection and properly handle self-assignments.
16314
16315 2013-05-21 Christian Bruel <christian.bruel@st.com>
16316
16317 * dwarf2out.c (multiple_reg_loc_descriptor): Use dbx_reg_number for
16318 spanning registers. LEAF_REG_REMAP is supported only for contiguous
16319 registers. Set register size out of the PARALLEL loop.
16320
16321 2013-05-20 Oleg Endo <olegendo@gcc.gnu.org>
16322
16323 PR target/56547
16324 * config/sh/sh.md (fmasf4): Remove empty constraints strings.
16325 (*fmasf4, *fmasf4_media): New insns.
16326
16327 2013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
16328
16329 * config/mips/mips.h (BASE_INSN_LENGTH, NOP_INSN_LENGTH): New macros.
16330 * config/mips/mips.c (mips_symbol_insns, mips_address_insns)
16331 (mips_const_insns, mips_split_const_insns, mips_load_store_insns)
16332 (mips_idiv_insns): Update the comments to say that the returned
16333 instruction counts are in units of BASE_INSN_LENGTH.
16334 (mips_adjust_insn_length): Multiply the mips_load_label_num_insns
16335 by BASE_INSN_LENGTH rather than 4. Add the jump separately,
16336 using 2 rather than 4 as the length of indirect MIPS16 and
16337 microMIPS jumps. Use NOP_INSN_LENGTH rather than 4 as the
16338 length of a NOP. Don't divide MIPS16 lengths by 2.
16339 (mips16_split_long_branches): Assume a branch is long if the
16340 length is greater than 4 rather than 8.
16341 * config/mips/mips.md (length): Give MIPS16 lengths directly,
16342 rather than multiplying them by 2. Multiply instruction counts
16343 by BASE_INSN_LENGTH rather than 4.
16344 (*jump_mips16, tls_get_tp_mips16_<mode>)
16345 (*tls_get_tp_mips16_call_<mode>): Divide lengths by 2.
16346
16347 2013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
16348
16349 * config/mips/mips.md (extended_mips16): Remove branch case.
16350 (length): Remove duplicated extended_mips16 test.
16351
16352 2013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
16353
16354 * config/mips/t-sde: Don't build 64-bit microMIPS multilibs.
16355
16356 2013-05-18 Richard Sandiford <rdsandiford@googlemail.com>
16357
16358 * recog.h (Recog_data): Rename to...
16359 (recog_data_d): ...this.
16360 (recog_data): Update accordingly.
16361 * recog.c (recog_data): Likewise.
16362 * reload.c (save_recog_data): Likewise.
16363 * config/picochip/picochip.c (picochip_saved_recog_data): Likewise.
16364 (picochip_save_recog_data, picochip_restore_recog_data): Likewise.
16365
16366 2013-05-17 Julian Brown <julian@codesourcery.com>
16367
16368 * gcse.c (compute_ld_motion_mems): If a non-simple MEM is
16369 found in a REG_EQUAL note, invalidate it.
16370
16371 2013-05-17 Easwaran Raman <eraman@google.com>
16372
16373 * tree-ssa-reassoc.c (find_insert_point): New function.
16374 (insert_stmt_after): Likewise.
16375 (get_def_stmt): Likewise.
16376 (ensure_ops_are_available): Likewise.
16377 (not_dominated_by): Likewise.
16378 (rewrite_expr_tree): Do not move statements beyond what is
16379 necessary. Remove call to swap_ops_for_binary_stmt...
16380 (reassociate_bb): ... and move it here.
16381 (build_and_add_sum): Assign UIDs for new statements.
16382 (linearize_expr): Likewise.
16383 (do_reassoc): Renumber gimple statement UIDs.
16384
16385 2013-05-17 Jan Hubicka <jh@suse.cz>
16386
16387 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Resolve cross module
16388 weakrefs.
16389 * cgraph.c (dump_cgraph_node): Do not ice on unresolved alias.
16390 * cgraphunit.c (handle_alias_pairs): Store target of unresolved
16391 weakrefs.
16392 (output_weakrefs): Update.
16393
16394 2013-05-17 Po-Chun Chang <pchang9@cs.wisc.edu>
16395 Martin Jambor <mjambor@suse.cz>
16396
16397 PR middle-end/57276
16398 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Break when a
16399 value that corresponds to the given aggval is found in values vector.
16400
16401 2013-05-17 Uros Bizjak <ubizjak@gmail.com>
16402
16403 * config/i386/driver-i386.c (host_detect_local_cpu): Pass mmx, 3dnow,
16404 sse, sse2, sse3, ssse3 and sse4a flags to options.
16405
16406 2013-05-17 David Malcolm <dmalcolm@redhat.com>
16407
16408 * gengtype-state.c: (s_expr_writer): New class, to handle
16409 prettifying of output layout of s-expressions.
16410 (state_writer): New class, to write out gtype.state.
16411 (state_written_type_count): Move this variable into member data of
16412 state_writer.
16413 (s_expr_writer::s_expr_writer): New code: constructor for new class
16414 (state_writer::state_writer(): ditto
16415 (s_expr_writer::write_new_line): New function
16416 (s_expr_writer::write_any_indent): ditto
16417 (s_expr_writer::begin_s_expr): ditto
16418 (s_expr_writer::end_s_expr): ditto
16419 (write_state_fileloc): convert to method of state_writer...
16420 (state_writer:: write_state_fileloc): ...and use methods of
16421 s_expr_writer to write indentation into the gtype.state output file
16422 to visually represent the hierarchical structure of the list
16423 structures
16424 (write_state_fields): ditto, renaming to...
16425 (state_writer::write_state_fields)
16426 (write_state_a_string): ditto, renaming to...
16427 (state_writer::write_state_a_string)
16428 (write_state_string_option): ditto, renaming to...
16429 (state_writer::write_state_string_option)
16430 (write_state_type_option): ditto, renaming to...
16431 (state_writer::write_state_type_option)
16432 (write_state_nested_option): ditto, renaming to...
16433 (state_writer::write_state_nested_option)
16434 (write_state_option): ditto, renaming to...
16435 (state_writer::write_state_option)
16436 (write_state_options): ditto, renaming to...
16437 (state_writer::write_state_options)
16438 (write_state_lang_bitmap): ditto, renaming to...
16439 (state_writer::write_state_lang_bitmap)
16440 (write_state_version): ditto, renaming to...
16441 (state_writer::write_state_version)
16442 (write_state_scalar_type): ditto, renaming to...
16443 (state_writer::write_state_scalar_type)
16444 (write_state_string_type): ditto, renaming to...
16445 (state_writer::write_state_string_type)
16446 (write_state_undefined_type): ditto, renaming to...
16447 (state_writer::write_state_undefined_type)
16448 (write_state_struct_union_type): ditto, renaming to...
16449 (state_writer::write_state_struct_union_type)
16450 (write_state_struct_type): ditto, renaming to...
16451 (state_writer::write_state_struct_type)
16452 (write_state_user_struct_type): ditto, renaming to...
16453 (state_writer::write_state_user_struct_type)
16454 (write_state_lang_struct_type): ditto, renaming to...
16455 (state_writer::write_state_lang_struct_type)
16456 (write_state_param_struct_type): ditto, renaming to...
16457 (state_writer::write_state_param_struct_type)
16458 (write_state_pointer_type): ditto, renaming to...
16459 (state_writer::write_state_pointer_type)
16460 (write_state_array_type): ditto, renaming to...
16461 (state_writer::write_state_array_type)
16462 (write_state_gc_used): ditto, renaming to...
16463 (state_writer::write_state_gc_used)
16464 (write_state_common_type_content): ditto, renaming to...
16465 (state_writer::write_state_common_type_content)
16466 (write_state_type): ditto, renaming to...
16467 (state_writer::write_state_type)
16468 (write_state_pair_list): ditto, renaming to...
16469 (state_writer::write_state_pair_list)
16470 (write_state_pair): ditto, renaming to...
16471 (state_writer::write_state_pair)
16472 (write_state_typedefs): ditto, renaming to...
16473 (state_writer::write_state_typedefs)
16474 (write_state_structures): ditto, renaming to...
16475 (state_writer::write_state_structures)
16476 (write_state_param_structs): ditto, renaming to...
16477 (state_writer::write_state_param_structs)
16478 (write_state_variables): ditto, renaming to...
16479 (state_writer::write_state_variables)
16480 (write_state_srcdir): ditto, renaming to...
16481 (state_writer::write_state_srcdir)
16482 (write_state_files_list): ditto, renaming to...
16483 (state_writer::write_state_files_list)
16484 (write_state_languages): ditto, renaming to...
16485 (state_writer::write_state_languages)
16486 (write_state): create a state_writer instance and use it when
16487 writing out the state file
16488
16489 2013-05-17 Mike Stump <mikestump@comcast.net>
16490
16491 PR rtl-optimization/57304
16492 * web.c (union_match_dups): Ensure that DF_REF_LOC exists before
16493 accessing DF_REF_REAL_LOC.
16494
16495 2013-05-17 Jakub Jelinek <jakub@redhat.com>
16496
16497 PR rtl-optimization/57281
16498 PR rtl-optimization/57300
16499 * config/i386/i386.md (extendsidi2_1 dead reg splitter): Remove.
16500 (extendsidi2_1 peephole2s): Add instead 2 new peephole2s, that undo
16501 what the other splitter did if the registers are dead.
16502
16503 2013-05-17 Richard Biener <rguenther@suse.de>
16504
16505 * tree-ssa-alias.c (stmt_kills_ref_p_1): Properly compare
16506 MEM_REF offsets.
16507
16508 2013-05-17 Jakub Jelinek <jakub@redhat.com>
16509
16510 * gcc.c (SANITIZER_SPEC): Reject -fsanitize=address -fsanitize=thread
16511 linking.
16512
16513 2013-05-17 Marek Polacek <polacek@redhat.com>
16514
16515 * tree-ssa-strlen.c (handle_char_store): Don't invalidate cached
16516 length when doing non-zero store of storing '\0' to '\0'.
16517
16518 2013-05-17 Jakub Jelinek <jakub@redhat.com>
16519
16520 * tree-vect-patterns.c (vect_recog_rotate_pattern): For
16521 vect_external_def oprnd1 with loop_vinfo, try to emit
16522 optional cast, negation and and stmts on the loop preheader
16523 edge instead of into the pattern def seq.
16524
16525 PR tree-optimization/57051
16526 * fold-const.c (const_binop) <case VEC_LSHIFT_EXPR,
16527 case VEC_RSHIFT_EXPR>: Fix BYTES_BIG_ENDIAN handling.
16528
16529 2013-05-16 Nick Clifton <nickc@redhat.com>
16530
16531 * config/rl78/rl78.c (rl78_attribute_table): Add naked.
16532 (rl78_is_naked_func): New function.
16533 (rl78_expand_prologue): Skip prologue generation for naked functions.
16534 (rl78_expand_epilogue): Skip epilogue generation for naked functions.
16535 * doc/extend.texi (naked): Add RL78 to the list of processors
16536 that supports this attribute.
16537
16538 2013-05-16 Jeff Law <law@redhat.com>
16539
16540 * Makefile.in (tree-switch-conversion.o): Depend on $(OPTABS_H).
16541
16542 2013-05-16 Uros Bizjak <ubizjak@gmail.com>
16543
16544 * config/i386/driver-i386.c (host_detect_local_cpu): Determine
16545 cache parameters using detect_caches_amd also for CYRIX,
16546 NSC and TM2 signatures.
16547
16548 2013-05-16 Uros Bizjak <ubizjak@gmail.com>
16549 Dzianis Kahanovich <mahatma@eu.by>
16550
16551 PR target/45359
16552 PR target/46396
16553 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
16554 VIA/Centaur processors and determine their cache parameters
16555 using detect_caches_amd.
16556
16557 2013-05-16 Teresa Johnson <tejohnson@google.com>
16558
16559 * cfgrtl.c (verify_hot_cold_block_grouping): Return err.
16560 (rtl_verify_edges): New function.
16561 (rtl_verify_bb_insns): Ditto.
16562 (rtl_verify_bb_pointers): Ditto.
16563 (rtl_verify_bb_insn_chain): Ditto.
16564 (rtl_verify_fallthru): Ditto.
16565 (rtl_verify_bb_layout): Ditto.
16566 (rtl_verify_flow_info_1): Outline checks into new functions.
16567 (rtl_verify_flow_info): Ditto.
16568
16569 2013-05-16 Steve Ellcey <sellcey@imgtec.com>
16570
16571 * cfghooks.c (copy_bbs): Add update_dominance argument.
16572 * cfghooks.h (copy_bbs): Update prototype.
16573 * tree-cfg.c (gimple_duplicate_sese_region):
16574 Add update_dominance argument.
16575 * tree-flow.h (gimple_duplicate_sese_region): Update prototype.
16576 * tree-ssa-loop-ch.c (copy_loop_headers): Update
16577 gimple_duplicate_sese_region call.
16578 * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg):
16579 Update copy_bbs call.
16580 * cfgloopmanip.c (duplicate_loop_to_header_edge): Ditto.
16581 * trans-mem.c (ipa_uninstrument_transaction): Ditto.
16582
16583 2013-05-16 Jakub Jelinek <jakub@redhat.com>
16584
16585 * tree-vectorizer.h (NUM_PATTERNS): Increment.
16586 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
16587 vect_recog_rotate_pattern.
16588 (vect_recog_rotate_pattern): New function.
16589
16590 2013-05-16 Jason Merrill <jason@redhat.com>
16591
16592 * Makefile.in (LLINKER): New variable.
16593 (mostlyclean): Remove link mutex.
16594 * configure.ac: Handle --enable-link-mutex.
16595 * lock-and-run.sh: New script.
16596
16597 2013-05-16 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16598
16599 PR target/19599
16600 * config/arm/arm.c (arm_function_ok_for_sibcall): Add check
16601 for NULL decl.
16602
16603 2013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16604
16605 * reorg.c (link_cc0_insns): Wrap in #ifdef HAVE_cc0.
16606
16607 2013-05-16 Greta Yorsh <Greta.Yorsh@arm.com>
16608
16609 * config/arm/arm-protos.h (gen_movmem_ldrd_strd): New declaration.
16610 * config/arm/arm.c (next_consecutive_mem): New function.
16611 (gen_movmem_ldrd_strd): Likewise.
16612 * config/arm/arm.md (movmemqi): Update condition and code.
16613 (unaligned_loaddi, unaligned_storedi): New patterns.
16614
16615 2013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16616
16617 * config.gcc: Obsolete *-*-solaris2.9*.
16618 * doc/install.texi (Specific, *-*-solaris2*): Document it.
16619
16620 2013-05-16 Richard Biener <rguenther@suse.de>
16621
16622 * passes.c (init_optimization_passes): Move pass_parallelize_loops
16623 earlier, after GRAPHITE transforms and IV canonicalization.
16624
16625 2013-05-16 Jakub Jelinek <jakub@redhat.com>
16626
16627 * omp-low.c (extract_omp_for_data): For collapsed loops,
16628 if at least one of the loops is known at compile time to
16629 iterate zero times, set count to 0.
16630 (expand_omp_regimplify_p): New function.
16631 (expand_omp_for_generic): For collapsed loops, if at least
16632 one of the loops isn't known to iterate at least once,
16633 add runtime check with setting count to 0.
16634 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
16635 For unsigned types if it isn't known at compile time that
16636 the loop will iterate at least once, add runtime check to bypass
16637 the whole loop if initial condition isn't true.
16638
16639 2013-05-16 Nathan Sidwell <nathan@codesourcery.com>
16640
16641 * varasm.c (default_use_anchors_for_symbol_p): Use decl_replaceable_p.
16642
16643 2013-05-16 Marc Glisse <marc.glisse@inria.fr>
16644
16645 PR middle-end/57286
16646 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Disable some
16647 transformations to avoid an infinite loop.
16648
16649 2013-05-16 Marek Polacek <polacek@redhat.com>
16650
16651 * tree-scalar-evolution.c (scev_const_prop): Add more dumps.
16652
16653 2013-05-15 Leif Ekblad <leif@rdos.net>
16654
16655 * config/i386/i386.c (ix86_decompose_address): Use
16656 DEFAULT_TLS_SEG_REG to access TLS segment register.
16657 * config/i386/i386.h (DEFAULT_TLS_SEG_REG): New define.
16658 * config/i386/rdos.h (DEFAULT_TLS_SEG_REG): Ditto.
16659 (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Ditto.
16660
16661 2013-05-15 Richard Sandiford <rdsandiford@googlemail.com>
16662
16663 PR target/57260
16664 * config/mips/mips.c (mips_function_ok_for_sibcall): Don't allow
16665 sibling calls to functions that would normally be lazily bound,
16666 unless $gp is call-clobbered.
16667
16668 2013-05-15 Uros Bizjak <ubizjak@gmail.com>
16669
16670 * config/i386/i386.c (ix86_option_override_internal): Update
16671 processor_alias_table for missing PTA_PRFCHW and PTA_FXSR flags. Add
16672 PTA_POPCNT to corei7 entry. Do not enable SSE prefetch on
16673 non-SSE 3dNow! targets. Enable TARGET_PRFCHW for TARGET_3DNOW targets.
16674 * config/i386/i386.md (prefetch): Enable for TARGET_PRFCHW instead
16675 of TARGET_3DNOW.
16676 (*prefetch_3dnow): Enable for TARGET_PRFCHW only.
16677
16678 2013-05-15 Andreas Schwab <schwab@suse.de>
16679
16680 * config/m68k/m68k.md (*rotlhi3_lowpart, *rotlqi3_lowpart): Name
16681 for rotlhi3+1 and rotlqi3+1, resp. Fix reference to non-existing
16682 third operand.
16683
16684 2013-05-15 Teresa Johnson <tejohnson@google.com>
16685
16686 * loop-unroll.c (report_unroll_peel): Check decision before
16687 emitting unroll/peel message.
16688
16689 2013-05-15 Teresa Johnson <tejohnson@google.com>
16690
16691 * function.h (has_bb_partition): New rtl_data flag.
16692 (bb_reorder_complete): Ditto.
16693 * cfgcleanup.c (try_crossjump_to_edge): Check for has_bb_partition
16694 instead of flag_reorder_blocks_and_partition.
16695 * cfgrtl.c (verify_hot_cold_block_grouping): Moved from bb-reorder.c,
16696 with some enhancements.
16697 (rtl_verify_flow_info_1): Call verify_hot_cold_block_grouping.
16698 * bb-reorder.c (connect_traces): Check for has_bb_partition
16699 instead of flag_reorder_blocks_and_partition.
16700 (verify_hot_cold_block_grouping): Moved to cfgrtl.c.
16701 (reorder_basic_blocks): Set bb_reorder_complete flag, remove call to
16702 verify_hot_cold_block_grouping.
16703 (partition_hot_cold_basic_blocks): Set has_bb_partition.
16704
16705 2013-05-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16706
16707 PR target/19599
16708 * config/arm/predicates.md (call_insn_operand): New predicate.
16709 * config/arm/constraints.md ("Cs", "Ss"): New constraints.
16710 * config/arm/arm.md (*call_insn, *call_value_insn): Match only
16711 if insn is not a tail call.
16712 (*sibcall_insn, *sibcall_value_insn): Adjust for tailcalling through
16713 registers.
16714 * config/arm/arm.h (enum reg_class): New caller save register class.
16715 (REG_CLASS_NAMES): Likewise.
16716 (REG_CLASS_CONTENTS): Likewise.
16717 * config/arm/arm.c (arm_function_ok_for_sibcall): Allow tailcalling
16718 without decls.
16719
16720 2013-05-15 Richard Biener <rguenther@suse.de>
16721
16722 * tree-vect-loop.c (vect_transform_loop): Use MSG_NOTE instead
16723 of MSG_OPTIMIZED_LOCATIONS.
16724 * tree-vect-slp.c (vect_make_slp_decision): Likewise.
16725 (vect_slp_transform_bb): Indicate location in MSG_OPTIMIZED_LOCATIONS
16726 message.
16727 * tree-vectorizer.c (vectorize_loops): Use MSG_NOTE instead
16728 of MSG_OPTIMIZED_LOCATIONS.
16729 (execute_vect_slp): Likewise.
16730 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
16731 (vect_create_cond_for_alias_checks): Likewise.
16732 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Likewise.
16733 (vect_recog_widen_mult_pattern): Likewise.
16734 (vect_recog_widen_sum_pattern): Likewise.
16735 (vect_recog_over_widening_pattern): Likewise.
16736 (vect_recog_widen_shift_pattern): Likewise.
16737 (vect_recog_vector_vector_shift_pattern): Likewise.
16738 (vect_recog_divmod_pattern): Likewise.
16739 (vect_recog_mixed_size_cond_pattern): Likewise.
16740 (vect_recog_bool_pattern): Likewise.
16741 (vect_pattern_recog_1): Likewise.
16742
16743 2013-05-15 Martin Jambor <mjambor@suse.cz>
16744
16745 * ipa-prop.c (ipa_make_edge_direct_to_target): Redirect calls to
16746 non-functions to builtin_unreachable.
16747 * ipa-inline-transform.c (inline_call): Do not assert estimates were
16748 correct when new direct edges were discovered.
16749
16750 2013-05-15 Martin Jambor <mjambor@suse.cz>
16751
16752 * ipa-prop.c (ipa_print_node_jump_functions): Print symbol order in
16753 header, print symbol order instead of node uid, print more information
16754 about indirect edge targets.
16755 (ipa_make_edge_direct_to_target): Print symbol order instead of node
16756 uids.
16757 (ipa_make_edge_direct_to_target): Likewise.
16758 (remove_described_reference): Likewise.
16759 (propagate_controlled_uses): Likewise.
16760 (ipa_print_node_params): Also print symbol order.
16761 (ipcp_transform_function): Print symbol order instead of node uids.
16762 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Likewise.
16763 (cgraph_get_create_real_symbol_node): Likewise.
16764 * ipa-cp.c (print_lattice): Likewise.
16765 (print_all_lattices): Likewise.
16766 (determine_versionability): Likewise.
16767 (initialize_node_lattices): Likewise.
16768 (estimate_local_effects): Likewise.
16769 (update_profiling_info): Likewise.
16770 (create_specialized_node): Likewise.
16771 (perhaps_add_new_callers): Likewise.
16772 (decide_about_value): Likewise.
16773 (decide_whether_version_node): Likewise.
16774 (identify_dead_nodes): Likewise.
16775 * ipa-inline-analysis.c (dump_inline_edge_summary): Likewise.
16776 (dump_inline_summary): Likewise.
16777 (estimate_node_size_and_time): Likewise.
16778 (inline_analyze_function): Likewise.
16779 * ipa-inline.c (report_inline_failed_reason): Likewise.
16780 (want_early_inline_function_p): Likewise.
16781 (edge_badness): Likewise.
16782 (update_edge_key): Likewise.
16783 (inline_small_functions): Likewise. Add dumping of order to two other
16784 dumps.
16785 * ipa-pure-const.c (pure_const_read_summary): Print symbol order
16786 instead of node uids.
16787 (propagate_pure_const): Likewise.
16788 (propagate_pure_const): Likewise.
16789 * ipa-utils.c (dump_cgraph_node_set): Likewise.
16790 * lto-cgraph.c (input_node): Explicitly specify we dump uid.
16791 * lto-symtab.c (lto_cgraph_replace_node): Print symbol order instead
16792 of node uids.
16793 * tree-pretty-print.c (dump_function_header): Likewise.
16794 * tree-sra.c (convert_callers_for_node): Dump in traditional format.
16795 Print symbol order instead of node uids.
16796
16797 2013-05-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16798
16799 * config/s390/s390.c (s390_register_move_cost): Don't impose the
16800 FPR<->GPR move cost penalty if ldgr/lgdr can be used.
16801
16802 2013-05-15 Richard Biener <rguenther@suse.de>
16803
16804 PR tree-optimization/57275
16805 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Fix
16806 return value for fail to do runtime alias checks for gather loads.
16807
16808 2013-05-15 Jan Hubicka <jh@suse.cz>
16809
16810 PR lto/57038
16811 PR lto/47375
16812 * lto-symtab.c (lto_symtab_symbol_p): Add external symbol;
16813 weakrefs are not external.
16814 (lto_symtab_merge_decls): Fix thinko when dealing with
16815 non-lto_symtab decls.
16816 (lto_symtab_merge_cgraph_nodes): Use lto_symtab_symbol_p.
16817 (lto_symtab_prevailing_decl): Get int sync with lto_symtab_symbol_p.
16818 * varpool.c (dump_varpool_node): Dump more flags.
16819
16820 2013-05-15 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
16821
16822 * config/i386/i386.c (processor_alias_table): Add instruction
16823 FSGSBASE for AMD bdver3 architecture.
16824
16825 2013-05-14 Jakub Jelinek <jakub@redhat.com>
16826
16827 * tree.c (warn_deprecated_use): Print file:line using locus color.
16828 * diagnostic.c (diagnostic_report_current_module): Print file:line
16829 and file:line:column using locus color.
16830
16831 2013-05-14 Mike Stump <mikestump@comcast.net>
16832
16833 * gdbinit.in: Add __null.
16834
16835 2013-05-14 Mike Stump <mikestump@comcast.net>
16836
16837 * recog.h: Rename struct recog_data to Recog_data.
16838 * recog.c: Likewise.
16839 * reload.c (can_reload_into): Likewise.
16840 * config/picochip/picochip.c: Likewise.
16841
16842 2013-05-14 Mike Stump <mikestump@comcast.net>
16843
16844 * web.c (union_match_dups): Also check DF_REF_REAL_LOC.
16845
16846 2013-05-14 Steven Bosscher <steven@gcc.gnu.org>
16847
16848 * resource.h (struct resources): Remove unch_memory member.
16849 (CLEAR_RESOURCE): Don't clear unch_memory.
16850 * resource.c (mark_referenced_resources): Don't set it.
16851 (mark_set_resources): Likewise.
16852 (mark_target_live_regs): Don't clear it.
16853 (init_resource_info): Likewise.
16854 * reorg.c (resource_conflicts_p): Don't compare it.
16855 (redundant_insn): Don't set it.
16856
16857 * rtl.h (next_label, skip_consecutive_labels, link_cc0_insns):
16858 Remove prototypes.
16859 * emit-rtl.c (next_label): Remove unused function.
16860 (skip_consecutive_labels, link_cc0_insns): Move to ...
16861 * reorg.c (skip_consecutive_labels, link_cc0_insns): ... here, the
16862 only place where these functions are used, and make them static.
16863
16864 2013-05-14 Marc Glisse <marc.glisse@inria.fr>
16865
16866 * fold-const.c (fold_negate_expr): Handle vectors.
16867 (fold_truth_not_expr): Make it static.
16868 (fold_invert_truthvalue): New static function.
16869 (invert_truthvalue_loc): Handle vectors. Do not call
16870 fold_truth_not_expr directly.
16871 (fold_unary_loc) <BIT_NOT_EXPR>: Handle comparisons.
16872 <TRUTH_NOT_EXPR>: Do not cast to boolean.
16873 (fold_comparison): Handle vector constants.
16874 (fold_binary_loc) <TRUTH_XOR_EXPR>: Remove redundant code.
16875 (fold_ternary_loc) <VEC_COND_EXPR>: Adapt more COND_EXPR optimizations.
16876 * tree.h (fold_truth_not_expr): Remove declaration.
16877
16878 2013-05-14 James Greenhalgh <james.greenhalgh@arm.com>
16879
16880 * config/aarch64/aarch64-simd.md
16881 (aarch64_vcond_internal<mode>): Rename to...
16882 (aarch64_vcond_internal<mode><mode>): ...This, for integer modes.
16883 (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): ...This for
16884 float modes. Clarify all iterator modes.
16885 (vcond<mode><mode>): Use new name for vcond expanders.
16886 (vcond<v_cmp_result><mode>): Likewise.
16887 (vcondu<mode><mode>: Likewise.
16888 * config/aarch64/iterators.md (VDQF_COND): New.
16889
16890 2013-05-14 Marc Glisse <marc.glisse@inria.fr>
16891
16892 PR bootstrap/57266
16893 * fold-const.c (fold_binary_loc) <shift>: Use an unsigned
16894 variable for the shift amount. Check that we shift by non-negative
16895 amounts.
16896
16897 2013-05-14 Chung-Lin Tang <cltang@codesourcery.com>
16898
16899 PR target/42017
16900 * config/arm/arm.h (EPILOGUE_USES): Only return true
16901 for LR_REGNUM after epilogue_completed.
16902
16903 2013-05-14 Joern Rennecke <joern.rennecke@embecosm.com>
16904
16905 * config/avr/avr.c (avr_encode_section_info): Bail out if the type
16906 is error_mark_node.
16907
16908 2013-05-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16909
16910 PR target/57261
16911 * configure.ac (gcc_cv_ld_as_needed): Disable before Solaris 11
16912 and Solaris 11+/x86 with gld.
16913 * configure: Regenerate.
16914
16915 2013-05-14 Jakub Jelinek <jakub@redhat.com>
16916
16917 * expmed.c (expand_shift_1): Canonicalize rotates by
16918 constant bitsize / 2 to bitsize - 1.
16919 * simplify-rtx.c (simplify_binary_operation_1) <case ROTATE,
16920 case ROTATERT>: Likewise.
16921
16922 Revert:
16923 2013-05-10 Jakub Jelinek <jakub@redhat.com>
16924
16925 * config/i386/i386.md (rotateinv): New code attr.
16926 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
16927 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
16928 roll $31, %eax, etc.
16929
16930 2013-05-14 Richard Biener <rguenther@suse.de>
16931
16932 PR middle-end/57235
16933 * tree-eh.c (sink_clobbers): Give up for successors with
16934 multiple predecessors and no virtual uses.
16935
16936 2013-05-14 Eric Botcazou <ebotcazou@adacore.com>
16937
16938 * config/sparc/sp64-elf.h (CPP_SUBTARGET_SPEC): Delete.
16939 * config/sparc/openbsd64.h (CPP_SUBTARGET_SPEC): Likewise.
16940
16941 2013-05-14 Jakub Jelinek <jakub@redhat.com>
16942
16943 PR middle-end/57251
16944 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Handle
16945 the case when both op0 and op1 have VOIDmode.
16946
16947 2013-05-14 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
16948
16949 * config/rl78/rl78.md(mulsi3_g13): Add additional 'nop' required
16950 in multiply-accumulate mode.
16951
16952 2013-05-13 Guozhi Wei <carrot@google.com>
16953
16954 * dwarf2asm.c (dw2_output_indirect_constant_1): Mark new decl STATIC.
16955
16956 2013-05-13 Kai Tietz <ktietz@redhat.com>
16957
16958 PR target/56975
16959 * config/i386/cygming.h (TARGET_PECOFF): Define as true.
16960 * config/i386/i386.h (TARGET_PECOFF): Define by default as false.
16961 (PIC_OFFSET_TABLE_REGNUM): Use TARGET_PECOFF.
16962 * config/i386/i386.c (ix86_option_override_internal): Likewise.
16963 (ix86_expand_prologue): Likewise.
16964 (ix86_expand_split_stack_prologue): Likewise.
16965 (legitimate_pic_address_disp_p): Likewise.
16966 (legitimize_pic_address): Likewise.
16967 (legitimize_tls_address): Likewise.
16968 (legitimize_pe_coff_symbol): Likewise.
16969 (output_pic_addr_const): Likewise.
16970 (construct_plt_address): Likewise.
16971 (ix86_expand_call): Likewise.
16972 (x86_output_mi_thunk): Likewise.
16973 (x86_function_profiler): Likewise.
16974
16975 2013-05-13 Sofiane Naci <sofiane.naci@arm.com>
16976
16977 * config/aarch64/aarch64-simd.md (aarch64_simd_mov<mode>): Group
16978 similar switch cases.
16979 (aarch64_simd_mov): Rename to aarch64_split_simd_mov. Update.
16980 (aarch64_simd_mov_to_<mode>low): Delete.
16981 (aarch64_simd_mov_to_<mode>high): Delete.
16982 (move_lo_quad_<mode>): Add w<-r alternative.
16983 (aarch64_simd_move_hi_quad_<mode>): Likewise.
16984 (aarch64_simd_mov_from_*): Update type attribute.
16985 * config/aarch64/aarch64.c (aarch64_split_simd_move): Refacror switch
16986 statement.
16987
16988 2013-05-13 Jan Hubicka <jh@suse.cz>
16989
16990 * mode-switching.c (optimize_mode_switching): Set correct RTL profile.
16991 * config/i386/i386.c (ix86_compute_frame_layout,
16992 ix86_expand_epilogue, emit_i387_cw_initialization,
16993 ix86_expand_vector_move_misalign, ix86_fp_comparison_strategy,
16994 ix86_local_alignment): Fix use of size/speed predicates.
16995
16996 2013-05-13 Jakub Jelinek <jakub@redhat.com>
16997
16998 PR tree-optimization/45216
16999 PR tree-optimization/57157
17000 * tree-ssa-forwprop.c (simplify_rotate): Only recognize
17001 the (-Y) & (B - 1) variant if OP is |.
17002 * expmed.c (expand_shift_1): For rotations by const0_rtx just
17003 return shifted. Use (-op1) & (prec - 1) as other_amount
17004 instead of prec - op1.
17005
17006 2013-05-13 Martin Jambor <mjambor@suse.cz>
17007
17008 PR middle-end/42371
17009 * ipa-prop.h (IPA_UNDESCRIBED_USE): New macro.
17010 (ipa_constant_data): New type.
17011 (ipa_jump_func): Use ipa_constant_data to hold information about
17012 constant jump functions.
17013 (ipa_get_jf_constant): Adjust to jump function type changes.
17014 (ipa_get_jf_constant_rdesc): New function.
17015 (ipa_param_descriptor): New field controlled_uses.
17016 (ipa_get_controlled_uses): New function.
17017 (ipa_set_controlled_uses): Likewise.
17018 * ipa-ref.h (ipa_find_reference): Declare.
17019 * ipa-prop.c (ipa_cst_ref_desc): New type.
17020 (ipa_print_node_jump_functions_for_edge): Adjust for jump function type
17021 changes.
17022 (ipa_set_jf_constant): Likewise. Also create reference descriptions.
17023 New parameter cs. Adjust all callers.
17024 (ipa_analyze_params_uses): Detect uncontrolled and controlled uses.
17025 (remove_described_reference): New function.
17026 (jfunc_rdesc_usable): Likewise.
17027 (try_make_edge_direct_simple_call): Decrement controlled use count,
17028 attempt to remove reference if it hits zero.
17029 (combine_controlled_uses_counters): New function.
17030 (propagate_controlled_uses): Likewise.
17031 (ipa_propagate_indirect_call_infos): Call propagate_controlled_uses.
17032 (ipa_edge_duplication_hook): Duplicate reference descriptions.
17033 (ipa_print_node_params): Print described use counter.
17034 (ipa_write_jump_function): Adjust to jump function type changes.
17035 (ipa_read_jump_function): New parameter CS, pass it to
17036 ipa_set_jf_constant. Adjust caller.
17037 (ipa_write_node_info): Stream controlled use count
17038 (ipa_read_node_info): Likewise.
17039 * cgraph.c (cgraph_mark_address_taken_node): Bail out instead of
17040 asserting.
17041 * ipa-cp.c (ipcp_discover_new_direct_edges): Decrement controlled use
17042 count. Remove cloning-added reference if it reaches zero.
17043 * ipa-ref.c (ipa_find_reference): New function.
17044
17045 2013-05-13 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
17046
17047 * config/i386/i386.c (processor_target_table): Modified default
17048 alignment values for AMD BD and BT architectures.
17049
17050 2013-05-13 Marc Glisse <marc.glisse@inria.fr>
17051
17052 * tree-vect-generic.c (uniform_vector_p): Move ...
17053 * tree.c (uniform_vector_p): ... here.
17054 * tree.h (uniform_vector_p): Declare it.
17055 * fold-const.c (fold_binary_loc) <shift>: Turn the second argument
17056 into a scalar.
17057
17058 2013-05-13 Jakub Jelinek <jakub@redhat.com>
17059
17060 PR tree-optimization/57230
17061 * tree-ssa-strlen.c (handle_char_store): Record length for
17062 array store from STRING_CST.
17063
17064 PR tree-optimization/57230
17065 * tree-ssa-strlen.c (handle_char_store): Add missing integer_zerop
17066 check.
17067
17068 2013-05-12 Joern Rennecke <joern.rennecke@embecosm.com>
17069
17070 * config/epiphany/epiphany.c (epiphany_init): Check size of
17071 NUM_MODES_FOR_MODE_SWITCHING.
17072 (epiphany_expand_prologue):
17073 Remove CONFIG_REGNUM initial value handling code.
17074 (epiphany_optimize_mode_switching): Handle EPIPHANY_MSW_ENTITY_CONFIG.
17075 (epiphany_mode_needed, epiphany_mode_entry_exit): Likewise.
17076 (emit_set_fp_mode, epiphany_mode_after): Likewise.
17077 (epiphany_mode_needed) <Handle EPIPHANY_MSW_ENTITY_AND>:
17078 Don't return 1 for FP_MODE_NONE.
17079 * config/epiphany/epiphany.h (NUM_MODES_FOR_MODE_SWITCHING):
17080 Add value for EPIPHANY_MSW_ENTITY_CONFIG.
17081 (EPIPHANY_MSW_ENTITY_CONFIG, EPIPHANY_MSW_ENTITY_NUM): Define.
17082 * config/epiphany/epiphany.md (save_config): New pattern.
17083
17084 2013-05-12 Uros Bizjak <ubizjak@gmail.com>
17085
17086 * config/i386/i386.md (*zero_extendsidi2): Add *x->?r alternative.
17087
17088 2013-05-10 Uros Bizjak <ubizjak@gmail.com>
17089
17090 * config/i386/i386.md (memory): Handle sseishft1.
17091 * config/i386/sse.md (*vec_extractv4si): Remove memory attribute.
17092 (*vec_extractv2di_1): Ditto.
17093
17094 2013-05-10 Vladimir Makarov <vmakarov@redhat.com>
17095
17096 * lra-assigns.c (find_hard_regno_for): Add 1 to the cost of call
17097 saved registers.
17098
17099 2013-05-10 Sebastian Huber <sebastian.huber@embedded-brains.de>
17100
17101 * config/arm/t-rtems-eabi: Remove mthumb/march=armv7 multilib.
17102 Add mthumb/march=armv7-a multilib.
17103 Add mthumb/march=armv7-r multilib.
17104 Add mthumb/march=armv7-a/mfpu=neon/mfloat-abi=hard multilib.
17105
17106 2013-05-10 Ralf Corsépius <ralf.corsepius@rtems.org>
17107
17108 * config/v850/t-rtems: Add more multilibs.
17109
17110 2013-05-10 Richard Biener <rguenther@suse.de>
17111
17112 PR tree-optimization/57214
17113 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling): Do
17114 not propagate from SSA names that occur in abnormal PHI nodes.
17115
17116 2013-05-10 Marc Glisse <marc.glisse@inria.fr>
17117
17118 * stor-layout.c (element_precision): New function.
17119 * machmode.h (element_precision): Declare it.
17120 * tree.c (build_minus_one_cst): New function.
17121 (element_precision): Likewise.
17122 * tree.h (build_minus_one_cst): Declare new function.
17123 (element_precision): Likewise.
17124 * fold-const.c (operand_equal_p): Use element_precision.
17125 (fold_binary_loc): Handle vector types.
17126 * convert.c (convert_to_integer): Use element_precision.
17127 * gimple.c (iterative_hash_canonical_type): Handle complex and vectors
17128 separately.
17129
17130 2013-05-10 Richard Sandiford <rdsandiford@googlemail.com>
17131
17132 * config/mips/mips-protos.h (m16_uimm3_b, m16_simm4_1, m16_nsimm4_1)
17133 (m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4, m16_simm8_1)
17134 (m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1, m16_uimm8_4)
17135 (m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
17136 * config/mips/mips.c (m16_check_op, m16_uimm3_b, m16_simm4_1)
17137 (m16_nsimm4_1, m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4)
17138 (m16_simm8_1, m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1)
17139 (m16_uimm8_4, m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
17140 * config/mips/constraints.md (Udb8, Usb5, Usb8, Usd8, Uub8, Uuw5)
17141 (Uuw8): New constraints.
17142 (Usb4): Move into alphabetical order.
17143 * config/mips/predicates.md (db8_operand, sb5_operand, sb8_operand)
17144 (sd8_operand, ub8_operand, uw8_operand): New predicates.
17145 * config/mips/mips.md (*xor<mode>3, *xor<mode>3_mips16): Name
17146 previously unnamed patterns.
17147 (*add<mode>3_mips16, *xor<mode>3_mips16, *<optab>si3_mips16)
17148 (*ashldi3_mips16, *ashrdi3_mips16, *lshrdi3_mips16)
17149 (*slt<u>_<GPR:mode><GPR2:mode>_mips16)
17150 (*sle<u>_<GPR:mode><GPR2:mode>_mips16): Use constraints instead
17151 of set_attr_alternative/if_then_else. Use extended_mips16 instead
17152 of specific lengths.
17153
17154 2013-05-10 Jakub Jelinek <jakub@redhat.com>
17155
17156 * config/i386/i386.md (rotateinv): New code attr.
17157 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
17158 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
17159 roll $31, %eax, etc.
17160
17161 PR tree-optimization/45216
17162 PR tree-optimization/57157
17163 * tree-ssa-forwprop.c (simplify_rotate): New function.
17164 (ssa_forward_propagate_and_combine): Call it.
17165
17166 2013-05-10 Richard Biener <rguenther@suse.de>
17167
17168 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
17169 disable peeling when we version for aliasing.
17170 (vector_alignment_reachable_p): Honor explicit user alignment.
17171 (vect_supportable_dr_alignment): Likewise.
17172 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Use
17173 STMT_VINFO_LOOP_PHI_EVOLUTION_PART instead of recomputing it.
17174 * tree-vect-loop.c (vect_transform_loop): First apply versioning,
17175 then peeling to arrange for the cost-model check to come first.
17176
17177 2013-05-10 Alan Modra <amodra@gmail.com>
17178
17179 * configure.ac (HAVE_AS_TLS): Swap powerpc64 and powerpc cases.
17180 (HAVE_LD_LARGE_TOC): Don't mention AIX in help text.
17181 * configure: Regenerate.
17182
17183 2013-05-10 Alan Modra <amodra@gmail.com>
17184
17185 PR target/55033
17186 * varasm.c (default_elf_select_section): Move !DECL_P check..
17187 (get_named_section): ..to here before calling get_section_name.
17188 Adjust assertion.
17189 (default_section_type_flags): Add DECL_P check.
17190 * config/i386/winnt.c (i386_pe_section_type_flags): Likewise.
17191 * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags): Likewise.
17192
17193 2013-05-09 Joern Rennecke <joern.rennecke@embecosm.com>
17194
17195 * config/epiphany/epiphany.c (epiphany_expand_prologue):
17196 When using gen_stack_adjust_str with a register offset, add a
17197 REG_FRAME_RELATED_EXPR note.
17198
17199 2013-05-09 Uros Bizjak <ubizjak@gmail.com>
17200
17201 * config/i386/sse.md (*vec_extractv4si_0_zext): New pattern.
17202 (*vec_extractv4si_zext_mem): Ditto.
17203 (*vec_extractv2di): Add 0->x and x->x alternatives.
17204 * config/i386/mmx.md (*vec_extractv2si_zext_mem): New pattern.
17205 * config/i386/i386.md (*zero_extendsidi2): Add *Yj->?r alternative.
17206
17207 2013-05-09 Jason Merrill <jason@redhat.com>
17208
17209 N3639 C++1y VLA support
17210 * gimplify.c (gimplify_vla_decl): Don't touch an existing
17211 DECL_VALUE_EXPR.
17212
17213 * tree.c (build_constructor_va): New.
17214 * tree.h: Declare it.
17215
17216 2013-05-09 Martin Jambor <mjambor@suse.cz>
17217
17218 PR lto/57084
17219 * gimple-fold.c (canonicalize_constructor_val): Call
17220 cgraph_get_create_real_symbol_node instead of cgraph_get_create_node.
17221
17222 2013-05-09 Jan Hubicka <jh@suse.cz>
17223 Richard Biener <rguenther@suse.de>
17224
17225 PR lto/54095
17226 * symtab.c (symtab_make_decl_local): Do not add private names.
17227
17228 2013-05-09 Jan Hubicka <jh@suse.cz>
17229
17230 PR lto/54095
17231 * symtab.c (insert_to_assembler_name_hash): Handle clones.
17232 (unlink_from_assembler_name_hash): Likewise.
17233 (symtab_prevail_in_asm_name_hash, symtab_register_node,
17234 symtab_unregister_node, symtab_initialize_asm_name_hash,
17235 change_decl_assembler_name): Update.
17236
17237 2013-05-09 Sofiane Naci <sofiane.naci@arm.com>
17238
17239 * config/aarch64/aarch64.md: New movtf split.
17240 (*movtf_aarch64): Update.
17241 (aarch64_movdi_tilow): Handle TF modes and rename to
17242 aarch64_movdi_<mode>low.
17243 (aarch64_movdi_tihigh): Handle TF modes and rename to
17244 aarch64_movdi_<mode>high
17245 (aarch64_movtihigh_di): Handle TF modes and rename to
17246 aarch64_mov<mode>high_di
17247 (aarch64_movtilow_di): Handle TF modes and rename to
17248 aarch64_mov<mode>low_di
17249 (aarch64_movtilow_tilow): Remove spurious whitespace.
17250 * config/aarch64/aarch64.c (aarch64_split_128bit_move): Handle TFmode
17251 splits.
17252 (aarch64_print_operand): Update.
17253
17254 2013-05-09 Alan Modra <amodra@gmail.com>
17255
17256 * configure.ac (HAVE_AS_TLS): Enable tests for powerpcle and
17257 powerpc64le.
17258 * configure: Regenerate.
17259
17260 2013-05-08 Uros Bizjak <ubizjak@gmail.com>
17261
17262 * config/i386/mmx.md (*vec_extract* splitters): Simplify post-reload
17263 splitter preparation statements.
17264 * config/i386/sse.md (*vec_extract* splitters): Ditto.
17265 (*avx_vperm_broadcast_<mode>): Use adjust_address instead of
17266 adjust_address_nv.
17267
17268 2013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17269
17270 * gimple-ssa-strength-reduction.c (count_candidates): Change
17271 return value to int.
17272 (analyze_candidates_and_replace): Change type of length to int.
17273
17274 2013-05-08 Uros Bizjak <ubizjak@gmail.com>
17275
17276 * config/i386/sse.md (PEXTR_MODE, PEXTR_MODEx): Remove.
17277 (*vec_extract<mode>): Use VI12_128 mode iterator.
17278 (*vec_extract<mode>_mem): Ditto.
17279 (*vec_extract*_mem splitters): Merge splitters using VI_128 mode
17280 attribute.
17281
17282 2013-05-08 Diego Novillo <dnovillo@google.com>
17283
17284 PR bootstrap/54659
17285
17286 Revert:
17287 2012-08-17 Diego Novillo <dnovillo@google.com>
17288
17289 PR bootstrap/54281
17290 * configure.ac: Add libintl.h to AC_CHECK_HEADERS list.
17291 * config.in: Regenerate.
17292 * configure: Regenerate.
17293 * intl.h: Always include libintl.h if HAVE_LIBINTL_H is set.
17294
17295 2013-05-08 Jan Hubicka <jh@suse.cz>
17296
17297 PR lto/54095
17298 * cgraph.c (cgraph_make_node_local_1): Se unique_name.
17299 * cgraph.h (symtab_node_base): Add unique_name.
17300 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
17301 input_overwrite_node, input_varpool_node): Stream unique_name.
17302 * cgraphclones.c (cgraph_create_virtual_clone,
17303 cgraph_function_versioning): Set unique_name.
17304 * ipa.c (function_and_variable_visibility): Set unique_name.
17305
17306 2013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17307
17308 * gimple-ssa-strength-reduction.c (find_phi_def): Revert former "fix."
17309 (alloc_cand_and_find_basis): Restrict conditional candidate
17310 processing to CAND_MULTs.
17311
17312 2013-05-08 Jan Hubicka <jh@suse.cz>
17313
17314 PR lto/54095
17315 lto-symtab.c (lto_symtab_symbol_p): New function.
17316 (lto_symtab_resolve_can_prevail_p, lto_symtab_resolve_symbols,
17317 lto_symtab_resolve_symbols, lto_symtab_merge_decls_2,
17318 lto_symtab_merge_decls_1, lto_symtab_merge_cgraph_nodes_1):
17319 Skip static symbols.
17320
17321 2013-05-08 Paolo Carlini <paolo.carlini@oracle.com>
17322
17323 PR tree-optimization/57200
17324 * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
17325 Only call inform if the preceding warning_at returns true.
17326
17327 2013-05-07 Han Shen <shenhan@google.com>
17328
17329 * cfgexpand.c (record_or_union_type_has_array_p): New function.
17330 (expand_used_vars): Add logic handling '-fstack-protector-strong'.
17331 * common.opt (fstack-protector-strong): New option.
17332 * doc/cpp.texi (__SSP_STRONG__): New builtin "__SSP_STRONG__".
17333 * doc/invoke.texi (Optimization Options): Document
17334 "-fstack-protector-strong".
17335 * gcc.c (LINK_SSP_SPEC): Add 'fstack-protector-strong'.
17336
17337 2013-05-06 Steven Bosscher <steven@gcc.gnu.org>
17338
17339 * config/mips/mips.c (mips_machine_reorg2): Return 0.
17340
17341 2013-05-07 Vladimir Makarov <vmakarov@redhat.com>
17342
17343 * ira.c (update_equiv_regs): Add insn having equiv memory even if
17344 it is not lhs of the insn.
17345 (setup_reg_equiv): Remove insn having equiv memory which it is not
17346 lhs of the insn.
17347 * lra-constraints.c (process_address): Try to improve generation
17348 code for address base + disp.
17349 (lra_constraints): Make correct the code for checking insn setting
17350 up backward equivalence. Remove insn only if it is in the init
17351 insn list.
17352 * lra-eliminations.c (update_reg_eliminate): Change return value.
17353 (lra_eliminate): Use the result.
17354
17355 2013-05-07 Uros Bizjak <ubizjak@gmail.com>
17356
17357 * config/i386/sse.md (ssescalarnummask): New mode attribute.
17358 (PEXTR_MODE, PEXTR_MODEx): New mode iterators.
17359 (*vec_extract<mode>): Merge from *sse4_1_pextrb_memory and
17360 *sse4_1_pextrw_memory using PEXTR_MODE mode iterator. Handle
17361 register target operands.
17362 (*vec_extractv8hi_sse2): New pattern.
17363 (*vec_extractv16qi_zext): Rename from *sse4_1_pextrb_<mode>.
17364 (*vec_extractv8hi_zext): Rename from *sse2_pextrw_<mode>.
17365 (*vec_extract<mode>_mem): New insn and split pattern.
17366
17367 2013-05-07 Christophe Lyon <christophe.lyon@linaro.org>
17368
17369 * config/arm/arm.c (arm_asan_shadow_offset): New function.
17370 (TARGET_ASAN_SHADOW_OFFSET): Define.
17371 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Define.
17372 (LINUX_OR_ANDROID_CC): Add ASAN_CC1_SPEC.
17373
17374 2013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17375
17376 * gimple-ssa-strength-reduction.c (MAX_INCR_VEC_LEN): New constant.
17377 (incr_vec_index): Return -1 if increment not found.
17378 (create_add_on_incoming_edge): Assert if increment not found.
17379 (record_increment): Limit number of increments recorded.
17380 (all_phi_incrs_profitable): Return false if an increment not found.
17381 (replace_profitable_candidates): Don't process increments that were
17382 not recorded.
17383 (analyze_candidates_and_replace): Limit size of incr_vec.
17384
17385 2013-05-07 Richard Biener <rguenther@suse.de>
17386
17387 * calls.c (special_function_p): setjmp-like functions are leaf.
17388 * builtins.def (BUILT_IN_SETJMP): setjmp is leaf.
17389 * tree-inline.c (update_ssa_across_abnormal_edges): Remove assert.
17390
17391 2013-05-07 Sofiane Naci <sofiane.naci@arm.com>
17392
17393 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): call splitter.
17394 (aarch64_simd_mov<mode>): New expander.
17395 (aarch64_simd_mov_to_<mode>low): New instruction pattern.
17396 (aarch64_simd_mov_to_<mode>high): Likewise.
17397 (aarch64_simd_mov_from_<mode>low): Likewise.
17398 (aarch64_simd_mov_from_<mode>high): Likewise.
17399 (aarch64_dup_lane<mode>): Update.
17400 (aarch64_dup_lanedi): New instruction pattern.
17401 * config/aarch64/aarch64-protos.h (aarch64_split_simd_move): New prototype.
17402 * config/aarch64/aarch64.c (aarch64_split_simd_move): New function.
17403
17404 2013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17405
17406 * gimple-ssa-strength-reduction.c (lazy_create_slsr_reg): Remove.
17407 (replace_mult_candidate): Remove unnecessary argument; remove
17408 unnecessary parameter from call to introduce_cast_before_cand.
17409 (replace_unconditional_candidate): Remove unnecessary parameter
17410 from call to replace_mult_candidate.
17411 (replace_conditional_candidate): Likewise.
17412 (insert_initializers): Use make_temp_ssa_name.
17413 (introduce_cast_before_cand): Remove unnecessary argument; use
17414 make_temp_ssa_name.
17415 (replace_one_candidate): Remove unnecessary argument; remove
17416 unnecessary parameter from calls to introduce_cast_before_cand.
17417 (replace_profitable_candidates): Remove unnecessary parameters
17418 from calls to replace_one_candidate.
17419
17420 2013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17421
17422 * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
17423 phi def as possibly hiding a basis for a CAND_ADD whose operands
17424 have been commuted in the analysis.
17425 (alloc_cand_and_find_basis): Add parms to call to find_phi_def.
17426
17427 2013-05-07 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
17428
17429 * config/aarch64/aarch64.md
17430 (cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): Restrict the
17431 shift value between 0-4.
17432
17433 2013-05-07 Richard Biener <rguenther@suse.de>
17434
17435 * double-int.h (rshift): New overload.
17436 * double-int.c (rshift): New function.
17437 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Optimize.
17438 (create_reference_ops_from_ref): Remove.
17439 (vn_reference_insert): Use shared ops for constructing the
17440 reference and copy it.
17441
17442 2013-05-07 Richard Biener <rguenther@suse.de>
17443
17444 PR middle-end/57190
17445 * tree-eh.c (sink_clobbers): Properly propagate
17446 SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
17447
17448 2013-05-07 Jakub Jelinek <jakub@redhat.com>
17449
17450 PR tree-optimization/57149
17451 * tree-ssa-uninit.c (uninit_undefined_value_p): New inline.
17452 (can_skip_redundant_opnd, compute_uninit_opnds_pos,
17453 collect_phi_def_edges, execute_late_warn_uninitialized): Use
17454 uninit_undefined_value_p instead of ssa_undefined_value_p.
17455
17456 PR debug/57184
17457 * expr.c (expand_expr_addr_expr_1): Handle COMPOUND_LITERAL_EXPR
17458 for modifier == EXPAND_INITIALIZER.
17459
17460 2013-05-07 Anton Blanchard <anton@samba.org>
17461
17462 * configure.ac (HAVE_LD_LARGE_TOC): Use correct linker emulation
17463 for powerpc64 little endian.
17464 * configure: Regenerate.
17465
17466 2013-05-06 Graham Stott <grahams@btinternet.com>
17467
17468 * expmed.c (init_expmed_rtl): Remove unused fields reg_fld, plus_fld,
17469 mult_fld, sdiv_fld1, udiv_fld1, sdiv_32_fld1, smod_32_fld1,
17470 wide_mult_fld1, wide_lshr_fld1, shift_fld1, shift_mult_fld1,
17471 shift_add_fld1, shift_sub0_fld1, shift_sub1_fld1.
17472
17473 2013-05-06 Graham Stott <grahams@btinternet.com>
17474
17475 * gensupport.c (add_predicate_code): Also exclude SCRATCH from rtx
17476 codes which allow non-lvalues.
17477
17478 2013-05-06 Marc Glisse <marc.glisse@inria.fr>
17479
17480 * tree.c (integer_all_onesp) <COMPLEX_CST>: Test that both
17481 components are all 1s.
17482 (integer_minus_onep): New function.
17483 * tree.h (integer_minus_onep): Declare it.
17484 * fold-const.c (fold_binary_loc) <MULT_EXPR>: Test
17485 integer_minus_onep instead of integer_all_onesp.
17486
17487 2013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
17488
17489 PR target/52933
17490 * config/sh/sh.md (*cmp_div0s_0, *cmp_div0s_1, *movsicc_div0s): Add
17491 variations of these patterns.
17492
17493 2013-05-06 Uros Bizjak <ubizjak@gmail.com>
17494
17495 * config/i386/i386.md (isa): Add x64_sse4 member.
17496 (enabled): Handle x64_sse4.
17497 (*movdi_internal): Add *x->?r alternative to emit pextrq $0,%xmm,%reg
17498 instruction for 64bit SSE4_1 targets. Update insn attributes.
17499 (*movsi_internal): Add *x->?r alternative to emit pextrd $0,%xmm,%reg
17500 instruction for SSE4_1 targets. Update insn attributes.
17501 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
17502 with *sse4_1_pextrd and *sse4_1_pextrq having const_0 selector.
17503 (*vec_extractv2di_1): Merge with *sse4_1_pextrq having
17504 const_1 selector.
17505 (*vec_extractv4si): Rename from *sse4_1_pextrd.
17506 (*vec_extractv4si_zext): Rename from *sse4_1_pextrd_zext.
17507 (*vec_extract<ssevecmodelower>_0 splitters): Merge splitters together.
17508
17509 2013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
17510
17511 PR target/57108
17512 * config/sh/sh.md (tstsi_t_zero_extract_eq): Use QIHISIDI mode iterator.
17513
17514 2013-05-06 Maxim Kuznetsov <maks.kuznetsov@gmail.com>
17515
17516 * final.c (do_assembler_dialects): Don't handle curly braces and
17517 vertical bar escaped by % as dialect delimiters.
17518 (output_asm_insn): Print curly braces and vertical bar if escaped
17519 by % and ASSEMBLER_DIALECT defined.
17520 * doc/tm.texi.in (ASSEMBLER_DIALECT): Document new standard escapes.
17521 * doc/tm.texi: Regenerated.
17522
17523 2013-05-06 Steven Bosscher <steven@gcc.gnu.org>
17524
17525 * config/mips/mips.c: Include tree-pass.h.
17526 (mips_reorg): Split in pre- and post-dbr_schedule parts.
17527 (mips_machine_reorg2): Move mips_reorg post-dbr_schedule parts here.
17528 (pass_mips_machine_reorg2): New machine specific pass.
17529 (insert_pass_mips_machine_reorg2): New pass plugin definition.
17530 (mips_option_override): Register the new pass.
17531 * rtl.h (cleanup_barriers): Remove prototype.
17532 (dbr_schedule): Likewise.
17533 * jump.c (cleanup_barriers): Make static.
17534 * reorg.c (dbr_schedule): Likewise.
17535
17536 2013-05-06 Richard Biener <rguenther@suse.de>
17537
17538 PR tree-optimization/57185
17539 * tree-parloops.c (add_field_for_reduction): Handle anonymous
17540 SSA names properly.
17541
17542 2013-05-06 Uros Bizjak <ubizjak@gmail.com>
17543
17544 PR target/57106
17545 * config/i386/i386.c (add_parameter_dependencies): Add dependence
17546 between "first_arg" and "insn", not "last" and "insn".
17547
17548 2013-05-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17549
17550 * gimple-ssa-strength-reduction.c (slsr_process_phi): Re-enable.
17551 (find_candidates_in_block): Re-enable slsr_process_phi.
17552 (create_phi_basis): Fix double counting of candidate adjustment.
17553
17554 2013-05-06 Richard Biener <rguenther@suse.de>
17555
17556 PR middle-end/57147
17557 * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): If
17558 the edge is also fallthru, preserve it and just clear the
17559 abnormal flag.
17560 * tree-cfgcleanup.c (remove_fallthru_edge): If the edge is
17561 also complex, preserve that and just clear the fallthru flag.
17562 * tree-inline.c (update_ssa_across_abnormal_edges): Also
17563 update virtual operands.
17564
17565 2013-05-06 Alan Modra <amodra@gmail.com>
17566
17567 * config/rs6000/linux.h (DEFAULT_ASM_ENDIAN): Define.
17568 (LINK_OS_LINUX_EMUL): Use ENDIAN_SELECT.
17569 * config/rs6000/linux64.h (DEFAULT_ASM_ENDIAN): Define.
17570 * config/rs6000/sysv4le.h (DEFAULT_ASM_ENDIAN): Define.
17571 (LINK_TARGET_SPEC): Use ENDIAN_SELECT.
17572 * config/rs6000/sysv4.h (DEFAULT_ASM_ENDIAN): Define as -mbig.
17573
17574 2013-05-06 Alan Modra <amodra@gmail.com>
17575
17576 * config/rs6000/sysv4.h (ENDIAN_SELECT): Define, extracted from
17577 (ASM_SPEC): ..here. Emit DEFAULT_ASM_ENDIAN too.
17578 (DEFAULT_ASM_ENDIAN): Define.
17579 (CC1_SPEC, LINK_TARGET_SPEC): Use ENDIAN_SELECT.
17580 * config/rs6000/linux64.h (ASM_SPEC32): Remove endian options.
17581 Update -K PIC clause from sysv4.h.
17582 (ASM_SPEC_COMMON): Use ENDIAN_SELECT.
17583 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Likewise.
17584
17585 2013-05-06 Alan Modra <amodra@gmail.com>
17586
17587 * config/rs6000/rs6000.md (bswapdi 2nd splitter): Don't swap words
17588 twice for little-endian.
17589 (ashrdi3_no_power, ashrdi3): Support little-endian.
17590
17591 2013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
17592
17593 PR target/55303
17594 * config/sh/sh.c (sh_rtx_costs): Handle SMIN and SMAX cases.
17595 * config/sh/sh.md (*clips, uminsi3, *clipu, clipu_one): New insns and
17596 related expanders.
17597 * config/sh/iterators.md (SMIN_SMAX): New code iterator.
17598 * config/sh/predicates.md (arith_reg_or_0_or_1_operand,
17599 clips_min_const_int, clips_max_const_int, clipu_max_const_int):
17600 New predicates.
17601
17602 2013-05-05 Steven Bosscher <steven@gcc.gnu.org>
17603 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17604
17605 * config.gcc (hppa*-*-*): Remove MASK_BIG_SWITCH from CPU default.
17606 * config/pa/pa.opt: Make mbig-switch a no-op.
17607 * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_BIG_SWITCH.
17608 (CASE_VECTOR_MODE): Always return SImode.
17609 (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove code
17610 for the !TARGET_BIG_SWITCH case.
17611 * config/pa/pa-linux.h: Likewise.
17612 * config/pa/pa-openbsd.h: Likewise.
17613 * config/pa/pa-hpux.h: Define TARGET_DEFAULT to 0.
17614 * config/pa/pa.md (short_jump): Remove define_insn.
17615 (casesi): Remove code for the !TARGET_BIG_SWITCH case.
17616 (casesi0): Remove define_insn.
17617 (type): Remove btable_branch.
17618 (pa_combine_type): Likewise.
17619 (in_nullified_branch_delay): Likewise.
17620 (in_call_delay): Likewise.
17621 (define_delay): Likewise.
17622 (define_insn_reservation "Z3"): Likewise.
17623 (define_insn_reservation "Z4"): Likewise.
17624 * config/pa/pa.c (pa_reorg): Remove code for !TARGET_BIG_SWITCH.
17625 (pa_adjust_insn_length): Remove adjustment for btable branches.
17626 * doc/invoke.texi (HPPA Options): Delete documentation for mbig-switch
17627 and mno-big-switch
17628
17629 2013-05-05 Uros Bizjak <ubizjak@gmail.com>
17630
17631 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
17632 from sse2_stored and *sse2_storeq_rex64 using SWI48 mode iterator.
17633 Add m->r,x alternatives.
17634 (*vec_extract<ssevecmodelower>_0 splitters): Merge V2DI and V4SI
17635 splitters using SWI48x mode iterator.
17636 (*vec_extract_v2di_0_sse): Rename from *sse2_storeq. Disable for
17637 TARGET_64BIT. Add m->x alternative.
17638 (*vec_extractv4si_mem): Rename from *vec_ext_v4si_mem.
17639 Add o->x alternative. Enable for TARGET_SSE.
17640 (sse_storeq): Remove expander.
17641 (*vec_extractv2di_1): Enable for TARGET_SSE. Split alternatives
17642 with memory input operand.
17643 (*vec_extractv2di_1 splitter): New.
17644 (*vec_extractv4sf_mem): Rename from *vec_extract_v4sf_mem.
17645 * config/i386/i386.md (ssevecmodelower): New mode attribute.
17646
17647 2013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
17648
17649 * config/rs6000/rs6000.c (INT_P): Reformat. Delete obsolete comment.
17650 (INT_LOWPART): Delete.
17651 (extract_MB): Adjust.
17652 (extract_ME): Adjust.
17653 (print_operand): Adjust.
17654
17655 2013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
17656
17657 * config/rs6000/predicates.md (reg_or_add_cint_operand,
17658 reg_or_sub_cint_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
17659 (reg_or_logical_cint_operand, easy_fp_constant,
17660 logical_const_operand): Delete "CONST_DOUBLE" case.
17661 * config/rs6000/rs6000.c (num_insns_constant_wide): Delete
17662 "HOST_BITS_PER_WIDE_INT == 64" test.
17663 (num_insns_constant): Ditto. Delete CONST_DOUBLE DImode/VOIDmode case.
17664 (build_mask64_2_operands): Delete "HOST_BITS_PER_WIDE_INT >= 64" test.
17665 (rs6000_emit_set_const): Delete CONST_DOUBLE case.
17666 (rs6000_emit_set_long_const): Delete "HOST_BITS_PER_WIDE_INT >= 64"
17667 test.
17668 (includes_rldic_lshift_p, includes_rldicr_lshift_p): Delete
17669 CONST_DOUBLE DImode/VOIDmode case.
17670 (INT_P, INT_LOWPART): Delete CONST_DOUBLE case.
17671 (print_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case. Delete
17672 CONST_DOUBLE VOIDmode case.
17673 (output_toc): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
17674 (rs6000_rtx_costs): Delete CONST_DOUBLE DImode/VOIDmode case.
17675 * config/rs6000/rs6000.md (iordi3, xordi3, splitter for these):
17676 Delete CONST_DOUBLE case.
17677 (splitters for mov FMOVE64 const_double): Delete
17678 "HOST_BITS_PER_WIDE_INT == 32" case. Delete
17679 "HOST_BITS_PER_WIDE_INT >= 64" test.
17680 (splitter for mov DI const_int): Delete "HOST_BITS_PER_WIDE_INT == 32"
17681 case.
17682 (mov DI const_double): Delete.
17683
17684 2013-05-04 Jakub Jelinek <jakub@redhat.com>
17685
17686 * combine.c (combine_simplify_rtx) <case SUBREG>: If nonzero_bits
17687 on op shows all bits zero in mode of a lowpart subreg, return zero.
17688
17689 2013-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
17690
17691 PR target/57150
17692 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Use DFmode
17693 to save TFmode registers and DImode to save TImode registers for
17694 caller save operations.
17695 (HARD_REGNO_CALL_PART_CLOBBERED): TFmode and TDmode do not need to
17696 mark being partially clobbered since they only use the first
17697 double word.
17698
17699 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): TFmode
17700 and TDmode only use the upper 64-bits of each VSX register.
17701
17702 2013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17703
17704 * gimple-ssa-strength-reduction.c (slsr_process_phi): Disable.
17705 (find_candidates_in_block): Disable slsr_process_phi.
17706
17707 2013-05-03 Guozhi Wei <carrot@google.com>
17708
17709 * coverage.c (coverage_obj_init): Move the construction of gcov
17710 constructor to ...
17711 (build_init_ctor): ... here.
17712
17713 2013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17714
17715 * gimple-ssa-strength-reduction.c (cand_kind): Add CAND_PHI.
17716 (slsr_cand_d): Redefine def_phi.
17717 (stride_status, phi_adjust_status, count_phis_status): New enums.
17718 (find_phi_def): New.
17719 (find_basis_for_base_expr): New.
17720 (find_basis_for_candidate): Handle hidden bases.
17721 (alloc_cand_and_find_basis): Handle phi candidates.
17722 (slsr_process_phi): New.
17723 (create_mul_ssa_cand): Exclude phi base candidates; use integer_onep.
17724 (create_mul_imm_cand): Likewise.
17725 (create_add_ssa_cand): Exclude phi base candidates.
17726 (create_add_imm_cand): Likewise.
17727 (slsr_process_cast): Likewise.
17728 (slsr_process_copy): Likewise.
17729 (find_candidates_in_block): Handle phi candidates.
17730 (dump_candidate): Likewise.
17731 (unconditional_cands): Delete.
17732 (unconditional_cands_with_known_stride_p): Delete.
17733 (phi_dependent_cand_p): New.
17734 (cand_increment): Handle phi-dependent candidates.
17735 (replace_dependent): Delete.
17736 (replace_mult_candidate): New.
17737 (replace_unconditional_candidate): New.
17738 (incr_vec_index): Move to avoid forward reference.
17739 (create_add_on_incoming_edge): New.
17740 (create_phi_basis): New.
17741 (replace_dependents): Delete.
17742 (replace_conditional_candidate): New.
17743 (phi_add_costs): New.
17744 (replace_uncond_cands_and_profitable_phis): New.
17745 (record_increment): Handle phi adjustments.
17746 (record_phi_increments): New.
17747 (record_increments): Handle phi adjustments.
17748 (phi_incr_cost): New.
17749 (lowest_cost_path): Handle phis.
17750 (total_savings): Likewise.
17751 (analyze_increments): Likewise.
17752 (ncd_with_phi): New.
17753 (ncd_of_cand_and_phis): New.
17754 (nearest_common_dominator_for_cands): Handle phi increments.
17755 (all_phi_incrs_profitable): New.
17756 (replace_profitable_candidates): Handle phi-dependent candidates.
17757 (analyze_candidates_and_replace): Likewise.
17758
17759 2013-05-03 Teresa Johnson <tejohnson@google.com>
17760
17761 PR bootstrap/57154
17762 * sched-rgn.c (compute_dom_prob_ps): Ensure accumulated probabilities
17763 do not exceed REG_BR_PROB_BASE.
17764
17765 2013-05-03 Jeff Law <law@redhat.com>
17766
17767 PR tree-optimization/57144
17768 * tree-vrp.c (simplify_cond_using_ranges): Verify the constant
17769 operand of the condition will bit into the new type when eliminating
17770 a cast feeding a condition.
17771
17772 2013-05-03 Jakub Jelinek <jakub@redhat.com>
17773
17774 PR rtl-optimization/57130
17775 * combine.c (make_compound_operation) <case SUBREG>: Pass SET instead
17776 of COMPARE as in_code to the recursive call if needed.
17777
17778 2013-05-03 Uros Bizjak <ubizjak@gmail.com>
17779
17780 * config/i386/i386.md (isa): Add x64_sse4_noavx and x64_avx members.
17781 (enabled): Handle new members.
17782 * config/i386/sse.md (*vec_concatv2si): Merge from
17783 *vec_concatv2si_sse2 and vec_concatv2si_sse.
17784 (vec_concatv2di): Merge with *vec_concatv2di_rex64.
17785
17786 2013-05-03 Joern Rennecke <joern.rennecke@embecosm.com>
17787
17788 PR tree-optimization/57027
17789 * tree-ssa-math-opts.c (convert_mult_to_fma): When checking
17790 for fnms opportunity, check we got the prerequisite kind
17791 of tree / gimple before using accessor functions.
17792
17793 2013-05-03 Richard Biener <rguenther@suse.de>
17794
17795 * double-int.h (lshift): New overload without precision
17796 and arith argument.
17797 (operator *=, operator +=, operator -=): Move ...
17798 * double-int.c (operator *=, operator +=, operator -=): ... here
17799 and implement more efficiently.
17800 (mul_double_with_sign): Remove.
17801 (lshift_double): Adjust to take unsinged shift argument, push
17802 dispatching code to callers.
17803 (mul_double_wide_with_sign): Add early out for callers that
17804 are not interested in high parts or overflow.
17805 (lshift): New function.
17806 (lshift, rshift, alshift, arshift, llshift, lrshift): Add
17807 dispatch code here.
17808 (lrotate, rrotate): Use logical shifts.
17809 * expr.c (get_inner_reference): Use lshift.
17810 * fixed-value.c (do_fixed_divide): Likewise.
17811 * tree-dfa.c (get_ref_base_and_extent): Likewise.
17812 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
17813 (indirect_refs_may_alias_p): Likewise.
17814 (stmt_kills_ref_p_1): Likewise.
17815
17816 2013-05-03 Vidya Praveen <vidyapraveen@arm.com>
17817
17818 * config/aarch64/aarch64-simd.md (simd_fabd): Correct the description.
17819
17820 2013-05-03 Vidya Praveen <vidyapraveen@arm.com>
17821
17822 * config/aarch64/aarch64-simd.md (*fabd_scalar<mode>3): Support
17823 scalar form of FABD instruction.
17824
17825 2013-05-02 Vladimir Makarov <vmakarov@redhat.com>
17826
17827 * lra-constraints.c (process_alt_operands): Add checking alt
17828 number to choose the best alternative.
17829
17830 2013-05-02 Richard Biener <rguenther@suse.de>
17831
17832 * tree-eh.c (cleanup_empty_eh_merge_phis): Remove rename_virts
17833 bitmap and its handling.
17834 (pass_cleanup_eh): Set todo_flags_finish to TODO_verify_ssa.
17835
17836 2013-05-02 Richard Biener <rguenther@suse.de>
17837
17838 PR middle-end/57140
17839 * tree-inline.c (copy_loops): Properly handle removed loops.
17840 (copy_cfg_body): Mark destination loops for fixup if source
17841 loops needed fixup.
17842
17843 2013-05-02 Greta Yorsh <Greta.Yorsh@arm.com>
17844
17845 PR target/56732
17846 * config/arm/arm.c (arm_expand_epilogue): Check really_return before
17847 generating simple_return for naked functions.
17848
17849 2013-05-02 Martin Jambor <mjambor@suse.cz>
17850
17851 PR middle-end/56988
17852 * ipa-prop.h (ipa_agg_replacement_value): New flag by_ref.
17853 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also check that by_ref
17854 flags match.
17855 (find_aggregate_values_for_callers_subset): Fill in the by_ref flag of
17856 ipa_agg_replacement_value structures.
17857 (known_aggs_to_agg_replacement_list): Likewise.
17858 * ipa-prop.c (write_agg_replacement_chain): Stream by_ref flag.
17859 (read_agg_replacement_chain): Likewise.
17860 (ipcp_transform_function): Also check that by_ref flags match.
17861
17862 2013-05-02 Richard Biener <rguenther@suse.de>
17863
17864 * graphds.h (struct graph): Add obstack member.
17865 * graphds.c (new_graph): Initialize obstack and allocate
17866 vertices from it.
17867 (add_edge): Allocate edge from the obstack.
17868 (free_graph): Free the obstack instead of all edges and vertices.
17869
17870 2013-05-02 Teresa Johnson <tejohnson@google.com>
17871
17872 * loop-unswitch.c (unswitch_loop): Use helper routines with rounding
17873 divides.
17874 * cfg.c (update_bb_profile_for_threading): Ditto.
17875 * tree-inline.c (copy_bb): Ditto.
17876 (copy_edges_for_bb): Ditto.
17877 (initialize_cfun): Ditto.
17878 (copy_cfg_body): Ditto.
17879 (expand_call_inline): Ditto.
17880 * ipa-inline-analysis.c (estimate_edge_size_and_time): Ditto.
17881 (estimate_node_size_and_time): Ditto.
17882 (inline_merge_summary): Ditto.
17883 * cgraphclones.c (cgraph_clone_edge): Ditto.
17884 (cgraph_clone_node): Ditto.
17885 * sched-rgn.c (compute_dom_prob_ps): Ditto.
17886 (compute_trg_info): Ditto.
17887
17888 2013-05-02 Ian Bolton <ian.bolton@arm.com>
17889
17890 * config/aarch64/aarch64.md (movsi_aarch64): Only allow to/from
17891 S reg when fp attribute set.
17892 (movdi_aarch64): Only allow to/from D reg when fp attribute set.
17893
17894 2013-05-02 Ian Bolton <ian.bolton@arm.com>
17895
17896 * config/aarch64/aarch64.md (*and_one_cmpl<mode>3_compare0):
17897 New pattern.
17898 (*and_one_cmplsi3_compare0_uxtw): Likewise.
17899 (*and_one_cmpl_<SHIFT:optab><mode>3_compare0): Likewise.
17900 (*and_one_cmpl_<SHIFT:optab>si3_compare0_uxtw): Likewise.
17901
17902 2013-05-02 Richard Biener <rguenther@suse.de>
17903
17904 * tree-scalar-evolution.c (scev_info_hasher): Remove.
17905 (struct instantiate_cache_entry): New type.
17906 (struct instantiate_cache_entry_hasher): New hashtable descriptor.
17907 (struct instantiate_cache_type): New type.
17908 (set_instantiated_value, get_instantiated_value): Remove.
17909 (get_instantiated_value_entry): New function.
17910 (instantiate_scev_name): Use the new cache and adjust.
17911 (instantiate_scev_poly): Adjust.
17912 (instantiate_scev_binary): Likewise.
17913 (instantiate_array_ref): Likewise.
17914 (instantiate_scev_convert): Likewise.
17915 (instantiate_scev_not): Likewise.
17916 (instantiate_scev_3): Likewise.
17917 (instantiate_scev_2): Likewise.
17918 (instantiate_scev_r): Likewise.
17919 (instantiate_scev): Likewise.
17920 (resolve_mixers): Likewise.
17921
17922 2013-05-01 Vladimir Makarov <vmakarov@redhat.com>
17923
17924 PR target/57091
17925 * lra-constraints.c (best_small_class_operands_num): Remove.
17926 (process_alt_operands): Remove small_class_operands_num. Take
17927 small classes operands into losers and only if the operand is not
17928 matched. Modify debugging output.
17929 (curr_insn_transform): Remove best_small_class_operands_num.
17930 Print insn name.
17931
17932 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
17933
17934 * config/aarch64/aarch64-builtins.c
17935 (aarch64_gimple_fold_builtin.c): Fold more modes for reduc_splus_.
17936 * config/aarch64/aarch64-simd-builtins.def
17937 (reduc_splus_): Add new modes.
17938 (reduc_uplus_): New.
17939 * config/aarch64/aarch64-simd.md (aarch64_addvv4sf): Remove.
17940 (reduc_uplus_v4sf): Likewise.
17941 (reduc_splus_v4sf): Likewise.
17942 (aarch64_addv<mode>): Likewise.
17943 (reduc_uplus_<mode>): Likewise.
17944 (reduc_splus_<mode>): Likewise.
17945 (aarch64_addvv2di): Likewise.
17946 (reduc_uplus_v2di): Likewise.
17947 (reduc_splus_v2di): Likewise.
17948 (aarch64_addvv2si): Likewise.
17949 (reduc_uplus_v2si): Likewise.
17950 (reduc_splus_v2si): Likewise.
17951 (reduc_<sur>plus_<mode>): New.
17952 (reduc_<sur>plus_v2di): Likewise.
17953 (reduc_<sur>plus_v2si): Likewise.
17954 (reduc_<sur>plus_v4sf): Likewise.
17955 (aarch64_addpv4sf): Likewise.
17956 * config/aarch64/arm_neon.h
17957 (vaddv<q>_<s,u,f><8, 16, 32, 64): Rewrite using builtins.
17958 * config/aarch64/iterators.md (unspec): Remove UNSPEC_ADDV,
17959 add UNSPEC_SADDV, UNSPEC_UADDV.
17960 (SUADDV): New.
17961 (sur): Add UNSPEC_SADDV, UNSPEC_UADDV.
17962
17963 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
17964
17965 * config/aarch64/arm_neon.h
17966 (v<max,min><nm><q><v>_<sfu><8, 16, 32, 64>): Rewrite using builtins.
17967
17968 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
17969
17970 * config/aarch64/aarch64-builtins
17971 (aarch64_gimple_fold_builtin): Fold reduc_<su><maxmin>_ builtins.
17972
17973 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
17974
17975 * config/aarch64/aarch64-simd-builtins.def
17976 (reduc_smax_): New.
17977 (reduc_smin_): Likewise.
17978 (reduc_umax_): Likewise.
17979 (reduc_umin_): Likewise.
17980 (reduc_smax_nan_): Likewise.
17981 (reduc_smin_nan_): Likewise.
17982 (fmax): Remove.
17983 (fmin): Likewise.
17984 (smax): Update for V2SF, V4SF and V2DF modes.
17985 (smin): Likewise.
17986 (smax_nan): New.
17987 (smin_nan): Likewise.
17988 * config/aarch64/aarch64-simd.md (<maxmin><mode>3): Rename to...
17989 (<su><maxmin><mode>3): ...This, refactor.
17990 (s<maxmin><mode>3): New.
17991 (<maxmin_uns><mode>3): Likewise.
17992 (reduc_<maxmin_uns>_<mode>): Refactor.
17993 (reduc_<maxmin_uns>_v4sf): Likewise.
17994 (reduc_<maxmin_uns>_v2si): Likewise.
17995 (aarch64_<fmaxmin><mode>: Remove.
17996 * config/aarch64/arm_neon.h (vmax<q>_f<32,64>): Rewrite to use
17997 new builtin names.
17998 (vmin<q>_f<32,64>): Likewise.
17999 * config/iterators.md (unspec): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
18000 (FMAXMIN): New.
18001 (su): Add mappings for smax, smin, umax, umin.
18002 (maxmin): New.
18003 (FMAXMINV): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
18004 (FMAXMIN): Rename as...
18005 (FMAXMIN_UNS): ...This.
18006 (maxminv): Remove.
18007 (fmaxminv): Likewise.
18008 (fmaxmin): Likewise.
18009 (maxmin_uns): New.
18010 (maxmin_uns_op): Likewise.
18011
18012 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18013
18014 * config/aarch64/arm_neon.h
18015 (vac<ge, gt><sd>_f<32, 64>): Rename to...
18016 (vca<ge, gt><sd>_f<32, 64>): ...this, reimpliment in C.
18017 (vca<ge, gt, lt, le><q>_f<32, 64>): Reimpliment in C.
18018
18019 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18020
18021 * config/aarch64/aarch64-simd.md (*aarch64_fac<optab><mode>): New.
18022 * config/aarch64/iterators.md (FAC_COMPARISONS): New.
18023
18024 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18025
18026 * config/aarch64/aarch64-simd.md
18027 (vcond<mode>_internal): Handle special cases for constant masks.
18028 (vcond<mode><mode>): Allow nonmemory_operands for outcome vectors.
18029 (vcondu<mode><mode>): Likewise.
18030 (vcond<v_cmp_result><mode>): New.
18031
18032 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18033
18034 * config/aarch64/aarch64-builtins.c (BUILTIN_VALLDI): Define.
18035 (aarch64_fold_builtin): Add folding for cm<eq,ge,gt,tst>.
18036 * config/aarch64/aarch64-simd-builtins.def
18037 (cmeq): Update to BUILTIN_VALLDI.
18038 (cmgt): Likewise.
18039 (cmge): Likewise.
18040 (cmle): Likewise.
18041 (cmlt): Likewise.
18042 * config/aarch64/arm_neon.h
18043 (vc<eq, lt, le, gt, ge, tst><z><qsd>_<fpsu><8,16,32,64>): Remap
18044 to builtins or C as appropriate.
18045
18046 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
18047
18048 * config/aarch64/aarch64-simd-builtins.def (cmhs): Rename to...
18049 (cmgeu): ...This.
18050 (cmhi): Rename to...
18051 (cmgtu): ...This.
18052 * config/aarch64/aarch64-simd.md
18053 (simd_mode): Add SF.
18054 (aarch64_vcond_internal): Use new names for unsigned comparison insns.
18055 (aarch64_cm<optab><mode>): Rewrite to not use UNSPECs.
18056 * config/aarch64/aarch64.md (*cstore<mode>_neg): Rename to...
18057 (cstore<mode>_neg): ...This.
18058 * config/aarch64/iterators.md
18059 (VALLF): new.
18060 (unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>.
18061 (COMPARISONS): New.
18062 (UCOMPARISONS): Likewise.
18063 (optab): Add missing comparisons.
18064 (n_optab): New.
18065 (cmp_1): Likewise.
18066 (cmp_2): Likewise.
18067 (CMP): Likewise.
18068 (cmp): Remove.
18069 (VCMP_S): Likewise.
18070 (VCMP_U): Likewise.
18071 (V_cmp_result): Add DF, SF modes.
18072 (v_cmp_result): Likewise.
18073 (v): Likewise.
18074 (vmtype): Likewise.
18075 * config/aarch64/predicates.md (aarch64_reg_or_fp_zero): New.
18076
18077 2013-05-01 Greta Yorsh <Greta.Yorsh@arm.com>
18078
18079 * config/arm/thumb2.md (thumb2_smaxsi3,thumb2_sminsi3): Convert
18080 define_insn to define_insn_and_split.
18081 (thumb32_umaxsi3,thumb2_uminsi3): Likewise.
18082 (thumb2_negdi2,thumb2_abssi2,thumb2_neg_abssi2): Likewise.
18083 (thumb2_mov_scc,thumb2_mov_negscc,thumb2_mov_notscc): Likewise.
18084 (thumb2_movsicc_insn,thumb2_and_scc,thumb2_ior_scc): Likewise.
18085 (thumb2_negscc): Likewise.
18086
18087 2013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
18088
18089 * config/arm/thumb2.md (thumb2_incscc, thumb2_decscc): Delete.
18090
18091 2013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
18092
18093 * config/arm/thumb2.md: Remove trailing whitespaces.
18094
18095 2013-04-30 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
18096
18097 * explow.c (plus_constant): Pass "mode" to immed_double_int_const.
18098 Use gen_int_mode rather than GEN_INT.
18099
18100 2013-04-30 H.J. Lu <hongjiu.lu@intel.com>
18101
18102 * value-prof.c (stream_in_histogram_value): Remove the strayed
18103 debug_gimple_stmt.
18104
18105 2013-04-30 Richard Biener <rguenther@suse.de>
18106
18107 PR middle-end/57122
18108 * cfghooks.c (split_edge): Properly check for the loop latch edge.
18109
18110 2013-04-30 Richard Biener <rguenther@suse.de>
18111
18112 PR middle-end/57107
18113 * tree-eh.c (sink_clobbers): Preserve virtual SSA form.
18114
18115 2013-04-30 Andrey Belevantsev <abel@ispras.ru>
18116
18117 PR rtl-optimization/56957
18118 PR rtl-optimization/57105
18119 * sel-sched.c (move_op_orig_expr_found): Remove insn_emitted
18120 variable. Use just INSN_UID for determining whether an insn
18121 should be only disconnected from the insn stream.
18122 * sel-sched-ir.h (EXPR_WAS_CHANGED): Remove.
18123
18124 2013-04-30 Jakub Jelinek <jakub@redhat.com>
18125
18126 PR tree-optimization/57104
18127 * tsan.c (instrument_expr): Don't instrument accesses to
18128 DECL_HARD_REGISTER VAR_DECLs.
18129
18130 2013-04-30 Richard Biener <rguenther@suse.de>
18131
18132 * function.h (loops_for_fn): New inline function.
18133 (set_loops_for_fn): Likewise.
18134 * cfgloop.h (place_new_loop): Add struct function parameter.
18135 (get_loop): Likewise.
18136 (get_loops): Likewise.
18137 (number_of_loops): Likewise.
18138 (fel_next): Adjust.
18139 (fel_init): Likewise.
18140 * cfg.c (get_loop_copy): Adjust.
18141 * cfgloop.c (flow_loops_dump): Likewise.
18142 (record_loop_exits): Likewise.
18143 (verify_loop_structure): Likewise.
18144 * cfgloopanal.c (mark_irreducible_loops): Likewise.
18145 (estimate_reg_pressure_cost): Likewise.
18146 (mark_loop_exit_edges): Likewise.
18147 * cfgloopmanip.c (place_new_loop): Likewise.
18148 (add_loop): Likewise.
18149 (duplicate_loop): Likewise.
18150 * graph.c (draw_cfg_nodes): Likewise.
18151 * graphite-clast-to-gimple.c (translate_clast_user): Likewise.
18152 * graphite-sese-to-poly.c (build_scop_scattering): Likewise.
18153 (extract_affine_chrec): Likewise.
18154 (build_scop_iteration_domain): Likewise.
18155 * graphite.c (graphite_initialize): Likewise.
18156 * ira-build.c (create_loop_tree_nodes): Likewise.
18157 (more_one_region_p): Likewise.
18158 (rebuild_regno_allocno_maps): Likewise.
18159 (mark_loops_for_removal): Likewise.
18160 (mark_all_loops_for_removal): Likewise.
18161 (remove_unnecessary_regions): Likewise.
18162 (ira_build): Likewise.
18163 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
18164 * loop-init.c (fix_loop_structure): Likewise.
18165 (gate_rtl_move_loop_invariants): Likewise.
18166 (gate_rtl_unswitch): Likewise.
18167 (gate_rtl_unroll_and_peel_loops): Likewise.
18168 (rtl_doloop): Likewise.
18169 * lto-streamer-in.c (input_cfg): Likewise.
18170 * lto-streamer-out.c (output_cfg): Likewise.
18171 * modulo-sched.c (sms_schedule): Likewise.
18172 * predict.c (tree_estimate_probability): Likewise.
18173 (tree_estimate_probability_driver): Likewise.
18174 (estimate_loops): Likewise.
18175 * tree-cfg.c (fixup_loop_arrays_after_move): Likewise.
18176 (move_sese_region_to_fn): Likewise.
18177 (debug_loop_num): Likewise.
18178 * tree-chrec.c (chrec_evaluate): Likewise.
18179 (hide_evolution_in_other_loops_than_loop): Likewise.
18180 (chrec_component_in_loop_num): Likewise.
18181 (reset_evolution_in_loop): Likewise.
18182 (evolution_function_is_invariant_rec_p): Likewise.
18183 * tree-if-conv.c (main_tree_if_conversion): Likewise.
18184 * tree-inline.c (copy_loops): Likewise.
18185 (copy_cfg_body): Likewise.
18186 (tree_function_versioning): Likewise.
18187 * tree-loop-distribution.c (rdg_flag_loop_exits): Likewise.
18188 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
18189 Likewise.
18190 (add_to_evolution_1): Likewise.
18191 (scev_const_prop): Likewise.
18192 * tree-scalar-evolution.h (get_chrec_loop): Likewise.
18193 * tree-ssa-loop-ch.c (copy_loop_headers): Likewise.
18194 * tree-ssa-loop-im.c (analyze_memory_references): Likewise.
18195 (tree_ssa_lim_initialize): Likewise.
18196 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Likewise.
18197 (verify_loop_closed_ssa): Likewise.
18198 * tree-ssa-loop.c (tree_ssa_loop_init): Likewise.
18199 (tree_ssa_loop_im): Likewise.
18200 (tree_ssa_loop_unswitch): Likewise.
18201 (tree_vectorize): Likewise.
18202 (check_data_deps): Likewise.
18203 (tree_ssa_loop_ivcanon): Likewise.
18204 (tree_ssa_loop_bounds): Likewise.
18205 (tree_complete_unroll): Likewise.
18206 (tree_complete_unroll_inner): Likewise.
18207 (tree_parallelize_loops): Likewise.
18208 (tree_ssa_loop_prefetch): Likewise.
18209 (tree_ssa_loop_ivopts): Likewise.
18210 * tree-ssa.c (execute_update_addresses_taken): Liekwise.
18211 * tree-vectorizer.c (vectorize_loops): Likewise.
18212
18213 2013-04-29 Mike Frysinger <vapier@gentoo.org>
18214
18215 * config/arm/bpabi.h (EABI_LINK_SPEC): Define.
18216 (BPABI_LINK_SPEC): Use new EABI_LINK_SPEC.
18217 * config/arm/linux-eabi.h (LINK_SPEC): Replace BE8_LINK_SPEC
18218 with EABI_LINK_SPEC.
18219
18220 2013-04-29 Uros Bizjak <ubizjak@gmail.com>
18221
18222 PR target/44578
18223 * config/i386/i386.md (*zero_extendsidi2): Add "!" to m->?*y
18224 alternative.
18225
18226 2013-04-29 Vladimir Makarov <vmakarov@redhat.com>
18227
18228 PR target/57097
18229 * lra-constraints.c (process_alt_operands): Discourage a bit more
18230 using memory for pseudos. Print cost dump for alternatives.
18231 Modify cost values for conflicts with early clobbers.
18232 (curr_insn_transform): Spill pseudos reassigned to NO_REGS.
18233
18234 2013-04-29 Uros Bizjak <ubizjak@gmail.com>
18235
18236 PR target/57098
18237 * config/i386/i386.c (ix86_expand_vec_perm): Validize constant memory.
18238
18239 2013-04-29 Ian Bolton <ian.bolton@arm.com>
18240
18241 * config/aarch64/aarch64.md (movsi_aarch64): Support LDR/STR
18242 from/to S register.
18243 (movdi_aarch64): Support LDR/STR from/to D register.
18244
18245 2013-04-29 Ian Bolton <ian.bolton@arm.com>
18246
18247 * common/config/aarch64/aarch64-common.c: Enable REE pass at O2
18248 or higher by default.
18249
18250 2013-04-29 Richard Biener <rguenther@suse.de>
18251
18252 PR middle-end/57075
18253 * tree-inline.c (copy_edges_for_bb): Still split the bbs,
18254 even if not adding abnormal edges for calls that can make
18255 abnormal gotos.
18256
18257 2013-04-29 Richard Biener <rguenther@suse.de>
18258
18259 PR middle-end/57103
18260 * tree-cfg.c (move_stmt_op): Fix condition under which to update
18261 TREE_BLOCK.
18262 (move_stmt_r): Remove redundant checking.
18263
18264 2013-04-29 Teresa Johnson <tejohnson@google.com>
18265
18266 PR bootstrap/57077
18267 * basic-block.h (apply_scale): New function.
18268 (apply_probability): Use apply_scale.
18269 * gimple-streamer-in.c (input_bb): Ditto.
18270 * lto-streamer-in.c (input_cfg): Ditto.
18271 * lto-cgraph.c (merge_profile_summaries): Ditto.
18272 * tree-optimize.c (execute_fixup_cfg): Ditto.
18273 * tree-inline.c (copy_bb): Update comment to use apply_scale.
18274 (copy_edges_for_bb): Ditto.
18275 (copy_cfg_body): Ditto.
18276
18277 2013-04-29 Tom de Vries <tom@codesourcery.com>
18278
18279 * tree-ssa-tail-merge.c (find_same_succ_bb): Skip loop latch bbs.
18280 (replace_block_by): Don't set LOOPS_NEED_FIXUP.
18281 (tail_merge_optimize): Handle current_loops == NULL.
18282
18283 2013-04-26 Jeff Law <law@redhat.com>
18284
18285 * tree-vrp.c (range_fits_type_p): Move to earlier point in file.
18286 (simplify_cond_using_ranges): Generalize code to simplify
18287 COND_EXPRs where one argument is a constant and the other
18288 is an SSA_NAME created by an integral type conversion.
18289
18290 2013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18291
18292 * config/arm/arm.md (store_minmaxsi): Use only when
18293 optimize_insn_for_size_p.
18294
18295 2013-04-29 Christian Bruel <christian.bruel@st.com>
18296
18297 PR target/57108
18298 * sh.md (tstsi_t_zero_extract_eq): Set mode for operand 0.
18299
18300 2013-04-29 Richard Biener <rguenther@suse.de>
18301
18302 PR middle-end/57089
18303 * omp-low.c (expand_omp_taskreg): If the parent function had a broken
18304 loop tree make sure to schedule a fixup for the child as well.
18305 (expand_omp_for_generic): Properly add loops.
18306 (expand_omp_for_static_nochunk): Likewise.
18307 (expand_omp_for_static_chunk): Likewise.
18308 (expand_omp_for): For the degenerate case fixup loops.
18309 (expand_omp_sections): Fix default bb placement in loops.
18310 (expand_omp_atomic_pipeline): Properly add loops.
18311
18312 2013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18313
18314 * predict.c: Fix typo in comment above #define PROB_VERY_UNLIKELY.
18315
18316 2013-04-29 Tom de Vries <tom@codesourcery.com>
18317
18318 * tree-ssa-tail-merge.c: Update header comment.
18319
18320 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18321
18322 * config/aarch64/arm_neon.h
18323 (vcvt<sd>_f<32,64>_s<32,64>): Rewrite in C.
18324 (vcvt<q>_f<32,64>_s<32,64>): Rewrite using builtins.
18325 (vcvt_<high_>_f<32,64>_f<32,64>): Likewise.
18326 (vcvt<qsd>_<su><32,64>_f<32,64>): Likewise.
18327 (vcvta<qsd>_<su><32,64>_f<32,64>): Likewise.
18328 (vcvtm<qsd>_<su><32,64>_f<32,64>): Likewise.
18329 (vcvtn<qsd>_<su><32,64>_f<32,64>): Likewise.
18330 (vcvtp<qsd>_<su><32,64>_f<32,64>): Likewise.
18331
18332 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18333
18334 * config/aarch64/aarch64-simd.md
18335 (<optab><VDQF:mode><fcvt_target>2): New, maps to fix, fixuns.
18336 (<fix_trunc_optab><VDQF:mode><fcvt_target>2): New, maps to
18337 fix_trunc, fixuns_trunc.
18338 (ftrunc<VDQF:mode>2): New.
18339 * config/aarch64/iterators.md (optab): Add fix, fixuns.
18340 (fix_trunc_optab): New.
18341
18342 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18343
18344 * config/aarch64/aarch64-builtins.c
18345 (aarch64_builtin_vectorized_function): Vectorize over ifloorf,
18346 iceilf, lround, iroundf.
18347
18348 2013-04-29 Uros Bizjak <ubizjak@gmail.com>
18349
18350 PR target/54349
18351 * config/i386/i386.h (enum ix86_tune_indices)
18352 <X86_TUNE_INTER_UNIT_MOVES_TO_VEC, X86_TUNE_INTER_UNIT_MOVES_FROM_VEC>:
18353 New, split from X86_TUNE_INTER_UNIT_MOVES.
18354 <X86_TUNE_INTER_UNIT_MOVES>: Remove.
18355 (TARGET_INTER_UNIT_MOVES_TO_VEC): New define.
18356 (TARGET_INTER_UNIT_MOVES_FROM_VEC): Ditto.
18357 (TARGET_INTER_UNIT_MOVES): Remove.
18358 * config/i386/i386.c (initial_ix86_tune_features): Update.
18359 Disable X86_TUNE_INTER_UNIT_MOVES_FROM_VEC for m_ATHLON_K8 only.
18360 (ix86_expand_convert_uns_didf_sse): Use
18361 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
18362 (ix86_expand_vector_init_one_nonzero): Ditto.
18363 (ix86_expand_vector_init_interleave): Ditto.
18364 (inline_secondary_memory_needed): Return true for moves from SSE class
18365 registers for !TARGET_INTER_UNIT_MOVES_FROM_VEC targets and for moves
18366 to SSE class registers for !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
18367 * config/i386/constraints.md (Yi, Ym): Depend on
18368 TARGET_INTER_UNIT_MOVES_TO_VEC.
18369 (Yj, Yn): New constraints.
18370 * config/i386/i386.md (*movdi_internal): Change constraints of
18371 operand 1 from Yi to Yj and from Ym to Yn.
18372 (*movsi_internal): Ditto.
18373 (*movdf_internal): Ditto.
18374 (*movsf_internal): Ditto.
18375 (*float<SWI48x:mode><X87MODEF:mode>2_1): Use
18376 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
18377 (*float<SWI48x:mode><X87MODEF:mode>2_1 splitters): Ditto.
18378 (floatdi<X87MODEF:mode>2_i387_with_xmm): Ditto.
18379 (floatdi<X87MODEF:mode>2_i387_with_xmm splitters): Ditto.
18380 * config/i386/sse.md (movdi_to_sse): Ditto.
18381 (sse2_stored): Change constraint of operand 1 from Yi to Yj.
18382 Use TARGET_INTER_UNIT_MOVES_FROM_VEC instead of
18383 TARGET_INTER_UNIT_MOVES.
18384 (sse_storeq_rex64): Change constraint of operand 1 from Yi to Yj.
18385 (sse_storeq_rex64 splitter): Use TARGET_INTER_UNIT_MOVES_FROM_VEC
18386 instead of TARGET_INTER_UNIT_MOVES.
18387 * config/i386/mmx.md (*mov<mode>_internal): Change constraint of
18388 operand 1 from Yi to Yj and from Ym to Yn.
18389
18390 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18391
18392 * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi_): New.
18393 (float_truncate_hi_): Likewise.
18394 (float_extend_lo_): Likewise.
18395 (float_truncate_lo_): Likewise.
18396 * config/aarch64/aarch64-simd.md (vec_unpacks_lo_v4sf): New.
18397 (aarch64_float_extend_lo_v2df): Likewise.
18398 (vec_unpacks_hi_v4sf): Likewise.
18399 (aarch64_float_truncate_lo_v2sf): Likewise.
18400 (aarch64_float_truncate_hi_v4sf): Likewise.
18401 (vec_pack_trunc_v2df): Likewise.
18402 (vec_pack_trunc_df): Likewise.
18403
18404 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18405
18406 * config/aarch64/aarch64-builtins.c
18407 (aarch64_fold_builtin): Fold float conversions.
18408 * config/aarch64/aarch64-simd-builtins.def
18409 (floatv2si, floatv4si, floatv2di): New.
18410 (floatunsv2si, floatunsv4si, floatunsv2di): Likewise.
18411 * config/aarch64/aarch64-simd.md
18412 (<optab><fcvt_target><VDQF:mode>2): New, expands to float and floatuns.
18413 * config/aarch64/iterators.md (FLOATUORS): New.
18414 (optab): Add float, floatuns.
18415 (su_optab): Likewise.
18416
18417 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18418
18419 * config/aarch64/aarch64-builtins.c
18420 (aarch64_builtin_vectorized_function): Use new names for
18421 fcvt builtins.
18422 * config/aarch64/aarch64-simd-builtins.def (fcvtzs): Split as...
18423 (lbtruncv2sf, lbtruncv4sf, lbtruncv2df): ...This.
18424 (fcvtzu): Split as...
18425 (lbtruncuv2sf, lbtruncuv4sf, lbtruncuv2df): ...This.
18426 (fcvtas): Split as...
18427 (lroundv2sf, lroundv4sf, lroundv2df, lroundsf, lrounddf): ...This.
18428 (fcvtau): Split as...
18429 (lrounduv2sf, lrounduv4sf, lrounduv2df, lroundusf, lroundudf): ...This.
18430 (fcvtps): Split as...
18431 (lceilv2sf, lceilv4sf, lceilv2df): ...This.
18432 (fcvtpu): Split as...
18433 (lceiluv2sf, lceiluv4sf, lceiluv2df, lceilusf, lceiludf): ...This.
18434 (fcvtms): Split as...
18435 (lfloorv2sf, lfloorv4sf, lfloorv2df): ...This.
18436 (fcvtmu): Split as...
18437 (lflooruv2sf, lflooruv4sf, lflooruv2df, lfloorusf, lfloorudf): ...This.
18438 (lfrintnv2sf, lfrintnv4sf, lfrintnv2df, lfrintnsf, lfrintndf): New.
18439 (lfrintnuv2sf, lfrintnuv4sf, lfrintnuv2df): Likewise.
18440 (lfrintnusf, lfrintnudf): Likewise.
18441 * config/aarch64/aarch64-simd.md
18442 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Convert to
18443 define_insn.
18444 (aarch64_fcvt<frint_suffix><su><mode>): Remove.
18445 * config/aarch64/iterators.md (FCVT): Include UNSPEC_FRINTN.
18446 (fcvt_pattern): Likewise.
18447
18448 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18449
18450 * config/aarch64/aarch64-simd.md
18451 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Rename to...
18452 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): ... This.
18453
18454 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18455
18456 * config/aarch64/arm_neon.h (vrndq<a,m,n,p>_f<32, 64>): Rename to...
18457 (vrnd<a,m,n,p>q_f<32, 64>): ...This, implement using builtin.
18458 (vrnd<a,m,n,p>_f32): Implement using builtins.
18459 (vrnd<i,x><q>_f<32, 64>): New.
18460
18461 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
18462
18463 * config/aarch64/aarch64-builtins.c
18464 (aarch64_builtin_vectorized_function): Fold to standard pattern names.
18465 * config/aarch64/aarch64-simd-builtins.def (frintn): New.
18466 (frintz): Rename to...
18467 (btrunc): ...this.
18468 (frintp): Rename to...
18469 (ceil): ...this.
18470 (frintm): Rename to...
18471 (floor): ...this.
18472 (frinti): Rename to...
18473 (nearbyint): ...this.
18474 (frintx): Rename to...
18475 (rint): ...this.
18476 (frinta): Rename to...
18477 (round): ...this.
18478 * config/aarch64/aarch64-simd.md
18479 (aarch64_frint<frint_suffix><mode>): Delete.
18480 (<frint_pattern><mode>2): Convert to insn.
18481 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRINTN.
18482 * config/aarch64/iterators.md (FRINT): Add UNSPEC_FRINTN.
18483 (frint_pattern): Likewise.
18484 (frint_suffix): Likewise.
18485
18486 2013-04-29 Richard Biener <rguenther@suse.de>
18487
18488 PR tree-optimization/57081
18489 * loop-init.c: Include tree-flow.h.
18490 (loop_optimizer_finalize): Free number of iteration estimates.
18491 * Makefile.in (loop-init.o): Add $(TREE_FLOW_H) dependency.
18492
18493 2013-04-29 Jakub Jelinek <jakub@redhat.com>
18494
18495 PR tree-optimization/57083
18496 * tree-vrp.c (extract_range_from_binary_expr_1): For LSHIFT_EXPR with
18497 non-singleton shift count range, zero extend low_bound for uns case.
18498
18499 * config/i386/predicates.md (general_vector_operand): New predicate.
18500 * config/i386/i386.c (const_vector_equal_evenodd_p): New function.
18501 (ix86_expand_mul_widen_evenodd): Force op1 resp. op2 into register
18502 if they aren't nonimmediate operands. If their original values
18503 satisfy const_vector_equal_evenodd_p, don't shift them.
18504 * config/i386/sse.md (mul<mode>3): Use general_vector_operand
18505 predicates. For the SSE4.1 case force operands[{1,2}] into registers
18506 if not nonimmediate_operand.
18507 (vec_widen_smult_even_v4si): Use nonimmediate_operand predicates
18508 instead of register_operand.
18509 (vec_widen_<s>mult_odd_<mode>): Use general_vector_operand predicates.
18510
18511 2013-04-28 Eric Botcazou <ebotcazou@adacore.com>
18512
18513 * stor-layout.c (finalize_size_functions): Allocate a structure and
18514 reset cfun before dumping the functions.
18515
18516 2013-04-27 Jakub Jelinek <jakub@redhat.com>
18517
18518 * config/i386/i386.c (ix86_expand_call): Make cregs_size unsigned.
18519
18520 PR target/56866
18521 * config/i386/i386.c (ix86_expand_mul_widen_evenodd): Don't
18522 use xop_pmacsdqh if uns_p.
18523 * config/i386/sse.md (xop_rotr<mode>3): Fix up computation of
18524 the immediate rotate count.
18525
18526 2013-04-26 Vladimir Makarov <vmakarov@redhat.com>
18527
18528 * rtl.h (struct rtx_def): Add comment for field jump.
18529 (LRA_SUBREG_P): New macro.
18530 * recog.c (register_operand): Check LRA_SUBREG_P.
18531 * lra.c (lra): Add note at the end of RTL code. Align non-empty
18532 stack frame.
18533 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
18534 (lra_final_code_change): Skip subreg change for operators.
18535 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
18536 if there are no operand changes.
18537 * lra-constraints.c (curr_insn_set): New.
18538 (match_reload): Set LRA_SUBREG_P.
18539 (emit_spill_move): Ditto.
18540 (check_and_process_move): Use curr_insn_set. Process only single
18541 set insns. Don't initialize sec_mem_p and change_p.
18542 (simplify_operand_subreg): Use LRA_SUBREG_P.
18543 (reg_in_class_p): New function.
18544 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
18545 of #ifdef. Add code to remove cycling.
18546 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
18547 non-null disp. Reload inner instead of disp when base and index
18548 are null. Try to put lo_sum into register.
18549 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
18550 (check_and_process_move): Move code for move cost check to
18551 simple_move_p. Remove equiv_substitution.
18552 (simple_move_p): New function.
18553 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
18554 curr_insn_set. Call check_and_process_move only for single set
18555 insns. Use the new function. Move call of check_and_process_move
18556 after operand equiv substitution and address process.
18557
18558 2013-04-26 Jakub Jelinek <jakub@redhat.com>
18559
18560 PR go/57045
18561 * tree-ssa-uninit.c (compute_uninit_opnds_pos): In functions
18562 with nonlocal goto receivers or returns twice calls, ignore
18563 unininitialized values from abnormal edges to nl goto receiver
18564 or returns twice call.
18565
18566 2013-04-26 Jakub Jelinek <jakub@redhat.com>
18567
18568 PR tree-optimization/57051
18569 * fold-const.c (const_binop): Handle VEC_LSHIFT_EXPR
18570 and VEC_RSHIFT_EXPR if shift count is a multiple of element
18571 bitsize.
18572
18573 2013-04-26 Richard Biener <rguenther@suse.de>
18574
18575 * omp-low.c (finalize_task_copyfn): Do not drop PROP_loops.
18576 (expand_omp_taskreg): Likewise. Mark loops for fixup.
18577 * tree-cfg.c (move_block_to_fn): Remap loop fathers.
18578 (fixup_loop_arrays_after_move): New function.
18579 (move_sese_region_to_fn): Properly outline the loop tree parts
18580 of the SESE region.
18581
18582 2013-04-26 Uros Bizjak <ubizjak@gmail.com>
18583
18584 * config/i386/i386.md (type, unit): Fix long lines.
18585
18586 2013-04-26 Richard Biener <rguenther@suse.de>
18587
18588 * Makefile.in (lto-streamer-in.o): Add $(CFGLOOP_H) dependency.
18589 (lto-streamer-out.o): Likewise.
18590 * cfgloop.c (init_loops_structure): Export, add struct function
18591 argument and adjust.
18592 (flow_loops_find): Adjust.
18593 * cfgloop.h (enum loop_estimation): Add EST_LAST.
18594 (init_loops_structure): Declare.
18595 * lto-streamer-in.c: Include cfgloop.h.
18596 (input_cfg): Input the loop tree.
18597 * lto-streamer-out.c: Include cfgloop.h.
18598 (output_cfg): Output the loop tree.
18599 (output_struct_function_base): Do not drop PROP_loops.
18600
18601 2013-03-26 Richard Biener <rguenther@suse.de>
18602
18603 * tree-cfg.c (execute_build_cfg): Build the loop tree.
18604 (pass_build_cfg): Provide PROP_loops.
18605 (move_sese_region_to_fn): Remove loops that are outlined into fn
18606 for now.
18607 * tree-inline.c: Include cfgloop.h.
18608 (initialize_cfun): Do not drop PROP_loops.
18609 (copy_loops): New function.
18610 (copy_cfg_body): Copy loop structure.
18611 (tree_function_versioning): Initialize destination loop tree.
18612 * tree-ssa-loop.c (pass_tree_loop_init): Do not provide PROP_loops.
18613 (pass_parallelize_loops): Do IL verification.
18614 * loop-init.c (loop_optimizer_init): Fixup loops if required.
18615 * tree-optimize.c (execute_fixup_cfg): If we need to cleanup
18616 the CFG make sure we fixup loops as well.
18617 * tree-ssa-tail-merge.c: Include cfgloop.h.
18618 (replace_block_by): When merging loop latches mark loops for fixup.
18619 * lto-streamer-out.c (output_struct_function_base): Drop
18620 PROP_loops for now.
18621 * tree-ssa-phiopt.c: Include tree-scalar-evolution.h.
18622 (tree_ssa_cs_elim): Initialize the loop optimizer and SCEV.
18623 * ipa-split.c: Include cfgloop.h.
18624 (split_function): Add the new return block to the loop tree root.
18625 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Return
18626 whether we have removed the forwarder block.
18627 (merge_phi_nodes): If we removed a forwarder mark loops for fixup.
18628 * cfgloop.h (place_new_loop): Declare.
18629 * cfgloopmanip.c (place_new_loop): Export.
18630 * Makefile.in (asan.o): Add $(CFGLOOP_H) dependency.
18631 (tree-switch-conversion.o): Likewise.
18632 (tree-complex.o): Likewise.
18633 (tree-inline.o): Likewise.
18634 (tree-ssa-tailmerge.o): Likewise.
18635 (ipa-split.o): Likewise.
18636 (tree-ssa-phiopt.o): Add $(SCEV_H) dependency.
18637 (tree-ssa-copy.o): Likewise.
18638 * tree-switch-conversion.c: Include cfgloop.h
18639 (process_switch): If we emit a bit-test cascade, schedule loops
18640 for fixup.
18641 * tree-complex.c: Include cfgloop.h.
18642 (expand_complex_div_wide): Properly add new basic-blocks to loops.
18643 * asan.c: Include cfgloop.h.
18644 (create_cond_insert_point): Properly add new basic-blocks to
18645 loops, schedule loop fixup.
18646 * cfgloop.c (verify_loop_structure): Check that looks are not
18647 marked for fixup.
18648 * omp-low.c (expand_parallel_call): Properly add new basic-blocks
18649 to loops.
18650 (expand_omp_for_generic): Likewise.
18651 (expand_omp_sections): Likewise.
18652 (expand_omp_atomic_pipeline): Schedule loops for fixup.
18653 * tree-ssa-copy.c: Include tree-scalar-evolution.h.
18654 (fini_copy_prop): Disable DCE in substitute_and_fold if SCEV
18655 is initialized, not when loops are present.
18656 * tree-parloops.c (parallelize_loops): Remove checking here.
18657 * passes.c (init_optimization_passes): Schedule a copy-propagation
18658 pass before complete unrolling of inner loops.
18659
18660 2013-04-26 Jakub Jelinek <jakub@redhat.com>
18661
18662 * Makefile.in (toplev.o): Depend on diagnostic-color.h.
18663 * diagnostic-color.c (should_colorize): Remove _WIN32 version.
18664 (colorize_init): Add argument to _WIN32 version.
18665 * toplev.c: Include diagnostic-color.h.
18666 (process_options): Default to -fdiagnostics-color=auto if
18667 GCC_COLORS env var is in the environment.
18668 * common.opt (fdiagnostics-color=): Add Var and Init.
18669 * doc/invoke.texi (-fdiagnostics-color=): Document that if GCC_COLORS
18670 env var is in the environment, the default is auto rather than never.
18671
18672 * diagnostic.h (file_name_as_prefix): Add context argument.
18673 * diagnostic.c (file_name_as_prefix): Likewise. Colorize
18674 the string as locus.
18675 * langhooks.c (lhd_print_error_function): Adjust caller.
18676
18677 2013-04-25 Lawrence Crowl <crowl@google.com>
18678
18679 * var-tracking.c (shared_hash_def::htab):
18680 Change type to hash_table. Update dependent calls and types.
18681
18682 2013-04-25 Lawrence Crowl <crowl@google.com>
18683
18684 * Makefile.in: Update as needed below.
18685
18686 * alloc-pool.c (static hash_table <alloc_pool_hasher> alloc_pool_hash):
18687 Move declaration to after the type's method definitons.
18688
18689 * attribs.c (htab_t scoped_attributes::attribute_hash):
18690 Change type to hash_table. Update dependent calls and types.
18691
18692 * bitmap.c (htab_t bitmap_desc_hash):
18693 Change type to hash_table. Update dependent calls and types.
18694
18695 * cselib.c (htab_t cselib_hash_table):
18696 Change type to hash_table. Update dependent calls and types.
18697
18698 * data-streamer.h (struct string_slot): Move to lto-streamer.h.
18699 (hash_string_slot_node): Move implementation into lto-streamer.h
18700 struct string_slot_hasher.
18701 (eq_string_slot_node): Likewise.
18702
18703 * data-streamer-out.c: Update output_block::string_hash_table
18704 dependent calls and types.
18705
18706 * dwarf2cfi.c (htab_t trace_index):
18707 Change type to hash_table. Update dependent calls and types.
18708
18709 * dwarf2out.c (htab_t break_out_includes::cu_hash_table):
18710 Change type to hash_table. Update dependent calls and types.
18711 (htab_t copy_decls_for_unworthy_types::decl_table): Likewise.
18712 (htab_t optimize_external_refs::map): Likewise.
18713 (htab_t output_comp_unit::extern_map): Likewise.
18714 (htab_t output_comdat_type_unit::extern_map): Likewise.
18715 (htab_t output_macinfo::macinfo_htab): Likewise.
18716 (htab_t optimize_location_lists::htab): Likewise.
18717 (htab_t dwarf2out_finish::comdat_type_table): Likewise.
18718
18719 * except.c (htab_t ehspec_hash_type):
18720 Change type to hash_table. Update dependent calls and types.
18721 (assign_filter_values::ttypes): Likewise.
18722 (assign_filter_values::ehspec): Likewise.
18723 (sjlj_assign_call_site_values::ar_hash): Likewise.
18724 (convert_to_eh_region_ranges::ar_hash): Likewise.
18725
18726 * gcse.c (htab_t pre_ldst_table):
18727 Change type to hash_table. Update dependent calls and types.
18728
18729 * ggc-common.c (htab_t saving_htab):
18730 Change type to hash_table. Update dependent calls and types.
18731 (htab_t loc_hash): Likewise.
18732 (htab_t ptr_hash): Likewise.
18733 (call_count): Rename ggc_call_count.
18734 (call_alloc): Rename ggc_call_alloc.
18735 (loc_descriptor): Rename make_loc_descriptor.
18736 (add_statistics): Rename ggc_add_statistics.
18737
18738 * ggc-common.c (saving_htab):
18739 Change type to hash_table. Update dependent calls and types.
18740
18741 * gimple.h (struct gimplify_ctx): Move to gimplify-ctx.h.
18742 (push_gimplify_context): Likewise.
18743 (pop_gimplify_context): Likewise.
18744 (struct gimple_temp_hash_elt): Added.
18745 (struct gimplify_hasher): Likewise.
18746 (struct gimplify_ctx.temp_htab):
18747 Change type to hash_table. Update dependent calls and types.
18748
18749 * gimple-fold.c: Include gimplify-ctx.h.
18750
18751 * gimple-ssa-strength-reduction.c (htab_t base_cand_map):
18752 Change type to hash_table. Update dependent calls and types.
18753 (base_cand_dump_callback): Rename to ssa_base_cand_dump_callback to
18754 avoid potential global name collision.
18755
18756 * gimplify.c: Include gimplify-ctx.h.
18757 (struct gimple_temp_hash_elt): Move to gimplify-ctx.h.
18758 (htab_t gimplify_ctx::temp_htab):
18759 Update dependent calls and types for new type hash_table.
18760 (gimple_tree_hash): Move into gimplify_hasher in gimplify-ctx.h.
18761 (gimple_tree_eq): Move into gimplify_hasher in gimplify-ctx.h.
18762
18763 * gimplify-ctx.h: New.
18764 (struct gimple_temp_hash_elt): Move from gimplify.c.
18765 (class gimplify_hasher): New.
18766 (struct gimplify_ctx): Move from gimple.h.
18767 (htab_t gimplify_ctx::temp_htab):
18768 Change type to hash_table. Update dependent calls and types.
18769
18770 * graphite-clast-to-gimple.c: Include graphite-htab.h.
18771 (htab_t ivs_params::newivs_index):
18772 Change type to hash_table. Update dependent calls and types.
18773 (htab_t ivs_params::params_index): Likewise.
18774 (htab_t print_generated_program::params_index): Likewise.
18775 (htab_t gloog::newivs_index): Likewise.
18776 (htab_t gloog::params_index): Likewise.
18777
18778 * graphite.c: Include graphite-htab.h.
18779 4htab_t graphite_transform_loops::bb_pbb_mapping):
18780 Change type to hash_table. Update dependent calls and types.
18781
18782 * graphite-clast-to-gimple.h: (extern gloog) Move to graphite-htab.h.
18783 (bb_pbb_map_hash): Fold into bb_pbb_htab_type in graphite-htab.h.
18784 (eq_bb_pbb_map): Fold into bb_pbb_htab_type in graphite-htab.h.
18785
18786 * graphite-dependences.c: Include graphite-htab.h.
18787 (loop_is_parallel_p): Change hash table type of parameter.
18788
18789 * graphite-htab.h: New.
18790 (typedef hash_table <bb_pbb_hasher> bb_pbb_htab_type): New.
18791 (extern find_pbb_via_hash): Move from graphite-poly.h.
18792 (extern loop_is_parallel_p): Move from graphite-poly.h.
18793 (extern get_loop_body_pbbs): Move from graphite-poly.h.
18794
18795 * graphite-poly.h (extern find_pbb_via_hash): Move to graphite-htab.h.
18796 (extern loop_is_parallel_p): Move to graphite-htab.h.
18797 (extern get_loop_body_pbbs): Move to graphite-htab.h.
18798
18799 * haifa-sched.c (htab_t delay_htab):
18800 Change type to hash_table. Update dependent calls and types.
18801 (htab_t delay_htab_i2): Likewise.
18802
18803 * ira-color.c (htab_t allocno_hard_regs_htab):
18804 Change type to hash_table. Update dependent calls and types.
18805
18806 * ira-costs.c (htab_t cost_classes_htab):
18807 Change type to hash_table. Update dependent calls and types.
18808
18809 * loop-invariant.c (htab_t merge_identical_invariants::eq):
18810 Change type to hash_table. Update dependent calls and types.
18811
18812 * loop-iv.c (htab_t bivs):
18813 Change type to hash_table. Update dependent calls and types.
18814
18815 * loop-unroll.c (htab_t opt_info::insns_to_split):
18816 Change type to hash_table. Update dependent calls and types.
18817 (htab_t opt_info::insns_with_var_to_expand): Likewise.
18818
18819 * lto-streamer.h (struct string_slot): Move from data-streamer.h
18820 (struct string_slot_hasher): New.
18821 (htab_t output_block::string_hash_table):
18822 Change type to hash_table. Update dependent calls and types.
18823
18824 * lto-streamer-in.c (freeing_string_slot_hasher): New.
18825 (htab_t file_name_hash_table):
18826 Change type to hash_table. Update dependent calls and types.
18827
18828 * lto-streamer-out.c: Update output_block::string_hash_table dependent
18829 calls and types.
18830
18831 * lto-streamer.c (htab_t tree_htab):
18832 Change type to hash_table. Update dependent calls and types.
18833
18834 * omp-low.c: Include gimplify-ctx.h.
18835
18836 * passes.c (htab_t name_to_pass_map):
18837 Change type to hash_table. Update dependent calls and types.
18838 (pass_traverse): Rename to passes_pass_traverse.
18839
18840 * plugin.c (htab_t event_tab):
18841 Change type to hash_table. Update dependent calls and types.
18842
18843 * postreload-gcse.c (htab_t expr_table):
18844 Change type to hash_table. Update dependent calls and types.
18845 (dump_hash_table_entry): Rename dump_expr_hash_table_entry.
18846
18847 * sese.c (debug_rename_map_1): Make extern.
18848 (htab_t copy_bb_and_scalar_dependences::rename_map):
18849 Change type to hash_table. Update dependent calls and types.
18850
18851 * sese.h (extern debug_rename_map): Move to .c file.
18852
18853 * store-motion.c (htab_t store_motion_mems_table):
18854 Change type to hash_table. Update dependent calls and types.
18855
18856 * trans-mem.c (htab_t tm_new_mem_hash):
18857 Change type to hash_table. Update dependent calls and types.
18858
18859 * tree-browser.c (htab_t TB_up_ht):
18860 Change type to hash_table. Update dependent calls and types.
18861
18862 * tree-cfg.c (htab_t discriminator_per_locus):
18863 Change type to hash_table. Update dependent calls and types.
18864
18865 * tree-complex.c: Include tree-hasher.h
18866 (htab_t complex_variable_components):
18867 Change type to hash_table. Update dependent calls and types.
18868
18869 * tree-eh.c (htab_t finally_tree):
18870 Change type to hash_table. Update dependent calls and types.
18871
18872 * tree-flow.h (extern int_tree_map_hash): Moved into tree-hasher
18873 struct int_tree_hasher.
18874 (extern int_tree_map_eq): Likewise.
18875 (uid_decl_map_hash): Removed.
18876 (extern decl_tree_map_eq): Likewise.
18877
18878 * tree-hasher.h: New.
18879 (struct int_tree_hasher): New.
18880 (typedef int_tree_htab_type): New.
18881
18882 * tree-inline.c: Include gimplify-ctx.h.
18883
18884 * tree-mudflap.c: Include gimplify-ctx.h.
18885
18886 * tree-parloops.c: Include tree-hasher.h.
18887 (htab_t eliminate_local_variables_stmt::decl_address):
18888 Change type to hash_table. Update dependent calls and types.
18889 (htab_t separate_decls_in_region::decl_copies): Likewise.
18890
18891 * tree-scalar-evolution.c (htab_t resolve_mixers::cache):
18892 Change type to hash_table. Update dependent calls and types.
18893
18894 * tree-sra.c (candidates):
18895 Change type to hash_table. Update dependent calls and types.
18896
18897 * tree-ssa.c (int_tree_map_eq): Moved into struct int_tree_hasher
18898 in tree-flow.h.
18899 (int_tree_map_hash): Likewise.
18900
18901 * tree-ssa-dom.c (htab_t avail_exprs):
18902 Change type to hash_table. Update dependent calls and types.
18903
18904 * tree-ssa-live.c (var_map_base_init::tree_to_index):
18905 Change type to hash_table. Update dependent calls and types.
18906
18907 * tree-ssa-loop-ivopts.c (struct ivopts_data.inv_expr_tab):
18908 Change type to hash_table. Update dependent calls and types.
18909
18910 * tree-ssa-phiopt.c (seen_ssa_names):
18911 Change type to hash_table. Update dependent calls and types.
18912
18913 * tree-ssa-strlen.c (decl_to_stridxlist_htab):
18914 Change type to hash_table. Update dependent calls and types.
18915
18916 * tree-ssa-uncprop.c (equiv):
18917 Change type to hash_table. Update dependent calls and types.
18918
18919 2013-04-25 Jakub Jelinek <jakub@redhat.com>
18920
18921 PR rtl-optimization/57003
18922 * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
18923 call note_stores with kill_clobbered_value callback again after
18924 killing regs_invalidated_by_call.
18925
18926 2013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
18927
18928 * config/aarch64/aarch64-simd.md
18929 (aarch64_simd_bsl<mode>_internal): Rewrite RTL to not use UNSPEC_BSL.
18930 (aarch64_simd_bsl<mode>): Likewise.
18931 * config/aarch64/iterators.md (unspec): Remove UNSPEC_BSL.
18932
18933 2013-04-25 Marek Polacek <polacek@redhat.com>
18934
18935 PR tree-optimization/57066
18936 * builtins.c (fold_builtin_logb): Return +Inf for -Inf.
18937
18938 2013-04-25 James Greenhalgh <jame.greenhalgh@arm.com>
18939
18940 * config/aarch64/aarch64-simd.md (neg<mode>2): Use VDQ iterator.
18941
18942 2013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
18943
18944 * config/aarch64/aarch64-builtins.c
18945 (aarch64_fold_builtin): New.
18946 * config/aarch64/aarch64-protos.h (aarch64_fold_builtin): New.
18947 * config/aarch64/aarch64.c (TARGET_FOLD_BUILTIN): Define.
18948 * config/aarch64/aarch64-simd-builtins.def (abs): New.
18949 * config/aarch64/arm_neon.h
18950 (vabs<q>_<f32, 64>): Implement using __builtin_aarch64_fabs.
18951
18952 2013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
18953 Tejas Belagod <tejas.belagod@arm.com>
18954
18955 * config/aarch64/aarch64-builtins.c
18956 (aarch64_gimple_fold_builtin): New.
18957 * config/aarch64/aarch64-protos.h (aarch64_gimple_fold_builtin): New.
18958 * config/aarch64/aarch64-simd-builtins.def (addv): New.
18959 * config/aarch64/aarch64-simd.md (addpv4sf): New.
18960 (addvv4sf): Update.
18961 * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define.
18962
18963 2013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
18964
18965 * config/aarch64/aarch64.md
18966 (*cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): New pattern.
18967
18968 2013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
18969
18970 * config/aarch64/aarch64.md (*ngc<mode>): New pattern.
18971 (*ngcsi_uxtw): New pattern.
18972
18973 2013-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18974 Julian Brown <julian@codesourcery.com>
18975
18976 * config/arm/arm.c (neon_builtin_type_mode): Add T_V4HF.
18977 (TB_DREG): Add T_V4HF.
18978 (v4hf_UP): New macro.
18979 (neon_itype): Add NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
18980 (arm_init_neon_builtins): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
18981 Handle initialisation of V4HF. Adjust initialisation of reinterpret
18982 built-ins.
18983 (arm_expand_neon_builtin): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
18984 (arm_vector_mode_supported_p): Handle V4HF.
18985 (arm_mangle_map): Handle V4HFmode.
18986 * config/arm/arm.h (VALID_NEON_DREG_MODE): Add V4HF.
18987 * config/arm/arm_neon_builtins.def: Add entries for
18988 vcvtv4hfv4sf, vcvtv4sfv4hf.
18989 * config/arm/neon.md (neon_vcvtv4sfv4hf): New pattern.
18990 (neon_vcvtv4hfv4sf): Likewise.
18991 * config/arm/neon-gen.ml: Handle half-precision floating point
18992 features.
18993 * config/arm/neon-testgen.ml: Handle Requires_FP_bit feature.
18994 * config/arm/arm_neon.h: Regenerate.
18995 * config/arm/neon.ml (type elts): Add F16.
18996 (type vectype): Add T_float16x4, T_floatHF.
18997 (type vecmode): Add V4HF.
18998 (type features): Add Requires_FP_bit feature.
18999 (elt_width): Handle F16.
19000 (elt_class): Likewise.
19001 (elt_of_class_width): Likewise.
19002 (mode_of_elt): Refactor.
19003 (type_for_elt): Handle F16, fix error messages.
19004 (vectype_size): Handle T_float16x4.
19005 (vcvt_sh): New function.
19006 (ops): Add entries for vcvt_f16_f32, vcvt_f32_f16.
19007 (string_of_vectype): Handle T_floatHF, T_float16, T_float16x4.
19008 (string_of_mode): Handle V4HF.
19009 * doc/arm-neon-intrinsics.texi: Regenerate.
19010
19011 2013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
19012
19013 * config/aarch64/aarch64.c (aarch64_print_operand): Fix asm_fprintf
19014 format specifier in 'X' case.
19015
19016 2013-04-25 Alan Modra <amodra@gmail.com>
19017
19018 PR target/57052
19019 * config/rs6000/rs6000.md (rotlsi3_internal7): Rename to
19020 rotlsi3_internal7le and condition on !BYTES_BIG_ENDIAN.
19021 (rotlsi3_internal8be): New BYTES_BIG_ENDIAN insn.
19022 Repeat for many other rotate/shift and mask patterns using subregs.
19023 Name lshiftrt insns.
19024 (ashrdisi3_noppc64): Rename to ashrdisi3_noppc64be and condition
19025 on WORDS_BIG_ENDIAN.
19026
19027 2013-04-25 Alan Modra <amodra@gmail.com>
19028
19029 * config.gcc: Support little-endian powerpc-linux targets.
19030 * config/rs6000/linux.h (LINK_OS_LINUX_EMUL): Define.
19031 (LINK_OS_LINUX_SPEC): Define.
19032 * config/rs6000/linuxspe.h (TARGET_DEFAULT):
19033 Preserve MASK_LITTLE_ENDIAN.
19034 * config/rs6000/default64.h (TARGET_DEFAULT): Likewise.
19035 * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Likewise.
19036 * config/rs6000/linux64.h (OPTION_LITTLE_ENDIAN): Don't zero.
19037 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Define.
19038 (LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Use above.
19039 * config/rs6000/rs6000.c (output_toc): Don't use .tc for TARGET_ELF.
19040 Correct fp word order for little-endian. Don't shift toc entries
19041 smaller than a word for little-endian.
19042 * config/rs6000/rs6000.md (bswaphi2, bswapsi2 split): Comment.
19043 (bswapdi2 splits): Correct low-part subreg for little-endian.
19044 Remove wrong BYTES_BIG_ENDIAN tests, and rename vars to remove
19045 low/high where such is correct only for be.
19046 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Allow
19047 little-endian for -mcall-aixdesc.
19048
19049 2013-04-25 Alan Modra <amodra@gmail.com>
19050
19051 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
19052 replace_equiv_address_nv.
19053
19054 2013-04-25 Alan Modra <amodra@gmail.com>
19055
19056 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Tidy.
19057
19058 2013-04-24 Vladimir Makarov <vmakarov@redhat.com>
19059
19060 Revert:
19061 2013-04-24 Vladimir Makarov <vmakarov@redhat.com>
19062 * rtl.h (struct rtx_def): ...
19063
19064 2013-04-24 Vladimir Makarov <vmakarov@redhat.com>
19065
19066 PR rtl-optimizations/57046
19067 * lra-constraints (split_reg): Set up lra_risky_transformations_p
19068 for multi-reg splits.
19069
19070 2013-04-24 H.J. Lu <hongjiu.lu@intel.com>
19071
19072 * config/i386/x86-64.h (ASM_SPEC): Support -mx32.
19073
19074 2013-04-24 Sterling Augustine <saugustine@google.com>
19075
19076 * dwarf2out.c (skeleton_debug_str_hash, add_skeleton_AT_string)
19077 (comp_dir_string, debug_str_dwo_section): New.
19078 (DEBUG_STR_DWO_SECTION): Rename to ...
19079 (DEBUG_DWO_STR_SECTION): ... this.
19080 (DEBUG_NORM_STR_SECTION): Delete.
19081 (DEBUG_STR_SECTION, DEBUG_STR_SECTION_FLAGS): Edit definitions.
19082 (DEBUG_STR_DWO_SECTION_FLAGS): New.
19083 (find_AT_string): Move most logic to ...
19084 (find_AT_string_in_table): ... here. New.
19085 (add_top_level_skeleton_die_attrs): Call comp_dir_string and
19086 add_skeleton_AT_string. Delete logic.
19087 (output_skeleton_debug_sections): Remove call to
19088 add_top_level_skeleton_die_attrs.
19089 (add_comp_dir_attribute): Move logic to comp_dir_string.
19090 (dwarf2out_init): Initialize debug_str_dwo_section.
19091 (output_indirect_string): Call find_string_form.
19092 (output_indirect_strings): Rewrite.
19093 (prune_unused_types): Empty skeleton_debug_str_hash.
19094 Call get_skeleton_type_unit and add_top_level_skeleton_die_attrs.
19095 (dwarf2out_finish): Call output_indirect_strings.
19096
19097 2013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
19098
19099 * doc/cpp.texi: Remove __GXX_EXPERIMENTAL_CXX1Y__.
19100
19101 2013-04-24 Vladimir Makarov <vmakarov@redhat.com>
19102
19103 * rtl.h (struct rtx_def): Add comment for field jump.
19104 (LRA_SUBREG_P): New macro.
19105 * recog.c (register_operand): Check LRA_SUBREG_P.
19106 * lra.c (lra): Add note at the end of RTL code. Align non-empty
19107 stack frame.
19108 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
19109 (lra_final_code_change): Skip subreg change for operators.
19110 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
19111 if there are no operand changes.
19112 * lra-constraints.c (curr_insn_set): New.
19113 (match_reload): Set LRA_SUBREG_P.
19114 (emit_spill_move): Ditto.
19115 (check_and_process_move): Use curr_insn_set. Process only single
19116 set insns. Don't initialize sec_mem_p and change_p.
19117 (simplify_operand_subreg): Use LRA_SUBREG_P.
19118 (reg_in_class_p): New function.
19119 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
19120 of #ifdef. Add code to remove cycling.
19121 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
19122 non-null disp. Reload inner instead of disp when base and index
19123 are null. Try to put lo_sum into register.
19124 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
19125 (check_and_process_move): Move code for move cost check to
19126 simple_move_p. Remove equiv_substitution.
19127 (simple_move_p): New function.
19128 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
19129 curr_insn_set. Call check_and_process_move only for single set
19130 insns. Use the new function. Move call of check_and_process_move
19131 after operand equiv substitution and address process.
19132
19133 2013-04-24 James Greenhalgh <james.greenhalgh@arm.com>
19134
19135 * config/aarch64/arm_neon.h (vld1<q>_lane*): Fix constraints.
19136 (vld1<q>_dup_<sufp><8, 16, 32, 64>): Likewise.
19137 (vld1<q>_<sufp><8, 16, 32, 64>): Likewise.
19138
19139 2013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
19140
19141 * doc/cpp.texi: Document __GXX_EXPERIMENTAL_CXX1Y__.
19142
19143 2013-04-24 Marek Polacek <polacek@redhat.com>
19144
19145 * tree-scalar-evolution.h (analyze_scalar_evolution): Remove.
19146 * tree-scalar-evolution.c (get_exit_conditions_rec): Likewise.
19147 (select_loops_exit_conditions): Likewise.
19148 (number_of_iterations_for_all_loops): Likewise.
19149 (analyze_scalar_evolution_for_all_loop_phi_nodes): Likewise.
19150 (scev_analysis): Likewise.
19151
19152 2013-04-02 Catherine Moore <clm@codesourcery.com>
19153 Chao-ying Fu <fu@mips.com>
19154
19155 * config/mips/micromips.md (jraddiusp): New pattern.
19156 * config/mips/mips.c (mips_expand_epilogue): Use the JRADDIUSP
19157 instruction if possible.
19158
19159 2013-04-24 Alan Modra <amodra@gmail.com>
19160
19161 * config/rs6000/driver-rs6000.c (elf_dcachebsize): Fix comment pasto.
19162
19163 2013-04-24 Julian Brown <julian@codesourcery.com>
19164 Chung-Lin Tang <cltang@codesourcery.com>
19165
19166 * dwarf2out.c (gen_enumeration_type_die): Fix HOST_BITS_PER_WIDE_INT
19167 dependency behavior in enumeration type DIE generation. Add TODO note
19168 to comments about future DW_FORM_sdata/udata re-work of related code.
19169
19170 2013-04-23 Lawrence Crowl <crowl@google.com>
19171
19172 * Makefile.in: Update as needed below.
19173
19174 * hash-table.h (class hash_table):
19175 Correct many methods with parameter types compare_type to the correct
19176 value_type. (Correct code was unlikely to notice the change.)
19177 (hash_table::elements_with_deleted) New.
19178 (class hashtable::iterator): New.
19179 (hashtable::begin()): New.
19180 (hashtable::end()): New.
19181 (FOR_EACH_HASH_TABLE_ELEMENT): New.
19182
19183 * statistics.c (statistics_hashes):
19184 Change type to hash_table. Update dependent calls and types.
19185
19186 * tree-into-ssa.c (var_infos):
19187 Change type to hash_table. Update dependent calls and types.
19188
19189 * tree-ssa-coalesce.c (struct coalesce_list_d.list):
19190 Change type to hash_table. Update dependent calls and types.
19191
19192 * tree-ssa-loop-im.c (struct mem_ref.refs):
19193 Change type to hash_table. Update dependent calls and types.
19194
19195 * tree-ssa-reassoc.c (undistribute_ops_list::ctable):
19196 Change type to hash_table. Update dependent calls and types.
19197
19198 * tree-ssa-sccvn.c (vn_tables_s::nary):
19199 Change type to hash_table. Update dependent calls and types.
19200 (vn_tables_s::phis): Likewise.
19201 (vn_tables_s::references): Likewise.
19202
19203 * tree-ssa-sccvn.h (vn_nary_op_eq): Update parameter and return types.
19204 (vn_reference_eq): Update parameter and return types.
19205
19206 * tree-ssa-structalias.c (pointer_equiv_class_table):
19207 Change type to hash_table. Update dependent calls and types.
19208 (location_equiv_class_table): Likewise.
19209
19210 * tree-vect-data-refs.c: Consequential changes for making
19211 peeling a hash_table.
19212
19213 * tree-vect-loop.c (new_loop_vec_info): Dependent hash_table update.
19214 (destroy_loop_vec_info): Dependent hash_table update.
19215
19216 * tree-vectorizer.h (peeling_htab):
19217 Change type to hash_table. Update dependent calls and types.
19218
19219 2013-04-23 Shiva Chen <shiva0217@gmail.com>
19220
19221 * lra-assigns.c (find_hard_regno_for): Use lra_reg_val_equal_p
19222 to check the register content is equal or not.
19223 * lra-constraints.c (match_reload): Use lra_assign_reg_val
19224 to assign register content record.
19225 * lra-eliminations.c (update_reg_eliminate): Use
19226 lra_update_reg_val_offset to update register content offset.
19227 * lra-int.h (struct lra_reg): Add offset member.
19228 (lra_reg_val_equal_p): New static inline function.
19229 (lra_update_reg_val_offset): New static inline function.
19230 (lra_assign_reg_val): New static inline function.
19231 * lra.c (lra_create_new_reg): Use lra_assign_reg_val
19232 to assign register content record.
19233 (initialize_lra_reg_info_element): Initial offset to zero.
19234
19235 2013-04-23 Catherine Moore <clm@codesourcery.com>
19236
19237 * config/mips/mips.md (*movhi_internal, *movqi_internal): New
19238 operands. Record compression.
19239
19240 2013-04-23 Xinliang David Li <davidxl@google.com>
19241
19242 * cfghhooks.c (dump_bb_for_graph): Support 'slim' graph dump.
19243
19244 2013-04-23 Richard Biener <rguenther@suse.de>
19245
19246 PR middle-end/57036
19247 * tree-inline.c (copy_edges_for_bb): Add can_make_abnormal_goto
19248 parameter, only add abnormal goto edges from the copied body
19249 if the call could perform abnormal gotos.
19250 (copy_cfg_body): Adjust.
19251
19252 2013-04-23 Sofiane Naci <sofiane.naci@arm.com>
19253
19254 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add simd attribute.
19255
19256 2013-04-23 Andreas Schwab <schwab@linux-m68k.org>
19257
19258 * coretypes.h (gimple_stmt_iterator): Add struct to make
19259 compatible with C.
19260
19261 2013-04-23 Richard Biener <rguenther@suse.de>
19262
19263 PR tree-optimization/57026
19264 * tree-vrp.c (simplify_conversion_using_ranges): Do not propagate
19265 from SSA names occuring in abnormal PHI nodes.
19266
19267 2013-04-22 Andi Kleen <ak@linux.intel.com>
19268
19269 * lto/lto.c (print_lto_report_1): Fix LTO report names.
19270
19271 2013-04-22 Andi Kleen <ak@linux.intel.com>
19272
19273 * lto/lto.c (print_lto_report_1): Declare early.
19274 (read_cgraph_and_symbols): Call print_lto_report_1 early.
19275
19276 2013-04-22 Andi Kleen <ak@linux.intel.com>
19277
19278 * common.opt (-flto-report-wpa): Add.
19279 * doc/invoke.texi (-flto-report-wpa): Add.
19280 * lto/lto.c (do_whole_program_analysis): Check for lto-report-wpa.
19281 (lto_main): dito.
19282
19283 2013-04-22 Xinliang David Li <davidxl@google.com>
19284
19285 * graph.c (draw_cfg_node_succ_edges): Add branch probility as label.
19286 * cfghhooks.c (dump_bb_for_graph): Dump profile count and frquency.
19287 * Makefile.in: New dependency
19288
19289 David Daney <ddaney.cavm@gmail.com>
19290
19291 * configure.ac (gcc_cv_as_micromips_support): Use the
19292 --fatal-warnings option.
19293 * configure: Regenerate.
19294
19295 2013-04-22 Marek Polacek <polacek@redhat.com>
19296
19297 PR sanitizer/56990
19298 * tsan.c (instrument_expr): Don't instrument expression
19299 in case its size is zero.
19300
19301 2013-04-22 Uros Bizjak <ubizjak@gmail.com>
19302
19303 PR target/57032
19304 Revert:
19305 2013-03-17 Uros Bizjak <ubizjak@gmail.com>
19306
19307 * config/alpha/alpha.c (TARGET_LRA_P): New define.
19308
19309 2013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
19310
19311 * coretypes.h (gimple_stmt_iterator_d): Forward declare.
19312 (gimple_stmt_iterator): New typedef.
19313 * gimple.h (gimple_stmt_iterator): Rename to...
19314 (gimple_stmt_iterator_d): ... This.
19315 * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Detail restriction that
19316 trees be valid for GIMPLE and GENERIC.
19317 (TARGET_GIMPLE_FOLD_BUILTIN): New.
19318 * gimple-fold.c (gimple_fold_call): Call target hook
19319 gimple_fold_builtin.
19320 * hooks.c (hook_bool_gsiptr_false): New.
19321 * hooks.h (hook_bool_gsiptr_false): New.
19322 * target.def (fold_stmt): New.
19323 * doc/tm.texi: Regenerate.
19324
19325 2013-04-22 Vladimir Makarov <vmakarov@redhat.com>
19326
19327 PR target/57018
19328 * lra-eliminations.c (mark_not_eliminable): Prevent elimination of
19329 a set sp if no stack realignment.
19330
19331 2013-04-22 Nick Clifton <nickc@redhat.com>
19332
19333 * config.gcc (tilegx-linux): Extend extra_objs rather than
19334 overwriting it.
19335 (tilepro-linux): Likewise.
19336
19337 2013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
19338
19339 * config/aarch64/aarch64-builtins.c
19340 (CF): Remove.
19341 (CF0, CF1, CF2, CF3, CF4, CF10): New.
19342 (VAR<1-12>): Add MAP parameter.
19343 (BUILTIN_*): Likewise.
19344 * config/aarch64/aarch64-simd-builtins.def: Set MAP parameter.
19345 * config/aarch64/aarch64-simd.md (aarch64_sshl_n<mode>): Remove.
19346 (aarch64_ushl_n<mode>): Likewise.
19347 (aarch64_sshr_n<mode>): Likewise.
19348 (aarch64_ushr_n<mode>): Likewise.
19349 (aarch64_<maxmin><mode>): Likewise.
19350 (aarch64_sqrt<mode>): Likewise.
19351 * config/aarch64/arm_neon.h (vshl<q>_n_*): Use new builtin names.
19352 (vshr<q>_n_*): Likewise.
19353
19354 2013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
19355
19356 * config/aarch64/aarch64-builtins.c
19357 (aarch64_simd_builtin_type_mode): Handle SF types.
19358 (sf_UP): Define.
19359 (BUILTIN_GPF): Define.
19360 (aarch64_init_simd_builtins): Handle SF types.
19361 * config/aarch64/aarch64-simd-builtins.def (frecpe): Add support.
19362 (frecps): Likewise.
19363 (frecpx): Likewise.
19364 * config/aarch64/aarch64-simd.md
19365 (simd_types): Update simd_frcp<esx> to simd_frecp<esx>.
19366 (aarch64_frecpe<mode>): New.
19367 (aarch64_frecps<mode>): Likewise.
19368 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRECP<ESX>.
19369 (v8type): Add frecp<esx>.
19370 (aarch64_frecp<FRECP:frecp_suffix><mode>): New.
19371 (aarch64_frecps<mode>): Likewise.
19372 * config/aarch64/iterators.md (FRECP): New.
19373 (frecp_suffix): Likewise.
19374 * config/aarch64/arm_neon.h
19375 (vrecp<esx><qsd>_<fd><32, 64>): Convert to using builtins.
19376
19377 2013-04-22 Christian Bruel <christian.bruel@st.com>
19378
19379 PR target/56995
19380 * config/sh/sh.h (enum reg_class): Remove DF_HI_REGS.
19381 (REG_CLASS_NAMES): Idem.
19382 (REG_CLASS_CONTENTS): Idem.
19383 (REGCLASS_HAS_FP_REG): Idem.
19384 * config/sh/sh.c (sh_cannot_change_mode_class): Idem.
19385 (sh_conditional_register_usage): Idem.
19386
19387 2013-04-21 Jeff Law <law@redhat.com>
19388
19389 * tree-ssa-forwprop.c (simplify_conversion_from_bitmask): New function.
19390 (ssa_forward_propagate_and_combine): Use it.
19391
19392 2013-04-19 Vladimir Makarov <vmakarov@redhat.com>
19393
19394 * lra.c: Update the flow chart diagram.
19395
19396 2013-04-19 Vladimir Makarov <vmakarov@redhat.com>
19397
19398 PR rtl-optimization/56847
19399 * lra-constraints.c (process_alt_operands): Discourage alternative
19400 with non-matche doffsettable memory constraint fro memory with
19401 known offset.
19402
19403 2013-04-19 Richard Biener <rguenther@suse.de>
19404
19405 PR tree-optimization/56982
19406 * builtins.def (BUILT_IN_LONGJMP): longjmp is not a leaf
19407 function.
19408 * gimplify.c (gimplify_call_expr): Notice special calls.
19409 (gimplify_modify_expr): Likewise.
19410 * tree-cfg.c (make_abnormal_goto_edges): Handle setjmp-like
19411 abnormal control flow receivers.
19412 (call_can_make_abnormal_goto): Handle cfun->calls_setjmp
19413 in the same way as cfun->has_nonlocal_labels.
19414 (gimple_purge_dead_abnormal_call_edges): Likewise.
19415 (stmt_starts_bb_p): Make setjmp-like abnormal control flow
19416 receivers start a basic-block.
19417
19418 2013-04-19 Richard Biener <rguenther@suse.de>
19419
19420 * tree-vectorizer.h (struct _slp_instance): Move load_permutation
19421 member ...
19422 (struct _slp_tree): ... here. Make it a vector of unsigned ints.
19423 (SLP_INSTANCE_LOAD_PERMUTATION): Remove.
19424 (SLP_TREE_LOAD_PERMUTATION): Add.
19425 (vect_transform_slp_perm_load): Adjust prototype.
19426 * tree-vect-slp.c (vect_free_slp_tree): Adjust.
19427 (vect_free_slp_instance): Likewise.
19428 (vect_create_new_slp_node): Likewise.
19429 (vect_supported_slp_permutation_p): Remove.
19430 (vect_slp_rearrange_stmts): Adjust.
19431 (vect_supported_load_permutation_p): Likewise. Inline
19432 vect_supported_slp_permutation_p here.
19433 (vect_analyze_slp_instance): Compute load permutations per
19434 slp node instead of per instance.
19435 (vect_get_slp_defs): Adjust.
19436 (vect_transform_slp_perm_load): Likewise.
19437 (vect_schedule_slp_instance): Remove redundant code.
19438 (vect_schedule_slp): Remove hack for PR56270, add it ...
19439 * tree-vect-stmts.c (vectorizable_load): ... here, do not
19440 CSE loads for SLP. Adjust.
19441
19442 2013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
19443
19444 * config/arm/arm.c (load_multiple_sequence, ldm_stm_operation_p): Fix
19445 spelling in two comments.
19446
19447 2013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
19448
19449 PR target/56797
19450 * config/arm/arm.c (load_multiple_sequence): Require SP
19451 as base register for loads if SP is in the register list.
19452
19453 2013-04-19 Martin Jambor <mjambor@suse.cz>
19454
19455 PR tree-optimization/56718
19456 * ipa-cp.c (ipa_value_from_known_type_jfunc): Moved...
19457 * ipa-prop.c (ipa_binfo_from_known_type_jfunc): ...here, renamed
19458 and made public. Adjusted all callers.
19459 (ipa_intraprocedural_devirtualization): New function.
19460 * ipa-prop.h (ipa_binfo_from_known_type_jfunc): Declare.
19461 (ipa_intraprocedural_devirtualization): Likewise.
19462 * Makefile.in (tree-ssa-pre.o): Add ipa-prop.h to dependencies.
19463
19464 2013-04-19 Richard Biener <rguenther@suse.de>
19465
19466 PR tree-optimization/57000
19467 * tree-ssa-reassoc.c (pass_reassoc): Add TODO_update_ssa_only_virtuals.
19468
19469 2013-04-19 Terry Guo <terry.guo@arm.com>
19470
19471 * config/arm/cortex-m4-fpu.md (cortex_m4_v): Delete cpu unit.
19472 Replace with ...
19473 (cortex_m4_v_a, cortex_m4_v_b): ... new cpu units.
19474 (cortex_m4_v, cortex_m4_exa_va, cortex_m4_exb_vb): New reservations.
19475 (cortex_m4_fmacs): Use new reservations.
19476 (cortex_m4_f_load, cortex_m4_f_store): Likewise.
19477
19478 2013-04-18 Vladimir Makarov <vmakarov@redhat.com>
19479
19480 PR rtl-optimization/56999
19481 * lra-coalesce.c (coalescable_pseudo_p): Remove 2nd parameter and
19482 related code.
19483 (lra_coalesce): Remove split_origin_bitmap and related code.
19484 * lra.c (lra): Coalesce after undoing inheritance. Recreate live
19485 ranges if necessary.
19486
19487 2013-04-18 Uros Bizjak <ubizjak@gmail.com>
19488
19489 * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers):
19490 New array.
19491 (ix86_expand_call): Remove clobbered_registers array and use
19492 x86_64_ms_sysv_extra_clobbered_registers instead.
19493 * config/i386/i386.h (x86_64_ms_sysv_extra_clobbered_registers):
19494 Declare here.
19495 * config/i386/predicates.md (call_rex64_ms_sysv_operation): New
19496 predicate.
19497 * config/i386/i386.md (*call_rex64_ms_sysv): Use
19498 call_rex64_ms_sysv_operation predicate. Remove explicit clobbers.
19499 (*call_value_rex64_ms_sysv): Ditto.
19500
19501 2013-04-18 Cary Coutant <ccoutant@google.com>
19502
19503 * dwarf2out.c (output_pubnames): Check die_perennial_p of
19504 parent instead of die_mark.
19505
19506 2013-04-18 Diego Novillo <dnovillo@google.com>
19507
19508 * gimple.c (create_gimple_tmp): New.
19509 (get_expr_type): New.
19510 (build_assign): New.
19511 (build_type_cast): New.
19512 * gimple.h (enum ssa_mode): Define.
19513 (gimple_seq_set_location): New.
19514 * asan.c (build_check_stmt): Change some gimple_build_* calls
19515 to use build_assign and build_type_cast.
19516
19517 2013-04-18 Richard Biener <rguenther@suse.de>
19518
19519 * tree-vect-data-refs.c (vect_analyze_group_access): Properly
19520 handle negative step. Remove redundant checks.
19521 (vect_create_data_ref_ptr): Avoid ICEs with non-constant steps.
19522 * tree-vect-stmts.c (vectorizable_load): Instead of asserting
19523 for negative step and grouped loads fail to vectorize.
19524
19525 2013-04-18 Steven Bosscher <steven@gcc.gnu.org>
19526
19527 * emit-rtl.c (reset_insn_used_flags): New function.
19528 (reset_all_used_flags): Use it.
19529 (verify_insn_sharing): New function.
19530 (verify_rtl_sharing): Fix verification for SEQUENCEs.
19531
19532 2013-04-18 Jakub Jelinek <jakub@redhat.com>
19533
19534 PR tree-optimization/56984
19535 * tree-vrp.c (register_edge_assert_for_2): For (x >> M) < N
19536 and (x >> M) >= N don't register any assertion if N << M is the
19537 minimum value.
19538
19539 2013-04-18 Steven Bosscher <steven@gcc.gnu.org>
19540
19541 * lower-subreg.c (resolve_simple_move): If called self-recursive,
19542 do not delete_insn insns that have not yet been emitted, only
19543 unlink them with remove_insn.
19544 * df-scan.c (df_insn_delete): Revert r197492.
19545
19546 2013-04-17 Steven Bosscher <steven@gcc.gnu.org>
19547
19548 * emit-rtl.c (link_insn_into_chain): Handle chaining of SEQUENCEs.
19549 * reorg.c (emit_delay_sequence): Simplify with emit-rtl API.
19550
19551 2013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
19552
19553 * config/arm/arm.md (movsicc_insn): Convert define_insn into
19554 define_insn_and_split.
19555 (and_scc,ior_scc,negscc): Likewise.
19556 (cmpsi2_addneg, subsi3_compare): Convert to named patterns.
19557
19558 2013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
19559
19560 * config/arm/arm.c (use_return_insn): Return 0 for targets that
19561 can benefit from using a sequence of LDRD instructions in epilogue
19562 instead of a single LDM instruction.
19563
19564 2013-04-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
19565
19566 PR 45688
19567 * doc/extend.texi: Fix typo.
19568
19569 2013-04-17 Richard Biener <rguenther@suse.de>
19570
19571 * tree-vect-slp.c (vect_build_slp_tree_1): Split out from ...
19572 (vect_build_slp_tree): ... here.
19573 (vect_build_slp_tree_1): Compute which stmts of the SLP group
19574 match. Remove special-casing of mismatched complex loads.
19575 (vect_build_slp_tree): Based on the result from vect_build_slp_tree_1
19576 re-try the match with swapped commutative operands.
19577 (vect_supported_load_permutation_p): Remove special-casing of
19578 mismatched complex loads.
19579 (vect_analyze_slp_instance): Adjust.
19580
19581 2013-04-17 Richard Biener <rguenther@suse.de>
19582
19583 PR rtl-optimization/56921
19584 * cfgloop.h (struct loop): Add simple_loop_desc member.
19585 (struct niter_desc): Mark with GTY(()).
19586 (simple_loop_desc): Do not use aux field but simple_loop_desc.
19587 * loop-iv.c (get_simple_loop_desc): Likewise.
19588 (free_simple_loop_desc): Likewise.
19589
19590 Revert
19591 2013-04-16 Richard Biener <rguenther@suse.de>
19592
19593 PR rtl-optimization/56921
19594 * loop-init.c (pass_rtl_move_loop_invariants): Add
19595 TODO_do_not_ggc_collect to todo_flags_finish.
19596 (pass_rtl_unswitch): Same.
19597 (pass_rtl_unroll_and_peel_loops): Same.
19598 (pass_rtl_doloop): Same.
19599
19600 2013-04-17 Eric Botcazou <ebotcazou@adacore.com>
19601
19602 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): New.
19603 (decl_refs_may_alias_p): Add REF1 and REF2 parameters.
19604 Use nonoverlapping_component_refs_of_decl_p to disambiguate component
19605 references.
19606 (refs_may_alias_p_1): Adjust call to decl_refs_may_alias_p.
19607 * tree-streamer.c (record_common_node): Adjust reference in comment.
19608
19609 2013-04-17 Terry Guo <terry.guo@arm.com>
19610
19611 * config/arm/cortex-m4.md: Add a new bypass.
19612
19613 2013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
19614
19615 * config/aarch64/aarch64.md (*adds_<optab><mode>_multp2):
19616 New pattern.
19617 (*subs_<optab><mode>_multp2): New pattern.
19618 (*adds_<optab><ALLX:mode>_<GPI:mode>): New pattern.
19619 (*subs_<optab><ALLX:mode>_<GPI:mode>): New pattern.
19620
19621 2013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
19622
19623 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>): New pattern.
19624 (*subs_mul_imm_<mode>): New pattern.
19625
19626 2013-04-16 David Edelsohn <dje.gcc@gmail.com>
19627
19628 PR target/56948
19629 * config/rs6000/vsx.md (vsx_mov<mode>): Add j->r alternative.
19630 (vsx_movti_64bit): Change j->wa to O->wa. Add n->r alternative.
19631 (vsx_movti_32bit): Change j->wa to O->wa.
19632
19633 2013-04-16 Richard Biener <rguenther@suse.de>
19634
19635 PR rtl-optimization/56921
19636 * loop-init.c (pass_rtl_move_loop_invariants): Add
19637 TODO_do_not_ggc_collect to todo_flags_finish.
19638 (pass_rtl_unswitch): Same.
19639 (pass_rtl_unroll_and_peel_loops): Same.
19640 (pass_rtl_doloop): Same.
19641
19642 2013-04-16 Greta Yorsh <Greta.Yorsh@arm.com>
19643
19644 * config/arm/arm.c (emit_multi_reg_push): New declaration
19645 for an existing function.
19646 (arm_emit_strd_push): New function.
19647 (arm_expand_prologue): Used here.
19648 (arm_emit_ldrd_pop): New function.
19649 (arm_expand_epilogue): Used here.
19650 (arm_get_frame_offsets): Update condition.
19651 (arm_emit_multi_reg_pop): Add a special case for load of a single
19652 register with writeback.
19653
19654 2013-04-16 Uros Bizjak <ubizjak@gmail.com>
19655
19656 * doc/invoke.texi (i386 Option): Reword -mstack-protector-guard
19657 description.
19658
19659 2013-04-16 Richard Biener <rguenther@suse.de>
19660
19661 PR tree-optimization/56756
19662 * tree-ssa-loop-im.c (struct first_mem_ref_loc_1): New functor.
19663 (first_mem_ref_loc): New.
19664 (execute_sm): Place the load temporarily before a previous
19665 access instead of in the latch edge to ensure its SSA dependencies
19666 are defined at points dominating the load.
19667
19668 2013-04-16 Steven Bosscher <steven@gcc.gnu.org>
19669
19670 * cfgrtl.c (cfg_layout_merge_blocks): Revert r184005, implement
19671 correct fix by moving header and footer insn to the footer of
19672 the merged basic block. Clear BB_END of the merged-away block.
19673
19674 PR middle-end/43631
19675 * emit-rtl.c (make_note_raw): New function.
19676 (link_insn_into_chain): New static inline function.
19677 (add_insn): Use it.
19678 (add_insn_before, add_insn_after): Factor insn chain linking code...
19679 (add_insn_before_nobb, add_insn_after_nobb): ...here, new functions
19680 using link_insn_into_chain.
19681 (note_outside_basic_block_p): New helper function for emit_note_after
19682 and emit_note_before.
19683 (emit_note_after): Use nobb variant of add_insn_after if the note
19684 should not be contained in a basic block.
19685 (emit_note_before): Use nobb variant of add_insn_before if the note
19686 should not be contained in a basic block.
19687 (emit_note_copy): Use make_note_raw.
19688 (emit_note): Likewise.
19689 * bb-reorder.c (insert_section_boundary_note): Remove hack to set
19690 BLOCK_FOR_INSN to NULL manually for NOTE_INSN_SWITCH_TEXT_SECTIONS.
19691 * jump.c (cleanup_barriers): Use reorder_insns_nobb to avoid making
19692 the moved barrier the tail of the basic block it follows.
19693 * var-tracking.c (pass_variable_tracking): Add TODO_verify_flow.
19694
19695 2013-04-15 Jakub Jelinek <jakub@redhat.com>
19696
19697 PR tree-optimization/56962
19698 * gimple-ssa-strength-reduction.c (record_increment): Only set
19699 initializer if gimple_assign_rhs_code is {,POINTER_}PLUS_EXPR and
19700 either rhs1 or rhs2 is equal to c->base_expr.
19701
19702 2013-04-15 Richard Biener <rguenther@suse.de>
19703
19704 PR tree-optimization/56933
19705 * tree-vectorizer.h (struct _stmt_vec_info): Remove read_write_dep
19706 member.
19707 (GROUP_READ_WRITE_DEPENDENCE): Remove.
19708 (STMT_VINFO_GROUP_READ_WRITE_DEPENDENCE): Likewise.
19709 * tree-vect-data-refs.c (vect_analyze_group_access): Move
19710 dependence check ...
19711 vect_analyze_data_ref_dependence (vect_analyze_data_ref_dependence):
19712 ... here.
19713 * tree-vect-stmts.c (new_stmt_vec_info): Do not initialize
19714 GROUP_READ_WRITE_DEPENDENCE.
19715
19716 2013-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19717
19718 * emit-rtl.c (reset_all_used_flags): New function.
19719 (verify_rtl_sharing): Call reset_all_used_flags before and after
19720 performing the checks.
19721
19722 2013-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19723
19724 * config/arm/arm.c (const_ok_for_dimode_op): Handle AND case.
19725 * config/arm/arm.md (*anddi3_insn): Change to insn_and_split.
19726 * config/arm/constraints.md (De): New constraint.
19727 * config/arm/neon.md (anddi3_neon): Delete.
19728 (neon_vand<mode>): Expand to standard anddi3 pattern.
19729 * config/arm/predicates.md (imm_for_neon_inv_logic_operand):
19730 Move earlier in the file.
19731 (neon_inv_logic_op2): Likewise.
19732 (arm_anddi_operand_neon): New predicate.
19733
19734 2013-04-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19735
19736 * configure.ac (gcc_cv_ld_as_needed): Set
19737 gcc_cv_ld_as_needed_option, gcc_cv_no_as_needed_option.
19738 Use -z ignore, -z record on *-*-solaris2*.
19739 (HAVE_LD_AS_NEEDED): Update comment.
19740 (LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION): Define.
19741 * configure: Regenerate.
19742 * config.in: Regenerate.
19743 * gcc.c (init_gcc_specs) [USE_LD_AS_NEEDED]: Use
19744 LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION.
19745 * config/sol2.h [HAVE_LD_AS_NEEDED] (USE_LD_AS_NEEDED): Define.
19746 * doc/tm.texi.in (USE_LD_AS_NEEDED): Allow for --as-needed
19747 equivalents. Fix markup.
19748 * doc/tm.texi: Regenerate.
19749
19750 2013-04-15 Andrew Hsieh <andrewhsieh.google.com>
19751
19752 * config/i386/i386.opt: New option mstack-protector-guard=.
19753 * config/i386/i386-opts.h: Add enum stack_protector_guard.
19754 * config/i386/i386.h: Define TARGET_SSP_GLOBAL_GUARD and
19755 TARGET_SSP_TLS_GUARD.
19756 * config/i386/i386.c (ix86_option_override_internal): Set
19757 ix86_stack_protector_guard.
19758 * config/i386/i386.md (stack_protect_set): Enable for
19759 TARGET_SSP_TLS_GUARD only.
19760 (stack_protect_set_<mode>): Ditto.
19761 (stack_protect_test): Ditto.
19762 (stack_protect_test_<mode>): Ditto.
19763 * doc/invoke.texi (i386 Option): Document.
19764
19765 2013-04-15 Eric Botcazou <ebotcazou@adacore.com>
19766
19767 PR target/56890
19768 * config/sparc/sparc.c (enum sparc_mode_class): Add H_MODE value.
19769 (S_MODES): Set H_MODE bit.
19770 (SF_MODES): Set only S_MODE and SF_MODE bits.
19771 (DF_MODES): Set SF_MODES and only D_MODE and DF_MODE bits.
19772 (sparc_init_modes) <MODE_INT>: Set H_MODE bit for sub-word modes.
19773 <MODE_VECTOR_INT>: Do not set SF_MODE for sub-word modes.
19774 <MODE_FLOAT>: Likewise.
19775
19776 2013-04-15 Joey Ye <joey.ye@arm.com>
19777
19778 * config/arm/arm.c (thumb_far_jump_used_p): Fix typo in comments.
19779
19780 2013-04-15 Joey Ye <joey.ye@arm.com>
19781
19782 * config/arm/arm.c (thumb1_final_prescan_insn): Assert lr save
19783 for real far jump.
19784 (thumb_far_jump_used_p): Count instruction size and set
19785 far_jump_used.
19786
19787 2013-04-14 Eric Botcazou <ebotcazou@adacore.com>
19788
19789 * reorg.c (fill_simple_delay_slots): Reindent block of code.
19790 * resource.c (mark_target_live_regs): Reformat conditional block.
19791
19792 2013-04-13 Steven Bosscher <steven@gcc.gnu.org>
19793
19794 * sched-deps.c (deps_analyze_insn): Do not check for EH_REGION insn
19795 notes, they are emitted only just before final.
19796 * sched-int.h: Include insn-attr.h before checking INSN_SCHEDULING.
19797
19798 2013-04-13 Steven Bosscher <steven@gcc.gnu.org>
19799
19800 * emit-rtl.c (remove_insn): Do not call df_insn_delete here.
19801 * cfgrtl.c (delete_insn): Call it here instead.
19802 * lra-spills.c (lra_final_code_change): Use delete_insn.
19803 * haifa-sched.c (sched_remove_insn): Likewise.
19804 * sel-sched-ir.c (return_nop_to_pool): Clear INSN_DELETED_P for nops
19805 returning to the nop pool.
19806 (sel_remove_insn): Simplify the only_disconnect case via remove_insn,
19807 use delete_insn for definitive removal. Clear BLOCK_FOR_INSN.
19808
19809 2013-04-12 Steven Bosscher <steven@gcc.gnu.org>
19810
19811 * doc/tm.texi.in (LOOP_ALIGN): Remove loop note references.
19812 * doc/tm.texi: Regenerated.
19813
19814 2013-04-12 Uros Bizjak <ubizjak@gmail.com>
19815
19816 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use ANY_QI_REGNO_P in
19817 QImode checks.
19818
19819 2013-04-12 Steven Bosscher <steven@gcc.gnu.org>
19820
19821 * df-core.c (df_find_def): Compare register numbers.
19822 (df_find_use): Likewise.
19823
19824 2013-04-12 Vladimir Makarov <vmakarov@redhat.com>
19825
19826 PR target/56903
19827 * config/i386/i386.c (ix86_hard_regno_mode_ok): Add
19828 lra_in_progress for return.
19829
19830 2013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
19831
19832 * config/arm/arm.md (mov_scc,mov_negscc,mov_notscc): Convert
19833 define_insn into define_insn_and_split and emit movsicc patterns.
19834
19835 2013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
19836
19837 * config/arm/arm.c (gen_operands_ldrd_strd): Initialize "base".
19838
19839 2013-04-12 Richard Biener <rguenther@suse.de>
19840
19841 * tree-pass.h (TODO_do_not_ggc_collect): New.
19842 * passes.c (execute_one_ipa_transform_pass): Honor
19843 TODO_do_not_ggc_collect.
19844 (execute_one_pass): Likewise.
19845
19846 Revert
19847 2013-04-10 Richard Biener <rguenther@suse.de>
19848
19849 * passes.c (init_optimization_passes): Remove reload pass.
19850 * ira.c (do_reload): Merge into ...
19851 (ira): ... this.
19852 (rest_of_handle_reload): Remove.
19853 (pass_reload): Likewise.
19854 * config/i386/i386.c (ix86_option_override): Refer to ira instead
19855 of reload for vzeroupper pass placement.
19856
19857 2013-04-12 Jakub Jelinek <jakub@redhat.com>
19858
19859 PR tree-optimization/56918
19860 PR tree-optimization/56920
19861 * fold-const.c (int_const_binop_1): Use op1.mul_with_sign (op2, ...)
19862 instead of op1 - op2. Pass 2 * TYPE_PRECISION (type) as second
19863 argument to rshift method. For 2 * HOST_BITS_PER_WIDE_INT precision
19864 use wide_mul_with_sign method.
19865
19866 2013-04-12 Richard Biener <rguenther@suse.de>
19867
19868 * gimple.c (is_gimple_constant): Vector CONSTRUCTORs should
19869 not be considered a gimple constant.
19870
19871 2013-04-12 Marc Glisse <marc.glisse@inria.fr>
19872
19873 * fold-const.c (const_binop): Handle vector shifts by a scalar.
19874 (fold_binary_loc): Call const_binop also for mixed vector-scalar
19875 operations.
19876
19877 2013-04-12 Manuel López-Ibáñez <manu@gcc.gnu.org>
19878 Jakub Jelinek <jakub@redhat.com>
19879
19880 * opts.c: Include diagnostic-color.h.
19881 (common_handle_option): Handle OPT_fdiagnostics_color_.
19882 * Makefile.in (OBJS-libcommon): Add diagnostic-color.o.
19883 (diagnostic.o, opts.o, pretty-print.o): Depend on diagnostic-color.h.
19884 (diagnostic-color.o): New.
19885 * common.opt (fdiagnostics-color, fdiagnostics-color=): New options.
19886 (diagnostic_color_rule): New enum.
19887 * dwarf2out.c (gen_producer_string): Don't print -fdiagnostics-color*.
19888 * langhooks.c (lhd_print_error_function): Add %r "locus" and %R around
19889 the location string.
19890 * diagnostic.def: Add 3rd argument to DEFINE_DIAGNOSTIC_KIND macros,
19891 either NULL, or color kind.
19892 * diagnostic-color.c: New file.
19893 * diagnostic-color.h: New file.
19894 * diagnostic-core.h (DEFINE_DIAGNOSTIC_KIND): Adjust macro for 3
19895 arguments.
19896 * doc/invoke.texi (-fdiagnostics-color): Document.
19897 * pretty-print.h (pp_show_color): Define.
19898 (struct pretty_print_info): Add show_color field.
19899 * diagnostic.c: Include diagnostic-color.h.
19900 (diagnostic_build_prefix): Adjust for 3 argument DEFINE_DIAGNOSTIC_KIND
19901 macros. Colorize error:, warning: etc. strings and also the location
19902 string.
19903 (diagnostic_show_locus): Colorize the caret line.
19904 * pretty-print.c: Include diagnostic-color.h.
19905 (pp_base_format): Handle %r and %R format specifiers. Colorize strings
19906 inside of %< %> quotes or quoted through q format modifier.
19907
19908 2013-04-12 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19909
19910 * ifcvt.c (end_ifcvt_sequence): Mark a and b for unsharing as well.
19911
19912 2013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
19913
19914 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Allow NEG
19915 code in CC_NZ mode.
19916 * config/aarch64/aarch64.md (*neg_<shift><mode>3_compare0): New
19917 pattern.
19918
19919 2013-04-11 Marek Polacek <polacek@redhat.com>
19920
19921 PR tree-optimization/48184
19922 * params.def (PARAM_ALIGN_THRESHOLD): Increase the minimum value to 1.
19923
19924 2013-04-11 Eric Botcazou <ebotcazou@adacore.com>
19925
19926 * stor-layout.c (skip_simple_constant_arithmetic): Move to...
19927 * tree.c (skip_simple_constant_arithmetic): ...here and make public.
19928 (skip_simple_arithmetic): Tidy up.
19929 * tree.h (skip_simple_constant_arithmetic): Declare.
19930
19931 2013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
19932
19933 * config/aarch64/aarch64.h (REVERSIBLE_CC_MODE): Define.
19934
19935 2013-04-11 Richard Biener <rguenther@suse.de>
19936
19937 * tree-vect-loop.c (get_initial_def_for_induction): Properly
19938 generate vector constants.
19939
19940 2013-04-11 Richard Biener <rguenther@suse.de>
19941
19942 PR tree-optimization/56878
19943 * tree-flow.h (outermost_invariant_loop_for_expr): Declare.
19944 * tree-ssa-loop-ivopts.c (outermost_invariant_loop_for_expr):
19945 New function.
19946 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
19947 Prefer to align the DR with the most invariant base address.
19948
19949 2013-04-11 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
19950
19951 * opts.c (common_handle_option): Fix formatting and add FALLTHRU
19952 comment.
19953
19954 2013-04-11 James Greenhalgh <james.greenhalgh@arm.com>
19955
19956 * config/aarch64/aarch64-simd.md (aarch64_vcond_internal): Fix
19957 floating-point vector comparisons against 0.
19958
19959 2013-04-11 Jakub Jelinek <jakub@redhat.com>
19960
19961 PR tree-optimization/56899
19962 * fold-const.c (extract_muldiv_1): Apply distributive law
19963 only if TYPE_OVERFLOW_WRAPS (ctype).
19964
19965 2013-04-11 Bin Cheng <bin.cheng@arm.com>
19966
19967 PR target/56124
19968 * ira-costs.c (scan_one_insn): Check whether the source rtx of
19969 loading has side effect.
19970
19971 2013-04-10 Steven Bosscher <steven@gcc.gnu.org>
19972
19973 * config/sparc/sparc.c: Include tree-pass.h.
19974 (TARGET_MACHINE_DEPENDENT_REORG): Do not redefine.
19975 (sparc_reorg): Rename to sparc_do_work_around_errata. Move to
19976 head of file. Change return type. Split off gate function.
19977 (sparc_gate_work_around_errata): New function.
19978 (pass_work_around_errata): New pass definition.
19979 (insert_pass_work_around_errata) New pass insert definition to
19980 insert pass_work_around_errata just after delayed-branch scheduling.
19981 (sparc_option_override): Insert the pass.
19982 * config/sparc/t-sparc (sparc.o): Add TREE_PASS_H dependence.
19983
19984 2013-04-10 David S. Miller <davem@davemloft.net>
19985
19986 * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=supersparc
19987 or -mcpu=hypersparc.
19988
19989 * target.def (cstore_mode): New hook.
19990 * target.h: Include insn-codes.h
19991 * targhooks.c: Likewise.
19992 (default_cstore_mode): New function.
19993 * targhooks.h: Declare it.
19994 * doc/tm.texi.in: New hook slot for TARGET_CSTORE_MODE.
19995 * doc/tm.texi: Rebuild.
19996 * expmed.c (emit_cstore): Obtain cstore boolean result mode using
19997 target hook, rather than inspecting the insn_data.
19998 * config/sparc/sparc.c (sparc_cstore_mode): New function.
19999 (TARGET_CSTORE_MODE): Redefine.
20000 (emit_scc_insn): When TARGET_ARCH64, emit new 64-bit boolean
20001 result patterns.
20002 * config/sparc/predicates.md (cstore_result_operand): New special
20003 predicate.
20004 * config/sparc/sparc.md (cstoresi4, cstoredi4, cstore<F:mode>4):
20005 Use it for operand 0.
20006 (*seqsi_special): Rewrite using 'P' mode iterator on operand 0.
20007 (*snesi_special): Likewise.
20008 (*snesi_zero): Likewise.
20009 (*seqsi_zero): Likewise.
20010 (*sltu_insn): Likewise.
20011 (*sgeu_insn): Likewise.
20012 (*seqdi_special): Make operand 0 and comparison operation be of
20013 DImode.
20014 (*snedi_special): Likewise.
20015 (*snedi_special_vis3): Likewise.
20016 (*neg_snesi_zero): Rename to *neg_snesisi_zero.
20017 (*neg_snesi_sign_extend): Rename to *neg_snesidi_zero.
20018 (*snesi_zero_extend): Delete, covered by 'P' mode iterator.
20019 (*neg_seqsi_zero): Rename to *neg_seqsisi_zero.
20020 (*neg_seqsi_sign_extend): Rename to *neg_seqsidi_zero.
20021 (*seqsi_zero_extend): Delete, covered by 'P' mode iterator.
20022 (*sltu_extend_sp64): Likewise.
20023 (*neg_sltu_insn): Rename to *neg_sltusi_insn.
20024 (*neg_sltu_extend_sp64): Rename to *neg_sltudi_insn.
20025 (*sgeu_extend_sp64): Delete, covered by 'P' mode iterator.
20026 (*neg_sgeu_insn): Rename to *neg_sgeusi_insn.
20027 (*neg_sgeu_extend_sp64): Rename to *neg_sgeudi_insn.
20028
20029 2013-04-10 Yufeng Zhang <yufeng.zhang@arm.com>
20030
20031 * config/aarch64/aarch64.c (aarch64_print_extension): New function.
20032 (aarch64_start_file): Use the new function.
20033
20034 2013-04-10 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
20035 Jason Merrill <jason@redhat.com>
20036
20037 * common.opt: Add -gdwarf.
20038 * opts.c (common_handle_option): Handle it.
20039 * gcc.c (ASM_DEBUG_SPEC): Don't expect "-2" for DWARF.
20040
20041 2013-04-10 Richard Biener <rguenther@suse.de>
20042
20043 * passes.c (execute_todo): Do not call ggc_collect conditional here.
20044 (execute_one_ipa_transform_pass): But unconditionally here.
20045 (execute_one_pass): And here.
20046 (init_optimization_passes): Remove reload pass.
20047 * tree-pass.h (TODO_ggc_collect): Remove.
20048 (pass_reload): Likewise.
20049 * ira.c (do_reload): Merge into ...
20050 (ira): ... this.
20051 (rest_of_handle_reload): Remove.
20052 (pass_reload): Likewise.
20053 * config/i386/i386.c (ix86_option_override): Refer to ira instead
20054 of reload for vzeroupper pass placement.
20055 * <everywhere>: Remove TODO_ggc_collect from todo_flags_start
20056 and todo_flags_finish of all passes.
20057
20058 2013-04-10 Richard Biener <rguenther@suse.de>
20059
20060 * tree-vectorizer.h (struct _slp_oprnd_info): Remove
20061 first_const_oprnd field, rename first_def_type to first_op_type.
20062 * tree-vect-slp.c (vect_create_oprnd_info): Adjust.
20063 (vect_get_and_check_slp_defs): Always use the type of the
20064 operand. Allow mixed vect_external_def, vect_constant_def types.
20065 (vect_get_constant_vectors): Handle mixed vect_external_def,
20066 vect_constant_def types.
20067
20068 2013-04-10 Joern Rennecke <joern.rennecke@embecosm.com>
20069
20070 PR tree-optimization/55524
20071 * tree-ssa-math-opts.c
20072 (convert_mult_to_fma): Don't use an fms construct
20073 when we don't have an fms operation, but fnma, and it looks
20074 likely that we'll be able to use the latter.
20075
20076 2013-04-10 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
20077
20078 * cif-code.def (OVERWRITABLE): Correct the comment for overwritable
20079 function.
20080 * ipa-inline.c (can_inline_edge_p): Let dump mechanism report the
20081 inline fail caused by overwritable functions.
20082
20083 2013-04-10 Chung-Ju Wu <jasonwucj@gmail.com>
20084
20085 * combine.c (simplify_compare_const): Use GET_MODE_MASK to filter out
20086 unnecessary bits in the constant power of two case.
20087
20088 2013-04-10 Richard Biener <rguenther@suse.de>
20089
20090 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove
20091 broken code swapping operands.
20092 (vect_build_slp_tree): Do not compute load permutations here.
20093 (vect_analyze_slp_instance): Compute load permutations here,
20094 after building the SLP tree.
20095
20096 2013-04-09 Christian Bruel <christian.bruel@st.com>
20097
20098 * config/sh/sh.md (barrier_align): Use next/prev_active_insn instead
20099 of next/prev_real_insn.
20100
20101 2013-04-09 Jan Hubicka <jh@suse.cz>
20102
20103 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
20104 Drop aliased parameter.
20105 (function_and_variable_visibility): Do not handle alias pairs.
20106 * cgraph.c (varpool_externally_visible_p): Update prototype.
20107 * varpool.c (varpool_add_new_variable): Update.
20108
20109 2013-04-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20110
20111 * config/arm/arm.md (minmax_arithsi_non_canon): New pattern.
20112
20113 2013-04-09 Steven Bosscher <steven@gcc.gnu.org>
20114
20115 * sched-vis.c (print_pattern): Print SEQUENCE of insns as insns.
20116
20117 * config/sparc/sparc.md: Use define_c_enum for "unspec" and "unspecv".
20118
20119 2013-04-09 Marek Polacek <polacek@redhat.com>
20120
20121 PR tree-optimization/48762
20122 * params.def (PARAM_MAX_CSE_INSNS): Increase the minimum value to 1.
20123
20124 2013-04-09 Richard Biener <rguenther@suse.de>
20125
20126 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove code
20127 dealing with cost.
20128 (vect_build_slp_tree): Likewise.
20129 (vect_analyze_slp_cost_1, vect_analyze_slp_cost): New functions
20130 calculating the cost of a SLP instance.
20131 (vect_analyze_slp_instance): Use it from here, after building
20132 the SLP tree.
20133
20134 2013-04-09 Jakub Jelinek <jakub@redhat.com>
20135
20136 PR middle-end/56883
20137 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
20138 expand_omp_for_static_chunk): Use simple_p = true in
20139 force_gimple_operand_gsi calls when assigning to addressable decls.
20140
20141 2013-04-09 Jeff Law <law@redhat.com>
20142
20143 * tree-vrp.c (simplify_cond_using_ranges): Simplify test of boolean
20144 when the boolean was created by converting a wider object which
20145 had a boolean range.
20146
20147 2013-04-09 Richard Biener <rguenther@suse.de>
20148
20149 * tree-vectorizer.h (slp_void_p): Remove.
20150 (slp_tree): Typedef before _slp_tree declaration.
20151 (struct _slp_tree): Use a vector of slp_tree as children.
20152 (vect_get_place_in_interleaving_chain): Remove.
20153 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain):
20154 Move ...
20155 * tree-vect-slp.c (vect_get_place_in_interleaving_chain): ... here
20156 and make static.
20157 (vect_free_slp_tree, vect_print_slp_tree, vect_mark_slp_stmts,
20158 vect_mark_slp_stmts_relevant, vect_slp_rearrange_stmts,
20159 vect_detect_hybrid_slp_stmts, vect_slp_analyze_node_operations,
20160 vect_schedule_slp_instance, vect_remove_slp_scalar_calls):
20161 Use slp_node instead of slp_void_p and adjust.
20162
20163 2013-04-09 Richard Biener <rguenther@suse.de>
20164
20165 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Avoid
20166 work that is not necessary.
20167
20168 2013-04-09 Jakub Jelinek <jakub@redhat.com>
20169
20170 PR tree-optimization/56854
20171 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't
20172 forward into clobber stmts if it would change MEM_REF lhs into
20173 non-MEM_REF.
20174
20175 2013-04-09 Maxim Kuvyrkov <maxim@kugelworks.com>
20176
20177 * tree.c (type_hash_lookup, type_hash_add): Make static.
20178 * tree.h (type_hash_lookup, type_hash_add): Remove global declarations.
20179
20180 2013-04-09 Richard Biener <rguenther@suse.de>
20181
20182 * tree.h (unsave_expr_now): Remove.
20183 * tree-inline.c (mark_local_for_remap_r): Remove.
20184 (unsave_expr_1): Likewise.
20185 (unsave_r): Likewise.
20186 (unsave_expr_now): Likewise.
20187 * tree-ssa-copy.c (replace_exp_1): Use unshare_expr.
20188 (propagate_tree_value): Likewise.
20189
20190 2013-04-08 Steven Bosscher <steven@gcc.gnu.org>
20191
20192 * doc/rtl.texi (sequence): Rewrite documentation to match the
20193 current use of SEQUENCE rtl objects.
20194 * rtl.def (SEQUENCE): Likewise.
20195
20196 * doc/rtl.texi (NOTE_INSN_EH_REGION_BEG, NOTE_INSN_EH_REGION_END):
20197 Update documentation.
20198 (NOTE_INSN_LOOP_BEG, NOTE_INSN_LOOP_END, NOTE_INSN_LOOP_CONT,
20199 NOTE_INSN_LOOP_VTOP): Remove documentation for non-existing notes.
20200
20201 * reg-notes.def (REG_EH_CONTEXT): Remove unused note.
20202
20203 2013-04-08 Teresa Johnson <tejohnson@google.com>
20204
20205 * basic-block.h (GCOV_COMPUTE_SCALE): Define.
20206 * ipa-inline-analysis.c (param_change_prob): Use helper rounding divide
20207 methods.
20208 (estimate_edge_size_and_time): Add comment to suggest using rounding
20209 methods.
20210 (estimate_node_size_and_time): Ditto.
20211 (remap_edge_change_prob): Use helper rounding divide methods.
20212 * value-prof.c (gimple_divmod_fixed_value_transform): Ditto.
20213 (gimple_mod_pow2_value_transform): Ditto.
20214 (gimple_mod_subtract_transform): Ditto.
20215 (gimple_ic_transform): Ditto.
20216 (gimple_stringops_transform): Ditto.
20217 * stmt.c (conditional_probability): Ditto.
20218 (emit_case_dispatch_table): Ditto.
20219 * lto-cgraph.c (merge_profile_summaries): Ditto.
20220 * tree-optimize.c (execute_fixup_cfg): Ditto.
20221 * cfgcleanup.c (try_forward_edges): Ditto.
20222 * cfgloopmanip.c (scale_loop_profile): Ditto.
20223 (loopify): Ditto.
20224 (duplicate_loop_to_header_edge): Ditto.
20225 (lv_adjust_loop_entry_edge): Ditto.
20226 * tree-vect-loop.c (vect_transform_loop): Ditto.
20227 * profile.c (compute_branch_probabilities): Ditto.
20228 * cfgbuild.c (compute_outgoing_frequencies): Ditto.
20229 * lto-streamer-in.c (input_cfg): Ditto.
20230 * gimple-streamer-in.c (input_bb): Ditto.
20231 * ipa-cp.c (update_profiling_info): Ditto.
20232 (update_specialized_profile): Ditto.
20233 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Ditto.
20234 * cfg.c (update_bb_profile_for_threading): Add comment to suggest using
20235 rounding methods.
20236 * sched-rgn.c (compute_dom_prob_ps): Ditto.
20237 (compute_trg_info): Ditto.
20238 * cfgrtl.c (force_nonfallthru_and_redirect): Ditto.
20239 (purge_dead_edges): Ditto.
20240 * loop-unswitch.c (unswitch_loop): Ditto.
20241 * cgraphclones.c (cgraph_clone_edge): Ditto.
20242 (cgraph_clone_node): Ditto.
20243 * tree-inline.c (copy_bb): Ditto.
20244 (copy_edges_for_bb): Ditto.
20245 (initialize_cfun): Ditto.
20246 (copy_cfg_body): Ditto.
20247 (expand_call_inline): Ditto.
20248
20249 2013-04-08 Kai Tietz <ktietz@redhat.com>
20250
20251 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Replaced
20252 TARGET_CYGWIN64 by TARGET_64BIT.
20253
20254 2013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
20255
20256 * config/epiphany/epiphany.md (GPR_1): New constant.
20257 (define_expand "mov<mode>cc): FAIL if gen_compare_reg returned 0.
20258 * config/epiphany/epiphany.c (gen_compare_reg):
20259 For flag_finite_math_only, avoid swapping operands when r0 and/or r1
20260 is already in place.
20261 Use GPR_0 / GPR_1 instead of 0/1 for r0/r1 register numbers.
20262 Don't require being called during rtl expansion; If y operlaps r0,
20263 return 0.
20264 (epiphany_compute_frame_size, epiphany_expand_prologue): Use GPR_1.
20265 (epiphany_expand_epilogue): Likewise.
20266
20267 * config/epiphany/epiphany.c (epiphany_select_cc_mode):
20268 Don't use CC_FPmode for ORDERED / UNORDERED.
20269 * config/epiphany/epiphany.md (cmpsf_ord): Make pattern unconditional.
20270
20271 * config/epiphany/constraints.md (CnL): New constraint.
20272 * config/epiphany/epiphany.md (addsi3_i): Add r/r/CnL alternative.
20273 * config/epiphany/predicates.md (add_operand): Allow 1024.
20274
20275 * config/epiphany/epiphany.md (logical_op): New code iterator.
20276 (op_mnc): New code attribute.
20277 (<op_mnc>_f, mov_f, cstoresi4): New patterns.
20278 (mov_f+1, mov_f+2): New peephole2 patterns.
20279
20280 * config/epiphany/epiphany.md (mov_f+2): New peephole2 pattern.
20281 (cstoresi4): Also allow re-use of zero result when doing a NE
20282 comparison to a non-zero operand.
20283 Use (clobber (scratch)) for first insn if the gpr output is not needed.
20284
20285 * config/epiphany/epiphany.md (<insn_opname>v2si3):
20286 Use gen_addsi3_i / gen_subsi3_i.
20287
20288 2013-04-08 Jakub Jelinek <jakub@redhat.com>
20289
20290 PR c++/34949
20291 PR c++/50243
20292 * tree-eh.c (optimize_clobbers): Only remove clobbers if bb doesn't
20293 contain anything but clobbers, at most one __builtin_stack_restore,
20294 optionally debug stmts and final resx, and if it has at least one
20295 incoming EH edge. Don't check for SSA_NAME on LHS of a clobber.
20296 (sink_clobbers): Don't check for SSA_NAME on LHS of a clobber.
20297 Instead of moving clobbers with MEM_REF LHS with SSA_NAME address
20298 which isn't defaut definition, remove them.
20299 (unsplit_eh, cleanup_empty_eh): Use single_{pred,succ}_{p,edge}
20300 instead of EDGE_COUNT comparisons or EDGE_{PRED,SUCC}.
20301 * tree-ssa-ccp.c (execute_fold_all_builtins): Remove clobbers
20302 with MEM_REF LHS with SSA_NAME address.
20303
20304 2013-04-08 Jeff Law <law@redhat.com>
20305
20306 * gimple.c (canonicalize_cond_expr_cond): Rewrite x ^ y into x != y.
20307
20308 2013-04-08 Richard Biener <rguenther@suse.de>
20309
20310 * gimple-pretty-print.c (debug_gimple_stmt): Do not print
20311 extra newline.
20312 * tree-vect-loop.c (vect_determine_vectorization_factor): Dump
20313 determined vector type.
20314 (vect_analyze_data_refs): Likewise.
20315 (vect_get_new_vect_var): Adjust.
20316 (vect_create_destination_var): Preserve SSA name versions.
20317 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Do
20318 not dump anything here.
20319
20320 2013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
20321
20322 * config/epiphany/epiphany.h (struct GTY (()) machine_function):
20323 Add member lr_slot_known.
20324 * config/epiphany/epiphany.md (reload_insi_ra): Compute lr_slot_offs
20325 if necessary.
20326 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
20327 Remove code that sets lr_slot_offset according to what a previous
20328 version of epiphany_emit_save_restore used to do.
20329 (epiphany_emit_save_restore): When doing an lr save or restore,
20330 set/verify lr_slot_known and lr_slot_offset.
20331
20332 2013-04-08 Xinyu Qi <xyqi@marvell.com>
20333
20334 PR target/54338
20335 * config/arm/arm.h (REG_CLASS_CONTENTS): Include IWMMXT_GR_REGS
20336 in ALL_REGS.
20337
20338 2013-04-08 Richard Biener <rguenther@suse.de>
20339
20340 * alias.c (find_base_term): Fix thinko in previous change.
20341
20342 2013-04-08 Jakub Jelinek <jakub@redhat.com>
20343
20344 * tree-loop-distribution.c (const_with_all_bytes_same): New function.
20345 (generate_memset_builtin): Only handle integer_all_onesp as -1 val if
20346 TYPE_PRECISION is equal to mode bitsize. Use const_with_all_bytes_same
20347 if possible to compute val.
20348 (classify_partition): Verify CONSTRUCTOR doesn't have any elts.
20349 For QImode integers don't require anything about precision. Use
20350 const_with_all_bytes_same to find out if the constant doesn't have
20351 repeated bytes in it.
20352
20353 2013-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20354
20355 * config/s390/s390.c (s390_expand_insv): Only accept insertions
20356 within mode size.
20357
20358 2013-04-08 Marek Polacek <polacek@redhat.com>
20359
20360 PR rtl-optimization/48182
20361 * params.def (PARAM_MIN_CROSSJUMP_INSNS): Increase the minimum
20362 value to 1.
20363
20364 2013-04-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20365
20366 PR target/55487
20367 * config/pa/pa.c (legitimize_pic_address): Before incrementing label
20368 nuses, make sure we have a label.
20369
20370 2013-04-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
20371
20372 PR target/56843
20373 * config/rs6000/rs6000.c (rs6000_emit_swdiv_high_precision): Remove.
20374 (rs6000_emit_swdiv_low_precision): Remove.
20375 (rs6000_emit_swdiv): Rewrite to handle between one and four
20376 iterations of Newton-Raphson generally; modify required number of
20377 iterations for some cases.
20378 * config/rs6000/rs6000.h (RS6000_RECIP_HIGH_PRECISION_P): Remove.
20379
20380 2013-04-05 Steven Bosscher <steven@gcc.gnu.org>
20381
20382 * bb-reorder.c (fix_crossing_unconditional_branches): Remove a
20383 set-but-unused variable.
20384
20385 * cgraph.c (cgraph_release_function_body): Clear cfun->cfg to make
20386 basic blocks of released function bodies garbage-collectable.
20387
20388 * ree.c (find_and_remove_re): Do not call df_finish_pass here.
20389 (struct rtl_opt_pass): Add TODO_df_finish.
20390
20391 * rtl.def (DEFINE_SUBST, DEFINE_SUBST_ATTR): Add documentation.
20392
20393 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20394
20395 * config/arm/constraints.md (q): New constraint.
20396 * config/arm/ldrdstrd.md: New file.
20397 * config/arm/arm.md (ldrdstrd.md) New include.
20398 (arm_movdi): Use "q" instead of "r" constraint
20399 for double-word memory access.
20400 (movdf_soft_insn): Likewise.
20401 * config/arm/vfp.md (movdi_vfp): Likewise.
20402 * config/arm/t-arm (MD_INCLUDES): Add ldrdstrd.md.
20403 * config/arm/arm-protos.h (gen_operands_ldrd_strd): New declaration.
20404 * config/arm/arm.c (gen_operands_ldrd_strd): New function.
20405 (mem_ok_for_ldrd_strd): Likewise.
20406 (output_move_double): Update assertion.
20407
20408 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20409
20410 * config/arm/arm.md: Comment on splitting Thumb1 patterns.
20411
20412 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20413
20414 * config/arm/arm.md (arm_smax_insn): Convert define_insn into
20415 define_insn_and_split.
20416 (arm_smin_insn,arm_umaxsi3,arm_uminsi3): Likewise.
20417
20418 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20419
20420 * config/arm/arm.md (arm_ashldi3_1bit): Convert define_insn into
20421 define_insn_and_split.
20422 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
20423 (shiftsi3_compare): New pattern.
20424 (rrx): New pattern.
20425 * config/arm/unspecs.md (UNSPEC_RRX): New.
20426
20427 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20428
20429 * config/arm/arm.md (negdi_extendsidi): New pattern.
20430 (negdi_zero_extendsidi): Likewise.
20431
20432 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20433
20434 * config/arm/arm.md (andsi_iorsi3_notsi): Convert define_insn into
20435 define_insn_and_split.
20436 (arm_negdi2,arm_abssi2,arm_neg_abssi2): Likewise.
20437 (arm_cmpdi_insn,arm_cmpdi_unsigned): Likewise.
20438
20439 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20440
20441 * config/arm/arm.md (arm_subdi3): Convert define_insn into
20442 define_insn_and_split.
20443 (subdi_di_zesidi,subdi_di_sesidi): Likewise.
20444 (subdi_zesidi_di,subdi_sesidi_di,subdi_zesidi_zesidi): Likewise.
20445
20446 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20447
20448 * config/arm/arm.md (subsi3_carryin): New pattern.
20449 (subsi3_carryin_const): Likewise.
20450 (subsi3_carryin_compare,subsi3_carryin_compare_const): Likewise.
20451 (subsi3_carryin_shift,rsbsi3_carryin_shift): Likewise.
20452
20453 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20454
20455 * config/arm/arm.md (incscc,arm_incscc,decscc,arm_decscc): Delete.
20456
20457 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
20458
20459 * config/arm/arm.md (addsi3_carryin_<optab>): Set attribute predicable.
20460 (addsi3_carryin_alt2_<optab>,addsi3_carryin_shift_<optab>): Likewise.
20461
20462 2013-04-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20463
20464 * config/arm/arm.c (arm_expand_builtin): Change fcode
20465 type to unsigned int.
20466
20467 2013-04-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
20468
20469 * doc/invoke.texi (ARM Options): Document cortex-a53 support.
20470
20471 2013-04-04 Ian Lance Taylor <iant@google.com>
20472
20473 * doc/standards.texi (Standards): The Go frontend supports the Go 1
20474 language standard.
20475
20476 2013-04-04 Steven Bosscher <steven@gcc.gnu.org>
20477
20478 PR middle-end/56729
20479 * df-scan.c (df_insn_delete): Disable failing assert.
20480
20481 2013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20482
20483 * config/arm/arm-protos.h (arm_builtin_vectorized_function):
20484 New function prototype.
20485 * config/arm/arm.c (TARGET_VECTORIZE_BUILTINS): Define.
20486 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Likewise.
20487 (arm_builtin_vectorized_function): New function.
20488
20489 2013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20490
20491 * config/arm/arm_neon_builtins.def: New file.
20492 * config/arm/arm.c (neon_builtin_data): Move contents to
20493 arm_neon_builtins.def.
20494 (enum arm_builtins): Include neon builtin definitions.
20495 (ARM_BUILTIN_NEON_BASE): Move from enum to macro.
20496 * config/arm/t-arm (arm.o): Add dependency on arm_neon_builtins.def.
20497
20498 2013-04-04 Marek Polacek <polacek@redhat.com>
20499
20500 PR tree-optimization/48186
20501 * predict.c (maybe_hot_frequency_p): Return false if
20502 HOT_BB_FREQUENCY_FRACTION is 0.
20503 (cgraph_maybe_hot_edge_p): Likewise.
20504
20505 2013-04-04 Richard Biener <rguenther@suse.de>
20506
20507 PR tree-optimization/56826
20508 * tree-vect-slp.c (vect_build_slp_tree): Compute ncopies
20509 more accurately.
20510
20511 2013-04-04 Richard Biener <rguenther@suse.de>
20512
20513 PR tree-optimization/56213
20514 * tree-vect-data-refs.c (vect_check_strided_load): Remove.
20515 (vect_analyze_data_refs): Allow all non-nested loads as strided loads.
20516
20517 2013-04-04 Richard Biener <rguenther@suse.de>
20518
20519 PR tree-optimization/56837
20520 * tree-loop-distribution.c (classify_partition): For non-zero
20521 values require that the value has the same precision as its
20522 mode to be useful as memset value.
20523
20524 2013-04-03 Nick Clifton <nickc@redhat.com>
20525
20526 * config/v850/v850e3v5.md (fmasf4): Use fmaf.s on E3V5 architectures.
20527 (fmssf4): Use fmsf.s on E3V5 architectures.
20528 (fnmasf4): Use fnmaf.s on E3V5 architectures.
20529 (fnmssf4): Use fnmsf.s on E3V5 architectures.
20530
20531 2013-04-03 Jeff Law <law@redhat.com>
20532
20533 * Makefile.in (lra-constraints.o): Depend on $(OPTABS_H).
20534 (lra-eliminations.o): Likewise.
20535
20536 2013-04-03 Teresa Johnson <tejohnson@google.com>
20537
20538 * gcov-io.c (compute_working_sets): Moved most of body of old
20539 compute_working_sets here from profile.c.
20540 * gcov-io.h (NUM_GCOV_WORKING_SETS): Moved here from profile.c.
20541 (gcov_working_set_t): Moved typedef here from basic-block.h
20542 (compute_working_set): Declare.
20543 * profile.c (NUM_GCOV_WORKING_SETS): Moved to gcov-io.h.
20544 (get_working_sets): Renamed from compute_working_set,
20545 replace most of body with call to new compute_working_sets.
20546 (get_exec_counts): Replace call to compute_working_sets
20547 to get_working_sets.
20548 * profile.h (get_working_sets): Renamed from compute_working_set.
20549 * lto-cgraph.c (input_symtab): Replace call to compute_working_sets
20550 to get_working_sets.
20551 * basic-block.h (gcov_working_set_t): Moved to gcov-io.h.
20552 * gcov-dump.c (dump_working_sets): New function.
20553
20554 2013-04-03 Kenneth Zadeck <zadeck@naturalbridge.com>
20555
20556 * hwint.c (sext_hwi, zext_hwi): New functions.
20557 * hwint.h (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT,
20558 HOST_HALF_WIDE_INT_PRINT, HOST_HALF_WIDE_INT_PRINT_C,
20559 HOST_HALF_WIDE_INT_PRINT_DEC, HOST_HALF_WIDE_INT_PRINT_DEC_C,
20560 HOST_HALF_WIDE_INT_PRINT_UNSIGNED, HOST_HALF_WIDE_INT_PRINT_HEX,
20561 HOST_HALF_WIDE_INT_PRINT_HEX_PURE): New symbols.
20562 (sext_hwi, zext_hwi): New functions.
20563
20564 2013-04-03 Jeff Law <law@redhat.com>
20565
20566 PR tree-optimization/56799
20567 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Bring
20568 back test for widening conversion erroneously dropped in prior change.
20569
20570 2013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20571
20572 PR target/56809
20573 * config/aarch64/aarch64.c (is_jump_table): Use next_active_insn
20574 instead of next_real_insn.
20575
20576 2013-04-03 Marek Polacek <polacek@redhat.com>
20577
20578 PR sanitizer/55702
20579 * tsan.c (instrument_func_exit): Allow BUILT_IN_RETURN functions.
20580
20581 2013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20582
20583 PR target/56809
20584 * config/arm/arm.c (is_jump_table): Use next_active_insn instead of
20585 next_real_insn.
20586 (thumb1_output_casesi): Likewise.
20587 (thumb2_output_casesi): Likewise.
20588
20589 2013-04-03 Richard Biener <rguenther@suse.de>
20590
20591 PR tree-optimization/56817
20592 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
20593 Split out ...
20594 (tree_unroll_loops_completely_1): ... new function to manually
20595 walk the loop tree, properly defering outer loops of unrolled
20596 loops to later iterations.
20597
20598 2013-04-03 Marc Glisse <marc.glisse@inria.fr>
20599
20600 * tree-vect-stmts.c (vectorizable_store): Accept BIT_FIELD_REF.
20601 (vectorizable_load): Likewise.
20602 * tree-vect-slp.c (vect_build_slp_tree): Likewise.
20603 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Handle VECTOR_TYPE.
20604
20605 2013-04-03 Marc Glisse <marc.glisse@inria.fr>
20606
20607 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Handle
20608 BIT_FIELD_REF.
20609
20610 2013-04-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
20611
20612 * config/spu/spu.c (emit_nop_for_insn): Handle JUMP_TABLE_DATA.
20613
20614 2013-04-03 Bin Cheng <bin.cheng@arm.com>
20615
20616 * rtl.h (AUTO_INC_DEC): Fix typo of HAVE_POST_MODIFY_DISP.
20617
20618 2013-04-03 Marc Glisse <marc.glisse@inria.fr>
20619
20620 PR tree-optimization/56790
20621 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Add constant
20622 folding.
20623
20624 2013-04-03 Marc Glisse <marc.glisse@inria.fr>
20625
20626 * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
20627 Handle VEC_MERGE.
20628 (simplify_ternary_operation) <VEC_MERGE>: Use unsigned HOST_WIDE_INT
20629 for masks. Test for side effects. Handle nested VEC_MERGE. Handle
20630 equal arguments.
20631
20632 2013-04-03 Jakub Jelinek <jakub@redhat.com>
20633
20634 PR c/19449
20635 * tree.h (force_folding_builtin_constant_p): New decl.
20636 * builtins.c (force_folding_builtin_constant_p): New variable.
20637 (fold_builtin_constant_p): Fold immediately also if
20638 force_folding_builtin_constant_p.
20639
20640 2013-04-03 Richard Biener <rguenther@suse.de>
20641
20642 PR tree-optimization/56812
20643 * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependence):
20644 DRs of the same interleaving chain are independent.
20645
20646 2013-04-02 Jason Merrill <jason@redhat.com>
20647
20648 * gdbinit.in (pbb): Use debug fn.
20649
20650 2013-04-02 Lawrence Crowl <crowl@google.com>
20651
20652 * sese.h (struct ivtype_map_elt_s): Remove unused.
20653 (extern debug_ivtype_map): Remove unused.
20654 (extern eq_ivtype_map_elts): Remove unused.
20655 * sese.c (debug_ivtype_map): Removed unused.
20656 (debug_ivtype_map_1): Removed unused.
20657 (debug_ivtype_elt): Remove unused.
20658 (eq_ivtype_map_elts): Remove unused.
20659
20660
20661 2013-04-02 Kai Tietz <ktietz@redhat.com>
20662
20663 PR target/52790
20664 * config/i386/cygming.h (SUB_TARGET_RECORD_STUB): New sub-target macro.
20665 * config/i386/i386-protos.h (i386_pe_record_stub): Add new prototype.
20666 * config/i386/i386.c (legitimize_pe_coff_extern_decl): New static
20667 function.
20668 (legitimize_pe_coff_symbol): Likewise.
20669 (is_imported_p): New helper-function.
20670 (ix86_option_override_internal): Make MEDIUM_PIC the default code-model
20671 for Windows x64 targets.
20672 (ix86_expand_prologue): Optimize for pe-coff targets.
20673 (ix86_expand_split_stack_prologue): Adjust for pe-coff targets.
20674 (legitimate_pic_address_disp_p): Adjust for x64 pe-coff to support
20675 medium/large code-model.
20676 (legitimize_pic_address): Likewise.
20677 (legitimize_tls_address): Likewise.
20678 (ix86_expand_call): Likewise.
20679 (x86_output_mi_thunk): Likewise.
20680 (get_dllimport_decl): Add new beimport argument.
20681 (construct_plt_address): Don't assert for x64 pe-coff targets.
20682 * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Adjust for x64 pe-coff
20683 targets.
20684 (SYMBOL_FLAG_STUBVAR): New macro.
20685 (SYMBOL_REF_STUBVAR_P): Likewise.
20686 * config/i386/winnt.c (stub_list): New structure.
20687 (stub_head): New local variable.
20688 (i386_pe_record_stub): New function.
20689 (i386_pe_file_end): Emit refptr-stubs.
20690
20691 2013-04-02 Jakub Jelinek <jakub@redhat.com>
20692
20693 PR rtl-optimization/56745
20694 * ifcvt.c (cond_exec_find_if_block): Don't try to optimize
20695 if then_bb has no successors and else_bb is EXIT_BLOCK_PTR.
20696
20697 PR c++/34949
20698 * tree-ssa-alias.c (stmt_kills_ref_p_1): If base != ref->base
20699 and both of them are MEM_REFs, just compare first argument for
20700 equality and attempt to deal even with differing offsets.
20701
20702 PR c++/34949
20703 * tree-cfg.c (verify_gimple_assign_single): Allow lhs
20704 of gimple_clobber_p to be MEM_REF.
20705 * gimplify.c (gimplify_modify_expr): Gimplify *to_p of
20706 an assignment from TREE_CLOBBER_P. Allow it to be MEM_REF
20707 after gimplification.
20708 * asan.c (get_mem_ref_of_assignment): Don't instrument
20709 gimple_clobber_p stmts.
20710 * tree-ssa-dse.c (dse_optimize_stmt): Allow DSE of
20711 gimple_clobber_p stmt if they have MEM_REF lhs and
20712 are dead because of another gimple_clobber_p stmt.
20713 * tree-ssa-live.c (clear_unused_block_pointer): Treat
20714 gimple_clobber_p stmts like debug stmts.
20715 (remove_unused_locals): Remove clobbers with MEM_REF lhs
20716 that refer to unused VAR_DECLs or uninitialized values.
20717 * tree-sra.c (sra_ipa_reset_debug_stmts): Also remove
20718 gimple_clobber_p stmts if they refer to removed parameters.
20719 (get_repl_default_def_ssa_name, sra_ipa_modify_expr): Fix up
20720 formatting.
20721
20722 2013-04-02 Uros Bizjak <ubizjak@gmail.com>
20723
20724 * config/i386/i386.md (*testqi_ext_3): Merge with *testqi_ext_3_rex64
20725 using SWI48 mode attribute.
20726
20727 2013-04-02 Wei Mi <wmi@google.com>
20728
20729 * config/i386/i386.c (ix86_rtx_costs): Set proper rtx cost for
20730 ashl<mode>3_mask, *<shift_insn><mode>3_mask and
20731 *<rotate_insn><mode>3_mask in i386.md.
20732
20733 2013-04-02 Alexander Ivchenko <alexander.ivchenko@intel.com>
20734
20735 * config.gcc (arm*-*-linux-*): Remove duplicate t-linux-android.
20736
20737 2013-04-02 Richard Biener <rguenther@suse.de>
20738
20739 PR tree-optimization/56778
20740 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
20741 Runtime alias tests are not supported for gather loads.
20742 * tree-vect-loop-manip.c (vect_loop_versioning): Insert
20743 stmts referenced from SSA operands before updating SSA form.
20744
20745 2013-04-02 Ian Caulfield <ian.caulfield@arm.com>
20746 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
20747
20748 * config/arm/arm-arches.def (armv8-a): Default to cortex-a53.
20749 * config/arm/t-arm (MD_INCLUDES): Depend on cortex-a53.md.
20750 * config/arm/cortex-a53.md: New file.
20751 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle cortex-a53.
20752 * config/arm/arm.md (generic_sched, generic_vfp): Handle cortex-a53.
20753 * config/arm/arm.c (arm_issue_rate): Likewise.
20754 * config/arm/arm-tune.md: Regenerate
20755 * config/arm/arm-tables.opt: Regenerate.
20756 * config/arm/arm-cores.def: Add cortex-a53.
20757
20758 2013-04-02 Zhenqiang Chen <zhenqiang.chen@arm.com>
20759
20760 * config/arm/uclinux-elf.h: Add %L to LINK_GCC_C_SEQUENCE_SPEC for
20761 non-static link.
20762
20763 2013-04-02 Sofiane Naci <sofiane.naci@arm.com>
20764
20765 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add variants for
20766 scalar load/store operations using B/H registers.
20767 (*zero_extend<SHORT:mode><GPI:mode>2_aarch64): Likewise.
20768
20769 2013-04-02 Sofiane Naci <sofiane.naci@arm.com>
20770
20771 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add alternatives for
20772 scalar move.
20773 * config/aarch64/aarch64.c
20774 (aarch64_simd_scalar_immediate_valid_for_move): New.
20775 * config/aarch64/aarch64-protos.h
20776 (aarch64_simd_scalar_immediate_valid_for_move): New.
20777 * config/aarch64/constraints.md (Dh, Dq): New.
20778 * config/aarch64/iterators.md (hq): New.
20779
20780 2013-04-02 Eric Botcazou <ebotcazou@adacore.com>
20781
20782 * reorg.c (get_branch_condition): Deal with conditional returns.
20783 (fill_simple_delay_slots): Remove dead code dealing with jumps.
20784
20785 2013-04-01 Wei Mi <wmi@google.com>
20786
20787 * config/i386/i386.md (*ashl<mode>3_mask): Rewrite as define_insn.
20788 Truncate operand 2 using %b asm operand modifier.
20789 (*<shift_insn><mode>3_mask): Ditto.
20790 (*<rotate_insn><mode>3_mask): Ditto.
20791
20792 2013-04-01 Steven Bosscher <steven@gcc.gnu.org>
20793
20794 PR middle-end/56798
20795 * cfgbuild.c (inside_basic_block_p): Restore check broken at r197234.
20796
20797 2013-03-31 Kaz Kojima <kkojima@gcc.gnu.org>
20798
20799 * config/sh/sh.md (casesi_worker_1): Use next_active_insn instead
20800 of next_real_insn.
20801 (casesi_worker_2, casesi_shift_media, casesi_load_media): Likewise.
20802
20803 2013-03-30 Lawrence Crowl <crowl@google.com>
20804
20805 * dse.c (clear_alias_sets): Remove never set.
20806 (disqualified_clear_alias_sets): Remove never set.
20807 (clear_alias_mode_pool): Remove never set.
20808 (dse_step0): Remove condition that is never true.
20809 (canon_address): Remove condition that is never true.
20810 (dse_step7): Remove condition that is never true.
20811 (rest_of_handle_dse): Remove condition that is never true.
20812 (rest_of_handle_dse::did_global): Remove never read from above.
20813 (dse_step2_spill): Remove never called from above.
20814 (dse_step5_spill): Remove never called from above.
20815
20816 2013-03-30 Steven Bosscher <steven@gcc.gnu.org>
20817
20818 * doc/md.texi (Standard Names) <casesi>: Update documentation for
20819 JUMP_TABLE_DATA changes.
20820 * doc/tm.texi.in (Dispatch Tables) <ASM_OUTPUT_CASE_LABEL>: Likewise.
20821 * doc/rtl.texi (Flags) <INSN_DELETED_P, SCHED_GROUP_P>: Likewise.
20822 (Insns) <jump_table_data>: New entry.
20823 * doc/tm.texi: Regenerate.
20824
20825 * cfgrtl.c (fixup_reorder_chain): Do not emit barriers to BB_FOOTER.
20826
20827 * postreload-gcse.c (bb_has_well_behaved_predecessors): Correct test
20828 for table jump at the end of a basic block using tablejump_p.
20829 * targhooks.c (default_invalid_within_doloop): Likewise.
20830 * config/rs6000/rs6000.c (TARGET_INVALID_WITHIN_DOLOOP): Remove
20831 target hook implementation that is identical to the default hook.
20832 (rs6000_invalid_within_doloop): Remove.
20833
20834 * bb-reorder.c (fix_crossing_unconditional_branches): Remove set but
20835 unused variable from tablejump_p call.
20836
20837 * rtl.def (JUMP_TABLE_DATA): New RTX_INSN object.
20838 * rtl.h (RTX_PREV, RTX_NEXT): Adjust for new JUMP_TABLE_DATA.
20839 (INSN_DELETED_P): Likewise.
20840 (emit_jump_table_data): New prototype.
20841 * gengtype.c (adjust_field_rtx_def): Handle JUMP_TABLE_DATA fields
20842 after 4th as unused.
20843 * print-rtl.c (print_rtl): Handle JUMP_TABLE_DATA.
20844 * sched-vis.c (print_insn): Likewise.
20845 * emit-rtl.c (active_insn_p): Consider JUMP_TABLE_DATA an active
20846 insn for compatibility with back ends that use next_active_insn to
20847 identify jump table data.
20848 (set_insn_deleted): Remove no longer useful JUMP_TABLE_DATA_P check.
20849 (remove_insn): Likewise.
20850 (emit_insn): Do not accept JUMP_TABLE_DATA objects in insn chains
20851 to be emitted.
20852 (emit_debug_insn, emit_jump_insn, emit_call_insn, emit_label): Idem.
20853 (emit_jump_table_data): New function.
20854
20855 * cfgbuild.c (inside_basic_block_p): A JUMP_INSN is always inside a
20856 basic block, a JUMP_TABLE_DATA never is.
20857 (control_flow_insn_p): JUMP_TABLE_DATA is not a control flow insn.
20858 * cfgrtl.c (duplicate_insn_chain): Split handling of JUMP_TABLE_DATA
20859 off from code handling real insns.
20860 * final.c (get_attr_length_1): Simplify for JUMP_INSNs.
20861 * function.c (instantiate_virtual_regs): Remove JUMP_TABLE_DATA_P
20862 test, now redundant because JUMP_TABLE_DATA is not an INSN_P insn.
20863 * gcse.c (insert_insn_end_basic_block): Likewise, JUMP_TABLE_DATA_P
20864 is not a NONDEBUG_INSN_P.
20865 * ira-costs.c (scan_one_insn): Likewise.
20866 * jump.c (mark_all_labels): Likewise.
20867 (mark_jump_label_1): Likewise.
20868 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
20869 * lra.c (get_insn_freq): Expect all insns reaching here to be in
20870 a basic block.
20871 (check_rtl): Remove JUMP_TABLE_DATA_P test, not a NONDEBUG_INSN_P insn.
20872 * predict.c (expensive_function_p): Use FOR_BB_INSNS.
20873 * reload1.c (calculate_needs_all_insns): Call set_label_offsets for
20874 JUMP_TABLE_DATA_P insns.
20875 (calculate_elim_costs_all_insns): Likewise.
20876 (set_label_offsets): Recurse on the PATTERN of JUMP_TABLE_DATA insns.
20877 (elimination_costs_in_insn): Remove redundant JUMP_TABLE_DATA_P test.
20878 (delete_output_reload): Code style fixups.
20879 * reorg.c (dbr_schedule): Move JUMP_TABLE_DATA_P up to avoid setting
20880 insn flags on this non-insn.
20881 * sched-rgn.c (add_branch_dependences): Treat JUMP_TABLE_DATA insns
20882 as scheduling barriers, for pre-change compatibility.
20883 * stmt.c (emit_case_dispatch_table): Emit jump table data not as
20884 JUMP_INSN objects but instead as JUMP_TABLE_DATA objects.
20885
20886 * config/alpha/alpha.c (alpha_does_function_need_gp): Remove
20887 redundant JUMP_TABLE_DATA_P test.
20888 * config/arm/arm.c (thumb_far_jump_used_p): Likewise.
20889 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
20890 (frv_for_each_packet): Likewise.
20891 * config/i386/i386.c (min_insn_size): Likewise.
20892 (ix86_avoid_jump_mispredicts): Likewise.
20893 * config/m32r/m32r.c (m32r_is_insn): Likewise.
20894 * config/mep/mep.c (mep_reorg_erepeat): Likewise.
20895 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
20896 (mips16_insn_length): Robustify.
20897 (mips_has_long_branch_p): Remove redundant JUMP_TABLE_DATA_P test.
20898 (mips16_split_long_branches): Likewise.
20899 * config/pa/pa.c (pa_combine_instructions): Likewise.
20900 * config/rs6000/rs6000.c (get_next_active_insn): Treat
20901 JUMP_TABLE_DATA objects as active insns, like in active_insn_p.
20902 * config/s390/s390.c (s390_chunkify_start): Treat JUMP_TABLE_DATA
20903 as contributing to pool range lengths.
20904 * config/sh/sh.c (find_barrier): Restore check for ADDR_DIFF_VEC.
20905 Remove redundant JUMP_TABLE_DATA_P test.
20906 (sh_loop_align): Likewise.
20907 (split_branches): Likewise.
20908 (sh_insn_length_adjustment): Likewise.
20909 * config/spu/spu.c (get_branch_target): Likewise.
20910
20911 2013-03-29 Jan Hubicka <jh@suse.cz>
20912
20913 * lto-cgraph.c (output_profile_summary, input_profile_summary): Use
20914 gcov streaming; stream hot bb threshold to ltrans.
20915 * predict.c (get_hot_bb_threshold): Break out from ....
20916 (maybe_hot_count_p): ... here.
20917 (set_hot_bb_threshold): New function.
20918 * lto-section-in.c (lto_section_name): Add profile.
20919 * profile.h (get_hot_bb_threshold, set_hot_bb_threshold): Declare.
20920 * ipa.c: Include hash-table.h, tree-inline.h, profile.h, lto-streamer.h
20921 and data-streamer.h
20922 (histogram_entry): New structure.
20923 (histogram, histogram_pool): New global vars.
20924 (histogram_hash): New structure.
20925 (histogram_hash::hash): New method.
20926 (histogram_hash::equal): Likewise.
20927 (account_time_size): New function.
20928 (cmp_counts): New function.
20929 (dump_histogram): New function.
20930 (ipa_profile_generate_summary): New function.
20931 (ipa_profile_write_summary): New function.
20932 (ipa_profile_read_summary): New function.
20933 (ipa_profile): Decide on threshold.
20934 (pass_ipa_profile): Add ipa_profile_write_summary and
20935 ipa_profile_read_summary.
20936 * Makefile.in (ipa.o): Update dependencies.
20937 * lto-streamer.h (LTO_section_ipa_profile): New section.
20938
20939 2013-03-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
20940
20941 * tree.h (VAR_P): New.
20942
20943 2013-03-29 Paolo Carlini <paolo.carlini@oracle.com>
20944
20945 PR lto/56777
20946 * doc/invoke.texi ([-fwhole-program]): Fix typo.
20947
20948 2013-03-29 Steven Bosscher <steven@gcc.gnu.org>
20949
20950 * cfgbuild.c (inside_basic_block_p): Use JUMP_TABLE_DATA_P in lieu
20951 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
20952 (control_flow_insn_p): Likewise.
20953 * cfgrtl.c (duplicate_insn_chain): Likewise.
20954 * final.c (get_attr_length_1): Likewise.
20955 (shorten_branches): Likewise.
20956 (final_scan_insn): Likewise.
20957 * function.c (instantiate_virtual_regs): Likewise.
20958 * gcse.c (insert_insn_end_basic_block): Likewise.
20959 * ira-costs.c (scan_one_insn): Likewise.
20960 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
20961 * lra.c (check_rtl): Likewise.
20962 * reload1.c (elimination_costs_in_insn): Likewise.
20963 * reorg.c (follow_jumps): Likewise.
20964
20965 * config/arm/arm.c (is_jump_table): Use JUMP_TABLE_DATA_P in lieu
20966 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
20967 (thumb_far_jump_used_p): Likewise.
20968 * config/bfin/bfin.c (workaround_rts_anomaly): Likewise.
20969 (workaround_speculation): Likewise.
20970 (add_sched_insns_for_speculation): Likewise.
20971 * config/c6x/c6x.c (reorg_emit_nops): Likewise.
20972 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
20973 (frv_for_each_packet): Likewise.
20974 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Likewise.
20975 * config/ia64/ia64.c (emit_all_insn_group_barriers): Likewise.
20976 (final_emit_insn_group_barriers): Likewise.
20977 * config/m32r/m32r.c (m32r_is_insn): Likewise.
20978 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
20979 (mips16_insn_length): Likewise.
20980 * config/pa/pa.c (pa_reorg): Likewise.
20981 (pa_combine_instructions): Likewise.
20982 * config/rs6000/rs6000.c (rs6000_invalid_within_doloop): Likewise.
20983 * config/sh/sh.c (fixup_addr_diff_vecs): Likewise.
20984 (sh_reorg): Likewise.
20985 (split_branches): Likewise.
20986 * config/spu/spu.c (get_branch_target): Likewise.
20987
20988 * config/s390/s390.c (s390_chunkify_start): Simplify logic using
20989 JUMP_TABLE_DATA_P.
20990
20991 2013-03-29 Kirill Yukhin <kirill.yukhin@intel.com>
20992
20993 * config/i386/avx2intrin.h (_mm256_broadcastsi128_si256):
20994 Fix declaration name.
20995
20996 2013-03-28 Lawrence Crowl <crowl@google.com>
20997
20998 * graphds.h (struct graph.indicies): Remove unused.
20999 * graphite-poly.h (struct graph.original_pddrs): Remove unused.
21000 (SCOP_ORIGINAL_PDDRS): Remove unused.
21001 * sese.h (extern insert_loop_close_phis): Removed unused.
21002 (extern insert_guard_phis): Removed unused.
21003 (extern ivtype_map_elt_info): Removed unused.
21004 (new_ivtype_map_elt): Removed unused.
21005 * sese.c (ivtype_map_elt_info): Removed unused.
21006
21007 2013-03-28 Lawrence Crowl <crowl@google.com>
21008
21009 * Makefile.in: Add several missing include dependences.
21010 (DUMPFILE_H): New.
21011 (test-dump.o): New. This object is not added to any executable,
21012 but is present for ad-hoc testing.
21013 * bitmap.c
21014 (debug (const bitmap_head_def &)): New.
21015 (debug (const bitmap_head_def *)): New.
21016 * bitmap.h
21017 (extern debug (const bitmap_head_def &)): New.
21018 (extern debug (const bitmap_head_def *)): New.
21019 * cfg.c
21020 (debug (edge_def &)): New.
21021 (debug (edge_def *)): New.
21022 * cfghooks.c
21023 (debug (basic_block_def &)): New.
21024 (debug (basic_block_def *)): New.
21025 * dumpfile.h
21026 (dump_node (const_tree, int, FILE *)): Correct source file.
21027 * dwarf2out.c
21028 (debug (die_struct &)): New.
21029 (debug (die_struct *)): New.
21030 * dwarf2out.h
21031 (extern debug (die_struct &)): New.
21032 (extern debug (die_struct *)): New.
21033 * gimple-pretty-print.c
21034 (debug (gimple_statement_d &)): New.
21035 (debug (gimple_statement_d *)): New.
21036 * gimple-pretty-print.h
21037 (extern debug (gimple_statement_d &)): New.
21038 (extern debug (gimple_statement_d *)): New.
21039 * ira-build.c
21040 (debug (ira_allocno_copy &)): New.
21041 (debug (ira_allocno_copy *)): New.
21042 (debug (ira_allocno &)): New.
21043 (debug (ira_allocno *)): New.
21044 * ira-int.h
21045 (extern debug (ira_allocno_copy &)): New.
21046 (extern debug (ira_allocno_copy *)): New.
21047 (extern debug (ira_allocno &)): New.
21048 (extern debug (ira_allocno *)): New.
21049 * ira-lives.c
21050 (debug (live_range &)): New.
21051 (debug (live_range *)): New.
21052 * lra-int.h
21053 (debug (lra_live_range &)): New.
21054 (debug (lra_live_range *)): New.
21055 * lra-lives.c
21056 (debug (lra_live_range &)): New.
21057 (debug (lra_live_range *)): New.
21058 * omega.c
21059 (debug (omega_pb_d &)): New.
21060 (debug (omega_pb_d *)): New.
21061 * omega.h
21062 (extern debug (omega_pb_d &)): New.
21063 (extern debug (omega_pb_d *)): New.
21064 * print-rtl.c
21065 (debug (const rtx_def &)): New.
21066 (debug (const rtx_def *)): New.
21067 * print-tree.c
21068 (debug_tree (tree): Move within file.
21069 (debug_raw (const tree_node &)): New.
21070 (debug_raw (const tree_node *)): New.
21071 (dump_tree_via_hooks (const tree_node *, int)): New.
21072 (debug (const tree_node &)): New.
21073 (debug (const tree_node *)): New.
21074 (debug_verbose (const tree_node &)): New.
21075 (debug_verbose (const tree_node *)): New.
21076 (debug_head (const tree_node &)): New.
21077 (debug_head (const tree_node *)): New.
21078 (debug_body (const tree_node &)): New.
21079 (debug_body (const tree_node *)): New.
21080 (debug_vec_tree (tree): Move and reimplement in terms of dump.
21081 (debug (vec<tree, va_gc> &)): New.
21082 (debug (vec<tree, va_gc> *)): New.
21083 * rtl.h
21084 (extern debug (const rtx_def &)): New.
21085 (extern debug (const rtx_def *)): New.
21086 * sbitmap.c
21087 (debug_raw (simple_bitmap_def &)): New.
21088 (debug_raw (simple_bitmap_def *)): New.
21089 (debug (simple_bitmap_def &)): New.
21090 (debug (simple_bitmap_def *)): New.
21091 * sbitmap.h
21092 (extern debug (simple_bitmap_def &)): New.
21093 (extern debug (simple_bitmap_def *)): New.
21094 (extern debug_raw (simple_bitmap_def &)): New.
21095 (extern debug_raw (simple_bitmap_def *)): New.
21096 * sel-sched-dump.c
21097 (debug (vinsn_def &)): New.
21098 (debug (vinsn_def *)): New.
21099 (debug_verbose (vinsn_def &)): New.
21100 (debug_verbose (vinsn_def *)): New.
21101 (debug (expr_def &)): New.
21102 (debug (expr_def *)): New.
21103 (debug_verbose (expr_def &)): New.
21104 (debug_verbose (expr_def *)): New.
21105 (debug (vec<rtx> &)): New.
21106 (debug (vec<rtx> *)): New.
21107 * sel-sched-dump.h
21108 (extern debug (vinsn_def &)): New.
21109 (extern debug (vinsn_def *)): New.
21110 (extern debug_verbose (vinsn_def &)): New.
21111 (extern debug_verbose (vinsn_def *)): New.
21112 (extern debug (expr_def &)): New.
21113 (extern debug (expr_def *)): New.
21114 (extern debug_verbose (expr_def &)): New.
21115 (extern debug_verbose (expr_def *)): New.
21116 (extern debug (vec<rtx> &)): New.
21117 (extern debug (vec<rtx> *)): New.
21118 * sel-sched-ir.h
21119 (_list_iter_cond_expr): Make inline instead of static.
21120 * sreal.c
21121 (debug (sreal &)): New.
21122 (debug (sreal *)): New.
21123 * sreal.h
21124 (extern debug (sreal &)): New.
21125 (extern debug (sreal *)): New.
21126 * tree.h
21127 (extern debug_raw (const tree_node &)): New.
21128 (extern debug_raw (const tree_node *)): New.
21129 (extern debug (const tree_node &)): New.
21130 (extern debug (const tree_node *)): New.
21131 (extern debug_verbose (const tree_node &)): New.
21132 (extern debug_verbose (const tree_node *)): New.
21133 (extern debug_head (const tree_node &)): New.
21134 (extern debug_head (const tree_node *)): New.
21135 (extern debug_body (const tree_node &)): New.
21136 (extern debug_body (const tree_node *)): New.
21137 (extern debug (vec<tree, va_gc> &)): New.
21138 (extern debug (vec<tree, va_gc> *)): New.
21139 * tree-cfg.c
21140 (debug (struct loop &)): New.
21141 (debug (struct loop *)): New.
21142 (debug_verbose (struct loop &)): New.
21143 (debug_verbose (struct loop *)): New.
21144 * tree-dump.c: Add header dependence.
21145 * tree-flow.h
21146 (extern debug (struct loop &)): New.
21147 (extern debug (struct loop *)): New.
21148 (extern debug_verbose (struct loop &)): New.
21149 (extern debug_verbose (struct loop *)): New.
21150 * tree-data-ref.c
21151 (debug (data_reference &)): New.
21152 (debug (data_reference *)): New.
21153 (debug (vec<data_reference_p> &)): New.
21154 (debug (vec<data_reference_p> *)): New.
21155 (debug (vec<ddr_p> &)): New.
21156 (debug (vec<ddr_p> *)): New.
21157 * tree-data-ref.h
21158 (extern debug (data_reference &)): New.
21159 (extern debug (data_reference *)): New.
21160 (extern debug (vec<data_reference_p> &)): New.
21161 (extern debug (vec<data_reference_p> *)): New.
21162 (extern debug (vec<ddr_p> &)): New.
21163 (extern debug (vec<ddr_p> *)): New.
21164 * tree-ssa-alias.c
21165 (debug (pt_solution &)): New.
21166 (debug (pt_solution *)): New.
21167 * tree-ssa-alias.h
21168 (extern debug (pt_solution &)): New.
21169 (extern debug (pt_solution *)): New.
21170 * tree-ssa-alias.c
21171 (debug (_var_map &)): New.
21172 (debug (_var_map *)): New.
21173 (debug (tree_live_info_d &)): New.
21174 (debug (tree_live_info_d *)): New.
21175 * tree-ssa-alias.h
21176 (extern debug (_var_map &)): New.
21177 (extern debug (_var_map *)): New.
21178 (extern debug (tree_live_info_d &)): New.
21179 (extern debug (tree_live_info_d *)): New.
21180
21181 2013-03-28 Jan Hubicka <jh@suse.cz>
21182
21183 * lto-cgraph.c (merge_profile_summaries): Fix overflows.
21184
21185 2013-03-28 Ian Bolton <ian.bolton@arm.com>
21186
21187 * config/aarch64/aarch64.md (aarch64_can_eliminate): Keep frame
21188 record only when desired or required.
21189
21190 2013-03-28 Uros Bizjak <ubizjak@gmail.com>
21191
21192 * config/i386/i386.md (*vec_extract2vdi_1): Merge with
21193 *vec_extractv2di_1_rex64. Use x64 isa attribute.
21194
21195 2013-03-28 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
21196
21197 * config/aarch64/aarch64.md (*and<mode>3_compare0): New pattern.
21198 (*andsi3_compare0_uxtw): New pattern.
21199 (*and_<SHIFT:optab><mode>3_compare0): New pattern.
21200 (*and_<SHIFT:optab>si3_compare0_uxtw): New pattern.
21201
21202 2013-03-28 Jan Hubicka <jh@suse.cz>
21203
21204 * data-streamer-in.c (streamer_read_gcov_count): New function.
21205 * gimple-streamer-out.c: Include value-prof.h.
21206 (output_gimple_stmt): Output histogram.
21207 (output_bb): Use streamer_write_gcov_count.
21208 * value-prof.c: Include data-streamer.h
21209 (dump_histogram_value): Add HIST_TYPE_MAX.
21210 (stream_out_histogram_value): New function.
21211 (stream_in_histogram_value): New function.
21212 * value-prof.h (enum hist_type): Add HIST_TYPE_MAX.
21213 (stream_out_histogram_value, stream_in_histogram_value): Declare.
21214 * data-streamer-out.c (streamer_write_gcov_count): New function.
21215 (streamer_write_gcov_count_stream): New function.
21216 * lto-cgraph.c (lto_output_edge): Update counter streaming.
21217 (lto_output_node): Likewise.
21218 (input_node, input_edge): Likewise.
21219 * lto-streamer-out.c (output_cfg): Update streaming.
21220 * lto-streamer-in.c (input_cfg): Likewise.
21221 * data-streamer.h (streamer_write_gcov_count,
21222 streamer_write_gcov_count_stream, streamer_read_gcov_count): Declare.
21223 * gimple-streamer-in.c: Include value-prof.h
21224 (input_gimple_stmt): Input histograms.
21225 (input_bb): Update profile streaming.
21226
21227 2013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
21228
21229 * genmodes.c (emit_max_int): New function.
21230 (emit_insn_modes_h): Added call to emit_max_function.
21231 * doc/rtl.texi (MAX_BITSIZE_MODE_ANY_INT, MAX_BITSIZE_MODE_ANY_MODE):
21232 Added doc.
21233 * machmode.def: Fixed comment.
21234
21235 2013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
21236
21237 * combine.c (try_combine): Removed useless assert.
21238 * cselib.c (rtx_equal_for_cselib_1): Removed unnecessary parens.
21239
21240 2013-03-28 Marek Polacek <polacek@redhat.com>
21241 Richard Biener <rguenther@suse.de>
21242
21243 PR tree-optimization/56695
21244 * tree-vect-stmts.c (vectorizable_condition): Unconditionally
21245 build signed result of a vector comparison.
21246 * tree-cfg.c (verify_gimple_comparison): Check that a result
21247 of a vector comparison has signed type.
21248
21249 2013-03-28 Richard Biener <rguenther@suse.de>
21250
21251 PR tree-optimization/37021
21252 * tree-vect-slp.c (vect_build_slp_tree): When not unrolling
21253 do not restrict gaps between groups.
21254 * tree-vect-stmts.c (vectorizable_load): Properly account for
21255 a gap between groups.
21256
21257 2013-03-28 Eric Botcazou <ebotcazou@adacore.com>
21258
21259 * toplev.c (process_options): Do not disable -fomit-frame-pointer on a
21260 general basis if unwind info is requested and ACCUMULATE_OUTGOING_ARGS
21261 is not enabled.
21262
21263 2013-03-27 Gerald Pfeifer <gerald@pfeifer.com>
21264
21265 * doc/invoke.texi (AVR Options): Tweak link for AVR-LibC user manual.
21266 * doc/extend.texi (Named Address Spaces): Ditto.
21267 (Variable Attributes): Ditto.
21268
21269 2013-03-27 Kai Tietz <ktietz@redhat.com>
21270
21271 * config.build: Add support for cygwin x64 target.
21272 * config.gcc: Likewise.
21273 * config.host: Likewise.
21274 * configure.ac: Likewise
21275 * configure: Regenerated.
21276
21277 2013-03-27 Kai Tietz <ktietz@redhat.com>
21278
21279 * config/i386/cygwin-stdint.h: Add support for cygwin x64 target.
21280 * config/i386/t-cygwin-w64: New file.
21281 * config/i386/cygwin-w64.h: New file.
21282 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Extend
21283 and add support for x64-cygwin target.
21284 (CPP_SPEC): Likewise.
21285 (CXX_WRAP_SPEC_LIST): Undefine before define.
21286 (LIBGCJ_SONAME): Use 15 as version.
21287
21288 2013-03-27 Richard Biener <rguenther@suse.de>
21289
21290 PR tree-optimization/56716
21291 * tree-ssa-structalias.c (perform_var_substitution): Adjust
21292 dumping for ref nodes.
21293
21294 2013-03-27 Martin Jambor <mjambor@suse.cz>
21295
21296 PR tree-optimization/55334
21297 * ipa-cp.c (initialize_node_lattices): Allow IPA-CP through and to
21298 restricted pointers to arrays.
21299
21300 2013-03-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
21301
21302 * Makefile.in (.SUFFIXES): Add .cc.
21303 (.c.o): Apply same recipe for implicit rule .cc.o.
21304
21305 2013-03-27 Richard Biener <rguenther@suse.de>
21306
21307 PR tree-optimization/37021
21308 * tree-vect-data-refs.c (vect_check_strided_load): Allow
21309 REALPART/IMAGPART_EXPRs around the supported refs.
21310 * tree-ssa-structalias.c (find_func_aliases): Assume that
21311 floating-point values are not used to transfer pointers.
21312
21313 2013-03-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
21314
21315 * target.def (TARGET_HAS_IFUNC_P): New target hook.
21316 * doc/tm.texi.in (TARGET_HAS_IFUNC_P): New.
21317 * doc/tm.texi: Regenerate.
21318 * targhooks.h (default_has_ifunc_p): New.
21319 * targhooks.c (default_has_ifunc_p): Ditto.
21320 * config/linux-protos.h: New file.
21321 * config/linux-android.h (TARGET_HAS_IFUNC_P): Using version of this
21322 hook for linux which disables support of indirect functions in android.
21323 * config/linux-android.c: New file.
21324 * config/t-linux-android.c: Ditto.
21325 * config.gcc: Added new object file linux-android.o.
21326 * config/i386/i386.c (ix86_get_function_versions_dispatcher):
21327 Using TARGET_HAS_IFUNC hook instead of HAVE_GNU_INDIRECT_FUNCTION.
21328 * varasm.c (do_assemble_alias): Likewise.
21329 * configure.ac: Define HAVE_GNU_INDIRECT_FUNCTION as zero if the target
21330 doesn't support indirect functions.
21331 * configure: Regenerate.
21332
21333 2013-03-27 Bin Cheng <bin.cheng@arm.com>
21334
21335 PR target/56102
21336 * config/arm/arm.c (thumb1_rtx_costs, thumb1_size_rtx_costs): Fix
21337 rtx costs for SET/ASHIFT/ASHIFTRT/LSHIFTRT/ROTATERT patterns with
21338 mult-word mode.
21339
21340 2013-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21341
21342 * config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Define.
21343
21344 2013-03-27 Terry Guo <terry.guo@arm.com>
21345
21346 * config/arm/arm-cores.def: Added core cortex-r7.
21347 * config/arm/arm-tune.md: Regenerated.
21348 * config/arm/arm-tables.opt: Regenerated.
21349 * doc/invoke.texi: Added entry for core cortex-r7.
21350
21351 2013-03-27 Walter Lee <walt@tilera.com>
21352
21353 * config/tilegx/tilegx.c (tilegx_expand_prologue): Avoid
21354 double-decrement of next_scratch_regno.
21355
21356 2013-03-27 Walter Lee <walt@tilera.com>
21357
21358 * config/tilegx/tilegx.md (insn_v1mulu): Fix predicates on
21359 input operands.
21360 (insn_v1mulus): Ditto.
21361 (insn_v2muls): Ditto.
21362
21363 2013-03-27 Walter Lee <walt@tilera.com>
21364
21365 * config/tilegx/tilegx.h (ASM_OUTPUT_ADDR_VEC_ELT): Delete extra tab.
21366 (ASM_OUTPUT_ADDR_DIFF_ELT): Ditto.
21367
21368 2013-03-27 Walter Lee <walt@tilera.com>
21369
21370 * config/tilegx/tilegx.md (*sibcall_insn): Fix type atribute for jr.
21371 (*sibcall_value): Ditto.
21372
21373 2013-03-27 Walter Lee <walt@tilera.com>
21374
21375 * config/tilegx/tilegx.md (insn_mnz_<mode>): Replaced by ...
21376 (insn_mnz_v8qi): ... this ...
21377 (insn_mnz_v4hi): ... and this. Replace (const_int 0) with the
21378 vector equivalent.
21379 (insn_v<n>mnz): Replaced by ...
21380 (insn_v1mnz): ... this ...
21381 (insn_v2mnz): ... and this. Replace (const_int 0) with the vector
21382 equivalent.
21383 (insn_mz_<mode>): Replaced by ...
21384 (insn_mz_v8qi): ... this ...
21385 (insn_mz_v4hi): ... and this. Replace (const_int 0) with the
21386 vector equivalent.
21387 (insn_v<n>mz): Replaced by ...
21388 (insn_v1mz): ... this ...
21389 (insn_v2mz): ... and this. Replace (const_int 0) with the vector
21390 equivalent.
21391
21392 2013-03-26 Eric Botcazou <ebotcazou@adacore.com>
21393
21394 * doc/invoke.texi (SPARC options): Remove -mlittle-endian.
21395
21396 2013-03-26 Roland McGrath <mcgrathr@google.com>
21397
21398 * config/arm/arm.c (arm_print_operand: case 'w'): Use fputs rather
21399 than fprintf with a non-constant, non-format string.
21400
21401 2013-03-26 Uros Bizjak <ubizjak@gmail.com>
21402
21403 * config/i386/i386.md (*cmpqi_ext_1): Merge with *cmpqi_ext_1_rex64
21404 using nox64 isa attribute. Use nonimmediate_x86nomem_operand as
21405 operand 0 predicate.
21406 (*cmpqi_ext_3): Merge with *cmpqi_ext_3_rex64 using nox64 isa
21407 attribute. Use general_x64nomem_operand as operand 1 predicate.
21408 (*movqi_extv_1): Merge with *movqi_extv_1_rex64 using nox64 isa
21409 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
21410 (*movqi_extzv_2): Merge with *movqi_extzv_2_rex64 using nox64 isa
21411 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
21412 (mov<mode>_insv_1): Remove expander. Merge insn with
21413 movsi_insv_1 using SWI48 mode iterator and nox64 isa attribute.
21414 Use general_x64nomem_operand as operand 1 predicate.
21415 (addqi_ext_1): Merge with *addqi_ext_1_rex64 using nox64 isa attribute.
21416 (*testqi_ext_1): Merge with *testqi_ext_1_rex64 using nox64 isa
21417 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
21418 (*andqi_ext_1): Merge with *andqi_ext_1_rex64 using nox64 isa
21419 attribute. Use nonimmediate_x64nomem_operand as operand 2 predicate.
21420 (*<code>qi_ext_1): Merge with *<code>qi_ext_1_rex64 using nox64 isa
21421 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
21422 (*xorqi_cc_ext_1): Merge with *xorqi_cc_ext_1_rex64 using nox64
21423 isa attribute. Use general_x64nomem_operand as operand 2 predicate.
21424 * config/i386/predicates.md (nonimmediate_x64nomem_operand): New.
21425 (general_x64nomem_operand): Ditto.
21426
21427 2013-03-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
21428
21429 * config/rtems.opt: Add -pthread option.
21430
21431 2013-03-26 Richard Biener <rguenther@suse.de>
21432
21433 * alias.c (find_base_term): Avoid redundant and not used recursion.
21434 (base_alias_check): Get the initial base term from the caller.
21435 (true_dependence_1): Compute and pass base terms to base_alias_check.
21436 (write_dependence_p): Likewise.
21437 (may_alias_p): Likewise.
21438
21439 2013-03-26 Sofiane Naci <sofiane.naci@arm.com>
21440
21441 * config/aarch64/aarch64.c (aarch64_classify_address): Support
21442 PC-relative load in SI modes and above only.
21443
21444 2013-03-26 Xinyu Qi <xyqi@marvell.com>
21445
21446 * config/arm/arm.h (FIRST_IWMMXT_GR_REGNUM): Add comment.
21447 * config/arm/iwmmxt.md (WCGR0): Update.
21448 (WCGR1, WCGR2, WCGR3): Likewise.
21449
21450 2013-03-26 Uros Bizjak <ubizjak@gmail.com>
21451
21452 * config/i386/i386.md (*movdfcc_1): Merge with *movdfcc_1_rex64.
21453 Use x64 and nox64 isa attributes.
21454
21455 2013-03-26 Richard Biener <rguenther@suse.de>
21456
21457 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
21458 alignment computations and rely on get_object_alignment_1
21459 for the !TYPE_P case.
21460 Commonize DECL/COMPONENT_REF handling in the ARRAY_REF path.
21461
21462 2013-03-26 Walter Lee <walt@tilera.com>
21463
21464 * config/tilegx/tilegx.h (PROFILE_BEFORE_PROLOGUE): Define.
21465 * config/tilegx/tilepro.h (PROFILE_BEFORE_PROLOGUE): Define.
21466
21467 2013-03-25 Jeff Law <law@redhat.com>
21468
21469 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Add missing
21470 check for INTEGRAL_TYPE_P that was missing due to checking in
21471 wrong version of prior patch.
21472
21473 2013-03-25 Walter Lee <walt@tilera.com>
21474
21475 * config/tilegx/tilegx-builtins.h (enum tilegx_builtin): Add
21476 TILEGX_INSN_SHUFFLEBYTES1.
21477 * config/tilegx/tilegx.c (tilegx_builtin_info): Add entry for
21478 shufflebytes1.
21479 (tilegx_builtins): Ditto.
21480 * config/tilegx/tilegx.md (insn_shufflebytes1): New pattern.
21481
21482 2013-03-25 Walter Lee <walt@tilera.com>
21483
21484 * config/tilegx/tilegx.md (floatsisf2): New pattern.
21485 (floatunssisf2): New pattern.
21486 (floatsidf2): New pattern.
21487 (floatunssidf2): New pattern.
21488
21489 2013-03-25 Walter Lee <walt@tilera.com>
21490
21491 * config/tilegx/tilegx.c (expand_set_cint64_one_inst): Inline
21492 tests for constraint J, K, N, P.
21493
21494 2013-03-25 Walter Lee <walt@tilera.com>
21495
21496 * config/tilegx/tilegx.c (tilegx_asm_preferred_eh_data_format):
21497 Use indirect/pcrel encoding.
21498 * config/tilepro/tilepro.c (tilepro_asm_preferred_eh_data_format):
21499 Ditto.
21500
21501 2013-03-25 Steve Ellcey <sellcey@mips.com>
21502
21503 * config/mips/mmips-cpus.def (74kc, 74kf2_1, 74kf, 74kf, 74kf1_1,
21504 74kfx, 74kx, 74kf3_2): Add PTF_AVOID_IMADD.
21505 * config/mips/mips.c (mips_option_override): Set IMADD default.
21506 * config/mips/mips.h (PTF_AVOID_IMADD): New.
21507 (ISA_HAS_MADD_MSUB): Remove MIPS16 check.
21508 (GENERATE_MADD_MSUB): Remove TUNE_74K check, add MIPS16 check.
21509 * config/mips/mips.md (mimadd): New flag for integer madd/msub.
21510 * doc/invoke.texi (-mimadd/-mno-imadd): New.
21511
21512 2013-03-25 Jeff Law <law@redhat.com>
21513
21514 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Rework
21515 slightly to avoid creating and folding useless trees. Simplify
21516 slightly by restricting to INTEGER_CSTs and using int_fits_type_p.
21517
21518 2013-03-25 Uros Bizjak <ubizjak@gmail.com>
21519
21520 * config/i386/i386.md (*zero_extendsidi2): Merge with
21521 *zero_extendsidi2_rex64. Use x64 and nox64 isa attributes.
21522 * config/i386/predicates.md (x86_64_zext_operand): Rename from
21523 x86_64_zext_general_operand. Use nonimmediate_operand on 32bit
21524 targets. Clarify comment.
21525
21526 2013-03-25 Martin Jambor <mjambor@suse.cz>
21527
21528 * ipa-prop.c (ipa_write_jump_function): Stream simple and aritmetic
21529 pass-through jump functions differently.
21530 (ipa_read_jump_function): Likewise. Also use setter functions to set
21531 up jump functions.
21532
21533 2013-03-25 Martin Jambor <mjambor@suse.cz>
21534
21535 * ipa-cp.c (ipa_get_indirect_edge_target): Renamed to
21536 ipa_get_indirect_edge_target_1, added parameter agg_reps and ability to
21537 process it.
21538 (ipa_get_indirect_edge_target): New function.
21539 (devirtualization_time_bonus): New parameter known_aggs, pass it to
21540 ipa_get_indirect_edge_target. Update all callers.
21541 (ipcp_discover_new_direct_edges): New parameter aggvals. Pass it to
21542 ipa_get_indirect_edge_target_1 instead of calling
21543 ipa_get_indirect_edge_target.
21544 (create_specialized_node): Pass aggvlas to
21545 ipcp_discover_new_direct_edges.
21546
21547 2013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21548
21549 * config/arm/arm.md (f_sels, f_seld): New types.
21550 (*cmov<mode>): New pattern.
21551 * config/arm/predicates.md (arm_vsel_comparison_operator): New
21552 predicate.
21553
21554 2013-03-25 Kai Tietz <ktietz@redhat.com>
21555
21556 * config/i386/xm-mingw32.h (__USE_MINGW_ANSI_STDIO): Enable
21557 POSIX-printf for mingw-hosted builds.
21558
21559 2013-03-25 Richard Biener <rguenther@suse.de>
21560
21561 PR middle-end/56694
21562 * tree-eh.c (lower_eh_must_not_throw): Strip BLOCKs from the
21563 must-not-throw stmt location.
21564
21565 2013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21566
21567 * config/arm/arm.c (arm_emit_load_exclusive): Add acq parameter.
21568 Emit load-acquire versions when acq is true.
21569 (arm_emit_store_exclusive): Add rel parameter.
21570 Emit store-release versions when rel is true.
21571 (arm_split_compare_and_swap): Use acquire-release instructions
21572 instead.
21573 of barriers when appropriate.
21574 (arm_split_atomic_op): Likewise.
21575 * config/arm/arm.h (TARGET_HAVE_LDACQ): New macro.
21576 * config/arm/unspecs.md (VUNSPEC_LAX): New unspec.
21577 (VUNSPEC_SLX): Likewise.
21578 (VUNSPEC_LDA): Likewise.
21579 (VUNSPEC_STL): Likewise.
21580 * config/arm/sync.md (atomic_load<mode>): New pattern.
21581 (atomic_store<mode>): Likewise.
21582 (arm_load_acquire_exclusive<mode>): Likewise.
21583 (arm_load_acquire_exclusivesi): Likewise.
21584 (arm_load_acquire_exclusivedi): Likewise.
21585 (arm_store_release_exclusive<mode>): Likewise.
21586
21587 2013-03-25 Catherine Moore <clm@codesourcery.com>
21588
21589 * config/mips/constraints.md (u, Udb7 Uead, Uean, Uesp, Uib3,
21590 Uuw6, Usb4, ZS, ZT, ZU, ZV, ZW): New constraints.
21591 * config/mip/predicates.md (lwsp_swsp_operand,
21592 lw16_sw16_operand, lhu16_sh16_operand, lbu16_operand,
21593 sb16_operand, db4_operand, db7_operand, ib3_operand,
21594 sb4_operand, ub4_operand, uh4_operand, uw4_operand,
21595 uw5_operand, uw6_operand, addiur2_operand, addiusp_operand,
21596 andi16_operand): New predicates.
21597 * config/mips/mips.md (compression): New attribute.
21598 (enabled): New attribute.
21599 (length): Consider compression in computing length.
21600 (shift_compression): New code attribute.
21601 (*add<mode>3): New operands. Record compression.
21602 (sub<mode>3): Likewise.
21603 (one_cmpl<mode>2): Likewise.
21604 (*and<mode>3): Likewise.
21605 (*ior<mode>3): Likewise.
21606 (unnamed pattern for xor): Likewise.
21607 (*zero_extend<SHORT:mode><GPR:mode>2): Likewise.
21608 (*<optab><mode>3): Likewise.
21609 (*mov<mode>_internal: Likewise.
21610 * config/mips/mips-protos.h (mips_signed_immediate_p): New.
21611 (mips_unsigned_immediate_p): New.
21612 (umips_lwsp_swsp_address_p): New.
21613 (m16_based_address_p): New.
21614 * config/mips/mips-protos.h (mips_signed_immediate_p): New prototype.
21615 (mips_unsigned_immediate_p): New prototype.
21616 (lwsp_swsp_address_p): New prototype.
21617 (m16_based_address_p): New prototype.
21618 * config/mips/mips.c (mips_unsigned_immediate_p): New function.
21619 (mips_signed_immediate_p): New function.
21620 (m16_based_address_p): New function.
21621 (lwsp_swsp_address_p): New function.
21622 (mips_print_operand_punctuation): Recognize short delay slot insns
21623 for microMIPS.add<mode>3"
21624
21625 2013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21626
21627 PR target/56720
21628 * config/arm/iterators.md (v_cmp_result): New mode attribute.
21629 * config/arm/neon.md (vcond<mode><mode>): Handle unordered cases.
21630
21631 2013-03-25 Richard Biener <rguenther@suse.de>
21632
21633 PR tree-optimization/56689
21634 * tree-vrp.c (execute_vrp): Mark loops for fixup if we removed
21635 any edge.
21636
21637 2013-03-25 Richard Biener <rguenther@suse.de>
21638
21639 * tree-ssa-loop-im.c (struct mem_ref): Use bitmap_head instead
21640 of bitmap.
21641 (memory_references): Likewise.
21642 (outermost_indep_loop, mem_ref_alloc, mark_ref_stored,
21643 gather_mem_refs_stmt, record_dep_loop, ref_indep_loop_p_1,
21644 ref_indep_loop_p_2, find_refs_for_sm): Adjust.
21645 (gather_mem_refs_in_loops): Fold into ...
21646 (analyze_memory_references): ... this. Move initialization
21647 to tree_ssa_lim_initialize.
21648 (fill_always_executed_in): Rename to ...
21649 (fill_always_executed_in_1): ... this.
21650 (fill_always_executed_in): Move contains_call computation to
21651 this new function from ...
21652 (tree_ssa_lim_initialize): ... here.
21653 (tree_ssa_lim): Call fill_always_executed_in.
21654
21655 2013-03-25 Eric Botcazou <ebotcazou@adacore.com>
21656
21657 * postreload.c (reload_combine): Fix code detecting returns.
21658
21659 2013-03-25 Eric Botcazou <ebotcazou@adacore.com>
21660
21661 * function.c (emit_use_return_register_into_block): On cc0 targets,
21662 do not emit the sequence between cc0 setter and user.
21663
21664 2013-03-25 Kai Tietz <ktietz@redhat.com>
21665
21666 * config/i386/predicates.md (local_symbolic_operand): Interpret
21667 dll-imported symbols as none-local.
21668
21669 2013-03-25 Richard Biener <rguenther@suse.de>
21670
21671 * tree-ssa-loop-im.c (struct depend): Remove.
21672 (struct lim_aux_data): Make depends a vec of gimples.
21673 (free_lim_aux_data): Adjust.
21674 (add_dependency): Likewise.
21675 (set_level): Likewise.
21676
21677 2013-03-25 Richard Biener <rguenther@suse.de>
21678
21679 PR middle-end/56434
21680 * calls.c (expand_call): Use MALLOC_ABI_ALIGNMENT to annotate
21681 the pointer returned by calls with ECF_MALLOC set.
21682
21683 2013-03-24 Uros Bizjak <ubizjak@gmail.com>
21684
21685 * config/i386/mmx.md (mov<mode>): Add ?!Ym,r and r,?!Ym alternatives.
21686
21687 2013-03-24 Uros Bizjak <ubizjak@gmail.com>
21688
21689 * config/i386/mmx.md (mov<mode>): Merge with movv2sf expander
21690 using MMXMODE mode iterator.
21691 (*move<mode>_internal): Merge with *movv2sf_internal and
21692 *movv2sf_internal_rex64 using MMXMODE mode iterator.
21693
21694 2013-03-23 Steven Bosscher <steven@gcc.gnu.org>
21695
21696 * gcse.c (oprs_unchanged_p): Respect flag_gcse_lm.
21697 (record_last_mem_set_info): Likewise.
21698
21699 * df-core.c (rest_of_handle_df_initialize): Use XCNEWVEC instead
21700 of XNEWVEC followed by memset.
21701 (df_worklist_dataflow): Use XNEWVEC instead of xmalloc with a cast.
21702
21703 2013-03-23 Steven Bosscher <steven@gcc.gnu.org>
21704
21705 * config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
21706 config/epiphany/epiphany.c, config/frv/frv.c, config/ia64/ia64.c,
21707 config/iq2000/iq2000.c, config/mcore/mcore.c, config/mep/mep.c,
21708 config/mmix/mmix.c, config/pa/pa.c, config/rs6000/rs6000.c,
21709 config/s390/s390.c, config/sparc/sparc.c, config/spu/spu.c,
21710 config/stormy16/stormy16.c, config/v850/v850.c, config/xtensa/xtensa.c,
21711 dwarf2out.c, hw-doloop.c, resource.c, rtl.h : Where applicable, use
21712 the predicates NOTE_P, NONJUMP_INSN_P, JUMP_P, CALL_P, LABEL_P, and
21713 BARRIER_P instead of GET_CODE.
21714
21715 2013-03-23 Eric Botcazou <ebotcazou@adacore.com>
21716
21717 * config/sparc/sparc.c (sparc_emit_probe_stack_range): Fix small
21718 inaccuracy in the probing code.
21719
21720 * config/sparc/sparc.md (ctrapsi4): Add predicate for operand #3.
21721 (ctrapdi4): Likewise.
21722
21723 2013-03-23 Eric Botcazou <ebotcazou@adacore.com>
21724
21725 * calls.c (expand_call): Add missing guard to code handling return
21726 of non-BLKmode structures in MSB.
21727 * function.c (expand_function_end): Likewise.
21728
21729 2013-03-23 Eric Botcazou <ebotcazou@adacore.com>
21730
21731 * combine.c (try_combine): Adjust comment. Do not add the set of
21732 insn #0 if the destination indirectly is set or dies in insn #2.
21733 Tidy up code to distribute a new note.
21734
21735 2013-03-22 Uros Bizjak <ubizjak@gmail.com>
21736
21737 * config/i386/i386.md (*movdi_internal): Set prefix_rex attribute
21738 also for alternatives 16 and 17.
21739
21740 2013-03-22 Uros Bizjak <ubizjak@gmail.com>
21741
21742 * config/i386/sse.md (*mov<mode>_internal): Merge with
21743 *mov<mode>_internal_rex64. Use x64 and nox64 isa attributes.
21744 Emit insn template depending on type attribute. Use
21745 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
21746 movd instead of movq mnemonic for interunit moves. Rewrite mode
21747 attribute calculation. Remove unit attribute calculation.
21748 Set prefix attribute to maybe_vex for sselog1 and ssemov types.
21749 Set prefix_data16 attribute for DImode ssemov types.
21750 Use Ym instead of y for SSE-MMX conversion alternatives.
21751 Reorder operand constraints.
21752
21753 2013-03-22 Steven Bosscher <steven@gcc.gnu.org>
21754
21755 * df.h (df_insn_delete): Adjust prototype.
21756 * emit-rtl.c (remove_insn): Pass a basic block to df_insn_delete
21757 and let it decide whether mark the basic block dirty.
21758 (set_insn_deleted): Only pass INSN_P insns to df_insn_delete.
21759 * df-scan.c (df_insn_info_delete): New helper function, split
21760 off from df_insn_delete.
21761 (df_scan_free_bb_info): Use it.
21762 (df_insn_rescan, df_insn_rescan_all, df_process_deferred_rescans):
21763 Likewise.
21764 (df_insn_delete): Likewise. Take insn rtx as argument. Verify
21765 that the insn is actually an insn and it has a non-NULL basic block.
21766 Do not mark basic block dirty if only deleting a DEBUG_INSN.
21767
21768 2013-03-22 Richard Biener <rguenther@suse.de>
21769
21770 * tree-ssa-loop-im.c (struct mem_ref): Remove indep_ref and
21771 dep_ref members.
21772 (mem_ref_alloc): Do not allocate them.
21773 (refs_independent_p): Do not query or maintain a cache.
21774
21775 2013-03-22 Richard Biener <rguenther@suse.de>
21776
21777 * tree-ssa-loop-im.c (memory_references): Drop all_refs_in_loop.
21778 (gather_mem_refs_in_loops): Do not compute it.
21779 (analyze_memory_references): Do not allocate it.
21780 (tree_ssa_lim_finalize): Do not free it.
21781 (for_all_locs_in_loop): Do not query all_refs_in_loop.
21782
21783 2013-03-22 Richard Biener <rguenther@suse.de>
21784
21785 * is-a.h (as_a): Use gcc_checking_assert.
21786
21787 2013-03-22 Ian Bolton <ian.bolton@arm.com>
21788
21789 * config/aarch64/aarch64.c (aarch64_print_operand): New
21790 format specifier for printing a constant in hex.
21791 * config/aarch64/aarch64.md (insv_imm<mode>): Use the X
21792 format specifier for printing second operand.
21793
21794 2013-03-22 Richard Biener <rguenther@suse.de>
21795
21796 * tree-ssa-loop-im.c (memory_references): Add refs_stored_in_loop
21797 bitmaps.
21798 (gather_mem_refs_in_loops): Perform store accumulation here.
21799 (create_vop_ref_mapping_loop): Remove.
21800 (create_vop_ref_mapping): Likewise.
21801 (analyze_memory_references): Initialize refs_stored_in_loop.
21802 (LOOP_DEP_BIT): New define to map to bits in (in)dep_loop bitmaps.
21803 (record_indep_loop): Remove.
21804 (record_dep_loop): New function.
21805 (ref_indep_loop_p_1): Adjust to only walk over references
21806 in the loop, not its subloops.
21807 (ref_indep_loop_p): Rename to ...
21808 (ref_indep_loop_p_2): ... this and recurse over the loop tree,
21809 maintaining a more fine-grained cache.
21810 (ref_indep_loop_p): Wrap ref_indep_loop_p_2.
21811 (tree_ssa_lim_finalize): Free refs_stored_in_loop.
21812
21813 2013-03-22 Richard Biener <rguenther@suse.de>
21814
21815 * tree-ssa-loop-im.c (struct mem_ref_locs): Remove.
21816 (struct mem_ref): Make accesses_in_loop a vec of a vec of
21817 aggregate mem_ref_loc.
21818 (free_mem_ref_locs): Inline into ...
21819 (memref_free): ... this and adjust.
21820 (mem_ref_alloc): Adjust.
21821 (mem_ref_locs_alloc): Remove.
21822 (record_mem_ref_loc): Adjust.
21823 (get_all_locs_in_loop): Rewrite into ...
21824 (for_all_locs_in_loop): ... this iterator.
21825 (rewrite_mem_ref_loc): New functor.
21826 (rewrite_mem_refs): Use for_all_locs_in_loop.
21827 (sm_set_flag_if_changed): New functor.
21828 (execute_sm_if_changed_flag_set): Use for_all_locs_in_loop.
21829 (ref_always_accessed): New functor.
21830 (ref_always_accessed_p): Use for_all_locs_in_loop.
21831
21832 2013-03-21 Marc Glisse <marc.glisse@inria.fr>
21833
21834 * tree-pass.h (PROP_gimple_lvec): New.
21835 * passes.c (dump_properties): Handle PROP_gimple_lvec.
21836 (init_optimization_passes): Move pass_lower_vector.
21837 * tree-vect-generic.c (gate_expand_vector_operations_ssa): Test
21838 PROP_gimple_lvec.
21839 (pass_lower_vector): Provide PROP_gimple_lvec.
21840 (pass_lower_vector_ssa): Likewise.
21841 * cfgexpand.c (pass_expand): Require PROP_gimple_lvec.
21842
21843 2013-03-21 Mark Wielaard <mjw@redhat.com>
21844
21845 * dwarf2out.c (size_of_aranges): Skip DECL_IGNORED_P functions.
21846
21847 2013-03-21 Uros Bizjak <ubizjak@gmail.com>
21848
21849 * config/i386/i386.md (*movdi_internal): Disparage slightly
21850 all MMX moves to/from memory. Use Yi instead of x for SSE-MMX
21851 conversion alternatives.
21852
21853 2013-03-21 Jakub Jelinek <jakub@redhat.com>
21854
21855 PR middle-end/48087
21856 * diagnostic.def (DK_WERROR): New kind.
21857 * diagnostic.h (werrorcount): Define.
21858 * diagnostic.c (diagnostic_report_diagnostic): For DK_WARNING
21859 promoted to DK_ERROR, increment DK_WERROR counter instead of
21860 DK_ERROR counter.
21861 * toplev.c (toplev_main): Call print_ignored_options even if
21862 just werrorcount is non-zero. Exit with FATAL_EXIT_CODE
21863 even if just werrorcount is non-zero.
21864
21865 PR debug/55608
21866 * dwarf2out.c (tree_add_const_value_attribute): Call ggc_free (array)
21867 on failure.
21868 (resolve_one_addr): Fail if referenced STRING_CST hasn't been written.
21869 (string_cst_pool_decl): New function.
21870 (optimize_one_addr_into_implicit_ptr): New function.
21871 (resolve_addr_in_expr): Optimize DWARF location expression
21872 DW_OP_addr DW_OP_stack_value where DW_OP_addr refers to some variable
21873 which doesn't live in memory, but has DW_AT_location or
21874 DW_AT_const_value, or refers to a string literal, into
21875 DW_OP_GNU_implicit_pointer.
21876 (optimize_location_into_implicit_ptr): New function.
21877 (resolve_addr): If removing DW_AT_location of a variable because
21878 it was DW_OP_addr of address of the variable, but the variable doesn't
21879 live in memory, try to emit const value attribute for the initializer.
21880
21881 2013-03-21 Marc Glisse <marc.glisse@inria.fr>
21882
21883 * tree.h (VECTOR_TYPE_P): New macro.
21884 (VECTOR_INTEGER_TYPE_P, VECTOR_FLOAT_TYPE_P, FLOAT_TYPE_P,
21885 TYPE_MODE): Use it.
21886 * fold-const.c (fold_cond_expr_with_comparison): Use build_zero_cst.
21887 VEC_COND_EXPR cannot be lvalues.
21888 (fold_ternary_loc) <VEC_COND_EXPR>: Merge with the COND_EXPR case.
21889
21890 2013-03-21 Marc Glisse <marc.glisse@inria.fr>
21891
21892 * simplify-rtx.c (simplify_binary_operation_1) <VEC_CONCAT>:
21893 Restrict the transformation to equal modes.
21894
21895 2013-03-21 Richard Biener <rguenther@suse.de>
21896
21897 PR tree-optimization/39326
21898 * tree-ssa-loop-im.c (UNANALYZABLE_MEM_ID): New define.
21899 (MEM_ANALYZABLE): Adjust.
21900 (record_mem_ref_loc): Move bitmap ops ...
21901 (gather_mem_refs_stmt): ... here. Use the shared mem-ref for
21902 unanalyzable refs, do not record locations for it.
21903 (analyze_memory_references): Allocate ref zero as shared
21904 unanalyzable ref.
21905 (refs_independent_p): Do not test for unanalyzed mems here.
21906 (ref_indep_loop_p_1): Special-case disambiguation against
21907 the unanalyzed ref.
21908 (ref_indep_loop_p): Assert we are not queried for the unanalyzed mem.
21909
21910 2013-03-21 Christophe Lyon <christophe.lyon@linaro.org>
21911
21912 * config/arm/arm-protos.h (tune_params): Add
21913 prefer_neon_for_64bits field.
21914 * config/arm/arm.c (prefer_neon_for_64bits): New variable.
21915 (arm_slowmul_tune): Default prefer_neon_for_64bits to false.
21916 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
21917 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
21918 (arm_cortex_a15_tune, arm_cortex_a5_tune): Ditto.
21919 (arm_cortex_a9_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
21920 (arm_option_override): Handle -mneon-for-64bits new option.
21921 * config/arm/arm.h (TARGET_PREFER_NEON_64BITS): New macro.
21922 (prefer_neon_for_64bits): Declare new variable.
21923 * config/arm/arm.md (arch): Rename neon_onlya8 and neon_nota8 to
21924 avoid_neon_for_64bits and neon_for_64bits. Remove onlya8 and nota8.
21925 (arch_enabled): Handle new arch types. Remove support for onlya8
21926 and nota8.
21927 (one_cmpldi2): Use new arch names.
21928 (zero_extend<mode>di2, extend<mode>di2): Ditto.
21929 * config/arm/arm.opt (mneon-for-64bits): Add option.
21930 * config/arm/neon.md (adddi3_neon, subdi3_neon, iordi3_neon)
21931 (anddi3_neon, xordi3_neon, ashldi3_neon, <shift>di3_neon): Use
21932 neon_for_64bits instead of nota8 and avoid_neon_for_64bits instead
21933 of onlya8.
21934 * doc/invoke.texi (-mneon-for-64bits): Document.
21935
21936 2013-03-21 Richard Biener <rguenther@suse.de>
21937
21938 PR tree-optimization/39326
21939 * tree-ssa-loop-im.c (bb_loop_postorder): New global static.
21940 (sort_bbs_in_loop_postorder_cmp): New function.
21941 (gather_mem_refs_in_loops): Assign mem-ref IDs in loop postorder.
21942
21943 2013-03-21 Richard Biener <rguenther@suse.de>
21944
21945 * tree-vect-data-refs.c (vect_update_interleaving_chain): Remove.
21946 (vect_insert_into_interleaving_chain): Likewise.
21947 (vect_drs_dependent_in_basic_block): Inline ...
21948 (vect_slp_analyze_data_ref_dependence): ... here. New function,
21949 split out from ...
21950 (vect_analyze_data_ref_dependence): ... here. Simplify.
21951 (vect_check_interleaving): Simplify.
21952 (vect_analyze_data_ref_dependences): Likewise. Split out ...
21953 (vect_slp_analyze_data_ref_dependences): ... this new function.
21954 (dr_group_sort_cmp): New function.
21955 (vect_analyze_data_ref_accesses): Compute data-reference groups
21956 here instead of in vect_analyze_data_ref_dependence. Use
21957 a more efficient algorithm.
21958 * tree-vect-slp.c (vect_slp_analyze_bb_1): Use
21959 vect_slp_analyze_data_ref_dependences. Call
21960 vect_analyze_data_ref_accesses earlier.
21961 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
21962 * tree-vectorizer.h (vect_analyze_data_ref_dependences): Adjust.
21963 (vect_slp_analyze_data_ref_dependences): New prototype.
21964
21965 2013-03-21 Richard Biener <rguenther@suse.de>
21966
21967 * tree-ssa-loop-im.c (can_sm_ref_p): Do not test whether
21968 ref is stored in the loop.
21969 (find_refs_for_sm): Walk only over all stores.
21970 (store_motion_loop): Allocate from lim_bitmap_obstack.
21971 (store_motion): Likewise.
21972
21973 2013-03-21 Richard Biener <rguenther@suse.de>
21974
21975 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge):
21976 Update virtual SSA form.
21977
21978 2013-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21979
21980 * configure.ac (gcc_cv_ld_eh_frame_ciev3): New test.
21981 * configure: Regenerate.
21982 * config.in: Regenerate.
21983 * config/sol2.c (solaris_override_options): Only enforce DWARF 2
21984 if !HAVE_LD_EH_FRAME_CIEV3.
21985
21986 2013-03-21 Richard Biener <rguenther@suse.de>
21987
21988 * tree-cfg.c (verify_expr_no_block): New function.
21989 (verify_expr_location_1): Verify that neither DECL_DEBUG_EXPR
21990 nor DECL_VALUE_EXPR have locations with associated blocks.
21991 * tree-ssa-live.c (clear_unused_block_pointer_1): Remove.
21992 (clear_unused_block_pointer): Remove code dealing with
21993 blocks in DECL_DEBUG_EXPR locations.
21994
21995 2013-03-21 Richard Biener <rguenther@suse.de>
21996
21997 * tree.h (DECL_DEBUG_EXPR_IS_FROM): Rename to ...
21998 (DECL_HAS_DEBUG_EXPR_P): ... this. Guard properly.
21999 * tree.c (copy_node_stat): Do not copy DECL_HAS_DEBUG_EXPR_P.
22000 * dwarf2out.c (add_var_loc_to_decl): Use DECL_HAS_DEBUG_EXPR_P
22001 instead of DECL_DEBUG_EXPR_IS_FROM.
22002 * gimplify.c (gimplify_modify_expr): Likewise.
22003 * tree-cfg.c (verify_expr_location_1): Likewise.
22004 * tree-complex.c (create_one_component_var): Likewise.
22005 * tree-sra.c (create_access_replacement): Likewise.
22006 * tree-ssa-live.c (clear_unused_block_pointer_1): Likewise.
22007 (clear_unused_block_pointer): Likewise.
22008 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
22009 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
22010 * var-tracking.c (var_debug_decl): Likewise.
22011 (track_expr_p): Likewise.
22012 * tree-inline.c (add_local_variables): Likewise. Set
22013 DECL_HAS_DEBUG_EXPR_P after copying it.
22014 * tree-diagnostic.c (default_tree_printer): Use DECL_HAS_DEBUG_EXPR_P
22015 instead of DECL_DEBUG_EXPR_IS_FROM. Guard properly.
22016
22017 2013-03-21 Uros Bizjak <ubizjak@gmail.com>
22018
22019 PR bootstrap/56656
22020 * configure.ac (HAVE_AS_IX86_INTERUNIT_MOVQ): New test.
22021 * configure: Regenerate.
22022 * config.in: Regenerate.
22023 * config/i386/i386.md (*movdf_internal): Use
22024 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
22025 movd instead of movq mnemonic for interunit moves.
22026 (*movdi_internal): Ditto.
22027
22028 2013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
22029
22030 * config/aarch64/aarch64-simd.md (simd_fabd): New Attribute.
22031 (abd<mode>_3): New pattern.
22032 (aba<mode>_3): New pattern.
22033 (fabd<mode>_3): New pattern.
22034
22035 2013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
22036
22037 * config/aarch64/aarch64-elf.h (REGISTER_PREFIX): Remove.
22038 * config/aarch64/aarch64.c (aarch64_print_operand): Remove all
22039 occurrence of REGISTER_PREFIX as its empty string.
22040
22041 2013-03-20 Jeff Law <law@redhat.com>
22042
22043 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Record
22044 addititional equivalences for equality comparisons between an SSA_NAME
22045 and a constant where the SSA_NAME was set from a widening conversion.
22046
22047 2013-03-20 Walter Lee <walt@tilera.com>
22048
22049 * config/tilegx/sync.md (atomic_test_and_set): New pattern.
22050
22051 2013-03-20 Uros Bizjak <ubizjak@gmail.com>
22052
22053 * config/i386/i386.md (*movoi_internal_avx): Emit insn template
22054 depending on type attribute.
22055 (*movti_internal): Ditto.
22056 (*movtf_internal): Ditto.
22057 (*movxf_internal): Ditto.
22058 (*movdf_internal): Ditto.
22059 (*movsf_internal): Ditto.
22060
22061 2013-03-20 Uros Bizjak <ubizjak@gmail.com>
22062
22063 * config/i386/i386.md (*movti_internal): Set prefix attribute to
22064 maybe_vex for sselog1 and ssemov types.
22065 (*movdi_internal): Reorder operand constraints.
22066 (*movsi_internal): Ditto. Set prefix attribute to
22067 maybe_vex for sselog1 and ssemov types.
22068 (*movtf_internal): Set prefix attribute to maybe_vex
22069 for sselog1 and ssemov types.
22070 (*movdf_internal): Ditto. Set prefix_data16 attribute for
22071 DImode ssemov types. Reorder operand constraints.
22072 (*movsf_internal): Set type of alternatives 3,4 to imov. Set prefix
22073 attribute to maybe_vex for sselog1 and ssemov types. Set prefix_data16
22074 attribute for SImode ssemov types. Reorder operand constraints.
22075
22076 2013-03-20 Martin Jambor <mjambor@suse.cz>
22077
22078 * params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): New parameter.
22079 * ipa-cp.c (hint_time_bonus): Add abonus for known array indices.
22080
22081 2013-03-20 Pat Haugen <pthaugen@us.ibm.com>
22082
22083 * config/rs6000/predicates.md (indexed_address, update_address_mem
22084 update_indexed_address_mem): New predicates.
22085 * config/rs6000/vsx.md (vsx_extract_<mode>_zero): Set correct "type"
22086 attribute for load/store instructions.
22087 * config/rs6000/dfp.md (movsd_store): Likewise.
22088 (movsd_load): Likewise.
22089 * config/rs6000/rs6000.md (zero_extend<mode>di2_internal1): Likewise.
22090 (unnamed HI->DI extend define_insn): Likewise.
22091 (unnamed SI->DI extend define_insn): Likewise.
22092 (unnamed QI->SI extend define_insn): Likewise.
22093 (unnamed QI->HI extend define_insn): Likewise.
22094 (unnamed HI->SI extend define_insn): Likewise.
22095 (unnamed HI->SI extend define_insn): Likewise.
22096 (extendsfdf2_fpr): Likewise.
22097 (movsi_internal1): Likewise.
22098 (movsi_internal1_single): Likewise.
22099 (movhi_internal): Likewise.
22100 (movqi_internal): Likewise.
22101 (movcc_internal1): Correct mnemonic for stw insn. Set correct "type"
22102 attribute for load/store instructions.
22103 (mov<mode>_hardfloat): Set correct "type" attribute for load/store
22104 instructions.
22105 (mov<mode>_softfloat): Likewise.
22106 (mov<mode>_hardfloat32): Likewise.
22107 (mov<mode>_hardfloat64): Likewise.
22108 (mov<mode>_softfloat64): Likewise.
22109 (movdi_internal32): Likewise.
22110 (movdi_internal64): Likewise.
22111 (probe_stack_<mode>): Likewise.
22112
22113 2013-03-20 Michael Meissner <meissner@linux.vnet.ibm.com>
22114
22115 * config/rs6000/vector.md (VEC_R): Add 32-bit integer, binary
22116 floating point, and decimal floating point to reload iterator.
22117
22118 * config/rs6000/constraints.md (wl constraint): New constraints to
22119 return FLOAT_REGS if certain options are used to reduce the number
22120 of separate patterns that exist in the file.
22121 (wx constraint): Likewise.
22122 (wz constraint): Likewise.
22123
22124 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
22125 -mdebug=reg, print wg, wl, wx, and wz constraints.
22126 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
22127 Initialize the reload functions for 64-bit binary/decimal floating
22128 point types.
22129 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
22130 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
22131 create the buffer on the stack to overcome not having a 32-bit
22132 load and store.
22133 (rs6000_emit_move): Likewise.
22134 (rs6000_secondary_memory_needed_rtx): Likewise.
22135 (rs6000_alloc_sdmode_stack_slot): Likewise.
22136 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
22137 via xxlxor, just like DFmode 0.0.
22138
22139 * config/rs6000/rs6000.h (TARGET_NO_SDMODE_STACK): New macro,
22140 define as 1 if we are running on a power7 or newer.
22141 (enum r6000_reg_class_enum): Add new constraints.
22142
22143 * config/rs6000/dfp.md (movsd): Delete, combine with binary
22144 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
22145 with other moves by using conditional constraits (wg). Use LFIWZX
22146 and STFIWX for loading SDmode on power7. Use xxlxor to create 0.0f.
22147 (movsd splitter): Likewise.
22148 (movsd_hardfloat): Likewise.
22149 (movsd_softfloat): Likewise.
22150
22151 * config/rs6000/rs6000.md (FMOVE32): New iterators to combine
22152 binary and decimal floating point moves.
22153 (fmove_ok): New attributes to combine binary and decimal floating
22154 point moves, and to combine power6x (mfpgpr) moves along normal
22155 floating moves.
22156 (real_value_to_target): Likewise.
22157 (f32_lr): Likewise.
22158 (f32_lm): Likewise.
22159 (f32_li): Likewise.
22160 (f32_sr): Likewise.
22161 (f32_sm): Likewise.
22162 (f32_si): Likewise.
22163 (movsf): Combine binary and decimal floating point moves. Combine
22164 power6x (mfpgpr) moves with other moves by using conditional
22165 constraits (wg). Use LFIWZX and STFIWX for loading SDmode on power7.
22166 (mov<mode> for SFmode/SDmode); Likewise.
22167 (SFmode/SDmode splitters): Likewise.
22168 (movsf_hardfloat): Likewise.
22169 (mov<mode>_hardfloat for SFmode/SDmode): Likewise.
22170 (movsf_softfloat): Likewise.
22171 (mov<mode>_softfloat for SFmode/SDmode): Likewise.
22172
22173 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wl,
22174 wx and wz constraints.
22175
22176 * config/rs6000/constraints.md (wg constraint): New constraint to
22177 return FLOAT_REGS if -mmfpgpr (power6x) was used.
22178
22179 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wg
22180 constraint.
22181
22182 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
22183 -mdebug=reg, print wg, wl, wx, and wz constraints.
22184 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
22185 Initialize the reload functions for 64-bit binary/decimal floating
22186 point types.
22187 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
22188 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
22189 create the buffer on the stack to overcome not having a 32-bit
22190 load and store.
22191 (rs6000_emit_move): Likewise.
22192 (rs6000_secondary_memory_needed_rtx): Likewise.
22193 (rs6000_alloc_sdmode_stack_slot): Likewise.
22194 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
22195 via xxlxor, just like DFmode 0.0.
22196
22197 * config/rs6000/dfp.md (movdd): Delete, combine with binary
22198 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
22199 with other moves by using conditional constraits (wg). Use LFIWZX
22200 and STFIWX for loading SDmode on power7.
22201 (movdd splitters): Likewise.
22202 (movdd_hardfloat32): Likewise.
22203 (movdd_softfloat32): Likewise.
22204 (movdd_hardfloat64_mfpgpr): Likewise.
22205 (movdd_hardfloat64): Likewise.
22206 (movdd_softfloat64): Likewise.
22207
22208 * config/rs6000/rs6000.md (FMOVE64): New iterators to combine
22209 64-bit binary and decimal floating point moves.
22210 (FMOVE64X): Likewise.
22211 (movdf): Combine 64-bit binary and decimal floating point moves.
22212 Combine power6x (mfpgpr) moves with other moves by using
22213 conditional constraits (wg).
22214 (mov<mode> for DFmode/DDmode): Likewise.
22215 (DFmode/DDmode splitters): Likewise.
22216 (movdf_hardfloat32): Likewise.
22217 (mov<mode>_hardfloat32 for DFmode/DDmode): Likewise.
22218 (movdf_softfloat32): Likewise.
22219 (movdf_hardfloat64_mfpgpr): Likewise.
22220 (movdf_hardfloat64): Likewise.
22221 (mov<mode>_hardfloat64 for DFmode/DDmode): Likewise.
22222 (movdf_softfloat64): Likewise.
22223 (mov<mode>_softfloat64 for DFmode/DDmode): Likewise.
22224 (reload_<mode>_load): Move to later in the file so they aren't in
22225 the middle of the floating point move insns.
22226 (reload_<mode>_store): Likewise.
22227
22228 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wg
22229 constraint.
22230
22231 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print out wg
22232 constraint if -mdebug=reg.
22233 (rs6000_initi_hard_regno_mode_ok): Enable wg constraint if -mfpgpr.
22234 Enable using dd reload support if needed.
22235
22236 * config/rs6000/dfp.md (movtd): Delete, combine with 128-bit
22237 binary and decimal floating point moves in rs6000.md.
22238 (movtd_internal): Likewise.
22239
22240 * config/rs6000/rs6000.md (FMOVE128): Combine 128-bit binary and
22241 decimal floating point moves.
22242 (movtf): Likewise.
22243 (movtf_internal): Likewise.
22244 (mov<mode>_internal, TDmode/TFmode): Likewise.
22245 (movtf_softfloat): Likewise.
22246 (mov<mode>_softfloat, TDmode/TFmode): Likewise.
22247
22248 * config/rs6000/rs6000.md (movdi_mfpgpr): Delete, combine with
22249 movdi_internal64, using wg constraint for move direct operations.
22250 (movdi_internal64): Likewise.
22251
22252 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print
22253 MODES_TIEABLE_P for selected modes. Print the numerical value of
22254 the various virtual registers. Use GPR/FPR first/last values,
22255 instead of hard coding the register numbers. Print which modes
22256 have reload functions registered.
22257 (rs6000_option_override_internal): If -mdebug=reg, trace the options
22258 settings before/after setting cpu, target and subtarget settings.
22259 (rs6000_secondary_reload_trace): Improve the RTL dump for -mdebug=addr
22260 and for secondary reload failures in rs6000_secondary_reload_inner.
22261 (rs6000_secondary_reload_fail): Likewise.
22262 (rs6000_secondary_reload_inner): Likewise.
22263
22264 * config/rs6000/rs6000.md (FIRST_GPR_REGNO): Add convenience
22265 macros for first/last GPR and FPR registers.
22266 (LAST_GPR_REGNO): Likewise.
22267 (FIRST_FPR_REGNO): Likewise.
22268 (LAST_FPR_REGNO): Likewise.
22269
22270 * config/rs6000/vector.md (mul<mode>3): Use the combined macro
22271 VECTOR_UNIT_ALTIVEC_OR_VSX_P instead of separate calls to
22272 VECTOR_UNIT_ALTIVEC_P and VECTOR_UNIT_VSX_P.
22273 (vcond<mode><mode>): Likewise.
22274 (vcondu<mode><mode>): Likewise.
22275 (vector_gtu<mode>): Likewise.
22276 (vector_gte<mode>): Likewise.
22277 (xor<mode>3): Don't allow logical operations on TImode in 32-bit
22278 to prevent the compiler from converting DImode operations to TImode.
22279 (ior<mode>3): Likewise.
22280 (and<mode>3): Likewise.
22281 (one_cmpl<mode>2): Likewise.
22282 (nor<mode>3): Likewise.
22283 (andc<mode>3): Likewise.
22284
22285 * config/rs6000/constraints.md (wt constraint): New constraint
22286 that returns VSX_REGS if TImode is allowed in VSX registers.
22287
22288 * config/rs6000/predicates.md (easy_fp_constant): 0.0f is an easy
22289 constant under VSX.
22290
22291 * config/rs6000/rs6000-modes.def (PTImode): Define, PTImode is
22292 similar to TImode, but it is restricted to being in the GPRs.
22293
22294 * config/rs6000/rs6000.opt (-mvsx-timode): New switch to allow
22295 TImode to occupy a single VSX register.
22296
22297 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Default to
22298 -mvsx-timode for power7/power8.
22299 (power7 cpu): Likewise.
22300 (power8 cpu): Likewise.
22301
22302 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Make
22303 sure that TFmode/TDmode take up two registers if they are ever
22304 allowed in the upper VSX registers.
22305 (rs6000_hard_regno_mode_ok): If -mvsx-timode, allow TImode in VSX
22306 registers.
22307 (rs6000_init_hard_regno_mode_ok): Likewise.
22308 (rs6000_debug_reg_global): Add debugging for PTImode and wt
22309 constraint. Print if LRA is turned on.
22310 (rs6000_option_override_internal): Give an error if -mvsx-timode
22311 and VSX is not enabled.
22312 (invalid_e500_subreg): Handle PTImode, restricting it to GPRs. If
22313 -mvsx-timode, restrict TImode to reg+reg addressing, and PTImode
22314 to reg+offset addressing. Use PTImode when checking offset
22315 addresses for validity.
22316 (reg_offset_addressing_ok_p): Likewise.
22317 (rs6000_legitimate_offset_address_p): Likewise.
22318 (rs6000_legitimize_address): Likewise.
22319 (rs6000_legitimize_reload_address): Likewise.
22320 (rs6000_legitimate_address_p): Likewise.
22321 (rs6000_eliminate_indexed_memrefs): Likewise.
22322 (rs6000_emit_move): Likewise.
22323 (rs6000_secondary_reload): Likewise.
22324 (rs6000_secondary_reload_inner): Handle PTImode. Allow 64-bit
22325 reloads to fpr registers to continue to use reg+offset addressing,
22326 but 64-bit reloads to altivec registers need reg+reg addressing.
22327 Drop test for PRE_MODIFY, since VSX loads/stores no longer support
22328 it. Treat LO_SUM like a PLUS operation.
22329 (rs6000_secondary_reload_class): If type is 64-bit, prefer to use
22330 FLOAT_REGS instead of VSX_RGS to allow use of reg+offset addressing.
22331 (rs6000_cannot_change_mode_class): Do not allow TImode in VSX
22332 registers to share a register with a smaller sized type, since VSX
22333 puts scalars in the upper 64-bits.
22334 (print_operand): Add support for PTImode.
22335 (rs6000_register_move_cost): Use VECTOR_MEM_VSX_P instead of
22336 VECTOR_UNIT_VSX_P to catch types that can be loaded in VSX
22337 registers, but don't have arithmetic support.
22338 (rs6000_memory_move_cost): Add test for VSX.
22339 (rs6000_opt_masks): Add -mvsx-timode.
22340
22341 * config/rs6000/vsx.md (VSm): Change to use 64-bit aligned moves
22342 for TImode.
22343 (VSs): Likewise.
22344 (VSr): Use wt constraint for TImode.
22345 (VSv): Drop TImode support.
22346 (vsx_movti): Delete, replace with versions for 32-bit and 64-bit.
22347 (vsx_movti_64bit): Likewise.
22348 (vsx_movti_32bit): Likewise.
22349 (vec_store_<mode>): Use VSX iterator instead of vector iterator.
22350 (vsx_and<mode>3): Delete use of '?' constraint on inputs, just put
22351 one '?' on the appropriate output constraint. Do not allow TImode
22352 logical operations on 32-bit systems.
22353 (vsx_ior<mode>3): Likewise.
22354 (vsx_xor<mode>3): Likewise.
22355 (vsx_one_cmpl<mode>2): Likewise.
22356 (vsx_nor<mode>3): Likewise.
22357 (vsx_andc<mode>3): Likewise.
22358 (vsx_concat_<mode>): Likewise.
22359 (vsx_xxpermdi_<mode>): Fix thinko for non V2DF/V2DI modes.
22360
22361 * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Map from
22362 OPTION_MASK_VSX_TIMODE.
22363 (enum rs6000_reg_class_enum): Add RS6000_CONSTRAINT_wt.
22364 (STACK_SAVEAREA_MODE): Use PTImode instead of TImode.
22365
22366 * config/rs6000/rs6000.md (INT mode attribute): Add PTImode.
22367 (TI2 iterator): New iterator for TImode, PTImode.
22368 (wd mode attribute): Add values for vector types.
22369 (movti_string): Replace TI move operations with operations for TImode
22370 and PTImode. Add support for TImode being allowed in VSX registers.
22371 (mov<mode>_string, TImode/PTImode): Likewise.
22372 (movti_ppc64): Likewise.
22373 (mov<mode>_ppc64, TImode/PTImode): Likewise.
22374 (TI mode splitters): Likewise.
22375
22376 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wt
22377 constraint.
22378
22379 2013-03-20 Marc Glisse <marc.glisse@inria.fr>
22380
22381 PR tree-optimization/56355
22382 * fold-const.c (tree_binary_nonnegative_warnv_p) <MULT_EXPR>:
22383 Also handle integers with undefined overflow.
22384
22385 2013-03-20 Catherine Moore <clm@codesourcery.com>
22386 Maciej W. Rozycki <macro@codesourcery.com>
22387 Tom de Vries <tom@codesourcery.com>
22388 Nathan Sidwell <nathan@codesourcery.com>
22389 Iain Sandoe <iain@codesourcery.com>
22390 Nathan Froyd <froydnj@codesourcery.com>
22391 Chao-ying Fu <fu@mips.com>
22392
22393 * doc/extend.texi: (micromips, nomicromips, nocompression):
22394 Document new function attributes.
22395 * doc/invoke.texi (minterlink-compressed, mmicromips,
22396 m14k, m14ke, m14kec): Document new options.
22397 (minterlink-mips16): Update documentation.
22398 * doc/md.texi (ZC, ZD): Document new constraints.
22399 * configure.ac (gcc_cv_as_micromips): Check if linker
22400 supports the .set micromips directive.
22401 * configure: Regenerate.
22402 * config.in: Regenerate.
22403 * config/mips/mips-tables.opt: Regenerate.
22404 * config/mips/micromips.md: New file.
22405 * constraints.md (ZC, ZD): New constraints.
22406 * config/mips/predicates.md (movep_src_register): New predicate.
22407 (movep_src_operand): New predicate.
22408 (non_volatile_mem_operand): New predicate.
22409 * config/mips/mips.md (multimem): New type.
22410 (length): Differentiate between 17-bit and 18-bit branch offsets.
22411 (MOVEP1, MOVEP2): New mode iterator.
22412 (mov_<load>l): Use ZC constraint.
22413 (mov_<load>r): Likewise.
22414 (mov_<store>l): Likewise.
22415 (mov_<store>r): Likewise.
22416 (*branch_equality<mode>_inverted): Add microMIPS support.
22417 (*branch_equality<mode>): Likewise.
22418 (*jump_absolute): Likewise.
22419 (indirect_jump_<mode>): Likewise.
22420 (tablejump_<mode>): Likewise.
22421 (<optab>_internal): Likewise.
22422 (sibcall_internal): Likewise.
22423 (sibcall_value_internal): Likewise.
22424 (prefetch): Use constraint ZD.
22425 * config/mips/mips.opt (minterlink-compressed): New option.
22426 (minterlink-mips16): Now an alias for minterlink-compressed.
22427 (mmicromips): New option.
22428 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
22429 (compare_and_swap_12): Likewise.
22430 (sync_add<mode>): Likewise.
22431 (sync_<optab>_12): Likewise.
22432 (sync_old_<optab>_12): Likewise.
22433 (sync_new_<optab>_12): Likewise.
22434 (sync_nand_12): Likewise.
22435 (sync_old_nand_12): Likewise.
22436 (sync_new_nand_12): Likewise.
22437 (sync_sub<mode>): Likewise.
22438 (sync_old_add<mode>): Likewise.
22439 (sync_old_sub<mode>): Likewise.
22440 (sync_new_add<mode>): Likewise.
22441 (sync_new_sub<mode>): Likewise.
22442 (sync_<optab><mode>): Likewise.
22443 (sync_old_<optab><mode>): Likewise.
22444 (sync_new_<optab><mode>): Likewise.
22445 (sync_nand<mode>): Likewise.
22446 (sync_old_nand<mode>): Likewise.
22447 (sync_new_nand<mode>): Likewise.
22448 (sync_lock_test_and_set<mode>): Likewise.
22449 (test_and_set_12): Likewise.
22450 (atomic_compare_and_swap<mode>): Likewise.
22451 (atomic_exchange<mode>_llsc): Likewise.
22452 (atomic_fetch_add<mode>_llsc): Likewise.
22453 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
22454 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
22455 (umips_save_restore_pattern_p): Likewise.
22456 (umips_load_store_pair_p): Likewise.
22457 (umips_output_load_store_pair): Likewise.
22458 (umips_movep_target_p): Likewise.
22459 (umips_12bit_offset_address_p): Likewise.
22460 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
22461 (mips_base_mips16): Rename this...
22462 (mips_base_compression_flags): ...to this. Update all uses.
22463 (mips_attribute_table): Add micromips, nomicromips and nocompression.
22464 (mips_mips16_decl_p): Delete.
22465 (mips_nomips16_decl_p): Delete.
22466 (mips_get_compress_on_flags): New function.
22467 (mips_get_compress_off_flags): New function.
22468 (mips_get_compress_mode): New function.
22469 (mips_get_compress_on_name): New function.
22470 (mips_get_compress_off_name): New function.
22471 (mips_insert_attributes): Support multiple compression types.
22472 (mips_merge_decl_attributes): Likewise.
22473 (umips_12bit_offset_address_p): New function.
22474 (mips_start_function_definition): Emit .set micromips directive.
22475 (mips_call_may_need_jalx_p): New function.
22476 (mips_function_ok_for_sibcall): Add microMIPS support.
22477 (mips_print_operand_punctuation): Support short delay slots and
22478 compact jumps.
22479 (umips_swm_mask, umips_swm_encoding): New.
22480 (umips_build_save_restore): New function.
22481 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
22482 (was_mips16_p): Remove.
22483 (old_compression_mode): New.
22484 (mips_set_compression_mode): New function.
22485 (mips_set_current_function): Add microMIPS support.
22486 (mips_option_override): Likewise.
22487 (umips_save_restore_pattern_p): New function.
22488 (umips_output_save_restore): New function.
22489 (umips_load_store_pair_p_1): New function.
22490 (umips_load_store_pair_p): New function.
22491 (umips_output_load_store_pair_1): New function.
22492 (umips_output_load_store_pair): New function.
22493 (umips_movep_target_p) New function.
22494 (mips_prepare_pch_save): Add microMIPS support.
22495 * config/mips/mips.h (TARGET_COMPRESSION): New.
22496 (TARGET_CPU_CPP_BUILTINS): Update macro
22497 to use new compression flags and to support microMIPS.
22498 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
22499 (MIPS_ARCH_FLOAT_SPEC): Likewise.
22500 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
22501 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
22502 (ASM_SPEC): Support mmicromips and mno-micromips.
22503 (M16STORE_REG_P): New macro.
22504 (MIPS_CALL): Support TARGET_MICROMIPS.
22505 (MICROMIPS_J): New macro.
22506 (mips_base_mips16): Rename this...
22507 (mips_base_compression_flags): ...to this.
22508 (UMIPS_12BIT_OFFSET_P): New macro.
22509 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
22510 (MULTILIB_DIRNAMES): Likewise.
22511 2013-03-20 Richard Biener <rguenther@suse.de>
22512
22513 PR tree-optimization/56661
22514 * tree-ssa-sccvn.c (visit_use): Only value-number calls if
22515 the result does not have to be distinct.
22516
22517 2013-03-20 Richard Biener <rguenther@suse.de>
22518
22519 * tree-inline.c (copy_tree_body_r): Sync MEM_REF code with
22520 remap_gimple_op_r.
22521
22522 2013-03-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
22523 Steven Bosscher <steven@gcc.gnu.org>
22524
22525 PR rtl-optimization/56605
22526 * loop-iv.c (implies_p): Handle equal RTXs and subregs.
22527
22528 2013-03-20 Uros Bizjak <ubizjak@gmail.com>
22529
22530 PR bootstrap/56656
22531 * config/i386/i386.md (*movdi_internal): Handle broken assemblers
22532 that require movd instead of movq.
22533
22534 2013-03-20 Richard Biener <rguenther@suse.de>
22535
22536 * tree-ssa-structalias.c (struct variable_info): Add pointer
22537 to the first field of an aggregate with sub-vars. Make
22538 this and the pointer to the next subfield its ID.
22539 (vi_next): New function.
22540 (nothing_id, anything_id, readonly_id, escaped_id, nonlocal_id,
22541 storedanything_id, integer_id): Increment by one.
22542 (new_var_info, get_call_vi, lookup_call_clobber_vi,
22543 get_call_clobber_vi): Adjust.
22544 (solution_set_expand): Simplify and speedup.
22545 (solution_set_add): Inline into ...
22546 (set_union_with_increment): ... this. Adjust accordingly.
22547 (do_sd_constraint): Likewise.
22548 (do_ds_constraint): Likewise.
22549 (do_complex_constraint): Simplify.
22550 (build_pred_graph): Adjust.
22551 (solve_graph): Likewise. Simplify and speedup.
22552 (get_constraint_for_ssa_var, get_constraint_for_ptr_offset,
22553 get_constraint_for_component_ref, get_constraint_for_1,
22554 first_vi_for_offset, first_or_preceding_vi_for_offset,
22555 create_function_info_for, create_variable_info_for_1,
22556 create_variable_info_for, intra_create_variable_infos): Adjust.
22557 (init_base_vars): Push NULL for ID zero.
22558 (compute_points_to_sets): Adjust.
22559
22560 2013-03-20 Richard Biener <rguenther@suse.de>
22561
22562 * cfgloop.c (verify_loop_structure): Streamline and avoid
22563 ICEing on corrupt loop tree.
22564 * graph.c (draw_cfg_nodes_for_loop): Avoid ICEing on corrupt
22565 loop tree.
22566
22567 2013-03-20 Richard Biener <rguenther@suse.de>
22568
22569 * tree-vect-loop-manip.c (slpeel_can_duplicate_loop_p): Do not
22570 check whether an SSA update is needed.
22571
22572 2013-03-20 Richard Sandiford <rdsandiford@googlemail.com>
22573
22574 * config/mips/constraints.md (T): Rename to...
22575 (Yf): ...this.
22576 (U): Rename to...
22577 (Yd): ...this.
22578 * config/mips/mips.md (*movdi_64bit, *movdi_64bit_mips16)
22579 (*mov<mode>_internal, *mov<mode>_mips16): Update accordingly.
22580
22581 2013-03-19 Ian Bolton <ian.bolton@arm.com>
22582
22583 * config/aarch64/aarch64.md (*sub<mode>3_carryin): New pattern.
22584 (*subsi3_carryin_uxtw): Likewise.
22585
22586 2013-03-19 Ian Bolton <ian.bolton@arm.com>
22587
22588 * config/aarch64/aarch64.md (*ror<mode>3_insn): New pattern.
22589 (*rorsi3_insn_uxtw): Likewise.
22590
22591 2013-03-19 Ian Bolton <ian.bolton@arm.com>
22592
22593 * config/aarch64/aarch64.md (*extr<mode>5_insn): New pattern.
22594 (*extrsi5_insn_uxtw): Likewise.
22595
22596 2013-03-19 Richard Biener <rguenther@suse.de>
22597
22598 PR tree-optimization/56273
22599 * passes.c (init_optimization_passes): Move second VRP after DOM.
22600
22601 2013-03-19 Uros Bizjak <ubizjak@gmail.com>
22602
22603 * config/i386/i386.md (*movti_internal): Merge from
22604 *movti_internal_rex64 and *movti_internal_sse. Use x64 isa attribute.
22605 (*movdi_internal): Merge with *movdi_internal_rex64. Use x64 and
22606 nox64 isa attributes.
22607
22608 2013-03-18 Richard Biener <rguenther@suse.de>
22609
22610 * tree-ssa-structalias.c (find): Use gcc_checking_assert.
22611 (unite): Likewise.
22612 (merge_node_constraints): Likewise.
22613 (build_succ_graph): Likewise.
22614 (valid_graph_edge): Inline into single caller.
22615 (unify_nodes): Likewise. Use bitmap_set_bit return value
22616 and cache varinfo.
22617 (scc_visit): Fix formatting and variable use.
22618 (do_sd_constraint): Use gcc_checking_assert.
22619 (do_ds_constraint): Likewise.
22620 (do_complex_constraint): Likewise.
22621 (condense_visit): Likewise. Cleanup.
22622 (dump_pred_graph): New function.
22623 (perform_var_substitution): Dump the pred-graph before
22624 variable substitution.
22625 (find_equivalent_node): Use gcc_checking_assert.
22626 (rewrite_constraints): Guard checking loop with ENABLE_CHECKING.
22627
22628 2013-03-18 Richard Biener <rguenther@suse.de>
22629
22630 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
22631 Remove cond_expr_stmt_list argument and do not gimplify the
22632 built expression.
22633 (vect_loop_versioning): Adjust.
22634 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
22635 Cleanup to use less temporaries.
22636 (vect_create_data_ref_ptr): Cleanup.
22637
22638 2013-03-18 Jakub Jelinek <jakub@redhat.com>
22639
22640 PR tree-optimization/56635
22641 * fold-const.c (operand_equal_p): For MEM_REF and TARGET_MEM_REF,
22642 require types_compatible_p types.
22643
22644 2013-03-18 Nick Clifton <nickc@redhat.com>
22645
22646 * config/stormy16/stormy16.c (xstormy16_expand_prologue): Remove
22647 spurious backslash.
22648
22649 * config/mn10300/mn10300.c (mn10300_get_live_callee_saved_regs):
22650 Add missing line to comment describing function.
22651
22652 2013-03-18 Richard Biener <rguenther@suse.de>
22653
22654 PR tree-optimization/56210
22655 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
22656 Handle string / character search functions.
22657 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
22658
22659 2013-03-18 Richard Biener <rguenther@suse.de>
22660
22661 PR middle-end/56483
22662 * cfgexpand.c (expand_gimple_cond): Inline gimple_cond_single_var_p
22663 and implement properly.
22664 * gimple.h (gimple_cond_single_var_p): Remove.
22665
22666 2013-03-18 Richard Biener <rguenther@suse.de>
22667
22668 * tree-data-ref.h (find_data_references_in_loop): Declare.
22669 * tree-data-ref.c (get_references_in_stmt): Use a stack
22670 vector pre-allocated in the callers.
22671 (find_data_references_in_stmt): Adjust.
22672 (graphite_find_data_references_in_stmt): Likewise.
22673 (create_rdg_vertices): Likewise.
22674 (find_data_references_in_loop): Export.
22675 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
22676 Compute dependences here...
22677 (vect_analyze_data_refs): ...not here. When we encounter
22678 a non-vectorizable data reference in basic-block vectorization
22679 truncate the data reference vector. Do not bother to
22680 fixup data-dependence information for gather loads.
22681 * tree-vect-slp.c (vect_slp_analyze_bb_1): Check the number
22682 of data references, as reported.
22683
22684 2013-03-18 Richard Biener <rguenther@suse.de>
22685
22686 PR tree-optimization/3713
22687 * tree-ssa-sccvn.c (visit_copy): Simplify. Always propagate
22688 has_constants and expr.
22689 (stmt_has_constants): Properly valueize SSA names when deciding
22690 whether the stmt has constants.
22691
22692 2013-03-18 Richard Biener <rguenther@suse.de>
22693
22694 * tree-ssa-loop-manip.c (find_uses_to_rename): Do not scan the
22695 whole function when there is nothing to do.
22696 * tree-ssa-loop.c (pass_vectorize): Remove TODO_update_ssa.
22697 * tree-vectorizer.c (vectorize_loops): Update virtual and
22698 loop-closed SSA once.
22699 * tree-vect-loop.c (vect_transform_loop): Do not update SSA here.
22700
22701 2013-03-18 Richard Biener <rguenther@suse.de>
22702
22703 PR middle-end/56113
22704 * domwalk.c (bb_postorder): New global static.
22705 (cmp_bb_postorder): New function.
22706 (walk_dominator_tree): Replace scheme imposing an order for
22707 visiting dominator sons by one sorting them at the time they
22708 are pushed on the stack.
22709
22710 2013-03-18 Richard Biener <rguenther@suse.de>
22711
22712 PR tree-optimization/39326
22713 * tree-ssa-loop-im.c (refs_independent_p): Exploit symmetry.
22714 (struct mem_ref): Replace mem member with ao_ref typed member.
22715 (MEM_ANALYZABLE): Adjust.
22716 (memref_eq): Likewise.
22717 (mem_ref_alloc): Likewise.
22718 (gather_mem_refs_stmt): Likewise.
22719 (mem_refs_may_alias_p): Use the ao_ref to query the alias oracle.
22720 (execute_sm_if_changed_flag_set): Adjust.
22721 (execute_sm): Likewise.
22722 (ref_always_accessed_p): Likewise.
22723 (refs_independent_p): Likewise.
22724 (can_sm_ref_p): Likewise.
22725
22726 2013-03-18 Jakub Jelinek <jakub@redhat.com>
22727
22728 PR c/56566
22729 * tree.c (tree_int_cst_min_precision): For integer_zerop (value)
22730 return 1 even for !unsignedp.
22731
22732 2013-03-17 Uros Bizjak <ubizjak@gmail.com>
22733
22734 * config/i386/i386.md (isa): Add x64 and nox64.
22735 (enabled): Define x64 for TARGET_64BIT and nox64 for !TARGET_64BIT.
22736 (*pushtf): Enable *roF alternative for x64 isa only.
22737 (*pushxf): Merge with *pushxf_nointeger. Use Yx*r constraint. Set
22738 mode attribute of integer alternatives to DImode for TARGET_64BIT.
22739 (*pushdf): Merge with *pushdf_rex64. Use x64 and nox64 isa attributes.
22740 (*movtf_internal): Merge from *movtf_internal_rex64 and
22741 *movtf_internal_sse. Use x64 and nox64 isa attributes.
22742 (*movxf_internal): Merge with *movxf_internal_rex64. Use x64 and
22743 nox64 isa attributes.
22744 (*movdf_internal): Merge with *movdf_internal_rex64. Use x64 and
22745 nox64 isa attributes.
22746 * config/i386/constraints.md (Yd): Do not set for TARGET_64BIT.
22747
22748 2013-03-17 Uros Bizjak <ubizjak@gmail.com>
22749
22750 * config/alpha/alpha.c (TARGET_LRA_P): New define.
22751
22752 2013-03-17 Jakub Jelinek <jakub@redhat.com>
22753
22754 PR target/56640
22755 * config/arm/arm.h (REG_CLASS_NAMES): Add "SFP_REG" and "AFP_REG"
22756 class names. Remove trailing comma after "ALL_REGS".
22757
22758 2013-03-16 Jan Hubicka <jh@suse.cz>
22759
22760 * cgraph.h (cgraph_get_create_real_symbol_node): Declare.
22761 * cgraph.c (cgraph_get_create_real_symbol_node): New function.
22762 * cgrpahbuild.c: Use cgraph_get_create_real_symbol_node instead
22763 of cgraph_get_create_node.
22764 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
22765
22766 2013-03-16 Jason Merrill <jason@redhat.com>
22767
22768 PR debug/49090
22769 * dwarf2out.c (gen_generic_params_dies): Indicate default arguments
22770 with DW_AT_default_value.
22771
22772 2013-03-16 Jakub Jelinek <jakub@redhat.com>
22773
22774 * BASE-VER: Set to 4.9.0.
22775
22776 2013-03-14 Andi Kleen <ak@linux.intel.com>
22777
22778 PR target/56619
22779 * doc/extend.texi: Document __ATOMIC_HLE_ACQUIRE,
22780 __ATOMIC_HLE_RELEASE. Document __builtin_ia32 TSX intrincs.
22781 Document _x* TSX intrinsics.
22782
22783 2013-03-14 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
22784 David Holsgrove <david.holsgrove@xilinx.com>
22785
22786 * configure.ac: Add MicroBlaze TLS support detection.
22787 * configure: Regenerate.
22788 * config/microblaze/microblaze-protos.h
22789 (microblaze_cannot_force_const_mem, microblaze_tls_referenced_p,
22790 symbol_mentioned_p, label_mentioned_p): Add prototypes.
22791 * config/microblaze/microblaze.c (microblaze_address_type): Add
22792 ADDRESS_TLS and tls_reloc address types.
22793 (microblaze_address_info): Add tls_reloc.
22794 (TARGET_HAVE_TLS): Define.
22795 (get_tls_get_addr, microblaze_tls_symbol_p, microblaze_tls_operand_p_1,
22796 microblaze_tls_referenced_p, microblaze_cannot_force_const_mem,
22797 symbol_mentioned_p, label_mentioned_p, tls_mentioned_p,
22798 load_tls_operand, microblaze_call_tls_get_addr,
22799 microblaze_legitimize_tls_address): New functions.
22800 (microblaze_classify_unspec): Handle UNSPEC_TLS.
22801 (get_base_reg): Use microblaze_tls_symbol_p.
22802 (microblaze_classify_address): Handle TLS.
22803 (microblaze_legitimate_pic_operand): Use symbol_mentioned_p,
22804 label_mentioned_p and microblaze_tls_referenced_p.
22805 (microblaze_legitimize_address): Handle TLS.
22806 (microblaze_address_insns): Handle ADDRESS_TLS.
22807 (pic_address_needs_scratch): Handle TLS.
22808 (print_operand_address): Handle TLS.
22809 (microblaze_expand_prologue): Check TLS_NEEDS_GOT.
22810 (microblaze_expand_move): Handle TLS.
22811 (microblaze_legitimate_constant_p): Check
22812 microblaze_cannot_force_const_mem and microblaze_tls_symbol_p.
22813 (TARGET_CANNOT_FORCE_CONST_MEM): Define.
22814 * config/microblaze/microblaze.h (TLS_NEEDS_GOT): Define
22815 (PIC_OFFSET_TABLE_REGNUM): Set.
22816 * config/microblaze/linux.h (TLS_NEEDS_GOT): Define.
22817 * config/microblaze/microblaze.md (UNSPEC_TLS): Define.
22818 (addsi3, movsi_internal2, movdf_internal): Update constraints
22819 * config/microblaze/predicates.md (arith_plus_operand): Define
22820 (move_operand): Redefine as move_src_operand,
22821 check microblaze_tls_referenced_p.
22822
22823 2013-03-14 Ian Bolton <ian.bolton@arm.com>
22824
22825 * config/aarch64/aarch64.md: (*and<mode>3nr_compare0): Use CC_NZ.
22826 (*and_<SHIFT:optab><mode>3nr_compare0): Likewise.
22827
22828 2013-03-14 Ian Bolton <ian.bolton@arm.com>
22829
22830 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return correct
22831 CC mode for AND.
22832
22833 2013-03-14 Jakub Jelinek <jakub@redhat.com>
22834
22835 PR tree-optimization/53265
22836 * common.opt (Waggressive-loop-optimizations): New option.
22837 * tree-ssa-loop-niter.c: Include tree-pass.h.
22838 (do_warn_aggressive_loop_optimizations): New function.
22839 (record_estimate): Call it. Don't add !is_exit bounds to loop->bounds
22840 if number_of_latch_executions returned constant.
22841 (estimate_numbers_of_iterations_loop): Call number_of_latch_executions
22842 early. If number_of_latch_executions returned constant, set
22843 nb_iterations_upper_bound back to it.
22844 * cfgloop.h (struct loop): Add warned_aggressive_loop_optimizations
22845 field.
22846 * Makefile.in (tree-ssa-loop-niter.o): Depend on $(TREE_PASS_H).
22847 * doc/invoke.texi (-Wno-aggressive-loop-optimizations): Document.
22848
22849 * config/aarch64/t-aarch64-linux (MULTARCH_DIRNAME): Remove.
22850 (MULTILIB_OSDIRNAMES): Set.
22851 * genmultilib: If defaultosdirname doesn't start with :: , set
22852 defaultosdirname2 instead, clear it and emit two . multilib_raw
22853 entries instead of just one.
22854
22855 2013-03-14 Kaz Kojima <kkojima@gcc.gnu.org>
22856
22857 * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_USERMODE.
22858 (SUBTARGET_OVERRIDE_OPTIONS): Set TARGET_USERMODE as default.
22859 * config/sh/netbsd-elf.h (TARGET_DEFAULT): Remove MASK_USERMODE.
22860 (SUBTARGET_OVERRIDE_OPTIONS): New.
22861
22862 2013-03-13 Oleg Endo <olegendo@gcc.gnu.org>
22863
22864 PR target/49880
22865 * config/sh/sh.opt (FPU_SINGLE_ONLY): New mask.
22866 (musermode): Convert to Var(TARGET_USERMODE).
22867 * config/sh/sh.h (SELECT_SH2A_SINGLE_ONLY, SELECT_SH4_SINGLE_ONLY,
22868 MASK_ARCH): Add MASK_FPU_SINGLE_ONLY.
22869 * config/sh/sh.c (sh_option_override): Use
22870 TARGET_FPU_DOUBLE || TARGET_FPU_SINGLE_ONLY for call-fp case.
22871 * config/sh/sh.md (udivsi3_i1, divsi3_i1): Remove ! TARGET_SH4
22872 condition.
22873 (udivsi3_i4, divsi3_i4): Use TARGET_FPU_DOUBLE condition instead of
22874 TARGET_SH4.
22875 (udivsi3_i4_single, divsi3_i4_single): Use
22876 TARGET_FPU_SINGLE_ONLY || TARGET_FPU_DOUBLE instead of TARGET_HARD_SH4.
22877
22878 2013-03-13 Dave Korn <dave.korn.cygwin@....>
22879
22880 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): Make shared libgcc the
22881 default setting.
22882
22883 2013-03-13 Richard Biener <rguenther@suse.de>
22884
22885 PR tree-optimization/56608
22886 * tree-vect-slp.c (vect_schedule_slp): Do not remove scalar
22887 calls when vectorizing basic-blocks.
22888
22889 2013-03-13 Jakub Jelinek <jakub@redhat.com>
22890
22891 PR plugins/45078
22892 * config.gcc: On arm, mips, sh and sparc add vxworks-dummy.h to
22893 tm_file.
22894
22895 2013-03-12 Jakub Jelinek <jakub@redhat.com>
22896
22897 * doc/invoke.texi (-Waddr-space-convert): Move into the table earlier.
22898
22899 2013-03-11 Jan Hubicka <jh@suse.cz>
22900
22901 PR lto/56557
22902 * lto-streamer-out.c (output_symbol_p): Skip references from
22903 constructors of external variables.
22904
22905 2013-03-11 Jan Hubicka <jh@suse.cz>
22906
22907 PR middle-end/56571
22908 * valtrack.c (cleanup_auto_inc_dec): Unshare clobbers originating
22909 from pseudos.
22910 * emit-rtl.c (verify_rtx_sharing): Likewise.
22911 (copy_insn_1): Likewise.
22912 * rtl.c (copy_rtx): Likewise.
22913
22914 2013-03-11 Georg-Johann Lay <avr@gjlay.de>
22915
22916 PR target/56591
22917 * config/avr/avr.c (avr_print_operand): Add space after '%c' in
22918 output_operand_lossage message.
22919
22920 2013-03-11 Richard Earnshaw <rearnsha@arm.com>
22921
22922 PR target/56470
22923 * arm.c (shift_op): Validate RTL pattern on the fly.
22924 (arm_print_operand, case 'S'): Don't use shift_operator to validate
22925 the RTL.
22926
22927 2013-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22928
22929 PR target/56347
22930 * config/pa/pa.md (call_value): Check for calls to powf and direct to
22931 new call patterns that clobber %fr12.
22932 (call_val_powf, call_val_powf_pic, call_val_powf_64bit): New insn,
22933 split and postreload patterns.
22934 * config/pa/pa.c (pa_conditional_register_usage): Revert marking
22935 registers %fr12 and %fr12R as call used.
22936
22937 2013-03-09 Steven Bosscher <steven@gcc.gnu.org>
22938
22939 * dse.c (delete_dead_store_insn): Respect TDF_DETAILS.
22940 (canon_address, record_store, replace_read, check_mem_read_rtx,
22941 scan_insn, dse_step1, dse_step2_init, dse_step2_spill,
22942 dse_step4, dse_step5_nospill, dse_step5_spill, dse_step6,
22943 rest_of_handle_dse): Likewise.
22944
22945 2013-03-09 Richard Sandiford <rdsandiford@googlemail.com>
22946
22947 PR middle-end/56524
22948 * tree.h (tree_optimization_option): Rename target_optabs to optabs.
22949 Add base_optabs.
22950 (TREE_OPTIMIZATION_OPTABS): Update after previous field change.
22951 (TREE_OPTIMIZATION_BASE_OPTABS): New macro.
22952 (save_optabs_if_changed): Replace with...
22953 (init_tree_optimization_optabs): ...this.
22954 * optabs.c (save_optabs_if_changed): Rename to...
22955 (init_tree_optimization_optabs): ...this. Take the optimization node
22956 as argument. Do nothing if the base optabs are already correct.
22957 Reuse the existing TREE_OPTIMIZATION_OPTABS memory if we need
22958 to recompute optabs.
22959 * function.h (function): Remove optabs field.
22960 * function.c (invoke_set_current_function_hook): Call
22961 init_tree_optimization_optabs. Use the result to initialize
22962 this_fn_optabs.
22963
22964 2013-02-27 Aldy Hernandez <aldyh@redhat.com>
22965
22966 * trans-mem.c (expand_transaction): Do not set PR_INSTRUMENTEDCODE
22967 if GTMA_HAS_NO_INSTRUMENTATION.
22968 (generate_tm_state): Keep GTMA_HAS_NO_INSTRUMENTATION bit.
22969 (ipa_tm_transform_transaction): Set GTMA_HAS_NO_INSTRUMENTATION.
22970 * gimple.h (GTMA_HAS_NO_INSTRUMENTATION): Define.
22971 * gimple-pretty-print.c (dump_gimple_transaction): Handle
22972 GTMA_HAS_NO_INSTRUMENTATION.
22973
22974 2013-03-08 Jakub Jelinek <jakub@redhat.com>
22975
22976 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Don't link against
22977 libasan_preinit.o.
22978
22979 2013-03-08 Marek Polacek <polacek@redhat.com>
22980 Jakub Jelinek <jakub@redhat.com>
22981
22982 PR tree-optimization/56478
22983 * predict.c (is_comparison_with_loop_invariant_p): Change the
22984 type of loop_step to tree.
22985 (predict_loops): Adjust.
22986 (predict_iv_comparison): Perform the computations on double_ints.
22987
22988 2013-03-08 Richard Biener <rguenther@suse.de>
22989
22990 PR tree-optimization/56570
22991 * tree-cfg.c (verify_expr_location_1): Verify locations for
22992 DECL_DEBUG_EXPR.
22993 * tree-sra.c (create_access_replacement): Strip locations
22994 from DECL_DEBUG_EXPRs.
22995
22996 2013-03-08 Richard Biener <rguenther@suse.de>
22997
22998 * tree-inline.c (expand_call_inline): Do not associate
22999 a BLOCK with the location in BLOCK_SOURCE_LOCATION.
23000 * tree-cfg.c (verify_location): Verify BLOCK_SOURCE_LOCATION.
23001
23002 2013-03-08 Richard Biener <rguenther@suse.de>
23003
23004 * tree-ssa-ter.c (is_replaceable_p): Do not TER across location
23005 or block changes with -Og. Fix for location / block encoding
23006 changes and PHI arguments with locations.
23007
23008 2013-03-07 Steven Bosscher <steven@gcc.gnu.org>
23009
23010 * bitmap.c (struct bitmap_descriptor_d): Use unsigned HOST_WIDEST_INT
23011 for all counters.
23012 (struct output_info): Likewise.
23013 (register_overhead): Remove bad gcc_assert.
23014 (bitmap_find_bit): If there is only a single bitmap element, do not
23015 count a miss as a search.
23016 (print_statistics): Update for counter type changes.
23017 (dump_bitmap_statistics): Likewise. Print headers such that they
23018 are properly lined up with the printed counters.
23019
23020 2013-03-07 Jakub Jelinek <jakub@redhat.com>
23021
23022 PR tree-optimization/56559
23023 * tree-ssa-reassoc.c (zero_one_operation): When looking at rhs2,
23024 check that it has only a single use.
23025
23026 2013-03-07 Richard Biener <rguenther@suse.de>
23027
23028 * doc/invoke.texi (fwhole-program): Discourage use in combination
23029 with -flto.
23030
23031 2013-03-06 Jakub Jelinek <jakub@redhat.com>
23032
23033 * config/arm/t-arm (TM_H, OPTIONS_H_EXTRA): Add arm-cores.def.
23034
23035 PR tree-optimization/56539
23036 * tree-tailcall.c (adjust_return_value_with_ops): Use GSI_SAME_STMT
23037 instead of GSI_CONTINUE_LINKING as last argument to
23038 force_gimple_operand_gsi. Adjust function comment.
23039
23040 * config/aarch64/t-aarch64 (TM_H, OPTIONS_H_EXTRA): Add
23041 aarch64-cores.def.
23042
23043 PR middle-end/56548
23044 * expr.c (expand_cond_expr_using_cmove): When expanding cmove in
23045 promoted mode, convert the result back to the original mode.
23046
23047 2013-03-06 Richard Biener <rguenther@suse.de>
23048
23049 PR middle-end/56294
23050 * tree-into-ssa.c (insert_phi_nodes_for): Add dumping.
23051 (insert_updated_phi_nodes_compare_uids): New function.
23052 (update_ssa): Sort symbols_to_rename after UID before
23053 traversing it to insert PHI nodes.
23054
23055 2013-03-06 Richard Biener <rguenther@suse.de>
23056
23057 PR middle-end/50494
23058 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p):
23059 Do not adjust alignment of DECL_IN_CONSTANT_POOL decls.
23060
23061 Revert
23062 2013-02-13 Richard Biener <rguenther@suse.de>
23063
23064 PR lto/50494
23065 * varasm.c (output_constant_def_1): Get the decl representing
23066 the constant as argument.
23067 (output_constant_def): Wrap output_constant_def_1.
23068 (make_decl_rtl): Use output_constant_def_1 with the decl
23069 representing the constant.
23070 (build_constant_desc): Optionally re-use a decl already
23071 representing the constant.
23072 (tree_output_constant_def): Adjust.
23073
23074 2013-03-06 Joey Ye <joey.ye@arm.com>
23075
23076 PR lto/50293
23077 * gcc.c (convert_white_space): New function.
23078 (main): Handles white space in function name.
23079
23080 2013-03-06 Oleg Endo <olegendo@gcc.gnu.org>
23081
23082 PR target/56529
23083 * config/sh/sh.c (sh_option_override): Check for TARGET_DYNSHIFT
23084 instead of TARGET_SH2 for call-table case. Do not set sh_div_strategy
23085 to SH_DIV_CALL_TABLE for TARGET_SH2.
23086 * config.gcc (sh_multilibs): Add m2 and m2a to sh*-*-linux* multilib
23087 list.
23088 * doc/invoke.texi (SH options): Document mdiv= call-div1, call-fp,
23089 call-table options.
23090
23091 2013-03-05 Sterling Augustine <saugustine@google.com>
23092 Cary Coutant <ccoutant@google.com>
23093
23094 PR debug/55364
23095 * dwarf2out.c (resolve_addr): Don't call
23096 remove_loc_list_addr_table_entries a second time for the same
23097 expression.
23098
23099 2013-03-05 Jakub Jelinek <jakub@redhat.com>
23100
23101 PR debug/56510
23102 * cfgexpand.c (expand_debug_parm_decl): Call copy_rtx on incoming.
23103 (avoid_complex_debug_insns): New function.
23104 (expand_debug_locations): Call it.
23105
23106 PR rtl-optimization/56484
23107 * ifcvt.c (noce_process_if_block): If else_bb is NULL, avoid extending
23108 lifetimes of hard registers on small register class machines.
23109
23110 2013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
23111
23112 * config/microblaze/microblaze-protos.h: Rename
23113 microblaze_is_interrupt_handler to microblaze_is_interrupt_variant.
23114 * config/microblaze/microblaze.c (microblaze_attribute_table): Add
23115 fast_interrupt.
23116 (microblaze_fast_interrupt_function_p): New function.
23117 (microblaze_is_interrupt_handler): Rename to
23118 microblaze_is_interrupt_variant and add fast_interrupt check.
23119 (microblaze_must_save_register): Use microblaze_is_interrupt_variant.
23120 (save_restore_insns): Likewise.
23121 (compute_frame_size): Likewise.
23122 (microblaze_function_prologue): Add FAST_INTERRUPT_NAME.
23123 (microblaze_globalize_label): Likewise.
23124 * config/microblaze/microblaze.h: Define FAST_INTERRUPT_NAME.
23125 * config/microblaze/microblaze.md: Use wrapper
23126 microblaze_is_interrupt_variant.
23127
23128 2013-03-05 Kai Tietz <ktietz@redhat.com>
23129
23130 * sdbout.c (sdbout_one_type): Switch to current function's section
23131 supporting cold/hot.
23132
23133 2013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
23134
23135 * doc/invoke.texi (MicroBlaze): Add -mbig-endian, -mlittle-endian,
23136 -mxl-reorder.
23137
23138 2013-03-05 Jakub Jelinek <jakub@redhat.com>
23139
23140 PR middle-end/56461
23141 * ggc-common.c (gt_pch_save): For ENABLE_VALGRIND_CHECKING,
23142 if VALGRIND_GET_VBITS is defined, temporarily make object
23143 memory all defined, and restore previous valgrind addressability
23144 and definability afterwards. Free this_object at the end.
23145
23146 PR middle-end/56461
23147 * lra.c (lra): Call lra_clear_live_ranges if live_p,
23148 right before calling lra_create_live_ranges, also call it
23149 when clearing live_p. Only call lra_clear_live_ranges
23150 at the end if live_p.
23151
23152 PR middle-end/56461
23153 * sched-deps.c (delete_dep_node): Free DEP_REPLACE.
23154
23155 2013-03-05 Richard Biener <rguenther@suse.de>
23156
23157 PR tree-optimization/56521
23158 * tree-ssa-sccvn.c (set_value_id_for_result): Always initialize
23159 value-id.
23160
23161 2013-03-05 Steven Bosscher <steven@gcc.gnu.org>
23162
23163 PR c++/55135
23164 * except.h (remove_unreachable_eh_regions): New prototype.
23165 * except.c (remove_eh_handler_splicer): New function, split out
23166 of remove_eh_handler.
23167 (remove_eh_handler): Use remove_eh_handler_splicer. Add comment
23168 warning about running it on many EH regions one at a time.
23169 (remove_unreachable_eh_regions_worker): New function, walk the
23170 EH tree in depth-first order and remove non-marked regions.
23171 (remove_unreachable_eh_regions): New function.
23172 * tree-eh.c (mark_reachable_handlers): New function, split out
23173 from remove_unreachable_handlers.
23174 (remove_unreachable_handlers): Use mark_reachable_handlers and
23175 remove_unreachable_eh_regions.
23176 (remove_unreachable_handlers_no_lp): Use mark_reachable_handlers
23177 and remove_unreachable_eh_regions.
23178
23179 2013-03-05 Richard Biener <rguenther@suse.de>
23180
23181 PR middle-end/56525
23182 * loop-init.c (fix_loop_structure): Remove loops in two stages,
23183 not freeing them until the end.
23184
23185 2013-03-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
23186
23187 * config/s390/s390.h: Define DWARF2_ASM_LINE_DEBUG_INFO.
23188
23189 2013-03-05 Richard Biener <rguenther@suse.de>
23190
23191 PR tree-optimization/56270
23192 * tree-vect-slp.c (vect_schedule_slp): Clear vectorized stmts
23193 of loads after scheduling an SLP instance.
23194
23195 2013-03-05 Jakub Jelinek <jakub@redhat.com>
23196
23197 * Makefile.in (dg_target_exps): Add aarch64.exp, epiphany.exp and
23198 tic6x.exp.
23199 (check_gcc_parallelize): Run guality.exp as a separate job from
23200 vect.exp with unsorted.exp and $(dg_target_exps) separately from
23201 struct-layout-1.exp with stackalign.exp.
23202
23203 * alias.c (init_alias_analysis): Clear reg_known_equiv_p bitmap.
23204
23205 PR middle-end/56461
23206 * tree-vect-slp.c (vect_supported_load_permutation_p): Free
23207 load_index sbitmap even if some bit in it isn't set.
23208
23209 PR middle-end/56461
23210 * tree-ssa-loop-niter.c (bb_queue): Remove typedef.
23211 (discover_iteration_bound_by_body_walk): Change queues to
23212 vec<vec<basic_block> > and queue to vec<basic_block>. Fix up
23213 spelling in comment. Call safe_push on queues[bound_index] directly.
23214 Release queues[queue_index] in every iteration unconditionally.
23215 Release bounds vector.
23216
23217 PR middle-end/56461
23218 * tree-vect-stmts.c (free_stmt_vec_info_vec): Call
23219 free_stmt_vec_info on any left-over stmt_vec_info in the vector.
23220 * tree-vect-loop.c (vect_create_epilog_for_reduction): Release
23221 inner_phis vector.
23222
23223 2013-03-05 Richard Biener <rguenther@suse.de>
23224
23225 PR lto/56515
23226 * tree-inline.c (remap_blocks_to_null): New function.
23227 (expand_call_inline): When expanding a call stmt without
23228 an associated block inline remap all callee blocks to NULL.
23229
23230 2013-03-05 Jakub Jelinek <jakub@redhat.com>
23231
23232 PR rtl-optimization/56494
23233 * simplify-rtx.c (simplify_truncation): If C is narrower than A,
23234 optimize (truncate:A (subreg:B (truncate:C X) 0)) into
23235 (subreg:A (truncate:C X) 0) instead of (truncate:A X).
23236
23237 PR middle-end/56461
23238 * sel-sched-ir.c (free_sched_pools): Release
23239 succs_info_pool.stack[succs_info_pool.max_top] vectors too
23240 if succs_info_pool.max_top isn't -1.
23241
23242 PR bootstrap/56509
23243 * opts.c (opts_obstack, opts_concat): Moved to...
23244 * opts-common.c (opts_obstack, opts_concat): ... here.
23245
23246 2013-03-04 Jakub Jelinek <jakub@redhat.com>
23247
23248 PR middle-end/56461
23249 * diagnostic.c (diagnostic_append_note): Save and restore old prefix.
23250
23251 2013-03-04 Martin Jambor <mjambor@suse.cz>
23252
23253 * tree-dfa.c (get_or_create_ssa_default_def): Use parameter fn in
23254 all appropriate places.
23255
23256 2013-01-04 Eric Botcazou <ebotcazou@adacore.com>
23257
23258 PR tree-optimization/56424
23259 * ipa-split.c (split_function): Do not set the RSO flag if result is
23260 not by reference and its type is a register type.
23261
23262 2013-03-04 David Holsgrove <david.holsgrove@xilinx.com>
23263
23264 * config/microblaze/microblaze.c (microblaze_valid_pic_const): New
23265 (microblaze_legitimate_pic_operand): Likewise
23266 * config/microblaze/microblaze.h (LEGITIMATE_PIC_OPERAND_P): calls
23267 new function microblaze_legitimate_pic_operand
23268 * config/microblaze/microblaze-protos.h
23269 (microblaze_legitimate_pic_operand): Declare.
23270
23271 2013-03-04 Edgar E. Iglesias <edgar.iglesias@gmail.com>
23272
23273 * config/microblaze/predicates.md (call_insn_simple_operand):
23274 New predicate for supported rtx code types.
23275 * config/microblaze/microblaze.md (call_internal1): Use
23276 call_insn_simple_operand predicate.
23277
23278 2013-03-04 Jakub Jelinek <jakub@redhat.com>
23279
23280 PR middle-end/56461
23281 * tree-loop-distribution.c (ldist_gen): Call partition_free after each
23282 partitions.ordered_remove.
23283
23284 PR middle-end/56461
23285 * tree-vect-stmts.c (vectorizable_conversion): Don't call
23286 vec_oprnds0.create (1) for modifier == NONE.
23287
23288 PR middle-end/56461
23289 * tree-vect-stmts.c (vectorizable_shift): Don't call create methods
23290 on vec_oprnds0 or vec_oprnds1 before loop, only call it on
23291 vec_oprnds1 right before pushing anything to it for
23292 scalar_shift_arg.
23293
23294 PR middle-end/56461
23295 * tree-vect-loop.c (destroy_loop_vec_info): For !clean_stmts, just
23296 set nbbs to 0 instead of having separate code path.
23297 (vect_analyze_loop_form): Call destroy_loop_vec_info with true
23298 instead of false as last argument if returning NULL.
23299
23300 2013-03-03 Sandra Loosemore <sandra@codesourcery.com>
23301
23302 * target.def (TARGET_OPTION_VALID_ATTRIBUTE_P): Update comments;
23303 the attribute is now called "target" instead of "option".
23304 (TARGET_OPTION_PRAGMA_PARSE): Likewise, for the pragma.
23305 * doc/tm.texi.in (Target Attributes): Likewise document the correct
23306 attribute/pragma name for TARGET_OPTION_VALID_P and
23307 TARGET_OPTION_PRAGMA_PARSE. Also copy-edit and correct markup.
23308 * doc/tm.texi: Regenerated.
23309
23310 2013-03-02 David Holsgrove <david.holsgrove@xilinx.com>
23311
23312 * config/microblaze/microblaze.c:
23313 Check mcpu, pcmp requirement and set TARGET_REORDER to 0 if not met.
23314 * config/microblaze/microblaze.h: Add -mxl-reorder to
23315 DRIVER_SELF_SPECS.
23316 * config/microblaze/microblaze.md: New bswapsi2 and bswaphi2.
23317 instructions emitted if TARGET_REORDER.
23318 * config/microblaze/microblaze.opt: New option -mxl-reorder set to 1
23319 or 0 for -m/-mno case, but initialises as 2 to detect default use case
23320 separately.
23321
23322 2013-03-01 Xinliang David Li <davidxl@google.com>
23323
23324 * tree-ssa-uninit.c (compute_control_dep_chain): Limit post-dom
23325 walk length.
23326
23327 2013-03-01 Jakub Jelinek <jakub@redhat.com>
23328
23329 PR middle-end/56461
23330 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Release path
23331 vector even when returning true. Fix up function comment formatting.
23332
23333 PR middle-end/56461
23334 * ira-build.c (ira_loop_nodes_count): New variable.
23335 (create_loop_tree_nodes): Initialize it.
23336 (finish_loop_tree_nodes): Use it instead of looking at current_loops.
23337
23338 PR middle-end/56461
23339 * tree-vect-data-refs.c (vect_permute_store_chain): Avoid using copy
23340 method on dr_chain and result_chain.
23341 * tree-vect-stmts.c (vectorizable_store): Only call
23342 result_chain.create if j == 0.
23343
23344 PR middle-end/56461
23345 * tree-vect-stmts.c (vect_create_vectorized_promotion_stmts): Call
23346 vec_oprnds0->release (); rather than vec_oprnds0->truncate (0)
23347 before overwriting it.
23348
23349 2013-03-01 Tobias Burnus <burnus@net-b.de>
23350
23351 * doc/extended.texi (C Extensions): Change order in @menu
23352 to match @node.
23353 (Other MIPS Built-in Functions): Move last MIPS entry before
23354 "picoChip Built-in Functions".
23355 (SH Built-in Functions): Move after RX Built-in Functions.
23356 * doc/gcc.texi (Introduction): Change order in @menu
23357 to match @node.
23358 * doc/md.texi (Constraints): Ditto.
23359 * gty.texi (Type Information): Ditto.
23360 (User-provided marking routines for template types): Make
23361 subsection.
23362 * doc/invoke.texi (AArch64 Options): Move before
23363 "Adapteva Epiphany Options".
23364
23365 2013-02-28 Konstantin Serebryany <konstantin.s.serebryany@gmail.com>
23366 Jakub Jelinek <jakub@redhat.com>
23367
23368 PR sanitizer/56454
23369 * asan.c (gate_asan): Lookup no_sanitize_address instead of
23370 no_address_safety_analysis attribute.
23371 * doc/extend.texi (no_address_safety_attribute): Rename to
23372 no_sanitize_address attribute, mention no_address_safety_analysis
23373 attribute as deprecated alias.
23374
23375 2013-02-28 Jakub Jelinek <jakub@redhat.com>
23376
23377 PR middle-end/56461
23378 * tree-vectorizer.h (vect_get_slp_defs): Change 3rd argument
23379 type to vec<vec<tree> > *.
23380 * tree-vect-slp.c (vect_get_slp_defs): Likewise. Change vec_defs
23381 to be vec<tree> instead of vec<tree> *, set vec_defs
23382 to vNULL and call vec_defs.create (number_of_vects), adjust other
23383 uses of vec_defs.
23384 * tree-vect-stmts.c (vect_get_vec_defs, vectorizable_call,
23385 vectorizable_condition): Adjust vect_get_slp_defs callers.
23386
23387 2013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
23388
23389 * config/aarch64/aarch64.c
23390 (aarch64_float_const_representable): Remove unused variable.
23391
23392 2013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
23393
23394 * config/aarch64/aarch64.c (aarch64_mangle_type): Make static.
23395
23396 2013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
23397
23398 * config/aarch64/aarch64-builtins.c
23399 (aarch64_init_simd_builtins): Make static.
23400
23401 2013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
23402
23403 * config/aarch64/aarch64.c
23404 (aarch64_simd_make_constant): Make static.
23405
23406 2013-02-28 Martin Jambor <mjambor@suse.cz>
23407
23408 * tree-sra.c (load_assign_lhs_subreplacements): Do not put replacements
23409 with no initialization to the RHS of debug statements.
23410
23411 2013-02-28 Martin Jambor <mjambor@suse.cz>
23412
23413 PR tree-optimization/56294
23414 * tree-sra.c (analyze_access_subtree): Create replacement declarations.
23415 Adjust dumping.
23416 (get_access_replacement): Do not call create_access_replacement.
23417 Assert a replacement exists.
23418 (get_repl_default_def_ssa_name): Create the replacement declaration
23419 itself.
23420
23421 2013-02-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
23422
23423 * config/arm/arm.c (arm_output_mi_thunk): Call final_start_function and
23424 final_end_function.
23425
23426 2013-02-28 Marek Polacek <polacek@redhat.com>
23427
23428 PR rtl-optimization/56466
23429 * loop-unroll.c (unroll_and_peel_loops): Call fix_loop_structure
23430 if we're changing a loop.
23431 (peel_loops_completely): Likewise.
23432
23433 2013-02-28 Paolo Carlini <paolo.carlini@oracle.com>
23434
23435 PR c++/55813
23436 * doc/invoke.texi ([-Wctor-dtor-privacy]): Complete.
23437
23438 2013-02-28 Georg-Johann Lay <avr@gjlay.de>
23439
23440 PR target/56445
23441 * config/avr/avr.c (avr_init_builtins): Use 'n' instead of empty
23442 macro parameters with: FX_FTYPE_FX, FX_FTYPE_FX_INT, INT_FTYPE_FX,
23443 INTX_FTYPE_FX, FX_FTYPE_INTX.
23444 * config/avr/builtins.def: Adjust respective DEF_BUILTIN.
23445
23446 2013-02-28 Georg-Johann Lay <avr@gjlay.de>
23447
23448 * avr/avr-mcus.def (ata5272, ata5505, attiny1634, ata6285)
23449 (ata6286, atmega8a, atmega48pa, ata5790, ata5790n, ata5795)
23450 (atmega164pa, atmega165pa, atmega168pa, atmega16hva, atmega16hvb)
23451 (atmega16hvbrevb, atmega16m1, atmega16u4, atmega26hvg, atmega32a)
23452 (atmega32a, atmega3250pa, atmega3290pa, atmega32c1, atmega32m1)
23453 (atmega32u4, atmega32u6, atmega64a, atmega6490a, atmega6490p)
23454 (atmega64c1, atmega64m1, atmega64rfa2, atmega64rfr2, atmega32hvb)
23455 (atmega32hvbrevb, atmega16hva2, atmega48hvf, at90pwm161)
23456 (atmega128a, atmega1284, atmxt112sl, atmxt224, atmxt224e)
23457 (atmxt336s, atxmega16a4u, atxmega16c4, atxmega32a4u, atxmega32c4)
23458 (atxmega32e5, atxmega64a3u, atxmega64a4u, atxmega64b1, atxmega64b3)
23459 (atxmega64c3, atxmega64d4, atxmega128a3u, atxmega128b1)
23460 (atxmega128b3, atxmega128c3, atxmega128d4, atmxt540s, atmxt540sreva)
23461 (atxmega192a3u, atxmega192c3, atxmega256a3u, atxmega256c3)
23462 (atxmega384c3, atxmega384d3, atxmega128a4u): New AVR_MCU.
23463 (avrxmega6): Increase max flash segments from 5 to 6.
23464 * config/avr/t-multilib: Regenerate.
23465 * config/avr/avr-tables.opt: Regenerate.
23466 * doc/avr-mmcu.texi: Regenerate.
23467
23468 2013-02-28 Georg-Johann Lay <avr@gjlay.de>
23469
23470 * config/avr/avr.h (device_to_arch): Rename to device_to_ld.
23471 (avr_device_to_arch): Rename to avr_device_to_ld.
23472 (avr_device_to_as): New prototype.
23473 (EXTRA_SPEC_FUNCTIONS): Add device_to_as.
23474 (ASM_SPEC): Use device_to_as to get -mmcu= and -mno-skip-bug=.
23475 * config/avr/driver-avr.c (avr_device_to_as): New.
23476 (avr_device_to_arch): Rename to avr_device_to_ld.
23477
23478 2013-02-27 Jakub Jelinek <jakub@redhat.com>
23479
23480 PR middle-end/56461
23481 * tree-vect-data-refs.c (vect_permute_load_chain): Avoid using copy
23482 method on dr_chain and result_chain.
23483
23484 PR middle-end/56461
23485 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Call
23486 pointer_set_destroy on not_executed_last_iteration.
23487
23488 PR middle-end/56461
23489 * tree-vect-loop.c (vectorizable_reduction): Release vect_defs vector.
23490
23491 PR middle-end/56461
23492 * ipa-pure-const.c (propagate): Use FOR_EACH_FUNCTION instead of
23493 FOR_EACH_DEFINED_FUNCTION when freeing state.
23494
23495 PR middle-end/56461
23496 * df-scan.c (df_insn_delete): Use df_scan_free_mws_vec before
23497 pool_free.
23498 (df_insn_rescan_debug_internal): Use df_scan_free_mws_vec before
23499 overwriting it.
23500
23501 PR middle-end/56461
23502 * ipa-cp.c (decide_whether_version_node): Call vec_free on
23503 known_aggs[i].items and release known_aggs vector.
23504
23505 PR middle-end/56461
23506 * ipa-reference.c (propagate): Free node_info even for alias nodes.
23507
23508 2013-02-27 Edgar E. Iglesias <edgar.iglesias@gmail.com>
23509
23510 * config/microblaze/microblaze.c (microblaze_emit_compare):
23511 Use xor for EQ/NE comparisions.
23512 * config/microblaze/microblaze.md (cstoresf4): Add constraints
23513 (cbranchsf4): Adjust operator to comparison_operator.
23514
23515 2013-02-27 Jakub Jelinek <jakub@redhat.com>
23516
23517 PR middle-end/56461
23518 * tree-flow.h (edge_var_map_vector): Change into va_heap, vl_embed
23519 vector.
23520 * tree-ssa.c (redirect_edge_var_map_add): Use vec_safe_reserve and
23521 vec_safe_push, always update *slot.
23522 (redirect_edge_var_map_clear): Use vec_free.
23523 (redirect_edge_var_map_dup): Use vec_safe_copy and vec_safe_reserve.
23524 (free_var_map_entry): Use vec_free.
23525 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Use
23526 FOR_EACH_VEC_SAFE_ELT instead of FOR_EACH_VEC_ELT.
23527
23528 2013-02-27 Andrey Belevantsev <abel@ispras.ru>
23529
23530 PR middle-end/45472
23531 * sel-sched-ir.c (merge_expr): Also change vinsn of merged expr
23532 when the may_trap_p bit of the exprs being merged differs.
23533 Reorder tests for speculativeness in the logical and operator.
23534
23535 2013-02-27 Jakub Jelinek <jakub@redhat.com>
23536
23537 * incpath.c (add_standard_paths): Use reconcat instead of concat
23538 where appropriate and avoid leaking memory.
23539
23540 * opts.h: Include obstack.h.
23541 (opts_concat): New prototype.
23542 (opts_obstack): New declaration.
23543 * opts.c (opts_concat): New function.
23544 (opts_obstack): New variable.
23545 (init_options_struct): Call gcc_init_obstack on opts_obstack.
23546 (finish_options): Use opts_concat instead of concat
23547 and XOBNEWVEC instead of XNEWVEC.
23548 * opts-common.c (generate_canonical_option, decode_cmdline_option,
23549 generate_option): Likewise.
23550 * Makefile.in (OPTS_H): Depend on $(OBSTACK_H).
23551 * lto-wrapper.c (main): Call gcc_init_obstack on opts_obstack.
23552
23553 PR target/56455
23554 * stmt.c (expand_switch_as_decision_tree_p): If flag_pic
23555 and ASM_OUTPUT_ADDR_DIFF_ELT isn't defined, return true.
23556
23557 2013-02-26 Jakub Jelinek <jakub@redhat.com>
23558
23559 PR middle-end/56461
23560 * lra-spills.c (lra_spill): Free spill_hard_reg at the end.
23561
23562 2013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
23563
23564 * config/arm/arm.c (const_ok_for_dimode_op): Back out last change.
23565 (arm_block_move_unaligned_straight): Likewise.
23566 (arm_adjust_block_mem): Likewise.
23567
23568 2013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
23569
23570 PR target/48901
23571 * config/lm32/lm32.c (gen_int_relational): Remove unused variables
23572 temp, cond and label.
23573 * config/lm32/lm32.md (ashlsi3): Remove unused variable one.
23574
23575 PR target/52500
23576 * config/c6x/c6x.c (dbx_register_map): Change to unsigned.
23577 * config/c6x/c6x.h (dbx_register_map): Update declaration.
23578
23579 PR target/52501
23580 * config/cr16/cr16-protos.h: Move end of RTX_CODE guard below end
23581 of prologue/epilogue functions.
23582
23583 PR target/52550
23584 * config/tilegx/tilegx.c (tilegx_expand_prologue):
23585 Remove unused variable cfa_offset.
23586 * config/tilepro/tilepro.c (tilepro_expand_prologue): Likewise.
23587
23588 PR target/54639
23589 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Avoid offset
23590 type promotion to unsigned.
23591
23592 PR target/54640
23593 * config/arm/arm.c (const_ok_for_dimode_op): Make code consistent
23594 for HOST_WIDE_INT of 32 bit / same size as int.
23595 (arm_block_move_unaligned_straight): Likewise.
23596 (arm_adjust_block_mem): Likewise.
23597
23598 PR target/54662
23599 * config/mep/t-mep (mep-pragma.o): Use ALL_COMPILERFLAGS instead of
23600 ALL_CFLAGS.
23601
23602 2013-02-26 Marek Polacek <polacek@redhat.com>
23603
23604 PR tree-optimization/56426
23605 * tree-ssa-loop.c (tree_ssa_loop_init): Always call scev_initialize.
23606
23607 2013-02-26 Richard Biener <rguenther@suse.de>
23608
23609 PR target/56444
23610 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): Remove
23611 unused variable loops.
23612
23613 2013-02-26 Jakub Jelinek <jakub@redhat.com>
23614
23615 PR tree-optimization/56448
23616 * fold-const.c (operand_equal_p) <case tcc_reference>: Don't look at
23617 TREE_SIDE_EFFECTS if flags contain OEP_CONSTANT_ADDRESS_OF.
23618 Clear OEP_CONSTANT_ADDRESS_OF from flags before recursing on second or
23619 later operands of the references, or even first operand for
23620 INDIRECT_REF, TARGET_MEM_REF or MEM_REF.
23621
23622 PR tree-optimization/56443
23623 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): For
23624 overaligned types, pass TYPE_UNSIGNED (scalar_type) as second argument
23625 to type_for_mode langhook.
23626
23627 2013-02-25 Matt Turner <mattst88@gmail.com>
23628
23629 * doc/invoke.texi: Document r4700.
23630
23631 2013-02-25 Richard Biener <rguenther@suse.de>
23632
23633 PR tree-optimization/56175
23634 * tree-ssa-forwprop.c (hoist_conversion_for_bitop_p): New predicate,
23635 split out from ...
23636 (simplify_bitwise_binary): ... here. Also guard the conversion
23637 of (type) X op CST to (type) (X op ((type-x) CST)) with it.
23638
23639 2013-02-25 Catherine Moore <clm@codesourcery.com>
23640
23641 Revert:
23642 2013-02-24 Catherine Moore <clm@codesourcery.com>
23643 Maciej W. Rozycki <macro@codesourcery.com>
23644 Tom de Vries <tom@codesourcery.com>
23645 Nathan Sidwell <nathan@codesourcery.com>
23646 Iain Sandoe <iain@codesourcery.com>
23647 Nathan Froyd <froydnj@codesourcery.com>
23648 Chao-ying Fu <fu@mips.com>
23649
23650 * doc/extend.texi: (micromips, nomicromips, nocompression):
23651 Document new function attributes.
23652 * doc/invoke.texi (minterlink-compressed, mmicromips,
23653 m14k, m14ke, m14kec): Document new options.
23654 (minterlink-mips16): Update documentation.
23655 * doc/md.texi (ZC, ZD): Document new constraints.
23656 * configure.ac (gcc_cv_as_micromips): Check if linker
23657 supports the .set micromips directive.
23658 * configure: Regenerate.
23659 * config.in: Regenerate.
23660 * config/mips/mips-tables.opt: Regenerate.
23661 * config/mips/micromips.md: New file.
23662 * constraints.md (ZC, AD): New constraints.
23663 * config/mips/predicates.md (movep_src_register): New predicate.
23664 (movep_src_operand): New predicate.
23665 (non_volatile_mem_operand): New predicate.
23666 * config/mips/mips.md (multimem): New type.
23667 (length): Differentiate between 17-bit and 18-bit branch offsets.
23668 (MOVEP1, MOVEP2): New mode iterator.
23669 (mov_<load>l): Use ZC constraint.
23670 (mov_<load>r): Likewise.
23671 (mov_<store>l): Likewise.
23672 (mov_<store>r): Likewise.
23673 (*branch_equality<mode>_inverted): Add microMIPS support.
23674 (*branch_equality<mode>): Likewise.
23675 (*jump_absolute): Likewise.
23676 (indirect_jump_<mode>): Likewise.
23677 (tablejump_<mode>): Likewise.
23678 (<optab>_internal): Likewise.
23679 (sibcall_internal): Likewise.
23680 (sibcall_value_internal): Likewise.
23681 (prefetch): Use constraint ZD.
23682 * config/mips/mips.opt (minterlink-compressed): New option.
23683 (minterlink-mips16): Now an alias for minterlink-compressed.
23684 (mmicromips): New option.
23685 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
23686 (compare_and_swap_12): Likewise.
23687 (sync_add<mode>): Likewise.
23688 (sync_<optab>_12): Likewise.
23689 (sync_old_<optab>_12): Likewise.
23690 (sync_new_<optab>_12): Likewise.
23691 (sync_nand_12): Likewise.
23692 (sync_old_nand_12): Likewise.
23693 (sync_new_nand_12): Likewise.
23694 (sync_sub<mode>): Likewise.
23695 (sync_old_add<mode>): Likewise.
23696 (sync_old_sub<mode>): Likewise.
23697 (sync_new_add<mode>): Likewise.
23698 (sync_new_sub<mode>): Likewise.
23699 (sync_<optab><mode>): Likewise.
23700 (sync_old_<optab><mode>): Likewise.
23701 (sync_new_<optab><mode>): Likewise.
23702 (sync_nand<mode>): Likewise.
23703 (sync_old_nand<mode>): Likewise.
23704 (sync_new_nand<mode>): Likewise.
23705 (sync_lock_test_and_set<mode>): Likewise.
23706 (test_and_set_12): Likewise.
23707 (atomic_compare_and_swap<mode>): Likewise.
23708 (atomic_exchange<mode>_llsc): Likewise.
23709 (atomic_fetch_add<mode>_llsc): Likewise.
23710 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
23711 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
23712 (umips_save_restore_pattern_p): Likewise.
23713 (umips_load_store_pair_p): Likewise.
23714 (umips_output_load_store_pair): Likewise.
23715 (umips_movep_target_p): Likewise.
23716 (umips_12bit_offset_address_p): Likewise.
23717 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
23718 (mips_base_mips16): Rename this...
23719 (mips_base_compression_flags): ...to this. Update all uses.
23720 (mips_attribute_table): Add micromips, nomicromips and nocompression.
23721 (mips_mips16_decl_p): Delete.
23722 (mips_nomips16_decl_p): Delete.
23723 (mips_get_compress_on_flags): New function.
23724 (mips_get_compress_off_flags): New function.
23725 (mips_get_compress_mode): New function.
23726 (mips_get_compress_on_name): New function.
23727 (mips_get_compress_off_name): New function.
23728 (mips_insert_attributes): Support multiple compression types.
23729 (mips_merge_decl_attributes): Likewise.
23730 (umips_12bit_offset_address_p): New function.
23731 (mips_start_function_definition): Emit .set micromips directive.
23732 (mips_call_may_need_jalx_p): New function.
23733 (mips_function_ok_for_sibcall): Add microMIPS support.
23734 (mips_print_operand_punctuation): Support short delay slots and
23735 compact jumps.
23736 (umips_swm_mask, umips_swm_encoding): New.
23737 (umips_build_save_restore): New function.
23738 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
23739 (was_mips16_p): Remove.
23740 (old_compression_mode): New.
23741 (mips_set_compression_mode): New function.
23742 (mips_set_current_function): Add microMIPS support.
23743 (mips_option_override): Likewise.
23744 (umips_save_restore_pattern_p): New function.
23745 (umips_output_save_restore): New function.
23746 (umips_load_store_pair_p_1): New function.
23747 (umips_load_store_pair_p): New function.
23748 (umips_output_load_store_pair_1): New function.
23749 (umips_output_load_store_pair): New function.
23750 (umips_movep_target_p) New function.
23751 (mips_prepare_pch_save): Add microMIPS support.
23752 * config/mips/mips.h (TARGET_COMPRESSION): New.
23753 (TARGET_CPU_CPP_BUILTINS): Update macro
23754 to use new compression flags and to support microMIPS.
23755 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
23756 (MIPS_ARCH_FLOAT_SPEC): Likewise.
23757 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
23758 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
23759 (ASM_SPEC): Support mmicromips and mno-micromips.
23760 (M16STORE_REG_P): New macro.
23761 (MIPS_CALL): Support TARGET_MICROMIPS.
23762 (MICROMIPS_J): New macro.
23763 (mips_base_mips16): Rename this...
23764 (mips_base_compression_flags): ...to this.
23765 (UMIPS_12BIT_OFFSET_P): New macro.
23766 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
23767 (MULTILIB_DIRNAMES): Likewise.
23768
23769 2013-02-25 Tom de Vries <tom@codesourcery.com>
23770
23771 PR rtl-optimization/56131
23772 * insn-notes.def (INSN_NOTE_BASIC_BLOCK): Update comment.
23773 * cfgrtl.c (delete_insn): Don't reorder NOTE_INSN_DELETED_LABEL and
23774 NOTE_INSN_BASIC_BLOCK if BLOCK_FOR_INSN == NULL.
23775
23776 2013-02-25 Tobias Burnus <burnus@net-b.de>
23777
23778 * doc/invoke.texi (-fsanitize=): Move from optimization
23779 to debugging options.
23780
23781 2013-02-25 Andrey Belevantsev <abel@ispras.ru>
23782
23783 * sched-deps.c (sched_analyze_insn): Fix typo in comment.
23784
23785 2013-02-25 Andrey Belevantsev <abel@ispras.ru>
23786 Alexander Monakov <amonakov@ispras.ru>
23787
23788 PR middle-end/56077
23789 * sched-deps.c (sched_analyze_insn): When reg_pending_barrier,
23790 flush pending lists also on non-jumps. Adjust comment.
23791
23792 2013-02-24 Catherine Moore <clm@codesourcery.com>
23793 Maciej W. Rozycki <macro@codesourcery.com>
23794 Tom de Vries <tom@codesourcery.com>
23795 Nathan Sidwell <nathan@codesourcery.com>
23796 Iain Sandoe <iain@codesourcery.com>
23797 Nathan Froyd <froydnj@codesourcery.com>
23798 Chao-ying Fu <fu@mips.com>
23799
23800 * doc/extend.texi: (micromips, nomicromips, nocompression):
23801 Document new function attributes.
23802 * doc/invoke.texi (minterlink-compressed, mmicromips,
23803 m14k, m14ke, m14kec): Document new options.
23804 (minterlink-mips16): Update documentation.
23805 * doc/md.texi (ZC, ZD): Document new constraints.
23806 * configure.ac (gcc_cv_as_micromips): Check if linker
23807 supports the .set micromips directive.
23808 * configure: Regenerate.
23809 * config.in: Regenerate.
23810 * config/mips/mips-tables.opt: Regenerate.
23811 * config/mips/micromips.md: New file.
23812 * constraints.md (ZC, AD): New constraints.
23813 * config/mips/predicates.md (movep_src_register): New predicate.
23814 (movep_src_operand): New predicate.
23815 (non_volatile_mem_operand): New predicate.
23816 * config/mips/mips.md (multimem): New type.
23817 (length): Differentiate between 17-bit and 18-bit branch offsets.
23818 (MOVEP1, MOVEP2): New mode iterator.
23819 (mov_<load>l): Use ZC constraint.
23820 (mov_<load>r): Likewise.
23821 (mov_<store>l): Likewise.
23822 (mov_<store>r): Likewise.
23823 (*branch_equality<mode>_inverted): Add microMIPS support.
23824 (*branch_equality<mode>): Likewise.
23825 (*jump_absolute): Likewise.
23826 (indirect_jump_<mode>): Likewise.
23827 (tablejump_<mode>): Likewise.
23828 (<optab>_internal): Likewise.
23829 (sibcall_internal): Likewise.
23830 (sibcall_value_internal): Likewise.
23831 (prefetch): Use constraint ZD.
23832 * config/mips/mips.opt (minterlink-compressed): New option.
23833 (minterlink-mips16): Now an alias for minterlink-compressed.
23834 (mmicromips): New option.
23835 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
23836 (compare_and_swap_12): Likewise.
23837 (sync_add<mode>): Likewise.
23838 (sync_<optab>_12): Likewise.
23839 (sync_old_<optab>_12): Likewise.
23840 (sync_new_<optab>_12): Likewise.
23841 (sync_nand_12): Likewise.
23842 (sync_old_nand_12): Likewise.
23843 (sync_new_nand_12): Likewise.
23844 (sync_sub<mode>): Likewise.
23845 (sync_old_add<mode>): Likewise.
23846 (sync_old_sub<mode>): Likewise.
23847 (sync_new_add<mode>): Likewise.
23848 (sync_new_sub<mode>): Likewise.
23849 (sync_<optab><mode>): Likewise.
23850 (sync_old_<optab><mode>): Likewise.
23851 (sync_new_<optab><mode>): Likewise.
23852 (sync_nand<mode>): Likewise.
23853 (sync_old_nand<mode>): Likewise.
23854 (sync_new_nand<mode>): Likewise.
23855 (sync_lock_test_and_set<mode>): Likewise.
23856 (test_and_set_12): Likewise.
23857 (atomic_compare_and_swap<mode>): Likewise.
23858 (atomic_exchange<mode>_llsc): Likewise.
23859 (atomic_fetch_add<mode>_llsc): Likewise.
23860 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
23861 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
23862 (umips_save_restore_pattern_p): Likewise.
23863 (umips_load_store_pair_p): Likewise.
23864 (umips_output_load_store_pair): Likewise.
23865 (umips_movep_target_p): Likewise.
23866 (umips_12bit_offset_address_p): Likewise.
23867 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
23868 (mips_base_mips16): Rename this...
23869 (mips_base_compression_flags): ...to this. Update all uses.
23870 (mips_attribute_table): Add micromips, nomicromips and nocompression.
23871 (mips_mips16_decl_p): Delete.
23872 (mips_nomips16_decl_p): Delete.
23873 (mips_get_compress_on_flags): New function.
23874 (mips_get_compress_off_flags): New function.
23875 (mips_get_compress_mode): New function.
23876 (mips_get_compress_on_name): New function.
23877 (mips_get_compress_off_name): New function.
23878 (mips_insert_attributes): Support multiple compression types.
23879 (mips_merge_decl_attributes): Likewise.
23880 (umips_12bit_offset_address_p): New function.
23881 (mips_start_function_definition): Emit .set micromips directive.
23882 (mips_call_may_need_jalx_p): New function.
23883 (mips_function_ok_for_sibcall): Add microMIPS support.
23884 (mips_print_operand_punctuation): Support short delay slots and
23885 compact jumps.
23886 (umips_swm_mask, umips_swm_encoding): New.
23887 (umips_build_save_restore): New function.
23888 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
23889 (was_mips16_p): Remove.
23890 (old_compression_mode): New.
23891 (mips_set_compression_mode): New function.
23892 (mips_set_current_function): Add microMIPS support.
23893 (mips_option_override): Likewise.
23894 (umips_save_restore_pattern_p): New function.
23895 (umips_output_save_restore): New function.
23896 (umips_load_store_pair_p_1): New function.
23897 (umips_load_store_pair_p): New function.
23898 (umips_output_load_store_pair_1): New function.
23899 (umips_output_load_store_pair): New function.
23900 (umips_movep_target_p) New function.
23901 (mips_prepare_pch_save): Add microMIPS support.
23902 * config/mips/mips.h (TARGET_COMPRESSION): New.
23903 (TARGET_CPU_CPP_BUILTINS): Update macro
23904 to use new compression flags and to support microMIPS.
23905 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
23906 (MIPS_ARCH_FLOAT_SPEC): Likewise.
23907 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
23908 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
23909 (ASM_SPEC): Support mmicromips and mno-micromips.
23910 (M16STORE_REG_P): New macro.
23911 (MIPS_CALL): Support TARGET_MICROMIPS.
23912 (MICROMIPS_J): New macro.
23913 (mips_base_mips16): Rename this...
23914 (mips_base_compression_flags): ...to this.
23915 (UMIPS_12BIT_OFFSET_P): New macro.
23916 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
23917 (MULTILIB_DIRNAMES): Likewise.
23918
23919 2013-02-24 Jakub Jelinek <jakub@redhat.com>
23920
23921 PR target/52555
23922 * target-globals.c (save_target_globals): For init_reg_sets and
23923 target_reinit remporarily set this_fn_optabs to this_target_optabs.
23924
23925 2013-02-22 James Grennahlgh <james.greenhalgh@arm.com>
23926
23927 * config/aarch64/aarch64-simd-builtins.def: Add copyright header.
23928 * config/aarch64/t-aarch64
23929 (aarch64-builtins.o): Depend on aarch64-simd-builtins.def.
23930
23931 2013-02-22 Vladimir Makarov <vmakarov@redhat.com>
23932
23933 PR inline-asm/56148
23934 * lra-constraints.c (process_alt_operands): Reload operand
23935 conflicting with earlier clobber only if no more other conflicting
23936 operands.
23937
23938 2013-02-22 Jakub Jelinek <jakub@redhat.com>
23939
23940 PR sanitizer/56393
23941 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Link in libasan_preinit.o
23942 if not linking a shared library.
23943
23944 2013-02-22 Seth LaForge <sethml@google.com>
23945
23946 * config.gcc (arm*-*-eabi*): Treat arm*eb as big-endian.
23947
23948 2013-02-22 Greta Yorsh <Greta.Yorsh@arm.com>
23949
23950 * config/arm/arm.md (split for extendsidi): Update condition.
23951 (zero_extend<mode>di2,extend<mode>di2): Add an alternative.
23952 * config/arm/iterators.md (qhs_extenddi_cstr): Likewise.
23953 (qhs_zextenddi_cstr): Likewise.
23954
23955 2013-02-21 Jakub Jelinek <jakub@redhat.com>
23956
23957 PR middle-end/56420
23958 * expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Do subtraction in uhwi, to
23959 avoid signed wrapping.
23960 (expand_mult): Handle properly multiplication by
23961 ((dword_type) -1) << (BITS_PER_WORD - 1). Improve multiplication by
23962 ((dword_type) 1) << (BITS_PER_WORD - 1). Avoid undefined behavior
23963 in the compiler if coeff is HOST_WIDE_INT_MIN.
23964 (expand_divmod): Don't make ext_op1 static, change it's type to
23965 uhwi. Avoid undefined behavior in -INTVAL (op1).
23966
23967 PR rtl-optimization/50339
23968 * lower-subreg.h (struct lower_subreg_choices): Add splitting_ashiftrt
23969 field.
23970 * lower-subreg.c (compute_splitting_shift): Handle ASHIFTRT.
23971 (compute_costs): Call compute_splitting_shift also for ASHIFTRT
23972 into splitting_ashiftrt field.
23973 (find_decomposable_shift_zext, resolve_shift_zext): Handle also
23974 ASHIFTRT.
23975 (dump_choices): Fix up printing LSHIFTRT choices, print ASHIFTRT
23976 choices.
23977
23978 2013-02-20 Aldy Hernandez <aldyh@redhat.com>
23979
23980 PR middle-end/56108
23981 * trans-mem.c (execute_tm_mark): Do not expand transactions that
23982 are sure to go irrevocable.
23983
23984 2013-02-21 Hans-Peter Nilsson <hp@axis.com>
23985
23986 * doc/rtl.texi (vec_concat, vec_duplicate): Mention that
23987 scalars are valid operands.
23988
23989 2013-02-21 Martin Jambor <mjambor@suse.cz>
23990
23991 PR tree-optimization/56310
23992 * ipa-cp.c (agg_replacements_to_vector): New parameter index, copy
23993 only matching indices and non-negative final offsets.
23994 (intersect_aggregates_with_edge): Pass src_idx to
23995 agg_replacements_to_vector. Pass src_idx insstead of index to
23996 intersect_with_agg_replacements.
23997
23998 2013-02-21 Martin Jambor <mjambor@suse.cz>
23999
24000 * ipa-cp.c (good_cloning_opportunity_p): Dump the real threshold
24001 instead of hard-wired defaults.
24002
24003 2013-02-21 Maciej W. Rozycki <macro@codesourcery.com>
24004
24005 * doc/invoke.texi (MIPS Options): Update documentation of the
24006 floating-point multiply-accumulate instruction restrictions.
24007
24008 2013-02-21 Kostya Serebryany <kcc@google.com>
24009
24010 * config/i386/i386.c (ix86_asan_shadow_offset): Use 0x7fff8000 as
24011 asan_shadow_offset on x86_64 linux.
24012
24013 2013-02-21 Richard Biener <rguenther@suse.de>
24014
24015 PR tree-optimization/56415
24016 Revert
24017 2013-02-11 Richard Biener <rguenther@suse.de>
24018
24019 PR tree-optimization/56273
24020 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
24021 first VRP run.
24022
24023 2013-02-21 Jakub Jelinek <jakub@redhat.com>
24024
24025 PR bootstrap/56258
24026 * doc/invoke.texi (-fdump-rtl-pro_and_epilogue): Use @item
24027 instead of @itemx.
24028
24029 PR inline-asm/56405
24030 * expr.c (expand_expr_real_1) <case TARGET_MEM_REF, MEM_REF>: Don't
24031 use movmisalign or extract_bit_field for EXPAND_MEMORY modifier.
24032
24033 2013-02-20 Jan Hubicka <jh@suse.cz>
24034
24035 PR tree-optimization/56265
24036 * ipa-prop.c (ipa_make_edge_direct_to_target): Fixup callgraph
24037 when target is referenced for first time.
24038
24039 2013-02-20 Richard Biener <rguenther@suse.de>
24040
24041 * tree-call-cdce.c (tree_call_cdce): Do not remove unused locals.
24042 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise.
24043 * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
24044 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do
24045 not return anything.
24046 (rename_ssa_copies): Do not remove unused locals.
24047 * tree-ssa-ccp.c (do_ssa_ccp): Likewise.
24048 * tree-ssanames.c (pass_release_ssa_names): Remove unused locals first.
24049 * passes.c (execute_function_todo): Do not schedule unused locals
24050 removal if cleanup_tree_cfg did something.
24051 * tree-ssa-live.c (remove_unused_locals): Dump statistics
24052 about the number of removed locals.
24053
24054 2013-02-20 Richard Biener <rguenther@suse.de>
24055
24056 PR tree-optimization/56398
24057 * tree-vect-loop-manip.c (adjust_debug_stmts): Skip SSA default defs.
24058
24059 2013-02-20 Martin Jambor <mjambor@suse.cz>
24060
24061 PR tree-optimization/55334
24062 * ipa-cp.c (initialize_node_lattices): Disable IPA-CP through and to
24063 restricted pointers to arrays.
24064
24065 2013-02-20 Richard Biener <rguenther@suse.de>
24066 Jakub Jelinek <jakub@redhat.com>
24067
24068 PR tree-optimization/56396
24069 * tree-ssa-ccp.c (n_const_val): New static variable.
24070 (get_value): Return NULL for SSA names we don't have a lattice
24071 entry for.
24072 (ccp_initialize): Initialize n_const_val.
24073 * tree-ssa-copy.c (n_copy_of): New static variable.
24074 (init_copy_prop): Initialize n_copy_of.
24075 (get_value): Return NULL_TREE for SSA names we don't have a
24076 lattice entry for.
24077
24078 2013-02-20 Martin Jambor <mjambor@suse.cz>
24079
24080 * ipa-cp.c (initialize_node_lattices): Fix dumping condition.
24081
24082 2013-02-20 Richard Biener <rguenther@suse.de>
24083
24084 * genpreds.c (write_lookup_constraint): Do not compare first
24085 letter of the constraint again.
24086
24087 2013-02-20 Richard Biener <rguenther@suse.de>
24088
24089 * tree-ssa-loop-ivopts.c (alloc_use_cost_map): Use bitmap_count_bits
24090 and ceil_log2.
24091 (get_use_iv_cost): Terminate hashtable walk when coming across
24092 an empty entry.
24093
24094 2013-02-20 Igor Zamyatin <igor.zamyatin@intel.com>
24095
24096 * config/i386/i386.c (initial_ix86_tune_features): Turn on fp
24097 reassociation for avx2 targets.
24098
24099 2012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
24100
24101 * config/microblaze/microblaze.c: microblaze_has_clz = 0
24102 Add version check for v8.10.a to enable microblaze_has_clz
24103 * config/microblaze/microblaze.h: Add TARGET_HAS_CLZ as combined
24104 version and TARGET_PATTERN_COMPARE check
24105 * config/microblaze/microblaze.md: New clzsi2 instruction
24106
24107 2012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
24108
24109 * config/microblaze/microblaze.md (call_value_intern): Check symbol is
24110 function before branching.
24111
24112 2012-02-19 Andrey Belevantsev <abel@ispras.ru>
24113
24114 * sel-sched-dump.c (dump_insn_rtx_flags): Explicitly set
24115 DUMP_INSN_RTX_UID.
24116 (dump_insn_rtx_1): Pass PATTERN (insn) to str_pattern_slim.
24117
24118 2012-02-19 Andrey Belevantsev <abel@ispras.ru>
24119
24120 PR middle-end/55889
24121 * sel-sched.c: Include ira.h.
24122 (implicit_clobber_conflict_p): New function.
24123 (moveup_expr): Use it.
24124 * Makefile.in (sel-sched.o): Depend on ira.h.
24125
24126 2013-02-19 Richard Biener <rguenther@suse.de>
24127
24128 PR tree-optimization/56384
24129 * tree-ssa-sccvn.h (struct vn_phi_s): Add type member.
24130 (vn_hash_type): Split out from ...
24131 (vn_hash_constant_with_type): ... here.
24132 * tree-ssa-sccvn.c (vn_phi_compute_hash): Use vn_hash_type.
24133 (vn_phi_eq): Compare types from vn_phi_s structure.
24134 (vn_phi_lookup): Populate vn_phi_s type.
24135 (vn_phi_insert): Likewise.
24136
24137 2013-02-19 Jakub Jelinek <jakub@redhat.com>
24138
24139 PR tree-optimization/56350
24140 * tree-vect-loop.c (vectorizable_reduction): If orig_stmt, return false
24141 if haven't found reduction or nested cycle operand, rather than
24142 asserting we must find it.
24143
24144 PR tree-optimization/56381
24145 * tree-ssa-pre.c (create_expression_by_pieces): Fix up last argument
24146 to fold_build3.
24147
24148 2013-02-18 Aldy Hernandez <aldyh@redhat.com>
24149 Jakub Jelinek <jakub@redhat.com>
24150
24151 PR target/52555
24152 * genopinit.c (raw_optab_handler): Use this_fn_optabs.
24153 (swap_optab_enable): Same.
24154 (init_all_optabs): Use argument instead of global.
24155 * tree.h (struct tree_optimization_option): New field target_optabs.
24156 * expr.h (init_all_optabs): Add argument to prototype.
24157 (TREE_OPTIMIZATION_OPTABS): New.
24158 (save_optabs_if_changed): Protoize.
24159 * optabs.h: Declare this_fn_optabs.
24160 * optabs.c (save_optabs_if_changed): New.
24161 Declare this_fn_optabs.
24162 (init_optabs): Add argument to init_all_optabs() call.
24163 * function.c (invoke_set_current_function_hook): Handle per
24164 function optabs.
24165 * function.h (struct function): New field optabs.
24166 * config/mips/mips.c (mips_set_mips16_mode): Handle when
24167 optimization_current_node has changed.
24168 * target-globals.h (save_target_globals_default_opts): Protoize.
24169 * target-globals.c (save_target_globals_default_opts): New.
24170
24171 2013-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
24172
24173 PR target/56347
24174 * config/pa/pa.c (pa_conditional_register_usage): On HP-UX, mark
24175 registers %fr12 and %fr12R as call used.
24176
24177 PR target/56214
24178 * config/pa/predicates.md (base14_operand): Except for BLKmode, QImode
24179 and HImode, require all displacements to be an integer multiple of
24180 their mode size.
24181 * config/pa/pa.c (pa_legitimate_address_p): For REG+BASE addresses,
24182 only allow QImode and HImode when reload is in progress and strict is
24183 true. Likewise for symbolic addresses. Use base14_operand to check
24184 displacements in REG+BASE addresses.
24185
24186 2013-02-18 Richard Biener <rguenther@suse.de>
24187
24188 PR tree-optimization/56366
24189 * tree-vect-loop.c (get_initial_def_for_induction): Properly
24190 handle sign-conversion of outer-loop initial induction value.
24191
24192 2013-02-18 Richard Biener <rguenther@suse.de>
24193
24194 PR middle-end/56349
24195 * cfghooks.c (merge_blocks): If we merge a latch into another
24196 block adjust references to it.
24197 * cfgloop.c (flow_loops_find): Reset latch before recomputing it.
24198 (verify_loop_structure): Verify that a recorded latch is in fact
24199 a latch.
24200
24201 2013-02-18 Richard Biener <rguenther@suse.de>
24202
24203 PR tree-optimization/56321
24204 * tree-ssa-reassoc.c (propagate_op_to_single_use): Properly
24205 order SSA name release and virtual operand unlinking.
24206
24207 2013-02-17 Edgar E. Iglesias <edgar.iglesias@gmail.com>
24208
24209 * config/microblaze/microblaze.md (save_stack_block): Define.
24210 (restore_stack_block): Likewise.
24211
24212 2013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
24213
24214 * config/microblaze/linux.h (TARGET_SUPPORTS_PIC): Define as 1.
24215 * config/microblaze/microblaze.h (TARGET_SUPPORTS_PIC): Define as 1.
24216 * config/microblaze/microblaze.c (microblaze_option_override):
24217 Bail out early for PIC modes when target does not support PIC.
24218
24219 2013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
24220
24221 * config/microblaze/microblaze.c (microblaze_asm_trampoline_template):
24222 Replace with a microblaze version.
24223 (microblaze_trampoline_init): Adapt for microblaze.
24224 * config/microblaze/microblaze.h (TRAMPOLINE_SIZE): Adapt for
24225 microblaze.
24226
24227 2013-02-16 Jakub Jelinek <jakub@redhat.com>
24228 Dodji Seketeli <dodji@redhat.com>
24229
24230 PR asan/56330
24231 * asan.c (get_mem_refs_of_builtin_call): White space and style cleanup.
24232 (instrument_mem_region_access): Do not forget to always put
24233 instrumentation of the of 'base' and 'base + len' in a "if (len !=
24234 0) statement, even for cases where either 'base' or 'base + len'
24235 are not instrumented -- because they have been previously
24236 instrumented. Simplify the logic by putting all the statements
24237 instrument 'base + len' inside a sequence, and then insert that
24238 sequence right before the current insertion point. Then, to
24239 instrument 'base + len', just get an iterator on that statement.
24240 And do not forget to update the pointer to iterator the function
24241 received as argument.
24242
24243 2013-02-15 Vladimir Makarov <vmakarov@redhat.com>
24244
24245 PR rtl-optimization/56348
24246 * lra-assigns.c (reload_pseudo_compare_func): Prefer bigger pseudos.
24247
24248 2013-02-15 Steven Bosscher <steven@gcc.gnu.org>
24249
24250 * graph.c (start_graph_dump): Print dumpfile base as digraph label.
24251 (clean_graph_dump_file): Pass base to start_graph_dump.
24252
24253 2013-02-14 Richard Henderson <rth@redhat.com>
24254
24255 PR target/55941
24256 * lower-subreg.c (simple_move): Check dest mode instead of src mode.
24257
24258 2013-02-14 Steven Bosscher <steven@gcc.gnu.org>
24259
24260 * collect2-aix.h: Define F_LOADONLY.
24261
24262 2013-02-14 Richard Biener <rguenther@suse.de>
24263
24264 PR lto/50494
24265 * varasm.c (output_constant_def_1): Get the decl representing
24266 the constant as argument.
24267 (output_constant_def): Wrap output_constant_def_1.
24268 (make_decl_rtl): Use output_constant_def_1 with the decl
24269 representing the constant.
24270 (build_constant_desc): Optionally re-use a decl already
24271 representing the constant.
24272 (tree_output_constant_def): Adjust.
24273
24274 2013-02-14 Dodji Seketeli <dodji@redhat.com>
24275
24276 Fix an asan crash
24277 * asan.c (instrument_builtin_call): Really put the length of the
24278 second source argument into src1_len.
24279
24280 2013-02-13 Jakub Jelinek <jakub@redhat.com>
24281
24282 * asan.c (create_cond_insert_point): Add create_then_fallthru_edge
24283 argument. If it is false, don't create edge from then_bb to
24284 fallthru_bb.
24285 (insert_if_then_before_iter): Pass true to it.
24286 (build_check_stmt): Pass false to it.
24287 (transform_statements): Flush hash table only on extended basic
24288 block boundaries, rather than at the beginning of every bb.
24289 Don't flush hash table on nonfreeing_call_p calls.
24290 * tree-flow.h (nonfreeing_call_p): New prototype.
24291 * tree-ssa-phiopt.c (nonfreeing_call_p): No longer static.
24292
24293 2013-02-13 David S. Miller <davem@davemloft.net>
24294
24295 * expmed.c (expand_shift_1): Only strip scalar integer subregs.
24296
24297 2013-02-13 Vladimir Makarov <vmakarov@redhat.com>
24298
24299 PR target/56184
24300 * ira.c (max_regno_before_ira): Move from ...
24301 (ira): ... here.
24302 (fix_reg_equiv_init): Use max_regno_before_ira instead of
24303 vec_safe_length.
24304
24305 2013-02-13 Jakub Jelinek <jakub@redhat.com>
24306
24307 * config/i386/i386.c (ix86_asan_shadow_offset): Revert last change.
24308
24309 2013-02-13 Richard Biener <rguenther@suse.de>
24310
24311 PR lto/56295
24312 * gimple-streamer-out.c (output_gimple_stmt): Undo wrapping
24313 globals in MEM_REFs.
24314
24315 2013-02-13 Richard Biener <rguenther@suse.de>
24316
24317 * loop-init.c (loop_optimizer_init): Clear loop state when
24318 re-initializing preserved loops.
24319 * loop-unswitch.c (unswitch_single_loop): Return whether
24320 we unswitched the loop. Do not verify loop state here.
24321 (unswitch_loops): When we unswitched a loop discover new loops.
24322
24323 2013-02-13 Kostya Serebryany <kcc@google.com>
24324
24325 * config/i386/i386.c: Use 0x7fff8000 as asan_shadow_offset
24326 on x86_64 linux.
24327 * sanitizer.def: Rename __asan_init to __asan_init_v1.
24328
24329 2013-02-12 Dodji Seketeli <dodji@redhat.com>
24330
24331 Avoid instrumenting duplicated memory access in the same basic block
24332 * Makefile.in (asan.o): Add new dependency on hash-table.h
24333 * asan.c (struct asan_mem_ref, struct mem_ref_hasher): New types.
24334 (asan_mem_ref_init, asan_mem_ref_get_end, get_mem_ref_hash_table)
24335 (has_stmt_been_instrumented_p, empty_mem_ref_hash_table)
24336 (free_mem_ref_resources, has_mem_ref_been_instrumented)
24337 (has_stmt_been_instrumented_p, update_mem_ref_hash_table)
24338 (get_mem_ref_of_assignment): New functions.
24339 (get_mem_refs_of_builtin_call): Extract from
24340 instrument_builtin_call and tweak a little bit to make it fit with
24341 the new signature.
24342 (instrument_builtin_call): Use the new
24343 get_mem_refs_of_builtin_call. Use gimple_call_builtin_p instead
24344 of is_gimple_builtin_call.
24345 (instrument_derefs, instrument_mem_region_access): Insert the
24346 instrumented memory reference into the hash table.
24347 (maybe_instrument_assignment): Renamed instrument_assignment into
24348 this, and change it to advance the iterator when instrumentation
24349 actually happened and return true in that case. This makes it
24350 homogeneous with maybe_instrument_assignment, and thus give a
24351 chance to callers to be more 'regular'.
24352 (transform_statements): Clear the memory reference hash table
24353 whenever we enter a new BB, when we cross a function call, or when
24354 we are done transforming statements. Use
24355 maybe_instrument_assignment instead of instrumentation. No more
24356 need to special case maybe_instrument_assignment and advance the
24357 iterator after calling it; it's now handled just like
24358 maybe_instrument_call. Update comment.
24359
24360 2013-02-13 Richard Biener <rguenther@suse.de>
24361
24362 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
24363 Fix loop discovery code.
24364
24365 2013-02-12 Vladimir Makarov <vmakarov@redhat.com>
24366
24367 PR inline-asm/56148
24368 * lra-constraints.c (process_alt_operands): Match early clobber
24369 operand with itself. Check conflicts with earlyclobber only if
24370 the operand is not reloaded. Prefer to reload conflicting operand
24371 if earlyclobber and matching operands are the same.
24372
24373 2013-02-12 Richard Biener <rguenther@suse.de>
24374
24375 PR lto/56297
24376 * lto-streamer-out.c (write_symbol): Do not output symbols
24377 for hard register variables.
24378
24379 2013-02-12 Georg-Johann Lay <avr@gjlay.de>
24380
24381 PR target/54222
24382 * config/avr/avr-dimode.md (umulsidi3, mulsidi3): New expanders.
24383 (umulsidi3_insn, mulsidi3_insn): New insns.
24384
24385 2013-02-12 Christophe Lyon <christophe.lyon@linaro.org>
24386
24387 * config/arm/arm-protos.h (struct cpu_vec_costs): New struct type.
24388 (struct tune_params): Add vec_costs field.
24389 * config/arm/arm.c (arm_builtin_vectorization_cost)
24390 (arm_add_stmt_cost): New functions.
24391 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST)
24392 (TARGET_VECTORIZE_ADD_STMT_COST): Define.
24393 (arm_default_vec_cost): New struct of type cpu_vec_costs.
24394 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
24395 (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune)
24396 (arm_cortex_a15_tune, arm_cortex_a5_tune, arm_cortex_a9_tune)
24397 (arm_v6m_tune, arm_fa726te_tune): Define new vec_costs field.
24398
24399 2013-02-12 Richard Biener <rguenther@suse.de>
24400
24401 PR lto/56295
24402 * gimple-streamer-in.c (input_gimple_stmt): Strip MEM_REFs off
24403 decls again if possible.
24404
24405 2013-02-12 Richard Biener <rguenther@suse.de>
24406
24407 PR middle-end/56288
24408 * tree-ssa.c (verify_ssa_name): Fix check, move
24409 SSA_NAME_IN_FREE_LIST check up.
24410
24411 2013-02-12 Jakub Jelinek <jakub@redhat.com>
24412 Steven Bosscher <steven@gcc.gnu.org>
24413
24414 PR rtl-optimization/56151
24415 * optabs.c (add_equal_note): Don't return 0 if target is a MEM,
24416 equal to op0 or op1, and last_insn pattern is CODE operation
24417 with MEM dest and one of the operands matches that MEM.
24418
24419 2013-02-11 Sriraman Tallam <tmsriramgoogle.com>
24420
24421 * doc/extend.texi: Document Function Multiversioning and "default"
24422 parameter string to target attribute.
24423 * config/i386/i386.c (get_builtin_code_for_version): Return 0 if
24424 target attribute parameter is "default".
24425 (ix86_compare_version_priority): Remove checks for target attribute.
24426 (ix86_mangle_function_version_assembler_name): Change error to sorry.
24427 Remove check for target attribute equal to NULL. Add assert.
24428 (ix86_generate_version_dispatcher_body): Change error to sorry.
24429
24430 2013-02-11 Iain Sandoe <iain@codesourcery.com>
24431 Jack Howarth <howarth@bromo.med.uc.edu>
24432 Patrick Marlier <patrick.marlier@gmail.com>
24433
24434 PR libitm/55693
24435 * config/darwin.h: Replace ENDFILE_SPEC with TM_DESTRUCTOR and
24436 define ENDFILE_SPEC as TM_DESTRUCTOR.
24437 * config/i386/darwin.h (ENDFILE_SPEC): Use TM_DESTRUCTOR.
24438
24439 2013-02-11 Alexander Potapenko <glider@google.com>
24440 Jack Howarth <howarth@bromo.med.uc.edu>
24441 Jakub Jelinek <jakub@redhat.com>
24442
24443 PR sanitizer/55617
24444 * config/darwin.c (cdtor_record): Rename ctor_record.
24445 (sort_cdtor_records): Rename sort_ctor_records.
24446 (finalize_dtors): New routine to sort destructors by
24447 priority before use in assemble_integer.
24448 (machopic_asm_out_destructor): Use finalize_dtors if needed.
24449
24450 2013-02-11 Uros Bizjak <ubizjak@gmail.com>
24451
24452 PR rtl-optimization/56275
24453 * simplify-rtx.c (avoid_constant_pool_reference): Check that
24454 offset is non-negative and less than cmode size before
24455 calling simplify_subreg.
24456
24457 2013-02-11 Richard Biener <rguenther@suse.de>
24458
24459 PR tree-optimization/56264
24460 * cfgloop.h (fix_loop_structure): Adjust prototype.
24461 * loop-init.c (fix_loop_structure): Return the number of
24462 newly discovered loops.
24463 * tree-cfgcleanup.c (repair_loop_structures): When new loops
24464 are discovered, do a full loop-closed SSA rewrite.
24465
24466 2013-02-11 Richard Biener <rguenther@suse.de>
24467
24468 PR tree-optimization/56273
24469 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
24470 first VRP run.
24471 (check_array_ref): Fix missing newline in dumps.
24472 (search_for_addr_array): Likewise.
24473
24474 2013-02-09 David Edelsohn <dje.gcc@gmail.com>
24475
24476 * config/rs6000/aix61.h (OS_MISSING_ALTIVEC): Undefine.
24477
24478 2013-02-09 Jakub Jelinek <jakub@redhat.com>
24479
24480 PR target/56256
24481 * config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Define.
24482
24483 2013-02-08 Vladimir Makarov <vmakarov@redhat.com>
24484
24485 PR rtl-optimization/56246
24486 * lra-constraints.c (simplify_operand_subreg): Try to reuse
24487 reload pseudo.
24488 * lra.c (lra): Clear lra_optional_reload_pseudos only when all
24489 constraints are satisfied.
24490
24491 2013-02-08 Jeff Law <law@redhat.com>
24492
24493 PR debug/53948
24494 * emit-rtl.c (reg_is_parm_p): New function.
24495 * regs.h (reg_is_parm_p): New prototype.
24496 * ira-conflicts.c (ira_build_conflicts): Allow parameters in
24497 callee-clobbered registers.
24498
24499 2013-02-08 Michael Meissner <meissner@linux.vnet.ibm.com>
24500
24501 PR target/56043
24502 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass):
24503 If there is no implicit builtin declaration, just return NULL.
24504
24505 2013-02-08 Uros Bizjak <ubizjak@gmail.com>
24506
24507 * config/i386/sse.md (FMAMODEM): New mode iterator.
24508 (fma<mode>4, fms<mode>4, fnma<mode>4, fnms<mode>4): Use FMAMODEM
24509 mode iterator. Do not use TARGET_SSE_MATH in insn constraint.
24510
24511 2013-02-08 Uros Bizjak <ubizjak@gmail.com>
24512
24513 * config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Define only
24514 when HAVE_GAS_CFI_PERSONALITY_DIRECTIVE is set.
24515 * config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): Ditto.
24516
24517 2013-02-08 Edgar E. Iglesias <edgar.iglesias@gmail.com>
24518
24519 * config.gcc (microblaze*-linux*): Add TARGET_BIG_ENDIAN_DEFAULT.
24520 (microblaze*-*-elf): Likewise.
24521 * config/microblaze/linux.h: Add -mbig-endian / -mlittle-endian to
24522 LINK_SPEC.
24523 * config/microblaze/microblaze-c.c: Add builtin defines for
24524 _LITTLE_ENDIAN and _BIG_ENDIAN.
24525 * config/microblaze/microblaze.h: Add TARGET_ENDIAN_DEFAULT and
24526 add to TARGET_DEFAULT flags.
24527 Expand ASM_SPEC and LINK_SPEC.
24528 Update BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN.
24529 * config/microblaze/microblaze.md: Update extendsidi2 and
24530 movdi_internal instructions to use low-order / high-order reg
24531 print_operands.
24532 * config/microblaze/microblaze.opt: Add mbig-endian and mlittle-endian
24533 options and inversemask / mask of LITTLE_ENDIAN.
24534 * config/microblaze/t-microblaze: Expand multilib options to
24535 include mlittle-endian (le) and update exceptions patterns.
24536
24537 2013-02-08 Jakub Jelinek <jakub@redhat.com>
24538
24539 PR rtl-optimization/56195
24540 * lra-constraints.c (get_reload_reg): Don't reuse regs
24541 if they have smaller mode than requested, if they have
24542 wider mode than requested, try to return a SUBREG.
24543
24544 PR tree-optimization/56250
24545 * fold-const.c (extract_muldiv_1) <case NEGATE_EXPR>: Don't optimize
24546 if type is unsigned and code isn't MULT_EXPR.
24547
24548 2013-02-08 Georg-Johann Lay <avr@gjlay.de>
24549
24550 PR tree-optimization/56064
24551 * fixed-value.c (fixed_from_double_int): Sign/zero extend payload
24552 bits according to mode.
24553 * fixed-value.h (fixed_from_double_int)
24554 (const_fixed_from_double_int): Adjust comments.
24555
24556 2013-02-08 Richard Biener <rguenther@suse.de>
24557
24558 PR lto/56231
24559 * lto-streamer.h (struct data_in): Remove current_file, current_line
24560 and current_col members.
24561 * lto-streamer-out.c (lto_output_location): Stream changed bits
24562 en-block for efficiency.
24563 * lto-streamer-in.c (clear_line_info): Remove.
24564 (lto_input_location): Cache current file, line and column
24565 globally via local statics. Read changed bits en-block.
24566 (input_function): Do not call clear_line_info.
24567 (lto_read_body): Likewise.
24568 (lto_input_toplevel_asms): Likewise.
24569
24570 2013-02-08 Michael Matz <matz@suse.de>
24571
24572 PR tree-optimization/52448
24573 * tree-ssa-phiopt.c (struct name_to_bb): Add phase member.
24574 (nt_call_phase): New static.
24575 (add_or_mark_expr): Only mark accesses with newer phase than any
24576 call seen.
24577 (nonfreeing_call_p): New.
24578 (nt_init_block): Update nt_call_phase, mark blocks as visited.
24579 (nt_fini_block): Keep blocks marked as visited.
24580 (get_non_trapping): Initialize nt_call_phase, and reset aux pointer.
24581
24582 2013-02-08 Richard Biener <rguenther@suse.de>
24583
24584 * ira.c (ira): Free broken dominator information.
24585
24586 2013-02-08 Uros Bizjak <ubizjak@gmail.com>
24587
24588 * config/i386/i386.c (ix86_spill_class): Use INTEGER_CLASS_P macro.
24589
24590 2013-02-08 Marek Polacek <polacek@redhat.com>
24591
24592 * cfgloop.c (verify_loop_structure): Add more checking of headers.
24593
24594 2013-02-08 Richard Biener <rguenther@suse.de>
24595
24596 PR middle-end/56181
24597 * cfgloop.h (flow_loops_find): Adjust.
24598 (bb_loop_header_p): Declare.
24599 * cfgloop.c (bb_loop_header_p): New function split out from ...
24600 (flow_loops_find): ... here. Adjust function signature,
24601 support incremental loop structure update.
24602 (verify_loop_structure): Cleanup. Verify a loop is a loop.
24603 * cfgloopmanip.c (fix_loop_structure): Move ...
24604 * loop-init.c (fix_loop_structure): ... here.
24605 (apply_loop_flags): Split out from ...
24606 (loop_optimizer_init): ... here.
24607 (fix_loop_structure): Use apply_loop_flags. Use flow_loops_find
24608 in incremental mode, only remove dead loops here.
24609
24610 2013-02-08 Georg-Johann Lay <avr@gjlay.de>
24611
24612 PR target/54222
24613 * config/avr/avr.md (unspec) <UNSPEC_ROUND>: Add.
24614 * config/avr/avr-fixed.md (ALL4QA, ALL124QA): New mode iterators.
24615 (round<mode>3, round<mode>3_const): New expanders for fixed-mode.
24616 (*round<mode>3.libgcc): New insns for fixed-modes.
24617 * config/avr/builtins.def (ABSxx): Use a non-NULL LIBNAME.
24618 (ROUNDxx, COUNTLSxx, BITSxx, xxBITS): New DEF_BUILTINs.
24619 (ROUNDFX, COUNTLSFX, ABSFX): New DEF_BUILTINs.
24620 * config/avr/stdfix.h (absFX, bitsFX, FXbits): Remove inline
24621 implementations. Define to __builtin_avr_absFX,
24622 __builtin_avr_bitsFX, __builtin_avr_FXbits, respectively.
24623 (roundFX, countlsFX): Define to __builtin_avr_roundFX,
24624 __builtin_avr_countlsFX, respectively.
24625 * config/avr/avr-c.c (target.h): Include it.
24626 (enum avr_builtin_id): New enum.
24627 (avr_resolve_overloaded_builtin): New static function.
24628 (avr_register_target_pragmas): Use it to set
24629 targetm.resolve_overloaded_builtin.
24630 * config/avr/avr.c (avr_init_builtins): Supply myriads of local
24631 tree nodes used by DEF_BUILTIN.
24632 (avr_expand_builtin) <AVR_BUILTIN_ROUNDxx>: Sanity-check them.
24633 (avr_fold_builtin) <AVR_BUILTIN_BITSxx>: Fold to VIEW_COVERT_EXPR.
24634 <AVR_BUILTIN_xxBITS>: Same.
24635
24636 2013-02-08 Richard Biener <rguenther@suse.de>
24637
24638 * cfgloop.c (verify_loop_structure): Properly handle
24639 a loop exiting to another loop header.
24640 * ira-int.h (ira_loops): Remove.
24641 * ira.c (ira_loops): Remove.
24642 (ira): Use loop_optimizer_init and loop_optimizer_finalize.
24643 (do_reload): Use loop_optimizer_finalize.
24644 * ira-build.c (create_loop_tree_nodes): Use get_loops and
24645 number_of_loops to access the loop tree.
24646 (more_one_region_p): Likewise.
24647 (finish_loop_tree_nodes): Likewise.
24648 (rebuild_regno_allocno_maps): Likewise.
24649 (mark_loops_for_removal): Likewise.
24650 (mark_all_loops_for_removal): Likewise.
24651 (remove_unnecessary_regions): Likewise.
24652 (ira_build): Likewise.
24653 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
24654
24655 2013-02-08 Richard Biener <rguenther@suse.de>
24656
24657 * Makefile.in (tree-tailcall.o): Add $(CFGLOOP_H) dependency.
24658 * ipa-pure-const.c (analyze_function): Avoid calling
24659 mark_irreducible_loops twice.
24660 * tree-tailcall.c (tree_optimize_tail_calls_1): Mark loops for fixup.
24661
24662 2013-02-07 David S. Miller <davem@davemloft.net>
24663
24664 * dwarf2out.c (based_loc_descr): Perform leaf register remapping
24665 on 'reg'.
24666 * var-tracking.c (vt_add_function_parameter): Test the presence of
24667 HAVE_window_save properly and do not remap argument registers when
24668 we have a leaf function.
24669
24670 2013-02-07 Uros Bizjak <ubizjak@gmail.com>
24671
24672 PR bootstrap/56227
24673 * ggc-page.c (ggc_print_statistics): Use HOST_LONG_LONG_FORMAT
24674 instead of "ll".
24675 * config/i386/i386.c (ix86_print_operand): Ditto.
24676
24677 2013-02-07 Vladimir Makarov <vmakarov@redhat.com>
24678
24679 * lra-constraints.c (process_alt_operands): Fix recently added comment.
24680
24681 2013-02-07 Vladimir Makarov <vmakarov@redhat.com>
24682
24683 PR rtl-optimization/56225
24684 * lra-constraints.c (process_alt_operands): Check that reload hard
24685 reg can hold value for strict_low_part.
24686
24687 2013-02-07 Jakub Jelinek <jakub@redhat.com>
24688
24689 PR debug/56154
24690 * dwarf2out.c (dwarf2_debug_hooks): Set end_function hook to
24691 dwarf2out_end_function.
24692 (in_first_function_p, maybe_at_text_label_p,
24693 first_loclabel_num_not_at_text_label): New variables.
24694 (dwarf2out_var_location): In the first function find out
24695 lowest loclabel_num N where .LVLN is known not to be equal to .Ltext0.
24696 (find_empty_loc_ranges_at_text_label, dwarf2out_end_function): New
24697 functions.
24698
24699 2013-02-07 Eric Botcazou <ebotcazou@adacore.com>
24700
24701 PR rtl-optimization/56178
24702 * cse.c (cse_insn): Do not create a REG_EQUAL note if the source is a
24703 SUBREG of a register. Tidy up related block of code.
24704 * fwprop.c (forward_propagate_and_simplify): Do not create a REG_EQUAL
24705 note if the source is a register or a SUBREG of a register.
24706
24707 2013-02-07 Jakub Jelinek <jakub@redhat.com>
24708
24709 PR target/56228
24710 * config/rs6000/rs6000.md (ptrm): New mode attr.
24711 (call_indirect_aix<ptrsize>, call_indirect_aix<ptrsize>_nor11,
24712 call_value_indirect_aix<pttrsize>,
24713 call_value_indirect_aix<pttrsize>_nor11): Use <ptrm> instead of
24714 m in constraints.
24715
24716 2013-02-07 Michael Haubenwallner <michael.haubenwallner@salomon.at>
24717
24718 * collect2.c (main): Set aix64_flag for -G and -bsvr4 too, disable
24719 if -bnortl. Convert to strcmp and strncmp.
24720
24721 2013-02-07 Alan Modra <amodra@gmail.com>
24722
24723 PR target/54009
24724 * config/rs6000/rs6000.c (mem_operand_gpr): Check that LO_SUM
24725 addresses won't wrap when offsetting.
24726 (rs6000_secondary_reload): Provide secondary reloads needed for
24727 wrapping LO_SUM addresses.
24728
24729 2013-02-06 Thomas Schwinge <thomas@codesourcery.com>
24730
24731 * config/gnu.h (GNU_USER_TARGET_OS_CPP_BUILTINS): Never define
24732 MACH, just __MACH__.
24733
24734 2013-02-06 Richard Biener <rguenther@suse.de>
24735
24736 * tracer.c (tracer): Mark loops with LOOPS_NEED_FIXUP
24737 instead of calling fix_loop_structure.
24738
24739 2013-02-06 Jakub Jelinek <jakub@redhat.com>
24740
24741 PR middle-end/56217
24742 * omp-low.c (use_pointer_for_field): Return false if
24743 lower_send_shared_vars doesn't generate any copy-out code.
24744
24745 2013-02-06 Tom de Vries <tom@codesourcery.com>
24746
24747 PR rtl-optimization/56131
24748 * cfgrtl.c (delete_insn): Use NOTE_BASIC_BLOCK instead of BLOCK_FOR_INSN
24749 to get the bb of a NOTE_INSN_BASIC_BLOCK. Handle the case that the bb
24750 of the label is NULL. Add comment.
24751
24752 2013-02-05 Jakub Jelinek <jakub@redhat.com>
24753
24754 * tree.h (struct tree_decl_with_vis): Remove thread_local field.
24755
24756 PR sanitizer/55374
24757 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Define.
24758 (STATIC_LIBTSAN_LIBS): Likewise.
24759 * gcc.c (ADD_STATIC_LIBTSAN_LIBS, LIBTSAN_EARLY_SPEC): Define.
24760 (LIBTSAN_SPEC): Add ADD_STATIC_LIBTSAN_LIBS, if LIBTSAN_EARLY_SPEC
24761 is defined, don't add anything else beyond that.
24762 (SANITIZER_EARLY_SPEC, SANITIZER_SPEC): Define.
24763 (LINK_COMMAND_SPEC): Use them.
24764
24765 PR tree-optimization/56205
24766 * tree-stdarg.c (check_all_va_list_escapes): Return true if
24767 there are any PHI nodes that set non-va_list_escape_vars SSA_NAME
24768 and some va_list_escape_vars SSA_NAME appears in some PHI argument.
24769
24770 2013-02-05 Richard Biener <rguenther@suse.de>
24771
24772 PR tree-optimization/53342
24773 PR tree-optimization/53185
24774 * tree-vectorizer.h (vect_check_strided_load): Remove.
24775 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do
24776 not disallow peeling for vectorized strided loads.
24777 (vect_check_strided_load): Make static and simplify.
24778 (vect_analyze_data_refs): Adjust.
24779 * tree-vect-stmts.c (vectorizable_load): Handle peeled loops
24780 correctly when vectorizing strided loads.
24781
24782 2013-02-05 Richard Biener <rguenther@suse.de>
24783
24784 * doc/install.texi: Refer to ISL, not PPL.
24785
24786 2013-02-05 Jan Hubicka <jh@suse.cz>
24787
24788 PR tree-optimization/55789
24789 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): Drop to 1.
24790
24791 2013-02-05 Jan Hubicka <jh@suse.cz>
24792
24793 PR tree-optimization/55789
24794 * cgraphclones.c (cgraph_remove_node_and_inline_clones): Remove
24795 the dead call anyway.
24796
24797 2013-02-05 Eric Botcazou <ebotcazou@adacore.com>
24798
24799 PR sanitizer/55374
24800 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Add missing guard.
24801
24802 2013-02-04 Alexander Potapenko <glider@google.com>
24803 Jack Howarth <howarth@bromo.med.uc.edu>
24804 Jakub Jelinek <jakub@redhat.com>
24805
24806 PR sanitizer/55617
24807 * config/darwin.c (sort_ctor_records): Stabilized qsort
24808 on constructor priority by using original position.
24809 (finalize_ctors): New routine to sort constructors by
24810 priority before use in assemble_integer.
24811 (machopic_asm_out_constructor): Use finalize_ctors if needed.
24812
24813 2013-02-04 Jakub Jelinek <jakub@redhat.com>
24814
24815 PR libstdc++/54314
24816 * config/i386/winnt.c (i386_pe_assemble_visibility): Don't warn
24817 about visibility on artificial decls.
24818 * config/sol2.c (solaris_assemble_visibility): Likewise.
24819
24820 2013-02-04 Kai Tietz <ktietz@redhat.com>
24821
24822 PR target/56186
24823 * config/i386/i386.c (function_value_ms_64): Add additional valtype
24824 argument and improve checking of return-argument types for 16-byte
24825 modes.
24826 (ix86_function_value_1): Add additional valtype argument on call
24827 of function_value_64.
24828 (return_in_memory_ms_64): Sync 16-byte sized mode handling with
24829 handling infunction_value_64 function.
24830
24831 2013-02-04 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
24832
24833 * reload.c (subst_reloads): Fix DEBUG_RELOAD build issue.
24834
24835 2013-02-04 Richard Biener <rguenther@suse.de>
24836
24837 PR tree-optimization/56188
24838 * tree-ssa-structalias.c (label_visit): Consider case with
24839 initially non-empty points-to set.
24840 (perform_var_substitution): Dump node mapping and clean up.
24841
24842 2013-02-04 Richard Guenther <rguenther@suse.de>
24843
24844 PR lto/56168
24845 * lto-symtab.c (lto_symtab_merge_decls_1): Make non-builtin
24846 node prevail as last resort.
24847 (lto_symtab_merge_decls): Remove guard on LTRANS here.
24848 (lto_symtab_prevailing_decl): Builtins are their own prevailing decl.
24849
24850 2013-02-04 Richard Biener <rguenther@suse.de>
24851
24852 PR tree-optimization/56113
24853 * tree-ssa-structalias.c (equiv_class_lookup, equiv_class_add):
24854 Merge into ...
24855 (equiv_class_lookup_or_add): ... this.
24856 (label_visit): Adjust and fix error in previous patch.
24857 (perform_var_substitution): Adjust.
24858
24859 2013-02-03 Oleg Endo <olegendo@gcc.gnu.org>
24860
24861 * config/sh/divtab.c: Fix formatting and comments throughout the file.
24862 * config/sh/sh4-300.md: Likewise.
24863 * config/sh/sh4a.md: Likewise.
24864 * config/sh/constraints.md: Likewise.
24865 * config/sh/sh.md: Likewise.
24866 * config/sh/netbsd-elf.h: Likewise.
24867 * config/sh/predicates.md: Likewise.
24868 * config/sh/sh-protos.h: Likewise.
24869 * config/sh/ushmedia.h: Likewise.
24870 * config/sh/linux.h: Likewise.
24871 * config/sh/sh.c: Likewise.
24872 * config/sh/superh.h: Likewise.
24873 * config/sh/elf.h: Likewise.
24874 * config/sh/sh4.md: Likewise.
24875 * config/sh/sh.h: Likewise.
24876
24877 2013-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
24878
24879 * config/pa/constraints.md: Adjust unused letters. Change "T"
24880 constraint to match_test floating_point_store_memory_operand().
24881 * config/pa/predicates.md (reg_plus_base_memory_operand): New.
24882 (base14_operand): New.
24883 (floating_point_store_memory_operand): New.
24884 (integer_store_memory_operand): Revise to use base14_operand and
24885 reg_plus_base_memory_operand.
24886 (move_dest_operand): Allow symbolic_memory_operands.
24887 (symbolic_memory_operand): Check for LO_SOM.
24888 (symbolic_operand): Change default case to break.
24889 * config/pa/pa.md: Remove unamed DFmode and SFmode patterns to force
24890 CONST_DOUBLE values to be reloaded by putting them into memory when
24891 the destination is a floating point register.
24892 (movdf): Remove code to handle CONST_DOUBLE.
24893 (movsf): Likewise.
24894 (reload_indf_r1): New.
24895 (reload_insf_r1): New.
24896 Consistently use "Q" and "T" constraints with integer and floating
24897 point move instructions, respectively.
24898 (movdi): Remove FAIL.
24899 Change predicate for source operand unamed DImode move from
24900 general_operand to move_src_operand.
24901 (umulsidi3): Change predicate for destination operand to
24902 register_operand.
24903 Likewise for similar unamed patterns.
24904 * config/pa/pa-protos.h (pa_legitimize_reload_address): Declare.
24905 * config/pa/pa.c (pa_symbolic_expression_p): Remove extra parenthesis.
24906 (hppa_legitimize_address): Simplify mask calculation.
24907 (pa_emit_move_sequence): Revised handling of secondary reloads from
24908 REG+D addresses for floating point loads and stores. Directly handle
24909 loading CONST0_RTX (mode) to a floating point register.
24910 (pa_secondary_reload): Handle reloading DF and SFmode constant values
24911 to floating point registers. Don't restrict secondary reloads to
24912 floating point registers to integer modes. Revise some comments and
24913 cleanup some code.
24914 (TARGET_LEGITIMATE_ADDRESS_P): Define.
24915 (pa_legitimate_address_p): New.
24916 (pa_legitimize_reload_address): New.
24917 * config/pa/pa.h (STRICT_REG_OK_FOR_INDEX_P): New.
24918 (STRICT_REG_OK_FOR_BASE_P): New.
24919 (GO_IF_LEGITIMATE_ADDRESS): Delete. Update some related comments.
24920 (LEGITIMIZE_RELOAD_ADDRESS): Revise to use pa_legitimize_reload_address.
24921
24922 2013-02-03 David Edelsohn <dje.gcc@gmail.com>
24923 Andrew Dixie <andrewd@gentrack.com>
24924
24925 * collect2.c (GCC_CHECK_HDR): Do not scan objects with F_LOADONLY
24926 flag set.
24927
24928 2013-02-03 Richard Sandiford <rdsandiford@googlemail.com>
24929
24930 * expmed.c (extract_bit_field_1): Pass the full width of the
24931 structure to get_best_reg_extraction_insn.
24932
24933 2013-02-01 David Edelsohn <dje.gcc@gmail.com>
24934
24935 PR target/54601
24936 * configure.ac (use_cxa_atexit): Add AIX.
24937 * configure: Regenerate.
24938
24939 * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtcxa.o.
24940
24941 2013-02-01 Jakub Jelinek <jakub@redhat.com>
24942
24943 PR debug/54793
24944 * final.c (need_profile_function): New variable.
24945 (final_start_function): Drop ATTRIBUTE_UNUSED from first argument.
24946 If first of NOTE_INSN_BASIC_BLOCK or NOTE_INSN_FUNCTION_BEG
24947 is only preceeded by NOTE_INSN_VAR_LOCATION or NOTE_INSN_DELETED
24948 notes, targetm.asm_out.function_prologue doesn't emit anything,
24949 HAVE_prologue and profiler should be emitted before prologue,
24950 set need_profile_function instead of emitting it.
24951 (final_scan_insn): If need_profile_function, emit
24952 profile_function on the first NOTE_INSN_BASIC_BLOCK or
24953 NOTE_INSN_FUNCTION_BEG note.
24954
24955 2013-02-01 Richard Henderson <rth@redhat.com>
24956
24957 * config/rs6000/rs6000.md (smulditi3): New.
24958 (umulditi3): New.
24959
24960 * config/alpha/alpha.md (umulditi3): New.
24961
24962 2013-02-01 David Edelsohn <dje.gcc@gmail.com>
24963
24964 * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_COMMON): Use floor_log2.
24965 (ASM_OUTPUT_ALIGNED_LOCAL): New.
24966
24967 2013-02-01 Richard Biener <rguenther@suse.de>
24968
24969 PR tree-optimization/56113
24970 * tree-ssa-structalias.c (label_visit): Reduce work for
24971 single-predecessor nodes.
24972
24973 2013-02-01 Eric Botcazou <ebotcazou@adacore.com>
24974
24975 * fold-const.c (make_range_step) <TRUTH_NOT_EXPR>: Bail out if the
24976 range isn't testing for zero.
24977
24978 2013-01-31 Steven Bosscher <steven@gcc.gnu.org>
24979
24980 PR middle-end/56113
24981 * fwprop.c (fwprop_init): Set up loops without CFG modifications.
24982
24983 2013-01-31 Hiroyuki Ono <hiroyuki.ono.jc@renesas.com>
24984 Nick Clifton <nickc@redhat.com>
24985
24986 * config/v850/constraints.md (Q): Define as a memory constraint.
24987 * config/v850/predicates.md (label_ref_operand): New predicate.
24988 (e3v5_shift_operand): New predicate.
24989 (ior_operator): New predicate.
24990 * config/v850/t-v850: Add e3v5 multilib.
24991 * config/v850/v850-protos.h (v850_adjust_insn_length): Prototype.
24992 (v850_gen_movdi): Prototype.
24993 * config/v850/v850.c: Add support for e3v5 architecture.
24994 Rename all uses of TARGET_V850E || TARGET_V850E2_ALL to
24995 TARGET_V850E_UP.
24996 (construct_save_jarl): Add e3v5 long JARL support.
24997 (v850_adjust_insn_length): New function. Adjust length of call
24998 insns when using e3v5 instructions.
24999 (v850_gen_movdi): New function: Generate instructions to move a
25000 DImode value.
25001 * config/v850/v850.h (TARGET_CPU_v850e3v5): Define.
25002 (CPP_SPEC): Define __v850e3v5__ as appropriate.
25003 (TARGET_USE_FPU): Enable for e3v5.
25004 (CONST_OK_FOR_W): New macro.
25005 (ADJUST_INSN_LENGTH): Define.
25006 * config/v850/v850.md (UNSPEC_LOOP): Define.
25007 (attr cpu): Add v850e3v5.
25008 Rename all uses of TARGET_V850E2 to TARGET_V850E2V3_UP.
25009 (movdi): New pattern.
25010 (movdi_internal): New pattern.
25011 (cbranchsf4): Conditionalize on TARGET_USE_FPU.
25012 (cbranchdf4): Conditionalize on TARGET_USE_FPU.
25013 (cstoresf4): Likewise.
25014 (cstoredf4): Likewise.
25015 (insv): New pattern.
25016 (rotlso3_a): New pattern.
25017 (rotlsi3_b): New pattern
25018 (rotlsi3_v850e3v5): New pattern.
25019 (doloop_begin): New pattern.
25020 (fix_loop_counter): New pattern.
25021 (doloop_end): New pattern.
25022 (branch_normal): Add e3v5 long branch support.
25023 (branch_invert): Likewise.
25024 (branch_z_normal): Likewise.
25025 (branch_z_invert): Likewise.
25026 (branch_nz_normal): Likewise.
25027 (branch_nz_invert): Likewise.
25028 (call_internal_short): Add e3v5 register-indirect JARL support.
25029 (call_internal_long): Likewise.
25030 (call_value_internal_short): Likewise.
25031 (call_value_internal_long): Likewise.
25032 * config/v850/v850.opt (mv850e3v5, mv850e2v4): New options.
25033 (mloop): New option.
25034 * config.gcc: Add support for configuring v840e3v5 target.
25035 * doc/invoke.texi: Document new v850 specific command line options.
25036
25037 2013-01-31 Paul Koning <ni1d@arrl.net>
25038
25039 PR debug/55059
25040 PR debug/54508
25041 * dwarf2out.c (prune_unused_types_mark): Mark all of parent's
25042 children if parent is a class.
25043 (prune_unused_types_prune): Don't add DW_AT_declaration.
25044
25045 2013-01-31 Richard Biener <rguenther@suse.de>
25046
25047 PR tree-optimization/56157
25048 * tree-vect-slp.c (vect_get_slp_defs): More thoroughly try to
25049 match up operand with SLP child.
25050
25051 2013-01-31 Jason Merrill <jason@redhat.com>
25052
25053 PR debug/54410
25054 * dwarf2out.c (gen_struct_or_union_type_die): Always schedule template
25055 parameters the first time.
25056 (gen_scheduled_generic_parms_dies): Check completeness here.
25057
25058 2013-01-31 Richard Biener <rguenther@suse.de>
25059
25060 PR middle-end/53073
25061 * common.opt (faggressive-loop-optimizations): New flag,
25062 enabled by default.
25063 * doc/invoke.texi (faggressive-loop-optimizations): Document.
25064 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Guard
25065 infer_loop_bounds_from_undefined by it.
25066
25067 2013-01-31 Richard Biener <rguenther@suse.de>
25068
25069 PR tree-optimization/56150
25070 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Do not
25071 visit virtual operands.
25072 (find_uses_to_rename_bb): Likewise.
25073
25074 2013-01-31 Richard Biener <rguenther@suse.de>
25075
25076 PR tree-optimization/56150
25077 * tree-ssa-tail-merge.c (gimple_equal_p): Properly handle
25078 mixed store non-store stmts.
25079
25080 2013-01-30 Jakub Jelinek <jakub@redhat.com>
25081
25082 PR sanitizer/55374
25083 * gcc.c (LIBASAN_SPEC): Define just to ADD_STATIC_LIBASAN_LIBS if
25084 LIBASAN_EARLY_SPEC is defined.
25085 (LIBASAN_EARLY_SPEC): Define to empty string if not already defined.
25086 (LINK_COMMAND_SPEC): Add LIBASAN_EARLY_SPEC for -fsanitize=address,
25087 before %o.
25088 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Define.
25089
25090 PR c++/55742
25091 * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Diagnose
25092 invalid args instead of ICEing on it.
25093 (ix86_valid_target_attribute_tree): Return error_mark_node if
25094 ix86_valid_target_attribute_inner_p failed.
25095 (ix86_valid_target_attribute_p): Return false only if
25096 ix86_valid_target_attribute_tree returned error_mark_node. Allow
25097 target("default") attribute.
25098 (sorted_attr_string): Change argument from const char * to tree,
25099 merge in all target attribute arguments rather than just one.
25100 Formatting fix. Use XNEWVEC instead of xmalloc and XDELETEVEC
25101 instead of free. Avoid using strcat.
25102 (ix86_mangle_function_version_assembler_name): Mangle
25103 target("default") as if no target attribute is present. Adjust
25104 sorted_attr_string caller. Avoid leaking memory. Use XNEWVEC
25105 instead of xmalloc and XDELETEVEC instead of free.
25106 (ix86_function_versions): Don't return true if one of the decls
25107 doesn't have target attribute. If they don't and one of the decls
25108 is DECL_FUNCTION_VERSIONED, report an error. Adjust
25109 sorted_attr_string caller. Use XDELETEVEC instead of free.
25110 (ix86_supports_function_versions): Remove.
25111 (make_name): Fix up formatting.
25112 (make_dispatcher_decl): Remove resolver_name and its initialization.
25113 Avoid leaking memory.
25114 (is_function_default_version): Return true if there is
25115 target("default") attribute rather than no target attribute at all.
25116 (make_resolver_func): Avoid leaking memory.
25117 (ix86_generate_version_dispatcher_body): Likewise.
25118 (TARGET_OPTION_SUPPORTS_FUNCTION_VERSIONS): Remove.
25119 * target.def (supports_function_versions): Remove.
25120 * doc/tm.texi.in (SUPPORTS_FUNCTION_VERSIONS): Remove.
25121 * doc/tm.texi: Regenerated.
25122
25123 2013-01-30 Vladimir Makarov <vmakarov@redhat.com>
25124
25125 PR rtl-optimization/56144
25126 * lra-constraints.c (get_reload_reg): Don't reuse reload pseudo
25127 for values with side effects.
25128
25129 2013-01-30 Richard Biener <rguenther@suse.de>
25130
25131 * sparseset.h (sparseset_bit_p): Use gcc_checking_assert.
25132 (sparseset_pop): Likewise.
25133 * cfganal.c (compute_idf): Likewise. Increase work-stack size
25134 to be able to use quick_push in the worker loop.
25135
25136 2013-01-30 Marek Polacek <polacek@redhat.com>
25137
25138 * cfgcleanup.c (cleanup_cfg): Don't mark affected BBs.
25139
25140 2013-01-30 Richard Biener <rguenther@suse.de>
25141
25142 PR lto/56147
25143 * lto-symtab.c (lto_symtab_merge_decls_1): Guard DECL_BUILT_IN check.
25144
25145 2013-01-30 Georg-Johann Lay <avr@gjlay.de>
25146
25147 PR tree-optimization/56064
25148 * fixed-value.c (fixed_from_double_int): New function.
25149 * fixed-value.h (fixed_from_double_int): New prototype.
25150 (const_fixed_from_double_int): New static inline function.
25151 * fold-const.c (native_interpret_fixed): New static function.
25152 (native_interpret_expr) <FIXED_POINT_TYPE>: Use it.
25153 (can_native_interpret_type_p) <FIXED_POINT_TYPE>: Return true.
25154 (native_encode_fixed): New static function.
25155 (native_encode_expr) <FIXED_CST>: Use it.
25156 (native_interpret_int): Move double_int worker code to...
25157 * double-int.c (double_int::from_buffer): ...this new static method.
25158 * double-int.h (double_int::from_buffer): Prototype it.
25159
25160 2013-01-30 Richard Biener <rguenther@suse.de>
25161
25162 * tree-ssa-structalias.c (final_solutions, final_solutions_obstack):
25163 New pointer-map and obstack.
25164 (init_alias_vars): Allocate pointer-map and obstack.
25165 (delete_points_to_sets): Free them.
25166 (find_what_var_points_to): Cache result.
25167 (find_what_p_points_to): Adjust for changed interface of
25168 find_what_var_points_to.
25169 (compute_points_to_sets): Likewise.
25170 (ipa_pta_execute): Likewise.
25171
25172 2013-01-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25173
25174 * configure.ac (HAVE_AS_SPARC_NOBITS): New test.
25175 * configure: Regenerate.
25176 * config.in: Regenerate.
25177 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Emit
25178 #nobits/#progbits if supported.
25179
25180 2013-01-29 Oleg Endo <olegendo@gcc.gnu.org>
25181
25182 PR target/56121
25183 * config/sh/sh.md (bclr_m2a, bset_m2a, bst_m2a, bld_m2a, bldsign_m2a,
25184 bld_reg, *bld_regqi, band_m2a, bandreg_m2a, bor_m2a, borreg_m2a,
25185 bxor_m2a, bxorreg_m2a): Add satisfies_constraint_K03 condition.
25186
25187 2013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
25188
25189 * config/arm/cortex-a7.md (cortex_a7_neon, cortex_a7_all): Remove.
25190 (cortex_a7_idiv): Use cortex_a7_both instead of cortex_a7_all.
25191
25192 2013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
25193
25194 * config/arm/arm.c (cortexa7_younger): Return true for TYPE_CALL.
25195 * config/arm/cortex-a7.md (cortex_a7_call): Update required units.
25196
25197 2013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
25198
25199 * config/arm/arm-protos.h (arm_mac_accumulator_is_result): New
25200 declaration.
25201 * config/arm/arm.c (arm_mac_accumulator_is_result): New function.
25202 * config/arm/cortex-a7.md: New bypasses using
25203 arm_mac_accumulator_is_result.
25204
25205 2013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
25206
25207 * config/arm/cortex-a7.md (cortex_a7_neon_mul): New reservation.
25208 (cortex_a7_neon_mla): Likewise.
25209 (cortex_a7_fpfmad): New reservation.
25210 (cortex_a7_fpmacs): Use ffmas and update required units.
25211 (cortex_a7_fpmuld): Update required units and latency.
25212 (cortex_a7_fpmacd): Likewise.
25213 (cortex_a7_fdivs, cortex_a7_fdivd): Likewise.
25214 (cortex_a7_neon). Likewise.
25215 (bypass) Update participating units.
25216
25217 2013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
25218
25219 * config/arm/arm.md (type): Add ffmas and ffmad to "type" attribute.
25220 * config/arm/vfp.md (fma,fmsub,fnmsub,fnmadd): Change type
25221 from fmac to ffma.
25222 * config/arm/vfp11.md (vfp_farith): Use ffmas.
25223 (vfp_fmul): Use ffmad.
25224 * config/arm/cortex-r4f.md (cortex_r4_fmacs): Use ffmas.
25225 (cortex_r4_fmacd): Use ffmad.
25226 * config/arm/cortex-m4-fpu.md (cortex_m4_fmacs): Use ffmas.
25227 * config/arm/cortex-a9.md (cortex_a9_fmacs): Use ffmas.
25228 (cortex_a9_fmacd): Use ffmad.
25229 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_macs): Use ffmas.
25230 (cortex_a8_vfp_macd): Use ffmad.
25231 * config/arm/cortex-a5.md (cortex_a5_fpmacs): Use ffmas.
25232 (cortex_a5_fpmacd): Use ffmad.
25233 * config/arm/cortex-a15-neon.md (cortex_a15_vfp_macs) Use ffmas.
25234 (cortex_a15_vfp_macd): Use ffmad.
25235 * config/arm/arm1020e.md (v10_fmul): Use ffmas and ffmad.
25236
25237 2013-01-29 Jason Merrill <jason@redhat.com>
25238
25239 PR libstdc++/54314
25240 * varasm.c (default_assemble_visibility): Don't warn about
25241 visibility on artificial decls.
25242
25243 2013-01-29 Richard Biener <rguenther@suse.de>
25244
25245 PR tree-optimization/56113
25246 * tree-ssa-structalias.c (equiv_class_lookup): Also return
25247 the bitmap leader.
25248 (label_visit): Free duplicate bitmaps and record the leader instead.
25249 (perform_var_substitution): Adjust.
25250
25251 2013-01-29 Richard Biener <rguenther@suse.de>
25252
25253 PR tree-optimization/55270
25254 * tree-ssa-dom.c (eliminate_degenerate_phis): If we changed
25255 the CFG, schedule loops for fixup.
25256
25257 2013-01-29 Nick Clifton <nickc@redhat.com>
25258
25259 * config/rl78/rl78.c (rl78_regno_mode_code_ok_for_base_p): Allow
25260 SP_REG.
25261
25262 2013-01-28 Leif Ekblad <leif@rdos.net>
25263
25264 * config.gcc (i[34567]86-*-rdos*, x86_64-*-rdos*): New targets.
25265 * config/i386/i386.h (TARGET_RDOS): New macro.
25266 (DEFAULT_LARGE_SECTION_THRESHOLD): New macro.
25267 * config/i386/i386.c (ix86_option_override_internal): For 64bit
25268 TARGET_RDOS, set ix86_cmodel to CM_MEDIUM_PIC and flag_pic to 1.
25269 * config/i386/i386.opt (mlarge-data-threshold): Initialize to
25270 DEFAULT_LARGE_SECTION_THRESHOLD.
25271 * config/i386/i386.md (R14_REG, R15_REG): New constants.
25272 * config/i386/rdos.h: New file.
25273 * config/i386/rdos64.h: New file.
25274
25275 2013-01-28 Bernd Schmidt <bernds@codesourcery.com>
25276
25277 PR other/54814
25278 * reload.c (find_valid_class_1): Use in_hard_reg_set_p instead of
25279 TEST_HARD_REG_BIT.
25280
25281 2013-01-28 Jakub Jelinek <jakub@redhat.com>
25282
25283 PR rtl-optimization/56117
25284 * sched-deps.c (sched_analyze_2) <case PREFETCH>: For use_cselib
25285 call cselib_lookup_from_insn on the MEM before calling
25286 add_insn_mem_dependence.
25287
25288 2013-01-28 Richard Biener <rguenther@suse.de>
25289
25290 * tree-inline.c (remap_gimple_stmt): Do not assing a BLOCK
25291 to a stmt that didn't have one.
25292 (copy_phis_for_bb): Likewise for PHI arguments.
25293 (copy_debug_stmt): Likewise for debug stmts.
25294
25295 2013-01-28 Richard Biener <rguenther@suse.de>
25296
25297 PR tree-optimization/56034
25298 * tree-loop-distribution.c (enum partition_kind): Add PKIND_REDUCTION.
25299 (partition_builtin_p): Adjust.
25300 (generate_code_for_partition): Handle PKIND_REDUCTION. Assert
25301 it is the last partition.
25302 (rdg_flag_uses): Check SSA_NAME_IS_DEFAULT_DEF before looking
25303 up the vertex for the definition.
25304 (classify_partition): Classify whether a partition is a
25305 PKIND_REDUCTION, thus has uses outside of the loop.
25306 (ldist_gen): Inherit PKIND_REDUCTION when merging partitions.
25307 Merge all PKIND_REDUCTION partitions into the last partition.
25308 (tree_loop_distribution): Seed partitions from reductions as well.
25309
25310 2013-01-28 Jakub Jelinek <jakub@redhat.com>
25311
25312 PR tree-optimization/56125
25313 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Don't optimize
25314 pow(x,c) into sqrt(x) * powi(x, n/2) or
25315 1.0 / (sqrt(x) * powi(x, abs(n/2))) if c is an integer or when
25316 optimizing for size.
25317 Don't optimize pow(x,c) into powi(x, n/3) * powi(cbrt(x), n%3) or
25318 1.0 / (powi(x, abs(n)/3) * powi(cbrt(x), abs(n)%3)) if 2c is an
25319 integer.
25320
25321 PR tree-optimization/56094
25322 * gimplify.c (force_gimple_operand_1): Temporarily set input_location
25323 to UNKNOWN_LOCATION while gimplifying expr.
25324
25325 2013-01-27 Uros Bizjak <ubizjak@gmail.com>
25326
25327 PR target/56114
25328 * config/i386/i386.md (*movabs<mode>_1): Add square brackets around
25329 operand 0 in movabs insn template for -masm=intel asm alternative.
25330 (*movabs<mode>_2): Ditto for operand 1.
25331
25332 2013-01-26 David Holsgrove <david.holsgrove@xilinx.com>
25333
25334 PR target/54663
25335 * config.gcc (microblaze*-linux*): Add tmake_file to allow building
25336 of microblaze-c.o
25337
25338 2013-01-26 Edgar E. Iglesias <edgar.iglesias@gmail.com>
25339
25340 * config.gcc (microblaze*-*-*): Rename microblaze*-*-elf, update
25341 tm_file.
25342
25343 2013-01-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
25344
25345 * config/aarch64/aarch64.c (TARGET_FIXED_CONDITION_CODE_REGS):
25346 Undef to avoid warning.
25347
25348 2013-01-25 Michael Haubenwallner <michael.haubenwallner@salomon.at>
25349
25350 * configure.ac (gcc_cv_ld_static_dynamic): Define for AIX native ld.
25351 * configure: Regenerate.
25352
25353 2013-01-25 Jakub Jelinek <jakub@redhat.com>
25354
25355 PR tree-optimization/56098
25356 * tree-ssa-phiopt.c (nt_init_block): Don't call add_or_mark_expr
25357 for stmts with volatile ops.
25358 (cond_store_replacement): Don't optimize if assign has volatile ops.
25359 (cond_if_else_store_replacement_1): Don't optimize if either
25360 then_assign or else_assign have volatile ops.
25361 (hoist_adjacent_loads): Don't optimize if either def1 or def2 have
25362 volatile ops.
25363
25364 2013-01-25 Georg-Johann Lay <avr@gjlay.de>
25365
25366 * doc/invoke.texi (AVR Built-in Macros): Document __XMEGA__.
25367
25368 2013-01-25 Georg-Johann Lay <avr@gjlay.de>
25369
25370 * doc/extend.texi (Example of asm with clobbered asm reg): Fix
25371 missing ':' in asm example.
25372
25373 2013-01-25 Tejas Belagod <tejas.belagod@arm.com>
25374
25375 * config/aarch64/aarch64-simd-builtins.def: Separate sq<r>dmulh_lane
25376 entries into lane and laneq entries.
25377 * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_lane<mode>):
25378 Remove AdvSIMD scalar modes.
25379 (aarch64_sq<r>dmulh_laneq<mode>): New.
25380 (aarch64_sq<r>dmulh_lane<mode>): New RTL pattern for Scalar AdvSIMD
25381 modes.
25382 * config/aarch64/arm_neon.h: Fix all the vq<r>dmulh_lane* intrinsics'
25383 builtin implementations to relfect changes in RTL in aarch64-simd.md.
25384 * config/aarch64/iterators.md (VCOND): New.
25385 (VCONQ): New.
25386
25387 2013-01-25 Georg-Johann Lay <avr@gjlay.de>
25388
25389 PR target/54222
25390 * config/avr/builtins.def (DEF_BUILTIN): Add LIBNAME argument.
25391 Add NULL LIBNAME argument to existing definitions.
25392 (ABSHR, ABSR, ABSLR, ABSLLR, ABSHK, ABSK, ABSLK, ABSLLK): New.
25393 * config/avr/avr-c.c (DEF_BUILTIN): Add LIBNAME argument.
25394 * config/avr/avr.c (DEF_BUILTIN): Same.
25395 (avr_init_builtins): Pass down LIBNAME to add_builtin_function.
25396 (avr_expand_builtin): Expand to a vanilla call if a libgcc
25397 implementation is available (DECL_ASSEMBLER_NAME is set).
25398 (avr_fold_absfx): New static function.
25399 (avr_fold_builtin): Use it to handle: AVR_BUILTIN_ABSHR,
25400 AVR_BUILTIN_ABSR, AVR_BUILTIN_ABSLR, AVR_BUILTIN_ABSLLR,
25401 AVR_BUILTIN_ABSHK, AVR_BUILTIN_ABSK, AVR_BUILTIN_ABSLK,
25402 AVR_BUILTIN_ABSLLK.
25403 * config/avr/stdfix.h (abshr, absr, abslr, absllr)
25404 (abshk, absk, abslk, absllk): Provide as static inline functions.
25405
25406 2013-01-25 Marek Polacek <polacek@redhat.com>
25407
25408 PR tree-optimization/56035
25409 * cfgloopmanip.c (fix_loop_structure): Remove redundant condition.
25410
25411 2012-01-24 Uros Bizjak <ubizjak@gmail.com>
25412
25413 * config/i386/i386.md (*movti_internal_rex64): Add (o,e) alternative.
25414 (*movtf_internal_rex64): Add (!o,C) alternative
25415 (*movxf_internal_rex64): Ditto.
25416 (*movdf_internal_rex64): Add (?r,C) and (?m,C) alternatives.
25417
25418 2013-01-24 Shenghou Ma <minux.ma@gmail.com>
25419
25420 * doc/invoke.texi: fix typo.
25421 * doc/objc.texi: fix typo.
25422
25423 2013-01-24 Richard Sandiford <rdsandiford@googlemail.com>
25424
25425 * config/mips/mips.md (*and<mode>3_mips16): Use the "W" constraint
25426 for the first two alternatives.
25427
25428 2013-01-24 Diego Novillo <dnovillo@google.com>
25429
25430 * Makefile.in (GGC): Remove. Replace all instances with ggc-page.o.
25431 (ggc-zone.o): Remove.
25432 * configure.ac: Remove option --with-gc.
25433 * configure: Re-generate.
25434 * doc/install.texi: Remove documentation for --with-gc.
25435 * gengtype.c (write_enum_defn): Remove. Update all users.
25436 (write_Types_process_field): Remove generation of gt_e_* argument.
25437 (output_type_enum): Remove. Update all users.
25438 (write_enum_defn): Remove. Update all users.
25439 (enum alloc_zone): Remove. Update all users.
25440 (write_splay_tree_allocator_def): Remove generation of gt_e_* argument.
25441 * ggc-common.c (ggc_splay_alloc): Remove first argument.
25442 Update all callers.
25443 (struct ptr_data): Remove field TYPE. Update all users.
25444 (gt_pch_note_object): Remove argument TYPE. Update all users.
25445 * ggc-internal.h (ggc_pch_alloc_object): Remove last argument.
25446 Update all users.
25447 * ggc-none.c (ggc_alloc_typed_stat): Remove.
25448 (struct alloc_zone): Remove.
25449 (ggc_internal_alloc_zone_stat): Remove.
25450 (ggc_internal_cleared_alloc_zone_stat): Remove.
25451 * ggc-page.c (ggc_alloc_typed_stat): Remove.
25452 (ggc_pch_count_object): Remove last argument. Update all users.
25453 (ggc_pch_alloc_object): Remove last argument. Update all users.
25454 (struct alloc_zone): Remove.
25455 * ggc-zone.c: Remove.
25456 * ggc.h (gt_pch_note_object): Remove last argument. Update all users.
25457 (struct alloc_zone): Remove.
25458 (ggc_alloc_typed_stat): Remove.
25459 (ggc_alloc_typed): Remove.
25460 (ggc_splay_alloc): Remove first argument.
25461 (rtl_zone): Remove. Update all users.
25462 (tree_zone): Remove. Update all users.
25463 (tree_id_zone): Remove. Update all users.
25464 (ggc_internal_zone_alloc_stat): Remove. Update all users.
25465 (ggc_internal_zone_cleared_alloc_stat): Remove. Update all users.
25466 (ggc_internal_zone_vec_alloc_stat): Remove. Update all users.
25467 * tree-ssanames.c: Remove references to zone allocator in comments.
25468
25469 2013-01-24 Georg-Johann Lay <avr@gjlay.de>
25470
25471 * config/avr/avr.c (avr_out_fract): Make register numbers that
25472 might be outside of source operand signed.
25473
25474 2013-01-24 Uros Bizjak <ubizjak@gmail.com>
25475
25476 * config/i386/constraints.md (Yf): New constraint.
25477 * config/i386/i386.md (*movdf_internal_rex64): Use Yf*f instead
25478 of f constraint to conditionaly disable x87 register preferences.
25479 (*movdf_internal): Ditto.
25480 (*movsf_internal): Ditto.
25481
25482 2013-01-24 Steven Bosscher <steven@gcc.gnu.org>
25483
25484 PR inline-asm/55934
25485 * lra-assigns.c (assign_by_spills): Throw away the pattern of asms
25486 that have operands with impossible constraints.
25487 Add a FIXME for a speed-up opportunity.
25488 * lra-constraints.c (process_alt_operands): Verify that a class
25489 selected from constraints on asms is valid for the operand mode.
25490 (curr_insn_transform): Remove incorrect comment.
25491
25492 2013-01-23 David Edelsohn <dje.gcc@gmail.com>
25493
25494 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Check that
25495 TOC operand is a valid symbol ref in the constant pool.
25496
25497 2013-01-23 Edgar E. Iglesias <edgar.iglesias@gmail.com>
25498
25499 * config/microblaze/linux.h: Add TARGET_OS_CPP_BUILTINS
25500
25501 2013-01-23 Georg-Johann Lay <avr@gjlay.de>
25502
25503 PR target/54222
25504 * config/avr/stdfix.h: New file.
25505 * t-avr (stdfix-gcc.h): New rule to build it.
25506 (EXTRA_HEADERS): Set it to install stdfix.h, stdfix-gcc.h.
25507
25508 2013-01-23 Kostya Serebryany <kcc@google.com>
25509
25510 * config/darwin.h: remove dependency on
25511 CoreFoundation (asan on Mac OS).
25512
25513 2013-01-23 Jakub Jelinek <jakub@redhat.com>
25514
25515 PR target/49069
25516 * config/arm/arm.md (cbranchdi4, cstoredi4): Use s_register_operand
25517 instead of cmpdi_operand for first comparison operand.
25518 Don't assert that comparison operands aren't both constants.
25519
25520 2013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
25521
25522 * doc/install.texi (Downloading the Source): Update references to
25523 downloading separate components.
25524
25525 2013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
25526
25527 * doc/extend.texi (__int128): Improve grammar.
25528
25529 2013-01-22 Uros Bizjak <ubizjak@gmail.com>
25530
25531 PR target/56028
25532 * config/i386/i386.md (*movti_internal_rex64): Change (o,riF)
25533 alternative to (o,r).
25534 (*movdi_internal_rex64): Remove (!o,n) alternative.
25535 (DImode immediate->memory splitter): Remove.
25536 (DImode immediate->memory peephole2): Remove.
25537 (movtf): Enable for TARGET_64BIT || TARGET_SSE.
25538 (*movtf_internal_rex64): Rename from *movtf_internal. Change (!o,F*r)
25539 alternative to (!o,*r).
25540 (*movtf_internal_sse): New pattern.
25541 (*movxf_internal_rex64): New pattern.
25542 (*movxf_internal): Disable for TARGET_64BIT.
25543 (*movdf_internal_rex64): Remove (!o,F) alternative.
25544
25545 2013-01-22 Jakub Jelinek <jakub@redhat.com>
25546
25547 PR middle-end/56074
25548 * dumpfile.c (dump_loc): Only print loc if LOCATION_LOCUS (loc)
25549 isn't UNKNOWN_LOCATION nor BUILTINS_LOCATION.
25550 * tree-vect-loop-manip.c (find_loop_location): Also ignore
25551 stmt locations where LOCATION_LOCUS of the stmt location is
25552 UNKNOWN_LOCATION or BUILTINS_LOCATION.
25553
25554 PR target/55686
25555 * config/i386/i386.md (UNSPEC_STOS): New.
25556 (strset_singleop, *strsetdi_rex_1, *strsetsi_1, *strsethi_1,
25557 *strsetqi_1): Add UNSPEC_STOS.
25558
25559 2013-01-22 Paolo Carlini <paolo.carlini@oracle.com>
25560
25561 PR c++/56067
25562 * doc/invoke.texi: Remove left over -Wsynth example.
25563
25564 2013-01-21 Jakub Jelinek <jakub@redhat.com>
25565
25566 PR tree-optimization/56051
25567 * fold-const.c (fold_binary_loc): Don't fold
25568 X < (cast) (1 << Y) into (X >> Y) != 0 if cast is either
25569 a narrowing conversion, or widening conversion from signed
25570 to unsigned.
25571
25572 2013-01-21 Uros Bizjak <ubizjak@gmail.com>
25573
25574 PR rtl-optimization/56023
25575 * haifa-sched.c (fix_inter_tick): Do not update ticks of instructions,
25576 dependent on debug instruction.
25577
25578 2013-01-21 Martin Jambor <mjambor@suse.cz>
25579
25580 PR middle-end/56022
25581 * function.c (allocate_struct_function): Call
25582 invoke_set_current_function_hook earlier.
25583
25584 2013-01-21 Jakub Jelinek <jakub@redhat.com>
25585
25586 * reload1.c (init_reload): Only initialize reload_obstack
25587 during the first call.
25588
25589 2013-01-21 Marek Polacek <polacek@redhat.com>
25590
25591 * cfgloop.c (verify_loop_structure): Fix up grammar.
25592
25593 2013-01-21 Yi-Hsiu Hsu <ahsu@marvell.com>
25594
25595 * config/arm/marvell-pj4.md (pj4_shift_conds, pj4_alu_shift,
25596 pj4_alu_shift_conds, pj4_shift): Handle simple_alu_shift.
25597
25598 2013-01-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
25599
25600 PR target/56058
25601 * config/arm/marvell-pj4.md: Update copyright year.
25602 Fix up use of alu to alu_reg and simple_alu_imm.
25603
25604 2013-01-21 Uros Bizjak <ubizjak@gmail.com>
25605
25606 * config/i386/i386.md (enabled): Do not disable fma4 for TARGET_FMA.
25607
25608 2013-01-20 Vladimir Makarov <vmakarov@redhat.com>
25609
25610 PR target/55433
25611 * lra-constraints.c (curr_insn_transform): Don't reuse original
25612 insn for secondary memory move when memory mode should be different.
25613
25614 2013-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
25615
25616 * config/pa/pa.md (atomic_loaddi, atomic_loaddi_1, atomic_storedi,
25617 atomic_storedi_1): New patterns.
25618
25619 2013-01-20 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
25620
25621 btver2 pipeline descriptions.
25622 * config/i386/i386.c: Enable CPU_BTVER2 to use btver2 pipeline
25623 descriptions.
25624 * config/i386/i386.md (btver2_decode): New type attributes.
25625 * config/i386/sse.md (btver2_decode, btver2_sse_attr): New
25626 type attributes.
25627 * config/i386/btver2.md: New file describing btver2 pipelines.
25628
25629 2013-01-19 Andrew Pinski <apinski@cavium.com>
25630
25631 PR tree-optimization/52631
25632 * tree-ssa-sccvn (visit_use): Before looking up the original
25633 statement, try looking up the simplified expression.
25634
25635 2013-01-19 Anthony Green <green@moxielogic.com>
25636
25637 * config/moxie/moxie.c (moxie_expand_prologue): Set
25638 current_function_static_stack_size.
25639
25640 2013-01-18 Jakub Jelinek <jakub@redhat.com>
25641
25642 PR tree-optimization/56029
25643 * tree-phinodes.c (reserve_phi_args_for_new_edge): Set
25644 gimple_phi_arg_location for the new arg to UNKNOWN_LOCATION.
25645
25646 2013-01-18 Sharad Singhai <singhai@google.com>
25647
25648 PR tree-optimization/55995
25649 * dumpfile.c (dump_loc): Print location only if available.
25650 * tree-vectorizer.c (increase_alignment): Intialize vect_location.
25651
25652 2013-01-18 Vladimir Makarov <vmakarov@redhat.com>
25653
25654 PR target/55433
25655 * lra-constraints.c (curr_insn_transform): Reuse original insn for
25656 secondary memory move.
25657 (inherit_reload_reg): Use rclass instead of cl for
25658 check_secondary_memory_needed_p.
25659
25660 2013-01-18 Jakub Jelinek <jakub@redhat.com>
25661
25662 PR middle-end/56015
25663 * expr.c (expand_expr_real_2) <case COMPLEX_EXPR>: Handle
25664 the case where writing real complex part of target modifies op1.
25665
25666 2013-01-18 James Greenhalgh <james.greenhalgh@arm.com>
25667
25668 * config/aarch64/aarch64-simd.md
25669 (aarch64_vcond_internal<mode>): Handle unordered cases.
25670 * config/aarch64/iterators.md (v_cmp_result): New.
25671
25672 2013-01-18 Yi-Hsiu Hsu <ahsu@marvell.com>
25673 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
25674
25675 * config/arm/marvell-pj4.md: New file.
25676 * config/arm/arm.c (arm_issue_rate): Add marvell_pj4.
25677 * config/arm/arm.md (generic_sched): Add marvell_pj4.
25678 (generic_vfp): Likewise.
25679 * config/arm/arm-cores.def: Add marvell-pj4.
25680 * config/arm/arm-tune.md: Regenerate.
25681 * config/arm/arm-tables.opt: Regenerate.
25682 * config/arm/bpabi.h (BE8_LINK_SPEC): Add marvell_pj4.
25683 * doc/invoke.texi: Document marvell-pj4.
25684
25685 2013-01-18 Tejas Belagod <tejas.belagod@arm.com>
25686
25687 * config/aarch64/arm_neon.h: Map scalar types to standard types.
25688
25689 2013-01-18 Alexandre Oliva <aoliva@redhat.com>
25690
25691 PR debug/54114
25692 PR debug/54402
25693 PR debug/49888
25694 * var-tracking.c (negative_power_of_two_p): New.
25695 (global_get_addr_cache, local_get_addr_cache): New.
25696 (get_addr_from_global_cache, get_addr_from_local_cache): New.
25697 (vt_canonicalize_addr): Rewrite using the above. Adjust the
25698 heading comment.
25699 (vt_stack_offset_p): Remove.
25700 (vt_canon_true_dep): Always canonicalize loc's address.
25701 (clobber_overlapping_mems): Make sure we have a MEM.
25702 (local_get_addr_clear_given_value): New.
25703 (val_reset): Clear local cached entries.
25704 (compute_bb_dataflow): Create and release the local cache.
25705 Disable duplicate MEMs clobbering.
25706 (emit_notes_in_bb): Clobber MEMs likewise.
25707 (vt_emit_notes): Create and release the local cache.
25708 (vt_initialize, vt_finalize): Create and release the global
25709 cache, respectively.
25710 * alias.c (rtx_equal_for_memref_p): Compare operands of ENTRY_VALUEs.
25711
25712 2013-01-18 Alexandre Oliva <aoliva@redhat.com>
25713
25714 PR libmudflap/53359
25715 * tree-mudflap.c (mudflap_finish_file): Skip deferred decls
25716 not found in the symtab.
25717
25718 2013-01-18 Alexandre Oliva <aoliva@redhat.com>
25719
25720 PR debug/56006
25721 PR rtl-optimization/55547
25722 PR rtl-optimization/53827
25723 PR debug/53671
25724 PR debug/49888
25725 * alias.c (offset_overlap_p): New, factored out of...
25726 (memrefs_conflict_p): ... this. Use absolute sizes. Retain
25727 the conservative special case for symbolic constants. Don't
25728 adjust zero sizes on alignment.
25729
25730 2013-01-18 Bernd Schmidt <bernds@codesourcery.com>
25731
25732 PR rtl-optimization/52573
25733 * regrename.c (build_def_use): Ignore REG_DEAD notes if there is a
25734 REG_UNUSED for the same register.
25735
25736 2013-01-17 Richard Biener <rguenther@suse.de>
25737 Marek Polacek <polacek@redhat.com>
25738
25739 PR rtl-optimization/55833
25740 * loop-unswitch.c (unswitch_loops): Move loop verification...
25741 (unswitch_single_loop): ...here. Call mark_irreducible_loops.
25742 * cfgloopmanip.c (fix_loop_placement): Add IRRED_INVALIDATED parameter.
25743 Set it to true when we're removing a loop from hierarchy tree in
25744 an irreducible region.
25745 (fix_bb_placements): Adjust caller.
25746 (fix_loop_placements): Likewise.
25747
25748 2013-01-17 Georg-Johann Lay <avr@gjlay.de>
25749
25750 * config/avr/builtins.def (DEF_BUILTIN): Factor out
25751 "__builtin_avr_" from NAME, turn NAME to an uppercase identifier.
25752 Factor out 'CODE_FOR_' from ICODE, use 'nothing' instead of '-1'.
25753 Remove ID. Adjust comments.
25754 * config/avr/avr-c.c (avr_builtin_name): Remove.
25755 (avr_cpu_cpp_builtins): Use DEF_BUILTIN instead of for-loop.
25756 * config/avr/avr.c (avr_tolower): New static function.
25757 (DEF_BUILTIN): Remove parameter ID. Prefix ICODE by 'CODE_FOR_'.
25758 Stringify NAME, prefix it with "__builtin_avr_" and lowercase it.
25759 (avr_expand_builtin): Assert insn_code != CODE_FOR_nothing for
25760 default expansion.
25761
25762 2013-01-17 Jan Hubicka <jh@suse.cz>
25763
25764 PR tree-optimization/55273
25765 * loop-iv.c (iv_number_of_iterations): Consider zero iteration case.
25766
25767 2013-01-17 Uros Bizjak <ubizjak@gmail.com>
25768
25769 PR target/55981
25770 * config/i386/sync.md (atomic_store<mode>): Always generate SWImode
25771 store through atomic_store<mode>_1.
25772 (atomic_store<mode>_1): Macroize insn using SWI mode iterator.
25773
25774 2013-01-17 Martin Jambor <mjambor@suse.cz>
25775
25776 PR tree-optimizations/55264
25777 * ipa-inline-transform.c (can_remove_node_now_p_1): Never return true
25778 for virtual methods.
25779 * ipa.c (symtab_remove_unreachable_nodes): Never return true for
25780 virtual methods before inlining is over.
25781 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Return false for
25782 virtual functions.
25783 * cgraphclones.c (cgraph_create_virtual_clone): Mark clones as
25784 non-virtual.
25785
25786 2013-01-16 Vladimir Makarov <vmakarov@redhat.com>
25787
25788 PR rtl-optimization/56005
25789 * sched-deps.c (sched_analyze_2): Check deps->readonly for adding
25790 pending reads for prefetch.
25791
25792 2013-01-16 Ian Bolton <ian.bolton@arm.com>
25793
25794 * config/aarch64/aarch64.md
25795 (*cstoresi_neg_uxtw): New pattern.
25796 (*cmovsi_insn_uxtw): New pattern.
25797 (*<optab>si3_uxtw): New pattern.
25798 (*<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): New pattern.
25799 (*<optab>si3_insn_uxtw): New pattern.
25800 (*bswapsi2_uxtw): New pattern.
25801
25802 2013-01-16 Richard Biener <rguenther@suse.de>
25803
25804 * tree-inline.c (tree_function_versioning): Remove set but
25805 never used variable.
25806
25807 2013-01-16 Richard Biener <rguenther@suse.de>
25808
25809 PR tree-optimization/55964
25810 * tree-flow.h (rename_variables_in_loop): Remove.
25811 (rename_variables_in_bb): Likewise.
25812 * tree-loop-distribution.c (update_phis_for_loop_copy): Remove.
25813 (copy_loop_before): Adjust and delete update-ssa status.
25814 * tree-vect-loop-manip.c (rename_variables_in_bb): Make static.
25815 (rename_variables_in_bb): Likewise. Properly walk over predecessors.
25816 (rename_variables_in_loop): Remove.
25817 (slpeel_update_phis_for_duplicate_loop): Likewise.
25818 (slpeel_tree_duplicate_loop_to_edge_cfg): Handle nested loops,
25819 use available cfg machinery instead of duplicating it.
25820 Update PHI nodes and perform poor-mans SSA update here.
25821 (slpeel_tree_peel_loop_to_edge): Adjust.
25822
25823 2013-01-16 Richard Biener <rguenther@suse.de>
25824
25825 PR tree-optimization/54767
25826 PR tree-optimization/53465
25827 * tree-vrp.c (vrp_meet_1): Revert original fix for PR53465.
25828 (vrp_visit_phi_node): For PHI arguments coming via backedges
25829 drop all symbolical range information.
25830 (execute_vrp): Compute backedges.
25831
25832 2013-01-16 Richard Biener <rguenther@suse.de>
25833
25834 * doc/install.texi: Update CLooG and ISL requirements to
25835 0.18.0 and 0.11.1.
25836
25837 2013-01-16 Christian Bruel <christian.bruel@st.com>
25838
25839 PR target/55301
25840 * config/sh/sh.c (sh_expand_prologue): Postpone new_stack mem symbol.
25841 (broken_move): Handle UNSPECV_SP_SWITCH_B.
25842 * config/sh/sh.md (sp_switch_1): Use set (reg:SI SP_REG).
25843
25844 2013-01-16 DJ Delorie <dj@redhat.com>
25845
25846 * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
25847 (UNSPECV_SP_SWITCH_E): New.
25848 (sp_switch_1): Change to an unspec.
25849 (sp_switch_2): Change to an unspec. Don't use post-inc when we
25850 replace $r15.
25851
25852 2013-01-16 Uros Bizjak <ubizjak@gmail.com>
25853
25854 * emit-rtl.c (need_atomic_barrier_p): Mask memory model argument
25855 with MEMMODEL_MASK before comparing with MEMMODEL_* memory types.
25856 * optabs.c (maybe_emit_sync_lock_test_and_set): Ditto.
25857 (expand_mem_thread_fence): Ditto.
25858 (expand_mem_signal_fence): Ditto.
25859 (expand_atomic_load): Ditto.
25860 (expand_atomic_store): Ditto.
25861
25862 2013-01-16 Alexandre Oliva <aoliva@redhat.com>
25863
25864 PR rtl-optimization/55547
25865 PR rtl-optimization/53827
25866 PR debug/53671
25867 PR debug/49888
25868 * alias.c (memrefs_conflict_p): Set sizes to negative after
25869 AND adjustments.
25870
25871 2013-01-15 Jakub Jelinek <jakub@redhat.com>
25872
25873 PR target/55940
25874 * function.c (thread_prologue_and_epilogue_insns): Always
25875 add crtl->drap_reg to set_up_by_prologue.set, even if
25876 stack_realign_drap is false.
25877
25878 2013-01-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
25879
25880 * config/vax/vax.md (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3,
25881 and<mode>3, *and<mode>_const_int, ior<mode>3, xor<mode>3, ashrsi3,
25882 *call): Fix indention.
25883
25884 2013-01-15 Tom de Vries <tom@codesourcery.com>
25885
25886 PR target/55876
25887 * optabs.c (widen_operand): Use gen_lowpart instead of gen_rtx_SUBREG.
25888 Update comment.
25889
25890 2013-01-15 Vladimir Makarov <vmakarov@redhat.com>
25891
25892 PR rtl-optimization/55153
25893 * sched-deps.c (sched_analyze_2): Add pending reads for prefetch.
25894
25895 2013-01-15 Martin Jambor <mjambor@suse.cz>
25896
25897 PR tree-optimization/55920
25898 * tree-sra.c (analyze_access_subtree): Do not mark non-removable
25899 accesses as grp_to_be_debug_replaced.
25900
25901 2013-01-15 Jakub Jelinek <jakub@redhat.com>
25902
25903 PR tree-optimization/55920
25904 * tree-sra.c (sra_modify_assign): If for lacc->grp_to_be_debug_replaced
25905 there is non-useless type conversion needed from debug rhs to lhs,
25906 use build_debug_ref_for_model and/or VIEW_CONVERT_EXPR.
25907
25908 2013-01-15 Joseph Myers <joseph@codesourcery.com>
25909 Mikael Pettersson <mikpe@it.uu.se>
25910
25911 PR target/43961
25912 * config/arm/arm.h (ADDR_VEC_ALIGN): Align SImode jump tables for
25913 Thumb.
25914 (ASM_OUTPUT_CASE_LABEL): Remove.
25915 (ASM_OUTPUT_BEFORE_CASE_LABEL): Define to empty.
25916 * final.c (shorten_branches): Update alignment of labels before
25917 jump tables if CASE_VECTOR_SHORTEN_MODE.
25918
25919 2013-01-15 Richard Biener <rguenther@suse.de>
25920
25921 PR bootstrap/55961
25922 * system.h: Do not include gmp.h for building host tools.
25923
25924 2013-01-15 Richard Biener <rguenther@suse.de>
25925
25926 PR middle-end/55882
25927 * emit-rtl.c (set_mem_attributes_minus_bitpos): Correctly
25928 account for bitpos when computing alignment.
25929
25930 2013-01-15 Vladimir Yakovlev <vladimir.b.yakovlev@intel.com>
25931
25932 * config/i386/i386-c.c (ix86_target_macros_internal): New case.
25933 (ix86_target_macros_internal): Likewise.
25934
25935 * config/i386/i386.c (m_CORE2I7): Removed.
25936 (m_CORE_HASWELL): New macro.
25937 (m_CORE_ALL): Likewise.
25938 (initial_ix86_tune_features): m_CORE2I7 is replaced by m_CORE_ALL.
25939 (initial_ix86_arch_features): Likewise.
25940 (processor_target_table): Initializations for Core avx2.
25941 (cpu_names): New names "core-avx2".
25942 (ix86_option_override_internal): Changed PROCESSOR_COREI7 by
25943 PROCESSOR_CORE_HASWELL.
25944 (ix86_issue_rate): New case.
25945 (ia32_multipass_dfa_lookahead): Likewise.
25946 (ix86_sched_init_global): Likewise.
25947
25948 * config/i386/i386.h (TARGET_HASWELL): New macro.
25949 (target_cpu_default): New TARGET_CPU_DEFAULT_haswell.
25950 (processor_type): New PROCESSOR_HASWELL.
25951
25952 2013-01-15 Jakub Jelinek <jakub@redhat.com>
25953
25954 PR tree-optimization/55955
25955 * tree-vect-loop.c (vectorizable_reduction): Give up early on
25956 *SHIFT_EXPR and *ROTATE_EXPR codes.
25957
25958 PR tree-optimization/48766
25959 * opts.c (common_handle_option): For -fwrapv disable -ftrapv, for
25960 -ftrapv disable -fwrapv.
25961
25962 2013-01-14 Georg-Johann Lay <avr@gjlay.de>
25963
25964 PR target/55974
25965 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Define __FLASH
25966 etc. to 1 and not to __flash.
25967 Use LL suffix for __INT24_MAX__ with -mint8.
25968 Use ULL suffix for __UINT24_MAX__ with -mint8.
25969
25970 2013-01-14 Georg-Johann Lay <avr@gjlay.de>
25971
25972 * config/avr/avr-arch.h
25973 (struct base_arch_s): Use typedef avr_arch_t instead.
25974 (struct arch_info_s): Use typedef avr_arch_info_t instead.
25975 (struct mcu_type_s): Use typedef avr_mcu_t instead.
25976 * config/avr/avr.c: Same.
25977 * config/avr/avr-devices.c: Same.
25978 * config/avr/driver-avr.c: Same.
25979 * config/avr/gen-avr-mmcu-texi.c: Same.
25980 * config/avr/avr-mcus.def: Adjust comment.
25981
25982 2013-01-14 Tejas Belagod <tejas.belagod@arm.com>
25983
25984 * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): New.
25985 * config/aarch64/iterators.md (VALLDI): New.
25986
25987 2013-01-14 Uros Bizjak <ubizjak@gmail.com>
25988 Andi Kleen <ak@linux.intel.com>
25989
25990 PR target/55948
25991 * config/i386/sync.md (atomic_store<mode>_1): New pattern.
25992 (atomic_store<mode>): Call atomic_store<mode>_1 for IX86_HLE_RELEASE
25993 memmodel flag.
25994
25995 2013-01-14 Georg-Johann Lay <avr@gjlay.de>
25996
25997 * config/avr/avr-stdint.h: Remove trailing blanks.
25998 * config/avr/avr-log.h: Same.
25999 * config/avr/avr-arch.h: Same.
26000 * config/avr/avr-devices.c: Same.
26001 * config/avr/avr-dimode.md: Same.
26002 * config/avr/predicates.md: Same.
26003 * config/avr/avr-c.c: Same. And fix typo.
26004
26005 * config/avr/avr-protos.h: Same. And:
26006 (function_arg_regno_p): Rename to avr_function_arg_regno_p.
26007 (init_cumulative_args): Rename to avr_init_cumulative_args.
26008 (expand_prologue): Rename to avr_expand_prologue.
26009 (expand_epilogue): Rename to avr_expand_epilogue.
26010 (adjust_insn_length): Rename to avr_adjust_insn_length.
26011 (notice_update_cc): Rename to avr_notice_update_cc.
26012 (final_prescan_insn): Rename to avr_final_prescan_insn.
26013 * config/avr/avr.c: Same.
26014 * config/avr/avr.h: Same.
26015 * config/avr/avr.md: Remove trailing blanks.
26016 (prologue): Use avr_expand_prologue.
26017 (epilogue, sibcall_epilogue): Use avr_expand_epilogue.
26018
26019 2013-01-14 Richard Biener <rguenther@suse.de>
26020
26021 * tree-cfg.c (verify_expr_location, verify_expr_location_1,
26022 verify_location, collect_subblocks): New functions.
26023 (verify_gimple_in_cfg): Verify that locations only reference
26024 BLOCKs in the functions BLOCK tree.
26025
26026 2013-01-14 Richard Biener <rguenther@suse.de>
26027
26028 * tree-cfgcleanup.c (remove_forwarder_block): Unshare propagated
26029 PHI argument.
26030 * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Properly
26031 unshare reference.
26032 (insert_out_of_ssa_copy_on_edge): Likewise.
26033 (rewrite_close_phi_out_of_ssa): Likewise.
26034 * tree-ssa.c (insert_debug_temp_for_var_def): Properly unshare
26035 debug expressions.
26036 * tree-ssa-pre.c (insert_into_preds_of_block): Properly unshare
26037 propagated constants.
26038 * tree-cfg.c (tree_node_can_be_shared): Handled component-refs
26039 can not be shared.
26040
26041 2013-01-14 Georg-Johann Lay <avr@gjlay.de>
26042
26043 * config/avr/avr-modes.def: Add GPL copyright notice.
26044
26045 2013-01-13 Uros Bizjak <ubizjak@gmail.com>
26046
26047 * config/i386/sync.md (mem_thread_fence): Mask operands[0] with
26048 MEMMODEL_MASK to determine memory model.
26049 (atomic_store<mode>): Ditto from operands[2].
26050 * config/i386/i386.c (ix86_memmodel_check): Declare "strong" as bool.
26051
26052 2013-01-13 Jakub Jelinek <jakub@redhat.com>
26053
26054 PR fortran/55935
26055 * gimple-fold.c (get_symbol_constant_value): Call unshare_expr.
26056 (fold_gimple_assign): Don't call unshare_expr here.
26057 (fold_ctor_reference): Call unshare_expr.
26058
26059 2013-01-13 Terry Guo <terry.guo@arm.com>
26060
26061 * Makefile.in (s-mlib): New argument MULTILIB_REUSE.
26062 * doc/fragments.texi: Document MULTILIB_REUSE.
26063 * gcc.c (multilib_reuse): New internal spec.
26064 (set_multilib_dir): Also search multilib from multilib_reuse.
26065 * genmultilib (tmpmultilib3): Refactor code.
26066 (tmpmultilib4): Ditto.
26067 (multilib_reuse): New multilib argument.
26068
26069 2013-01-13 Richard Sandiford <rdsandiford@googlemail.com>
26070
26071 * Makefile.in: Update copyright.
26072
26073 2013-01-12 Tom de Vries <tom@codesourcery.com>
26074
26075 PR middle-end/55890
26076 * calls.c (expand_call): Check if arg_nr is valid.
26077
26078 2013-01-11 Michael Meissner <meissner@linux.vnet.ibm.com>
26079
26080 * doc/extend.texi (X86 Built-in Functions): Add whitespace in
26081 __builtin_ia32_paddb256 and __builtin_ia32_pavgb256
26082 documentation. Add missing '__' in front of
26083 __builtin_ia32_packssdw256.
26084
26085 2013-01-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
26086
26087 PR target/55719
26088 * config/s390/s390.c (s390_preferred_reload_class): Do not return
26089 NO_REGS for larl operands.
26090 (s390_reload_larl_operand): Use s390_load_address instead of
26091 emit_move_insn.
26092
26093 2013-01-11 Richard Biener <rguenther@suse.de>
26094
26095 * tree-cfg.c (verify_node_sharing_1): Split out from ...
26096 (verify_node_sharing): ... here.
26097 (verify_gimple_in_cfg): Use verify_node_sharing_1 for walk_tree.
26098
26099 2013-01-11 Eric Botcazou <ebotcazou@adacore.com>
26100
26101 * configure.ac (Tree checking): Set TREECHECKING to yes if enabled.
26102 Substitute TREECHECKING.
26103 * configure: Regenerate.
26104 * Makefile.in (TREECHECKING): New.
26105
26106 2013-01-11 Richard Guenther <rguenther@suse.de>
26107
26108 PR tree-optimization/44061
26109 * tree-vrp.c (extract_range_basic): Compute zero as
26110 value-range for __builtin_constant_p of function parameters.
26111
26112 2013-01-10 Richard Sandiford <rdsandiford@googlemail.com>
26113
26114 Update copyright years.
26115
26116 2013-01-10 Vladimir Makarov <vmakarov@redhat.com>
26117
26118 PR rtl-optimization/55672
26119 * lra-eliminations.c (mark_not_eliminable): Permit addition with
26120 const to be eliminable.
26121
26122 2013-01-10 David Edelsohn <dje.gcc@gmail.com>
26123
26124 * configure.ac (HAVE_AS_TLS): Add check for powerpc-ibm-aix.
26125 * configure: Regenerate.
26126
26127 2013-01-10 Richard Biener <rguenther@suse.de>
26128
26129 * builtins.c (expand_builtin_init_trampoline): Use set_mem_attributes.
26130
26131 2013-01-10 Richard Biener <rguenther@suse.de>
26132
26133 PR bootstrap/55792
26134 * tree-into-ssa.c (rewrite_add_phi_arguments): Do not set
26135 locations for virtual PHI arguments.
26136 (rewrite_update_phi_arguments): Likewise.
26137
26138 2013-01-10 Joel Sherrill <joel.sherrill@OARcorp.com>
26139
26140 * config/v850/rtems.h (ASM_SPEC): Pass -m8byte-align and -mgcc-abi
26141 on to assembler.
26142
26143 2013-01-10 Jakub Jelinek <jakub@redhat.com>
26144
26145 PR tree-optimization/55921
26146 * tree-complex.c (expand_complex_asm): New function.
26147 (expand_complex_operations_1): Call it for GIMPLE_ASM.
26148
26149 2013-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
26150
26151 PR target/55718
26152 * config/s390/s390.c (s390_symref_operand_p)
26153 (s390_loadrelative_operand_p): Merge the two functions.
26154 (s390_check_qrst_address, print_operand_address): Add parameters
26155 to s390_loadrelative_operand_p invokation.
26156 (s390_check_symref_alignment): Use s390_loadrelative_operand_p.
26157 (s390_reload_larl_operand, s390_secondary_reload): Use
26158 s390_loadrelative_operand_p instead of s390_symref_operand_p.
26159 (legitimize_pic_address): Handle @GOTENT and @PLT + addend.
26160
26161 2013-01-09 Mike Stump <mikestump@comcast.net>
26162
26163 * dse.c (record_store): Remove unnecessary assert.
26164
26165 2013-01-09 Jan Hubicka <jh@suse.cz>
26166
26167 PR tree-optimization/55569
26168 * cfgloopmanip.c (scale_loop_profile): Make ITERATION_BOUND gcov_type.
26169 * cfgloop.h (scale_loop_profile): Likewise.
26170
26171 2013-01-09 Jan Hubicka <jh@suse.cz>
26172
26173 PR lto/45375
26174 * ipa-inline.c (ipa_inline): Remove extern inlines and virtual
26175 functions.
26176 * cgraphclones.c (cgraph_clone_node): Cpoy also LTO file data.
26177
26178 2013-01-09 Richard Sandiford <rdsandiford@googlemail.com>
26179
26180 PR middle-end/55114
26181 * expr.h (maybe_emit_group_store): Declare.
26182 * expr.c (maybe_emit_group_store): New function.
26183 * builtins.c (expand_builtin_int_roundingfn): Call it.
26184 (expand_builtin_int_roundingfn_2): Likewise.
26185
26186 2013-01-09 Vladimir Makarov <vmakarov@redhat.com>
26187
26188 PR rtl-optimization/55829
26189 * lra-constraints.c (match_reload): Add code for absent output.
26190 (curr_insn_transform): Add code for reloads of matched inputs
26191 without output.
26192
26193 2013-01-09 Uros Bizjak <ubizjak@gmail.com>
26194
26195 * config/i386/sse.md (*vec_interleave_highv2df): Change mode
26196 attribute of movddup insn to DF.
26197 (*vec_interleave_lowv2df): Ditto.
26198 (vec_dupv2df): Ditto.
26199
26200 2013-01-09 Jan Hubicka <jh@suse.cz>
26201
26202 PR tree-optimiation/55875
26203 * tree-ssa-loop-niter.c (number_of_iterations_cond): Add
26204 EVERY_ITERATION parameter.
26205 (number_of_iterations_exit): Check if exit is executed every iteration.
26206 (idx_infer_loop_bounds): Similarly here.
26207 (n_of_executions_at_most): Simplify
26208 to only test for cases where statement is dominated by the
26209 particular bound; handle correctly the "postdominance" test.
26210 (scev_probably_wraps_p): Use max loop iterations info
26211 as a global bound first.
26212
26213 2013-01-09 Nguyen Duy Dat <dat.nguyen.yn@rvc.renesas.com>
26214 Nick Clifton <nickc@redhat.com>
26215
26216 * config/v850/v850.md (cbranchsf4): New pattern.
26217 (cstoresf4): New pattern.
26218 (cbranchdf4): New pattern.
26219 (cstoredf4): New pattern.
26220 (movsicc): Disallow floating point comparisons.
26221 (cmpsf_le_insn): Fix order of operators.
26222 (cmpsf_lt_insn): Likewise.
26223 (cmpsf_eq_insn): Likewise.
26224 (cmpdf_le_insn): Likewise.
26225 (cmpdf_lt_insn): Likewise.
26226 (cmpdf_eq_insn): Likewise.
26227 (cmpsf_ge_insn): Use LE comparison.
26228 (cmpdf_ge_insn): Likewise.
26229 (cmpsf_gt_insn): Use LT comparison.
26230 (cmpdf_gt_insn): Likewise.
26231 (cmpsf_ne_insn): Delete pattern.
26232 (cmpdf_ne_insn): Delete pattern.
26233 * config/v850/v850.c (v850_gen_float_compare): Use
26234 gen_cmpdf_eq_insn for NE comparison.
26235 (v850_float_z_comparison_operator)
26236 (v850_float_nz_comparison_operator): Move from here ...
26237 * config/v850/predicates.md: ... to here. Move GT and GE
26238 comparisons into v850_float_z_comparison_operator.
26239 * config/v850/v850-protos.h (v850_float_z_comparison_operator):
26240 Delete prototype.
26241 (v850_float_nz_comparison_operator): Likewise.
26242
26243 2013-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
26244
26245 * config/pa/pa.c (pa_emit_move_sequence): Replace calls to gen_insv
26246 with calls to gen_insvsi/gen_insvdi.
26247
26248 2013-01-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
26249
26250 * config/i386/i386.c (initial_ix86_tune_features): Set up
26251 X86_TUNE_AVX128_OPTIMAL for m_BTVER2.
26252
26253 2013-01-09 Steven Bosscher <steven@gcc.gnu.org>
26254 Jakub Jelinek <jakub@redhat.com>
26255
26256 PR tree-optimization/48189
26257 * predict.c (predict_loops): If max is 0, don't call compare_tree_int.
26258 If nitercst is 0, don't predict the exit edge.
26259
26260 2013-01-08 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
26261
26262 * config/aarch64/aarch64.c (aarch64_print_operand): Replace %r
26263 in asm_fprintf with reg_names.
26264 (aarch64_print_operand_address): Likewise.
26265 (aarch64_return_addr): Likewise.
26266 * config/aarch64/aarch64.h (ASM_FPRINTF_EXTENSIONS): Remove.
26267
26268 2013-01-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
26269
26270 * config/pa/pa.h (VAL_U6_BITS_P): Define.
26271 (INT_U6_BITS): Likewise.
26272 * config/pa/predicates.md (uint6_operand): New predicate.
26273 (shift5_operand, shift6_operand): Likewise.
26274 * config/pa/pa.md (lshrsi3, rotrsi3): Use shift5_operand instead of
26275 arith32_operand.
26276 (lshrdi3): Use shift6_operand.
26277 (shrpsi4, shrpdi4): New insn patterns.
26278 (extzv): Delete expander.
26279 (extzvsi, extzvdi): New expanders. Use uint5_operand and uint6_operand
26280 predicates in unamed zero extract patterns. Tighten common constraint.
26281 (extv): Delete expander.
26282 (extvsi, extvdi): New expanders. Use uint5_operand and uint6_operand
26283 predicates in unamed sign extract patterns. Tighten common constraint.
26284 (insv): Delete expander.
26285 (insvsi, insvdi): New expanders. Use uint5_operand and uint6_operand
26286 predicates in unamed insert patterns. Tighten common constraint.
26287 Change uint32_operand predicate to uint6_operand predicate in unamed
26288 DImode pattern to insert constant values of type 1...1xxxx.
26289
26290 2013-01-04 Jan Hubicka <jh@suse.cz>
26291
26292 PR tree-optimization/55823
26293 * ipa-prop.c (update_indirect_edges_after_inlining): Fix ordering
26294 issue.
26295
26296 2013-01-08 Jakub Jelinek <jakub@redhat.com>
26297 Uros Bizjak <ubizjak@gmail.com>
26298
26299 PR rtl-optimization/55845
26300 * df-problems.c (can_move_insns_across): Stop scanning at
26301 volatile_insn_p source instruction or give up if
26302 across_from .. across_to range contains any volatile_insn_p
26303 instructions.
26304
26305 2013-01-08 Tejas Belagod <tejas.belagod@arm.com>
26306
26307 * config/aarch64/aarch64-simd.md (vec_init<mode>): New.
26308 * config/aarch64/aarch64-protos.h (aarch64_expand_vector_init):
26309 Declare.
26310 * config/aarch64/aarch64.c (aarch64_simd_dup_constant,
26311 aarch64_simd_make_constant, aarch64_expand_vector_init): New.
26312
26313 2013-01-08 Jakub Jelinek <jakub@redhat.com>
26314
26315 PR fortran/55341
26316 * asan.c (asan_clear_shadow): New function.
26317 (asan_emit_stack_protection): Use it.
26318
26319 2013-01-08 Tejas Belagod <tejas.belagod@arm.com>
26320
26321 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_<su>mult_lo_<mode>,
26322 aarch64_simd_vec_<su>mult_hi_<mode>): Separate instruction and operand
26323 with tab instead of space.
26324
26325 2013-01-08 Nick Clifton <nickc@redhat.com>
26326
26327 * config/rl78/rl78.c (rl78_expand_prologue): Always select
26328 register bank 0 at the start of an interrupt handler.
26329 * config/rl78/rl78.md (mulsi3_g13): Correct values for MDBL and
26330 MDBH registers.
26331
26332 2013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
26333
26334 * config/aarch64/aarch64-simd.md
26335 (aarch64_simd_bsl<mode>_internal): Add floating-point modes.
26336 (aarch64_simd_bsl): Likewise.
26337 (aarch64_vcond_internal<mode>): Likewise.
26338 (vcond<mode><mode>): Likewise.
26339 (aarch64_cm<cmp><mode>): Fix constraints, add new modes.
26340 * config/aarch64/iterators.md (V_cmp_result): Add V2DF.
26341
26342 2013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
26343
26344 * config/aarch64/aarch64-builtins.c
26345 (aarch64_builtin_vectorized_function): Handle sqrt, sqrtf.
26346
26347 2013-01-08 Martin Jambor <mjambor@suse.cz>
26348
26349 PR debug/55579
26350 * tree-sra.c (analyze_access_subtree): Return true also after
26351 potentially creating a debug-only replacement.
26352
26353 2013-01-08 Jakub Jelinek <jakub@redhat.com>
26354
26355 PR middle-end/55890
26356 * tree-ssa-ccp.c (evaluate_stmt): Use gimple_call_builtin_p.
26357
26358 PR tree-optimization/54120
26359 * tree-vrp.c (range_fits_type_p): Don't allow
26360 src_precision < precision from signed vr to unsigned_p
26361 if vr->min or vr->max is negative.
26362 (simplify_float_conversion_using_ranges): Test can_float_p
26363 against CODE_FOR_nothing.
26364
26365 2013-01-08 Jakub Jelinek <jakub@redhat.com>
26366 Richard Biener <rguenther@suse.de>
26367
26368 PR middle-end/55851
26369 * fold-const.c (int_binop_types_match_p): Allow all INTEGRAL_TYPE_P
26370 types instead of just INTEGER_TYPE types.
26371
26372 2013-01-07 Mark Kettenis <kettenis@openbsd.org>
26373
26374 * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT,
26375 TF_SIZE): Define.
26376
26377 2013-01-07 Steve Ellcey <sellcey@mips.com>
26378
26379 PR target/42661
26380 * config/mips/mips.opt: Change mad to mmad to match documentation.
26381
26382 2013-01-07 Georg-Johann Lay <avr@gjlay.de>
26383
26384 PR target/55897
26385 * doc/extend.texi (AVR Named Address Spaces): __memx goes into
26386 .progmemx.data now.
26387
26388 2013-01-07 Georg-Johann Lay <avr@gjlay.de>
26389
26390 PR target/55897
26391 * config/avr/avr.h (ADDR_SPACE_COUNT): New enum.
26392 (avr_addrspace_t): Add .section_name field.
26393 * config/avr/avr.c (progmem_section): Use ADDR_SPACE_COUNT as
26394 array size.
26395 (avr_addrspace): Same. Initialize .section_name. Remove last
26396 NULL entry. Put __memx into .progmemx.data.
26397 (progmem_section_prefix): Remove.
26398 (avr_asm_init_sections): No need to initialize progmem_section.
26399 (avr_asm_named_section): Use avr_addrspace[].section_name to get
26400 section name prefix.
26401 (avr_asm_select_section): Ditto. And use get_unnamed_section to
26402 retrieve the progmem section.
26403 * avr-c.c (avr_cpu_cpp_builtins): Use ADDR_SPACE_COUNT as loop
26404 boundary to run over avr_addrspace[].
26405 (avr_register_target_pragmas): Ditto.
26406
26407 2013-01-06 Jakub Jelinek <jakub@redhat.com>
26408
26409 * varasm.c (output_constant_def_contents): For asan_protect_global
26410 protected strings, adjust DECL_ALIGN if needed, before testing for
26411 anchored symbols.
26412 (place_block_symbol): Adjust size for asan protected STRING_CSTs if
26413 TREE_CONSTANT_POOL_ADDRESS_P. Increase alignment for asan protected
26414 normal decls.
26415 (output_object_block): For asan protected decls, emit asan padding
26416 after their contents.
26417 * asan.c (asan_protect_global): Don't check TREE_ASM_WRITTEN here.
26418 (asan_finish_file): Test it here instead.
26419
26420 2013-01-07 Nick Clifton <nickc@redhat.com>
26421 Matthias Klose <doko@debian.org>
26422 Doug Kwan <dougkwan@google.com>
26423 H.J. Lu <hongjiu.lu@intel.com>
26424
26425 PR driver/55470
26426 * collect2.c (main): Support -fuse-ld=bfd and -fuse-ld=gold.
26427
26428 * common.opt: Add fuse-ld=bfd and fuse-ld=gold.
26429
26430 * gcc.c (LINK_COMMAND_SPEC): Pass -fuse-ld=* to collect2.
26431
26432 * opts.c (comman_handle_option): Ignore -fuse-ld=bfd and -fuse-ld=gold.
26433
26434 * doc/invoke.texi: Document -fuse-ld=bfd and -fuse-ld=gold.
26435
26436 2013-01-07 Georg-Johann Lay <avr@gjlay.de>
26437
26438 PR target/54461
26439 * doc/install.texi (Cross-Compiler-Specific Options): Document
26440 --with-avrlibc.
26441
26442 2013-01-07 Tejas Belagod <tejas.belagod@arm.com>
26443
26444 * config/aarch64/arm_neon.h (vmovn_high_is16, vmovn_high_s32,
26445 vmovn_high_s64, vmovn_high_u16, vmovn_high_u32, vmovn_high_u64,
26446 vqmovn_high_s16, vqmovn_high_s32, vqmovn_high_s64, vqmovn_high_u16,
26447 vqmovn_high_u32, vqmovn_high_u64, vqmovun_high_s16, vqmovun_high_s32,
26448 vqmovun_high_s64): Fix source operand number and update copyright.
26449
26450 2013-01-07 Richard Biener <rguenther@suse.de>
26451
26452 PR middle-end/55890
26453 * gimple.h (gimple_call_builtin_p): New overload.
26454 * gimple.c (validate_call): New function.
26455 (gimple_call_builtin_p): Likewise.
26456 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
26457 Use gimple_call_builtin_p.
26458 (find_func_clobbers): Likewise.
26459 * tree-ssa-strlen.c (adjust_last_stmt): Likewise.
26460 (strlen_optimize_stmt): Likewise.
26461
26462 2013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
26463
26464 * config/aarch64/arm_neon.h (vld1_dup_*): Make argument const.
26465 (vld1q_dup_*): Likewise.
26466 (vld1_*): Likewise.
26467 (vld1q_*): Likewise.
26468 (vld1_lane_*): Likewise.
26469 (vld1q_lane_*): Likewise.
26470
26471 2013-01-07 Richard Biener <rguenther@suse.de>
26472
26473 * lto-streamer.h (LTO_minor_version): Bump to 2.
26474
26475 2013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
26476
26477 * config/aarch64/aarch64-protos.h
26478 (aarch64_const_double_zero_rtx_p): Rename to...
26479 (aarch64_float_const_zero_rtx_p): ...this.
26480 (aarch64_float_const_representable_p): New.
26481 (aarch64_output_simd_mov_immediate): Likewise.
26482 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): Refactor
26483 move immediate case.
26484 * config/aarch64/aarch64.c
26485 (aarch64_const_double_zero_rtx_p): Rename to...
26486 (aarch64_float_const_zero_rtx_p): ...this.
26487 (aarch64_print_operand): Allow printing of new constants.
26488 (aarch64_valid_floating_const): New.
26489 (aarch64_legitimate_constant_p): Check for valid floating-point
26490 constants.
26491 (aarch64_simd_valid_immediate): Likewise.
26492 (aarch64_vect_float_const_representable_p): New.
26493 (aarch64_float_const_representable_p): Likewise.
26494 (aarch64_simd_imm_zero_p): Also allow for floating-point 0.0.
26495 (aarch64_output_simd_mov_immediate): New.
26496 * config/aarch64/aarch64.md (*movsf_aarch64): Add new alternative.
26497 (*movdf_aarch64): Likewise.
26498 * config/aarch64/constraints.md (Ufc): New.
26499 (Y): call aarch64_float_const_zero_rtx.
26500 * config/aarch64/predicates.md (aarch64_fp_compare_operand): New.
26501
26502 2013-01-07 Richard Biener <rguenther@suse.de>
26503
26504 PR tree-optimization/55888
26505 PR tree-optimization/55862
26506 * tree-ssa-pre.c (phi_translate_1): Revert previous change.
26507 (valid_in_sets): Check if a NAME has a leader in AVAIL_OUT,
26508 not if it is contained therein.
26509
26510 2013-01-07 Georg-Johann Lay <avr@gjlay.de>
26511
26512 * config/avr/t-avr: Typo.
26513
26514 2013-01-07 Georg-Johann Lay <avr@gjlay.de>
26515
26516 PR55243
26517 * config/avr/t-avr: Don't automatically rebuild
26518 $(srcdir)/config/avr/t-multilib
26519 $(srcdir)/config/avr/avr-tables.opt
26520 $(srcdir)/doc/avr-mmcu.texi
26521 (avr-mcus): New phony target to build them on request.
26522 (s-avr-mlib, s-avr-mmcu-texi): Remove.
26523 * avr/avr-mcus.def: Adjust comments.
26524
26525 2013-01-07 Uros Bizjak <ubizjak@gmail.com>
26526
26527 * config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Remove.
26528
26529 2013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
26530
26531 * file-find.c, file-find.h, realmpfr.c: Add FSF as copyright holder.
26532
26533 2013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
26534
26535 * config/tilepro/gen-mul-tables.cc: Put copyright on one line.
26536
26537 2013-01-05 David Edelsohn <dje.gcc@gmail.com>
26538
26539 * config/rs6000/aix53.h (LIB_SPEC): Add -lpthreads when compiling
26540 to generate profiling.
26541 * config/rs6000/aix64.h (LIB_SPEC): Same.
26542
26543 2013-01-04 Andrew Pinski <apinski@cavium.com>
26544
26545 * config/aarch64/aarch64.c (aarch64_fixed_condition_code_regs):
26546 New function.
26547 (TARGET_FIXED_CONDITION_CODE_REGS): Define.
26548
26549 2013-01-04 Uros Bizjak <ubizjak@gmail.com>
26550
26551 * config/i386/i386.c (ix86_legitimize_address): Call convert_to_mode
26552 unconditionally.
26553 (ix86_expand_move): Ditto.
26554 (ix86_zero_extend_to_Pmode): Ditto.
26555 (ix86_expand_call): Ditto.
26556 (ix86_expand_special_args_builtin): Ditto.
26557 (ix86_expand_builtin): Ditto.
26558
26559 2013-01-04 Richard Biener <rguenther@suse.de>
26560
26561 PR tree-optimization/55862
26562 * tree-ssa-pre.c (phi_translate_1): Valueize SSA names after
26563 translating them through PHI nodes.
26564
26565 2013-01-04 Martin Jambor <mjambor@suse.cz>
26566
26567 PR tree-optimization/55755
26568 * tree-sra.c (sra_modify_assign): Do not check that an access has no
26569 children when trying to avoid producing a VIEW_CONVERT_EXPR.
26570
26571 2013-01-04 Marek Polacek <polacek@redhat.com>
26572
26573 PR middle-end/55859
26574 * opts.c (default_options_optimization): Clarify error message.
26575
26576 2013-01-04 Richard Biener <rguenther@suse.de>
26577
26578 PR middle-end/55863
26579 * fold-const.c (split_tree): Undo -X - 1 to ~X folding for
26580 reassociation.
26581
26582 2013-01-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
26583
26584 PR target/53789
26585 * config/pa/pa.md (movsi): Revert previous change.
26586 * config/pa/pa.c (pa_legitimate_constant_p): Reject all TLS symbol
26587 references.
26588
26589 2013-01-03 Richard Henderson <rth@redhat.com>
26590
26591 * config/i386/i386.c (ix86_expand_move): Always assign to op1
26592 after eliminating TLS symbols.
26593
26594 2013-01-03 Marc Glisse <marc.glisse@inria.fr>
26595
26596 PR bootstrap/50167
26597 * graphite-interchange.c (pdr_stride_in_loop): Use gmp_fprintf.
26598 * graphite-poly.c (debug_gmp_value): Likewise.
26599
26600 2013-01-03 Uros Bizjak <ubizjak@gmail.com>
26601
26602 PR target/55712
26603 * config/i386/i386-c.c (ix86_target_macros_internal): Depending on
26604 selected code model, define __code_mode_small__, __code_model_medium__,
26605 __code_model_large__, __code_model_32__ or __code_model_kernel__.
26606 * config/i386/cpuid.h (__cpuid, __cpuid_count) [__i386__]: Prefix
26607 xchg temporary register with %k. Declare temporary register as
26608 early clobbered.
26609 [__x86_64__]: For medium and large code models, preserve %rbx register.
26610
26611 2013-01-03 Richard Biener <rguenther@suse.de>
26612
26613 * tree-data-ref.c (dump_conflict_function): Use less vertical spacing.
26614 (dump_subscript): Adjust.
26615 (finalize_ddr_dependent): Do not dump redundant info.
26616 (analyze_siv_subscript): Adjust.
26617 (subscript_dependence_tester): Likewise.
26618 (compute_affine_dependence): Likewise.
26619
26620 2013-01-03 Richard Biener <rguenther@suse.de>
26621
26622 Revert
26623 2013-01-03 Richard Biener <rguenther@suse.de>
26624
26625 PR tree-optimization/55857
26626 * tree-vect-stmts.c (vectorizable_load): Do not setup
26627 re-alignment for invariant loads.
26628
26629 2013-01-02 Richard Biener <rguenther@suse.de>
26630
26631 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
26632 invariant load do not generate a vector load from the scalar location.
26633
26634 2013-01-03 Richard Biener <rguenther@suse.de>
26635
26636 * tree-vect-loop.c (vect_analyze_loop_form): Clarify reason
26637 for not vectorizing.
26638 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
26639 not build INDIRECT_REFs, call get_name once only.
26640 (vect_create_data_ref_ptr): Likewise. Dump base object kind
26641 based on DR_BASE_OBJECT, not DR_BASE_ADDRESS.
26642
26643 2013-01-03 Richard Biener <rguenther@suse.de>
26644
26645 PR tree-optimization/55857
26646 * tree-vect-stmts.c (vectorizable_load): Do not setup
26647 re-alignment for invariant loads.
26648
26649 2013-01-03 Richard Biener <rguenther@suse.de>
26650
26651 PR lto/55848
26652 * lto-symtab.c (lto_symtab_merge_decls_1): As last resort, always
26653 prefer a built-in decl.
26654
26655 2013-01-03 Jakub Jelinek <jakub@redhat.com>
26656
26657 * gcc.c (process_command): Update copyright notice dates.
26658 * gcov.c (print_version): Likewise.
26659 * gcov-dump.c (print_version): Likewise.
26660
26661 PR rtl-optimization/55838
26662 * loop-iv.c (iv_number_of_iterations): Call lowpart_subreg on
26663 iv0.step, iv1.step and step.
26664
26665 2013-01-03 Jakub Jelinek <jakub@redhat.com>
26666 Marc Glisse <marc.glisse@inria.fr>
26667
26668 PR tree-optimization/55832
26669 * fold-const.c (fold_binary_loc): For ABS_EXPR<x> >= 0 and
26670 ABS_EXPR<x> < 0 folding use constant_boolean_node instead of
26671 integer_{one,zero}_node.
26672
26673 2013-01-03 Jakub Jelinek <jakub@redhat.com>
26674
26675 PR debug/54402
26676 * params.def (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE): New param.
26677 * var-tracking.c (reverse_op): Don't add reverse ops to
26678 VALUEs that have already
26679 PARAM_VALUE (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE) or longer locs list.
26680
26681 2013-01-02 Gerald Pfeifer <gerald@pfeifer.com>
26682
26683 * doc/contrib.texi: Note years as release manager for Mark Mitchell.
26684
26685 2013-01-02 Teresa Johnson <tejohnson@google.com>
26686
26687 * dumpfile.c (dump_loc): Print filename with location.
26688 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Use
26689 new location_t parameter to emit complete unroll message with
26690 new dump framework.
26691 (canonicalize_loop_induction_variables): Compute loops location
26692 and pass to try_unroll_loop_completely.
26693 * loop-unroll.c (report_unroll_peel): New function.
26694 (peel_loops_completely): Use new dump format with location
26695 for main dumpfile message, and invoke report_unroll_peel on success.
26696 (decide_unrolling_and_peeling): Ditto.
26697 (decide_peel_once_rolling): Remove old dumpfile message subsumed
26698 by report_unroll_peel.
26699 (decide_peel_completely): Ditto.
26700 (decide_unroll_constant_iterations): Ditto.
26701 (decide_unroll_runtime_iterations): Ditto.
26702 (decide_peel_simple): Ditto.
26703 (decide_unroll_stupid): Ditto.
26704 * cfgloop.c (get_loop_location): New function.
26705 * cfgloop.h (get_loop_location): Declare.
26706
26707 2013-01-02 Sriraman Tallam <tmsriram@google.com>
26708
26709 * config/i386/i386.c (fold_builtin_cpu): Remove unnecessary checks for
26710 NULL.
26711
26712 2013-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
26713
26714 PR middle-end/55198
26715 * expr.c (expand_expr_real_1): Don't use bitfield extraction for non
26716 BLKmode objects when EXPAND_MEMORY is specified.
26717
26718 2013-01-02 Sriraman Tallam <tmsriram@google.com>
26719
26720 * config/i386/i386.c (ix86_get_function_versions_dispatcher): Fix bug
26721 in loop predicate.
26722 (fold_builtin_cpu): Do not share cpu model decls across statements.
26723
26724 2013-01-02 Jason Merrill <jason@redhat.com>
26725
26726 PR c++/55804
26727 * tree.c (build_array_type_1): Revert earlier change.
26728
26729 2013-01-02 Yufeng Zhang <yufeng.zhang@arm.com>
26730
26731 * config/aarch64/aarch64-cores.def: Add entries for "cortex-a53" and
26732 "cortex-a57".
26733 * config/aarch64/aarch64-tune.md: Re-generate.
26734
26735 2013-01-02 Richard Biener <rguenther@suse.de>
26736
26737 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
26738 invariant load do not generate a vector load from the scalar location.
26739
26740 2013-01-02 Richard Biener <rguenther@suse.de>
26741
26742 PR bootstrap/55784
26743 * configure.ac: Add $GMPINC to CFLAGS/CXXFLAGS.
26744 * configure: Regenerate.
26745
26746 2013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
26747
26748 * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2)
26749 (expand_builtin_mathfn_ternary, expand_builtin_mathfn_3)
26750 (expand_builtin_int_roundingfn_2): Keep the original target around
26751 for the fallback case.
26752
26753 2013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
26754
26755 * tree-vrp.c (range_fits_type_p): Require the MSB of the double_int
26756 to be clear for sign changes.
26757
26758 2013-01-01 Jan Hubicka <jh@suse.cz>
26759
26760 * ipa-inline-analysis.c: Fix formatting.
26761
26762 2013-01-01 Jakub Jelinek <jakub@redhat.com>
26763
26764 PR tree-optimization/55831
26765 * tree-vect-loop.c (get_initial_def_for_induction): Use
26766 gsi_after_labels instead of gsi_start_bb.
26767 \f
26768 Copyright (C) 2013 Free Software Foundation, Inc.
26769
26770 Copying and distribution of this file, with or without modification,
26771 are permitted in any medium without royalty provided the copyright
26772 notice and this notice are preserved.